diff --git a/.dockerignore b/.dockerignore index f6823b742..4dd75f38d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,5 @@ +.git +docker-compose.yml build matlab_runners matlab_version @@ -5,4 +7,4 @@ python_scripts test-dump samples model_training -gui \ No newline at end of file +gui diff --git a/.env b/.env new file mode 100644 index 000000000..64ffed514 --- /dev/null +++ b/.env @@ -0,0 +1,6 @@ +## This is read by docker-compose. You can overwrite these at runtime, e.g.: +## DOCKERUSER=bobfoo docker-compose build + +DOCKERUSER=openface +DOCKERTAG=latest +DATA_MOUNT=/tmp/openface diff --git a/.gitignore b/.gitignore index bdef7f667..14d939274 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +lib/local/LandmarkDetector/model/patch_experts/cen_patches_*.dat + matlab_version/experiments_menpo/out_semifrontal/ /x64/Release/ /x64/Debug/ @@ -100,3 +102,6 @@ lib/local/Utilities/Debug/ lib/3rdParty/CameraEnumerator/Debug/ lib/local/CppInerop/Debug/ *.user + +# IDE-generated folders +.idea diff --git a/.travis.yml b/.travis.yml index 200c5e901..812387499 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,13 @@ language: cpp -dist: trusty +dist: xenial sudo: required branches: only: - master - develop + - feature/opencv4 compiler: - gcc @@ -16,14 +17,17 @@ os: before_install: - # OpenCV dependencies, dlib and boost + # G++ 8 compiler, OpenCV dependencies, dlib, openblas, and tbb - if [ ${TRAVIS_OS_NAME} = linux ]; then - sudo apt-get update; - sudo apt-get install libopenblas-dev; + cd ../; + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; + sudo apt-get update -qq; + sudo apt-get install -qq g++-8; + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 90; sudo apt-get install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev; sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev; sudo apt-get install cmake; - sudo apt-get install libboost-all-dev; + sudo apt-get install libopenblas-dev; wget http://dlib.net/files/dlib-19.13.tar.bz2; tar xf dlib-19.13.tar.bz2; cd dlib-19.13; @@ -34,14 +38,14 @@ before_install: sudo make install; sudo ldconfig; cd ../..; - wget https://github.com/opencv/opencv/archive/3.4.0.zip; - unzip -qq 3.4.0.zip; - cd opencv-3.4.0; + wget https://github.com/opencv/opencv/archive/4.0.0.zip; + unzip -qq 4.0.0.zip; + cd opencv-4.0.0; mkdir build; cd build; fi - # g++4.8.1 + # g++ TODO these should not be separated? - if [ "$CXX" = "g++" ]; then if [ ${TRAVIS_OS_NAME} = linux ]; then $CXX --version; @@ -52,7 +56,7 @@ before_install: fi fi - # clang 3.4 + # clang - if [ "$CXX" = "clang++" ]; then if [ ${TRAVIS_OS_NAME} = linux ]; then $CXX --version; @@ -68,16 +72,18 @@ before_install: brew install tbb; brew install openblas; brew install dlib; - brew install opencv3; + brew install opencv; + cd ../; fi script: + - cd OpenFace - $CXX --version - chmod 777 ./download_models.sh - ./download_models.sh - mkdir build - cd build - - cmake -D CMAKE_BUILD_TYPE=RELEASE CMAKE_CXX_FLAGS="-std=c++11" -D CMAKE_EXE_LINKER_FLAGS="-std=c++11" .. + - cmake -D CMAKE_BUILD_TYPE=RELEASE .. - make - ../build/bin/FeatureExtraction -f "../samples/2015-10-15-15-14.avi" -q -mloc model/main_clm_general.txt - ../build/bin/FaceLandmarkImg -fdir ../samples -out_dir data -multi_view 1 -wild -q diff --git a/CMakeLists.txt b/CMakeLists.txt index d965b7661..8d5e96952 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,6 @@ -cmake_minimum_required (VERSION 3.2) +cmake_minimum_required (VERSION 3.8) +set(CMAKE_CXX_STANDARD 17) + project(OpenFace VERSION 2.0.2) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/) @@ -27,7 +29,7 @@ else() MESSAGE(" OpenBLAS_INCLUDE: ${OpenBLAS_INCLUDE_DIR}") endif() -find_package( OpenCV 3.3 REQUIRED COMPONENTS core imgproc calib3d highgui objdetect) +find_package( OpenCV 4.0 REQUIRED COMPONENTS core imgproc calib3d highgui objdetect) if(${OpenCV_FOUND}) MESSAGE("OpenCV information:") MESSAGE(" OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}") @@ -37,7 +39,7 @@ else() MESSAGE(FATAL_ERROR "OpenCV not found in the system.") endif() -find_package( Boost 1.5.9 REQUIRED COMPONENTS filesystem system) +find_package( Boost 1.5.9 COMPONENTS filesystem system) if(${Boost_FOUND}) MESSAGE("Boost information:") MESSAGE(" Boost_VERSION: ${Boost_VERSION}") @@ -45,9 +47,10 @@ if(${Boost_FOUND}) MESSAGE(" Boost_LIBRARIES: ${Boost_LIBRARIES}") MESSAGE(" Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") else() - MESSAGE(FATAL_ERROR "Boost not found in the system.") + MESSAGE("Boost not found in the system.") endif() + # Move LandmarkDetector model file(GLOB files "lib/local/LandmarkDetector/model/*.txt") foreach(file ${files}) @@ -134,13 +137,11 @@ endforeach() if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) - if (GCC_VERSION VERSION_LESS 4.7) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -msse -msse2 -msse3") + if (GCC_VERSION VERSION_LESS 8.0) + MESSAGE(FATAL_ERROR "Need a 8.0 or newer GCC compiler. Current GCC: ${GCC_VERSION}") else () - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -msse -msse2 -msse3") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3") endif () -else () - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -msse -msse2 -msse3") endif () # dlib diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 7565e7002..000000000 --- a/Dockerfile +++ /dev/null @@ -1,63 +0,0 @@ -FROM ubuntu:14.04 as build - -LABEL maintainer="Edgar Aroutiounian " - -ARG DEBIAN_FRONTEND=noninteractive - -ARG BUILD_DIR=/home/build-dep - -ARG OPENFACE_DIR=/home/openface-build - -RUN mkdir ${OPENFACE_DIR} -WORKDIR ${OPENFACE_DIR} - -COPY ./CMakeLists.txt ${OPENFACE_DIR} - -COPY ./cmake ${OPENFACE_DIR}/cmake - -COPY ./exe ${OPENFACE_DIR}/exe - -COPY ./lib ${OPENFACE_DIR}/lib - -ADD https://www.dropbox.com/s/7na5qsjzz8yfoer/cen_patches_0.25_of.dat?dl=1 \ - ${OPENFACE_DIR}/lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.25_of.dat - -ADD https://www.dropbox.com/s/k7bj804cyiu474t/cen_patches_0.35_of.dat?dl=1 \ - ${OPENFACE_DIR}/lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.35_of.dat - -ADD https://www.dropbox.com/s/ixt4vkbmxgab1iu/cen_patches_0.50_of.dat?dl=1 \ - ${OPENFACE_DIR}/lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.50_of.dat - -ADD https://www.dropbox.com/s/2t5t1sdpshzfhpj/cen_patches_1.00_of.dat?dl=1 \ - ${OPENFACE_DIR}/lib/local/LandmarkDetector/model/patch_experts/cen_patches_1.00_of.dat - -RUN mkdir ${BUILD_DIR} - -ADD https://github.com/opencv/opencv/archive/3.4.0.zip ${BUILD_DIR} - -RUN apt-get update && apt-get install -qq -y \ - curl build-essential llvm clang-3.7 libc++-dev \ - libc++abi-dev cmake libopenblas-dev liblapack-dev git libgtk2.0-dev \ - pkg-config libavcodec-dev libavformat-dev libswscale-dev \ - python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev \ - libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev checkinstall \ - libboost-all-dev wget unzip && \ - rm -rf /var/lib/apt/lists/* - -RUN cd ${BUILD_DIR} && unzip 3.4.0.zip && \ - cd opencv-3.4.0 && \ - mkdir -p build && \ - cd build && \ - cmake -D CMAKE_BUILD_TYPE=RELEASE \ - -D CMAKE_INSTALL_PREFIX=/usr/local \ - -D WITH_TBB=ON -D WITH_CUDA=OFF \ - -D BUILD_SHARED_LIBS=OFF .. && \ - make -j4 && \ - make install - -RUN cd ${OPENFACE_DIR} && mkdir -p build && cd build && \ - cmake -D CMAKE_BUILD_TYPE=RELEASE .. && \ - make -j4 - -RUN ln /dev/null /dev/raw1394 -ENTRYPOINT ["/bin/bash"] diff --git a/OpenFace.sln b/OpenFace.sln index 8e670276a..adcdddf8c 100644 --- a/OpenFace.sln +++ b/OpenFace.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 17 +VisualStudioVersion = 15.8.2 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LandmarkDetector", "lib\local\LandmarkDetector\LandmarkDetector.vcxproj", "{BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}" EndProject @@ -179,4 +179,7 @@ Global {78196985-EE54-411F-822B-5A23EDF80642} = {652CCE53-4997-4B43-9A99-28D075199C99} {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC} = {652CCE53-4997-4B43-9A99-28D075199C99} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {228609CD-6688-47E7-8D5B-5EE684F8A7A1} + EndGlobalSection EndGlobal diff --git a/OpenFace_vs2017.sln b/OpenFace_vs2017.sln deleted file mode 100644 index 8e670276a..000000000 --- a/OpenFace_vs2017.sln +++ /dev/null @@ -1,182 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LandmarkDetector", "lib\local\LandmarkDetector\LandmarkDetector.vcxproj", "{BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FaceAnalyser", "lib\local\FaceAnalyser\FaceAnalyser.vcxproj", "{0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FeatureExtraction", "exe\FeatureExtraction\FeatureExtraction.vcxproj", "{8A23C00D-767D-422D-89A3-CF225E3DAB4B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{99FEBA13-BDDF-4076-B57E-D8EF4076E20D}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Executables", "Executables", "{9961DDAC-BE6E-4A6E-8EEF-FFC7D67BD631}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FaceLandmarkVidMulti", "exe\FaceLandmarkVidMulti\FaceLandmarkVidMulti.vcxproj", "{C3FAF36F-44BC-4454-87C2-C5106575FE50}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Recording", "exe\Recording\Recording.vcxproj", "{2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FaceLandmarkVid", "exe\FaceLandmarkVid\FaceLandmarkVid.vcxproj", "{34032CF2-1B99-4A25-9050-E9C13DD4CD0A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FaceLandmarkImg", "exe\FaceLandmarkImg\FaceLandmarkImg.vcxproj", "{DDC3535E-526C-44EC-9DF4-739E2D3A323B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GazeAnalyser", "lib\local\GazeAnalyser\GazeAnalyser.vcxproj", "{5F915541-F531-434F-9C81-79F5DB58012B}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UtilLibs", "UtilLibs", "{652CCE53-4997-4B43-9A99-28D075199C99}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Utilities", "lib\local\Utilities\Utilities.vcxproj", "{8E741EA2-9386-4CF2-815E-6F9B08991EAC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gui", "gui", "{E59CF005-539F-484F-9AA6-9F08AC2DB31E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeadPoseLive", "gui\HeadPose-live\HeadPoseLive.csproj", "{F396362D-821E-4EA6-9BBF-1F6050844118}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenFaceDemo", "gui\OpenFaceDemo\OpenFaceDemo.csproj", "{E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenFaceOffline", "gui\OpenFaceOffline\OpenFaceOffline.csproj", "{A4760F41-2B1F-4144-B7B2-62785AFFE79B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppInerop", "lib\local\CppInerop\CppInerop.vcxproj", "{78196985-EE54-411F-822B-5A23EDF80642}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CameraEnumerator", "lib\3rdParty\CameraEnumerator\CameraEnumerator.vcxproj", "{50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Debug|Win32.ActiveCfg = Debug|Win32 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Debug|Win32.Build.0 = Debug|Win32 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Debug|x64.ActiveCfg = Debug|x64 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Debug|x64.Build.0 = Debug|x64 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Release|Win32.ActiveCfg = Release|Win32 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Release|Win32.Build.0 = Release|Win32 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Release|x64.ActiveCfg = Release|x64 - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8}.Release|x64.Build.0 = Release|x64 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Debug|Win32.ActiveCfg = Debug|Win32 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Debug|Win32.Build.0 = Debug|Win32 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Debug|x64.ActiveCfg = Debug|x64 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Debug|x64.Build.0 = Debug|x64 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Release|Win32.ActiveCfg = Release|Win32 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Release|Win32.Build.0 = Release|Win32 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Release|x64.ActiveCfg = Release|x64 - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7}.Release|x64.Build.0 = Release|x64 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Debug|Win32.ActiveCfg = Debug|Win32 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Debug|Win32.Build.0 = Debug|Win32 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Debug|x64.ActiveCfg = Debug|x64 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Debug|x64.Build.0 = Debug|x64 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Release|Win32.ActiveCfg = Release|Win32 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Release|Win32.Build.0 = Release|Win32 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Release|x64.ActiveCfg = Release|x64 - {8A23C00D-767D-422D-89A3-CF225E3DAB4B}.Release|x64.Build.0 = Release|x64 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Debug|Win32.ActiveCfg = Debug|Win32 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Debug|Win32.Build.0 = Debug|Win32 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Debug|x64.ActiveCfg = Debug|x64 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Debug|x64.Build.0 = Debug|x64 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Release|Win32.ActiveCfg = Release|Win32 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Release|Win32.Build.0 = Release|Win32 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Release|x64.ActiveCfg = Release|x64 - {C3FAF36F-44BC-4454-87C2-C5106575FE50}.Release|x64.Build.0 = Release|x64 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Debug|Win32.ActiveCfg = Debug|Win32 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Debug|Win32.Build.0 = Debug|Win32 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Debug|x64.ActiveCfg = Debug|x64 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Debug|x64.Build.0 = Debug|x64 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Release|Win32.ActiveCfg = Release|Win32 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Release|Win32.Build.0 = Release|Win32 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Release|x64.ActiveCfg = Release|x64 - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC}.Release|x64.Build.0 = Release|x64 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Debug|Win32.ActiveCfg = Debug|Win32 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Debug|Win32.Build.0 = Debug|Win32 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Debug|x64.ActiveCfg = Debug|x64 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Debug|x64.Build.0 = Debug|x64 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Release|Win32.ActiveCfg = Release|Win32 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Release|Win32.Build.0 = Release|Win32 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Release|x64.ActiveCfg = Release|x64 - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A}.Release|x64.Build.0 = Release|x64 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Debug|Win32.ActiveCfg = Debug|Win32 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Debug|Win32.Build.0 = Debug|Win32 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Debug|x64.ActiveCfg = Debug|x64 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Debug|x64.Build.0 = Debug|x64 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Release|Win32.ActiveCfg = Release|Win32 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Release|Win32.Build.0 = Release|Win32 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Release|x64.ActiveCfg = Release|x64 - {DDC3535E-526C-44EC-9DF4-739E2D3A323B}.Release|x64.Build.0 = Release|x64 - {5F915541-F531-434F-9C81-79F5DB58012B}.Debug|Win32.ActiveCfg = Debug|Win32 - {5F915541-F531-434F-9C81-79F5DB58012B}.Debug|Win32.Build.0 = Debug|Win32 - {5F915541-F531-434F-9C81-79F5DB58012B}.Debug|x64.ActiveCfg = Debug|x64 - {5F915541-F531-434F-9C81-79F5DB58012B}.Debug|x64.Build.0 = Debug|x64 - {5F915541-F531-434F-9C81-79F5DB58012B}.Release|Win32.ActiveCfg = Release|Win32 - {5F915541-F531-434F-9C81-79F5DB58012B}.Release|Win32.Build.0 = Release|Win32 - {5F915541-F531-434F-9C81-79F5DB58012B}.Release|x64.ActiveCfg = Release|x64 - {5F915541-F531-434F-9C81-79F5DB58012B}.Release|x64.Build.0 = Release|x64 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Debug|Win32.ActiveCfg = Debug|Win32 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Debug|Win32.Build.0 = Debug|Win32 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Debug|x64.ActiveCfg = Debug|x64 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Debug|x64.Build.0 = Debug|x64 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Release|Win32.ActiveCfg = Release|Win32 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Release|Win32.Build.0 = Release|Win32 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Release|x64.ActiveCfg = Release|x64 - {8E741EA2-9386-4CF2-815E-6F9B08991EAC}.Release|x64.Build.0 = Release|x64 - {F396362D-821E-4EA6-9BBF-1F6050844118}.Debug|Win32.ActiveCfg = Debug|x86 - {F396362D-821E-4EA6-9BBF-1F6050844118}.Debug|Win32.Build.0 = Debug|x86 - {F396362D-821E-4EA6-9BBF-1F6050844118}.Debug|x64.ActiveCfg = Debug|Any CPU - {F396362D-821E-4EA6-9BBF-1F6050844118}.Debug|x64.Build.0 = Debug|Any CPU - {F396362D-821E-4EA6-9BBF-1F6050844118}.Release|Win32.ActiveCfg = Release|x86 - {F396362D-821E-4EA6-9BBF-1F6050844118}.Release|Win32.Build.0 = Release|x86 - {F396362D-821E-4EA6-9BBF-1F6050844118}.Release|x64.ActiveCfg = Release|Any CPU - {F396362D-821E-4EA6-9BBF-1F6050844118}.Release|x64.Build.0 = Release|Any CPU - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Debug|Win32.ActiveCfg = Debug|x86 - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Debug|Win32.Build.0 = Debug|x86 - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Debug|x64.ActiveCfg = Debug|Any CPU - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Debug|x64.Build.0 = Debug|Any CPU - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Release|Win32.ActiveCfg = Release|x86 - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Release|Win32.Build.0 = Release|x86 - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Release|x64.ActiveCfg = Release|Any CPU - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90}.Release|x64.Build.0 = Release|Any CPU - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Debug|Win32.ActiveCfg = Debug|x86 - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Debug|Win32.Build.0 = Debug|x86 - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Debug|x64.ActiveCfg = Debug|Any CPU - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Debug|x64.Build.0 = Debug|Any CPU - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Release|Win32.ActiveCfg = Release|x86 - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Release|Win32.Build.0 = Release|x86 - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Release|x64.ActiveCfg = Release|Any CPU - {A4760F41-2B1F-4144-B7B2-62785AFFE79B}.Release|x64.Build.0 = Release|Any CPU - {78196985-EE54-411F-822B-5A23EDF80642}.Debug|Win32.ActiveCfg = Debug|Win32 - {78196985-EE54-411F-822B-5A23EDF80642}.Debug|Win32.Build.0 = Debug|Win32 - {78196985-EE54-411F-822B-5A23EDF80642}.Debug|x64.ActiveCfg = Debug|x64 - {78196985-EE54-411F-822B-5A23EDF80642}.Debug|x64.Build.0 = Debug|x64 - {78196985-EE54-411F-822B-5A23EDF80642}.Release|Win32.ActiveCfg = Release|Win32 - {78196985-EE54-411F-822B-5A23EDF80642}.Release|Win32.Build.0 = Release|Win32 - {78196985-EE54-411F-822B-5A23EDF80642}.Release|x64.ActiveCfg = Release|x64 - {78196985-EE54-411F-822B-5A23EDF80642}.Release|x64.Build.0 = Release|x64 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Debug|Win32.ActiveCfg = Debug|Win32 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Debug|Win32.Build.0 = Debug|Win32 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Debug|x64.ActiveCfg = Debug|x64 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Debug|x64.Build.0 = Debug|x64 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Release|Win32.ActiveCfg = Release|Win32 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Release|Win32.Build.0 = Release|Win32 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Release|x64.ActiveCfg = Release|x64 - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {BDC1D107-DE17-4705-8E7B-CDDE8BFB2BF8} = {99FEBA13-BDDF-4076-B57E-D8EF4076E20D} - {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7} = {99FEBA13-BDDF-4076-B57E-D8EF4076E20D} - {8A23C00D-767D-422D-89A3-CF225E3DAB4B} = {9961DDAC-BE6E-4A6E-8EEF-FFC7D67BD631} - {C3FAF36F-44BC-4454-87C2-C5106575FE50} = {9961DDAC-BE6E-4A6E-8EEF-FFC7D67BD631} - {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC} = {9961DDAC-BE6E-4A6E-8EEF-FFC7D67BD631} - {34032CF2-1B99-4A25-9050-E9C13DD4CD0A} = {9961DDAC-BE6E-4A6E-8EEF-FFC7D67BD631} - {DDC3535E-526C-44EC-9DF4-739E2D3A323B} = {9961DDAC-BE6E-4A6E-8EEF-FFC7D67BD631} - {5F915541-F531-434F-9C81-79F5DB58012B} = {99FEBA13-BDDF-4076-B57E-D8EF4076E20D} - {8E741EA2-9386-4CF2-815E-6F9B08991EAC} = {652CCE53-4997-4B43-9A99-28D075199C99} - {F396362D-821E-4EA6-9BBF-1F6050844118} = {E59CF005-539F-484F-9AA6-9F08AC2DB31E} - {E143A2AA-312E-4DFE-B61D-9A87CCBC8E90} = {E59CF005-539F-484F-9AA6-9F08AC2DB31E} - {A4760F41-2B1F-4144-B7B2-62785AFFE79B} = {E59CF005-539F-484F-9AA6-9F08AC2DB31E} - {78196985-EE54-411F-822B-5A23EDF80642} = {652CCE53-4997-4B43-9A99-28D075199C99} - {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC} = {652CCE53-4997-4B43-9A99-28D075199C99} - EndGlobalSection -EndGlobal diff --git a/appveyor.yml b/appveyor.yml index 539e3164a..a7c746af7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,8 +1,11 @@ version: 1.0.{build} +image: Visual Studio 2017 branches: only: - develop + - feature/opencv4 - master + - feature/boost_removal max_jobs: 4 configuration: - Release @@ -12,19 +15,9 @@ platform: - Win32 # scripts that run after cloning repository install: - - ps: $source = "https://www.dropbox.com/s/7na5qsjzz8yfoer/cen_patches_0.25_of.dat?dl=1" - - ps: $destination = "lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.25_of.dat" - - ps: Invoke-WebRequest $source -OutFile $destination - - ps: $source = "https://www.dropbox.com/s/k7bj804cyiu474t/cen_patches_0.35_of.dat?dl=1" - - ps: $destination = "lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.35_of.dat" - - ps: Invoke-WebRequest $source -OutFile $destination - - ps: $source = "https://www.dropbox.com/s/ixt4vkbmxgab1iu/cen_patches_0.50_of.dat?dl=1" - - ps: $destination = "lib/local/LandmarkDetector/model/patch_experts/cen_patches_0.50_of.dat" - - ps: Invoke-WebRequest $source -OutFile $destination - - ps: $source = "https://www.dropbox.com/s/2t5t1sdpshzfhpj/cen_patches_1.00_of.dat?dl=1" - - ps: $destination = "lib/local/LandmarkDetector/model/patch_experts/cen_patches_1.00_of.dat" - - ps: Invoke-WebRequest $source -OutFile $destination - + - ps: '& ".\download_libraries.ps1"' + - ps: '& ".\download_models.ps1"' + build: project: OpenFace.sln verbosity: minimal diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..f4888b46c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +--- +# Variables can be set from the shell: `DOCKERTAG=foo docker-compose build` +# or from a .env file. See docker-compose documentation for details +# Variable DOCKERUSER should be set to your dockerhub user +# Alternatively, use a docker registry url as the image name +version: '3.7' +services: + ## Image runtime service + ## This can be used to add volume mounts or pass environment variables + ## Todo: make a service which can use the container interactively + openface: + container_name: openface + build: + context: . + dockerfile: docker/Dockerfile + image: "${DOCKERUSER}/openface:${DOCKERTAG}" + tty: true + volumes: + - "${DATA_MOUNT}:${DATA_MOUNT}" + environment: + DATA_MOUNT: "${DATA_MOUNT}" + command: ["bash"] + +... diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 000000000..cef445baf --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,110 @@ +# ==================== Building Model Layer =========================== +# This is a little trick to improve caching and minimize rebuild time +# and bandwidth. Note that RUN commands only cache-miss if the prior layers +# miss, or the dockerfile changes prior to this step. +# To update these patch files, be sure to run build with --no-cache +FROM alpine as model_data +RUN apk --no-cache --update-cache add wget +WORKDIR /data/patch_experts + +RUN wget -q https://www.dropbox.com/s/7na5qsjzz8yfoer/cen_patches_0.25_of.dat &&\ + wget -q https://www.dropbox.com/s/k7bj804cyiu474t/cen_patches_0.35_of.dat &&\ + wget -q https://www.dropbox.com/s/ixt4vkbmxgab1iu/cen_patches_0.50_of.dat &&\ + wget -q https://www.dropbox.com/s/2t5t1sdpshzfhpj/cen_patches_1.00_of.dat + +## ==================== Install Ubuntu Base libs =========================== +## This will be our base image for OpenFace, and also the base for the compiler +## image. We only need packages which are linked + +FROM ubuntu:18.04 as ubuntu_base + +LABEL maintainer="Michael McDermott " + +ARG DEBIAN_FRONTEND=noninteractive + +# todo: minimize this even more +RUN apt-get update -qq &&\ + apt-get install -qq curl &&\ + apt-get install -qq --no-install-recommends \ + libopenblas-dev liblapack-dev \ + libavcodec-dev libavformat-dev libswscale-dev \ + libtbb2 libtbb-dev libjpeg-dev \ + libpng-dev libtiff-dev &&\ + rm -rf /var/lib/apt/lists/* + +## ==================== Build-time dependency libs ====================== +## This will build and install opencv and dlib into an additional dummy +## directory, /root/diff, so we can later copy in these artifacts, +## minimizing docker layer size +## Protip: ninja is faster than `make -j` and less likely to lock up system +FROM ubuntu_base as cv_deps + +WORKDIR /root/build-dep +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -qq && apt-get install -qq -y \ + cmake ninja-build pkg-config build-essential checkinstall\ + g++-8 &&\ + rm -rf /var/lib/apt/lists/* &&\ + update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8 + +## llvm clang-3.7 libc++-dev libc++abi-dev \ +## ==================== Building dlib =========================== + +RUN curl http://dlib.net/files/dlib-19.13.tar.bz2 -LO &&\ + tar xf dlib-19.13.tar.bz2 && \ + rm dlib-19.13.tar.bz2 &&\ + mv dlib-19.13 dlib &&\ + mkdir -p dlib/build &&\ + cd dlib/build &&\ + cmake -DCMAKE_BUILD_TYPE=Release -G Ninja .. &&\ + ninja && \ + ninja install && \ + DESTDIR=/root/diff ninja install &&\ + ldconfig + +## ==================== Building OpenCV ====================== +ENV OPENCV_VERSION=4.1.0 + +RUN curl https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.tar.gz -LO &&\ + tar xf ${OPENCV_VERSION}.tar.gz && \ + rm ${OPENCV_VERSION}.tar.gz &&\ + mv opencv-${OPENCV_VERSION} opencv && \ + mkdir -p opencv/build && \ + cd opencv/build && \ + cmake -D CMAKE_BUILD_TYPE=RELEASE \ + -D CMAKE_INSTALL_PREFIX=/usr/local \ + -D WITH_TBB=ON -D WITH_CUDA=OFF \ + -DWITH_QT=OFF -DWITH_GTK=OFF\ + -G Ninja .. && \ + ninja && \ + ninja install &&\ + DESTDIR=/root/diff ninja install + +## ==================== Building OpenFace =========================== +FROM cv_deps as openface +WORKDIR /root/openface + +COPY ./ ./ + +COPY --from=model_data /data/patch_experts/* \ + /root/openface/lib/local/LandmarkDetector/model/patch_experts/ + +RUN mkdir -p build && cd build && \ + cmake -D CMAKE_BUILD_TYPE=RELEASE -G Ninja .. && \ + ninja &&\ + DESTDIR=/root/diff ninja install + + +## ==================== Streamline container =========================== +## Clean up - start fresh and only copy in necessary stuff +## This shrinks the image from ~8 GB to ~1.6 GB +FROM ubuntu_base as final + +WORKDIR /root + +# Copy in only necessary libraries +COPY --from=openface /root/diff / + +# Since we "imported" the build artifacts, we need to reconfigure ld +RUN ldconfig diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 000000000..5ac5e4c9c --- /dev/null +++ b/docker/README.md @@ -0,0 +1,57 @@ +# Docker building instructions + +This image can be build with just `docker`, but it is highly recommend to use +`docker-compose` as this greatly simplifies and improves the process. + +## Quick start + +To start with the container hosted by the repo maintainer, run + +`docker run -it --rm --name openface algebr/openface:latest` + +This will drop you into a shell with binaries such as FaceLandmarkImg. For example, +try this code (in the container): + +```bash +curl -o tesla.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Nicola_Tesla_LCCN2014684845.jpg/559px-Nicola_Tesla_LCCN2014684845.jpg +FaceLandmarkImg -f tesla.jpg +``` + +Then, copy the output to the host system (from host terminal): + +```bash +docker cp openface:/root/processed /tmp/ +cd /tmp/processed +``` + +Tip: On Ubuntu and other *nixes with X running, you can open a file directly +like this: +```bash +xdg-open /tmp/processed/tesla.jpg +``` + +## Building + +In repo root, run `docker-compose build` to automatically build and tag. +There are two variables which can be used to modify the tag, `$DOCKERUSER` and +`$DOCKERTAG`. DC will automatically tag image as +`${DOCKERUSER}/openface:${DOCKERTAG}` + +## OpenFace service (in progress) + +To run OpenFace like a service, you can start the container with bind mounts +in order to pass data into and out of the container easily. +`$DATA_MOUNT` by default is set to `/tmp/openface`. This can be overridden by +modifying `.env` file, setting it in your shell environment, or passing in +before `docker-compose` at runtime. Note: output will be `root` owner. + +```bash +export DATA_MOUNT=/tmp/openface +mkdir -p $DATA_MOUNT/tesla # this is just to ensure this is writable by user +docker-compose up -d openface && sync # sync is to wait till service starts +curl -o $DATA_MOUNT/tesla.jpg \ + https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Nicola_Tesla_LCCN2014684845.jpg/559px-Nicola_Tesla_LCCN2014684845.jpg +docker exec -it openface FaceLandmarkImg -f $DATA_MOUNT/tesla.jpg -out_dir $DATA_MOUNT/tesla +docker exec -it openface chown -R $UID:$UID $DATA_MOUNT # chown to current user +docker-compose down # stop service if you wish +``` diff --git a/download_libraries.ps1 b/download_libraries.ps1 new file mode 100644 index 000000000..b7519060e --- /dev/null +++ b/download_libraries.ps1 @@ -0,0 +1,127 @@ +# Download the OpenCV libraries from the cloud (stored in Dropbox and OneDrive) + +# ffmpeg x64 dll +$destination = "lib/3rdParty/OpenCV/bin/opencv_ffmpeg410_64.dll" + +$out_dir = Join-Path (Get-Location) "lib/3rdParty/OpenCV/bin" +if(!(Test-Path $out_dir)) +{ + New-Item -ItemType directory -Path $out_dir +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://www.dropbox.com/s/gvkd4549wsjvn3u/opencv_ffmpeg410_64.dll?dl=1" + Invoke-WebRequest $source -OutFile $destination +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://onedrive.live.com/download?cid=2E2ADA578BFF6E6E&resid=2E2ADA578BFF6E6E%2153244&authkey=AEuLAF197Sy7S3M" + Invoke-WebRequest $source -OutFile $destination +} + +# Release x64 dll +$destination = "lib/3rdParty/OpenCV/x64/v141/bin/Release/opencv_world410.dll" + +$out_dir = Join-Path (Get-Location) "lib/3rdParty/OpenCV/x64/v141/bin/Release" +if(!(Test-Path $out_dir)) +{ + New-Item -ItemType directory -Path $out_dir +} + +#if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +#{ +# $source = "https://www.dropbox.com/s/c81shi8br57xytv/opencv_world410.dll?dl=1" +# Invoke-WebRequest $source -OutFile $destination +#} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://onedrive.live.com/download?cid=2E2ADA578BFF6E6E&resid=2E2ADA578BFF6E6E%2153246&authkey=AJkwseAGKqL3PpU" + Invoke-WebRequest $source -OutFile $destination +} + +# Debug x64 dll +$destination = "lib/3rdParty/OpenCV/x64/v141/bin/Debug/opencv_world410d.dll" + +$out_dir = Join-Path (Get-Location) "lib/3rdParty/OpenCV/x64/v141/bin/Debug" +if(!(Test-Path $out_dir)) +{ + New-Item -ItemType directory -Path $out_dir +} + +#if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +#{ +# $source = "https://www.dropbox.com/s/8a4kmvpj5a09jdz/opencv_world410d.dll?dl=1" +# Invoke-WebRequest $source -OutFile $destination +#} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://onedrive.live.com/download?cid=2E2ADA578BFF6E6E&resid=2E2ADA578BFF6E6E%2153247&authkey=AJE4pLhzjtkPDWs" + Invoke-WebRequest $source -OutFile $destination +} + +# ffmpeg x32 dll +$destination = "lib/3rdParty/OpenCV/bin/opencv_ffmpeg410.dll" + +$out_dir = Join-Path (Get-Location) "lib/3rdParty/OpenCV/bin" +if(!(Test-Path $out_dir)) +{ + New-Item -ItemType directory -Path $out_dir +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://www.dropbox.com/s/7pada6etpui97f7/opencv_ffmpeg410.dll?dl=1" + Invoke-WebRequest $source -OutFile $destination +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://onedrive.live.com/download?cid=2E2ADA578BFF6E6E&resid=2E2ADA578BFF6E6E%2153252&authkey=AEwNPWYZ7sOOhXo" + Invoke-WebRequest $source -OutFile $destination +} + +# Release x32 dll +$destination = "lib/3rdParty/OpenCV/x86/v141/bin/Release/opencv_world410.dll" + +$out_dir = Join-Path (Get-Location) "lib/3rdParty/OpenCV/x86/v141/bin/Release" +if(!(Test-Path $out_dir)) +{ + New-Item -ItemType directory -Path $out_dir +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://www.dropbox.com/s/qf4rqphvrj2k4d1/opencv_world410.dll?dl=1" + Invoke-WebRequest $source -OutFile $destination +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://onedrive.live.com/download?cid=2E2ADA578BFF6E6E&resid=2E2ADA578BFF6E6E%2153255&authkey=AJ0S3GY4fCYKFXo" + Invoke-WebRequest $source -OutFile $destination +} + +# Debug x32 dll +$destination = "lib/3rdParty/OpenCV/x86/v141/bin/Debug/opencv_world410d.dll" + +$out_dir = Join-Path (Get-Location) "lib/3rdParty/OpenCV/x86/v141/bin/Debug" +if(!(Test-Path $out_dir)) +{ + New-Item -ItemType directory -Path $out_dir +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://www.dropbox.com/s/kafps88dbdlg5y2/opencv_world410d.dll?dl=1" + Invoke-WebRequest $source -OutFile $destination +} + +if(!([System.IO.File]::Exists( (Join-Path (Get-Location) $destination) ))) +{ + $source = "https://onedrive.live.com/download?cid=2E2ADA578BFF6E6E&resid=2E2ADA578BFF6E6E%2153256&authkey=ALbDTeRByHmWO-M" + Invoke-WebRequest $source -OutFile $destination +} diff --git a/download_models.ps1 b/download_models.ps1 index f818337f8..362c78939 100644 --- a/download_models.ps1 +++ b/download_models.ps1 @@ -1,4 +1,4 @@ -# Download the models from the cloud (stored in Dropbox, OneDrive, and Google Drive) +# Download the models from the cloud (stored in Dropbox and OneDrive) # Determine correct path to the model files if([System.IO.Directory]::Exists( (Join-Path (Get-Location) 'lib') )) diff --git a/exe/FaceLandmarkImg/FaceLandmarkImg.cpp b/exe/FaceLandmarkImg/FaceLandmarkImg.cpp index 58c0faec5..a0d946546 100644 --- a/exe/FaceLandmarkImg/FaceLandmarkImg.cpp +++ b/exe/FaceLandmarkImg/FaceLandmarkImg.cpp @@ -52,16 +52,14 @@ #define CONFIG_DIR "~" #endif -using namespace std; - -vector get_arguments(int argc, char **argv) +std::vector get_arguments(int argc, char **argv) { - vector arguments; + std::vector arguments; for (int i = 0; i < argc; ++i) { - arguments.push_back(string(argv[i])); + arguments.push_back(std::string(argv[i])); } return arguments; } @@ -70,13 +68,13 @@ int main(int argc, char **argv) { //Convert arguments to more convenient vector form - vector arguments = get_arguments(argc, argv); + std::vector arguments = get_arguments(argc, argv); // no arguments: output usage if (arguments.size() == 1) { - cout << "For command line arguments see:" << endl; - cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; + std::cout << "For command line arguments see:" << std::endl; + std::cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; return 0; } @@ -86,7 +84,7 @@ int main(int argc, char **argv) // The sequence reader chooses what to open based on command line arguments provided if (!image_reader.Open(arguments)) { - cout << "Could not open any images" << endl; + std::cout << "Could not open any images" << std::endl; return 1; } @@ -94,16 +92,16 @@ int main(int argc, char **argv) LandmarkDetector::FaceModelParameters det_parameters(arguments); // The modules that are being used for tracking - cout << "Loading the model" << endl; + std::cout << "Loading the model" << std::endl; LandmarkDetector::CLNF face_model(det_parameters.model_location); if (!face_model.loaded_successfully) { - cout << "ERROR: Could not load the landmark detector" << endl; + std::cout << "ERROR: Could not load the landmark detector" << std::endl; return 1; } - cout << "Model loaded" << endl; + std::cout << "Model loaded" << std::endl; // Load facial feature extractor and AU analyser (make sure it is static) FaceAnalysis::FaceAnalyserParameters face_analysis_params(arguments); @@ -118,7 +116,7 @@ int main(int argc, char **argv) // If can't find MTCNN face detector, default to HOG one if (det_parameters.curr_face_detector == LandmarkDetector::FaceModelParameters::MTCNN_DETECTOR && face_detector_mtcnn.empty()) { - cout << "INFO: defaulting to HOG-SVM face detector" << endl; + std::cout << "INFO: defaulting to HOG-SVM face detector" << std::endl; det_parameters.curr_face_detector = LandmarkDetector::FaceModelParameters::HOG_SVM_DETECTOR; } @@ -131,15 +129,15 @@ int main(int argc, char **argv) if (!face_model.eye_model) { - cout << "WARNING: no eye model found" << endl; + std::cout << "WARNING: no eye model found" << std::endl; } if (face_analyser.GetAUClassNames().size() == 0 && face_analyser.GetAUClassNames().size() == 0) { - cout << "WARNING: no Action Unit models found" << endl; + std::cout << "WARNING: no Action Unit models found" << std::endl; } - cout << "Starting tracking" << endl; + std::cout << "Starting tracking" << std::endl; while (!rgb_image.empty()) { @@ -158,7 +156,7 @@ int main(int argc, char **argv) cv::Mat_ grayscale_image = image_reader.GetGrayFrame(); // Detect faces in an image - vector > face_detections; + std::vector > face_detections; if (image_reader.has_bounding_boxes) { @@ -168,7 +166,7 @@ int main(int argc, char **argv) { if (det_parameters.curr_face_detector == LandmarkDetector::FaceModelParameters::HOG_SVM_DETECTOR) { - vector confidences; + std::vector confidences; LandmarkDetector::DetectFacesHOG(face_detections, grayscale_image, face_detector_hog, confidences); } else if (det_parameters.curr_face_detector == LandmarkDetector::FaceModelParameters::HAAR_DETECTOR) @@ -177,7 +175,7 @@ int main(int argc, char **argv) } else { - vector confidences; + std::vector confidences; LandmarkDetector::DetectFacesMTCNN(face_detections, rgb_image, face_detector_mtcnn, confidences); } } diff --git a/exe/FaceLandmarkImg/FaceLandmarkImg.vcxproj b/exe/FaceLandmarkImg/FaceLandmarkImg.vcxproj index b50d2b064..1a0e9ce3f 100644 --- a/exe/FaceLandmarkImg/FaceLandmarkImg.vcxproj +++ b/exe/FaceLandmarkImg/FaceLandmarkImg.vcxproj @@ -23,34 +23,34 @@ Win32Proj FaceLandmarkImg FaceLandmarkImg - 8.1 + 10.0.17134.0 Application true Unicode - v140 + v141 Application true Unicode - v140 + v141 Application false true Unicode - v140 + v141 Application false true Unicode - v140 + v141 @@ -58,29 +58,25 @@ - - + - - + - - + - - + @@ -111,6 +107,7 @@ $(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;$(SolutionDir)\lib\local\Utilities\include;%(AdditionalIncludeDirectories) StreamingSIMDExtensions2 true + stdcpp17 Console @@ -127,6 +124,7 @@ true + stdcpp17 Console @@ -147,6 +145,7 @@ StreamingSIMDExtensions2 true Speed + stdcpp17 Console @@ -170,6 +169,7 @@ true Speed + stdcpp17 Console diff --git a/exe/FaceLandmarkVid/FaceLandmarkVid.cpp b/exe/FaceLandmarkVid/FaceLandmarkVid.cpp index 249b11eae..47f67dd3c 100644 --- a/exe/FaceLandmarkVid/FaceLandmarkVid.cpp +++ b/exe/FaceLandmarkVid/FaceLandmarkVid.cpp @@ -59,16 +59,14 @@ static void printErrorAndAbort(const std::string & error) #define FATAL_STREAM( stream ) \ printErrorAndAbort( std::string( "Fatal error: " ) + stream ) -using namespace std; - -vector get_arguments(int argc, char **argv) +std::vector get_arguments(int argc, char **argv) { - vector arguments; + std::vector arguments; for (int i = 0; i < argc; ++i) { - arguments.push_back(string(argv[i])); + arguments.push_back(std::string(argv[i])); } return arguments; } @@ -76,13 +74,13 @@ vector get_arguments(int argc, char **argv) int main(int argc, char **argv) { - vector arguments = get_arguments(argc, argv); + std::vector arguments = get_arguments(argc, argv); // no arguments: output usage if (arguments.size() == 1) { - cout << "For command line arguments see:" << endl; - cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; + std::cout << "For command line arguments see:" << std::endl; + std::cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; return 0; } @@ -92,13 +90,13 @@ int main(int argc, char **argv) LandmarkDetector::CLNF face_model(det_parameters.model_location); if (!face_model.loaded_successfully) { - cout << "ERROR: Could not load the landmark detector" << endl; + std::cout << "ERROR: Could not load the landmark detector" << std::endl; return 1; } if (!face_model.eye_model) { - cout << "WARNING: no eye model found" << endl; + std::cout << "WARNING: no eye model found" << std::endl; } // Open a sequence diff --git a/exe/FaceLandmarkVid/FaceLandmarkVid.vcxproj b/exe/FaceLandmarkVid/FaceLandmarkVid.vcxproj index 76102fc93..91a379fc2 100644 --- a/exe/FaceLandmarkVid/FaceLandmarkVid.vcxproj +++ b/exe/FaceLandmarkVid/FaceLandmarkVid.vcxproj @@ -23,34 +23,34 @@ Win32Proj FaceLandmarkVid FaceLandmarkVid - 8.1 + 10.0.17134.0 Application true Unicode - v140 + v141 Application true Unicode - v140 + v141 Application false true Unicode - v140 + v141 Application false true Unicode - v140 + v141 @@ -58,29 +58,25 @@ - - + - - + - - + - - + @@ -112,6 +108,7 @@ false StreamingSIMDExtensions2 true + stdcpp17 Console @@ -129,6 +126,7 @@ true + stdcpp17 Console @@ -149,6 +147,7 @@ Speed StreamingSIMDExtensions2 true + stdcpp17 Console @@ -172,6 +171,7 @@ true + stdcpp17 Console diff --git a/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.cpp b/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.cpp index 4333b913e..2990330be 100644 --- a/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.cpp +++ b/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.cpp @@ -62,21 +62,55 @@ static void printErrorAndAbort(const std::string & error) #define FATAL_STREAM( stream ) \ printErrorAndAbort( std::string( "Fatal error: " ) + stream ) -using namespace std; - -vector get_arguments(int argc, char **argv) +std::vector get_arguments(int argc, char **argv) { - vector arguments; + std::vector arguments; for (int i = 0; i < argc; ++i) { - arguments.push_back(string(argv[i])); + arguments.push_back(std::string(argv[i])); } return arguments; } -void NonOverlapingDetections(const vector& clnf_models, vector >& face_detections) +double IOU(cv::Rect_ rect1, cv::Rect_ rect2) +{ + double intersection_area = (rect1 & rect2).area(); + double union_area = rect1.area() + rect2.area() - intersection_area; + return intersection_area / union_area; +} + +void RemoveOverlapingModels(std::vector& face_models, std::vector& active_models) +{ + // Go over the model and eliminate detections that are not informative (there already is a tracker there) + for (size_t model1 = 0; model1 < active_models.size(); ++model1) + { + if (active_models[model1]) + { + // See if the detections intersect + cv::Rect_ model1_rect = face_models[model1].GetBoundingBox(); + + for (int model2 = model1 + 1; model2 < active_models.size(); ++model2) + { + if(active_models[model2]) + { + cv::Rect_ model2_rect = face_models[model2].GetBoundingBox(); + + // If the model is already tracking what we're detecting ignore the detection, this is determined by amount of overlap + if (IOU(model1_rect, model2_rect) > 0.5) + { + active_models[model1] = false; + face_models[model1].Reset(); + } + } + } + } + } + +} + +void NonOverlapingDetections(const std::vector& clnf_models, std::vector >& face_detections) { // Go over the model and eliminate detections that are not informative (there already is a tracker there) @@ -88,11 +122,8 @@ void NonOverlapingDetections(const vector& clnf_models, for (int detection = face_detections.size() - 1; detection >= 0; --detection) { - double intersection_area = (model_rect & face_detections[detection]).area(); - double union_area = model_rect.area() + face_detections[detection].area() - 2 * intersection_area; - // If the model is already tracking what we're detecting ignore the detection, this is determined by amount of overlap - if (intersection_area / union_area > 0.5) + if (IOU(model_rect, face_detections[detection]) > 0.5) { face_detections.erase(face_detections.begin() + detection); } @@ -103,13 +134,13 @@ void NonOverlapingDetections(const vector& clnf_models, int main(int argc, char **argv) { - vector arguments = get_arguments(argc, argv); + std::vector arguments = get_arguments(argc, argv); // no arguments: output usage if (arguments.size() == 1) { - cout << "For command line arguments see:" << endl; - cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; + std::cout << "For command line arguments see:" << std::endl; + std::cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; return 0; } @@ -119,12 +150,12 @@ int main(int argc, char **argv) det_params.curr_face_detector = LandmarkDetector::FaceModelParameters::MTCNN_DETECTOR; - vector det_parameters; + std::vector det_parameters; det_parameters.push_back(det_params); // The modules that are being used for tracking - vector face_models; - vector active_models; + std::vector face_models; + std::vector active_models; int num_faces_max = 4; @@ -132,7 +163,7 @@ int main(int argc, char **argv) if (!face_model.loaded_successfully) { - cout << "ERROR: Could not load the landmark detector" << endl; + std::cout << "ERROR: Could not load the landmark detector" << std::endl; return 1; } @@ -145,7 +176,7 @@ int main(int argc, char **argv) // If can't find MTCNN face detector, default to HOG one if (det_parameters[0].curr_face_detector == LandmarkDetector::FaceModelParameters::MTCNN_DETECTOR && face_model.face_detector_MTCNN.empty()) { - cout << "INFO: defaulting to HOG-SVM face detector" << endl; + std::cout << "INFO: defaulting to HOG-SVM face detector" << std::endl; det_parameters[0].curr_face_detector = LandmarkDetector::FaceModelParameters::HOG_SVM_DETECTOR; } @@ -168,12 +199,12 @@ int main(int argc, char **argv) if (!face_model.eye_model) { - cout << "WARNING: no eye model found" << endl; + std::cout << "WARNING: no eye model found" << std::endl; } if (face_analyser.GetAUClassNames().size() == 0 && face_analyser.GetAUClassNames().size() == 0) { - cout << "WARNING: no Action Unit models found" << endl; + std::cout << "WARNING: no Action Unit models found" << std::endl; } // Open a sequence @@ -232,7 +263,7 @@ int main(int argc, char **argv) // Reading the images cv::Mat_ grayscale_image = sequence_reader.GetGrayFrame(); - vector > face_detections; + std::vector > face_detections; bool all_models_active = true; for (unsigned int model = 0; model < face_models.size(); ++model) @@ -248,7 +279,7 @@ int main(int argc, char **argv) { if (det_parameters[0].curr_face_detector == LandmarkDetector::FaceModelParameters::HOG_SVM_DETECTOR) { - vector confidences; + std::vector confidences; LandmarkDetector::DetectFacesHOG(face_detections, grayscale_image, face_models[0].face_detector_HOG, confidences); } else if (det_parameters[0].curr_face_detector == LandmarkDetector::FaceModelParameters::HAAR_DETECTOR) @@ -257,7 +288,7 @@ int main(int argc, char **argv) } else { - vector confidences; + std::vector confidences; LandmarkDetector::DetectFacesMTCNN(face_detections, rgb_image, face_models[0].face_detector_MTCNN, confidences); } @@ -314,6 +345,10 @@ int main(int argc, char **argv) } } + // Remove models that end up tracking overlapping faces + // even if initial bounding boxes were not overlapping, they could have ended up converging to the same face + RemoveOverlapingModels(face_models, active_models); + // Keeping track of FPS fps_tracker.AddFrame(); @@ -402,10 +437,10 @@ int main(int argc, char **argv) // Reporting progress if (sequence_reader.GetProgress() >= reported_completion / 10.0) { - cout << reported_completion * 10 << "% "; + std::cout << reported_completion * 10 << "% "; if (reported_completion == 10) { - cout << endl; + std::cout << std::endl; } reported_completion = reported_completion + 1; } diff --git a/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.vcxproj b/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.vcxproj index 6be02c90b..1b56d34e5 100644 --- a/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.vcxproj +++ b/exe/FaceLandmarkVidMulti/FaceLandmarkVidMulti.vcxproj @@ -22,32 +22,32 @@ {C3FAF36F-44BC-4454-87C2-C5106575FE50} FaceLandmarkVidMulti FaceLandmarkVidMulti - 8.1 + 10.0.17134.0 Application true - v140 + v141 Unicode Application true - v140 + v141 Unicode Application false - v140 + v141 true Unicode Application false - v140 + v141 true Unicode @@ -57,29 +57,25 @@ - - + - - + - - + - - + @@ -104,6 +100,7 @@ $(SolutionDir)\lib\local\LandmarkDetector\include;$(SolutionDir)\lib\local\Utilities\include;$(SolutionDir)\lib\local\FaceAnalyser\include;$(SolutionDir)\lib\local\GazeAnalyser\include;%(AdditionalIncludeDirectories) StreamingSIMDExtensions2 true + stdcpp17 true @@ -117,6 +114,7 @@ true + stdcpp17 true @@ -134,6 +132,7 @@ MultiThreadedDLL true Speed + stdcpp17 true @@ -155,6 +154,7 @@ true WIN64;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) Speed + stdcpp17 true diff --git a/exe/FeatureExtraction/FeatureExtraction.cpp b/exe/FeatureExtraction/FeatureExtraction.cpp index 11af6d527..02d536489 100644 --- a/exe/FeatureExtraction/FeatureExtraction.cpp +++ b/exe/FeatureExtraction/FeatureExtraction.cpp @@ -68,17 +68,15 @@ static void printErrorAndAbort(const std::string & error) #define FATAL_STREAM( stream ) \ printErrorAndAbort( std::string( "Fatal error: " ) + stream ) -using namespace std; - -vector get_arguments(int argc, char **argv) +std::vector get_arguments(int argc, char **argv) { - vector arguments; + std::vector arguments; // First argument is reserved for the name of the executable for (int i = 0; i < argc; ++i) { - arguments.push_back(string(argv[i])); + arguments.push_back(std::string(argv[i])); } return arguments; } @@ -86,13 +84,13 @@ vector get_arguments(int argc, char **argv) int main(int argc, char **argv) { - vector arguments = get_arguments(argc, argv); + std::vector arguments = get_arguments(argc, argv); // no arguments: output usage if (arguments.size() == 1) { - cout << "For command line arguments see:" << endl; - cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; + std::cout << "For command line arguments see:" << std::endl; + std::cout << " https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments"; return 0; } @@ -104,7 +102,7 @@ int main(int argc, char **argv) if (!face_model.loaded_successfully) { - cout << "ERROR: Could not load the landmark detector" << endl; + std::cout << "ERROR: Could not load the landmark detector" << std::endl; return 1; } @@ -114,12 +112,12 @@ int main(int argc, char **argv) if (!face_model.eye_model) { - cout << "WARNING: no eye model found" << endl; + std::cout << "WARNING: no eye model found" << std::endl; } if (face_analyser.GetAUClassNames().size() == 0 && face_analyser.GetAUClassNames().size() == 0) { - cout << "WARNING: no Action Unit models found" << endl; + std::cout << "WARNING: no Action Unit models found" << std::endl; } Utilities::SequenceCapture sequence_reader; @@ -158,7 +156,7 @@ int main(int argc, char **argv) Utilities::RecorderOpenFace open_face_rec(sequence_reader.name, recording_params, arguments); if (recording_params.outputGaze() && !face_model.eye_model) - cout << "WARNING: no eye model defined, but outputting gaze" << endl; + std::cout << "WARNING: no eye model defined, but outputting gaze" << std::endl; captured_image = sequence_reader.GetNextFrame(); @@ -240,10 +238,10 @@ int main(int argc, char **argv) // Reporting progress if (sequence_reader.GetProgress() >= reported_completion / 10.0) { - cout << reported_completion * 10 << "% "; + std::cout << reported_completion * 10 << "% "; if (reported_completion == 10) { - cout << endl; + std::cout << std::endl; } reported_completion = reported_completion + 1; } diff --git a/exe/FeatureExtraction/FeatureExtraction.vcxproj b/exe/FeatureExtraction/FeatureExtraction.vcxproj index e2e53ee68..dd78abd0d 100644 --- a/exe/FeatureExtraction/FeatureExtraction.vcxproj +++ b/exe/FeatureExtraction/FeatureExtraction.vcxproj @@ -22,34 +22,34 @@ {8A23C00D-767D-422D-89A3-CF225E3DAB4B} Win32Proj FeatureExtraction - 8.1 + 10.0.17134.0 Application true Unicode - v140 + v141 Application true Unicode - v140 + v141 Application false true Unicode - v140 + v141 Application false true Unicode - v140 + v141 @@ -57,29 +57,25 @@ - - + - - + - - + - - + @@ -111,6 +107,7 @@ false StreamingSIMDExtensions2 true + stdcpp17 Console @@ -128,6 +125,7 @@ true + stdcpp17 Console @@ -149,6 +147,7 @@ StreamingSIMDExtensions2 MultiThreadedDLL true + stdcpp17 Console @@ -173,6 +172,7 @@ MultiThreadedDLL true + stdcpp17 Console diff --git a/exe/Recording/Record.cpp b/exe/Recording/Record.cpp index c0c8f9461..3de604a97 100644 --- a/exe/Recording/Record.cpp +++ b/exe/Recording/Record.cpp @@ -43,14 +43,11 @@ #include #include -#include // Video write -#include // Video write #include #include -#include -#include +#include #define INFO_STREAM( stream ) \ std::cout << stream << std::endl @@ -70,8 +67,6 @@ static void printErrorAndAbort( const std::string & error ) #define FATAL_STREAM( stream ) \ printErrorAndAbort( std::string( "Fatal error: " ) + stream ) -using namespace std; - // Get current date/time, format is YYYY-MM-DD.HH:mm:ss const std::string currentDateTime() { time_t now = time(0); @@ -85,14 +80,14 @@ const std::string currentDateTime() { return buf; } -vector get_arguments(int argc, char **argv) +std::vector get_arguments(int argc, char **argv) { - vector arguments; + std::vector arguments; for(int i = 1; i < argc; ++i) { - arguments.push_back(string(argv[i])); + arguments.push_back(std::string(argv[i])); } return arguments; } @@ -100,10 +95,10 @@ vector get_arguments(int argc, char **argv) int main (int argc, char **argv) { - vector arguments = get_arguments(argc, argv); + std::vector arguments = get_arguments(argc, argv); // Some initial parameters that can be overriden from command line - string outroot, outfile; + std::string outroot, outfile; TCHAR NPath[200]; GetCurrentDirectory(200, NPath); @@ -152,16 +147,16 @@ int main (int argc, char **argv) cv::Mat img; vCap >> img; - boost::filesystem::path dir(outroot); - boost::filesystem::create_directory(dir); + std::filesystem::path dir(outroot); + std::filesystem::create_directory(dir); - string out_file = outroot + outfile; + std::string out_file = outroot + outfile; // saving the videos - cv::VideoWriter video_writer(out_file, CV_FOURCC('D','I','V','X'), 30, img.size(), true); + cv::VideoWriter video_writer(out_file, cv::VideoWriter::fourcc('D','I','V','X'), 30, img.size(), true); - ofstream outlog; - outlog.open((outroot + outfile + ".log").c_str(), ios_base::out); - outlog << "frame, time(ms)" << endl; + std::ofstream outlog; + outlog.open((outroot + outfile + ".log").c_str(), std::ios_base::out); + outlog << "frame, time(ms)" << std::endl; double freq = cv::getTickFrequency(); @@ -180,7 +175,7 @@ int main (int argc, char **argv) video_writer << img; outlog << frameProc + 1 << " " << curr_time; - outlog << endl; + outlog << std::endl; cv::imshow("rec", img); diff --git a/exe/Recording/Recording.vcxproj b/exe/Recording/Recording.vcxproj index b154bfb01..cc317ccf3 100644 --- a/exe/Recording/Recording.vcxproj +++ b/exe/Recording/Recording.vcxproj @@ -21,57 +21,53 @@ {2D80FA0B-2DE8-4475-BA5A-C08A9E1EDAAC} Recording - 8.1 + 10.0.17134.0 Application true MultiByte - v140 + v141 Application true MultiByte - v140 + v141 Application false true MultiByte - v140 + v141 Application false true MultiByte - v140 + v141 - - + - - + - - + - - + @@ -86,6 +82,7 @@ Level3 Disabled true + stdcpp17 true @@ -96,6 +93,7 @@ Level3 Disabled true + stdcpp17 true @@ -110,6 +108,7 @@ false Cdecl true + stdcpp17 true @@ -128,6 +127,7 @@ false Cdecl true + stdcpp17 true diff --git a/exe/releases/package_windows_executables.m b/exe/releases/package_windows_executables.m index b362b1243..9260bbff0 100644 --- a/exe/releases/package_windows_executables.m +++ b/exe/releases/package_windows_executables.m @@ -1,5 +1,5 @@ clear; -version = '2.1.0'; +version = '2.2.0'; out_x86 = sprintf('OpenFace_%s_win_x86', version); out_x64 = sprintf('OpenFace_%s_win_x64', version); diff --git a/gui/OpenFaceOffline/OpenFaceOffline.csproj b/gui/OpenFaceOffline/OpenFaceOffline.csproj index 779645de3..b5059538e 100644 --- a/gui/OpenFaceOffline/OpenFaceOffline.csproj +++ b/gui/OpenFaceOffline/OpenFaceOffline.csproj @@ -68,6 +68,7 @@ + diff --git a/install.sh b/install.sh index 1ed46d135..cb01115bb 100755 --- a/install.sh +++ b/install.sh @@ -1,16 +1,13 @@ #!/bin/bash #============================================================================== # Title: install.sh -# Description: Install everything necessary for OpenFace to compile. -# Author: Daniyal Shahrokhian -# Date: 20170428 -# Version : 1.02 +# Description: Install everything necessary for OpenFace to compile. +# Will install all required dependencies, only use if you do not have the dependencies +# already installed or if you don't mind specific versions of gcc,g++,cmake,opencv etc. installed +# Author: Daniyal Shahrokhian , Tadas Baltrusaitis +# Date: 20190630 +# Version : 1.03 # Usage: bash install.sh -# NOTES: There are certain steps to be taken in the system before installing -# via this script (refer to README): Run -# `sudo gedit /etc/apt/sources.list` and change the line -# `deb http://us.archive.ubuntu.com/ubuntu/ xenial main restricted` to -# `deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe` #============================================================================== # Exit script if any command fails @@ -25,19 +22,49 @@ fi # Essential Dependencies echo "Installing Essential dependencies..." + +# If we're not on 18.04 sudo apt-get -y update + +if [[ `lsb_release -rs` != "18.04" ]] + then + echo "Adding ppa:ubuntu-toolchain-r/test apt-repository " + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt-get -y update +fi + sudo apt-get -y install build-essential -sudo apt-get -y install cmake +sudo apt-get -y install gcc-8 g++-8 + +# Ubuntu 16.04 does not have newest CMake so need to build it manually +if [[ `lsb_release -rs` != "18.04" ]]; then + sudo apt-get --purge remove cmake-qt-gui -y + sudo apt-get --purge remove cmake -y + mkdir -p cmake_tmp + cd cmake_tmp + wget https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz + tar -xzvf cmake-3.10.1.tar.gz + cd cmake-3.10.1/ + ./bootstrap + make -j4 + sudo make install + cd ../.. + sudo rm -r cmake_tmp +else + sudo apt-get -y install cmake +fi + +sudo apt-get -y install zip sudo apt-get -y install libopenblas-dev liblapack-dev -sudo apt-get -y install git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -sudo apt-get -y install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev +sudo apt-get -y install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev +sudo apt-get -y install libtbb2 libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev echo "Essential dependencies installed." # OpenCV Dependency echo "Downloading OpenCV..." -wget https://github.com/opencv/opencv/archive/3.4.0.zip -unzip 3.4.0.zip -cd opencv-3.4.0 +wget https://github.com/opencv/opencv/archive/4.1.0.zip +unzip 4.1.0.zip +cd opencv-4.1.0 mkdir -p build cd build echo "Installing OpenCV..." @@ -45,8 +72,8 @@ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB make -j4 sudo make install cd ../.. -rm 3.4.0.zip -sudo rm -r opencv-3.4.0 +rm 4.1.0.zip +sudo rm -r opencv-4.1.0 echo "OpenCV installed." # dlib dependecy @@ -65,16 +92,11 @@ cd ../..; rm -r dlib-19.13.tar.bz2 echo "dlib installed" -# Boost C++ Dependency -echo "Installing Boost..." -sudo apt-get install libboost-all-dev -echo "Boost installed." - # OpenFace installation echo "Installing OpenFace..." mkdir -p build cd build -cmake -D CMAKE_BUILD_TYPE=RELEASE .. +cmake -D CMAKE_CXX_COMPILER=g++-8 -D CMAKE_C_COMPILER=gcc-8 -D CMAKE_BUILD_TYPE=RELEASE .. make cd .. echo "OpenFace successfully installed." \ No newline at end of file diff --git a/lib/3rdParty/CameraEnumerator/CameraEnumerator.vcxproj b/lib/3rdParty/CameraEnumerator/CameraEnumerator.vcxproj index 899c6be73..be2cb4373 100644 --- a/lib/3rdParty/CameraEnumerator/CameraEnumerator.vcxproj +++ b/lib/3rdParty/CameraEnumerator/CameraEnumerator.vcxproj @@ -22,32 +22,32 @@ {50B7D4BF-E33B-41D0-AA89-76BBA57BF5CC} Win32Proj CameraEnumerator - 8.1 + 10.0.17134.0 StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode @@ -78,6 +78,7 @@ Disabled WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) StreamingSIMDExtensions2 + stdcpp17 Windows @@ -92,6 +93,7 @@ _DEBUG;_LIB;%(PreprocessorDefinitions) + stdcpp17 Windows @@ -108,6 +110,7 @@ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) Speed StreamingSIMDExtensions2 + stdcpp17 Windows @@ -127,6 +130,7 @@ Speed + stdcpp17 Windows diff --git a/lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_alt.xml b/lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_alt.xml similarity index 100% rename from lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_alt.xml rename to lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_alt.xml diff --git a/lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_alt2.xml b/lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_alt2.xml similarity index 100% rename from lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_alt2.xml rename to lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_alt2.xml diff --git a/lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_alt_tree.xml b/lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_alt_tree.xml similarity index 100% rename from lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_alt_tree.xml rename to lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_alt_tree.xml diff --git a/lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_default.xml b/lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_default.xml similarity index 100% rename from lib/3rdParty/OpenCV3.4/classifiers/haarcascade_frontalface_default.xml rename to lib/3rdParty/OpenCV/classifiers/haarcascade_frontalface_default.xml diff --git a/lib/3rdParty/OpenCV3.4/classifiers/haarcascade_profileface.xml b/lib/3rdParty/OpenCV/classifiers/haarcascade_profileface.xml similarity index 100% rename from lib/3rdParty/OpenCV3.4/classifiers/haarcascade_profileface.xml rename to lib/3rdParty/OpenCV/classifiers/haarcascade_profileface.xml diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/calib3d.hpp b/lib/3rdParty/OpenCV/include/opencv2/calib3d.hpp similarity index 77% rename from lib/3rdParty/OpenCV3.4/include/opencv2/calib3d.hpp rename to lib/3rdParty/OpenCV/include/opencv2/calib3d.hpp index 74b63c6cc..b6f3b3069 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/calib3d.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/calib3d.hpp @@ -118,9 +118,10 @@ v = f_y*y'' + c_y tangential distortion coefficients. \f$s_1\f$, \f$s_2\f$, \f$s_3\f$, and \f$s_4\f$, are the thin prism distortion coefficients. Higher-order coefficients are not considered in OpenCV. -The next figure shows two common types of radial distortion: barrel distortion (typically \f$ k_1 > 0 \f$ and pincushion distortion (typically \f$ k_1 < 0 \f$). +The next figures show two common types of radial distortion: barrel distortion (typically \f$ k_1 < 0 \f$) and pincushion distortion (typically \f$ k_1 > 0 \f$). ![](pics/distortion_examples.png) +![](pics/distortion_examples2.png) In some cases the image sensor may be tilted in order to focus an oblique plane in front of the camera (Scheimpfug condition). This can be useful for particle image velocimetry (PIV) or @@ -170,14 +171,12 @@ pattern (every view is described by several 3D-2D point correspondences). *rectification* transformation that makes the camera optical axes parallel. @note - - A calibration sample for 3 cameras in horizontal position can be found at + - A calibration sample for 3 cameras in horizontal position can be found at opencv_source_code/samples/cpp/3calibration.cpp - A calibration sample based on a sequence of images can be found at opencv_source_code/samples/cpp/calibration.cpp - A calibration sample in order to do 3D reconstruction can be found at opencv_source_code/samples/cpp/build3dmodel.cpp - - A calibration sample of an artificially generated camera and chessboard patterns can be - found at opencv_source_code/samples/cpp/calibration_artificial.cpp - A calibration example on stereo calibration can be found at opencv_source_code/samples/cpp/stereo_calib.cpp - A calibration example on stereo matching can be found at @@ -227,7 +226,7 @@ namespace cv //! @{ //! type of the robust estimation algorithm -enum { LMEDS = 4, //!< least-median algorithm +enum { LMEDS = 4, //!< least-median of squares algorithm RANSAC = 8, //!< RANSAC algorithm RHO = 16 //!< RHO algorithm }; @@ -244,7 +243,9 @@ enum { SOLVEPNP_ITERATIVE = 0, enum { CALIB_CB_ADAPTIVE_THRESH = 1, CALIB_CB_NORMALIZE_IMAGE = 2, CALIB_CB_FILTER_QUADS = 4, - CALIB_CB_FAST_CHECK = 8 + CALIB_CB_FAST_CHECK = 8, + CALIB_CB_EXHAUSTIVE = 16, + CALIB_CB_ACCURACY = 32 }; enum { CALIB_CB_SYMMETRIC_GRID = 1, @@ -252,7 +253,8 @@ enum { CALIB_CB_SYMMETRIC_GRID = 1, CALIB_CB_CLUSTERING = 4 }; -enum { CALIB_USE_INTRINSIC_GUESS = 0x00001, +enum { CALIB_NINTRINSIC = 18, + CALIB_USE_INTRINSIC_GUESS = 0x00001, CALIB_FIX_ASPECT_RATIO = 0x00002, CALIB_FIX_PRINCIPAL_POINT = 0x00004, CALIB_ZERO_TANGENT_DIST = 0x00008, @@ -276,15 +278,24 @@ enum { CALIB_USE_INTRINSIC_GUESS = 0x00001, // for stereo rectification CALIB_ZERO_DISPARITY = 0x00400, CALIB_USE_LU = (1 << 17), //!< use LU instead of SVD decomposition for solving. much faster but potentially less precise + CALIB_USE_EXTRINSIC_GUESS = (1 << 22) //!< for stereoCalibrate }; //! the algorithm for finding fundamental matrix enum { FM_7POINT = 1, //!< 7-point algorithm FM_8POINT = 2, //!< 8-point algorithm - FM_LMEDS = 4, //!< least-median algorithm - FM_RANSAC = 8 //!< RANSAC algorithm + FM_LMEDS = 4, //!< least-median algorithm. 7-point algorithm is used. + FM_RANSAC = 8 //!< RANSAC algorithm. It needs at least 15 points. 7-point algorithm is used. }; +enum HandEyeCalibrationMethod +{ + CALIB_HAND_EYE_TSAI = 0, //!< A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibration @cite Tsai89 + CALIB_HAND_EYE_PARK = 1, //!< Robot Sensor Calibration: Solving AX = XB on the Euclidean Group @cite Park94 + CALIB_HAND_EYE_HORAUD = 2, //!< Hand-eye Calibration @cite Horaud95 + CALIB_HAND_EYE_ANDREFF = 3, //!< On-line Hand-Eye Calibration @cite Andreff99 + CALIB_HAND_EYE_DANIILIDIS = 4 //!< Hand-Eye Calibration Using Dual Quaternions @cite Daniilidis98 +}; /** @brief Converts a rotation matrix to a rotation vector or vice versa. @@ -306,11 +317,73 @@ optimization procedures like calibrateCamera, stereoCalibrate, or solvePnP . */ CV_EXPORTS_W void Rodrigues( InputArray src, OutputArray dst, OutputArray jacobian = noArray() ); -/** @example pose_from_homography.cpp - An example program about pose estimation from coplanar points +/** @example samples/cpp/tutorial_code/features2D/Homography/pose_from_homography.cpp +An example program about pose estimation from coplanar points - Check @ref tutorial_homography "the corresponding tutorial" for more details - */ +Check @ref tutorial_homography "the corresponding tutorial" for more details +*/ + +/** Levenberg-Marquardt solver. Starting with the specified vector of parameters it + optimizes the target vector criteria "err" + (finds local minima of each target vector component absolute value). + + When needed, it calls user-provided callback. +*/ +class CV_EXPORTS LMSolver : public Algorithm +{ +public: + class CV_EXPORTS Callback + { + public: + virtual ~Callback() {} + /** + computes error and Jacobian for the specified vector of parameters + + @param param the current vector of parameters + @param err output vector of errors: err_i = actual_f_i - ideal_f_i + @param J output Jacobian: J_ij = d(err_i)/d(param_j) + + when J=noArray(), it means that it does not need to be computed. + Dimensionality of error vector and param vector can be different. + The callback should explicitly allocate (with "create" method) each output array + (unless it's noArray()). + */ + virtual bool compute(InputArray param, OutputArray err, OutputArray J) const = 0; + }; + + /** + Runs Levenberg-Marquardt algorithm using the passed vector of parameters as the start point. + The final vector of parameters (whether the algorithm converged or not) is stored at the same + vector. The method returns the number of iterations used. If it's equal to the previously specified + maxIters, there is a big chance the algorithm did not converge. + + @param param initial/final vector of parameters. + + Note that the dimensionality of parameter space is defined by the size of param vector, + and the dimensionality of optimized criteria is defined by the size of err vector + computed by the callback. + */ + virtual int run(InputOutputArray param) const = 0; + + /** + Sets the maximum number of iterations + @param maxIters the number of iterations + */ + virtual void setMaxIters(int maxIters) = 0; + /** + Retrieves the current maximum number of iterations + */ + virtual int getMaxIters() const = 0; + + /** + Creates Levenberg-Marquard solver + + @param cb callback + @param maxIters maximum number of iterations that can be further + modified using setMaxIters() method. + */ + static Ptr create(const Ptr& cb, int maxIters); +}; /** @brief Finds a perspective transformation between two planes. @@ -318,19 +391,19 @@ CV_EXPORTS_W void Rodrigues( InputArray src, OutputArray dst, OutputArray jacobi or vector\ . @param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or a vector\ . -@param method Method used to computed a homography matrix. The following methods are possible: -- **0** - a regular method using all the points +@param method Method used to compute a homography matrix. The following methods are possible: +- **0** - a regular method using all the points, i.e., the least squares method - **RANSAC** - RANSAC-based robust method - **LMEDS** - Least-Median robust method -- **RHO** - PROSAC-based robust method +- **RHO** - PROSAC-based robust method @param ransacReprojThreshold Maximum allowed reprojection error to treat a point pair as an inlier (used in the RANSAC and RHO methods only). That is, if -\f[\| \texttt{dstPoints} _i - \texttt{convertPointsHomogeneous} ( \texttt{H} * \texttt{srcPoints} _i) \| > \texttt{ransacReprojThreshold}\f] -then the point \f$i\f$ is considered an outlier. If srcPoints and dstPoints are measured in pixels, +\f[\| \texttt{dstPoints} _i - \texttt{convertPointsHomogeneous} ( \texttt{H} * \texttt{srcPoints} _i) \|_2 > \texttt{ransacReprojThreshold}\f] +then the point \f$i\f$ is considered as an outlier. If srcPoints and dstPoints are measured in pixels, it usually makes sense to set this parameter somewhere in the range of 1 to 10. @param mask Optional output mask set by a robust method ( RANSAC or LMEDS ). Note that the input mask values are ignored. -@param maxIters The maximum number of RANSAC iterations, 2000 is the maximum it can be. +@param maxIters The maximum number of RANSAC iterations. @param confidence Confidence level, between 0 and 1. The function finds and returns the perspective transformation \f$H\f$ between the source and the @@ -348,10 +421,10 @@ pairs to compute an initial homography estimate with a simple least-squares sche However, if not all of the point pairs ( \f$srcPoints_i\f$, \f$dstPoints_i\f$ ) fit the rigid perspective transformation (that is, there are some outliers), this initial estimate will be poor. In this case, you can use one of the three robust methods. The methods RANSAC, LMeDS and RHO try many different -random subsets of the corresponding point pairs (of four pairs each), estimate the homography matrix -using this subset and a simple least-square algorithm, and then compute the quality/goodness of the -computed homography (which is the number of inliers for RANSAC or the median re-projection error for -LMeDs). The best subset is then used to produce the initial estimate of the homography matrix and +random subsets of the corresponding point pairs (of four pairs each, collinear pairs are discarded), estimate the homography matrix +using this subset and a simple least-squares algorithm, and then compute the quality/goodness of the +computed homography (which is the number of inliers for RANSAC or the least median re-projection error for +LMeDS). The best subset is then used to produce the initial estimate of the homography matrix and the mask of inliers/outliers. Regardless of the method, robust or not, the computed homography matrix is refined further (using @@ -364,7 +437,7 @@ correctly only when there are more than 50% of inliers. Finally, if there are no noise is rather small, use the default method (method=0). The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is -determined up to a scale. Thus, it is normalized so that \f$h_{33}=1\f$. Note that whenever an H matrix +determined up to a scale. Thus, it is normalized so that \f$h_{33}=1\f$. Note that whenever an \f$H\f$ matrix cannot be estimated, an empty one will be returned. @sa @@ -525,11 +598,11 @@ CV_EXPORTS_W void projectPoints( InputArray objectPoints, OutputArray jacobian = noArray(), double aspectRatio = 0 ); -/** @example homography_from_camera_displacement.cpp - An example program about homography from the camera displacement +/** @example samples/cpp/tutorial_code/features2D/Homography/homography_from_camera_displacement.cpp +An example program about homography from the camera displacement - Check @ref tutorial_homography "the corresponding tutorial" for more details - */ +Check @ref tutorial_homography "the corresponding tutorial" for more details +*/ /** @brief Finds an object pose from 3D-2D point correspondences. @@ -792,7 +865,7 @@ CV_EXPORTS_W Mat initCameraMatrix2D( InputArrayOfArrays objectPoints, @param image Source chessboard view. It must be an 8-bit grayscale or color image. @param patternSize Number of inner corners per a chessboard row and column -( patternSize = cvSize(points_per_row,points_per_colum) = cvSize(columns,rows) ). +( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ). @param corners Output array of detected corners. @param flags Various operation flags that can be zero or a combination of the following values: - **CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black @@ -840,6 +913,44 @@ square grouping and ordering algorithm fails. CV_EXPORTS_W bool findChessboardCorners( InputArray image, Size patternSize, OutputArray corners, int flags = CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE ); +/* + Checks whether the image contains chessboard of the specific size or not. + If yes, nonzero value is returned. +*/ +CV_EXPORTS_W bool checkChessboard(InputArray img, Size size); + +/** @brief Finds the positions of internal corners of the chessboard using a sector based approach. + +@param image Source chessboard view. It must be an 8-bit grayscale or color image. +@param patternSize Number of inner corners per a chessboard row and column +( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ). +@param corners Output array of detected corners. +@param flags Various operation flags that can be zero or a combination of the following values: +- **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before detection. +- **CALIB_CB_EXHAUSTIVE ** Run an exhaustive search to improve detection rate. +- **CALIB_CB_ACCURACY ** Up sample input image to improve sub-pixel accuracy due to aliasing effects. +This should be used if an accurate camera calibration is required. + +The function is analog to findchessboardCorners but uses a localized radon +transformation approximated by box filters being more robust to all sort of +noise, faster on larger images and is able to directly return the sub-pixel +position of the internal chessboard corners. The Method is based on the paper +@cite duda2018 "Accurate Detection and Localization of Checkerboard Corners for +Calibration" demonstrating that the returned sub-pixel positions are more +accurate than the one returned by cornerSubPix allowing a precise camera +calibration for demanding applications. + +@note The function requires a white boarder with roughly the same width as one +of the checkerboard fields around the whole board to improve the detection in +various environments. In addition, because of the localized radon +transformation it is beneficial to use round corners for the field corners +which are located on the outside of the board. The following figure illustrates +a sample checkerboard optimized for the detection. However, any other checkerboard +can be used as well. +![Checkerboard](pics/checkerboard_radon.png) + */ +CV_EXPORTS_W bool findChessboardCornersSB(InputArray image,Size patternSize, OutputArray corners,int flags=0); + //! finds subpixel-accurate positions of the chessboard corners CV_EXPORTS bool find4QuadCornerSubpix( InputArray img, InputOutputArray corners, Size region_size ); @@ -858,6 +969,26 @@ found, or as colored corners connected with lines if the board was found. CV_EXPORTS_W void drawChessboardCorners( InputOutputArray image, Size patternSize, InputArray corners, bool patternWasFound ); +/** @brief Draw axes of the world/object coordinate system from pose estimation. @sa solvePnP + +@param image Input/output image. It must have 1 or 3 channels. The number of channels is not altered. +@param cameraMatrix Input 3x3 floating-point matrix of camera intrinsic parameters. +\f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ +@param distCoeffs Input vector of distortion coefficients +\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ of +4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed. +@param rvec Rotation vector (see @ref Rodrigues ) that, together with tvec , brings points from +the model coordinate system to the camera coordinate system. +@param tvec Translation vector. +@param length Length of the painted axes in the same unit than tvec (usually in meters). +@param thickness Line thickness of the painted axes. + +This function draws the axes of the world/object coordinate system w.r.t. to the camera frame. +OX is drawn in red, OY in green and OZ in blue. + */ +CV_EXPORTS_W void drawFrameAxes(InputOutputArray image, InputArray cameraMatrix, InputArray distCoeffs, + InputArray rvec, InputArray tvec, float length, int thickness=3); + struct CV_EXPORTS_W_SIMPLE CirclesGridFinderParameters { CV_WRAP CirclesGridFinderParameters(); @@ -880,16 +1011,15 @@ struct CV_EXPORTS_W_SIMPLE CirclesGridFinderParameters SYMMETRIC_GRID, ASYMMETRIC_GRID }; GridType gridType; -}; - -struct CV_EXPORTS_W_SIMPLE CirclesGridFinderParameters2 : public CirclesGridFinderParameters -{ - CV_WRAP CirclesGridFinderParameters2(); CV_PROP_RW float squareSize; //!< Distance between two adjacent points. Used by CALIB_CB_CLUSTERING. CV_PROP_RW float maxRectifiedDistance; //!< Max deviation from predicion. Used by CALIB_CB_CLUSTERING. }; +#ifndef DISABLE_OPENCV_3_COMPATIBILITY +typedef CirclesGridFinderParameters CirclesGridFinderParameters2; +#endif + /** @brief Finds centers in the grid of circles. @param image grid view of input circles; it must be an 8-bit grayscale or color image. @@ -925,13 +1055,7 @@ the board to make the detection more robust in various environments. CV_EXPORTS_W bool findCirclesGrid( InputArray image, Size patternSize, OutputArray centers, int flags, const Ptr &blobDetector, - CirclesGridFinderParameters parameters); - -/** @overload */ -CV_EXPORTS_W bool findCirclesGrid2( InputArray image, Size patternSize, - OutputArray centers, int flags, - const Ptr &blobDetector, - CirclesGridFinderParameters2 parameters); + const CirclesGridFinderParameters& parameters); /** @overload */ CV_EXPORTS_W bool findCirclesGrid( InputArray image, Size patternSize, @@ -1049,7 +1173,7 @@ The algorithm performs the following steps: patternSize=cvSize(cols,rows) in findChessboardCorners . @sa - findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort + calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort */ CV_EXPORTS_AS(calibrateCameraExtended) double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, @@ -1061,18 +1185,89 @@ CV_EXPORTS_AS(calibrateCameraExtended) double calibrateCamera( InputArrayOfArray int flags = 0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ); -/** @overload double calibrateCamera( InputArrayOfArrays objectPoints, +/** @overload */ +CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, - OutputArray stdDeviations, OutputArray perViewErrors, int flags = 0, TermCriteria criteria = TermCriteria( - TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ) + TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ); + +/** @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern. + +This function is an extension of calibrateCamera() with the method of releasing object which was +proposed in @cite strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar +targets (calibration plates), this method can dramatically improve the precision of the estimated +camera parameters. Both the object-releasing method and standard method are supported by this +function. Use the parameter **iFixedPoint** for method selection. In the internal implementation, +calibrateCamera() is a wrapper for this function. + +@param objectPoints Vector of vectors of calibration pattern points in the calibration pattern +coordinate space. See calibrateCamera() for details. If the method of releasing object to be used, +the identical calibration board must be used in each view and it must be fully visible, and all +objectPoints[i] must be the same and all points should be roughly close to a plane. **The calibration +target has to be rigid, or at least static if the camera (rather than the calibration target) is +shifted for grabbing images.** +@param imagePoints Vector of vectors of the projections of calibration pattern points. See +calibrateCamera() for details. +@param imageSize Size of the image used only to initialize the intrinsic camera matrix. +@param iFixedPoint The index of the 3D object point in objectPoints[0] to be fixed. It also acts as +a switch for calibration method selection. If object-releasing method to be used, pass in the +parameter in the range of [1, objectPoints[0].size()-2], otherwise a value out of this range will +make standard calibration method selected. Usually the top-right corner point of the calibration +board grid is recommended to be fixed when object-releasing method being utilized. According to +\cite strobl2011iccv, two other points are also fixed. In this implementation, objectPoints[0].front +and objectPoints[0].back.z are used. With object-releasing method, accurate rvecs, tvecs and +newObjPoints are only possible if coordinates of these three fixed points are accurate enough. +@param cameraMatrix Output 3x3 floating-point camera matrix. See calibrateCamera() for details. +@param distCoeffs Output vector of distortion coefficients. See calibrateCamera() for details. +@param rvecs Output vector of rotation vectors estimated for each pattern view. See calibrateCamera() +for details. +@param tvecs Output vector of translation vectors estimated for each pattern view. +@param newObjPoints The updated output vector of calibration pattern points. The coordinates might +be scaled based on three fixed points. The returned coordinates are accurate only if the above +mentioned three fixed points are accurate. If not needed, noArray() can be passed in. This parameter +is ignored with standard calibration method. +@param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters. +See calibrateCamera() for details. +@param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters. +See calibrateCamera() for details. +@param stdDeviationsObjPoints Output vector of standard deviations estimated for refined coordinates +of calibration pattern points. It has the same size and order as objectPoints[0] vector. This +parameter is ignored with standard calibration method. + @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view. +@param flags Different flags that may be zero or a combination of some predefined values. See +calibrateCamera() for details. If the method of releasing object is used, the calibration time may +be much longer. CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with potentially +less precise and less stable in some rare cases. +@param criteria Termination criteria for the iterative optimization algorithm. + +@return the overall RMS re-projection error. + +The function estimates the intrinsic camera parameters and extrinsic parameters for each of the +views. The algorithm is based on @cite Zhang2000, @cite BouguetMCT and @cite strobl2011iccv. See +calibrateCamera() for other detailed explanations. +@sa + calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort */ -CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints, - InputArrayOfArrays imagePoints, Size imageSize, +CV_EXPORTS_AS(calibrateCameraROExtended) double calibrateCameraRO( InputArrayOfArrays objectPoints, + InputArrayOfArrays imagePoints, Size imageSize, int iFixedPoint, + InputOutputArray cameraMatrix, InputOutputArray distCoeffs, + OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, + OutputArray newObjPoints, + OutputArray stdDeviationsIntrinsics, + OutputArray stdDeviationsExtrinsics, + OutputArray stdDeviationsObjPoints, + OutputArray perViewErrors, + int flags = 0, TermCriteria criteria = TermCriteria( + TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ); + +/** @overload */ +CV_EXPORTS_W double calibrateCameraRO( InputArrayOfArrays objectPoints, + InputArrayOfArrays imagePoints, Size imageSize, int iFixedPoint, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, + OutputArray newObjPoints, int flags = 0, TermCriteria criteria = TermCriteria( TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ); @@ -1125,11 +1320,14 @@ is similar to distCoeffs1 . @param T Output translation vector between the coordinate systems of the cameras. @param E Output essential matrix. @param F Output fundamental matrix. +@param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view. @param flags Different flags that may be zero or a combination of the following values: - **CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E , and F matrices are estimated. - **CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters according to the specified flags. Initial values are provided by the user. +- **CALIB_USE_EXTRINSIC_GUESS** R, T contain valid initial values that are optimized further. +Otherwise R, T are initialized to the median value of the pattern views (each dimension separately). - **CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization. - **CALIB_FIX_FOCAL_LENGTH** Fix \f$f^{(j)}_x\f$ and \f$f^{(j)}_y\f$ . - **CALIB_FIX_ASPECT_RATIO** Optimize \f$f^{(j)}_y\f$ . Fix the ratio \f$f^{(j)}_x/f^{(j)}_y\f$ @@ -1194,6 +1392,15 @@ Similarly to calibrateCamera , the function minimizes the total re-projection er points in all the available views from both cameras. The function returns the final value of the re-projection error. */ +CV_EXPORTS_AS(stereoCalibrateExtended) double stereoCalibrate( InputArrayOfArrays objectPoints, + InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2, + InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1, + InputOutputArray cameraMatrix2, InputOutputArray distCoeffs2, + Size imageSize, InputOutputArray R,InputOutputArray T, OutputArray E, OutputArray F, + OutputArray perViewErrors, int flags = CALIB_FIX_INTRINSIC, + TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6) ); + +/// @overload CV_EXPORTS_W double stereoCalibrate( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints1, InputArrayOfArrays imagePoints2, InputOutputArray cameraMatrix1, InputOutputArray distCoeffs1, @@ -1202,7 +1409,6 @@ CV_EXPORTS_W double stereoCalibrate( InputArrayOfArrays objectPoints, int flags = CALIB_FIX_INTRINSIC, TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 1e-6) ); - /** @brief Computes rectification transforms for each head of a calibrated stereo camera. @param cameraMatrix1 First camera matrix. @@ -1369,6 +1575,139 @@ CV_EXPORTS_W Mat getOptimalNewCameraMatrix( InputArray cameraMatrix, InputArray CV_OUT Rect* validPixROI = 0, bool centerPrincipalPoint = false); +/** @brief Computes Hand-Eye calibration: \f$_{}^{g}\textrm{T}_c\f$ + +@param[in] R_gripper2base Rotation part extracted from the homogeneous matrix that transforms a point +expressed in the gripper frame to the robot base frame (\f$_{}^{b}\textrm{T}_g\f$). +This is a vector (`vector`) that contains the rotation matrices for all the transformations +from gripper frame to robot base frame. +@param[in] t_gripper2base Translation part extracted from the homogeneous matrix that transforms a point +expressed in the gripper frame to the robot base frame (\f$_{}^{b}\textrm{T}_g\f$). +This is a vector (`vector`) that contains the translation vectors for all the transformations +from gripper frame to robot base frame. +@param[in] R_target2cam Rotation part extracted from the homogeneous matrix that transforms a point +expressed in the target frame to the camera frame (\f$_{}^{c}\textrm{T}_t\f$). +This is a vector (`vector`) that contains the rotation matrices for all the transformations +from calibration target frame to camera frame. +@param[in] t_target2cam Rotation part extracted from the homogeneous matrix that transforms a point +expressed in the target frame to the camera frame (\f$_{}^{c}\textrm{T}_t\f$). +This is a vector (`vector`) that contains the translation vectors for all the transformations +from calibration target frame to camera frame. +@param[out] R_cam2gripper Estimated rotation part extracted from the homogeneous matrix that transforms a point +expressed in the camera frame to the gripper frame (\f$_{}^{g}\textrm{T}_c\f$). +@param[out] t_cam2gripper Estimated translation part extracted from the homogeneous matrix that transforms a point +expressed in the camera frame to the gripper frame (\f$_{}^{g}\textrm{T}_c\f$). +@param[in] method One of the implemented Hand-Eye calibration method, see cv::HandEyeCalibrationMethod + +The function performs the Hand-Eye calibration using various methods. One approach consists in estimating the +rotation then the translation (separable solutions) and the following methods are implemented: + - R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration \cite Tsai89 + - F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group \cite Park94 + - R. Horaud, F. Dornaika Hand-Eye Calibration \cite Horaud95 + +Another approach consists in estimating simultaneously the rotation and the translation (simultaneous solutions), +with the following implemented method: + - N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration \cite Andreff99 + - K. Daniilidis Hand-Eye Calibration Using Dual Quaternions \cite Daniilidis98 + +The following picture describes the Hand-Eye calibration problem where the transformation between a camera ("eye") +mounted on a robot gripper ("hand") has to be estimated. + +![](pics/hand-eye_figure.png) + +The calibration procedure is the following: + - a static calibration pattern is used to estimate the transformation between the target frame + and the camera frame + - the robot gripper is moved in order to acquire several poses + - for each pose, the homogeneous transformation between the gripper frame and the robot base frame is recorded using for + instance the robot kinematics +\f[ + \begin{bmatrix} + X_b\\ + Y_b\\ + Z_b\\ + 1 + \end{bmatrix} + = + \begin{bmatrix} + _{}^{b}\textrm{R}_g & _{}^{b}\textrm{t}_g \\ + 0_{1 \times 3} & 1 + \end{bmatrix} + \begin{bmatrix} + X_g\\ + Y_g\\ + Z_g\\ + 1 + \end{bmatrix} +\f] + - for each pose, the homogeneous transformation between the calibration target frame and the camera frame is recorded using + for instance a pose estimation method (PnP) from 2D-3D point correspondences +\f[ + \begin{bmatrix} + X_c\\ + Y_c\\ + Z_c\\ + 1 + \end{bmatrix} + = + \begin{bmatrix} + _{}^{c}\textrm{R}_t & _{}^{c}\textrm{t}_t \\ + 0_{1 \times 3} & 1 + \end{bmatrix} + \begin{bmatrix} + X_t\\ + Y_t\\ + Z_t\\ + 1 + \end{bmatrix} +\f] + +The Hand-Eye calibration procedure returns the following homogeneous transformation +\f[ + \begin{bmatrix} + X_g\\ + Y_g\\ + Z_g\\ + 1 + \end{bmatrix} + = + \begin{bmatrix} + _{}^{g}\textrm{R}_c & _{}^{g}\textrm{t}_c \\ + 0_{1 \times 3} & 1 + \end{bmatrix} + \begin{bmatrix} + X_c\\ + Y_c\\ + Z_c\\ + 1 + \end{bmatrix} +\f] + +This problem is also known as solving the \f$\mathbf{A}\mathbf{X}=\mathbf{X}\mathbf{B}\f$ equation: +\f[ + \begin{align*} + ^{b}{\textrm{T}_g}^{(1)} \hspace{0.2em} ^{g}\textrm{T}_c \hspace{0.2em} ^{c}{\textrm{T}_t}^{(1)} &= + \hspace{0.1em} ^{b}{\textrm{T}_g}^{(2)} \hspace{0.2em} ^{g}\textrm{T}_c \hspace{0.2em} ^{c}{\textrm{T}_t}^{(2)} \\ + + (^{b}{\textrm{T}_g}^{(2)})^{-1} \hspace{0.2em} ^{b}{\textrm{T}_g}^{(1)} \hspace{0.2em} ^{g}\textrm{T}_c &= + \hspace{0.1em} ^{g}\textrm{T}_c \hspace{0.2em} ^{c}{\textrm{T}_t}^{(2)} (^{c}{\textrm{T}_t}^{(1)})^{-1} \\ + + \textrm{A}_i \textrm{X} &= \textrm{X} \textrm{B}_i \\ + \end{align*} +\f] + +\note +Additional information can be found on this [website](http://campar.in.tum.de/Chair/HandEyeCalibration). +\note +A minimum of 2 motions with non parallel rotation axes are necessary to determine the hand-eye transformation. +So at least 3 different poses are required, but it is strongly recommended to use many more poses. + + */ +CV_EXPORTS_W void calibrateHandEye( InputArrayOfArrays R_gripper2base, InputArrayOfArrays t_gripper2base, + InputArrayOfArrays R_target2cam, InputArrayOfArrays t_target2cam, + OutputArray R_cam2gripper, OutputArray t_cam2gripper, + HandEyeCalibrationMethod method=CALIB_HAND_EYE_TSAI ); + /** @brief Converts points from Euclidean to homogeneous space. @param src Input vector of N-dimensional points. @@ -1412,11 +1751,11 @@ floating-point (single or double precision). - **CV_FM_8POINT** for an 8-point algorithm. \f$N \ge 8\f$ - **CV_FM_RANSAC** for the RANSAC algorithm. \f$N \ge 8\f$ - **CV_FM_LMEDS** for the LMedS algorithm. \f$N \ge 8\f$ -@param param1 Parameter used for RANSAC. It is the maximum distance from a point to an epipolar +@param ransacReprojThreshold Parameter used only for RANSAC. It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise. -@param param2 Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level +@param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level of confidence (probability) that the estimated matrix is correct. @param mask @@ -1454,13 +1793,13 @@ stereoRectifyUncalibrated to compute the rectification transformation. : */ CV_EXPORTS_W Mat findFundamentalMat( InputArray points1, InputArray points2, int method = FM_RANSAC, - double param1 = 3., double param2 = 0.99, + double ransacReprojThreshold = 3., double confidence = 0.99, OutputArray mask = noArray() ); /** @overload */ CV_EXPORTS Mat findFundamentalMat( InputArray points1, InputArray points2, OutputArray mask, int method = FM_RANSAC, - double param1 = 3., double param2 = 0.99 ); + double ransacReprojThreshold = 3., double confidence = 0.99 ); /** @brief Calculates an essential matrix from the corresponding points in two images. @@ -1770,21 +2109,62 @@ CV_EXPORTS_W void reprojectImageTo3D( InputArray disparity, /** @brief Calculates the Sampson Distance between two points. -The function sampsonDistance calculates and returns the first order approximation of the geometric error as: -\f[sd( \texttt{pt1} , \texttt{pt2} )= \frac{(\texttt{pt2}^t \cdot \texttt{F} \cdot \texttt{pt1})^2}{(\texttt{F} \cdot \texttt{pt1})(0) + (\texttt{F} \cdot \texttt{pt1})(1) + (\texttt{F}^t \cdot \texttt{pt2})(0) + (\texttt{F}^t \cdot \texttt{pt2})(1)}\f] -The fundamental matrix may be calculated using the cv::findFundamentalMat function. See HZ 11.4.3 for details. +The function cv::sampsonDistance calculates and returns the first order approximation of the geometric error as: +\f[ +sd( \texttt{pt1} , \texttt{pt2} )= +\frac{(\texttt{pt2}^t \cdot \texttt{F} \cdot \texttt{pt1})^2} +{((\texttt{F} \cdot \texttt{pt1})(0))^2 + +((\texttt{F} \cdot \texttt{pt1})(1))^2 + +((\texttt{F}^t \cdot \texttt{pt2})(0))^2 + +((\texttt{F}^t \cdot \texttt{pt2})(1))^2} +\f] +The fundamental matrix may be calculated using the cv::findFundamentalMat function. See @cite HartleyZ00 11.4.3 for details. @param pt1 first homogeneous 2d point @param pt2 second homogeneous 2d point @param F fundamental matrix +@return The computed Sampson distance. */ CV_EXPORTS_W double sampsonDistance(InputArray pt1, InputArray pt2, InputArray F); /** @brief Computes an optimal affine transformation between two 3D point sets. -@param src First input 3D point set. -@param dst Second input 3D point set. -@param out Output 3D affine transformation matrix \f$3 \times 4\f$ . -@param inliers Output vector indicating which points are inliers. +It computes +\f[ +\begin{bmatrix} +x\\ +y\\ +z\\ +\end{bmatrix} += +\begin{bmatrix} +a_{11} & a_{12} & a_{13}\\ +a_{21} & a_{22} & a_{23}\\ +a_{31} & a_{32} & a_{33}\\ +\end{bmatrix} +\begin{bmatrix} +X\\ +Y\\ +Z\\ +\end{bmatrix} ++ +\begin{bmatrix} +b_1\\ +b_2\\ +b_3\\ +\end{bmatrix} +\f] + +@param src First input 3D point set containing \f$(X,Y,Z)\f$. +@param dst Second input 3D point set containing \f$(x,y,z)\f$. +@param out Output 3D affine transformation matrix \f$3 \times 4\f$ of the form +\f[ +\begin{bmatrix} +a_{11} & a_{12} & a_{13} & b_1\\ +a_{21} & a_{22} & a_{23} & b_2\\ +a_{31} & a_{32} & a_{33} & b_3\\ +\end{bmatrix} +\f] +@param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier). @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything @@ -1800,16 +2180,38 @@ CV_EXPORTS_W int estimateAffine3D(InputArray src, InputArray dst, /** @brief Computes an optimal affine transformation between two 2D point sets. -@param from First input 2D point set. -@param to Second input 2D point set. -@param inliers Output vector indicating which points are inliers. +It computes +\f[ +\begin{bmatrix} +x\\ +y\\ +\end{bmatrix} += +\begin{bmatrix} +a_{11} & a_{12}\\ +a_{21} & a_{22}\\ +\end{bmatrix} +\begin{bmatrix} +X\\ +Y\\ +\end{bmatrix} ++ +\begin{bmatrix} +b_1\\ +b_2\\ +\end{bmatrix} +\f] + +@param from First input 2D point set containing \f$(X,Y)\f$. +@param to Second input 2D point set containing \f$(x,y)\f$. +@param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier). @param method Robust method used to compute transformation. The following methods are possible: - cv::RANSAC - RANSAC-based robust method - cv::LMEDS - Least-Median robust method RANSAC is the default method. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. -@param maxIters The maximum number of robust method iterations, 2000 is the maximum it can be. +@param maxIters The maximum number of robust method iterations. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. @@ -1817,7 +2219,13 @@ significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated Passing 0 will disable refining, so the output matrix will be output of robust method. @return Output 2D affine transformation matrix \f$2 \times 3\f$ or empty matrix if transformation -could not be estimated. +could not be estimated. The returned matrix has the following form: +\f[ +\begin{bmatrix} +a_{11} & a_{12} & b_1\\ +a_{21} & a_{22} & b_2\\ +\end{bmatrix} +\f] The function estimates an optimal 2D affine transformation between two 2D point sets using the selected robust algorithm. @@ -1826,7 +2234,7 @@ The computed transformation is then refined further (using only inliers) with th Levenberg-Marquardt method to reduce the re-projection error even more. @note -The RANSAC method can handle practically any ratio of outliers but need a threshold to +The RANSAC method can handle practically any ratio of outliers but needs a threshold to distinguish inliers from outliers. The method LMeDS does not need any threshold but it works correctly only when there are more than 50% of inliers. @@ -1849,7 +2257,7 @@ two 2D point sets. RANSAC is the default method. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as an inlier. Applies only to RANSAC. -@param maxIters The maximum number of robust method iterations, 2000 is the maximum it can be. +@param maxIters The maximum number of robust method iterations. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation. @@ -1867,10 +2275,10 @@ The computed transformation is then refined further (using only inliers) with th Levenberg-Marquardt method to reduce the re-projection error even more. Estimated transformation matrix is: -\f[ \begin{bmatrix} \cos(\theta)s & -\sin(\theta)s & tx \\ - \sin(\theta)s & \cos(\theta)s & ty +\f[ \begin{bmatrix} \cos(\theta) \cdot s & -\sin(\theta) \cdot s & t_x \\ + \sin(\theta) \cdot s & \cos(\theta) \cdot s & t_y \end{bmatrix} \f] -Where \f$ \theta \f$ is the rotation angle, \f$ s \f$ the scaling factor and \f$ tx, ty \f$ are +Where \f$ \theta \f$ is the rotation angle, \f$ s \f$ the scaling factor and \f$ t_x, t_y \f$ are translations in \f$ x, y \f$ axes respectively. @note @@ -1885,11 +2293,11 @@ CV_EXPORTS_W cv::Mat estimateAffinePartial2D(InputArray from, InputArray to, Out size_t maxIters = 2000, double confidence = 0.99, size_t refineIters = 10); -/** @example decompose_homography.cpp - An example program with homography decomposition. +/** @example samples/cpp/tutorial_code/features2D/Homography/decompose_homography.cpp +An example program with homography decomposition. - Check @ref tutorial_homography "the corresponding tutorial" for more details. - */ +Check @ref tutorial_homography "the corresponding tutorial" for more details. +*/ /** @brief Decompose a homography matrix to rotation(s), translation(s) and plane normal(s). @@ -1911,6 +2319,31 @@ CV_EXPORTS_W int decomposeHomographyMat(InputArray H, OutputArrayOfArrays translations, OutputArrayOfArrays normals); +/** @brief Filters homography decompositions based on additional information. + +@param rotations Vector of rotation matrices. +@param normals Vector of plane normal matrices. +@param beforePoints Vector of (rectified) visible reference points before the homography is applied +@param afterPoints Vector of (rectified) visible reference points after the homography is applied +@param possibleSolutions Vector of int indices representing the viable solution set after filtering +@param pointsMask optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function + +This function is intended to filter the output of the decomposeHomographyMat based on additional +information as described in @cite Malis . The summary of the method: the decomposeHomographyMat function +returns 2 unique solutions and their "opposites" for a total of 4 solutions. If we have access to the +sets of points visible in the camera frame before and after the homography transformation is applied, +we can determine which are the true potential solutions and which are the opposites by verifying which +homographies are consistent with all visible reference points being in front of the camera. The inputs +are left unchanged; the filtered solution set is returned as indices into the existing one. + +*/ +CV_EXPORTS_W void filterHomographyDecompByVisibleRefpoints(InputArrayOfArrays rotations, + InputArrayOfArrays normals, + InputArray beforePoints, + InputArray afterPoints, + OutputArray possibleSolutions, + InputArray pointsMask = noArray()); + /** @brief The base class for stereo correspondence algorithms. */ class CV_EXPORTS_W StereoMatcher : public Algorithm @@ -2089,6 +2522,209 @@ class CV_EXPORTS_W StereoSGBM : public StereoMatcher int mode = StereoSGBM::MODE_SGBM); }; + +//! cv::undistort mode +enum UndistortTypes +{ + PROJ_SPHERICAL_ORTHO = 0, + PROJ_SPHERICAL_EQRECT = 1 +}; + +/** @brief Transforms an image to compensate for lens distortion. + +The function transforms an image to compensate radial and tangential lens distortion. + +The function is simply a combination of #initUndistortRectifyMap (with unity R ) and #remap +(with bilinear interpolation). See the former function for details of the transformation being +performed. + +Those pixels in the destination image, for which there is no correspondent pixels in the source +image, are filled with zeros (black color). + +A particular subset of the source image that will be visible in the corrected image can be regulated +by newCameraMatrix. You can use #getOptimalNewCameraMatrix to compute the appropriate +newCameraMatrix depending on your requirements. + +The camera matrix and the distortion parameters can be determined using #calibrateCamera. If +the resolution of images is different from the resolution used at the calibration stage, \f$f_x, +f_y, c_x\f$ and \f$c_y\f$ need to be scaled accordingly, while the distortion coefficients remain +the same. + +@param src Input (distorted) image. +@param dst Output (corrected) image that has the same size and type as src . +@param cameraMatrix Input camera matrix \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . +@param distCoeffs Input vector of distortion coefficients +\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ +of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. +@param newCameraMatrix Camera matrix of the distorted image. By default, it is the same as +cameraMatrix but you may additionally scale and shift the result by using a different matrix. + */ +CV_EXPORTS_W void undistort( InputArray src, OutputArray dst, + InputArray cameraMatrix, + InputArray distCoeffs, + InputArray newCameraMatrix = noArray() ); + +/** @brief Computes the undistortion and rectification transformation map. + +The function computes the joint undistortion and rectification transformation and represents the +result in the form of maps for remap. The undistorted image looks like original, as if it is +captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a +monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by +#getOptimalNewCameraMatrix for a better control over scaling. In case of a stereo camera, +newCameraMatrix is normally set to P1 or P2 computed by #stereoRectify . + +Also, this new camera is oriented differently in the coordinate space, according to R. That, for +example, helps to align two heads of a stereo camera so that the epipolar lines on both images +become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera). + +The function actually builds the maps for the inverse mapping algorithm that is used by remap. That +is, for each pixel \f$(u, v)\f$ in the destination (corrected and rectified) image, the function +computes the corresponding coordinates in the source image (that is, in the original image from +camera). The following process is applied: +\f[ +\begin{array}{l} +x \leftarrow (u - {c'}_x)/{f'}_x \\ +y \leftarrow (v - {c'}_y)/{f'}_y \\ +{[X\,Y\,W]} ^T \leftarrow R^{-1}*[x \, y \, 1]^T \\ +x' \leftarrow X/W \\ +y' \leftarrow Y/W \\ +r^2 \leftarrow x'^2 + y'^2 \\ +x'' \leftarrow x' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} ++ 2p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4\\ +y'' \leftarrow y' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} ++ p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\ +s\vecthree{x'''}{y'''}{1} = +\vecthreethree{R_{33}(\tau_x, \tau_y)}{0}{-R_{13}((\tau_x, \tau_y)} +{0}{R_{33}(\tau_x, \tau_y)}{-R_{23}(\tau_x, \tau_y)} +{0}{0}{1} R(\tau_x, \tau_y) \vecthree{x''}{y''}{1}\\ +map_x(u,v) \leftarrow x''' f_x + c_x \\ +map_y(u,v) \leftarrow y''' f_y + c_y +\end{array} +\f] +where \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ +are the distortion coefficients. + +In case of a stereo camera, this function is called twice: once for each camera head, after +stereoRectify, which in its turn is called after #stereoCalibrate. But if the stereo camera +was not calibrated, it is still possible to compute the rectification transformations directly from +the fundamental matrix using #stereoRectifyUncalibrated. For each camera, the function computes +homography H as the rectification transformation in a pixel domain, not a rotation matrix R in 3D +space. R can be computed from H as +\f[\texttt{R} = \texttt{cameraMatrix} ^{-1} \cdot \texttt{H} \cdot \texttt{cameraMatrix}\f] +where cameraMatrix can be chosen arbitrarily. + +@param cameraMatrix Input camera matrix \f$A=\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . +@param distCoeffs Input vector of distortion coefficients +\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ +of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. +@param R Optional rectification transformation in the object space (3x3 matrix). R1 or R2 , +computed by #stereoRectify can be passed here. If the matrix is empty, the identity transformation +is assumed. In cvInitUndistortMap R assumed to be an identity matrix. +@param newCameraMatrix New camera matrix \f$A'=\vecthreethree{f_x'}{0}{c_x'}{0}{f_y'}{c_y'}{0}{0}{1}\f$. +@param size Undistorted image size. +@param m1type Type of the first output map that can be CV_32FC1, CV_32FC2 or CV_16SC2, see #convertMaps +@param map1 The first output map. +@param map2 The second output map. + */ +CV_EXPORTS_W +void initUndistortRectifyMap(InputArray cameraMatrix, InputArray distCoeffs, + InputArray R, InputArray newCameraMatrix, + Size size, int m1type, OutputArray map1, OutputArray map2); + +//! initializes maps for #remap for wide-angle +CV_EXPORTS +float initWideAngleProjMap(InputArray cameraMatrix, InputArray distCoeffs, + Size imageSize, int destImageWidth, + int m1type, OutputArray map1, OutputArray map2, + enum UndistortTypes projType = PROJ_SPHERICAL_EQRECT, double alpha = 0); +static inline +float initWideAngleProjMap(InputArray cameraMatrix, InputArray distCoeffs, + Size imageSize, int destImageWidth, + int m1type, OutputArray map1, OutputArray map2, + int projType, double alpha = 0) +{ + return initWideAngleProjMap(cameraMatrix, distCoeffs, imageSize, destImageWidth, + m1type, map1, map2, (UndistortTypes)projType, alpha); +} + +/** @brief Returns the default new camera matrix. + +The function returns the camera matrix that is either an exact copy of the input cameraMatrix (when +centerPrinicipalPoint=false ), or the modified one (when centerPrincipalPoint=true). + +In the latter case, the new camera matrix will be: + +\f[\begin{bmatrix} f_x && 0 && ( \texttt{imgSize.width} -1)*0.5 \\ 0 && f_y && ( \texttt{imgSize.height} -1)*0.5 \\ 0 && 0 && 1 \end{bmatrix} ,\f] + +where \f$f_x\f$ and \f$f_y\f$ are \f$(0,0)\f$ and \f$(1,1)\f$ elements of cameraMatrix, respectively. + +By default, the undistortion functions in OpenCV (see #initUndistortRectifyMap, #undistort) do not +move the principal point. However, when you work with stereo, it is important to move the principal +points in both views to the same y-coordinate (which is required by most of stereo correspondence +algorithms), and may be to the same x-coordinate too. So, you can form the new camera matrix for +each view where the principal points are located at the center. + +@param cameraMatrix Input camera matrix. +@param imgsize Camera view image size in pixels. +@param centerPrincipalPoint Location of the principal point in the new camera matrix. The +parameter indicates whether this location should be at the image center or not. + */ +CV_EXPORTS_W +Mat getDefaultNewCameraMatrix(InputArray cameraMatrix, Size imgsize = Size(), + bool centerPrincipalPoint = false); + +/** @brief Computes the ideal point coordinates from the observed point coordinates. + +The function is similar to #undistort and #initUndistortRectifyMap but it operates on a +sparse set of points instead of a raster image. Also the function performs a reverse transformation +to projectPoints. In case of a 3D object, it does not reconstruct its 3D coordinates, but for a +planar object, it does, up to a translation vector, if the proper R is specified. + +For each observed point coordinate \f$(u, v)\f$ the function computes: +\f[ +\begin{array}{l} +x^{"} \leftarrow (u - c_x)/f_x \\ +y^{"} \leftarrow (v - c_y)/f_y \\ +(x',y') = undistort(x^{"},y^{"}, \texttt{distCoeffs}) \\ +{[X\,Y\,W]} ^T \leftarrow R*[x' \, y' \, 1]^T \\ +x \leftarrow X/W \\ +y \leftarrow Y/W \\ +\text{only performed if P is specified:} \\ +u' \leftarrow x {f'}_x + {c'}_x \\ +v' \leftarrow y {f'}_y + {c'}_y +\end{array} +\f] + +where *undistort* is an approximate iterative algorithm that estimates the normalized original +point coordinates out of the normalized distorted point coordinates ("normalized" means that the +coordinates do not depend on the camera matrix). + +The function can be used for both a stereo camera head or a monocular camera (when R is empty). + +@param src Observed point coordinates, 1xN or Nx1 2-channel (CV_32FC2 or CV_64FC2). +@param dst Output ideal point coordinates after undistortion and reverse perspective +transformation. If matrix P is identity or omitted, dst will contain normalized point coordinates. +@param cameraMatrix Camera matrix \f$\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . +@param distCoeffs Input vector of distortion coefficients +\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ +of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. +@param R Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by +#stereoRectify can be passed here. If the matrix is empty, the identity transformation is used. +@param P New camera matrix (3x3) or new projection matrix (3x4) \f$\begin{bmatrix} {f'}_x & 0 & {c'}_x & t_x \\ 0 & {f'}_y & {c'}_y & t_y \\ 0 & 0 & 1 & t_z \end{bmatrix}\f$. P1 or P2 computed by +#stereoRectify can be passed here. If the matrix is empty, the identity new camera matrix is used. + */ +CV_EXPORTS_W +void undistortPoints(InputArray src, OutputArray dst, + InputArray cameraMatrix, InputArray distCoeffs, + InputArray R = noArray(), InputArray P = noArray()); +/** @overload + @note Default version of #undistortPoints does 5 iterations to compute undistorted points. + */ +CV_EXPORTS_AS(undistortPointsIter) +void undistortPoints(InputArray src, OutputArray dst, + InputArray cameraMatrix, InputArray distCoeffs, + InputArray R, InputArray P, TermCriteria criteria); + //! @} calib3d /** @brief The methods in this namespace use a so-called fisheye camera model. @@ -2341,12 +2977,48 @@ optimization. It stays at the center or at a different location specified when C TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 100, DBL_EPSILON)); //! @} calib3d_fisheye -} +} // end namespace fisheye -} // cv +} //end namespace cv -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/calib3d/calib3d_c.h" +#if 0 //def __cplusplus +////////////////////////////////////////////////////////////////////////////////////////// +class CV_EXPORTS CvLevMarq +{ +public: + CvLevMarq(); + CvLevMarq( int nparams, int nerrs, CvTermCriteria criteria= + cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,DBL_EPSILON), + bool completeSymmFlag=false ); + ~CvLevMarq(); + void init( int nparams, int nerrs, CvTermCriteria criteria= + cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,DBL_EPSILON), + bool completeSymmFlag=false ); + bool update( const CvMat*& param, CvMat*& J, CvMat*& err ); + bool updateAlt( const CvMat*& param, CvMat*& JtJ, CvMat*& JtErr, double*& errNorm ); + + void clear(); + void step(); + enum { DONE=0, STARTED=1, CALC_J=2, CHECK_ERR=3 }; + + cv::Ptr mask; + cv::Ptr prevParam; + cv::Ptr param; + cv::Ptr J; + cv::Ptr err; + cv::Ptr JtJ; + cv::Ptr JtJN; + cv::Ptr JtErr; + cv::Ptr JtJV; + cv::Ptr JtJW; + double prevErrNorm, errNorm; + int lambdaLg10; + CvTermCriteria criteria; + int state; + int iters; + bool completeSymmFlag; + int solveMethod; +}; #endif #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/calib3d/calib3d.hpp b/lib/3rdParty/OpenCV/include/opencv2/calib3d/calib3d.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/calib3d/calib3d.hpp rename to lib/3rdParty/OpenCV/include/opencv2/calib3d/calib3d.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/calib3d/calib3d_c.h b/lib/3rdParty/OpenCV/include/opencv2/calib3d/calib3d_c.h new file mode 100644 index 000000000..e2af07b2e --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/calib3d/calib3d_c.h @@ -0,0 +1,150 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CALIB3D_C_H +#define OPENCV_CALIB3D_C_H + +#include "opencv2/core/types_c.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Calculates fundamental matrix given a set of corresponding points */ +#define CV_FM_7POINT 1 +#define CV_FM_8POINT 2 + +#define CV_LMEDS 4 +#define CV_RANSAC 8 + +#define CV_FM_LMEDS_ONLY CV_LMEDS +#define CV_FM_RANSAC_ONLY CV_RANSAC +#define CV_FM_LMEDS CV_LMEDS +#define CV_FM_RANSAC CV_RANSAC + +enum +{ + CV_ITERATIVE = 0, + CV_EPNP = 1, // F.Moreno-Noguer, V.Lepetit and P.Fua "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" + CV_P3P = 2, // X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang; "Complete Solution Classification for the Perspective-Three-Point Problem" + CV_DLS = 3 // Joel A. Hesch and Stergios I. Roumeliotis. "A Direct Least-Squares (DLS) Method for PnP" +}; + +#define CV_CALIB_CB_ADAPTIVE_THRESH 1 +#define CV_CALIB_CB_NORMALIZE_IMAGE 2 +#define CV_CALIB_CB_FILTER_QUADS 4 +#define CV_CALIB_CB_FAST_CHECK 8 + +#define CV_CALIB_USE_INTRINSIC_GUESS 1 +#define CV_CALIB_FIX_ASPECT_RATIO 2 +#define CV_CALIB_FIX_PRINCIPAL_POINT 4 +#define CV_CALIB_ZERO_TANGENT_DIST 8 +#define CV_CALIB_FIX_FOCAL_LENGTH 16 +#define CV_CALIB_FIX_K1 32 +#define CV_CALIB_FIX_K2 64 +#define CV_CALIB_FIX_K3 128 +#define CV_CALIB_FIX_K4 2048 +#define CV_CALIB_FIX_K5 4096 +#define CV_CALIB_FIX_K6 8192 +#define CV_CALIB_RATIONAL_MODEL 16384 +#define CV_CALIB_THIN_PRISM_MODEL 32768 +#define CV_CALIB_FIX_S1_S2_S3_S4 65536 +#define CV_CALIB_TILTED_MODEL 262144 +#define CV_CALIB_FIX_TAUX_TAUY 524288 +#define CV_CALIB_FIX_TANGENT_DIST 2097152 + +#define CV_CALIB_NINTRINSIC 18 + +#define CV_CALIB_FIX_INTRINSIC 256 +#define CV_CALIB_SAME_FOCAL_LENGTH 512 + +#define CV_CALIB_ZERO_DISPARITY 1024 + +/* stereo correspondence parameters and functions */ +#define CV_STEREO_BM_NORMALIZED_RESPONSE 0 +#define CV_STEREO_BM_XSOBEL 1 + +#ifdef __cplusplus +} // extern "C" + +////////////////////////////////////////////////////////////////////////////////////////// +class CV_EXPORTS CvLevMarq +{ +public: + CvLevMarq(); + CvLevMarq( int nparams, int nerrs, CvTermCriteria criteria= + cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,DBL_EPSILON), + bool completeSymmFlag=false ); + ~CvLevMarq(); + void init( int nparams, int nerrs, CvTermCriteria criteria= + cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,DBL_EPSILON), + bool completeSymmFlag=false ); + bool update( const CvMat*& param, CvMat*& J, CvMat*& err ); + bool updateAlt( const CvMat*& param, CvMat*& JtJ, CvMat*& JtErr, double*& errNorm ); + + void clear(); + void step(); + enum { DONE=0, STARTED=1, CALC_J=2, CHECK_ERR=3 }; + + cv::Ptr mask; + cv::Ptr prevParam; + cv::Ptr param; + cv::Ptr J; + cv::Ptr err; + cv::Ptr JtJ; + cv::Ptr JtJN; + cv::Ptr JtErr; + cv::Ptr JtJV; + cv::Ptr JtJW; + double prevErrNorm, errNorm; + int lambdaLg10; + CvTermCriteria criteria; + int state; + int iters; + bool completeSymmFlag; + int solveMethod; +}; + +#endif + +#endif /* OPENCV_CALIB3D_C_H */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/core.hpp new file mode 100644 index 000000000..1cdb470b5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core.hpp @@ -0,0 +1,3294 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2015, Intel Corporation, all rights reserved. +// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. +// Copyright (C) 2015, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_HPP +#define OPENCV_CORE_HPP + +#ifndef __cplusplus +# error core.hpp header must be compiled as C++ +#endif + +#include "opencv2/core/cvdef.h" +#include "opencv2/core/version.hpp" +#include "opencv2/core/base.hpp" +#include "opencv2/core/cvstd.hpp" +#include "opencv2/core/traits.hpp" +#include "opencv2/core/matx.hpp" +#include "opencv2/core/types.hpp" +#include "opencv2/core/mat.hpp" +#include "opencv2/core/persistence.hpp" + +/** +@defgroup core Core functionality +@{ + @defgroup core_basic Basic structures + @defgroup core_c C structures and operations + @{ + @defgroup core_c_glue Connections with C++ + @} + @defgroup core_array Operations on arrays + @defgroup core_xml XML/YAML Persistence + @defgroup core_cluster Clustering + @defgroup core_utils Utility and system functions and macros + @{ + @defgroup core_utils_sse SSE utilities + @defgroup core_utils_neon NEON utilities + @defgroup core_utils_softfloat Softfloat support + @defgroup core_utils_samples Utility functions for OpenCV samples + @} + @defgroup core_opengl OpenGL interoperability + @defgroup core_ipp Intel IPP Asynchronous C/C++ Converters + @defgroup core_optim Optimization Algorithms + @defgroup core_directx DirectX interoperability + @defgroup core_eigen Eigen support + @defgroup core_opencl OpenCL support + @defgroup core_va_intel Intel VA-API/OpenCL (CL-VA) interoperability + @defgroup core_hal Hardware Acceleration Layer + @{ + @defgroup core_hal_functions Functions + @defgroup core_hal_interface Interface + @defgroup core_hal_intrin Universal intrinsics + @{ + @defgroup core_hal_intrin_impl Private implementation helpers + @} + @defgroup core_lowlevel_api Low-level API for external libraries / plugins + @} +@} + */ + +namespace cv { + +//! @addtogroup core_utils +//! @{ + +/*! @brief Class passed to an error. + +This class encapsulates all or almost all necessary +information about the error happened in the program. The exception is +usually constructed and thrown implicitly via CV_Error and CV_Error_ macros. +@see error + */ +class CV_EXPORTS Exception : public std::exception +{ +public: + /*! + Default constructor + */ + Exception(); + /*! + Full constructor. Normally the constructor is not called explicitly. + Instead, the macros CV_Error(), CV_Error_() and CV_Assert() are used. + */ + Exception(int _code, const String& _err, const String& _func, const String& _file, int _line); + virtual ~Exception() throw(); + + /*! + \return the error description and the context as a text string. + */ + virtual const char *what() const throw() CV_OVERRIDE; + void formatMessage(); + + String msg; ///< the formatted error message + + int code; ///< error code @see CVStatus + String err; ///< error description + String func; ///< function name. Available only when the compiler supports getting it + String file; ///< source file name where the error has occurred + int line; ///< line number in the source file where the error has occurred +}; + +/*! @brief Signals an error and raises the exception. + +By default the function prints information about the error to stderr, +then it either stops if cv::setBreakOnError() had been called before or raises the exception. +It is possible to alternate error processing by using #redirectError(). +@param exc the exception raisen. +@deprecated drop this version + */ +CV_EXPORTS CV_NORETURN void error(const Exception& exc); + +enum SortFlags { SORT_EVERY_ROW = 0, //!< each matrix row is sorted independently + SORT_EVERY_COLUMN = 1, //!< each matrix column is sorted + //!< independently; this flag and the previous one are + //!< mutually exclusive. + SORT_ASCENDING = 0, //!< each matrix row is sorted in the ascending + //!< order. + SORT_DESCENDING = 16 //!< each matrix row is sorted in the + //!< descending order; this flag and the previous one are also + //!< mutually exclusive. + }; + +//! @} core_utils + +//! @addtogroup core +//! @{ + +//! Covariation flags +enum CovarFlags { + /** The output covariance matrix is calculated as: + \f[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...],\f] + The covariance matrix will be nsamples x nsamples. Such an unusual covariance matrix is used + for fast PCA of a set of very large vectors (see, for example, the EigenFaces technique for + face recognition). Eigenvalues of this "scrambled" matrix match the eigenvalues of the true + covariance matrix. The "true" eigenvectors can be easily calculated from the eigenvectors of + the "scrambled" covariance matrix. */ + COVAR_SCRAMBLED = 0, + /**The output covariance matrix is calculated as: + \f[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...] \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T,\f] + covar will be a square matrix of the same size as the total number of elements in each input + vector. One and only one of #COVAR_SCRAMBLED and #COVAR_NORMAL must be specified.*/ + COVAR_NORMAL = 1, + /** If the flag is specified, the function does not calculate mean from + the input vectors but, instead, uses the passed mean vector. This is useful if mean has been + pre-calculated or known in advance, or if the covariance matrix is calculated by parts. In + this case, mean is not a mean vector of the input sub-set of vectors but rather the mean + vector of the whole set.*/ + COVAR_USE_AVG = 2, + /** If the flag is specified, the covariance matrix is scaled. In the + "normal" mode, scale is 1./nsamples . In the "scrambled" mode, scale is the reciprocal of the + total number of elements in each input vector. By default (if the flag is not specified), the + covariance matrix is not scaled ( scale=1 ).*/ + COVAR_SCALE = 4, + /** If the flag is + specified, all the input vectors are stored as rows of the samples matrix. mean should be a + single-row vector in this case.*/ + COVAR_ROWS = 8, + /** If the flag is + specified, all the input vectors are stored as columns of the samples matrix. mean should be a + single-column vector in this case.*/ + COVAR_COLS = 16 +}; + +//! k-Means flags +enum KmeansFlags { + /** Select random initial centers in each attempt.*/ + KMEANS_RANDOM_CENTERS = 0, + /** Use kmeans++ center initialization by Arthur and Vassilvitskii [Arthur2007].*/ + KMEANS_PP_CENTERS = 2, + /** During the first (and possibly the only) attempt, use the + user-supplied labels instead of computing them from the initial centers. For the second and + further attempts, use the random or semi-random centers. Use one of KMEANS_\*_CENTERS flag + to specify the exact method.*/ + KMEANS_USE_INITIAL_LABELS = 1 +}; + +enum ReduceTypes { REDUCE_SUM = 0, //!< the output is the sum of all rows/columns of the matrix. + REDUCE_AVG = 1, //!< the output is the mean vector of all rows/columns of the matrix. + REDUCE_MAX = 2, //!< the output is the maximum (column/row-wise) of all rows/columns of the matrix. + REDUCE_MIN = 3 //!< the output is the minimum (column/row-wise) of all rows/columns of the matrix. + }; + + +/** @brief Swaps two matrices +*/ +CV_EXPORTS void swap(Mat& a, Mat& b); +/** @overload */ +CV_EXPORTS void swap( UMat& a, UMat& b ); + +//! @} core + +//! @addtogroup core_array +//! @{ + +/** @brief Computes the source location of an extrapolated pixel. + +The function computes and returns the coordinate of a donor pixel corresponding to the specified +extrapolated pixel when using the specified extrapolation border mode. For example, if you use +cv::BORDER_WRAP mode in the horizontal direction, cv::BORDER_REFLECT_101 in the vertical direction and +want to compute value of the "virtual" pixel Point(-5, 100) in a floating-point image img , it +looks like: +@code{.cpp} + float val = img.at(borderInterpolate(100, img.rows, cv::BORDER_REFLECT_101), + borderInterpolate(-5, img.cols, cv::BORDER_WRAP)); +@endcode +Normally, the function is not called directly. It is used inside filtering functions and also in +copyMakeBorder. +@param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \<0 or \>= len +@param len Length of the array along the corresponding axis. +@param borderType Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and +#BORDER_ISOLATED . When borderType==#BORDER_CONSTANT , the function always returns -1, regardless +of p and len. + +@sa copyMakeBorder +*/ +CV_EXPORTS_W int borderInterpolate(int p, int len, int borderType); + +/** @example samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp +An example using copyMakeBorder function. +Check @ref tutorial_copyMakeBorder "the corresponding tutorial" for more details +*/ + +/** @brief Forms a border around an image. + +The function copies the source image into the middle of the destination image. The areas to the +left, to the right, above and below the copied source image will be filled with extrapolated +pixels. This is not what filtering functions based on it do (they extrapolate pixels on-fly), but +what other more complex functions, including your own, may do to simplify image boundary handling. + +The function supports the mode when src is already in the middle of dst . In this case, the +function does not copy src itself but simply constructs the border, for example: + +@code{.cpp} + // let border be the same in all directions + int border=2; + // constructs a larger image to fit both the image and the border + Mat gray_buf(rgb.rows + border*2, rgb.cols + border*2, rgb.depth()); + // select the middle part of it w/o copying data + Mat gray(gray_canvas, Rect(border, border, rgb.cols, rgb.rows)); + // convert image from RGB to grayscale + cvtColor(rgb, gray, COLOR_RGB2GRAY); + // form a border in-place + copyMakeBorder(gray, gray_buf, border, border, + border, border, BORDER_REPLICATE); + // now do some custom filtering ... + ... +@endcode +@note When the source image is a part (ROI) of a bigger image, the function will try to use the +pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as +if src was not a ROI, use borderType | #BORDER_ISOLATED. + +@param src Source image. +@param dst Destination image of the same type as src and the size Size(src.cols+left+right, +src.rows+top+bottom) . +@param top +@param bottom +@param left +@param right Parameter specifying how many pixels in each direction from the source image rectangle +to extrapolate. For example, top=1, bottom=1, left=1, right=1 mean that 1 pixel-wide border needs +to be built. +@param borderType Border type. See borderInterpolate for details. +@param value Border value if borderType==BORDER_CONSTANT . + +@sa borderInterpolate +*/ +CV_EXPORTS_W void copyMakeBorder(InputArray src, OutputArray dst, + int top, int bottom, int left, int right, + int borderType, const Scalar& value = Scalar() ); + +/** @brief Calculates the per-element sum of two arrays or an array and a scalar. + +The function add calculates: +- Sum of two arrays when both input arrays have the same size and the same number of channels: +\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) + \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0\f] +- Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of +elements as `src1.channels()`: +\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) + \texttt{src2} ) \quad \texttt{if mask}(I) \ne0\f] +- Sum of a scalar and an array when src1 is constructed from Scalar or has the same number of +elements as `src2.channels()`: +\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1} + \texttt{src2}(I) ) \quad \texttt{if mask}(I) \ne0\f] +where `I` is a multi-dimensional index of array elements. In case of multi-channel arrays, each +channel is processed independently. + +The first function in the list above can be replaced with matrix expressions: +@code{.cpp} + dst = src1 + src2; + dst += src1; // equivalent to add(dst, src1, dst); +@endcode +The input arrays and the output array can all have the same or different depths. For example, you +can add a 16-bit unsigned array to a 8-bit signed array and store the sum as a 32-bit +floating-point array. Depth of the output array is determined by the dtype parameter. In the second +and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can +be set to the default -1. In this case, the output array will have the same depth as the input +array, be it src1, src2 or both. +@note Saturation is not applied when the output array has the depth CV_32S. You may even get +result of an incorrect sign in the case of overflow. +@param src1 first input array or a scalar. +@param src2 second input array or a scalar. +@param dst output array that has the same size and number of channels as the input array(s); the +depth is defined by dtype or src1/src2. +@param mask optional operation mask - 8-bit single channel array, that specifies elements of the +output array to be changed. +@param dtype optional depth of the output array (see the discussion below). +@sa subtract, addWeighted, scaleAdd, Mat::convertTo +*/ +CV_EXPORTS_W void add(InputArray src1, InputArray src2, OutputArray dst, + InputArray mask = noArray(), int dtype = -1); + +/** @brief Calculates the per-element difference between two arrays or array and a scalar. + +The function subtract calculates: +- Difference between two arrays, when both input arrays have the same size and the same number of +channels: + \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) - \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0\f] +- Difference between an array and a scalar, when src2 is constructed from Scalar or has the same +number of elements as `src1.channels()`: + \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) - \texttt{src2} ) \quad \texttt{if mask}(I) \ne0\f] +- Difference between a scalar and an array, when src1 is constructed from Scalar or has the same +number of elements as `src2.channels()`: + \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1} - \texttt{src2}(I) ) \quad \texttt{if mask}(I) \ne0\f] +- The reverse difference between a scalar and an array in the case of `SubRS`: + \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src2} - \texttt{src1}(I) ) \quad \texttt{if mask}(I) \ne0\f] +where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each +channel is processed independently. + +The first function in the list above can be replaced with matrix expressions: +@code{.cpp} + dst = src1 - src2; + dst -= src1; // equivalent to subtract(dst, src1, dst); +@endcode +The input arrays and the output array can all have the same or different depths. For example, you +can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of +the output array is determined by dtype parameter. In the second and third cases above, as well as +in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this +case the output array will have the same depth as the input array, be it src1, src2 or both. +@note Saturation is not applied when the output array has the depth CV_32S. You may even get +result of an incorrect sign in the case of overflow. +@param src1 first input array or a scalar. +@param src2 second input array or a scalar. +@param dst output array of the same size and the same number of channels as the input array. +@param mask optional operation mask; this is an 8-bit single channel array that specifies elements +of the output array to be changed. +@param dtype optional depth of the output array +@sa add, addWeighted, scaleAdd, Mat::convertTo + */ +CV_EXPORTS_W void subtract(InputArray src1, InputArray src2, OutputArray dst, + InputArray mask = noArray(), int dtype = -1); + + +/** @brief Calculates the per-element scaled product of two arrays. + +The function multiply calculates the per-element product of two arrays: + +\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{scale} \cdot \texttt{src1} (I) \cdot \texttt{src2} (I))\f] + +There is also a @ref MatrixExpressions -friendly variant of the first function. See Mat::mul . + +For a not-per-element matrix product, see gemm . + +@note Saturation is not applied when the output array has the depth +CV_32S. You may even get result of an incorrect sign in the case of +overflow. +@param src1 first input array. +@param src2 second input array of the same size and the same type as src1. +@param dst output array of the same size and type as src1. +@param scale optional scale factor. +@param dtype optional depth of the output array +@sa add, subtract, divide, scaleAdd, addWeighted, accumulate, accumulateProduct, accumulateSquare, +Mat::convertTo +*/ +CV_EXPORTS_W void multiply(InputArray src1, InputArray src2, + OutputArray dst, double scale = 1, int dtype = -1); + +/** @brief Performs per-element division of two arrays or a scalar by an array. + +The function cv::divide divides one array by another: +\f[\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\f] +or a scalar by an array when there is no src1 : +\f[\texttt{dst(I) = saturate(scale/src2(I))}\f] + +Different channels of multi-channel arrays are processed independently. + +For integer types when src2(I) is zero, dst(I) will also be zero. + +@note In case of floating point data there is no special defined behavior for zero src2(I) values. +Regular floating-point division is used. +Expect correct IEEE-754 behaviour for floating-point data (with NaN, Inf result values). + +@note Saturation is not applied when the output array has the depth CV_32S. You may even get +result of an incorrect sign in the case of overflow. +@param src1 first input array. +@param src2 second input array of the same size and type as src1. +@param scale scalar factor. +@param dst output array of the same size and type as src2. +@param dtype optional depth of the output array; if -1, dst will have depth src2.depth(), but in +case of an array-by-array division, you can only pass -1 when src1.depth()==src2.depth(). +@sa multiply, add, subtract +*/ +CV_EXPORTS_W void divide(InputArray src1, InputArray src2, OutputArray dst, + double scale = 1, int dtype = -1); + +/** @overload */ +CV_EXPORTS_W void divide(double scale, InputArray src2, + OutputArray dst, int dtype = -1); + +/** @brief Calculates the sum of a scaled array and another array. + +The function scaleAdd is one of the classical primitive linear algebra operations, known as DAXPY +or SAXPY in [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms). It calculates +the sum of a scaled array and another array: +\f[\texttt{dst} (I)= \texttt{scale} \cdot \texttt{src1} (I) + \texttt{src2} (I)\f] +The function can also be emulated with a matrix expression, for example: +@code{.cpp} + Mat A(3, 3, CV_64F); + ... + A.row(0) = A.row(1)*2 + A.row(2); +@endcode +@param src1 first input array. +@param alpha scale factor for the first array. +@param src2 second input array of the same size and type as src1. +@param dst output array of the same size and type as src1. +@sa add, addWeighted, subtract, Mat::dot, Mat::convertTo +*/ +CV_EXPORTS_W void scaleAdd(InputArray src1, double alpha, InputArray src2, OutputArray dst); + +/** @example samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp +Check @ref tutorial_trackbar "the corresponding tutorial" for more details +*/ + +/** @brief Calculates the weighted sum of two arrays. + +The function addWeighted calculates the weighted sum of two arrays as follows: +\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I)* \texttt{alpha} + \texttt{src2} (I)* \texttt{beta} + \texttt{gamma} )\f] +where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each +channel is processed independently. +The function can be replaced with a matrix expression: +@code{.cpp} + dst = src1*alpha + src2*beta + gamma; +@endcode +@note Saturation is not applied when the output array has the depth CV_32S. You may even get +result of an incorrect sign in the case of overflow. +@param src1 first input array. +@param alpha weight of the first array elements. +@param src2 second input array of the same size and channel number as src1. +@param beta weight of the second array elements. +@param gamma scalar added to each sum. +@param dst output array that has the same size and number of channels as the input arrays. +@param dtype optional depth of the output array; when both input arrays have the same depth, dtype +can be set to -1, which will be equivalent to src1.depth(). +@sa add, subtract, scaleAdd, Mat::convertTo +*/ +CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, + double beta, double gamma, OutputArray dst, int dtype = -1); + +/** @brief Scales, calculates absolute values, and converts the result to 8-bit. + +On each element of the input array, the function convertScaleAbs +performs three operations sequentially: scaling, taking an absolute +value, conversion to an unsigned 8-bit type: +\f[\texttt{dst} (I)= \texttt{saturate\_cast} (| \texttt{src} (I)* \texttt{alpha} + \texttt{beta} |)\f] +In case of multi-channel arrays, the function processes each channel +independently. When the output is not 8-bit, the operation can be +emulated by calling the Mat::convertTo method (or by using matrix +expressions) and then by calculating an absolute value of the result. +For example: +@code{.cpp} + Mat_ A(30,30); + randu(A, Scalar(-100), Scalar(100)); + Mat_ B = A*5 + 3; + B = abs(B); + // Mat_ B = abs(A*5+3) will also do the job, + // but it will allocate a temporary matrix +@endcode +@param src input array. +@param dst output array. +@param alpha optional scale factor. +@param beta optional delta added to the scaled values. +@sa Mat::convertTo, cv::abs(const Mat&) +*/ +CV_EXPORTS_W void convertScaleAbs(InputArray src, OutputArray dst, + double alpha = 1, double beta = 0); + +/** @brief Converts an array to half precision floating number. + +This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). CV_16S format is used to represent FP16 data. +There are two use modes (src -> dst): CV_32F -> CV_16S and CV_16S -> CV_32F. The input array has to have type of CV_32F or +CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error. +The format of half precision floating point is defined in IEEE 754-2008. + +@param src input array. +@param dst output array. +*/ +CV_EXPORTS_W void convertFp16(InputArray src, OutputArray dst); + +/** @brief Performs a look-up table transform of an array. + +The function LUT fills the output array with values from the look-up table. Indices of the entries +are taken from the input array. That is, the function processes each element of src as follows: +\f[\texttt{dst} (I) \leftarrow \texttt{lut(src(I) + d)}\f] +where +\f[d = \fork{0}{if \(\texttt{src}\) has depth \(\texttt{CV_8U}\)}{128}{if \(\texttt{src}\) has depth \(\texttt{CV_8S}\)}\f] +@param src input array of 8-bit elements. +@param lut look-up table of 256 elements; in case of multi-channel input array, the table should +either have a single channel (in this case the same table is used for all channels) or the same +number of channels as in the input array. +@param dst output array of the same size and number of channels as src, and the same depth as lut. +@sa convertScaleAbs, Mat::convertTo +*/ +CV_EXPORTS_W void LUT(InputArray src, InputArray lut, OutputArray dst); + +/** @brief Calculates the sum of array elements. + +The function cv::sum calculates and returns the sum of array elements, +independently for each channel. +@param src input array that must have from 1 to 4 channels. +@sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce +*/ +CV_EXPORTS_AS(sumElems) Scalar sum(InputArray src); + +/** @brief Counts non-zero array elements. + +The function returns the number of non-zero elements in src : +\f[\sum _{I: \; \texttt{src} (I) \ne0 } 1\f] +@param src single-channel array. +@sa mean, meanStdDev, norm, minMaxLoc, calcCovarMatrix +*/ +CV_EXPORTS_W int countNonZero( InputArray src ); + +/** @brief Returns the list of locations of non-zero pixels + +Given a binary matrix (likely returned from an operation such +as threshold(), compare(), >, ==, etc, return all of +the non-zero indices as a cv::Mat or std::vector (x,y) +For example: +@code{.cpp} + cv::Mat binaryImage; // input, binary image + cv::Mat locations; // output, locations of non-zero pixels + cv::findNonZero(binaryImage, locations); + + // access pixel coordinates + Point pnt = locations.at(i); +@endcode +or +@code{.cpp} + cv::Mat binaryImage; // input, binary image + vector locations; // output, locations of non-zero pixels + cv::findNonZero(binaryImage, locations); + + // access pixel coordinates + Point pnt = locations[i]; +@endcode +@param src single-channel array +@param idx the output array, type of cv::Mat or std::vector, corresponding to non-zero indices in the input +*/ +CV_EXPORTS_W void findNonZero( InputArray src, OutputArray idx ); + +/** @brief Calculates an average (mean) of array elements. + +The function cv::mean calculates the mean value M of array elements, +independently for each channel, and return it: +\f[\begin{array}{l} N = \sum _{I: \; \texttt{mask} (I) \ne 0} 1 \\ M_c = \left ( \sum _{I: \; \texttt{mask} (I) \ne 0}{ \texttt{mtx} (I)_c} \right )/N \end{array}\f] +When all the mask elements are 0's, the function returns Scalar::all(0) +@param src input array that should have from 1 to 4 channels so that the result can be stored in +Scalar_ . +@param mask optional operation mask. +@sa countNonZero, meanStdDev, norm, minMaxLoc +*/ +CV_EXPORTS_W Scalar mean(InputArray src, InputArray mask = noArray()); + +/** Calculates a mean and standard deviation of array elements. + +The function cv::meanStdDev calculates the mean and the standard deviation M +of array elements independently for each channel and returns it via the +output parameters: +\f[\begin{array}{l} N = \sum _{I, \texttt{mask} (I) \ne 0} 1 \\ \texttt{mean} _c = \frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \texttt{src} (I)_c}{N} \\ \texttt{stddev} _c = \sqrt{\frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \left ( \texttt{src} (I)_c - \texttt{mean} _c \right )^2}{N}} \end{array}\f] +When all the mask elements are 0's, the function returns +mean=stddev=Scalar::all(0). +@note The calculated standard deviation is only the diagonal of the +complete normalized covariance matrix. If the full matrix is needed, you +can reshape the multi-channel array M x N to the single-channel array +M\*N x mtx.channels() (only possible when the matrix is continuous) and +then pass the matrix to calcCovarMatrix . +@param src input array that should have from 1 to 4 channels so that the results can be stored in +Scalar_ 's. +@param mean output parameter: calculated mean value. +@param stddev output parameter: calculated standard deviation. +@param mask optional operation mask. +@sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix +*/ +CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, + InputArray mask=noArray()); + +/** @brief Calculates the absolute norm of an array. + +This version of #norm calculates the absolute norm of src1. The type of norm to calculate is specified using #NormTypes. + +As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$. +The \f$ L_{1}, L_{2} \f$ and \f$ L_{\infty} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$ +is calculated as follows +\f{align*} + \| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\ + \| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\ + \| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2 +\f} +and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is +\f{align*} + \| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\ + \| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\ + \| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5. +\f} +The following graphic shows all values for the three norm functions \f$\| r(x) \|_{L_1}, \| r(x) \|_{L_2}\f$ and \f$\| r(x) \|_{L_\infty}\f$. +It is notable that the \f$ L_{1} \f$ norm forms the upper and the \f$ L_{\infty} \f$ norm forms the lower border for the example function \f$ r(x) \f$. +![Graphs for the different norm functions from the above example](pics/NormTypes_OneArray_1-2-INF.png) + +When the mask parameter is specified and it is not empty, the norm is + +If normType is not specified, #NORM_L2 is used. +calculated only over the region specified by the mask. + +Multi-channel input arrays are treated as single-channel arrays, that is, +the results for all channels are combined. + +Hamming norms can only be calculated with CV_8U depth arrays. + +@param src1 first input array. +@param normType type of the norm (see #NormTypes). +@param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type. +*/ +CV_EXPORTS_W double norm(InputArray src1, int normType = NORM_L2, InputArray mask = noArray()); + +/** @brief Calculates an absolute difference norm or a relative difference norm. + +This version of cv::norm calculates the absolute difference norm +or the relative difference norm of arrays src1 and src2. +The type of norm to calculate is specified using #NormTypes. + +@param src1 first input array. +@param src2 second input array of the same size and the same type as src1. +@param normType type of the norm (see #NormTypes). +@param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type. +*/ +CV_EXPORTS_W double norm(InputArray src1, InputArray src2, + int normType = NORM_L2, InputArray mask = noArray()); +/** @overload +@param src first input array. +@param normType type of the norm (see #NormTypes). +*/ +CV_EXPORTS double norm( const SparseMat& src, int normType ); + +/** @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric. + +This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB), +between two input arrays src1 and src2. The arrays must have the same type. + +The PSNR is calculated as follows: + +\f[ +\texttt{PSNR} = 10 \cdot \log_{10}{\left( \frac{R^2}{MSE} \right) } +\f] + +where R is the maximum integer value of depth (e.g. 255 in the case of CV_8U data) +and MSE is the mean squared error between the two arrays. + +@param src1 first input array. +@param src2 second input array of the same size as src1. +@param R the maximum pixel value (255 by default) + + */ +CV_EXPORTS_W double PSNR(InputArray src1, InputArray src2, double R=255.); + +/** @brief naive nearest neighbor finder + +see http://en.wikipedia.org/wiki/Nearest_neighbor_search +@todo document + */ +CV_EXPORTS_W void batchDistance(InputArray src1, InputArray src2, + OutputArray dist, int dtype, OutputArray nidx, + int normType = NORM_L2, int K = 0, + InputArray mask = noArray(), int update = 0, + bool crosscheck = false); + +/** @brief Normalizes the norm or value range of an array. + +The function cv::normalize normalizes scale and shift the input array elements so that +\f[\| \texttt{dst} \| _{L_p}= \texttt{alpha}\f] +(where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that +\f[\min _I \texttt{dst} (I)= \texttt{alpha} , \, \, \max _I \texttt{dst} (I)= \texttt{beta}\f] + +when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be +normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this +sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or +min-max but modify the whole array, you can use norm and Mat::convertTo. + +In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this, +the range transformation for sparse matrices is not allowed since it can shift the zero level. + +Possible usage with some positive example data: +@code{.cpp} + vector positiveData = { 2.0, 8.0, 10.0 }; + vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax; + + // Norm to probability (total count) + // sum(numbers) = 20.0 + // 2.0 0.1 (2.0/20.0) + // 8.0 0.4 (8.0/20.0) + // 10.0 0.5 (10.0/20.0) + normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1); + + // Norm to unit vector: ||positiveData|| = 1.0 + // 2.0 0.15 + // 8.0 0.62 + // 10.0 0.77 + normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2); + + // Norm to max element + // 2.0 0.2 (2.0/10.0) + // 8.0 0.8 (8.0/10.0) + // 10.0 1.0 (10.0/10.0) + normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF); + + // Norm to range [0.0;1.0] + // 2.0 0.0 (shift to left border) + // 8.0 0.75 (6.0/8.0) + // 10.0 1.0 (shift to right border) + normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX); +@endcode + +@param src input array. +@param dst output array of the same size as src . +@param alpha norm value to normalize to or the lower range boundary in case of the range +normalization. +@param beta upper range boundary in case of the range normalization; it is not used for the norm +normalization. +@param norm_type normalization type (see cv::NormTypes). +@param dtype when negative, the output array has the same type as src; otherwise, it has the same +number of channels as src and the depth =CV_MAT_DEPTH(dtype). +@param mask optional operation mask. +@sa norm, Mat::convertTo, SparseMat::convertTo +*/ +CV_EXPORTS_W void normalize( InputArray src, InputOutputArray dst, double alpha = 1, double beta = 0, + int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray()); + +/** @overload +@param src input array. +@param dst output array of the same size as src . +@param alpha norm value to normalize to or the lower range boundary in case of the range +normalization. +@param normType normalization type (see cv::NormTypes). +*/ +CV_EXPORTS void normalize( const SparseMat& src, SparseMat& dst, double alpha, int normType ); + +/** @brief Finds the global minimum and maximum in an array. + +The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The +extremums are searched across the whole array or, if mask is not an empty array, in the specified +array region. + +The function do not work with multi-channel arrays. If you need to find minimum or maximum +elements across all the channels, use Mat::reshape first to reinterpret the array as +single-channel. Or you may extract the particular channel using either extractImageCOI , or +mixChannels , or split . +@param src input single-channel array. +@param minVal pointer to the returned minimum value; NULL is used if not required. +@param maxVal pointer to the returned maximum value; NULL is used if not required. +@param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required. +@param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required. +@param mask optional mask used to select a sub-array. +@sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape +*/ +CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal, + CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0, + CV_OUT Point* maxLoc = 0, InputArray mask = noArray()); + + +/** @brief Finds the global minimum and maximum in an array + +The function cv::minMaxIdx finds the minimum and maximum element values and their positions. The +extremums are searched across the whole array or, if mask is not an empty array, in the specified +array region. The function does not work with multi-channel arrays. If you need to find minimum or +maximum elements across all the channels, use Mat::reshape first to reinterpret the array as +single-channel. Or you may extract the particular channel using either extractImageCOI , or +mixChannels , or split . In case of a sparse matrix, the minimum is found among non-zero elements +only. +@note When minIdx is not NULL, it must have at least 2 elements (as well as maxIdx), even if src is +a single-row or single-column matrix. In OpenCV (following MATLAB) each array has at least 2 +dimensions, i.e. single-column matrix is Mx1 matrix (and therefore minIdx/maxIdx will be +(i1,0)/(i2,0)) and single-row matrix is 1xN matrix (and therefore minIdx/maxIdx will be +(0,j1)/(0,j2)). +@param src input single-channel array. +@param minVal pointer to the returned minimum value; NULL is used if not required. +@param maxVal pointer to the returned maximum value; NULL is used if not required. +@param minIdx pointer to the returned minimum location (in nD case); NULL is used if not required; +Otherwise, it must point to an array of src.dims elements, the coordinates of the minimum element +in each dimension are stored there sequentially. +@param maxIdx pointer to the returned maximum location (in nD case). NULL is used if not required. +@param mask specified array region +*/ +CV_EXPORTS void minMaxIdx(InputArray src, double* minVal, double* maxVal = 0, + int* minIdx = 0, int* maxIdx = 0, InputArray mask = noArray()); + +/** @overload +@param a input single-channel array. +@param minVal pointer to the returned minimum value; NULL is used if not required. +@param maxVal pointer to the returned maximum value; NULL is used if not required. +@param minIdx pointer to the returned minimum location (in nD case); NULL is used if not required; +Otherwise, it must point to an array of src.dims elements, the coordinates of the minimum element +in each dimension are stored there sequentially. +@param maxIdx pointer to the returned maximum location (in nD case). NULL is used if not required. +*/ +CV_EXPORTS void minMaxLoc(const SparseMat& a, double* minVal, + double* maxVal, int* minIdx = 0, int* maxIdx = 0); + +/** @brief Reduces a matrix to a vector. + +The function #reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of +1D vectors and performing the specified operation on the vectors until a single row/column is +obtained. For example, the function can be used to compute horizontal and vertical projections of a +raster image. In case of #REDUCE_MAX and #REDUCE_MIN , the output image should have the same type as the source one. +In case of #REDUCE_SUM and #REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy. +And multi-channel arrays are also supported in these two reduction modes. + +The following code demonstrates its usage for a single channel matrix. +@snippet snippets/core_reduce.cpp example + +And the following code demonstrates its usage for a two-channel matrix. +@snippet snippets/core_reduce.cpp example2 + +@param src input 2D matrix. +@param dst output vector. Its size and type is defined by dim and dtype parameters. +@param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to +a single row. 1 means that the matrix is reduced to a single column. +@param rtype reduction operation that could be one of #ReduceTypes +@param dtype when negative, the output vector will have the same type as the input matrix, +otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()). +@sa repeat +*/ +CV_EXPORTS_W void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype = -1); + +/** @brief Creates one multi-channel array out of several single-channel ones. + +The function cv::merge merges several arrays to make a single multi-channel array. That is, each +element of the output array will be a concatenation of the elements of the input arrays, where +elements of i-th input array are treated as mv[i].channels()-element vectors. + +The function cv::split does the reverse operation. If you need to shuffle channels in some other +advanced way, use cv::mixChannels. + +The following example shows how to merge 3 single channel matrices into a single 3-channel matrix. +@snippet snippets/core_merge.cpp example + +@param mv input array of matrices to be merged; all the matrices in mv must have the same +size and the same depth. +@param count number of input matrices when mv is a plain C array; it must be greater than zero. +@param dst output array of the same size and the same depth as mv[0]; The number of channels will +be equal to the parameter count. +@sa mixChannels, split, Mat::reshape +*/ +CV_EXPORTS void merge(const Mat* mv, size_t count, OutputArray dst); + +/** @overload +@param mv input vector of matrices to be merged; all the matrices in mv must have the same +size and the same depth. +@param dst output array of the same size and the same depth as mv[0]; The number of channels will +be the total number of channels in the matrix array. + */ +CV_EXPORTS_W void merge(InputArrayOfArrays mv, OutputArray dst); + +/** @brief Divides a multi-channel array into several single-channel arrays. + +The function cv::split splits a multi-channel array into separate single-channel arrays: +\f[\texttt{mv} [c](I) = \texttt{src} (I)_c\f] +If you need to extract a single channel or do some other sophisticated channel permutation, use +mixChannels . + +The following example demonstrates how to split a 3-channel matrix into 3 single channel matrices. +@snippet snippets/core_split.cpp example + +@param src input multi-channel array. +@param mvbegin output array; the number of arrays must match src.channels(); the arrays themselves are +reallocated, if needed. +@sa merge, mixChannels, cvtColor +*/ +CV_EXPORTS void split(const Mat& src, Mat* mvbegin); + +/** @overload +@param m input multi-channel array. +@param mv output vector of arrays; the arrays themselves are reallocated, if needed. +*/ +CV_EXPORTS_W void split(InputArray m, OutputArrayOfArrays mv); + +/** @brief Copies specified channels from input arrays to the specified channels of +output arrays. + +The function cv::mixChannels provides an advanced mechanism for shuffling image channels. + +cv::split,cv::merge,cv::extractChannel,cv::insertChannel and some forms of cv::cvtColor are partial cases of cv::mixChannels. + +In the example below, the code splits a 4-channel BGRA image into a 3-channel BGR (with B and R +channels swapped) and a separate alpha-channel image: +@code{.cpp} + Mat bgra( 100, 100, CV_8UC4, Scalar(255,0,0,255) ); + Mat bgr( bgra.rows, bgra.cols, CV_8UC3 ); + Mat alpha( bgra.rows, bgra.cols, CV_8UC1 ); + + // forming an array of matrices is a quite efficient operation, + // because the matrix data is not copied, only the headers + Mat out[] = { bgr, alpha }; + // bgra[0] -> bgr[2], bgra[1] -> bgr[1], + // bgra[2] -> bgr[0], bgra[3] -> alpha[0] + int from_to[] = { 0,2, 1,1, 2,0, 3,3 }; + mixChannels( &bgra, 1, out, 2, from_to, 4 ); +@endcode +@note Unlike many other new-style C++ functions in OpenCV (see the introduction section and +Mat::create ), cv::mixChannels requires the output arrays to be pre-allocated before calling the +function. +@param src input array or vector of matrices; all of the matrices must have the same size and the +same depth. +@param nsrcs number of matrices in `src`. +@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and +depth must be the same as in `src[0]`. +@param ndsts number of matrices in `dst`. +@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is +a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in +dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to +src[0].channels()-1, the second input image channels are indexed from src[0].channels() to +src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image +channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is +filled with zero . +@param npairs number of index pairs in `fromTo`. +@sa split, merge, extractChannel, insertChannel, cvtColor +*/ +CV_EXPORTS void mixChannels(const Mat* src, size_t nsrcs, Mat* dst, size_t ndsts, + const int* fromTo, size_t npairs); + +/** @overload +@param src input array or vector of matrices; all of the matrices must have the same size and the +same depth. +@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and +depth must be the same as in src[0]. +@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is +a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in +dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to +src[0].channels()-1, the second input image channels are indexed from src[0].channels() to +src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image +channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is +filled with zero . +@param npairs number of index pairs in fromTo. +*/ +CV_EXPORTS void mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst, + const int* fromTo, size_t npairs); + +/** @overload +@param src input array or vector of matrices; all of the matrices must have the same size and the +same depth. +@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and +depth must be the same as in src[0]. +@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is +a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in +dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to +src[0].channels()-1, the second input image channels are indexed from src[0].channels() to +src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image +channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is +filled with zero . +*/ +CV_EXPORTS_W void mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst, + const std::vector& fromTo); + +/** @brief Extracts a single channel from src (coi is 0-based index) +@param src input array +@param dst output array +@param coi index of channel to extract +@sa mixChannels, split +*/ +CV_EXPORTS_W void extractChannel(InputArray src, OutputArray dst, int coi); + +/** @brief Inserts a single channel to dst (coi is 0-based index) +@param src input array +@param dst output array +@param coi index of channel for insertion +@sa mixChannels, merge +*/ +CV_EXPORTS_W void insertChannel(InputArray src, InputOutputArray dst, int coi); + +/** @brief Flips a 2D array around vertical, horizontal, or both axes. + +The function cv::flip flips the array in one of three different ways (row +and column indices are 0-based): +\f[\texttt{dst} _{ij} = +\left\{ +\begin{array}{l l} +\texttt{src} _{\texttt{src.rows}-i-1,j} & if\; \texttt{flipCode} = 0 \\ +\texttt{src} _{i, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} > 0 \\ +\texttt{src} _{ \texttt{src.rows} -i-1, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} < 0 \\ +\end{array} +\right.\f] +The example scenarios of using the function are the following: +* Vertical flipping of the image (flipCode == 0) to switch between + top-left and bottom-left image origin. This is a typical operation + in video processing on Microsoft Windows\* OS. +* Horizontal flipping of the image with the subsequent horizontal + shift and absolute difference calculation to check for a + vertical-axis symmetry (flipCode \> 0). +* Simultaneous horizontal and vertical flipping of the image with + the subsequent shift and absolute difference calculation to check + for a central symmetry (flipCode \< 0). +* Reversing the order of point arrays (flipCode \> 0 or + flipCode == 0). +@param src input array. +@param dst output array of the same size and type as src. +@param flipCode a flag to specify how to flip the array; 0 means +flipping around the x-axis and positive value (for example, 1) means +flipping around y-axis. Negative value (for example, -1) means flipping +around both axes. +@sa transpose , repeat , completeSymm +*/ +CV_EXPORTS_W void flip(InputArray src, OutputArray dst, int flipCode); + +enum RotateFlags { + ROTATE_90_CLOCKWISE = 0, //! A = (cv::Mat_(3, 2) << 1, 4, + 2, 5, + 3, 6); + cv::Mat_ B = (cv::Mat_(3, 2) << 7, 10, + 8, 11, + 9, 12); + + cv::Mat C; + cv::hconcat(A, B, C); + //C: + //[1, 4, 7, 10; + // 2, 5, 8, 11; + // 3, 6, 9, 12] + @endcode + @param src1 first input array to be considered for horizontal concatenation. + @param src2 second input array to be considered for horizontal concatenation. + @param dst output array. It has the same number of rows and depth as the src1 and src2, and the sum of cols of the src1 and src2. + */ +CV_EXPORTS void hconcat(InputArray src1, InputArray src2, OutputArray dst); +/** @overload + @code{.cpp} + std::vector matrices = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)), + cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)), + cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),}; + + cv::Mat out; + cv::hconcat( matrices, out ); + //out: + //[1, 2, 3; + // 1, 2, 3; + // 1, 2, 3; + // 1, 2, 3] + @endcode + @param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth. + @param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src. +same depth. + */ +CV_EXPORTS_W void hconcat(InputArrayOfArrays src, OutputArray dst); + +/** @brief Applies vertical concatenation to given matrices. + +The function vertically concatenates two or more cv::Mat matrices (with the same number of cols). +@code{.cpp} + cv::Mat matArray[] = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)), + cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)), + cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),}; + + cv::Mat out; + cv::vconcat( matArray, 3, out ); + //out: + //[1, 1, 1, 1; + // 2, 2, 2, 2; + // 3, 3, 3, 3] +@endcode +@param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth. +@param nsrc number of matrices in src. +@param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src. +@sa cv::hconcat(const Mat*, size_t, OutputArray), @sa cv::hconcat(InputArrayOfArrays, OutputArray) and @sa cv::hconcat(InputArray, InputArray, OutputArray) +*/ +CV_EXPORTS void vconcat(const Mat* src, size_t nsrc, OutputArray dst); +/** @overload + @code{.cpp} + cv::Mat_ A = (cv::Mat_(3, 2) << 1, 7, + 2, 8, + 3, 9); + cv::Mat_ B = (cv::Mat_(3, 2) << 4, 10, + 5, 11, + 6, 12); + + cv::Mat C; + cv::vconcat(A, B, C); + //C: + //[1, 7; + // 2, 8; + // 3, 9; + // 4, 10; + // 5, 11; + // 6, 12] + @endcode + @param src1 first input array to be considered for vertical concatenation. + @param src2 second input array to be considered for vertical concatenation. + @param dst output array. It has the same number of cols and depth as the src1 and src2, and the sum of rows of the src1 and src2. + */ +CV_EXPORTS void vconcat(InputArray src1, InputArray src2, OutputArray dst); +/** @overload + @code{.cpp} + std::vector matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)), + cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)), + cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),}; + + cv::Mat out; + cv::vconcat( matrices, out ); + //out: + //[1, 1, 1, 1; + // 2, 2, 2, 2; + // 3, 3, 3, 3] + @endcode + @param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth + @param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src. +same depth. + */ +CV_EXPORTS_W void vconcat(InputArrayOfArrays src, OutputArray dst); + +/** @brief computes bitwise conjunction of the two arrays (dst = src1 & src2) +Calculates the per-element bit-wise conjunction of two arrays or an +array and a scalar. + +The function cv::bitwise_and calculates the per-element bit-wise logical conjunction for: +* Two arrays when src1 and src2 have the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] +* An array and a scalar when src2 is constructed from Scalar or has + the same number of elements as `src1.channels()`: + \f[\texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} \quad \texttt{if mask} (I) \ne0\f] +* A scalar and an array when src1 is constructed from Scalar or has + the same number of elements as `src2.channels()`: + \f[\texttt{dst} (I) = \texttt{src1} \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] +In case of floating-point arrays, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel arrays, each channel is processed +independently. In the second and third cases above, the scalar is first +converted to the array type. +@param src1 first input array or a scalar. +@param src2 second input array or a scalar. +@param dst output array that has the same size and type as the input +arrays. +@param mask optional operation mask, 8-bit single channel array, that +specifies elements of the output array to be changed. +*/ +CV_EXPORTS_W void bitwise_and(InputArray src1, InputArray src2, + OutputArray dst, InputArray mask = noArray()); + +/** @brief Calculates the per-element bit-wise disjunction of two arrays or an +array and a scalar. + +The function cv::bitwise_or calculates the per-element bit-wise logical disjunction for: +* Two arrays when src1 and src2 have the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) \vee \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] +* An array and a scalar when src2 is constructed from Scalar or has + the same number of elements as `src1.channels()`: + \f[\texttt{dst} (I) = \texttt{src1} (I) \vee \texttt{src2} \quad \texttt{if mask} (I) \ne0\f] +* A scalar and an array when src1 is constructed from Scalar or has + the same number of elements as `src2.channels()`: + \f[\texttt{dst} (I) = \texttt{src1} \vee \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] +In case of floating-point arrays, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel arrays, each channel is processed +independently. In the second and third cases above, the scalar is first +converted to the array type. +@param src1 first input array or a scalar. +@param src2 second input array or a scalar. +@param dst output array that has the same size and type as the input +arrays. +@param mask optional operation mask, 8-bit single channel array, that +specifies elements of the output array to be changed. +*/ +CV_EXPORTS_W void bitwise_or(InputArray src1, InputArray src2, + OutputArray dst, InputArray mask = noArray()); + +/** @brief Calculates the per-element bit-wise "exclusive or" operation on two +arrays or an array and a scalar. + +The function cv::bitwise_xor calculates the per-element bit-wise logical "exclusive-or" +operation for: +* Two arrays when src1 and src2 have the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) \oplus \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] +* An array and a scalar when src2 is constructed from Scalar or has + the same number of elements as `src1.channels()`: + \f[\texttt{dst} (I) = \texttt{src1} (I) \oplus \texttt{src2} \quad \texttt{if mask} (I) \ne0\f] +* A scalar and an array when src1 is constructed from Scalar or has + the same number of elements as `src2.channels()`: + \f[\texttt{dst} (I) = \texttt{src1} \oplus \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] +In case of floating-point arrays, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel arrays, each channel is processed +independently. In the 2nd and 3rd cases above, the scalar is first +converted to the array type. +@param src1 first input array or a scalar. +@param src2 second input array or a scalar. +@param dst output array that has the same size and type as the input +arrays. +@param mask optional operation mask, 8-bit single channel array, that +specifies elements of the output array to be changed. +*/ +CV_EXPORTS_W void bitwise_xor(InputArray src1, InputArray src2, + OutputArray dst, InputArray mask = noArray()); + +/** @brief Inverts every bit of an array. + +The function cv::bitwise_not calculates per-element bit-wise inversion of the input +array: +\f[\texttt{dst} (I) = \neg \texttt{src} (I)\f] +In case of a floating-point input array, its machine-specific bit +representation (usually IEEE754-compliant) is used for the operation. In +case of multi-channel arrays, each channel is processed independently. +@param src input array. +@param dst output array that has the same size and type as the input +array. +@param mask optional operation mask, 8-bit single channel array, that +specifies elements of the output array to be changed. +*/ +CV_EXPORTS_W void bitwise_not(InputArray src, OutputArray dst, + InputArray mask = noArray()); + +/** @brief Calculates the per-element absolute difference between two arrays or between an array and a scalar. + +The function cv::absdiff calculates: +* Absolute difference between two arrays when they have the same + size and type: + \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{src2}(I)|)\f] +* Absolute difference between an array and a scalar when the second + array is constructed from Scalar or has as many elements as the + number of channels in `src1`: + \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{src2} |)\f] +* Absolute difference between a scalar and an array when the first + array is constructed from Scalar or has as many elements as the + number of channels in `src2`: + \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1} - \texttt{src2}(I) |)\f] + where I is a multi-dimensional index of array elements. In case of + multi-channel arrays, each channel is processed independently. +@note Saturation is not applied when the arrays have the depth CV_32S. +You may even get a negative value in the case of overflow. +@param src1 first input array or a scalar. +@param src2 second input array or a scalar. +@param dst output array that has the same size and type as input arrays. +@sa cv::abs(const Mat&) +*/ +CV_EXPORTS_W void absdiff(InputArray src1, InputArray src2, OutputArray dst); + +/** @brief This is an overloaded member function, provided for convenience (python) +Copies the matrix to another one. +When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data. +@param src source matrix. +@param dst Destination matrix. If it does not have a proper size or type before the operation, it is +reallocated. +@param mask Operation mask of the same size as \*this. Its non-zero elements indicate which matrix +elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels. +*/ + +void CV_EXPORTS_W copyTo(InputArray src, OutputArray dst, InputArray mask); +/** @brief Checks if array elements lie between the elements of two other arrays. + +The function checks the range as follows: +- For every element of a single-channel input array: + \f[\texttt{dst} (I)= \texttt{lowerb} (I)_0 \leq \texttt{src} (I)_0 \leq \texttt{upperb} (I)_0\f] +- For two-channel arrays: + \f[\texttt{dst} (I)= \texttt{lowerb} (I)_0 \leq \texttt{src} (I)_0 \leq \texttt{upperb} (I)_0 \land \texttt{lowerb} (I)_1 \leq \texttt{src} (I)_1 \leq \texttt{upperb} (I)_1\f] +- and so forth. + +That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the +specified 1D, 2D, 3D, ... box and 0 otherwise. + +When the lower and/or upper boundary parameters are scalars, the indexes +(I) at lowerb and upperb in the above formulas should be omitted. +@param src first input array. +@param lowerb inclusive lower boundary array or a scalar. +@param upperb inclusive upper boundary array or a scalar. +@param dst output array of the same size as src and CV_8U type. +*/ +CV_EXPORTS_W void inRange(InputArray src, InputArray lowerb, + InputArray upperb, OutputArray dst); + +/** @brief Performs the per-element comparison of two arrays or an array and scalar value. + +The function compares: +* Elements of two arrays when src1 and src2 have the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) \,\texttt{cmpop}\, \texttt{src2} (I)\f] +* Elements of src1 with a scalar src2 when src2 is constructed from + Scalar or has a single element: + \f[\texttt{dst} (I) = \texttt{src1}(I) \,\texttt{cmpop}\, \texttt{src2}\f] +* src1 with elements of src2 when src1 is constructed from Scalar or + has a single element: + \f[\texttt{dst} (I) = \texttt{src1} \,\texttt{cmpop}\, \texttt{src2} (I)\f] +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: +@code{.cpp} + Mat dst1 = src1 >= src2; + Mat dst2 = src1 < 8; + ... +@endcode +@param src1 first input array or a scalar; when it is an array, it must have a single channel. +@param src2 second input array or a scalar; when it is an array, it must have a single channel. +@param dst output array of type ref CV_8U that has the same size and the same number of channels as + the input arrays. +@param cmpop a flag, that specifies correspondence between the arrays (cv::CmpTypes) +@sa checkRange, min, max, threshold +*/ +CV_EXPORTS_W void compare(InputArray src1, InputArray src2, OutputArray dst, int cmpop); + +/** @brief Calculates per-element minimum of two arrays or an array and a scalar. + +The function cv::min calculates the per-element minimum of two arrays: +\f[\texttt{dst} (I)= \min ( \texttt{src1} (I), \texttt{src2} (I))\f] +or array and a scalar: +\f[\texttt{dst} (I)= \min ( \texttt{src1} (I), \texttt{value} )\f] +@param src1 first input array. +@param src2 second input array of the same size and type as src1. +@param dst output array of the same size and type as src1. +@sa max, compare, inRange, minMaxLoc +*/ +CV_EXPORTS_W void min(InputArray src1, InputArray src2, OutputArray dst); +/** @overload +needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) +*/ +CV_EXPORTS void min(const Mat& src1, const Mat& src2, Mat& dst); +/** @overload +needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) +*/ +CV_EXPORTS void min(const UMat& src1, const UMat& src2, UMat& dst); + +/** @brief Calculates per-element maximum of two arrays or an array and a scalar. + +The function cv::max calculates the per-element maximum of two arrays: +\f[\texttt{dst} (I)= \max ( \texttt{src1} (I), \texttt{src2} (I))\f] +or array and a scalar: +\f[\texttt{dst} (I)= \max ( \texttt{src1} (I), \texttt{value} )\f] +@param src1 first input array. +@param src2 second input array of the same size and type as src1 . +@param dst output array of the same size and type as src1. +@sa min, compare, inRange, minMaxLoc, @ref MatrixExpressions +*/ +CV_EXPORTS_W void max(InputArray src1, InputArray src2, OutputArray dst); +/** @overload +needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) +*/ +CV_EXPORTS void max(const Mat& src1, const Mat& src2, Mat& dst); +/** @overload +needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) +*/ +CV_EXPORTS void max(const UMat& src1, const UMat& src2, UMat& dst); + +/** @brief Calculates a square root of array elements. + +The function cv::sqrt calculates a square root of each input array element. +In case of multi-channel arrays, each channel is processed +independently. The accuracy is approximately the same as of the built-in +std::sqrt . +@param src input floating-point array. +@param dst output array of the same size and type as src. +*/ +CV_EXPORTS_W void sqrt(InputArray src, OutputArray dst); + +/** @brief Raises every array element to a power. + +The function cv::pow raises every element of the input array to power : +\f[\texttt{dst} (I) = \fork{\texttt{src}(I)^{power}}{if \(\texttt{power}\) is integer}{|\texttt{src}(I)|^{power}}{otherwise}\f] + +So, for a non-integer power exponent, the absolute values of input array +elements are used. However, it is possible to get true values for +negative values using some extra operations. In the example below, +computing the 5th root of array src shows: +@code{.cpp} + Mat mask = src < 0; + pow(src, 1./5, dst); + subtract(Scalar::all(0), dst, dst, mask); +@endcode +For some values of power, such as integer values, 0.5 and -0.5, +specialized faster algorithms are used. + +Special values (NaN, Inf) are not handled. +@param src input array. +@param power exponent of power. +@param dst output array of the same size and type as src. +@sa sqrt, exp, log, cartToPolar, polarToCart +*/ +CV_EXPORTS_W void pow(InputArray src, double power, OutputArray dst); + +/** @brief Calculates the exponent of every array element. + +The function cv::exp calculates the exponent of every element of the input +array: +\f[\texttt{dst} [I] = e^{ src(I) }\f] + +The maximum relative error is about 7e-6 for single-precision input and +less than 1e-10 for double-precision input. Currently, the function +converts denormalized values to zeros on output. Special values (NaN, +Inf) are not handled. +@param src input array. +@param dst output array of the same size and type as src. +@sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude +*/ +CV_EXPORTS_W void exp(InputArray src, OutputArray dst); + +/** @brief Calculates the natural logarithm of every array element. + +The function cv::log calculates the natural logarithm of every element of the input array: +\f[\texttt{dst} (I) = \log (\texttt{src}(I)) \f] + +Output on zero, negative and special (NaN, Inf) values is undefined. + +@param src input array. +@param dst output array of the same size and type as src . +@sa exp, cartToPolar, polarToCart, phase, pow, sqrt, magnitude +*/ +CV_EXPORTS_W void log(InputArray src, OutputArray dst); + +/** @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle. + +The function cv::polarToCart calculates the Cartesian coordinates of each 2D +vector represented by the corresponding elements of magnitude and angle: +\f[\begin{array}{l} \texttt{x} (I) = \texttt{magnitude} (I) \cos ( \texttt{angle} (I)) \\ \texttt{y} (I) = \texttt{magnitude} (I) \sin ( \texttt{angle} (I)) \\ \end{array}\f] + +The relative accuracy of the estimated coordinates is about 1e-6. +@param magnitude input floating-point array of magnitudes of 2D vectors; +it can be an empty matrix (=Mat()), in this case, the function assumes +that all the magnitudes are =1; if it is not empty, it must have the +same size and type as angle. +@param angle input floating-point array of angles of 2D vectors. +@param x output array of x-coordinates of 2D vectors; it has the same +size and type as angle. +@param y output array of y-coordinates of 2D vectors; it has the same +size and type as angle. +@param angleInDegrees when true, the input angles are measured in +degrees, otherwise, they are measured in radians. +@sa cartToPolar, magnitude, phase, exp, log, pow, sqrt +*/ +CV_EXPORTS_W void polarToCart(InputArray magnitude, InputArray angle, + OutputArray x, OutputArray y, bool angleInDegrees = false); + +/** @brief Calculates the magnitude and angle of 2D vectors. + +The function cv::cartToPolar calculates either the magnitude, angle, or both +for every 2D vector (x(I),y(I)): +\f[\begin{array}{l} \texttt{magnitude} (I)= \sqrt{\texttt{x}(I)^2+\texttt{y}(I)^2} , \\ \texttt{angle} (I)= \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))[ \cdot180 / \pi ] \end{array}\f] + +The angles are calculated with accuracy about 0.3 degrees. For the point +(0,0), the angle is set to 0. +@param x array of x-coordinates; this must be a single-precision or +double-precision floating-point array. +@param y array of y-coordinates, that must have the same size and same type as x. +@param magnitude output array of magnitudes of the same size and type as x. +@param angle output array of angles that has the same size and type as +x; the angles are measured in radians (from 0 to 2\*Pi) or in degrees (0 to 360 degrees). +@param angleInDegrees a flag, indicating whether the angles are measured +in radians (which is by default), or in degrees. +@sa Sobel, Scharr +*/ +CV_EXPORTS_W void cartToPolar(InputArray x, InputArray y, + OutputArray magnitude, OutputArray angle, + bool angleInDegrees = false); + +/** @brief Calculates the rotation angle of 2D vectors. + +The function cv::phase calculates the rotation angle of each 2D vector that +is formed from the corresponding elements of x and y : +\f[\texttt{angle} (I) = \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))\f] + +The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 , +the corresponding angle(I) is set to 0. +@param x input floating-point array of x-coordinates of 2D vectors. +@param y input array of y-coordinates of 2D vectors; it must have the +same size and the same type as x. +@param angle output array of vector angles; it has the same size and +same type as x . +@param angleInDegrees when true, the function calculates the angle in +degrees, otherwise, they are measured in radians. +*/ +CV_EXPORTS_W void phase(InputArray x, InputArray y, OutputArray angle, + bool angleInDegrees = false); + +/** @brief Calculates the magnitude of 2D vectors. + +The function cv::magnitude calculates the magnitude of 2D vectors formed +from the corresponding elements of x and y arrays: +\f[\texttt{dst} (I) = \sqrt{\texttt{x}(I)^2 + \texttt{y}(I)^2}\f] +@param x floating-point array of x-coordinates of the vectors. +@param y floating-point array of y-coordinates of the vectors; it must +have the same size as x. +@param magnitude output array of the same size and type as x. +@sa cartToPolar, polarToCart, phase, sqrt +*/ +CV_EXPORTS_W void magnitude(InputArray x, InputArray y, OutputArray magnitude); + +/** @brief Checks every element of an input array for invalid values. + +The function cv::checkRange checks that every array element is neither NaN nor infinite. When minVal \> +-DBL_MAX and maxVal \< DBL_MAX, the function also checks that each value is between minVal and +maxVal. In case of multi-channel arrays, each channel is processed independently. If some values +are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the +function either returns false (when quiet=true) or throws an exception. +@param a input array. +@param quiet a flag, indicating whether the functions quietly return false when the array elements +are out of range or they throw an exception. +@param pos optional output parameter, when not NULL, must be a pointer to array of src.dims +elements. +@param minVal inclusive lower boundary of valid values range. +@param maxVal exclusive upper boundary of valid values range. +*/ +CV_EXPORTS_W bool checkRange(InputArray a, bool quiet = true, CV_OUT Point* pos = 0, + double minVal = -DBL_MAX, double maxVal = DBL_MAX); + +/** @brief converts NaN's to the given number +*/ +CV_EXPORTS_W void patchNaNs(InputOutputArray a, double val = 0); + +/** @brief Performs generalized matrix multiplication. + +The function cv::gemm performs generalized matrix multiplication similar to the +gemm functions in BLAS level 3. For example, +`gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)` +corresponds to +\f[\texttt{dst} = \texttt{alpha} \cdot \texttt{src1} ^T \cdot \texttt{src2} + \texttt{beta} \cdot \texttt{src3} ^T\f] + +In case of complex (two-channel) data, performed a complex matrix +multiplication. + +The function can be replaced with a matrix expression. For example, the +above call can be replaced with: +@code{.cpp} + dst = alpha*src1.t()*src2 + beta*src3.t(); +@endcode +@param src1 first multiplied input matrix that could be real(CV_32FC1, +CV_64FC1) or complex(CV_32FC2, CV_64FC2). +@param src2 second multiplied input matrix of the same type as src1. +@param alpha weight of the matrix product. +@param src3 third optional delta matrix added to the matrix product; it +should have the same type as src1 and src2. +@param beta weight of src3. +@param dst output matrix; it has the proper size and the same type as +input matrices. +@param flags operation flags (cv::GemmFlags) +@sa mulTransposed , transform +*/ +CV_EXPORTS_W void gemm(InputArray src1, InputArray src2, double alpha, + InputArray src3, double beta, OutputArray dst, int flags = 0); + +/** @brief Calculates the product of a matrix and its transposition. + +The function cv::mulTransposed calculates the product of src and its +transposition: +\f[\texttt{dst} = \texttt{scale} ( \texttt{src} - \texttt{delta} )^T ( \texttt{src} - \texttt{delta} )\f] +if aTa=true , and +\f[\texttt{dst} = \texttt{scale} ( \texttt{src} - \texttt{delta} ) ( \texttt{src} - \texttt{delta} )^T\f] +otherwise. The function is used to calculate the covariance matrix. With +zero delta, it can be used as a faster substitute for general matrix +product A\*B when B=A' +@param src input single-channel matrix. Note that unlike gemm, the +function can multiply not only floating-point matrices. +@param dst output square matrix. +@param aTa Flag specifying the multiplication ordering. See the +description below. +@param delta Optional delta matrix subtracted from src before the +multiplication. When the matrix is empty ( delta=noArray() ), it is +assumed to be zero, that is, nothing is subtracted. If it has the same +size as src , it is simply subtracted. Otherwise, it is "repeated" (see +repeat ) to cover the full src and then subtracted. Type of the delta +matrix, when it is not empty, must be the same as the type of created +output matrix. See the dtype parameter description below. +@param scale Optional scale factor for the matrix product. +@param dtype Optional type of the output matrix. When it is negative, +the output matrix will have the same type as src . Otherwise, it will be +type=CV_MAT_DEPTH(dtype) that should be either CV_32F or CV_64F . +@sa calcCovarMatrix, gemm, repeat, reduce +*/ +CV_EXPORTS_W void mulTransposed( InputArray src, OutputArray dst, bool aTa, + InputArray delta = noArray(), + double scale = 1, int dtype = -1 ); + +/** @brief Transposes a matrix. + +The function cv::transpose transposes the matrix src : +\f[\texttt{dst} (i,j) = \texttt{src} (j,i)\f] +@note No complex conjugation is done in case of a complex matrix. It +should be done separately if needed. +@param src input array. +@param dst output array of the same type as src. +*/ +CV_EXPORTS_W void transpose(InputArray src, OutputArray dst); + +/** @brief Performs the matrix transformation of every array element. + +The function cv::transform performs the matrix transformation of every +element of the array src and stores the results in dst : +\f[\texttt{dst} (I) = \texttt{m} \cdot \texttt{src} (I)\f] +(when m.cols=src.channels() ), or +\f[\texttt{dst} (I) = \texttt{m} \cdot [ \texttt{src} (I); 1]\f] +(when m.cols=src.channels()+1 ) + +Every element of the N -channel array src is interpreted as N -element +vector that is transformed using the M x N or M x (N+1) matrix m to +M-element vector - the corresponding element of the output array dst . + +The function may be used for geometrical transformation of +N -dimensional points, arbitrary linear color space transformation (such +as various kinds of RGB to YUV transforms), shuffling the image +channels, and so forth. +@param src input array that must have as many channels (1 to 4) as +m.cols or m.cols-1. +@param dst output array of the same size and depth as src; it has as +many channels as m.rows. +@param m transformation 2x2 or 2x3 floating-point matrix. +@sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective +*/ +CV_EXPORTS_W void transform(InputArray src, OutputArray dst, InputArray m ); + +/** @brief Performs the perspective matrix transformation of vectors. + +The function cv::perspectiveTransform transforms every element of src by +treating it as a 2D or 3D vector, in the following way: +\f[(x, y, z) \rightarrow (x'/w, y'/w, z'/w)\f] +where +\f[(x', y', z', w') = \texttt{mat} \cdot \begin{bmatrix} x & y & z & 1 \end{bmatrix}\f] +and +\f[w = \fork{w'}{if \(w' \ne 0\)}{\infty}{otherwise}\f] + +Here a 3D vector transformation is shown. In case of a 2D vector +transformation, the z component is omitted. + +@note The function transforms a sparse set of 2D or 3D vectors. If you +want to transform an image using perspective transformation, use +warpPerspective . If you have an inverse problem, that is, you want to +compute the most probable perspective transformation out of several +pairs of corresponding points, you can use getPerspectiveTransform or +findHomography . +@param src input two-channel or three-channel floating-point array; each +element is a 2D/3D vector to be transformed. +@param dst output array of the same size and type as src. +@param m 3x3 or 4x4 floating-point transformation matrix. +@sa transform, warpPerspective, getPerspectiveTransform, findHomography +*/ +CV_EXPORTS_W void perspectiveTransform(InputArray src, OutputArray dst, InputArray m ); + +/** @brief Copies the lower or the upper half of a square matrix to its another half. + +The function cv::completeSymm copies the lower or the upper half of a square matrix to +its another half. The matrix diagonal remains unchanged: + - \f$\texttt{m}_{ij}=\texttt{m}_{ji}\f$ for \f$i > j\f$ if + lowerToUpper=false + - \f$\texttt{m}_{ij}=\texttt{m}_{ji}\f$ for \f$i < j\f$ if + lowerToUpper=true + +@param m input-output floating-point square matrix. +@param lowerToUpper operation flag; if true, the lower half is copied to +the upper half. Otherwise, the upper half is copied to the lower half. +@sa flip, transpose +*/ +CV_EXPORTS_W void completeSymm(InputOutputArray m, bool lowerToUpper = false); + +/** @brief Initializes a scaled identity matrix. + +The function cv::setIdentity initializes a scaled identity matrix: +\f[\texttt{mtx} (i,j)= \fork{\texttt{value}}{ if \(i=j\)}{0}{otherwise}\f] + +The function can also be emulated using the matrix initializers and the +matrix expressions: +@code + Mat A = Mat::eye(4, 3, CV_32F)*5; + // A will be set to [[5, 0, 0], [0, 5, 0], [0, 0, 5], [0, 0, 0]] +@endcode +@param mtx matrix to initialize (not necessarily square). +@param s value to assign to diagonal elements. +@sa Mat::zeros, Mat::ones, Mat::setTo, Mat::operator= +*/ +CV_EXPORTS_W void setIdentity(InputOutputArray mtx, const Scalar& s = Scalar(1)); + +/** @brief Returns the determinant of a square floating-point matrix. + +The function cv::determinant calculates and returns the determinant of the +specified matrix. For small matrices ( mtx.cols=mtx.rows\<=3 ), the +direct method is used. For larger matrices, the function uses LU +factorization with partial pivoting. + +For symmetric positively-determined matrices, it is also possible to use +eigen decomposition to calculate the determinant. +@param mtx input matrix that must have CV_32FC1 or CV_64FC1 type and +square size. +@sa trace, invert, solve, eigen, @ref MatrixExpressions +*/ +CV_EXPORTS_W double determinant(InputArray mtx); + +/** @brief Returns the trace of a matrix. + +The function cv::trace returns the sum of the diagonal elements of the +matrix mtx . +\f[\mathrm{tr} ( \texttt{mtx} ) = \sum _i \texttt{mtx} (i,i)\f] +@param mtx input matrix. +*/ +CV_EXPORTS_W Scalar trace(InputArray mtx); + +/** @brief Finds the inverse or pseudo-inverse of a matrix. + +The function cv::invert inverts the matrix src and stores the result in dst +. When the matrix src is singular or non-square, the function calculates +the pseudo-inverse matrix (the dst matrix) so that norm(src\*dst - I) is +minimal, where I is an identity matrix. + +In case of the #DECOMP_LU method, the function returns non-zero value if +the inverse has been successfully calculated and 0 if src is singular. + +In case of the #DECOMP_SVD method, the function returns the inverse +condition number of src (the ratio of the smallest singular value to the +largest singular value) and 0 if src is singular. The SVD method +calculates a pseudo-inverse matrix if src is singular. + +Similarly to #DECOMP_LU, the method #DECOMP_CHOLESKY works only with +non-singular square matrices that should also be symmetrical and +positively defined. In this case, the function stores the inverted +matrix in dst and returns non-zero. Otherwise, it returns 0. + +@param src input floating-point M x N matrix. +@param dst output matrix of N x M size and the same type as src. +@param flags inversion method (cv::DecompTypes) +@sa solve, SVD +*/ +CV_EXPORTS_W double invert(InputArray src, OutputArray dst, int flags = DECOMP_LU); + +/** @brief Solves one or more linear systems or least-squares problems. + +The function cv::solve solves a linear system or least-squares problem (the +latter is possible with SVD or QR methods, or by specifying the flag +#DECOMP_NORMAL ): +\f[\texttt{dst} = \arg \min _X \| \texttt{src1} \cdot \texttt{X} - \texttt{src2} \|\f] + +If #DECOMP_LU or #DECOMP_CHOLESKY method is used, the function returns 1 +if src1 (or \f$\texttt{src1}^T\texttt{src1}\f$ ) is non-singular. Otherwise, +it returns 0. In the latter case, dst is not valid. Other methods find a +pseudo-solution in case of a singular left-hand side part. + +@note If you want to find a unity-norm solution of an under-defined +singular system \f$\texttt{src1}\cdot\texttt{dst}=0\f$ , the function solve +will not do the work. Use SVD::solveZ instead. + +@param src1 input matrix on the left-hand side of the system. +@param src2 input matrix on the right-hand side of the system. +@param dst output solution. +@param flags solution (matrix inversion) method (#DecompTypes) +@sa invert, SVD, eigen +*/ +CV_EXPORTS_W bool solve(InputArray src1, InputArray src2, + OutputArray dst, int flags = DECOMP_LU); + +/** @brief Sorts each row or each column of a matrix. + +The function cv::sort sorts each matrix row or each matrix column in +ascending or descending order. So you should pass two operation flags to +get desired behaviour. If you want to sort matrix rows or columns +lexicographically, you can use STL std::sort generic function with the +proper comparison predicate. + +@param src input single-channel array. +@param dst output array of the same size and type as src. +@param flags operation flags, a combination of #SortFlags +@sa sortIdx, randShuffle +*/ +CV_EXPORTS_W void sort(InputArray src, OutputArray dst, int flags); + +/** @brief Sorts each row or each column of a matrix. + +The function cv::sortIdx sorts each matrix row or each matrix column in the +ascending or descending order. So you should pass two operation flags to +get desired behaviour. Instead of reordering the elements themselves, it +stores the indices of sorted elements in the output array. For example: +@code + Mat A = Mat::eye(3,3,CV_32F), B; + sortIdx(A, B, SORT_EVERY_ROW + SORT_ASCENDING); + // B will probably contain + // (because of equal elements in A some permutations are possible): + // [[1, 2, 0], [0, 2, 1], [0, 1, 2]] +@endcode +@param src input single-channel array. +@param dst output integer array of the same size as src. +@param flags operation flags that could be a combination of cv::SortFlags +@sa sort, randShuffle +*/ +CV_EXPORTS_W void sortIdx(InputArray src, OutputArray dst, int flags); + +/** @brief Finds the real roots of a cubic equation. + +The function solveCubic finds the real roots of a cubic equation: +- if coeffs is a 4-element vector: +\f[\texttt{coeffs} [0] x^3 + \texttt{coeffs} [1] x^2 + \texttt{coeffs} [2] x + \texttt{coeffs} [3] = 0\f] +- if coeffs is a 3-element vector: +\f[x^3 + \texttt{coeffs} [0] x^2 + \texttt{coeffs} [1] x + \texttt{coeffs} [2] = 0\f] + +The roots are stored in the roots array. +@param coeffs equation coefficients, an array of 3 or 4 elements. +@param roots output array of real roots that has 1 or 3 elements. +@return number of real roots. It can be 0, 1 or 2. +*/ +CV_EXPORTS_W int solveCubic(InputArray coeffs, OutputArray roots); + +/** @brief Finds the real or complex roots of a polynomial equation. + +The function cv::solvePoly finds real and complex roots of a polynomial equation: +\f[\texttt{coeffs} [n] x^{n} + \texttt{coeffs} [n-1] x^{n-1} + ... + \texttt{coeffs} [1] x + \texttt{coeffs} [0] = 0\f] +@param coeffs array of polynomial coefficients. +@param roots output (complex) array of roots. +@param maxIters maximum number of iterations the algorithm does. +*/ +CV_EXPORTS_W double solvePoly(InputArray coeffs, OutputArray roots, int maxIters = 300); + +/** @brief Calculates eigenvalues and eigenvectors of a symmetric matrix. + +The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric +matrix src: +@code + src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t() +@endcode + +@note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix. + +@param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical +(src ^T^ == src). +@param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored +in the descending order. +@param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the +eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding +eigenvalues. +@sa eigenNonSymmetric, completeSymm , PCA +*/ +CV_EXPORTS_W bool eigen(InputArray src, OutputArray eigenvalues, + OutputArray eigenvectors = noArray()); + +/** @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only). + +@note Assumes real eigenvalues. + +The function calculates eigenvalues and eigenvectors (optional) of the square matrix src: +@code + src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t() +@endcode + +@param src input matrix (CV_32FC1 or CV_64FC1 type). +@param eigenvalues output vector of eigenvalues (type is the same type as src). +@param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues. +@sa eigen +*/ +CV_EXPORTS_W void eigenNonSymmetric(InputArray src, OutputArray eigenvalues, + OutputArray eigenvectors); + +/** @brief Calculates the covariance matrix of a set of vectors. + +The function cv::calcCovarMatrix calculates the covariance matrix and, optionally, the mean vector of +the set of input vectors. +@param samples samples stored as separate matrices +@param nsamples number of samples +@param covar output covariance matrix of the type ctype and square size. +@param mean input or output (depending on the flags) array as the average value of the input vectors. +@param flags operation flags as a combination of #CovarFlags +@param ctype type of the matrixl; it equals 'CV_64F' by default. +@sa PCA, mulTransposed, Mahalanobis +@todo InputArrayOfArrays +*/ +CV_EXPORTS void calcCovarMatrix( const Mat* samples, int nsamples, Mat& covar, Mat& mean, + int flags, int ctype = CV_64F); + +/** @overload +@note use #COVAR_ROWS or #COVAR_COLS flag +@param samples samples stored as rows/columns of a single matrix. +@param covar output covariance matrix of the type ctype and square size. +@param mean input or output (depending on the flags) array as the average value of the input vectors. +@param flags operation flags as a combination of #CovarFlags +@param ctype type of the matrixl; it equals 'CV_64F' by default. +*/ +CV_EXPORTS_W void calcCovarMatrix( InputArray samples, OutputArray covar, + InputOutputArray mean, int flags, int ctype = CV_64F); + +/** wrap PCA::operator() */ +CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean, + OutputArray eigenvectors, int maxComponents = 0); + +/** wrap PCA::operator() and add eigenvalues output parameter */ +CV_EXPORTS_AS(PCACompute2) void PCACompute(InputArray data, InputOutputArray mean, + OutputArray eigenvectors, OutputArray eigenvalues, + int maxComponents = 0); + +/** wrap PCA::operator() */ +CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean, + OutputArray eigenvectors, double retainedVariance); + +/** wrap PCA::operator() and add eigenvalues output parameter */ +CV_EXPORTS_AS(PCACompute2) void PCACompute(InputArray data, InputOutputArray mean, + OutputArray eigenvectors, OutputArray eigenvalues, + double retainedVariance); + +/** wrap PCA::project */ +CV_EXPORTS_W void PCAProject(InputArray data, InputArray mean, + InputArray eigenvectors, OutputArray result); + +/** wrap PCA::backProject */ +CV_EXPORTS_W void PCABackProject(InputArray data, InputArray mean, + InputArray eigenvectors, OutputArray result); + +/** wrap SVD::compute */ +CV_EXPORTS_W void SVDecomp( InputArray src, OutputArray w, OutputArray u, OutputArray vt, int flags = 0 ); + +/** wrap SVD::backSubst */ +CV_EXPORTS_W void SVBackSubst( InputArray w, InputArray u, InputArray vt, + InputArray rhs, OutputArray dst ); + +/** @brief Calculates the Mahalanobis distance between two vectors. + +The function cv::Mahalanobis calculates and returns the weighted distance between two vectors: +\f[d( \texttt{vec1} , \texttt{vec2} )= \sqrt{\sum_{i,j}{\texttt{icovar(i,j)}\cdot(\texttt{vec1}(I)-\texttt{vec2}(I))\cdot(\texttt{vec1(j)}-\texttt{vec2(j)})} }\f] +The covariance matrix may be calculated using the #calcCovarMatrix function and then inverted using +the invert function (preferably using the #DECOMP_SVD method, as the most accurate). +@param v1 first 1D input vector. +@param v2 second 1D input vector. +@param icovar inverse covariance matrix. +*/ +CV_EXPORTS_W double Mahalanobis(InputArray v1, InputArray v2, InputArray icovar); + +/** @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array. + +The function cv::dft performs one of the following: +- Forward the Fourier transform of a 1D vector of N elements: + \f[Y = F^{(N)} \cdot X,\f] + where \f$F^{(N)}_{jk}=\exp(-2\pi i j k/N)\f$ and \f$i=\sqrt{-1}\f$ +- Inverse the Fourier transform of a 1D vector of N elements: + \f[\begin{array}{l} X'= \left (F^{(N)} \right )^{-1} \cdot Y = \left (F^{(N)} \right )^* \cdot y \\ X = (1/N) \cdot X, \end{array}\f] + where \f$F^*=\left(\textrm{Re}(F^{(N)})-\textrm{Im}(F^{(N)})\right)^T\f$ +- Forward the 2D Fourier transform of a M x N matrix: + \f[Y = F^{(M)} \cdot X \cdot F^{(N)}\f] +- Inverse the 2D Fourier transform of a M x N matrix: + \f[\begin{array}{l} X'= \left (F^{(M)} \right )^* \cdot Y \cdot \left (F^{(N)} \right )^* \\ X = \frac{1}{M \cdot N} \cdot X' \end{array}\f] + +In case of real (single-channel) data, the output spectrum of the forward Fourier transform or input +spectrum of the inverse Fourier transform can be represented in a packed format called *CCS* +(complex-conjugate-symmetrical). It was borrowed from IPL (Intel\* Image Processing Library). Here +is how 2D *CCS* spectrum looks: +\f[\begin{bmatrix} Re Y_{0,0} & Re Y_{0,1} & Im Y_{0,1} & Re Y_{0,2} & Im Y_{0,2} & \cdots & Re Y_{0,N/2-1} & Im Y_{0,N/2-1} & Re Y_{0,N/2} \\ Re Y_{1,0} & Re Y_{1,1} & Im Y_{1,1} & Re Y_{1,2} & Im Y_{1,2} & \cdots & Re Y_{1,N/2-1} & Im Y_{1,N/2-1} & Re Y_{1,N/2} \\ Im Y_{1,0} & Re Y_{2,1} & Im Y_{2,1} & Re Y_{2,2} & Im Y_{2,2} & \cdots & Re Y_{2,N/2-1} & Im Y_{2,N/2-1} & Im Y_{1,N/2} \\ \hdotsfor{9} \\ Re Y_{M/2-1,0} & Re Y_{M-3,1} & Im Y_{M-3,1} & \hdotsfor{3} & Re Y_{M-3,N/2-1} & Im Y_{M-3,N/2-1}& Re Y_{M/2-1,N/2} \\ Im Y_{M/2-1,0} & Re Y_{M-2,1} & Im Y_{M-2,1} & \hdotsfor{3} & Re Y_{M-2,N/2-1} & Im Y_{M-2,N/2-1}& Im Y_{M/2-1,N/2} \\ Re Y_{M/2,0} & Re Y_{M-1,1} & Im Y_{M-1,1} & \hdotsfor{3} & Re Y_{M-1,N/2-1} & Im Y_{M-1,N/2-1}& Re Y_{M/2,N/2} \end{bmatrix}\f] + +In case of 1D transform of a real vector, the output looks like the first row of the matrix above. + +So, the function chooses an operation mode depending on the flags and size of the input array: +- If #DFT_ROWS is set or the input array has a single row or single column, the function + performs a 1D forward or inverse transform of each row of a matrix when #DFT_ROWS is set. + Otherwise, it performs a 2D transform. +- If the input array is real and #DFT_INVERSE is not set, the function performs a forward 1D or + 2D transform: + - When #DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as + input. + - When #DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as + input. In case of 2D transform, it uses the packed format as shown above. In case of a + single 1D transform, it looks like the first row of the matrix above. In case of + multiple 1D transforms (when using the #DFT_ROWS flag), each row of the output matrix + looks like the first row of the matrix above. +- If the input array is complex and either #DFT_INVERSE or #DFT_REAL_OUTPUT are not set, the + output is a complex array of the same size as input. The function performs a forward or + inverse 1D or 2D transform of the whole input array or each row of the input array + independently, depending on the flags DFT_INVERSE and DFT_ROWS. +- When #DFT_INVERSE is set and the input array is real, or it is complex but #DFT_REAL_OUTPUT + is set, the output is a real array of the same size as input. The function performs a 1D or 2D + inverse transformation of the whole input array or each individual row, depending on the flags + #DFT_INVERSE and #DFT_ROWS. + +If #DFT_SCALE is set, the scaling is done after the transformation. + +Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed +efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the +current implementation). Such an efficient DFT size can be calculated using the getOptimalDFTSize +method. + +The sample below illustrates how to calculate a DFT-based convolution of two 2D real arrays: +@code + void convolveDFT(InputArray A, InputArray B, OutputArray C) + { + // reallocate the output array if needed + C.create(abs(A.rows - B.rows)+1, abs(A.cols - B.cols)+1, A.type()); + Size dftSize; + // calculate the size of DFT transform + dftSize.width = getOptimalDFTSize(A.cols + B.cols - 1); + dftSize.height = getOptimalDFTSize(A.rows + B.rows - 1); + + // allocate temporary buffers and initialize them with 0's + Mat tempA(dftSize, A.type(), Scalar::all(0)); + Mat tempB(dftSize, B.type(), Scalar::all(0)); + + // copy A and B to the top-left corners of tempA and tempB, respectively + Mat roiA(tempA, Rect(0,0,A.cols,A.rows)); + A.copyTo(roiA); + Mat roiB(tempB, Rect(0,0,B.cols,B.rows)); + B.copyTo(roiB); + + // now transform the padded A & B in-place; + // use "nonzeroRows" hint for faster processing + dft(tempA, tempA, 0, A.rows); + dft(tempB, tempB, 0, B.rows); + + // multiply the spectrums; + // the function handles packed spectrum representations well + mulSpectrums(tempA, tempB, tempA); + + // transform the product back from the frequency domain. + // Even though all the result rows will be non-zero, + // you need only the first C.rows of them, and thus you + // pass nonzeroRows == C.rows + dft(tempA, tempA, DFT_INVERSE + DFT_SCALE, C.rows); + + // now copy the result back to C. + tempA(Rect(0, 0, C.cols, C.rows)).copyTo(C); + + // all the temporary buffers will be deallocated automatically + } +@endcode +To optimize this sample, consider the following approaches: +- Since nonzeroRows != 0 is passed to the forward transform calls and since A and B are copied to + the top-left corners of tempA and tempB, respectively, it is not necessary to clear the whole + tempA and tempB. It is only necessary to clear the tempA.cols - A.cols ( tempB.cols - B.cols) + rightmost columns of the matrices. +- This DFT-based convolution does not have to be applied to the whole big arrays, especially if B + is significantly smaller than A or vice versa. Instead, you can calculate convolution by parts. + To do this, you need to split the output array C into multiple tiles. For each tile, estimate + which parts of A and B are required to calculate convolution in this tile. If the tiles in C are + too small, the speed will decrease a lot because of repeated work. In the ultimate case, when + each tile in C is a single pixel, the algorithm becomes equivalent to the naive convolution + algorithm. If the tiles are too big, the temporary arrays tempA and tempB become too big and + there is also a slowdown because of bad cache locality. So, there is an optimal tile size + somewhere in the middle. +- If different tiles in C can be calculated in parallel and, thus, the convolution is done by + parts, the loop can be threaded. + +All of the above improvements have been implemented in #matchTemplate and #filter2D . Therefore, by +using them, you can get the performance even better than with the above theoretically optimal +implementation. Though, those two functions actually calculate cross-correlation, not convolution, +so you need to "flip" the second convolution operand B vertically and horizontally using flip . +@note +- An example using the discrete fourier transform can be found at + opencv_source_code/samples/cpp/dft.cpp +- (Python) An example using the dft functionality to perform Wiener deconvolution can be found + at opencv_source/samples/python/deconvolution.py +- (Python) An example rearranging the quadrants of a Fourier image can be found at + opencv_source/samples/python/dft.py +@param src input array that could be real or complex. +@param dst output array whose size and type depends on the flags . +@param flags transformation flags, representing a combination of the #DftFlags +@param nonzeroRows when the parameter is not zero, the function assumes that only the first +nonzeroRows rows of the input array (#DFT_INVERSE is not set) or only the first nonzeroRows of the +output array (#DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the +rows more efficiently and save some time; this technique is very useful for calculating array +cross-correlation or convolution using DFT. +@sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar , +magnitude , phase +*/ +CV_EXPORTS_W void dft(InputArray src, OutputArray dst, int flags = 0, int nonzeroRows = 0); + +/** @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array. + +idft(src, dst, flags) is equivalent to dft(src, dst, flags | #DFT_INVERSE) . +@note None of dft and idft scales the result by default. So, you should pass #DFT_SCALE to one of +dft or idft explicitly to make these transforms mutually inverse. +@sa dft, dct, idct, mulSpectrums, getOptimalDFTSize +@param src input floating-point real or complex array. +@param dst output array whose size and type depend on the flags. +@param flags operation flags (see dft and #DftFlags). +@param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see +the convolution sample in dft description. +*/ +CV_EXPORTS_W void idft(InputArray src, OutputArray dst, int flags = 0, int nonzeroRows = 0); + +/** @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array. + +The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D +floating-point array: +- Forward Cosine transform of a 1D vector of N elements: + \f[Y = C^{(N)} \cdot X\f] + where + \f[C^{(N)}_{jk}= \sqrt{\alpha_j/N} \cos \left ( \frac{\pi(2k+1)j}{2N} \right )\f] + and + \f$\alpha_0=1\f$, \f$\alpha_j=2\f$ for *j \> 0*. +- Inverse Cosine transform of a 1D vector of N elements: + \f[X = \left (C^{(N)} \right )^{-1} \cdot Y = \left (C^{(N)} \right )^T \cdot Y\f] + (since \f$C^{(N)}\f$ is an orthogonal matrix, \f$C^{(N)} \cdot \left(C^{(N)}\right)^T = I\f$ ) +- Forward 2D Cosine transform of M x N matrix: + \f[Y = C^{(N)} \cdot X \cdot \left (C^{(N)} \right )^T\f] +- Inverse 2D Cosine transform of M x N matrix: + \f[X = \left (C^{(N)} \right )^T \cdot X \cdot C^{(N)}\f] + +The function chooses the mode of operation by looking at the flags and size of the input array: +- If (flags & #DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it + is an inverse 1D or 2D transform. +- If (flags & #DCT_ROWS) != 0 , the function performs a 1D transform of each row. +- If the array is a single column or a single row, the function performs a 1D transform. +- If none of the above is true, the function performs a 2D transform. + +@note Currently dct supports even-size arrays (2, 4, 6 ...). For data analysis and approximation, you +can pad the array when necessary. +Also, the function performance depends very much, and not monotonically, on the array size (see +getOptimalDFTSize ). In the current implementation DCT of a vector of size N is calculated via DFT +of a vector of size N/2 . Thus, the optimal DCT size N1 \>= N can be calculated as: +@code + size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); } + N1 = getOptimalDCTSize(N); +@endcode +@param src input floating-point array. +@param dst output array of the same size and type as src . +@param flags transformation flags as a combination of cv::DftFlags (DCT_*) +@sa dft , getOptimalDFTSize , idct +*/ +CV_EXPORTS_W void dct(InputArray src, OutputArray dst, int flags = 0); + +/** @brief Calculates the inverse Discrete Cosine Transform of a 1D or 2D array. + +idct(src, dst, flags) is equivalent to dct(src, dst, flags | DCT_INVERSE). +@param src input floating-point single-channel array. +@param dst output array of the same size and type as src. +@param flags operation flags. +@sa dct, dft, idft, getOptimalDFTSize +*/ +CV_EXPORTS_W void idct(InputArray src, OutputArray dst, int flags = 0); + +/** @brief Performs the per-element multiplication of two Fourier spectrums. + +The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex +matrices that are results of a real or complex Fourier transform. + +The function, together with dft and idft , may be used to calculate convolution (pass conjB=false ) +or correlation (pass conjB=true ) of two arrays rapidly. When the arrays are complex, they are +simply multiplied (per element) with an optional conjugation of the second-array elements. When the +arrays are real, they are assumed to be CCS-packed (see dft for details). +@param a first input array. +@param b second input array of the same size and type as src1 . +@param c output array of the same size and type as src1 . +@param flags operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that +each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value. +@param conjB optional flag that conjugates the second input array before the multiplication (true) +or not (false). +*/ +CV_EXPORTS_W void mulSpectrums(InputArray a, InputArray b, OutputArray c, + int flags, bool conjB = false); + +/** @brief Returns the optimal DFT size for a given vector size. + +DFT performance is not a monotonic function of a vector size. Therefore, when you calculate +convolution of two arrays or perform the spectral analysis of an array, it usually makes sense to +pad the input data with zeros to get a bit larger array that can be transformed much faster than the +original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the fastest to process. +Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\*5\*3\*2\*2) +are also processed quite efficiently. + +The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize +so that the DFT of a vector of size N can be processed efficiently. In the current implementation N += 2 ^p^ \* 3 ^q^ \* 5 ^r^ for some integer p, q, r. + +The function returns a negative number if vecsize is too large (very close to INT_MAX ). + +While the function cannot be used directly to estimate the optimal vector size for DCT transform +(since the current DCT implementation supports only even-size vectors), it can be easily processed +as getOptimalDFTSize((vecsize+1)/2)\*2. +@param vecsize vector size. +@sa dft , dct , idft , idct , mulSpectrums +*/ +CV_EXPORTS_W int getOptimalDFTSize(int vecsize); + +/** @brief Returns the default random number generator. + +The function cv::theRNG returns the default random number generator. For each thread, there is a +separate random number generator, so you can use the function safely in multi-thread environments. +If you just need to get a single random number using this generator or initialize an array, you can +use randu or randn instead. But if you are going to generate many random numbers inside a loop, it +is much faster to use this function to retrieve the generator and then use RNG::operator _Tp() . +@sa RNG, randu, randn +*/ +CV_EXPORTS RNG& theRNG(); + +/** @brief Sets state of default random number generator. + +The function cv::setRNGSeed sets state of default random number generator to custom value. +@param seed new state for default random number generator +@sa RNG, randu, randn +*/ +CV_EXPORTS_W void setRNGSeed(int seed); + +/** @brief Generates a single uniformly-distributed random number or an array of random numbers. + +Non-template variant of the function fills the matrix dst with uniformly-distributed +random numbers from the specified range: +\f[\texttt{low} _c \leq \texttt{dst} (I)_c < \texttt{high} _c\f] +@param dst output array of random numbers; the array must be pre-allocated. +@param low inclusive lower boundary of the generated random numbers. +@param high exclusive upper boundary of the generated random numbers. +@sa RNG, randn, theRNG +*/ +CV_EXPORTS_W void randu(InputOutputArray dst, InputArray low, InputArray high); + +/** @brief Fills the array with normally distributed random numbers. + +The function cv::randn fills the matrix dst with normally distributed random numbers with the specified +mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the +value range of the output array data type. +@param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels. +@param mean mean value (expectation) of the generated random numbers. +@param stddev standard deviation of the generated random numbers; it can be either a vector (in +which case a diagonal standard deviation matrix is assumed) or a square matrix. +@sa RNG, randu +*/ +CV_EXPORTS_W void randn(InputOutputArray dst, InputArray mean, InputArray stddev); + +/** @brief Shuffles the array elements randomly. + +The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and +swapping them. The number of such swap operations will be dst.rows\*dst.cols\*iterFactor . +@param dst input/output numerical 1D array. +@param iterFactor scale factor that determines the number of random swap operations (see the details +below). +@param rng optional random number generator used for shuffling; if it is zero, theRNG () is used +instead. +@sa RNG, sort +*/ +CV_EXPORTS_W void randShuffle(InputOutputArray dst, double iterFactor = 1., RNG* rng = 0); + +/** @brief Principal Component Analysis + +The class is used to calculate a special basis for a set of vectors. The +basis will consist of eigenvectors of the covariance matrix calculated +from the input set of vectors. The class %PCA can also transform +vectors to/from the new coordinate space defined by the basis. Usually, +in this new coordinate system, each vector from the original set (and +any linear combination of such vectors) can be quite accurately +approximated by taking its first few components, corresponding to the +eigenvectors of the largest eigenvalues of the covariance matrix. +Geometrically it means that you calculate a projection of the vector to +a subspace formed by a few eigenvectors corresponding to the dominant +eigenvalues of the covariance matrix. And usually such a projection is +very close to the original vector. So, you can represent the original +vector from a high-dimensional space with a much shorter vector +consisting of the projected vector's coordinates in the subspace. Such a +transformation is also known as Karhunen-Loeve Transform, or KLT. +See http://en.wikipedia.org/wiki/Principal_component_analysis + +The sample below is the function that takes two matrices. The first +function stores a set of vectors (a row per vector) that is used to +calculate PCA. The second function stores another "test" set of vectors +(a row per vector). First, these vectors are compressed with PCA, then +reconstructed back, and then the reconstruction error norm is computed +and printed for each vector. : + +@code{.cpp} +using namespace cv; + +PCA compressPCA(const Mat& pcaset, int maxComponents, + const Mat& testset, Mat& compressed) +{ + PCA pca(pcaset, // pass the data + Mat(), // we do not have a pre-computed mean vector, + // so let the PCA engine to compute it + PCA::DATA_AS_ROW, // indicate that the vectors + // are stored as matrix rows + // (use PCA::DATA_AS_COL if the vectors are + // the matrix columns) + maxComponents // specify, how many principal components to retain + ); + // if there is no test data, just return the computed basis, ready-to-use + if( !testset.data ) + return pca; + CV_Assert( testset.cols == pcaset.cols ); + + compressed.create(testset.rows, maxComponents, testset.type()); + + Mat reconstructed; + for( int i = 0; i < testset.rows; i++ ) + { + Mat vec = testset.row(i), coeffs = compressed.row(i), reconstructed; + // compress the vector, the result will be stored + // in the i-th row of the output matrix + pca.project(vec, coeffs); + // and then reconstruct it + pca.backProject(coeffs, reconstructed); + // and measure the error + printf("%d. diff = %g\n", i, norm(vec, reconstructed, NORM_L2)); + } + return pca; +} +@endcode +@sa calcCovarMatrix, mulTransposed, SVD, dft, dct +*/ +class CV_EXPORTS PCA +{ +public: + enum Flags { DATA_AS_ROW = 0, //!< indicates that the input samples are stored as matrix rows + DATA_AS_COL = 1, //!< indicates that the input samples are stored as matrix columns + USE_AVG = 2 //! + }; + + /** @brief default constructor + + The default constructor initializes an empty %PCA structure. The other + constructors initialize the structure and call PCA::operator()(). + */ + PCA(); + + /** @overload + @param data input samples stored as matrix rows or matrix columns. + @param mean optional mean value; if the matrix is empty (@c noArray()), + the mean is computed from the data. + @param flags operation flags; currently the parameter is only used to + specify the data layout (PCA::Flags) + @param maxComponents maximum number of components that %PCA should + retain; by default, all the components are retained. + */ + PCA(InputArray data, InputArray mean, int flags, int maxComponents = 0); + + /** @overload + @param data input samples stored as matrix rows or matrix columns. + @param mean optional mean value; if the matrix is empty (noArray()), + the mean is computed from the data. + @param flags operation flags; currently the parameter is only used to + specify the data layout (PCA::Flags) + @param retainedVariance Percentage of variance that PCA should retain. + Using this parameter will let the PCA decided how many components to + retain but it will always keep at least 2. + */ + PCA(InputArray data, InputArray mean, int flags, double retainedVariance); + + /** @brief performs %PCA + + The operator performs %PCA of the supplied dataset. It is safe to reuse + the same PCA structure for multiple datasets. That is, if the structure + has been previously used with another dataset, the existing internal + data is reclaimed and the new @ref eigenvalues, @ref eigenvectors and @ref + mean are allocated and computed. + + The computed @ref eigenvalues are sorted from the largest to the smallest and + the corresponding @ref eigenvectors are stored as eigenvectors rows. + + @param data input samples stored as the matrix rows or as the matrix + columns. + @param mean optional mean value; if the matrix is empty (noArray()), + the mean is computed from the data. + @param flags operation flags; currently the parameter is only used to + specify the data layout. (Flags) + @param maxComponents maximum number of components that PCA should + retain; by default, all the components are retained. + */ + PCA& operator()(InputArray data, InputArray mean, int flags, int maxComponents = 0); + + /** @overload + @param data input samples stored as the matrix rows or as the matrix + columns. + @param mean optional mean value; if the matrix is empty (noArray()), + the mean is computed from the data. + @param flags operation flags; currently the parameter is only used to + specify the data layout. (PCA::Flags) + @param retainedVariance Percentage of variance that %PCA should retain. + Using this parameter will let the %PCA decided how many components to + retain but it will always keep at least 2. + */ + PCA& operator()(InputArray data, InputArray mean, int flags, double retainedVariance); + + /** @brief Projects vector(s) to the principal component subspace. + + The methods project one or more vectors to the principal component + subspace, where each vector projection is represented by coefficients in + the principal component basis. The first form of the method returns the + matrix that the second form writes to the result. So the first form can + be used as a part of expression while the second form can be more + efficient in a processing loop. + @param vec input vector(s); must have the same dimensionality and the + same layout as the input data used at %PCA phase, that is, if + DATA_AS_ROW are specified, then `vec.cols==data.cols` + (vector dimensionality) and `vec.rows` is the number of vectors to + project, and the same is true for the PCA::DATA_AS_COL case. + */ + Mat project(InputArray vec) const; + + /** @overload + @param vec input vector(s); must have the same dimensionality and the + same layout as the input data used at PCA phase, that is, if + DATA_AS_ROW are specified, then `vec.cols==data.cols` + (vector dimensionality) and `vec.rows` is the number of vectors to + project, and the same is true for the PCA::DATA_AS_COL case. + @param result output vectors; in case of PCA::DATA_AS_COL, the + output matrix has as many columns as the number of input vectors, this + means that `result.cols==vec.cols` and the number of rows match the + number of principal components (for example, `maxComponents` parameter + passed to the constructor). + */ + void project(InputArray vec, OutputArray result) const; + + /** @brief Reconstructs vectors from their PC projections. + + The methods are inverse operations to PCA::project. They take PC + coordinates of projected vectors and reconstruct the original vectors. + Unless all the principal components have been retained, the + reconstructed vectors are different from the originals. But typically, + the difference is small if the number of components is large enough (but + still much smaller than the original vector dimensionality). As a + result, PCA is used. + @param vec coordinates of the vectors in the principal component + subspace, the layout and size are the same as of PCA::project output + vectors. + */ + Mat backProject(InputArray vec) const; + + /** @overload + @param vec coordinates of the vectors in the principal component + subspace, the layout and size are the same as of PCA::project output + vectors. + @param result reconstructed vectors; the layout and size are the same as + of PCA::project input vectors. + */ + void backProject(InputArray vec, OutputArray result) const; + + /** @brief write PCA objects + + Writes @ref eigenvalues @ref eigenvectors and @ref mean to specified FileStorage + */ + void write(FileStorage& fs) const; + + /** @brief load PCA objects + + Loads @ref eigenvalues @ref eigenvectors and @ref mean from specified FileNode + */ + void read(const FileNode& fn); + + Mat eigenvectors; //!< eigenvectors of the covariation matrix + Mat eigenvalues; //!< eigenvalues of the covariation matrix + Mat mean; //!< mean value subtracted before the projection and added after the back projection +}; + +/** @example samples/cpp/pca.cpp +An example using %PCA for dimensionality reduction while maintaining an amount of variance +*/ + +/** @example samples/cpp/tutorial_code/ml/introduction_to_pca/introduction_to_pca.cpp +Check @ref tutorial_introduction_to_pca "the corresponding tutorial" for more details +*/ + +/** +@brief Linear Discriminant Analysis +@todo document this class +*/ +class CV_EXPORTS LDA +{ +public: + /** @brief constructor + Initializes a LDA with num_components (default 0). + */ + explicit LDA(int num_components = 0); + + /** Initializes and performs a Discriminant Analysis with Fisher's + Optimization Criterion on given data in src and corresponding labels + in labels. If 0 (or less) number of components are given, they are + automatically determined for given data in computation. + */ + LDA(InputArrayOfArrays src, InputArray labels, int num_components = 0); + + /** Serializes this object to a given filename. + */ + void save(const String& filename) const; + + /** Deserializes this object from a given filename. + */ + void load(const String& filename); + + /** Serializes this object to a given cv::FileStorage. + */ + void save(FileStorage& fs) const; + + /** Deserializes this object from a given cv::FileStorage. + */ + void load(const FileStorage& node); + + /** destructor + */ + ~LDA(); + + /** Compute the discriminants for data in src (row aligned) and labels. + */ + void compute(InputArrayOfArrays src, InputArray labels); + + /** Projects samples into the LDA subspace. + src may be one or more row aligned samples. + */ + Mat project(InputArray src); + + /** Reconstructs projections from the LDA subspace. + src may be one or more row aligned projections. + */ + Mat reconstruct(InputArray src); + + /** Returns the eigenvectors of this LDA. + */ + Mat eigenvectors() const { return _eigenvectors; } + + /** Returns the eigenvalues of this LDA. + */ + Mat eigenvalues() const { return _eigenvalues; } + + static Mat subspaceProject(InputArray W, InputArray mean, InputArray src); + static Mat subspaceReconstruct(InputArray W, InputArray mean, InputArray src); + +protected: + int _num_components; + Mat _eigenvectors; + Mat _eigenvalues; + void lda(InputArrayOfArrays src, InputArray labels); +}; + +/** @brief Singular Value Decomposition + +Class for computing Singular Value Decomposition of a floating-point +matrix. The Singular Value Decomposition is used to solve least-square +problems, under-determined linear systems, invert matrices, compute +condition numbers, and so on. + +If you want to compute a condition number of a matrix or an absolute value of +its determinant, you do not need `u` and `vt`. You can pass +flags=SVD::NO_UV|... . Another flag SVD::FULL_UV indicates that full-size u +and vt must be computed, which is not necessary most of the time. + +@sa invert, solve, eigen, determinant +*/ +class CV_EXPORTS SVD +{ +public: + enum Flags { + /** allow the algorithm to modify the decomposed matrix; it can save space and speed up + processing. currently ignored. */ + MODIFY_A = 1, + /** indicates that only a vector of singular values `w` is to be processed, while u and vt + will be set to empty matrices */ + NO_UV = 2, + /** when the matrix is not square, by default the algorithm produces u and vt matrices of + sufficiently large size for the further A reconstruction; if, however, FULL_UV flag is + specified, u and vt will be full-size square orthogonal matrices.*/ + FULL_UV = 4 + }; + + /** @brief the default constructor + + initializes an empty SVD structure + */ + SVD(); + + /** @overload + initializes an empty SVD structure and then calls SVD::operator() + @param src decomposed matrix. The depth has to be CV_32F or CV_64F. + @param flags operation flags (SVD::Flags) + */ + SVD( InputArray src, int flags = 0 ); + + /** @brief the operator that performs SVD. The previously allocated u, w and vt are released. + + The operator performs the singular value decomposition of the supplied + matrix. The u,`vt` , and the vector of singular values w are stored in + the structure. The same SVD structure can be reused many times with + different matrices. Each time, if needed, the previous u,`vt` , and w + are reclaimed and the new matrices are created, which is all handled by + Mat::create. + @param src decomposed matrix. The depth has to be CV_32F or CV_64F. + @param flags operation flags (SVD::Flags) + */ + SVD& operator ()( InputArray src, int flags = 0 ); + + /** @brief decomposes matrix and stores the results to user-provided matrices + + The methods/functions perform SVD of matrix. Unlike SVD::SVD constructor + and SVD::operator(), they store the results to the user-provided + matrices: + + @code{.cpp} + Mat A, w, u, vt; + SVD::compute(A, w, u, vt); + @endcode + + @param src decomposed matrix. The depth has to be CV_32F or CV_64F. + @param w calculated singular values + @param u calculated left singular vectors + @param vt transposed matrix of right singular vectors + @param flags operation flags - see SVD::Flags. + */ + static void compute( InputArray src, OutputArray w, + OutputArray u, OutputArray vt, int flags = 0 ); + + /** @overload + computes singular values of a matrix + @param src decomposed matrix. The depth has to be CV_32F or CV_64F. + @param w calculated singular values + @param flags operation flags - see SVD::Flags. + */ + static void compute( InputArray src, OutputArray w, int flags = 0 ); + + /** @brief performs back substitution + */ + static void backSubst( InputArray w, InputArray u, + InputArray vt, InputArray rhs, + OutputArray dst ); + + /** @brief solves an under-determined singular linear system + + The method finds a unit-length solution x of a singular linear system + A\*x = 0. Depending on the rank of A, there can be no solutions, a + single solution or an infinite number of solutions. In general, the + algorithm solves the following problem: + \f[dst = \arg \min _{x: \| x \| =1} \| src \cdot x \|\f] + @param src left-hand-side matrix. + @param dst found solution. + */ + static void solveZ( InputArray src, OutputArray dst ); + + /** @brief performs a singular value back substitution. + + The method calculates a back substitution for the specified right-hand + side: + + \f[\texttt{x} = \texttt{vt} ^T \cdot diag( \texttt{w} )^{-1} \cdot \texttt{u} ^T \cdot \texttt{rhs} \sim \texttt{A} ^{-1} \cdot \texttt{rhs}\f] + + Using this technique you can either get a very accurate solution of the + convenient linear system, or the best (in the least-squares terms) + pseudo-solution of an overdetermined linear system. + + @param rhs right-hand side of a linear system (u\*w\*v')\*dst = rhs to + be solved, where A has been previously decomposed. + + @param dst found solution of the system. + + @note Explicit SVD with the further back substitution only makes sense + if you need to solve many linear systems with the same left-hand side + (for example, src ). If all you need is to solve a single system + (possibly with multiple rhs immediately available), simply call solve + add pass #DECOMP_SVD there. It does absolutely the same thing. + */ + void backSubst( InputArray rhs, OutputArray dst ) const; + + /** @todo document */ + template static + void compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w, Matx<_Tp, m, nm>& u, Matx<_Tp, n, nm>& vt ); + + /** @todo document */ + template static + void compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w ); + + /** @todo document */ + template static + void backSubst( const Matx<_Tp, nm, 1>& w, const Matx<_Tp, m, nm>& u, const Matx<_Tp, n, nm>& vt, const Matx<_Tp, m, nb>& rhs, Matx<_Tp, n, nb>& dst ); + + Mat u, w, vt; +}; + +/** @brief Random Number Generator + +Random number generator. It encapsulates the state (currently, a 64-bit +integer) and has methods to return scalar random values and to fill +arrays with random values. Currently it supports uniform and Gaussian +(normal) distributions. The generator uses Multiply-With-Carry +algorithm, introduced by G. Marsaglia ( + ). +Gaussian-distribution random numbers are generated using the Ziggurat +algorithm ( ), +introduced by G. Marsaglia and W. W. Tsang. +*/ +class CV_EXPORTS RNG +{ +public: + enum { UNIFORM = 0, + NORMAL = 1 + }; + + /** @brief constructor + + These are the RNG constructors. The first form sets the state to some + pre-defined value, equal to 2\*\*32-1 in the current implementation. The + second form sets the state to the specified value. If you passed state=0 + , the constructor uses the above default value instead to avoid the + singular random number sequence, consisting of all zeros. + */ + RNG(); + /** @overload + @param state 64-bit value used to initialize the RNG. + */ + RNG(uint64 state); + /**The method updates the state using the MWC algorithm and returns the + next 32-bit random number.*/ + unsigned next(); + + /**Each of the methods updates the state using the MWC algorithm and + returns the next random number of the specified type. In case of integer + types, the returned number is from the available value range for the + specified type. In case of floating-point types, the returned value is + from [0,1) range. + */ + operator uchar(); + /** @overload */ + operator schar(); + /** @overload */ + operator ushort(); + /** @overload */ + operator short(); + /** @overload */ + operator unsigned(); + /** @overload */ + operator int(); + /** @overload */ + operator float(); + /** @overload */ + operator double(); + + /** @brief returns a random integer sampled uniformly from [0, N). + + The methods transform the state using the MWC algorithm and return the + next random number. The first form is equivalent to RNG::next . The + second form returns the random number modulo N , which means that the + result is in the range [0, N) . + */ + unsigned operator ()(); + /** @overload + @param N upper non-inclusive boundary of the returned random number. + */ + unsigned operator ()(unsigned N); + + /** @brief returns uniformly distributed integer random number from [a,b) range + + The methods transform the state using the MWC algorithm and return the + next uniformly-distributed random number of the specified type, deduced + from the input parameter type, from the range [a, b) . There is a nuance + illustrated by the following sample: + + @code{.cpp} + RNG rng; + + // always produces 0 + double a = rng.uniform(0, 1); + + // produces double from [0, 1) + double a1 = rng.uniform((double)0, (double)1); + + // produces float from [0, 1) + float b = rng.uniform(0.f, 1.f); + + // produces double from [0, 1) + double c = rng.uniform(0., 1.); + + // may cause compiler error because of ambiguity: + // RNG::uniform(0, (int)0.999999)? or RNG::uniform((double)0, 0.99999)? + double d = rng.uniform(0, 0.999999); + @endcode + + The compiler does not take into account the type of the variable to + which you assign the result of RNG::uniform . The only thing that + matters to the compiler is the type of a and b parameters. So, if you + want a floating-point random number, but the range boundaries are + integer numbers, either put dots in the end, if they are constants, or + use explicit type cast operators, as in the a1 initialization above. + @param a lower inclusive boundary of the returned random number. + @param b upper non-inclusive boundary of the returned random number. + */ + int uniform(int a, int b); + /** @overload */ + float uniform(float a, float b); + /** @overload */ + double uniform(double a, double b); + + /** @brief Fills arrays with random numbers. + + @param mat 2D or N-dimensional matrix; currently matrices with more than + 4 channels are not supported by the methods, use Mat::reshape as a + possible workaround. + @param distType distribution type, RNG::UNIFORM or RNG::NORMAL. + @param a first distribution parameter; in case of the uniform + distribution, this is an inclusive lower boundary, in case of the normal + distribution, this is a mean value. + @param b second distribution parameter; in case of the uniform + distribution, this is a non-inclusive upper boundary, in case of the + normal distribution, this is a standard deviation (diagonal of the + standard deviation matrix or the full standard deviation matrix). + @param saturateRange pre-saturation flag; for uniform distribution only; + if true, the method will first convert a and b to the acceptable value + range (according to the mat datatype) and then will generate uniformly + distributed random numbers within the range [saturate(a), saturate(b)), + if saturateRange=false, the method will generate uniformly distributed + random numbers in the original range [a, b) and then will saturate them, + it means, for example, that + theRNG().fill(mat_8u, RNG::UNIFORM, -DBL_MAX, DBL_MAX) will likely + produce array mostly filled with 0's and 255's, since the range (0, 255) + is significantly smaller than [-DBL_MAX, DBL_MAX). + + Each of the methods fills the matrix with the random values from the + specified distribution. As the new numbers are generated, the RNG state + is updated accordingly. In case of multiple-channel images, every + channel is filled independently, which means that RNG cannot generate + samples from the multi-dimensional Gaussian distribution with + non-diagonal covariance matrix directly. To do that, the method + generates samples from multi-dimensional standard Gaussian distribution + with zero mean and identity covariation matrix, and then transforms them + using transform to get samples from the specified Gaussian distribution. + */ + void fill( InputOutputArray mat, int distType, InputArray a, InputArray b, bool saturateRange = false ); + + /** @brief Returns the next random number sampled from the Gaussian distribution + @param sigma standard deviation of the distribution. + + The method transforms the state using the MWC algorithm and returns the + next random number from the Gaussian distribution N(0,sigma) . That is, + the mean value of the returned random numbers is zero and the standard + deviation is the specified sigma . + */ + double gaussian(double sigma); + + uint64 state; + + bool operator ==(const RNG& other) const; +}; + +/** @brief Mersenne Twister random number generator + +Inspired by http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c +@todo document +*/ +class CV_EXPORTS RNG_MT19937 +{ +public: + RNG_MT19937(); + RNG_MT19937(unsigned s); + void seed(unsigned s); + + unsigned next(); + + operator int(); + operator unsigned(); + operator float(); + operator double(); + + unsigned operator ()(unsigned N); + unsigned operator ()(); + + /** @brief returns uniformly distributed integer random number from [a,b) range*/ + int uniform(int a, int b); + /** @brief returns uniformly distributed floating-point random number from [a,b) range*/ + float uniform(float a, float b); + /** @brief returns uniformly distributed double-precision floating-point random number from [a,b) range*/ + double uniform(double a, double b); + +private: + enum PeriodParameters {N = 624, M = 397}; + unsigned state[N]; + int mti; +}; + +//! @} core_array + +//! @addtogroup core_cluster +//! @{ + +/** @example samples/cpp/kmeans.cpp +An example on K-means clustering +*/ + +/** @brief Finds centers of clusters and groups input samples around the clusters. + +The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters +and groups the input samples around the clusters. As an output, \f$\texttt{bestLabels}_i\f$ contains a +0-based cluster index for the sample stored in the \f$i^{th}\f$ row of the samples matrix. + +@note +- (Python) An example on K-means clustering can be found at + opencv_source_code/samples/python/kmeans.py +@param data Data for clustering. An array of N-Dimensional points with float coordinates is needed. +Examples of this array can be: +- Mat points(count, 2, CV_32F); +- Mat points(count, 1, CV_32FC2); +- Mat points(1, count, CV_32FC2); +- std::vector\ points(sampleCount); +@param K Number of clusters to split the set by. +@param bestLabels Input/output integer array that stores the cluster indices for every sample. +@param criteria The algorithm termination criteria, that is, the maximum number of iterations and/or +the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster +centers moves by less than criteria.epsilon on some iteration, the algorithm stops. +@param attempts Flag to specify the number of times the algorithm is executed using different +initial labellings. The algorithm returns the labels that yield the best compactness (see the last +function parameter). +@param flags Flag that can take values of cv::KmeansFlags +@param centers Output matrix of the cluster centers, one row per each cluster center. +@return The function returns the compactness measure that is computed as +\f[\sum _i \| \texttt{samples} _i - \texttt{centers} _{ \texttt{labels} _i} \| ^2\f] +after every attempt. The best (minimum) value is chosen and the corresponding labels and the +compactness value are returned by the function. Basically, you can use only the core of the +function, set the number of attempts to 1, initialize labels each time using a custom algorithm, +pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best +(most-compact) clustering. +*/ +CV_EXPORTS_W double kmeans( InputArray data, int K, InputOutputArray bestLabels, + TermCriteria criteria, int attempts, + int flags, OutputArray centers = noArray() ); + +//! @} core_cluster + +//! @addtogroup core_basic +//! @{ + +/////////////////////////////// Formatted output of cv::Mat /////////////////////////// + +/** @todo document */ +class CV_EXPORTS Formatted +{ +public: + virtual const char* next() = 0; + virtual void reset() = 0; + virtual ~Formatted(); +}; + +/** @todo document */ +class CV_EXPORTS Formatter +{ +public: + enum FormatType { + FMT_DEFAULT = 0, + FMT_MATLAB = 1, + FMT_CSV = 2, + FMT_PYTHON = 3, + FMT_NUMPY = 4, + FMT_C = 5 + }; + + virtual ~Formatter(); + + virtual Ptr format(const Mat& mtx) const = 0; + + virtual void set16fPrecision(int p = 4) = 0; + virtual void set32fPrecision(int p = 8) = 0; + virtual void set64fPrecision(int p = 16) = 0; + virtual void setMultiline(bool ml = true) = 0; + + static Ptr get(Formatter::FormatType fmt = FMT_DEFAULT); + +}; + +static inline +String& operator << (String& out, Ptr fmtd) +{ + fmtd->reset(); + for(const char* str = fmtd->next(); str; str = fmtd->next()) + out += cv::String(str); + return out; +} + +static inline +String& operator << (String& out, const Mat& mtx) +{ + return out << Formatter::get()->format(mtx); +} + +//////////////////////////////////////// Algorithm //////////////////////////////////// + +class CV_EXPORTS Algorithm; + +template struct ParamType {}; + + +/** @brief This is a base class for all more or less complex algorithms in OpenCV + +especially for classes of algorithms, for which there can be multiple implementations. The examples +are stereo correspondence (for which there are algorithms like block matching, semi-global block +matching, graph-cut etc.), background subtraction (which can be done using mixture-of-gaussians +models, codebook-based algorithm etc.), optical flow (block matching, Lucas-Kanade, Horn-Schunck +etc.). + +Here is example of SimpleBlobDetector use in your application via Algorithm interface: +@snippet snippets/core_various.cpp Algorithm +*/ +class CV_EXPORTS_W Algorithm +{ +public: + Algorithm(); + virtual ~Algorithm(); + + /** @brief Clears the algorithm state + */ + CV_WRAP virtual void clear() {} + + /** @brief Stores algorithm parameters in a file storage + */ + virtual void write(FileStorage& fs) const { CV_UNUSED(fs); } + + /** @brief simplified API for language bindings + * @overload + */ + CV_WRAP void write(const Ptr& fs, const String& name = String()) const; + + /** @brief Reads algorithm parameters from a file storage + */ + CV_WRAP virtual void read(const FileNode& fn) { CV_UNUSED(fn); } + + /** @brief Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read + */ + CV_WRAP virtual bool empty() const { return false; } + + /** @brief Reads algorithm from the file node + + This is static template method of Algorithm. It's usage is following (in the case of SVM): + @code + cv::FileStorage fsRead("example.xml", FileStorage::READ); + Ptr svm = Algorithm::read(fsRead.root()); + @endcode + In order to make this method work, the derived class must overwrite Algorithm::read(const + FileNode& fn) and also have static create() method without parameters + (or with all the optional parameters) + */ + template static Ptr<_Tp> read(const FileNode& fn) + { + Ptr<_Tp> obj = _Tp::create(); + obj->read(fn); + return !obj->empty() ? obj : Ptr<_Tp>(); + } + + /** @brief Loads algorithm from the file + + @param filename Name of the file to read. + @param objname The optional name of the node to read (if empty, the first top-level node will be used) + + This is static template method of Algorithm. It's usage is following (in the case of SVM): + @code + Ptr svm = Algorithm::load("my_svm_model.xml"); + @endcode + In order to make this method work, the derived class must overwrite Algorithm::read(const + FileNode& fn). + */ + template static Ptr<_Tp> load(const String& filename, const String& objname=String()) + { + FileStorage fs(filename, FileStorage::READ); + CV_Assert(fs.isOpened()); + FileNode fn = objname.empty() ? fs.getFirstTopLevelNode() : fs[objname]; + if (fn.empty()) return Ptr<_Tp>(); + Ptr<_Tp> obj = _Tp::create(); + obj->read(fn); + return !obj->empty() ? obj : Ptr<_Tp>(); + } + + /** @brief Loads algorithm from a String + + @param strModel The string variable containing the model you want to load. + @param objname The optional name of the node to read (if empty, the first top-level node will be used) + + This is static template method of Algorithm. It's usage is following (in the case of SVM): + @code + Ptr svm = Algorithm::loadFromString(myStringModel); + @endcode + */ + template static Ptr<_Tp> loadFromString(const String& strModel, const String& objname=String()) + { + FileStorage fs(strModel, FileStorage::READ + FileStorage::MEMORY); + FileNode fn = objname.empty() ? fs.getFirstTopLevelNode() : fs[objname]; + Ptr<_Tp> obj = _Tp::create(); + obj->read(fn); + return !obj->empty() ? obj : Ptr<_Tp>(); + } + + /** Saves the algorithm to a file. + In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs). */ + CV_WRAP virtual void save(const String& filename) const; + + /** Returns the algorithm string identifier. + This string is used as top level xml/yml node tag when the object is saved to a file or string. */ + CV_WRAP virtual String getDefaultName() const; + +protected: + void writeFormat(FileStorage& fs) const; +}; + +enum struct Param { + INT=0, BOOLEAN=1, REAL=2, STRING=3, MAT=4, MAT_VECTOR=5, ALGORITHM=6, FLOAT=7, + UNSIGNED_INT=8, UINT64=9, UCHAR=11, SCALAR=12 +}; + + + +template<> struct ParamType +{ + typedef bool const_param_type; + typedef bool member_type; + + static const Param type = Param::BOOLEAN; +}; + +template<> struct ParamType +{ + typedef int const_param_type; + typedef int member_type; + + static const Param type = Param::INT; +}; + +template<> struct ParamType +{ + typedef double const_param_type; + typedef double member_type; + + static const Param type = Param::REAL; +}; + +template<> struct ParamType +{ + typedef const String& const_param_type; + typedef String member_type; + + static const Param type = Param::STRING; +}; + +template<> struct ParamType +{ + typedef const Mat& const_param_type; + typedef Mat member_type; + + static const Param type = Param::MAT; +}; + +template<> struct ParamType > +{ + typedef const std::vector& const_param_type; + typedef std::vector member_type; + + static const Param type = Param::MAT_VECTOR; +}; + +template<> struct ParamType +{ + typedef const Ptr& const_param_type; + typedef Ptr member_type; + + static const Param type = Param::ALGORITHM; +}; + +template<> struct ParamType +{ + typedef float const_param_type; + typedef float member_type; + + static const Param type = Param::FLOAT; +}; + +template<> struct ParamType +{ + typedef unsigned const_param_type; + typedef unsigned member_type; + + static const Param type = Param::UNSIGNED_INT; +}; + +template<> struct ParamType +{ + typedef uint64 const_param_type; + typedef uint64 member_type; + + static const Param type = Param::UINT64; +}; + +template<> struct ParamType +{ + typedef uchar const_param_type; + typedef uchar member_type; + + static const Param type = Param::UCHAR; +}; + +template<> struct ParamType +{ + typedef const Scalar& const_param_type; + typedef Scalar member_type; + + static const Param type = Param::SCALAR; +}; + +template +struct ParamType<_Tp, typename std::enable_if< std::is_enum<_Tp>::value >::type> +{ + typedef typename std::underlying_type<_Tp>::type const_param_type; + typedef typename std::underlying_type<_Tp>::type member_type; + + static const Param type = Param::INT; +}; + +//! @} core_basic + +} //namespace cv + +#include "opencv2/core/operations.hpp" +#include "opencv2/core/cvstd.inl.hpp" +#include "opencv2/core/utility.hpp" +#include "opencv2/core/optim.hpp" +#include "opencv2/core/ovx.hpp" + +#endif /*OPENCV_CORE_HPP*/ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/affine.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/affine.hpp new file mode 100644 index 000000000..7e2ed3078 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/affine.hpp @@ -0,0 +1,678 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_AFFINE3_HPP +#define OPENCV_CORE_AFFINE3_HPP + +#ifdef __cplusplus + +#include + +namespace cv +{ + +//! @addtogroup core +//! @{ + + /** @brief Affine transform + * + * It represents a 4x4 homogeneous transformation matrix \f$T\f$ + * + * \f[T = + * \begin{bmatrix} + * R & t\\ + * 0 & 1\\ + * \end{bmatrix} + * \f] + * + * where \f$R\f$ is a 3x3 rotation matrix and \f$t\f$ is a 3x1 translation vector. + * + * You can specify \f$R\f$ either by a 3x3 rotation matrix or by a 3x1 rotation vector, + * which is converted to a 3x3 rotation matrix by the Rodrigues formula. + * + * To construct a matrix \f$T\f$ representing first rotation around the axis \f$r\f$ with rotation + * angle \f$|r|\f$ in radian (right hand rule) and then translation by the vector \f$t\f$, you can use + * + * @code + * cv::Vec3f r, t; + * cv::Affine3f T(r, t); + * @endcode + * + * If you already have the rotation matrix \f$R\f$, then you can use + * + * @code + * cv::Matx33f R; + * cv::Affine3f T(R, t); + * @endcode + * + * To extract the rotation matrix \f$R\f$ from \f$T\f$, use + * + * @code + * cv::Matx33f R = T.rotation(); + * @endcode + * + * To extract the translation vector \f$t\f$ from \f$T\f$, use + * + * @code + * cv::Vec3f t = T.translation(); + * @endcode + * + * To extract the rotation vector \f$r\f$ from \f$T\f$, use + * + * @code + * cv::Vec3f r = T.rvec(); + * @endcode + * + * Note that since the mapping from rotation vectors to rotation matrices + * is many to one. The returned rotation vector is not necessarily the one + * you used before to set the matrix. + * + * If you have two transformations \f$T = T_1 * T_2\f$, use + * + * @code + * cv::Affine3f T, T1, T2; + * T = T2.concatenate(T1); + * @endcode + * + * To get the inverse transform of \f$T\f$, use + * + * @code + * cv::Affine3f T, T_inv; + * T_inv = T.inv(); + * @endcode + * + */ + template + class Affine3 + { + public: + typedef T float_type; + typedef Matx Mat3; + typedef Matx Mat4; + typedef Vec Vec3; + + //! Default constructor. It represents a 4x4 identity matrix. + Affine3(); + + //! Augmented affine matrix + Affine3(const Mat4& affine); + + /** + * The resulting 4x4 matrix is + * + * \f[ + * \begin{bmatrix} + * R & t\\ + * 0 & 1\\ + * \end{bmatrix} + * \f] + * + * @param R 3x3 rotation matrix. + * @param t 3x1 translation vector. + */ + Affine3(const Mat3& R, const Vec3& t = Vec3::all(0)); + + /** + * Rodrigues vector. + * + * The last row of the current matrix is set to [0,0,0,1]. + * + * @param rvec 3x1 rotation vector. Its direction indicates the rotation axis and its length + * indicates the rotation angle in radian (using right hand rule). + * @param t 3x1 translation vector. + */ + Affine3(const Vec3& rvec, const Vec3& t = Vec3::all(0)); + + /** + * Combines all constructors above. Supports 4x4, 3x4, 3x3, 1x3, 3x1 sizes of data matrix. + * + * The last row of the current matrix is set to [0,0,0,1] when data is not 4x4. + * + * @param data 1-channel matrix. + * when it is 4x4, it is copied to the current matrix and t is not used. + * When it is 3x4, it is copied to the upper part 3x4 of the current matrix and t is not used. + * When it is 3x3, it is copied to the upper left 3x3 part of the current matrix. + * When it is 3x1 or 1x3, it is treated as a rotation vector and the Rodrigues formula is used + * to compute a 3x3 rotation matrix. + * @param t 3x1 translation vector. It is used only when data is neither 4x4 nor 3x4. + */ + explicit Affine3(const Mat& data, const Vec3& t = Vec3::all(0)); + + //! From 16-element array + explicit Affine3(const float_type* vals); + + //! Create an 4x4 identity transform + static Affine3 Identity(); + + /** + * Rotation matrix. + * + * Copy the rotation matrix to the upper left 3x3 part of the current matrix. + * The remaining elements of the current matrix are not changed. + * + * @param R 3x3 rotation matrix. + * + */ + void rotation(const Mat3& R); + + /** + * Rodrigues vector. + * + * It sets the upper left 3x3 part of the matrix. The remaining part is unaffected. + * + * @param rvec 3x1 rotation vector. The direction indicates the rotation axis and + * its length indicates the rotation angle in radian (using the right thumb convention). + */ + void rotation(const Vec3& rvec); + + /** + * Combines rotation methods above. Supports 3x3, 1x3, 3x1 sizes of data matrix. + * + * It sets the upper left 3x3 part of the matrix. The remaining part is unaffected. + * + * @param data 1-channel matrix. + * When it is a 3x3 matrix, it sets the upper left 3x3 part of the current matrix. + * When it is a 1x3 or 3x1 matrix, it is used as a rotation vector. The Rodrigues formula + * is used to compute the rotation matrix and sets the upper left 3x3 part of the current matrix. + */ + void rotation(const Mat& data); + + /** + * Copy the 3x3 matrix L to the upper left part of the current matrix + * + * It sets the upper left 3x3 part of the matrix. The remaining part is unaffected. + * + * @param L 3x3 matrix. + */ + void linear(const Mat3& L); + + /** + * Copy t to the first three elements of the last column of the current matrix + * + * It sets the upper right 3x1 part of the matrix. The remaining part is unaffected. + * + * @param t 3x1 translation vector. + */ + void translation(const Vec3& t); + + //! @return the upper left 3x3 part + Mat3 rotation() const; + + //! @return the upper left 3x3 part + Mat3 linear() const; + + //! @return the upper right 3x1 part + Vec3 translation() const; + + //! Rodrigues vector. + //! @return a vector representing the upper left 3x3 rotation matrix of the current matrix. + //! @warning Since the mapping between rotation vectors and rotation matrices is many to one, + //! this function returns only one rotation vector that represents the current rotation matrix, + //! which is not necessarily the same one set by `rotation(const Vec3& rvec)`. + Vec3 rvec() const; + + //! @return the inverse of the current matrix. + Affine3 inv(int method = cv::DECOMP_SVD) const; + + //! a.rotate(R) is equivalent to Affine(R, 0) * a; + Affine3 rotate(const Mat3& R) const; + + //! a.rotate(rvec) is equivalent to Affine(rvec, 0) * a; + Affine3 rotate(const Vec3& rvec) const; + + //! a.translate(t) is equivalent to Affine(E, t) * a, where E is an identity matrix + Affine3 translate(const Vec3& t) const; + + //! a.concatenate(affine) is equivalent to affine * a; + Affine3 concatenate(const Affine3& affine) const; + + template operator Affine3() const; + + template Affine3 cast() const; + + Mat4 matrix; + +#if defined EIGEN_WORLD_VERSION && defined EIGEN_GEOMETRY_MODULE_H + Affine3(const Eigen::Transform& affine); + Affine3(const Eigen::Transform& affine); + operator Eigen::Transform() const; + operator Eigen::Transform() const; +#endif + }; + + template static + Affine3 operator*(const Affine3& affine1, const Affine3& affine2); + + //! V is a 3-element vector with member fields x, y and z + template static + V operator*(const Affine3& affine, const V& vector); + + typedef Affine3 Affine3f; + typedef Affine3 Affine3d; + + static Vec3f operator*(const Affine3f& affine, const Vec3f& vector); + static Vec3d operator*(const Affine3d& affine, const Vec3d& vector); + + template class DataType< Affine3<_Tp> > + { + public: + typedef Affine3<_Tp> value_type; + typedef Affine3::work_type> work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 16, + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; + }; + + namespace traits { + template + struct Depth< Affine3<_Tp> > { enum { value = Depth<_Tp>::value }; }; + template + struct Type< Affine3<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 16) }; }; + } // namespace + +//! @} core + +} + +//! @cond IGNORED + +/////////////////////////////////////////////////////////////////////////////////// +// Implementation + +template inline +cv::Affine3::Affine3() + : matrix(Mat4::eye()) +{} + +template inline +cv::Affine3::Affine3(const Mat4& affine) + : matrix(affine) +{} + +template inline +cv::Affine3::Affine3(const Mat3& R, const Vec3& t) +{ + rotation(R); + translation(t); + matrix.val[12] = matrix.val[13] = matrix.val[14] = 0; + matrix.val[15] = 1; +} + +template inline +cv::Affine3::Affine3(const Vec3& _rvec, const Vec3& t) +{ + rotation(_rvec); + translation(t); + matrix.val[12] = matrix.val[13] = matrix.val[14] = 0; + matrix.val[15] = 1; +} + +template inline +cv::Affine3::Affine3(const cv::Mat& data, const Vec3& t) +{ + CV_Assert(data.type() == cv::traits::Type::value); + CV_Assert(data.channels() == 1); + + if (data.cols == 4 && data.rows == 4) + { + data.copyTo(matrix); + return; + } + else if (data.cols == 4 && data.rows == 3) + { + rotation(data(Rect(0, 0, 3, 3))); + translation(data(Rect(3, 0, 1, 3))); + } + else + { + rotation(data); + translation(t); + } + + matrix.val[12] = matrix.val[13] = matrix.val[14] = 0; + matrix.val[15] = 1; +} + +template inline +cv::Affine3::Affine3(const float_type* vals) : matrix(vals) +{} + +template inline +cv::Affine3 cv::Affine3::Identity() +{ + return Affine3(cv::Affine3::Mat4::eye()); +} + +template inline +void cv::Affine3::rotation(const Mat3& R) +{ + linear(R); +} + +template inline +void cv::Affine3::rotation(const Vec3& _rvec) +{ + double theta = norm(_rvec); + + if (theta < DBL_EPSILON) + rotation(Mat3::eye()); + else + { + double c = std::cos(theta); + double s = std::sin(theta); + double c1 = 1. - c; + double itheta = (theta != 0) ? 1./theta : 0.; + + Point3_ r = _rvec*itheta; + + Mat3 rrt( r.x*r.x, r.x*r.y, r.x*r.z, r.x*r.y, r.y*r.y, r.y*r.z, r.x*r.z, r.y*r.z, r.z*r.z ); + Mat3 r_x( 0, -r.z, r.y, r.z, 0, -r.x, -r.y, r.x, 0 ); + + // R = cos(theta)*I + (1 - cos(theta))*r*rT + sin(theta)*[r_x] + // where [r_x] is [0 -rz ry; rz 0 -rx; -ry rx 0] + Mat3 R = c*Mat3::eye() + c1*rrt + s*r_x; + + rotation(R); + } +} + +//Combines rotation methods above. Supports 3x3, 1x3, 3x1 sizes of data matrix; +template inline +void cv::Affine3::rotation(const cv::Mat& data) +{ + CV_Assert(data.type() == cv::traits::Type::value); + CV_Assert(data.channels() == 1); + + if (data.cols == 3 && data.rows == 3) + { + Mat3 R; + data.copyTo(R); + rotation(R); + } + else if ((data.cols == 3 && data.rows == 1) || (data.cols == 1 && data.rows == 3)) + { + Vec3 _rvec; + data.reshape(1, 3).copyTo(_rvec); + rotation(_rvec); + } + else + CV_Error(Error::StsError, "Input matrix can only be 3x3, 1x3 or 3x1"); +} + +template inline +void cv::Affine3::linear(const Mat3& L) +{ + matrix.val[0] = L.val[0]; matrix.val[1] = L.val[1]; matrix.val[ 2] = L.val[2]; + matrix.val[4] = L.val[3]; matrix.val[5] = L.val[4]; matrix.val[ 6] = L.val[5]; + matrix.val[8] = L.val[6]; matrix.val[9] = L.val[7]; matrix.val[10] = L.val[8]; +} + +template inline +void cv::Affine3::translation(const Vec3& t) +{ + matrix.val[3] = t[0]; matrix.val[7] = t[1]; matrix.val[11] = t[2]; +} + +template inline +typename cv::Affine3::Mat3 cv::Affine3::rotation() const +{ + return linear(); +} + +template inline +typename cv::Affine3::Mat3 cv::Affine3::linear() const +{ + typename cv::Affine3::Mat3 R; + R.val[0] = matrix.val[0]; R.val[1] = matrix.val[1]; R.val[2] = matrix.val[ 2]; + R.val[3] = matrix.val[4]; R.val[4] = matrix.val[5]; R.val[5] = matrix.val[ 6]; + R.val[6] = matrix.val[8]; R.val[7] = matrix.val[9]; R.val[8] = matrix.val[10]; + return R; +} + +template inline +typename cv::Affine3::Vec3 cv::Affine3::translation() const +{ + return Vec3(matrix.val[3], matrix.val[7], matrix.val[11]); +} + +template inline +typename cv::Affine3::Vec3 cv::Affine3::rvec() const +{ + cv::Vec3d w; + cv::Matx33d u, vt, R = rotation(); + cv::SVD::compute(R, w, u, vt, cv::SVD::FULL_UV + cv::SVD::MODIFY_A); + R = u * vt; + + double rx = R.val[7] - R.val[5]; + double ry = R.val[2] - R.val[6]; + double rz = R.val[3] - R.val[1]; + + double s = std::sqrt((rx*rx + ry*ry + rz*rz)*0.25); + double c = (R.val[0] + R.val[4] + R.val[8] - 1) * 0.5; + c = c > 1.0 ? 1.0 : c < -1.0 ? -1.0 : c; + double theta = acos(c); + + if( s < 1e-5 ) + { + if( c > 0 ) + rx = ry = rz = 0; + else + { + double t; + t = (R.val[0] + 1) * 0.5; + rx = std::sqrt(std::max(t, 0.0)); + t = (R.val[4] + 1) * 0.5; + ry = std::sqrt(std::max(t, 0.0)) * (R.val[1] < 0 ? -1.0 : 1.0); + t = (R.val[8] + 1) * 0.5; + rz = std::sqrt(std::max(t, 0.0)) * (R.val[2] < 0 ? -1.0 : 1.0); + + if( fabs(rx) < fabs(ry) && fabs(rx) < fabs(rz) && (R.val[5] > 0) != (ry*rz > 0) ) + rz = -rz; + theta /= std::sqrt(rx*rx + ry*ry + rz*rz); + rx *= theta; + ry *= theta; + rz *= theta; + } + } + else + { + double vth = 1/(2*s); + vth *= theta; + rx *= vth; ry *= vth; rz *= vth; + } + + return cv::Vec3d(rx, ry, rz); +} + +template inline +cv::Affine3 cv::Affine3::inv(int method) const +{ + return matrix.inv(method); +} + +template inline +cv::Affine3 cv::Affine3::rotate(const Mat3& R) const +{ + Mat3 Lc = linear(); + Vec3 tc = translation(); + Mat4 result; + result.val[12] = result.val[13] = result.val[14] = 0; + result.val[15] = 1; + + for(int j = 0; j < 3; ++j) + { + for(int i = 0; i < 3; ++i) + { + float_type value = 0; + for(int k = 0; k < 3; ++k) + value += R(j, k) * Lc(k, i); + result(j, i) = value; + } + + result(j, 3) = R.row(j).dot(tc.t()); + } + return result; +} + +template inline +cv::Affine3 cv::Affine3::rotate(const Vec3& _rvec) const +{ + return rotate(Affine3f(_rvec).rotation()); +} + +template inline +cv::Affine3 cv::Affine3::translate(const Vec3& t) const +{ + Mat4 m = matrix; + m.val[ 3] += t[0]; + m.val[ 7] += t[1]; + m.val[11] += t[2]; + return m; +} + +template inline +cv::Affine3 cv::Affine3::concatenate(const Affine3& affine) const +{ + return (*this).rotate(affine.rotation()).translate(affine.translation()); +} + +template template inline +cv::Affine3::operator Affine3() const +{ + return Affine3(matrix); +} + +template template inline +cv::Affine3 cv::Affine3::cast() const +{ + return Affine3(matrix); +} + +template inline +cv::Affine3 cv::operator*(const cv::Affine3& affine1, const cv::Affine3& affine2) +{ + return affine2.concatenate(affine1); +} + +template inline +V cv::operator*(const cv::Affine3& affine, const V& v) +{ + const typename Affine3::Mat4& m = affine.matrix; + + V r; + r.x = m.val[0] * v.x + m.val[1] * v.y + m.val[ 2] * v.z + m.val[ 3]; + r.y = m.val[4] * v.x + m.val[5] * v.y + m.val[ 6] * v.z + m.val[ 7]; + r.z = m.val[8] * v.x + m.val[9] * v.y + m.val[10] * v.z + m.val[11]; + return r; +} + +static inline +cv::Vec3f cv::operator*(const cv::Affine3f& affine, const cv::Vec3f& v) +{ + const cv::Matx44f& m = affine.matrix; + cv::Vec3f r; + r.val[0] = m.val[0] * v[0] + m.val[1] * v[1] + m.val[ 2] * v[2] + m.val[ 3]; + r.val[1] = m.val[4] * v[0] + m.val[5] * v[1] + m.val[ 6] * v[2] + m.val[ 7]; + r.val[2] = m.val[8] * v[0] + m.val[9] * v[1] + m.val[10] * v[2] + m.val[11]; + return r; +} + +static inline +cv::Vec3d cv::operator*(const cv::Affine3d& affine, const cv::Vec3d& v) +{ + const cv::Matx44d& m = affine.matrix; + cv::Vec3d r; + r.val[0] = m.val[0] * v[0] + m.val[1] * v[1] + m.val[ 2] * v[2] + m.val[ 3]; + r.val[1] = m.val[4] * v[0] + m.val[5] * v[1] + m.val[ 6] * v[2] + m.val[ 7]; + r.val[2] = m.val[8] * v[0] + m.val[9] * v[1] + m.val[10] * v[2] + m.val[11]; + return r; +} + + + +#if defined EIGEN_WORLD_VERSION && defined EIGEN_GEOMETRY_MODULE_H + +template inline +cv::Affine3::Affine3(const Eigen::Transform& affine) +{ + cv::Mat(4, 4, cv::traits::Type::value, affine.matrix().data()).copyTo(matrix); +} + +template inline +cv::Affine3::Affine3(const Eigen::Transform& affine) +{ + Eigen::Transform a = affine; + cv::Mat(4, 4, cv::traits::Type::value, a.matrix().data()).copyTo(matrix); +} + +template inline +cv::Affine3::operator Eigen::Transform() const +{ + Eigen::Transform r; + cv::Mat hdr(4, 4, cv::traits::Type::value, r.matrix().data()); + cv::Mat(matrix, false).copyTo(hdr); + return r; +} + +template inline +cv::Affine3::operator Eigen::Transform() const +{ + return this->operator Eigen::Transform(); +} + +#endif /* defined EIGEN_WORLD_VERSION && defined EIGEN_GEOMETRY_MODULE_H */ + +//! @endcond + +#endif /* __cplusplus */ + +#endif /* OPENCV_CORE_AFFINE3_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/base.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/base.hpp new file mode 100644 index 000000000..f484e9e10 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/base.hpp @@ -0,0 +1,654 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2014, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_BASE_HPP +#define OPENCV_CORE_BASE_HPP + +#ifndef __cplusplus +# error base.hpp header must be compiled as C++ +#endif + +#include "opencv2/opencv_modules.hpp" + +#include +#include + +#include "opencv2/core/cvdef.h" +#include "opencv2/core/cvstd.hpp" + +namespace cv +{ + +//! @addtogroup core_utils +//! @{ + +namespace Error { +//! error codes +enum Code { + StsOk= 0, //!< everything is ok + StsBackTrace= -1, //!< pseudo error for back trace + StsError= -2, //!< unknown /unspecified error + StsInternal= -3, //!< internal error (bad state) + StsNoMem= -4, //!< insufficient memory + StsBadArg= -5, //!< function arg/param is bad + StsBadFunc= -6, //!< unsupported function + StsNoConv= -7, //!< iteration didn't converge + StsAutoTrace= -8, //!< tracing + HeaderIsNull= -9, //!< image header is NULL + BadImageSize= -10, //!< image size is invalid + BadOffset= -11, //!< offset is invalid + BadDataPtr= -12, //!< + BadStep= -13, //!< image step is wrong, this may happen for a non-continuous matrix. + BadModelOrChSeq= -14, //!< + BadNumChannels= -15, //!< bad number of channels, for example, some functions accept only single channel matrices. + BadNumChannel1U= -16, //!< + BadDepth= -17, //!< input image depth is not supported by the function + BadAlphaChannel= -18, //!< + BadOrder= -19, //!< number of dimensions is out of range + BadOrigin= -20, //!< incorrect input origin + BadAlign= -21, //!< incorrect input align + BadCallBack= -22, //!< + BadTileSize= -23, //!< + BadCOI= -24, //!< input COI is not supported + BadROISize= -25, //!< incorrect input roi + MaskIsTiled= -26, //!< + StsNullPtr= -27, //!< null pointer + StsVecLengthErr= -28, //!< incorrect vector length + StsFilterStructContentErr= -29, //!< incorrect filter structure content + StsKernelStructContentErr= -30, //!< incorrect transform kernel content + StsFilterOffsetErr= -31, //!< incorrect filter offset value + StsBadSize= -201, //!< the input/output structure size is incorrect + StsDivByZero= -202, //!< division by zero + StsInplaceNotSupported= -203, //!< in-place operation is not supported + StsObjectNotFound= -204, //!< request can't be completed + StsUnmatchedFormats= -205, //!< formats of input/output arrays differ + StsBadFlag= -206, //!< flag is wrong or not supported + StsBadPoint= -207, //!< bad CvPoint + StsBadMask= -208, //!< bad format of mask (neither 8uC1 nor 8sC1) + StsUnmatchedSizes= -209, //!< sizes of input/output structures do not match + StsUnsupportedFormat= -210, //!< the data format/type is not supported by the function + StsOutOfRange= -211, //!< some of parameters are out of range + StsParseError= -212, //!< invalid syntax/structure of the parsed file + StsNotImplemented= -213, //!< the requested function/feature is not implemented + StsBadMemBlock= -214, //!< an allocated block has been corrupted + StsAssert= -215, //!< assertion failed + GpuNotSupported= -216, //!< no CUDA support + GpuApiCallError= -217, //!< GPU API call error + OpenGlNotSupported= -218, //!< no OpenGL support + OpenGlApiCallError= -219, //!< OpenGL API call error + OpenCLApiCallError= -220, //!< OpenCL API call error + OpenCLDoubleNotSupported= -221, + OpenCLInitError= -222, //!< OpenCL initialization error + OpenCLNoAMDBlasFft= -223 +}; +} //Error + +//! @} core_utils + +//! @addtogroup core_array +//! @{ + +//! matrix decomposition types +enum DecompTypes { + /** Gaussian elimination with the optimal pivot element chosen. */ + DECOMP_LU = 0, + /** singular value decomposition (SVD) method; the system can be over-defined and/or the matrix + src1 can be singular */ + DECOMP_SVD = 1, + /** eigenvalue decomposition; the matrix src1 must be symmetrical */ + DECOMP_EIG = 2, + /** Cholesky \f$LL^T\f$ factorization; the matrix src1 must be symmetrical and positively + defined */ + DECOMP_CHOLESKY = 3, + /** QR factorization; the system can be over-defined and/or the matrix src1 can be singular */ + DECOMP_QR = 4, + /** while all the previous flags are mutually exclusive, this flag can be used together with + any of the previous; it means that the normal equations + \f$\texttt{src1}^T\cdot\texttt{src1}\cdot\texttt{dst}=\texttt{src1}^T\texttt{src2}\f$ are + solved instead of the original system + \f$\texttt{src1}\cdot\texttt{dst}=\texttt{src2}\f$ */ + DECOMP_NORMAL = 16 +}; + +/** norm types + +src1 and src2 denote input arrays. +*/ + +enum NormTypes { + /** + \f[ + norm = \forkthree + {\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) } + {\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) } + {\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_INF}\) } + \f] + */ + NORM_INF = 1, + /** + \f[ + norm = \forkthree + {\| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\)} + { \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) } + { \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) } + \f]*/ + NORM_L1 = 2, + /** + \f[ + norm = \forkthree + { \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) } + { \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) } + { \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) } + \f] + */ + NORM_L2 = 4, + /** + \f[ + norm = \forkthree + { \| \texttt{src1} \| _{L_2} ^{2} = \sum_I \texttt{src1}(I)^2} {if \(\texttt{normType} = \texttt{NORM_L2SQR}\)} + { \| \texttt{src1} - \texttt{src2} \| _{L_2} ^{2} = \sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2 }{if \(\texttt{normType} = \texttt{NORM_L2SQR}\) } + { \left(\frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}}\right)^2 }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) } + \f] + */ + NORM_L2SQR = 5, + /** + In the case of one input array, calculates the Hamming distance of the array from zero, + In the case of two input arrays, calculates the Hamming distance between the arrays. + */ + NORM_HAMMING = 6, + /** + Similar to NORM_HAMMING, but in the calculation, each two bits of the input sequence will + be added and treated as a single bit to be used in the same calculation as NORM_HAMMING. + */ + NORM_HAMMING2 = 7, + NORM_TYPE_MASK = 7, //!< bit-mask which can be used to separate norm type from norm flags + NORM_RELATIVE = 8, //!< flag + NORM_MINMAX = 32 //!< flag + }; + +//! comparison types +enum CmpTypes { CMP_EQ = 0, //!< src1 is equal to src2. + CMP_GT = 1, //!< src1 is greater than src2. + CMP_GE = 2, //!< src1 is greater than or equal to src2. + CMP_LT = 3, //!< src1 is less than src2. + CMP_LE = 4, //!< src1 is less than or equal to src2. + CMP_NE = 5 //!< src1 is unequal to src2. + }; + +//! generalized matrix multiplication flags +enum GemmFlags { GEMM_1_T = 1, //!< transposes src1 + GEMM_2_T = 2, //!< transposes src2 + GEMM_3_T = 4 //!< transposes src3 + }; + +enum DftFlags { + /** performs an inverse 1D or 2D transform instead of the default forward + transform. */ + DFT_INVERSE = 1, + /** scales the result: divide it by the number of array elements. Normally, it is + combined with DFT_INVERSE. */ + DFT_SCALE = 2, + /** performs a forward or inverse transform of every individual row of the input + matrix; this flag enables you to transform multiple vectors simultaneously and can be used to + decrease the overhead (which is sometimes several times larger than the processing itself) to + perform 3D and higher-dimensional transformations and so forth.*/ + DFT_ROWS = 4, + /** performs a forward transformation of 1D or 2D real array; the result, + though being a complex array, has complex-conjugate symmetry (*CCS*, see the function + description below for details), and such an array can be packed into a real array of the same + size as input, which is the fastest option and which is what the function does by default; + however, you may wish to get a full complex array (for simpler spectrum analysis, and so on) - + pass the flag to enable the function to produce a full-size complex output array. */ + DFT_COMPLEX_OUTPUT = 16, + /** performs an inverse transformation of a 1D or 2D complex array; the + result is normally a complex array of the same size, however, if the input array has + conjugate-complex symmetry (for example, it is a result of forward transformation with + DFT_COMPLEX_OUTPUT flag), the output is a real array; while the function itself does not + check whether the input is symmetrical or not, you can pass the flag and then the function + will assume the symmetry and produce the real output array (note that when the input is packed + into a real array and inverse transformation is executed, the function treats the input as a + packed complex-conjugate symmetrical array, and the output will also be a real array). */ + DFT_REAL_OUTPUT = 32, + /** specifies that input is complex input. If this flag is set, the input must have 2 channels. + On the other hand, for backwards compatibility reason, if input has 2 channels, input is + already considered complex. */ + DFT_COMPLEX_INPUT = 64, + /** performs an inverse 1D or 2D transform instead of the default forward transform. */ + DCT_INVERSE = DFT_INVERSE, + /** performs a forward or inverse transform of every individual row of the input + matrix. This flag enables you to transform multiple vectors simultaneously and can be used to + decrease the overhead (which is sometimes several times larger than the processing itself) to + perform 3D and higher-dimensional transforms and so forth.*/ + DCT_ROWS = DFT_ROWS +}; + +//! Various border types, image boundaries are denoted with `|` +//! @see borderInterpolate, copyMakeBorder +enum BorderTypes { + BORDER_CONSTANT = 0, //!< `iiiiii|abcdefgh|iiiiiii` with some specified `i` + BORDER_REPLICATE = 1, //!< `aaaaaa|abcdefgh|hhhhhhh` + BORDER_REFLECT = 2, //!< `fedcba|abcdefgh|hgfedcb` + BORDER_WRAP = 3, //!< `cdefgh|abcdefgh|abcdefg` + BORDER_REFLECT_101 = 4, //!< `gfedcb|abcdefgh|gfedcba` + BORDER_TRANSPARENT = 5, //!< `uvwxyz|abcdefgh|ijklmno` + + BORDER_REFLECT101 = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101 + BORDER_DEFAULT = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101 + BORDER_ISOLATED = 16 //!< do not look outside of ROI +}; + +//! @} core_array + +//! @addtogroup core_utils +//! @{ + +/*! @brief Signals an error and raises the exception. + +By default the function prints information about the error to stderr, +then it either stops if setBreakOnError() had been called before or raises the exception. +It is possible to alternate error processing by using redirectError(). +@param _code - error code (Error::Code) +@param _err - error description +@param _func - function name. Available only when the compiler supports getting it +@param _file - source file name where the error has occurred +@param _line - line number in the source file where the error has occurred +@see CV_Error, CV_Error_, CV_Assert, CV_DbgAssert + */ +CV_EXPORTS CV_NORETURN void error(int _code, const String& _err, const char* _func, const char* _file, int _line); + +#ifdef CV_STATIC_ANALYSIS + +// In practice, some macro are not processed correctly (noreturn is not detected). +// We need to use simplified definition for them. +#define CV_Error(...) do { abort(); } while (0) +#define CV_Error_( code, args ) do { cv::format args; abort(); } while (0) +#define CV_Assert( expr ) do { if (!(expr)) abort(); } while (0) + +#else // CV_STATIC_ANALYSIS + +/** @brief Call the error handler. + +Currently, the error handler prints the error code and the error message to the standard +error stream `stderr`. In the Debug configuration, it then provokes memory access violation, so that +the execution stack and all the parameters can be analyzed by the debugger. In the Release +configuration, the exception is thrown. + +@param code one of Error::Code +@param msg error message +*/ +#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ ) + +/** @brief Call the error handler. + +This macro can be used to construct an error message on-fly to include some dynamic information, +for example: +@code + // note the extra parentheses around the formatted text message + CV_Error_(Error::StsOutOfRange, + ("the value at (%d, %d)=%g is out of range", badPt.x, badPt.y, badValue)); +@endcode +@param code one of Error::Code +@param args printf-like formatted error message in parentheses +*/ +#define CV_Error_( code, args ) cv::error( code, cv::format args, CV_Func, __FILE__, __LINE__ ) + +/** @brief Checks a condition at runtime and throws exception if it fails + +The macros CV_Assert (and CV_DbgAssert(expr)) evaluate the specified expression. If it is 0, the macros +raise an error (see cv::error). The macro CV_Assert checks the condition in both Debug and Release +configurations while CV_DbgAssert is only retained in the Debug configuration. +*/ +#define CV_Assert( expr ) do { if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ); } while(0) + +#endif // CV_STATIC_ANALYSIS + +//! @cond IGNORED +#if !defined(__OPENCV_BUILD) // TODO: backward compatibility only +#ifndef CV_ErrorNoReturn +#define CV_ErrorNoReturn CV_Error +#endif +#ifndef CV_ErrorNoReturn_ +#define CV_ErrorNoReturn_ CV_Error_ +#endif +#endif + +#define CV_Assert_1 CV_Assert +#define CV_Assert_2( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_1( __VA_ARGS__ )) +#define CV_Assert_3( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_2( __VA_ARGS__ )) +#define CV_Assert_4( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_3( __VA_ARGS__ )) +#define CV_Assert_5( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_4( __VA_ARGS__ )) +#define CV_Assert_6( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_5( __VA_ARGS__ )) +#define CV_Assert_7( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_6( __VA_ARGS__ )) +#define CV_Assert_8( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_7( __VA_ARGS__ )) +#define CV_Assert_9( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_8( __VA_ARGS__ )) +#define CV_Assert_10( expr, ... ) CV_Assert_1(expr); __CV_EXPAND(CV_Assert_9( __VA_ARGS__ )) + +#define CV_Assert_N(...) do { __CV_EXPAND(__CV_CAT(CV_Assert_, __CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__)); } while(0) + +//! @endcond + +#if defined _DEBUG || defined CV_STATIC_ANALYSIS +# define CV_DbgAssert(expr) CV_Assert(expr) +#else +/** replaced with CV_Assert(expr) in Debug configuration */ +# define CV_DbgAssert(expr) +#endif + +/* + * Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor + * bit count of A exclusive XOR'ed with B + */ +struct CV_EXPORTS Hamming +{ + static const NormTypes normType = NORM_HAMMING; + typedef unsigned char ValueType; + typedef int ResultType; + + /** this will count the bits in a ^ b + */ + ResultType operator()( const unsigned char* a, const unsigned char* b, int size ) const; +}; + +typedef Hamming HammingLUT; + +/////////////////////////////////// inline norms //////////////////////////////////// + +template inline _Tp cv_abs(_Tp x) { return std::abs(x); } +inline int cv_abs(uchar x) { return x; } +inline int cv_abs(schar x) { return std::abs(x); } +inline int cv_abs(ushort x) { return x; } +inline int cv_abs(short x) { return std::abs(x); } + +template static inline +_AccTp normL2Sqr(const _Tp* a, int n) +{ + _AccTp s = 0; + int i=0; +#if CV_ENABLE_UNROLLED + for( ; i <= n - 4; i += 4 ) + { + _AccTp v0 = a[i], v1 = a[i+1], v2 = a[i+2], v3 = a[i+3]; + s += v0*v0 + v1*v1 + v2*v2 + v3*v3; + } +#endif + for( ; i < n; i++ ) + { + _AccTp v = a[i]; + s += v*v; + } + return s; +} + +template static inline +_AccTp normL1(const _Tp* a, int n) +{ + _AccTp s = 0; + int i = 0; +#if CV_ENABLE_UNROLLED + for(; i <= n - 4; i += 4 ) + { + s += (_AccTp)cv_abs(a[i]) + (_AccTp)cv_abs(a[i+1]) + + (_AccTp)cv_abs(a[i+2]) + (_AccTp)cv_abs(a[i+3]); + } +#endif + for( ; i < n; i++ ) + s += cv_abs(a[i]); + return s; +} + +template static inline +_AccTp normInf(const _Tp* a, int n) +{ + _AccTp s = 0; + for( int i = 0; i < n; i++ ) + s = std::max(s, (_AccTp)cv_abs(a[i])); + return s; +} + +template static inline +_AccTp normL2Sqr(const _Tp* a, const _Tp* b, int n) +{ + _AccTp s = 0; + int i= 0; +#if CV_ENABLE_UNROLLED + for(; i <= n - 4; i += 4 ) + { + _AccTp v0 = _AccTp(a[i] - b[i]), v1 = _AccTp(a[i+1] - b[i+1]), v2 = _AccTp(a[i+2] - b[i+2]), v3 = _AccTp(a[i+3] - b[i+3]); + s += v0*v0 + v1*v1 + v2*v2 + v3*v3; + } +#endif + for( ; i < n; i++ ) + { + _AccTp v = _AccTp(a[i] - b[i]); + s += v*v; + } + return s; +} + +static inline float normL2Sqr(const float* a, const float* b, int n) +{ + float s = 0.f; + for( int i = 0; i < n; i++ ) + { + float v = a[i] - b[i]; + s += v*v; + } + return s; +} + +template static inline +_AccTp normL1(const _Tp* a, const _Tp* b, int n) +{ + _AccTp s = 0; + int i= 0; +#if CV_ENABLE_UNROLLED + for(; i <= n - 4; i += 4 ) + { + _AccTp v0 = _AccTp(a[i] - b[i]), v1 = _AccTp(a[i+1] - b[i+1]), v2 = _AccTp(a[i+2] - b[i+2]), v3 = _AccTp(a[i+3] - b[i+3]); + s += std::abs(v0) + std::abs(v1) + std::abs(v2) + std::abs(v3); + } +#endif + for( ; i < n; i++ ) + { + _AccTp v = _AccTp(a[i] - b[i]); + s += std::abs(v); + } + return s; +} + +inline float normL1(const float* a, const float* b, int n) +{ + float s = 0.f; + for( int i = 0; i < n; i++ ) + { + s += std::abs(a[i] - b[i]); + } + return s; +} + +inline int normL1(const uchar* a, const uchar* b, int n) +{ + int s = 0; + for( int i = 0; i < n; i++ ) + { + s += std::abs(a[i] - b[i]); + } + return s; +} + +template static inline +_AccTp normInf(const _Tp* a, const _Tp* b, int n) +{ + _AccTp s = 0; + for( int i = 0; i < n; i++ ) + { + _AccTp v0 = a[i] - b[i]; + s = std::max(s, std::abs(v0)); + } + return s; +} + +/** @brief Computes the cube root of an argument. + + The function cubeRoot computes \f$\sqrt[3]{\texttt{val}}\f$. Negative arguments are handled correctly. + NaN and Inf are not handled. The accuracy approaches the maximum possible accuracy for + single-precision data. + @param val A function argument. + */ +CV_EXPORTS_W float cubeRoot(float val); + +/** @brief Calculates the angle of a 2D vector in degrees. + + The function fastAtan2 calculates the full-range angle of an input 2D vector. The angle is measured + in degrees and varies from 0 to 360 degrees. The accuracy is about 0.3 degrees. + @param x x-coordinate of the vector. + @param y y-coordinate of the vector. + */ +CV_EXPORTS_W float fastAtan2(float y, float x); + +/** proxy for hal::LU */ +CV_EXPORTS int LU(float* A, size_t astep, int m, float* b, size_t bstep, int n); +/** proxy for hal::LU */ +CV_EXPORTS int LU(double* A, size_t astep, int m, double* b, size_t bstep, int n); +/** proxy for hal::Cholesky */ +CV_EXPORTS bool Cholesky(float* A, size_t astep, int m, float* b, size_t bstep, int n); +/** proxy for hal::Cholesky */ +CV_EXPORTS bool Cholesky(double* A, size_t astep, int m, double* b, size_t bstep, int n); + +////////////////// forward declarations for important OpenCV types ////////////////// + +//! @cond IGNORED + +template class Vec; +template class Matx; + +template class Complex; +template class Point_; +template class Point3_; +template class Size_; +template class Rect_; +template class Scalar_; + +class CV_EXPORTS RotatedRect; +class CV_EXPORTS Range; +class CV_EXPORTS TermCriteria; +class CV_EXPORTS KeyPoint; +class CV_EXPORTS DMatch; +class CV_EXPORTS RNG; + +class CV_EXPORTS Mat; +class CV_EXPORTS MatExpr; + +class CV_EXPORTS UMat; + +class CV_EXPORTS SparseMat; +typedef Mat MatND; + +template class Mat_; +template class SparseMat_; + +class CV_EXPORTS MatConstIterator; +class CV_EXPORTS SparseMatIterator; +class CV_EXPORTS SparseMatConstIterator; +template class MatIterator_; +template class MatConstIterator_; +template class SparseMatIterator_; +template class SparseMatConstIterator_; + +namespace ogl +{ + class CV_EXPORTS Buffer; + class CV_EXPORTS Texture2D; + class CV_EXPORTS Arrays; +} + +namespace cuda +{ + class CV_EXPORTS GpuMat; + class CV_EXPORTS HostMem; + class CV_EXPORTS Stream; + class CV_EXPORTS Event; +} + +namespace cudev +{ + template class GpuMat_; +} + +namespace ipp +{ +CV_EXPORTS unsigned long long getIppFeatures(); +CV_EXPORTS void setIppStatus(int status, const char * const funcname = NULL, const char * const filename = NULL, + int line = 0); +CV_EXPORTS int getIppStatus(); +CV_EXPORTS String getIppErrorLocation(); +CV_EXPORTS_W bool useIPP(); +CV_EXPORTS_W void setUseIPP(bool flag); +CV_EXPORTS_W String getIppVersion(); + +// IPP Not-Exact mode. This function may force use of IPP then both IPP and OpenCV provide proper results +// but have internal accuracy differences which have too much direct or indirect impact on accuracy tests. +CV_EXPORTS_W bool useIPP_NotExact(); +CV_EXPORTS_W void setUseIPP_NotExact(bool flag); +#ifndef DISABLE_OPENCV_3_COMPATIBILITY +static inline bool useIPP_NE() { return useIPP_NotExact(); } +static inline void setUseIPP_NE(bool flag) { setUseIPP_NotExact(flag); } +#endif + +} // ipp + +//! @endcond + +//! @} core_utils + + + + +} // cv + +#include "opencv2/core/neon_utils.hpp" +#include "opencv2/core/vsx_utils.hpp" +#include "opencv2/core/check.hpp" + +#endif //OPENCV_CORE_BASE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/bindings_utils.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/bindings_utils.hpp new file mode 100644 index 000000000..c1123f2b0 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/bindings_utils.hpp @@ -0,0 +1,23 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_CORE_BINDINGS_UTILS_HPP +#define OPENCV_CORE_BINDINGS_UTILS_HPP + +namespace cv { namespace utils { +//! @addtogroup core_utils +//! @{ + +CV_EXPORTS_W String dumpInputArray(InputArray argument); + +CV_EXPORTS_W String dumpInputArrayOfArrays(InputArrayOfArrays argument); + +CV_EXPORTS_W String dumpInputOutputArray(InputOutputArray argument); + +CV_EXPORTS_W String dumpInputOutputArrayOfArrays(InputOutputArrayOfArrays argument); + +//! @} +}} // namespace + +#endif // OPENCV_CORE_BINDINGS_UTILS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/bufferpool.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/bufferpool.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/bufferpool.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/bufferpool.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/check.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/check.hpp new file mode 100644 index 000000000..604447e8d --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/check.hpp @@ -0,0 +1,159 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_CORE_CHECK_HPP +#define OPENCV_CORE_CHECK_HPP + +#include + +namespace cv { + +/** Returns string of cv::Mat depth value: CV_8U -> "CV_8U" or "" */ +CV_EXPORTS const char* depthToString(int depth); + +/** Returns string of cv::Mat depth value: CV_8UC3 -> "CV_8UC3" or "" */ +CV_EXPORTS const String typeToString(int type); + + +//! @cond IGNORED +namespace detail { + +/** Returns string of cv::Mat depth value: CV_8U -> "CV_8U" or NULL */ +CV_EXPORTS const char* depthToString_(int depth); + +/** Returns string of cv::Mat depth value: CV_8UC3 -> "CV_8UC3" or cv::String() */ +CV_EXPORTS const cv::String typeToString_(int type); + +enum TestOp { + TEST_CUSTOM = 0, + TEST_EQ = 1, + TEST_NE = 2, + TEST_LE = 3, + TEST_LT = 4, + TEST_GE = 5, + TEST_GT = 6, + CV__LAST_TEST_OP +}; + +struct CheckContext { + const char* func; + const char* file; + int line; + enum TestOp testOp; + const char* message; + const char* p1_str; + const char* p2_str; +}; + +#ifndef CV__CHECK_FILENAME +# define CV__CHECK_FILENAME __FILE__ +#endif + +#ifndef CV__CHECK_FUNCTION +# if defined _MSC_VER +# define CV__CHECK_FUNCTION __FUNCSIG__ +# elif defined __GNUC__ +# define CV__CHECK_FUNCTION __PRETTY_FUNCTION__ +# else +# define CV__CHECK_FUNCTION "" +# endif +#endif + +#define CV__CHECK_LOCATION_VARNAME(id) CVAUX_CONCAT(CVAUX_CONCAT(__cv_check_, id), __LINE__) +#define CV__DEFINE_CHECK_CONTEXT(id, message, testOp, p1_str, p2_str) \ + static const cv::detail::CheckContext CV__CHECK_LOCATION_VARNAME(id) = \ + { CV__CHECK_FUNCTION, CV__CHECK_FILENAME, __LINE__, testOp, message, p1_str, p2_str } + +CV_EXPORTS void CV_NORETURN check_failed_auto(const int v1, const int v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const size_t v1, const size_t v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const float v1, const float v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const double v1, const double v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const Size_ v1, const Size_ v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_MatDepth(const int v1, const int v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_MatType(const int v1, const int v2, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_MatChannels(const int v1, const int v2, const CheckContext& ctx); + +CV_EXPORTS void CV_NORETURN check_failed_auto(const int v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const size_t v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const float v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const double v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_auto(const Size_ v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_MatDepth(const int v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_MatType(const int v, const CheckContext& ctx); +CV_EXPORTS void CV_NORETURN check_failed_MatChannels(const int v, const CheckContext& ctx); + + +#define CV__TEST_EQ(v1, v2) ((v1) == (v2)) +#define CV__TEST_NE(v1, v2) ((v1) != (v2)) +#define CV__TEST_LE(v1, v2) ((v1) <= (v2)) +#define CV__TEST_LT(v1, v2) ((v1) < (v2)) +#define CV__TEST_GE(v1, v2) ((v1) >= (v2)) +#define CV__TEST_GT(v1, v2) ((v1) > (v2)) + +#define CV__CHECK(id, op, type, v1, v2, v1_str, v2_str, msg_str) do { \ + if(CV__TEST_##op((v1), (v2))) ; else { \ + CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_ ## op, v1_str, v2_str); \ + cv::detail::check_failed_ ## type((v1), (v2), CV__CHECK_LOCATION_VARNAME(id)); \ + } \ +} while (0) + +#define CV__CHECK_CUSTOM_TEST(id, type, v, test_expr, v_str, test_expr_str, msg_str) do { \ + if(!!(test_expr)) ; else { \ + CV__DEFINE_CHECK_CONTEXT(id, msg_str, cv::detail::TEST_CUSTOM, v_str, test_expr_str); \ + cv::detail::check_failed_ ## type((v), CV__CHECK_LOCATION_VARNAME(id)); \ + } \ +} while (0) + +} // namespace +//! @endcond + + +/// Supported values of these types: int, float, double +#define CV_CheckEQ(v1, v2, msg) CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg) +#define CV_CheckNE(v1, v2, msg) CV__CHECK(_, NE, auto, v1, v2, #v1, #v2, msg) +#define CV_CheckLE(v1, v2, msg) CV__CHECK(_, LE, auto, v1, v2, #v1, #v2, msg) +#define CV_CheckLT(v1, v2, msg) CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg) +#define CV_CheckGE(v1, v2, msg) CV__CHECK(_, GE, auto, v1, v2, #v1, #v2, msg) +#define CV_CheckGT(v1, v2, msg) CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg) + +/// Check with additional "decoding" of type values in error message +#define CV_CheckTypeEQ(t1, t2, msg) CV__CHECK(_, EQ, MatType, t1, t2, #t1, #t2, msg) +/// Check with additional "decoding" of depth values in error message +#define CV_CheckDepthEQ(d1, d2, msg) CV__CHECK(_, EQ, MatDepth, d1, d2, #d1, #d2, msg) + +#define CV_CheckChannelsEQ(c1, c2, msg) CV__CHECK(_, EQ, MatChannels, c1, c2, #c1, #c2, msg) + +/// Example: type == CV_8UC1 || type == CV_8UC3 +#define CV_CheckType(t, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, MatType, t, (test_expr), #t, #test_expr, msg) + +/// Example: depth == CV_32F || depth == CV_64F +#define CV_CheckDepth(t, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, MatDepth, t, (test_expr), #t, #test_expr, msg) + +/// Example: v == A || v == B +#define CV_Check(v, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg) + +/// Some complex conditions: CV_Check(src2, src2.empty() || (src2.type() == src1.type() && src2.size() == src1.size()), "src2 should have same size/type as src1") +// TODO define pretty-printers + +#ifndef NDEBUG +#define CV_DbgCheck(v, test_expr, msg) CV__CHECK_CUSTOM_TEST(_, auto, v, (test_expr), #v, #test_expr, msg) +#define CV_DbgCheckEQ(v1, v2, msg) CV__CHECK(_, EQ, auto, v1, v2, #v1, #v2, msg) +#define CV_DbgCheckNE(v1, v2, msg) CV__CHECK(_, NE, auto, v1, v2, #v1, #v2, msg) +#define CV_DbgCheckLE(v1, v2, msg) CV__CHECK(_, LE, auto, v1, v2, #v1, #v2, msg) +#define CV_DbgCheckLT(v1, v2, msg) CV__CHECK(_, LT, auto, v1, v2, #v1, #v2, msg) +#define CV_DbgCheckGE(v1, v2, msg) CV__CHECK(_, GE, auto, v1, v2, #v1, #v2, msg) +#define CV_DbgCheckGT(v1, v2, msg) CV__CHECK(_, GT, auto, v1, v2, #v1, #v2, msg) +#else +#define CV_DbgCheck(v, test_expr, msg) do { } while (0) +#define CV_DbgCheckEQ(v1, v2, msg) do { } while (0) +#define CV_DbgCheckNE(v1, v2, msg) do { } while (0) +#define CV_DbgCheckLE(v1, v2, msg) do { } while (0) +#define CV_DbgCheckLT(v1, v2, msg) do { } while (0) +#define CV_DbgCheckGE(v1, v2, msg) do { } while (0) +#define CV_DbgCheckGT(v1, v2, msg) do { } while (0) +#endif + +} // namespace + +#endif // OPENCV_CORE_CHECK_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/core.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/core.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/core.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/core_c.h b/lib/3rdParty/OpenCV/include/opencv2/core/core_c.h similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/core_c.h rename to lib/3rdParty/OpenCV/include/opencv2/core/core_c.h index 754af2fc6..0d07d9e79 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/core_c.h +++ b/lib/3rdParty/OpenCV/include/opencv2/core/core_c.h @@ -1576,8 +1576,8 @@ CVAPI(void) cvRestoreMemStoragePos( CvMemStorage* storage, CvMemStoragePos* pos CVAPI(void*) cvMemStorageAlloc( CvMemStorage* storage, size_t size ); /** Allocates string in memory storage */ -CVAPI(CvString) cvMemStorageAllocString( CvMemStorage* storage, const char* ptr, - int len CV_DEFAULT(-1) ); +//CVAPI(CvString) cvMemStorageAllocString( CvMemStorage* storage, const char* ptr, +// int len CV_DEFAULT(-1) ); /** Creates new empty sequence that will reside in the specified storage */ CVAPI(CvSeq*) cvCreateSeq( int seq_flags, size_t header_size, @@ -1788,7 +1788,7 @@ CVAPI(int) cvGraphRemoveVtx( CvGraph* graph, int index ); CVAPI(int) cvGraphRemoveVtxByPtr( CvGraph* graph, CvGraphVtx* vtx ); -/** Link two vertices specifed by indices or pointers if they +/** Link two vertices specified by indices or pointers if they are not connected or return pointer to already existing edge connecting the vertices. Functions return 1 if a new edge was created, 0 otherwise */ @@ -1970,6 +1970,7 @@ CVAPI(void) cvSetIPLAllocators( Cv_iplCreateImageHeader create_header, * Data Persistence * \****************************************************************************************/ +#if 0 /********************************** High-level functions ********************************/ /** @brief Opens file storage for reading or writing data. @@ -1978,11 +1979,7 @@ The function opens file storage for reading or writing data. In the latter case, created or an existing file is rewritten. The type of the read or written file is determined by the filename extension: .xml for XML, .yml or .yaml for YAML and .json for JSON. -At the same time, it also supports adding parameters like "example.xml?base64". The three ways -are the same: -@snippet samples/cpp/filestorage_base64.cpp suffix_in_file_name -@snippet samples/cpp/filestorage_base64.cpp flag_write_base64 -@snippet samples/cpp/filestorage_base64.cpp flag_write_and_flag_base64 +At the same time, it also supports adding parameters like "example.xml?base64". The function returns a pointer to the CvFileStorage structure. If the file cannot be opened then the function returns NULL. @@ -2206,11 +2203,6 @@ in plain text. This function can only be used to write a sequence with a type "binary". -Consider the following two examples where their output is the same: -@snippet samples/cpp/filestorage_base64.cpp without_base64_flag -and -@snippet samples/cpp/filestorage_base64.cpp with_write_base64_flag - @param fs File storage @param src Pointer to the written array @param len Number of the array elements to write @@ -2565,10 +2557,12 @@ returns NULL. */ CVAPI(CvTypeInfo*) cvTypeOf( const void* struct_ptr ); +#endif + /** @brief Releases an object. -The function finds the type of a given object and calls release with the double pointer. -@param struct_ptr Double pointer to the object + The function finds the type of a given object and calls release with the double pointer. + @param struct_ptr Double pointer to the object */ CVAPI(void) cvRelease( void** struct_ptr ); @@ -2581,41 +2575,6 @@ function, like cvCloneMat. */ CVAPI(void*) cvClone( const void* struct_ptr ); -/** @brief Saves an object to a file. - -The function saves an object to a file. It provides a simple interface to cvWrite . -@param filename File name -@param struct_ptr Object to save -@param name Optional object name. If it is NULL, the name will be formed from filename . -@param comment Optional comment to put in the beginning of the file -@param attributes Optional attributes passed to cvWrite - */ -CVAPI(void) cvSave( const char* filename, const void* struct_ptr, - const char* name CV_DEFAULT(NULL), - const char* comment CV_DEFAULT(NULL), - CvAttrList attributes CV_DEFAULT(cvAttrList())); - -/** @brief Loads an object from a file. - -The function loads an object from a file. It basically reads the specified file, find the first -top-level node and calls cvRead for that node. If the file node does not have type information or -the type information can not be found by the type name, the function returns NULL. After the object -is loaded, the file storage is closed and all the temporary buffers are deleted. Thus, to load a -dynamic structure, such as a sequence, contour, or graph, one should pass a valid memory storage -destination to the function. -@param filename File name -@param memstorage Memory storage for dynamic structures, such as CvSeq or CvGraph . It is not used -for matrices or images. -@param name Optional object name. If it is NULL, the first top-level object in the storage will be -loaded. -@param real_name Optional output parameter that will contain the name of the loaded object -(useful if name=NULL ) - */ -CVAPI(void*) cvLoad( const char* filename, - CvMemStorage* memstorage CV_DEFAULT(NULL), - const char* name CV_DEFAULT(NULL), - const char** real_name CV_DEFAULT(NULL) ); - /*********************************** Measuring Execution Time ***************************/ /** helper functions for RNG initialization and accurate time measurement: @@ -2648,7 +2607,7 @@ CVAPI(void) cvSetErrStatus( int status ); #define CV_ErrModeParent 1 /* Print error and continue */ #define CV_ErrModeSilent 2 /* Don't print and continue */ -/** Retrives current error processing mode */ +/** Retrieves current error processing mode */ CVAPI(int) cvGetErrMode( void ); /** Sets error processing mode, returns previously used mode */ @@ -2738,7 +2697,7 @@ static char cvFuncName[] = Name /** CV_CALL macro calls CV (or IPL) function, checks error status and signals a error if the function failed. Useful in "parent node" - error procesing mode + error processing mode */ #define CV_CALL( Func ) \ { \ @@ -2766,24 +2725,6 @@ static char cvFuncName[] = Name #ifdef __cplusplus -//! @addtogroup core_c_glue -//! @{ - -//! class for automatic module/RTTI data registration/unregistration -struct CV_EXPORTS CvType -{ - CvType( const char* type_name, - CvIsInstanceFunc is_instance, CvReleaseFunc release=0, - CvReadFunc read=0, CvWriteFunc write=0, CvCloneFunc clone=0 ); - ~CvType(); - CvTypeInfo* info; - - static CvTypeInfo* first; - static CvTypeInfo* last; -}; - -//! @} - #include "opencv2/core/utility.hpp" namespace cv @@ -2814,11 +2755,11 @@ CV_EXPORTS void insertImageCOI(InputArray coiimg, CvArr* arr, int coi=-1); ////// specialized implementations of DefaultDeleter::operator() for classic OpenCV types ////// -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvMat* obj) const; -template<> CV_EXPORTS void DefaultDeleter::operator ()(IplImage* obj) const; -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvMatND* obj) const; -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvSparseMat* obj) const; -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvMemStorage* obj) const; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvMat* obj) const; }; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(IplImage* obj) const; }; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvMatND* obj) const; }; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvSparseMat* obj) const; }; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvMemStorage* obj) const; }; ////////////// convenient wrappers for operating old-style dynamic structures ////////////// @@ -3073,7 +3014,7 @@ template inline void Seq<_Tp>::copyTo(std::vector<_Tp>& vec, const size_t len = !seq ? 0 : range == Range::all() ? seq->total : range.end - range.start; vec.resize(len); if( seq && len ) - cvCvtSeqToArray(seq, &vec[0], range); + cvCvtSeqToArray(seq, &vec[0], cvSlice(range)); } template inline Seq<_Tp>::operator std::vector<_Tp>() const diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda.hpp new file mode 100644 index 000000000..b49e75dc5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda.hpp @@ -0,0 +1,1049 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_CUDA_HPP +#define OPENCV_CORE_CUDA_HPP + +#ifndef __cplusplus +# error cuda.hpp header must be compiled as C++ +#endif + +#include "opencv2/core.hpp" +#include "opencv2/core/cuda_types.hpp" + +/** + @defgroup cuda CUDA-accelerated Computer Vision + @{ + @defgroup cudacore Core part + @{ + @defgroup cudacore_init Initialization and Information + @defgroup cudacore_struct Data Structures + @} + @} + */ + +namespace cv { namespace cuda { + +//! @addtogroup cudacore_struct +//! @{ + +//=================================================================================== +// GpuMat +//=================================================================================== + +/** @brief Base storage class for GPU memory with reference counting. + +Its interface matches the Mat interface with the following limitations: + +- no arbitrary dimensions support (only 2D) +- no functions that return references to their data (because references on GPU are not valid for + CPU) +- no expression templates technique support + +Beware that the latter limitation may lead to overloaded matrix operators that cause memory +allocations. The GpuMat class is convertible to cuda::PtrStepSz and cuda::PtrStep so it can be +passed directly to the kernel. + +@note In contrast with Mat, in most cases GpuMat::isContinuous() == false . This means that rows are +aligned to a size depending on the hardware. Single-row GpuMat is always a continuous matrix. + +@note You are not recommended to leave static or global GpuMat variables allocated, that is, to rely +on its destructor. The destruction order of such variables and CUDA context is undefined. GPU memory +release function returns error if the CUDA context has been destroyed before. + +Some member functions are described as a "Blocking Call" while some are described as a +"Non-Blocking Call". Blocking functions are synchronous to host. It is guaranteed that the GPU +operation is finished when the function returns. However, non-blocking functions are asynchronous to +host. Those functions may return even if the GPU operation is not finished. + +Compared to their blocking counterpart, non-blocking functions accept Stream as an additional +argument. If a non-default stream is passed, the GPU operation may overlap with operations in other +streams. + +@sa Mat + */ +class CV_EXPORTS_W GpuMat +{ +public: + class CV_EXPORTS_W Allocator + { + public: + virtual ~Allocator() {} + + // allocator must fill data, step and refcount fields + virtual bool allocate(GpuMat* mat, int rows, int cols, size_t elemSize) = 0; + virtual void free(GpuMat* mat) = 0; + }; + + //! default allocator + CV_WRAP static GpuMat::Allocator* defaultAllocator(); + CV_WRAP static void setDefaultAllocator(GpuMat::Allocator* allocator); + + //! default constructor + CV_WRAP explicit GpuMat(GpuMat::Allocator* allocator = GpuMat::defaultAllocator()); + + //! constructs GpuMat of the specified size and type + CV_WRAP GpuMat(int rows, int cols, int type, GpuMat::Allocator* allocator = GpuMat::defaultAllocator()); + CV_WRAP GpuMat(Size size, int type, GpuMat::Allocator* allocator = GpuMat::defaultAllocator()); + + //! constucts GpuMat and fills it with the specified value _s + CV_WRAP GpuMat(int rows, int cols, int type, Scalar s, GpuMat::Allocator* allocator = GpuMat::defaultAllocator()); + CV_WRAP GpuMat(Size size, int type, Scalar s, GpuMat::Allocator* allocator = GpuMat::defaultAllocator()); + + //! copy constructor + CV_WRAP GpuMat(const GpuMat& m); + + //! constructor for GpuMat headers pointing to user-allocated data + GpuMat(int rows, int cols, int type, void* data, size_t step = Mat::AUTO_STEP); + GpuMat(Size size, int type, void* data, size_t step = Mat::AUTO_STEP); + + //! creates a GpuMat header for a part of the bigger matrix + CV_WRAP GpuMat(const GpuMat& m, Range rowRange, Range colRange); + CV_WRAP GpuMat(const GpuMat& m, Rect roi); + + //! builds GpuMat from host memory (Blocking call) + CV_WRAP explicit GpuMat(InputArray arr, GpuMat::Allocator* allocator = GpuMat::defaultAllocator()); + + //! destructor - calls release() + ~GpuMat(); + + //! assignment operators + GpuMat& operator =(const GpuMat& m); + + //! allocates new GpuMat data unless the GpuMat already has specified size and type + CV_WRAP void create(int rows, int cols, int type); + CV_WRAP void create(Size size, int type); + + //! decreases reference counter, deallocate the data when reference counter reaches 0 + void release(); + + //! swaps with other smart pointer + CV_WRAP void swap(GpuMat& mat); + + /** @brief Performs data upload to GpuMat (Blocking call) + + This function copies data from host memory to device memory. As being a blocking call, it is + guaranteed that the copy operation is finished when this function returns. + */ + CV_WRAP void upload(InputArray arr); + + /** @brief Performs data upload to GpuMat (Non-Blocking call) + + This function copies data from host memory to device memory. As being a non-blocking call, this + function may return even if the copy operation is not finished. + + The copy operation may be overlapped with operations in other non-default streams if \p stream is + not the default stream and \p dst is HostMem allocated with HostMem::PAGE_LOCKED option. + */ + CV_WRAP void upload(InputArray arr, Stream& stream); + + /** @brief Performs data download from GpuMat (Blocking call) + + This function copies data from device memory to host memory. As being a blocking call, it is + guaranteed that the copy operation is finished when this function returns. + */ + CV_WRAP void download(OutputArray dst) const; + + /** @brief Performs data download from GpuMat (Non-Blocking call) + + This function copies data from device memory to host memory. As being a non-blocking call, this + function may return even if the copy operation is not finished. + + The copy operation may be overlapped with operations in other non-default streams if \p stream is + not the default stream and \p dst is HostMem allocated with HostMem::PAGE_LOCKED option. + */ + CV_WRAP void download(OutputArray dst, Stream& stream) const; + + //! returns deep copy of the GpuMat, i.e. the data is copied + CV_WRAP GpuMat clone() const; + + //! copies the GpuMat content to device memory (Blocking call) + CV_WRAP void copyTo(OutputArray dst) const; + + //! copies the GpuMat content to device memory (Non-Blocking call) + CV_WRAP void copyTo(OutputArray dst, Stream& stream) const; + + //! copies those GpuMat elements to "m" that are marked with non-zero mask elements (Blocking call) + CV_WRAP void copyTo(OutputArray dst, InputArray mask) const; + + //! copies those GpuMat elements to "m" that are marked with non-zero mask elements (Non-Blocking call) + CV_WRAP void copyTo(OutputArray dst, InputArray mask, Stream& stream) const; + + //! sets some of the GpuMat elements to s (Blocking call) + CV_WRAP GpuMat& setTo(Scalar s); + + //! sets some of the GpuMat elements to s (Non-Blocking call) + CV_WRAP GpuMat& setTo(Scalar s, Stream& stream); + + //! sets some of the GpuMat elements to s, according to the mask (Blocking call) + CV_WRAP GpuMat& setTo(Scalar s, InputArray mask); + + //! sets some of the GpuMat elements to s, according to the mask (Non-Blocking call) + CV_WRAP GpuMat& setTo(Scalar s, InputArray mask, Stream& stream); + + //! converts GpuMat to another datatype (Blocking call) + CV_WRAP void convertTo(OutputArray dst, int rtype) const; + + //! converts GpuMat to another datatype (Non-Blocking call) + CV_WRAP void convertTo(OutputArray dst, int rtype, Stream& stream) const; + + //! converts GpuMat to another datatype with scaling (Blocking call) + CV_WRAP void convertTo(OutputArray dst, int rtype, double alpha, double beta = 0.0) const; + + //! converts GpuMat to another datatype with scaling (Non-Blocking call) + CV_WRAP void convertTo(OutputArray dst, int rtype, double alpha, Stream& stream) const; + + //! converts GpuMat to another datatype with scaling (Non-Blocking call) + CV_WRAP void convertTo(OutputArray dst, int rtype, double alpha, double beta, Stream& stream) const; + + CV_WRAP void assignTo(GpuMat& m, int type = -1) const; + + //! returns pointer to y-th row + uchar* ptr(int y = 0); + const uchar* ptr(int y = 0) const; + + //! template version of the above method + template _Tp* ptr(int y = 0); + template const _Tp* ptr(int y = 0) const; + + template operator PtrStepSz<_Tp>() const; + template operator PtrStep<_Tp>() const; + + //! returns a new GpuMat header for the specified row + CV_WRAP GpuMat row(int y) const; + + //! returns a new GpuMat header for the specified column + CV_WRAP GpuMat col(int x) const; + + //! ... for the specified row span + CV_WRAP GpuMat rowRange(int startrow, int endrow) const; + CV_WRAP GpuMat rowRange(Range r) const; + + //! ... for the specified column span + CV_WRAP GpuMat colRange(int startcol, int endcol) const; + CV_WRAP GpuMat colRange(Range r) const; + + //! extracts a rectangular sub-GpuMat (this is a generalized form of row, rowRange etc.) + GpuMat operator ()(Range rowRange, Range colRange) const; + GpuMat operator ()(Rect roi) const; + + //! creates alternative GpuMat header for the same data, with different + //! number of channels and/or different number of rows + CV_WRAP GpuMat reshape(int cn, int rows = 0) const; + + //! locates GpuMat header within a parent GpuMat + CV_WRAP void locateROI(Size& wholeSize, Point& ofs) const; + + //! moves/resizes the current GpuMat ROI inside the parent GpuMat + CV_WRAP GpuMat& adjustROI(int dtop, int dbottom, int dleft, int dright); + + //! returns true iff the GpuMat data is continuous + //! (i.e. when there are no gaps between successive rows) + CV_WRAP bool isContinuous() const; + + //! returns element size in bytes + CV_WRAP size_t elemSize() const; + + //! returns the size of element channel in bytes + CV_WRAP size_t elemSize1() const; + + //! returns element type + CV_WRAP int type() const; + + //! returns element type + CV_WRAP int depth() const; + + //! returns number of channels + CV_WRAP int channels() const; + + //! returns step/elemSize1() + CV_WRAP size_t step1() const; + + //! returns GpuMat size : width == number of columns, height == number of rows + CV_WRAP Size size() const; + + //! returns true if GpuMat data is NULL + CV_WRAP bool empty() const; + + //! internal use method: updates the continuity flag + CV_WRAP void updateContinuityFlag(); + + /*! includes several bit-fields: + - the magic signature + - continuity flag + - depth + - number of channels + */ + int flags; + + //! the number of rows and columns + int rows, cols; + + //! a distance between successive rows in bytes; includes the gap if any + CV_PROP size_t step; + + //! pointer to the data + uchar* data; + + //! pointer to the reference counter; + //! when GpuMat points to user-allocated data, the pointer is NULL + int* refcount; + + //! helper fields used in locateROI and adjustROI + uchar* datastart; + const uchar* dataend; + + //! allocator + Allocator* allocator; +}; + +/** @brief Creates a continuous matrix. + +@param rows Row count. +@param cols Column count. +@param type Type of the matrix. +@param arr Destination matrix. This parameter changes only if it has a proper type and area ( +\f$\texttt{rows} \times \texttt{cols}\f$ ). + +Matrix is called continuous if its elements are stored continuously, that is, without gaps at the +end of each row. + */ +CV_EXPORTS_W void createContinuous(int rows, int cols, int type, OutputArray arr); + +/** @brief Ensures that the size of a matrix is big enough and the matrix has a proper type. + +@param rows Minimum desired number of rows. +@param cols Minimum desired number of columns. +@param type Desired matrix type. +@param arr Destination matrix. + +The function does not reallocate memory if the matrix has proper attributes already. + */ +CV_EXPORTS_W void ensureSizeIsEnough(int rows, int cols, int type, OutputArray arr); + +/** @brief BufferPool for use with CUDA streams + +BufferPool utilizes Stream's allocator to create new buffers for GpuMat's. It is +only useful when enabled with #setBufferPoolUsage. + +@code + setBufferPoolUsage(true); +@endcode + +@note #setBufferPoolUsage must be called \em before any Stream declaration. + +Users may specify custom allocator for Stream and may implement their own stream based +functions utilizing the same underlying GPU memory management. + +If custom allocator is not specified, BufferPool utilizes StackAllocator by +default. StackAllocator allocates a chunk of GPU device memory beforehand, +and when GpuMat is declared later on, it is given the pre-allocated memory. +This kind of strategy reduces the number of calls for memory allocating APIs +such as cudaMalloc or cudaMallocPitch. + +Below is an example that utilizes BufferPool with StackAllocator: + +@code + #include + + using namespace cv; + using namespace cv::cuda + + int main() + { + setBufferPoolUsage(true); // Tell OpenCV that we are going to utilize BufferPool + setBufferPoolConfig(getDevice(), 1024 * 1024 * 64, 2); // Allocate 64 MB, 2 stacks (default is 10 MB, 5 stacks) + + Stream stream1, stream2; // Each stream uses 1 stack + BufferPool pool1(stream1), pool2(stream2); + + GpuMat d_src1 = pool1.getBuffer(4096, 4096, CV_8UC1); // 16MB + GpuMat d_dst1 = pool1.getBuffer(4096, 4096, CV_8UC3); // 48MB, pool1 is now full + + GpuMat d_src2 = pool2.getBuffer(1024, 1024, CV_8UC1); // 1MB + GpuMat d_dst2 = pool2.getBuffer(1024, 1024, CV_8UC3); // 3MB + + cvtColor(d_src1, d_dst1, CV_GRAY2BGR, 0, stream1); + cvtColor(d_src2, d_dst2, CV_GRAY2BGR, 0, stream2); + } +@endcode + +If we allocate another GpuMat on pool1 in the above example, it will be carried out by +the DefaultAllocator since the stack for pool1 is full. + +@code + GpuMat d_add1 = pool1.getBuffer(1024, 1024, CV_8UC1); // Stack for pool1 is full, memory is allocated with DefaultAllocator +@endcode + +If a third stream is declared in the above example, allocating with #getBuffer +within that stream will also be carried out by the DefaultAllocator because we've run out of +stacks. + +@code + Stream stream3; // Only 2 stacks were allocated, we've run out of stacks + BufferPool pool3(stream3); + GpuMat d_src3 = pool3.getBuffer(1024, 1024, CV_8UC1); // Memory is allocated with DefaultAllocator +@endcode + +@warning When utilizing StackAllocator, deallocation order is important. + +Just like a stack, deallocation must be done in LIFO order. Below is an example of +erroneous usage that violates LIFO rule. If OpenCV is compiled in Debug mode, this +sample code will emit CV_Assert error. + +@code + int main() + { + setBufferPoolUsage(true); // Tell OpenCV that we are going to utilize BufferPool + Stream stream; // A default size (10 MB) stack is allocated to this stream + BufferPool pool(stream); + + GpuMat mat1 = pool.getBuffer(1024, 1024, CV_8UC1); // Allocate mat1 (1MB) + GpuMat mat2 = pool.getBuffer(1024, 1024, CV_8UC1); // Allocate mat2 (1MB) + + mat1.release(); // erroneous usage : mat2 must be deallocated before mat1 + } +@endcode + +Since C++ local variables are destroyed in the reverse order of construction, +the code sample below satisfies the LIFO rule. Local GpuMat's are deallocated +and the corresponding memory is automatically returned to the pool for later usage. + +@code + int main() + { + setBufferPoolUsage(true); // Tell OpenCV that we are going to utilize BufferPool + setBufferPoolConfig(getDevice(), 1024 * 1024 * 64, 2); // Allocate 64 MB, 2 stacks (default is 10 MB, 5 stacks) + + Stream stream1, stream2; // Each stream uses 1 stack + BufferPool pool1(stream1), pool2(stream2); + + for (int i = 0; i < 10; i++) + { + GpuMat d_src1 = pool1.getBuffer(4096, 4096, CV_8UC1); // 16MB + GpuMat d_dst1 = pool1.getBuffer(4096, 4096, CV_8UC3); // 48MB, pool1 is now full + + GpuMat d_src2 = pool2.getBuffer(1024, 1024, CV_8UC1); // 1MB + GpuMat d_dst2 = pool2.getBuffer(1024, 1024, CV_8UC3); // 3MB + + d_src1.setTo(Scalar(i), stream1); + d_src2.setTo(Scalar(i), stream2); + + cvtColor(d_src1, d_dst1, CV_GRAY2BGR, 0, stream1); + cvtColor(d_src2, d_dst2, CV_GRAY2BGR, 0, stream2); + // The order of destruction of the local variables is: + // d_dst2 => d_src2 => d_dst1 => d_src1 + // LIFO rule is satisfied, this code runs without error + } + } +@endcode + */ +class CV_EXPORTS_W BufferPool +{ +public: + + //! Gets the BufferPool for the given stream. + explicit BufferPool(Stream& stream); + + //! Allocates a new GpuMat of given size and type. + CV_WRAP GpuMat getBuffer(int rows, int cols, int type); + + //! Allocates a new GpuMat of given size and type. + CV_WRAP GpuMat getBuffer(Size size, int type) { return getBuffer(size.height, size.width, type); } + + //! Returns the allocator associated with the stream. + CV_WRAP Ptr getAllocator() const { return allocator_; } + +private: + Ptr allocator_; +}; + +//! BufferPool management (must be called before Stream creation) +CV_EXPORTS_W void setBufferPoolUsage(bool on); +CV_EXPORTS_W void setBufferPoolConfig(int deviceId, size_t stackSize, int stackCount); + +//=================================================================================== +// HostMem +//=================================================================================== + +/** @brief Class with reference counting wrapping special memory type allocation functions from CUDA. + +Its interface is also Mat-like but with additional memory type parameters. + +- **PAGE_LOCKED** sets a page locked memory type used commonly for fast and asynchronous + uploading/downloading data from/to GPU. +- **SHARED** specifies a zero copy memory allocation that enables mapping the host memory to GPU + address space, if supported. +- **WRITE_COMBINED** sets the write combined buffer that is not cached by CPU. Such buffers are + used to supply GPU with data when GPU only reads it. The advantage is a better CPU cache + utilization. + +@note Allocation size of such memory types is usually limited. For more details, see *CUDA 2.2 +Pinned Memory APIs* document or *CUDA C Programming Guide*. + */ +class CV_EXPORTS_W HostMem +{ +public: + enum AllocType { PAGE_LOCKED = 1, SHARED = 2, WRITE_COMBINED = 4 }; + + static MatAllocator* getAllocator(HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED); + + CV_WRAP explicit HostMem(HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED); + + HostMem(const HostMem& m); + + CV_WRAP HostMem(int rows, int cols, int type, HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED); + CV_WRAP HostMem(Size size, int type, HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED); + + //! creates from host memory with coping data + CV_WRAP explicit HostMem(InputArray arr, HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED); + + ~HostMem(); + + HostMem& operator =(const HostMem& m); + + //! swaps with other smart pointer + CV_WRAP void swap(HostMem& b); + + //! returns deep copy of the matrix, i.e. the data is copied + CV_WRAP HostMem clone() const; + + //! allocates new matrix data unless the matrix already has specified size and type. + CV_WRAP void create(int rows, int cols, int type); + void create(Size size, int type); + + //! creates alternative HostMem header for the same data, with different + //! number of channels and/or different number of rows + CV_WRAP HostMem reshape(int cn, int rows = 0) const; + + //! decrements reference counter and released memory if needed. + void release(); + + //! returns matrix header with disabled reference counting for HostMem data. + CV_WRAP Mat createMatHeader() const; + + /** @brief Maps CPU memory to GPU address space and creates the cuda::GpuMat header without reference counting + for it. + + This can be done only if memory was allocated with the SHARED flag and if it is supported by the + hardware. Laptops often share video and CPU memory, so address spaces can be mapped, which + eliminates an extra copy. + */ + GpuMat createGpuMatHeader() const; + + // Please see cv::Mat for descriptions + CV_WRAP bool isContinuous() const; + CV_WRAP size_t elemSize() const; + CV_WRAP size_t elemSize1() const; + CV_WRAP int type() const; + CV_WRAP int depth() const; + CV_WRAP int channels() const; + CV_WRAP size_t step1() const; + CV_WRAP Size size() const; + CV_WRAP bool empty() const; + + // Please see cv::Mat for descriptions + int flags; + int rows, cols; + CV_PROP size_t step; + + uchar* data; + int* refcount; + + uchar* datastart; + const uchar* dataend; + + AllocType alloc_type; +}; + +/** @brief Page-locks the memory of matrix and maps it for the device(s). + +@param m Input matrix. + */ +CV_EXPORTS_W void registerPageLocked(Mat& m); + +/** @brief Unmaps the memory of matrix and makes it pageable again. + +@param m Input matrix. + */ +CV_EXPORTS_W void unregisterPageLocked(Mat& m); + +//=================================================================================== +// Stream +//=================================================================================== + +/** @brief This class encapsulates a queue of asynchronous calls. + +@note Currently, you may face problems if an operation is enqueued twice with different data. Some +functions use the constant GPU memory, and next call may update the memory before the previous one +has been finished. But calling different operations asynchronously is safe because each operation +has its own constant buffer. Memory copy/upload/download/set operations to the buffers you hold are +also safe. + +@note The Stream class is not thread-safe. Please use different Stream objects for different CPU threads. + +@code +void thread1() +{ + cv::cuda::Stream stream1; + cv::cuda::func1(..., stream1); +} + +void thread2() +{ + cv::cuda::Stream stream2; + cv::cuda::func2(..., stream2); +} +@endcode + +@note By default all CUDA routines are launched in Stream::Null() object, if the stream is not specified by user. +In multi-threading environment the stream objects must be passed explicitly (see previous note). + */ +class CV_EXPORTS_W Stream +{ + typedef void (Stream::*bool_type)() const; + void this_type_does_not_support_comparisons() const {} + +public: + typedef void (*StreamCallback)(int status, void* userData); + + //! creates a new asynchronous stream + CV_WRAP Stream(); + + //! creates a new asynchronous stream with custom allocator + CV_WRAP Stream(const Ptr& allocator); + + /** @brief Returns true if the current stream queue is finished. Otherwise, it returns false. + */ + CV_WRAP bool queryIfComplete() const; + + /** @brief Blocks the current CPU thread until all operations in the stream are complete. + */ + CV_WRAP void waitForCompletion(); + + /** @brief Makes a compute stream wait on an event. + */ + CV_WRAP void waitEvent(const Event& event); + + /** @brief Adds a callback to be called on the host after all currently enqueued items in the stream have + completed. + + @note Callbacks must not make any CUDA API calls. Callbacks must not perform any synchronization + that may depend on outstanding device work or other callbacks that are not mandated to run earlier. + Callbacks without a mandated order (in independent streams) execute in undefined order and may be + serialized. + */ + void enqueueHostCallback(StreamCallback callback, void* userData); + + //! return Stream object for default CUDA stream + CV_WRAP static Stream& Null(); + + //! returns true if stream object is not default (!= 0) + operator bool_type() const; + + class Impl; + +private: + Ptr impl_; + Stream(const Ptr& impl); + + friend struct StreamAccessor; + friend class BufferPool; + friend class DefaultDeviceInitializer; +}; + +class CV_EXPORTS_W Event +{ +public: + enum CreateFlags + { + DEFAULT = 0x00, /**< Default event flag */ + BLOCKING_SYNC = 0x01, /**< Event uses blocking synchronization */ + DISABLE_TIMING = 0x02, /**< Event will not record timing data */ + INTERPROCESS = 0x04 /**< Event is suitable for interprocess use. DisableTiming must be set */ + }; + + CV_WRAP explicit Event(Event::CreateFlags flags = Event::CreateFlags::DEFAULT); + + //! records an event + CV_WRAP void record(Stream& stream = Stream::Null()); + + //! queries an event's status + CV_WRAP bool queryIfComplete() const; + + //! waits for an event to complete + CV_WRAP void waitForCompletion(); + + //! computes the elapsed time between events + CV_WRAP static float elapsedTime(const Event& start, const Event& end); + + class Impl; + +private: + Ptr impl_; + Event(const Ptr& impl); + + friend struct EventAccessor; +}; + +//! @} cudacore_struct + +//=================================================================================== +// Initialization & Info +//=================================================================================== + +//! @addtogroup cudacore_init +//! @{ + +/** @brief Returns the number of installed CUDA-enabled devices. + +Use this function before any other CUDA functions calls. If OpenCV is compiled without CUDA support, +this function returns 0. If the CUDA driver is not installed, or is incompatible, this function +returns -1. + */ +CV_EXPORTS_W int getCudaEnabledDeviceCount(); + +/** @brief Sets a device and initializes it for the current thread. + +@param device System index of a CUDA device starting with 0. + +If the call of this function is omitted, a default device is initialized at the fist CUDA usage. + */ +CV_EXPORTS_W void setDevice(int device); + +/** @brief Returns the current device index set by cuda::setDevice or initialized by default. + */ +CV_EXPORTS_W int getDevice(); + +/** @brief Explicitly destroys and cleans up all resources associated with the current device in the current +process. + +Any subsequent API call to this device will reinitialize the device. + */ +CV_EXPORTS_W void resetDevice(); + +/** @brief Enumeration providing CUDA computing features. + */ +enum FeatureSet +{ + FEATURE_SET_COMPUTE_10 = 10, + FEATURE_SET_COMPUTE_11 = 11, + FEATURE_SET_COMPUTE_12 = 12, + FEATURE_SET_COMPUTE_13 = 13, + FEATURE_SET_COMPUTE_20 = 20, + FEATURE_SET_COMPUTE_21 = 21, + FEATURE_SET_COMPUTE_30 = 30, + FEATURE_SET_COMPUTE_32 = 32, + FEATURE_SET_COMPUTE_35 = 35, + FEATURE_SET_COMPUTE_50 = 50, + + GLOBAL_ATOMICS = FEATURE_SET_COMPUTE_11, + SHARED_ATOMICS = FEATURE_SET_COMPUTE_12, + NATIVE_DOUBLE = FEATURE_SET_COMPUTE_13, + WARP_SHUFFLE_FUNCTIONS = FEATURE_SET_COMPUTE_30, + DYNAMIC_PARALLELISM = FEATURE_SET_COMPUTE_35 +}; + +//! checks whether current device supports the given feature +CV_EXPORTS bool deviceSupports(FeatureSet feature_set); + +/** @brief Class providing a set of static methods to check what NVIDIA\* card architecture the CUDA module was +built for. + +According to the CUDA C Programming Guide Version 3.2: "PTX code produced for some specific compute +capability can always be compiled to binary code of greater or equal compute capability". + */ +class CV_EXPORTS_W TargetArchs +{ +public: + /** @brief The following method checks whether the module was built with the support of the given feature: + + @param feature_set Features to be checked. See :ocvcuda::FeatureSet. + */ + static bool builtWith(FeatureSet feature_set); + + /** @brief There is a set of methods to check whether the module contains intermediate (PTX) or binary CUDA + code for the given architecture(s): + + @param major Major compute capability version. + @param minor Minor compute capability version. + */ + CV_WRAP static bool has(int major, int minor); + CV_WRAP static bool hasPtx(int major, int minor); + CV_WRAP static bool hasBin(int major, int minor); + + CV_WRAP static bool hasEqualOrLessPtx(int major, int minor); + CV_WRAP static bool hasEqualOrGreater(int major, int minor); + CV_WRAP static bool hasEqualOrGreaterPtx(int major, int minor); + CV_WRAP static bool hasEqualOrGreaterBin(int major, int minor); +}; + +/** @brief Class providing functionality for querying the specified GPU properties. + */ +class CV_EXPORTS_W DeviceInfo +{ +public: + //! creates DeviceInfo object for the current GPU + CV_WRAP DeviceInfo(); + + /** @brief The constructors. + + @param device_id System index of the CUDA device starting with 0. + + Constructs the DeviceInfo object for the specified device. If device_id parameter is missed, it + constructs an object for the current device. + */ + CV_WRAP DeviceInfo(int device_id); + + /** @brief Returns system index of the CUDA device starting with 0. + */ + CV_WRAP int deviceID() const; + + //! ASCII string identifying device + const char* name() const; + + //! global memory available on device in bytes + CV_WRAP size_t totalGlobalMem() const; + + //! shared memory available per block in bytes + CV_WRAP size_t sharedMemPerBlock() const; + + //! 32-bit registers available per block + CV_WRAP int regsPerBlock() const; + + //! warp size in threads + CV_WRAP int warpSize() const; + + //! maximum pitch in bytes allowed by memory copies + CV_WRAP size_t memPitch() const; + + //! maximum number of threads per block + CV_WRAP int maxThreadsPerBlock() const; + + //! maximum size of each dimension of a block + CV_WRAP Vec3i maxThreadsDim() const; + + //! maximum size of each dimension of a grid + CV_WRAP Vec3i maxGridSize() const; + + //! clock frequency in kilohertz + CV_WRAP int clockRate() const; + + //! constant memory available on device in bytes + CV_WRAP size_t totalConstMem() const; + + //! major compute capability + CV_WRAP int majorVersion() const; + + //! minor compute capability + CV_WRAP int minorVersion() const; + + //! alignment requirement for textures + CV_WRAP size_t textureAlignment() const; + + //! pitch alignment requirement for texture references bound to pitched memory + CV_WRAP size_t texturePitchAlignment() const; + + //! number of multiprocessors on device + CV_WRAP int multiProcessorCount() const; + + //! specified whether there is a run time limit on kernels + CV_WRAP bool kernelExecTimeoutEnabled() const; + + //! device is integrated as opposed to discrete + CV_WRAP bool integrated() const; + + //! device can map host memory with cudaHostAlloc/cudaHostGetDevicePointer + CV_WRAP bool canMapHostMemory() const; + + enum ComputeMode + { + ComputeModeDefault, /**< default compute mode (Multiple threads can use cudaSetDevice with this device) */ + ComputeModeExclusive, /**< compute-exclusive-thread mode (Only one thread in one process will be able to use cudaSetDevice with this device) */ + ComputeModeProhibited, /**< compute-prohibited mode (No threads can use cudaSetDevice with this device) */ + ComputeModeExclusiveProcess /**< compute-exclusive-process mode (Many threads in one process will be able to use cudaSetDevice with this device) */ + }; + + //! compute mode + CV_WRAP DeviceInfo::ComputeMode computeMode() const; + + //! maximum 1D texture size + CV_WRAP int maxTexture1D() const; + + //! maximum 1D mipmapped texture size + CV_WRAP int maxTexture1DMipmap() const; + + //! maximum size for 1D textures bound to linear memory + CV_WRAP int maxTexture1DLinear() const; + + //! maximum 2D texture dimensions + CV_WRAP Vec2i maxTexture2D() const; + + //! maximum 2D mipmapped texture dimensions + CV_WRAP Vec2i maxTexture2DMipmap() const; + + //! maximum dimensions (width, height, pitch) for 2D textures bound to pitched memory + CV_WRAP Vec3i maxTexture2DLinear() const; + + //! maximum 2D texture dimensions if texture gather operations have to be performed + CV_WRAP Vec2i maxTexture2DGather() const; + + //! maximum 3D texture dimensions + CV_WRAP Vec3i maxTexture3D() const; + + //! maximum Cubemap texture dimensions + CV_WRAP int maxTextureCubemap() const; + + //! maximum 1D layered texture dimensions + CV_WRAP Vec2i maxTexture1DLayered() const; + + //! maximum 2D layered texture dimensions + CV_WRAP Vec3i maxTexture2DLayered() const; + + //! maximum Cubemap layered texture dimensions + CV_WRAP Vec2i maxTextureCubemapLayered() const; + + //! maximum 1D surface size + CV_WRAP int maxSurface1D() const; + + //! maximum 2D surface dimensions + CV_WRAP Vec2i maxSurface2D() const; + + //! maximum 3D surface dimensions + CV_WRAP Vec3i maxSurface3D() const; + + //! maximum 1D layered surface dimensions + CV_WRAP Vec2i maxSurface1DLayered() const; + + //! maximum 2D layered surface dimensions + CV_WRAP Vec3i maxSurface2DLayered() const; + + //! maximum Cubemap surface dimensions + CV_WRAP int maxSurfaceCubemap() const; + + //! maximum Cubemap layered surface dimensions + CV_WRAP Vec2i maxSurfaceCubemapLayered() const; + + //! alignment requirements for surfaces + CV_WRAP size_t surfaceAlignment() const; + + //! device can possibly execute multiple kernels concurrently + CV_WRAP bool concurrentKernels() const; + + //! device has ECC support enabled + CV_WRAP bool ECCEnabled() const; + + //! PCI bus ID of the device + CV_WRAP int pciBusID() const; + + //! PCI device ID of the device + CV_WRAP int pciDeviceID() const; + + //! PCI domain ID of the device + CV_WRAP int pciDomainID() const; + + //! true if device is a Tesla device using TCC driver, false otherwise + CV_WRAP bool tccDriver() const; + + //! number of asynchronous engines + CV_WRAP int asyncEngineCount() const; + + //! device shares a unified address space with the host + CV_WRAP bool unifiedAddressing() const; + + //! peak memory clock frequency in kilohertz + CV_WRAP int memoryClockRate() const; + + //! global memory bus width in bits + CV_WRAP int memoryBusWidth() const; + + //! size of L2 cache in bytes + CV_WRAP int l2CacheSize() const; + + //! maximum resident threads per multiprocessor + CV_WRAP int maxThreadsPerMultiProcessor() const; + + //! gets free and total device memory + CV_WRAP void queryMemory(size_t& totalMemory, size_t& freeMemory) const; + CV_WRAP size_t freeMemory() const; + CV_WRAP size_t totalMemory() const; + + /** @brief Provides information on CUDA feature support. + + @param feature_set Features to be checked. See cuda::FeatureSet. + + This function returns true if the device has the specified CUDA feature. Otherwise, it returns false + */ + bool supports(FeatureSet feature_set) const; + + /** @brief Checks the CUDA module and device compatibility. + + This function returns true if the CUDA module can be run on the specified device. Otherwise, it + returns false . + */ + CV_WRAP bool isCompatible() const; + +private: + int device_id_; +}; + +CV_EXPORTS_W void printCudaDeviceInfo(int device); +CV_EXPORTS_W void printShortCudaDeviceInfo(int device); + +/** @brief Converts an array to half precision floating number. + +@param _src input array. +@param _dst output array. +@param stream Stream for the asynchronous version. +@sa convertFp16 +*/ +CV_EXPORTS void convertFp16(InputArray _src, OutputArray _dst, Stream& stream = Stream::Null()); + +//! @} cudacore_init + +}} // namespace cv { namespace cuda { + + +#include "opencv2/core/cuda.inl.hpp" + +#endif /* OPENCV_CORE_CUDA_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda.inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda.inl.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda.inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/cuda.inl.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/block.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/block.hpp new file mode 100644 index 000000000..c277f0ea9 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/block.hpp @@ -0,0 +1,211 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_DEVICE_BLOCK_HPP +#define OPENCV_CUDA_DEVICE_BLOCK_HPP + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + struct Block + { + static __device__ __forceinline__ unsigned int id() + { + return blockIdx.x; + } + + static __device__ __forceinline__ unsigned int stride() + { + return blockDim.x * blockDim.y * blockDim.z; + } + + static __device__ __forceinline__ void sync() + { + __syncthreads(); + } + + static __device__ __forceinline__ int flattenedThreadId() + { + return threadIdx.z * blockDim.x * blockDim.y + threadIdx.y * blockDim.x + threadIdx.x; + } + + template + static __device__ __forceinline__ void fill(It beg, It end, const T& value) + { + int STRIDE = stride(); + It t = beg + flattenedThreadId(); + + for(; t < end; t += STRIDE) + *t = value; + } + + template + static __device__ __forceinline__ void yota(OutIt beg, OutIt end, T value) + { + int STRIDE = stride(); + int tid = flattenedThreadId(); + value += tid; + + for(OutIt t = beg + tid; t < end; t += STRIDE, value += STRIDE) + *t = value; + } + + template + static __device__ __forceinline__ void copy(InIt beg, InIt end, OutIt out) + { + int STRIDE = stride(); + InIt t = beg + flattenedThreadId(); + OutIt o = out + (t - beg); + + for(; t < end; t += STRIDE, o += STRIDE) + *o = *t; + } + + template + static __device__ __forceinline__ void transform(InIt beg, InIt end, OutIt out, UnOp op) + { + int STRIDE = stride(); + InIt t = beg + flattenedThreadId(); + OutIt o = out + (t - beg); + + for(; t < end; t += STRIDE, o += STRIDE) + *o = op(*t); + } + + template + static __device__ __forceinline__ void transform(InIt1 beg1, InIt1 end1, InIt2 beg2, OutIt out, BinOp op) + { + int STRIDE = stride(); + InIt1 t1 = beg1 + flattenedThreadId(); + InIt2 t2 = beg2 + flattenedThreadId(); + OutIt o = out + (t1 - beg1); + + for(; t1 < end1; t1 += STRIDE, t2 += STRIDE, o += STRIDE) + *o = op(*t1, *t2); + } + + template + static __device__ __forceinline__ void reduce(volatile T* buffer, BinOp op) + { + int tid = flattenedThreadId(); + T val = buffer[tid]; + + if (CTA_SIZE >= 1024) { if (tid < 512) buffer[tid] = val = op(val, buffer[tid + 512]); __syncthreads(); } + if (CTA_SIZE >= 512) { if (tid < 256) buffer[tid] = val = op(val, buffer[tid + 256]); __syncthreads(); } + if (CTA_SIZE >= 256) { if (tid < 128) buffer[tid] = val = op(val, buffer[tid + 128]); __syncthreads(); } + if (CTA_SIZE >= 128) { if (tid < 64) buffer[tid] = val = op(val, buffer[tid + 64]); __syncthreads(); } + + if (tid < 32) + { + if (CTA_SIZE >= 64) { buffer[tid] = val = op(val, buffer[tid + 32]); } + if (CTA_SIZE >= 32) { buffer[tid] = val = op(val, buffer[tid + 16]); } + if (CTA_SIZE >= 16) { buffer[tid] = val = op(val, buffer[tid + 8]); } + if (CTA_SIZE >= 8) { buffer[tid] = val = op(val, buffer[tid + 4]); } + if (CTA_SIZE >= 4) { buffer[tid] = val = op(val, buffer[tid + 2]); } + if (CTA_SIZE >= 2) { buffer[tid] = val = op(val, buffer[tid + 1]); } + } + } + + template + static __device__ __forceinline__ T reduce(volatile T* buffer, T init, BinOp op) + { + int tid = flattenedThreadId(); + T val = buffer[tid] = init; + __syncthreads(); + + if (CTA_SIZE >= 1024) { if (tid < 512) buffer[tid] = val = op(val, buffer[tid + 512]); __syncthreads(); } + if (CTA_SIZE >= 512) { if (tid < 256) buffer[tid] = val = op(val, buffer[tid + 256]); __syncthreads(); } + if (CTA_SIZE >= 256) { if (tid < 128) buffer[tid] = val = op(val, buffer[tid + 128]); __syncthreads(); } + if (CTA_SIZE >= 128) { if (tid < 64) buffer[tid] = val = op(val, buffer[tid + 64]); __syncthreads(); } + + if (tid < 32) + { + if (CTA_SIZE >= 64) { buffer[tid] = val = op(val, buffer[tid + 32]); } + if (CTA_SIZE >= 32) { buffer[tid] = val = op(val, buffer[tid + 16]); } + if (CTA_SIZE >= 16) { buffer[tid] = val = op(val, buffer[tid + 8]); } + if (CTA_SIZE >= 8) { buffer[tid] = val = op(val, buffer[tid + 4]); } + if (CTA_SIZE >= 4) { buffer[tid] = val = op(val, buffer[tid + 2]); } + if (CTA_SIZE >= 2) { buffer[tid] = val = op(val, buffer[tid + 1]); } + } + __syncthreads(); + return buffer[0]; + } + + template + static __device__ __forceinline__ void reduce_n(T* data, unsigned int n, BinOp op) + { + int ftid = flattenedThreadId(); + int sft = stride(); + + if (sft < n) + { + for (unsigned int i = sft + ftid; i < n; i += sft) + data[ftid] = op(data[ftid], data[i]); + + __syncthreads(); + + n = sft; + } + + while (n > 1) + { + unsigned int half = n/2; + + if (ftid < half) + data[ftid] = op(data[ftid], data[n - ftid - 1]); + + __syncthreads(); + + n = n - half; + } + } + }; +}}} + +//! @endcond + +#endif /* OPENCV_CUDA_DEVICE_BLOCK_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/border_interpolate.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/border_interpolate.hpp new file mode 100644 index 000000000..874f705ba --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/border_interpolate.hpp @@ -0,0 +1,722 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_BORDER_INTERPOLATE_HPP +#define OPENCV_CUDA_BORDER_INTERPOLATE_HPP + +#include "saturate_cast.hpp" +#include "vec_traits.hpp" +#include "vec_math.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + ////////////////////////////////////////////////////////////// + // BrdConstant + + template struct BrdRowConstant + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdRowConstant(int width_, const D& val_ = VecTraits::all(0)) : width(width_), val(val_) {} + + template __device__ __forceinline__ D at_low(int x, const T* data) const + { + return x >= 0 ? saturate_cast(data[x]) : val; + } + + template __device__ __forceinline__ D at_high(int x, const T* data) const + { + return x < width ? saturate_cast(data[x]) : val; + } + + template __device__ __forceinline__ D at(int x, const T* data) const + { + return (x >= 0 && x < width) ? saturate_cast(data[x]) : val; + } + + int width; + D val; + }; + + template struct BrdColConstant + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdColConstant(int height_, const D& val_ = VecTraits::all(0)) : height(height_), val(val_) {} + + template __device__ __forceinline__ D at_low(int y, const T* data, size_t step) const + { + return y >= 0 ? saturate_cast(*(const T*)((const char*)data + y * step)) : val; + } + + template __device__ __forceinline__ D at_high(int y, const T* data, size_t step) const + { + return y < height ? saturate_cast(*(const T*)((const char*)data + y * step)) : val; + } + + template __device__ __forceinline__ D at(int y, const T* data, size_t step) const + { + return (y >= 0 && y < height) ? saturate_cast(*(const T*)((const char*)data + y * step)) : val; + } + + int height; + D val; + }; + + template struct BrdConstant + { + typedef D result_type; + + __host__ __device__ __forceinline__ BrdConstant(int height_, int width_, const D& val_ = VecTraits::all(0)) : height(height_), width(width_), val(val_) + { + } + + template __device__ __forceinline__ D at(int y, int x, const T* data, size_t step) const + { + return (x >= 0 && x < width && y >= 0 && y < height) ? saturate_cast(((const T*)((const uchar*)data + y * step))[x]) : val; + } + + template __device__ __forceinline__ D at(typename Ptr2D::index_type y, typename Ptr2D::index_type x, const Ptr2D& src) const + { + return (x >= 0 && x < width && y >= 0 && y < height) ? saturate_cast(src(y, x)) : val; + } + + int height; + int width; + D val; + }; + + ////////////////////////////////////////////////////////////// + // BrdReplicate + + template struct BrdRowReplicate + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdRowReplicate(int width) : last_col(width - 1) {} + template __host__ __device__ __forceinline__ BrdRowReplicate(int width, U) : last_col(width - 1) {} + + __device__ __forceinline__ int idx_col_low(int x) const + { + return ::max(x, 0); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return ::min(x, last_col); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_low(idx_col_high(x)); + } + + template __device__ __forceinline__ D at_low(int x, const T* data) const + { + return saturate_cast(data[idx_col_low(x)]); + } + + template __device__ __forceinline__ D at_high(int x, const T* data) const + { + return saturate_cast(data[idx_col_high(x)]); + } + + template __device__ __forceinline__ D at(int x, const T* data) const + { + return saturate_cast(data[idx_col(x)]); + } + + int last_col; + }; + + template struct BrdColReplicate + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdColReplicate(int height) : last_row(height - 1) {} + template __host__ __device__ __forceinline__ BrdColReplicate(int height, U) : last_row(height - 1) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return ::max(y, 0); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return ::min(y, last_row); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_low(idx_row_high(y)); + } + + template __device__ __forceinline__ D at_low(int y, const T* data, size_t step) const + { + return saturate_cast(*(const T*)((const char*)data + idx_row_low(y) * step)); + } + + template __device__ __forceinline__ D at_high(int y, const T* data, size_t step) const + { + return saturate_cast(*(const T*)((const char*)data + idx_row_high(y) * step)); + } + + template __device__ __forceinline__ D at(int y, const T* data, size_t step) const + { + return saturate_cast(*(const T*)((const char*)data + idx_row(y) * step)); + } + + int last_row; + }; + + template struct BrdReplicate + { + typedef D result_type; + + __host__ __device__ __forceinline__ BrdReplicate(int height, int width) : last_row(height - 1), last_col(width - 1) {} + template __host__ __device__ __forceinline__ BrdReplicate(int height, int width, U) : last_row(height - 1), last_col(width - 1) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return ::max(y, 0); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return ::min(y, last_row); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_low(idx_row_high(y)); + } + + __device__ __forceinline__ int idx_col_low(int x) const + { + return ::max(x, 0); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return ::min(x, last_col); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_low(idx_col_high(x)); + } + + template __device__ __forceinline__ D at(int y, int x, const T* data, size_t step) const + { + return saturate_cast(((const T*)((const char*)data + idx_row(y) * step))[idx_col(x)]); + } + + template __device__ __forceinline__ D at(typename Ptr2D::index_type y, typename Ptr2D::index_type x, const Ptr2D& src) const + { + return saturate_cast(src(idx_row(y), idx_col(x))); + } + + int last_row; + int last_col; + }; + + ////////////////////////////////////////////////////////////// + // BrdReflect101 + + template struct BrdRowReflect101 + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdRowReflect101(int width) : last_col(width - 1) {} + template __host__ __device__ __forceinline__ BrdRowReflect101(int width, U) : last_col(width - 1) {} + + __device__ __forceinline__ int idx_col_low(int x) const + { + return ::abs(x) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return ::abs(last_col - ::abs(last_col - x)) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_low(idx_col_high(x)); + } + + template __device__ __forceinline__ D at_low(int x, const T* data) const + { + return saturate_cast(data[idx_col_low(x)]); + } + + template __device__ __forceinline__ D at_high(int x, const T* data) const + { + return saturate_cast(data[idx_col_high(x)]); + } + + template __device__ __forceinline__ D at(int x, const T* data) const + { + return saturate_cast(data[idx_col(x)]); + } + + int last_col; + }; + + template struct BrdColReflect101 + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdColReflect101(int height) : last_row(height - 1) {} + template __host__ __device__ __forceinline__ BrdColReflect101(int height, U) : last_row(height - 1) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return ::abs(y) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return ::abs(last_row - ::abs(last_row - y)) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_low(idx_row_high(y)); + } + + template __device__ __forceinline__ D at_low(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row_low(y) * step)); + } + + template __device__ __forceinline__ D at_high(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row_high(y) * step)); + } + + template __device__ __forceinline__ D at(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row(y) * step)); + } + + int last_row; + }; + + template struct BrdReflect101 + { + typedef D result_type; + + __host__ __device__ __forceinline__ BrdReflect101(int height, int width) : last_row(height - 1), last_col(width - 1) {} + template __host__ __device__ __forceinline__ BrdReflect101(int height, int width, U) : last_row(height - 1), last_col(width - 1) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return ::abs(y) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return ::abs(last_row - ::abs(last_row - y)) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_low(idx_row_high(y)); + } + + __device__ __forceinline__ int idx_col_low(int x) const + { + return ::abs(x) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return ::abs(last_col - ::abs(last_col - x)) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_low(idx_col_high(x)); + } + + template __device__ __forceinline__ D at(int y, int x, const T* data, size_t step) const + { + return saturate_cast(((const T*)((const char*)data + idx_row(y) * step))[idx_col(x)]); + } + + template __device__ __forceinline__ D at(typename Ptr2D::index_type y, typename Ptr2D::index_type x, const Ptr2D& src) const + { + return saturate_cast(src(idx_row(y), idx_col(x))); + } + + int last_row; + int last_col; + }; + + ////////////////////////////////////////////////////////////// + // BrdReflect + + template struct BrdRowReflect + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdRowReflect(int width) : last_col(width - 1) {} + template __host__ __device__ __forceinline__ BrdRowReflect(int width, U) : last_col(width - 1) {} + + __device__ __forceinline__ int idx_col_low(int x) const + { + return (::abs(x) - (x < 0)) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return ::abs(last_col - ::abs(last_col - x) + (x > last_col)) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_high(::abs(x) - (x < 0)); + } + + template __device__ __forceinline__ D at_low(int x, const T* data) const + { + return saturate_cast(data[idx_col_low(x)]); + } + + template __device__ __forceinline__ D at_high(int x, const T* data) const + { + return saturate_cast(data[idx_col_high(x)]); + } + + template __device__ __forceinline__ D at(int x, const T* data) const + { + return saturate_cast(data[idx_col(x)]); + } + + int last_col; + }; + + template struct BrdColReflect + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdColReflect(int height) : last_row(height - 1) {} + template __host__ __device__ __forceinline__ BrdColReflect(int height, U) : last_row(height - 1) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return (::abs(y) - (y < 0)) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return ::abs(last_row - ::abs(last_row - y) + (y > last_row)) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_high(::abs(y) - (y < 0)); + } + + template __device__ __forceinline__ D at_low(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row_low(y) * step)); + } + + template __device__ __forceinline__ D at_high(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row_high(y) * step)); + } + + template __device__ __forceinline__ D at(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row(y) * step)); + } + + int last_row; + }; + + template struct BrdReflect + { + typedef D result_type; + + __host__ __device__ __forceinline__ BrdReflect(int height, int width) : last_row(height - 1), last_col(width - 1) {} + template __host__ __device__ __forceinline__ BrdReflect(int height, int width, U) : last_row(height - 1), last_col(width - 1) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return (::abs(y) - (y < 0)) % (last_row + 1); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return /*::abs*/(last_row - ::abs(last_row - y) + (y > last_row)) /*% (last_row + 1)*/; + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_low(idx_row_high(y)); + } + + __device__ __forceinline__ int idx_col_low(int x) const + { + return (::abs(x) - (x < 0)) % (last_col + 1); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return (last_col - ::abs(last_col - x) + (x > last_col)); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_low(idx_col_high(x)); + } + + template __device__ __forceinline__ D at(int y, int x, const T* data, size_t step) const + { + return saturate_cast(((const T*)((const char*)data + idx_row(y) * step))[idx_col(x)]); + } + + template __device__ __forceinline__ D at(typename Ptr2D::index_type y, typename Ptr2D::index_type x, const Ptr2D& src) const + { + return saturate_cast(src(idx_row(y), idx_col(x))); + } + + int last_row; + int last_col; + }; + + ////////////////////////////////////////////////////////////// + // BrdWrap + + template struct BrdRowWrap + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdRowWrap(int width_) : width(width_) {} + template __host__ __device__ __forceinline__ BrdRowWrap(int width_, U) : width(width_) {} + + __device__ __forceinline__ int idx_col_low(int x) const + { + return (x >= 0) * x + (x < 0) * (x - ((x - width + 1) / width) * width); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return (x < width) * x + (x >= width) * (x % width); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_high(idx_col_low(x)); + } + + template __device__ __forceinline__ D at_low(int x, const T* data) const + { + return saturate_cast(data[idx_col_low(x)]); + } + + template __device__ __forceinline__ D at_high(int x, const T* data) const + { + return saturate_cast(data[idx_col_high(x)]); + } + + template __device__ __forceinline__ D at(int x, const T* data) const + { + return saturate_cast(data[idx_col(x)]); + } + + int width; + }; + + template struct BrdColWrap + { + typedef D result_type; + + explicit __host__ __device__ __forceinline__ BrdColWrap(int height_) : height(height_) {} + template __host__ __device__ __forceinline__ BrdColWrap(int height_, U) : height(height_) {} + + __device__ __forceinline__ int idx_row_low(int y) const + { + return (y >= 0) * y + (y < 0) * (y - ((y - height + 1) / height) * height); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return (y < height) * y + (y >= height) * (y % height); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_high(idx_row_low(y)); + } + + template __device__ __forceinline__ D at_low(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row_low(y) * step)); + } + + template __device__ __forceinline__ D at_high(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row_high(y) * step)); + } + + template __device__ __forceinline__ D at(int y, const T* data, size_t step) const + { + return saturate_cast(*(const D*)((const char*)data + idx_row(y) * step)); + } + + int height; + }; + + template struct BrdWrap + { + typedef D result_type; + + __host__ __device__ __forceinline__ BrdWrap(int height_, int width_) : + height(height_), width(width_) + { + } + template + __host__ __device__ __forceinline__ BrdWrap(int height_, int width_, U) : + height(height_), width(width_) + { + } + + __device__ __forceinline__ int idx_row_low(int y) const + { + return (y >= 0) ? y : (y - ((y - height + 1) / height) * height); + } + + __device__ __forceinline__ int idx_row_high(int y) const + { + return (y < height) ? y : (y % height); + } + + __device__ __forceinline__ int idx_row(int y) const + { + return idx_row_high(idx_row_low(y)); + } + + __device__ __forceinline__ int idx_col_low(int x) const + { + return (x >= 0) ? x : (x - ((x - width + 1) / width) * width); + } + + __device__ __forceinline__ int idx_col_high(int x) const + { + return (x < width) ? x : (x % width); + } + + __device__ __forceinline__ int idx_col(int x) const + { + return idx_col_high(idx_col_low(x)); + } + + template __device__ __forceinline__ D at(int y, int x, const T* data, size_t step) const + { + return saturate_cast(((const T*)((const char*)data + idx_row(y) * step))[idx_col(x)]); + } + + template __device__ __forceinline__ D at(typename Ptr2D::index_type y, typename Ptr2D::index_type x, const Ptr2D& src) const + { + return saturate_cast(src(idx_row(y), idx_col(x))); + } + + int height; + int width; + }; + + ////////////////////////////////////////////////////////////// + // BorderReader + + template struct BorderReader + { + typedef typename B::result_type elem_type; + typedef typename Ptr2D::index_type index_type; + + __host__ __device__ __forceinline__ BorderReader(const Ptr2D& ptr_, const B& b_) : ptr(ptr_), b(b_) {} + + __device__ __forceinline__ elem_type operator ()(index_type y, index_type x) const + { + return b.at(y, x, ptr); + } + + Ptr2D ptr; + B b; + }; + + // under win32 there is some bug with templated types that passed as kernel parameters + // with this specialization all works fine + template struct BorderReader< Ptr2D, BrdConstant > + { + typedef typename BrdConstant::result_type elem_type; + typedef typename Ptr2D::index_type index_type; + + __host__ __device__ __forceinline__ BorderReader(const Ptr2D& src_, const BrdConstant& b) : + src(src_), height(b.height), width(b.width), val(b.val) + { + } + + __device__ __forceinline__ D operator ()(index_type y, index_type x) const + { + return (x >= 0 && x < width && y >= 0 && y < height) ? saturate_cast(src(y, x)) : val; + } + + Ptr2D src; + int height; + int width; + D val; + }; +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_BORDER_INTERPOLATE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/color.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/color.hpp new file mode 100644 index 000000000..dcce28021 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/color.hpp @@ -0,0 +1,309 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_COLOR_HPP +#define OPENCV_CUDA_COLOR_HPP + +#include "detail/color_detail.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + // All OPENCV_CUDA_IMPLEMENT_*_TRAITS(ColorSpace1_to_ColorSpace2, ...) macros implements + // template class ColorSpace1_to_ColorSpace2_traits + // { + // typedef ... functor_type; + // static __host__ __device__ functor_type create_functor(); + // }; + + OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(bgr_to_rgb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(bgr_to_bgra, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(bgr_to_rgba, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(bgra_to_bgr, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(bgra_to_rgb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(bgra_to_rgba, 4, 4, 2) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(bgr_to_bgr555, 3, 0, 5) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(bgr_to_bgr565, 3, 0, 6) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(rgb_to_bgr555, 3, 2, 5) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(rgb_to_bgr565, 3, 2, 6) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(bgra_to_bgr555, 4, 0, 5) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(bgra_to_bgr565, 4, 0, 6) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(rgba_to_bgr555, 4, 2, 5) + OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(rgba_to_bgr565, 4, 2, 6) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr555_to_rgb, 3, 2, 5) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr565_to_rgb, 3, 2, 6) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr555_to_bgr, 3, 0, 5) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr565_to_bgr, 3, 0, 6) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr555_to_rgba, 4, 2, 5) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr565_to_rgba, 4, 2, 6) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr555_to_bgra, 4, 0, 5) + OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(bgr565_to_bgra, 4, 0, 6) + + #undef OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_GRAY2RGB_TRAITS(gray_to_bgr, 3) + OPENCV_CUDA_IMPLEMENT_GRAY2RGB_TRAITS(gray_to_bgra, 4) + + #undef OPENCV_CUDA_IMPLEMENT_GRAY2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_GRAY2RGB5x5_TRAITS(gray_to_bgr555, 5) + OPENCV_CUDA_IMPLEMENT_GRAY2RGB5x5_TRAITS(gray_to_bgr565, 6) + + #undef OPENCV_CUDA_IMPLEMENT_GRAY2RGB5x5_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB5x52GRAY_TRAITS(bgr555_to_gray, 5) + OPENCV_CUDA_IMPLEMENT_RGB5x52GRAY_TRAITS(bgr565_to_gray, 6) + + #undef OPENCV_CUDA_IMPLEMENT_RGB5x52GRAY_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2GRAY_TRAITS(rgb_to_gray, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2GRAY_TRAITS(bgr_to_gray, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2GRAY_TRAITS(rgba_to_gray, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2GRAY_TRAITS(bgra_to_gray, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2GRAY_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(rgb_to_yuv, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(rgba_to_yuv, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(rgb_to_yuv4, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(rgba_to_yuv4, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(bgr_to_yuv, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(bgra_to_yuv, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(bgr_to_yuv4, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(bgra_to_yuv4, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS + + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv_to_rgb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv_to_rgba, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv4_to_rgb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv4_to_rgba, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv_to_bgr, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv_to_bgra, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv4_to_bgr, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(yuv4_to_bgra, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(rgb_to_YCrCb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(rgba_to_YCrCb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(rgb_to_YCrCb4, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(rgba_to_YCrCb4, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(bgr_to_YCrCb, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(bgra_to_YCrCb, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(bgr_to_YCrCb4, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(bgra_to_YCrCb4, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS + + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb_to_rgb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb_to_rgba, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb4_to_rgb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb4_to_rgba, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb_to_bgr, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb_to_bgra, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb4_to_bgr, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(YCrCb4_to_bgra, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(rgb_to_xyz, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(rgba_to_xyz, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(rgb_to_xyz4, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(rgba_to_xyz4, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(bgr_to_xyz, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(bgra_to_xyz, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(bgr_to_xyz4, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(bgra_to_xyz4, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS + + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz_to_rgb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz4_to_rgb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz_to_rgba, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz4_to_rgba, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz_to_bgr, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz4_to_bgr, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz_to_bgra, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(xyz4_to_bgra, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(rgb_to_hsv, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(rgba_to_hsv, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(rgb_to_hsv4, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(rgba_to_hsv4, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(bgr_to_hsv, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(bgra_to_hsv, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(bgr_to_hsv4, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(bgra_to_hsv4, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS + + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv_to_rgb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv_to_rgba, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv4_to_rgb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv4_to_rgba, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv_to_bgr, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv_to_bgra, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv4_to_bgr, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(hsv4_to_bgra, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(rgb_to_hls, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(rgba_to_hls, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(rgb_to_hls4, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(rgba_to_hls4, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(bgr_to_hls, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(bgra_to_hls, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(bgr_to_hls4, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(bgra_to_hls4, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS + + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls_to_rgb, 3, 3, 2) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls_to_rgba, 3, 4, 2) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls4_to_rgb, 4, 3, 2) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls4_to_rgba, 4, 4, 2) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls_to_bgr, 3, 3, 0) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls_to_bgra, 3, 4, 0) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls4_to_bgr, 4, 3, 0) + OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(hls4_to_bgra, 4, 4, 0) + + #undef OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(rgb_to_lab, 3, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(rgba_to_lab, 4, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(rgb_to_lab4, 3, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(rgba_to_lab4, 4, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(bgr_to_lab, 3, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(bgra_to_lab, 4, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(bgr_to_lab4, 3, 4, true, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(bgra_to_lab4, 4, 4, true, 0) + + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lrgb_to_lab, 3, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lrgba_to_lab, 4, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lrgb_to_lab4, 3, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lrgba_to_lab4, 4, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lbgr_to_lab, 3, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lbgra_to_lab, 4, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lbgr_to_lab4, 3, 4, false, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(lbgra_to_lab4, 4, 4, false, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS + + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_rgb, 3, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_rgb, 4, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_rgba, 3, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_rgba, 4, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_bgr, 3, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_bgr, 4, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_bgra, 3, 4, true, 0) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_bgra, 4, 4, true, 0) + + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_lrgb, 3, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_lrgb, 4, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_lrgba, 3, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_lrgba, 4, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_lbgr, 3, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_lbgr, 4, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab_to_lbgra, 3, 4, false, 0) + OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(lab4_to_lbgra, 4, 4, false, 0) + + #undef OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS + + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(rgb_to_luv, 3, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(rgba_to_luv, 4, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(rgb_to_luv4, 3, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(rgba_to_luv4, 4, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(bgr_to_luv, 3, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(bgra_to_luv, 4, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(bgr_to_luv4, 3, 4, true, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(bgra_to_luv4, 4, 4, true, 0) + + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lrgb_to_luv, 3, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lrgba_to_luv, 4, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lrgb_to_luv4, 3, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lrgba_to_luv4, 4, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lbgr_to_luv, 3, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lbgra_to_luv, 4, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lbgr_to_luv4, 3, 4, false, 0) + OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(lbgra_to_luv4, 4, 4, false, 0) + + #undef OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS + + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_rgb, 3, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_rgb, 4, 3, true, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_rgba, 3, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_rgba, 4, 4, true, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_bgr, 3, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_bgr, 4, 3, true, 0) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_bgra, 3, 4, true, 0) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_bgra, 4, 4, true, 0) + + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_lrgb, 3, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_lrgb, 4, 3, false, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_lrgba, 3, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_lrgba, 4, 4, false, 2) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_lbgr, 3, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_lbgr, 4, 3, false, 0) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv_to_lbgra, 3, 4, false, 0) + OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(luv4_to_lbgra, 4, 4, false, 0) + + #undef OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_COLOR_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/common.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/common.hpp new file mode 100644 index 000000000..14b1f3f5a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/common.hpp @@ -0,0 +1,109 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_COMMON_HPP +#define OPENCV_CUDA_COMMON_HPP + +#include +#include "opencv2/core/cuda_types.hpp" +#include "opencv2/core/cvdef.h" +#include "opencv2/core/base.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +#ifndef CV_PI_F + #ifndef CV_PI + #define CV_PI_F 3.14159265f + #else + #define CV_PI_F ((float)CV_PI) + #endif +#endif + +namespace cv { namespace cuda { + static inline void checkCudaError(cudaError_t err, const char* file, const int line, const char* func) + { + if (cudaSuccess != err) + cv::error(cv::Error::GpuApiCallError, cudaGetErrorString(err), func, file, line); + } +}} + +#ifndef cudaSafeCall + #define cudaSafeCall(expr) cv::cuda::checkCudaError(expr, __FILE__, __LINE__, CV_Func) +#endif + +namespace cv { namespace cuda +{ + template static inline bool isAligned(const T* ptr, size_t size) + { + return reinterpret_cast(ptr) % size == 0; + } + + static inline bool isAligned(size_t step, size_t size) + { + return step % size == 0; + } +}} + +namespace cv { namespace cuda +{ + namespace device + { + __host__ __device__ __forceinline__ int divUp(int total, int grain) + { + return (total + grain - 1) / grain; + } + + template inline void bindTexture(const textureReference* tex, const PtrStepSz& img) + { + cudaChannelFormatDesc desc = cudaCreateChannelDesc(); + cudaSafeCall( cudaBindTexture2D(0, tex, img.ptr(), &desc, img.cols, img.rows, img.step) ); + } + } +}} + +//! @endcond + +#endif // OPENCV_CUDA_COMMON_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/datamov_utils.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/datamov_utils.hpp new file mode 100644 index 000000000..6820d0fd6 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/datamov_utils.hpp @@ -0,0 +1,113 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_DATAMOV_UTILS_HPP +#define OPENCV_CUDA_DATAMOV_UTILS_HPP + +#include "common.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 200 + + // for Fermi memory space is detected automatically + template struct ForceGlob + { + __device__ __forceinline__ static void Load(const T* ptr, int offset, T& val) { val = ptr[offset]; } + }; + + #else // __CUDA_ARCH__ >= 200 + + #if defined(_WIN64) || defined(__LP64__) + // 64-bit register modifier for inlined asm + #define OPENCV_CUDA_ASM_PTR "l" + #else + // 32-bit register modifier for inlined asm + #define OPENCV_CUDA_ASM_PTR "r" + #endif + + template struct ForceGlob; + + #define OPENCV_CUDA_DEFINE_FORCE_GLOB(base_type, ptx_type, reg_mod) \ + template <> struct ForceGlob \ + { \ + __device__ __forceinline__ static void Load(const base_type* ptr, int offset, base_type& val) \ + { \ + asm("ld.global."#ptx_type" %0, [%1];" : "="#reg_mod(val) : OPENCV_CUDA_ASM_PTR(ptr + offset)); \ + } \ + }; + + #define OPENCV_CUDA_DEFINE_FORCE_GLOB_B(base_type, ptx_type) \ + template <> struct ForceGlob \ + { \ + __device__ __forceinline__ static void Load(const base_type* ptr, int offset, base_type& val) \ + { \ + asm("ld.global."#ptx_type" %0, [%1];" : "=r"(*reinterpret_cast(&val)) : OPENCV_CUDA_ASM_PTR(ptr + offset)); \ + } \ + }; + + OPENCV_CUDA_DEFINE_FORCE_GLOB_B(uchar, u8) + OPENCV_CUDA_DEFINE_FORCE_GLOB_B(schar, s8) + OPENCV_CUDA_DEFINE_FORCE_GLOB_B(char, b8) + OPENCV_CUDA_DEFINE_FORCE_GLOB (ushort, u16, h) + OPENCV_CUDA_DEFINE_FORCE_GLOB (short, s16, h) + OPENCV_CUDA_DEFINE_FORCE_GLOB (uint, u32, r) + OPENCV_CUDA_DEFINE_FORCE_GLOB (int, s32, r) + OPENCV_CUDA_DEFINE_FORCE_GLOB (float, f32, f) + OPENCV_CUDA_DEFINE_FORCE_GLOB (double, f64, d) + + #undef OPENCV_CUDA_DEFINE_FORCE_GLOB + #undef OPENCV_CUDA_DEFINE_FORCE_GLOB_B + #undef OPENCV_CUDA_ASM_PTR + + #endif // __CUDA_ARCH__ >= 200 +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_DATAMOV_UTILS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/color_detail.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/color_detail.hpp new file mode 100644 index 000000000..f4b479657 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/color_detail.hpp @@ -0,0 +1,2018 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_COLOR_DETAIL_HPP +#define OPENCV_CUDA_COLOR_DETAIL_HPP + +#include "../common.hpp" +#include "../vec_traits.hpp" +#include "../saturate_cast.hpp" +#include "../limits.hpp" +#include "../functional.hpp" + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + #ifndef CV_DESCALE + #define CV_DESCALE(x, n) (((x) + (1 << ((n)-1))) >> (n)) + #endif + + namespace color_detail + { + template struct ColorChannel + { + typedef float worktype_f; + static __device__ __forceinline__ T max() { return numeric_limits::max(); } + static __device__ __forceinline__ T half() { return (T)(max()/2 + 1); } + }; + + template<> struct ColorChannel + { + typedef float worktype_f; + static __device__ __forceinline__ float max() { return 1.f; } + static __device__ __forceinline__ float half() { return 0.5f; } + }; + + template static __device__ __forceinline__ void setAlpha(typename TypeVec::vec_type& vec, T val) + { + } + + template static __device__ __forceinline__ void setAlpha(typename TypeVec::vec_type& vec, T val) + { + vec.w = val; + } + + template static __device__ __forceinline__ T getAlpha(const typename TypeVec::vec_type& vec) + { + return ColorChannel::max(); + } + + template static __device__ __forceinline__ T getAlpha(const typename TypeVec::vec_type& vec) + { + return vec.w; + } + + //constants for conversion from/to RGB and Gray, YUV, YCrCb according to BT.601 + constexpr float B2YF = 0.114f; + constexpr float G2YF = 0.587f; + constexpr float R2YF = 0.299f; + + //to YCbCr + constexpr float YCBF = 0.564f; // == 1/2/(1-B2YF) + constexpr float YCRF = 0.713f; // == 1/2/(1-R2YF) + const int YCBI = 9241; // == YCBF*16384 + const int YCRI = 11682; // == YCRF*16384 + //to YUV + constexpr float B2UF = 0.492f; + constexpr float R2VF = 0.877f; + const int B2UI = 8061; // == B2UF*16384 + const int R2VI = 14369; // == R2VF*16384 + //from YUV + constexpr float U2BF = 2.032f; + constexpr float U2GF = -0.395f; + constexpr float V2GF = -0.581f; + constexpr float V2RF = 1.140f; + const int U2BI = 33292; + const int U2GI = -6472; + const int V2GI = -9519; + const int V2RI = 18678; + //from YCrCb + constexpr float CB2BF = 1.773f; + constexpr float CB2GF = -0.344f; + constexpr float CR2GF = -0.714f; + constexpr float CR2RF = 1.403f; + const int CB2BI = 29049; + const int CB2GI = -5636; + const int CR2GI = -11698; + const int CR2RI = 22987; + + enum + { + yuv_shift = 14, + xyz_shift = 12, + gray_shift = 15, + R2Y = 4899, + G2Y = 9617, + B2Y = 1868, + RY15 = 9798, // == R2YF*32768 + 0.5 + GY15 = 19235, // == G2YF*32768 + 0.5 + BY15 = 3735, // == B2YF*32768 + 0.5 + BLOCK_SIZE = 256 + }; + } + +////////////////// Various 3/4-channel to 3/4-channel RGB transformations ///////////////// + + namespace color_detail + { + template struct RGB2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + dst.x = (&src.x)[bidx]; + dst.y = src.y; + dst.z = (&src.x)[bidx^2]; + setAlpha(dst, getAlpha(src)); + + return dst; + } + + __host__ __device__ __forceinline__ RGB2RGB() {} + __host__ __device__ __forceinline__ RGB2RGB(const RGB2RGB&) {} + }; + + template <> struct RGB2RGB : unary_function + { + __device__ uint operator()(uint src) const + { + uint dst = 0; + + dst |= (0xffu & (src >> 16)); + dst |= (0xffu & (src >> 8)) << 8; + dst |= (0xffu & (src)) << 16; + dst |= (0xffu & (src >> 24)) << 24; + + return dst; + } + + __host__ __device__ __forceinline__ RGB2RGB() {} + __host__ __device__ __forceinline__ RGB2RGB(const RGB2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2RGB_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +/////////// Transforming 16-bit (565 or 555) RGB to/from 24/32-bit (888[8]) RGB ////////// + + namespace color_detail + { + template struct RGB2RGB5x5Converter; + template struct RGB2RGB5x5Converter<6, bidx> + { + static __device__ __forceinline__ ushort cvt(const uchar3& src) + { + return (ushort)(((&src.x)[bidx] >> 3) | ((src.y & ~3) << 3) | (((&src.x)[bidx^2] & ~7) << 8)); + } + + static __device__ __forceinline__ ushort cvt(uint src) + { + uint b = 0xffu & (src >> (bidx * 8)); + uint g = 0xffu & (src >> 8); + uint r = 0xffu & (src >> ((bidx ^ 2) * 8)); + return (ushort)((b >> 3) | ((g & ~3) << 3) | ((r & ~7) << 8)); + } + }; + + template struct RGB2RGB5x5Converter<5, bidx> + { + static __device__ __forceinline__ ushort cvt(const uchar3& src) + { + return (ushort)(((&src.x)[bidx] >> 3) | ((src.y & ~7) << 2) | (((&src.x)[bidx^2] & ~7) << 7)); + } + + static __device__ __forceinline__ ushort cvt(uint src) + { + uint b = 0xffu & (src >> (bidx * 8)); + uint g = 0xffu & (src >> 8); + uint r = 0xffu & (src >> ((bidx ^ 2) * 8)); + uint a = 0xffu & (src >> 24); + return (ushort)((b >> 3) | ((g & ~7) << 2) | ((r & ~7) << 7) | (a * 0x8000)); + } + }; + + template struct RGB2RGB5x5; + + template struct RGB2RGB5x5<3, bidx,green_bits> : unary_function + { + __device__ __forceinline__ ushort operator()(const uchar3& src) const + { + return RGB2RGB5x5Converter::cvt(src); + } + + __host__ __device__ __forceinline__ RGB2RGB5x5() {} + __host__ __device__ __forceinline__ RGB2RGB5x5(const RGB2RGB5x5&) {} + }; + + template struct RGB2RGB5x5<4, bidx,green_bits> : unary_function + { + __device__ __forceinline__ ushort operator()(uint src) const + { + return RGB2RGB5x5Converter::cvt(src); + } + + __host__ __device__ __forceinline__ RGB2RGB5x5() {} + __host__ __device__ __forceinline__ RGB2RGB5x5(const RGB2RGB5x5&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2RGB5x5_TRAITS(name, scn, bidx, green_bits) \ + struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2RGB5x5 functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + template struct RGB5x52RGBConverter; + + template struct RGB5x52RGBConverter<5, bidx> + { + static __device__ __forceinline__ void cvt(uint src, uchar3& dst) + { + (&dst.x)[bidx] = src << 3; + dst.y = (src >> 2) & ~7; + (&dst.x)[bidx ^ 2] = (src >> 7) & ~7; + } + + static __device__ __forceinline__ void cvt(uint src, uint& dst) + { + dst = 0; + + dst |= (0xffu & (src << 3)) << (bidx * 8); + dst |= (0xffu & ((src >> 2) & ~7)) << 8; + dst |= (0xffu & ((src >> 7) & ~7)) << ((bidx ^ 2) * 8); + dst |= ((src & 0x8000) * 0xffu) << 24; + } + }; + + template struct RGB5x52RGBConverter<6, bidx> + { + static __device__ __forceinline__ void cvt(uint src, uchar3& dst) + { + (&dst.x)[bidx] = src << 3; + dst.y = (src >> 3) & ~3; + (&dst.x)[bidx ^ 2] = (src >> 8) & ~7; + } + + static __device__ __forceinline__ void cvt(uint src, uint& dst) + { + dst = 0xffu << 24; + + dst |= (0xffu & (src << 3)) << (bidx * 8); + dst |= (0xffu &((src >> 3) & ~3)) << 8; + dst |= (0xffu & ((src >> 8) & ~7)) << ((bidx ^ 2) * 8); + } + }; + + template struct RGB5x52RGB; + + template struct RGB5x52RGB<3, bidx, green_bits> : unary_function + { + __device__ __forceinline__ uchar3 operator()(ushort src) const + { + uchar3 dst; + RGB5x52RGBConverter::cvt(src, dst); + return dst; + } + __host__ __device__ __forceinline__ RGB5x52RGB() {} + __host__ __device__ __forceinline__ RGB5x52RGB(const RGB5x52RGB&) {} + + }; + + template struct RGB5x52RGB<4, bidx, green_bits> : unary_function + { + __device__ __forceinline__ uint operator()(ushort src) const + { + uint dst; + RGB5x52RGBConverter::cvt(src, dst); + return dst; + } + __host__ __device__ __forceinline__ RGB5x52RGB() {} + __host__ __device__ __forceinline__ RGB5x52RGB(const RGB5x52RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB5x52RGB_TRAITS(name, dcn, bidx, green_bits) \ + struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB5x52RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +///////////////////////////////// Grayscale to Color //////////////////////////////// + + namespace color_detail + { + template struct Gray2RGB : unary_function::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(T src) const + { + typename TypeVec::vec_type dst; + + dst.z = dst.y = dst.x = src; + setAlpha(dst, ColorChannel::max()); + + return dst; + } + __host__ __device__ __forceinline__ Gray2RGB() {} + __host__ __device__ __forceinline__ Gray2RGB(const Gray2RGB&) {} + }; + + template <> struct Gray2RGB : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + uint dst = 0xffu << 24; + + dst |= src; + dst |= src << 8; + dst |= src << 16; + + return dst; + } + __host__ __device__ __forceinline__ Gray2RGB() {} + __host__ __device__ __forceinline__ Gray2RGB(const Gray2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_GRAY2RGB_TRAITS(name, dcn) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::Gray2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + template struct Gray2RGB5x5Converter; + template<> struct Gray2RGB5x5Converter<6> + { + static __device__ __forceinline__ ushort cvt(uint t) + { + return (ushort)((t >> 3) | ((t & ~3) << 3) | ((t & ~7) << 8)); + } + }; + + template<> struct Gray2RGB5x5Converter<5> + { + static __device__ __forceinline__ ushort cvt(uint t) + { + t >>= 3; + return (ushort)(t | (t << 5) | (t << 10)); + } + }; + + template struct Gray2RGB5x5 : unary_function + { + __device__ __forceinline__ ushort operator()(uint src) const + { + return Gray2RGB5x5Converter::cvt(src); + } + + __host__ __device__ __forceinline__ Gray2RGB5x5() {} + __host__ __device__ __forceinline__ Gray2RGB5x5(const Gray2RGB5x5&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_GRAY2RGB5x5_TRAITS(name, green_bits) \ + struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::Gray2RGB5x5 functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +///////////////////////////////// Color to Grayscale //////////////////////////////// + + namespace color_detail + { + template struct RGB5x52GrayConverter; + template <> struct RGB5x52GrayConverter<6> + { + static __device__ __forceinline__ uchar cvt(uint t) + { + return (uchar)CV_DESCALE(((t << 3) & 0xf8) * BY15 + ((t >> 3) & 0xfc) * GY15 + ((t >> 8) & 0xf8) * RY15, gray_shift); + } + }; + + template <> struct RGB5x52GrayConverter<5> + { + static __device__ __forceinline__ uchar cvt(uint t) + { + return (uchar)CV_DESCALE(((t << 3) & 0xf8) * BY15 + ((t >> 2) & 0xf8) * GY15 + ((t >> 7) & 0xf8) * RY15, gray_shift); + } + }; + + template struct RGB5x52Gray : unary_function + { + __device__ __forceinline__ uchar operator()(uint src) const + { + return RGB5x52GrayConverter::cvt(src); + } + __host__ __device__ __forceinline__ RGB5x52Gray() {} + __host__ __device__ __forceinline__ RGB5x52Gray(const RGB5x52Gray&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB5x52GRAY_TRAITS(name, green_bits) \ + struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB5x52Gray functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + template static __device__ __forceinline__ T RGB2GrayConvert(const T* src) + { + return (T)CV_DESCALE((unsigned)(src[bidx] * BY15 + src[1] * GY15 + src[bidx^2] * RY15), gray_shift); + } + + template static __device__ __forceinline__ uchar RGB2GrayConvert(uint src) + { + uint b = 0xffu & (src >> (bidx * 8)); + uint g = 0xffu & (src >> 8); + uint r = 0xffu & (src >> ((bidx ^ 2) * 8)); + return CV_DESCALE((uint)(b * BY15 + g * GY15 + r * RY15), gray_shift); + } + + template static __device__ __forceinline__ float RGB2GrayConvert(const float* src) + { + return src[bidx] * B2YF + src[1] * G2YF + src[bidx^2] * R2YF; + } + + template struct RGB2Gray : unary_function::vec_type, T> + { + __device__ __forceinline__ T operator()(const typename TypeVec::vec_type& src) const + { + return RGB2GrayConvert(&src.x); + } + __host__ __device__ __forceinline__ RGB2Gray() {} + __host__ __device__ __forceinline__ RGB2Gray(const RGB2Gray&) {} + }; + + template struct RGB2Gray : unary_function + { + __device__ __forceinline__ uchar operator()(uint src) const + { + return RGB2GrayConvert(src); + } + __host__ __device__ __forceinline__ RGB2Gray() {} + __host__ __device__ __forceinline__ RGB2Gray(const RGB2Gray&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2GRAY_TRAITS(name, scn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2Gray functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +///////////////////////////////////// RGB <-> YUV ////////////////////////////////////// + + namespace color_detail + { + __constant__ float c_RGB2YUVCoeffs_f[5] = { B2YF, G2YF, R2YF, B2UF, R2VF }; + __constant__ int c_RGB2YUVCoeffs_i[5] = { B2Y, G2Y, R2Y, B2UI, R2VI }; + + template static __device__ void RGB2YUVConvert(const T* src, D& dst) + { + const int delta = ColorChannel::half() * (1 << yuv_shift); + + const int Y = CV_DESCALE(src[0] * c_RGB2YUVCoeffs_i[bidx^2] + src[1] * c_RGB2YUVCoeffs_i[1] + src[2] * c_RGB2YUVCoeffs_i[bidx], yuv_shift); + const int Cr = CV_DESCALE((src[bidx^2] - Y) * c_RGB2YUVCoeffs_i[3] + delta, yuv_shift); + const int Cb = CV_DESCALE((src[bidx] - Y) * c_RGB2YUVCoeffs_i[4] + delta, yuv_shift); + + dst.x = saturate_cast(Y); + dst.y = saturate_cast(Cr); + dst.z = saturate_cast(Cb); + } + + template static __device__ __forceinline__ void RGB2YUVConvert(const float* src, D& dst) + { + dst.x = src[0] * c_RGB2YUVCoeffs_f[bidx^2] + src[1] * c_RGB2YUVCoeffs_f[1] + src[2] * c_RGB2YUVCoeffs_f[bidx]; + dst.y = (src[bidx^2] - dst.x) * c_RGB2YUVCoeffs_f[3] + ColorChannel::half(); + dst.z = (src[bidx] - dst.x) * c_RGB2YUVCoeffs_f[4] + ColorChannel::half(); + } + + template struct RGB2YUV + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + RGB2YUVConvert(&src.x, dst); + return dst; + } + __host__ __device__ __forceinline__ RGB2YUV() {} + __host__ __device__ __forceinline__ RGB2YUV(const RGB2YUV&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2YUV_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2YUV functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + __constant__ float c_YUV2RGBCoeffs_f[5] = { U2BF, U2GF, V2GF, V2RF }; + __constant__ int c_YUV2RGBCoeffs_i[5] = { U2BI, U2GI, V2GI, V2RI }; + + template static __device__ void YUV2RGBConvert(const T& src, D* dst) + { + const int b = src.x + CV_DESCALE((src.z - ColorChannel::half()) * c_YUV2RGBCoeffs_i[3], yuv_shift); + + const int g = src.x + CV_DESCALE((src.z - ColorChannel::half()) * c_YUV2RGBCoeffs_i[2] + + (src.y - ColorChannel::half()) * c_YUV2RGBCoeffs_i[1], yuv_shift); + + const int r = src.x + CV_DESCALE((src.y - ColorChannel::half()) * c_YUV2RGBCoeffs_i[0], yuv_shift); + + dst[bidx] = saturate_cast(b); + dst[1] = saturate_cast(g); + dst[bidx^2] = saturate_cast(r); + } + + template static __device__ uint YUV2RGBConvert(uint src) + { + const int x = 0xff & (src); + const int y = 0xff & (src >> 8); + const int z = 0xff & (src >> 16); + + const int b = x + CV_DESCALE((z - ColorChannel::half()) * c_YUV2RGBCoeffs_i[3], yuv_shift); + + const int g = x + CV_DESCALE((z - ColorChannel::half()) * c_YUV2RGBCoeffs_i[2] + + (y - ColorChannel::half()) * c_YUV2RGBCoeffs_i[1], yuv_shift); + + const int r = x + CV_DESCALE((y - ColorChannel::half()) * c_YUV2RGBCoeffs_i[0], yuv_shift); + + uint dst = 0xffu << 24; + + dst |= saturate_cast(b) << (bidx * 8); + dst |= saturate_cast(g) << 8; + dst |= saturate_cast(r) << ((bidx ^ 2) * 8); + + return dst; + } + + template static __device__ __forceinline__ void YUV2RGBConvert(const T& src, float* dst) + { + dst[bidx] = src.x + (src.z - ColorChannel::half()) * c_YUV2RGBCoeffs_f[3]; + + dst[1] = src.x + (src.z - ColorChannel::half()) * c_YUV2RGBCoeffs_f[2] + + (src.y - ColorChannel::half()) * c_YUV2RGBCoeffs_f[1]; + + dst[bidx^2] = src.x + (src.y - ColorChannel::half()) * c_YUV2RGBCoeffs_f[0]; + } + + template struct YUV2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + YUV2RGBConvert(src, &dst.x); + setAlpha(dst, ColorChannel::max()); + + return dst; + } + __host__ __device__ __forceinline__ YUV2RGB() {} + __host__ __device__ __forceinline__ YUV2RGB(const YUV2RGB&) {} + }; + + template struct YUV2RGB : unary_function + { + __device__ __forceinline__ uint operator ()(uint src) const + { + return YUV2RGBConvert(src); + } + __host__ __device__ __forceinline__ YUV2RGB() {} + __host__ __device__ __forceinline__ YUV2RGB(const YUV2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_YUV2RGB_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::YUV2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +///////////////////////////////////// RGB <-> YCrCb ////////////////////////////////////// + + namespace color_detail + { + __constant__ float c_RGB2YCrCbCoeffs_f[5] = {R2YF, G2YF, B2YF, YCRF, YCBF}; + __constant__ int c_RGB2YCrCbCoeffs_i[5] = {R2Y, G2Y, B2Y, YCRI, YCBI}; + + template static __device__ void RGB2YCrCbConvert(const T* src, D& dst) + { + const int delta = ColorChannel::half() * (1 << yuv_shift); + + const int Y = CV_DESCALE(src[0] * c_RGB2YCrCbCoeffs_i[bidx^2] + src[1] * c_RGB2YCrCbCoeffs_i[1] + src[2] * c_RGB2YCrCbCoeffs_i[bidx], yuv_shift); + const int Cr = CV_DESCALE((src[bidx^2] - Y) * c_RGB2YCrCbCoeffs_i[3] + delta, yuv_shift); + const int Cb = CV_DESCALE((src[bidx] - Y) * c_RGB2YCrCbCoeffs_i[4] + delta, yuv_shift); + + dst.x = saturate_cast(Y); + dst.y = saturate_cast(Cr); + dst.z = saturate_cast(Cb); + } + + template static __device__ uint RGB2YCrCbConvert(uint src) + { + const int delta = ColorChannel::half() * (1 << yuv_shift); + + const int Y = CV_DESCALE((0xffu & src) * c_RGB2YCrCbCoeffs_i[bidx^2] + (0xffu & (src >> 8)) * c_RGB2YCrCbCoeffs_i[1] + (0xffu & (src >> 16)) * c_RGB2YCrCbCoeffs_i[bidx], yuv_shift); + const int Cr = CV_DESCALE(((0xffu & (src >> ((bidx ^ 2) * 8))) - Y) * c_RGB2YCrCbCoeffs_i[3] + delta, yuv_shift); + const int Cb = CV_DESCALE(((0xffu & (src >> (bidx * 8))) - Y) * c_RGB2YCrCbCoeffs_i[4] + delta, yuv_shift); + + uint dst = 0; + + dst |= saturate_cast(Y); + dst |= saturate_cast(Cr) << 8; + dst |= saturate_cast(Cb) << 16; + + return dst; + } + + template static __device__ __forceinline__ void RGB2YCrCbConvert(const float* src, D& dst) + { + dst.x = src[0] * c_RGB2YCrCbCoeffs_f[bidx^2] + src[1] * c_RGB2YCrCbCoeffs_f[1] + src[2] * c_RGB2YCrCbCoeffs_f[bidx]; + dst.y = (src[bidx^2] - dst.x) * c_RGB2YCrCbCoeffs_f[3] + ColorChannel::half(); + dst.z = (src[bidx] - dst.x) * c_RGB2YCrCbCoeffs_f[4] + ColorChannel::half(); + } + + template struct RGB2YCrCb + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + RGB2YCrCbConvert(&src.x, dst); + return dst; + } + __host__ __device__ __forceinline__ RGB2YCrCb() {} + __host__ __device__ __forceinline__ RGB2YCrCb(const RGB2YCrCb&) {} + }; + + template struct RGB2YCrCb : unary_function + { + __device__ __forceinline__ uint operator ()(uint src) const + { + return RGB2YCrCbConvert(src); + } + + __host__ __device__ __forceinline__ RGB2YCrCb() {} + __host__ __device__ __forceinline__ RGB2YCrCb(const RGB2YCrCb&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2YCrCb_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2YCrCb functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + __constant__ float c_YCrCb2RGBCoeffs_f[5] = {CR2RF, CR2GF, CB2GF, CB2BF}; + __constant__ int c_YCrCb2RGBCoeffs_i[5] = {CR2RI, CR2GI, CB2GI, CB2BI}; + + template static __device__ void YCrCb2RGBConvert(const T& src, D* dst) + { + const int b = src.x + CV_DESCALE((src.z - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[3], yuv_shift); + const int g = src.x + CV_DESCALE((src.z - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[2] + (src.y - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[1], yuv_shift); + const int r = src.x + CV_DESCALE((src.y - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[0], yuv_shift); + + dst[bidx] = saturate_cast(b); + dst[1] = saturate_cast(g); + dst[bidx^2] = saturate_cast(r); + } + + template static __device__ uint YCrCb2RGBConvert(uint src) + { + const int x = 0xff & (src); + const int y = 0xff & (src >> 8); + const int z = 0xff & (src >> 16); + + const int b = x + CV_DESCALE((z - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[3], yuv_shift); + const int g = x + CV_DESCALE((z - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[2] + (y - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[1], yuv_shift); + const int r = x + CV_DESCALE((y - ColorChannel::half()) * c_YCrCb2RGBCoeffs_i[0], yuv_shift); + + uint dst = 0xffu << 24; + + dst |= saturate_cast(b) << (bidx * 8); + dst |= saturate_cast(g) << 8; + dst |= saturate_cast(r) << ((bidx ^ 2) * 8); + + return dst; + } + + template __device__ __forceinline__ void YCrCb2RGBConvert(const T& src, float* dst) + { + dst[bidx] = src.x + (src.z - ColorChannel::half()) * c_YCrCb2RGBCoeffs_f[3]; + dst[1] = src.x + (src.z - ColorChannel::half()) * c_YCrCb2RGBCoeffs_f[2] + (src.y - ColorChannel::half()) * c_YCrCb2RGBCoeffs_f[1]; + dst[bidx^2] = src.x + (src.y - ColorChannel::half()) * c_YCrCb2RGBCoeffs_f[0]; + } + + template struct YCrCb2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + YCrCb2RGBConvert(src, &dst.x); + setAlpha(dst, ColorChannel::max()); + + return dst; + } + __host__ __device__ __forceinline__ YCrCb2RGB() {} + __host__ __device__ __forceinline__ YCrCb2RGB(const YCrCb2RGB&) {} + }; + + template struct YCrCb2RGB : unary_function + { + __device__ __forceinline__ uint operator ()(uint src) const + { + return YCrCb2RGBConvert(src); + } + __host__ __device__ __forceinline__ YCrCb2RGB() {} + __host__ __device__ __forceinline__ YCrCb2RGB(const YCrCb2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_YCrCb2RGB_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::YCrCb2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +////////////////////////////////////// RGB <-> XYZ /////////////////////////////////////// + + namespace color_detail + { + __constant__ float c_RGB2XYZ_D65f[9] = { 0.412453f, 0.357580f, 0.180423f, 0.212671f, 0.715160f, 0.072169f, 0.019334f, 0.119193f, 0.950227f }; + __constant__ int c_RGB2XYZ_D65i[9] = { 1689, 1465, 739, 871, 2929, 296, 79, 488, 3892 }; + + template static __device__ __forceinline__ void RGB2XYZConvert(const T* src, D& dst) + { + dst.z = saturate_cast(CV_DESCALE(src[bidx^2] * c_RGB2XYZ_D65i[6] + src[1] * c_RGB2XYZ_D65i[7] + src[bidx] * c_RGB2XYZ_D65i[8], xyz_shift)); + dst.x = saturate_cast(CV_DESCALE(src[bidx^2] * c_RGB2XYZ_D65i[0] + src[1] * c_RGB2XYZ_D65i[1] + src[bidx] * c_RGB2XYZ_D65i[2], xyz_shift)); + dst.y = saturate_cast(CV_DESCALE(src[bidx^2] * c_RGB2XYZ_D65i[3] + src[1] * c_RGB2XYZ_D65i[4] + src[bidx] * c_RGB2XYZ_D65i[5], xyz_shift)); + } + + template static __device__ __forceinline__ uint RGB2XYZConvert(uint src) + { + const uint b = 0xffu & (src >> (bidx * 8)); + const uint g = 0xffu & (src >> 8); + const uint r = 0xffu & (src >> ((bidx ^ 2) * 8)); + + const uint x = saturate_cast(CV_DESCALE(r * c_RGB2XYZ_D65i[0] + g * c_RGB2XYZ_D65i[1] + b * c_RGB2XYZ_D65i[2], xyz_shift)); + const uint y = saturate_cast(CV_DESCALE(r * c_RGB2XYZ_D65i[3] + g * c_RGB2XYZ_D65i[4] + b * c_RGB2XYZ_D65i[5], xyz_shift)); + const uint z = saturate_cast(CV_DESCALE(r * c_RGB2XYZ_D65i[6] + g * c_RGB2XYZ_D65i[7] + b * c_RGB2XYZ_D65i[8], xyz_shift)); + + uint dst = 0; + + dst |= x; + dst |= y << 8; + dst |= z << 16; + + return dst; + } + + template static __device__ __forceinline__ void RGB2XYZConvert(const float* src, D& dst) + { + dst.x = src[bidx^2] * c_RGB2XYZ_D65f[0] + src[1] * c_RGB2XYZ_D65f[1] + src[bidx] * c_RGB2XYZ_D65f[2]; + dst.y = src[bidx^2] * c_RGB2XYZ_D65f[3] + src[1] * c_RGB2XYZ_D65f[4] + src[bidx] * c_RGB2XYZ_D65f[5]; + dst.z = src[bidx^2] * c_RGB2XYZ_D65f[6] + src[1] * c_RGB2XYZ_D65f[7] + src[bidx] * c_RGB2XYZ_D65f[8]; + } + + template struct RGB2XYZ + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2XYZConvert(&src.x, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2XYZ() {} + __host__ __device__ __forceinline__ RGB2XYZ(const RGB2XYZ&) {} + }; + + template struct RGB2XYZ : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + return RGB2XYZConvert(src); + } + __host__ __device__ __forceinline__ RGB2XYZ() {} + __host__ __device__ __forceinline__ RGB2XYZ(const RGB2XYZ&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2XYZ_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2XYZ functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + __constant__ float c_XYZ2sRGB_D65f[9] = { 3.240479f, -1.53715f, -0.498535f, -0.969256f, 1.875991f, 0.041556f, 0.055648f, -0.204043f, 1.057311f }; + __constant__ int c_XYZ2sRGB_D65i[9] = { 13273, -6296, -2042, -3970, 7684, 170, 228, -836, 4331 }; + + template static __device__ __forceinline__ void XYZ2RGBConvert(const T& src, D* dst) + { + dst[bidx^2] = saturate_cast(CV_DESCALE(src.x * c_XYZ2sRGB_D65i[0] + src.y * c_XYZ2sRGB_D65i[1] + src.z * c_XYZ2sRGB_D65i[2], xyz_shift)); + dst[1] = saturate_cast(CV_DESCALE(src.x * c_XYZ2sRGB_D65i[3] + src.y * c_XYZ2sRGB_D65i[4] + src.z * c_XYZ2sRGB_D65i[5], xyz_shift)); + dst[bidx] = saturate_cast(CV_DESCALE(src.x * c_XYZ2sRGB_D65i[6] + src.y * c_XYZ2sRGB_D65i[7] + src.z * c_XYZ2sRGB_D65i[8], xyz_shift)); + } + + template static __device__ __forceinline__ uint XYZ2RGBConvert(uint src) + { + const int x = 0xff & src; + const int y = 0xff & (src >> 8); + const int z = 0xff & (src >> 16); + + const uint r = saturate_cast(CV_DESCALE(x * c_XYZ2sRGB_D65i[0] + y * c_XYZ2sRGB_D65i[1] + z * c_XYZ2sRGB_D65i[2], xyz_shift)); + const uint g = saturate_cast(CV_DESCALE(x * c_XYZ2sRGB_D65i[3] + y * c_XYZ2sRGB_D65i[4] + z * c_XYZ2sRGB_D65i[5], xyz_shift)); + const uint b = saturate_cast(CV_DESCALE(x * c_XYZ2sRGB_D65i[6] + y * c_XYZ2sRGB_D65i[7] + z * c_XYZ2sRGB_D65i[8], xyz_shift)); + + uint dst = 0xffu << 24; + + dst |= b << (bidx * 8); + dst |= g << 8; + dst |= r << ((bidx ^ 2) * 8); + + return dst; + } + + template static __device__ __forceinline__ void XYZ2RGBConvert(const T& src, float* dst) + { + dst[bidx^2] = src.x * c_XYZ2sRGB_D65f[0] + src.y * c_XYZ2sRGB_D65f[1] + src.z * c_XYZ2sRGB_D65f[2]; + dst[1] = src.x * c_XYZ2sRGB_D65f[3] + src.y * c_XYZ2sRGB_D65f[4] + src.z * c_XYZ2sRGB_D65f[5]; + dst[bidx] = src.x * c_XYZ2sRGB_D65f[6] + src.y * c_XYZ2sRGB_D65f[7] + src.z * c_XYZ2sRGB_D65f[8]; + } + + template struct XYZ2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + XYZ2RGBConvert(src, &dst.x); + setAlpha(dst, ColorChannel::max()); + + return dst; + } + __host__ __device__ __forceinline__ XYZ2RGB() {} + __host__ __device__ __forceinline__ XYZ2RGB(const XYZ2RGB&) {} + }; + + template struct XYZ2RGB : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + return XYZ2RGBConvert(src); + } + __host__ __device__ __forceinline__ XYZ2RGB() {} + __host__ __device__ __forceinline__ XYZ2RGB(const XYZ2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_XYZ2RGB_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::XYZ2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +////////////////////////////////////// RGB <-> HSV /////////////////////////////////////// + + namespace color_detail + { + __constant__ int c_HsvDivTable [256] = {0, 1044480, 522240, 348160, 261120, 208896, 174080, 149211, 130560, 116053, 104448, 94953, 87040, 80345, 74606, 69632, 65280, 61440, 58027, 54973, 52224, 49737, 47476, 45412, 43520, 41779, 40172, 38684, 37303, 36017, 34816, 33693, 32640, 31651, 30720, 29842, 29013, 28229, 27486, 26782, 26112, 25475, 24869, 24290, 23738, 23211, 22706, 22223, 21760, 21316, 20890, 20480, 20086, 19707, 19342, 18991, 18651, 18324, 18008, 17703, 17408, 17123, 16846, 16579, 16320, 16069, 15825, 15589, 15360, 15137, 14921, 14711, 14507, 14308, 14115, 13926, 13743, 13565, 13391, 13221, 13056, 12895, 12738, 12584, 12434, 12288, 12145, 12006, 11869, 11736, 11605, 11478, 11353, 11231, 11111, 10995, 10880, 10768, 10658, 10550, 10445, 10341, 10240, 10141, 10043, 9947, 9854, 9761, 9671, 9582, 9495, 9410, 9326, 9243, 9162, 9082, 9004, 8927, 8852, 8777, 8704, 8632, 8561, 8492, 8423, 8356, 8290, 8224, 8160, 8097, 8034, 7973, 7913, 7853, 7795, 7737, 7680, 7624, 7569, 7514, 7461, 7408, 7355, 7304, 7253, 7203, 7154, 7105, 7057, 7010, 6963, 6917, 6872, 6827, 6782, 6739, 6695, 6653, 6611, 6569, 6528, 6487, 6447, 6408, 6369, 6330, 6292, 6254, 6217, 6180, 6144, 6108, 6073, 6037, 6003, 5968, 5935, 5901, 5868, 5835, 5803, 5771, 5739, 5708, 5677, 5646, 5615, 5585, 5556, 5526, 5497, 5468, 5440, 5412, 5384, 5356, 5329, 5302, 5275, 5249, 5222, 5196, 5171, 5145, 5120, 5095, 5070, 5046, 5022, 4998, 4974, 4950, 4927, 4904, 4881, 4858, 4836, 4813, 4791, 4769, 4748, 4726, 4705, 4684, 4663, 4642, 4622, 4601, 4581, 4561, 4541, 4522, 4502, 4483, 4464, 4445, 4426, 4407, 4389, 4370, 4352, 4334, 4316, 4298, 4281, 4263, 4246, 4229, 4212, 4195, 4178, 4161, 4145, 4128, 4112, 4096}; + __constant__ int c_HsvDivTable180[256] = {0, 122880, 61440, 40960, 30720, 24576, 20480, 17554, 15360, 13653, 12288, 11171, 10240, 9452, 8777, 8192, 7680, 7228, 6827, 6467, 6144, 5851, 5585, 5343, 5120, 4915, 4726, 4551, 4389, 4237, 4096, 3964, 3840, 3724, 3614, 3511, 3413, 3321, 3234, 3151, 3072, 2997, 2926, 2858, 2793, 2731, 2671, 2614, 2560, 2508, 2458, 2409, 2363, 2318, 2276, 2234, 2194, 2156, 2119, 2083, 2048, 2014, 1982, 1950, 1920, 1890, 1862, 1834, 1807, 1781, 1755, 1731, 1707, 1683, 1661, 1638, 1617, 1596, 1575, 1555, 1536, 1517, 1499, 1480, 1463, 1446, 1429, 1412, 1396, 1381, 1365, 1350, 1336, 1321, 1307, 1293, 1280, 1267, 1254, 1241, 1229, 1217, 1205, 1193, 1182, 1170, 1159, 1148, 1138, 1127, 1117, 1107, 1097, 1087, 1078, 1069, 1059, 1050, 1041, 1033, 1024, 1016, 1007, 999, 991, 983, 975, 968, 960, 953, 945, 938, 931, 924, 917, 910, 904, 897, 890, 884, 878, 871, 865, 859, 853, 847, 842, 836, 830, 825, 819, 814, 808, 803, 798, 793, 788, 783, 778, 773, 768, 763, 759, 754, 749, 745, 740, 736, 731, 727, 723, 719, 714, 710, 706, 702, 698, 694, 690, 686, 683, 679, 675, 671, 668, 664, 661, 657, 654, 650, 647, 643, 640, 637, 633, 630, 627, 624, 621, 617, 614, 611, 608, 605, 602, 599, 597, 594, 591, 588, 585, 582, 580, 577, 574, 572, 569, 566, 564, 561, 559, 556, 554, 551, 549, 546, 544, 541, 539, 537, 534, 532, 530, 527, 525, 523, 521, 518, 516, 514, 512, 510, 508, 506, 504, 502, 500, 497, 495, 493, 492, 490, 488, 486, 484, 482}; + __constant__ int c_HsvDivTable256[256] = {0, 174763, 87381, 58254, 43691, 34953, 29127, 24966, 21845, 19418, 17476, 15888, 14564, 13443, 12483, 11651, 10923, 10280, 9709, 9198, 8738, 8322, 7944, 7598, 7282, 6991, 6722, 6473, 6242, 6026, 5825, 5638, 5461, 5296, 5140, 4993, 4855, 4723, 4599, 4481, 4369, 4263, 4161, 4064, 3972, 3884, 3799, 3718, 3641, 3567, 3495, 3427, 3361, 3297, 3236, 3178, 3121, 3066, 3013, 2962, 2913, 2865, 2819, 2774, 2731, 2689, 2648, 2608, 2570, 2533, 2497, 2461, 2427, 2394, 2362, 2330, 2300, 2270, 2241, 2212, 2185, 2158, 2131, 2106, 2081, 2056, 2032, 2009, 1986, 1964, 1942, 1920, 1900, 1879, 1859, 1840, 1820, 1802, 1783, 1765, 1748, 1730, 1713, 1697, 1680, 1664, 1649, 1633, 1618, 1603, 1589, 1574, 1560, 1547, 1533, 1520, 1507, 1494, 1481, 1469, 1456, 1444, 1432, 1421, 1409, 1398, 1387, 1376, 1365, 1355, 1344, 1334, 1324, 1314, 1304, 1295, 1285, 1276, 1266, 1257, 1248, 1239, 1231, 1222, 1214, 1205, 1197, 1189, 1181, 1173, 1165, 1157, 1150, 1142, 1135, 1128, 1120, 1113, 1106, 1099, 1092, 1085, 1079, 1072, 1066, 1059, 1053, 1046, 1040, 1034, 1028, 1022, 1016, 1010, 1004, 999, 993, 987, 982, 976, 971, 966, 960, 955, 950, 945, 940, 935, 930, 925, 920, 915, 910, 906, 901, 896, 892, 887, 883, 878, 874, 869, 865, 861, 857, 853, 848, 844, 840, 836, 832, 828, 824, 820, 817, 813, 809, 805, 802, 798, 794, 791, 787, 784, 780, 777, 773, 770, 767, 763, 760, 757, 753, 750, 747, 744, 741, 737, 734, 731, 728, 725, 722, 719, 716, 713, 710, 708, 705, 702, 699, 696, 694, 691, 688, 685}; + + template static __device__ void RGB2HSVConvert(const uchar* src, D& dst) + { + const int hsv_shift = 12; + const int* hdiv_table = hr == 180 ? c_HsvDivTable180 : c_HsvDivTable256; + + int b = src[bidx], g = src[1], r = src[bidx^2]; + int h, s, v = b; + int vmin = b, diff; + int vr, vg; + + v = ::max(v, g); + v = ::max(v, r); + vmin = ::min(vmin, g); + vmin = ::min(vmin, r); + + diff = v - vmin; + vr = (v == r) * -1; + vg = (v == g) * -1; + + s = (diff * c_HsvDivTable[v] + (1 << (hsv_shift-1))) >> hsv_shift; + h = (vr & (g - b)) + (~vr & ((vg & (b - r + 2 * diff)) + ((~vg) & (r - g + 4 * diff)))); + h = (h * hdiv_table[diff] + (1 << (hsv_shift-1))) >> hsv_shift; + h += (h < 0) * hr; + + dst.x = saturate_cast(h); + dst.y = (uchar)s; + dst.z = (uchar)v; + } + + template static __device__ uint RGB2HSVConvert(uint src) + { + const int hsv_shift = 12; + const int* hdiv_table = hr == 180 ? c_HsvDivTable180 : c_HsvDivTable256; + + const int b = 0xff & (src >> (bidx * 8)); + const int g = 0xff & (src >> 8); + const int r = 0xff & (src >> ((bidx ^ 2) * 8)); + + int h, s, v = b; + int vmin = b, diff; + int vr, vg; + + v = ::max(v, g); + v = ::max(v, r); + vmin = ::min(vmin, g); + vmin = ::min(vmin, r); + + diff = v - vmin; + vr = (v == r) * -1; + vg = (v == g) * -1; + + s = (diff * c_HsvDivTable[v] + (1 << (hsv_shift-1))) >> hsv_shift; + h = (vr & (g - b)) + (~vr & ((vg & (b - r + 2 * diff)) + ((~vg) & (r - g + 4 * diff)))); + h = (h * hdiv_table[diff] + (1 << (hsv_shift-1))) >> hsv_shift; + h += (h < 0) * hr; + + uint dst = 0; + + dst |= saturate_cast(h); + dst |= (0xffu & s) << 8; + dst |= (0xffu & v) << 16; + + return dst; + } + + template static __device__ void RGB2HSVConvert(const float* src, D& dst) + { + const float hscale = hr * (1.f / 360.f); + + float b = src[bidx], g = src[1], r = src[bidx^2]; + float h, s, v; + + float vmin, diff; + + v = vmin = r; + v = fmax(v, g); + v = fmax(v, b); + vmin = fmin(vmin, g); + vmin = fmin(vmin, b); + + diff = v - vmin; + s = diff / (float)(::fabs(v) + numeric_limits::epsilon()); + diff = (float)(60. / (diff + numeric_limits::epsilon())); + + h = (v == r) * (g - b) * diff; + h += (v != r && v == g) * ((b - r) * diff + 120.f); + h += (v != r && v != g) * ((r - g) * diff + 240.f); + h += (h < 0) * 360.f; + + dst.x = h * hscale; + dst.y = s; + dst.z = v; + } + + template struct RGB2HSV + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2HSVConvert(&src.x, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2HSV() {} + __host__ __device__ __forceinline__ RGB2HSV(const RGB2HSV&) {} + }; + + template struct RGB2HSV : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + return RGB2HSVConvert(src); + } + __host__ __device__ __forceinline__ RGB2HSV() {} + __host__ __device__ __forceinline__ RGB2HSV(const RGB2HSV&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2HSV_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HSV functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HSV functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HSV functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HSV functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + __constant__ int c_HsvSectorData[6][3] = { {1,3,0}, {1,0,2}, {3,0,1}, {0,2,1}, {0,1,3}, {2,1,0} }; + + template static __device__ void HSV2RGBConvert(const T& src, float* dst) + { + const float hscale = 6.f / hr; + + float h = src.x, s = src.y, v = src.z; + float b = v, g = v, r = v; + + if (s != 0) + { + h *= hscale; + + if( h < 0 ) + do h += 6; while( h < 0 ); + else if( h >= 6 ) + do h -= 6; while( h >= 6 ); + + int sector = __float2int_rd(h); + h -= sector; + + if ( (unsigned)sector >= 6u ) + { + sector = 0; + h = 0.f; + } + + float tab[4]; + tab[0] = v; + tab[1] = v * (1.f - s); + tab[2] = v * (1.f - s * h); + tab[3] = v * (1.f - s * (1.f - h)); + + b = tab[c_HsvSectorData[sector][0]]; + g = tab[c_HsvSectorData[sector][1]]; + r = tab[c_HsvSectorData[sector][2]]; + } + + dst[bidx] = b; + dst[1] = g; + dst[bidx^2] = r; + } + + template static __device__ void HSV2RGBConvert(const T& src, uchar* dst) + { + float3 buf; + + buf.x = src.x; + buf.y = src.y * (1.f / 255.f); + buf.z = src.z * (1.f / 255.f); + + HSV2RGBConvert(buf, &buf.x); + + dst[0] = saturate_cast(buf.x * 255.f); + dst[1] = saturate_cast(buf.y * 255.f); + dst[2] = saturate_cast(buf.z * 255.f); + } + + template static __device__ uint HSV2RGBConvert(uint src) + { + float3 buf; + + buf.x = src & 0xff; + buf.y = ((src >> 8) & 0xff) * (1.f/255.f); + buf.z = ((src >> 16) & 0xff) * (1.f/255.f); + + HSV2RGBConvert(buf, &buf.x); + + uint dst = 0xffu << 24; + + dst |= saturate_cast(buf.x * 255.f); + dst |= saturate_cast(buf.y * 255.f) << 8; + dst |= saturate_cast(buf.z * 255.f) << 16; + + return dst; + } + + template struct HSV2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + HSV2RGBConvert(src, &dst.x); + setAlpha(dst, ColorChannel::max()); + + return dst; + } + __host__ __device__ __forceinline__ HSV2RGB() {} + __host__ __device__ __forceinline__ HSV2RGB(const HSV2RGB&) {} + }; + + template struct HSV2RGB : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + return HSV2RGBConvert(src); + } + __host__ __device__ __forceinline__ HSV2RGB() {} + __host__ __device__ __forceinline__ HSV2RGB(const HSV2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_HSV2RGB_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::HSV2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::HSV2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::HSV2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::HSV2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +/////////////////////////////////////// RGB <-> HLS //////////////////////////////////////// + + namespace color_detail + { + template static __device__ void RGB2HLSConvert(const float* src, D& dst) + { + const float hscale = hr * (1.f / 360.f); + + float b = src[bidx], g = src[1], r = src[bidx^2]; + float h = 0.f, s = 0.f, l; + float vmin, vmax, diff; + + vmax = vmin = r; + vmax = fmax(vmax, g); + vmax = fmax(vmax, b); + vmin = fmin(vmin, g); + vmin = fmin(vmin, b); + + diff = vmax - vmin; + l = (vmax + vmin) * 0.5f; + + if (diff > numeric_limits::epsilon()) + { + s = (l < 0.5f) * diff / (vmax + vmin); + s += (l >= 0.5f) * diff / (2.0f - vmax - vmin); + + diff = 60.f / diff; + + h = (vmax == r) * (g - b) * diff; + h += (vmax != r && vmax == g) * ((b - r) * diff + 120.f); + h += (vmax != r && vmax != g) * ((r - g) * diff + 240.f); + h += (h < 0.f) * 360.f; + } + + dst.x = h * hscale; + dst.y = l; + dst.z = s; + } + + template static __device__ void RGB2HLSConvert(const uchar* src, D& dst) + { + float3 buf; + + buf.x = src[0] * (1.f / 255.f); + buf.y = src[1] * (1.f / 255.f); + buf.z = src[2] * (1.f / 255.f); + + RGB2HLSConvert(&buf.x, buf); + + dst.x = saturate_cast(buf.x); + dst.y = saturate_cast(buf.y*255.f); + dst.z = saturate_cast(buf.z*255.f); + } + + template static __device__ uint RGB2HLSConvert(uint src) + { + float3 buf; + + buf.x = (0xff & src) * (1.f / 255.f); + buf.y = (0xff & (src >> 8)) * (1.f / 255.f); + buf.z = (0xff & (src >> 16)) * (1.f / 255.f); + + RGB2HLSConvert(&buf.x, buf); + + uint dst = 0xffu << 24; + + dst |= saturate_cast(buf.x); + dst |= saturate_cast(buf.y * 255.f) << 8; + dst |= saturate_cast(buf.z * 255.f) << 16; + + return dst; + } + + template struct RGB2HLS + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2HLSConvert(&src.x, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2HLS() {} + __host__ __device__ __forceinline__ RGB2HLS(const RGB2HLS&) {} + }; + + template struct RGB2HLS : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + return RGB2HLSConvert(src); + } + __host__ __device__ __forceinline__ RGB2HLS() {} + __host__ __device__ __forceinline__ RGB2HLS(const RGB2HLS&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2HLS_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HLS functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HLS functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HLS functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2HLS functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + __constant__ int c_HlsSectorData[6][3] = { {1,3,0}, {1,0,2}, {3,0,1}, {0,2,1}, {0,1,3}, {2,1,0} }; + + template static __device__ void HLS2RGBConvert(const T& src, float* dst) + { + const float hscale = 6.0f / hr; + + float h = src.x, l = src.y, s = src.z; + float b = l, g = l, r = l; + + if (s != 0) + { + float p2 = (l <= 0.5f) * l * (1 + s); + p2 += (l > 0.5f) * (l + s - l * s); + float p1 = 2 * l - p2; + + h *= hscale; + + if( h < 0 ) + do h += 6; while( h < 0 ); + else if( h >= 6 ) + do h -= 6; while( h >= 6 ); + + int sector; + sector = __float2int_rd(h); + + h -= sector; + + float tab[4]; + tab[0] = p2; + tab[1] = p1; + tab[2] = p1 + (p2 - p1) * (1 - h); + tab[3] = p1 + (p2 - p1) * h; + + b = tab[c_HlsSectorData[sector][0]]; + g = tab[c_HlsSectorData[sector][1]]; + r = tab[c_HlsSectorData[sector][2]]; + } + + dst[bidx] = b; + dst[1] = g; + dst[bidx^2] = r; + } + + template static __device__ void HLS2RGBConvert(const T& src, uchar* dst) + { + float3 buf; + + buf.x = src.x; + buf.y = src.y * (1.f / 255.f); + buf.z = src.z * (1.f / 255.f); + + HLS2RGBConvert(buf, &buf.x); + + dst[0] = saturate_cast(buf.x * 255.f); + dst[1] = saturate_cast(buf.y * 255.f); + dst[2] = saturate_cast(buf.z * 255.f); + } + + template static __device__ uint HLS2RGBConvert(uint src) + { + float3 buf; + + buf.x = 0xff & src; + buf.y = (0xff & (src >> 8)) * (1.f / 255.f); + buf.z = (0xff & (src >> 16)) * (1.f / 255.f); + + HLS2RGBConvert(buf, &buf.x); + + uint dst = 0xffu << 24; + + dst |= saturate_cast(buf.x * 255.f); + dst |= saturate_cast(buf.y * 255.f) << 8; + dst |= saturate_cast(buf.z * 255.f) << 16; + + return dst; + } + + template struct HLS2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + HLS2RGBConvert(src, &dst.x); + setAlpha(dst, ColorChannel::max()); + + return dst; + } + __host__ __device__ __forceinline__ HLS2RGB() {} + __host__ __device__ __forceinline__ HLS2RGB(const HLS2RGB&) {} + }; + + template struct HLS2RGB : unary_function + { + __device__ __forceinline__ uint operator()(uint src) const + { + return HLS2RGBConvert(src); + } + __host__ __device__ __forceinline__ HLS2RGB() {} + __host__ __device__ __forceinline__ HLS2RGB(const HLS2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_HLS2RGB_TRAITS(name, scn, dcn, bidx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::HLS2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::HLS2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::HLS2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; \ + template <> struct name ## _full_traits \ + { \ + typedef ::cv::cuda::device::color_detail::HLS2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +///////////////////////////////////// RGB <-> Lab ///////////////////////////////////// + + namespace color_detail + { + enum + { + LAB_CBRT_TAB_SIZE = 1024, + GAMMA_TAB_SIZE = 1024, + lab_shift = xyz_shift, + gamma_shift = 3, + lab_shift2 = (lab_shift + gamma_shift), + LAB_CBRT_TAB_SIZE_B = (256 * 3 / 2 * (1 << gamma_shift)) + }; + + __constant__ ushort c_sRGBGammaTab_b[] = {0,1,1,2,2,3,4,4,5,6,6,7,8,8,9,10,11,11,12,13,14,15,16,17,19,20,21,22,24,25,26,28,29,31,33,34,36,38,40,41,43,45,47,49,51,54,56,58,60,63,65,68,70,73,75,78,81,83,86,89,92,95,98,101,105,108,111,115,118,121,125,129,132,136,140,144,147,151,155,160,164,168,172,176,181,185,190,194,199,204,209,213,218,223,228,233,239,244,249,255,260,265,271,277,282,288,294,300,306,312,318,324,331,337,343,350,356,363,370,376,383,390,397,404,411,418,426,433,440,448,455,463,471,478,486,494,502,510,518,527,535,543,552,560,569,578,586,595,604,613,622,631,641,650,659,669,678,688,698,707,717,727,737,747,757,768,778,788,799,809,820,831,842,852,863,875,886,897,908,920,931,943,954,966,978,990,1002,1014,1026,1038,1050,1063,1075,1088,1101,1113,1126,1139,1152,1165,1178,1192,1205,1218,1232,1245,1259,1273,1287,1301,1315,1329,1343,1357,1372,1386,1401,1415,1430,1445,1460,1475,1490,1505,1521,1536,1551,1567,1583,1598,1614,1630,1646,1662,1678,1695,1711,1728,1744,1761,1778,1794,1811,1828,1846,1863,1880,1897,1915,1933,1950,1968,1986,2004,2022,2040}; + + __device__ __forceinline__ int LabCbrt_b(int i) + { + float x = i * (1.f / (255.f * (1 << gamma_shift))); + return (1 << lab_shift2) * (x < 0.008856f ? x * 7.787f + 0.13793103448275862f : ::cbrtf(x)); + } + + template + __device__ __forceinline__ void RGB2LabConvert_b(const T& src, D& dst) + { + const int Lscale = (116 * 255 + 50) / 100; + const int Lshift = -((16 * 255 * (1 << lab_shift2) + 50) / 100); + + int B = blueIdx == 0 ? src.x : src.z; + int G = src.y; + int R = blueIdx == 0 ? src.z : src.x; + + if (srgb) + { + B = c_sRGBGammaTab_b[B]; + G = c_sRGBGammaTab_b[G]; + R = c_sRGBGammaTab_b[R]; + } + else + { + B <<= 3; + G <<= 3; + R <<= 3; + } + + int fX = LabCbrt_b(CV_DESCALE(B * 778 + G * 1541 + R * 1777, lab_shift)); + int fY = LabCbrt_b(CV_DESCALE(B * 296 + G * 2929 + R * 871, lab_shift)); + int fZ = LabCbrt_b(CV_DESCALE(B * 3575 + G * 448 + R * 73, lab_shift)); + + int L = CV_DESCALE(Lscale * fY + Lshift, lab_shift2); + int a = CV_DESCALE(500 * (fX - fY) + 128 * (1 << lab_shift2), lab_shift2); + int b = CV_DESCALE(200 * (fY - fZ) + 128 * (1 << lab_shift2), lab_shift2); + + dst.x = saturate_cast(L); + dst.y = saturate_cast(a); + dst.z = saturate_cast(b); + } + + __device__ __forceinline__ float splineInterpolate(float x, const float* tab, int n) + { + int ix = ::min(::max(int(x), 0), n-1); + x -= ix; + tab += ix * 4; + return ((tab[3] * x + tab[2]) * x + tab[1]) * x + tab[0]; + } + + __constant__ float c_sRGBGammaTab[] = {0,7.55853e-05,0.,-7.51331e-13,7.55853e-05,7.55853e-05,-2.25399e-12,3.75665e-12,0.000151171,7.55853e-05,9.01597e-12,-6.99932e-12,0.000226756,7.55853e-05,-1.1982e-11,2.41277e-12,0.000302341,7.55853e-05,-4.74369e-12,1.19001e-11,0.000377927,7.55853e-05,3.09568e-11,-2.09095e-11,0.000453512,7.55853e-05,-3.17718e-11,1.35303e-11,0.000529097,7.55853e-05,8.81905e-12,-4.10782e-12,0.000604683,7.55853e-05,-3.50439e-12,2.90097e-12,0.000680268,7.55853e-05,5.19852e-12,-7.49607e-12,0.000755853,7.55853e-05,-1.72897e-11,2.70833e-11,0.000831439,7.55854e-05,6.39602e-11,-4.26295e-11,0.000907024,7.55854e-05,-6.39282e-11,2.70193e-11,0.000982609,7.55853e-05,1.71298e-11,-7.24017e-12,0.00105819,7.55853e-05,-4.59077e-12,1.94137e-12,0.00113378,7.55853e-05,1.23333e-12,-5.25291e-13,0.00120937,7.55853e-05,-3.42545e-13,1.59799e-13,0.00128495,7.55853e-05,1.36852e-13,-1.13904e-13,0.00136054,7.55853e-05,-2.04861e-13,2.95818e-13,0.00143612,7.55853e-05,6.82594e-13,-1.06937e-12,0.00151171,7.55853e-05,-2.52551e-12,3.98166e-12,0.00158729,7.55853e-05,9.41946e-12,-1.48573e-11,0.00166288,7.55853e-05,-3.51523e-11,5.54474e-11,0.00173846,7.55854e-05,1.3119e-10,-9.0517e-11,0.00181405,7.55854e-05,-1.40361e-10,7.37899e-11,0.00188963,7.55853e-05,8.10085e-11,-8.82272e-11,0.00196522,7.55852e-05,-1.83673e-10,1.62704e-10,0.0020408,7.55853e-05,3.04438e-10,-2.13341e-10,0.00211639,7.55853e-05,-3.35586e-10,2.25e-10,0.00219197,7.55853e-05,3.39414e-10,-2.20997e-10,0.00226756,7.55853e-05,-3.23576e-10,1.93326e-10,0.00234315,7.55853e-05,2.564e-10,-8.66446e-11,0.00241873,7.55855e-05,-3.53328e-12,-7.9578e-11,0.00249432,7.55853e-05,-2.42267e-10,1.72126e-10,0.0025699,7.55853e-05,2.74111e-10,-1.43265e-10,0.00264549,7.55854e-05,-1.55683e-10,-6.47292e-11,0.00272107,7.55849e-05,-3.4987e-10,8.67842e-10,0.00279666,7.55868e-05,2.25366e-09,-3.8723e-09,0.00287224,7.55797e-05,-9.36325e-09,1.5087e-08,0.00294783,7.56063e-05,3.58978e-08,-5.69415e-08,0.00302341,7.55072e-05,-1.34927e-07,2.13144e-07,0.003099,7.58768e-05,5.04507e-07,1.38713e-07,0.00317552,7.7302e-05,9.20646e-07,-1.55186e-07,0.00325359,7.86777e-05,4.55087e-07,4.26813e-08,0.00333276,7.97159e-05,5.83131e-07,-1.06495e-08,0.00341305,8.08502e-05,5.51182e-07,3.87467e-09,0.00349446,8.19642e-05,5.62806e-07,-1.92586e-10,0.00357698,8.30892e-05,5.62228e-07,1.0866e-09,0.00366063,8.4217e-05,5.65488e-07,5.02818e-10,0.00374542,8.53494e-05,5.66997e-07,8.60211e-10,0.00383133,8.6486e-05,5.69577e-07,7.13044e-10,0.00391839,8.76273e-05,5.71716e-07,4.78527e-10,0.00400659,8.87722e-05,5.73152e-07,1.09818e-09,0.00409594,8.99218e-05,5.76447e-07,2.50964e-10,0.00418644,9.10754e-05,5.772e-07,1.15762e-09,0.00427809,9.22333e-05,5.80672e-07,2.40865e-10,0.0043709,9.33954e-05,5.81395e-07,1.13854e-09,0.00446488,9.45616e-05,5.84811e-07,3.27267e-10,0.00456003,9.57322e-05,5.85792e-07,8.1197e-10,0.00465635,9.69062e-05,5.88228e-07,6.15823e-10,0.00475384,9.80845e-05,5.90076e-07,9.15747e-10,0.00485252,9.92674e-05,5.92823e-07,3.778e-10,0.00495238,0.000100454,5.93956e-07,8.32623e-10,0.00505343,0.000101645,5.96454e-07,4.82695e-10,0.00515567,0.000102839,5.97902e-07,9.61904e-10,0.00525911,0.000104038,6.00788e-07,3.26281e-10,0.00536375,0.00010524,6.01767e-07,9.926e-10,0.00546959,0.000106447,6.04745e-07,3.59933e-10,0.00557664,0.000107657,6.05824e-07,8.2728e-10,0.0056849,0.000108871,6.08306e-07,5.21898e-10,0.00579438,0.00011009,6.09872e-07,8.10492e-10,0.00590508,0.000111312,6.12303e-07,4.27046e-10,0.00601701,0.000112538,6.13585e-07,7.40878e-10,0.00613016,0.000113767,6.15807e-07,8.00469e-10,0.00624454,0.000115001,6.18209e-07,2.48178e-10,0.00636016,0.000116238,6.18953e-07,1.00073e-09,0.00647702,0.000117479,6.21955e-07,4.05654e-10,0.00659512,0.000118724,6.23172e-07,6.36192e-10,0.00671447,0.000119973,6.25081e-07,7.74927e-10,0.00683507,0.000121225,6.27406e-07,4.54975e-10,0.00695692,0.000122481,6.28771e-07,6.64841e-10,0.00708003,0.000123741,6.30765e-07,6.10972e-10,0.00720441,0.000125004,6.32598e-07,6.16543e-10,0.00733004,0.000126271,6.34448e-07,6.48204e-10,0.00745695,0.000127542,6.36392e-07,5.15835e-10,0.00758513,0.000128816,6.3794e-07,5.48103e-10,0.00771458,0.000130094,6.39584e-07,1.01706e-09,0.00784532,0.000131376,6.42635e-07,4.0283e-11,0.00797734,0.000132661,6.42756e-07,6.84471e-10,0.00811064,0.000133949,6.4481e-07,9.47144e-10,0.00824524,0.000135241,6.47651e-07,1.83472e-10,0.00838112,0.000136537,6.48201e-07,1.11296e-09,0.00851831,0.000137837,6.5154e-07,2.13163e-11,0.0086568,0.00013914,6.51604e-07,6.64462e-10,0.00879659,0.000140445,6.53598e-07,1.04613e-09,0.00893769,0.000141756,6.56736e-07,-1.92377e-10,0.0090801,0.000143069,6.56159e-07,1.58601e-09,0.00922383,0.000144386,6.60917e-07,-5.63754e-10,0.00936888,0.000145706,6.59226e-07,1.60033e-09,0.00951524,0.000147029,6.64027e-07,-2.49543e-10,0.00966294,0.000148356,6.63278e-07,1.26043e-09,0.00981196,0.000149687,6.67059e-07,-1.35572e-10,0.00996231,0.00015102,6.66653e-07,1.14458e-09,0.010114,0.000152357,6.70086e-07,2.13864e-10,0.010267,0.000153698,6.70728e-07,7.93856e-10,0.0104214,0.000155042,6.73109e-07,3.36077e-10,0.0105771,0.000156389,6.74118e-07,6.55765e-10,0.0107342,0.000157739,6.76085e-07,7.66211e-10,0.0108926,0.000159094,6.78384e-07,4.66116e-12,0.0110524,0.000160451,6.78398e-07,1.07775e-09,0.0112135,0.000161811,6.81631e-07,3.41023e-10,0.011376,0.000163175,6.82654e-07,3.5205e-10,0.0115398,0.000164541,6.8371e-07,1.04473e-09,0.0117051,0.000165912,6.86844e-07,1.25757e-10,0.0118717,0.000167286,6.87222e-07,3.14818e-10,0.0120396,0.000168661,6.88166e-07,1.40886e-09,0.012209,0.000170042,6.92393e-07,-3.62244e-10,0.0123797,0.000171425,6.91306e-07,9.71397e-10,0.0125518,0.000172811,6.9422e-07,2.02003e-10,0.0127253,0.0001742,6.94826e-07,1.01448e-09,0.0129002,0.000175593,6.97869e-07,3.96653e-10,0.0130765,0.00017699,6.99059e-07,1.92927e-10,0.0132542,0.000178388,6.99638e-07,6.94305e-10,0.0134333,0.00017979,7.01721e-07,7.55108e-10,0.0136138,0.000181195,7.03986e-07,1.05918e-11,0.0137957,0.000182603,7.04018e-07,1.06513e-09,0.013979,0.000184015,7.07214e-07,3.85512e-10,0.0141637,0.00018543,7.0837e-07,1.86769e-10,0.0143499,0.000186848,7.0893e-07,7.30116e-10,0.0145374,0.000188268,7.11121e-07,6.17983e-10,0.0147264,0.000189692,7.12975e-07,5.23282e-10,0.0149168,0.000191119,7.14545e-07,8.28398e-11,0.0151087,0.000192549,7.14793e-07,1.0081e-09,0.0153019,0.000193981,7.17817e-07,5.41244e-10,0.0154966,0.000195418,7.19441e-07,-3.7907e-10,0.0156928,0.000196856,7.18304e-07,1.90641e-09,0.0158903,0.000198298,7.24023e-07,-7.27387e-10,0.0160893,0.000199744,7.21841e-07,1.00317e-09,0.0162898,0.000201191,7.24851e-07,4.39949e-10,0.0164917,0.000202642,7.2617e-07,9.6234e-10,0.0166951,0.000204097,7.29057e-07,-5.64019e-10,0.0168999,0.000205554,7.27365e-07,1.29374e-09,0.0171062,0.000207012,7.31247e-07,9.77025e-10,0.017314,0.000208478,7.34178e-07,-1.47651e-09,0.0175232,0.000209942,7.29748e-07,3.06636e-09,0.0177338,0.00021141,7.38947e-07,-1.47573e-09,0.017946,0.000212884,7.3452e-07,9.7386e-10,0.0181596,0.000214356,7.37442e-07,1.30562e-09,0.0183747,0.000215835,7.41358e-07,-6.08376e-10,0.0185913,0.000217315,7.39533e-07,1.12785e-09,0.0188093,0.000218798,7.42917e-07,-1.77711e-10,0.0190289,0.000220283,7.42384e-07,1.44562e-09,0.0192499,0.000221772,7.46721e-07,-1.68825e-11,0.0194724,0.000223266,7.4667e-07,4.84533e-10,0.0196964,0.000224761,7.48124e-07,-5.85298e-11,0.0199219,0.000226257,7.47948e-07,1.61217e-09,0.0201489,0.000227757,7.52785e-07,-8.02136e-10,0.0203775,0.00022926,7.50378e-07,1.59637e-09,0.0206075,0.000230766,7.55167e-07,4.47168e-12,0.020839,0.000232276,7.55181e-07,2.48387e-10,0.021072,0.000233787,7.55926e-07,8.6474e-10,0.0213066,0.000235302,7.5852e-07,1.78299e-11,0.0215426,0.000236819,7.58573e-07,9.26567e-10,0.0217802,0.000238339,7.61353e-07,1.34529e-12,0.0220193,0.000239862,7.61357e-07,9.30659e-10,0.0222599,0.000241387,7.64149e-07,1.34529e-12,0.0225021,0.000242915,7.64153e-07,9.26567e-10,0.0227458,0.000244447,7.66933e-07,1.76215e-11,0.022991,0.00024598,7.66986e-07,8.65536e-10,0.0232377,0.000247517,7.69582e-07,2.45677e-10,0.023486,0.000249057,7.70319e-07,1.44193e-11,0.0237358,0.000250598,7.70363e-07,1.55918e-09,0.0239872,0.000252143,7.7504e-07,-6.63173e-10,0.0242401,0.000253691,7.73051e-07,1.09357e-09,0.0244946,0.000255241,7.76331e-07,1.41919e-11,0.0247506,0.000256793,7.76374e-07,7.12248e-10,0.0250082,0.000258348,7.78511e-07,8.62049e-10,0.0252673,0.000259908,7.81097e-07,-4.35061e-10,0.025528,0.000261469,7.79792e-07,8.7825e-10,0.0257902,0.000263031,7.82426e-07,6.47181e-10,0.0260541,0.000264598,7.84368e-07,2.58448e-10,0.0263194,0.000266167,7.85143e-07,1.81558e-10,0.0265864,0.000267738,7.85688e-07,8.78041e-10,0.0268549,0.000269312,7.88322e-07,3.15102e-11,0.027125,0.000270889,7.88417e-07,8.58525e-10,0.0273967,0.000272468,7.90992e-07,2.59812e-10,0.02767,0.000274051,7.91772e-07,-3.5224e-11,0.0279448,0.000275634,7.91666e-07,1.74377e-09,0.0282212,0.000277223,7.96897e-07,-1.35196e-09,0.0284992,0.000278813,7.92841e-07,1.80141e-09,0.0287788,0.000280404,7.98246e-07,-2.65629e-10,0.0290601,0.000281999,7.97449e-07,1.12374e-09,0.0293428,0.000283598,8.0082e-07,-5.04106e-10,0.0296272,0.000285198,7.99308e-07,8.92764e-10,0.0299132,0.000286799,8.01986e-07,6.58379e-10,0.0302008,0.000288405,8.03961e-07,1.98971e-10,0.0304901,0.000290014,8.04558e-07,4.08382e-10,0.0307809,0.000291624,8.05783e-07,3.01839e-11,0.0310733,0.000293236,8.05874e-07,1.33343e-09,0.0313673,0.000294851,8.09874e-07,2.2419e-10,0.031663,0.000296472,8.10547e-07,-3.67606e-10,0.0319603,0.000298092,8.09444e-07,1.24624e-09,0.0322592,0.000299714,8.13182e-07,-8.92025e-10,0.0325597,0.000301338,8.10506e-07,2.32183e-09,0.0328619,0.000302966,8.17472e-07,-9.44719e-10,0.0331657,0.000304598,8.14638e-07,1.45703e-09,0.0334711,0.000306232,8.19009e-07,-1.15805e-09,0.0337781,0.000307866,8.15535e-07,3.17507e-09,0.0340868,0.000309507,8.2506e-07,-4.09161e-09,0.0343971,0.000311145,8.12785e-07,5.74079e-09,0.0347091,0.000312788,8.30007e-07,-3.97034e-09,0.0350227,0.000314436,8.18096e-07,2.68985e-09,0.035338,0.00031608,8.26166e-07,6.61676e-10,0.0356549,0.000317734,8.28151e-07,-1.61123e-09,0.0359734,0.000319386,8.23317e-07,2.05786e-09,0.0362936,0.000321038,8.29491e-07,8.30388e-10,0.0366155,0.0003227,8.31982e-07,-1.65424e-09,0.036939,0.000324359,8.27019e-07,2.06129e-09,0.0372642,0.000326019,8.33203e-07,8.59719e-10,0.0375911,0.000327688,8.35782e-07,-1.77488e-09,0.0379196,0.000329354,8.30458e-07,2.51464e-09,0.0382498,0.000331023,8.38002e-07,-8.33135e-10,0.0385817,0.000332696,8.35502e-07,8.17825e-10,0.0389152,0.00033437,8.37956e-07,1.28718e-09,0.0392504,0.00033605,8.41817e-07,-2.2413e-09,0.0395873,0.000337727,8.35093e-07,3.95265e-09,0.0399258,0.000339409,8.46951e-07,-2.39332e-09,0.0402661,0.000341095,8.39771e-07,1.89533e-09,0.040608,0.000342781,8.45457e-07,-1.46271e-09,0.0409517,0.000344467,8.41069e-07,3.95554e-09,0.041297,0.000346161,8.52936e-07,-3.18369e-09,0.041644,0.000347857,8.43385e-07,1.32873e-09,0.0419927,0.000349548,8.47371e-07,1.59402e-09,0.0423431,0.000351248,8.52153e-07,-2.54336e-10,0.0426952,0.000352951,8.5139e-07,-5.76676e-10,0.043049,0.000354652,8.4966e-07,2.56114e-09,0.0434045,0.000356359,8.57343e-07,-2.21744e-09,0.0437617,0.000358067,8.50691e-07,2.58344e-09,0.0441206,0.000359776,8.58441e-07,-6.65826e-10,0.0444813,0.000361491,8.56444e-07,7.99218e-11,0.0448436,0.000363204,8.56684e-07,3.46063e-10,0.0452077,0.000364919,8.57722e-07,2.26116e-09,0.0455734,0.000366641,8.64505e-07,-1.94005e-09,0.045941,0.000368364,8.58685e-07,1.77384e-09,0.0463102,0.000370087,8.64007e-07,-1.43005e-09,0.0466811,0.000371811,8.59717e-07,3.94634e-09,0.0470538,0.000373542,8.71556e-07,-3.17946e-09,0.0474282,0.000375276,8.62017e-07,1.32104e-09,0.0478043,0.000377003,8.6598e-07,1.62045e-09,0.0481822,0.00037874,8.70842e-07,-3.52297e-10,0.0485618,0.000380481,8.69785e-07,-2.11211e-10,0.0489432,0.00038222,8.69151e-07,1.19716e-09,0.0493263,0.000383962,8.72743e-07,-8.52026e-10,0.0497111,0.000385705,8.70187e-07,2.21092e-09,0.0500977,0.000387452,8.76819e-07,-5.41339e-10,0.050486,0.000389204,8.75195e-07,-4.5361e-11,0.0508761,0.000390954,8.75059e-07,7.22669e-10,0.0512679,0.000392706,8.77227e-07,8.79936e-10,0.0516615,0.000394463,8.79867e-07,-5.17048e-10,0.0520568,0.000396222,8.78316e-07,1.18833e-09,0.0524539,0.000397982,8.81881e-07,-5.11022e-10,0.0528528,0.000399744,8.80348e-07,8.55683e-10,0.0532534,0.000401507,8.82915e-07,8.13562e-10,0.0536558,0.000403276,8.85356e-07,-3.84603e-10,0.05406,0.000405045,8.84202e-07,7.24962e-10,0.0544659,0.000406816,8.86377e-07,1.20986e-09,0.0548736,0.000408592,8.90006e-07,-1.83896e-09,0.0552831,0.000410367,8.84489e-07,2.42071e-09,0.0556944,0.000412143,8.91751e-07,-3.93413e-10,0.0561074,0.000413925,8.90571e-07,-8.46967e-10,0.0565222,0.000415704,8.8803e-07,3.78122e-09,0.0569388,0.000417491,8.99374e-07,-3.1021e-09,0.0573572,0.000419281,8.90068e-07,1.17658e-09,0.0577774,0.000421064,8.93597e-07,2.12117e-09,0.0581993,0.000422858,8.99961e-07,-2.21068e-09,0.0586231,0.000424651,8.93329e-07,2.9961e-09,0.0590486,0.000426447,9.02317e-07,-2.32311e-09,0.059476,0.000428244,8.95348e-07,2.57122e-09,0.0599051,0.000430043,9.03062e-07,-5.11098e-10,0.0603361,0.000431847,9.01528e-07,-5.27166e-10,0.0607688,0.000433649,8.99947e-07,2.61984e-09,0.0612034,0.000435457,9.07806e-07,-2.50141e-09,0.0616397,0.000437265,9.00302e-07,3.66045e-09,0.0620779,0.000439076,9.11283e-07,-4.68977e-09,0.0625179,0.000440885,8.97214e-07,7.64783e-09,0.0629597,0.000442702,9.20158e-07,-7.27499e-09,0.0634033,0.000444521,8.98333e-07,6.55113e-09,0.0638487,0.000446337,9.17986e-07,-4.02844e-09,0.0642959,0.000448161,9.05901e-07,2.11196e-09,0.064745,0.000449979,9.12236e-07,3.03125e-09,0.0651959,0.000451813,9.2133e-07,-6.78648e-09,0.0656486,0.000453635,9.00971e-07,9.21375e-09,0.0661032,0.000455464,9.28612e-07,-7.71684e-09,0.0665596,0.000457299,9.05462e-07,6.7522e-09,0.0670178,0.00045913,9.25718e-07,-4.3907e-09,0.0674778,0.000460968,9.12546e-07,3.36e-09,0.0679397,0.000462803,9.22626e-07,-1.59876e-09,0.0684034,0.000464644,9.1783e-07,3.0351e-09,0.068869,0.000466488,9.26935e-07,-3.09101e-09,0.0693364,0.000468333,9.17662e-07,1.8785e-09,0.0698057,0.000470174,9.23298e-07,3.02733e-09,0.0702768,0.00047203,9.3238e-07,-6.53722e-09,0.0707497,0.000473875,9.12768e-07,8.22054e-09,0.0712245,0.000475725,9.37429e-07,-3.99325e-09,0.0717012,0.000477588,9.2545e-07,3.01839e-10,0.0721797,0.00047944,9.26355e-07,2.78597e-09,0.0726601,0.000481301,9.34713e-07,-3.99507e-09,0.0731423,0.000483158,9.22728e-07,5.7435e-09,0.0736264,0.000485021,9.39958e-07,-4.07776e-09,0.0741123,0.000486888,9.27725e-07,3.11695e-09,0.0746002,0.000488753,9.37076e-07,-9.39394e-10,0.0750898,0.000490625,9.34258e-07,6.4055e-10,0.0755814,0.000492495,9.3618e-07,-1.62265e-09,0.0760748,0.000494363,9.31312e-07,5.84995e-09,0.0765701,0.000496243,9.48861e-07,-6.87601e-09,0.0770673,0.00049812,9.28233e-07,6.75296e-09,0.0775664,0.000499997,9.48492e-07,-5.23467e-09,0.0780673,0.000501878,9.32788e-07,6.73523e-09,0.0785701,0.000503764,9.52994e-07,-6.80514e-09,0.0790748,0.000505649,9.32578e-07,5.5842e-09,0.0795814,0.000507531,9.49331e-07,-6.30583e-10,0.0800899,0.000509428,9.47439e-07,-3.0618e-09,0.0806003,0.000511314,9.38254e-07,5.4273e-09,0.0811125,0.000513206,9.54536e-07,-3.74627e-09,0.0816267,0.000515104,9.43297e-07,2.10713e-09,0.0821427,0.000516997,9.49618e-07,2.76839e-09,0.0826607,0.000518905,9.57924e-07,-5.73006e-09,0.0831805,0.000520803,9.40733e-07,5.25072e-09,0.0837023,0.0005227,9.56486e-07,-3.71718e-10,0.084226,0.000524612,9.5537e-07,-3.76404e-09,0.0847515,0.000526512,9.44078e-07,7.97735e-09,0.085279,0.000528424,9.6801e-07,-5.79367e-09,0.0858084,0.000530343,9.50629e-07,2.96268e-10,0.0863397,0.000532245,9.51518e-07,4.6086e-09,0.0868729,0.000534162,9.65344e-07,-3.82947e-09,0.087408,0.000536081,9.53856e-07,3.25861e-09,0.087945,0.000537998,9.63631e-07,-1.7543e-09,0.088484,0.00053992,9.58368e-07,3.75849e-09,0.0890249,0.000541848,9.69644e-07,-5.82891e-09,0.0895677,0.00054377,9.52157e-07,4.65593e-09,0.0901124,0.000545688,9.66125e-07,2.10643e-09,0.0906591,0.000547627,9.72444e-07,-5.63099e-09,0.0912077,0.000549555,9.55551e-07,5.51627e-09,0.0917582,0.000551483,9.721e-07,-1.53292e-09,0.0923106,0.000553422,9.67501e-07,6.15311e-10,0.092865,0.000555359,9.69347e-07,-9.28291e-10,0.0934213,0.000557295,9.66562e-07,3.09774e-09,0.0939796,0.000559237,9.75856e-07,-4.01186e-09,0.0945398,0.000561177,9.6382e-07,5.49892e-09,0.095102,0.000563121,9.80317e-07,-3.08258e-09,0.0956661,0.000565073,9.71069e-07,-6.19176e-10,0.0962321,0.000567013,9.69212e-07,5.55932e-09,0.0968001,0.000568968,9.8589e-07,-6.71704e-09,0.09737,0.00057092,9.65738e-07,6.40762e-09,0.0979419,0.00057287,9.84961e-07,-4.0122e-09,0.0985158,0.000574828,9.72925e-07,2.19059e-09,0.0990916,0.000576781,9.79496e-07,2.70048e-09,0.0996693,0.000578748,9.87598e-07,-5.54193e-09,0.100249,0.000580706,9.70972e-07,4.56597e-09,0.100831,0.000582662,9.8467e-07,2.17923e-09,0.101414,0.000584638,9.91208e-07,-5.83232e-09,0.102,0.000586603,9.73711e-07,6.24884e-09,0.102588,0.000588569,9.92457e-07,-4.26178e-09,0.103177,0.000590541,9.79672e-07,3.34781e-09,0.103769,0.00059251,9.89715e-07,-1.67904e-09,0.104362,0.000594485,9.84678e-07,3.36839e-09,0.104958,0.000596464,9.94783e-07,-4.34397e-09,0.105555,0.000598441,9.81751e-07,6.55696e-09,0.106155,0.000600424,1.00142e-06,-6.98272e-09,0.106756,0.000602406,9.80474e-07,6.4728e-09,0.107359,0.000604386,9.99893e-07,-4.00742e-09,0.107965,0.000606374,9.8787e-07,2.10654e-09,0.108572,0.000608356,9.9419e-07,3.0318e-09,0.109181,0.000610353,1.00329e-06,-6.7832e-09,0.109793,0.00061234,9.82936e-07,9.1998e-09,0.110406,0.000614333,1.01054e-06,-7.6642e-09,0.111021,0.000616331,9.87543e-07,6.55579e-09,0.111639,0.000618326,1.00721e-06,-3.65791e-09,0.112258,0.000620329,9.96236e-07,6.25467e-10,0.112879,0.000622324,9.98113e-07,1.15593e-09,0.113503,0.000624323,1.00158e-06,2.20158e-09,0.114128,0.000626333,1.00819e-06,-2.51191e-09,0.114755,0.000628342,1.00065e-06,3.95517e-10,0.115385,0.000630345,1.00184e-06,9.29807e-10,0.116016,0.000632351,1.00463e-06,3.33599e-09,0.116649,0.00063437,1.01463e-06,-6.82329e-09,0.117285,0.000636379,9.94163e-07,9.05595e-09,0.117922,0.000638395,1.02133e-06,-7.04862e-09,0.118562,0.000640416,1.00019e-06,4.23737e-09,0.119203,0.000642429,1.0129e-06,-2.45033e-09,0.119847,0.000644448,1.00555e-06,5.56395e-09,0.120492,0.000646475,1.02224e-06,-4.9043e-09,0.121139,0.000648505,1.00753e-06,-8.47952e-10,0.121789,0.000650518,1.00498e-06,8.29622e-09,0.122441,0.000652553,1.02987e-06,-9.98538e-09,0.123094,0.000654582,9.99914e-07,9.2936e-09,0.12375,0.00065661,1.02779e-06,-4.83707e-09,0.124407,0.000658651,1.01328e-06,2.60411e-09,0.125067,0.000660685,1.0211e-06,-5.57945e-09,0.125729,0.000662711,1.00436e-06,1.22631e-08,0.126392,0.000664756,1.04115e-06,-1.36704e-08,0.127058,0.000666798,1.00014e-06,1.26161e-08,0.127726,0.000668836,1.03798e-06,-6.99155e-09,0.128396,0.000670891,1.01701e-06,4.48836e-10,0.129068,0.000672926,1.01836e-06,5.19606e-09,0.129742,0.000674978,1.03394e-06,-6.3319e-09,0.130418,0.000677027,1.01495e-06,5.2305e-09,0.131096,0.000679073,1.03064e-06,3.11123e-10,0.131776,0.000681135,1.03157e-06,-6.47511e-09,0.132458,0.000683179,1.01215e-06,1.06882e-08,0.133142,0.000685235,1.04421e-06,-6.47519e-09,0.133829,0.000687304,1.02479e-06,3.11237e-10,0.134517,0.000689355,1.02572e-06,5.23035e-09,0.135207,0.000691422,1.04141e-06,-6.3316e-09,0.1359,0.000693486,1.02242e-06,5.19484e-09,0.136594,0.000695546,1.038e-06,4.53497e-10,0.137291,0.000697623,1.03936e-06,-7.00891e-09,0.137989,0.000699681,1.01834e-06,1.2681e-08,0.13869,0.000701756,1.05638e-06,-1.39128e-08,0.139393,0.000703827,1.01464e-06,1.31679e-08,0.140098,0.000705896,1.05414e-06,-8.95659e-09,0.140805,0.000707977,1.02727e-06,7.75742e-09,0.141514,0.000710055,1.05055e-06,-7.17182e-09,0.142225,0.000712135,1.02903e-06,6.02862e-09,0.142938,0.000714211,1.04712e-06,-2.04163e-09,0.143653,0.000716299,1.04099e-06,2.13792e-09,0.144371,0.000718387,1.04741e-06,-6.51009e-09,0.14509,0.000720462,1.02787e-06,9.00123e-09,0.145812,0.000722545,1.05488e-06,3.07523e-10,0.146535,0.000724656,1.0558e-06,-1.02312e-08,0.147261,0.000726737,1.02511e-06,1.0815e-08,0.147989,0.000728819,1.05755e-06,-3.22681e-09,0.148719,0.000730925,1.04787e-06,2.09244e-09,0.14945,0.000733027,1.05415e-06,-5.143e-09,0.150185,0.00073512,1.03872e-06,3.57844e-09,0.150921,0.000737208,1.04946e-06,5.73027e-09,0.151659,0.000739324,1.06665e-06,-1.15983e-08,0.152399,0.000741423,1.03185e-06,1.08605e-08,0.153142,0.000743519,1.06443e-06,-2.04106e-09,0.153886,0.000745642,1.05831e-06,-2.69642e-09,0.154633,0.00074775,1.05022e-06,-2.07425e-09,0.155382,0.000749844,1.044e-06,1.09934e-08,0.156133,0.000751965,1.07698e-06,-1.20972e-08,0.156886,0.000754083,1.04069e-06,7.59288e-09,0.157641,0.000756187,1.06347e-06,-3.37305e-09,0.158398,0.000758304,1.05335e-06,5.89921e-09,0.159158,0.000760428,1.07104e-06,-5.32248e-09,0.159919,0.000762554,1.05508e-06,4.8927e-10,0.160683,0.000764666,1.05654e-06,3.36547e-09,0.161448,0.000766789,1.06664e-06,9.50081e-10,0.162216,0.000768925,1.06949e-06,-7.16568e-09,0.162986,0.000771043,1.04799e-06,1.28114e-08,0.163758,0.000773177,1.08643e-06,-1.42774e-08,0.164533,0.000775307,1.0436e-06,1.44956e-08,0.165309,0.000777438,1.08708e-06,-1.39025e-08,0.166087,0.00077957,1.04538e-06,1.13118e-08,0.166868,0.000781695,1.07931e-06,-1.54224e-09,0.167651,0.000783849,1.07468e-06,-5.14312e-09,0.168436,0.000785983,1.05925e-06,7.21381e-09,0.169223,0.000788123,1.0809e-06,-8.81096e-09,0.170012,0.000790259,1.05446e-06,1.31289e-08,0.170803,0.000792407,1.09385e-06,-1.39022e-08,0.171597,0.000794553,1.05214e-06,1.26775e-08,0.172392,0.000796695,1.09018e-06,-7.00557e-09,0.17319,0.000798855,1.06916e-06,4.43796e-10,0.17399,0.000800994,1.07049e-06,5.23031e-09,0.174792,0.000803151,1.08618e-06,-6.46397e-09,0.175596,0.000805304,1.06679e-06,5.72444e-09,0.176403,0.000807455,1.08396e-06,-1.53254e-09,0.177211,0.000809618,1.07937e-06,4.05673e-10,0.178022,0.000811778,1.08058e-06,-9.01916e-11,0.178835,0.000813939,1.08031e-06,-4.49821e-11,0.17965,0.000816099,1.08018e-06,2.70234e-10,0.180467,0.00081826,1.08099e-06,-1.03603e-09,0.181286,0.000820419,1.07788e-06,3.87392e-09,0.182108,0.000822587,1.0895e-06,4.41522e-10,0.182932,0.000824767,1.09083e-06,-5.63997e-09,0.183758,0.000826932,1.07391e-06,7.21707e-09,0.184586,0.000829101,1.09556e-06,-8.32718e-09,0.185416,0.000831267,1.07058e-06,1.11907e-08,0.186248,0.000833442,1.10415e-06,-6.63336e-09,0.187083,0.00083563,1.08425e-06,4.41484e-10,0.187919,0.0008378,1.08557e-06,4.86754e-09,0.188758,0.000839986,1.10017e-06,-5.01041e-09,0.189599,0.000842171,1.08514e-06,2.72811e-10,0.190443,0.000844342,1.08596e-06,3.91916e-09,0.191288,0.000846526,1.09772e-06,-1.04819e-09,0.192136,0.000848718,1.09457e-06,2.73531e-10,0.192985,0.000850908,1.0954e-06,-4.58916e-11,0.193837,0.000853099,1.09526e-06,-9.01158e-11,0.194692,0.000855289,1.09499e-06,4.06506e-10,0.195548,0.00085748,1.09621e-06,-1.53595e-09,0.196407,0.000859668,1.0916e-06,5.73717e-09,0.197267,0.000861869,1.10881e-06,-6.51164e-09,0.19813,0.000864067,1.08928e-06,5.40831e-09,0.198995,0.000866261,1.1055e-06,-2.20401e-10,0.199863,0.000868472,1.10484e-06,-4.52652e-09,0.200732,0.000870668,1.09126e-06,3.42508e-09,0.201604,0.000872861,1.10153e-06,5.72762e-09,0.202478,0.000875081,1.11872e-06,-1.14344e-08,0.203354,0.000877284,1.08441e-06,1.02076e-08,0.204233,0.000879484,1.11504e-06,4.06355e-10,0.205113,0.000881715,1.11626e-06,-1.18329e-08,0.205996,0.000883912,1.08076e-06,1.71227e-08,0.206881,0.000886125,1.13213e-06,-1.19546e-08,0.207768,0.000888353,1.09626e-06,8.93465e-10,0.208658,0.000890548,1.09894e-06,8.38062e-09,0.209549,0.000892771,1.12408e-06,-4.61353e-09,0.210443,0.000895006,1.11024e-06,-4.82756e-09,0.211339,0.000897212,1.09576e-06,9.02245e-09,0.212238,0.00089943,1.12283e-06,-1.45997e-09,0.213138,0.000901672,1.11845e-06,-3.18255e-09,0.214041,0.000903899,1.1089e-06,-7.11073e-10,0.214946,0.000906115,1.10677e-06,6.02692e-09,0.215853,0.000908346,1.12485e-06,-8.49548e-09,0.216763,0.00091057,1.09936e-06,1.30537e-08,0.217675,0.000912808,1.13852e-06,-1.3917e-08,0.218588,0.000915044,1.09677e-06,1.28121e-08,0.219505,0.000917276,1.13521e-06,-7.5288e-09,0.220423,0.000919523,1.11262e-06,2.40205e-09,0.221344,0.000921756,1.11983e-06,-2.07941e-09,0.222267,0.000923989,1.11359e-06,5.91551e-09,0.223192,0.000926234,1.13134e-06,-6.68149e-09,0.224119,0.000928477,1.11129e-06,5.90929e-09,0.225049,0.000930717,1.12902e-06,-2.05436e-09,0.22598,0.000932969,1.12286e-06,2.30807e-09,0.226915,0.000935222,1.12978e-06,-7.17796e-09,0.227851,0.00093746,1.10825e-06,1.15028e-08,0.228789,0.000939711,1.14276e-06,-9.03083e-09,0.22973,0.000941969,1.11566e-06,9.71932e-09,0.230673,0.00094423,1.14482e-06,-1.49452e-08,0.231619,0.000946474,1.09998e-06,2.02591e-08,0.232566,0.000948735,1.16076e-06,-2.13879e-08,0.233516,0.000950993,1.0966e-06,2.05888e-08,0.234468,0.000953247,1.15837e-06,-1.62642e-08,0.235423,0.000955515,1.10957e-06,1.46658e-08,0.236379,0.000957779,1.15357e-06,-1.25966e-08,0.237338,0.000960048,1.11578e-06,5.91793e-09,0.238299,0.000962297,1.13353e-06,3.82602e-09,0.239263,0.000964576,1.14501e-06,-6.3208e-09,0.240229,0.000966847,1.12605e-06,6.55613e-09,0.241197,0.000969119,1.14572e-06,-5.00268e-09,0.242167,0.000971395,1.13071e-06,-1.44659e-09,0.243139,0.000973652,1.12637e-06,1.07891e-08,0.244114,0.000975937,1.15874e-06,-1.19073e-08,0.245091,0.000978219,1.12302e-06,7.03782e-09,0.246071,0.000980486,1.14413e-06,-1.34276e-09,0.247052,0.00098277,1.1401e-06,-1.66669e-09,0.248036,0.000985046,1.1351e-06,8.00935e-09,0.249022,0.00098734,1.15913e-06,-1.54694e-08,0.250011,0.000989612,1.11272e-06,2.4066e-08,0.251002,0.000991909,1.18492e-06,-2.11901e-08,0.251995,0.000994215,1.12135e-06,1.08973e-09,0.25299,0.000996461,1.12462e-06,1.68311e-08,0.253988,0.000998761,1.17511e-06,-8.8094e-09,0.254987,0.00100109,1.14868e-06,-1.13958e-08,0.25599,0.00100335,1.1145e-06,2.45902e-08,0.256994,0.00100565,1.18827e-06,-2.73603e-08,0.258001,0.00100795,1.10618e-06,2.52464e-08,0.25901,0.00101023,1.18192e-06,-1.40207e-08,0.260021,0.00101256,1.13986e-06,1.03387e-09,0.261035,0.00101484,1.14296e-06,9.8853e-09,0.262051,0.00101715,1.17262e-06,-1.07726e-08,0.263069,0.00101947,1.1403e-06,3.40272e-09,0.26409,0.00102176,1.15051e-06,-2.83827e-09,0.265113,0.00102405,1.142e-06,7.95039e-09,0.266138,0.00102636,1.16585e-06,8.39047e-10,0.267166,0.00102869,1.16836e-06,-1.13066e-08,0.268196,0.00103099,1.13444e-06,1.4585e-08,0.269228,0.00103331,1.1782e-06,-1.72314e-08,0.270262,0.00103561,1.1265e-06,2.45382e-08,0.271299,0.00103794,1.20012e-06,-2.13166e-08,0.272338,0.00104028,1.13617e-06,1.12364e-09,0.273379,0.00104255,1.13954e-06,1.68221e-08,0.274423,0.00104488,1.19001e-06,-8.80736e-09,0.275469,0.00104723,1.16358e-06,-1.13948e-08,0.276518,0.00104953,1.1294e-06,2.45839e-08,0.277568,0.00105186,1.20315e-06,-2.73361e-08,0.278621,0.00105418,1.12114e-06,2.51559e-08,0.279677,0.0010565,1.19661e-06,-1.36832e-08,0.280734,0.00105885,1.15556e-06,-2.25706e-10,0.281794,0.00106116,1.15488e-06,1.45862e-08,0.282857,0.00106352,1.19864e-06,-2.83167e-08,0.283921,0.00106583,1.11369e-06,3.90759e-08,0.284988,0.00106817,1.23092e-06,-3.85801e-08,0.286058,0.00107052,1.11518e-06,2.58375e-08,0.287129,0.00107283,1.19269e-06,-5.16498e-09,0.288203,0.0010752,1.1772e-06,-5.17768e-09,0.28928,0.00107754,1.16167e-06,-3.92671e-09,0.290358,0.00107985,1.14988e-06,2.08846e-08,0.29144,0.00108221,1.21254e-06,-2.00072e-08,0.292523,0.00108458,1.15252e-06,-4.60659e-10,0.293609,0.00108688,1.15114e-06,2.18499e-08,0.294697,0.00108925,1.21669e-06,-2.73343e-08,0.295787,0.0010916,1.13468e-06,2.78826e-08,0.29688,0.00109395,1.21833e-06,-2.45915e-08,0.297975,0.00109632,1.14456e-06,1.08787e-08,0.299073,0.00109864,1.17719e-06,1.08788e-08,0.300172,0.00110102,1.20983e-06,-2.45915e-08,0.301275,0.00110337,1.13605e-06,2.78828e-08,0.302379,0.00110573,1.2197e-06,-2.73348e-08,0.303486,0.00110808,1.1377e-06,2.18518e-08,0.304595,0.00111042,1.20325e-06,-4.67556e-10,0.305707,0.00111283,1.20185e-06,-1.99816e-08,0.306821,0.00111517,1.14191e-06,2.07891e-08,0.307937,0.00111752,1.20427e-06,-3.57026e-09,0.309056,0.00111992,1.19356e-06,-6.50797e-09,0.310177,0.00112228,1.17404e-06,-2.00165e-10,0.3113,0.00112463,1.17344e-06,7.30874e-09,0.312426,0.001127,1.19536e-06,7.67424e-10,0.313554,0.00112939,1.19767e-06,-1.03784e-08,0.314685,0.00113176,1.16653e-06,1.09437e-08,0.315818,0.00113412,1.19936e-06,-3.59406e-09,0.316953,0.00113651,1.18858e-06,3.43251e-09,0.318091,0.0011389,1.19888e-06,-1.0136e-08,0.319231,0.00114127,1.16847e-06,7.30915e-09,0.320374,0.00114363,1.1904e-06,1.07018e-08,0.321518,0.00114604,1.2225e-06,-2.03137e-08,0.322666,0.00114842,1.16156e-06,1.09484e-08,0.323815,0.00115078,1.19441e-06,6.32224e-09,0.324967,0.00115319,1.21337e-06,-6.43509e-09,0.326122,0.00115559,1.19407e-06,-1.03842e-08,0.327278,0.00115795,1.16291e-06,1.81697e-08,0.328438,0.00116033,1.21742e-06,-2.6901e-09,0.329599,0.00116276,1.20935e-06,-7.40939e-09,0.330763,0.00116515,1.18713e-06,2.52533e-09,0.331929,0.00116754,1.1947e-06,-2.69191e-09,0.333098,0.00116992,1.18663e-06,8.24218e-09,0.334269,0.00117232,1.21135e-06,-4.74377e-10,0.335443,0.00117474,1.20993e-06,-6.34471e-09,0.336619,0.00117714,1.1909e-06,-3.94922e-09,0.337797,0.00117951,1.17905e-06,2.21417e-08,0.338978,0.00118193,1.24547e-06,-2.50128e-08,0.340161,0.00118435,1.17043e-06,1.8305e-08,0.341346,0.00118674,1.22535e-06,-1.84048e-08,0.342534,0.00118914,1.17013e-06,2.55121e-08,0.343725,0.00119156,1.24667e-06,-2.40389e-08,0.344917,0.00119398,1.17455e-06,1.10389e-08,0.346113,0.00119636,1.20767e-06,9.68574e-09,0.34731,0.0011988,1.23673e-06,-1.99797e-08,0.34851,0.00120122,1.17679e-06,1.06284e-08,0.349713,0.0012036,1.20867e-06,7.26868e-09,0.350917,0.00120604,1.23048e-06,-9.90072e-09,0.352125,0.00120847,1.20078e-06,2.53177e-09,0.353334,0.00121088,1.20837e-06,-2.26199e-10,0.354546,0.0012133,1.20769e-06,-1.62705e-09,0.355761,0.00121571,1.20281e-06,6.73435e-09,0.356978,0.00121813,1.22302e-06,4.49207e-09,0.358197,0.00122059,1.23649e-06,-2.47027e-08,0.359419,0.00122299,1.16238e-06,3.47142e-08,0.360643,0.00122542,1.26653e-06,-2.47472e-08,0.36187,0.00122788,1.19229e-06,4.66965e-09,0.363099,0.00123028,1.20629e-06,6.06872e-09,0.36433,0.00123271,1.2245e-06,8.57729e-10,0.365564,0.00123516,1.22707e-06,-9.49952e-09,0.366801,0.00123759,1.19858e-06,7.33792e-09,0.36804,0.00124001,1.22059e-06,9.95025e-09,0.369281,0.00124248,1.25044e-06,-1.73366e-08,0.370525,0.00124493,1.19843e-06,-2.08464e-10,0.371771,0.00124732,1.1978e-06,1.81704e-08,0.373019,0.00124977,1.25232e-06,-1.28683e-08,0.37427,0.00125224,1.21371e-06,3.50042e-09,0.375524,0.00125468,1.22421e-06,-1.1335e-09,0.37678,0.00125712,1.22081e-06,1.03345e-09,0.378038,0.00125957,1.22391e-06,-3.00023e-09,0.379299,0.00126201,1.21491e-06,1.09676e-08,0.380562,0.00126447,1.24781e-06,-1.10676e-08,0.381828,0.00126693,1.21461e-06,3.50042e-09,0.383096,0.00126937,1.22511e-06,-2.93403e-09,0.384366,0.00127181,1.21631e-06,8.23574e-09,0.385639,0.00127427,1.24102e-06,-2.06607e-10,0.386915,0.00127675,1.2404e-06,-7.40935e-09,0.388193,0.00127921,1.21817e-06,4.1761e-11,0.389473,0.00128165,1.21829e-06,7.24223e-09,0.390756,0.0012841,1.24002e-06,7.91564e-10,0.392042,0.00128659,1.2424e-06,-1.04086e-08,0.393329,0.00128904,1.21117e-06,1.10405e-08,0.39462,0.0012915,1.24429e-06,-3.951e-09,0.395912,0.00129397,1.23244e-06,4.7634e-09,0.397208,0.00129645,1.24673e-06,-1.51025e-08,0.398505,0.0012989,1.20142e-06,2.58443e-08,0.399805,0.00130138,1.27895e-06,-2.86702e-08,0.401108,0.00130385,1.19294e-06,2.92318e-08,0.402413,0.00130632,1.28064e-06,-2.86524e-08,0.403721,0.0013088,1.19468e-06,2.57731e-08,0.405031,0.00131127,1.272e-06,-1.48355e-08,0.406343,0.00131377,1.2275e-06,3.76652e-09,0.407658,0.00131623,1.23879e-06,-2.30784e-10,0.408976,0.00131871,1.2381e-06,-2.84331e-09,0.410296,0.00132118,1.22957e-06,1.16041e-08,0.411618,0.00132367,1.26438e-06,-1.37708e-08,0.412943,0.00132616,1.22307e-06,1.36768e-08,0.41427,0.00132865,1.2641e-06,-1.1134e-08,0.4156,0.00133114,1.2307e-06,1.05714e-09,0.416933,0.00133361,1.23387e-06,6.90538e-09,0.418267,0.00133609,1.25459e-06,1.12372e-09,0.419605,0.00133861,1.25796e-06,-1.14002e-08,0.420945,0.00134109,1.22376e-06,1.46747e-08,0.422287,0.00134358,1.26778e-06,-1.7496e-08,0.423632,0.00134606,1.21529e-06,2.5507e-08,0.424979,0.00134857,1.29182e-06,-2.49272e-08,0.426329,0.00135108,1.21703e-06,1.45972e-08,0.427681,0.00135356,1.26083e-06,-3.65935e-09,0.429036,0.00135607,1.24985e-06,4.00178e-11,0.430393,0.00135857,1.24997e-06,3.49917e-09,0.431753,0.00136108,1.26047e-06,-1.40366e-08,0.433116,0.00136356,1.21836e-06,2.28448e-08,0.43448,0.00136606,1.28689e-06,-1.77378e-08,0.435848,0.00136858,1.23368e-06,1.83043e-08,0.437218,0.0013711,1.28859e-06,-2.56769e-08,0.43859,0.0013736,1.21156e-06,2.47987e-08,0.439965,0.0013761,1.28595e-06,-1.39133e-08,0.441342,0.00137863,1.24421e-06,1.05202e-09,0.442722,0.00138112,1.24737e-06,9.70507e-09,0.444104,0.00138365,1.27649e-06,-1.00698e-08,0.445489,0.00138617,1.24628e-06,7.72123e-10,0.446877,0.00138867,1.24859e-06,6.98132e-09,0.448267,0.00139118,1.26954e-06,1.10477e-09,0.449659,0.00139373,1.27285e-06,-1.14003e-08,0.451054,0.00139624,1.23865e-06,1.4694e-08,0.452452,0.00139876,1.28273e-06,-1.75734e-08,0.453852,0.00140127,1.23001e-06,2.5797e-08,0.455254,0.00140381,1.3074e-06,-2.60097e-08,0.456659,0.00140635,1.22937e-06,1.86371e-08,0.458067,0.00140886,1.28529e-06,-1.8736e-08,0.459477,0.00141137,1.22908e-06,2.65048e-08,0.46089,0.00141391,1.30859e-06,-2.76784e-08,0.462305,0.00141645,1.22556e-06,2.46043e-08,0.463722,0.00141897,1.29937e-06,-1.11341e-08,0.465143,0.00142154,1.26597e-06,-9.87033e-09,0.466565,0.00142404,1.23636e-06,2.08131e-08,0.467991,0.00142657,1.2988e-06,-1.37773e-08,0.469419,0.00142913,1.25746e-06,4.49378e-09,0.470849,0.00143166,1.27094e-06,-4.19781e-09,0.472282,0.00143419,1.25835e-06,1.22975e-08,0.473717,0.00143674,1.29524e-06,-1.51902e-08,0.475155,0.00143929,1.24967e-06,1.86608e-08,0.476596,0.00144184,1.30566e-06,-2.96506e-08,0.478039,0.00144436,1.2167e-06,4.03368e-08,0.479485,0.00144692,1.33771e-06,-4.22896e-08,0.480933,0.00144947,1.21085e-06,3.94148e-08,0.482384,0.00145201,1.32909e-06,-2.59626e-08,0.483837,0.00145459,1.2512e-06,4.83124e-09,0.485293,0.0014571,1.2657e-06,6.63757e-09,0.486751,0.00145966,1.28561e-06,-1.57911e-09,0.488212,0.00146222,1.28087e-06,-3.21468e-10,0.489676,0.00146478,1.27991e-06,2.86517e-09,0.491142,0.00146735,1.2885e-06,-1.11392e-08,0.49261,0.00146989,1.25508e-06,1.18893e-08,0.494081,0.00147244,1.29075e-06,-6.61574e-09,0.495555,0.001475,1.27091e-06,1.45736e-08,0.497031,0.00147759,1.31463e-06,-2.18759e-08,0.49851,0.00148015,1.249e-06,1.33252e-08,0.499992,0.00148269,1.28897e-06,-1.62277e-09,0.501476,0.00148526,1.28411e-06,-6.83421e-09,0.502962,0.00148781,1.2636e-06,2.89596e-08,0.504451,0.00149042,1.35048e-06,-4.93997e-08,0.505943,0.00149298,1.20228e-06,4.94299e-08,0.507437,0.00149553,1.35057e-06,-2.91107e-08,0.508934,0.00149814,1.26324e-06,7.40848e-09,0.510434,0.00150069,1.28547e-06,-5.23187e-10,0.511936,0.00150326,1.2839e-06,-5.31585e-09,0.51344,0.00150581,1.26795e-06,2.17866e-08,0.514947,0.00150841,1.33331e-06,-2.22257e-08,0.516457,0.00151101,1.26663e-06,7.51178e-09,0.517969,0.00151357,1.28917e-06,-7.82128e-09,0.519484,0.00151613,1.2657e-06,2.37733e-08,0.521002,0.00151873,1.33702e-06,-2.76674e-08,0.522522,0.00152132,1.25402e-06,2.72917e-08,0.524044,0.00152391,1.3359e-06,-2.18949e-08,0.525569,0.00152652,1.27021e-06,6.83372e-10,0.527097,0.00152906,1.27226e-06,1.91613e-08,0.528628,0.00153166,1.32974e-06,-1.77241e-08,0.53016,0.00153427,1.27657e-06,-7.86963e-09,0.531696,0.0015368,1.25296e-06,4.92027e-08,0.533234,0.00153945,1.40057e-06,-6.9732e-08,0.534775,0.00154204,1.19138e-06,5.09114e-08,0.536318,0.00154458,1.34411e-06,-1.4704e-08,0.537864,0.00154722,1.3e-06,7.9048e-09,0.539413,0.00154984,1.32371e-06,-1.69152e-08,0.540964,0.00155244,1.27297e-06,1.51355e-10,0.542517,0.00155499,1.27342e-06,1.63099e-08,0.544074,0.00155758,1.32235e-06,-5.78647e-09,0.545633,0.00156021,1.30499e-06,6.83599e-09,0.547194,0.00156284,1.3255e-06,-2.15575e-08,0.548758,0.00156543,1.26083e-06,1.97892e-08,0.550325,0.00156801,1.32019e-06,2.00525e-09,0.551894,0.00157065,1.32621e-06,-2.78103e-08,0.553466,0.00157322,1.24278e-06,4.96314e-08,0.555041,0.00157586,1.39167e-06,-5.1506e-08,0.556618,0.00157849,1.23716e-06,3.71835e-08,0.558198,0.00158107,1.34871e-06,-3.76233e-08,0.55978,0.00158366,1.23584e-06,5.37052e-08,0.561365,0.00158629,1.39695e-06,-5.79884e-08,0.562953,0.00158891,1.22299e-06,5.90392e-08,0.564543,0.00159153,1.4001e-06,-5.89592e-08,0.566136,0.00159416,1.22323e-06,5.7588e-08,0.567731,0.00159678,1.39599e-06,-5.21835e-08,0.569329,0.00159941,1.23944e-06,3.19369e-08,0.57093,0.00160199,1.33525e-06,-1.59594e-08,0.572533,0.00160461,1.28737e-06,3.19006e-08,0.574139,0.00160728,1.38307e-06,-5.20383e-08,0.575748,0.00160989,1.22696e-06,5.70431e-08,0.577359,0.00161251,1.39809e-06,-5.69247e-08,0.578973,0.00161514,1.22731e-06,5.14463e-08,0.580589,0.00161775,1.38165e-06,-2.9651e-08,0.582208,0.00162042,1.2927e-06,7.55339e-09,0.58383,0.00162303,1.31536e-06,-5.62636e-10,0.585455,0.00162566,1.31367e-06,-5.30281e-09,0.587081,0.00162827,1.29776e-06,2.17738e-08,0.588711,0.00163093,1.36309e-06,-2.21875e-08,0.590343,0.00163359,1.29652e-06,7.37164e-09,0.591978,0.00163621,1.31864e-06,-7.29907e-09,0.593616,0.00163882,1.29674e-06,2.18247e-08,0.595256,0.00164148,1.36221e-06,-2.03952e-08,0.596899,0.00164414,1.30103e-06,1.51241e-10,0.598544,0.00164675,1.30148e-06,1.97902e-08,0.600192,0.00164941,1.36085e-06,-1.97074e-08,0.601843,0.00165207,1.30173e-06,-5.65175e-10,0.603496,0.00165467,1.30004e-06,2.1968e-08,0.605152,0.00165734,1.36594e-06,-2.77024e-08,0.606811,0.00165999,1.28283e-06,2.92369e-08,0.608472,0.00166264,1.37054e-06,-2.96407e-08,0.610136,0.00166529,1.28162e-06,2.97215e-08,0.611803,0.00166795,1.37079e-06,-2.96408e-08,0.613472,0.0016706,1.28186e-06,2.92371e-08,0.615144,0.00167325,1.36957e-06,-2.77031e-08,0.616819,0.00167591,1.28647e-06,2.19708e-08,0.618496,0.00167855,1.35238e-06,-5.75407e-10,0.620176,0.00168125,1.35065e-06,-1.9669e-08,0.621858,0.00168389,1.29164e-06,1.96468e-08,0.623544,0.00168653,1.35058e-06,6.86403e-10,0.625232,0.00168924,1.35264e-06,-2.23924e-08,0.626922,0.00169187,1.28547e-06,2.92788e-08,0.628615,0.00169453,1.3733e-06,-3.51181e-08,0.630311,0.00169717,1.26795e-06,5.15889e-08,0.63201,0.00169987,1.42272e-06,-5.2028e-08,0.633711,0.00170255,1.26663e-06,3.73139e-08,0.635415,0.0017052,1.37857e-06,-3.76227e-08,0.637121,0.00170784,1.2657e-06,5.35722e-08,0.63883,0.00171054,1.42642e-06,-5.74567e-08,0.640542,0.00171322,1.25405e-06,5.70456e-08,0.642257,0.0017159,1.42519e-06,-5.15163e-08,0.643974,0.00171859,1.27064e-06,2.98103e-08,0.645694,0.00172122,1.36007e-06,-8.12016e-09,0.647417,0.00172392,1.33571e-06,2.67039e-09,0.649142,0.0017266,1.34372e-06,-2.56152e-09,0.65087,0.00172928,1.33604e-06,7.57571e-09,0.6526,0.00173197,1.35876e-06,-2.77413e-08,0.654334,0.00173461,1.27554e-06,4.3785e-08,0.65607,0.00173729,1.40689e-06,-2.81896e-08,0.657808,0.00174002,1.32233e-06,9.36893e-09,0.65955,0.00174269,1.35043e-06,-9.28617e-09,0.661294,0.00174536,1.32257e-06,2.77757e-08,0.66304,0.00174809,1.4059e-06,-4.2212e-08,0.66479,0.00175078,1.27926e-06,2.1863e-08,0.666542,0.0017534,1.34485e-06,1.43648e-08,0.668297,0.00175613,1.38795e-06,-1.97177e-08,0.670054,0.00175885,1.3288e-06,4.90115e-09,0.671814,0.00176152,1.3435e-06,1.13232e-10,0.673577,0.00176421,1.34384e-06,-5.3542e-09,0.675343,0.00176688,1.32778e-06,2.13035e-08,0.677111,0.0017696,1.39169e-06,-2.02553e-08,0.678882,0.00177232,1.33092e-06,1.13005e-10,0.680656,0.00177499,1.33126e-06,1.98031e-08,0.682432,0.00177771,1.39067e-06,-1.97211e-08,0.684211,0.00178043,1.33151e-06,-5.2349e-10,0.685993,0.00178309,1.32994e-06,2.18151e-08,0.687777,0.00178582,1.39538e-06,-2.71325e-08,0.689564,0.00178853,1.31398e-06,2.71101e-08,0.691354,0.00179124,1.39531e-06,-2.17035e-08,0.693147,0.00179396,1.3302e-06,9.92865e-11,0.694942,0.00179662,1.3305e-06,2.13063e-08,0.69674,0.00179935,1.39442e-06,-2.57198e-08,0.698541,0.00180206,1.31726e-06,2.19682e-08,0.700344,0.00180476,1.38317e-06,-2.54852e-09,0.70215,0.00180752,1.37552e-06,-1.17741e-08,0.703959,0.00181023,1.3402e-06,-9.95999e-09,0.705771,0.00181288,1.31032e-06,5.16141e-08,0.707585,0.00181566,1.46516e-06,-7.72869e-08,0.709402,0.00181836,1.2333e-06,7.87197e-08,0.711222,0.00182106,1.46946e-06,-5.87781e-08,0.713044,0.00182382,1.29312e-06,3.71834e-08,0.714869,0.00182652,1.40467e-06,-3.03511e-08,0.716697,0.00182924,1.31362e-06,2.46161e-08,0.718528,0.00183194,1.38747e-06,-8.5087e-09,0.720361,0.00183469,1.36194e-06,9.41892e-09,0.722197,0.00183744,1.3902e-06,-2.91671e-08,0.724036,0.00184014,1.3027e-06,4.76448e-08,0.725878,0.00184288,1.44563e-06,-4.22028e-08,0.727722,0.00184565,1.31902e-06,1.95682e-09,0.729569,0.00184829,1.3249e-06,3.43754e-08,0.731419,0.00185104,1.42802e-06,-2.0249e-08,0.733271,0.00185384,1.36727e-06,-1.29838e-08,0.735126,0.00185654,1.32832e-06,1.25794e-08,0.736984,0.00185923,1.36606e-06,2.22711e-08,0.738845,0.00186203,1.43287e-06,-4.20594e-08,0.740708,0.00186477,1.3067e-06,2.67571e-08,0.742574,0.00186746,1.38697e-06,-5.36424e-09,0.744443,0.00187022,1.37087e-06,-5.30023e-09,0.746315,0.00187295,1.35497e-06,2.65653e-08,0.748189,0.00187574,1.43467e-06,-4.13564e-08,0.750066,0.00187848,1.3106e-06,1.9651e-08,0.751946,0.00188116,1.36955e-06,2.23572e-08,0.753828,0.00188397,1.43663e-06,-4.9475e-08,0.755714,0.00188669,1.2882e-06,5.63335e-08,0.757602,0.00188944,1.4572e-06,-5.66499e-08,0.759493,0.00189218,1.28725e-06,5.10567e-08,0.761386,0.00189491,1.44042e-06,-2.83677e-08,0.763283,0.00189771,1.35532e-06,2.80962e-09,0.765182,0.00190042,1.36375e-06,1.71293e-08,0.767083,0.0019032,1.41513e-06,-1.17221e-08,0.768988,0.001906,1.37997e-06,-2.98453e-08,0.770895,0.00190867,1.29043e-06,7.14987e-08,0.772805,0.00191146,1.50493e-06,-7.73354e-08,0.774718,0.00191424,1.27292e-06,5.90292e-08,0.776634,0.00191697,1.45001e-06,-3.9572e-08,0.778552,0.00191975,1.33129e-06,3.9654e-08,0.780473,0.00192253,1.45026e-06,-5.94395e-08,0.782397,0.00192525,1.27194e-06,7.88945e-08,0.784324,0.00192803,1.50862e-06,-7.73249e-08,0.786253,0.00193082,1.27665e-06,5.15913e-08,0.788185,0.00193352,1.43142e-06,-9.83099e-09,0.79012,0.00193636,1.40193e-06,-1.22672e-08,0.792058,0.00193912,1.36513e-06,-7.05275e-10,0.793999,0.00194185,1.36301e-06,1.50883e-08,0.795942,0.00194462,1.40828e-06,-4.33147e-11,0.797888,0.00194744,1.40815e-06,-1.49151e-08,0.799837,0.00195021,1.3634e-06,9.93244e-11,0.801788,0.00195294,1.3637e-06,1.45179e-08,0.803743,0.00195571,1.40725e-06,1.43363e-09,0.8057,0.00195853,1.41155e-06,-2.02525e-08,0.80766,0.00196129,1.35079e-06,1.99718e-08,0.809622,0.00196405,1.41071e-06,-3.01649e-11,0.811588,0.00196687,1.41062e-06,-1.9851e-08,0.813556,0.00196964,1.35107e-06,1.98296e-08,0.815527,0.0019724,1.41056e-06,1.37485e-10,0.817501,0.00197522,1.41097e-06,-2.03796e-08,0.819477,0.00197798,1.34983e-06,2.17763e-08,0.821457,0.00198074,1.41516e-06,-7.12085e-09,0.823439,0.00198355,1.3938e-06,6.70707e-09,0.825424,0.00198636,1.41392e-06,-1.97074e-08,0.827412,0.00198913,1.35479e-06,1.25179e-08,0.829402,0.00199188,1.39235e-06,2.92405e-08,0.831396,0.00199475,1.48007e-06,-6.98755e-08,0.833392,0.0019975,1.27044e-06,7.14477e-08,0.835391,0.00200026,1.48479e-06,-3.71014e-08,0.837392,0.00200311,1.37348e-06,1.73533e-08,0.839397,0.00200591,1.42554e-06,-3.23118e-08,0.841404,0.00200867,1.32861e-06,5.2289e-08,0.843414,0.00201148,1.48547e-06,-5.76348e-08,0.845427,0.00201428,1.31257e-06,5.9041e-08,0.847443,0.00201708,1.48969e-06,-5.93197e-08,0.849461,0.00201988,1.31173e-06,5.90289e-08,0.851482,0.00202268,1.48882e-06,-5.75864e-08,0.853507,0.00202549,1.31606e-06,5.21075e-08,0.855533,0.00202828,1.47238e-06,-3.16344e-08,0.857563,0.00203113,1.37748e-06,1.48257e-08,0.859596,0.00203393,1.42196e-06,-2.76684e-08,0.861631,0.00203669,1.33895e-06,3.62433e-08,0.863669,0.00203947,1.44768e-06,1.90463e-09,0.86571,0.00204237,1.45339e-06,-4.38617e-08,0.867754,0.00204515,1.32181e-06,5.43328e-08,0.8698,0.00204796,1.48481e-06,-5.42603e-08,0.87185,0.00205076,1.32203e-06,4.34989e-08,0.873902,0.00205354,1.45252e-06,-5.26029e-10,0.875957,0.00205644,1.45095e-06,-4.13949e-08,0.878015,0.00205922,1.32676e-06,4.68962e-08,0.880075,0.00206201,1.46745e-06,-2.69807e-08,0.882139,0.00206487,1.38651e-06,1.42181e-09,0.884205,0.00206764,1.39077e-06,2.12935e-08,0.886274,0.00207049,1.45465e-06,-2.69912e-08,0.888346,0.00207332,1.37368e-06,2.70664e-08,0.890421,0.00207615,1.45488e-06,-2.16698e-08,0.892498,0.00207899,1.38987e-06,8.14756e-12,0.894579,0.00208177,1.38989e-06,2.16371e-08,0.896662,0.00208462,1.45481e-06,-2.6952e-08,0.898748,0.00208744,1.37395e-06,2.65663e-08,0.900837,0.00209027,1.45365e-06,-1.97084e-08,0.902928,0.00209312,1.39452e-06,-7.33731e-09,0.905023,0.00209589,1.37251e-06,4.90578e-08,0.90712,0.00209878,1.51968e-06,-6.96845e-08,0.90922,0.00210161,1.31063e-06,5.08664e-08,0.911323,0.00210438,1.46323e-06,-1.45717e-08,0.913429,0.00210727,1.41952e-06,7.42038e-09,0.915538,0.00211013,1.44178e-06,-1.51097e-08,0.917649,0.00211297,1.39645e-06,-6.58618e-09,0.919764,0.00211574,1.37669e-06,4.14545e-08,0.921881,0.00211862,1.50105e-06,-4.00222e-08,0.924001,0.0021215,1.38099e-06,-5.7518e-10,0.926124,0.00212426,1.37926e-06,4.23229e-08,0.92825,0.00212714,1.50623e-06,-4.9507e-08,0.930378,0.00213001,1.35771e-06,3.64958e-08,0.93251,0.00213283,1.4672e-06,-3.68713e-08,0.934644,0.00213566,1.35658e-06,5.13848e-08,0.936781,0.00213852,1.51074e-06,-4.94585e-08,0.938921,0.0021414,1.36236e-06,2.72399e-08,0.941064,0.0021442,1.44408e-06,1.0372e-10,0.943209,0.00214709,1.44439e-06,-2.76547e-08,0.945358,0.0021499,1.36143e-06,5.09106e-08,0.947509,0.00215277,1.51416e-06,-5.67784e-08,0.949663,0.00215563,1.34382e-06,5.69935e-08,0.95182,0.00215849,1.5148e-06,-5.19861e-08,0.95398,0.00216136,1.35885e-06,3.17417e-08,0.956143,0.00216418,1.45407e-06,-1.53758e-08,0.958309,0.00216704,1.40794e-06,2.97615e-08,0.960477,0.00216994,1.49723e-06,-4.40657e-08,0.962649,0.00217281,1.36503e-06,2.72919e-08,0.964823,0.00217562,1.44691e-06,-5.49729e-09,0.967,0.0021785,1.43041e-06,-5.30273e-09,0.96918,0.00218134,1.41451e-06,2.67084e-08,0.971363,0.00218425,1.49463e-06,-4.19265e-08,0.973548,0.00218711,1.36885e-06,2.17881e-08,0.975737,0.00218992,1.43422e-06,1.43789e-08,0.977928,0.00219283,1.47735e-06,-1.96989e-08,0.980122,0.00219572,1.41826e-06,4.81221e-09,0.98232,0.00219857,1.43269e-06,4.50048e-10,0.98452,0.00220144,1.43404e-06,-6.61237e-09,0.986722,0.00220429,1.41421e-06,2.59993e-08,0.988928,0.0022072,1.4922e-06,-3.77803e-08,0.991137,0.00221007,1.37886e-06,5.9127e-09,0.993348,0.00221284,1.3966e-06,1.33339e-07,0.995563,0.00221604,1.79662e-06,-5.98872e-07,0.99778,0.00222015,0.,0.}; + + template + __device__ __forceinline__ void RGB2LabConvert_f(const T& src, D& dst) + { + const float _1_3 = 1.0f / 3.0f; + const float _a = 16.0f / 116.0f; + + float B = blueIdx == 0 ? src.x : src.z; + float G = src.y; + float R = blueIdx == 0 ? src.z : src.x; + + if (srgb) + { + B = splineInterpolate(B * GAMMA_TAB_SIZE, c_sRGBGammaTab, GAMMA_TAB_SIZE); + G = splineInterpolate(G * GAMMA_TAB_SIZE, c_sRGBGammaTab, GAMMA_TAB_SIZE); + R = splineInterpolate(R * GAMMA_TAB_SIZE, c_sRGBGammaTab, GAMMA_TAB_SIZE); + } + + float X = B * 0.189828f + G * 0.376219f + R * 0.433953f; + float Y = B * 0.072169f + G * 0.715160f + R * 0.212671f; + float Z = B * 0.872766f + G * 0.109477f + R * 0.017758f; + + float FX = X > 0.008856f ? ::powf(X, _1_3) : (7.787f * X + _a); + float FY = Y > 0.008856f ? ::powf(Y, _1_3) : (7.787f * Y + _a); + float FZ = Z > 0.008856f ? ::powf(Z, _1_3) : (7.787f * Z + _a); + + float L = Y > 0.008856f ? (116.f * FY - 16.f) : (903.3f * Y); + float a = 500.f * (FX - FY); + float b = 200.f * (FY - FZ); + + dst.x = L; + dst.y = a; + dst.z = b; + } + + template struct RGB2Lab; + template + struct RGB2Lab + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2LabConvert_b(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2Lab() {} + __host__ __device__ __forceinline__ RGB2Lab(const RGB2Lab&) {} + }; + template + struct RGB2Lab + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2LabConvert_f(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2Lab() {} + __host__ __device__ __forceinline__ RGB2Lab(const RGB2Lab&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2Lab_TRAITS(name, scn, dcn, srgb, blueIdx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2Lab functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + __constant__ float c_sRGBInvGammaTab[] = {0,0.0126255,0.,-8.33961e-06,0.0126172,0.0126005,-2.50188e-05,4.1698e-05,0.0252344,0.0126756,0.000100075,-0.000158451,0.0378516,0.0124004,-0.000375277,-0.000207393,0.0496693,0.0110276,-0.000997456,0.00016837,0.0598678,0.00953783,-0.000492346,2.07235e-05,0.068934,0.00861531,-0.000430176,3.62876e-05,0.0771554,0.00786382,-0.000321313,1.87625e-05,0.0847167,0.00727748,-0.000265025,1.53594e-05,0.0917445,0.00679351,-0.000218947,1.10545e-05,0.0983301,0.00638877,-0.000185784,8.66984e-06,0.104542,0.00604322,-0.000159774,6.82996e-06,0.110432,0.00574416,-0.000139284,5.51008e-06,0.116042,0.00548212,-0.000122754,4.52322e-06,0.121406,0.00525018,-0.000109184,3.75557e-06,0.126551,0.00504308,-9.79177e-05,3.17134e-06,0.131499,0.00485676,-8.84037e-05,2.68469e-06,0.13627,0.004688,-8.03496e-05,2.31725e-06,0.14088,0.00453426,-7.33978e-05,2.00868e-06,0.145343,0.00439349,-6.73718e-05,1.74775e-06,0.149671,0.00426399,-6.21286e-05,1.53547e-06,0.153875,0.00414434,-5.75222e-05,1.364e-06,0.157963,0.00403338,-5.34301e-05,1.20416e-06,0.161944,0.00393014,-4.98177e-05,1.09114e-06,0.165825,0.00383377,-4.65443e-05,9.57987e-07,0.169613,0.00374356,-4.36703e-05,8.88359e-07,0.173314,0.00365888,-4.10052e-05,7.7849e-07,0.176933,0.00357921,-3.86697e-05,7.36254e-07,0.180474,0.00350408,-3.6461e-05,6.42534e-07,0.183942,0.00343308,-3.45334e-05,6.12614e-07,0.187342,0.00336586,-3.26955e-05,5.42894e-07,0.190675,0.00330209,-3.10669e-05,5.08967e-07,0.193947,0.00324149,-2.954e-05,4.75977e-07,0.197159,0.00318383,-2.8112e-05,4.18343e-07,0.200315,0.00312887,-2.6857e-05,4.13651e-07,0.203418,0.00307639,-2.5616e-05,3.70847e-07,0.206469,0.00302627,-2.45035e-05,3.3813e-07,0.209471,0.00297828,-2.34891e-05,3.32999e-07,0.212426,0.0029323,-2.24901e-05,2.96826e-07,0.215336,0.00288821,-2.15996e-05,2.82736e-07,0.218203,0.00284586,-2.07514e-05,2.70961e-07,0.221029,0.00280517,-1.99385e-05,2.42744e-07,0.223814,0.00276602,-1.92103e-05,2.33277e-07,0.226561,0.0027283,-1.85105e-05,2.2486e-07,0.229271,0.00269195,-1.78359e-05,2.08383e-07,0.231945,0.00265691,-1.72108e-05,1.93305e-07,0.234585,0.00262307,-1.66308e-05,1.80687e-07,0.237192,0.00259035,-1.60888e-05,1.86632e-07,0.239766,0.00255873,-1.55289e-05,1.60569e-07,0.24231,0.00252815,-1.50472e-05,1.54566e-07,0.244823,0.00249852,-1.45835e-05,1.59939e-07,0.247307,0.00246983,-1.41037e-05,1.29549e-07,0.249763,0.00244202,-1.3715e-05,1.41429e-07,0.252191,0.00241501,-1.32907e-05,1.39198e-07,0.254593,0.00238885,-1.28731e-05,1.06444e-07,0.256969,0.00236342,-1.25538e-05,1.2048e-07,0.25932,0.00233867,-1.21924e-05,1.26892e-07,0.261647,0.00231467,-1.18117e-05,8.72084e-08,0.26395,0.00229131,-1.15501e-05,1.20323e-07,0.26623,0.00226857,-1.11891e-05,8.71514e-08,0.268487,0.00224645,-1.09276e-05,9.73165e-08,0.270723,0.00222489,-1.06357e-05,8.98259e-08,0.272937,0.00220389,-1.03662e-05,7.98218e-08,0.275131,0.00218339,-1.01267e-05,9.75254e-08,0.277304,0.00216343,-9.83416e-06,6.65195e-08,0.279458,0.00214396,-9.63461e-06,8.34313e-08,0.281592,0.00212494,-9.38431e-06,7.65919e-08,0.283708,0.00210641,-9.15454e-06,5.7236e-08,0.285805,0.00208827,-8.98283e-06,8.18939e-08,0.287885,0.00207055,-8.73715e-06,6.2224e-08,0.289946,0.00205326,-8.55047e-06,5.66388e-08,0.291991,0.00203633,-8.38056e-06,6.88491e-08,0.294019,0.00201978,-8.17401e-06,5.53955e-08,0.296031,0.00200359,-8.00782e-06,6.71971e-08,0.298027,0.00198778,-7.80623e-06,3.34439e-08,0.300007,0.00197227,-7.7059e-06,6.7248e-08,0.301971,0.00195706,-7.50416e-06,5.51915e-08,0.303921,0.00194221,-7.33858e-06,3.98124e-08,0.305856,0.00192766,-7.21915e-06,5.37795e-08,0.307776,0.00191338,-7.05781e-06,4.30919e-08,0.309683,0.00189939,-6.92853e-06,4.20744e-08,0.311575,0.00188566,-6.80231e-06,5.68321e-08,0.313454,0.00187223,-6.63181e-06,2.86195e-08,0.31532,0.00185905,-6.54595e-06,3.73075e-08,0.317172,0.00184607,-6.43403e-06,6.05684e-08,0.319012,0.00183338,-6.25233e-06,1.84426e-08,0.320839,0.00182094,-6.197e-06,4.44757e-08,0.322654,0.00180867,-6.06357e-06,4.20729e-08,0.324456,0.00179667,-5.93735e-06,2.56511e-08,0.326247,0.00178488,-5.8604e-06,3.41368e-08,0.328026,0.00177326,-5.75799e-06,4.64177e-08,0.329794,0.00176188,-5.61874e-06,1.86107e-08,0.33155,0.0017507,-5.5629e-06,2.81511e-08,0.333295,0.00173966,-5.47845e-06,4.75987e-08,0.335029,0.00172884,-5.33565e-06,1.98726e-08,0.336753,0.00171823,-5.27604e-06,2.19226e-08,0.338466,0.00170775,-5.21027e-06,4.14483e-08,0.340169,0.00169745,-5.08592e-06,2.09017e-08,0.341861,0.00168734,-5.02322e-06,2.39561e-08,0.343543,0.00167737,-4.95135e-06,3.22852e-08,0.345216,0.00166756,-4.85449e-06,2.57173e-08,0.346878,0.00165793,-4.77734e-06,1.38569e-08,0.348532,0.00164841,-4.73577e-06,3.80634e-08,0.350175,0.00163906,-4.62158e-06,1.27043e-08,0.35181,0.00162985,-4.58347e-06,3.03279e-08,0.353435,0.00162078,-4.49249e-06,1.49961e-08,0.355051,0.00161184,-4.4475e-06,2.88977e-08,0.356659,0.00160303,-4.3608e-06,1.84241e-08,0.358257,0.00159436,-4.30553e-06,1.6616e-08,0.359848,0.0015858,-4.25568e-06,3.43218e-08,0.361429,0.00157739,-4.15272e-06,-4.89172e-09,0.363002,0.00156907,-4.16739e-06,4.48498e-08,0.364567,0.00156087,-4.03284e-06,4.30676e-09,0.366124,0.00155282,-4.01992e-06,2.73303e-08,0.367673,0.00154486,-3.93793e-06,5.58036e-09,0.369214,0.001537,-3.92119e-06,3.97554e-08,0.370747,0.00152928,-3.80193e-06,-1.55904e-08,0.372272,0.00152163,-3.8487e-06,5.24081e-08,0.37379,0.00151409,-3.69147e-06,-1.52272e-08,0.375301,0.00150666,-3.73715e-06,3.83028e-08,0.376804,0.0014993,-3.62225e-06,1.10278e-08,0.378299,0.00149209,-3.58916e-06,6.99326e-09,0.379788,0.00148493,-3.56818e-06,2.06038e-08,0.381269,0.00147786,-3.50637e-06,2.98009e-08,0.382744,0.00147093,-3.41697e-06,-2.05978e-08,0.384211,0.00146404,-3.47876e-06,5.25899e-08,0.385672,0.00145724,-3.32099e-06,-1.09471e-08,0.387126,0.00145056,-3.35383e-06,2.10009e-08,0.388573,0.00144392,-3.29083e-06,1.63501e-08,0.390014,0.00143739,-3.24178e-06,3.00641e-09,0.391448,0.00143091,-3.23276e-06,3.12282e-08,0.392875,0.00142454,-3.13908e-06,-8.70932e-09,0.394297,0.00141824,-3.16521e-06,3.34114e-08,0.395712,0.00141201,-3.06497e-06,-5.72754e-09,0.397121,0.00140586,-3.08215e-06,1.9301e-08,0.398524,0.00139975,-3.02425e-06,1.7931e-08,0.39992,0.00139376,-2.97046e-06,-1.61822e-09,0.401311,0.00138781,-2.97531e-06,1.83442e-08,0.402696,0.00138192,-2.92028e-06,1.76485e-08,0.404075,0.00137613,-2.86733e-06,4.68617e-10,0.405448,0.00137039,-2.86593e-06,1.02794e-08,0.406816,0.00136469,-2.83509e-06,1.80179e-08,0.408178,0.00135908,-2.78104e-06,7.05594e-09,0.409534,0.00135354,-2.75987e-06,1.33633e-08,0.410885,0.00134806,-2.71978e-06,-9.04568e-10,0.41223,0.00134261,-2.72249e-06,2.0057e-08,0.41357,0.00133723,-2.66232e-06,1.00841e-08,0.414905,0.00133194,-2.63207e-06,-7.88835e-10,0.416234,0.00132667,-2.63444e-06,2.28734e-08,0.417558,0.00132147,-2.56582e-06,-1.29785e-09,0.418877,0.00131633,-2.56971e-06,1.21205e-08,0.420191,0.00131123,-2.53335e-06,1.24202e-08,0.421499,0.0013062,-2.49609e-06,-2.19681e-09,0.422803,0.0013012,-2.50268e-06,2.61696e-08,0.424102,0.00129628,-2.42417e-06,-1.30747e-08,0.425396,0.00129139,-2.46339e-06,2.6129e-08,0.426685,0.00128654,-2.38501e-06,-2.03454e-09,0.427969,0.00128176,-2.39111e-06,1.18115e-08,0.429248,0.00127702,-2.35567e-06,1.43932e-08,0.430523,0.00127235,-2.31249e-06,-9.77965e-09,0.431793,0.00126769,-2.34183e-06,2.47253e-08,0.433058,0.00126308,-2.26766e-06,2.85278e-10,0.434319,0.00125855,-2.2668e-06,3.93614e-09,0.435575,0.00125403,-2.25499e-06,1.37722e-08,0.436827,0.00124956,-2.21368e-06,5.79803e-10,0.438074,0.00124513,-2.21194e-06,1.37112e-08,0.439317,0.00124075,-2.1708e-06,4.17973e-09,0.440556,0.00123642,-2.15826e-06,-6.27703e-10,0.44179,0.0012321,-2.16015e-06,2.81332e-08,0.44302,0.00122787,-2.07575e-06,-2.24985e-08,0.444246,0.00122365,-2.14324e-06,3.20586e-08,0.445467,0.00121946,-2.04707e-06,-1.6329e-08,0.446685,0.00121532,-2.09605e-06,3.32573e-08,0.447898,0.00121122,-1.99628e-06,-2.72927e-08,0.449107,0.00120715,-2.07816e-06,4.6111e-08,0.450312,0.00120313,-1.93983e-06,-3.79416e-08,0.451514,0.00119914,-2.05365e-06,4.60507e-08,0.452711,0.00119517,-1.9155e-06,-2.7052e-08,0.453904,0.00119126,-1.99666e-06,3.23551e-08,0.455093,0.00118736,-1.89959e-06,-1.29613e-08,0.456279,0.00118352,-1.93848e-06,1.94905e-08,0.45746,0.0011797,-1.88e-06,-5.39588e-09,0.458638,0.00117593,-1.89619e-06,2.09282e-09,0.459812,0.00117214,-1.88991e-06,2.68267e-08,0.460982,0.00116844,-1.80943e-06,-1.99925e-08,0.462149,0.00116476,-1.86941e-06,2.3341e-08,0.463312,0.00116109,-1.79939e-06,-1.37674e-08,0.464471,0.00115745,-1.84069e-06,3.17287e-08,0.465627,0.00115387,-1.7455e-06,-2.37407e-08,0.466779,0.00115031,-1.81673e-06,3.34315e-08,0.467927,0.00114677,-1.71643e-06,-2.05786e-08,0.469073,0.00114328,-1.77817e-06,1.90802e-08,0.470214,0.00113978,-1.72093e-06,3.86247e-09,0.471352,0.00113635,-1.70934e-06,-4.72759e-09,0.472487,0.00113292,-1.72352e-06,1.50478e-08,0.473618,0.00112951,-1.67838e-06,4.14108e-09,0.474746,0.00112617,-1.66595e-06,-1.80986e-09,0.47587,0.00112283,-1.67138e-06,3.09816e-09,0.476991,0.0011195,-1.66209e-06,1.92198e-08,0.478109,0.00111623,-1.60443e-06,-2.03726e-08,0.479224,0.00111296,-1.66555e-06,3.2468e-08,0.480335,0.00110973,-1.56814e-06,-2.00922e-08,0.481443,0.00110653,-1.62842e-06,1.80983e-08,0.482548,0.00110333,-1.57413e-06,7.30362e-09,0.48365,0.0011002,-1.55221e-06,-1.75107e-08,0.484749,0.00109705,-1.60475e-06,3.29373e-08,0.485844,0.00109393,-1.50594e-06,-2.48315e-08,0.486937,0.00109085,-1.58043e-06,3.65865e-08,0.488026,0.0010878,-1.47067e-06,-3.21078e-08,0.489112,0.00108476,-1.56699e-06,3.22397e-08,0.490195,0.00108172,-1.47027e-06,-7.44391e-09,0.491276,0.00107876,-1.49261e-06,-2.46428e-09,0.492353,0.00107577,-1.5e-06,1.73011e-08,0.493427,0.00107282,-1.4481e-06,-7.13552e-09,0.494499,0.0010699,-1.4695e-06,1.1241e-08,0.495567,0.001067,-1.43578e-06,-8.02637e-09,0.496633,0.0010641,-1.45986e-06,2.08645e-08,0.497695,0.00106124,-1.39726e-06,-1.58271e-08,0.498755,0.0010584,-1.44475e-06,1.26415e-08,0.499812,0.00105555,-1.40682e-06,2.48655e-08,0.500866,0.00105281,-1.33222e-06,-5.24988e-08,0.501918,0.00104999,-1.48972e-06,6.59206e-08,0.502966,0.00104721,-1.29196e-06,-3.237e-08,0.504012,0.00104453,-1.38907e-06,3.95479e-09,0.505055,0.00104176,-1.3772e-06,1.65509e-08,0.506096,0.00103905,-1.32755e-06,-1.05539e-08,0.507133,0.00103637,-1.35921e-06,2.56648e-08,0.508168,0.00103373,-1.28222e-06,-3.25007e-08,0.509201,0.00103106,-1.37972e-06,4.47336e-08,0.51023,0.00102844,-1.24552e-06,-2.72245e-08,0.511258,0.00102587,-1.32719e-06,4.55952e-09,0.512282,0.00102323,-1.31352e-06,8.98645e-09,0.513304,0.00102063,-1.28656e-06,1.90992e-08,0.514323,0.00101811,-1.22926e-06,-2.57786e-08,0.51534,0.00101557,-1.30659e-06,2.44104e-08,0.516355,0.00101303,-1.23336e-06,-1.22581e-08,0.517366,0.00101053,-1.27014e-06,2.4622e-08,0.518376,0.00100806,-1.19627e-06,-2.66253e-08,0.519383,0.00100559,-1.27615e-06,2.22744e-08,0.520387,0.00100311,-1.20932e-06,-2.8679e-09,0.521389,0.00100068,-1.21793e-06,-1.08029e-08,0.522388,0.000998211,-1.25034e-06,4.60795e-08,0.523385,0.000995849,-1.1121e-06,-5.4306e-08,0.52438,0.000993462,-1.27502e-06,5.19354e-08,0.525372,0.000991067,-1.11921e-06,-3.42262e-08,0.526362,0.000988726,-1.22189e-06,2.53646e-08,0.52735,0.000986359,-1.14579e-06,-7.62782e-09,0.528335,0.000984044,-1.16868e-06,5.14668e-09,0.529318,0.000981722,-1.15324e-06,-1.29589e-08,0.530298,0.000979377,-1.19211e-06,4.66888e-08,0.531276,0.000977133,-1.05205e-06,-5.45868e-08,0.532252,0.000974865,-1.21581e-06,5.24495e-08,0.533226,0.000972591,-1.05846e-06,-3.60019e-08,0.534198,0.000970366,-1.16647e-06,3.19537e-08,0.535167,0.000968129,-1.07061e-06,-3.2208e-08,0.536134,0.000965891,-1.16723e-06,3.72738e-08,0.537099,0.000963668,-1.05541e-06,2.32205e-09,0.538061,0.000961564,-1.04844e-06,-4.65618e-08,0.539022,0.000959328,-1.18813e-06,6.47159e-08,0.53998,0.000957146,-9.93979e-07,-3.3488e-08,0.540936,0.000955057,-1.09444e-06,9.63166e-09,0.54189,0.000952897,-1.06555e-06,-5.03871e-09,0.542842,0.000950751,-1.08066e-06,1.05232e-08,0.543792,0.000948621,-1.04909e-06,2.25503e-08,0.544739,0.000946591,-9.81444e-07,-4.11195e-08,0.545685,0.000944504,-1.1048e-06,2.27182e-08,0.546628,0.000942363,-1.03665e-06,9.85146e-09,0.54757,0.000940319,-1.00709e-06,-2.51938e-09,0.548509,0.000938297,-1.01465e-06,2.25858e-10,0.549446,0.000936269,-1.01397e-06,1.61598e-09,0.550381,0.000934246,-1.00913e-06,-6.68983e-09,0.551315,0.000932207,-1.0292e-06,2.51434e-08,0.552246,0.000930224,-9.53765e-07,-3.42793e-08,0.553175,0.000928214,-1.0566e-06,5.23688e-08,0.554102,0.000926258,-8.99497e-07,-5.59865e-08,0.555028,0.000924291,-1.06746e-06,5.23679e-08,0.555951,0.000922313,-9.10352e-07,-3.42763e-08,0.556872,0.00092039,-1.01318e-06,2.51326e-08,0.557792,0.000918439,-9.37783e-07,-6.64954e-09,0.558709,0.000916543,-9.57732e-07,1.46554e-09,0.559625,0.000914632,-9.53335e-07,7.87281e-10,0.560538,0.000912728,-9.50973e-07,-4.61466e-09,0.56145,0.000910812,-9.64817e-07,1.76713e-08,0.56236,0.000908935,-9.11804e-07,-6.46564e-09,0.563268,0.000907092,-9.312e-07,8.19121e-09,0.564174,0.000905255,-9.06627e-07,-2.62992e-08,0.565078,0.000903362,-9.85524e-07,3.74007e-08,0.565981,0.000901504,-8.73322e-07,-4.0942e-09,0.566882,0.000899745,-8.85605e-07,-2.1024e-08,0.56778,0.00089791,-9.48677e-07,2.85854e-08,0.568677,0.000896099,-8.62921e-07,-3.3713e-08,0.569573,0.000894272,-9.64059e-07,4.6662e-08,0.570466,0.000892484,-8.24073e-07,-3.37258e-08,0.571358,0.000890734,-9.25251e-07,2.86365e-08,0.572247,0.00088897,-8.39341e-07,-2.12155e-08,0.573135,0.000887227,-9.02988e-07,-3.37913e-09,0.574022,0.000885411,-9.13125e-07,3.47319e-08,0.574906,0.000883689,-8.08929e-07,-1.63394e-08,0.575789,0.000882022,-8.57947e-07,-2.8979e-08,0.57667,0.00088022,-9.44885e-07,7.26509e-08,0.57755,0.000878548,-7.26932e-07,-8.28106e-08,0.578427,0.000876845,-9.75364e-07,7.97774e-08,0.579303,0.000875134,-7.36032e-07,-5.74849e-08,0.580178,0.00087349,-9.08486e-07,3.09529e-08,0.58105,0.000871765,-8.15628e-07,-6.72206e-09,0.581921,0.000870114,-8.35794e-07,-4.06451e-09,0.582791,0.00086843,-8.47987e-07,2.29799e-08,0.583658,0.000866803,-7.79048e-07,-2.82503e-08,0.584524,0.00086516,-8.63799e-07,3.04167e-08,0.585388,0.000863524,-7.72548e-07,-3.38119e-08,0.586251,0.000861877,-8.73984e-07,4.52264e-08,0.587112,0.000860265,-7.38305e-07,-2.78842e-08,0.587972,0.000858705,-8.21958e-07,6.70567e-09,0.58883,0.000857081,-8.01841e-07,1.06161e-09,0.589686,0.000855481,-7.98656e-07,-1.09521e-08,0.590541,0.00085385,-8.31512e-07,4.27468e-08,0.591394,0.000852316,-7.03272e-07,-4.08257e-08,0.592245,0.000850787,-8.25749e-07,1.34677e-09,0.593095,0.000849139,-8.21709e-07,3.54387e-08,0.593944,0.000847602,-7.15393e-07,-2.38924e-08,0.59479,0.0008461,-7.8707e-07,5.26143e-10,0.595636,0.000844527,-7.85491e-07,2.17879e-08,0.596479,0.000843021,-7.20127e-07,-2.80733e-08,0.597322,0.000841497,-8.04347e-07,3.09005e-08,0.598162,0.000839981,-7.11646e-07,-3.5924e-08,0.599002,0.00083845,-8.19418e-07,5.3191e-08,0.599839,0.000836971,-6.59845e-07,-5.76307e-08,0.600676,0.000835478,-8.32737e-07,5.81227e-08,0.60151,0.000833987,-6.58369e-07,-5.56507e-08,0.602344,0.000832503,-8.25321e-07,4.52706e-08,0.603175,0.000830988,-6.89509e-07,-6.22236e-09,0.604006,0.000829591,-7.08176e-07,-2.03811e-08,0.604834,0.000828113,-7.6932e-07,2.8142e-08,0.605662,0.000826659,-6.84894e-07,-3.25822e-08,0.606488,0.000825191,-7.8264e-07,4.25823e-08,0.607312,0.000823754,-6.54893e-07,-1.85376e-08,0.608135,0.000822389,-7.10506e-07,-2.80365e-08,0.608957,0.000820883,-7.94616e-07,7.1079e-08,0.609777,0.000819507,-5.81379e-07,-7.74655e-08,0.610596,0.000818112,-8.13775e-07,5.9969e-08,0.611413,0.000816665,-6.33868e-07,-4.32013e-08,0.612229,0.000815267,-7.63472e-07,5.32313e-08,0.613044,0.0008139,-6.03778e-07,-5.05148e-08,0.613857,0.000812541,-7.55323e-07,2.96187e-08,0.614669,0.000811119,-6.66466e-07,-8.35545e-09,0.615479,0.000809761,-6.91533e-07,3.80301e-09,0.616288,0.00080839,-6.80124e-07,-6.85666e-09,0.617096,0.000807009,-7.00694e-07,2.36237e-08,0.617903,0.000805678,-6.29822e-07,-2.80336e-08,0.618708,0.000804334,-7.13923e-07,2.8906e-08,0.619511,0.000802993,-6.27205e-07,-2.79859e-08,0.620314,0.000801655,-7.11163e-07,2.34329e-08,0.621114,0.000800303,-6.40864e-07,-6.14108e-09,0.621914,0.000799003,-6.59287e-07,1.13151e-09,0.622712,0.000797688,-6.55893e-07,1.61507e-09,0.62351,0.000796381,-6.51048e-07,-7.59186e-09,0.624305,0.000795056,-6.73823e-07,2.87524e-08,0.6251,0.000793794,-5.87566e-07,-4.7813e-08,0.625893,0.000792476,-7.31005e-07,4.32901e-08,0.626685,0.000791144,-6.01135e-07,-6.13814e-09,0.627475,0.000789923,-6.19549e-07,-1.87376e-08,0.628264,0.000788628,-6.75762e-07,2.14837e-08,0.629052,0.000787341,-6.11311e-07,-7.59265e-09,0.629839,0.000786095,-6.34089e-07,8.88692e-09,0.630625,0.000784854,-6.07428e-07,-2.7955e-08,0.631409,0.000783555,-6.91293e-07,4.33285e-08,0.632192,0.000782302,-5.61307e-07,-2.61497e-08,0.632973,0.000781101,-6.39757e-07,1.6658e-09,0.633754,0.000779827,-6.34759e-07,1.94866e-08,0.634533,0.000778616,-5.76299e-07,-2.00076e-08,0.635311,0.000777403,-6.36322e-07,9.39091e-10,0.636088,0.000776133,-6.33505e-07,1.62512e-08,0.636863,0.000774915,-5.84751e-07,-6.33937e-09,0.637638,0.000773726,-6.03769e-07,9.10609e-09,0.638411,0.000772546,-5.76451e-07,-3.00849e-08,0.639183,0.000771303,-6.66706e-07,5.1629e-08,0.639953,0.000770125,-5.11819e-07,-5.7222e-08,0.640723,0.000768929,-6.83485e-07,5.80497e-08,0.641491,0.000767736,-5.09336e-07,-5.57674e-08,0.642259,0.000766551,-6.76638e-07,4.58105e-08,0.643024,0.000765335,-5.39206e-07,-8.26541e-09,0.643789,0.000764231,-5.64002e-07,-1.27488e-08,0.644553,0.000763065,-6.02249e-07,-3.44168e-10,0.645315,0.00076186,-6.03281e-07,1.41254e-08,0.646077,0.000760695,-5.60905e-07,3.44727e-09,0.646837,0.000759584,-5.50563e-07,-2.79144e-08,0.647596,0.000758399,-6.34307e-07,4.86057e-08,0.648354,0.000757276,-4.88489e-07,-4.72989e-08,0.64911,0.000756158,-6.30386e-07,2.13807e-08,0.649866,0.000754961,-5.66244e-07,2.13808e-08,0.65062,0.000753893,-5.02102e-07,-4.7299e-08,0.651374,0.000752746,-6.43999e-07,4.86059e-08,0.652126,0.000751604,-4.98181e-07,-2.79154e-08,0.652877,0.000750524,-5.81927e-07,3.45089e-09,0.653627,0.000749371,-5.71575e-07,1.41119e-08,0.654376,0.00074827,-5.29239e-07,-2.93748e-10,0.655123,0.00074721,-5.3012e-07,-1.29368e-08,0.65587,0.000746111,-5.68931e-07,-7.56355e-09,0.656616,0.000744951,-5.91621e-07,4.3191e-08,0.65736,0.000743897,-4.62048e-07,-4.59911e-08,0.658103,0.000742835,-6.00022e-07,2.15642e-08,0.658846,0.0007417,-5.35329e-07,1.93389e-08,0.659587,0.000740687,-4.77312e-07,-3.93152e-08,0.660327,0.000739615,-5.95258e-07,1.87126e-08,0.661066,0.00073848,-5.3912e-07,2.40695e-08,0.661804,0.000737474,-4.66912e-07,-5.53859e-08,0.662541,0.000736374,-6.33069e-07,7.82648e-08,0.663277,0.000735343,-3.98275e-07,-7.88593e-08,0.664012,0.00073431,-6.34853e-07,5.83585e-08,0.664745,0.000733215,-4.59777e-07,-3.53656e-08,0.665478,0.000732189,-5.65874e-07,2.34994e-08,0.66621,0.000731128,-4.95376e-07,9.72743e-10,0.66694,0.00073014,-4.92458e-07,-2.73903e-08,0.66767,0.000729073,-5.74629e-07,4.89839e-08,0.668398,0.000728071,-4.27677e-07,-4.93359e-08,0.669126,0.000727068,-5.75685e-07,2.91504e-08,0.669853,0.000726004,-4.88234e-07,-7.66109e-09,0.670578,0.000725004,-5.11217e-07,1.49392e-09,0.671303,0.000723986,-5.06735e-07,1.68533e-09,0.672026,0.000722978,-5.01679e-07,-8.23525e-09,0.672749,0.00072195,-5.26385e-07,3.12556e-08,0.67347,0.000720991,-4.32618e-07,-5.71825e-08,0.674191,0.000719954,-6.04166e-07,7.8265e-08,0.67491,0.00071898,-3.69371e-07,-7.70634e-08,0.675628,0.00071801,-6.00561e-07,5.11747e-08,0.676346,0.000716963,-4.47037e-07,-8.42615e-09,0.677062,0.000716044,-4.72315e-07,-1.747e-08,0.677778,0.000715046,-5.24725e-07,1.87015e-08,0.678493,0.000714053,-4.68621e-07,2.26856e-09,0.679206,0.000713123,-4.61815e-07,-2.77758e-08,0.679919,0.000712116,-5.45142e-07,4.92298e-08,0.68063,0.000711173,-3.97453e-07,-4.99339e-08,0.681341,0.000710228,-5.47255e-07,3.12967e-08,0.682051,0.000709228,-4.53365e-07,-1.56481e-08,0.68276,0.000708274,-5.00309e-07,3.12958e-08,0.683467,0.000707367,-4.06422e-07,-4.99303e-08,0.684174,0.000706405,-5.56213e-07,4.9216e-08,0.68488,0.00070544,-4.08565e-07,-2.77245e-08,0.685585,0.00070454,-4.91738e-07,2.07748e-09,0.686289,0.000703562,-4.85506e-07,1.94146e-08,0.686992,0.00070265,-4.27262e-07,-2.01314e-08,0.687695,0.000701735,-4.87656e-07,1.50616e-09,0.688396,0.000700764,-4.83137e-07,1.41067e-08,0.689096,0.00069984,-4.40817e-07,1.67168e-09,0.689795,0.000698963,-4.35802e-07,-2.07934e-08,0.690494,0.000698029,-4.98182e-07,2.18972e-08,0.691192,0.000697099,-4.32491e-07,-7.19092e-09,0.691888,0.000696212,-4.54064e-07,6.86642e-09,0.692584,0.000695325,-4.33464e-07,-2.02747e-08,0.693279,0.000694397,-4.94288e-07,1.46279e-08,0.693973,0.000693452,-4.50405e-07,2.13678e-08,0.694666,0.000692616,-3.86301e-07,-4.04945e-08,0.695358,0.000691721,-5.07785e-07,2.14009e-08,0.696049,0.00069077,-4.43582e-07,1.44955e-08,0.69674,0.000689926,-4.00096e-07,-1.97783e-08,0.697429,0.000689067,-4.5943e-07,5.01296e-09,0.698118,0.000688163,-4.44392e-07,-2.73521e-10,0.698805,0.000687273,-4.45212e-07,-3.91893e-09,0.699492,0.000686371,-4.56969e-07,1.59493e-08,0.700178,0.000685505,-4.09121e-07,-2.73351e-10,0.700863,0.000684686,-4.09941e-07,-1.4856e-08,0.701548,0.000683822,-4.54509e-07,9.25979e-11,0.702231,0.000682913,-4.54231e-07,1.44855e-08,0.702913,0.000682048,-4.10775e-07,1.56992e-09,0.703595,0.000681231,-4.06065e-07,-2.07652e-08,0.704276,0.000680357,-4.68361e-07,2.18864e-08,0.704956,0.000679486,-4.02701e-07,-7.17595e-09,0.705635,0.000678659,-4.24229e-07,6.81748e-09,0.706313,0.000677831,-4.03777e-07,-2.0094e-08,0.70699,0.000676963,-4.64059e-07,1.39538e-08,0.707667,0.000676077,-4.22197e-07,2.38835e-08,0.708343,0.000675304,-3.50547e-07,-4.98831e-08,0.709018,0.000674453,-5.00196e-07,5.64395e-08,0.709692,0.000673622,-3.30878e-07,-5.66657e-08,0.710365,0.00067279,-5.00875e-07,5.1014e-08,0.711037,0.000671942,-3.47833e-07,-2.81809e-08,0.711709,0.000671161,-4.32376e-07,2.10513e-09,0.712379,0.000670303,-4.2606e-07,1.97604e-08,0.713049,0.00066951,-3.66779e-07,-2.15422e-08,0.713718,0.000668712,-4.31406e-07,6.8038e-09,0.714387,0.000667869,-4.10994e-07,-5.67295e-09,0.715054,0.00066703,-4.28013e-07,1.5888e-08,0.715721,0.000666222,-3.80349e-07,1.72576e-09,0.716387,0.000665467,-3.75172e-07,-2.27911e-08,0.717052,0.000664648,-4.43545e-07,2.9834e-08,0.717716,0.00066385,-3.54043e-07,-3.69401e-08,0.718379,0.000663031,-4.64864e-07,5.83219e-08,0.719042,0.000662277,-2.89898e-07,-7.71382e-08,0.719704,0.000661465,-5.21313e-07,7.14171e-08,0.720365,0.000660637,-3.07061e-07,-2.97161e-08,0.721025,0.000659934,-3.96209e-07,-1.21575e-08,0.721685,0.000659105,-4.32682e-07,1.87412e-08,0.722343,0.000658296,-3.76458e-07,-3.2029e-09,0.723001,0.000657533,-3.86067e-07,-5.9296e-09,0.723659,0.000656743,-4.03856e-07,2.69213e-08,0.724315,0.000656016,-3.23092e-07,-4.21511e-08,0.724971,0.000655244,-4.49545e-07,2.24737e-08,0.725625,0.000654412,-3.82124e-07,1.18611e-08,0.726279,0.000653683,-3.46541e-07,-1.03132e-08,0.726933,0.000652959,-3.7748e-07,-3.02128e-08,0.727585,0.000652114,-4.68119e-07,7.15597e-08,0.728237,0.000651392,-2.5344e-07,-7.72119e-08,0.728888,0.000650654,-4.85075e-07,5.8474e-08,0.729538,0.000649859,-3.09654e-07,-3.74746e-08,0.730188,0.000649127,-4.22077e-07,3.18197e-08,0.730837,0.000648379,-3.26618e-07,-3.01997e-08,0.731485,0.000647635,-4.17217e-07,2.93747e-08,0.732132,0.000646888,-3.29093e-07,-2.76943e-08,0.732778,0.000646147,-4.12176e-07,2.17979e-08,0.733424,0.000645388,-3.46783e-07,1.07292e-10,0.734069,0.000644695,-3.46461e-07,-2.22271e-08,0.734713,0.000643935,-4.13142e-07,2.91963e-08,0.735357,0.000643197,-3.25553e-07,-3.49536e-08,0.736,0.000642441,-4.30414e-07,5.10133e-08,0.736642,0.000641733,-2.77374e-07,-4.98904e-08,0.737283,0.000641028,-4.27045e-07,2.93392e-08,0.737924,0.000640262,-3.39028e-07,-7.86156e-09,0.738564,0.000639561,-3.62612e-07,2.10703e-09,0.739203,0.000638842,-3.56291e-07,-5.6653e-10,0.739842,0.000638128,-3.57991e-07,1.59086e-10,0.740479,0.000637412,-3.57513e-07,-6.98321e-11,0.741116,0.000636697,-3.57723e-07,1.20214e-10,0.741753,0.000635982,-3.57362e-07,-4.10987e-10,0.742388,0.000635266,-3.58595e-07,1.5237e-09,0.743023,0.000634553,-3.54024e-07,-5.68376e-09,0.743657,0.000633828,-3.71075e-07,2.12113e-08,0.744291,0.00063315,-3.07441e-07,-1.95569e-08,0.744924,0.000632476,-3.66112e-07,-2.58816e-09,0.745556,0.000631736,-3.73877e-07,2.99096e-08,0.746187,0.000631078,-2.84148e-07,-5.74454e-08,0.746818,0.000630337,-4.56484e-07,8.06629e-08,0.747448,0.000629666,-2.14496e-07,-8.63922e-08,0.748077,0.000628978,-4.73672e-07,8.60918e-08,0.748706,0.000628289,-2.15397e-07,-7.91613e-08,0.749334,0.000627621,-4.5288e-07,5.17393e-08,0.749961,0.00062687,-2.97663e-07,-8.58662e-09,0.750588,0.000626249,-3.23422e-07,-1.73928e-08,0.751214,0.00062555,-3.75601e-07,1.85532e-08,0.751839,0.000624855,-3.19941e-07,2.78479e-09,0.752463,0.000624223,-3.11587e-07,-2.96923e-08,0.753087,0.000623511,-4.00664e-07,5.63799e-08,0.75371,0.000622879,-2.31524e-07,-7.66179e-08,0.754333,0.000622186,-4.61378e-07,7.12778e-08,0.754955,0.000621477,-2.47545e-07,-2.96794e-08,0.755576,0.000620893,-3.36583e-07,-1.21648e-08,0.756196,0.000620183,-3.73077e-07,1.87339e-08,0.756816,0.000619493,-3.16875e-07,-3.16622e-09,0.757435,0.00061885,-3.26374e-07,-6.0691e-09,0.758054,0.000618179,-3.44581e-07,2.74426e-08,0.758672,0.000617572,-2.62254e-07,-4.40968e-08,0.759289,0.000616915,-3.94544e-07,2.97352e-08,0.759906,0.000616215,-3.05338e-07,-1.52393e-08,0.760522,0.000615559,-3.51056e-07,3.12221e-08,0.761137,0.000614951,-2.5739e-07,-5.00443e-08,0.761751,0.000614286,-4.07523e-07,4.9746e-08,0.762365,0.00061362,-2.58285e-07,-2.97303e-08,0.762979,0.000613014,-3.47476e-07,9.57079e-09,0.763591,0.000612348,-3.18764e-07,-8.55287e-09,0.764203,0.000611685,-3.44422e-07,2.46407e-08,0.764815,0.00061107,-2.705e-07,-3.04053e-08,0.765426,0.000610437,-3.61716e-07,3.73759e-08,0.766036,0.000609826,-2.49589e-07,-5.94935e-08,0.766645,0.000609149,-4.28069e-07,8.13889e-08,0.767254,0.000608537,-1.83902e-07,-8.72483e-08,0.767862,0.000607907,-4.45647e-07,8.87901e-08,0.76847,0.000607282,-1.79277e-07,-8.90983e-08,0.769077,0.000606656,-4.46572e-07,8.87892e-08,0.769683,0.000606029,-1.80204e-07,-8.72446e-08,0.770289,0.000605407,-4.41938e-07,8.13752e-08,0.770894,0.000604768,-1.97812e-07,-5.94423e-08,0.771498,0.000604194,-3.76139e-07,3.71848e-08,0.772102,0.000603553,-2.64585e-07,-2.96922e-08,0.772705,0.000602935,-3.53661e-07,2.19793e-08,0.773308,0.000602293,-2.87723e-07,1.37955e-09,0.77391,0.000601722,-2.83585e-07,-2.74976e-08,0.774512,0.000601072,-3.66077e-07,4.9006e-08,0.775112,0.000600487,-2.19059e-07,-4.93171e-08,0.775712,0.000599901,-3.67011e-07,2.90531e-08,0.776312,0.000599254,-2.79851e-07,-7.29081e-09,0.776911,0.000598673,-3.01724e-07,1.10077e-10,0.777509,0.00059807,-3.01393e-07,6.85053e-09,0.778107,0.000597487,-2.80842e-07,-2.75123e-08,0.778704,0.000596843,-3.63379e-07,4.35939e-08,0.779301,0.000596247,-2.32597e-07,-2.7654e-08,0.779897,0.000595699,-3.15559e-07,7.41741e-09,0.780492,0.00059509,-2.93307e-07,-2.01562e-09,0.781087,0.000594497,-2.99354e-07,6.45059e-10,0.781681,0.000593901,-2.97418e-07,-5.64635e-10,0.782275,0.000593304,-2.99112e-07,1.61347e-09,0.782868,0.000592711,-2.94272e-07,-5.88926e-09,0.78346,0.000592105,-3.1194e-07,2.19436e-08,0.784052,0.000591546,-2.46109e-07,-2.22805e-08,0.784643,0.000590987,-3.1295e-07,7.57368e-09,0.785234,0.000590384,-2.90229e-07,-8.01428e-09,0.785824,0.00058978,-3.14272e-07,2.44834e-08,0.786414,0.000589225,-2.40822e-07,-3.03148e-08,0.787003,0.000588652,-3.31766e-07,3.7171e-08,0.787591,0.0005881,-2.20253e-07,-5.87646e-08,0.788179,0.000587483,-3.96547e-07,7.86782e-08,0.788766,0.000586926,-1.60512e-07,-7.71342e-08,0.789353,0.000586374,-3.91915e-07,5.10444e-08,0.789939,0.000585743,-2.38782e-07,-7.83422e-09,0.790524,0.000585242,-2.62284e-07,-1.97076e-08,0.791109,0.000584658,-3.21407e-07,2.70598e-08,0.791693,0.000584097,-2.40228e-07,-2.89269e-08,0.792277,0.000583529,-3.27008e-07,2.90431e-08,0.792861,0.000582963,-2.39879e-07,-2.76409e-08,0.793443,0.0005824,-3.22802e-07,2.1916e-08,0.794025,0.00058182,-2.57054e-07,-4.18368e-10,0.794607,0.000581305,-2.58309e-07,-2.02425e-08,0.795188,0.000580727,-3.19036e-07,2.17838e-08,0.795768,0.000580155,-2.53685e-07,-7.28814e-09,0.796348,0.000579625,-2.75549e-07,7.36871e-09,0.796928,0.000579096,-2.53443e-07,-2.21867e-08,0.797506,0.000578523,-3.20003e-07,2.17736e-08,0.798085,0.000577948,-2.54683e-07,-5.30296e-09,0.798662,0.000577423,-2.70592e-07,-5.61698e-10,0.799239,0.00057688,-2.72277e-07,7.54977e-09,0.799816,0.000576358,-2.49627e-07,-2.96374e-08,0.800392,0.00057577,-3.38539e-07,5.1395e-08,0.800968,0.000575247,-1.84354e-07,-5.67335e-08,0.801543,0.000574708,-3.54555e-07,5.63297e-08,0.802117,0.000574168,-1.85566e-07,-4.93759e-08,0.802691,0.000573649,-3.33693e-07,2.19646e-08,0.803264,0.000573047,-2.678e-07,2.1122e-08,0.803837,0.000572575,-2.04433e-07,-4.68482e-08,0.804409,0.000572026,-3.44978e-07,4.70613e-08,0.804981,0.000571477,-2.03794e-07,-2.21877e-08,0.805552,0.000571003,-2.70357e-07,-1.79153e-08,0.806123,0.000570408,-3.24103e-07,3.42443e-08,0.806693,0.000569863,-2.2137e-07,1.47556e-10,0.807263,0.000569421,-2.20928e-07,-3.48345e-08,0.807832,0.000568874,-3.25431e-07,1.99812e-08,0.808401,0.000568283,-2.65487e-07,1.45143e-08,0.808969,0.000567796,-2.21945e-07,-1.84338e-08,0.809536,0.000567297,-2.77246e-07,-3.83608e-10,0.810103,0.000566741,-2.78397e-07,1.99683e-08,0.81067,0.000566244,-2.18492e-07,-1.98848e-08,0.811236,0.000565747,-2.78146e-07,-3.38976e-11,0.811801,0.000565191,-2.78248e-07,2.00204e-08,0.812366,0.000564695,-2.18187e-07,-2.04429e-08,0.812931,0.000564197,-2.79516e-07,2.1467e-09,0.813495,0.000563644,-2.73076e-07,1.18561e-08,0.814058,0.000563134,-2.37507e-07,1.00334e-08,0.814621,0.000562689,-2.07407e-07,-5.19898e-08,0.815183,0.000562118,-3.63376e-07,7.87163e-08,0.815745,0.000561627,-1.27227e-07,-8.40616e-08,0.816306,0.000561121,-3.79412e-07,7.87163e-08,0.816867,0.000560598,-1.43263e-07,-5.19898e-08,0.817428,0.000560156,-2.99233e-07,1.00335e-08,0.817988,0.000559587,-2.69132e-07,1.18559e-08,0.818547,0.000559085,-2.33564e-07,2.14764e-09,0.819106,0.000558624,-2.27122e-07,-2.04464e-08,0.819664,0.000558108,-2.88461e-07,2.00334e-08,0.820222,0.000557591,-2.28361e-07,-8.24277e-11,0.820779,0.000557135,-2.28608e-07,-1.97037e-08,0.821336,0.000556618,-2.87719e-07,1.92925e-08,0.821893,0.000556101,-2.29841e-07,2.13831e-09,0.822448,0.000555647,-2.23427e-07,-2.78458e-08,0.823004,0.000555117,-3.06964e-07,4.96402e-08,0.823559,0.000554652,-1.58043e-07,-5.15058e-08,0.824113,0.000554181,-3.12561e-07,3.71737e-08,0.824667,0.000553668,-2.0104e-07,-3.75844e-08,0.82522,0.000553153,-3.13793e-07,5.35592e-08,0.825773,0.000552686,-1.53115e-07,-5.74431e-08,0.826326,0.000552207,-3.25444e-07,5.7004e-08,0.826878,0.000551728,-1.54433e-07,-5.13635e-08,0.827429,0.000551265,-3.08523e-07,2.92406e-08,0.82798,0.000550735,-2.20801e-07,-5.99424e-09,0.828531,0.000550276,-2.38784e-07,-5.26363e-09,0.829081,0.000549782,-2.54575e-07,2.70488e-08,0.82963,0.000549354,-1.73429e-07,-4.33268e-08,0.83018,0.000548878,-3.03409e-07,2.7049e-08,0.830728,0.000548352,-2.22262e-07,-5.26461e-09,0.831276,0.000547892,-2.38056e-07,-5.99057e-09,0.831824,0.000547397,-2.56027e-07,2.92269e-08,0.832371,0.000546973,-1.68347e-07,-5.13125e-08,0.832918,0.000546482,-3.22284e-07,5.68139e-08,0.833464,0.000546008,-1.51843e-07,-5.67336e-08,0.83401,0.000545534,-3.22043e-07,5.09113e-08,0.834555,0.000545043,-1.6931e-07,-2.77022e-08,0.8351,0.000544621,-2.52416e-07,2.92924e-10,0.835644,0.000544117,-2.51537e-07,2.65305e-08,0.836188,0.000543694,-1.71946e-07,-4.68105e-08,0.836732,0.00054321,-3.12377e-07,4.15021e-08,0.837275,0.000542709,-1.87871e-07,1.13355e-11,0.837817,0.000542334,-1.87837e-07,-4.15474e-08,0.838359,0.000541833,-3.12479e-07,4.69691e-08,0.838901,0.000541349,-1.71572e-07,-2.71196e-08,0.839442,0.000540925,-2.52931e-07,1.90462e-09,0.839983,0.000540425,-2.47217e-07,1.95011e-08,0.840523,0.000539989,-1.88713e-07,-2.03045e-08,0.841063,0.00053955,-2.49627e-07,2.11216e-09,0.841602,0.000539057,-2.4329e-07,1.18558e-08,0.842141,0.000538606,-2.07723e-07,1.00691e-08,0.842679,0.000538221,-1.77516e-07,-5.21324e-08,0.843217,0.00053771,-3.33913e-07,7.92513e-08,0.843755,0.00053728,-9.6159e-08,-8.60587e-08,0.844292,0.000536829,-3.54335e-07,8.61696e-08,0.844828,0.000536379,-9.58263e-08,-7.98057e-08,0.845364,0.000535948,-3.35243e-07,5.42394e-08,0.8459,0.00053544,-1.72525e-07,-1.79426e-08,0.846435,0.000535041,-2.26353e-07,1.75308e-08,0.84697,0.000534641,-1.73761e-07,-5.21806e-08,0.847505,0.000534137,-3.30302e-07,7.19824e-08,0.848038,0.000533692,-1.14355e-07,-5.69349e-08,0.848572,0.000533293,-2.8516e-07,3.65479e-08,0.849105,0.000532832,-1.75516e-07,-2.96519e-08,0.849638,0.000532392,-2.64472e-07,2.2455e-08,0.85017,0.000531931,-1.97107e-07,-5.63451e-10,0.850702,0.000531535,-1.98797e-07,-2.02011e-08,0.851233,0.000531077,-2.59401e-07,2.17634e-08,0.851764,0.000530623,-1.94111e-07,-7.24794e-09,0.852294,0.000530213,-2.15854e-07,7.22832e-09,0.852824,0.000529803,-1.94169e-07,-2.16653e-08,0.853354,0.00052935,-2.59165e-07,1.98283e-08,0.853883,0.000528891,-1.9968e-07,1.95678e-09,0.854412,0.000528497,-1.9381e-07,-2.76554e-08,0.85494,0.000528027,-2.76776e-07,4.90603e-08,0.855468,0.00052762,-1.29596e-07,-4.93764e-08,0.855995,0.000527213,-2.77725e-07,2.92361e-08,0.856522,0.000526745,-1.90016e-07,-7.96341e-09,0.857049,0.000526341,-2.13907e-07,2.61752e-09,0.857575,0.000525922,-2.06054e-07,-2.50665e-09,0.8581,0.000525502,-2.13574e-07,7.40906e-09,0.858626,0.000525097,-1.91347e-07,-2.71296e-08,0.859151,0.000524633,-2.72736e-07,4.15048e-08,0.859675,0.000524212,-1.48221e-07,-1.96802e-08,0.860199,0.000523856,-2.07262e-07,-2.23886e-08,0.860723,0.000523375,-2.74428e-07,4.96299e-08,0.861246,0.000522975,-1.25538e-07,-5.69216e-08,0.861769,0.000522553,-2.96303e-07,5.88473e-08,0.862291,0.000522137,-1.19761e-07,-5.92584e-08,0.862813,0.00052172,-2.97536e-07,5.8977e-08,0.863334,0.000521301,-1.20605e-07,-5.74403e-08,0.863855,0.000520888,-2.92926e-07,5.15751e-08,0.864376,0.000520457,-1.38201e-07,-2.96506e-08,0.864896,0.000520091,-2.27153e-07,7.42277e-09,0.865416,0.000519659,-2.04885e-07,-4.05057e-11,0.865936,0.00051925,-2.05006e-07,-7.26074e-09,0.866455,0.000518818,-2.26788e-07,2.90835e-08,0.866973,0.000518451,-1.39538e-07,-4.94686e-08,0.867492,0.000518024,-2.87944e-07,4.95814e-08,0.868009,0.000517597,-1.39199e-07,-2.96479e-08,0.868527,0.000517229,-2.28143e-07,9.40539e-09,0.869044,0.000516801,-1.99927e-07,-7.9737e-09,0.86956,0.000516378,-2.23848e-07,2.24894e-08,0.870077,0.000515997,-1.5638e-07,-2.23793e-08,0.870592,0.000515617,-2.23517e-07,7.42302e-09,0.871108,0.000515193,-2.01248e-07,-7.31283e-09,0.871623,0.000514768,-2.23187e-07,2.18283e-08,0.872137,0.000514387,-1.57702e-07,-2.03959e-08,0.872652,0.000514011,-2.1889e-07,1.50711e-10,0.873165,0.000513573,-2.18437e-07,1.97931e-08,0.873679,0.000513196,-1.59058e-07,-1.97183e-08,0.874192,0.000512819,-2.18213e-07,-5.24324e-10,0.874704,0.000512381,-2.19786e-07,2.18156e-08,0.875217,0.000512007,-1.54339e-07,-2.71336e-08,0.875728,0.000511616,-2.3574e-07,2.71141e-08,0.87624,0.000511226,-1.54398e-07,-2.17182e-08,0.876751,0.000510852,-2.19552e-07,1.54131e-10,0.877262,0.000510414,-2.1909e-07,2.11017e-08,0.877772,0.000510039,-1.55785e-07,-2.49562e-08,0.878282,0.000509652,-2.30654e-07,1.91183e-08,0.878791,0.000509248,-1.73299e-07,8.08751e-09,0.8793,0.000508926,-1.49036e-07,-5.14684e-08,0.879809,0.000508474,-3.03441e-07,7.85766e-08,0.880317,0.000508103,-6.77112e-08,-8.40242e-08,0.880825,0.000507715,-3.19784e-07,7.87063e-08,0.881333,0.000507312,-8.36649e-08,-5.19871e-08,0.88184,0.000506988,-2.39626e-07,1.00327e-08,0.882346,0.000506539,-2.09528e-07,1.18562e-08,0.882853,0.000506156,-1.73959e-07,2.14703e-09,0.883359,0.000505814,-1.67518e-07,-2.04444e-08,0.883864,0.000505418,-2.28851e-07,2.00258e-08,0.88437,0.00050502,-1.68774e-07,-5.42855e-11,0.884874,0.000504682,-1.68937e-07,-1.98087e-08,0.885379,0.000504285,-2.28363e-07,1.96842e-08,0.885883,0.000503887,-1.6931e-07,6.76342e-10,0.886387,0.000503551,-1.67281e-07,-2.23896e-08,0.88689,0.000503149,-2.3445e-07,2.92774e-08,0.887393,0.000502768,-1.46618e-07,-3.51152e-08,0.887896,0.00050237,-2.51963e-07,5.15787e-08,0.888398,0.00050202,-9.72271e-08,-5.19903e-08,0.8889,0.00050167,-2.53198e-07,3.71732e-08,0.889401,0.000501275,-1.41678e-07,-3.70978e-08,0.889902,0.00050088,-2.52972e-07,5.16132e-08,0.890403,0.000500529,-9.81321e-08,-5.01459e-08,0.890903,0.000500183,-2.4857e-07,2.9761e-08,0.891403,0.000499775,-1.59287e-07,-9.29351e-09,0.891903,0.000499428,-1.87167e-07,7.41301e-09,0.892402,0.000499076,-1.64928e-07,-2.03585e-08,0.892901,0.000498685,-2.26004e-07,1.44165e-08,0.893399,0.000498276,-1.82754e-07,2.22974e-08,0.893898,0.000497978,-1.15862e-07,-4.40013e-08,0.894395,0.000497614,-2.47866e-07,3.44985e-08,0.894893,0.000497222,-1.44371e-07,-3.43882e-08,0.89539,0.00049683,-2.47535e-07,4.34497e-08,0.895886,0.000496465,-1.17186e-07,-2.02012e-08,0.896383,0.00049617,-1.7779e-07,-2.22497e-08,0.896879,0.000495748,-2.44539e-07,4.95952e-08,0.897374,0.000495408,-9.57532e-08,-5.69217e-08,0.89787,0.000495045,-2.66518e-07,5.88823e-08,0.898364,0.000494689,-8.98713e-08,-5.93983e-08,0.898859,0.000494331,-2.68066e-07,5.95017e-08,0.899353,0.000493973,-8.95613e-08,-5.9399e-08,0.899847,0.000493616,-2.67758e-07,5.8885e-08,0.90034,0.000493257,-9.11033e-08,-5.69317e-08,0.900833,0.000492904,-2.61898e-07,4.96326e-08,0.901326,0.000492529,-1.13001e-07,-2.23893e-08,0.901819,0.000492236,-1.80169e-07,-1.968e-08,0.902311,0.000491817,-2.39209e-07,4.15047e-08,0.902802,0.000491463,-1.14694e-07,-2.71296e-08,0.903293,0.000491152,-1.96083e-07,7.409e-09,0.903784,0.000490782,-1.73856e-07,-2.50645e-09,0.904275,0.000490427,-1.81376e-07,2.61679e-09,0.904765,0.000490072,-1.73525e-07,-7.96072e-09,0.905255,0.000489701,-1.97407e-07,2.92261e-08,0.905745,0.000489394,-1.09729e-07,-4.93389e-08,0.906234,0.000489027,-2.57746e-07,4.89204e-08,0.906723,0.000488658,-1.10985e-07,-2.71333e-08,0.907211,0.000488354,-1.92385e-07,8.30861e-12,0.907699,0.00048797,-1.9236e-07,2.71001e-08,0.908187,0.000487666,-1.1106e-07,-4.88041e-08,0.908675,0.000487298,-2.57472e-07,4.89069e-08,0.909162,0.000486929,-1.10751e-07,-2.76143e-08,0.909649,0.000486625,-1.93594e-07,1.9457e-09,0.910135,0.000486244,-1.87757e-07,1.98315e-08,0.910621,0.000485928,-1.28262e-07,-2.16671e-08,0.911107,0.000485606,-1.93264e-07,7.23216e-09,0.911592,0.000485241,-1.71567e-07,-7.26152e-09,0.912077,0.000484877,-1.93352e-07,2.18139e-08,0.912562,0.000484555,-1.2791e-07,-2.03895e-08,0.913047,0.000484238,-1.89078e-07,1.39494e-10,0.913531,0.000483861,-1.8866e-07,1.98315e-08,0.914014,0.000483543,-1.29165e-07,-1.98609e-08,0.914498,0.000483225,-1.88748e-07,7.39912e-12,0.914981,0.000482847,-1.88726e-07,1.98313e-08,0.915463,0.000482529,-1.29232e-07,-1.9728e-08,0.915946,0.000482212,-1.88416e-07,-5.24035e-10,0.916428,0.000481833,-1.89988e-07,2.18241e-08,0.916909,0.000481519,-1.24516e-07,-2.71679e-08,0.917391,0.000481188,-2.06019e-07,2.72427e-08,0.917872,0.000480858,-1.24291e-07,-2.21985e-08,0.918353,0.000480543,-1.90886e-07,1.94644e-09,0.918833,0.000480167,-1.85047e-07,1.44127e-08,0.919313,0.00047984,-1.41809e-07,7.39438e-12,0.919793,0.000479556,-1.41787e-07,-1.44423e-08,0.920272,0.000479229,-1.85114e-07,-1.84291e-09,0.920751,0.000478854,-1.90642e-07,2.18139e-08,0.92123,0.000478538,-1.25201e-07,-2.58081e-08,0.921708,0.00047821,-2.02625e-07,2.18139e-08,0.922186,0.00047787,-1.37183e-07,-1.84291e-09,0.922664,0.00047759,-1.42712e-07,-1.44423e-08,0.923141,0.000477262,-1.86039e-07,7.34701e-12,0.923618,0.00047689,-1.86017e-07,1.44129e-08,0.924095,0.000476561,-1.42778e-07,1.94572e-09,0.924572,0.000476281,-1.36941e-07,-2.21958e-08,0.925048,0.000475941,-2.03528e-07,2.72327e-08,0.925523,0.000475615,-1.2183e-07,-2.71304e-08,0.925999,0.00047529,-2.03221e-07,2.16843e-08,0.926474,0.000474949,-1.38168e-07,-2.16005e-12,0.926949,0.000474672,-1.38175e-07,-2.16756e-08,0.927423,0.000474331,-2.03202e-07,2.71001e-08,0.927897,0.000474006,-1.21902e-07,-2.71201e-08,0.928371,0.000473681,-2.03262e-07,2.17757e-08,0.928845,0.00047334,-1.37935e-07,-3.78028e-10,0.929318,0.000473063,-1.39069e-07,-2.02636e-08,0.929791,0.000472724,-1.9986e-07,2.18276e-08,0.930263,0.000472389,-1.34377e-07,-7.44231e-09,0.930736,0.000472098,-1.56704e-07,7.94165e-09,0.931208,0.000471809,-1.32879e-07,-2.43243e-08,0.931679,0.00047147,-2.05851e-07,2.97508e-08,0.932151,0.000471148,-1.16599e-07,-3.50742e-08,0.932622,0.000470809,-2.21822e-07,5.09414e-08,0.933092,0.000470518,-6.89976e-08,-4.94821e-08,0.933563,0.000470232,-2.17444e-07,2.77775e-08,0.934033,0.00046988,-1.34111e-07,-2.02351e-09,0.934502,0.000469606,-1.40182e-07,-1.96835e-08,0.934972,0.000469267,-1.99232e-07,2.11529e-08,0.935441,0.000468932,-1.35774e-07,-5.32332e-09,0.93591,0.000468644,-1.51743e-07,1.40413e-10,0.936378,0.000468341,-1.51322e-07,4.76166e-09,0.936846,0.000468053,-1.37037e-07,-1.9187e-08,0.937314,0.000467721,-1.94598e-07,1.23819e-08,0.937782,0.000467369,-1.57453e-07,2.92642e-08,0.938249,0.000467142,-6.96601e-08,-6.98342e-08,0.938716,0.000466793,-2.79163e-07,7.12586e-08,0.939183,0.000466449,-6.53869e-08,-3.63863e-08,0.939649,0.000466209,-1.74546e-07,1.46818e-08,0.940115,0.000465904,-1.305e-07,-2.2341e-08,0.940581,0.000465576,-1.97523e-07,1.50774e-08,0.941046,0.000465226,-1.52291e-07,2.16359e-08,0.941511,0.000464986,-8.73832e-08,-4.20162e-08,0.941976,0.000464685,-2.13432e-07,2.72198e-08,0.942441,0.00046434,-1.31773e-07,-7.2581e-09,0.942905,0.000464055,-1.53547e-07,1.81263e-09,0.943369,0.000463753,-1.48109e-07,7.58386e-12,0.943832,0.000463457,-1.48086e-07,-1.84298e-09,0.944296,0.000463155,-1.53615e-07,7.36433e-09,0.944759,0.00046287,-1.31522e-07,-2.76143e-08,0.945221,0.000462524,-2.14365e-07,4.34883e-08,0.945684,0.000462226,-8.39003e-08,-2.71297e-08,0.946146,0.000461977,-1.65289e-07,5.42595e-09,0.946608,0.000461662,-1.49012e-07,5.42593e-09,0.947069,0.000461381,-1.32734e-07,-2.71297e-08,0.94753,0.000461034,-2.14123e-07,4.34881e-08,0.947991,0.000460736,-8.36585e-08,-2.76134e-08,0.948452,0.000460486,-1.66499e-07,7.36083e-09,0.948912,0.000460175,-1.44416e-07,-1.82993e-09,0.949372,0.000459881,-1.49906e-07,-4.11073e-11,0.949832,0.000459581,-1.50029e-07,1.99434e-09,0.950291,0.000459287,-1.44046e-07,-7.93627e-09,0.950751,0.000458975,-1.67855e-07,2.97507e-08,0.951209,0.000458728,-7.86029e-08,-5.1462e-08,0.951668,0.000458417,-2.32989e-07,5.6888e-08,0.952126,0.000458121,-6.2325e-08,-5.68806e-08,0.952584,0.000457826,-2.32967e-07,5.14251e-08,0.953042,0.000457514,-7.86914e-08,-2.96107e-08,0.953499,0.000457268,-1.67523e-07,7.41296e-09,0.953956,0.000456955,-1.45285e-07,-4.11262e-11,0.954413,0.000456665,-1.45408e-07,-7.24847e-09,0.95487,0.000456352,-1.67153e-07,2.9035e-08,0.955326,0.000456105,-8.00484e-08,-4.92869e-08,0.955782,0.000455797,-2.27909e-07,4.89032e-08,0.956238,0.000455488,-8.11994e-08,-2.71166e-08,0.956693,0.000455244,-1.62549e-07,-4.13678e-11,0.957148,0.000454919,-1.62673e-07,2.72821e-08,0.957603,0.000454675,-8.0827e-08,-4.94824e-08,0.958057,0.000454365,-2.29274e-07,5.14382e-08,0.958512,0.000454061,-7.49597e-08,-3.7061e-08,0.958965,0.0004538,-1.86143e-07,3.72013e-08,0.959419,0.000453539,-7.45389e-08,-5.21396e-08,0.959873,0.000453234,-2.30958e-07,5.21476e-08,0.960326,0.000452928,-7.45146e-08,-3.72416e-08,0.960778,0.000452667,-1.8624e-07,3.72143e-08,0.961231,0.000452407,-7.45967e-08,-5.20109e-08,0.961683,0.000452101,-2.30629e-07,5.16199e-08,0.962135,0.000451795,-7.57696e-08,-3.52595e-08,0.962587,0.000451538,-1.81548e-07,2.98133e-08,0.963038,0.000451264,-9.2108e-08,-2.43892e-08,0.963489,0.000451007,-1.65276e-07,8.13892e-09,0.96394,0.000450701,-1.40859e-07,-8.16647e-09,0.964391,0.000450394,-1.65358e-07,2.45269e-08,0.964841,0.000450137,-9.17775e-08,-3.03367e-08,0.965291,0.000449863,-1.82787e-07,3.7215e-08,0.965741,0.000449609,-7.11424e-08,-5.89188e-08,0.96619,0.00044929,-2.47899e-07,7.92509e-08,0.966639,0.000449032,-1.01462e-08,-7.92707e-08,0.967088,0.000448773,-2.47958e-07,5.90181e-08,0.967537,0.000448455,-7.0904e-08,-3.75925e-08,0.967985,0.0004482,-1.83681e-07,3.17471e-08,0.968433,0.000447928,-8.84401e-08,-2.97913e-08,0.968881,0.000447662,-1.77814e-07,2.78133e-08,0.969329,0.000447389,-9.4374e-08,-2.18572e-08,0.969776,0.000447135,-1.59946e-07,1.10134e-11,0.970223,0.000446815,-1.59913e-07,2.18132e-08,0.97067,0.000446561,-9.44732e-08,-2.76591e-08,0.971116,0.000446289,-1.7745e-07,2.92185e-08,0.971562,0.000446022,-8.97948e-08,-2.96104e-08,0.972008,0.000445753,-1.78626e-07,2.96185e-08,0.972454,0.000445485,-8.97706e-08,-2.92588e-08,0.972899,0.000445218,-1.77547e-07,2.78123e-08,0.973344,0.000444946,-9.41103e-08,-2.23856e-08,0.973789,0.000444691,-1.61267e-07,2.12559e-09,0.974233,0.000444374,-1.5489e-07,1.38833e-08,0.974678,0.000444106,-1.13241e-07,1.94591e-09,0.975122,0.000443886,-1.07403e-07,-2.16669e-08,0.975565,0.000443606,-1.72404e-07,2.5117e-08,0.976009,0.000443336,-9.70526e-08,-1.91963e-08,0.976452,0.000443085,-1.54642e-07,-7.93627e-09,0.976895,0.000442752,-1.7845e-07,5.09414e-08,0.977338,0.000442548,-2.56262e-08,-7.66201e-08,0.97778,0.000442266,-2.55486e-07,7.67249e-08,0.978222,0.000441986,-2.53118e-08,-5.14655e-08,0.978664,0.000441781,-1.79708e-07,9.92773e-09,0.979106,0.000441451,-1.49925e-07,1.17546e-08,0.979547,0.000441186,-1.14661e-07,2.65868e-09,0.979988,0.000440965,-1.06685e-07,-2.23893e-08,0.980429,0.000440684,-1.73853e-07,2.72939e-08,0.980869,0.000440419,-9.19716e-08,-2.71816e-08,0.98131,0.000440153,-1.73516e-07,2.18278e-08,0.98175,0.000439872,-1.08033e-07,-5.24833e-10,0.982189,0.000439654,-1.09607e-07,-1.97284e-08,0.982629,0.000439376,-1.68793e-07,1.98339e-08,0.983068,0.000439097,-1.09291e-07,-2.62901e-12,0.983507,0.000438879,-1.09299e-07,-1.98234e-08,0.983946,0.000438601,-1.68769e-07,1.96916e-08,0.984384,0.000438322,-1.09694e-07,6.6157e-10,0.984823,0.000438105,-1.0771e-07,-2.23379e-08,0.985261,0.000437823,-1.74723e-07,2.90855e-08,0.985698,0.00043756,-8.74669e-08,-3.43992e-08,0.986136,0.000437282,-1.90665e-07,4.89068e-08,0.986573,0.000437048,-4.39442e-08,-4.20188e-08,0.98701,0.000436834,-1.7e-07,-4.11073e-11,0.987446,0.000436494,-1.70124e-07,4.21832e-08,0.987883,0.00043628,-4.35742e-08,-4.94824e-08,0.988319,0.000436044,-1.92021e-07,3.6537e-08,0.988755,0.00043577,-8.24102e-08,-3.70611e-08,0.989191,0.000435494,-1.93593e-07,5.21026e-08,0.989626,0.000435263,-3.72855e-08,-5.21402e-08,0.990061,0.000435032,-1.93706e-07,3.7249e-08,0.990496,0.000434756,-8.19592e-08,-3.72512e-08,0.990931,0.000434481,-1.93713e-07,5.21511e-08,0.991365,0.00043425,-3.72595e-08,-5.21439e-08,0.991799,0.000434019,-1.93691e-07,3.72152e-08,0.992233,0.000433743,-8.20456e-08,-3.71123e-08,0.992667,0.000433468,-1.93382e-07,5.16292e-08,0.9931,0.000433236,-3.84947e-08,-5.01953e-08,0.993533,0.000433008,-1.89081e-07,2.99427e-08,0.993966,0.00043272,-9.92525e-08,-9.9708e-09,0.994399,0.000432491,-1.29165e-07,9.94051e-09,0.994831,0.000432263,-9.93434e-08,-2.97912e-08,0.995263,0.000431975,-1.88717e-07,4.96198e-08,0.995695,0.000431746,-3.98578e-08,-4.94785e-08,0.996127,0.000431518,-1.88293e-07,2.9085e-08,0.996558,0.000431229,-1.01038e-07,-7.25675e-09,0.996989,0.000431005,-1.22809e-07,-5.79945e-11,0.99742,0.000430759,-1.22983e-07,7.48873e-09,0.997851,0.000430536,-1.00516e-07,-2.98969e-08,0.998281,0.000430245,-1.90207e-07,5.24942e-08,0.998711,0.000430022,-3.27246e-08,-6.08706e-08,0.999141,0.000429774,-2.15336e-07,7.17788e-08,0.999571,0.000429392,0.,0.}; + + template + __device__ __forceinline__ void Lab2RGBConvert_f(const T& src, D& dst) + { + const float lThresh = 0.008856f * 903.3f; + const float fThresh = 7.787f * 0.008856f + 16.0f / 116.0f; + + float Y, fy; + + if (src.x <= lThresh) + { + Y = src.x / 903.3f; + fy = 7.787f * Y + 16.0f / 116.0f; + } + else + { + fy = (src.x + 16.0f) / 116.0f; + Y = fy * fy * fy; + } + + float X = src.y / 500.0f + fy; + float Z = fy - src.z / 200.0f; + + if (X <= fThresh) + X = (X - 16.0f / 116.0f) / 7.787f; + else + X = X * X * X; + + if (Z <= fThresh) + Z = (Z - 16.0f / 116.0f) / 7.787f; + else + Z = Z * Z * Z; + + float B = 0.052891f * X - 0.204043f * Y + 1.151152f * Z; + float G = -0.921235f * X + 1.875991f * Y + 0.045244f * Z; + float R = 3.079933f * X - 1.537150f * Y - 0.542782f * Z; + + if (srgb) + { + B = splineInterpolate(B * GAMMA_TAB_SIZE, c_sRGBInvGammaTab, GAMMA_TAB_SIZE); + G = splineInterpolate(G * GAMMA_TAB_SIZE, c_sRGBInvGammaTab, GAMMA_TAB_SIZE); + R = splineInterpolate(R * GAMMA_TAB_SIZE, c_sRGBInvGammaTab, GAMMA_TAB_SIZE); + } + + dst.x = blueIdx == 0 ? B : R; + dst.y = G; + dst.z = blueIdx == 0 ? R : B; + setAlpha(dst, ColorChannel::max()); + } + + template + __device__ __forceinline__ void Lab2RGBConvert_b(const T& src, D& dst) + { + float3 srcf, dstf; + + srcf.x = src.x * (100.f / 255.f); + srcf.y = src.y - 128; + srcf.z = src.z - 128; + + Lab2RGBConvert_f(srcf, dstf); + + dst.x = saturate_cast(dstf.x * 255.f); + dst.y = saturate_cast(dstf.y * 255.f); + dst.z = saturate_cast(dstf.z * 255.f); + setAlpha(dst, ColorChannel::max()); + } + + template struct Lab2RGB; + template + struct Lab2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + Lab2RGBConvert_b(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ Lab2RGB() {} + __host__ __device__ __forceinline__ Lab2RGB(const Lab2RGB&) {} + }; + template + struct Lab2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + Lab2RGBConvert_f(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ Lab2RGB() {} + __host__ __device__ __forceinline__ Lab2RGB(const Lab2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_Lab2RGB_TRAITS(name, scn, dcn, srgb, blueIdx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::Lab2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + +///////////////////////////////////// RGB <-> Luv ///////////////////////////////////// + + namespace color_detail + { + __constant__ float c_LabCbrtTab[] = {0.137931,0.0114066,0.,1.18859e-07,0.149338,0.011407,3.56578e-07,-5.79396e-07,0.160745,0.0114059,-1.38161e-06,2.16892e-06,0.172151,0.0114097,5.12516e-06,-8.0814e-06,0.183558,0.0113957,-1.9119e-05,3.01567e-05,0.194965,0.0114479,7.13509e-05,-0.000112545,0.206371,0.011253,-0.000266285,-0.000106493,0.217252,0.0104009,-0.000585765,7.32149e-05,0.22714,0.00944906,-0.00036612,1.21917e-05,0.236235,0.0087534,-0.000329545,2.01753e-05,0.244679,0.00815483,-0.000269019,1.24435e-05,0.252577,0.00765412,-0.000231689,1.05618e-05,0.26001,0.00722243,-0.000200003,8.26662e-06,0.267041,0.00684723,-0.000175203,6.76746e-06,0.27372,0.00651712,-0.000154901,5.61192e-06,0.280088,0.00622416,-0.000138065,4.67009e-06,0.286179,0.00596204,-0.000124055,3.99012e-06,0.292021,0.0057259,-0.000112085,3.36032e-06,0.297638,0.00551181,-0.000102004,2.95338e-06,0.30305,0.00531666,-9.31435e-05,2.52875e-06,0.308277,0.00513796,-8.55572e-05,2.22022e-06,0.313331,0.00497351,-7.88966e-05,1.97163e-06,0.318228,0.00482163,-7.29817e-05,1.7248e-06,0.322978,0.00468084,-6.78073e-05,1.55998e-06,0.327593,0.0045499,-6.31274e-05,1.36343e-06,0.332081,0.00442774,-5.90371e-05,1.27136e-06,0.336451,0.00431348,-5.5223e-05,1.09111e-06,0.34071,0.00420631,-5.19496e-05,1.0399e-06,0.344866,0.00410553,-4.88299e-05,9.18347e-07,0.348923,0.00401062,-4.60749e-05,8.29942e-07,0.352889,0.00392096,-4.35851e-05,7.98478e-07,0.356767,0.00383619,-4.11896e-05,6.84917e-07,0.360562,0.00375586,-3.91349e-05,6.63976e-07,0.36428,0.00367959,-3.7143e-05,5.93086e-07,0.367923,0.00360708,-3.53637e-05,5.6976e-07,0.371495,0.00353806,-3.36544e-05,4.95533e-07,0.375,0.00347224,-3.21678e-05,4.87951e-07,0.378441,0.00340937,-3.0704e-05,4.4349e-07,0.38182,0.00334929,-2.93735e-05,4.20297e-07,0.38514,0.0032918,-2.81126e-05,3.7872e-07,0.388404,0.00323671,-2.69764e-05,3.596e-07,0.391614,0.00318384,-2.58976e-05,3.5845e-07,0.394772,0.00313312,-2.48223e-05,2.92765e-07,0.397881,0.00308435,-2.3944e-05,3.18232e-07,0.400942,0.00303742,-2.29893e-05,2.82046e-07,0.403957,0.00299229,-2.21432e-05,2.52315e-07,0.406927,0.00294876,-2.13862e-05,2.58416e-07,0.409855,0.00290676,-2.0611e-05,2.33939e-07,0.412741,0.00286624,-1.99092e-05,2.36342e-07,0.415587,0.00282713,-1.92001e-05,1.916e-07,0.418396,0.00278931,-1.86253e-05,2.1915e-07,0.421167,0.00275271,-1.79679e-05,1.83498e-07,0.423901,0.00271733,-1.74174e-05,1.79343e-07,0.426602,0.00268303,-1.68794e-05,1.72013e-07,0.429268,0.00264979,-1.63633e-05,1.75686e-07,0.431901,0.00261759,-1.58363e-05,1.3852e-07,0.434503,0.00258633,-1.54207e-05,1.64304e-07,0.437074,0.00255598,-1.49278e-05,1.28136e-07,0.439616,0.00252651,-1.45434e-05,1.57618e-07,0.442128,0.0024979,-1.40705e-05,1.0566e-07,0.444612,0.00247007,-1.37535e-05,1.34998e-07,0.447068,0.00244297,-1.33485e-05,1.29207e-07,0.449498,0.00241666,-1.29609e-05,9.32347e-08,0.451902,0.00239102,-1.26812e-05,1.23703e-07,0.45428,0.00236603,-1.23101e-05,9.74072e-08,0.456634,0.0023417,-1.20179e-05,1.12518e-07,0.458964,0.002318,-1.16803e-05,7.83681e-08,0.46127,0.00229488,-1.14452e-05,1.10452e-07,0.463554,0.00227232,-1.11139e-05,7.58719e-08,0.465815,0.00225032,-1.08863e-05,9.2699e-08,0.468055,0.00222882,-1.06082e-05,8.97738e-08,0.470273,0.00220788,-1.03388e-05,5.4845e-08,0.47247,0.00218736,-1.01743e-05,1.0808e-07,0.474648,0.00216734,-9.85007e-06,4.9277e-08,0.476805,0.00214779,-9.70224e-06,8.22408e-08,0.478943,0.00212863,-9.45551e-06,6.87942e-08,0.481063,0.00210993,-9.24913e-06,5.98144e-08,0.483163,0.00209161,-9.06969e-06,7.93789e-08,0.485246,0.00207371,-8.83155e-06,3.99032e-08,0.487311,0.00205616,-8.71184e-06,8.88325e-08,0.489358,0.002039,-8.44534e-06,2.20004e-08,0.491389,0.00202218,-8.37934e-06,9.13872e-08,0.493403,0.0020057,-8.10518e-06,2.96829e-08,0.495401,0.00198957,-8.01613e-06,5.81028e-08,0.497382,0.00197372,-7.84183e-06,6.5731e-08,0.499348,0.00195823,-7.64463e-06,3.66019e-08,0.501299,0.00194305,-7.53483e-06,2.62811e-08,0.503234,0.00192806,-7.45598e-06,9.66907e-08,0.505155,0.00191344,-7.16591e-06,4.18928e-09,0.507061,0.00189912,-7.15334e-06,6.53665e-08,0.508953,0.00188501,-6.95724e-06,3.23686e-08,0.510831,0.00187119,-6.86014e-06,4.35774e-08,0.512696,0.0018576,-6.72941e-06,3.17406e-08,0.514547,0.00184424,-6.63418e-06,6.78785e-08,0.516384,0.00183117,-6.43055e-06,-5.23126e-09,0.518209,0.0018183,-6.44624e-06,7.22562e-08,0.520021,0.00180562,-6.22947e-06,1.42292e-08,0.52182,0.0017932,-6.18679e-06,4.9641e-08,0.523607,0.00178098,-6.03786e-06,2.56259e-08,0.525382,0.00176898,-5.96099e-06,2.66696e-08,0.527145,0.00175714,-5.88098e-06,4.65094e-08,0.528897,0.00174552,-5.74145e-06,2.57114e-08,0.530637,0.00173411,-5.66431e-06,2.94588e-08,0.532365,0.00172287,-5.57594e-06,3.52667e-08,0.534082,0.00171182,-5.47014e-06,8.28868e-09,0.535789,0.00170091,-5.44527e-06,5.07871e-08,0.537484,0.00169017,-5.29291e-06,2.69817e-08,0.539169,0.00167967,-5.21197e-06,2.01009e-08,0.540844,0.0016693,-5.15166e-06,1.18237e-08,0.542508,0.00165903,-5.11619e-06,5.18135e-08,0.544162,0.00164896,-4.96075e-06,1.9341e-08,0.545806,0.00163909,-4.90273e-06,-9.96867e-09,0.54744,0.00162926,-4.93263e-06,8.01382e-08,0.549064,0.00161963,-4.69222e-06,-1.25601e-08,0.550679,0.00161021,-4.7299e-06,2.97067e-08,0.552285,0.00160084,-4.64078e-06,1.29426e-08,0.553881,0.0015916,-4.60195e-06,3.77327e-08,0.555468,0.00158251,-4.48875e-06,1.49412e-08,0.557046,0.00157357,-4.44393e-06,2.17118e-08,0.558615,0.00156475,-4.3788e-06,1.74206e-08,0.560176,0.00155605,-4.32653e-06,2.78152e-08,0.561727,0.00154748,-4.24309e-06,-9.47239e-09,0.563271,0.00153896,-4.27151e-06,6.9679e-08,0.564805,0.00153063,-4.06247e-06,-3.08246e-08,0.566332,0.00152241,-4.15494e-06,5.36188e-08,0.56785,0.00151426,-3.99409e-06,-4.83594e-09,0.56936,0.00150626,-4.00859e-06,2.53293e-08,0.570863,0.00149832,-3.93261e-06,2.27286e-08,0.572357,0.00149052,-3.86442e-06,2.96541e-09,0.573844,0.0014828,-3.85552e-06,2.50147e-08,0.575323,0.00147516,-3.78048e-06,1.61842e-08,0.576794,0.00146765,-3.73193e-06,2.94582e-08,0.578258,0.00146028,-3.64355e-06,-1.48076e-08,0.579715,0.00145295,-3.68798e-06,2.97724e-08,0.581164,0.00144566,-3.59866e-06,1.49272e-08,0.582606,0.00143851,-3.55388e-06,2.97285e-08,0.584041,0.00143149,-3.46469e-06,-1.46323e-08,0.585469,0.00142451,-3.50859e-06,2.88004e-08,0.58689,0.00141758,-3.42219e-06,1.864e-08,0.588304,0.00141079,-3.36627e-06,1.58482e-08,0.589712,0.00140411,-3.31872e-06,-2.24279e-08,0.591112,0.00139741,-3.38601e-06,7.38639e-08,0.592507,0.00139085,-3.16441e-06,-3.46088e-08,0.593894,0.00138442,-3.26824e-06,4.96675e-09,0.595275,0.0013779,-3.25334e-06,7.4346e-08,0.59665,0.00137162,-3.0303e-06,-6.39319e-08,0.598019,0.00136536,-3.2221e-06,6.21725e-08,0.599381,0.00135911,-3.03558e-06,-5.94423e-09,0.600737,0.00135302,-3.05341e-06,2.12091e-08,0.602087,0.00134697,-2.98979e-06,-1.92876e-08,0.603431,0.00134094,-3.04765e-06,5.5941e-08,0.604769,0.00133501,-2.87983e-06,-2.56622e-08,0.606101,0.00132917,-2.95681e-06,4.67078e-08,0.607427,0.0013234,-2.81669e-06,-4.19592e-08,0.608748,0.00131764,-2.94257e-06,6.15243e-08,0.610062,0.00131194,-2.75799e-06,-2.53244e-08,0.611372,0.00130635,-2.83397e-06,3.97739e-08,0.612675,0.0013008,-2.71465e-06,-1.45618e-08,0.613973,0.00129533,-2.75833e-06,1.84733e-08,0.615266,0.00128986,-2.70291e-06,2.73606e-10,0.616553,0.00128446,-2.70209e-06,4.00367e-08,0.617835,0.00127918,-2.58198e-06,-4.12113e-08,0.619111,0.00127389,-2.70561e-06,6.52039e-08,0.620383,0.00126867,-2.51e-06,-4.07901e-08,0.621649,0.00126353,-2.63237e-06,3.83516e-08,0.62291,0.00125838,-2.51732e-06,6.59315e-09,0.624166,0.00125337,-2.49754e-06,-5.11939e-09,0.625416,0.00124836,-2.5129e-06,1.38846e-08,0.626662,0.00124337,-2.47124e-06,9.18514e-09,0.627903,0.00123846,-2.44369e-06,8.97952e-09,0.629139,0.0012336,-2.41675e-06,1.45012e-08,0.63037,0.00122881,-2.37325e-06,-7.37949e-09,0.631597,0.00122404,-2.39538e-06,1.50169e-08,0.632818,0.00121929,-2.35033e-06,6.91648e-09,0.634035,0.00121461,-2.32958e-06,1.69219e-08,0.635248,0.00121,-2.27882e-06,-1.49997e-08,0.636455,0.0012054,-2.32382e-06,4.30769e-08,0.637659,0.00120088,-2.19459e-06,-3.80986e-08,0.638857,0.00119638,-2.30888e-06,4.97134e-08,0.640051,0.00119191,-2.15974e-06,-4.15463e-08,0.641241,0.00118747,-2.28438e-06,5.68667e-08,0.642426,0.00118307,-2.11378e-06,-7.10641e-09,0.643607,0.00117882,-2.1351e-06,-2.8441e-08,0.644784,0.00117446,-2.22042e-06,6.12658e-08,0.645956,0.00117021,-2.03663e-06,-3.78083e-08,0.647124,0.00116602,-2.15005e-06,3.03627e-08,0.648288,0.00116181,-2.05896e-06,-2.40379e-08,0.649448,0.00115762,-2.13108e-06,6.57887e-08,0.650603,0.00115356,-1.93371e-06,-6.03028e-08,0.651755,0.00114951,-2.11462e-06,5.62134e-08,0.652902,0.00114545,-1.94598e-06,-4.53417e-08,0.654046,0.00114142,-2.082e-06,6.55489e-08,0.655185,0.00113745,-1.88536e-06,-3.80396e-08,0.656321,0.00113357,-1.99948e-06,2.70049e-08,0.657452,0.00112965,-1.91846e-06,-1.03755e-08,0.65858,0.00112578,-1.94959e-06,1.44973e-08,0.659704,0.00112192,-1.9061e-06,1.1991e-08,0.660824,0.00111815,-1.87012e-06,-2.85634e-09,0.66194,0.0011144,-1.87869e-06,-5.65782e-10,0.663053,0.00111064,-1.88039e-06,5.11947e-09,0.664162,0.0011069,-1.86503e-06,3.96924e-08,0.665267,0.00110328,-1.74595e-06,-4.46795e-08,0.666368,0.00109966,-1.87999e-06,1.98161e-08,0.667466,0.00109596,-1.82054e-06,2.502e-08,0.66856,0.00109239,-1.74548e-06,-6.86593e-10,0.669651,0.0010889,-1.74754e-06,-2.22739e-08,0.670738,0.00108534,-1.81437e-06,3.01776e-08,0.671821,0.0010818,-1.72383e-06,2.07732e-08,0.672902,0.00107841,-1.66151e-06,-5.36658e-08,0.673978,0.00107493,-1.82251e-06,7.46802e-08,0.675051,0.00107151,-1.59847e-06,-6.62411e-08,0.676121,0.00106811,-1.79719e-06,7.10748e-08,0.677188,0.00106473,-1.58397e-06,-3.92441e-08,0.678251,0.00106145,-1.7017e-06,2.62973e-08,0.679311,0.00105812,-1.62281e-06,-6.34035e-09,0.680367,0.00105486,-1.64183e-06,-9.36249e-10,0.68142,0.00105157,-1.64464e-06,1.00854e-08,0.68247,0.00104831,-1.61438e-06,2.01995e-08,0.683517,0.00104514,-1.55378e-06,-3.1279e-08,0.68456,0.00104194,-1.64762e-06,4.53114e-08,0.685601,0.00103878,-1.51169e-06,-3.07573e-08,0.686638,0.00103567,-1.60396e-06,1.81133e-08,0.687672,0.00103251,-1.54962e-06,1.79085e-08,0.688703,0.00102947,-1.49589e-06,-3.01428e-08,0.689731,0.00102639,-1.58632e-06,4.30583e-08,0.690756,0.00102334,-1.45715e-06,-2.28814e-08,0.691778,0.00102036,-1.52579e-06,-1.11373e-08,0.692797,0.00101727,-1.5592e-06,6.74305e-08,0.693812,0.00101436,-1.35691e-06,-7.97709e-08,0.694825,0.0010114,-1.59622e-06,7.28391e-08,0.695835,0.00100843,-1.37771e-06,-3.27715e-08,0.696842,0.00100558,-1.47602e-06,-1.35807e-09,0.697846,0.00100262,-1.48009e-06,3.82037e-08,0.698847,0.000999775,-1.36548e-06,-3.22474e-08,0.699846,0.000996948,-1.46223e-06,3.11809e-08,0.700841,0.000994117,-1.36868e-06,-3.28714e-08,0.701834,0.000991281,-1.4673e-06,4.07001e-08,0.702824,0.000988468,-1.3452e-06,-1.07197e-08,0.703811,0.000985746,-1.37736e-06,2.17866e-09,0.704795,0.000982998,-1.37082e-06,2.00521e-09,0.705777,0.000980262,-1.3648e-06,-1.01996e-08,0.706756,0.000977502,-1.3954e-06,3.87931e-08,0.707732,0.000974827,-1.27902e-06,-2.57632e-08,0.708706,0.000972192,-1.35631e-06,4.65513e-09,0.709676,0.000969493,-1.34235e-06,7.14257e-09,0.710645,0.00096683,-1.32092e-06,2.63791e-08,0.71161,0.000964267,-1.24178e-06,-5.30543e-08,0.712573,0.000961625,-1.40095e-06,6.66289e-08,0.713533,0.000959023,-1.20106e-06,-3.46474e-08,0.714491,0.000956517,-1.305e-06,1.23559e-08,0.715446,0.000953944,-1.26793e-06,-1.47763e-08,0.716399,0.000951364,-1.31226e-06,4.67494e-08,0.717349,0.000948879,-1.17201e-06,-5.3012e-08,0.718297,0.000946376,-1.33105e-06,4.60894e-08,0.719242,0.000943852,-1.19278e-06,-1.21366e-08,0.720185,0.00094143,-1.22919e-06,2.45673e-09,0.721125,0.000938979,-1.22182e-06,2.30966e-09,0.722063,0.000936543,-1.21489e-06,-1.16954e-08,0.722998,0.000934078,-1.24998e-06,4.44718e-08,0.723931,0.000931711,-1.11656e-06,-4.69823e-08,0.724861,0.000929337,-1.25751e-06,2.4248e-08,0.725789,0.000926895,-1.18477e-06,9.5949e-09,0.726715,0.000924554,-1.15598e-06,-3.02286e-09,0.727638,0.000922233,-1.16505e-06,2.49649e-09,0.72856,0.00091991,-1.15756e-06,-6.96321e-09,0.729478,0.000917575,-1.17845e-06,2.53564e-08,0.730395,0.000915294,-1.10238e-06,-3.48578e-08,0.731309,0.000912984,-1.20695e-06,5.44704e-08,0.732221,0.000910734,-1.04354e-06,-6.38144e-08,0.73313,0.000908455,-1.23499e-06,8.15781e-08,0.734038,0.00090623,-9.90253e-07,-8.3684e-08,0.734943,0.000903999,-1.2413e-06,7.43441e-08,0.735846,0.000901739,-1.01827e-06,-3.48787e-08,0.736746,0.000899598,-1.12291e-06,5.56596e-09,0.737645,0.000897369,-1.10621e-06,1.26148e-08,0.738541,0.000895194,-1.06837e-06,3.57935e-09,0.739435,0.000893068,-1.05763e-06,-2.69322e-08,0.740327,0.000890872,-1.13842e-06,4.45448e-08,0.741217,0.000888729,-1.00479e-06,-3.20376e-08,0.742105,0.000886623,-1.1009e-06,2.40011e-08,0.74299,0.000884493,-1.0289e-06,-4.36209e-09,0.743874,0.000882422,-1.04199e-06,-6.55268e-09,0.744755,0.000880319,-1.06164e-06,3.05728e-08,0.745634,0.000878287,-9.69926e-07,-5.61338e-08,0.746512,0.000876179,-1.13833e-06,7.4753e-08,0.747387,0.000874127,-9.14068e-07,-6.40644e-08,0.74826,0.000872106,-1.10626e-06,6.22955e-08,0.749131,0.000870081,-9.19375e-07,-6.59083e-08,0.75,0.000868044,-1.1171e-06,8.21284e-08,0.750867,0.000866056,-8.70714e-07,-8.37915e-08,0.751732,0.000864064,-1.12209e-06,7.42237e-08,0.752595,0.000862042,-8.99418e-07,-3.42894e-08,0.753456,0.00086014,-1.00229e-06,3.32955e-09,0.754315,0.000858146,-9.92297e-07,2.09712e-08,0.755173,0.000856224,-9.29384e-07,-2.76096e-08,0.756028,0.000854282,-1.01221e-06,2.98627e-08,0.756881,0.000852348,-9.22625e-07,-3.22365e-08,0.757733,0.000850406,-1.01933e-06,3.94786e-08,0.758582,0.000848485,-9.00898e-07,-6.46833e-09,0.75943,0.000846664,-9.20303e-07,-1.36052e-08,0.760275,0.000844783,-9.61119e-07,1.28447e-09,0.761119,0.000842864,-9.57266e-07,8.4674e-09,0.761961,0.000840975,-9.31864e-07,2.44506e-08,0.762801,0.000839185,-8.58512e-07,-4.6665e-08,0.763639,0.000837328,-9.98507e-07,4.30001e-08,0.764476,0.00083546,-8.69507e-07,-6.12609e-09,0.76531,0.000833703,-8.87885e-07,-1.84959e-08,0.766143,0.000831871,-9.43372e-07,2.05052e-08,0.766974,0.000830046,-8.81857e-07,-3.92026e-09,0.767803,0.000828271,-8.93618e-07,-4.82426e-09,0.768631,0.000826469,-9.0809e-07,2.32172e-08,0.769456,0.000824722,-8.38439e-07,-2.84401e-08,0.77028,0.00082296,-9.23759e-07,3.09386e-08,0.771102,0.000821205,-8.30943e-07,-3.57099e-08,0.771922,0.000819436,-9.38073e-07,5.22963e-08,0.772741,0.000817717,-7.81184e-07,-5.42658e-08,0.773558,0.000815992,-9.43981e-07,4.55579e-08,0.774373,0.000814241,-8.07308e-07,-8.75656e-09,0.775186,0.0008126,-8.33578e-07,-1.05315e-08,0.775998,0.000810901,-8.65172e-07,-8.72188e-09,0.776808,0.000809145,-8.91338e-07,4.54191e-08,0.777616,0.000807498,-7.5508e-07,-5.37454e-08,0.778423,0.000805827,-9.16317e-07,5.03532e-08,0.779228,0.000804145,-7.65257e-07,-2.84584e-08,0.780031,0.000802529,-8.50632e-07,3.87579e-09,0.780833,0.00080084,-8.39005e-07,1.29552e-08,0.781633,0.0007992,-8.00139e-07,3.90804e-09,0.782432,0.000797612,-7.88415e-07,-2.85874e-08,0.783228,0.000795949,-8.74177e-07,5.0837e-08,0.784023,0.000794353,-7.21666e-07,-5.55513e-08,0.784817,0.000792743,-8.8832e-07,5.21587e-08,0.785609,0.000791123,-7.31844e-07,-3.38744e-08,0.786399,0.000789558,-8.33467e-07,2.37342e-08,0.787188,0.000787962,-7.62264e-07,-1.45775e-09,0.787975,0.000786433,-7.66638e-07,-1.79034e-08,0.788761,0.000784846,-8.20348e-07,1.34665e-08,0.789545,0.000783246,-7.79948e-07,2.3642e-08,0.790327,0.000781757,-7.09022e-07,-4.84297e-08,0.791108,0.000780194,-8.54311e-07,5.08674e-08,0.791888,0.000778638,-7.01709e-07,-3.58303e-08,0.792666,0.000777127,-8.092e-07,3.28493e-08,0.793442,0.000775607,-7.10652e-07,-3.59624e-08,0.794217,0.000774078,-8.1854e-07,5.13959e-08,0.79499,0.000772595,-6.64352e-07,-5.04121e-08,0.795762,0.000771115,-8.15588e-07,3.10431e-08,0.796532,0.000769577,-7.22459e-07,-1.41557e-08,0.797301,0.00076809,-7.64926e-07,2.55795e-08,0.798069,0.000766636,-6.88187e-07,-2.85578e-08,0.798835,0.000765174,-7.73861e-07,2.90472e-08,0.799599,0.000763714,-6.86719e-07,-2.80262e-08,0.800362,0.000762256,-7.70798e-07,2.34531e-08,0.801123,0.000760785,-7.00438e-07,-6.18144e-09,0.801884,0.000759366,-7.18983e-07,1.27263e-09,0.802642,0.000757931,-7.15165e-07,1.09101e-09,0.803399,0.000756504,-7.11892e-07,-5.63675e-09,0.804155,0.000755064,-7.28802e-07,2.14559e-08,0.80491,0.00075367,-6.64434e-07,-2.05821e-08,0.805663,0.00075228,-7.26181e-07,1.26812e-09,0.806414,0.000750831,-7.22377e-07,1.55097e-08,0.807164,0.000749433,-6.75848e-07,-3.70216e-09,0.807913,0.00074807,-6.86954e-07,-7.0105e-10,0.80866,0.000746694,-6.89057e-07,6.5063e-09,0.809406,0.000745336,-6.69538e-07,-2.53242e-08,0.810151,0.000743921,-7.45511e-07,3.51858e-08,0.810894,0.000742535,-6.39953e-07,3.79034e-09,0.811636,0.000741267,-6.28582e-07,-5.03471e-08,0.812377,0.000739858,-7.79624e-07,7.83886e-08,0.813116,0.000738534,-5.44458e-07,-8.43935e-08,0.813854,0.000737192,-7.97638e-07,8.03714e-08,0.81459,0.000735838,-5.56524e-07,-5.82784e-08,0.815325,0.00073455,-7.31359e-07,3.35329e-08,0.816059,0.000733188,-6.3076e-07,-1.62486e-08,0.816792,0.000731878,-6.79506e-07,3.14614e-08,0.817523,0.000730613,-5.85122e-07,-4.99925e-08,0.818253,0.000729293,-7.35099e-07,4.92994e-08,0.818982,0.000727971,-5.87201e-07,-2.79959e-08,0.819709,0.000726712,-6.71189e-07,3.07959e-09,0.820435,0.000725379,-6.6195e-07,1.56777e-08,0.82116,0.000724102,-6.14917e-07,-6.18564e-09,0.821883,0.000722854,-6.33474e-07,9.06488e-09,0.822606,0.000721614,-6.06279e-07,-3.00739e-08,0.823327,0.000720311,-6.96501e-07,5.16262e-08,0.824046,0.000719073,-5.41623e-07,-5.72214e-08,0.824765,0.000717818,-7.13287e-07,5.80503e-08,0.825482,0.000716566,-5.39136e-07,-5.57703e-08,0.826198,0.00071532,-7.06447e-07,4.58215e-08,0.826912,0.000714045,-5.68983e-07,-8.30636e-09,0.827626,0.000712882,-5.93902e-07,-1.25961e-08,0.828338,0.000711656,-6.3169e-07,-9.13985e-10,0.829049,0.00071039,-6.34432e-07,1.62519e-08,0.829759,0.00070917,-5.85676e-07,-4.48904e-09,0.830468,0.000707985,-5.99143e-07,1.70418e-09,0.831175,0.000706792,-5.9403e-07,-2.32768e-09,0.831881,0.000705597,-6.01014e-07,7.60648e-09,0.832586,0.000704418,-5.78194e-07,-2.80982e-08,0.83329,0.000703177,-6.62489e-07,4.51817e-08,0.833993,0.000701988,-5.26944e-07,-3.34192e-08,0.834694,0.000700834,-6.27201e-07,2.88904e-08,0.835394,0.000699666,-5.4053e-07,-2.25378e-08,0.836093,0.000698517,-6.08143e-07,1.65589e-09,0.836791,0.000697306,-6.03176e-07,1.59142e-08,0.837488,0.000696147,-5.55433e-07,-5.70801e-09,0.838184,0.000695019,-5.72557e-07,6.91792e-09,0.838878,0.000693895,-5.51803e-07,-2.19637e-08,0.839571,0.000692725,-6.17694e-07,2.13321e-08,0.840263,0.000691554,-5.53698e-07,-3.75996e-09,0.840954,0.000690435,-5.64978e-07,-6.29219e-09,0.841644,0.000689287,-5.83855e-07,2.89287e-08,0.842333,0.000688206,-4.97068e-07,-4.98181e-08,0.843021,0.000687062,-6.46523e-07,5.11344e-08,0.843707,0.000685922,-4.9312e-07,-3.55102e-08,0.844393,0.00068483,-5.9965e-07,3.13019e-08,0.845077,0.000683724,-5.05745e-07,-3.00925e-08,0.84576,0.000682622,-5.96022e-07,2.94636e-08,0.846442,0.000681519,-5.07631e-07,-2.81572e-08,0.847123,0.000680419,-5.92103e-07,2.35606e-08,0.847803,0.000679306,-5.21421e-07,-6.48045e-09,0.848482,0.000678243,-5.40863e-07,2.36124e-09,0.849159,0.000677169,-5.33779e-07,-2.96461e-09,0.849836,0.000676092,-5.42673e-07,9.49728e-09,0.850512,0.000675035,-5.14181e-07,-3.50245e-08,0.851186,0.000673902,-6.19254e-07,7.09959e-08,0.851859,0.000672876,-4.06267e-07,-7.01453e-08,0.852532,0.000671853,-6.16703e-07,3.07714e-08,0.853203,0.000670712,-5.24388e-07,6.66423e-09,0.853873,0.000669684,-5.04396e-07,2.17629e-09,0.854542,0.000668681,-4.97867e-07,-1.53693e-08,0.855211,0.000667639,-5.43975e-07,-3.03752e-10,0.855878,0.000666551,-5.44886e-07,1.65844e-08,0.856544,0.000665511,-4.95133e-07,-6.42907e-09,0.857209,0.000664501,-5.1442e-07,9.13195e-09,0.857873,0.0006635,-4.87024e-07,-3.00987e-08,0.858536,0.000662435,-5.7732e-07,5.16584e-08,0.859198,0.000661436,-4.22345e-07,-5.73255e-08,0.859859,0.000660419,-5.94322e-07,5.84343e-08,0.860518,0.000659406,-4.19019e-07,-5.72022e-08,0.861177,0.000658396,-5.90626e-07,5.11653e-08,0.861835,0.000657368,-4.3713e-07,-2.82495e-08,0.862492,0.000656409,-5.21878e-07,2.22788e-09,0.863148,0.000655372,-5.15195e-07,1.9338e-08,0.863803,0.0006544,-4.5718e-07,-1.99754e-08,0.864457,0.000653425,-5.17107e-07,9.59024e-10,0.86511,0.000652394,-5.1423e-07,1.61393e-08,0.865762,0.000651414,-4.65812e-07,-5.91149e-09,0.866413,0.000650465,-4.83546e-07,7.50665e-09,0.867063,0.00064952,-4.61026e-07,-2.4115e-08,0.867712,0.000648526,-5.33371e-07,2.93486e-08,0.86836,0.000647547,-4.45325e-07,-3.36748e-08,0.869007,0.000646555,-5.4635e-07,4.57461e-08,0.869653,0.0006456,-4.09112e-07,-3.01002e-08,0.870298,0.000644691,-4.99412e-07,1.50501e-08,0.870942,0.000643738,-4.54262e-07,-3.01002e-08,0.871585,0.000642739,-5.44563e-07,4.57461e-08,0.872228,0.000641787,-4.07324e-07,-3.36748e-08,0.872869,0.000640871,-5.08349e-07,2.93486e-08,0.873509,0.000639943,-4.20303e-07,-2.4115e-08,0.874149,0.00063903,-4.92648e-07,7.50655e-09,0.874787,0.000638067,-4.70128e-07,-5.91126e-09,0.875425,0.000637109,-4.87862e-07,1.61385e-08,0.876062,0.000636182,-4.39447e-07,9.61961e-10,0.876697,0.000635306,-4.36561e-07,-1.99863e-08,0.877332,0.000634373,-4.9652e-07,1.93785e-08,0.877966,0.000633438,-4.38384e-07,2.07697e-09,0.878599,0.000632567,-4.32153e-07,-2.76864e-08,0.879231,0.00063162,-5.15212e-07,4.90641e-08,0.879862,0.000630737,-3.6802e-07,-4.93606e-08,0.880493,0.000629852,-5.16102e-07,2.9169e-08,0.881122,0.000628908,-4.28595e-07,-7.71083e-09,0.881751,0.000628027,-4.51727e-07,1.6744e-09,0.882378,0.000627129,-4.46704e-07,1.01317e-09,0.883005,0.000626239,-4.43665e-07,-5.72703e-09,0.883631,0.000625334,-4.60846e-07,2.1895e-08,0.884255,0.000624478,-3.95161e-07,-2.22481e-08,0.88488,0.000623621,-4.61905e-07,7.4928e-09,0.885503,0.00062272,-4.39427e-07,-7.72306e-09,0.886125,0.000621818,-4.62596e-07,2.33995e-08,0.886746,0.000620963,-3.92398e-07,-2.62704e-08,0.887367,0.000620099,-4.71209e-07,2.20775e-08,0.887987,0.000619223,-4.04976e-07,-2.43496e-09,0.888605,0.000618406,-4.12281e-07,-1.23377e-08,0.889223,0.000617544,-4.49294e-07,-7.81876e-09,0.88984,0.000616622,-4.72751e-07,4.36128e-08,0.890457,0.000615807,-3.41912e-07,-4.7423e-08,0.891072,0.000614981,-4.84181e-07,2.68698e-08,0.891687,0.000614093,-4.03572e-07,-4.51384e-10,0.8923,0.000613285,-4.04926e-07,-2.50643e-08,0.892913,0.0006124,-4.80119e-07,4.11038e-08,0.893525,0.000611563,-3.56808e-07,-2.01414e-08,0.894136,0.000610789,-4.17232e-07,-2.01426e-08,0.894747,0.000609894,-4.7766e-07,4.11073e-08,0.895356,0.000609062,-3.54338e-07,-2.50773e-08,0.895965,0.000608278,-4.2957e-07,-4.02954e-10,0.896573,0.000607418,-4.30779e-07,2.66891e-08,0.89718,0.000606636,-3.50711e-07,-4.67489e-08,0.897786,0.000605795,-4.90958e-07,4.10972e-08,0.898391,0.000604936,-3.67666e-07,1.56948e-09,0.898996,0.000604205,-3.62958e-07,-4.73751e-08,0.8996,0.000603337,-5.05083e-07,6.87214e-08,0.900202,0.000602533,-2.98919e-07,-4.86966e-08,0.900805,0.000601789,-4.45009e-07,6.85589e-09,0.901406,0.00060092,-4.24441e-07,2.1273e-08,0.902007,0.000600135,-3.60622e-07,-3.23434e-08,0.902606,0.000599317,-4.57652e-07,4.84959e-08,0.903205,0.000598547,-3.12164e-07,-4.24309e-08,0.903803,0.000597795,-4.39457e-07,2.01844e-09,0.904401,0.000596922,-4.33402e-07,3.43571e-08,0.904997,0.000596159,-3.30331e-07,-2.02374e-08,0.905593,0.000595437,-3.91043e-07,-1.30123e-08,0.906188,0.000594616,-4.3008e-07,1.26819e-08,0.906782,0.000593794,-3.92034e-07,2.18894e-08,0.907376,0.000593076,-3.26366e-07,-4.06349e-08,0.907968,0.000592301,-4.4827e-07,2.1441e-08,0.90856,0.000591469,-3.83947e-07,1.44754e-08,0.909151,0.000590744,-3.40521e-07,-1.97379e-08,0.909742,0.000590004,-3.99735e-07,4.87161e-09,0.910331,0.000589219,-3.8512e-07,2.51532e-10,0.91092,0.00058845,-3.84366e-07,-5.87776e-09,0.911508,0.000587663,-4.01999e-07,2.32595e-08,0.912096,0.000586929,-3.3222e-07,-2.75554e-08,0.912682,0.000586182,-4.14887e-07,2.73573e-08,0.913268,0.000585434,-3.32815e-07,-2.22692e-08,0.913853,0.000584702,-3.99622e-07,2.11486e-09,0.914437,0.000583909,-3.93278e-07,1.38098e-08,0.915021,0.000583164,-3.51848e-07,2.25042e-09,0.915604,0.000582467,-3.45097e-07,-2.28115e-08,0.916186,0.000581708,-4.13531e-07,2.93911e-08,0.916767,0.000580969,-3.25358e-07,-3.51481e-08,0.917348,0.000580213,-4.30803e-07,5.15967e-08,0.917928,0.000579506,-2.76012e-07,-5.20296e-08,0.918507,0.000578798,-4.32101e-07,3.73124e-08,0.919085,0.000578046,-3.20164e-07,-3.76154e-08,0.919663,0.000577293,-4.3301e-07,5.35447e-08,0.92024,0.000576587,-2.72376e-07,-5.7354e-08,0.920816,0.000575871,-4.44438e-07,5.66621e-08,0.921391,0.000575152,-2.74452e-07,-5.00851e-08,0.921966,0.000574453,-4.24707e-07,2.4469e-08,0.92254,0.000573677,-3.513e-07,1.18138e-08,0.923114,0.000573009,-3.15859e-07,-1.21195e-08,0.923686,0.000572341,-3.52217e-07,-2.29403e-08,0.924258,0.000571568,-4.21038e-07,4.4276e-08,0.924829,0.000570859,-2.8821e-07,-3.49546e-08,0.9254,0.000570178,-3.93074e-07,3.59377e-08,0.92597,0.000569499,-2.85261e-07,-4.91915e-08,0.926539,0.000568781,-4.32835e-07,4.16189e-08,0.927107,0.00056804,-3.07979e-07,1.92523e-09,0.927675,0.00056743,-3.02203e-07,-4.93198e-08,0.928242,0.000566678,-4.50162e-07,7.61447e-08,0.928809,0.000566006,-2.21728e-07,-7.6445e-08,0.929374,0.000565333,-4.51063e-07,5.08216e-08,0.929939,0.000564583,-2.98599e-07,-7.63212e-09,0.930503,0.000563963,-3.21495e-07,-2.02931e-08,0.931067,0.000563259,-3.82374e-07,2.92001e-08,0.93163,0.000562582,-2.94774e-07,-3.69025e-08,0.932192,0.000561882,-4.05482e-07,5.88053e-08,0.932754,0.000561247,-2.29066e-07,-7.91094e-08,0.933315,0.000560552,-4.66394e-07,7.88184e-08,0.933875,0.000559856,-2.29939e-07,-5.73501e-08,0.934434,0.000559224,-4.01989e-07,3.13727e-08,0.934993,0.000558514,-3.07871e-07,-8.53611e-09,0.935551,0.000557873,-3.33479e-07,2.77175e-09,0.936109,0.000557214,-3.25164e-07,-2.55091e-09,0.936666,0.000556556,-3.32817e-07,7.43188e-09,0.937222,0.000555913,-3.10521e-07,-2.71766e-08,0.937778,0.00055521,-3.92051e-07,4.167e-08,0.938333,0.000554551,-2.67041e-07,-2.02941e-08,0.938887,0.000553956,-3.27923e-07,-2.00984e-08,0.93944,0.00055324,-3.88218e-07,4.10828e-08,0.939993,0.000552587,-2.6497e-07,-2.50237e-08,0.940546,0.000551982,-3.40041e-07,-5.92583e-10,0.941097,0.0005513,-3.41819e-07,2.7394e-08,0.941648,0.000550698,-2.59637e-07,-4.93788e-08,0.942199,0.000550031,-4.07773e-07,5.09119e-08,0.942748,0.000549368,-2.55038e-07,-3.50595e-08,0.943297,0.000548753,-3.60216e-07,2.97214e-08,0.943846,0.000548122,-2.71052e-07,-2.42215e-08,0.944394,0.000547507,-3.43716e-07,7.55985e-09,0.944941,0.000546842,-3.21037e-07,-6.01796e-09,0.945487,0.000546182,-3.3909e-07,1.65119e-08,0.946033,0.000545553,-2.89555e-07,-4.2498e-10,0.946578,0.000544973,-2.9083e-07,-1.4812e-08,0.947123,0.000544347,-3.35266e-07,6.83068e-11,0.947667,0.000543676,-3.35061e-07,1.45388e-08,0.94821,0.00054305,-2.91444e-07,1.38123e-09,0.948753,0.000542471,-2.87301e-07,-2.00637e-08,0.949295,0.000541836,-3.47492e-07,1.92688e-08,0.949837,0.000541199,-2.89685e-07,2.59298e-09,0.950378,0.000540628,-2.81906e-07,-2.96407e-08,0.950918,0.000539975,-3.70829e-07,5.63652e-08,0.951458,0.000539402,-2.01733e-07,-7.66107e-08,0.951997,0.000538769,-4.31565e-07,7.12638e-08,0.952535,0.00053812,-2.17774e-07,-2.96305e-08,0.953073,0.000537595,-3.06665e-07,-1.23464e-08,0.95361,0.000536945,-3.43704e-07,1.94114e-08,0.954147,0.000536316,-2.8547e-07,-5.69451e-09,0.954683,0.000535728,-3.02554e-07,3.36666e-09,0.955219,0.000535133,-2.92454e-07,-7.77208e-09,0.955753,0.000534525,-3.1577e-07,2.77216e-08,0.956288,0.000533976,-2.32605e-07,-4.35097e-08,0.956821,0.00053338,-3.63134e-07,2.7108e-08,0.957354,0.000532735,-2.8181e-07,-5.31772e-09,0.957887,0.000532156,-2.97764e-07,-5.83718e-09,0.958419,0.000531543,-3.15275e-07,2.86664e-08,0.95895,0.000530998,-2.29276e-07,-4.9224e-08,0.959481,0.000530392,-3.76948e-07,4.90201e-08,0.960011,0.000529785,-2.29887e-07,-2.76471e-08,0.96054,0.000529243,-3.12829e-07,1.96385e-09,0.961069,0.000528623,-3.06937e-07,1.97917e-08,0.961598,0.000528068,-2.47562e-07,-2.15261e-08,0.962125,0.000527508,-3.1214e-07,6.70795e-09,0.962653,0.000526904,-2.92016e-07,-5.30573e-09,0.963179,0.000526304,-3.07934e-07,1.4515e-08,0.963705,0.000525732,-2.64389e-07,6.85048e-09,0.964231,0.000525224,-2.43837e-07,-4.19169e-08,0.964756,0.00052461,-3.69588e-07,4.1608e-08,0.96528,0.000523996,-2.44764e-07,-5.30598e-09,0.965804,0.000523491,-2.60682e-07,-2.03841e-08,0.966327,0.000522908,-3.21834e-07,2.72378e-08,0.966849,0.000522346,-2.40121e-07,-2.89625e-08,0.967371,0.000521779,-3.27008e-07,2.90075e-08,0.967893,0.000521212,-2.39986e-07,-2.74629e-08,0.968414,0.00052065,-3.22374e-07,2.12396e-08,0.968934,0.000520069,-2.58656e-07,2.10922e-09,0.969454,0.000519558,-2.52328e-07,-2.96765e-08,0.969973,0.000518964,-3.41357e-07,5.6992e-08,0.970492,0.000518452,-1.70382e-07,-7.90821e-08,0.97101,0.000517874,-4.07628e-07,8.05224e-08,0.971528,0.000517301,-1.66061e-07,-6.41937e-08,0.972045,0.000516776,-3.58642e-07,5.70429e-08,0.972561,0.00051623,-1.87513e-07,-4.47686e-08,0.973077,0.00051572,-3.21819e-07,2.82237e-09,0.973593,0.000515085,-3.13352e-07,3.34792e-08,0.974108,0.000514559,-2.12914e-07,-1.75298e-08,0.974622,0.000514081,-2.65503e-07,-2.29648e-08,0.975136,0.000513481,-3.34398e-07,4.97843e-08,0.975649,0.000512961,-1.85045e-07,-5.6963e-08,0.976162,0.00051242,-3.55934e-07,5.88585e-08,0.976674,0.000511885,-1.79359e-07,-5.92616e-08,0.977185,0.000511348,-3.57143e-07,5.89785e-08,0.977696,0.000510811,-1.80208e-07,-5.74433e-08,0.978207,0.000510278,-3.52538e-07,5.15854e-08,0.978717,0.000509728,-1.97781e-07,-2.9689e-08,0.979226,0.000509243,-2.86848e-07,7.56591e-09,0.979735,0.000508692,-2.64151e-07,-5.74649e-10,0.980244,0.000508162,-2.65875e-07,-5.26732e-09,0.980752,0.000507615,-2.81677e-07,2.16439e-08,0.981259,0.000507116,-2.16745e-07,-2.17037e-08,0.981766,0.000506618,-2.81856e-07,5.56636e-09,0.982272,0.000506071,-2.65157e-07,-5.61689e-10,0.982778,0.000505539,-2.66842e-07,-3.31963e-09,0.983283,0.000504995,-2.76801e-07,1.38402e-08,0.983788,0.000504483,-2.3528e-07,7.56339e-09,0.984292,0.000504035,-2.1259e-07,-4.40938e-08,0.984796,0.000503478,-3.44871e-07,4.96026e-08,0.985299,0.000502937,-1.96064e-07,-3.51071e-08,0.985802,0.000502439,-3.01385e-07,3.12212e-08,0.986304,0.00050193,-2.07721e-07,-3.0173e-08,0.986806,0.000501424,-2.9824e-07,2.9866e-08,0.987307,0.000500917,-2.08642e-07,-2.96865e-08,0.987808,0.000500411,-2.97702e-07,2.92753e-08,0.988308,0.000499903,-2.09876e-07,-2.78101e-08,0.988807,0.0004994,-2.93306e-07,2.23604e-08,0.989307,0.000498881,-2.26225e-07,-2.02681e-09,0.989805,0.000498422,-2.32305e-07,-1.42531e-08,0.990303,0.000497915,-2.75065e-07,-5.65232e-10,0.990801,0.000497363,-2.76761e-07,1.65141e-08,0.991298,0.000496859,-2.27218e-07,-5.88639e-09,0.991795,0.000496387,-2.44878e-07,7.0315e-09,0.992291,0.000495918,-2.23783e-07,-2.22396e-08,0.992787,0.000495404,-2.90502e-07,2.23224e-08,0.993282,0.00049489,-2.23535e-07,-7.44543e-09,0.993776,0.000494421,-2.45871e-07,7.45924e-09,0.994271,0.000493951,-2.23493e-07,-2.23915e-08,0.994764,0.000493437,-2.90668e-07,2.25021e-08,0.995257,0.000492923,-2.23161e-07,-8.01218e-09,0.99575,0.000492453,-2.47198e-07,9.54669e-09,0.996242,0.000491987,-2.18558e-07,-3.01746e-08,0.996734,0.000491459,-3.09082e-07,5.1547e-08,0.997225,0.000490996,-1.54441e-07,-5.68039e-08,0.997716,0.000490517,-3.24853e-07,5.64594e-08,0.998206,0.000490036,-1.55474e-07,-4.98245e-08,0.998696,0.000489576,-3.04948e-07,2.36292e-08,0.999186,0.000489037,-2.3406e-07,1.49121e-08,0.999674,0.000488613,-1.89324e-07,-2.3673e-08,1.00016,0.000488164,-2.60343e-07,2.01754e-08,1.00065,0.000487704,-1.99816e-07,-5.70288e-08,1.00114,0.000487133,-3.70903e-07,8.87303e-08,1.00162,0.000486657,-1.04712e-07,-5.94737e-08,1.00211,0.000486269,-2.83133e-07,2.99553e-08,1.0026,0.000485793,-1.93267e-07,-6.03474e-08,1.00308,0.000485225,-3.74309e-07,9.2225e-08,1.00357,0.000484754,-9.76345e-08,-7.0134e-08,1.00405,0.000484348,-3.08036e-07,6.91016e-08,1.00454,0.000483939,-1.00731e-07,-8.70633e-08,1.00502,0.000483476,-3.61921e-07,4.07328e-08,1.0055,0.000482875,-2.39723e-07,4.33413e-08,1.00599,0.000482525,-1.09699e-07,-9.48886e-08,1.00647,0.000482021,-3.94365e-07,9.77947e-08,1.00695,0.000481526,-1.00981e-07,-5.78713e-08,1.00743,0.00048115,-2.74595e-07,1.44814e-08,1.00791,0.000480645,-2.31151e-07,-5.42665e-11,1.00839,0.000480182,-2.31314e-07,-1.42643e-08,1.00887,0.000479677,-2.74106e-07,5.71115e-08,1.00935,0.0004793,-1.02772e-07,-9.49724e-08,1.00983,0.000478809,-3.87689e-07,8.43596e-08,1.01031,0.000478287,-1.3461e-07,-4.04755e-09,1.01079,0.000478006,-1.46753e-07,-6.81694e-08,1.01127,0.000477508,-3.51261e-07,3.83067e-08,1.01174,0.00047692,-2.36341e-07,3.41521e-08,1.01222,0.00047655,-1.33885e-07,-5.57058e-08,1.0127,0.000476115,-3.01002e-07,6.94616e-08,1.01317,0.000475721,-9.26174e-08,-1.02931e-07,1.01365,0.000475227,-4.01412e-07,1.03846e-07,1.01412,0.000474736,-8.98751e-08,-7.40321e-08,1.0146,0.000474334,-3.11971e-07,7.30735e-08,1.01507,0.00047393,-9.27508e-08,-9.90527e-08,1.01554,0.000473447,-3.89909e-07,8.47188e-08,1.01602,0.000472921,-1.35753e-07,-1.40381e-09,1.01649,0.000472645,-1.39964e-07,-7.91035e-08,1.01696,0.000472128,-3.77275e-07,7.93993e-08,1.01744,0.000471612,-1.39077e-07,-7.52607e-11,1.01791,0.000471334,-1.39302e-07,-7.90983e-08,1.01838,0.000470818,-3.76597e-07,7.80499e-08,1.01885,0.000470299,-1.42448e-07,5.31733e-09,1.01932,0.00047003,-1.26496e-07,-9.93193e-08,1.01979,0.000469479,-4.24453e-07,1.53541e-07,1.02026,0.00046909,3.617e-08,-1.57217e-07,1.02073,0.000468691,-4.35482e-07,1.177e-07,1.02119,0.000468173,-8.23808e-08,-7.51659e-08,1.02166,0.000467783,-3.07878e-07,6.37538e-08,1.02213,0.000467358,-1.16617e-07,-6.064e-08,1.0226,0.000466943,-2.98537e-07,5.9597e-08,1.02306,0.000466525,-1.19746e-07,-5.85386e-08,1.02353,0.00046611,-2.95362e-07,5.53482e-08,1.024,0.000465685,-1.29317e-07,-4.36449e-08,1.02446,0.000465296,-2.60252e-07,2.20268e-11,1.02493,0.000464775,-2.60186e-07,4.35568e-08,1.02539,0.000464386,-1.29516e-07,-5.50398e-08,1.02586,0.000463961,-2.94635e-07,5.73932e-08,1.02632,0.000463544,-1.22456e-07,-5.53236e-08,1.02678,0.000463133,-2.88426e-07,4.46921e-08,1.02725,0.000462691,-1.5435e-07,-4.23534e-09,1.02771,0.000462369,-1.67056e-07,-2.77507e-08,1.02817,0.000461952,-2.50308e-07,-3.97101e-09,1.02863,0.000461439,-2.62221e-07,4.36348e-08,1.02909,0.000461046,-1.31317e-07,-5.13589e-08,1.02955,0.000460629,-2.85394e-07,4.25913e-08,1.03001,0.000460186,-1.5762e-07,2.0285e-10,1.03047,0.000459871,-1.57011e-07,-4.34027e-08,1.03093,0.000459427,-2.87219e-07,5.41987e-08,1.03139,0.000459015,-1.24623e-07,-5.4183e-08,1.03185,0.000458604,-2.87172e-07,4.33239e-08,1.03231,0.000458159,-1.572e-07,9.65817e-11,1.03277,0.000457845,-1.56911e-07,-4.37103e-08,1.03323,0.0004574,-2.88041e-07,5.55351e-08,1.03368,0.000456991,-1.21436e-07,-5.9221e-08,1.03414,0.00045657,-2.99099e-07,6.21394e-08,1.0346,0.000456158,-1.1268e-07,-7.01275e-08,1.03505,0.000455723,-3.23063e-07,9.91614e-08,1.03551,0.000455374,-2.55788e-08,-8.80996e-08,1.03596,0.000455058,-2.89878e-07,1.48184e-08,1.03642,0.000454523,-2.45422e-07,2.88258e-08,1.03687,0.000454119,-1.58945e-07,-1.09125e-08,1.03733,0.000453768,-1.91682e-07,1.48241e-08,1.03778,0.000453429,-1.4721e-07,-4.83838e-08,1.03823,0.00045299,-2.92361e-07,5.95019e-08,1.03869,0.000452584,-1.13856e-07,-7.04146e-08,1.03914,0.000452145,-3.25099e-07,1.02947e-07,1.03959,0.000451803,-1.62583e-08,-1.02955e-07,1.04004,0.000451462,-3.25123e-07,7.04544e-08,1.04049,0.000451023,-1.1376e-07,-5.96534e-08,1.04094,0.000450616,-2.9272e-07,4.89499e-08,1.04139,0.000450178,-1.45871e-07,-1.69369e-08,1.04184,0.000449835,-1.96681e-07,1.87977e-08,1.04229,0.000449498,-1.40288e-07,-5.82539e-08,1.04274,0.000449043,-3.1505e-07,9.50087e-08,1.04319,0.000448698,-3.00238e-08,-8.33623e-08,1.04364,0.000448388,-2.80111e-07,2.20363e-11,1.04409,0.000447828,-2.80045e-07,8.32742e-08,1.04454,0.000447517,-3.02221e-08,-9.47002e-08,1.04498,0.000447173,-3.14323e-07,5.7108e-08,1.04543,0.000446716,-1.42999e-07,-1.45225e-08,1.04588,0.000446386,-1.86566e-07,9.82022e-10,1.04632,0.000446016,-1.8362e-07,1.05944e-08,1.04677,0.00044568,-1.51837e-07,-4.33597e-08,1.04721,0.000445247,-2.81916e-07,4.36352e-08,1.04766,0.000444814,-1.51011e-07,-1.19717e-08,1.0481,0.000444476,-1.86926e-07,4.25158e-09,1.04855,0.000444115,-1.74171e-07,-5.03461e-09,1.04899,0.000443751,-1.89275e-07,1.58868e-08,1.04944,0.00044342,-1.41614e-07,-5.85127e-08,1.04988,0.000442961,-3.17152e-07,9.89548e-08,1.05032,0.000442624,-2.0288e-08,-9.88878e-08,1.05076,0.000442287,-3.16951e-07,5.81779e-08,1.05121,0.000441827,-1.42418e-07,-1.46144e-08,1.05165,0.000441499,-1.86261e-07,2.79892e-10,1.05209,0.000441127,-1.85421e-07,1.34949e-08,1.05253,0.000440797,-1.44937e-07,-5.42594e-08,1.05297,0.000440344,-3.07715e-07,8.43335e-08,1.05341,0.000439982,-5.47146e-08,-4.46558e-08,1.05385,0.000439738,-1.88682e-07,-2.49193e-08,1.05429,0.000439286,-2.6344e-07,2.5124e-08,1.05473,0.000438835,-1.88068e-07,4.36328e-08,1.05517,0.000438589,-5.71699e-08,-8.04459e-08,1.05561,0.000438234,-2.98508e-07,3.97324e-08,1.05605,0.000437756,-1.79311e-07,4.07258e-08,1.05648,0.000437519,-5.71332e-08,-8.34263e-08,1.05692,0.000437155,-3.07412e-07,5.45608e-08,1.05736,0.000436704,-1.4373e-07,-1.56078e-08,1.05779,0.000436369,-1.90553e-07,7.87043e-09,1.05823,0.000436012,-1.66942e-07,-1.58739e-08,1.05867,0.00043563,-2.14563e-07,5.56251e-08,1.0591,0.000435368,-4.76881e-08,-8.74172e-08,1.05954,0.000435011,-3.0994e-07,5.56251e-08,1.05997,0.000434558,-1.43064e-07,-1.58739e-08,1.06041,0.000434224,-1.90686e-07,7.87042e-09,1.06084,0.000433866,-1.67075e-07,-1.56078e-08,1.06127,0.000433485,-2.13898e-07,5.45609e-08,1.06171,0.000433221,-5.02157e-08,-8.34263e-08,1.06214,0.00043287,-3.00495e-07,4.07258e-08,1.06257,0.000432391,-1.78317e-07,3.97325e-08,1.063,0.000432154,-5.91198e-08,-8.04464e-08,1.06344,0.000431794,-3.00459e-07,4.36347e-08,1.06387,0.000431324,-1.69555e-07,2.5117e-08,1.0643,0.000431061,-9.42041e-08,-2.48934e-08,1.06473,0.000430798,-1.68884e-07,-4.47527e-08,1.06516,0.000430326,-3.03142e-07,8.46951e-08,1.06559,0.000429973,-4.90573e-08,-5.56089e-08,1.06602,0.000429708,-2.15884e-07,1.85314e-08,1.06645,0.000429332,-1.6029e-07,-1.85166e-08,1.06688,0.000428956,-2.1584e-07,5.5535e-08,1.06731,0.000428691,-4.92347e-08,-8.44142e-08,1.06774,0.000428339,-3.02477e-07,4.37032e-08,1.06816,0.000427865,-1.71368e-07,2.88107e-08,1.06859,0.000427609,-8.49356e-08,-3.97367e-08,1.06902,0.00042732,-2.04146e-07,1.09267e-08,1.06945,0.000426945,-1.71365e-07,-3.97023e-09,1.06987,0.00042659,-1.83276e-07,4.9542e-09,1.0703,0.000426238,-1.68414e-07,-1.58466e-08,1.07073,0.000425854,-2.15953e-07,5.84321e-08,1.07115,0.000425597,-4.0657e-08,-9.86725e-08,1.07158,0.00042522,-3.36674e-07,9.78392e-08,1.072,0.00042484,-4.31568e-08,-5.42658e-08,1.07243,0.000424591,-2.05954e-07,1.45377e-11,1.07285,0.000424179,-2.0591e-07,5.42076e-08,1.07328,0.00042393,-4.32877e-08,-9.76357e-08,1.0737,0.00042355,-3.36195e-07,9.79165e-08,1.07412,0.000423172,-4.24451e-08,-5.56118e-08,1.07455,0.00042292,-2.09281e-07,5.32143e-09,1.07497,0.000422518,-1.93316e-07,3.43261e-08,1.07539,0.000422234,-9.0338e-08,-2.34165e-08,1.07581,0.000421983,-1.60588e-07,-5.98692e-08,1.07623,0.000421482,-3.40195e-07,1.43684e-07,1.07666,0.000421233,9.08574e-08,-1.5724e-07,1.07708,0.000420943,-3.80862e-07,1.27647e-07,1.0775,0.000420564,2.0791e-09,-1.1493e-07,1.07792,0.000420223,-3.4271e-07,9.36534e-08,1.07834,0.000419819,-6.17499e-08,-2.12653e-08,1.07876,0.000419632,-1.25546e-07,-8.59219e-09,1.07918,0.000419355,-1.51322e-07,-6.35752e-08,1.0796,0.000418861,-3.42048e-07,1.43684e-07,1.08002,0.000418608,8.90034e-08,-1.53532e-07,1.08043,0.000418326,-3.71593e-07,1.12817e-07,1.08085,0.000417921,-3.31414e-08,-5.93184e-08,1.08127,0.000417677,-2.11097e-07,5.24697e-09,1.08169,0.00041727,-1.95356e-07,3.83305e-08,1.0821,0.000416995,-8.03642e-08,-3.93597e-08,1.08252,0.000416716,-1.98443e-07,-1.0094e-10,1.08294,0.000416319,-1.98746e-07,3.97635e-08,1.08335,0.00041604,-7.94557e-08,-3.97437e-08,1.08377,0.000415762,-1.98687e-07,1.94215e-12,1.08419,0.000415365,-1.98681e-07,3.97359e-08,1.0846,0.000415087,-7.94732e-08,-3.97362e-08,1.08502,0.000414809,-1.98682e-07,-4.31063e-13,1.08543,0.000414411,-1.98683e-07,3.97379e-08,1.08584,0.000414133,-7.94694e-08,-3.97418e-08,1.08626,0.000413855,-1.98695e-07,2.00563e-11,1.08667,0.000413458,-1.98635e-07,3.96616e-08,1.08709,0.000413179,-7.965e-08,-3.9457e-08,1.0875,0.000412902,-1.98021e-07,-1.04281e-09,1.08791,0.000412502,-2.01149e-07,4.36282e-08,1.08832,0.000412231,-7.02648e-08,-5.42608e-08,1.08874,0.000411928,-2.33047e-07,5.42057e-08,1.08915,0.000411624,-7.04301e-08,-4.33527e-08,1.08956,0.000411353,-2.00488e-07,-4.07378e-12,1.08997,0.000410952,-2.005e-07,4.3369e-08,1.09038,0.000410681,-7.03934e-08,-5.42627e-08,1.09079,0.000410378,-2.33182e-07,5.44726e-08,1.0912,0.000410075,-6.97637e-08,-4.44186e-08,1.09161,0.000409802,-2.03019e-07,3.99235e-09,1.09202,0.000409408,-1.91042e-07,2.84491e-08,1.09243,0.000409111,-1.05695e-07,1.42043e-09,1.09284,0.000408904,-1.01434e-07,-3.41308e-08,1.09325,0.000408599,-2.03826e-07,1.58937e-08,1.09366,0.000408239,-1.56145e-07,-2.94438e-08,1.09406,0.000407838,-2.44476e-07,1.01881e-07,1.09447,0.000407655,6.11676e-08,-1.39663e-07,1.09488,0.000407358,-3.57822e-07,9.91432e-08,1.09529,0.00040694,-6.03921e-08,-1.84912e-08,1.09569,0.000406764,-1.15866e-07,-2.51785e-08,1.0961,0.000406457,-1.91401e-07,-4.03115e-12,1.09651,0.000406074,-1.91413e-07,2.51947e-08,1.09691,0.000405767,-1.15829e-07,1.84346e-08,1.09732,0.00040559,-6.05254e-08,-9.89332e-08,1.09772,0.000405172,-3.57325e-07,1.3888e-07,1.09813,0.000404874,5.93136e-08,-9.8957e-08,1.09853,0.000404696,-2.37557e-07,1.853e-08,1.09894,0.000404277,-1.81968e-07,2.48372e-08,1.09934,0.000403987,-1.07456e-07,1.33047e-09,1.09975,0.000403776,-1.03465e-07,-3.01591e-08,1.10015,0.000403479,-1.93942e-07,9.66054e-11,1.10055,0.000403091,-1.93652e-07,2.97727e-08,1.10096,0.000402793,-1.04334e-07,2.19273e-11,1.10136,0.000402585,-1.04268e-07,-2.98604e-08,1.10176,0.000402287,-1.93849e-07,2.10325e-10,1.10216,0.0004019,-1.93218e-07,2.90191e-08,1.10256,0.0004016,-1.06161e-07,2.92264e-09,1.10297,0.000401397,-9.73931e-08,-4.07096e-08,1.10337,0.00040108,-2.19522e-07,4.07067e-08,1.10377,0.000400763,-9.7402e-08,-2.90783e-09,1.10417,0.000400559,-1.06126e-07,-2.90754e-08,1.10457,0.00040026,-1.93352e-07,9.00021e-14,1.10497,0.000399873,-1.93351e-07,2.9075e-08,1.10537,0.000399574,-1.06126e-07,2.90902e-09,1.10577,0.00039937,-9.73992e-08,-4.07111e-08,1.10617,0.000399053,-2.19533e-07,4.07262e-08,1.10657,0.000398736,-9.73541e-08,-2.98424e-09,1.10697,0.000398533,-1.06307e-07,-2.87892e-08,1.10736,0.000398234,-1.92674e-07,-1.06824e-09,1.10776,0.000397845,-1.95879e-07,3.30622e-08,1.10816,0.000397552,-9.66926e-08,-1.19712e-08,1.10856,0.000397323,-1.32606e-07,1.48225e-08,1.10895,0.000397102,-8.81387e-08,-4.73187e-08,1.10935,0.000396784,-2.30095e-07,5.52429e-08,1.10975,0.00039649,-6.4366e-08,-5.44437e-08,1.11014,0.000396198,-2.27697e-07,4.33226e-08,1.11054,0.000395872,-9.77293e-08,3.62656e-10,1.11094,0.000395678,-9.66414e-08,-4.47732e-08,1.11133,0.00039535,-2.30961e-07,5.95208e-08,1.11173,0.000395067,-5.23985e-08,-7.41008e-08,1.11212,0.00039474,-2.74701e-07,1.17673e-07,1.11252,0.000394543,7.83181e-08,-1.58172e-07,1.11291,0.000394225,-3.96199e-07,1.57389e-07,1.1133,0.000393905,7.59679e-08,-1.13756e-07,1.1137,0.000393716,-2.653e-07,5.92165e-08,1.11409,0.000393363,-8.76507e-08,-3.90074e-09,1.11449,0.000393176,-9.93529e-08,-4.36136e-08,1.11488,0.000392846,-2.30194e-07,5.91457e-08,1.11527,0.000392563,-5.27564e-08,-7.376e-08,1.11566,0.000392237,-2.74037e-07,1.16685e-07,1.11606,0.000392039,7.60189e-08,-1.54562e-07,1.11645,0.000391727,-3.87667e-07,1.43935e-07,1.11684,0.000391384,4.4137e-08,-6.35487e-08,1.11723,0.000391281,-1.46509e-07,-8.94896e-09,1.11762,0.000390961,-1.73356e-07,-1.98647e-08,1.11801,0.000390555,-2.3295e-07,8.8408e-08,1.1184,0.000390354,3.22736e-08,-9.53486e-08,1.11879,0.000390133,-2.53772e-07,5.45677e-08,1.11918,0.000389789,-9.0069e-08,-3.71296e-09,1.11957,0.000389598,-1.01208e-07,-3.97159e-08,1.11996,0.000389276,-2.20355e-07,4.33671e-08,1.12035,0.000388966,-9.02542e-08,-1.45431e-08,1.12074,0.000388741,-1.33883e-07,1.48052e-08,1.12113,0.000388518,-8.94678e-08,-4.46778e-08,1.12152,0.000388205,-2.23501e-07,4.46966e-08,1.12191,0.000387892,-8.94114e-08,-1.48992e-08,1.12229,0.000387669,-1.34109e-07,1.49003e-08,1.12268,0.000387445,-8.94082e-08,-4.47019e-08,1.12307,0.000387132,-2.23514e-07,4.4698e-08,1.12345,0.000386819,-8.942e-08,-1.48806e-08,1.12384,0.000386596,-1.34062e-07,1.48245e-08,1.12423,0.000386372,-8.95885e-08,-4.44172e-08,1.12461,0.00038606,-2.2284e-07,4.36351e-08,1.125,0.000385745,-9.19348e-08,-1.09139e-08,1.12539,0.000385528,-1.24677e-07,2.05584e-11,1.12577,0.000385279,-1.24615e-07,1.08317e-08,1.12616,0.000385062,-9.21198e-08,-4.33473e-08,1.12654,0.000384748,-2.22162e-07,4.33481e-08,1.12693,0.000384434,-9.21174e-08,-1.08356e-08,1.12731,0.000384217,-1.24624e-07,-5.50907e-12,1.12769,0.000383968,-1.24641e-07,1.08577e-08,1.12808,0.000383751,-9.20679e-08,-4.34252e-08,1.12846,0.000383437,-2.22343e-07,4.36337e-08,1.12884,0.000383123,-9.14422e-08,-1.19005e-08,1.12923,0.000382904,-1.27144e-07,3.96813e-09,1.12961,0.000382662,-1.15239e-07,-3.97207e-09,1.12999,0.000382419,-1.27155e-07,1.19201e-08,1.13038,0.000382201,-9.1395e-08,-4.37085e-08,1.13076,0.000381887,-2.2252e-07,4.37046e-08,1.13114,0.000381573,-9.14068e-08,-1.19005e-08,1.13152,0.000381355,-1.27108e-07,3.89734e-09,1.1319,0.000381112,-1.15416e-07,-3.68887e-09,1.13228,0.00038087,-1.26483e-07,1.08582e-08,1.13266,0.00038065,-9.39083e-08,-3.97438e-08,1.13304,0.000380343,-2.1314e-07,2.89076e-08,1.13342,0.000380003,-1.26417e-07,4.33225e-08,1.1338,0.00037988,3.55072e-09,-8.29883e-08,1.13418,0.000379638,-2.45414e-07,5.0212e-08,1.13456,0.000379298,-9.47781e-08,1.34964e-09,1.13494,0.000379113,-9.07292e-08,-5.56105e-08,1.13532,0.000378764,-2.57561e-07,1.01883e-07,1.1357,0.000378555,4.80889e-08,-1.13504e-07,1.13608,0.000378311,-2.92423e-07,1.13713e-07,1.13646,0.000378067,4.87176e-08,-1.02931e-07,1.13683,0.000377856,-2.60076e-07,5.95923e-08,1.13721,0.000377514,-8.12988e-08,-1.62288e-08,1.13759,0.000377303,-1.29985e-07,5.32278e-09,1.13797,0.000377059,-1.14017e-07,-5.06237e-09,1.13834,0.000376816,-1.29204e-07,1.49267e-08,1.13872,0.000376602,-8.44237e-08,-5.46444e-08,1.1391,0.000376269,-2.48357e-07,8.44417e-08,1.13947,0.000376026,4.96815e-09,-4.47039e-08,1.13985,0.000375902,-1.29143e-07,-2.48355e-08,1.14023,0.000375569,-2.0365e-07,2.48368e-08,1.1406,0.000375236,-1.2914e-07,4.46977e-08,1.14098,0.000375112,4.95341e-09,-8.44184e-08,1.14135,0.000374869,-2.48302e-07,5.45572e-08,1.14173,0.000374536,-8.463e-08,-1.46013e-08,1.1421,0.000374323,-1.28434e-07,3.8478e-09,1.14247,0.000374077,-1.1689e-07,-7.89941e-10,1.14285,0.000373841,-1.1926e-07,-6.88042e-10,1.14322,0.0003736,-1.21324e-07,3.54213e-09,1.1436,0.000373368,-1.10698e-07,-1.34805e-08,1.14397,0.000373107,-1.51139e-07,5.03798e-08,1.14434,0.000372767,0.,0.}; + + template + __device__ __forceinline__ void RGB2LuvConvert_f(const T& src, D& dst) + { + const float _d = 1.f / (0.950456f + 15 + 1.088754f * 3); + const float _un = 13 * (4 * 0.950456f * _d); + const float _vn = 13 * (9 * _d); + + float B = blueIdx == 0 ? src.x : src.z; + float G = src.y; + float R = blueIdx == 0 ? src.z : src.x; + + if (srgb) + { + B = splineInterpolate(B * GAMMA_TAB_SIZE, c_sRGBGammaTab, GAMMA_TAB_SIZE); + G = splineInterpolate(G * GAMMA_TAB_SIZE, c_sRGBGammaTab, GAMMA_TAB_SIZE); + R = splineInterpolate(R * GAMMA_TAB_SIZE, c_sRGBGammaTab, GAMMA_TAB_SIZE); + } + + float X = R * 0.412453f + G * 0.357580f + B * 0.180423f; + float Y = R * 0.212671f + G * 0.715160f + B * 0.072169f; + float Z = R * 0.019334f + G * 0.119193f + B * 0.950227f; + + float L = splineInterpolate(Y * (LAB_CBRT_TAB_SIZE / 1.5f), c_LabCbrtTab, LAB_CBRT_TAB_SIZE); + L = 116.f * L - 16.f; + + const float d = (4 * 13) / ::fmaxf(X + 15 * Y + 3 * Z, numeric_limits::epsilon()); + float u = L * (X * d - _un); + float v = L * ((9 * 0.25f) * Y * d - _vn); + + dst.x = L; + dst.y = u; + dst.z = v; + } + + template + __device__ __forceinline__ void RGB2LuvConvert_b(const T& src, D& dst) + { + float3 srcf, dstf; + + srcf.x = src.x * (1.f / 255.f); + srcf.y = src.y * (1.f / 255.f); + srcf.z = src.z * (1.f / 255.f); + + RGB2LuvConvert_f(srcf, dstf); + + dst.x = saturate_cast(dstf.x * 2.55f); + dst.y = saturate_cast(dstf.y * 0.72033898305084743f + 96.525423728813564f); + dst.z = saturate_cast(dstf.z * 0.9732824427480916f + 136.259541984732824f); + } + + template struct RGB2Luv; + template + struct RGB2Luv + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2LuvConvert_b(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2Luv() {} + __host__ __device__ __forceinline__ RGB2Luv(const RGB2Luv&) {} + }; + template + struct RGB2Luv + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + RGB2LuvConvert_f(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ RGB2Luv() {} + __host__ __device__ __forceinline__ RGB2Luv(const RGB2Luv&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_RGB2Luv_TRAITS(name, scn, dcn, srgb, blueIdx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::RGB2Luv functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + namespace color_detail + { + template + __device__ __forceinline__ void Luv2RGBConvert_f(const T& src, D& dst) + { + const float _d = 1.f / (0.950456f + 15 + 1.088754f * 3); + const float _un = 4 * 0.950456f * _d; + const float _vn = 9 * _d; + + float L = src.x; + float u = src.y; + float v = src.z; + + float Y = (L + 16.f) * (1.f / 116.f); + Y = Y * Y * Y; + + float d = (1.f / 13.f) / L; + u = u * d + _un; + v = v * d + _vn; + + float iv = 1.f / v; + float X = 2.25f * u * Y * iv; + float Z = (12 - 3 * u - 20 * v) * Y * 0.25f * iv; + + float B = 0.055648f * X - 0.204043f * Y + 1.057311f * Z; + float G = -0.969256f * X + 1.875991f * Y + 0.041556f * Z; + float R = 3.240479f * X - 1.537150f * Y - 0.498535f * Z; + + if (srgb) + { + B = splineInterpolate(B * GAMMA_TAB_SIZE, c_sRGBInvGammaTab, GAMMA_TAB_SIZE); + G = splineInterpolate(G * GAMMA_TAB_SIZE, c_sRGBInvGammaTab, GAMMA_TAB_SIZE); + R = splineInterpolate(R * GAMMA_TAB_SIZE, c_sRGBInvGammaTab, GAMMA_TAB_SIZE); + } + + dst.x = blueIdx == 0 ? B : R; + dst.y = G; + dst.z = blueIdx == 0 ? R : B; + setAlpha(dst, ColorChannel::max()); + } + + template + __device__ __forceinline__ void Luv2RGBConvert_b(const T& src, D& dst) + { + float3 srcf, dstf; + + srcf.x = src.x * (100.f / 255.f); + srcf.y = src.y * 1.388235294117647f - 134.f; + srcf.z = src.z * 1.027450980392157f - 140.f; + + Luv2RGBConvert_f(srcf, dstf); + + dst.x = saturate_cast(dstf.x * 255.f); + dst.y = saturate_cast(dstf.y * 255.f); + dst.z = saturate_cast(dstf.z * 255.f); + setAlpha(dst, ColorChannel::max()); + } + + template struct Luv2RGB; + template + struct Luv2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + Luv2RGBConvert_b(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ Luv2RGB() {} + __host__ __device__ __forceinline__ Luv2RGB(const Luv2RGB&) {} + }; + template + struct Luv2RGB + : unary_function::vec_type, typename TypeVec::vec_type> + { + __device__ __forceinline__ typename TypeVec::vec_type operator ()(const typename TypeVec::vec_type& src) const + { + typename TypeVec::vec_type dst; + + Luv2RGBConvert_f(src, dst); + + return dst; + } + __host__ __device__ __forceinline__ Luv2RGB() {} + __host__ __device__ __forceinline__ Luv2RGB(const Luv2RGB&) {} + }; + } + +#define OPENCV_CUDA_IMPLEMENT_Luv2RGB_TRAITS(name, scn, dcn, srgb, blueIdx) \ + template struct name ## _traits \ + { \ + typedef ::cv::cuda::device::color_detail::Luv2RGB functor_type; \ + static __host__ __device__ __forceinline__ functor_type create_functor() \ + { \ + return functor_type(); \ + } \ + }; + + #undef CV_DESCALE + +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_COLOR_DETAIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/reduce.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/reduce.hpp new file mode 100644 index 000000000..8af20b0dc --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/reduce.hpp @@ -0,0 +1,365 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_REDUCE_DETAIL_HPP +#define OPENCV_CUDA_REDUCE_DETAIL_HPP + +#include +#include "../warp.hpp" +#include "../warp_shuffle.hpp" + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + namespace reduce_detail + { + template struct GetType; + template struct GetType + { + typedef T type; + }; + template struct GetType + { + typedef T type; + }; + template struct GetType + { + typedef T type; + }; + + template + struct For + { + template + static __device__ void loadToSmem(const PointerTuple& smem, const ValTuple& val, unsigned int tid) + { + thrust::get(smem)[tid] = thrust::get(val); + + For::loadToSmem(smem, val, tid); + } + template + static __device__ void loadFromSmem(const PointerTuple& smem, const ValTuple& val, unsigned int tid) + { + thrust::get(val) = thrust::get(smem)[tid]; + + For::loadFromSmem(smem, val, tid); + } + + template + static __device__ void merge(const PointerTuple& smem, const ValTuple& val, unsigned int tid, unsigned int delta, const OpTuple& op) + { + typename GetType::type>::type reg = thrust::get(smem)[tid + delta]; + thrust::get(smem)[tid] = thrust::get(val) = thrust::get(op)(thrust::get(val), reg); + + For::merge(smem, val, tid, delta, op); + } + template + static __device__ void mergeShfl(const ValTuple& val, unsigned int delta, unsigned int width, const OpTuple& op) + { + typename GetType::type>::type reg = shfl_down(thrust::get(val), delta, width); + thrust::get(val) = thrust::get(op)(thrust::get(val), reg); + + For::mergeShfl(val, delta, width, op); + } + }; + template + struct For + { + template + static __device__ void loadToSmem(const PointerTuple&, const ValTuple&, unsigned int) + { + } + template + static __device__ void loadFromSmem(const PointerTuple&, const ValTuple&, unsigned int) + { + } + + template + static __device__ void merge(const PointerTuple&, const ValTuple&, unsigned int, unsigned int, const OpTuple&) + { + } + template + static __device__ void mergeShfl(const ValTuple&, unsigned int, unsigned int, const OpTuple&) + { + } + }; + + template + __device__ __forceinline__ void loadToSmem(volatile T* smem, T& val, unsigned int tid) + { + smem[tid] = val; + } + template + __device__ __forceinline__ void loadFromSmem(volatile T* smem, T& val, unsigned int tid) + { + val = smem[tid]; + } + template + __device__ __forceinline__ void loadToSmem(const thrust::tuple& smem, + const thrust::tuple& val, + unsigned int tid) + { + For<0, thrust::tuple_size >::value>::loadToSmem(smem, val, tid); + } + template + __device__ __forceinline__ void loadFromSmem(const thrust::tuple& smem, + const thrust::tuple& val, + unsigned int tid) + { + For<0, thrust::tuple_size >::value>::loadFromSmem(smem, val, tid); + } + + template + __device__ __forceinline__ void merge(volatile T* smem, T& val, unsigned int tid, unsigned int delta, const Op& op) + { + T reg = smem[tid + delta]; + smem[tid] = val = op(val, reg); + } + template + __device__ __forceinline__ void mergeShfl(T& val, unsigned int delta, unsigned int width, const Op& op) + { + T reg = shfl_down(val, delta, width); + val = op(val, reg); + } + template + __device__ __forceinline__ void merge(const thrust::tuple& smem, + const thrust::tuple& val, + unsigned int tid, + unsigned int delta, + const thrust::tuple& op) + { + For<0, thrust::tuple_size >::value>::merge(smem, val, tid, delta, op); + } + template + __device__ __forceinline__ void mergeShfl(const thrust::tuple& val, + unsigned int delta, + unsigned int width, + const thrust::tuple& op) + { + For<0, thrust::tuple_size >::value>::mergeShfl(val, delta, width, op); + } + + template struct Generic + { + template + static __device__ void reduce(Pointer smem, Reference val, unsigned int tid, Op op) + { + loadToSmem(smem, val, tid); + if (N >= 32) + __syncthreads(); + + if (N >= 2048) + { + if (tid < 1024) + merge(smem, val, tid, 1024, op); + + __syncthreads(); + } + if (N >= 1024) + { + if (tid < 512) + merge(smem, val, tid, 512, op); + + __syncthreads(); + } + if (N >= 512) + { + if (tid < 256) + merge(smem, val, tid, 256, op); + + __syncthreads(); + } + if (N >= 256) + { + if (tid < 128) + merge(smem, val, tid, 128, op); + + __syncthreads(); + } + if (N >= 128) + { + if (tid < 64) + merge(smem, val, tid, 64, op); + + __syncthreads(); + } + if (N >= 64) + { + if (tid < 32) + merge(smem, val, tid, 32, op); + } + + if (tid < 16) + { + merge(smem, val, tid, 16, op); + merge(smem, val, tid, 8, op); + merge(smem, val, tid, 4, op); + merge(smem, val, tid, 2, op); + merge(smem, val, tid, 1, op); + } + } + }; + + template + struct Unroll + { + static __device__ void loopShfl(Reference val, Op op, unsigned int N) + { + mergeShfl(val, I, N, op); + Unroll::loopShfl(val, op, N); + } + static __device__ void loop(Pointer smem, Reference val, unsigned int tid, Op op) + { + merge(smem, val, tid, I, op); + Unroll::loop(smem, val, tid, op); + } + }; + template + struct Unroll<0, Pointer, Reference, Op> + { + static __device__ void loopShfl(Reference, Op, unsigned int) + { + } + static __device__ void loop(Pointer, Reference, unsigned int, Op) + { + } + }; + + template struct WarpOptimized + { + template + static __device__ void reduce(Pointer smem, Reference val, unsigned int tid, Op op) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + CV_UNUSED(smem); + CV_UNUSED(tid); + + Unroll::loopShfl(val, op, N); + #else + loadToSmem(smem, val, tid); + + if (tid < N / 2) + Unroll::loop(smem, val, tid, op); + #endif + } + }; + + template struct GenericOptimized32 + { + enum { M = N / 32 }; + + template + static __device__ void reduce(Pointer smem, Reference val, unsigned int tid, Op op) + { + const unsigned int laneId = Warp::laneId(); + + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + Unroll<16, Pointer, Reference, Op>::loopShfl(val, op, warpSize); + + if (laneId == 0) + loadToSmem(smem, val, tid / 32); + #else + loadToSmem(smem, val, tid); + + if (laneId < 16) + Unroll<16, Pointer, Reference, Op>::loop(smem, val, tid, op); + + __syncthreads(); + + if (laneId == 0) + loadToSmem(smem, val, tid / 32); + #endif + + __syncthreads(); + + loadFromSmem(smem, val, tid); + + if (tid < 32) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + Unroll::loopShfl(val, op, M); + #else + Unroll::loop(smem, val, tid, op); + #endif + } + } + }; + + template struct StaticIf; + template struct StaticIf + { + typedef T1 type; + }; + template struct StaticIf + { + typedef T2 type; + }; + + template struct IsPowerOf2 + { + enum { value = ((N != 0) && !(N & (N - 1))) }; + }; + + template struct Dispatcher + { + typedef typename StaticIf< + (N <= 32) && IsPowerOf2::value, + WarpOptimized, + typename StaticIf< + (N <= 1024) && IsPowerOf2::value, + GenericOptimized32, + Generic + >::type + >::type reductor; + }; + } +}}} + +//! @endcond + +#endif // OPENCV_CUDA_REDUCE_DETAIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/reduce_key_val.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/reduce_key_val.hpp new file mode 100644 index 000000000..df37c173b --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/reduce_key_val.hpp @@ -0,0 +1,502 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP +#define OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP + +#include +#include "../warp.hpp" +#include "../warp_shuffle.hpp" + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + namespace reduce_key_val_detail + { + template struct GetType; + template struct GetType + { + typedef T type; + }; + template struct GetType + { + typedef T type; + }; + template struct GetType + { + typedef T type; + }; + + template + struct For + { + template + static __device__ void loadToSmem(const PointerTuple& smem, const ReferenceTuple& data, unsigned int tid) + { + thrust::get(smem)[tid] = thrust::get(data); + + For::loadToSmem(smem, data, tid); + } + template + static __device__ void loadFromSmem(const PointerTuple& smem, const ReferenceTuple& data, unsigned int tid) + { + thrust::get(data) = thrust::get(smem)[tid]; + + For::loadFromSmem(smem, data, tid); + } + + template + static __device__ void copyShfl(const ReferenceTuple& val, unsigned int delta, int width) + { + thrust::get(val) = shfl_down(thrust::get(val), delta, width); + + For::copyShfl(val, delta, width); + } + template + static __device__ void copy(const PointerTuple& svals, const ReferenceTuple& val, unsigned int tid, unsigned int delta) + { + thrust::get(svals)[tid] = thrust::get(val) = thrust::get(svals)[tid + delta]; + + For::copy(svals, val, tid, delta); + } + + template + static __device__ void mergeShfl(const KeyReferenceTuple& key, const ValReferenceTuple& val, const CmpTuple& cmp, unsigned int delta, int width) + { + typename GetType::type>::type reg = shfl_down(thrust::get(key), delta, width); + + if (thrust::get(cmp)(reg, thrust::get(key))) + { + thrust::get(key) = reg; + thrust::get(val) = shfl_down(thrust::get(val), delta, width); + } + + For::mergeShfl(key, val, cmp, delta, width); + } + template + static __device__ void merge(const KeyPointerTuple& skeys, const KeyReferenceTuple& key, + const ValPointerTuple& svals, const ValReferenceTuple& val, + const CmpTuple& cmp, + unsigned int tid, unsigned int delta) + { + typename GetType::type>::type reg = thrust::get(skeys)[tid + delta]; + + if (thrust::get(cmp)(reg, thrust::get(key))) + { + thrust::get(skeys)[tid] = thrust::get(key) = reg; + thrust::get(svals)[tid] = thrust::get(val) = thrust::get(svals)[tid + delta]; + } + + For::merge(skeys, key, svals, val, cmp, tid, delta); + } + }; + template + struct For + { + template + static __device__ void loadToSmem(const PointerTuple&, const ReferenceTuple&, unsigned int) + { + } + template + static __device__ void loadFromSmem(const PointerTuple&, const ReferenceTuple&, unsigned int) + { + } + + template + static __device__ void copyShfl(const ReferenceTuple&, unsigned int, int) + { + } + template + static __device__ void copy(const PointerTuple&, const ReferenceTuple&, unsigned int, unsigned int) + { + } + + template + static __device__ void mergeShfl(const KeyReferenceTuple&, const ValReferenceTuple&, const CmpTuple&, unsigned int, int) + { + } + template + static __device__ void merge(const KeyPointerTuple&, const KeyReferenceTuple&, + const ValPointerTuple&, const ValReferenceTuple&, + const CmpTuple&, + unsigned int, unsigned int) + { + } + }; + + ////////////////////////////////////////////////////// + // loadToSmem + + template + __device__ __forceinline__ void loadToSmem(volatile T* smem, T& data, unsigned int tid) + { + smem[tid] = data; + } + template + __device__ __forceinline__ void loadFromSmem(volatile T* smem, T& data, unsigned int tid) + { + data = smem[tid]; + } + template + __device__ __forceinline__ void loadToSmem(const thrust::tuple& smem, + const thrust::tuple& data, + unsigned int tid) + { + For<0, thrust::tuple_size >::value>::loadToSmem(smem, data, tid); + } + template + __device__ __forceinline__ void loadFromSmem(const thrust::tuple& smem, + const thrust::tuple& data, + unsigned int tid) + { + For<0, thrust::tuple_size >::value>::loadFromSmem(smem, data, tid); + } + + ////////////////////////////////////////////////////// + // copyVals + + template + __device__ __forceinline__ void copyValsShfl(V& val, unsigned int delta, int width) + { + val = shfl_down(val, delta, width); + } + template + __device__ __forceinline__ void copyVals(volatile V* svals, V& val, unsigned int tid, unsigned int delta) + { + svals[tid] = val = svals[tid + delta]; + } + template + __device__ __forceinline__ void copyValsShfl(const thrust::tuple& val, + unsigned int delta, + int width) + { + For<0, thrust::tuple_size >::value>::copyShfl(val, delta, width); + } + template + __device__ __forceinline__ void copyVals(const thrust::tuple& svals, + const thrust::tuple& val, + unsigned int tid, unsigned int delta) + { + For<0, thrust::tuple_size >::value>::copy(svals, val, tid, delta); + } + + ////////////////////////////////////////////////////// + // merge + + template + __device__ __forceinline__ void mergeShfl(K& key, V& val, const Cmp& cmp, unsigned int delta, int width) + { + K reg = shfl_down(key, delta, width); + + if (cmp(reg, key)) + { + key = reg; + copyValsShfl(val, delta, width); + } + } + template + __device__ __forceinline__ void merge(volatile K* skeys, K& key, volatile V* svals, V& val, const Cmp& cmp, unsigned int tid, unsigned int delta) + { + K reg = skeys[tid + delta]; + + if (cmp(reg, key)) + { + skeys[tid] = key = reg; + copyVals(svals, val, tid, delta); + } + } + template + __device__ __forceinline__ void mergeShfl(K& key, + const thrust::tuple& val, + const Cmp& cmp, + unsigned int delta, int width) + { + K reg = shfl_down(key, delta, width); + + if (cmp(reg, key)) + { + key = reg; + copyValsShfl(val, delta, width); + } + } + template + __device__ __forceinline__ void merge(volatile K* skeys, K& key, + const thrust::tuple& svals, + const thrust::tuple& val, + const Cmp& cmp, unsigned int tid, unsigned int delta) + { + K reg = skeys[tid + delta]; + + if (cmp(reg, key)) + { + skeys[tid] = key = reg; + copyVals(svals, val, tid, delta); + } + } + template + __device__ __forceinline__ void mergeShfl(const thrust::tuple& key, + const thrust::tuple& val, + const thrust::tuple& cmp, + unsigned int delta, int width) + { + For<0, thrust::tuple_size >::value>::mergeShfl(key, val, cmp, delta, width); + } + template + __device__ __forceinline__ void merge(const thrust::tuple& skeys, + const thrust::tuple& key, + const thrust::tuple& svals, + const thrust::tuple& val, + const thrust::tuple& cmp, + unsigned int tid, unsigned int delta) + { + For<0, thrust::tuple_size >::value>::merge(skeys, key, svals, val, cmp, tid, delta); + } + + ////////////////////////////////////////////////////// + // Generic + + template struct Generic + { + template + static __device__ void reduce(KP skeys, KR key, VP svals, VR val, unsigned int tid, Cmp cmp) + { + loadToSmem(skeys, key, tid); + loadValsToSmem(svals, val, tid); + if (N >= 32) + __syncthreads(); + + if (N >= 2048) + { + if (tid < 1024) + merge(skeys, key, svals, val, cmp, tid, 1024); + + __syncthreads(); + } + if (N >= 1024) + { + if (tid < 512) + merge(skeys, key, svals, val, cmp, tid, 512); + + __syncthreads(); + } + if (N >= 512) + { + if (tid < 256) + merge(skeys, key, svals, val, cmp, tid, 256); + + __syncthreads(); + } + if (N >= 256) + { + if (tid < 128) + merge(skeys, key, svals, val, cmp, tid, 128); + + __syncthreads(); + } + if (N >= 128) + { + if (tid < 64) + merge(skeys, key, svals, val, cmp, tid, 64); + + __syncthreads(); + } + if (N >= 64) + { + if (tid < 32) + merge(skeys, key, svals, val, cmp, tid, 32); + } + + if (tid < 16) + { + merge(skeys, key, svals, val, cmp, tid, 16); + merge(skeys, key, svals, val, cmp, tid, 8); + merge(skeys, key, svals, val, cmp, tid, 4); + merge(skeys, key, svals, val, cmp, tid, 2); + merge(skeys, key, svals, val, cmp, tid, 1); + } + } + }; + + template + struct Unroll + { + static __device__ void loopShfl(KR key, VR val, Cmp cmp, unsigned int N) + { + mergeShfl(key, val, cmp, I, N); + Unroll::loopShfl(key, val, cmp, N); + } + static __device__ void loop(KP skeys, KR key, VP svals, VR val, unsigned int tid, Cmp cmp) + { + merge(skeys, key, svals, val, cmp, tid, I); + Unroll::loop(skeys, key, svals, val, tid, cmp); + } + }; + template + struct Unroll<0, KP, KR, VP, VR, Cmp> + { + static __device__ void loopShfl(KR, VR, Cmp, unsigned int) + { + } + static __device__ void loop(KP, KR, VP, VR, unsigned int, Cmp) + { + } + }; + + template struct WarpOptimized + { + template + static __device__ void reduce(KP skeys, KR key, VP svals, VR val, unsigned int tid, Cmp cmp) + { + #if 0 // __CUDA_ARCH__ >= 300 + CV_UNUSED(skeys); + CV_UNUSED(svals); + CV_UNUSED(tid); + + Unroll::loopShfl(key, val, cmp, N); + #else + loadToSmem(skeys, key, tid); + loadToSmem(svals, val, tid); + + if (tid < N / 2) + Unroll::loop(skeys, key, svals, val, tid, cmp); + #endif + } + }; + + template struct GenericOptimized32 + { + enum { M = N / 32 }; + + template + static __device__ void reduce(KP skeys, KR key, VP svals, VR val, unsigned int tid, Cmp cmp) + { + const unsigned int laneId = Warp::laneId(); + + #if 0 // __CUDA_ARCH__ >= 300 + Unroll<16, KP, KR, VP, VR, Cmp>::loopShfl(key, val, cmp, warpSize); + + if (laneId == 0) + { + loadToSmem(skeys, key, tid / 32); + loadToSmem(svals, val, tid / 32); + } + #else + loadToSmem(skeys, key, tid); + loadToSmem(svals, val, tid); + + if (laneId < 16) + Unroll<16, KP, KR, VP, VR, Cmp>::loop(skeys, key, svals, val, tid, cmp); + + __syncthreads(); + + if (laneId == 0) + { + loadToSmem(skeys, key, tid / 32); + loadToSmem(svals, val, tid / 32); + } + #endif + + __syncthreads(); + + loadFromSmem(skeys, key, tid); + + if (tid < 32) + { + #if 0 // __CUDA_ARCH__ >= 300 + loadFromSmem(svals, val, tid); + + Unroll::loopShfl(key, val, cmp, M); + #else + Unroll::loop(skeys, key, svals, val, tid, cmp); + #endif + } + } + }; + + template struct StaticIf; + template struct StaticIf + { + typedef T1 type; + }; + template struct StaticIf + { + typedef T2 type; + }; + + template struct IsPowerOf2 + { + enum { value = ((N != 0) && !(N & (N - 1))) }; + }; + + template struct Dispatcher + { + typedef typename StaticIf< + (N <= 32) && IsPowerOf2::value, + WarpOptimized, + typename StaticIf< + (N <= 1024) && IsPowerOf2::value, + GenericOptimized32, + Generic + >::type + >::type reductor; + }; + } +}}} + +//! @endcond + +#endif // OPENCV_CUDA_PRED_VAL_REDUCE_DETAIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/transform_detail.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/transform_detail.hpp new file mode 100644 index 000000000..191984882 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/transform_detail.hpp @@ -0,0 +1,392 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_TRANSFORM_DETAIL_HPP +#define OPENCV_CUDA_TRANSFORM_DETAIL_HPP + +#include "../common.hpp" +#include "../vec_traits.hpp" +#include "../functional.hpp" + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + namespace transform_detail + { + //! Read Write Traits + + template struct UnaryReadWriteTraits + { + typedef typename TypeVec::vec_type read_type; + typedef typename TypeVec::vec_type write_type; + }; + + template struct BinaryReadWriteTraits + { + typedef typename TypeVec::vec_type read_type1; + typedef typename TypeVec::vec_type read_type2; + typedef typename TypeVec::vec_type write_type; + }; + + //! Transform kernels + + template struct OpUnroller; + template <> struct OpUnroller<1> + { + template + static __device__ __forceinline__ void unroll(const T& src, D& dst, const Mask& mask, UnOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src.x); + } + + template + static __device__ __forceinline__ void unroll(const T1& src1, const T2& src2, D& dst, const Mask& mask, BinOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src1.x, src2.x); + } + }; + template <> struct OpUnroller<2> + { + template + static __device__ __forceinline__ void unroll(const T& src, D& dst, const Mask& mask, UnOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src.x); + if (mask(y, x_shifted + 1)) + dst.y = op(src.y); + } + + template + static __device__ __forceinline__ void unroll(const T1& src1, const T2& src2, D& dst, const Mask& mask, BinOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src1.x, src2.x); + if (mask(y, x_shifted + 1)) + dst.y = op(src1.y, src2.y); + } + }; + template <> struct OpUnroller<3> + { + template + static __device__ __forceinline__ void unroll(const T& src, D& dst, const Mask& mask, const UnOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src.x); + if (mask(y, x_shifted + 1)) + dst.y = op(src.y); + if (mask(y, x_shifted + 2)) + dst.z = op(src.z); + } + + template + static __device__ __forceinline__ void unroll(const T1& src1, const T2& src2, D& dst, const Mask& mask, const BinOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src1.x, src2.x); + if (mask(y, x_shifted + 1)) + dst.y = op(src1.y, src2.y); + if (mask(y, x_shifted + 2)) + dst.z = op(src1.z, src2.z); + } + }; + template <> struct OpUnroller<4> + { + template + static __device__ __forceinline__ void unroll(const T& src, D& dst, const Mask& mask, const UnOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src.x); + if (mask(y, x_shifted + 1)) + dst.y = op(src.y); + if (mask(y, x_shifted + 2)) + dst.z = op(src.z); + if (mask(y, x_shifted + 3)) + dst.w = op(src.w); + } + + template + static __device__ __forceinline__ void unroll(const T1& src1, const T2& src2, D& dst, const Mask& mask, const BinOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.x = op(src1.x, src2.x); + if (mask(y, x_shifted + 1)) + dst.y = op(src1.y, src2.y); + if (mask(y, x_shifted + 2)) + dst.z = op(src1.z, src2.z); + if (mask(y, x_shifted + 3)) + dst.w = op(src1.w, src2.w); + } + }; + template <> struct OpUnroller<8> + { + template + static __device__ __forceinline__ void unroll(const T& src, D& dst, const Mask& mask, const UnOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.a0 = op(src.a0); + if (mask(y, x_shifted + 1)) + dst.a1 = op(src.a1); + if (mask(y, x_shifted + 2)) + dst.a2 = op(src.a2); + if (mask(y, x_shifted + 3)) + dst.a3 = op(src.a3); + if (mask(y, x_shifted + 4)) + dst.a4 = op(src.a4); + if (mask(y, x_shifted + 5)) + dst.a5 = op(src.a5); + if (mask(y, x_shifted + 6)) + dst.a6 = op(src.a6); + if (mask(y, x_shifted + 7)) + dst.a7 = op(src.a7); + } + + template + static __device__ __forceinline__ void unroll(const T1& src1, const T2& src2, D& dst, const Mask& mask, const BinOp& op, int x_shifted, int y) + { + if (mask(y, x_shifted)) + dst.a0 = op(src1.a0, src2.a0); + if (mask(y, x_shifted + 1)) + dst.a1 = op(src1.a1, src2.a1); + if (mask(y, x_shifted + 2)) + dst.a2 = op(src1.a2, src2.a2); + if (mask(y, x_shifted + 3)) + dst.a3 = op(src1.a3, src2.a3); + if (mask(y, x_shifted + 4)) + dst.a4 = op(src1.a4, src2.a4); + if (mask(y, x_shifted + 5)) + dst.a5 = op(src1.a5, src2.a5); + if (mask(y, x_shifted + 6)) + dst.a6 = op(src1.a6, src2.a6); + if (mask(y, x_shifted + 7)) + dst.a7 = op(src1.a7, src2.a7); + } + }; + + template + static __global__ void transformSmart(const PtrStepSz src_, PtrStep dst_, const Mask mask, const UnOp op) + { + typedef TransformFunctorTraits ft; + typedef typename UnaryReadWriteTraits::read_type read_type; + typedef typename UnaryReadWriteTraits::write_type write_type; + + const int x = threadIdx.x + blockIdx.x * blockDim.x; + const int y = threadIdx.y + blockIdx.y * blockDim.y; + const int x_shifted = x * ft::smart_shift; + + if (y < src_.rows) + { + const T* src = src_.ptr(y); + D* dst = dst_.ptr(y); + + if (x_shifted + ft::smart_shift - 1 < src_.cols) + { + const read_type src_n_el = ((const read_type*)src)[x]; + OpUnroller::unroll(src_n_el, ((write_type*)dst)[x], mask, op, x_shifted, y); + } + else + { + for (int real_x = x_shifted; real_x < src_.cols; ++real_x) + { + if (mask(y, real_x)) + dst[real_x] = op(src[real_x]); + } + } + } + } + + template + __global__ static void transformSimple(const PtrStepSz src, PtrStep dst, const Mask mask, const UnOp op) + { + const int x = blockDim.x * blockIdx.x + threadIdx.x; + const int y = blockDim.y * blockIdx.y + threadIdx.y; + + if (x < src.cols && y < src.rows && mask(y, x)) + { + dst.ptr(y)[x] = op(src.ptr(y)[x]); + } + } + + template + static __global__ void transformSmart(const PtrStepSz src1_, const PtrStep src2_, PtrStep dst_, + const Mask mask, const BinOp op) + { + typedef TransformFunctorTraits ft; + typedef typename BinaryReadWriteTraits::read_type1 read_type1; + typedef typename BinaryReadWriteTraits::read_type2 read_type2; + typedef typename BinaryReadWriteTraits::write_type write_type; + + const int x = threadIdx.x + blockIdx.x * blockDim.x; + const int y = threadIdx.y + blockIdx.y * blockDim.y; + const int x_shifted = x * ft::smart_shift; + + if (y < src1_.rows) + { + const T1* src1 = src1_.ptr(y); + const T2* src2 = src2_.ptr(y); + D* dst = dst_.ptr(y); + + if (x_shifted + ft::smart_shift - 1 < src1_.cols) + { + const read_type1 src1_n_el = ((const read_type1*)src1)[x]; + const read_type2 src2_n_el = ((const read_type2*)src2)[x]; + + OpUnroller::unroll(src1_n_el, src2_n_el, ((write_type*)dst)[x], mask, op, x_shifted, y); + } + else + { + for (int real_x = x_shifted; real_x < src1_.cols; ++real_x) + { + if (mask(y, real_x)) + dst[real_x] = op(src1[real_x], src2[real_x]); + } + } + } + } + + template + static __global__ void transformSimple(const PtrStepSz src1, const PtrStep src2, PtrStep dst, + const Mask mask, const BinOp op) + { + const int x = blockDim.x * blockIdx.x + threadIdx.x; + const int y = blockDim.y * blockIdx.y + threadIdx.y; + + if (x < src1.cols && y < src1.rows && mask(y, x)) + { + const T1 src1_data = src1.ptr(y)[x]; + const T2 src2_data = src2.ptr(y)[x]; + dst.ptr(y)[x] = op(src1_data, src2_data); + } + } + + template struct TransformDispatcher; + template<> struct TransformDispatcher + { + template + static void call(PtrStepSz src, PtrStepSz dst, UnOp op, Mask mask, cudaStream_t stream) + { + typedef TransformFunctorTraits ft; + + const dim3 threads(ft::simple_block_dim_x, ft::simple_block_dim_y, 1); + const dim3 grid(divUp(src.cols, threads.x), divUp(src.rows, threads.y), 1); + + transformSimple<<>>(src, dst, mask, op); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template + static void call(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, BinOp op, Mask mask, cudaStream_t stream) + { + typedef TransformFunctorTraits ft; + + const dim3 threads(ft::simple_block_dim_x, ft::simple_block_dim_y, 1); + const dim3 grid(divUp(src1.cols, threads.x), divUp(src1.rows, threads.y), 1); + + transformSimple<<>>(src1, src2, dst, mask, op); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + }; + template<> struct TransformDispatcher + { + template + static void call(PtrStepSz src, PtrStepSz dst, UnOp op, Mask mask, cudaStream_t stream) + { + typedef TransformFunctorTraits ft; + + CV_StaticAssert(ft::smart_shift != 1, ""); + + if (!isAligned(src.data, ft::smart_shift * sizeof(T)) || !isAligned(src.step, ft::smart_shift * sizeof(T)) || + !isAligned(dst.data, ft::smart_shift * sizeof(D)) || !isAligned(dst.step, ft::smart_shift * sizeof(D))) + { + TransformDispatcher::call(src, dst, op, mask, stream); + return; + } + + const dim3 threads(ft::smart_block_dim_x, ft::smart_block_dim_y, 1); + const dim3 grid(divUp(src.cols, threads.x * ft::smart_shift), divUp(src.rows, threads.y), 1); + + transformSmart<<>>(src, dst, mask, op); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + + template + static void call(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, BinOp op, Mask mask, cudaStream_t stream) + { + typedef TransformFunctorTraits ft; + + CV_StaticAssert(ft::smart_shift != 1, ""); + + if (!isAligned(src1.data, ft::smart_shift * sizeof(T1)) || !isAligned(src1.step, ft::smart_shift * sizeof(T1)) || + !isAligned(src2.data, ft::smart_shift * sizeof(T2)) || !isAligned(src2.step, ft::smart_shift * sizeof(T2)) || + !isAligned(dst.data, ft::smart_shift * sizeof(D)) || !isAligned(dst.step, ft::smart_shift * sizeof(D))) + { + TransformDispatcher::call(src1, src2, dst, op, mask, stream); + return; + } + + const dim3 threads(ft::smart_block_dim_x, ft::smart_block_dim_y, 1); + const dim3 grid(divUp(src1.cols, threads.x * ft::smart_shift), divUp(src1.rows, threads.y), 1); + + transformSmart<<>>(src1, src2, dst, mask, op); + cudaSafeCall( cudaGetLastError() ); + + if (stream == 0) + cudaSafeCall( cudaDeviceSynchronize() ); + } + }; + } // namespace transform_detail +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_TRANSFORM_DETAIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/type_traits_detail.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/type_traits_detail.hpp new file mode 100644 index 000000000..a78bd2c0d --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/type_traits_detail.hpp @@ -0,0 +1,191 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP +#define OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP + +#include "../common.hpp" +#include "../vec_traits.hpp" + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + namespace type_traits_detail + { + template struct Select { typedef T1 type; }; + template struct Select { typedef T2 type; }; + + template struct IsSignedIntergral { enum {value = 0}; }; + template <> struct IsSignedIntergral { enum {value = 1}; }; + template <> struct IsSignedIntergral { enum {value = 1}; }; + template <> struct IsSignedIntergral { enum {value = 1}; }; + template <> struct IsSignedIntergral { enum {value = 1}; }; + template <> struct IsSignedIntergral { enum {value = 1}; }; + template <> struct IsSignedIntergral { enum {value = 1}; }; + + template struct IsUnsignedIntegral { enum {value = 0}; }; + template <> struct IsUnsignedIntegral { enum {value = 1}; }; + template <> struct IsUnsignedIntegral { enum {value = 1}; }; + template <> struct IsUnsignedIntegral { enum {value = 1}; }; + template <> struct IsUnsignedIntegral { enum {value = 1}; }; + template <> struct IsUnsignedIntegral { enum {value = 1}; }; + template <> struct IsUnsignedIntegral { enum {value = 1}; }; + + template struct IsIntegral { enum {value = IsSignedIntergral::value || IsUnsignedIntegral::value}; }; + template <> struct IsIntegral { enum {value = 1}; }; + template <> struct IsIntegral { enum {value = 1}; }; + + template struct IsFloat { enum {value = 0}; }; + template <> struct IsFloat { enum {value = 1}; }; + template <> struct IsFloat { enum {value = 1}; }; + + template struct IsVec { enum {value = 0}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + template <> struct IsVec { enum {value = 1}; }; + + template struct AddParameterType { typedef const U& type; }; + template struct AddParameterType { typedef U& type; }; + template <> struct AddParameterType { typedef void type; }; + + template struct ReferenceTraits + { + enum { value = false }; + typedef U type; + }; + template struct ReferenceTraits + { + enum { value = true }; + typedef U type; + }; + + template struct PointerTraits + { + enum { value = false }; + typedef void type; + }; + template struct PointerTraits + { + enum { value = true }; + typedef U type; + }; + template struct PointerTraits + { + enum { value = true }; + typedef U type; + }; + + template struct UnConst + { + typedef U type; + enum { value = 0 }; + }; + template struct UnConst + { + typedef U type; + enum { value = 1 }; + }; + template struct UnConst + { + typedef U& type; + enum { value = 1 }; + }; + + template struct UnVolatile + { + typedef U type; + enum { value = 0 }; + }; + template struct UnVolatile + { + typedef U type; + enum { value = 1 }; + }; + template struct UnVolatile + { + typedef U& type; + enum { value = 1 }; + }; + } // namespace type_traits_detail +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_TYPE_TRAITS_DETAIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/vec_distance_detail.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/vec_distance_detail.hpp new file mode 100644 index 000000000..8283a9956 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/detail/vec_distance_detail.hpp @@ -0,0 +1,121 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP +#define OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP + +#include "../datamov_utils.hpp" + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + namespace vec_distance_detail + { + template struct UnrollVecDiffCached + { + template + static __device__ void calcCheck(const T1* vecCached, const T2* vecGlob, int len, Dist& dist, int ind) + { + if (ind < len) + { + T1 val1 = *vecCached++; + + T2 val2; + ForceGlob::Load(vecGlob, ind, val2); + + dist.reduceIter(val1, val2); + + UnrollVecDiffCached::calcCheck(vecCached, vecGlob, len, dist, ind + THREAD_DIM); + } + } + + template + static __device__ void calcWithoutCheck(const T1* vecCached, const T2* vecGlob, Dist& dist) + { + T1 val1 = *vecCached++; + + T2 val2; + ForceGlob::Load(vecGlob, 0, val2); + vecGlob += THREAD_DIM; + + dist.reduceIter(val1, val2); + + UnrollVecDiffCached::calcWithoutCheck(vecCached, vecGlob, dist); + } + }; + template struct UnrollVecDiffCached + { + template + static __device__ __forceinline__ void calcCheck(const T1*, const T2*, int, Dist&, int) + { + } + + template + static __device__ __forceinline__ void calcWithoutCheck(const T1*, const T2*, Dist&) + { + } + }; + + template struct VecDiffCachedCalculator; + template struct VecDiffCachedCalculator + { + template + static __device__ __forceinline__ void calc(const T1* vecCached, const T2* vecGlob, int len, Dist& dist, int tid) + { + UnrollVecDiffCached::calcCheck(vecCached, vecGlob, len, dist, tid); + } + }; + template struct VecDiffCachedCalculator + { + template + static __device__ __forceinline__ void calc(const T1* vecCached, const T2* vecGlob, int len, Dist& dist, int tid) + { + UnrollVecDiffCached::calcWithoutCheck(vecCached, vecGlob + tid, dist); + } + }; + } // namespace vec_distance_detail +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_VEC_DISTANCE_DETAIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/dynamic_smem.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/dynamic_smem.hpp new file mode 100644 index 000000000..42570c683 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/dynamic_smem.hpp @@ -0,0 +1,88 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_DYNAMIC_SMEM_HPP +#define OPENCV_CUDA_DYNAMIC_SMEM_HPP + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template struct DynamicSharedMem + { + __device__ __forceinline__ operator T*() + { + extern __shared__ int __smem[]; + return (T*)__smem; + } + + __device__ __forceinline__ operator const T*() const + { + extern __shared__ int __smem[]; + return (T*)__smem; + } + }; + + // specialize for double to avoid unaligned memory access compile errors + template<> struct DynamicSharedMem + { + __device__ __forceinline__ operator double*() + { + extern __shared__ double __smem_d[]; + return (double*)__smem_d; + } + + __device__ __forceinline__ operator const double*() const + { + extern __shared__ double __smem_d[]; + return (double*)__smem_d; + } + }; +}}} + +//! @endcond + +#endif // OPENCV_CUDA_DYNAMIC_SMEM_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/emulation.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/emulation.hpp new file mode 100644 index 000000000..17dc1171a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/emulation.hpp @@ -0,0 +1,269 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_EMULATION_HPP_ +#define OPENCV_CUDA_EMULATION_HPP_ + +#include "common.hpp" +#include "warp_reduce.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + struct Emulation + { + + static __device__ __forceinline__ int syncthreadsOr(int pred) + { +#if defined (__CUDA_ARCH__) && (__CUDA_ARCH__ < 200) + // just campilation stab + return 0; +#else + return __syncthreads_or(pred); +#endif + } + + template + static __forceinline__ __device__ int Ballot(int predicate) + { +#if defined (__CUDA_ARCH__) && (__CUDA_ARCH__ >= 200) + return __ballot(predicate); +#else + __shared__ volatile int cta_buffer[CTA_SIZE]; + + int tid = threadIdx.x; + cta_buffer[tid] = predicate ? (1 << (tid & 31)) : 0; + return warp_reduce(cta_buffer); +#endif + } + + struct smem + { + enum { TAG_MASK = (1U << ( (sizeof(unsigned int) << 3) - 5U)) - 1U }; + + template + static __device__ __forceinline__ T atomicInc(T* address, T val) + { +#if defined (__CUDA_ARCH__) && (__CUDA_ARCH__ < 120) + T count; + unsigned int tag = threadIdx.x << ( (sizeof(unsigned int) << 3) - 5U); + do + { + count = *address & TAG_MASK; + count = tag | (count + 1); + *address = count; + } while (*address != count); + + return (count & TAG_MASK) - 1; +#else + return ::atomicInc(address, val); +#endif + } + + template + static __device__ __forceinline__ T atomicAdd(T* address, T val) + { +#if defined (__CUDA_ARCH__) && (__CUDA_ARCH__ < 120) + T count; + unsigned int tag = threadIdx.x << ( (sizeof(unsigned int) << 3) - 5U); + do + { + count = *address & TAG_MASK; + count = tag | (count + val); + *address = count; + } while (*address != count); + + return (count & TAG_MASK) - val; +#else + return ::atomicAdd(address, val); +#endif + } + + template + static __device__ __forceinline__ T atomicMin(T* address, T val) + { +#if defined (__CUDA_ARCH__) && (__CUDA_ARCH__ < 120) + T count = ::min(*address, val); + do + { + *address = count; + } while (*address > count); + + return count; +#else + return ::atomicMin(address, val); +#endif + } + }; // struct cmem + + struct glob + { + static __device__ __forceinline__ int atomicAdd(int* address, int val) + { + return ::atomicAdd(address, val); + } + static __device__ __forceinline__ unsigned int atomicAdd(unsigned int* address, unsigned int val) + { + return ::atomicAdd(address, val); + } + static __device__ __forceinline__ float atomicAdd(float* address, float val) + { + #if __CUDA_ARCH__ >= 200 + return ::atomicAdd(address, val); + #else + int* address_as_i = (int*) address; + int old = *address_as_i, assumed; + do { + assumed = old; + old = ::atomicCAS(address_as_i, assumed, + __float_as_int(val + __int_as_float(assumed))); + } while (assumed != old); + return __int_as_float(old); + #endif + } + static __device__ __forceinline__ double atomicAdd(double* address, double val) + { + #if __CUDA_ARCH__ >= 130 + unsigned long long int* address_as_ull = (unsigned long long int*) address; + unsigned long long int old = *address_as_ull, assumed; + do { + assumed = old; + old = ::atomicCAS(address_as_ull, assumed, + __double_as_longlong(val + __longlong_as_double(assumed))); + } while (assumed != old); + return __longlong_as_double(old); + #else + CV_UNUSED(address); + CV_UNUSED(val); + return 0.0; + #endif + } + + static __device__ __forceinline__ int atomicMin(int* address, int val) + { + return ::atomicMin(address, val); + } + static __device__ __forceinline__ float atomicMin(float* address, float val) + { + #if __CUDA_ARCH__ >= 120 + int* address_as_i = (int*) address; + int old = *address_as_i, assumed; + do { + assumed = old; + old = ::atomicCAS(address_as_i, assumed, + __float_as_int(::fminf(val, __int_as_float(assumed)))); + } while (assumed != old); + return __int_as_float(old); + #else + CV_UNUSED(address); + CV_UNUSED(val); + return 0.0f; + #endif + } + static __device__ __forceinline__ double atomicMin(double* address, double val) + { + #if __CUDA_ARCH__ >= 130 + unsigned long long int* address_as_ull = (unsigned long long int*) address; + unsigned long long int old = *address_as_ull, assumed; + do { + assumed = old; + old = ::atomicCAS(address_as_ull, assumed, + __double_as_longlong(::fmin(val, __longlong_as_double(assumed)))); + } while (assumed != old); + return __longlong_as_double(old); + #else + CV_UNUSED(address); + CV_UNUSED(val); + return 0.0; + #endif + } + + static __device__ __forceinline__ int atomicMax(int* address, int val) + { + return ::atomicMax(address, val); + } + static __device__ __forceinline__ float atomicMax(float* address, float val) + { + #if __CUDA_ARCH__ >= 120 + int* address_as_i = (int*) address; + int old = *address_as_i, assumed; + do { + assumed = old; + old = ::atomicCAS(address_as_i, assumed, + __float_as_int(::fmaxf(val, __int_as_float(assumed)))); + } while (assumed != old); + return __int_as_float(old); + #else + CV_UNUSED(address); + CV_UNUSED(val); + return 0.0f; + #endif + } + static __device__ __forceinline__ double atomicMax(double* address, double val) + { + #if __CUDA_ARCH__ >= 130 + unsigned long long int* address_as_ull = (unsigned long long int*) address; + unsigned long long int old = *address_as_ull, assumed; + do { + assumed = old; + old = ::atomicCAS(address_as_ull, assumed, + __double_as_longlong(::fmax(val, __longlong_as_double(assumed)))); + } while (assumed != old); + return __longlong_as_double(old); + #else + CV_UNUSED(address); + CV_UNUSED(val); + return 0.0; + #endif + } + }; + }; //struct Emulation +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif /* OPENCV_CUDA_EMULATION_HPP_ */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/filters.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/filters.hpp new file mode 100644 index 000000000..bb9421229 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/filters.hpp @@ -0,0 +1,286 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_FILTERS_HPP +#define OPENCV_CUDA_FILTERS_HPP + +#include "saturate_cast.hpp" +#include "vec_traits.hpp" +#include "vec_math.hpp" +#include "type_traits.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template struct PointFilter + { + typedef typename Ptr2D::elem_type elem_type; + typedef float index_type; + + explicit __host__ __device__ __forceinline__ PointFilter(const Ptr2D& src_, float fx = 0.f, float fy = 0.f) + : src(src_) + { + CV_UNUSED(fx); + CV_UNUSED(fy); + } + + __device__ __forceinline__ elem_type operator ()(float y, float x) const + { + return src(__float2int_rz(y), __float2int_rz(x)); + } + + Ptr2D src; + }; + + template struct LinearFilter + { + typedef typename Ptr2D::elem_type elem_type; + typedef float index_type; + + explicit __host__ __device__ __forceinline__ LinearFilter(const Ptr2D& src_, float fx = 0.f, float fy = 0.f) + : src(src_) + { + CV_UNUSED(fx); + CV_UNUSED(fy); + } + __device__ __forceinline__ elem_type operator ()(float y, float x) const + { + typedef typename TypeVec::cn>::vec_type work_type; + + work_type out = VecTraits::all(0); + + const int x1 = __float2int_rd(x); + const int y1 = __float2int_rd(y); + const int x2 = x1 + 1; + const int y2 = y1 + 1; + + elem_type src_reg = src(y1, x1); + out = out + src_reg * ((x2 - x) * (y2 - y)); + + src_reg = src(y1, x2); + out = out + src_reg * ((x - x1) * (y2 - y)); + + src_reg = src(y2, x1); + out = out + src_reg * ((x2 - x) * (y - y1)); + + src_reg = src(y2, x2); + out = out + src_reg * ((x - x1) * (y - y1)); + + return saturate_cast(out); + } + + Ptr2D src; + }; + + template struct CubicFilter + { + typedef typename Ptr2D::elem_type elem_type; + typedef float index_type; + typedef typename TypeVec::cn>::vec_type work_type; + + explicit __host__ __device__ __forceinline__ CubicFilter(const Ptr2D& src_, float fx = 0.f, float fy = 0.f) + : src(src_) + { + CV_UNUSED(fx); + CV_UNUSED(fy); + } + + static __device__ __forceinline__ float bicubicCoeff(float x_) + { + float x = fabsf(x_); + if (x <= 1.0f) + { + return x * x * (1.5f * x - 2.5f) + 1.0f; + } + else if (x < 2.0f) + { + return x * (x * (-0.5f * x + 2.5f) - 4.0f) + 2.0f; + } + else + { + return 0.0f; + } + } + + __device__ elem_type operator ()(float y, float x) const + { + const float xmin = ::ceilf(x - 2.0f); + const float xmax = ::floorf(x + 2.0f); + + const float ymin = ::ceilf(y - 2.0f); + const float ymax = ::floorf(y + 2.0f); + + work_type sum = VecTraits::all(0); + float wsum = 0.0f; + + for (float cy = ymin; cy <= ymax; cy += 1.0f) + { + for (float cx = xmin; cx <= xmax; cx += 1.0f) + { + const float w = bicubicCoeff(x - cx) * bicubicCoeff(y - cy); + sum = sum + w * src(__float2int_rd(cy), __float2int_rd(cx)); + wsum += w; + } + } + + work_type res = (!wsum)? VecTraits::all(0) : sum / wsum; + + return saturate_cast(res); + } + + Ptr2D src; + }; + // for integer scaling + template struct IntegerAreaFilter + { + typedef typename Ptr2D::elem_type elem_type; + typedef float index_type; + + explicit __host__ __device__ __forceinline__ IntegerAreaFilter(const Ptr2D& src_, float scale_x_, float scale_y_) + : src(src_), scale_x(scale_x_), scale_y(scale_y_), scale(1.f / (scale_x * scale_y)) {} + + __device__ __forceinline__ elem_type operator ()(float y, float x) const + { + float fsx1 = x * scale_x; + float fsx2 = fsx1 + scale_x; + + int sx1 = __float2int_ru(fsx1); + int sx2 = __float2int_rd(fsx2); + + float fsy1 = y * scale_y; + float fsy2 = fsy1 + scale_y; + + int sy1 = __float2int_ru(fsy1); + int sy2 = __float2int_rd(fsy2); + + typedef typename TypeVec::cn>::vec_type work_type; + work_type out = VecTraits::all(0.f); + + for(int dy = sy1; dy < sy2; ++dy) + for(int dx = sx1; dx < sx2; ++dx) + { + out = out + src(dy, dx) * scale; + } + + return saturate_cast(out); + } + + Ptr2D src; + float scale_x, scale_y ,scale; + }; + + template struct AreaFilter + { + typedef typename Ptr2D::elem_type elem_type; + typedef float index_type; + + explicit __host__ __device__ __forceinline__ AreaFilter(const Ptr2D& src_, float scale_x_, float scale_y_) + : src(src_), scale_x(scale_x_), scale_y(scale_y_){} + + __device__ __forceinline__ elem_type operator ()(float y, float x) const + { + float fsx1 = x * scale_x; + float fsx2 = fsx1 + scale_x; + + int sx1 = __float2int_ru(fsx1); + int sx2 = __float2int_rd(fsx2); + + float fsy1 = y * scale_y; + float fsy2 = fsy1 + scale_y; + + int sy1 = __float2int_ru(fsy1); + int sy2 = __float2int_rd(fsy2); + + float scale = 1.f / (fminf(scale_x, src.width - fsx1) * fminf(scale_y, src.height - fsy1)); + + typedef typename TypeVec::cn>::vec_type work_type; + work_type out = VecTraits::all(0.f); + + for (int dy = sy1; dy < sy2; ++dy) + { + for (int dx = sx1; dx < sx2; ++dx) + out = out + src(dy, dx) * scale; + + if (sx1 > fsx1) + out = out + src(dy, (sx1 -1) ) * ((sx1 - fsx1) * scale); + + if (sx2 < fsx2) + out = out + src(dy, sx2) * ((fsx2 -sx2) * scale); + } + + if (sy1 > fsy1) + for (int dx = sx1; dx < sx2; ++dx) + out = out + src( (sy1 - 1) , dx) * ((sy1 -fsy1) * scale); + + if (sy2 < fsy2) + for (int dx = sx1; dx < sx2; ++dx) + out = out + src(sy2, dx) * ((fsy2 -sy2) * scale); + + if ((sy1 > fsy1) && (sx1 > fsx1)) + out = out + src( (sy1 - 1) , (sx1 - 1)) * ((sy1 -fsy1) * (sx1 -fsx1) * scale); + + if ((sy1 > fsy1) && (sx2 < fsx2)) + out = out + src( (sy1 - 1) , sx2) * ((sy1 -fsy1) * (fsx2 -sx2) * scale); + + if ((sy2 < fsy2) && (sx2 < fsx2)) + out = out + src(sy2, sx2) * ((fsy2 -sy2) * (fsx2 -sx2) * scale); + + if ((sy2 < fsy2) && (sx1 > fsx1)) + out = out + src(sy2, (sx1 - 1)) * ((fsy2 -sy2) * (sx1 -fsx1) * scale); + + return saturate_cast(out); + } + + Ptr2D src; + float scale_x, scale_y; + int width, haight; + }; +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_FILTERS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/funcattrib.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/funcattrib.hpp new file mode 100644 index 000000000..f58208048 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/funcattrib.hpp @@ -0,0 +1,79 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP +#define OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP + +#include + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template + void printFuncAttrib(Func& func) + { + + cudaFuncAttributes attrs; + cudaFuncGetAttributes(&attrs, func); + + printf("=== Function stats ===\n"); + printf("Name: \n"); + printf("sharedSizeBytes = %d\n", attrs.sharedSizeBytes); + printf("constSizeBytes = %d\n", attrs.constSizeBytes); + printf("localSizeBytes = %d\n", attrs.localSizeBytes); + printf("maxThreadsPerBlock = %d\n", attrs.maxThreadsPerBlock); + printf("numRegs = %d\n", attrs.numRegs); + printf("ptxVersion = %d\n", attrs.ptxVersion); + printf("binaryVersion = %d\n", attrs.binaryVersion); + printf("\n"); + fflush(stdout); + } +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif /* OPENCV_CUDA_DEVICE_FUNCATTRIB_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/functional.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/functional.hpp new file mode 100644 index 000000000..9f53d8752 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/functional.hpp @@ -0,0 +1,805 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_FUNCTIONAL_HPP +#define OPENCV_CUDA_FUNCTIONAL_HPP + +#include +#include "saturate_cast.hpp" +#include "vec_traits.hpp" +#include "type_traits.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + // Function Objects + template struct unary_function + { + typedef Argument argument_type; + typedef Result result_type; + }; + template struct binary_function + { + typedef Argument1 first_argument_type; + typedef Argument2 second_argument_type; + typedef Result result_type; + }; + + // Arithmetic Operations + template struct plus : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a + b; + } + __host__ __device__ __forceinline__ plus() {} + __host__ __device__ __forceinline__ plus(const plus&) {} + }; + + template struct minus : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a - b; + } + __host__ __device__ __forceinline__ minus() {} + __host__ __device__ __forceinline__ minus(const minus&) {} + }; + + template struct multiplies : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a * b; + } + __host__ __device__ __forceinline__ multiplies() {} + __host__ __device__ __forceinline__ multiplies(const multiplies&) {} + }; + + template struct divides : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a / b; + } + __host__ __device__ __forceinline__ divides() {} + __host__ __device__ __forceinline__ divides(const divides&) {} + }; + + template struct modulus : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a % b; + } + __host__ __device__ __forceinline__ modulus() {} + __host__ __device__ __forceinline__ modulus(const modulus&) {} + }; + + template struct negate : unary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a) const + { + return -a; + } + __host__ __device__ __forceinline__ negate() {} + __host__ __device__ __forceinline__ negate(const negate&) {} + }; + + // Comparison Operations + template struct equal_to : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a == b; + } + __host__ __device__ __forceinline__ equal_to() {} + __host__ __device__ __forceinline__ equal_to(const equal_to&) {} + }; + + template struct not_equal_to : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a != b; + } + __host__ __device__ __forceinline__ not_equal_to() {} + __host__ __device__ __forceinline__ not_equal_to(const not_equal_to&) {} + }; + + template struct greater : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a > b; + } + __host__ __device__ __forceinline__ greater() {} + __host__ __device__ __forceinline__ greater(const greater&) {} + }; + + template struct less : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a < b; + } + __host__ __device__ __forceinline__ less() {} + __host__ __device__ __forceinline__ less(const less&) {} + }; + + template struct greater_equal : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a >= b; + } + __host__ __device__ __forceinline__ greater_equal() {} + __host__ __device__ __forceinline__ greater_equal(const greater_equal&) {} + }; + + template struct less_equal : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a <= b; + } + __host__ __device__ __forceinline__ less_equal() {} + __host__ __device__ __forceinline__ less_equal(const less_equal&) {} + }; + + // Logical Operations + template struct logical_and : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a && b; + } + __host__ __device__ __forceinline__ logical_and() {} + __host__ __device__ __forceinline__ logical_and(const logical_and&) {} + }; + + template struct logical_or : binary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a || b; + } + __host__ __device__ __forceinline__ logical_or() {} + __host__ __device__ __forceinline__ logical_or(const logical_or&) {} + }; + + template struct logical_not : unary_function + { + __device__ __forceinline__ bool operator ()(typename TypeTraits::ParameterType a) const + { + return !a; + } + __host__ __device__ __forceinline__ logical_not() {} + __host__ __device__ __forceinline__ logical_not(const logical_not&) {} + }; + + // Bitwise Operations + template struct bit_and : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a & b; + } + __host__ __device__ __forceinline__ bit_and() {} + __host__ __device__ __forceinline__ bit_and(const bit_and&) {} + }; + + template struct bit_or : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a | b; + } + __host__ __device__ __forceinline__ bit_or() {} + __host__ __device__ __forceinline__ bit_or(const bit_or&) {} + }; + + template struct bit_xor : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType a, + typename TypeTraits::ParameterType b) const + { + return a ^ b; + } + __host__ __device__ __forceinline__ bit_xor() {} + __host__ __device__ __forceinline__ bit_xor(const bit_xor&) {} + }; + + template struct bit_not : unary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType v) const + { + return ~v; + } + __host__ __device__ __forceinline__ bit_not() {} + __host__ __device__ __forceinline__ bit_not(const bit_not&) {} + }; + + // Generalized Identity Operations + template struct identity : unary_function + { + __device__ __forceinline__ typename TypeTraits::ParameterType operator()(typename TypeTraits::ParameterType x) const + { + return x; + } + __host__ __device__ __forceinline__ identity() {} + __host__ __device__ __forceinline__ identity(const identity&) {} + }; + + template struct project1st : binary_function + { + __device__ __forceinline__ typename TypeTraits::ParameterType operator()(typename TypeTraits::ParameterType lhs, typename TypeTraits::ParameterType rhs) const + { + return lhs; + } + __host__ __device__ __forceinline__ project1st() {} + __host__ __device__ __forceinline__ project1st(const project1st&) {} + }; + + template struct project2nd : binary_function + { + __device__ __forceinline__ typename TypeTraits::ParameterType operator()(typename TypeTraits::ParameterType lhs, typename TypeTraits::ParameterType rhs) const + { + return rhs; + } + __host__ __device__ __forceinline__ project2nd() {} + __host__ __device__ __forceinline__ project2nd(const project2nd&) {} + }; + + // Min/Max Operations + +#define OPENCV_CUDA_IMPLEMENT_MINMAX(name, type, op) \ + template <> struct name : binary_function \ + { \ + __device__ __forceinline__ type operator()(type lhs, type rhs) const {return op(lhs, rhs);} \ + __host__ __device__ __forceinline__ name() {}\ + __host__ __device__ __forceinline__ name(const name&) {}\ + }; + + template struct maximum : binary_function + { + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType lhs, typename TypeTraits::ParameterType rhs) const + { + return max(lhs, rhs); + } + __host__ __device__ __forceinline__ maximum() {} + __host__ __device__ __forceinline__ maximum(const maximum&) {} + }; + + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, uchar, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, schar, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, char, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, ushort, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, short, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, int, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, uint, ::max) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, float, ::fmax) + OPENCV_CUDA_IMPLEMENT_MINMAX(maximum, double, ::fmax) + + template struct minimum : binary_function + { + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType lhs, typename TypeTraits::ParameterType rhs) const + { + return min(lhs, rhs); + } + __host__ __device__ __forceinline__ minimum() {} + __host__ __device__ __forceinline__ minimum(const minimum&) {} + }; + + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, uchar, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, schar, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, char, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, ushort, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, short, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, int, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, uint, ::min) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, float, ::fmin) + OPENCV_CUDA_IMPLEMENT_MINMAX(minimum, double, ::fmin) + +#undef OPENCV_CUDA_IMPLEMENT_MINMAX + + // Math functions + + template struct abs_func : unary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType x) const + { + return abs(x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ unsigned char operator ()(unsigned char x) const + { + return x; + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ signed char operator ()(signed char x) const + { + return ::abs((int)x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ char operator ()(char x) const + { + return ::abs((int)x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ unsigned short operator ()(unsigned short x) const + { + return x; + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ short operator ()(short x) const + { + return ::abs((int)x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ unsigned int operator ()(unsigned int x) const + { + return x; + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ int operator ()(int x) const + { + return ::abs(x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ float operator ()(float x) const + { + return ::fabsf(x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + template <> struct abs_func : unary_function + { + __device__ __forceinline__ double operator ()(double x) const + { + return ::fabs(x); + } + + __host__ __device__ __forceinline__ abs_func() {} + __host__ __device__ __forceinline__ abs_func(const abs_func&) {} + }; + +#define OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(name, func) \ + template struct name ## _func : unary_function \ + { \ + __device__ __forceinline__ float operator ()(typename TypeTraits::ParameterType v) const \ + { \ + return func ## f(v); \ + } \ + __host__ __device__ __forceinline__ name ## _func() {} \ + __host__ __device__ __forceinline__ name ## _func(const name ## _func&) {} \ + }; \ + template <> struct name ## _func : unary_function \ + { \ + __device__ __forceinline__ double operator ()(double v) const \ + { \ + return func(v); \ + } \ + __host__ __device__ __forceinline__ name ## _func() {} \ + __host__ __device__ __forceinline__ name ## _func(const name ## _func&) {} \ + }; + +#define OPENCV_CUDA_IMPLEMENT_BIN_FUNCTOR(name, func) \ + template struct name ## _func : binary_function \ + { \ + __device__ __forceinline__ float operator ()(typename TypeTraits::ParameterType v1, typename TypeTraits::ParameterType v2) const \ + { \ + return func ## f(v1, v2); \ + } \ + __host__ __device__ __forceinline__ name ## _func() {} \ + __host__ __device__ __forceinline__ name ## _func(const name ## _func&) {} \ + }; \ + template <> struct name ## _func : binary_function \ + { \ + __device__ __forceinline__ double operator ()(double v1, double v2) const \ + { \ + return func(v1, v2); \ + } \ + __host__ __device__ __forceinline__ name ## _func() {} \ + __host__ __device__ __forceinline__ name ## _func(const name ## _func&) {} \ + }; + + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(sqrt, ::sqrt) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(exp, ::exp) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(exp2, ::exp2) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(exp10, ::exp10) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(log, ::log) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(log2, ::log2) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(log10, ::log10) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(sin, ::sin) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(cos, ::cos) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(tan, ::tan) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(asin, ::asin) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(acos, ::acos) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(atan, ::atan) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(sinh, ::sinh) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(cosh, ::cosh) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(tanh, ::tanh) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(asinh, ::asinh) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(acosh, ::acosh) + OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR(atanh, ::atanh) + + OPENCV_CUDA_IMPLEMENT_BIN_FUNCTOR(hypot, ::hypot) + OPENCV_CUDA_IMPLEMENT_BIN_FUNCTOR(atan2, ::atan2) + OPENCV_CUDA_IMPLEMENT_BIN_FUNCTOR(pow, ::pow) + + #undef OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR + #undef OPENCV_CUDA_IMPLEMENT_UN_FUNCTOR_NO_DOUBLE + #undef OPENCV_CUDA_IMPLEMENT_BIN_FUNCTOR + + template struct hypot_sqr_func : binary_function + { + __device__ __forceinline__ T operator ()(typename TypeTraits::ParameterType src1, typename TypeTraits::ParameterType src2) const + { + return src1 * src1 + src2 * src2; + } + __host__ __device__ __forceinline__ hypot_sqr_func() {} + __host__ __device__ __forceinline__ hypot_sqr_func(const hypot_sqr_func&) {} + }; + + // Saturate Cast Functor + template struct saturate_cast_func : unary_function + { + __device__ __forceinline__ D operator ()(typename TypeTraits::ParameterType v) const + { + return saturate_cast(v); + } + __host__ __device__ __forceinline__ saturate_cast_func() {} + __host__ __device__ __forceinline__ saturate_cast_func(const saturate_cast_func&) {} + }; + + // Threshold Functors + template struct thresh_binary_func : unary_function + { + __host__ __device__ __forceinline__ thresh_binary_func(T thresh_, T maxVal_) : thresh(thresh_), maxVal(maxVal_) {} + + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const + { + return (src > thresh) * maxVal; + } + + __host__ __device__ __forceinline__ thresh_binary_func() {} + __host__ __device__ __forceinline__ thresh_binary_func(const thresh_binary_func& other) + : thresh(other.thresh), maxVal(other.maxVal) {} + + T thresh; + T maxVal; + }; + + template struct thresh_binary_inv_func : unary_function + { + __host__ __device__ __forceinline__ thresh_binary_inv_func(T thresh_, T maxVal_) : thresh(thresh_), maxVal(maxVal_) {} + + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const + { + return (src <= thresh) * maxVal; + } + + __host__ __device__ __forceinline__ thresh_binary_inv_func() {} + __host__ __device__ __forceinline__ thresh_binary_inv_func(const thresh_binary_inv_func& other) + : thresh(other.thresh), maxVal(other.maxVal) {} + + T thresh; + T maxVal; + }; + + template struct thresh_trunc_func : unary_function + { + explicit __host__ __device__ __forceinline__ thresh_trunc_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {CV_UNUSED(maxVal_);} + + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const + { + return minimum()(src, thresh); + } + + __host__ __device__ __forceinline__ thresh_trunc_func() {} + __host__ __device__ __forceinline__ thresh_trunc_func(const thresh_trunc_func& other) + : thresh(other.thresh) {} + + T thresh; + }; + + template struct thresh_to_zero_func : unary_function + { + explicit __host__ __device__ __forceinline__ thresh_to_zero_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {CV_UNUSED(maxVal_);} + + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const + { + return (src > thresh) * src; + } + + __host__ __device__ __forceinline__ thresh_to_zero_func() {} + __host__ __device__ __forceinline__ thresh_to_zero_func(const thresh_to_zero_func& other) + : thresh(other.thresh) {} + + T thresh; + }; + + template struct thresh_to_zero_inv_func : unary_function + { + explicit __host__ __device__ __forceinline__ thresh_to_zero_inv_func(T thresh_, T maxVal_ = 0) : thresh(thresh_) {CV_UNUSED(maxVal_);} + + __device__ __forceinline__ T operator()(typename TypeTraits::ParameterType src) const + { + return (src <= thresh) * src; + } + + __host__ __device__ __forceinline__ thresh_to_zero_inv_func() {} + __host__ __device__ __forceinline__ thresh_to_zero_inv_func(const thresh_to_zero_inv_func& other) + : thresh(other.thresh) {} + + T thresh; + }; + + // Function Object Adaptors + template struct unary_negate : unary_function + { + explicit __host__ __device__ __forceinline__ unary_negate(const Predicate& p) : pred(p) {} + + __device__ __forceinline__ bool operator()(typename TypeTraits::ParameterType x) const + { + return !pred(x); + } + + __host__ __device__ __forceinline__ unary_negate() {} + __host__ __device__ __forceinline__ unary_negate(const unary_negate& other) : pred(other.pred) {} + + Predicate pred; + }; + + template __host__ __device__ __forceinline__ unary_negate not1(const Predicate& pred) + { + return unary_negate(pred); + } + + template struct binary_negate : binary_function + { + explicit __host__ __device__ __forceinline__ binary_negate(const Predicate& p) : pred(p) {} + + __device__ __forceinline__ bool operator()(typename TypeTraits::ParameterType x, + typename TypeTraits::ParameterType y) const + { + return !pred(x,y); + } + + __host__ __device__ __forceinline__ binary_negate() {} + __host__ __device__ __forceinline__ binary_negate(const binary_negate& other) : pred(other.pred) {} + + Predicate pred; + }; + + template __host__ __device__ __forceinline__ binary_negate not2(const BinaryPredicate& pred) + { + return binary_negate(pred); + } + + template struct binder1st : unary_function + { + __host__ __device__ __forceinline__ binder1st(const Op& op_, const typename Op::first_argument_type& arg1_) : op(op_), arg1(arg1_) {} + + __device__ __forceinline__ typename Op::result_type operator ()(typename TypeTraits::ParameterType a) const + { + return op(arg1, a); + } + + __host__ __device__ __forceinline__ binder1st() {} + __host__ __device__ __forceinline__ binder1st(const binder1st& other) : op(other.op), arg1(other.arg1) {} + + Op op; + typename Op::first_argument_type arg1; + }; + + template __host__ __device__ __forceinline__ binder1st bind1st(const Op& op, const T& x) + { + return binder1st(op, typename Op::first_argument_type(x)); + } + + template struct binder2nd : unary_function + { + __host__ __device__ __forceinline__ binder2nd(const Op& op_, const typename Op::second_argument_type& arg2_) : op(op_), arg2(arg2_) {} + + __forceinline__ __device__ typename Op::result_type operator ()(typename TypeTraits::ParameterType a) const + { + return op(a, arg2); + } + + __host__ __device__ __forceinline__ binder2nd() {} + __host__ __device__ __forceinline__ binder2nd(const binder2nd& other) : op(other.op), arg2(other.arg2) {} + + Op op; + typename Op::second_argument_type arg2; + }; + + template __host__ __device__ __forceinline__ binder2nd bind2nd(const Op& op, const T& x) + { + return binder2nd(op, typename Op::second_argument_type(x)); + } + + // Functor Traits + template struct IsUnaryFunction + { + typedef char Yes; + struct No {Yes a[2];}; + + template static Yes check(unary_function); + static No check(...); + + static F makeF(); + + enum { value = (sizeof(check(makeF())) == sizeof(Yes)) }; + }; + + template struct IsBinaryFunction + { + typedef char Yes; + struct No {Yes a[2];}; + + template static Yes check(binary_function); + static No check(...); + + static F makeF(); + + enum { value = (sizeof(check(makeF())) == sizeof(Yes)) }; + }; + + namespace functional_detail + { + template struct UnOpShift { enum { shift = 1 }; }; + template struct UnOpShift { enum { shift = 4 }; }; + template struct UnOpShift { enum { shift = 2 }; }; + + template struct DefaultUnaryShift + { + enum { shift = UnOpShift::shift }; + }; + + template struct BinOpShift { enum { shift = 1 }; }; + template struct BinOpShift { enum { shift = 4 }; }; + template struct BinOpShift { enum { shift = 2 }; }; + + template struct DefaultBinaryShift + { + enum { shift = BinOpShift::shift }; + }; + + template ::value> struct ShiftDispatcher; + template struct ShiftDispatcher + { + enum { shift = DefaultUnaryShift::shift }; + }; + template struct ShiftDispatcher + { + enum { shift = DefaultBinaryShift::shift }; + }; + } + + template struct DefaultTransformShift + { + enum { shift = functional_detail::ShiftDispatcher::shift }; + }; + + template struct DefaultTransformFunctorTraits + { + enum { simple_block_dim_x = 16 }; + enum { simple_block_dim_y = 16 }; + + enum { smart_block_dim_x = 16 }; + enum { smart_block_dim_y = 16 }; + enum { smart_shift = DefaultTransformShift::shift }; + }; + + template struct TransformFunctorTraits : DefaultTransformFunctorTraits {}; + +#define OPENCV_CUDA_TRANSFORM_FUNCTOR_TRAITS(type) \ + template <> struct TransformFunctorTraits< type > : DefaultTransformFunctorTraits< type > +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_FUNCTIONAL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/limits.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/limits.hpp new file mode 100644 index 000000000..7e15ed629 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/limits.hpp @@ -0,0 +1,128 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_LIMITS_HPP +#define OPENCV_CUDA_LIMITS_HPP + +#include +#include +#include "common.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ +template struct numeric_limits; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static bool min() { return false; } + __device__ __forceinline__ static bool max() { return true; } + static const bool is_signed = false; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static signed char min() { return SCHAR_MIN; } + __device__ __forceinline__ static signed char max() { return SCHAR_MAX; } + static const bool is_signed = true; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static unsigned char min() { return 0; } + __device__ __forceinline__ static unsigned char max() { return UCHAR_MAX; } + static const bool is_signed = false; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static short min() { return SHRT_MIN; } + __device__ __forceinline__ static short max() { return SHRT_MAX; } + static const bool is_signed = true; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static unsigned short min() { return 0; } + __device__ __forceinline__ static unsigned short max() { return USHRT_MAX; } + static const bool is_signed = false; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static int min() { return INT_MIN; } + __device__ __forceinline__ static int max() { return INT_MAX; } + static const bool is_signed = true; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static unsigned int min() { return 0; } + __device__ __forceinline__ static unsigned int max() { return UINT_MAX; } + static const bool is_signed = false; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static float min() { return FLT_MIN; } + __device__ __forceinline__ static float max() { return FLT_MAX; } + __device__ __forceinline__ static float epsilon() { return FLT_EPSILON; } + static const bool is_signed = true; +}; + +template <> struct numeric_limits +{ + __device__ __forceinline__ static double min() { return DBL_MIN; } + __device__ __forceinline__ static double max() { return DBL_MAX; } + __device__ __forceinline__ static double epsilon() { return DBL_EPSILON; } + static const bool is_signed = true; +}; +}}} // namespace cv { namespace cuda { namespace cudev { + +//! @endcond + +#endif // OPENCV_CUDA_LIMITS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/reduce.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/reduce.hpp new file mode 100644 index 000000000..5de365081 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/reduce.hpp @@ -0,0 +1,209 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_REDUCE_HPP +#define OPENCV_CUDA_REDUCE_HPP + +#ifndef THRUST_DEBUG // eliminate -Wundef warning +#define THRUST_DEBUG 0 +#endif + +#include +#include "detail/reduce.hpp" +#include "detail/reduce_key_val.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template + __device__ __forceinline__ void reduce(volatile T* smem, T& val, unsigned int tid, const Op& op) + { + reduce_detail::Dispatcher::reductor::template reduce(smem, val, tid, op); + } + template + __device__ __forceinline__ void reduce(const thrust::tuple& smem, + const thrust::tuple& val, + unsigned int tid, + const thrust::tuple& op) + { + reduce_detail::Dispatcher::reductor::template reduce< + const thrust::tuple&, + const thrust::tuple&, + const thrust::tuple&>(smem, val, tid, op); + } + + template + __device__ __forceinline__ void reduceKeyVal(volatile K* skeys, K& key, volatile V* svals, V& val, unsigned int tid, const Cmp& cmp) + { + reduce_key_val_detail::Dispatcher::reductor::template reduce(skeys, key, svals, val, tid, cmp); + } + template + __device__ __forceinline__ void reduceKeyVal(volatile K* skeys, K& key, + const thrust::tuple& svals, + const thrust::tuple& val, + unsigned int tid, const Cmp& cmp) + { + reduce_key_val_detail::Dispatcher::reductor::template reduce&, + const thrust::tuple&, + const Cmp&>(skeys, key, svals, val, tid, cmp); + } + template + __device__ __forceinline__ void reduceKeyVal(const thrust::tuple& skeys, + const thrust::tuple& key, + const thrust::tuple& svals, + const thrust::tuple& val, + unsigned int tid, + const thrust::tuple& cmp) + { + reduce_key_val_detail::Dispatcher::reductor::template reduce< + const thrust::tuple&, + const thrust::tuple&, + const thrust::tuple&, + const thrust::tuple&, + const thrust::tuple& + >(skeys, key, svals, val, tid, cmp); + } + + // smem_tuple + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0) + { + return thrust::make_tuple((volatile T0*) t0); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3, T4* t4) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3, (volatile T4*) t4); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3, T4* t4, T5* t5) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3, (volatile T4*) t4, (volatile T5*) t5); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3, T4* t4, T5* t5, T6* t6) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3, (volatile T4*) t4, (volatile T5*) t5, (volatile T6*) t6); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3, T4* t4, T5* t5, T6* t6, T7* t7) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3, (volatile T4*) t4, (volatile T5*) t5, (volatile T6*) t6, (volatile T7*) t7); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3, T4* t4, T5* t5, T6* t6, T7* t7, T8* t8) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3, (volatile T4*) t4, (volatile T5*) t5, (volatile T6*) t6, (volatile T7*) t7, (volatile T8*) t8); + } + + template + __device__ __forceinline__ + thrust::tuple + smem_tuple(T0* t0, T1* t1, T2* t2, T3* t3, T4* t4, T5* t5, T6* t6, T7* t7, T8* t8, T9* t9) + { + return thrust::make_tuple((volatile T0*) t0, (volatile T1*) t1, (volatile T2*) t2, (volatile T3*) t3, (volatile T4*) t4, (volatile T5*) t5, (volatile T6*) t6, (volatile T7*) t7, (volatile T8*) t8, (volatile T9*) t9); + } +}}} + +//! @endcond + +#endif // OPENCV_CUDA_REDUCE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/saturate_cast.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/saturate_cast.hpp new file mode 100644 index 000000000..c3a3d1cb8 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/saturate_cast.hpp @@ -0,0 +1,292 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_SATURATE_CAST_HPP +#define OPENCV_CUDA_SATURATE_CAST_HPP + +#include "common.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template __device__ __forceinline__ _Tp saturate_cast(uchar v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(schar v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(ushort v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(short v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(uint v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(int v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(float v) { return _Tp(v); } + template __device__ __forceinline__ _Tp saturate_cast(double v) { return _Tp(v); } + + template<> __device__ __forceinline__ uchar saturate_cast(schar v) + { + uint res = 0; + int vi = v; + asm("cvt.sat.u8.s8 %0, %1;" : "=r"(res) : "r"(vi)); + return res; + } + template<> __device__ __forceinline__ uchar saturate_cast(short v) + { + uint res = 0; + asm("cvt.sat.u8.s16 %0, %1;" : "=r"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ uchar saturate_cast(ushort v) + { + uint res = 0; + asm("cvt.sat.u8.u16 %0, %1;" : "=r"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ uchar saturate_cast(int v) + { + uint res = 0; + asm("cvt.sat.u8.s32 %0, %1;" : "=r"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ uchar saturate_cast(uint v) + { + uint res = 0; + asm("cvt.sat.u8.u32 %0, %1;" : "=r"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ uchar saturate_cast(float v) + { + uint res = 0; + asm("cvt.rni.sat.u8.f32 %0, %1;" : "=r"(res) : "f"(v)); + return res; + } + template<> __device__ __forceinline__ uchar saturate_cast(double v) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130 + uint res = 0; + asm("cvt.rni.sat.u8.f64 %0, %1;" : "=r"(res) : "d"(v)); + return res; + #else + return saturate_cast((float)v); + #endif + } + + template<> __device__ __forceinline__ schar saturate_cast(uchar v) + { + uint res = 0; + uint vi = v; + asm("cvt.sat.s8.u8 %0, %1;" : "=r"(res) : "r"(vi)); + return res; + } + template<> __device__ __forceinline__ schar saturate_cast(short v) + { + uint res = 0; + asm("cvt.sat.s8.s16 %0, %1;" : "=r"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ schar saturate_cast(ushort v) + { + uint res = 0; + asm("cvt.sat.s8.u16 %0, %1;" : "=r"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ schar saturate_cast(int v) + { + uint res = 0; + asm("cvt.sat.s8.s32 %0, %1;" : "=r"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ schar saturate_cast(uint v) + { + uint res = 0; + asm("cvt.sat.s8.u32 %0, %1;" : "=r"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ schar saturate_cast(float v) + { + uint res = 0; + asm("cvt.rni.sat.s8.f32 %0, %1;" : "=r"(res) : "f"(v)); + return res; + } + template<> __device__ __forceinline__ schar saturate_cast(double v) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130 + uint res = 0; + asm("cvt.rni.sat.s8.f64 %0, %1;" : "=r"(res) : "d"(v)); + return res; + #else + return saturate_cast((float)v); + #endif + } + + template<> __device__ __forceinline__ ushort saturate_cast(schar v) + { + ushort res = 0; + int vi = v; + asm("cvt.sat.u16.s8 %0, %1;" : "=h"(res) : "r"(vi)); + return res; + } + template<> __device__ __forceinline__ ushort saturate_cast(short v) + { + ushort res = 0; + asm("cvt.sat.u16.s16 %0, %1;" : "=h"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ ushort saturate_cast(int v) + { + ushort res = 0; + asm("cvt.sat.u16.s32 %0, %1;" : "=h"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ ushort saturate_cast(uint v) + { + ushort res = 0; + asm("cvt.sat.u16.u32 %0, %1;" : "=h"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ ushort saturate_cast(float v) + { + ushort res = 0; + asm("cvt.rni.sat.u16.f32 %0, %1;" : "=h"(res) : "f"(v)); + return res; + } + template<> __device__ __forceinline__ ushort saturate_cast(double v) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130 + ushort res = 0; + asm("cvt.rni.sat.u16.f64 %0, %1;" : "=h"(res) : "d"(v)); + return res; + #else + return saturate_cast((float)v); + #endif + } + + template<> __device__ __forceinline__ short saturate_cast(ushort v) + { + short res = 0; + asm("cvt.sat.s16.u16 %0, %1;" : "=h"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ short saturate_cast(int v) + { + short res = 0; + asm("cvt.sat.s16.s32 %0, %1;" : "=h"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ short saturate_cast(uint v) + { + short res = 0; + asm("cvt.sat.s16.u32 %0, %1;" : "=h"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ short saturate_cast(float v) + { + short res = 0; + asm("cvt.rni.sat.s16.f32 %0, %1;" : "=h"(res) : "f"(v)); + return res; + } + template<> __device__ __forceinline__ short saturate_cast(double v) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130 + short res = 0; + asm("cvt.rni.sat.s16.f64 %0, %1;" : "=h"(res) : "d"(v)); + return res; + #else + return saturate_cast((float)v); + #endif + } + + template<> __device__ __forceinline__ int saturate_cast(uint v) + { + int res = 0; + asm("cvt.sat.s32.u32 %0, %1;" : "=r"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ int saturate_cast(float v) + { + return __float2int_rn(v); + } + template<> __device__ __forceinline__ int saturate_cast(double v) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130 + return __double2int_rn(v); + #else + return saturate_cast((float)v); + #endif + } + + template<> __device__ __forceinline__ uint saturate_cast(schar v) + { + uint res = 0; + int vi = v; + asm("cvt.sat.u32.s8 %0, %1;" : "=r"(res) : "r"(vi)); + return res; + } + template<> __device__ __forceinline__ uint saturate_cast(short v) + { + uint res = 0; + asm("cvt.sat.u32.s16 %0, %1;" : "=r"(res) : "h"(v)); + return res; + } + template<> __device__ __forceinline__ uint saturate_cast(int v) + { + uint res = 0; + asm("cvt.sat.u32.s32 %0, %1;" : "=r"(res) : "r"(v)); + return res; + } + template<> __device__ __forceinline__ uint saturate_cast(float v) + { + return __float2uint_rn(v); + } + template<> __device__ __forceinline__ uint saturate_cast(double v) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 130 + return __double2uint_rn(v); + #else + return saturate_cast((float)v); + #endif + } +}}} + +//! @endcond + +#endif /* OPENCV_CUDA_SATURATE_CAST_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/scan.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/scan.hpp new file mode 100644 index 000000000..e128fb096 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/scan.hpp @@ -0,0 +1,258 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_SCAN_HPP +#define OPENCV_CUDA_SCAN_HPP + +#include "opencv2/core/cuda/common.hpp" +#include "opencv2/core/cuda/utility.hpp" +#include "opencv2/core/cuda/warp.hpp" +#include "opencv2/core/cuda/warp_shuffle.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + enum ScanKind { EXCLUSIVE = 0, INCLUSIVE = 1 }; + + template struct WarpScan + { + __device__ __forceinline__ WarpScan() {} + __device__ __forceinline__ WarpScan(const WarpScan& other) { CV_UNUSED(other); } + + __device__ __forceinline__ T operator()( volatile T *ptr , const unsigned int idx) + { + const unsigned int lane = idx & 31; + F op; + + if ( lane >= 1) ptr [idx ] = op(ptr [idx - 1], ptr [idx]); + if ( lane >= 2) ptr [idx ] = op(ptr [idx - 2], ptr [idx]); + if ( lane >= 4) ptr [idx ] = op(ptr [idx - 4], ptr [idx]); + if ( lane >= 8) ptr [idx ] = op(ptr [idx - 8], ptr [idx]); + if ( lane >= 16) ptr [idx ] = op(ptr [idx - 16], ptr [idx]); + + if( Kind == INCLUSIVE ) + return ptr [idx]; + else + return (lane > 0) ? ptr [idx - 1] : 0; + } + + __device__ __forceinline__ unsigned int index(const unsigned int tid) + { + return tid; + } + + __device__ __forceinline__ void init(volatile T *ptr){} + + static const int warp_offset = 0; + + typedef WarpScan merge; + }; + + template struct WarpScanNoComp + { + __device__ __forceinline__ WarpScanNoComp() {} + __device__ __forceinline__ WarpScanNoComp(const WarpScanNoComp& other) { CV_UNUSED(other); } + + __device__ __forceinline__ T operator()( volatile T *ptr , const unsigned int idx) + { + const unsigned int lane = threadIdx.x & 31; + F op; + + ptr [idx ] = op(ptr [idx - 1], ptr [idx]); + ptr [idx ] = op(ptr [idx - 2], ptr [idx]); + ptr [idx ] = op(ptr [idx - 4], ptr [idx]); + ptr [idx ] = op(ptr [idx - 8], ptr [idx]); + ptr [idx ] = op(ptr [idx - 16], ptr [idx]); + + if( Kind == INCLUSIVE ) + return ptr [idx]; + else + return (lane > 0) ? ptr [idx - 1] : 0; + } + + __device__ __forceinline__ unsigned int index(const unsigned int tid) + { + return (tid >> warp_log) * warp_smem_stride + 16 + (tid & warp_mask); + } + + __device__ __forceinline__ void init(volatile T *ptr) + { + ptr[threadIdx.x] = 0; + } + + static const int warp_smem_stride = 32 + 16 + 1; + static const int warp_offset = 16; + static const int warp_log = 5; + static const int warp_mask = 31; + + typedef WarpScanNoComp merge; + }; + + template struct BlockScan + { + __device__ __forceinline__ BlockScan() {} + __device__ __forceinline__ BlockScan(const BlockScan& other) { CV_UNUSED(other); } + + __device__ __forceinline__ T operator()(volatile T *ptr) + { + const unsigned int tid = threadIdx.x; + const unsigned int lane = tid & warp_mask; + const unsigned int warp = tid >> warp_log; + + Sc scan; + typename Sc::merge merge_scan; + const unsigned int idx = scan.index(tid); + + T val = scan(ptr, idx); + __syncthreads (); + + if( warp == 0) + scan.init(ptr); + __syncthreads (); + + if( lane == 31 ) + ptr [scan.warp_offset + warp ] = (Kind == INCLUSIVE) ? val : ptr [idx]; + __syncthreads (); + + if( warp == 0 ) + merge_scan(ptr, idx); + __syncthreads(); + + if ( warp > 0) + val = ptr [scan.warp_offset + warp - 1] + val; + __syncthreads (); + + ptr[idx] = val; + __syncthreads (); + + return val ; + } + + static const int warp_log = 5; + static const int warp_mask = 31; + }; + + template + __device__ T warpScanInclusive(T idata, volatile T* s_Data, unsigned int tid) + { + #if __CUDA_ARCH__ >= 300 + const unsigned int laneId = cv::cuda::device::Warp::laneId(); + + // scan on shuffl functions + #pragma unroll + for (int i = 1; i <= (OPENCV_CUDA_WARP_SIZE / 2); i *= 2) + { + const T n = cv::cuda::device::shfl_up(idata, i); + if (laneId >= i) + idata += n; + } + + return idata; + #else + unsigned int pos = 2 * tid - (tid & (OPENCV_CUDA_WARP_SIZE - 1)); + s_Data[pos] = 0; + pos += OPENCV_CUDA_WARP_SIZE; + s_Data[pos] = idata; + + s_Data[pos] += s_Data[pos - 1]; + s_Data[pos] += s_Data[pos - 2]; + s_Data[pos] += s_Data[pos - 4]; + s_Data[pos] += s_Data[pos - 8]; + s_Data[pos] += s_Data[pos - 16]; + + return s_Data[pos]; + #endif + } + + template + __device__ __forceinline__ T warpScanExclusive(T idata, volatile T* s_Data, unsigned int tid) + { + return warpScanInclusive(idata, s_Data, tid) - idata; + } + + template + __device__ T blockScanInclusive(T idata, volatile T* s_Data, unsigned int tid) + { + if (tiNumScanThreads > OPENCV_CUDA_WARP_SIZE) + { + //Bottom-level inclusive warp scan + T warpResult = warpScanInclusive(idata, s_Data, tid); + + //Save top elements of each warp for exclusive warp scan + //sync to wait for warp scans to complete (because s_Data is being overwritten) + __syncthreads(); + if ((tid & (OPENCV_CUDA_WARP_SIZE - 1)) == (OPENCV_CUDA_WARP_SIZE - 1)) + { + s_Data[tid >> OPENCV_CUDA_LOG_WARP_SIZE] = warpResult; + } + + //wait for warp scans to complete + __syncthreads(); + + if (tid < (tiNumScanThreads / OPENCV_CUDA_WARP_SIZE) ) + { + //grab top warp elements + T val = s_Data[tid]; + //calculate exclusive scan and write back to shared memory + s_Data[tid] = warpScanExclusive(val, s_Data, tid); + } + + //return updated warp scans with exclusive scan results + __syncthreads(); + + return warpResult + s_Data[tid >> OPENCV_CUDA_LOG_WARP_SIZE]; + } + else + { + return warpScanInclusive(idata, s_Data, tid); + } + } +}}} + +//! @endcond + +#endif // OPENCV_CUDA_SCAN_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/simd_functions.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/simd_functions.hpp new file mode 100644 index 000000000..3d8c2e0d8 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/simd_functions.hpp @@ -0,0 +1,869 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +/* + * Copyright (c) 2013 NVIDIA Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of NVIDIA Corporation nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef OPENCV_CUDA_SIMD_FUNCTIONS_HPP +#define OPENCV_CUDA_SIMD_FUNCTIONS_HPP + +#include "common.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + // 2 + + static __device__ __forceinline__ unsigned int vadd2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vadd2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vadd.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = a ^ b; // sum bits + r = a + b; // actual sum + s = s ^ r; // determine carry-ins for each bit position + s = s & 0x00010000; // carry-in to high word (= carry-out from low word) + r = r - s; // subtract out carry-out from low word + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsub2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vsub2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vsub.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = a ^ b; // sum bits + r = a - b; // actual sum + s = s ^ r; // determine carry-ins for each bit position + s = s & 0x00010000; // borrow to high word + r = r + s; // compensate for borrow from low word + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vabsdiff2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vabsdiff2.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vabsdiff.u32.u32.u32.sat %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t, u, v; + s = a & 0x0000ffff; // extract low halfword + r = b & 0x0000ffff; // extract low halfword + u = ::max(r, s); // maximum of low halfwords + v = ::min(r, s); // minimum of low halfwords + s = a & 0xffff0000; // extract high halfword + r = b & 0xffff0000; // extract high halfword + t = ::max(r, s); // maximum of high halfwords + s = ::min(r, s); // minimum of high halfwords + r = u | t; // maximum of both halfwords + s = v | s; // minimum of both halfwords + r = r - s; // |a - b| = max(a,b) - min(a,b); + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vavg2(unsigned int a, unsigned int b) + { + unsigned int r, s; + + // HAKMEM #23: a + b = 2 * (a & b) + (a ^ b) ==> + // (a + b) / 2 = (a & b) + ((a ^ b) >> 1) + s = a ^ b; + r = a & b; + s = s & 0xfffefffe; // ensure shift doesn't cross halfword boundaries + s = s >> 1; + s = r + s; + + return s; + } + + static __device__ __forceinline__ unsigned int vavrg2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vavrg2.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // HAKMEM #23: a + b = 2 * (a | b) - (a ^ b) ==> + // (a + b + 1) / 2 = (a | b) - ((a ^ b) >> 1) + unsigned int s; + s = a ^ b; + r = a | b; + s = s & 0xfffefffe; // ensure shift doesn't cross half-word boundaries + s = s >> 1; + r = r - s; + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vseteq2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.eq %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + r = r ^ c; // extract msbs, msb = 1 if r < 0x8000 + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r & ~c; // msb = 1, if r was 0x0000 + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpeq2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vseteq2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + r = r ^ c; // extract msbs, msb = 1 if r < 0x8000 + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r & ~c; // msb = 1, if r was 0x0000 + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetge2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.ge %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavrg2(a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpge2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetge2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavrg2(a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetgt2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.gt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg2(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80008000; // msbs = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpgt2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetgt2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg2(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80008000; // msbs = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetle2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.le %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg2(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmple2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetle2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg2(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetlt2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset2.u32.u32.lt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg2(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmplt2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetlt2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg2(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80008000; // msb = carry-outs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetne2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm ("vset2.u32.u32.ne %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r | c; // msb = 1, if r was not 0x0000 + c = c & 0x80008000; // extract msbs + r = c >> 15; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpne2(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetne2(a, b); + c = r << 16; // convert bool + r = c - r; // into mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + r = a ^ b; // 0x0000 if a == b + c = r | 0x80008000; // set msbs, to catch carry out + c = c - 0x00010001; // msb = 0, if r was 0x0000 or 0x8000 + c = r | c; // msb = 1, if r was not 0x0000 + c = c & 0x80008000; // extract msbs + r = c >> 15; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vmax2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmax2.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmax.u32.u32.u32 %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t, u; + r = a & 0x0000ffff; // extract low halfword + s = b & 0x0000ffff; // extract low halfword + t = ::max(r, s); // maximum of low halfwords + r = a & 0xffff0000; // extract high halfword + s = b & 0xffff0000; // extract high halfword + u = ::max(r, s); // maximum of high halfwords + r = t | u; // combine halfword maximums + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vmin2(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmin2.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmin.u32.u32.u32 %0.h0, %1.h0, %2.h0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.h1, %1.h1, %2.h1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t, u; + r = a & 0x0000ffff; // extract low halfword + s = b & 0x0000ffff; // extract low halfword + t = ::min(r, s); // minimum of low halfwords + r = a & 0xffff0000; // extract high halfword + s = b & 0xffff0000; // extract high halfword + u = ::min(r, s); // minimum of high halfwords + r = t | u; // combine halfword minimums + #endif + + return r; + } + + // 4 + + static __device__ __forceinline__ unsigned int vadd4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vadd4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vadd.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vadd.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t; + s = a ^ b; // sum bits + r = a & 0x7f7f7f7f; // clear msbs + t = b & 0x7f7f7f7f; // clear msbs + s = s & 0x80808080; // msb sum bits + r = r + t; // add without msbs, record carry-out in msbs + r = r ^ s; // sum of msb sum and carry-in bits, w/o carry-out + #endif /* __CUDA_ARCH__ >= 300 */ + + return r; + } + + static __device__ __forceinline__ unsigned int vsub4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vsub4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vsub.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vsub.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s, t; + s = a ^ ~b; // inverted sum bits + r = a | 0x80808080; // set msbs + t = b & 0x7f7f7f7f; // clear msbs + s = s & 0x80808080; // inverted msb sum bits + r = r - t; // subtract w/o msbs, record inverted borrows in msb + r = r ^ s; // combine inverted msb sum bits and borrows + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vavg4(unsigned int a, unsigned int b) + { + unsigned int r, s; + + // HAKMEM #23: a + b = 2 * (a & b) + (a ^ b) ==> + // (a + b) / 2 = (a & b) + ((a ^ b) >> 1) + s = a ^ b; + r = a & b; + s = s & 0xfefefefe; // ensure following shift doesn't cross byte boundaries + s = s >> 1; + s = r + s; + + return s; + } + + static __device__ __forceinline__ unsigned int vavrg4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vavrg4.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // HAKMEM #23: a + b = 2 * (a | b) - (a ^ b) ==> + // (a + b + 1) / 2 = (a | b) - ((a ^ b) >> 1) + unsigned int c; + c = a ^ b; + r = a | b; + c = c & 0xfefefefe; // ensure following shift doesn't cross byte boundaries + c = c >> 1; + r = r - c; + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vseteq4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.eq %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x00 if a == b + c = r | 0x80808080; // set msbs, to catch carry out + r = r ^ c; // extract msbs, msb = 1 if r < 0x80 + c = c - 0x01010101; // msb = 0, if r was 0x00 or 0x80 + c = r & ~c; // msb = 1, if r was 0x00 + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpeq4(unsigned int a, unsigned int b) + { + unsigned int r, t; + + #if __CUDA_ARCH__ >= 300 + r = vseteq4(a, b); + t = r << 8; // convert bool + r = t - r; // to mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + t = a ^ b; // 0x00 if a == b + r = t | 0x80808080; // set msbs, to catch carry out + t = t ^ r; // extract msbs, msb = 1 if t < 0x80 + r = r - 0x01010101; // msb = 0, if t was 0x00 or 0x80 + r = t & ~r; // msb = 1, if t was 0x00 + t = r >> 7; // build mask + t = r - t; // from + r = t | r; // msbs + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetle4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.le %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg4(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmple4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetle4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavrg4(a, b); // (b + ~a + 1) / 2 = (b - a) / 2 + c = c & 0x80808080; // msbs = carry-outs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetlt4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.lt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg4(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmplt4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetlt4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + asm("not.b32 %0, %0;" : "+r"(a)); + c = vavg4(a, b); // (b + ~a) / 2 = (b - a) / 2 [rounded down] + c = c & 0x80808080; // msbs = carry-outs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetge4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.ge %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavrg4(a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpge4(unsigned int a, unsigned int b) + { + unsigned int r, s; + + #if __CUDA_ARCH__ >= 300 + r = vsetge4(a, b); + s = r << 8; // convert bool + r = s - r; // to mask + #else + asm ("not.b32 %0,%0;" : "+r"(b)); + r = vavrg4 (a, b); // (a + ~b + 1) / 2 = (a - b) / 2 + r = r & 0x80808080; // msb = carry-outs + s = r >> 7; // build mask + s = r - s; // from + r = s | r; // msbs + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetgt4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.gt %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int c; + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg4(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpgt4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetgt4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + asm("not.b32 %0, %0;" : "+r"(b)); + c = vavg4(a, b); // (a + ~b) / 2 = (a - b) / 2 [rounded down] + c = c & 0x80808080; // msb = carry-outs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vsetne4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vset4.u32.u32.ne %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + unsigned int c; + r = a ^ b; // 0x00 if a == b + c = r | 0x80808080; // set msbs, to catch carry out + c = c - 0x01010101; // msb = 0, if r was 0x00 or 0x80 + c = r | c; // msb = 1, if r was not 0x00 + c = c & 0x80808080; // extract msbs + r = c >> 7; // convert to bool + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vcmpne4(unsigned int a, unsigned int b) + { + unsigned int r, c; + + #if __CUDA_ARCH__ >= 300 + r = vsetne4(a, b); + c = r << 8; // convert bool + r = c - r; // to mask + #else + // inspired by Alan Mycroft's null-byte detection algorithm: + // null_byte(x) = ((x - 0x01010101) & (~x & 0x80808080)) + r = a ^ b; // 0x00 if a == b + c = r | 0x80808080; // set msbs, to catch carry out + c = c - 0x01010101; // msb = 0, if r was 0x00 or 0x80 + c = r | c; // msb = 1, if r was not 0x00 + c = c & 0x80808080; // extract msbs + r = c >> 7; // convert + r = c - r; // msbs to + r = c | r; // mask + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vabsdiff4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vabsdiff4.u32.u32.u32.sat %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vabsdiff.u32.u32.u32.sat %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vabsdiff.u32.u32.u32.sat %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = vcmpge4(a, b); // mask = 0xff if a >= b + r = a ^ b; // + s = (r & s) ^ b; // select a when a >= b, else select b => max(a,b) + r = s ^ r; // select a when b >= a, else select b => min(a,b) + r = s - r; // |a - b| = max(a,b) - min(a,b); + #endif + + return r; + } + + static __device__ __forceinline__ unsigned int vmax4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmax4.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmax.u32.u32.u32 %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmax.u32.u32.u32 %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = vcmpge4(a, b); // mask = 0xff if a >= b + r = a & s; // select a when b >= a + s = b & ~s; // select b when b < a + r = r | s; // combine byte selections + #endif + + return r; // byte-wise unsigned maximum + } + + static __device__ __forceinline__ unsigned int vmin4(unsigned int a, unsigned int b) + { + unsigned int r = 0; + + #if __CUDA_ARCH__ >= 300 + asm("vmin4.u32.u32.u32 %0, %1, %2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #elif __CUDA_ARCH__ >= 200 + asm("vmin.u32.u32.u32 %0.b0, %1.b0, %2.b0, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.b1, %1.b1, %2.b1, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.b2, %1.b2, %2.b2, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + asm("vmin.u32.u32.u32 %0.b3, %1.b3, %2.b3, %3;" : "=r"(r) : "r"(a), "r"(b), "r"(r)); + #else + unsigned int s; + s = vcmpge4(b, a); // mask = 0xff if a >= b + r = a & s; // select a when b >= a + s = b & ~s; // select b when b < a + r = r | s; // combine byte selections + #endif + + return r; + } +}}} + +//! @endcond + +#endif // OPENCV_CUDA_SIMD_FUNCTIONS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/transform.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/transform.hpp new file mode 100644 index 000000000..42aa6ea17 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/transform.hpp @@ -0,0 +1,75 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_TRANSFORM_HPP +#define OPENCV_CUDA_TRANSFORM_HPP + +#include "common.hpp" +#include "utility.hpp" +#include "detail/transform_detail.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template + static inline void transform(PtrStepSz src, PtrStepSz dst, UnOp op, const Mask& mask, cudaStream_t stream) + { + typedef TransformFunctorTraits ft; + transform_detail::TransformDispatcher::cn == 1 && VecTraits::cn == 1 && ft::smart_shift != 1>::call(src, dst, op, mask, stream); + } + + template + static inline void transform(PtrStepSz src1, PtrStepSz src2, PtrStepSz dst, BinOp op, const Mask& mask, cudaStream_t stream) + { + typedef TransformFunctorTraits ft; + transform_detail::TransformDispatcher::cn == 1 && VecTraits::cn == 1 && VecTraits::cn == 1 && ft::smart_shift != 1>::call(src1, src2, dst, op, mask, stream); + } +}}} + +//! @endcond + +#endif // OPENCV_CUDA_TRANSFORM_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/type_traits.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/type_traits.hpp new file mode 100644 index 000000000..8b7a3fd16 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/type_traits.hpp @@ -0,0 +1,90 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_TYPE_TRAITS_HPP +#define OPENCV_CUDA_TYPE_TRAITS_HPP + +#include "detail/type_traits_detail.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template struct IsSimpleParameter + { + enum {value = type_traits_detail::IsIntegral::value || type_traits_detail::IsFloat::value || + type_traits_detail::PointerTraits::type>::value}; + }; + + template struct TypeTraits + { + typedef typename type_traits_detail::UnConst::type NonConstType; + typedef typename type_traits_detail::UnVolatile::type NonVolatileType; + typedef typename type_traits_detail::UnVolatile::type>::type UnqualifiedType; + typedef typename type_traits_detail::PointerTraits::type PointeeType; + typedef typename type_traits_detail::ReferenceTraits::type ReferredType; + + enum { isConst = type_traits_detail::UnConst::value }; + enum { isVolatile = type_traits_detail::UnVolatile::value }; + + enum { isReference = type_traits_detail::ReferenceTraits::value }; + enum { isPointer = type_traits_detail::PointerTraits::type>::value }; + + enum { isUnsignedInt = type_traits_detail::IsUnsignedIntegral::value }; + enum { isSignedInt = type_traits_detail::IsSignedIntergral::value }; + enum { isIntegral = type_traits_detail::IsIntegral::value }; + enum { isFloat = type_traits_detail::IsFloat::value }; + enum { isArith = isIntegral || isFloat }; + enum { isVec = type_traits_detail::IsVec::value }; + + typedef typename type_traits_detail::Select::value, + T, typename type_traits_detail::AddParameterType::type>::type ParameterType; + }; +}}} + +//! @endcond + +#endif // OPENCV_CUDA_TYPE_TRAITS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/utility.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/utility.hpp new file mode 100644 index 000000000..7f5db48a5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/utility.hpp @@ -0,0 +1,230 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_UTILITY_HPP +#define OPENCV_CUDA_UTILITY_HPP + +#include "saturate_cast.hpp" +#include "datamov_utils.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + struct CV_EXPORTS ThrustAllocator + { + typedef uchar value_type; + virtual ~ThrustAllocator(); + virtual __device__ __host__ uchar* allocate(size_t numBytes) = 0; + virtual __device__ __host__ void deallocate(uchar* ptr, size_t numBytes) = 0; + static ThrustAllocator& getAllocator(); + static void setAllocator(ThrustAllocator* allocator); + }; + #define OPENCV_CUDA_LOG_WARP_SIZE (5) + #define OPENCV_CUDA_WARP_SIZE (1 << OPENCV_CUDA_LOG_WARP_SIZE) + #define OPENCV_CUDA_LOG_MEM_BANKS ((__CUDA_ARCH__ >= 200) ? 5 : 4) // 32 banks on fermi, 16 on tesla + #define OPENCV_CUDA_MEM_BANKS (1 << OPENCV_CUDA_LOG_MEM_BANKS) + + /////////////////////////////////////////////////////////////////////////////// + // swap + + template void __device__ __host__ __forceinline__ swap(T& a, T& b) + { + const T temp = a; + a = b; + b = temp; + } + + /////////////////////////////////////////////////////////////////////////////// + // Mask Reader + + struct SingleMask + { + explicit __host__ __device__ __forceinline__ SingleMask(PtrStepb mask_) : mask(mask_) {} + __host__ __device__ __forceinline__ SingleMask(const SingleMask& mask_): mask(mask_.mask){} + + __device__ __forceinline__ bool operator()(int y, int x) const + { + return mask.ptr(y)[x] != 0; + } + + PtrStepb mask; + }; + + struct SingleMaskChannels + { + __host__ __device__ __forceinline__ SingleMaskChannels(PtrStepb mask_, int channels_) + : mask(mask_), channels(channels_) {} + __host__ __device__ __forceinline__ SingleMaskChannels(const SingleMaskChannels& mask_) + :mask(mask_.mask), channels(mask_.channels){} + + __device__ __forceinline__ bool operator()(int y, int x) const + { + return mask.ptr(y)[x / channels] != 0; + } + + PtrStepb mask; + int channels; + }; + + struct MaskCollection + { + explicit __host__ __device__ __forceinline__ MaskCollection(PtrStepb* maskCollection_) + : maskCollection(maskCollection_) {} + + __device__ __forceinline__ MaskCollection(const MaskCollection& masks_) + : maskCollection(masks_.maskCollection), curMask(masks_.curMask){} + + __device__ __forceinline__ void next() + { + curMask = *maskCollection++; + } + __device__ __forceinline__ void setMask(int z) + { + curMask = maskCollection[z]; + } + + __device__ __forceinline__ bool operator()(int y, int x) const + { + uchar val; + return curMask.data == 0 || (ForceGlob::Load(curMask.ptr(y), x, val), (val != 0)); + } + + const PtrStepb* maskCollection; + PtrStepb curMask; + }; + + struct WithOutMask + { + __host__ __device__ __forceinline__ WithOutMask(){} + __host__ __device__ __forceinline__ WithOutMask(const WithOutMask&){} + + __device__ __forceinline__ void next() const + { + } + __device__ __forceinline__ void setMask(int) const + { + } + + __device__ __forceinline__ bool operator()(int, int) const + { + return true; + } + + __device__ __forceinline__ bool operator()(int, int, int) const + { + return true; + } + + static __device__ __forceinline__ bool check(int, int) + { + return true; + } + + static __device__ __forceinline__ bool check(int, int, int) + { + return true; + } + }; + + /////////////////////////////////////////////////////////////////////////////// + // Solve linear system + + // solve 2x2 linear system Ax=b + template __device__ __forceinline__ bool solve2x2(const T A[2][2], const T b[2], T x[2]) + { + T det = A[0][0] * A[1][1] - A[1][0] * A[0][1]; + + if (det != 0) + { + double invdet = 1.0 / det; + + x[0] = saturate_cast(invdet * (b[0] * A[1][1] - b[1] * A[0][1])); + + x[1] = saturate_cast(invdet * (A[0][0] * b[1] - A[1][0] * b[0])); + + return true; + } + + return false; + } + + // solve 3x3 linear system Ax=b + template __device__ __forceinline__ bool solve3x3(const T A[3][3], const T b[3], T x[3]) + { + T det = A[0][0] * (A[1][1] * A[2][2] - A[1][2] * A[2][1]) + - A[0][1] * (A[1][0] * A[2][2] - A[1][2] * A[2][0]) + + A[0][2] * (A[1][0] * A[2][1] - A[1][1] * A[2][0]); + + if (det != 0) + { + double invdet = 1.0 / det; + + x[0] = saturate_cast(invdet * + (b[0] * (A[1][1] * A[2][2] - A[1][2] * A[2][1]) - + A[0][1] * (b[1] * A[2][2] - A[1][2] * b[2] ) + + A[0][2] * (b[1] * A[2][1] - A[1][1] * b[2] ))); + + x[1] = saturate_cast(invdet * + (A[0][0] * (b[1] * A[2][2] - A[1][2] * b[2] ) - + b[0] * (A[1][0] * A[2][2] - A[1][2] * A[2][0]) + + A[0][2] * (A[1][0] * b[2] - b[1] * A[2][0]))); + + x[2] = saturate_cast(invdet * + (A[0][0] * (A[1][1] * b[2] - b[1] * A[2][1]) - + A[0][1] * (A[1][0] * b[2] - b[1] * A[2][0]) + + b[0] * (A[1][0] * A[2][1] - A[1][1] * A[2][0]))); + + return true; + } + + return false; + } +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_UTILITY_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_distance.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_distance.hpp new file mode 100644 index 000000000..ef6e51087 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_distance.hpp @@ -0,0 +1,232 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_VEC_DISTANCE_HPP +#define OPENCV_CUDA_VEC_DISTANCE_HPP + +#include "reduce.hpp" +#include "functional.hpp" +#include "detail/vec_distance_detail.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template struct L1Dist + { + typedef int value_type; + typedef int result_type; + + __device__ __forceinline__ L1Dist() : mySum(0) {} + + __device__ __forceinline__ void reduceIter(int val1, int val2) + { + mySum = __sad(val1, val2, mySum); + } + + template __device__ __forceinline__ void reduceAll(int* smem, int tid) + { + reduce(smem, mySum, tid, plus()); + } + + __device__ __forceinline__ operator int() const + { + return mySum; + } + + int mySum; + }; + template <> struct L1Dist + { + typedef float value_type; + typedef float result_type; + + __device__ __forceinline__ L1Dist() : mySum(0.0f) {} + + __device__ __forceinline__ void reduceIter(float val1, float val2) + { + mySum += ::fabs(val1 - val2); + } + + template __device__ __forceinline__ void reduceAll(float* smem, int tid) + { + reduce(smem, mySum, tid, plus()); + } + + __device__ __forceinline__ operator float() const + { + return mySum; + } + + float mySum; + }; + + struct L2Dist + { + typedef float value_type; + typedef float result_type; + + __device__ __forceinline__ L2Dist() : mySum(0.0f) {} + + __device__ __forceinline__ void reduceIter(float val1, float val2) + { + float reg = val1 - val2; + mySum += reg * reg; + } + + template __device__ __forceinline__ void reduceAll(float* smem, int tid) + { + reduce(smem, mySum, tid, plus()); + } + + __device__ __forceinline__ operator float() const + { + return sqrtf(mySum); + } + + float mySum; + }; + + struct HammingDist + { + typedef int value_type; + typedef int result_type; + + __device__ __forceinline__ HammingDist() : mySum(0) {} + + __device__ __forceinline__ void reduceIter(int val1, int val2) + { + mySum += __popc(val1 ^ val2); + } + + template __device__ __forceinline__ void reduceAll(int* smem, int tid) + { + reduce(smem, mySum, tid, plus()); + } + + __device__ __forceinline__ operator int() const + { + return mySum; + } + + int mySum; + }; + + // calc distance between two vectors in global memory + template + __device__ void calcVecDiffGlobal(const T1* vec1, const T2* vec2, int len, Dist& dist, typename Dist::result_type* smem, int tid) + { + for (int i = tid; i < len; i += THREAD_DIM) + { + T1 val1; + ForceGlob::Load(vec1, i, val1); + + T2 val2; + ForceGlob::Load(vec2, i, val2); + + dist.reduceIter(val1, val2); + } + + dist.reduceAll(smem, tid); + } + + // calc distance between two vectors, first vector is cached in register or shared memory, second vector is in global memory + template + __device__ __forceinline__ void calcVecDiffCached(const T1* vecCached, const T2* vecGlob, int len, Dist& dist, typename Dist::result_type* smem, int tid) + { + vec_distance_detail::VecDiffCachedCalculator::calc(vecCached, vecGlob, len, dist, tid); + + dist.reduceAll(smem, tid); + } + + // calc distance between two vectors in global memory + template struct VecDiffGlobal + { + explicit __device__ __forceinline__ VecDiffGlobal(const T1* vec1_, int = 0, void* = 0, int = 0, int = 0) + { + vec1 = vec1_; + } + + template + __device__ __forceinline__ void calc(const T2* vec2, int len, Dist& dist, typename Dist::result_type* smem, int tid) const + { + calcVecDiffGlobal(vec1, vec2, len, dist, smem, tid); + } + + const T1* vec1; + }; + + // calc distance between two vectors, first vector is cached in register memory, second vector is in global memory + template struct VecDiffCachedRegister + { + template __device__ __forceinline__ VecDiffCachedRegister(const T1* vec1, int len, U* smem, int glob_tid, int tid) + { + if (glob_tid < len) + smem[glob_tid] = vec1[glob_tid]; + __syncthreads(); + + U* vec1ValsPtr = vec1Vals; + + #pragma unroll + for (int i = tid; i < MAX_LEN; i += THREAD_DIM) + *vec1ValsPtr++ = smem[i]; + + __syncthreads(); + } + + template + __device__ __forceinline__ void calc(const T2* vec2, int len, Dist& dist, typename Dist::result_type* smem, int tid) const + { + calcVecDiffCached(vec1Vals, vec2, len, dist, smem, tid); + } + + U vec1Vals[MAX_LEN / THREAD_DIM]; + }; +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_VEC_DISTANCE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_math.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_math.hpp new file mode 100644 index 000000000..80b130368 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_math.hpp @@ -0,0 +1,923 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_VECMATH_HPP +#define OPENCV_CUDA_VECMATH_HPP + +#include "vec_traits.hpp" +#include "saturate_cast.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + +// saturate_cast + +namespace vec_math_detail +{ + template struct SatCastHelper; + template struct SatCastHelper<1, VecD> + { + template static __device__ __forceinline__ VecD cast(const VecS& v) + { + typedef typename VecTraits::elem_type D; + return VecTraits::make(saturate_cast(v.x)); + } + }; + template struct SatCastHelper<2, VecD> + { + template static __device__ __forceinline__ VecD cast(const VecS& v) + { + typedef typename VecTraits::elem_type D; + return VecTraits::make(saturate_cast(v.x), saturate_cast(v.y)); + } + }; + template struct SatCastHelper<3, VecD> + { + template static __device__ __forceinline__ VecD cast(const VecS& v) + { + typedef typename VecTraits::elem_type D; + return VecTraits::make(saturate_cast(v.x), saturate_cast(v.y), saturate_cast(v.z)); + } + }; + template struct SatCastHelper<4, VecD> + { + template static __device__ __forceinline__ VecD cast(const VecS& v) + { + typedef typename VecTraits::elem_type D; + return VecTraits::make(saturate_cast(v.x), saturate_cast(v.y), saturate_cast(v.z), saturate_cast(v.w)); + } + }; + + template static __device__ __forceinline__ VecD saturate_cast_helper(const VecS& v) + { + return SatCastHelper::cn, VecD>::cast(v); + } +} + +template static __device__ __forceinline__ T saturate_cast(const uchar1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const char1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const ushort1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const short1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const uint1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const int1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const float1& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const double1& v) {return vec_math_detail::saturate_cast_helper(v);} + +template static __device__ __forceinline__ T saturate_cast(const uchar2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const char2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const ushort2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const short2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const uint2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const int2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const float2& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const double2& v) {return vec_math_detail::saturate_cast_helper(v);} + +template static __device__ __forceinline__ T saturate_cast(const uchar3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const char3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const ushort3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const short3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const uint3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const int3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const float3& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const double3& v) {return vec_math_detail::saturate_cast_helper(v);} + +template static __device__ __forceinline__ T saturate_cast(const uchar4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const char4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const ushort4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const short4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const uint4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const int4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const float4& v) {return vec_math_detail::saturate_cast_helper(v);} +template static __device__ __forceinline__ T saturate_cast(const double4& v) {return vec_math_detail::saturate_cast_helper(v);} + +// unary operators + +#define CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(op, input_type, output_type) \ + __device__ __forceinline__ output_type ## 1 operator op(const input_type ## 1 & a) \ + { \ + return VecTraits::make(op (a.x)); \ + } \ + __device__ __forceinline__ output_type ## 2 operator op(const input_type ## 2 & a) \ + { \ + return VecTraits::make(op (a.x), op (a.y)); \ + } \ + __device__ __forceinline__ output_type ## 3 operator op(const input_type ## 3 & a) \ + { \ + return VecTraits::make(op (a.x), op (a.y), op (a.z)); \ + } \ + __device__ __forceinline__ output_type ## 4 operator op(const input_type ## 4 & a) \ + { \ + return VecTraits::make(op (a.x), op (a.y), op (a.z), op (a.w)); \ + } + +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(-, char, char) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(-, short, short) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(-, int, int) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(-, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(-, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(!, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(~, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(~, char, char) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(~, ushort, ushort) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(~, short, short) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(~, int, int) +CV_CUDEV_IMPLEMENT_VEC_UNARY_OP(~, uint, uint) + +#undef CV_CUDEV_IMPLEMENT_VEC_UNARY_OP + +// unary functions + +#define CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(func_name, func, input_type, output_type) \ + __device__ __forceinline__ output_type ## 1 func_name(const input_type ## 1 & a) \ + { \ + return VecTraits::make(func (a.x)); \ + } \ + __device__ __forceinline__ output_type ## 2 func_name(const input_type ## 2 & a) \ + { \ + return VecTraits::make(func (a.x), func (a.y)); \ + } \ + __device__ __forceinline__ output_type ## 3 func_name(const input_type ## 3 & a) \ + { \ + return VecTraits::make(func (a.x), func (a.y), func (a.z)); \ + } \ + __device__ __forceinline__ output_type ## 4 func_name(const input_type ## 4 & a) \ + { \ + return VecTraits::make(func (a.x), func (a.y), func (a.z), func (a.w)); \ + } + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, ::fabsf, float, float) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrtf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sqrt, ::sqrt, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::expf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp, ::exp, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2f, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp2, ::exp2, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10f, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(exp10, ::exp10, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::logf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log, ::log, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2f, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log2, ::log2, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10f, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(log10, ::log10, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sinf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sin, ::sin, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cosf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cos, ::cos, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tanf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tan, ::tan, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asinf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asin, ::asin, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acosf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acos, ::acos, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atanf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atan, ::atan, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinhf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(sinh, ::sinh, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::coshf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(cosh, ::cosh, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanhf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(tanh, ::tanh, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinhf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(asinh, ::asinh, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acoshf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(acosh, ::acosh, double, double) + +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, char, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, short, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, int, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanhf, float, float) +CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(atanh, ::atanh, double, double) + +#undef CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC + +// binary operators (vec & vec) + +#define CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(op, input_type, output_type) \ + __device__ __forceinline__ output_type ## 1 operator op(const input_type ## 1 & a, const input_type ## 1 & b) \ + { \ + return VecTraits::make(a.x op b.x); \ + } \ + __device__ __forceinline__ output_type ## 2 operator op(const input_type ## 2 & a, const input_type ## 2 & b) \ + { \ + return VecTraits::make(a.x op b.x, a.y op b.y); \ + } \ + __device__ __forceinline__ output_type ## 3 operator op(const input_type ## 3 & a, const input_type ## 3 & b) \ + { \ + return VecTraits::make(a.x op b.x, a.y op b.y, a.z op b.z); \ + } \ + __device__ __forceinline__ output_type ## 4 operator op(const input_type ## 4 & a, const input_type ## 4 & b) \ + { \ + return VecTraits::make(a.x op b.x, a.y op b.y, a.z op b.z, a.w op b.w); \ + } + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, uchar, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, char, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, ushort, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, short, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, uint, uint) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(+, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, uchar, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, char, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, ushort, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, short, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, uint, uint) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(-, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, uchar, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, char, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, ushort, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, short, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, uint, uint) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(*, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, uchar, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, char, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, ushort, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, short, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, uint, uint) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(/, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(==, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(!=, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(>=, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(<=, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&&, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, char, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, ushort, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, short, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, int, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, uint, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, float, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(||, double, uchar) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&, char, char) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&, ushort, ushort) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&, short, short) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(&, uint, uint) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(|, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(|, char, char) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(|, ushort, ushort) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(|, short, short) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(|, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(|, uint, uint) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(^, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(^, char, char) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(^, ushort, ushort) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(^, short, short) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(^, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_OP(^, uint, uint) + +#undef CV_CUDEV_IMPLEMENT_VEC_BINARY_OP + +// binary operators (vec & scalar) + +#define CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(op, input_type, scalar_type, output_type) \ + __device__ __forceinline__ output_type ## 1 operator op(const input_type ## 1 & a, scalar_type s) \ + { \ + return VecTraits::make(a.x op s); \ + } \ + __device__ __forceinline__ output_type ## 1 operator op(scalar_type s, const input_type ## 1 & b) \ + { \ + return VecTraits::make(s op b.x); \ + } \ + __device__ __forceinline__ output_type ## 2 operator op(const input_type ## 2 & a, scalar_type s) \ + { \ + return VecTraits::make(a.x op s, a.y op s); \ + } \ + __device__ __forceinline__ output_type ## 2 operator op(scalar_type s, const input_type ## 2 & b) \ + { \ + return VecTraits::make(s op b.x, s op b.y); \ + } \ + __device__ __forceinline__ output_type ## 3 operator op(const input_type ## 3 & a, scalar_type s) \ + { \ + return VecTraits::make(a.x op s, a.y op s, a.z op s); \ + } \ + __device__ __forceinline__ output_type ## 3 operator op(scalar_type s, const input_type ## 3 & b) \ + { \ + return VecTraits::make(s op b.x, s op b.y, s op b.z); \ + } \ + __device__ __forceinline__ output_type ## 4 operator op(const input_type ## 4 & a, scalar_type s) \ + { \ + return VecTraits::make(a.x op s, a.y op s, a.z op s, a.w op s); \ + } \ + __device__ __forceinline__ output_type ## 4 operator op(scalar_type s, const input_type ## 4 & b) \ + { \ + return VecTraits::make(s op b.x, s op b.y, s op b.z, s op b.w); \ + } + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, uchar, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, char, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, ushort, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, short, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, uint, uint, uint) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(+, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, uchar, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, char, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, ushort, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, short, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, uint, uint, uint) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(-, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, uchar, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, char, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, ushort, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, short, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, uint, uint, uint) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(*, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, uchar, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, char, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, ushort, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, short, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, uint, uint, uint) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(/, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(==, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(!=, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(>=, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(<=, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&&, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, char, char, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, ushort, ushort, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, short, short, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, int, int, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, uint, uint, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, float, float, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(||, double, double, uchar) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&, char, char, char) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&, ushort, ushort, ushort) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&, short, short, short) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(&, uint, uint, uint) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(|, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(|, char, char, char) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(|, ushort, ushort, ushort) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(|, short, short, short) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(|, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(|, uint, uint, uint) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(^, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(^, char, char, char) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(^, ushort, ushort, ushort) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(^, short, short, short) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(^, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP(^, uint, uint, uint) + +#undef CV_CUDEV_IMPLEMENT_SCALAR_BINARY_OP + +// binary function (vec & vec) + +#define CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(func_name, func, input_type, output_type) \ + __device__ __forceinline__ output_type ## 1 func_name(const input_type ## 1 & a, const input_type ## 1 & b) \ + { \ + return VecTraits::make(func (a.x, b.x)); \ + } \ + __device__ __forceinline__ output_type ## 2 func_name(const input_type ## 2 & a, const input_type ## 2 & b) \ + { \ + return VecTraits::make(func (a.x, b.x), func (a.y, b.y)); \ + } \ + __device__ __forceinline__ output_type ## 3 func_name(const input_type ## 3 & a, const input_type ## 3 & b) \ + { \ + return VecTraits::make(func (a.x, b.x), func (a.y, b.y), func (a.z, b.z)); \ + } \ + __device__ __forceinline__ output_type ## 4 func_name(const input_type ## 4 & a, const input_type ## 4 & b) \ + { \ + return VecTraits::make(func (a.x, b.x), func (a.y, b.y), func (a.z, b.z), func (a.w, b.w)); \ + } + +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::max, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::max, char, char) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::max, ushort, ushort) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::max, short, short) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::max, uint, uint) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::max, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::fmaxf, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(max, ::fmax, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::min, uchar, uchar) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::min, char, char) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::min, ushort, ushort) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::min, short, short) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::min, uint, uint) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::min, int, int) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::fminf, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(min, ::fmin, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, char, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, short, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, uint, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, int, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypotf, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(hypot, ::hypot, double, double) + +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, uchar, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, char, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, ushort, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, short, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, uint, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, int, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2f, float, float) +CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC(atan2, ::atan2, double, double) + +#undef CV_CUDEV_IMPLEMENT_VEC_BINARY_FUNC + +// binary function (vec & scalar) + +#define CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(func_name, func, input_type, scalar_type, output_type) \ + __device__ __forceinline__ output_type ## 1 func_name(const input_type ## 1 & a, scalar_type s) \ + { \ + return VecTraits::make(func ((output_type) a.x, (output_type) s)); \ + } \ + __device__ __forceinline__ output_type ## 1 func_name(scalar_type s, const input_type ## 1 & b) \ + { \ + return VecTraits::make(func ((output_type) s, (output_type) b.x)); \ + } \ + __device__ __forceinline__ output_type ## 2 func_name(const input_type ## 2 & a, scalar_type s) \ + { \ + return VecTraits::make(func ((output_type) a.x, (output_type) s), func ((output_type) a.y, (output_type) s)); \ + } \ + __device__ __forceinline__ output_type ## 2 func_name(scalar_type s, const input_type ## 2 & b) \ + { \ + return VecTraits::make(func ((output_type) s, (output_type) b.x), func ((output_type) s, (output_type) b.y)); \ + } \ + __device__ __forceinline__ output_type ## 3 func_name(const input_type ## 3 & a, scalar_type s) \ + { \ + return VecTraits::make(func ((output_type) a.x, (output_type) s), func ((output_type) a.y, (output_type) s), func ((output_type) a.z, (output_type) s)); \ + } \ + __device__ __forceinline__ output_type ## 3 func_name(scalar_type s, const input_type ## 3 & b) \ + { \ + return VecTraits::make(func ((output_type) s, (output_type) b.x), func ((output_type) s, (output_type) b.y), func ((output_type) s, (output_type) b.z)); \ + } \ + __device__ __forceinline__ output_type ## 4 func_name(const input_type ## 4 & a, scalar_type s) \ + { \ + return VecTraits::make(func ((output_type) a.x, (output_type) s), func ((output_type) a.y, (output_type) s), func ((output_type) a.z, (output_type) s), func ((output_type) a.w, (output_type) s)); \ + } \ + __device__ __forceinline__ output_type ## 4 func_name(scalar_type s, const input_type ## 4 & b) \ + { \ + return VecTraits::make(func ((output_type) s, (output_type) b.x), func ((output_type) s, (output_type) b.y), func ((output_type) s, (output_type) b.z), func ((output_type) s, (output_type) b.w)); \ + } + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::max, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::max, char, char, char) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::max, ushort, ushort, ushort) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::max, short, short, short) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::max, uint, uint, uint) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::max, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmaxf, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(max, ::fmax, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::min, uchar, uchar, uchar) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::min, char, char, char) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::min, ushort, ushort, ushort) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::min, short, short, short) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::min, uint, uint, uint) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::min, int, int, int) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fminf, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(min, ::fmin, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypotf, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(hypot, ::hypot, double, double, double) + +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, uchar, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, uchar, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, char, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, char, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, ushort, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, ushort, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, short, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, short, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, uint, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, uint, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, int, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, int, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2f, float, float, float) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, float, double, double) +CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC(atan2, ::atan2, double, double, double) + +#undef CV_CUDEV_IMPLEMENT_SCALAR_BINARY_FUNC + +}}} // namespace cv { namespace cuda { namespace device + +//! @endcond + +#endif // OPENCV_CUDA_VECMATH_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_traits.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_traits.hpp new file mode 100644 index 000000000..b5ff281a0 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/vec_traits.hpp @@ -0,0 +1,288 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_VEC_TRAITS_HPP +#define OPENCV_CUDA_VEC_TRAITS_HPP + +#include "common.hpp" + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template struct TypeVec; + + struct __align__(8) uchar8 + { + uchar a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ uchar8 make_uchar8(uchar a0, uchar a1, uchar a2, uchar a3, uchar a4, uchar a5, uchar a6, uchar a7) + { + uchar8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct __align__(8) char8 + { + schar a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ char8 make_char8(schar a0, schar a1, schar a2, schar a3, schar a4, schar a5, schar a6, schar a7) + { + char8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct __align__(16) ushort8 + { + ushort a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ ushort8 make_ushort8(ushort a0, ushort a1, ushort a2, ushort a3, ushort a4, ushort a5, ushort a6, ushort a7) + { + ushort8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct __align__(16) short8 + { + short a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ short8 make_short8(short a0, short a1, short a2, short a3, short a4, short a5, short a6, short a7) + { + short8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct __align__(32) uint8 + { + uint a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ uint8 make_uint8(uint a0, uint a1, uint a2, uint a3, uint a4, uint a5, uint a6, uint a7) + { + uint8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct __align__(32) int8 + { + int a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ int8 make_int8(int a0, int a1, int a2, int a3, int a4, int a5, int a6, int a7) + { + int8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct __align__(32) float8 + { + float a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ float8 make_float8(float a0, float a1, float a2, float a3, float a4, float a5, float a6, float a7) + { + float8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + struct double8 + { + double a0, a1, a2, a3, a4, a5, a6, a7; + }; + static __host__ __device__ __forceinline__ double8 make_double8(double a0, double a1, double a2, double a3, double a4, double a5, double a6, double a7) + { + double8 val = {a0, a1, a2, a3, a4, a5, a6, a7}; + return val; + } + +#define OPENCV_CUDA_IMPLEMENT_TYPE_VEC(type) \ + template<> struct TypeVec { typedef type vec_type; }; \ + template<> struct TypeVec { typedef type ## 1 vec_type; }; \ + template<> struct TypeVec { typedef type ## 2 vec_type; }; \ + template<> struct TypeVec { typedef type ## 2 vec_type; }; \ + template<> struct TypeVec { typedef type ## 3 vec_type; }; \ + template<> struct TypeVec { typedef type ## 3 vec_type; }; \ + template<> struct TypeVec { typedef type ## 4 vec_type; }; \ + template<> struct TypeVec { typedef type ## 4 vec_type; }; \ + template<> struct TypeVec { typedef type ## 8 vec_type; }; \ + template<> struct TypeVec { typedef type ## 8 vec_type; }; + + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(uchar) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(char) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(ushort) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(short) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(int) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(uint) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(float) + OPENCV_CUDA_IMPLEMENT_TYPE_VEC(double) + + #undef OPENCV_CUDA_IMPLEMENT_TYPE_VEC + + template<> struct TypeVec { typedef schar vec_type; }; + template<> struct TypeVec { typedef char2 vec_type; }; + template<> struct TypeVec { typedef char3 vec_type; }; + template<> struct TypeVec { typedef char4 vec_type; }; + template<> struct TypeVec { typedef char8 vec_type; }; + + template<> struct TypeVec { typedef uchar vec_type; }; + template<> struct TypeVec { typedef uchar2 vec_type; }; + template<> struct TypeVec { typedef uchar3 vec_type; }; + template<> struct TypeVec { typedef uchar4 vec_type; }; + template<> struct TypeVec { typedef uchar8 vec_type; }; + + template struct VecTraits; + +#define OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(type) \ + template<> struct VecTraits \ + { \ + typedef type elem_type; \ + enum {cn=1}; \ + static __device__ __host__ __forceinline__ type all(type v) {return v;} \ + static __device__ __host__ __forceinline__ type make(type x) {return x;} \ + static __device__ __host__ __forceinline__ type make(const type* v) {return *v;} \ + }; \ + template<> struct VecTraits \ + { \ + typedef type elem_type; \ + enum {cn=1}; \ + static __device__ __host__ __forceinline__ type ## 1 all(type v) {return make_ ## type ## 1(v);} \ + static __device__ __host__ __forceinline__ type ## 1 make(type x) {return make_ ## type ## 1(x);} \ + static __device__ __host__ __forceinline__ type ## 1 make(const type* v) {return make_ ## type ## 1(*v);} \ + }; \ + template<> struct VecTraits \ + { \ + typedef type elem_type; \ + enum {cn=2}; \ + static __device__ __host__ __forceinline__ type ## 2 all(type v) {return make_ ## type ## 2(v, v);} \ + static __device__ __host__ __forceinline__ type ## 2 make(type x, type y) {return make_ ## type ## 2(x, y);} \ + static __device__ __host__ __forceinline__ type ## 2 make(const type* v) {return make_ ## type ## 2(v[0], v[1]);} \ + }; \ + template<> struct VecTraits \ + { \ + typedef type elem_type; \ + enum {cn=3}; \ + static __device__ __host__ __forceinline__ type ## 3 all(type v) {return make_ ## type ## 3(v, v, v);} \ + static __device__ __host__ __forceinline__ type ## 3 make(type x, type y, type z) {return make_ ## type ## 3(x, y, z);} \ + static __device__ __host__ __forceinline__ type ## 3 make(const type* v) {return make_ ## type ## 3(v[0], v[1], v[2]);} \ + }; \ + template<> struct VecTraits \ + { \ + typedef type elem_type; \ + enum {cn=4}; \ + static __device__ __host__ __forceinline__ type ## 4 all(type v) {return make_ ## type ## 4(v, v, v, v);} \ + static __device__ __host__ __forceinline__ type ## 4 make(type x, type y, type z, type w) {return make_ ## type ## 4(x, y, z, w);} \ + static __device__ __host__ __forceinline__ type ## 4 make(const type* v) {return make_ ## type ## 4(v[0], v[1], v[2], v[3]);} \ + }; \ + template<> struct VecTraits \ + { \ + typedef type elem_type; \ + enum {cn=8}; \ + static __device__ __host__ __forceinline__ type ## 8 all(type v) {return make_ ## type ## 8(v, v, v, v, v, v, v, v);} \ + static __device__ __host__ __forceinline__ type ## 8 make(type a0, type a1, type a2, type a3, type a4, type a5, type a6, type a7) {return make_ ## type ## 8(a0, a1, a2, a3, a4, a5, a6, a7);} \ + static __device__ __host__ __forceinline__ type ## 8 make(const type* v) {return make_ ## type ## 8(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]);} \ + }; + + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(uchar) + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(ushort) + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(short) + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(int) + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(uint) + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(float) + OPENCV_CUDA_IMPLEMENT_VEC_TRAITS(double) + + #undef OPENCV_CUDA_IMPLEMENT_VEC_TRAITS + + template<> struct VecTraits + { + typedef char elem_type; + enum {cn=1}; + static __device__ __host__ __forceinline__ char all(char v) {return v;} + static __device__ __host__ __forceinline__ char make(char x) {return x;} + static __device__ __host__ __forceinline__ char make(const char* x) {return *x;} + }; + template<> struct VecTraits + { + typedef schar elem_type; + enum {cn=1}; + static __device__ __host__ __forceinline__ schar all(schar v) {return v;} + static __device__ __host__ __forceinline__ schar make(schar x) {return x;} + static __device__ __host__ __forceinline__ schar make(const schar* x) {return *x;} + }; + template<> struct VecTraits + { + typedef schar elem_type; + enum {cn=1}; + static __device__ __host__ __forceinline__ char1 all(schar v) {return make_char1(v);} + static __device__ __host__ __forceinline__ char1 make(schar x) {return make_char1(x);} + static __device__ __host__ __forceinline__ char1 make(const schar* v) {return make_char1(v[0]);} + }; + template<> struct VecTraits + { + typedef schar elem_type; + enum {cn=2}; + static __device__ __host__ __forceinline__ char2 all(schar v) {return make_char2(v, v);} + static __device__ __host__ __forceinline__ char2 make(schar x, schar y) {return make_char2(x, y);} + static __device__ __host__ __forceinline__ char2 make(const schar* v) {return make_char2(v[0], v[1]);} + }; + template<> struct VecTraits + { + typedef schar elem_type; + enum {cn=3}; + static __device__ __host__ __forceinline__ char3 all(schar v) {return make_char3(v, v, v);} + static __device__ __host__ __forceinline__ char3 make(schar x, schar y, schar z) {return make_char3(x, y, z);} + static __device__ __host__ __forceinline__ char3 make(const schar* v) {return make_char3(v[0], v[1], v[2]);} + }; + template<> struct VecTraits + { + typedef schar elem_type; + enum {cn=4}; + static __device__ __host__ __forceinline__ char4 all(schar v) {return make_char4(v, v, v, v);} + static __device__ __host__ __forceinline__ char4 make(schar x, schar y, schar z, schar w) {return make_char4(x, y, z, w);} + static __device__ __host__ __forceinline__ char4 make(const schar* v) {return make_char4(v[0], v[1], v[2], v[3]);} + }; + template<> struct VecTraits + { + typedef schar elem_type; + enum {cn=8}; + static __device__ __host__ __forceinline__ char8 all(schar v) {return make_char8(v, v, v, v, v, v, v, v);} + static __device__ __host__ __forceinline__ char8 make(schar a0, schar a1, schar a2, schar a3, schar a4, schar a5, schar a6, schar a7) {return make_char8(a0, a1, a2, a3, a4, a5, a6, a7);} + static __device__ __host__ __forceinline__ char8 make(const schar* v) {return make_char8(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]);} + }; +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif // OPENCV_CUDA_VEC_TRAITS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp.hpp new file mode 100644 index 000000000..8af7e6a21 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp.hpp @@ -0,0 +1,139 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_DEVICE_WARP_HPP +#define OPENCV_CUDA_DEVICE_WARP_HPP + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + struct Warp + { + enum + { + LOG_WARP_SIZE = 5, + WARP_SIZE = 1 << LOG_WARP_SIZE, + STRIDE = WARP_SIZE + }; + + /** \brief Returns the warp lane ID of the calling thread. */ + static __device__ __forceinline__ unsigned int laneId() + { + unsigned int ret; + asm("mov.u32 %0, %%laneid;" : "=r"(ret) ); + return ret; + } + + template + static __device__ __forceinline__ void fill(It beg, It end, const T& value) + { + for(It t = beg + laneId(); t < end; t += STRIDE) + *t = value; + } + + template + static __device__ __forceinline__ OutIt copy(InIt beg, InIt end, OutIt out) + { + for(InIt t = beg + laneId(); t < end; t += STRIDE, out += STRIDE) + *out = *t; + return out; + } + + template + static __device__ __forceinline__ OutIt transform(InIt beg, InIt end, OutIt out, UnOp op) + { + for(InIt t = beg + laneId(); t < end; t += STRIDE, out += STRIDE) + *out = op(*t); + return out; + } + + template + static __device__ __forceinline__ OutIt transform(InIt1 beg1, InIt1 end1, InIt2 beg2, OutIt out, BinOp op) + { + unsigned int lane = laneId(); + + InIt1 t1 = beg1 + lane; + InIt2 t2 = beg2 + lane; + for(; t1 < end1; t1 += STRIDE, t2 += STRIDE, out += STRIDE) + *out = op(*t1, *t2); + return out; + } + + template + static __device__ __forceinline__ T reduce(volatile T *ptr, BinOp op) + { + const unsigned int lane = laneId(); + + if (lane < 16) + { + T partial = ptr[lane]; + + ptr[lane] = partial = op(partial, ptr[lane + 16]); + ptr[lane] = partial = op(partial, ptr[lane + 8]); + ptr[lane] = partial = op(partial, ptr[lane + 4]); + ptr[lane] = partial = op(partial, ptr[lane + 2]); + ptr[lane] = partial = op(partial, ptr[lane + 1]); + } + + return *ptr; + } + + template + static __device__ __forceinline__ void yota(OutIt beg, OutIt end, T value) + { + unsigned int lane = laneId(); + value += lane; + + for(OutIt t = beg + lane; t < end; t += STRIDE, value += STRIDE) + *t = value; + } + }; +}}} // namespace cv { namespace cuda { namespace cudev + +//! @endcond + +#endif /* OPENCV_CUDA_DEVICE_WARP_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp_reduce.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp_reduce.hpp new file mode 100644 index 000000000..530303d24 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp_reduce.hpp @@ -0,0 +1,76 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_WARP_REDUCE_HPP__ +#define OPENCV_CUDA_WARP_REDUCE_HPP__ + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ + template + __device__ __forceinline__ T warp_reduce(volatile T *ptr , const unsigned int tid = threadIdx.x) + { + const unsigned int lane = tid & 31; // index of thread in warp (0..31) + + if (lane < 16) + { + T partial = ptr[tid]; + + ptr[tid] = partial = partial + ptr[tid + 16]; + ptr[tid] = partial = partial + ptr[tid + 8]; + ptr[tid] = partial = partial + ptr[tid + 4]; + ptr[tid] = partial = partial + ptr[tid + 2]; + ptr[tid] = partial = partial + ptr[tid + 1]; + } + + return ptr[tid - lane]; + } +}}} // namespace cv { namespace cuda { namespace cudev { + +//! @endcond + +#endif /* OPENCV_CUDA_WARP_REDUCE_HPP__ */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp_shuffle.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp_shuffle.hpp new file mode 100644 index 000000000..0da54aee9 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda/warp_shuffle.hpp @@ -0,0 +1,162 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CUDA_WARP_SHUFFLE_HPP +#define OPENCV_CUDA_WARP_SHUFFLE_HPP + +/** @file + * @deprecated Use @ref cudev instead. + */ + +//! @cond IGNORED + +namespace cv { namespace cuda { namespace device +{ +#if __CUDACC_VER_MAJOR__ >= 9 +# define __shfl(x, y, z) __shfl_sync(0xFFFFFFFFU, x, y, z) +# define __shfl_up(x, y, z) __shfl_up_sync(0xFFFFFFFFU, x, y, z) +# define __shfl_down(x, y, z) __shfl_down_sync(0xFFFFFFFFU, x, y, z) +#endif + template + __device__ __forceinline__ T shfl(T val, int srcLane, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + return __shfl(val, srcLane, width); + #else + return T(); + #endif + } + __device__ __forceinline__ unsigned int shfl(unsigned int val, int srcLane, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + return (unsigned int) __shfl((int) val, srcLane, width); + #else + return 0; + #endif + } + __device__ __forceinline__ double shfl(double val, int srcLane, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + int lo = __double2loint(val); + int hi = __double2hiint(val); + + lo = __shfl(lo, srcLane, width); + hi = __shfl(hi, srcLane, width); + + return __hiloint2double(hi, lo); + #else + return 0.0; + #endif + } + + template + __device__ __forceinline__ T shfl_down(T val, unsigned int delta, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + return __shfl_down(val, delta, width); + #else + return T(); + #endif + } + __device__ __forceinline__ unsigned int shfl_down(unsigned int val, unsigned int delta, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + return (unsigned int) __shfl_down((int) val, delta, width); + #else + return 0; + #endif + } + __device__ __forceinline__ double shfl_down(double val, unsigned int delta, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + int lo = __double2loint(val); + int hi = __double2hiint(val); + + lo = __shfl_down(lo, delta, width); + hi = __shfl_down(hi, delta, width); + + return __hiloint2double(hi, lo); + #else + return 0.0; + #endif + } + + template + __device__ __forceinline__ T shfl_up(T val, unsigned int delta, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + return __shfl_up(val, delta, width); + #else + return T(); + #endif + } + __device__ __forceinline__ unsigned int shfl_up(unsigned int val, unsigned int delta, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + return (unsigned int) __shfl_up((int) val, delta, width); + #else + return 0; + #endif + } + __device__ __forceinline__ double shfl_up(double val, unsigned int delta, int width = warpSize) + { + #if defined __CUDA_ARCH__ && __CUDA_ARCH__ >= 300 + int lo = __double2loint(val); + int hi = __double2hiint(val); + + lo = __shfl_up(lo, delta, width); + hi = __shfl_up(hi, delta, width); + + return __hiloint2double(hi, lo); + #else + return 0.0; + #endif + } +}}} + +# undef __shfl +# undef __shfl_up +# undef __shfl_down + +//! @endcond + +#endif // OPENCV_CUDA_WARP_SHUFFLE_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda_stream_accessor.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda_stream_accessor.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda_stream_accessor.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/cuda_stream_accessor.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda_types.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cuda_types.hpp similarity index 93% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda_types.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/cuda_types.hpp index f13a84746..45dc2cad1 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda_types.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cuda_types.hpp @@ -47,6 +47,13 @@ # error cuda_types.hpp header must be compiled as C++ #endif +#if defined(__OPENCV_BUILD) && defined(__clang__) +#pragma clang diagnostic ignored "-Winconsistent-missing-override" +#endif +#if defined(__OPENCV_BUILD) && defined(__GNUC__) && __GNUC__ >= 5 +#pragma GCC diagnostic ignored "-Wsuggest-override" +#endif + /** @file * @deprecated Use @ref cudev instead. */ @@ -120,10 +127,12 @@ namespace cv }; typedef PtrStepSz PtrStepSzb; + typedef PtrStepSz PtrStepSzus; typedef PtrStepSz PtrStepSzf; typedef PtrStepSz PtrStepSzi; typedef PtrStep PtrStepb; + typedef PtrStep PtrStepus; typedef PtrStep PtrStepf; typedef PtrStep PtrStepi; diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cv_cpu_dispatch.h b/lib/3rdParty/OpenCV/include/opencv2/core/cv_cpu_dispatch.h similarity index 89% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/cv_cpu_dispatch.h rename to lib/3rdParty/OpenCV/include/opencv2/core/cv_cpu_dispatch.h index 5261a4143..7f6d6b0fb 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cv_cpu_dispatch.h +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cv_cpu_dispatch.h @@ -15,6 +15,7 @@ #define CV_CPU_OPTIMIZATION_NAMESPACE cpu_baseline #define CV_CPU_OPTIMIZATION_NAMESPACE_BEGIN namespace cpu_baseline { #define CV_CPU_OPTIMIZATION_NAMESPACE_END } +#define CV_CPU_BASELINE_MODE 1 #endif @@ -82,6 +83,14 @@ # include # define CV_AVX2 1 #endif +#ifdef CV_CPU_COMPILE_AVX_512F +# include +# define CV_AVX_512F 1 +#endif +#ifdef CV_CPU_COMPILE_AVX512_SKX +# include +# define CV_AVX512_SKX 1 +#endif #ifdef CV_CPU_COMPILE_FMA3 # define CV_FMA3 1 #endif @@ -99,7 +108,7 @@ # include #endif -#if defined(__VSX__) && defined(__PPC64__) && defined(__LITTLE_ENDIAN__) +#ifdef CV_CPU_COMPILE_VSX # include # undef vector # undef pixel @@ -107,16 +116,24 @@ # define CV_VSX 1 #endif +#ifdef CV_CPU_COMPILE_VSX3 +# define CV_VSX3 1 +#endif + #endif // CV_ENABLE_INTRINSICS && !CV_DISABLE_OPTIMIZATION && !__CUDACC__ #if defined CV_CPU_COMPILE_AVX && !defined CV_CPU_BASELINE_COMPILE_AVX struct VZeroUpperGuard { +#ifdef __GNUC__ + __attribute__((always_inline)) +#endif + inline VZeroUpperGuard() { _mm256_zeroupper(); } #ifdef __GNUC__ __attribute__((always_inline)) #endif inline ~VZeroUpperGuard() { _mm256_zeroupper(); } }; -#define __CV_AVX_GUARD VZeroUpperGuard __vzeroupper_guard; (void)__vzeroupper_guard; +#define __CV_AVX_GUARD VZeroUpperGuard __vzeroupper_guard; CV_UNUSED(__vzeroupper_guard); #endif #ifdef __CV_AVX_GUARD @@ -218,6 +235,9 @@ struct VZeroUpperGuard { #ifndef CV_AVX_512VL # define CV_AVX_512VL 0 #endif +#ifndef CV_AVX512_SKX +# define CV_AVX512_SKX 0 +#endif #ifndef CV_NEON # define CV_NEON 0 @@ -226,3 +246,7 @@ struct VZeroUpperGuard { #ifndef CV_VSX # define CV_VSX 0 #endif + +#ifndef CV_VSX3 +# define CV_VSX3 0 +#endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cv_cpu_helper.h b/lib/3rdParty/OpenCV/include/opencv2/core/cv_cpu_helper.h new file mode 100644 index 000000000..ad1339796 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cv_cpu_helper.h @@ -0,0 +1,340 @@ +// AUTOGENERATED, DO NOT EDIT + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE +# define CV_TRY_SSE 1 +# define CV_CPU_FORCE_SSE 1 +# define CV_CPU_HAS_SUPPORT_SSE 1 +# define CV_CPU_CALL_SSE(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_SSE_(fn, args) return (opt_SSE::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE +# define CV_TRY_SSE 1 +# define CV_CPU_FORCE_SSE 0 +# define CV_CPU_HAS_SUPPORT_SSE (cv::checkHardwareSupport(CV_CPU_SSE)) +# define CV_CPU_CALL_SSE(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args) +# define CV_CPU_CALL_SSE_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args) +#else +# define CV_TRY_SSE 0 +# define CV_CPU_FORCE_SSE 0 +# define CV_CPU_HAS_SUPPORT_SSE 0 +# define CV_CPU_CALL_SSE(fn, args) +# define CV_CPU_CALL_SSE_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_SSE(fn, args, mode, ...) CV_CPU_CALL_SSE(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE2 +# define CV_TRY_SSE2 1 +# define CV_CPU_FORCE_SSE2 1 +# define CV_CPU_HAS_SUPPORT_SSE2 1 +# define CV_CPU_CALL_SSE2(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_SSE2_(fn, args) return (opt_SSE2::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE2 +# define CV_TRY_SSE2 1 +# define CV_CPU_FORCE_SSE2 0 +# define CV_CPU_HAS_SUPPORT_SSE2 (cv::checkHardwareSupport(CV_CPU_SSE2)) +# define CV_CPU_CALL_SSE2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args) +# define CV_CPU_CALL_SSE2_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args) +#else +# define CV_TRY_SSE2 0 +# define CV_CPU_FORCE_SSE2 0 +# define CV_CPU_HAS_SUPPORT_SSE2 0 +# define CV_CPU_CALL_SSE2(fn, args) +# define CV_CPU_CALL_SSE2_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_SSE2(fn, args, mode, ...) CV_CPU_CALL_SSE2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE3 +# define CV_TRY_SSE3 1 +# define CV_CPU_FORCE_SSE3 1 +# define CV_CPU_HAS_SUPPORT_SSE3 1 +# define CV_CPU_CALL_SSE3(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_SSE3_(fn, args) return (opt_SSE3::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE3 +# define CV_TRY_SSE3 1 +# define CV_CPU_FORCE_SSE3 0 +# define CV_CPU_HAS_SUPPORT_SSE3 (cv::checkHardwareSupport(CV_CPU_SSE3)) +# define CV_CPU_CALL_SSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args) +# define CV_CPU_CALL_SSE3_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args) +#else +# define CV_TRY_SSE3 0 +# define CV_CPU_FORCE_SSE3 0 +# define CV_CPU_HAS_SUPPORT_SSE3 0 +# define CV_CPU_CALL_SSE3(fn, args) +# define CV_CPU_CALL_SSE3_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_SSE3(fn, args, mode, ...) CV_CPU_CALL_SSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSSE3 +# define CV_TRY_SSSE3 1 +# define CV_CPU_FORCE_SSSE3 1 +# define CV_CPU_HAS_SUPPORT_SSSE3 1 +# define CV_CPU_CALL_SSSE3(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_SSSE3_(fn, args) return (opt_SSSE3::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSSE3 +# define CV_TRY_SSSE3 1 +# define CV_CPU_FORCE_SSSE3 0 +# define CV_CPU_HAS_SUPPORT_SSSE3 (cv::checkHardwareSupport(CV_CPU_SSSE3)) +# define CV_CPU_CALL_SSSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args) +# define CV_CPU_CALL_SSSE3_(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args) +#else +# define CV_TRY_SSSE3 0 +# define CV_CPU_FORCE_SSSE3 0 +# define CV_CPU_HAS_SUPPORT_SSSE3 0 +# define CV_CPU_CALL_SSSE3(fn, args) +# define CV_CPU_CALL_SSSE3_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_SSSE3(fn, args, mode, ...) CV_CPU_CALL_SSSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_1 +# define CV_TRY_SSE4_1 1 +# define CV_CPU_FORCE_SSE4_1 1 +# define CV_CPU_HAS_SUPPORT_SSE4_1 1 +# define CV_CPU_CALL_SSE4_1(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_SSE4_1_(fn, args) return (opt_SSE4_1::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_1 +# define CV_TRY_SSE4_1 1 +# define CV_CPU_FORCE_SSE4_1 0 +# define CV_CPU_HAS_SUPPORT_SSE4_1 (cv::checkHardwareSupport(CV_CPU_SSE4_1)) +# define CV_CPU_CALL_SSE4_1(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args) +# define CV_CPU_CALL_SSE4_1_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args) +#else +# define CV_TRY_SSE4_1 0 +# define CV_CPU_FORCE_SSE4_1 0 +# define CV_CPU_HAS_SUPPORT_SSE4_1 0 +# define CV_CPU_CALL_SSE4_1(fn, args) +# define CV_CPU_CALL_SSE4_1_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_SSE4_1(fn, args, mode, ...) CV_CPU_CALL_SSE4_1(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_2 +# define CV_TRY_SSE4_2 1 +# define CV_CPU_FORCE_SSE4_2 1 +# define CV_CPU_HAS_SUPPORT_SSE4_2 1 +# define CV_CPU_CALL_SSE4_2(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_SSE4_2_(fn, args) return (opt_SSE4_2::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_2 +# define CV_TRY_SSE4_2 1 +# define CV_CPU_FORCE_SSE4_2 0 +# define CV_CPU_HAS_SUPPORT_SSE4_2 (cv::checkHardwareSupport(CV_CPU_SSE4_2)) +# define CV_CPU_CALL_SSE4_2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args) +# define CV_CPU_CALL_SSE4_2_(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args) +#else +# define CV_TRY_SSE4_2 0 +# define CV_CPU_FORCE_SSE4_2 0 +# define CV_CPU_HAS_SUPPORT_SSE4_2 0 +# define CV_CPU_CALL_SSE4_2(fn, args) +# define CV_CPU_CALL_SSE4_2_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_SSE4_2(fn, args, mode, ...) CV_CPU_CALL_SSE4_2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_POPCNT +# define CV_TRY_POPCNT 1 +# define CV_CPU_FORCE_POPCNT 1 +# define CV_CPU_HAS_SUPPORT_POPCNT 1 +# define CV_CPU_CALL_POPCNT(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_POPCNT_(fn, args) return (opt_POPCNT::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_POPCNT +# define CV_TRY_POPCNT 1 +# define CV_CPU_FORCE_POPCNT 0 +# define CV_CPU_HAS_SUPPORT_POPCNT (cv::checkHardwareSupport(CV_CPU_POPCNT)) +# define CV_CPU_CALL_POPCNT(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args) +# define CV_CPU_CALL_POPCNT_(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args) +#else +# define CV_TRY_POPCNT 0 +# define CV_CPU_FORCE_POPCNT 0 +# define CV_CPU_HAS_SUPPORT_POPCNT 0 +# define CV_CPU_CALL_POPCNT(fn, args) +# define CV_CPU_CALL_POPCNT_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_POPCNT(fn, args, mode, ...) CV_CPU_CALL_POPCNT(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX +# define CV_TRY_AVX 1 +# define CV_CPU_FORCE_AVX 1 +# define CV_CPU_HAS_SUPPORT_AVX 1 +# define CV_CPU_CALL_AVX(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_AVX_(fn, args) return (opt_AVX::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX +# define CV_TRY_AVX 1 +# define CV_CPU_FORCE_AVX 0 +# define CV_CPU_HAS_SUPPORT_AVX (cv::checkHardwareSupport(CV_CPU_AVX)) +# define CV_CPU_CALL_AVX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args) +# define CV_CPU_CALL_AVX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args) +#else +# define CV_TRY_AVX 0 +# define CV_CPU_FORCE_AVX 0 +# define CV_CPU_HAS_SUPPORT_AVX 0 +# define CV_CPU_CALL_AVX(fn, args) +# define CV_CPU_CALL_AVX_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_AVX(fn, args, mode, ...) CV_CPU_CALL_AVX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FP16 +# define CV_TRY_FP16 1 +# define CV_CPU_FORCE_FP16 1 +# define CV_CPU_HAS_SUPPORT_FP16 1 +# define CV_CPU_CALL_FP16(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_FP16_(fn, args) return (opt_FP16::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FP16 +# define CV_TRY_FP16 1 +# define CV_CPU_FORCE_FP16 0 +# define CV_CPU_HAS_SUPPORT_FP16 (cv::checkHardwareSupport(CV_CPU_FP16)) +# define CV_CPU_CALL_FP16(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args) +# define CV_CPU_CALL_FP16_(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args) +#else +# define CV_TRY_FP16 0 +# define CV_CPU_FORCE_FP16 0 +# define CV_CPU_HAS_SUPPORT_FP16 0 +# define CV_CPU_CALL_FP16(fn, args) +# define CV_CPU_CALL_FP16_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_FP16(fn, args, mode, ...) CV_CPU_CALL_FP16(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX2 +# define CV_TRY_AVX2 1 +# define CV_CPU_FORCE_AVX2 1 +# define CV_CPU_HAS_SUPPORT_AVX2 1 +# define CV_CPU_CALL_AVX2(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_AVX2_(fn, args) return (opt_AVX2::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX2 +# define CV_TRY_AVX2 1 +# define CV_CPU_FORCE_AVX2 0 +# define CV_CPU_HAS_SUPPORT_AVX2 (cv::checkHardwareSupport(CV_CPU_AVX2)) +# define CV_CPU_CALL_AVX2(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args) +# define CV_CPU_CALL_AVX2_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args) +#else +# define CV_TRY_AVX2 0 +# define CV_CPU_FORCE_AVX2 0 +# define CV_CPU_HAS_SUPPORT_AVX2 0 +# define CV_CPU_CALL_AVX2(fn, args) +# define CV_CPU_CALL_AVX2_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_AVX2(fn, args, mode, ...) CV_CPU_CALL_AVX2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FMA3 +# define CV_TRY_FMA3 1 +# define CV_CPU_FORCE_FMA3 1 +# define CV_CPU_HAS_SUPPORT_FMA3 1 +# define CV_CPU_CALL_FMA3(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_FMA3_(fn, args) return (opt_FMA3::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FMA3 +# define CV_TRY_FMA3 1 +# define CV_CPU_FORCE_FMA3 0 +# define CV_CPU_HAS_SUPPORT_FMA3 (cv::checkHardwareSupport(CV_CPU_FMA3)) +# define CV_CPU_CALL_FMA3(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args) +# define CV_CPU_CALL_FMA3_(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args) +#else +# define CV_TRY_FMA3 0 +# define CV_CPU_FORCE_FMA3 0 +# define CV_CPU_HAS_SUPPORT_FMA3 0 +# define CV_CPU_CALL_FMA3(fn, args) +# define CV_CPU_CALL_FMA3_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_FMA3(fn, args, mode, ...) CV_CPU_CALL_FMA3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX_512F +# define CV_TRY_AVX_512F 1 +# define CV_CPU_FORCE_AVX_512F 1 +# define CV_CPU_HAS_SUPPORT_AVX_512F 1 +# define CV_CPU_CALL_AVX_512F(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_AVX_512F_(fn, args) return (opt_AVX_512F::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX_512F +# define CV_TRY_AVX_512F 1 +# define CV_CPU_FORCE_AVX_512F 0 +# define CV_CPU_HAS_SUPPORT_AVX_512F (cv::checkHardwareSupport(CV_CPU_AVX_512F)) +# define CV_CPU_CALL_AVX_512F(fn, args) if (CV_CPU_HAS_SUPPORT_AVX_512F) return (opt_AVX_512F::fn args) +# define CV_CPU_CALL_AVX_512F_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX_512F) return (opt_AVX_512F::fn args) +#else +# define CV_TRY_AVX_512F 0 +# define CV_CPU_FORCE_AVX_512F 0 +# define CV_CPU_HAS_SUPPORT_AVX_512F 0 +# define CV_CPU_CALL_AVX_512F(fn, args) +# define CV_CPU_CALL_AVX_512F_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_AVX_512F(fn, args, mode, ...) CV_CPU_CALL_AVX_512F(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX512_SKX +# define CV_TRY_AVX512_SKX 1 +# define CV_CPU_FORCE_AVX512_SKX 1 +# define CV_CPU_HAS_SUPPORT_AVX512_SKX 1 +# define CV_CPU_CALL_AVX512_SKX(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_AVX512_SKX_(fn, args) return (opt_AVX512_SKX::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX512_SKX +# define CV_TRY_AVX512_SKX 1 +# define CV_CPU_FORCE_AVX512_SKX 0 +# define CV_CPU_HAS_SUPPORT_AVX512_SKX (cv::checkHardwareSupport(CV_CPU_AVX512_SKX)) +# define CV_CPU_CALL_AVX512_SKX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_SKX) return (opt_AVX512_SKX::fn args) +# define CV_CPU_CALL_AVX512_SKX_(fn, args) if (CV_CPU_HAS_SUPPORT_AVX512_SKX) return (opt_AVX512_SKX::fn args) +#else +# define CV_TRY_AVX512_SKX 0 +# define CV_CPU_FORCE_AVX512_SKX 0 +# define CV_CPU_HAS_SUPPORT_AVX512_SKX 0 +# define CV_CPU_CALL_AVX512_SKX(fn, args) +# define CV_CPU_CALL_AVX512_SKX_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_AVX512_SKX(fn, args, mode, ...) CV_CPU_CALL_AVX512_SKX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_NEON +# define CV_TRY_NEON 1 +# define CV_CPU_FORCE_NEON 1 +# define CV_CPU_HAS_SUPPORT_NEON 1 +# define CV_CPU_CALL_NEON(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_NEON_(fn, args) return (opt_NEON::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_NEON +# define CV_TRY_NEON 1 +# define CV_CPU_FORCE_NEON 0 +# define CV_CPU_HAS_SUPPORT_NEON (cv::checkHardwareSupport(CV_CPU_NEON)) +# define CV_CPU_CALL_NEON(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args) +# define CV_CPU_CALL_NEON_(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args) +#else +# define CV_TRY_NEON 0 +# define CV_CPU_FORCE_NEON 0 +# define CV_CPU_HAS_SUPPORT_NEON 0 +# define CV_CPU_CALL_NEON(fn, args) +# define CV_CPU_CALL_NEON_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_NEON(fn, args, mode, ...) CV_CPU_CALL_NEON(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX +# define CV_TRY_VSX 1 +# define CV_CPU_FORCE_VSX 1 +# define CV_CPU_HAS_SUPPORT_VSX 1 +# define CV_CPU_CALL_VSX(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_VSX_(fn, args) return (opt_VSX::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX +# define CV_TRY_VSX 1 +# define CV_CPU_FORCE_VSX 0 +# define CV_CPU_HAS_SUPPORT_VSX (cv::checkHardwareSupport(CV_CPU_VSX)) +# define CV_CPU_CALL_VSX(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args) +# define CV_CPU_CALL_VSX_(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args) +#else +# define CV_TRY_VSX 0 +# define CV_CPU_FORCE_VSX 0 +# define CV_CPU_HAS_SUPPORT_VSX 0 +# define CV_CPU_CALL_VSX(fn, args) +# define CV_CPU_CALL_VSX_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_VSX(fn, args, mode, ...) CV_CPU_CALL_VSX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX3 +# define CV_TRY_VSX3 1 +# define CV_CPU_FORCE_VSX3 1 +# define CV_CPU_HAS_SUPPORT_VSX3 1 +# define CV_CPU_CALL_VSX3(fn, args) return (cpu_baseline::fn args) +# define CV_CPU_CALL_VSX3_(fn, args) return (opt_VSX3::fn args) +#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX3 +# define CV_TRY_VSX3 1 +# define CV_CPU_FORCE_VSX3 0 +# define CV_CPU_HAS_SUPPORT_VSX3 (cv::checkHardwareSupport(CV_CPU_VSX3)) +# define CV_CPU_CALL_VSX3(fn, args) if (CV_CPU_HAS_SUPPORT_VSX3) return (opt_VSX3::fn args) +# define CV_CPU_CALL_VSX3_(fn, args) if (CV_CPU_HAS_SUPPORT_VSX3) return (opt_VSX3::fn args) +#else +# define CV_TRY_VSX3 0 +# define CV_CPU_FORCE_VSX3 0 +# define CV_CPU_HAS_SUPPORT_VSX3 0 +# define CV_CPU_CALL_VSX3(fn, args) +# define CV_CPU_CALL_VSX3_(fn, args) +#endif +#define __CV_CPU_DISPATCH_CHAIN_VSX3(fn, args, mode, ...) CV_CPU_CALL_VSX3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) + +#define CV_CPU_CALL_BASELINE(fn, args) return (cpu_baseline::fn args) +#define __CV_CPU_DISPATCH_CHAIN_BASELINE(fn, args, mode, ...) CV_CPU_CALL_BASELINE(fn, args) /* last in sequence */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cvdef.h b/lib/3rdParty/OpenCV/include/opencv2/core/cvdef.h new file mode 100644 index 000000000..caa4a9e4c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cvdef.h @@ -0,0 +1,857 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_CVDEF_H +#define OPENCV_CORE_CVDEF_H + +//! @addtogroup core_utils +//! @{ + +#if !defined CV_DOXYGEN && !defined CV_IGNORE_DEBUG_BUILD_GUARD +#if (defined(_MSC_VER) && (defined(DEBUG) || defined(_DEBUG))) || \ + (defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_DEBUG_PEDANTIC)) +// Guard to prevent using of binary incompatible binaries / runtimes +// https://github.com/opencv/opencv/pull/9161 +#define CV__DEBUG_NS_BEGIN namespace debug_build_guard { +#define CV__DEBUG_NS_END } +namespace cv { namespace debug_build_guard { } using namespace debug_build_guard; } +#endif +#endif + +#ifndef CV__DEBUG_NS_BEGIN +#define CV__DEBUG_NS_BEGIN +#define CV__DEBUG_NS_END +#endif + + +#ifdef __OPENCV_BUILD +#include "cvconfig.h" +#endif + +#ifndef __CV_EXPAND +#define __CV_EXPAND(x) x +#endif + +#ifndef __CV_CAT +#define __CV_CAT__(x, y) x ## y +#define __CV_CAT_(x, y) __CV_CAT__(x, y) +#define __CV_CAT(x, y) __CV_CAT_(x, y) +#endif + +#define __CV_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N +#define __CV_VA_NUM_ARGS(...) __CV_EXPAND(__CV_VA_NUM_ARGS_HELPER(__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)) + +#if defined __GNUC__ +#define CV_Func __func__ +#elif defined _MSC_VER +#define CV_Func __FUNCTION__ +#else +#define CV_Func "" +#endif + +//! @cond IGNORED + +//////////////// static assert ///////////////// +#define CVAUX_CONCAT_EXP(a, b) a##b +#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b) + +#if defined(__clang__) +# ifndef __has_extension +# define __has_extension __has_feature /* compatibility, for older versions of clang */ +# endif +# if __has_extension(cxx_static_assert) +# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition) +# elif __has_extension(c_static_assert) +# define CV_StaticAssert(condition, reason) _Static_assert((condition), reason " " #condition) +# endif +#elif defined(__GNUC__) +# if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) +# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition) +# endif +#elif defined(_MSC_VER) +# if _MSC_VER >= 1600 /* MSVC 10 */ +# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition) +# endif +#endif +#ifndef CV_StaticAssert +# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302) +# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); }) +# else + template struct CV_StaticAssert_failed; + template <> struct CV_StaticAssert_failed { enum { val = 1 }; }; + template struct CV_StaticAssert_test {}; +# define CV_StaticAssert(condition, reason)\ + typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__) +# endif +#endif + +// Suppress warning "-Wdeprecated-declarations" / C4996 +#if defined(_MSC_VER) + #define CV_DO_PRAGMA(x) __pragma(x) +#elif defined(__GNUC__) + #define CV_DO_PRAGMA(x) _Pragma (#x) +#else + #define CV_DO_PRAGMA(x) +#endif + +#ifdef _MSC_VER +#define CV_SUPPRESS_DEPRECATED_START \ + CV_DO_PRAGMA(warning(push)) \ + CV_DO_PRAGMA(warning(disable: 4996)) +#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop)) +#elif defined (__clang__) || ((__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 405)) +#define CV_SUPPRESS_DEPRECATED_START \ + CV_DO_PRAGMA(GCC diagnostic push) \ + CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations") +#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(GCC diagnostic pop) +#else +#define CV_SUPPRESS_DEPRECATED_START +#define CV_SUPPRESS_DEPRECATED_END +#endif + +#define CV_UNUSED(name) (void)name + +//! @endcond + +// undef problematic defines sometimes defined by system headers (windows.h in particular) +#undef small +#undef min +#undef max +#undef abs +#undef Complex + +#include +#include "opencv2/core/hal/interface.h" + +#if defined __ICL +# define CV_ICC __ICL +#elif defined __ICC +# define CV_ICC __ICC +#elif defined __ECL +# define CV_ICC __ECL +#elif defined __ECC +# define CV_ICC __ECC +#elif defined __INTEL_COMPILER +# define CV_ICC __INTEL_COMPILER +#endif + +#ifndef CV_INLINE +# if defined __cplusplus +# define CV_INLINE static inline +# elif defined _MSC_VER +# define CV_INLINE __inline +# else +# define CV_INLINE static +# endif +#endif + +#ifndef CV_ALWAYS_INLINE +#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define CV_ALWAYS_INLINE inline __attribute__((always_inline)) +#elif defined(_MSC_VER) +#define CV_ALWAYS_INLINE __forceinline +#else +#define CV_ALWAYS_INLINE inline +#endif +#endif + +#if defined CV_DISABLE_OPTIMIZATION || (defined CV_ICC && !defined CV_ENABLE_UNROLLED) +# define CV_ENABLE_UNROLLED 0 +#else +# define CV_ENABLE_UNROLLED 1 +#endif + +#ifdef __GNUC__ +# define CV_DECL_ALIGNED(x) __attribute__ ((aligned (x))) +#elif defined _MSC_VER +# define CV_DECL_ALIGNED(x) __declspec(align(x)) +#else +# define CV_DECL_ALIGNED(x) +#endif + +/* CPU features and intrinsics support */ +#define CV_CPU_NONE 0 +#define CV_CPU_MMX 1 +#define CV_CPU_SSE 2 +#define CV_CPU_SSE2 3 +#define CV_CPU_SSE3 4 +#define CV_CPU_SSSE3 5 +#define CV_CPU_SSE4_1 6 +#define CV_CPU_SSE4_2 7 +#define CV_CPU_POPCNT 8 +#define CV_CPU_FP16 9 +#define CV_CPU_AVX 10 +#define CV_CPU_AVX2 11 +#define CV_CPU_FMA3 12 + +#define CV_CPU_AVX_512F 13 +#define CV_CPU_AVX_512BW 14 +#define CV_CPU_AVX_512CD 15 +#define CV_CPU_AVX_512DQ 16 +#define CV_CPU_AVX_512ER 17 +#define CV_CPU_AVX_512IFMA512 18 // deprecated +#define CV_CPU_AVX_512IFMA 18 +#define CV_CPU_AVX_512PF 19 +#define CV_CPU_AVX_512VBMI 20 +#define CV_CPU_AVX_512VL 21 + +#define CV_CPU_NEON 100 + +#define CV_CPU_VSX 200 +#define CV_CPU_VSX3 201 + +// CPU features groups +#define CV_CPU_AVX512_SKX 256 + +// when adding to this list remember to update the following enum +#define CV_HARDWARE_MAX_FEATURE 512 + +/** @brief Available CPU features. +*/ +enum CpuFeatures { + CPU_MMX = 1, + CPU_SSE = 2, + CPU_SSE2 = 3, + CPU_SSE3 = 4, + CPU_SSSE3 = 5, + CPU_SSE4_1 = 6, + CPU_SSE4_2 = 7, + CPU_POPCNT = 8, + CPU_FP16 = 9, + CPU_AVX = 10, + CPU_AVX2 = 11, + CPU_FMA3 = 12, + + CPU_AVX_512F = 13, + CPU_AVX_512BW = 14, + CPU_AVX_512CD = 15, + CPU_AVX_512DQ = 16, + CPU_AVX_512ER = 17, + CPU_AVX_512IFMA512 = 18, // deprecated + CPU_AVX_512IFMA = 18, + CPU_AVX_512PF = 19, + CPU_AVX_512VBMI = 20, + CPU_AVX_512VL = 21, + + CPU_NEON = 100, + + CPU_VSX = 200, + CPU_VSX3 = 201, + + CPU_AVX512_SKX = 256, //!< Skylake-X with AVX-512F/CD/BW/DQ/VL + + CPU_MAX_FEATURE = 512 // see CV_HARDWARE_MAX_FEATURE +}; + + +#include "cv_cpu_dispatch.h" + + +/* fundamental constants */ +#define CV_PI 3.1415926535897932384626433832795 +#define CV_2PI 6.283185307179586476925286766559 +#define CV_LOG2 0.69314718055994530941723212145818 + +#if defined __ARM_FP16_FORMAT_IEEE \ + && !defined __CUDACC__ +# define CV_FP16_TYPE 1 +#else +# define CV_FP16_TYPE 0 +#endif + +typedef union Cv16suf +{ + short i; + ushort u; +#if CV_FP16_TYPE + __fp16 h; +#endif +} +Cv16suf; + +typedef union Cv32suf +{ + int i; + unsigned u; + float f; +} +Cv32suf; + +typedef union Cv64suf +{ + int64 i; + uint64 u; + double f; +} +Cv64suf; + +#define OPENCV_ABI_COMPATIBILITY 400 + +#ifdef __OPENCV_BUILD +# define DISABLE_OPENCV_3_COMPATIBILITY +# define OPENCV_DISABLE_DEPRECATED_COMPATIBILITY +#endif + +#ifdef CVAPI_EXPORTS +# if (defined _WIN32 || defined WINCE || defined __CYGWIN__) +# define CV_EXPORTS __declspec(dllexport) +# elif defined __GNUC__ && __GNUC__ >= 4 +# define CV_EXPORTS __attribute__ ((visibility ("default"))) +# endif +#endif + +#ifndef CV_EXPORTS +# define CV_EXPORTS +#endif + +#ifdef _MSC_VER +# define CV_EXPORTS_TEMPLATE +#else +# define CV_EXPORTS_TEMPLATE CV_EXPORTS +#endif + +#ifndef CV_DEPRECATED +# if defined(__GNUC__) +# define CV_DEPRECATED __attribute__ ((deprecated)) +# elif defined(_MSC_VER) +# define CV_DEPRECATED __declspec(deprecated) +# else +# define CV_DEPRECATED +# endif +#endif + +#ifndef CV_DEPRECATED_EXTERNAL +# if defined(__OPENCV_BUILD) +# define CV_DEPRECATED_EXTERNAL /* nothing */ +# else +# define CV_DEPRECATED_EXTERNAL CV_DEPRECATED +# endif +#endif + + +#ifndef CV_EXTERN_C +# ifdef __cplusplus +# define CV_EXTERN_C extern "C" +# else +# define CV_EXTERN_C +# endif +#endif + +/* special informative macros for wrapper generators */ +#define CV_EXPORTS_W CV_EXPORTS +#define CV_EXPORTS_W_SIMPLE CV_EXPORTS +#define CV_EXPORTS_AS(synonym) CV_EXPORTS +#define CV_EXPORTS_W_MAP CV_EXPORTS +#define CV_IN_OUT +#define CV_OUT +#define CV_PROP +#define CV_PROP_RW +#define CV_WRAP +#define CV_WRAP_AS(synonym) +#define CV_WRAP_MAPPABLE(mappable) +#define CV_WRAP_PHANTOM(phantom_header) +#define CV_WRAP_DEFAULT(val) + +/****************************************************************************************\ +* Matrix type (Mat) * +\****************************************************************************************/ + +#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT) +#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1) +#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1) +#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK) +#define CV_MAT_CONT_FLAG_SHIFT 14 +#define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT) +#define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG) +#define CV_IS_CONT_MAT CV_IS_MAT_CONT +#define CV_SUBMAT_FLAG_SHIFT 15 +#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT) +#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG) + +/** Size of each channel item, + 0x28442211 = 0010 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */ +#define CV_ELEM_SIZE1(type) ((0x28442211 >> CV_MAT_DEPTH(type)*4) & 15) + +#define CV_ELEM_SIZE(type) (CV_MAT_CN(type)*CV_ELEM_SIZE1(type)) + +#ifndef MIN +# define MIN(a,b) ((a) > (b) ? (b) : (a)) +#endif + +#ifndef MAX +# define MAX(a,b) ((a) < (b) ? (b) : (a)) +#endif + +///////////////////////////////////////// Enum operators /////////////////////////////////////// + +/** + +Provides compatibility operators for both classical and C++11 enum classes, +as well as exposing the C++11 enum class members for backwards compatibility + +@code + // Provides operators required for flag enums + CV_ENUM_FLAGS(AccessFlag) + + // Exposes the listed members of the enum class AccessFlag to the current namespace + CV_ENUM_CLASS_EXPOSE(AccessFlag, ACCESS_READ [, ACCESS_WRITE [, ...] ]); +@endcode +*/ + +#define __CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST) \ +static const EnumType MEMBER_CONST = EnumType::MEMBER_CONST; \ + +#define __CV_ENUM_CLASS_EXPOSE_2(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_1(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_3(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_2(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_4(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_3(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_5(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_4(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_6(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_5(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_7(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_6(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_8(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_7(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_CLASS_EXPOSE_9(EnumType, MEMBER_CONST, ...) \ +__CV_ENUM_CLASS_EXPOSE_1(EnumType, MEMBER_CONST); \ +__CV_EXPAND(__CV_ENUM_CLASS_EXPOSE_8(EnumType, __VA_ARGS__)); \ + +#define __CV_ENUM_FLAGS_LOGICAL_NOT(EnumType) \ +static inline bool operator!(const EnumType& val) \ +{ \ + typedef std::underlying_type::type UnderlyingType; \ + return !static_cast(val); \ +} \ + +#define __CV_ENUM_FLAGS_LOGICAL_NOT_EQ(Arg1Type, Arg2Type) \ +static inline bool operator!=(const Arg1Type& a, const Arg2Type& b) \ +{ \ + return static_cast(a) != static_cast(b); \ +} \ + +#define __CV_ENUM_FLAGS_LOGICAL_EQ(Arg1Type, Arg2Type) \ +static inline bool operator==(const Arg1Type& a, const Arg2Type& b) \ +{ \ + return static_cast(a) == static_cast(b); \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_NOT(EnumType) \ +static inline EnumType operator~(const EnumType& val) \ +{ \ + typedef std::underlying_type::type UnderlyingType; \ + return static_cast(~static_cast(val)); \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_OR(EnumType, Arg1Type, Arg2Type) \ +static inline EnumType operator|(const Arg1Type& a, const Arg2Type& b) \ +{ \ + typedef std::underlying_type::type UnderlyingType; \ + return static_cast(static_cast(a) | static_cast(b)); \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_AND(EnumType, Arg1Type, Arg2Type) \ +static inline EnumType operator&(const Arg1Type& a, const Arg2Type& b) \ +{ \ + typedef std::underlying_type::type UnderlyingType; \ + return static_cast(static_cast(a) & static_cast(b)); \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_XOR(EnumType, Arg1Type, Arg2Type) \ +static inline EnumType operator^(const Arg1Type& a, const Arg2Type& b) \ +{ \ + typedef std::underlying_type::type UnderlyingType; \ + return static_cast(static_cast(a) ^ static_cast(b)); \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_OR_EQ(EnumType, Arg1Type) \ +static inline EnumType& operator|=(EnumType& _this, const Arg1Type& val) \ +{ \ + _this = static_cast(static_cast(_this) | static_cast(val)); \ + return _this; \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_AND_EQ(EnumType, Arg1Type) \ +static inline EnumType& operator&=(EnumType& _this, const Arg1Type& val) \ +{ \ + _this = static_cast(static_cast(_this) & static_cast(val)); \ + return _this; \ +} \ + +#define __CV_ENUM_FLAGS_BITWISE_XOR_EQ(EnumType, Arg1Type) \ +static inline EnumType& operator^=(EnumType& _this, const Arg1Type& val) \ +{ \ + _this = static_cast(static_cast(_this) ^ static_cast(val)); \ + return _this; \ +} \ + +#define CV_ENUM_CLASS_EXPOSE(EnumType, ...) \ +__CV_EXPAND(__CV_CAT(__CV_ENUM_CLASS_EXPOSE_, __CV_VA_NUM_ARGS(__VA_ARGS__))(EnumType, __VA_ARGS__)); \ + +#define CV_ENUM_FLAGS(EnumType) \ +__CV_ENUM_FLAGS_LOGICAL_NOT (EnumType) \ +__CV_ENUM_FLAGS_LOGICAL_EQ (EnumType, int) \ +__CV_ENUM_FLAGS_LOGICAL_NOT_EQ (EnumType, int) \ + \ +__CV_ENUM_FLAGS_BITWISE_NOT (EnumType) \ +__CV_ENUM_FLAGS_BITWISE_OR (EnumType, EnumType, EnumType) \ +__CV_ENUM_FLAGS_BITWISE_AND (EnumType, EnumType, EnumType) \ +__CV_ENUM_FLAGS_BITWISE_XOR (EnumType, EnumType, EnumType) \ + \ +__CV_ENUM_FLAGS_BITWISE_OR_EQ (EnumType, EnumType) \ +__CV_ENUM_FLAGS_BITWISE_AND_EQ (EnumType, EnumType) \ +__CV_ENUM_FLAGS_BITWISE_XOR_EQ (EnumType, EnumType) \ + +/****************************************************************************************\ +* static analysys * +\****************************************************************************************/ + +// In practice, some macro are not processed correctly (noreturn is not detected). +// We need to use simplified definition for them. +#ifndef CV_STATIC_ANALYSIS +# if defined(__KLOCWORK__) || defined(__clang_analyzer__) || defined(__COVERITY__) +# define CV_STATIC_ANALYSIS 1 +# endif +#else +# if defined(CV_STATIC_ANALYSIS) && !(__CV_CAT(1, CV_STATIC_ANALYSIS) == 1) // defined and not empty +# if 0 == CV_STATIC_ANALYSIS +# undef CV_STATIC_ANALYSIS +# endif +# endif +#endif + +/****************************************************************************************\ +* Thread sanitizer * +\****************************************************************************************/ +#ifndef CV_THREAD_SANITIZER +# if defined(__has_feature) +# if __has_feature(thread_sanitizer) +# define CV_THREAD_SANITIZER +# endif +# endif +#endif + +/****************************************************************************************\ +* exchange-add operation for atomic operations on reference counters * +\****************************************************************************************/ + +#ifdef CV_XADD + // allow to use user-defined macro +#elif defined __GNUC__ || defined __clang__ +# if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__ && !defined __EMSCRIPTEN__ && !defined(__CUDACC__) && !defined __INTEL_COMPILER +# ifdef __ATOMIC_ACQ_REL +# define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL) +# else +# define CV_XADD(addr, delta) __atomic_fetch_add((_Atomic(int)*)(addr), delta, 4) +# endif +# else +# if defined __ATOMIC_ACQ_REL && !defined __clang__ + // version for gcc >= 4.7 +# define CV_XADD(addr, delta) (int)__atomic_fetch_add((unsigned*)(addr), (unsigned)(delta), __ATOMIC_ACQ_REL) +# else +# define CV_XADD(addr, delta) (int)__sync_fetch_and_add((unsigned*)(addr), (unsigned)(delta)) +# endif +# endif +#elif defined _MSC_VER && !defined RC_INVOKED +# include +# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd((long volatile*)addr, delta) +#else + CV_INLINE CV_XADD(int* addr, int delta) { int tmp = *addr; *addr += delta; return tmp; } +#endif + + +/****************************************************************************************\ +* CV_NORETURN attribute * +\****************************************************************************************/ + +#ifndef CV_NORETURN +# if defined(__GNUC__) +# define CV_NORETURN __attribute__((__noreturn__)) +# elif defined(_MSC_VER) && (_MSC_VER >= 1300) +# define CV_NORETURN __declspec(noreturn) +# else +# define CV_NORETURN /* nothing by default */ +# endif +#endif + + +/****************************************************************************************\ +* CV_NODISCARD attribute * +* encourages the compiler to issue a warning if the return value is discarded (C++17) * +\****************************************************************************************/ +#ifndef CV_NODISCARD +# if defined(__GNUC__) +# define CV_NODISCARD __attribute__((__warn_unused_result__)) // at least available with GCC 3.4 +# elif defined(__clang__) && defined(__has_attribute) +# if __has_attribute(__warn_unused_result__) +# define CV_NODISCARD __attribute__((__warn_unused_result__)) +# endif +# endif +#endif +#ifndef CV_NODISCARD +# define CV_NODISCARD /* nothing by default */ +#endif + + +/****************************************************************************************\ +* C++ 11 * +\****************************************************************************************/ +#ifndef CV_CXX11 +# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800) +# define CV_CXX11 1 +# endif +#else +# if CV_CXX11 == 0 +# undef CV_CXX11 +# endif +#endif +#ifndef CV_CXX11 +# error "OpenCV 4.x+ requires enabled C++11 support" +#endif + +#define CV_CXX_MOVE_SEMANTICS 1 +#define CV_CXX_STD_ARRAY 1 +#include +#ifndef CV_OVERRIDE +# define CV_OVERRIDE override +#endif +#ifndef CV_FINAL +# define CV_FINAL final +#endif + +#ifndef CV_NOEXCEPT +# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/) +# define CV_NOEXCEPT noexcept +# endif +#endif +#ifndef CV_NOEXCEPT +# define CV_NOEXCEPT +#endif + +#ifndef CV_CONSTEXPR +# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/) +# define CV_CONSTEXPR constexpr +# endif +#endif +#ifndef CV_CONSTEXPR +# define CV_CONSTEXPR +#endif + +// Integer types portatibility +#ifdef OPENCV_STDINT_HEADER +#include OPENCV_STDINT_HEADER +#elif defined(__cplusplus) +#if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */ +namespace cv { +typedef signed char int8_t; +typedef unsigned char uint8_t; +typedef signed short int16_t; +typedef unsigned short uint16_t; +typedef signed int int32_t; +typedef unsigned int uint32_t; +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; +} +#elif defined(_MSC_VER) || __cplusplus >= 201103L +#include +namespace cv { +using std::int8_t; +using std::uint8_t; +using std::int16_t; +using std::uint16_t; +using std::int32_t; +using std::uint32_t; +using std::int64_t; +using std::uint64_t; +} +#else +#include +namespace cv { +typedef ::int8_t int8_t; +typedef ::uint8_t uint8_t; +typedef ::int16_t int16_t; +typedef ::uint16_t uint16_t; +typedef ::int32_t int32_t; +typedef ::uint32_t uint32_t; +typedef ::int64_t int64_t; +typedef ::uint64_t uint64_t; +} +#endif +#else // pure C +#include +#endif + +#ifdef __cplusplus +namespace cv +{ + +class float16_t +{ +public: +#if CV_FP16_TYPE + + float16_t() : h(0) {} + explicit float16_t(float x) { h = (__fp16)x; } + operator float() const { return (float)h; } + static float16_t fromBits(ushort w) + { + Cv16suf u; + u.u = w; + float16_t result; + result.h = u.h; + return result; + } + static float16_t zero() + { + float16_t result; + result.h = (__fp16)0; + return result; + } + ushort bits() const + { + Cv16suf u; + u.h = h; + return u.u; + } +protected: + __fp16 h; + +#else + float16_t() : w(0) {} + explicit float16_t(float x) + { + #if CV_AVX2 + __m128 v = _mm_load_ss(&x); + w = (ushort)_mm_cvtsi128_si32(_mm_cvtps_ph(v, 0)); + #else + Cv32suf in; + in.f = x; + unsigned sign = in.u & 0x80000000; + in.u ^= sign; + + if( in.u >= 0x47800000 ) + w = (ushort)(in.u > 0x7f800000 ? 0x7e00 : 0x7c00); + else + { + if (in.u < 0x38800000) + { + in.f += 0.5f; + w = (ushort)(in.u - 0x3f000000); + } + else + { + unsigned t = in.u + 0xc8000fff; + w = (ushort)((t + ((in.u >> 13) & 1)) >> 13); + } + } + + w = (ushort)(w | (sign >> 16)); + #endif + } + + operator float() const + { + #if CV_AVX2 + float f; + _mm_store_ss(&f, _mm_cvtph_ps(_mm_cvtsi32_si128(w))); + return f; + #else + Cv32suf out; + + unsigned t = ((w & 0x7fff) << 13) + 0x38000000; + unsigned sign = (w & 0x8000) << 16; + unsigned e = w & 0x7c00; + + out.u = t + (1 << 23); + out.u = (e >= 0x7c00 ? t + 0x38000000 : + e == 0 ? (static_cast(out.f -= 6.103515625e-05f), out.u) : t) | sign; + return out.f; + #endif + } + + static float16_t fromBits(ushort b) + { + float16_t result; + result.w = b; + return result; + } + static float16_t zero() + { + float16_t result; + result.w = (ushort)0; + return result; + } + ushort bits() const { return w; } +protected: + ushort w; + +#endif +}; + +} +#endif + +//! @} + +#ifndef __cplusplus +#include "opencv2/core/fast_math.hpp" // define cvRound(double) +#endif + +#endif // OPENCV_CORE_CVDEF_H diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cvstd.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cvstd.hpp new file mode 100644 index 000000000..6ce9e4b06 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cvstd.hpp @@ -0,0 +1,190 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_CVSTD_HPP +#define OPENCV_CORE_CVSTD_HPP + +#ifndef __cplusplus +# error cvstd.hpp header must be compiled as C++ +#endif + +#include "opencv2/core/cvdef.h" +#include +#include +#include + +#include + +// import useful primitives from stl +# include +# include +# include //for abs(int) +# include + +namespace cv +{ + static inline uchar abs(uchar a) { return a; } + static inline ushort abs(ushort a) { return a; } + static inline unsigned abs(unsigned a) { return a; } + static inline uint64 abs(uint64 a) { return a; } + + using std::min; + using std::max; + using std::abs; + using std::swap; + using std::sqrt; + using std::exp; + using std::pow; + using std::log; +} + +#include "cvstd_wrapper.hpp" + +namespace cv { + +//! @addtogroup core_utils +//! @{ + +//////////////////////////// memory management functions //////////////////////////// + +/** @brief Allocates an aligned memory buffer. + +The function allocates the buffer of the specified size and returns it. When the buffer size is 16 +bytes or more, the returned buffer is aligned to 16 bytes. +@param bufSize Allocated buffer size. + */ +CV_EXPORTS void* fastMalloc(size_t bufSize); + +/** @brief Deallocates a memory buffer. + +The function deallocates the buffer allocated with fastMalloc . If NULL pointer is passed, the +function does nothing. C version of the function clears the pointer *pptr* to avoid problems with +double memory deallocation. +@param ptr Pointer to the allocated buffer. + */ +CV_EXPORTS void fastFree(void* ptr); + +/*! + The STL-compliant memory Allocator based on cv::fastMalloc() and cv::fastFree() +*/ +template class Allocator +{ +public: + typedef _Tp value_type; + typedef value_type* pointer; + typedef const value_type* const_pointer; + typedef value_type& reference; + typedef const value_type& const_reference; + typedef size_t size_type; + typedef ptrdiff_t difference_type; + template class rebind { typedef Allocator other; }; + + explicit Allocator() {} + ~Allocator() {} + explicit Allocator(Allocator const&) {} + template + explicit Allocator(Allocator const&) {} + + // address + pointer address(reference r) { return &r; } + const_pointer address(const_reference r) { return &r; } + + pointer allocate(size_type count, const void* =0) { return reinterpret_cast(fastMalloc(count * sizeof (_Tp))); } + void deallocate(pointer p, size_type) { fastFree(p); } + + void construct(pointer p, const _Tp& v) { new(static_cast(p)) _Tp(v); } + void destroy(pointer p) { p->~_Tp(); } + + size_type max_size() const { return cv::max(static_cast<_Tp>(-1)/sizeof(_Tp), 1); } +}; + +//! @} core_utils + +//! @endcond + +//! @addtogroup core_basic +//! @{ + +//////////////////////////////// string class //////////////////////////////// + +class CV_EXPORTS FileNode; //for string constructor from FileNode + +typedef std::string String; + +#ifndef OPENCV_DISABLE_STRING_LOWER_UPPER_CONVERSIONS + +//! @cond IGNORED +namespace details { +// std::tolower is int->int +static inline char char_tolower(char ch) +{ + return (char)std::tolower((int)ch); +} +// std::toupper is int->int +static inline char char_toupper(char ch) +{ + return (char)std::toupper((int)ch); +} +} // namespace details +//! @endcond + +static inline std::string toLowerCase(const std::string& str) +{ + std::string result(str); + std::transform(result.begin(), result.end(), result.begin(), details::char_tolower); + return result; +} + +static inline std::string toUpperCase(const std::string& str) +{ + std::string result(str); + std::transform(result.begin(), result.end(), result.begin(), details::char_toupper); + return result; +} + +#endif // OPENCV_DISABLE_STRING_LOWER_UPPER_CONVERSIONS + +//! @} core_basic +} // cv + +#endif //OPENCV_CORE_CVSTD_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvstd.inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cvstd.inl.hpp similarity index 75% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/cvstd.inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/cvstd.inl.hpp index 85230f595..f158c3b46 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvstd.inl.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cvstd.inl.hpp @@ -73,95 +73,6 @@ template class DataType< std::complex<_Tp> > typedef Vec vec_type; }; -inline -String::String(const std::string& str) - : cstr_(0), len_(0) -{ - if (!str.empty()) - { - size_t len = str.size(); - if (len) memcpy(allocate(len), str.c_str(), len); - } -} - -inline -String::String(const std::string& str, size_t pos, size_t len) - : cstr_(0), len_(0) -{ - size_t strlen = str.size(); - pos = min(pos, strlen); - len = min(strlen - pos, len); - if (!len) return; - memcpy(allocate(len), str.c_str() + pos, len); -} - -inline -String& String::operator = (const std::string& str) -{ - deallocate(); - if (!str.empty()) - { - size_t len = str.size(); - if (len) memcpy(allocate(len), str.c_str(), len); - } - return *this; -} - -inline -String& String::operator += (const std::string& str) -{ - *this = *this + str; - return *this; -} - -inline -String::operator std::string() const -{ - return std::string(cstr_, len_); -} - -inline -String operator + (const String& lhs, const std::string& rhs) -{ - String s; - size_t rhslen = rhs.size(); - s.allocate(lhs.len_ + rhslen); - if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_); - if (rhslen) memcpy(s.cstr_ + lhs.len_, rhs.c_str(), rhslen); - return s; -} - -inline -String operator + (const std::string& lhs, const String& rhs) -{ - String s; - size_t lhslen = lhs.size(); - s.allocate(lhslen + rhs.len_); - if (lhslen) memcpy(s.cstr_, lhs.c_str(), lhslen); - if (rhs.len_) memcpy(s.cstr_ + lhslen, rhs.cstr_, rhs.len_); - return s; -} - -inline -FileNode::operator std::string() const -{ - String value; - read(*this, value, value); - return value; -} - -template<> inline -void operator >> (const FileNode& n, std::string& value) -{ - read(n, value, std::string()); -} - -template<> inline -FileStorage& operator << (FileStorage& fs, const std::string& value) -{ - return fs << cv::String(value); -} - static inline std::ostream& operator << (std::ostream& os, const String& str) { @@ -265,16 +176,21 @@ std::ostream& operator << (std::ostream& out, const Rect_<_Tp>& rect) static inline std::ostream& operator << (std::ostream& out, const MatSize& msize) { - int i, dims = msize.p[-1]; + int i, dims = msize.dims(); for( i = 0; i < dims; i++ ) { - out << msize.p[i]; + out << msize[i]; if( i < dims-1 ) out << " x "; } return out; } +static inline std::ostream &operator<< (std::ostream &s, cv::Range &r) +{ + return s << "[" << r.start << " : " << r.end << ")"; +} + } // cv #ifdef _MSC_VER diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/cvstd_wrapper.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/cvstd_wrapper.hpp new file mode 100644 index 000000000..027639bb0 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/cvstd_wrapper.hpp @@ -0,0 +1,149 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_CORE_CVSTD_WRAPPER_HPP +#define OPENCV_CORE_CVSTD_WRAPPER_HPP + +#include "opencv2/core/cvdef.h" + +#include +#include // std::shared_ptr +#include // std::enable_if + +namespace cv { + +using std::nullptr_t; + +//! @addtogroup core_basic +//! @{ + +#ifdef CV_DOXYGEN + +template using Ptr = std::shared_ptr<_Tp>; // In ideal world it should look like this, but we need some compatibility workarounds below + +template static inline +Ptr<_Tp> makePtr(const A1&... a1) { return std::make_shared<_Tp>(a1...); } + +#else // cv::Ptr with compatibility workarounds + +// It should be defined for C-API types only. +// C++ types should use regular "delete" operator. +template struct DefaultDeleter; +#if 0 +{ + void operator()(Y* p) const; +}; +#endif + +namespace sfinae { +template +struct has_parenthesis_operator +{ +private: + template + static CV_CONSTEXPR std::true_type check(typename std::is_same().operator()(std::declval()...))>::type, Ret>::type*); + + template static CV_CONSTEXPR std::false_type check(...); + + typedef decltype(check(0)) type; + +public: + static CV_CONSTEXPR bool value = type::value; +}; +} // namespace sfinae + +template +struct has_custom_delete + : public std::false_type {}; + +// Force has_custom_delete to std::false_type when NVCC is compiling CUDA source files +#ifndef __CUDACC__ +template +struct has_custom_delete, void, T*>::value >::type > + : public std::true_type {}; +#endif + +template +struct Ptr : public std::shared_ptr +{ +#if 0 + using std::shared_ptr::shared_ptr; // GCC 5.x can't handle this +#else + inline Ptr() CV_NOEXCEPT : std::shared_ptr() {} + inline Ptr(nullptr_t) CV_NOEXCEPT : std::shared_ptr(nullptr) {} + template inline Ptr(Y* p, D d) : std::shared_ptr(p, d) {} + template inline Ptr(nullptr_t, D d) : std::shared_ptr(nullptr, d) {} + + template inline Ptr(const Ptr& r, T* ptr) CV_NOEXCEPT : std::shared_ptr(r, ptr) {} + + inline Ptr(const Ptr& o) CV_NOEXCEPT : std::shared_ptr(o) {} + inline Ptr(Ptr&& o) CV_NOEXCEPT : std::shared_ptr(std::move(o)) {} + + template inline Ptr(const Ptr& o) CV_NOEXCEPT : std::shared_ptr(o) {} + template inline Ptr(Ptr&& o) CV_NOEXCEPT : std::shared_ptr(std::move(o)) {} +#endif + inline Ptr(const std::shared_ptr& o) CV_NOEXCEPT : std::shared_ptr(o) {} + inline Ptr(std::shared_ptr&& o) CV_NOEXCEPT : std::shared_ptr(std::move(o)) {} + + // Overload with custom DefaultDeleter: Ptr(...) + template + inline Ptr(const std::true_type&, Y* ptr) : std::shared_ptr(ptr, DefaultDeleter()) {} + + // Overload without custom deleter: Ptr(...); + template + inline Ptr(const std::false_type&, Y* ptr) : std::shared_ptr(ptr) {} + + template + inline Ptr(Y* ptr) : Ptr(has_custom_delete(), ptr) {} + + // Overload with custom DefaultDeleter: Ptr(...) + template + inline void reset(const std::true_type&, Y* ptr) { std::shared_ptr::reset(ptr, DefaultDeleter()); } + + // Overload without custom deleter: Ptr(...); + template + inline void reset(const std::false_type&, Y* ptr) { std::shared_ptr::reset(ptr); } + + template + inline void reset(Y* ptr) { Ptr::reset(has_custom_delete(), ptr); } + + template + void reset(Y* ptr, Deleter d) { std::shared_ptr::reset(ptr, d); } + + void reset() CV_NOEXCEPT { std::shared_ptr::reset(); } + + Ptr& operator=(const Ptr& o) { std::shared_ptr::operator =(o); return *this; } + template inline Ptr& operator=(const Ptr& o) { std::shared_ptr::operator =(o); return *this; } + + T* operator->() const CV_NOEXCEPT { return std::shared_ptr::get();} + typename std::add_lvalue_reference::type operator*() const CV_NOEXCEPT { return *std::shared_ptr::get(); } + + // OpenCV 3.x methods (not a part of standard C++ library) + inline void release() { std::shared_ptr::reset(); } + inline operator T* () const { return std::shared_ptr::get(); } + inline bool empty() const { return std::shared_ptr::get() == nullptr; } + + template inline + Ptr staticCast() const CV_NOEXCEPT { return std::static_pointer_cast(*this); } + + template inline + Ptr constCast() const CV_NOEXCEPT { return std::const_pointer_cast(*this); } + + template inline + Ptr dynamicCast() const CV_NOEXCEPT { return std::dynamic_pointer_cast(*this); } +}; + +template static inline +Ptr<_Tp> makePtr(const A1&... a1) +{ + static_assert( !has_custom_delete<_Tp>::value, "Can't use this makePtr with custom DefaultDeleter"); + return (Ptr<_Tp>)std::make_shared<_Tp>(a1...); +} + +#endif // CV_DOXYGEN + +//! @} core_basic +} // cv + +#endif //OPENCV_CORE_CVSTD_WRAPPER_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/directx.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/directx.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/directx.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/directx.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/eigen.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/eigen.hpp similarity index 99% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/eigen.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/eigen.hpp index c8603aca9..741648edb 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/eigen.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/eigen.hpp @@ -60,7 +60,7 @@ namespace cv //! @{ template static inline -void eigen2cv( const Eigen::Matrix<_Tp, _rows, _cols, _options, _maxRows, _maxCols>& src, Mat& dst ) +void eigen2cv( const Eigen::Matrix<_Tp, _rows, _cols, _options, _maxRows, _maxCols>& src, OutputArray dst ) { if( !(src.Flags & Eigen::RowMajorBit) ) { diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/fast_math.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/fast_math.hpp similarity index 95% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/fast_math.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/fast_math.hpp index 7858d4049..065879b5f 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/fast_math.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/fast_math.hpp @@ -70,16 +70,12 @@ # endif #endif -#ifdef HAVE_TEGRA_OPTIMIZATION -# include "tegra_round.hpp" -#endif - #if defined __GNUC__ && defined __arm__ && (defined __ARM_PCS_VFP || defined __ARM_VFPV3__ || defined __ARM_NEON__) && !defined __SOFTFP__ && !defined(__CUDACC__) // 1. general scheme #define ARM_ROUND(_value, _asm_string) \ int res; \ float temp; \ - (void)temp; \ + CV_UNUSED(temp); \ __asm__(_asm_string : [res] "=r" (res), [temp] "=w" (temp) : [value] "w" (_value)); \ return res // 2. version for double @@ -112,9 +108,6 @@ cvRound( double value ) fistp t; } return t; -#elif ((defined _MSC_VER && defined _M_ARM) || defined CV_ICC || \ - defined __GNUC__) && defined HAVE_TEGRA_OPTIMIZATION - TEGRA_ROUND_DBL(value); #elif defined CV_ICC || defined __GNUC__ # if defined ARM_ROUND_DBL ARM_ROUND_DBL(value); @@ -200,9 +193,6 @@ CV_INLINE int cvRound(float value) fistp t; } return t; -#elif ((defined _MSC_VER && defined _M_ARM) || defined CV_ICC || \ - defined __GNUC__) && defined HAVE_TEGRA_OPTIMIZATION - TEGRA_ROUND_FLT(value); #elif defined CV_ICC || defined __GNUC__ # if defined ARM_ROUND_FLT ARM_ROUND_FLT(value); diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/hal.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/hal.hpp new file mode 100644 index 000000000..0d68078d9 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/hal.hpp @@ -0,0 +1,256 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_HAL_HPP +#define OPENCV_HAL_HPP + +#include "opencv2/core/cvdef.h" +#include "opencv2/core/cvstd.hpp" +#include "opencv2/core/hal/interface.h" + +namespace cv { namespace hal { + +//! @addtogroup core_hal_functions +//! @{ + +CV_EXPORTS int normHamming(const uchar* a, int n); +CV_EXPORTS int normHamming(const uchar* a, const uchar* b, int n); + +CV_EXPORTS int normHamming(const uchar* a, int n, int cellSize); +CV_EXPORTS int normHamming(const uchar* a, const uchar* b, int n, int cellSize); + +CV_EXPORTS int LU32f(float* A, size_t astep, int m, float* b, size_t bstep, int n); +CV_EXPORTS int LU64f(double* A, size_t astep, int m, double* b, size_t bstep, int n); +CV_EXPORTS bool Cholesky32f(float* A, size_t astep, int m, float* b, size_t bstep, int n); +CV_EXPORTS bool Cholesky64f(double* A, size_t astep, int m, double* b, size_t bstep, int n); +CV_EXPORTS void SVD32f(float* At, size_t astep, float* W, float* U, size_t ustep, float* Vt, size_t vstep, int m, int n, int flags); +CV_EXPORTS void SVD64f(double* At, size_t astep, double* W, double* U, size_t ustep, double* Vt, size_t vstep, int m, int n, int flags); +CV_EXPORTS int QR32f(float* A, size_t astep, int m, int n, int k, float* b, size_t bstep, float* hFactors); +CV_EXPORTS int QR64f(double* A, size_t astep, int m, int n, int k, double* b, size_t bstep, double* hFactors); + +CV_EXPORTS void gemm32f(const float* src1, size_t src1_step, const float* src2, size_t src2_step, + float alpha, const float* src3, size_t src3_step, float beta, float* dst, size_t dst_step, + int m_a, int n_a, int n_d, int flags); +CV_EXPORTS void gemm64f(const double* src1, size_t src1_step, const double* src2, size_t src2_step, + double alpha, const double* src3, size_t src3_step, double beta, double* dst, size_t dst_step, + int m_a, int n_a, int n_d, int flags); +CV_EXPORTS void gemm32fc(const float* src1, size_t src1_step, const float* src2, size_t src2_step, + float alpha, const float* src3, size_t src3_step, float beta, float* dst, size_t dst_step, + int m_a, int n_a, int n_d, int flags); +CV_EXPORTS void gemm64fc(const double* src1, size_t src1_step, const double* src2, size_t src2_step, + double alpha, const double* src3, size_t src3_step, double beta, double* dst, size_t dst_step, + int m_a, int n_a, int n_d, int flags); + +CV_EXPORTS int normL1_(const uchar* a, const uchar* b, int n); +CV_EXPORTS float normL1_(const float* a, const float* b, int n); +CV_EXPORTS float normL2Sqr_(const float* a, const float* b, int n); + +CV_EXPORTS void exp32f(const float* src, float* dst, int n); +CV_EXPORTS void exp64f(const double* src, double* dst, int n); +CV_EXPORTS void log32f(const float* src, float* dst, int n); +CV_EXPORTS void log64f(const double* src, double* dst, int n); + +CV_EXPORTS void fastAtan32f(const float* y, const float* x, float* dst, int n, bool angleInDegrees); +CV_EXPORTS void fastAtan64f(const double* y, const double* x, double* dst, int n, bool angleInDegrees); +CV_EXPORTS void magnitude32f(const float* x, const float* y, float* dst, int n); +CV_EXPORTS void magnitude64f(const double* x, const double* y, double* dst, int n); +CV_EXPORTS void sqrt32f(const float* src, float* dst, int len); +CV_EXPORTS void sqrt64f(const double* src, double* dst, int len); +CV_EXPORTS void invSqrt32f(const float* src, float* dst, int len); +CV_EXPORTS void invSqrt64f(const double* src, double* dst, int len); + +CV_EXPORTS void split8u(const uchar* src, uchar** dst, int len, int cn ); +CV_EXPORTS void split16u(const ushort* src, ushort** dst, int len, int cn ); +CV_EXPORTS void split32s(const int* src, int** dst, int len, int cn ); +CV_EXPORTS void split64s(const int64* src, int64** dst, int len, int cn ); + +CV_EXPORTS void merge8u(const uchar** src, uchar* dst, int len, int cn ); +CV_EXPORTS void merge16u(const ushort** src, ushort* dst, int len, int cn ); +CV_EXPORTS void merge32s(const int** src, int* dst, int len, int cn ); +CV_EXPORTS void merge64s(const int64** src, int64* dst, int len, int cn ); + +CV_EXPORTS void add8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void add8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void add16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void add16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void add32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void add32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void add64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); + +CV_EXPORTS void sub8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void sub8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void sub16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void sub16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void sub32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void sub32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void sub64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); + +CV_EXPORTS void max8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void max8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void max16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void max16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void max32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void max32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void max64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); + +CV_EXPORTS void min8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void min8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void min16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void min16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void min32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void min32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void min64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); + +CV_EXPORTS void absdiff8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void absdiff8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void absdiff16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void absdiff16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void absdiff32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void absdiff32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void absdiff64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); + +CV_EXPORTS void and8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void or8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void xor8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); +CV_EXPORTS void not8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); + +CV_EXPORTS void cmp8u(const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); +CV_EXPORTS void cmp8s(const schar* src1, size_t step1, const schar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); +CV_EXPORTS void cmp16u(const ushort* src1, size_t step1, const ushort* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); +CV_EXPORTS void cmp16s(const short* src1, size_t step1, const short* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); +CV_EXPORTS void cmp32s(const int* src1, size_t step1, const int* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); +CV_EXPORTS void cmp32f(const float* src1, size_t step1, const float* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); +CV_EXPORTS void cmp64f(const double* src1, size_t step1, const double* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); + +CV_EXPORTS void mul8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void mul8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void mul16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void mul16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void mul32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void mul32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void mul64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scale); + +CV_EXPORTS void div8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void div8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void div16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void div16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void div32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void div32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void div64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scale); + +CV_EXPORTS void recip8u( const uchar *, size_t, const uchar * src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void recip8s( const schar *, size_t, const schar * src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void recip16u( const ushort *, size_t, const ushort * src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void recip16s( const short *, size_t, const short * src2, size_t step2, short* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void recip32s( const int *, size_t, const int * src2, size_t step2, int* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void recip32f( const float *, size_t, const float * src2, size_t step2, float* dst, size_t step, int width, int height, void* scale); +CV_EXPORTS void recip64f( const double *, size_t, const double * src2, size_t step2, double* dst, size_t step, int width, int height, void* scale); + +CV_EXPORTS void addWeighted8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _scalars ); +CV_EXPORTS void addWeighted8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scalars ); +CV_EXPORTS void addWeighted16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scalars ); +CV_EXPORTS void addWeighted16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scalars ); +CV_EXPORTS void addWeighted32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scalars ); +CV_EXPORTS void addWeighted32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scalars ); +CV_EXPORTS void addWeighted64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scalars ); + +CV_EXPORTS void cvt16f32f( const float16_t* src, float* dst, int len ); +CV_EXPORTS void cvt32f16f( const float* src, float16_t* dst, int len ); + +CV_EXPORTS void addRNGBias32f( float* arr, const float* scaleBiasPairs, int len ); +CV_EXPORTS void addRNGBias64f( double* arr, const double* scaleBiasPairs, int len ); + +struct CV_EXPORTS DFT1D +{ + static Ptr create(int len, int count, int depth, int flags, bool * useBuffer = 0); + virtual void apply(const uchar *src, uchar *dst) = 0; + virtual ~DFT1D() {} +}; + +struct CV_EXPORTS DFT2D +{ + static Ptr create(int width, int height, int depth, + int src_channels, int dst_channels, + int flags, int nonzero_rows = 0); + virtual void apply(const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step) = 0; + virtual ~DFT2D() {} +}; + +struct CV_EXPORTS DCT2D +{ + static Ptr create(int width, int height, int depth, int flags); + virtual void apply(const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step) = 0; + virtual ~DCT2D() {} +}; + +//! @} core_hal + +//============================================================================= +// for binary compatibility with 3.0 + +//! @cond IGNORED + +CV_EXPORTS int LU(float* A, size_t astep, int m, float* b, size_t bstep, int n); +CV_EXPORTS int LU(double* A, size_t astep, int m, double* b, size_t bstep, int n); +CV_EXPORTS bool Cholesky(float* A, size_t astep, int m, float* b, size_t bstep, int n); +CV_EXPORTS bool Cholesky(double* A, size_t astep, int m, double* b, size_t bstep, int n); + +CV_EXPORTS void exp(const float* src, float* dst, int n); +CV_EXPORTS void exp(const double* src, double* dst, int n); +CV_EXPORTS void log(const float* src, float* dst, int n); +CV_EXPORTS void log(const double* src, double* dst, int n); + +CV_EXPORTS void fastAtan2(const float* y, const float* x, float* dst, int n, bool angleInDegrees); +CV_EXPORTS void magnitude(const float* x, const float* y, float* dst, int n); +CV_EXPORTS void magnitude(const double* x, const double* y, double* dst, int n); +CV_EXPORTS void sqrt(const float* src, float* dst, int len); +CV_EXPORTS void sqrt(const double* src, double* dst, int len); +CV_EXPORTS void invSqrt(const float* src, float* dst, int len); +CV_EXPORTS void invSqrt(const double* src, double* dst, int len); + +//! @endcond + +}} //cv::hal + +#endif //OPENCV_HAL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/interface.h b/lib/3rdParty/OpenCV/include/opencv2/core/hal/interface.h new file mode 100644 index 000000000..6f0a83d35 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/interface.h @@ -0,0 +1,190 @@ +#ifndef OPENCV_CORE_HAL_INTERFACE_H +#define OPENCV_CORE_HAL_INTERFACE_H + +//! @addtogroup core_hal_interface +//! @{ + +//! @name Return codes +//! @{ +#define CV_HAL_ERROR_OK 0 +#define CV_HAL_ERROR_NOT_IMPLEMENTED 1 +#define CV_HAL_ERROR_UNKNOWN -1 +//! @} + +#ifdef __cplusplus +#include +#else +#include +#include +#endif + +//! @name Data types +//! primitive types +//! - schar - signed 1 byte integer +//! - uchar - unsigned 1 byte integer +//! - short - signed 2 byte integer +//! - ushort - unsigned 2 byte integer +//! - int - signed 4 byte integer +//! - uint - unsigned 4 byte integer +//! - int64 - signed 8 byte integer +//! - uint64 - unsigned 8 byte integer +//! @{ +#if !defined _MSC_VER && !defined __BORLANDC__ +# if defined __cplusplus && __cplusplus >= 201103L && !defined __APPLE__ +# include +# ifdef __NEWLIB__ + typedef unsigned int uint; +# else + typedef std::uint32_t uint; +# endif +# else +# include + typedef uint32_t uint; +# endif +#else + typedef unsigned uint; +#endif + +typedef signed char schar; + +#ifndef __IPL_H__ + typedef unsigned char uchar; + typedef unsigned short ushort; +#endif + +#if defined _MSC_VER || defined __BORLANDC__ + typedef __int64 int64; + typedef unsigned __int64 uint64; +# define CV_BIG_INT(n) n##I64 +# define CV_BIG_UINT(n) n##UI64 +#else + typedef int64_t int64; + typedef uint64_t uint64; +# define CV_BIG_INT(n) n##LL +# define CV_BIG_UINT(n) n##ULL +#endif + +#define CV_USRTYPE1 (void)"CV_USRTYPE1 support has been dropped in OpenCV 4.0" + +#define CV_CN_MAX 512 +#define CV_CN_SHIFT 3 +#define CV_DEPTH_MAX (1 << CV_CN_SHIFT) + +#define CV_8U 0 +#define CV_8S 1 +#define CV_16U 2 +#define CV_16S 3 +#define CV_32S 4 +#define CV_32F 5 +#define CV_64F 6 +#define CV_16F 7 + +#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1) +#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK) + +#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT)) +#define CV_MAKE_TYPE CV_MAKETYPE + +#define CV_8UC1 CV_MAKETYPE(CV_8U,1) +#define CV_8UC2 CV_MAKETYPE(CV_8U,2) +#define CV_8UC3 CV_MAKETYPE(CV_8U,3) +#define CV_8UC4 CV_MAKETYPE(CV_8U,4) +#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n)) + +#define CV_8SC1 CV_MAKETYPE(CV_8S,1) +#define CV_8SC2 CV_MAKETYPE(CV_8S,2) +#define CV_8SC3 CV_MAKETYPE(CV_8S,3) +#define CV_8SC4 CV_MAKETYPE(CV_8S,4) +#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n)) + +#define CV_16UC1 CV_MAKETYPE(CV_16U,1) +#define CV_16UC2 CV_MAKETYPE(CV_16U,2) +#define CV_16UC3 CV_MAKETYPE(CV_16U,3) +#define CV_16UC4 CV_MAKETYPE(CV_16U,4) +#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n)) + +#define CV_16SC1 CV_MAKETYPE(CV_16S,1) +#define CV_16SC2 CV_MAKETYPE(CV_16S,2) +#define CV_16SC3 CV_MAKETYPE(CV_16S,3) +#define CV_16SC4 CV_MAKETYPE(CV_16S,4) +#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n)) + +#define CV_32SC1 CV_MAKETYPE(CV_32S,1) +#define CV_32SC2 CV_MAKETYPE(CV_32S,2) +#define CV_32SC3 CV_MAKETYPE(CV_32S,3) +#define CV_32SC4 CV_MAKETYPE(CV_32S,4) +#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n)) + +#define CV_32FC1 CV_MAKETYPE(CV_32F,1) +#define CV_32FC2 CV_MAKETYPE(CV_32F,2) +#define CV_32FC3 CV_MAKETYPE(CV_32F,3) +#define CV_32FC4 CV_MAKETYPE(CV_32F,4) +#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n)) + +#define CV_64FC1 CV_MAKETYPE(CV_64F,1) +#define CV_64FC2 CV_MAKETYPE(CV_64F,2) +#define CV_64FC3 CV_MAKETYPE(CV_64F,3) +#define CV_64FC4 CV_MAKETYPE(CV_64F,4) +#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n)) + +#define CV_16FC1 CV_MAKETYPE(CV_16F,1) +#define CV_16FC2 CV_MAKETYPE(CV_16F,2) +#define CV_16FC3 CV_MAKETYPE(CV_16F,3) +#define CV_16FC4 CV_MAKETYPE(CV_16F,4) +#define CV_16FC(n) CV_MAKETYPE(CV_16F,(n)) +//! @} + +//! @name Comparison operation +//! @sa cv::CmpTypes +//! @{ +#define CV_HAL_CMP_EQ 0 +#define CV_HAL_CMP_GT 1 +#define CV_HAL_CMP_GE 2 +#define CV_HAL_CMP_LT 3 +#define CV_HAL_CMP_LE 4 +#define CV_HAL_CMP_NE 5 +//! @} + +//! @name Border processing modes +//! @sa cv::BorderTypes +//! @{ +#define CV_HAL_BORDER_CONSTANT 0 +#define CV_HAL_BORDER_REPLICATE 1 +#define CV_HAL_BORDER_REFLECT 2 +#define CV_HAL_BORDER_WRAP 3 +#define CV_HAL_BORDER_REFLECT_101 4 +#define CV_HAL_BORDER_TRANSPARENT 5 +#define CV_HAL_BORDER_ISOLATED 16 +//! @} + +//! @name DFT flags +//! @{ +#define CV_HAL_DFT_INVERSE 1 +#define CV_HAL_DFT_SCALE 2 +#define CV_HAL_DFT_ROWS 4 +#define CV_HAL_DFT_COMPLEX_OUTPUT 16 +#define CV_HAL_DFT_REAL_OUTPUT 32 +#define CV_HAL_DFT_TWO_STAGE 64 +#define CV_HAL_DFT_STAGE_COLS 128 +#define CV_HAL_DFT_IS_CONTINUOUS 512 +#define CV_HAL_DFT_IS_INPLACE 1024 +//! @} + +//! @name SVD flags +//! @{ +#define CV_HAL_SVD_NO_UV 1 +#define CV_HAL_SVD_SHORT_UV 2 +#define CV_HAL_SVD_MODIFY_A 4 +#define CV_HAL_SVD_FULL_UV 8 +//! @} + +//! @name Gemm flags +//! @{ +#define CV_HAL_GEMM_1_T 1 +#define CV_HAL_GEMM_2_T 2 +#define CV_HAL_GEMM_3_T 4 +//! @} + +//! @} + +#endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin.hpp new file mode 100644 index 000000000..460c5c590 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin.hpp @@ -0,0 +1,429 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_HAL_INTRIN_HPP +#define OPENCV_HAL_INTRIN_HPP + +#include +#include +#include +#include "opencv2/core/cvdef.h" + +#define OPENCV_HAL_ADD(a, b) ((a) + (b)) +#define OPENCV_HAL_AND(a, b) ((a) & (b)) +#define OPENCV_HAL_NOP(a) (a) +#define OPENCV_HAL_1ST(a, b) (a) + +// unlike HAL API, which is in cv::hal, +// we put intrinsics into cv namespace to make its +// access from within opencv code more accessible +namespace cv { + +namespace hal { + +enum StoreMode +{ + STORE_UNALIGNED = 0, + STORE_ALIGNED = 1, + STORE_ALIGNED_NOCACHE = 2 +}; + +} + +template struct V_TypeTraits +{ +}; + +#define CV_INTRIN_DEF_TYPE_TRAITS(type, int_type_, uint_type_, abs_type_, w_type_, q_type_, sum_type_, nlanes128_) \ + template<> struct V_TypeTraits \ + { \ + typedef type value_type; \ + typedef int_type_ int_type; \ + typedef abs_type_ abs_type; \ + typedef uint_type_ uint_type; \ + typedef w_type_ w_type; \ + typedef q_type_ q_type; \ + typedef sum_type_ sum_type; \ + enum { nlanes128 = nlanes128_ }; \ + \ + static inline int_type reinterpret_int(type x) \ + { \ + union { type l; int_type i; } v; \ + v.l = x; \ + return v.i; \ + } \ + \ + static inline type reinterpret_from_int(int_type x) \ + { \ + union { type l; int_type i; } v; \ + v.i = x; \ + return v.l; \ + } \ + } + +CV_INTRIN_DEF_TYPE_TRAITS(uchar, schar, uchar, uchar, ushort, unsigned, unsigned, 16); +CV_INTRIN_DEF_TYPE_TRAITS(schar, schar, uchar, uchar, short, int, int, 16); +CV_INTRIN_DEF_TYPE_TRAITS(ushort, short, ushort, ushort, unsigned, uint64, unsigned, 8); +CV_INTRIN_DEF_TYPE_TRAITS(short, short, ushort, ushort, int, int64, int, 8); +CV_INTRIN_DEF_TYPE_TRAITS(unsigned, int, unsigned, unsigned, uint64, void, unsigned, 4); +CV_INTRIN_DEF_TYPE_TRAITS(int, int, unsigned, unsigned, int64, void, int, 4); +CV_INTRIN_DEF_TYPE_TRAITS(float, int, unsigned, float, double, void, float, 4); +CV_INTRIN_DEF_TYPE_TRAITS(uint64, int64, uint64, uint64, void, void, uint64, 2); +CV_INTRIN_DEF_TYPE_TRAITS(int64, int64, uint64, uint64, void, void, int64, 2); +CV_INTRIN_DEF_TYPE_TRAITS(double, int64, uint64, double, void, void, double, 2); + +#ifndef CV_DOXYGEN + +#ifdef CV_CPU_DISPATCH_MODE + #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE __CV_CAT(hal_, CV_CPU_DISPATCH_MODE) + #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN namespace __CV_CAT(hal_, CV_CPU_DISPATCH_MODE) { + #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END } +#else + #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE hal_baseline + #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN namespace hal_baseline { + #define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END } +#endif + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END +using namespace CV_CPU_OPTIMIZATION_HAL_NAMESPACE; +#endif +} + +#ifdef CV_DOXYGEN +# undef CV_AVX2 +# undef CV_SSE2 +# undef CV_NEON +# undef CV_VSX +# undef CV_FP16 +#endif + +#if CV_SSE2 || CV_NEON || CV_VSX +#define CV__SIMD_FORWARD 128 +#include "opencv2/core/hal/intrin_forward.hpp" +#endif + +#if CV_SSE2 + +#include "opencv2/core/hal/intrin_sse_em.hpp" +#include "opencv2/core/hal/intrin_sse.hpp" + +#elif CV_NEON + +#include "opencv2/core/hal/intrin_neon.hpp" + +#elif CV_VSX + +#include "opencv2/core/hal/intrin_vsx.hpp" + +#else + +#define CV_SIMD128_CPP 1 +#include "opencv2/core/hal/intrin_cpp.hpp" + +#endif + +// AVX2 can be used together with SSE2, so +// we define those two sets of intrinsics at once. +// Most of the intrinsics do not conflict (the proper overloaded variant is +// resolved by the argument types, e.g. v_float32x4 ~ SSE2, v_float32x8 ~ AVX2), +// but some of AVX2 intrinsics get v256_ prefix instead of v_, e.g. v256_load() vs v_load(). +// Correspondingly, the wide intrinsics (which are mapped to the "widest" +// available instruction set) will get vx_ prefix +// (and will be mapped to v256_ counterparts) (e.g. vx_load() => v256_load()) +#if CV_AVX2 + +#define CV__SIMD_FORWARD 256 +#include "opencv2/core/hal/intrin_forward.hpp" +#include "opencv2/core/hal/intrin_avx.hpp" + +#endif + +//! @cond IGNORED + +namespace cv { + +#ifndef CV_DOXYGEN +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN +#endif + +#ifndef CV_SIMD128 +#define CV_SIMD128 0 +#endif + +#ifndef CV_SIMD128_64F +#define CV_SIMD128_64F 0 +#endif + +#ifndef CV_SIMD256 +#define CV_SIMD256 0 +#endif + +#ifndef CV_SIMD256_64F +#define CV_SIMD256_64F 0 +#endif + +#ifndef CV_SIMD512 +#define CV_SIMD512 0 +#endif + +#ifndef CV_SIMD512_64F +#define CV_SIMD512_64F 0 +#endif + +#ifndef CV_SIMD128_FP16 +#define CV_SIMD128_FP16 0 +#endif + +#ifndef CV_SIMD256_FP16 +#define CV_SIMD256_FP16 0 +#endif + +#ifndef CV_SIMD512_FP16 +#define CV_SIMD512_FP16 0 +#endif + +//================================================================================================== + +#define CV_INTRIN_DEFINE_WIDE_INTRIN(typ, vtyp, short_typ, prefix, loadsfx) \ + inline vtyp vx_setall_##short_typ(typ v) { return prefix##_setall_##short_typ(v); } \ + inline vtyp vx_setzero_##short_typ() { return prefix##_setzero_##short_typ(); } \ + inline vtyp vx_##loadsfx(const typ* ptr) { return prefix##_##loadsfx(ptr); } \ + inline vtyp vx_##loadsfx##_aligned(const typ* ptr) { return prefix##_##loadsfx##_aligned(ptr); } \ + inline vtyp vx_##loadsfx##_low(const typ* ptr) { return prefix##_##loadsfx##_low(ptr); } \ + inline vtyp vx_##loadsfx##_halves(const typ* ptr0, const typ* ptr1) { return prefix##_##loadsfx##_halves(ptr0, ptr1); } \ + inline void vx_store(typ* ptr, const vtyp& v) { return v_store(ptr, v); } \ + inline void vx_store_aligned(typ* ptr, const vtyp& v) { return v_store_aligned(ptr, v); } \ + inline vtyp vx_lut(const typ* ptr, const int* idx) { return prefix##_lut(ptr, idx); } \ + inline vtyp vx_lut_pairs(const typ* ptr, const int* idx) { return prefix##_lut_pairs(ptr, idx); } + +#define CV_INTRIN_DEFINE_WIDE_LUT_QUAD(typ, vtyp, prefix) \ + inline vtyp vx_lut_quads(const typ* ptr, const int* idx) { return prefix##_lut_quads(ptr, idx); } + +#define CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(typ, wtyp, prefix) \ + inline wtyp vx_load_expand(const typ* ptr) { return prefix##_load_expand(ptr); } + +#define CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND_Q(typ, qtyp, prefix) \ + inline qtyp vx_load_expand_q(const typ* ptr) { return prefix##_load_expand_q(ptr); } + +#define CV_INTRIN_DEFINE_WIDE_INTRIN_WITH_EXPAND(typ, vtyp, short_typ, wtyp, qtyp, prefix, loadsfx) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(typ, vtyp, short_typ, prefix, loadsfx) \ + CV_INTRIN_DEFINE_WIDE_LUT_QUAD(typ, vtyp, prefix) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(typ, wtyp, prefix) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND_Q(typ, qtyp, prefix) + +#define CV_INTRIN_DEFINE_WIDE_INTRIN_ALL_TYPES(prefix) \ + CV_INTRIN_DEFINE_WIDE_INTRIN_WITH_EXPAND(uchar, v_uint8, u8, v_uint16, v_uint32, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_INTRIN_WITH_EXPAND(schar, v_int8, s8, v_int16, v_int32, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(ushort, v_uint16, u16, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_LUT_QUAD(ushort, v_uint16, prefix) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(ushort, v_uint32, prefix) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(short, v_int16, s16, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_LUT_QUAD(short, v_int16, prefix) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(short, v_int32, prefix) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(int, v_int32, s32, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_LUT_QUAD(int, v_int32, prefix) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(int, v_int64, prefix) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(unsigned, v_uint32, u32, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_LUT_QUAD(unsigned, v_uint32, prefix) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(unsigned, v_uint64, prefix) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(float, v_float32, f32, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_LUT_QUAD(float, v_float32, prefix) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(int64, v_int64, s64, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_INTRIN(uint64, v_uint64, u64, prefix, load) \ + CV_INTRIN_DEFINE_WIDE_LOAD_EXPAND(float16_t, v_float32, prefix) + +template struct V_RegTraits +{ +}; + +#define CV_DEF_REG_TRAITS(prefix, _reg, lane_type, suffix, _u_reg, _w_reg, _q_reg, _int_reg, _round_reg) \ + template<> struct V_RegTraits<_reg> \ + { \ + typedef _reg reg; \ + typedef _u_reg u_reg; \ + typedef _w_reg w_reg; \ + typedef _q_reg q_reg; \ + typedef _int_reg int_reg; \ + typedef _round_reg round_reg; \ + } + +#if CV_SIMD128 || CV_SIMD128_CPP + CV_DEF_REG_TRAITS(v, v_uint8x16, uchar, u8, v_uint8x16, v_uint16x8, v_uint32x4, v_int8x16, void); + CV_DEF_REG_TRAITS(v, v_int8x16, schar, s8, v_uint8x16, v_int16x8, v_int32x4, v_int8x16, void); + CV_DEF_REG_TRAITS(v, v_uint16x8, ushort, u16, v_uint16x8, v_uint32x4, v_uint64x2, v_int16x8, void); + CV_DEF_REG_TRAITS(v, v_int16x8, short, s16, v_uint16x8, v_int32x4, v_int64x2, v_int16x8, void); + CV_DEF_REG_TRAITS(v, v_uint32x4, unsigned, u32, v_uint32x4, v_uint64x2, void, v_int32x4, void); + CV_DEF_REG_TRAITS(v, v_int32x4, int, s32, v_uint32x4, v_int64x2, void, v_int32x4, void); +#if CV_SIMD128_64F + CV_DEF_REG_TRAITS(v, v_float32x4, float, f32, v_float32x4, v_float64x2, void, v_int32x4, v_int32x4); +#else + CV_DEF_REG_TRAITS(v, v_float32x4, float, f32, v_float32x4, void, void, v_int32x4, v_int32x4); +#endif + CV_DEF_REG_TRAITS(v, v_uint64x2, uint64, u64, v_uint64x2, void, void, v_int64x2, void); + CV_DEF_REG_TRAITS(v, v_int64x2, int64, s64, v_uint64x2, void, void, v_int64x2, void); +#if CV_SIMD128_64F + CV_DEF_REG_TRAITS(v, v_float64x2, double, f64, v_float64x2, void, void, v_int64x2, v_int32x4); +#endif +#endif + +#if CV_SIMD256 + CV_DEF_REG_TRAITS(v256, v_uint8x32, uchar, u8, v_uint8x32, v_uint16x16, v_uint32x8, v_int8x32, void); + CV_DEF_REG_TRAITS(v256, v_int8x32, schar, s8, v_uint8x32, v_int16x16, v_int32x8, v_int8x32, void); + CV_DEF_REG_TRAITS(v256, v_uint16x16, ushort, u16, v_uint16x16, v_uint32x8, v_uint64x4, v_int16x16, void); + CV_DEF_REG_TRAITS(v256, v_int16x16, short, s16, v_uint16x16, v_int32x8, v_int64x4, v_int16x16, void); + CV_DEF_REG_TRAITS(v256, v_uint32x8, unsigned, u32, v_uint32x8, v_uint64x4, void, v_int32x8, void); + CV_DEF_REG_TRAITS(v256, v_int32x8, int, s32, v_uint32x8, v_int64x4, void, v_int32x8, void); + CV_DEF_REG_TRAITS(v256, v_float32x8, float, f32, v_float32x8, v_float64x4, void, v_int32x8, v_int32x8); + CV_DEF_REG_TRAITS(v256, v_uint64x4, uint64, u64, v_uint64x4, void, void, v_int64x4, void); + CV_DEF_REG_TRAITS(v256, v_int64x4, int64, s64, v_uint64x4, void, void, v_int64x4, void); + CV_DEF_REG_TRAITS(v256, v_float64x4, double, f64, v_float64x4, void, void, v_int64x4, v_int32x8); +#endif + +#if CV_SIMD512 && (!defined(CV__SIMD_FORCE_WIDTH) || CV__SIMD_FORCE_WIDTH == 512) +#define CV__SIMD_NAMESPACE simd512 +namespace CV__SIMD_NAMESPACE { + #define CV_SIMD 1 + #define CV_SIMD_64F CV_SIMD512_64F + #define CV_SIMD_WIDTH 64 + // TODO typedef v_uint8 / v_int32 / etc types here +} // namespace +using namespace CV__SIMD_NAMESPACE; +#elif CV_SIMD256 && (!defined(CV__SIMD_FORCE_WIDTH) || CV__SIMD_FORCE_WIDTH == 256) +#define CV__SIMD_NAMESPACE simd256 +namespace CV__SIMD_NAMESPACE { + #define CV_SIMD 1 + #define CV_SIMD_64F CV_SIMD256_64F + #define CV_SIMD_FP16 CV_SIMD256_FP16 + #define CV_SIMD_WIDTH 32 + typedef v_uint8x32 v_uint8; + typedef v_int8x32 v_int8; + typedef v_uint16x16 v_uint16; + typedef v_int16x16 v_int16; + typedef v_uint32x8 v_uint32; + typedef v_int32x8 v_int32; + typedef v_uint64x4 v_uint64; + typedef v_int64x4 v_int64; + typedef v_float32x8 v_float32; + CV_INTRIN_DEFINE_WIDE_INTRIN_ALL_TYPES(v256) + #if CV_SIMD256_64F + typedef v_float64x4 v_float64; + CV_INTRIN_DEFINE_WIDE_INTRIN(double, v_float64, f64, v256, load) + #endif + inline void vx_cleanup() { v256_cleanup(); } +} // namespace +using namespace CV__SIMD_NAMESPACE; +#elif (CV_SIMD128 || CV_SIMD128_CPP) && (!defined(CV__SIMD_FORCE_WIDTH) || CV__SIMD_FORCE_WIDTH == 128) +#define CV__SIMD_NAMESPACE simd128 +namespace CV__SIMD_NAMESPACE { + #define CV_SIMD CV_SIMD128 + #define CV_SIMD_64F CV_SIMD128_64F + #define CV_SIMD_WIDTH 16 + typedef v_uint8x16 v_uint8; + typedef v_int8x16 v_int8; + typedef v_uint16x8 v_uint16; + typedef v_int16x8 v_int16; + typedef v_uint32x4 v_uint32; + typedef v_int32x4 v_int32; + typedef v_uint64x2 v_uint64; + typedef v_int64x2 v_int64; + typedef v_float32x4 v_float32; + CV_INTRIN_DEFINE_WIDE_INTRIN_ALL_TYPES(v) + #if CV_SIMD128_64F + typedef v_float64x2 v_float64; + CV_INTRIN_DEFINE_WIDE_INTRIN(double, v_float64, f64, v, load) + #endif + inline void vx_cleanup() { v_cleanup(); } +} // namespace +using namespace CV__SIMD_NAMESPACE; +#endif + +inline unsigned int trailingZeros32(unsigned int value) { +#if defined(_MSC_VER) +#if (_MSC_VER < 1700) || defined(_M_ARM) + unsigned long index = 0; + _BitScanForward(&index, value); + return (unsigned int)index; +#elif defined(__clang__) + // clang-cl doesn't export _tzcnt_u32 for non BMI systems + return value ? __builtin_ctz(value) : 32; +#else + return _tzcnt_u32(value); +#endif +#elif defined(__GNUC__) || defined(__GNUG__) + return __builtin_ctz(value); +#elif defined(__ICC) || defined(__INTEL_COMPILER) + return _bit_scan_forward(value); +#elif defined(__clang__) + return llvm.cttz.i32(value, true); +#else + static const int MultiplyDeBruijnBitPosition[32] = { + 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 }; + return MultiplyDeBruijnBitPosition[((uint32_t)((value & -value) * 0x077CB531U)) >> 27]; +#endif +} + +#ifndef CV_DOXYGEN +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END +#endif + +#ifndef CV_SIMD_64F +#define CV_SIMD_64F 0 +#endif + +#ifndef CV_SIMD_FP16 +#define CV_SIMD_FP16 0 //!< Defined to 1 on native support of operations with float16x8_t / float16x16_t (SIMD256) types +#endif + + +#ifndef CV_SIMD +#define CV_SIMD 0 +#endif + +} // cv:: + +//! @endcond + +#endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_avx.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_avx.hpp new file mode 100644 index 000000000..58db71467 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_avx.hpp @@ -0,0 +1,2772 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#ifndef OPENCV_HAL_INTRIN_AVX_HPP +#define OPENCV_HAL_INTRIN_AVX_HPP + +#define CV_SIMD256 1 +#define CV_SIMD256_64F 1 +#define CV_SIMD256_FP16 0 // no native operations with FP16 type. Only load/store from float32x8 are available (if CV_FP16 == 1) + +namespace cv +{ + +//! @cond IGNORED + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN + +///////// Utils //////////// + +inline __m256i _v256_combine(const __m128i& lo, const __m128i& hi) +{ return _mm256_inserti128_si256(_mm256_castsi128_si256(lo), hi, 1); } + +inline __m256 _v256_combine(const __m128& lo, const __m128& hi) +{ return _mm256_insertf128_ps(_mm256_castps128_ps256(lo), hi, 1); } + +inline __m256d _v256_combine(const __m128d& lo, const __m128d& hi) +{ return _mm256_insertf128_pd(_mm256_castpd128_pd256(lo), hi, 1); } + +inline int _v_cvtsi256_si32(const __m256i& a) +{ return _mm_cvtsi128_si32(_mm256_castsi256_si128(a)); } + +inline __m256i _v256_shuffle_odd_64(const __m256i& v) +{ return _mm256_permute4x64_epi64(v, _MM_SHUFFLE(3, 1, 2, 0)); } + +inline __m256d _v256_shuffle_odd_64(const __m256d& v) +{ return _mm256_permute4x64_pd(v, _MM_SHUFFLE(3, 1, 2, 0)); } + +template +inline __m256i _v256_permute2x128(const __m256i& a, const __m256i& b) +{ return _mm256_permute2x128_si256(a, b, imm); } + +template +inline __m256 _v256_permute2x128(const __m256& a, const __m256& b) +{ return _mm256_permute2f128_ps(a, b, imm); } + +template +inline __m256d _v256_permute2x128(const __m256d& a, const __m256d& b) +{ return _mm256_permute2f128_pd(a, b, imm); } + +template +inline _Tpvec v256_permute2x128(const _Tpvec& a, const _Tpvec& b) +{ return _Tpvec(_v256_permute2x128(a.val, b.val)); } + +template +inline __m256i _v256_permute4x64(const __m256i& a) +{ return _mm256_permute4x64_epi64(a, imm); } + +template +inline __m256d _v256_permute4x64(const __m256d& a) +{ return _mm256_permute4x64_pd(a, imm); } + +template +inline _Tpvec v256_permute4x64(const _Tpvec& a) +{ return _Tpvec(_v256_permute4x64(a.val)); } + +inline __m128i _v256_extract_high(const __m256i& v) +{ return _mm256_extracti128_si256(v, 1); } + +inline __m128 _v256_extract_high(const __m256& v) +{ return _mm256_extractf128_ps(v, 1); } + +inline __m128d _v256_extract_high(const __m256d& v) +{ return _mm256_extractf128_pd(v, 1); } + +inline __m128i _v256_extract_low(const __m256i& v) +{ return _mm256_castsi256_si128(v); } + +inline __m128 _v256_extract_low(const __m256& v) +{ return _mm256_castps256_ps128(v); } + +inline __m128d _v256_extract_low(const __m256d& v) +{ return _mm256_castpd256_pd128(v); } + +inline __m256i _v256_packs_epu32(const __m256i& a, const __m256i& b) +{ + const __m256i m = _mm256_set1_epi32(65535); + __m256i am = _mm256_min_epu32(a, m); + __m256i bm = _mm256_min_epu32(b, m); + return _mm256_packus_epi32(am, bm); +} + +///////// Types //////////// + +struct v_uint8x32 +{ + typedef uchar lane_type; + enum { nlanes = 32 }; + __m256i val; + + explicit v_uint8x32(__m256i v) : val(v) {} + v_uint8x32(uchar v0, uchar v1, uchar v2, uchar v3, + uchar v4, uchar v5, uchar v6, uchar v7, + uchar v8, uchar v9, uchar v10, uchar v11, + uchar v12, uchar v13, uchar v14, uchar v15, + uchar v16, uchar v17, uchar v18, uchar v19, + uchar v20, uchar v21, uchar v22, uchar v23, + uchar v24, uchar v25, uchar v26, uchar v27, + uchar v28, uchar v29, uchar v30, uchar v31) + { + val = _mm256_setr_epi8((char)v0, (char)v1, (char)v2, (char)v3, + (char)v4, (char)v5, (char)v6 , (char)v7, (char)v8, (char)v9, + (char)v10, (char)v11, (char)v12, (char)v13, (char)v14, (char)v15, + (char)v16, (char)v17, (char)v18, (char)v19, (char)v20, (char)v21, + (char)v22, (char)v23, (char)v24, (char)v25, (char)v26, (char)v27, + (char)v28, (char)v29, (char)v30, (char)v31); + } + v_uint8x32() : val(_mm256_setzero_si256()) {} + uchar get0() const { return (uchar)_v_cvtsi256_si32(val); } +}; + +struct v_int8x32 +{ + typedef schar lane_type; + enum { nlanes = 32 }; + __m256i val; + + explicit v_int8x32(__m256i v) : val(v) {} + v_int8x32(schar v0, schar v1, schar v2, schar v3, + schar v4, schar v5, schar v6, schar v7, + schar v8, schar v9, schar v10, schar v11, + schar v12, schar v13, schar v14, schar v15, + schar v16, schar v17, schar v18, schar v19, + schar v20, schar v21, schar v22, schar v23, + schar v24, schar v25, schar v26, schar v27, + schar v28, schar v29, schar v30, schar v31) + { + val = _mm256_setr_epi8(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, + v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, + v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31); + } + v_int8x32() : val(_mm256_setzero_si256()) {} + schar get0() const { return (schar)_v_cvtsi256_si32(val); } +}; + +struct v_uint16x16 +{ + typedef ushort lane_type; + enum { nlanes = 16 }; + __m256i val; + + explicit v_uint16x16(__m256i v) : val(v) {} + v_uint16x16(ushort v0, ushort v1, ushort v2, ushort v3, + ushort v4, ushort v5, ushort v6, ushort v7, + ushort v8, ushort v9, ushort v10, ushort v11, + ushort v12, ushort v13, ushort v14, ushort v15) + { + val = _mm256_setr_epi16((short)v0, (short)v1, (short)v2, (short)v3, + (short)v4, (short)v5, (short)v6, (short)v7, (short)v8, (short)v9, + (short)v10, (short)v11, (short)v12, (short)v13, (short)v14, (short)v15); + } + v_uint16x16() : val(_mm256_setzero_si256()) {} + ushort get0() const { return (ushort)_v_cvtsi256_si32(val); } +}; + +struct v_int16x16 +{ + typedef short lane_type; + enum { nlanes = 16 }; + __m256i val; + + explicit v_int16x16(__m256i v) : val(v) {} + v_int16x16(short v0, short v1, short v2, short v3, + short v4, short v5, short v6, short v7, + short v8, short v9, short v10, short v11, + short v12, short v13, short v14, short v15) + { + val = _mm256_setr_epi16(v0, v1, v2, v3, v4, v5, v6, v7, + v8, v9, v10, v11, v12, v13, v14, v15); + } + v_int16x16() : val(_mm256_setzero_si256()) {} + short get0() const { return (short)_v_cvtsi256_si32(val); } +}; + +struct v_uint32x8 +{ + typedef unsigned lane_type; + enum { nlanes = 8 }; + __m256i val; + + explicit v_uint32x8(__m256i v) : val(v) {} + v_uint32x8(unsigned v0, unsigned v1, unsigned v2, unsigned v3, + unsigned v4, unsigned v5, unsigned v6, unsigned v7) + { + val = _mm256_setr_epi32((unsigned)v0, (unsigned)v1, (unsigned)v2, + (unsigned)v3, (unsigned)v4, (unsigned)v5, (unsigned)v6, (unsigned)v7); + } + v_uint32x8() : val(_mm256_setzero_si256()) {} + unsigned get0() const { return (unsigned)_v_cvtsi256_si32(val); } +}; + +struct v_int32x8 +{ + typedef int lane_type; + enum { nlanes = 8 }; + __m256i val; + + explicit v_int32x8(__m256i v) : val(v) {} + v_int32x8(int v0, int v1, int v2, int v3, + int v4, int v5, int v6, int v7) + { + val = _mm256_setr_epi32(v0, v1, v2, v3, v4, v5, v6, v7); + } + v_int32x8() : val(_mm256_setzero_si256()) {} + int get0() const { return _v_cvtsi256_si32(val); } +}; + +struct v_float32x8 +{ + typedef float lane_type; + enum { nlanes = 8 }; + __m256 val; + + explicit v_float32x8(__m256 v) : val(v) {} + v_float32x8(float v0, float v1, float v2, float v3, + float v4, float v5, float v6, float v7) + { + val = _mm256_setr_ps(v0, v1, v2, v3, v4, v5, v6, v7); + } + v_float32x8() : val(_mm256_setzero_ps()) {} + float get0() const { return _mm_cvtss_f32(_mm256_castps256_ps128(val)); } +}; + +struct v_uint64x4 +{ + typedef uint64 lane_type; + enum { nlanes = 4 }; + __m256i val; + + explicit v_uint64x4(__m256i v) : val(v) {} + v_uint64x4(uint64 v0, uint64 v1, uint64 v2, uint64 v3) + { val = _mm256_setr_epi64x((int64)v0, (int64)v1, (int64)v2, (int64)v3); } + v_uint64x4() : val(_mm256_setzero_si256()) {} + uint64 get0() const + { + #if defined __x86_64__ || defined _M_X64 + return (uint64)_mm_cvtsi128_si64(_mm256_castsi256_si128(val)); + #else + int a = _mm_cvtsi128_si32(_mm256_castsi256_si128(val)); + int b = _mm_cvtsi128_si32(_mm256_castsi256_si128(_mm256_srli_epi64(val, 32))); + return (unsigned)a | ((uint64)(unsigned)b << 32); + #endif + } +}; + +struct v_int64x4 +{ + typedef int64 lane_type; + enum { nlanes = 4 }; + __m256i val; + + explicit v_int64x4(__m256i v) : val(v) {} + v_int64x4(int64 v0, int64 v1, int64 v2, int64 v3) + { val = _mm256_setr_epi64x(v0, v1, v2, v3); } + v_int64x4() : val(_mm256_setzero_si256()) {} + + int64 get0() const + { + #if defined __x86_64__ || defined _M_X64 + return (int64)_mm_cvtsi128_si64(_mm256_castsi256_si128(val)); + #else + int a = _mm_cvtsi128_si32(_mm256_castsi256_si128(val)); + int b = _mm_cvtsi128_si32(_mm256_castsi256_si128(_mm256_srli_epi64(val, 32))); + return (int64)((unsigned)a | ((uint64)(unsigned)b << 32)); + #endif + } +}; + +struct v_float64x4 +{ + typedef double lane_type; + enum { nlanes = 4 }; + __m256d val; + + explicit v_float64x4(__m256d v) : val(v) {} + v_float64x4(double v0, double v1, double v2, double v3) + { val = _mm256_setr_pd(v0, v1, v2, v3); } + v_float64x4() : val(_mm256_setzero_pd()) {} + double get0() const { return _mm_cvtsd_f64(_mm256_castpd256_pd128(val)); } +}; + +//////////////// Load and store operations /////////////// + +#define OPENCV_HAL_IMPL_AVX_LOADSTORE(_Tpvec, _Tp) \ + inline _Tpvec v256_load(const _Tp* ptr) \ + { return _Tpvec(_mm256_loadu_si256((const __m256i*)ptr)); } \ + inline _Tpvec v256_load_aligned(const _Tp* ptr) \ + { return _Tpvec(_mm256_load_si256((const __m256i*)ptr)); } \ + inline _Tpvec v256_load_low(const _Tp* ptr) \ + { \ + __m128i v128 = _mm_loadu_si128((const __m128i*)ptr); \ + return _Tpvec(_mm256_castsi128_si256(v128)); \ + } \ + inline _Tpvec v256_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ + { \ + __m128i vlo = _mm_loadu_si128((const __m128i*)ptr0); \ + __m128i vhi = _mm_loadu_si128((const __m128i*)ptr1); \ + return _Tpvec(_v256_combine(vlo, vhi)); \ + } \ + inline void v_store(_Tp* ptr, const _Tpvec& a) \ + { _mm256_storeu_si256((__m256i*)ptr, a.val); } \ + inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ + { _mm256_store_si256((__m256i*)ptr, a.val); } \ + inline void v_store_aligned_nocache(_Tp* ptr, const _Tpvec& a) \ + { _mm256_stream_si256((__m256i*)ptr, a.val); } \ + inline void v_store(_Tp* ptr, const _Tpvec& a, hal::StoreMode mode) \ + { \ + if( mode == hal::STORE_UNALIGNED ) \ + _mm256_storeu_si256((__m256i*)ptr, a.val); \ + else if( mode == hal::STORE_ALIGNED_NOCACHE ) \ + _mm256_stream_si256((__m256i*)ptr, a.val); \ + else \ + _mm256_store_si256((__m256i*)ptr, a.val); \ + } \ + inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ + { _mm_storeu_si128((__m128i*)ptr, _v256_extract_low(a.val)); } \ + inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ + { _mm_storeu_si128((__m128i*)ptr, _v256_extract_high(a.val)); } + +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_uint8x32, uchar) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_int8x32, schar) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_uint16x16, ushort) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_int16x16, short) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_uint32x8, unsigned) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_int32x8, int) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_uint64x4, uint64) +OPENCV_HAL_IMPL_AVX_LOADSTORE(v_int64x4, int64) + +#define OPENCV_HAL_IMPL_AVX_LOADSTORE_FLT(_Tpvec, _Tp, suffix, halfreg) \ + inline _Tpvec v256_load(const _Tp* ptr) \ + { return _Tpvec(_mm256_loadu_##suffix(ptr)); } \ + inline _Tpvec v256_load_aligned(const _Tp* ptr) \ + { return _Tpvec(_mm256_load_##suffix(ptr)); } \ + inline _Tpvec v256_load_low(const _Tp* ptr) \ + { \ + return _Tpvec(_mm256_cast##suffix##128_##suffix##256 \ + (_mm_loadu_##suffix(ptr))); \ + } \ + inline _Tpvec v256_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ + { \ + halfreg vlo = _mm_loadu_##suffix(ptr0); \ + halfreg vhi = _mm_loadu_##suffix(ptr1); \ + return _Tpvec(_v256_combine(vlo, vhi)); \ + } \ + inline void v_store(_Tp* ptr, const _Tpvec& a) \ + { _mm256_storeu_##suffix(ptr, a.val); } \ + inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ + { _mm256_store_##suffix(ptr, a.val); } \ + inline void v_store_aligned_nocache(_Tp* ptr, const _Tpvec& a) \ + { _mm256_stream_##suffix(ptr, a.val); } \ + inline void v_store(_Tp* ptr, const _Tpvec& a, hal::StoreMode mode) \ + { \ + if( mode == hal::STORE_UNALIGNED ) \ + _mm256_storeu_##suffix(ptr, a.val); \ + else if( mode == hal::STORE_ALIGNED_NOCACHE ) \ + _mm256_stream_##suffix(ptr, a.val); \ + else \ + _mm256_store_##suffix(ptr, a.val); \ + } \ + inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ + { _mm_storeu_##suffix(ptr, _v256_extract_low(a.val)); } \ + inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ + { _mm_storeu_##suffix(ptr, _v256_extract_high(a.val)); } + +OPENCV_HAL_IMPL_AVX_LOADSTORE_FLT(v_float32x8, float, ps, __m128) +OPENCV_HAL_IMPL_AVX_LOADSTORE_FLT(v_float64x4, double, pd, __m128d) + +#define OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, _Tpvecf, suffix, cast) \ + inline _Tpvec v_reinterpret_as_##suffix(const _Tpvecf& a) \ + { return _Tpvec(cast(a.val)); } + +#define OPENCV_HAL_IMPL_AVX_INIT(_Tpvec, _Tp, suffix, ssuffix, ctype_s) \ + inline _Tpvec v256_setzero_##suffix() \ + { return _Tpvec(_mm256_setzero_si256()); } \ + inline _Tpvec v256_setall_##suffix(_Tp v) \ + { return _Tpvec(_mm256_set1_##ssuffix((ctype_s)v)); } \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint8x32, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int8x32, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint16x16, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int16x16, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint32x8, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int32x8, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint64x4, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int64x4, suffix, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_float32x8, suffix, _mm256_castps_si256) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_float64x4, suffix, _mm256_castpd_si256) + +OPENCV_HAL_IMPL_AVX_INIT(v_uint8x32, uchar, u8, epi8, char) +OPENCV_HAL_IMPL_AVX_INIT(v_int8x32, schar, s8, epi8, char) +OPENCV_HAL_IMPL_AVX_INIT(v_uint16x16, ushort, u16, epi16, short) +OPENCV_HAL_IMPL_AVX_INIT(v_int16x16, short, s16, epi16, short) +OPENCV_HAL_IMPL_AVX_INIT(v_uint32x8, unsigned, u32, epi32, int) +OPENCV_HAL_IMPL_AVX_INIT(v_int32x8, int, s32, epi32, int) +OPENCV_HAL_IMPL_AVX_INIT(v_uint64x4, uint64, u64, epi64x, int64) +OPENCV_HAL_IMPL_AVX_INIT(v_int64x4, int64, s64, epi64x, int64) + +#define OPENCV_HAL_IMPL_AVX_INIT_FLT(_Tpvec, _Tp, suffix, zsuffix, cast) \ + inline _Tpvec v256_setzero_##suffix() \ + { return _Tpvec(_mm256_setzero_##zsuffix()); } \ + inline _Tpvec v256_setall_##suffix(_Tp v) \ + { return _Tpvec(_mm256_set1_##zsuffix(v)); } \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint8x32, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int8x32, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint16x16, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int16x16, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint32x8, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int32x8, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_uint64x4, suffix, cast) \ + OPENCV_HAL_IMPL_AVX_CAST(_Tpvec, v_int64x4, suffix, cast) + +OPENCV_HAL_IMPL_AVX_INIT_FLT(v_float32x8, float, f32, ps, _mm256_castsi256_ps) +OPENCV_HAL_IMPL_AVX_INIT_FLT(v_float64x4, double, f64, pd, _mm256_castsi256_pd) + +inline v_float32x8 v_reinterpret_as_f32(const v_float32x8& a) +{ return a; } +inline v_float32x8 v_reinterpret_as_f32(const v_float64x4& a) +{ return v_float32x8(_mm256_castpd_ps(a.val)); } + +inline v_float64x4 v_reinterpret_as_f64(const v_float64x4& a) +{ return a; } +inline v_float64x4 v_reinterpret_as_f64(const v_float32x8& a) +{ return v_float64x4(_mm256_castps_pd(a.val)); } + +#if CV_FP16 +inline v_float32x8 v256_load_fp16_f32(const short* ptr) +{ + return v_float32x8(_mm256_cvtph_ps(_mm_loadu_si128((const __m128i*)ptr))); +} + +inline void v_store_fp16(short* ptr, const v_float32x8& a) +{ + __m128i fp16_value = _mm256_cvtps_ph(a.val, 0); + _mm_store_si128((__m128i*)ptr, fp16_value); +} +#endif + +/* Recombine */ +/*#define OPENCV_HAL_IMPL_AVX_COMBINE(_Tpvec, perm) \ + inline _Tpvec v_combine_low(const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(perm(a.val, b.val, 0x20)); } \ + inline _Tpvec v_combine_high(const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(perm(a.val, b.val, 0x31)); } \ + inline void v_recombine(const _Tpvec& a, const _Tpvec& b, \ + _Tpvec& c, _Tpvec& d) \ + { c = v_combine_low(a, b); d = v_combine_high(a, b); } + +#define OPENCV_HAL_IMPL_AVX_UNPACKS(_Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_COMBINE(_Tpvec, _mm256_permute2x128_si256) \ + inline void v_zip(const _Tpvec& a0, const _Tpvec& a1, \ + _Tpvec& b0, _Tpvec& b1) \ + { \ + __m256i v0 = _v256_shuffle_odd_64(a0.val); \ + __m256i v1 = _v256_shuffle_odd_64(a1.val); \ + b0.val = _mm256_unpacklo_##suffix(v0, v1); \ + b1.val = _mm256_unpackhi_##suffix(v0, v1); \ + } + +OPENCV_HAL_IMPL_AVX_UNPACKS(v_uint8x32, epi8) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_int8x32, epi8) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_uint16x16, epi16) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_int16x16, epi16) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_uint32x8, epi32) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_int32x8, epi32) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_uint64x4, epi64) +OPENCV_HAL_IMPL_AVX_UNPACKS(v_int64x4, epi64) +OPENCV_HAL_IMPL_AVX_COMBINE(v_float32x8, _mm256_permute2f128_ps) +OPENCV_HAL_IMPL_AVX_COMBINE(v_float64x4, _mm256_permute2f128_pd) + +inline void v_zip(const v_float32x8& a0, const v_float32x8& a1, v_float32x8& b0, v_float32x8& b1) +{ + __m256 v0 = _mm256_unpacklo_ps(a0.val, a1.val); + __m256 v1 = _mm256_unpackhi_ps(a0.val, a1.val); + v_recombine(v_float32x8(v0), v_float32x8(v1), b0, b1); +} + +inline void v_zip(const v_float64x4& a0, const v_float64x4& a1, v_float64x4& b0, v_float64x4& b1) +{ + __m256d v0 = _v_shuffle_odd_64(a0.val); + __m256d v1 = _v_shuffle_odd_64(a1.val); + b0.val = _mm256_unpacklo_pd(v0, v1); + b1.val = _mm256_unpackhi_pd(v0, v1); +}*/ + +//////////////// Variant Value reordering /////////////// + +// unpacks +#define OPENCV_HAL_IMPL_AVX_UNPACK(_Tpvec, suffix) \ + inline _Tpvec v256_unpacklo(const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(_mm256_unpacklo_##suffix(a.val, b.val)); } \ + inline _Tpvec v256_unpackhi(const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(_mm256_unpackhi_##suffix(a.val, b.val)); } + +OPENCV_HAL_IMPL_AVX_UNPACK(v_uint8x32, epi8) +OPENCV_HAL_IMPL_AVX_UNPACK(v_int8x32, epi8) +OPENCV_HAL_IMPL_AVX_UNPACK(v_uint16x16, epi16) +OPENCV_HAL_IMPL_AVX_UNPACK(v_int16x16, epi16) +OPENCV_HAL_IMPL_AVX_UNPACK(v_uint32x8, epi32) +OPENCV_HAL_IMPL_AVX_UNPACK(v_int32x8, epi32) +OPENCV_HAL_IMPL_AVX_UNPACK(v_uint64x4, epi64) +OPENCV_HAL_IMPL_AVX_UNPACK(v_int64x4, epi64) +OPENCV_HAL_IMPL_AVX_UNPACK(v_float32x8, ps) +OPENCV_HAL_IMPL_AVX_UNPACK(v_float64x4, pd) + +// blend +#define OPENCV_HAL_IMPL_AVX_BLEND(_Tpvec, suffix) \ + template \ + inline _Tpvec v256_blend(const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(_mm256_blend_##suffix(a.val, b.val, m)); } + +OPENCV_HAL_IMPL_AVX_BLEND(v_uint16x16, epi16) +OPENCV_HAL_IMPL_AVX_BLEND(v_int16x16, epi16) +OPENCV_HAL_IMPL_AVX_BLEND(v_uint32x8, epi32) +OPENCV_HAL_IMPL_AVX_BLEND(v_int32x8, epi32) +OPENCV_HAL_IMPL_AVX_BLEND(v_float32x8, ps) +OPENCV_HAL_IMPL_AVX_BLEND(v_float64x4, pd) + +template +inline v_uint64x4 v256_blend(const v_uint64x4& a, const v_uint64x4& b) +{ + enum {M0 = m}; + enum {M1 = (M0 | (M0 << 2)) & 0x33}; + enum {M2 = (M1 | (M1 << 1)) & 0x55}; + enum {MM = M2 | (M2 << 1)}; + return v_uint64x4(_mm256_blend_epi32(a.val, b.val, MM)); +} +template +inline v_int64x4 v256_blend(const v_int64x4& a, const v_int64x4& b) +{ return v_int64x4(v256_blend(v_uint64x4(a.val), v_uint64x4(b.val)).val); } + +// shuffle +// todo: emluate 64bit +#define OPENCV_HAL_IMPL_AVX_SHUFFLE(_Tpvec, intrin) \ + template \ + inline _Tpvec v256_shuffle(const _Tpvec& a) \ + { return _Tpvec(_mm256_##intrin(a.val, m)); } + +OPENCV_HAL_IMPL_AVX_SHUFFLE(v_uint32x8, shuffle_epi32) +OPENCV_HAL_IMPL_AVX_SHUFFLE(v_int32x8, shuffle_epi32) +OPENCV_HAL_IMPL_AVX_SHUFFLE(v_float32x8, permute_ps) +OPENCV_HAL_IMPL_AVX_SHUFFLE(v_float64x4, permute_pd) + +template +inline void v256_zip(const _Tpvec& a, const _Tpvec& b, _Tpvec& ab0, _Tpvec& ab1) +{ + ab0 = v256_unpacklo(a, b); + ab1 = v256_unpackhi(a, b); +} + +template +inline _Tpvec v256_combine_diagonal(const _Tpvec& a, const _Tpvec& b) +{ return _Tpvec(_mm256_blend_epi32(a.val, b.val, 0xf0)); } + +inline v_float32x8 v256_combine_diagonal(const v_float32x8& a, const v_float32x8& b) +{ return v256_blend<0xf0>(a, b); } + +inline v_float64x4 v256_combine_diagonal(const v_float64x4& a, const v_float64x4& b) +{ return v256_blend<0xc>(a, b); } + +template +inline _Tpvec v256_alignr_128(const _Tpvec& a, const _Tpvec& b) +{ return v256_permute2x128<0x21>(a, b); } + +template +inline _Tpvec v256_alignr_64(const _Tpvec& a, const _Tpvec& b) +{ return _Tpvec(_mm256_alignr_epi8(a.val, b.val, 8)); } +inline v_float64x4 v256_alignr_64(const v_float64x4& a, const v_float64x4& b) +{ return v_float64x4(_mm256_shuffle_pd(b.val, a.val, _MM_SHUFFLE(0, 0, 1, 1))); } +// todo: emulate float32 + +template +inline _Tpvec v256_swap_halves(const _Tpvec& a) +{ return v256_permute2x128<1>(a, a); } + +template +inline _Tpvec v256_reverse_64(const _Tpvec& a) +{ return v256_permute4x64<_MM_SHUFFLE(0, 1, 2, 3)>(a); } + +// ZIP +#define OPENCV_HAL_IMPL_AVX_ZIP(_Tpvec) \ + inline _Tpvec v_combine_low(const _Tpvec& a, const _Tpvec& b) \ + { return v256_permute2x128<0x20>(a, b); } \ + inline _Tpvec v_combine_high(const _Tpvec& a, const _Tpvec& b) \ + { return v256_permute2x128<0x31>(a, b); } \ + inline void v_recombine(const _Tpvec& a, const _Tpvec& b, \ + _Tpvec& c, _Tpvec& d) \ + { \ + _Tpvec a1b0 = v256_alignr_128(a, b); \ + c = v256_combine_diagonal(a, a1b0); \ + d = v256_combine_diagonal(a1b0, b); \ + } \ + inline void v_zip(const _Tpvec& a, const _Tpvec& b, \ + _Tpvec& ab0, _Tpvec& ab1) \ + { \ + _Tpvec ab0ab2, ab1ab3; \ + v256_zip(a, b, ab0ab2, ab1ab3); \ + v_recombine(ab0ab2, ab1ab3, ab0, ab1); \ + } + +OPENCV_HAL_IMPL_AVX_ZIP(v_uint8x32) +OPENCV_HAL_IMPL_AVX_ZIP(v_int8x32) +OPENCV_HAL_IMPL_AVX_ZIP(v_uint16x16) +OPENCV_HAL_IMPL_AVX_ZIP(v_int16x16) +OPENCV_HAL_IMPL_AVX_ZIP(v_uint32x8) +OPENCV_HAL_IMPL_AVX_ZIP(v_int32x8) +OPENCV_HAL_IMPL_AVX_ZIP(v_uint64x4) +OPENCV_HAL_IMPL_AVX_ZIP(v_int64x4) +OPENCV_HAL_IMPL_AVX_ZIP(v_float32x8) +OPENCV_HAL_IMPL_AVX_ZIP(v_float64x4) + +////////// Arithmetic, bitwise and comparison operations ///////// + +/* Element-wise binary and unary operations */ + +/** Arithmetics **/ +#define OPENCV_HAL_IMPL_AVX_BIN_OP(bin_op, _Tpvec, intrin) \ + inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(intrin(a.val, b.val)); } \ + inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ + { a.val = intrin(a.val, b.val); return a; } + +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_uint8x32, _mm256_adds_epu8) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_uint8x32, _mm256_subs_epu8) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_int8x32, _mm256_adds_epi8) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_int8x32, _mm256_subs_epi8) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_uint16x16, _mm256_adds_epu16) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_uint16x16, _mm256_subs_epu16) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_int16x16, _mm256_adds_epi16) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_int16x16, _mm256_subs_epi16) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_uint32x8, _mm256_add_epi32) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_uint32x8, _mm256_sub_epi32) +OPENCV_HAL_IMPL_AVX_BIN_OP(*, v_uint32x8, _mm256_mullo_epi32) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_int32x8, _mm256_add_epi32) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_int32x8, _mm256_sub_epi32) +OPENCV_HAL_IMPL_AVX_BIN_OP(*, v_int32x8, _mm256_mullo_epi32) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_uint64x4, _mm256_add_epi64) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_uint64x4, _mm256_sub_epi64) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_int64x4, _mm256_add_epi64) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_int64x4, _mm256_sub_epi64) + +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_float32x8, _mm256_add_ps) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_float32x8, _mm256_sub_ps) +OPENCV_HAL_IMPL_AVX_BIN_OP(*, v_float32x8, _mm256_mul_ps) +OPENCV_HAL_IMPL_AVX_BIN_OP(/, v_float32x8, _mm256_div_ps) +OPENCV_HAL_IMPL_AVX_BIN_OP(+, v_float64x4, _mm256_add_pd) +OPENCV_HAL_IMPL_AVX_BIN_OP(-, v_float64x4, _mm256_sub_pd) +OPENCV_HAL_IMPL_AVX_BIN_OP(*, v_float64x4, _mm256_mul_pd) +OPENCV_HAL_IMPL_AVX_BIN_OP(/, v_float64x4, _mm256_div_pd) + +// saturating multiply 8-bit, 16-bit +inline v_uint8x32 operator * (const v_uint8x32& a, const v_uint8x32& b) +{ + v_uint16x16 c, d; + v_mul_expand(a, b, c, d); + return v_pack(c, d); +} +inline v_int8x32 operator * (const v_int8x32& a, const v_int8x32& b) +{ + v_int16x16 c, d; + v_mul_expand(a, b, c, d); + return v_pack(c, d); +} +inline v_uint16x16 operator * (const v_uint16x16& a, const v_uint16x16& b) +{ + __m256i pl = _mm256_mullo_epi16(a.val, b.val); + __m256i ph = _mm256_mulhi_epu16(a.val, b.val); + __m256i p0 = _mm256_unpacklo_epi16(pl, ph); + __m256i p1 = _mm256_unpackhi_epi16(pl, ph); + return v_uint16x16(_v256_packs_epu32(p0, p1)); +} +inline v_int16x16 operator * (const v_int16x16& a, const v_int16x16& b) +{ + __m256i pl = _mm256_mullo_epi16(a.val, b.val); + __m256i ph = _mm256_mulhi_epi16(a.val, b.val); + __m256i p0 = _mm256_unpacklo_epi16(pl, ph); + __m256i p1 = _mm256_unpackhi_epi16(pl, ph); + return v_int16x16(_mm256_packs_epi32(p0, p1)); +} +inline v_uint8x32& operator *= (v_uint8x32& a, const v_uint8x32& b) +{ a = a * b; return a; } +inline v_int8x32& operator *= (v_int8x32& a, const v_int8x32& b) +{ a = a * b; return a; } +inline v_uint16x16& operator *= (v_uint16x16& a, const v_uint16x16& b) +{ a = a * b; return a; } +inline v_int16x16& operator *= (v_int16x16& a, const v_int16x16& b) +{ a = a * b; return a; } + +/** Non-saturating arithmetics **/ +#define OPENCV_HAL_IMPL_AVX_BIN_FUNC(func, _Tpvec, intrin) \ + inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(intrin(a.val, b.val)); } + +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_add_wrap, v_uint8x32, _mm256_add_epi8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_add_wrap, v_int8x32, _mm256_add_epi8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_add_wrap, v_uint16x16, _mm256_add_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_add_wrap, v_int16x16, _mm256_add_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_sub_wrap, v_uint8x32, _mm256_sub_epi8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_sub_wrap, v_int8x32, _mm256_sub_epi8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_sub_wrap, v_uint16x16, _mm256_sub_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_sub_wrap, v_int16x16, _mm256_sub_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_mul_wrap, v_uint16x16, _mm256_mullo_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_mul_wrap, v_int16x16, _mm256_mullo_epi16) + +inline v_uint8x32 v_mul_wrap(const v_uint8x32& a, const v_uint8x32& b) +{ + __m256i ad = _mm256_srai_epi16(a.val, 8); + __m256i bd = _mm256_srai_epi16(b.val, 8); + __m256i p0 = _mm256_mullo_epi16(a.val, b.val); // even + __m256i p1 = _mm256_slli_epi16(_mm256_mullo_epi16(ad, bd), 8); // odd + + const __m256i b01 = _mm256_set1_epi32(0xFF00FF00); + return v_uint8x32(_mm256_blendv_epi8(p0, p1, b01)); +} +inline v_int8x32 v_mul_wrap(const v_int8x32& a, const v_int8x32& b) +{ + return v_reinterpret_as_s8(v_mul_wrap(v_reinterpret_as_u8(a), v_reinterpret_as_u8(b))); +} + +// Multiply and expand +inline void v_mul_expand(const v_uint8x32& a, const v_uint8x32& b, + v_uint16x16& c, v_uint16x16& d) +{ + v_uint16x16 a0, a1, b0, b1; + v_expand(a, a0, a1); + v_expand(b, b0, b1); + c = v_mul_wrap(a0, b0); + d = v_mul_wrap(a1, b1); +} + +inline void v_mul_expand(const v_int8x32& a, const v_int8x32& b, + v_int16x16& c, v_int16x16& d) +{ + v_int16x16 a0, a1, b0, b1; + v_expand(a, a0, a1); + v_expand(b, b0, b1); + c = v_mul_wrap(a0, b0); + d = v_mul_wrap(a1, b1); +} + +inline void v_mul_expand(const v_int16x16& a, const v_int16x16& b, + v_int32x8& c, v_int32x8& d) +{ + v_int16x16 vhi = v_int16x16(_mm256_mulhi_epi16(a.val, b.val)); + + v_int16x16 v0, v1; + v_zip(v_mul_wrap(a, b), vhi, v0, v1); + + c = v_reinterpret_as_s32(v0); + d = v_reinterpret_as_s32(v1); +} + +inline void v_mul_expand(const v_uint16x16& a, const v_uint16x16& b, + v_uint32x8& c, v_uint32x8& d) +{ + v_uint16x16 vhi = v_uint16x16(_mm256_mulhi_epu16(a.val, b.val)); + + v_uint16x16 v0, v1; + v_zip(v_mul_wrap(a, b), vhi, v0, v1); + + c = v_reinterpret_as_u32(v0); + d = v_reinterpret_as_u32(v1); +} + +inline void v_mul_expand(const v_uint32x8& a, const v_uint32x8& b, + v_uint64x4& c, v_uint64x4& d) +{ + __m256i v0 = _mm256_mul_epu32(a.val, b.val); + __m256i v1 = _mm256_mul_epu32(_mm256_srli_epi64(a.val, 32), _mm256_srli_epi64(b.val, 32)); + v_zip(v_uint64x4(v0), v_uint64x4(v1), c, d); +} + +inline v_int16x16 v_mul_hi(const v_int16x16& a, const v_int16x16& b) { return v_int16x16(_mm256_mulhi_epi16(a.val, b.val)); } +inline v_uint16x16 v_mul_hi(const v_uint16x16& a, const v_uint16x16& b) { return v_uint16x16(_mm256_mulhi_epu16(a.val, b.val)); } + +/** Bitwise shifts **/ +#define OPENCV_HAL_IMPL_AVX_SHIFT_OP(_Tpuvec, _Tpsvec, suffix, srai) \ + inline _Tpuvec operator << (const _Tpuvec& a, int imm) \ + { return _Tpuvec(_mm256_slli_##suffix(a.val, imm)); } \ + inline _Tpsvec operator << (const _Tpsvec& a, int imm) \ + { return _Tpsvec(_mm256_slli_##suffix(a.val, imm)); } \ + inline _Tpuvec operator >> (const _Tpuvec& a, int imm) \ + { return _Tpuvec(_mm256_srli_##suffix(a.val, imm)); } \ + inline _Tpsvec operator >> (const _Tpsvec& a, int imm) \ + { return _Tpsvec(srai(a.val, imm)); } \ + template \ + inline _Tpuvec v_shl(const _Tpuvec& a) \ + { return _Tpuvec(_mm256_slli_##suffix(a.val, imm)); } \ + template \ + inline _Tpsvec v_shl(const _Tpsvec& a) \ + { return _Tpsvec(_mm256_slli_##suffix(a.val, imm)); } \ + template \ + inline _Tpuvec v_shr(const _Tpuvec& a) \ + { return _Tpuvec(_mm256_srli_##suffix(a.val, imm)); } \ + template \ + inline _Tpsvec v_shr(const _Tpsvec& a) \ + { return _Tpsvec(srai(a.val, imm)); } + +OPENCV_HAL_IMPL_AVX_SHIFT_OP(v_uint16x16, v_int16x16, epi16, _mm256_srai_epi16) +OPENCV_HAL_IMPL_AVX_SHIFT_OP(v_uint32x8, v_int32x8, epi32, _mm256_srai_epi32) + +inline __m256i _mm256_srai_epi64xx(const __m256i a, int imm) +{ + __m256i d = _mm256_set1_epi64x((int64)1 << 63); + __m256i r = _mm256_srli_epi64(_mm256_add_epi64(a, d), imm); + return _mm256_sub_epi64(r, _mm256_srli_epi64(d, imm)); +} +OPENCV_HAL_IMPL_AVX_SHIFT_OP(v_uint64x4, v_int64x4, epi64, _mm256_srai_epi64xx) + + +/** Bitwise logic **/ +#define OPENCV_HAL_IMPL_AVX_LOGIC_OP(_Tpvec, suffix, not_const) \ + OPENCV_HAL_IMPL_AVX_BIN_OP(&, _Tpvec, _mm256_and_##suffix) \ + OPENCV_HAL_IMPL_AVX_BIN_OP(|, _Tpvec, _mm256_or_##suffix) \ + OPENCV_HAL_IMPL_AVX_BIN_OP(^, _Tpvec, _mm256_xor_##suffix) \ + inline _Tpvec operator ~ (const _Tpvec& a) \ + { return _Tpvec(_mm256_xor_##suffix(a.val, not_const)); } + +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_uint8x32, si256, _mm256_set1_epi32(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_int8x32, si256, _mm256_set1_epi32(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_uint16x16, si256, _mm256_set1_epi32(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_int16x16, si256, _mm256_set1_epi32(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_uint32x8, si256, _mm256_set1_epi32(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_int32x8, si256, _mm256_set1_epi32(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_uint64x4, si256, _mm256_set1_epi64x(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_int64x4, si256, _mm256_set1_epi64x(-1)) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_float32x8, ps, _mm256_castsi256_ps(_mm256_set1_epi32(-1))) +OPENCV_HAL_IMPL_AVX_LOGIC_OP(v_float64x4, pd, _mm256_castsi256_pd(_mm256_set1_epi32(-1))) + +/** Select **/ +#define OPENCV_HAL_IMPL_AVX_SELECT(_Tpvec, suffix) \ + inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(_mm256_blendv_##suffix(b.val, a.val, mask.val)); } + +OPENCV_HAL_IMPL_AVX_SELECT(v_uint8x32, epi8) +OPENCV_HAL_IMPL_AVX_SELECT(v_int8x32, epi8) +OPENCV_HAL_IMPL_AVX_SELECT(v_uint16x16, epi8) +OPENCV_HAL_IMPL_AVX_SELECT(v_int16x16, epi8) +OPENCV_HAL_IMPL_AVX_SELECT(v_uint32x8, epi8) +OPENCV_HAL_IMPL_AVX_SELECT(v_int32x8, epi8) +OPENCV_HAL_IMPL_AVX_SELECT(v_float32x8, ps) +OPENCV_HAL_IMPL_AVX_SELECT(v_float64x4, pd) + +/** Comparison **/ +#define OPENCV_HAL_IMPL_AVX_CMP_OP_OV(_Tpvec) \ + inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ + { return ~(a == b); } \ + inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ + { return b > a; } \ + inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ + { return ~(a < b); } \ + inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ + { return b >= a; } + +#define OPENCV_HAL_IMPL_AVX_CMP_OP_INT(_Tpuvec, _Tpsvec, suffix, sbit) \ + inline _Tpuvec operator == (const _Tpuvec& a, const _Tpuvec& b) \ + { return _Tpuvec(_mm256_cmpeq_##suffix(a.val, b.val)); } \ + inline _Tpuvec operator > (const _Tpuvec& a, const _Tpuvec& b) \ + { \ + __m256i smask = _mm256_set1_##suffix(sbit); \ + return _Tpuvec(_mm256_cmpgt_##suffix( \ + _mm256_xor_si256(a.val, smask), \ + _mm256_xor_si256(b.val, smask))); \ + } \ + inline _Tpsvec operator == (const _Tpsvec& a, const _Tpsvec& b) \ + { return _Tpsvec(_mm256_cmpeq_##suffix(a.val, b.val)); } \ + inline _Tpsvec operator > (const _Tpsvec& a, const _Tpsvec& b) \ + { return _Tpsvec(_mm256_cmpgt_##suffix(a.val, b.val)); } \ + OPENCV_HAL_IMPL_AVX_CMP_OP_OV(_Tpuvec) \ + OPENCV_HAL_IMPL_AVX_CMP_OP_OV(_Tpsvec) + +OPENCV_HAL_IMPL_AVX_CMP_OP_INT(v_uint8x32, v_int8x32, epi8, (char)-128) +OPENCV_HAL_IMPL_AVX_CMP_OP_INT(v_uint16x16, v_int16x16, epi16, (short)-32768) +OPENCV_HAL_IMPL_AVX_CMP_OP_INT(v_uint32x8, v_int32x8, epi32, (int)0x80000000) + +#define OPENCV_HAL_IMPL_AVX_CMP_OP_64BIT(_Tpvec) \ + inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(_mm256_cmpeq_epi64(a.val, b.val)); } \ + inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ + { return ~(a == b); } + +OPENCV_HAL_IMPL_AVX_CMP_OP_64BIT(v_uint64x4) +OPENCV_HAL_IMPL_AVX_CMP_OP_64BIT(v_int64x4) + +#define OPENCV_HAL_IMPL_AVX_CMP_FLT(bin_op, imm8, _Tpvec, suffix) \ + inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ + { return _Tpvec(_mm256_cmp_##suffix(a.val, b.val, imm8)); } + +#define OPENCV_HAL_IMPL_AVX_CMP_OP_FLT(_Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_CMP_FLT(==, _CMP_EQ_OQ, _Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_CMP_FLT(!=, _CMP_NEQ_OQ, _Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_CMP_FLT(<, _CMP_LT_OQ, _Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_CMP_FLT(>, _CMP_GT_OQ, _Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_CMP_FLT(<=, _CMP_LE_OQ, _Tpvec, suffix) \ + OPENCV_HAL_IMPL_AVX_CMP_FLT(>=, _CMP_GE_OQ, _Tpvec, suffix) + +OPENCV_HAL_IMPL_AVX_CMP_OP_FLT(v_float32x8, ps) +OPENCV_HAL_IMPL_AVX_CMP_OP_FLT(v_float64x4, pd) + +inline v_float32x8 v_not_nan(const v_float32x8& a) +{ return v_float32x8(_mm256_cmp_ps(a.val, a.val, _CMP_ORD_Q)); } +inline v_float64x4 v_not_nan(const v_float64x4& a) +{ return v_float64x4(_mm256_cmp_pd(a.val, a.val, _CMP_ORD_Q)); } + +/** min/max **/ +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_uint8x32, _mm256_min_epu8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_uint8x32, _mm256_max_epu8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_int8x32, _mm256_min_epi8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_int8x32, _mm256_max_epi8) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_uint16x16, _mm256_min_epu16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_uint16x16, _mm256_max_epu16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_int16x16, _mm256_min_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_int16x16, _mm256_max_epi16) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_uint32x8, _mm256_min_epu32) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_uint32x8, _mm256_max_epu32) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_int32x8, _mm256_min_epi32) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_int32x8, _mm256_max_epi32) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_float32x8, _mm256_min_ps) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_float32x8, _mm256_max_ps) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_min, v_float64x4, _mm256_min_pd) +OPENCV_HAL_IMPL_AVX_BIN_FUNC(v_max, v_float64x4, _mm256_max_pd) + +/** Rotate **/ +template +inline v_uint8x32 v_rotate_left(const v_uint8x32& a, const v_uint8x32& b) +{ + enum {IMM_R = (16 - imm) & 0xFF}; + enum {IMM_R2 = (32 - imm) & 0xFF}; + + if (imm == 0) return a; + if (imm == 32) return b; + if (imm > 32) return v_uint8x32(); + + __m256i swap = _mm256_permute2x128_si256(a.val, b.val, 0x03); + if (imm == 16) return v_uint8x32(swap); + if (imm < 16) return v_uint8x32(_mm256_alignr_epi8(a.val, swap, IMM_R)); + return v_uint8x32(_mm256_alignr_epi8(swap, b.val, IMM_R2)); // imm < 32 +} + +template +inline v_uint8x32 v_rotate_right(const v_uint8x32& a, const v_uint8x32& b) +{ + enum {IMM_L = (imm - 16) & 0xFF}; + + if (imm == 0) return a; + if (imm == 32) return b; + if (imm > 32) return v_uint8x32(); + + __m256i swap = _mm256_permute2x128_si256(a.val, b.val, 0x21); + if (imm == 16) return v_uint8x32(swap); + if (imm < 16) return v_uint8x32(_mm256_alignr_epi8(swap, a.val, imm)); + return v_uint8x32(_mm256_alignr_epi8(b.val, swap, IMM_L)); +} + +template +inline v_uint8x32 v_rotate_left(const v_uint8x32& a) +{ + enum {IMM_L = (imm - 16) & 0xFF}; + enum {IMM_R = (16 - imm) & 0xFF}; + + if (imm == 0) return a; + if (imm > 32) return v_uint8x32(); + + // ESAC control[3] ? [127:0] = 0 + __m256i swapz = _mm256_permute2x128_si256(a.val, a.val, _MM_SHUFFLE(0, 0, 2, 0)); + if (imm == 16) return v_uint8x32(swapz); + if (imm < 16) return v_uint8x32(_mm256_alignr_epi8(a.val, swapz, IMM_R)); + return v_uint8x32(_mm256_slli_si256(swapz, IMM_L)); +} + +template +inline v_uint8x32 v_rotate_right(const v_uint8x32& a) +{ + enum {IMM_L = (imm - 16) & 0xFF}; + + if (imm == 0) return a; + if (imm > 32) return v_uint8x32(); + + // ESAC control[3] ? [127:0] = 0 + __m256i swapz = _mm256_permute2x128_si256(a.val, a.val, _MM_SHUFFLE(2, 0, 0, 1)); + if (imm == 16) return v_uint8x32(swapz); + if (imm < 16) return v_uint8x32(_mm256_alignr_epi8(swapz, a.val, imm)); + return v_uint8x32(_mm256_srli_si256(swapz, IMM_L)); +} + +#define OPENCV_HAL_IMPL_AVX_ROTATE_CAST(intrin, _Tpvec, cast) \ + template \ + inline _Tpvec intrin(const _Tpvec& a, const _Tpvec& b) \ + { \ + enum {IMMxW = imm * sizeof(typename _Tpvec::lane_type)}; \ + v_uint8x32 ret = intrin(v_reinterpret_as_u8(a), \ + v_reinterpret_as_u8(b)); \ + return _Tpvec(cast(ret.val)); \ + } \ + template \ + inline _Tpvec intrin(const _Tpvec& a) \ + { \ + enum {IMMxW = imm * sizeof(typename _Tpvec::lane_type)}; \ + v_uint8x32 ret = intrin(v_reinterpret_as_u8(a)); \ + return _Tpvec(cast(ret.val)); \ + } + +#define OPENCV_HAL_IMPL_AVX_ROTATE(_Tpvec) \ + OPENCV_HAL_IMPL_AVX_ROTATE_CAST(v_rotate_left, _Tpvec, OPENCV_HAL_NOP) \ + OPENCV_HAL_IMPL_AVX_ROTATE_CAST(v_rotate_right, _Tpvec, OPENCV_HAL_NOP) + +OPENCV_HAL_IMPL_AVX_ROTATE(v_int8x32) +OPENCV_HAL_IMPL_AVX_ROTATE(v_uint16x16) +OPENCV_HAL_IMPL_AVX_ROTATE(v_int16x16) +OPENCV_HAL_IMPL_AVX_ROTATE(v_uint32x8) +OPENCV_HAL_IMPL_AVX_ROTATE(v_int32x8) +OPENCV_HAL_IMPL_AVX_ROTATE(v_uint64x4) +OPENCV_HAL_IMPL_AVX_ROTATE(v_int64x4) + +OPENCV_HAL_IMPL_AVX_ROTATE_CAST(v_rotate_left, v_float32x8, _mm256_castsi256_ps) +OPENCV_HAL_IMPL_AVX_ROTATE_CAST(v_rotate_right, v_float32x8, _mm256_castsi256_ps) +OPENCV_HAL_IMPL_AVX_ROTATE_CAST(v_rotate_left, v_float64x4, _mm256_castsi256_pd) +OPENCV_HAL_IMPL_AVX_ROTATE_CAST(v_rotate_right, v_float64x4, _mm256_castsi256_pd) + +////////// Reduce and mask ///////// + +/** Reduce **/ +#define OPENCV_HAL_IMPL_AVX_REDUCE_16(_Tpvec, sctype, func, intrin) \ + inline sctype v_reduce_##func(const _Tpvec& a) \ + { \ + __m128i v0 = _v256_extract_low(a.val); \ + __m128i v1 = _v256_extract_high(a.val); \ + v0 = intrin(v0, v1); \ + v0 = intrin(v0, _mm_srli_si128(v0, 8)); \ + v0 = intrin(v0, _mm_srli_si128(v0, 4)); \ + v0 = intrin(v0, _mm_srli_si128(v0, 2)); \ + return (sctype) _mm_cvtsi128_si32(v0); \ + } + +OPENCV_HAL_IMPL_AVX_REDUCE_16(v_uint16x16, ushort, min, _mm_min_epu16) +OPENCV_HAL_IMPL_AVX_REDUCE_16(v_int16x16, short, min, _mm_min_epi16) +OPENCV_HAL_IMPL_AVX_REDUCE_16(v_uint16x16, ushort, max, _mm_max_epu16) +OPENCV_HAL_IMPL_AVX_REDUCE_16(v_int16x16, short, max, _mm_max_epi16) + +#define OPENCV_HAL_IMPL_AVX_REDUCE_8(_Tpvec, sctype, func, intrin) \ + inline sctype v_reduce_##func(const _Tpvec& a) \ + { \ + __m128i v0 = _v256_extract_low(a.val); \ + __m128i v1 = _v256_extract_high(a.val); \ + v0 = intrin(v0, v1); \ + v0 = intrin(v0, _mm_srli_si128(v0, 8)); \ + v0 = intrin(v0, _mm_srli_si128(v0, 4)); \ + return (sctype) _mm_cvtsi128_si32(v0); \ + } + +OPENCV_HAL_IMPL_AVX_REDUCE_8(v_uint32x8, unsigned, min, _mm_min_epu32) +OPENCV_HAL_IMPL_AVX_REDUCE_8(v_int32x8, int, min, _mm_min_epi32) +OPENCV_HAL_IMPL_AVX_REDUCE_8(v_uint32x8, unsigned, max, _mm_max_epu32) +OPENCV_HAL_IMPL_AVX_REDUCE_8(v_int32x8, int, max, _mm_max_epi32) + +#define OPENCV_HAL_IMPL_AVX_REDUCE_FLT(func, intrin) \ + inline float v_reduce_##func(const v_float32x8& a) \ + { \ + __m128 v0 = _v256_extract_low(a.val); \ + __m128 v1 = _v256_extract_high(a.val); \ + v0 = intrin(v0, v1); \ + v0 = intrin(v0, _mm_permute_ps(v0, _MM_SHUFFLE(0, 0, 3, 2))); \ + v0 = intrin(v0, _mm_permute_ps(v0, _MM_SHUFFLE(0, 0, 0, 3))); \ + return _mm_cvtss_f32(v0); \ + } + +OPENCV_HAL_IMPL_AVX_REDUCE_FLT(min, _mm_min_ps) +OPENCV_HAL_IMPL_AVX_REDUCE_FLT(max, _mm_max_ps) + +inline ushort v_reduce_sum(const v_uint16x16& a) +{ + __m128i a0 = _v256_extract_low(a.val); + __m128i a1 = _v256_extract_high(a.val); + + __m128i s0 = _mm_adds_epu16(a0, a1); + s0 = _mm_adds_epu16(s0, _mm_srli_si128(s0, 8)); + s0 = _mm_adds_epu16(s0, _mm_srli_si128(s0, 4)); + s0 = _mm_adds_epu16(s0, _mm_srli_si128(s0, 2)); + + return (ushort)_mm_cvtsi128_si32(s0); +} + +inline short v_reduce_sum(const v_int16x16& a) +{ + __m256i s0 = _mm256_hadds_epi16(a.val, a.val); + s0 = _mm256_hadds_epi16(s0, s0); + s0 = _mm256_hadds_epi16(s0, s0); + + __m128i s1 = _v256_extract_high(s0); + s1 = _mm_adds_epi16(_v256_extract_low(s0), s1); + + return (short)_mm_cvtsi128_si32(s1); +} + +inline int v_reduce_sum(const v_int32x8& a) +{ + __m256i s0 = _mm256_hadd_epi32(a.val, a.val); + s0 = _mm256_hadd_epi32(s0, s0); + + __m128i s1 = _v256_extract_high(s0); + s1 = _mm_add_epi32(_v256_extract_low(s0), s1); + + return _mm_cvtsi128_si32(s1); +} + +inline unsigned v_reduce_sum(const v_uint32x8& a) +{ return v_reduce_sum(v_reinterpret_as_s32(a)); } + +inline float v_reduce_sum(const v_float32x8& a) +{ + __m256 s0 = _mm256_hadd_ps(a.val, a.val); + s0 = _mm256_hadd_ps(s0, s0); + + __m128 s1 = _v256_extract_high(s0); + s1 = _mm_add_ps(_v256_extract_low(s0), s1); + + return _mm_cvtss_f32(s1); +} + +inline double v_reduce_sum(const v_float64x4& a) +{ + __m256d s0 = _mm256_hadd_pd(a.val, a.val); + return _mm_cvtsd_f64(_mm_add_pd(_v256_extract_low(s0), _v256_extract_high(s0))); +} + +inline v_float32x8 v_reduce_sum4(const v_float32x8& a, const v_float32x8& b, + const v_float32x8& c, const v_float32x8& d) +{ + __m256 ab = _mm256_hadd_ps(a.val, b.val); + __m256 cd = _mm256_hadd_ps(c.val, d.val); + return v_float32x8(_mm256_hadd_ps(ab, cd)); +} + +inline unsigned v_reduce_sad(const v_uint8x32& a, const v_uint8x32& b) +{ + return (unsigned)_v_cvtsi256_si32(_mm256_sad_epu8(a.val, b.val)); +} +inline unsigned v_reduce_sad(const v_int8x32& a, const v_int8x32& b) +{ + __m256i half = _mm256_set1_epi8(0x7f); + return (unsigned)_v_cvtsi256_si32(_mm256_sad_epu8(_mm256_add_epi8(a.val, half), _mm256_add_epi8(b.val, half))); +} +inline unsigned v_reduce_sad(const v_uint16x16& a, const v_uint16x16& b) +{ + v_uint32x8 l, h; + v_expand(v_add_wrap(a - b, b - a), l, h); + return v_reduce_sum(l + h); +} +inline unsigned v_reduce_sad(const v_int16x16& a, const v_int16x16& b) +{ + v_uint32x8 l, h; + v_expand(v_reinterpret_as_u16(v_sub_wrap(v_max(a, b), v_min(a, b))), l, h); + return v_reduce_sum(l + h); +} +inline unsigned v_reduce_sad(const v_uint32x8& a, const v_uint32x8& b) +{ + return v_reduce_sum(v_max(a, b) - v_min(a, b)); +} +inline unsigned v_reduce_sad(const v_int32x8& a, const v_int32x8& b) +{ + v_int32x8 m = a < b; + return v_reduce_sum(v_reinterpret_as_u32(((a - b) ^ m) - m)); +} +inline float v_reduce_sad(const v_float32x8& a, const v_float32x8& b) +{ + return v_reduce_sum((a - b) & v_float32x8(_mm256_castsi256_ps(_mm256_set1_epi32(0x7fffffff)))); +} + +/** Popcount **/ +#define OPENCV_HAL_IMPL_AVX_POPCOUNT(_Tpvec) \ + inline v_uint32x8 v_popcount(const _Tpvec& a) \ + { \ + const v_uint32x8 m1 = v256_setall_u32(0x55555555); \ + const v_uint32x8 m2 = v256_setall_u32(0x33333333); \ + const v_uint32x8 m4 = v256_setall_u32(0x0f0f0f0f); \ + v_uint32x8 p = v_reinterpret_as_u32(a); \ + p = ((p >> 1) & m1) + (p & m1); \ + p = ((p >> 2) & m2) + (p & m2); \ + p = ((p >> 4) & m4) + (p & m4); \ + p.val = _mm256_sad_epu8(p.val, _mm256_setzero_si256()); \ + return p; \ + } + +OPENCV_HAL_IMPL_AVX_POPCOUNT(v_uint8x32) +OPENCV_HAL_IMPL_AVX_POPCOUNT(v_int8x32) +OPENCV_HAL_IMPL_AVX_POPCOUNT(v_uint16x16) +OPENCV_HAL_IMPL_AVX_POPCOUNT(v_int16x16) +OPENCV_HAL_IMPL_AVX_POPCOUNT(v_uint32x8) +OPENCV_HAL_IMPL_AVX_POPCOUNT(v_int32x8) + +/** Mask **/ +inline int v_signmask(const v_int8x32& a) +{ return _mm256_movemask_epi8(a.val); } +inline int v_signmask(const v_uint8x32& a) +{ return v_signmask(v_reinterpret_as_s8(a)); } + +inline int v_signmask(const v_int16x16& a) +{ + v_int8x32 v = v_int8x32(_mm256_packs_epi16(a.val, a.val)); + return v_signmask(v) & 255; +} +inline int v_signmask(const v_uint16x16& a) +{ return v_signmask(v_reinterpret_as_s16(a)); } + +inline int v_signmask(const v_int32x8& a) +{ + __m256i a16 = _mm256_packs_epi32(a.val, a.val); + v_int8x32 v = v_int8x32(_mm256_packs_epi16(a16, a16)); + return v_signmask(v) & 15; +} +inline int v_signmask(const v_uint32x8& a) +{ return v_signmask(v_reinterpret_as_s32(a)); } + +inline int v_signmask(const v_float32x8& a) +{ return _mm256_movemask_ps(a.val); } +inline int v_signmask(const v_float64x4& a) +{ return _mm256_movemask_pd(a.val); } + +/** Checks **/ +#define OPENCV_HAL_IMPL_AVX_CHECK(_Tpvec, and_op, allmask) \ + inline bool v_check_all(const _Tpvec& a) \ + { \ + int mask = v_signmask(v_reinterpret_as_s8(a)); \ + return and_op(mask, allmask) == allmask; \ + } \ + inline bool v_check_any(const _Tpvec& a) \ + { \ + int mask = v_signmask(v_reinterpret_as_s8(a)); \ + return and_op(mask, allmask) != 0; \ + } + +OPENCV_HAL_IMPL_AVX_CHECK(v_uint8x32, OPENCV_HAL_1ST, -1) +OPENCV_HAL_IMPL_AVX_CHECK(v_int8x32, OPENCV_HAL_1ST, -1) +OPENCV_HAL_IMPL_AVX_CHECK(v_uint16x16, OPENCV_HAL_AND, (int)0xaaaa) +OPENCV_HAL_IMPL_AVX_CHECK(v_int16x16, OPENCV_HAL_AND, (int)0xaaaa) +OPENCV_HAL_IMPL_AVX_CHECK(v_uint32x8, OPENCV_HAL_AND, (int)0x8888) +OPENCV_HAL_IMPL_AVX_CHECK(v_int32x8, OPENCV_HAL_AND, (int)0x8888) + +#define OPENCV_HAL_IMPL_AVX_CHECK_FLT(_Tpvec, allmask) \ + inline bool v_check_all(const _Tpvec& a) \ + { \ + int mask = v_signmask(a); \ + return mask == allmask; \ + } \ + inline bool v_check_any(const _Tpvec& a) \ + { \ + int mask = v_signmask(a); \ + return mask != 0; \ + } + +OPENCV_HAL_IMPL_AVX_CHECK_FLT(v_float32x8, 255) +OPENCV_HAL_IMPL_AVX_CHECK_FLT(v_float64x4, 15) + + +////////// Other math ///////// + +/** Some frequent operations **/ +#define OPENCV_HAL_IMPL_AVX_MULADD(_Tpvec, suffix) \ + inline _Tpvec v_fma(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ + { return _Tpvec(_mm256_fmadd_##suffix(a.val, b.val, c.val)); } \ + inline _Tpvec v_muladd(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ + { return _Tpvec(_mm256_fmadd_##suffix(a.val, b.val, c.val)); } \ + inline _Tpvec v_sqrt(const _Tpvec& x) \ + { return _Tpvec(_mm256_sqrt_##suffix(x.val)); } \ + inline _Tpvec v_sqr_magnitude(const _Tpvec& a, const _Tpvec& b) \ + { return v_fma(a, a, b * b); } \ + inline _Tpvec v_magnitude(const _Tpvec& a, const _Tpvec& b) \ + { return v_sqrt(v_fma(a, a, b*b)); } + +OPENCV_HAL_IMPL_AVX_MULADD(v_float32x8, ps) +OPENCV_HAL_IMPL_AVX_MULADD(v_float64x4, pd) + +inline v_int32x8 v_fma(const v_int32x8& a, const v_int32x8& b, const v_int32x8& c) +{ + return a * b + c; +} + +inline v_int32x8 v_muladd(const v_int32x8& a, const v_int32x8& b, const v_int32x8& c) +{ + return v_fma(a, b, c); +} + +inline v_float32x8 v_invsqrt(const v_float32x8& x) +{ + v_float32x8 half = x * v256_setall_f32(0.5); + v_float32x8 t = v_float32x8(_mm256_rsqrt_ps(x.val)); + // todo: _mm256_fnmsub_ps + t *= v256_setall_f32(1.5) - ((t * t) * half); + return t; +} + +inline v_float64x4 v_invsqrt(const v_float64x4& x) +{ + return v256_setall_f64(1.) / v_sqrt(x); +} + +/** Absolute values **/ +#define OPENCV_HAL_IMPL_AVX_ABS(_Tpvec, suffix) \ + inline v_u##_Tpvec v_abs(const v_##_Tpvec& x) \ + { return v_u##_Tpvec(_mm256_abs_##suffix(x.val)); } + +OPENCV_HAL_IMPL_AVX_ABS(int8x32, epi8) +OPENCV_HAL_IMPL_AVX_ABS(int16x16, epi16) +OPENCV_HAL_IMPL_AVX_ABS(int32x8, epi32) + +inline v_float32x8 v_abs(const v_float32x8& x) +{ return x & v_float32x8(_mm256_castsi256_ps(_mm256_set1_epi32(0x7fffffff))); } +inline v_float64x4 v_abs(const v_float64x4& x) +{ return x & v_float64x4(_mm256_castsi256_pd(_mm256_srli_epi64(_mm256_set1_epi64x(-1), 1))); } + +/** Absolute difference **/ +inline v_uint8x32 v_absdiff(const v_uint8x32& a, const v_uint8x32& b) +{ return v_add_wrap(a - b, b - a); } +inline v_uint16x16 v_absdiff(const v_uint16x16& a, const v_uint16x16& b) +{ return v_add_wrap(a - b, b - a); } +inline v_uint32x8 v_absdiff(const v_uint32x8& a, const v_uint32x8& b) +{ return v_max(a, b) - v_min(a, b); } + +inline v_uint8x32 v_absdiff(const v_int8x32& a, const v_int8x32& b) +{ + v_int8x32 d = v_sub_wrap(a, b); + v_int8x32 m = a < b; + return v_reinterpret_as_u8(v_sub_wrap(d ^ m, m)); +} + +inline v_uint16x16 v_absdiff(const v_int16x16& a, const v_int16x16& b) +{ return v_reinterpret_as_u16(v_sub_wrap(v_max(a, b), v_min(a, b))); } + +inline v_uint32x8 v_absdiff(const v_int32x8& a, const v_int32x8& b) +{ + v_int32x8 d = a - b; + v_int32x8 m = a < b; + return v_reinterpret_as_u32((d ^ m) - m); +} + +inline v_float32x8 v_absdiff(const v_float32x8& a, const v_float32x8& b) +{ return v_abs(a - b); } + +inline v_float64x4 v_absdiff(const v_float64x4& a, const v_float64x4& b) +{ return v_abs(a - b); } + +/** Saturating absolute difference **/ +inline v_int8x32 v_absdiffs(const v_int8x32& a, const v_int8x32& b) +{ + v_int8x32 d = a - b; + v_int8x32 m = a < b; + return (d ^ m) - m; +} +inline v_int16x16 v_absdiffs(const v_int16x16& a, const v_int16x16& b) +{ return v_max(a, b) - v_min(a, b); } + +////////// Conversions ///////// + +/** Rounding **/ +inline v_int32x8 v_round(const v_float32x8& a) +{ return v_int32x8(_mm256_cvtps_epi32(a.val)); } + +inline v_int32x8 v_round(const v_float64x4& a) +{ return v_int32x8(_mm256_castsi128_si256(_mm256_cvtpd_epi32(a.val))); } + +inline v_int32x8 v_round(const v_float64x4& a, const v_float64x4& b) +{ + __m128i ai = _mm256_cvtpd_epi32(a.val), bi = _mm256_cvtpd_epi32(b.val); + return v_int32x8(_v256_combine(ai, bi)); +} + +inline v_int32x8 v_trunc(const v_float32x8& a) +{ return v_int32x8(_mm256_cvttps_epi32(a.val)); } + +inline v_int32x8 v_trunc(const v_float64x4& a) +{ return v_int32x8(_mm256_castsi128_si256(_mm256_cvttpd_epi32(a.val))); } + +inline v_int32x8 v_floor(const v_float32x8& a) +{ return v_int32x8(_mm256_cvttps_epi32(_mm256_floor_ps(a.val))); } + +inline v_int32x8 v_floor(const v_float64x4& a) +{ return v_trunc(v_float64x4(_mm256_floor_pd(a.val))); } + +inline v_int32x8 v_ceil(const v_float32x8& a) +{ return v_int32x8(_mm256_cvttps_epi32(_mm256_ceil_ps(a.val))); } + +inline v_int32x8 v_ceil(const v_float64x4& a) +{ return v_trunc(v_float64x4(_mm256_ceil_pd(a.val))); } + +/** To float **/ +inline v_float32x8 v_cvt_f32(const v_int32x8& a) +{ return v_float32x8(_mm256_cvtepi32_ps(a.val)); } + +inline v_float32x8 v_cvt_f32(const v_float64x4& a) +{ return v_float32x8(_mm256_castps128_ps256(_mm256_cvtpd_ps(a.val))); } + +inline v_float32x8 v_cvt_f32(const v_float64x4& a, const v_float64x4& b) +{ + __m128 af = _mm256_cvtpd_ps(a.val), bf = _mm256_cvtpd_ps(b.val); + return v_float32x8(_mm256_insertf128_ps(_mm256_castps128_ps256(af), bf, 1)); +} + +inline v_float64x4 v_cvt_f64(const v_int32x8& a) +{ return v_float64x4(_mm256_cvtepi32_pd(_v256_extract_low(a.val))); } + +inline v_float64x4 v_cvt_f64_high(const v_int32x8& a) +{ return v_float64x4(_mm256_cvtepi32_pd(_v256_extract_high(a.val))); } + +inline v_float64x4 v_cvt_f64(const v_float32x8& a) +{ return v_float64x4(_mm256_cvtps_pd(_v256_extract_low(a.val))); } + +inline v_float64x4 v_cvt_f64_high(const v_float32x8& a) +{ return v_float64x4(_mm256_cvtps_pd(_v256_extract_high(a.val))); } + +////////////// Lookup table access //////////////////// + +inline v_int8x32 v256_lut(const schar* tab, const int* idx) +{ + return v_int8x32(_mm256_setr_epi8(tab[idx[ 0]], tab[idx[ 1]], tab[idx[ 2]], tab[idx[ 3]], tab[idx[ 4]], tab[idx[ 5]], tab[idx[ 6]], tab[idx[ 7]], + tab[idx[ 8]], tab[idx[ 9]], tab[idx[10]], tab[idx[11]], tab[idx[12]], tab[idx[13]], tab[idx[14]], tab[idx[15]], + tab[idx[16]], tab[idx[17]], tab[idx[18]], tab[idx[19]], tab[idx[20]], tab[idx[21]], tab[idx[22]], tab[idx[23]], + tab[idx[24]], tab[idx[25]], tab[idx[26]], tab[idx[27]], tab[idx[28]], tab[idx[29]], tab[idx[30]], tab[idx[31]])); +} +inline v_int8x32 v256_lut_pairs(const schar* tab, const int* idx) +{ + return v_int8x32(_mm256_setr_epi16(*(const short*)(tab + idx[ 0]), *(const short*)(tab + idx[ 1]), *(const short*)(tab + idx[ 2]), *(const short*)(tab + idx[ 3]), + *(const short*)(tab + idx[ 4]), *(const short*)(tab + idx[ 5]), *(const short*)(tab + idx[ 6]), *(const short*)(tab + idx[ 7]), + *(const short*)(tab + idx[ 8]), *(const short*)(tab + idx[ 9]), *(const short*)(tab + idx[10]), *(const short*)(tab + idx[11]), + *(const short*)(tab + idx[12]), *(const short*)(tab + idx[13]), *(const short*)(tab + idx[14]), *(const short*)(tab + idx[15]))); +} +inline v_int8x32 v256_lut_quads(const schar* tab, const int* idx) +{ + return v_int8x32(_mm256_i32gather_epi32((const int*)tab, _mm256_loadu_si256((const __m256i*)idx), 1)); +} +inline v_uint8x32 v256_lut(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v256_lut((const schar *)tab, idx)); } +inline v_uint8x32 v256_lut_pairs(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v256_lut_pairs((const schar *)tab, idx)); } +inline v_uint8x32 v256_lut_quads(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v256_lut_quads((const schar *)tab, idx)); } + +inline v_int16x16 v256_lut(const short* tab, const int* idx) +{ + return v_int16x16(_mm256_setr_epi16(tab[idx[0]], tab[idx[1]], tab[idx[ 2]], tab[idx[ 3]], tab[idx[ 4]], tab[idx[ 5]], tab[idx[ 6]], tab[idx[ 7]], + tab[idx[8]], tab[idx[9]], tab[idx[10]], tab[idx[11]], tab[idx[12]], tab[idx[13]], tab[idx[14]], tab[idx[15]])); +} +inline v_int16x16 v256_lut_pairs(const short* tab, const int* idx) +{ + return v_int16x16(_mm256_i32gather_epi32((const int*)tab, _mm256_loadu_si256((const __m256i*)idx), 2)); +} +inline v_int16x16 v256_lut_quads(const short* tab, const int* idx) +{ +#if defined(__GNUC__) + return v_int16x16(_mm256_i32gather_epi64((const long long int*)tab, _mm_loadu_si128((const __m128i*)idx), 2));//Looks like intrinsic has wrong definition +#else + return v_int16x16(_mm256_i32gather_epi64((const int64*)tab, _mm_loadu_si128((const __m128i*)idx), 2)); +#endif +} +inline v_uint16x16 v256_lut(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v256_lut((const short *)tab, idx)); } +inline v_uint16x16 v256_lut_pairs(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v256_lut_pairs((const short *)tab, idx)); } +inline v_uint16x16 v256_lut_quads(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v256_lut_quads((const short *)tab, idx)); } + +inline v_int32x8 v256_lut(const int* tab, const int* idx) +{ + return v_int32x8(_mm256_i32gather_epi32(tab, _mm256_loadu_si256((const __m256i*)idx), 4)); +} +inline v_int32x8 v256_lut_pairs(const int* tab, const int* idx) +{ +#if defined(__GNUC__) + return v_int32x8(_mm256_i32gather_epi64((const long long int*)tab, _mm_loadu_si128((const __m128i*)idx), 4)); +#else + return v_int32x8(_mm256_i32gather_epi64((const int64*)tab, _mm_loadu_si128((const __m128i*)idx), 4)); +#endif +} +inline v_int32x8 v256_lut_quads(const int* tab, const int* idx) +{ + return v_int32x8(_mm256_insertf128_si256(_mm256_castsi128_si256(_mm_loadu_si128((const __m128i*)(tab + idx[0]))), _mm_loadu_si128((const __m128i*)(tab + idx[1])), 0x1)); +} +inline v_uint32x8 v256_lut(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v256_lut((const int *)tab, idx)); } +inline v_uint32x8 v256_lut_pairs(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v256_lut_pairs((const int *)tab, idx)); } +inline v_uint32x8 v256_lut_quads(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v256_lut_quads((const int *)tab, idx)); } + +inline v_int64x4 v256_lut(const int64* tab, const int* idx) +{ +#if defined(__GNUC__) + return v_int64x4(_mm256_i32gather_epi64((const long long int*)tab, _mm_loadu_si128((const __m128i*)idx), 8)); +#else + return v_int64x4(_mm256_i32gather_epi64(tab, _mm_loadu_si128((const __m128i*)idx), 8)); +#endif +} +inline v_int64x4 v256_lut_pairs(const int64* tab, const int* idx) +{ + return v_int64x4(_mm256_insertf128_si256(_mm256_castsi128_si256(_mm_loadu_si128((const __m128i*)(tab + idx[0]))), _mm_loadu_si128((const __m128i*)(tab + idx[1])), 0x1)); +} +inline v_uint64x4 v256_lut(const uint64* tab, const int* idx) { return v_reinterpret_as_u64(v256_lut((const int64 *)tab, idx)); } +inline v_uint64x4 v256_lut_pairs(const uint64* tab, const int* idx) { return v_reinterpret_as_u64(v256_lut_pairs((const int64 *)tab, idx)); } + +inline v_float32x8 v256_lut(const float* tab, const int* idx) +{ + return v_float32x8(_mm256_i32gather_ps(tab, _mm256_loadu_si256((const __m256i*)idx), 4)); +} +inline v_float32x8 v256_lut_pairs(const float* tab, const int* idx) { return v_reinterpret_as_f32(v256_lut_pairs((const int *)tab, idx)); } +inline v_float32x8 v256_lut_quads(const float* tab, const int* idx) { return v_reinterpret_as_f32(v256_lut_quads((const int *)tab, idx)); } + +inline v_float64x4 v256_lut(const double* tab, const int* idx) +{ + return v_float64x4(_mm256_i32gather_pd(tab, _mm_loadu_si128((const __m128i*)idx), 8)); +} +inline v_float64x4 v256_lut_pairs(const double* tab, const int* idx) { return v_float64x4(_mm256_insertf128_pd(_mm256_castpd128_pd256(_mm_loadu_pd(tab + idx[0])), _mm_loadu_pd(tab + idx[1]), 0x1)); } + +inline v_int32x8 v_lut(const int* tab, const v_int32x8& idxvec) +{ + return v_int32x8(_mm256_i32gather_epi32(tab, idxvec.val, 4)); +} + +inline v_uint32x8 v_lut(const unsigned* tab, const v_int32x8& idxvec) +{ + return v_reinterpret_as_u32(v_lut((const int *)tab, idxvec)); +} + +inline v_float32x8 v_lut(const float* tab, const v_int32x8& idxvec) +{ + return v_float32x8(_mm256_i32gather_ps(tab, idxvec.val, 4)); +} + +inline v_float64x4 v_lut(const double* tab, const v_int32x8& idxvec) +{ + return v_float64x4(_mm256_i32gather_pd(tab, _mm256_castsi256_si128(idxvec.val), 8)); +} + +inline void v_lut_deinterleave(const float* tab, const v_int32x8& idxvec, v_float32x8& x, v_float32x8& y) +{ + int CV_DECL_ALIGNED(32) idx[8]; + v_store_aligned(idx, idxvec); + __m128 z = _mm_setzero_ps(); + __m128 xy01, xy45, xy23, xy67; + xy01 = _mm_loadl_pi(z, (const __m64*)(tab + idx[0])); + xy01 = _mm_loadh_pi(xy01, (const __m64*)(tab + idx[1])); + xy45 = _mm_loadl_pi(z, (const __m64*)(tab + idx[4])); + xy45 = _mm_loadh_pi(xy45, (const __m64*)(tab + idx[5])); + __m256 xy0145 = _v256_combine(xy01, xy45); + xy23 = _mm_loadl_pi(z, (const __m64*)(tab + idx[2])); + xy23 = _mm_loadh_pi(xy23, (const __m64*)(tab + idx[3])); + xy67 = _mm_loadl_pi(z, (const __m64*)(tab + idx[6])); + xy67 = _mm_loadh_pi(xy67, (const __m64*)(tab + idx[7])); + __m256 xy2367 = _v256_combine(xy23, xy67); + + __m256 xxyy0145 = _mm256_unpacklo_ps(xy0145, xy2367); + __m256 xxyy2367 = _mm256_unpackhi_ps(xy0145, xy2367); + + x = v_float32x8(_mm256_unpacklo_ps(xxyy0145, xxyy2367)); + y = v_float32x8(_mm256_unpackhi_ps(xxyy0145, xxyy2367)); +} + +inline void v_lut_deinterleave(const double* tab, const v_int32x8& idxvec, v_float64x4& x, v_float64x4& y) +{ + int CV_DECL_ALIGNED(32) idx[4]; + v_store_low(idx, idxvec); + __m128d xy0 = _mm_loadu_pd(tab + idx[0]); + __m128d xy2 = _mm_loadu_pd(tab + idx[2]); + __m128d xy1 = _mm_loadu_pd(tab + idx[1]); + __m128d xy3 = _mm_loadu_pd(tab + idx[3]); + __m256d xy02 = _v256_combine(xy0, xy2); + __m256d xy13 = _v256_combine(xy1, xy3); + + x = v_float64x4(_mm256_unpacklo_pd(xy02, xy13)); + y = v_float64x4(_mm256_unpackhi_pd(xy02, xy13)); +} + +inline v_int8x32 v_interleave_pairs(const v_int8x32& vec) +{ + return v_int8x32(_mm256_shuffle_epi8(vec.val, _mm256_set_epi64x(0x0f0d0e0c0b090a08, 0x0705060403010200, 0x0f0d0e0c0b090a08, 0x0705060403010200))); +} +inline v_uint8x32 v_interleave_pairs(const v_uint8x32& vec) { return v_reinterpret_as_u8(v_interleave_pairs(v_reinterpret_as_s8(vec))); } +inline v_int8x32 v_interleave_quads(const v_int8x32& vec) +{ + return v_int8x32(_mm256_shuffle_epi8(vec.val, _mm256_set_epi64x(0x0f0b0e0a0d090c08, 0x0703060205010400, 0x0f0b0e0a0d090c08, 0x0703060205010400))); +} +inline v_uint8x32 v_interleave_quads(const v_uint8x32& vec) { return v_reinterpret_as_u8(v_interleave_quads(v_reinterpret_as_s8(vec))); } + +inline v_int16x16 v_interleave_pairs(const v_int16x16& vec) +{ + return v_int16x16(_mm256_shuffle_epi8(vec.val, _mm256_set_epi64x(0x0f0e0b0a0d0c0908, 0x0706030205040100, 0x0f0e0b0a0d0c0908, 0x0706030205040100))); +} +inline v_uint16x16 v_interleave_pairs(const v_uint16x16& vec) { return v_reinterpret_as_u16(v_interleave_pairs(v_reinterpret_as_s16(vec))); } +inline v_int16x16 v_interleave_quads(const v_int16x16& vec) +{ + return v_int16x16(_mm256_shuffle_epi8(vec.val, _mm256_set_epi64x(0x0f0e07060d0c0504, 0x0b0a030209080100, 0x0f0e07060d0c0504, 0x0b0a030209080100))); +} +inline v_uint16x16 v_interleave_quads(const v_uint16x16& vec) { return v_reinterpret_as_u16(v_interleave_quads(v_reinterpret_as_s16(vec))); } + +inline v_int32x8 v_interleave_pairs(const v_int32x8& vec) +{ + return v_int32x8(_mm256_shuffle_epi32(vec.val, _MM_SHUFFLE(3, 1, 2, 0))); +} +inline v_uint32x8 v_interleave_pairs(const v_uint32x8& vec) { return v_reinterpret_as_u32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } +inline v_float32x8 v_interleave_pairs(const v_float32x8& vec) { return v_reinterpret_as_f32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } + +inline v_int8x32 v_pack_triplets(const v_int8x32& vec) +{ + return v_int8x32(_mm256_permutevar8x32_epi32(_mm256_shuffle_epi8(vec.val, _mm256_broadcastsi128_si256(_mm_set_epi64x(0xffffff0f0e0d0c0a, 0x0908060504020100))), + _mm256_set_epi64x(0x0000000700000007, 0x0000000600000005, 0x0000000400000002, 0x0000000100000000))); +} +inline v_uint8x32 v_pack_triplets(const v_uint8x32& vec) { return v_reinterpret_as_u8(v_pack_triplets(v_reinterpret_as_s8(vec))); } + +inline v_int16x16 v_pack_triplets(const v_int16x16& vec) +{ + return v_int16x16(_mm256_permutevar8x32_epi32(_mm256_shuffle_epi8(vec.val, _mm256_broadcastsi128_si256(_mm_set_epi64x(0xffff0f0e0d0c0b0a, 0x0908050403020100))), + _mm256_set_epi64x(0x0000000700000007, 0x0000000600000005, 0x0000000400000002, 0x0000000100000000))); +} +inline v_uint16x16 v_pack_triplets(const v_uint16x16& vec) { return v_reinterpret_as_u16(v_pack_triplets(v_reinterpret_as_s16(vec))); } + +inline v_int32x8 v_pack_triplets(const v_int32x8& vec) +{ + return v_int32x8(_mm256_permutevar8x32_epi32(vec.val, _mm256_set_epi64x(0x0000000700000007, 0x0000000600000005, 0x0000000400000002, 0x0000000100000000))); +} +inline v_uint32x8 v_pack_triplets(const v_uint32x8& vec) { return v_reinterpret_as_u32(v_pack_triplets(v_reinterpret_as_s32(vec))); } +inline v_float32x8 v_pack_triplets(const v_float32x8& vec) +{ + return v_float32x8(_mm256_permutevar8x32_ps(vec.val, _mm256_set_epi64x(0x0000000700000007, 0x0000000600000005, 0x0000000400000002, 0x0000000100000000))); +} + +////////// Matrix operations ///////// + +inline v_int32x8 v_dotprod(const v_int16x16& a, const v_int16x16& b) +{ return v_int32x8(_mm256_madd_epi16(a.val, b.val)); } + +inline v_int32x8 v_dotprod(const v_int16x16& a, const v_int16x16& b, const v_int32x8& c) +{ return v_dotprod(a, b) + c; } + +#define OPENCV_HAL_AVX_SPLAT2_PS(a, im) \ + v_float32x8(_mm256_permute_ps(a.val, _MM_SHUFFLE(im, im, im, im))) + +inline v_float32x8 v_matmul(const v_float32x8& v, const v_float32x8& m0, + const v_float32x8& m1, const v_float32x8& m2, + const v_float32x8& m3) +{ + v_float32x8 v04 = OPENCV_HAL_AVX_SPLAT2_PS(v, 0); + v_float32x8 v15 = OPENCV_HAL_AVX_SPLAT2_PS(v, 1); + v_float32x8 v26 = OPENCV_HAL_AVX_SPLAT2_PS(v, 2); + v_float32x8 v37 = OPENCV_HAL_AVX_SPLAT2_PS(v, 3); + return v_fma(v04, m0, v_fma(v15, m1, v_fma(v26, m2, v37 * m3))); +} + +inline v_float32x8 v_matmuladd(const v_float32x8& v, const v_float32x8& m0, + const v_float32x8& m1, const v_float32x8& m2, + const v_float32x8& a) +{ + v_float32x8 v04 = OPENCV_HAL_AVX_SPLAT2_PS(v, 0); + v_float32x8 v15 = OPENCV_HAL_AVX_SPLAT2_PS(v, 1); + v_float32x8 v26 = OPENCV_HAL_AVX_SPLAT2_PS(v, 2); + return v_fma(v04, m0, v_fma(v15, m1, v_fma(v26, m2, a))); +} + +#define OPENCV_HAL_IMPL_AVX_TRANSPOSE4x4(_Tpvec, suffix, cast_from, cast_to) \ + inline void v_transpose4x4(const _Tpvec& a0, const _Tpvec& a1, \ + const _Tpvec& a2, const _Tpvec& a3, \ + _Tpvec& b0, _Tpvec& b1, _Tpvec& b2, _Tpvec& b3) \ + { \ + __m256i t0 = cast_from(_mm256_unpacklo_##suffix(a0.val, a1.val)); \ + __m256i t1 = cast_from(_mm256_unpacklo_##suffix(a2.val, a3.val)); \ + __m256i t2 = cast_from(_mm256_unpackhi_##suffix(a0.val, a1.val)); \ + __m256i t3 = cast_from(_mm256_unpackhi_##suffix(a2.val, a3.val)); \ + b0.val = cast_to(_mm256_unpacklo_epi64(t0, t1)); \ + b1.val = cast_to(_mm256_unpackhi_epi64(t0, t1)); \ + b2.val = cast_to(_mm256_unpacklo_epi64(t2, t3)); \ + b3.val = cast_to(_mm256_unpackhi_epi64(t2, t3)); \ + } + +OPENCV_HAL_IMPL_AVX_TRANSPOSE4x4(v_uint32x8, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_AVX_TRANSPOSE4x4(v_int32x8, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_AVX_TRANSPOSE4x4(v_float32x8, ps, _mm256_castps_si256, _mm256_castsi256_ps) + +//////////////// Value reordering /////////////// + +/* Expand */ +#define OPENCV_HAL_IMPL_AVX_EXPAND(_Tpvec, _Tpwvec, _Tp, intrin) \ + inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ + { \ + b0.val = intrin(_v256_extract_low(a.val)); \ + b1.val = intrin(_v256_extract_high(a.val)); \ + } \ + inline _Tpwvec v_expand_low(const _Tpvec& a) \ + { return _Tpwvec(intrin(_v256_extract_low(a.val))); } \ + inline _Tpwvec v_expand_high(const _Tpvec& a) \ + { return _Tpwvec(intrin(_v256_extract_high(a.val))); } \ + inline _Tpwvec v256_load_expand(const _Tp* ptr) \ + { \ + __m128i a = _mm_loadu_si128((const __m128i*)ptr); \ + return _Tpwvec(intrin(a)); \ + } + +OPENCV_HAL_IMPL_AVX_EXPAND(v_uint8x32, v_uint16x16, uchar, _mm256_cvtepu8_epi16) +OPENCV_HAL_IMPL_AVX_EXPAND(v_int8x32, v_int16x16, schar, _mm256_cvtepi8_epi16) +OPENCV_HAL_IMPL_AVX_EXPAND(v_uint16x16, v_uint32x8, ushort, _mm256_cvtepu16_epi32) +OPENCV_HAL_IMPL_AVX_EXPAND(v_int16x16, v_int32x8, short, _mm256_cvtepi16_epi32) +OPENCV_HAL_IMPL_AVX_EXPAND(v_uint32x8, v_uint64x4, unsigned, _mm256_cvtepu32_epi64) +OPENCV_HAL_IMPL_AVX_EXPAND(v_int32x8, v_int64x4, int, _mm256_cvtepi32_epi64) + +#define OPENCV_HAL_IMPL_AVX_EXPAND_Q(_Tpvec, _Tp, intrin) \ + inline _Tpvec v256_load_expand_q(const _Tp* ptr) \ + { \ + __m128i a = _mm_loadl_epi64((const __m128i*)ptr); \ + return _Tpvec(intrin(a)); \ + } + +OPENCV_HAL_IMPL_AVX_EXPAND_Q(v_uint32x8, uchar, _mm256_cvtepu8_epi32) +OPENCV_HAL_IMPL_AVX_EXPAND_Q(v_int32x8, schar, _mm256_cvtepi8_epi32) + +/* pack */ +// 16 +inline v_int8x32 v_pack(const v_int16x16& a, const v_int16x16& b) +{ return v_int8x32(_v256_shuffle_odd_64(_mm256_packs_epi16(a.val, b.val))); } + +inline v_uint8x32 v_pack(const v_uint16x16& a, const v_uint16x16& b) +{ + __m256i t = _mm256_set1_epi16(255); + __m256i a1 = _mm256_min_epu16(a.val, t); + __m256i b1 = _mm256_min_epu16(b.val, t); + return v_uint8x32(_v256_shuffle_odd_64(_mm256_packus_epi16(a1, b1))); +} + +inline v_uint8x32 v_pack_u(const v_int16x16& a, const v_int16x16& b) +{ + return v_uint8x32(_v256_shuffle_odd_64(_mm256_packus_epi16(a.val, b.val))); +} + +inline void v_pack_store(schar* ptr, const v_int16x16& a) +{ v_store_low(ptr, v_pack(a, a)); } + +inline void v_pack_store(uchar* ptr, const v_uint16x16& a) +{ + const __m256i m = _mm256_set1_epi16(255); + __m256i am = _mm256_min_epu16(a.val, m); + am = _v256_shuffle_odd_64(_mm256_packus_epi16(am, am)); + v_store_low(ptr, v_uint8x32(am)); +} + +inline void v_pack_u_store(uchar* ptr, const v_int16x16& a) +{ v_store_low(ptr, v_pack_u(a, a)); } + +template inline +v_uint8x32 v_rshr_pack(const v_uint16x16& a, const v_uint16x16& b) +{ + // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. + v_uint16x16 delta = v256_setall_u16((short)(1 << (n-1))); + return v_pack_u(v_reinterpret_as_s16((a + delta) >> n), + v_reinterpret_as_s16((b + delta) >> n)); +} + +template inline +void v_rshr_pack_store(uchar* ptr, const v_uint16x16& a) +{ + v_uint16x16 delta = v256_setall_u16((short)(1 << (n-1))); + v_pack_u_store(ptr, v_reinterpret_as_s16((a + delta) >> n)); +} + +template inline +v_uint8x32 v_rshr_pack_u(const v_int16x16& a, const v_int16x16& b) +{ + v_int16x16 delta = v256_setall_s16((short)(1 << (n-1))); + return v_pack_u((a + delta) >> n, (b + delta) >> n); +} + +template inline +void v_rshr_pack_u_store(uchar* ptr, const v_int16x16& a) +{ + v_int16x16 delta = v256_setall_s16((short)(1 << (n-1))); + v_pack_u_store(ptr, (a + delta) >> n); +} + +template inline +v_int8x32 v_rshr_pack(const v_int16x16& a, const v_int16x16& b) +{ + v_int16x16 delta = v256_setall_s16((short)(1 << (n-1))); + return v_pack((a + delta) >> n, (b + delta) >> n); +} + +template inline +void v_rshr_pack_store(schar* ptr, const v_int16x16& a) +{ + v_int16x16 delta = v256_setall_s16((short)(1 << (n-1))); + v_pack_store(ptr, (a + delta) >> n); +} + +// 32 +inline v_int16x16 v_pack(const v_int32x8& a, const v_int32x8& b) +{ return v_int16x16(_v256_shuffle_odd_64(_mm256_packs_epi32(a.val, b.val))); } + +inline v_uint16x16 v_pack(const v_uint32x8& a, const v_uint32x8& b) +{ return v_uint16x16(_v256_shuffle_odd_64(_v256_packs_epu32(a.val, b.val))); } + +inline v_uint16x16 v_pack_u(const v_int32x8& a, const v_int32x8& b) +{ return v_uint16x16(_v256_shuffle_odd_64(_mm256_packus_epi32(a.val, b.val))); } + +inline void v_pack_store(short* ptr, const v_int32x8& a) +{ v_store_low(ptr, v_pack(a, a)); } + +inline void v_pack_store(ushort* ptr, const v_uint32x8& a) +{ + const __m256i m = _mm256_set1_epi32(65535); + __m256i am = _mm256_min_epu32(a.val, m); + am = _v256_shuffle_odd_64(_mm256_packus_epi32(am, am)); + v_store_low(ptr, v_uint16x16(am)); +} + +inline void v_pack_u_store(ushort* ptr, const v_int32x8& a) +{ v_store_low(ptr, v_pack_u(a, a)); } + + +template inline +v_uint16x16 v_rshr_pack(const v_uint32x8& a, const v_uint32x8& b) +{ + // we assume that n > 0, and so the shifted 32-bit values can be treated as signed numbers. + v_uint32x8 delta = v256_setall_u32(1 << (n-1)); + return v_pack_u(v_reinterpret_as_s32((a + delta) >> n), + v_reinterpret_as_s32((b + delta) >> n)); +} + +template inline +void v_rshr_pack_store(ushort* ptr, const v_uint32x8& a) +{ + v_uint32x8 delta = v256_setall_u32(1 << (n-1)); + v_pack_u_store(ptr, v_reinterpret_as_s32((a + delta) >> n)); +} + +template inline +v_uint16x16 v_rshr_pack_u(const v_int32x8& a, const v_int32x8& b) +{ + v_int32x8 delta = v256_setall_s32(1 << (n-1)); + return v_pack_u((a + delta) >> n, (b + delta) >> n); +} + +template inline +void v_rshr_pack_u_store(ushort* ptr, const v_int32x8& a) +{ + v_int32x8 delta = v256_setall_s32(1 << (n-1)); + v_pack_u_store(ptr, (a + delta) >> n); +} + +template inline +v_int16x16 v_rshr_pack(const v_int32x8& a, const v_int32x8& b) +{ + v_int32x8 delta = v256_setall_s32(1 << (n-1)); + return v_pack((a + delta) >> n, (b + delta) >> n); +} + +template inline +void v_rshr_pack_store(short* ptr, const v_int32x8& a) +{ + v_int32x8 delta = v256_setall_s32(1 << (n-1)); + v_pack_store(ptr, (a + delta) >> n); +} + +// 64 +// Non-saturating pack +inline v_uint32x8 v_pack(const v_uint64x4& a, const v_uint64x4& b) +{ + __m256i a0 = _mm256_shuffle_epi32(a.val, _MM_SHUFFLE(0, 0, 2, 0)); + __m256i b0 = _mm256_shuffle_epi32(b.val, _MM_SHUFFLE(0, 0, 2, 0)); + __m256i ab = _mm256_unpacklo_epi64(a0, b0); // a0, a1, b0, b1, a2, a3, b2, b3 + return v_uint32x8(_v256_shuffle_odd_64(ab)); +} + +inline v_int32x8 v_pack(const v_int64x4& a, const v_int64x4& b) +{ return v_reinterpret_as_s32(v_pack(v_reinterpret_as_u64(a), v_reinterpret_as_u64(b))); } + +inline void v_pack_store(unsigned* ptr, const v_uint64x4& a) +{ + __m256i a0 = _mm256_shuffle_epi32(a.val, _MM_SHUFFLE(0, 0, 2, 0)); + v_store_low(ptr, v_uint32x8(_v256_shuffle_odd_64(a0))); +} + +inline void v_pack_store(int* ptr, const v_int64x4& b) +{ v_pack_store((unsigned*)ptr, v_reinterpret_as_u64(b)); } + +template inline +v_uint32x8 v_rshr_pack(const v_uint64x4& a, const v_uint64x4& b) +{ + v_uint64x4 delta = v256_setall_u64((uint64)1 << (n-1)); + return v_pack((a + delta) >> n, (b + delta) >> n); +} + +template inline +void v_rshr_pack_store(unsigned* ptr, const v_uint64x4& a) +{ + v_uint64x4 delta = v256_setall_u64((uint64)1 << (n-1)); + v_pack_store(ptr, (a + delta) >> n); +} + +template inline +v_int32x8 v_rshr_pack(const v_int64x4& a, const v_int64x4& b) +{ + v_int64x4 delta = v256_setall_s64((int64)1 << (n-1)); + return v_pack((a + delta) >> n, (b + delta) >> n); +} + +template inline +void v_rshr_pack_store(int* ptr, const v_int64x4& a) +{ + v_int64x4 delta = v256_setall_s64((int64)1 << (n-1)); + v_pack_store(ptr, (a + delta) >> n); +} + +// pack boolean +inline v_uint8x32 v_pack_b(const v_uint16x16& a, const v_uint16x16& b) +{ + __m256i ab = _mm256_packs_epi16(a.val, b.val); + return v_uint8x32(_v256_shuffle_odd_64(ab)); +} + +inline v_uint8x32 v_pack_b(const v_uint32x8& a, const v_uint32x8& b, + const v_uint32x8& c, const v_uint32x8& d) +{ + __m256i ab = _mm256_packs_epi32(a.val, b.val); + __m256i cd = _mm256_packs_epi32(c.val, d.val); + + __m256i abcd = _v256_shuffle_odd_64(_mm256_packs_epi16(ab, cd)); + return v_uint8x32(_mm256_shuffle_epi32(abcd, _MM_SHUFFLE(3, 1, 2, 0))); +} + +inline v_uint8x32 v_pack_b(const v_uint64x4& a, const v_uint64x4& b, const v_uint64x4& c, + const v_uint64x4& d, const v_uint64x4& e, const v_uint64x4& f, + const v_uint64x4& g, const v_uint64x4& h) +{ + __m256i ab = _mm256_packs_epi32(a.val, b.val); + __m256i cd = _mm256_packs_epi32(c.val, d.val); + __m256i ef = _mm256_packs_epi32(e.val, f.val); + __m256i gh = _mm256_packs_epi32(g.val, h.val); + + __m256i abcd = _mm256_packs_epi32(ab, cd); + __m256i efgh = _mm256_packs_epi32(ef, gh); + __m256i pkall = _v256_shuffle_odd_64(_mm256_packs_epi16(abcd, efgh)); + + __m256i rev = _mm256_alignr_epi8(pkall, pkall, 8); + return v_uint8x32(_mm256_unpacklo_epi16(pkall, rev)); +} + +/* Recombine */ +// its up there with load and store operations + +/* Extract */ +#define OPENCV_HAL_IMPL_AVX_EXTRACT(_Tpvec) \ + template \ + inline _Tpvec v_extract(const _Tpvec& a, const _Tpvec& b) \ + { return v_rotate_right(a, b); } + +OPENCV_HAL_IMPL_AVX_EXTRACT(v_uint8x32) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_int8x32) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_uint16x16) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_int16x16) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_uint32x8) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_int32x8) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_uint64x4) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_int64x4) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_float32x8) +OPENCV_HAL_IMPL_AVX_EXTRACT(v_float64x4) + + +///////////////////// load deinterleave ///////////////////////////// + +inline void v_load_deinterleave( const uchar* ptr, v_uint8x32& a, v_uint8x32& b ) +{ + __m256i ab0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i ab1 = _mm256_loadu_si256((const __m256i*)(ptr + 32)); + + const __m256i sh = _mm256_setr_epi8(0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15, + 0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15); + __m256i p0 = _mm256_shuffle_epi8(ab0, sh); + __m256i p1 = _mm256_shuffle_epi8(ab1, sh); + __m256i pl = _mm256_permute2x128_si256(p0, p1, 0 + 2*16); + __m256i ph = _mm256_permute2x128_si256(p0, p1, 1 + 3*16); + __m256i a0 = _mm256_unpacklo_epi64(pl, ph); + __m256i b0 = _mm256_unpackhi_epi64(pl, ph); + a = v_uint8x32(a0); + b = v_uint8x32(b0); +} + +inline void v_load_deinterleave( const ushort* ptr, v_uint16x16& a, v_uint16x16& b ) +{ + __m256i ab0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i ab1 = _mm256_loadu_si256((const __m256i*)(ptr + 16)); + + const __m256i sh = _mm256_setr_epi8(0, 1, 4, 5, 8, 9, 12, 13, 2, 3, 6, 7, 10, 11, 14, 15, + 0, 1, 4, 5, 8, 9, 12, 13, 2, 3, 6, 7, 10, 11, 14, 15); + __m256i p0 = _mm256_shuffle_epi8(ab0, sh); + __m256i p1 = _mm256_shuffle_epi8(ab1, sh); + __m256i pl = _mm256_permute2x128_si256(p0, p1, 0 + 2*16); + __m256i ph = _mm256_permute2x128_si256(p0, p1, 1 + 3*16); + __m256i a0 = _mm256_unpacklo_epi64(pl, ph); + __m256i b0 = _mm256_unpackhi_epi64(pl, ph); + a = v_uint16x16(a0); + b = v_uint16x16(b0); +} + +inline void v_load_deinterleave( const unsigned* ptr, v_uint32x8& a, v_uint32x8& b ) +{ + __m256i ab0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i ab1 = _mm256_loadu_si256((const __m256i*)(ptr + 8)); + + const int sh = 0+2*4+1*16+3*64; + __m256i p0 = _mm256_shuffle_epi32(ab0, sh); + __m256i p1 = _mm256_shuffle_epi32(ab1, sh); + __m256i pl = _mm256_permute2x128_si256(p0, p1, 0 + 2*16); + __m256i ph = _mm256_permute2x128_si256(p0, p1, 1 + 3*16); + __m256i a0 = _mm256_unpacklo_epi64(pl, ph); + __m256i b0 = _mm256_unpackhi_epi64(pl, ph); + a = v_uint32x8(a0); + b = v_uint32x8(b0); +} + +inline void v_load_deinterleave( const uint64* ptr, v_uint64x4& a, v_uint64x4& b ) +{ + __m256i ab0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i ab1 = _mm256_loadu_si256((const __m256i*)(ptr + 4)); + + __m256i pl = _mm256_permute2x128_si256(ab0, ab1, 0 + 2*16); + __m256i ph = _mm256_permute2x128_si256(ab0, ab1, 1 + 3*16); + __m256i a0 = _mm256_unpacklo_epi64(pl, ph); + __m256i b0 = _mm256_unpackhi_epi64(pl, ph); + a = v_uint64x4(a0); + b = v_uint64x4(b0); +} + +inline void v_load_deinterleave( const uchar* ptr, v_uint8x32& a, v_uint8x32& b, v_uint8x32& c ) +{ + __m256i bgr0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgr1 = _mm256_loadu_si256((const __m256i*)(ptr + 32)); + __m256i bgr2 = _mm256_loadu_si256((const __m256i*)(ptr + 64)); + + __m256i s02_low = _mm256_permute2x128_si256(bgr0, bgr2, 0 + 2*16); + __m256i s02_high = _mm256_permute2x128_si256(bgr0, bgr2, 1 + 3*16); + + const __m256i m0 = _mm256_setr_epi8(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, + 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0); + const __m256i m1 = _mm256_setr_epi8(0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, + -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1); + + __m256i b0 = _mm256_blendv_epi8(_mm256_blendv_epi8(s02_low, s02_high, m0), bgr1, m1); + __m256i g0 = _mm256_blendv_epi8(_mm256_blendv_epi8(s02_high, s02_low, m1), bgr1, m0); + __m256i r0 = _mm256_blendv_epi8(_mm256_blendv_epi8(bgr1, s02_low, m0), s02_high, m1); + + const __m256i + sh_b = _mm256_setr_epi8(0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14, 1, 4, 7, 10, 13, + 0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14, 1, 4, 7, 10, 13), + sh_g = _mm256_setr_epi8(1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14, + 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14), + sh_r = _mm256_setr_epi8(2, 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, + 2, 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15); + b0 = _mm256_shuffle_epi8(b0, sh_b); + g0 = _mm256_shuffle_epi8(g0, sh_g); + r0 = _mm256_shuffle_epi8(r0, sh_r); + + a = v_uint8x32(b0); + b = v_uint8x32(g0); + c = v_uint8x32(r0); +} + +inline void v_load_deinterleave( const ushort* ptr, v_uint16x16& a, v_uint16x16& b, v_uint16x16& c ) +{ + __m256i bgr0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgr1 = _mm256_loadu_si256((const __m256i*)(ptr + 16)); + __m256i bgr2 = _mm256_loadu_si256((const __m256i*)(ptr + 32)); + + __m256i s02_low = _mm256_permute2x128_si256(bgr0, bgr2, 0 + 2*16); + __m256i s02_high = _mm256_permute2x128_si256(bgr0, bgr2, 1 + 3*16); + + const __m256i m0 = _mm256_setr_epi8(0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, + 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0); + const __m256i m1 = _mm256_setr_epi8(0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, + -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0); + __m256i b0 = _mm256_blendv_epi8(_mm256_blendv_epi8(s02_low, s02_high, m0), bgr1, m1); + __m256i g0 = _mm256_blendv_epi8(_mm256_blendv_epi8(bgr1, s02_low, m0), s02_high, m1); + __m256i r0 = _mm256_blendv_epi8(_mm256_blendv_epi8(s02_high, s02_low, m1), bgr1, m0); + const __m256i sh_b = _mm256_setr_epi8(0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11, + 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11); + const __m256i sh_g = _mm256_setr_epi8(2, 3, 8, 9, 14, 15, 4, 5, 10, 11, 0, 1, 6, 7, 12, 13, + 2, 3, 8, 9, 14, 15, 4, 5, 10, 11, 0, 1, 6, 7, 12, 13); + const __m256i sh_r = _mm256_setr_epi8(4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, + 4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15); + b0 = _mm256_shuffle_epi8(b0, sh_b); + g0 = _mm256_shuffle_epi8(g0, sh_g); + r0 = _mm256_shuffle_epi8(r0, sh_r); + + a = v_uint16x16(b0); + b = v_uint16x16(g0); + c = v_uint16x16(r0); +} + +inline void v_load_deinterleave( const unsigned* ptr, v_uint32x8& a, v_uint32x8& b, v_uint32x8& c ) +{ + __m256i bgr0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgr1 = _mm256_loadu_si256((const __m256i*)(ptr + 8)); + __m256i bgr2 = _mm256_loadu_si256((const __m256i*)(ptr + 16)); + + __m256i s02_low = _mm256_permute2x128_si256(bgr0, bgr2, 0 + 2*16); + __m256i s02_high = _mm256_permute2x128_si256(bgr0, bgr2, 1 + 3*16); + + __m256i b0 = _mm256_blend_epi32(_mm256_blend_epi32(s02_low, s02_high, 0x24), bgr1, 0x92); + __m256i g0 = _mm256_blend_epi32(_mm256_blend_epi32(s02_high, s02_low, 0x92), bgr1, 0x24); + __m256i r0 = _mm256_blend_epi32(_mm256_blend_epi32(bgr1, s02_low, 0x24), s02_high, 0x92); + + b0 = _mm256_shuffle_epi32(b0, 0x6c); + g0 = _mm256_shuffle_epi32(g0, 0xb1); + r0 = _mm256_shuffle_epi32(r0, 0xc6); + + a = v_uint32x8(b0); + b = v_uint32x8(g0); + c = v_uint32x8(r0); +} + +inline void v_load_deinterleave( const uint64* ptr, v_uint64x4& a, v_uint64x4& b, v_uint64x4& c ) +{ + __m256i bgr0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgr1 = _mm256_loadu_si256((const __m256i*)(ptr + 4)); + __m256i bgr2 = _mm256_loadu_si256((const __m256i*)(ptr + 8)); + + __m256i s01 = _mm256_blend_epi32(bgr0, bgr1, 0xf0); + __m256i s12 = _mm256_blend_epi32(bgr1, bgr2, 0xf0); + __m256i s20r = _mm256_permute4x64_epi64(_mm256_blend_epi32(bgr2, bgr0, 0xf0), 0x1b); + __m256i b0 = _mm256_unpacklo_epi64(s01, s20r); + __m256i g0 = _mm256_alignr_epi8(s12, s01, 8); + __m256i r0 = _mm256_unpackhi_epi64(s20r, s12); + + a = v_uint64x4(b0); + b = v_uint64x4(g0); + c = v_uint64x4(r0); +} + +inline void v_load_deinterleave( const uchar* ptr, v_uint8x32& a, v_uint8x32& b, v_uint8x32& c, v_uint8x32& d ) +{ + __m256i bgr0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgr1 = _mm256_loadu_si256((const __m256i*)(ptr + 32)); + __m256i bgr2 = _mm256_loadu_si256((const __m256i*)(ptr + 64)); + __m256i bgr3 = _mm256_loadu_si256((const __m256i*)(ptr + 96)); + const __m256i sh = _mm256_setr_epi8(0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, + 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15); + + __m256i p0 = _mm256_shuffle_epi8(bgr0, sh); + __m256i p1 = _mm256_shuffle_epi8(bgr1, sh); + __m256i p2 = _mm256_shuffle_epi8(bgr2, sh); + __m256i p3 = _mm256_shuffle_epi8(bgr3, sh); + + __m256i p01l = _mm256_unpacklo_epi32(p0, p1); + __m256i p01h = _mm256_unpackhi_epi32(p0, p1); + __m256i p23l = _mm256_unpacklo_epi32(p2, p3); + __m256i p23h = _mm256_unpackhi_epi32(p2, p3); + + __m256i pll = _mm256_permute2x128_si256(p01l, p23l, 0 + 2*16); + __m256i plh = _mm256_permute2x128_si256(p01l, p23l, 1 + 3*16); + __m256i phl = _mm256_permute2x128_si256(p01h, p23h, 0 + 2*16); + __m256i phh = _mm256_permute2x128_si256(p01h, p23h, 1 + 3*16); + + __m256i b0 = _mm256_unpacklo_epi32(pll, plh); + __m256i g0 = _mm256_unpackhi_epi32(pll, plh); + __m256i r0 = _mm256_unpacklo_epi32(phl, phh); + __m256i a0 = _mm256_unpackhi_epi32(phl, phh); + + a = v_uint8x32(b0); + b = v_uint8x32(g0); + c = v_uint8x32(r0); + d = v_uint8x32(a0); +} + +inline void v_load_deinterleave( const ushort* ptr, v_uint16x16& a, v_uint16x16& b, v_uint16x16& c, v_uint16x16& d ) +{ + __m256i bgr0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgr1 = _mm256_loadu_si256((const __m256i*)(ptr + 16)); + __m256i bgr2 = _mm256_loadu_si256((const __m256i*)(ptr + 32)); + __m256i bgr3 = _mm256_loadu_si256((const __m256i*)(ptr + 48)); + const __m256i sh = _mm256_setr_epi8(0, 1, 8, 9, 2, 3, 10, 11, 4, 5, 12, 13, 6, 7, 14, 15, + 0, 1, 8, 9, 2, 3, 10, 11, 4, 5, 12, 13, 6, 7, 14, 15); + __m256i p0 = _mm256_shuffle_epi8(bgr0, sh); + __m256i p1 = _mm256_shuffle_epi8(bgr1, sh); + __m256i p2 = _mm256_shuffle_epi8(bgr2, sh); + __m256i p3 = _mm256_shuffle_epi8(bgr3, sh); + + __m256i p01l = _mm256_unpacklo_epi32(p0, p1); + __m256i p01h = _mm256_unpackhi_epi32(p0, p1); + __m256i p23l = _mm256_unpacklo_epi32(p2, p3); + __m256i p23h = _mm256_unpackhi_epi32(p2, p3); + + __m256i pll = _mm256_permute2x128_si256(p01l, p23l, 0 + 2*16); + __m256i plh = _mm256_permute2x128_si256(p01l, p23l, 1 + 3*16); + __m256i phl = _mm256_permute2x128_si256(p01h, p23h, 0 + 2*16); + __m256i phh = _mm256_permute2x128_si256(p01h, p23h, 1 + 3*16); + + __m256i b0 = _mm256_unpacklo_epi32(pll, plh); + __m256i g0 = _mm256_unpackhi_epi32(pll, plh); + __m256i r0 = _mm256_unpacklo_epi32(phl, phh); + __m256i a0 = _mm256_unpackhi_epi32(phl, phh); + + a = v_uint16x16(b0); + b = v_uint16x16(g0); + c = v_uint16x16(r0); + d = v_uint16x16(a0); +} + +inline void v_load_deinterleave( const unsigned* ptr, v_uint32x8& a, v_uint32x8& b, v_uint32x8& c, v_uint32x8& d ) +{ + __m256i p0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i p1 = _mm256_loadu_si256((const __m256i*)(ptr + 8)); + __m256i p2 = _mm256_loadu_si256((const __m256i*)(ptr + 16)); + __m256i p3 = _mm256_loadu_si256((const __m256i*)(ptr + 24)); + + __m256i p01l = _mm256_unpacklo_epi32(p0, p1); + __m256i p01h = _mm256_unpackhi_epi32(p0, p1); + __m256i p23l = _mm256_unpacklo_epi32(p2, p3); + __m256i p23h = _mm256_unpackhi_epi32(p2, p3); + + __m256i pll = _mm256_permute2x128_si256(p01l, p23l, 0 + 2*16); + __m256i plh = _mm256_permute2x128_si256(p01l, p23l, 1 + 3*16); + __m256i phl = _mm256_permute2x128_si256(p01h, p23h, 0 + 2*16); + __m256i phh = _mm256_permute2x128_si256(p01h, p23h, 1 + 3*16); + + __m256i b0 = _mm256_unpacklo_epi32(pll, plh); + __m256i g0 = _mm256_unpackhi_epi32(pll, plh); + __m256i r0 = _mm256_unpacklo_epi32(phl, phh); + __m256i a0 = _mm256_unpackhi_epi32(phl, phh); + + a = v_uint32x8(b0); + b = v_uint32x8(g0); + c = v_uint32x8(r0); + d = v_uint32x8(a0); +} + +inline void v_load_deinterleave( const uint64* ptr, v_uint64x4& a, v_uint64x4& b, v_uint64x4& c, v_uint64x4& d ) +{ + __m256i bgra0 = _mm256_loadu_si256((const __m256i*)ptr); + __m256i bgra1 = _mm256_loadu_si256((const __m256i*)(ptr + 4)); + __m256i bgra2 = _mm256_loadu_si256((const __m256i*)(ptr + 8)); + __m256i bgra3 = _mm256_loadu_si256((const __m256i*)(ptr + 12)); + + __m256i l02 = _mm256_permute2x128_si256(bgra0, bgra2, 0 + 2*16); + __m256i h02 = _mm256_permute2x128_si256(bgra0, bgra2, 1 + 3*16); + __m256i l13 = _mm256_permute2x128_si256(bgra1, bgra3, 0 + 2*16); + __m256i h13 = _mm256_permute2x128_si256(bgra1, bgra3, 1 + 3*16); + + __m256i b0 = _mm256_unpacklo_epi64(l02, l13); + __m256i g0 = _mm256_unpackhi_epi64(l02, l13); + __m256i r0 = _mm256_unpacklo_epi64(h02, h13); + __m256i a0 = _mm256_unpackhi_epi64(h02, h13); + + a = v_uint64x4(b0); + b = v_uint64x4(g0); + c = v_uint64x4(r0); + d = v_uint64x4(a0); +} + +///////////////////////////// store interleave ///////////////////////////////////// + +inline void v_store_interleave( uchar* ptr, const v_uint8x32& x, const v_uint8x32& y, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i xy_l = _mm256_unpacklo_epi8(x.val, y.val); + __m256i xy_h = _mm256_unpackhi_epi8(x.val, y.val); + + __m256i xy0 = _mm256_permute2x128_si256(xy_l, xy_h, 0 + 2*16); + __m256i xy1 = _mm256_permute2x128_si256(xy_l, xy_h, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, xy0); + _mm256_stream_si256((__m256i*)(ptr + 32), xy1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, xy0); + _mm256_store_si256((__m256i*)(ptr + 32), xy1); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, xy0); + _mm256_storeu_si256((__m256i*)(ptr + 32), xy1); + } +} + +inline void v_store_interleave( ushort* ptr, const v_uint16x16& x, const v_uint16x16& y, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i xy_l = _mm256_unpacklo_epi16(x.val, y.val); + __m256i xy_h = _mm256_unpackhi_epi16(x.val, y.val); + + __m256i xy0 = _mm256_permute2x128_si256(xy_l, xy_h, 0 + 2*16); + __m256i xy1 = _mm256_permute2x128_si256(xy_l, xy_h, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, xy0); + _mm256_stream_si256((__m256i*)(ptr + 16), xy1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, xy0); + _mm256_store_si256((__m256i*)(ptr + 16), xy1); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, xy0); + _mm256_storeu_si256((__m256i*)(ptr + 16), xy1); + } +} + +inline void v_store_interleave( unsigned* ptr, const v_uint32x8& x, const v_uint32x8& y, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i xy_l = _mm256_unpacklo_epi32(x.val, y.val); + __m256i xy_h = _mm256_unpackhi_epi32(x.val, y.val); + + __m256i xy0 = _mm256_permute2x128_si256(xy_l, xy_h, 0 + 2*16); + __m256i xy1 = _mm256_permute2x128_si256(xy_l, xy_h, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, xy0); + _mm256_stream_si256((__m256i*)(ptr + 8), xy1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, xy0); + _mm256_store_si256((__m256i*)(ptr + 8), xy1); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, xy0); + _mm256_storeu_si256((__m256i*)(ptr + 8), xy1); + } +} + +inline void v_store_interleave( uint64* ptr, const v_uint64x4& x, const v_uint64x4& y, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i xy_l = _mm256_unpacklo_epi64(x.val, y.val); + __m256i xy_h = _mm256_unpackhi_epi64(x.val, y.val); + + __m256i xy0 = _mm256_permute2x128_si256(xy_l, xy_h, 0 + 2*16); + __m256i xy1 = _mm256_permute2x128_si256(xy_l, xy_h, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, xy0); + _mm256_stream_si256((__m256i*)(ptr + 4), xy1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, xy0); + _mm256_store_si256((__m256i*)(ptr + 4), xy1); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, xy0); + _mm256_storeu_si256((__m256i*)(ptr + 4), xy1); + } +} + +inline void v_store_interleave( uchar* ptr, const v_uint8x32& a, const v_uint8x32& b, const v_uint8x32& c, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + const __m256i sh_b = _mm256_setr_epi8( + 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, 10, 5, + 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, 10, 5); + const __m256i sh_g = _mm256_setr_epi8( + 5, 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, 10, + 5, 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, 10); + const __m256i sh_r = _mm256_setr_epi8( + 10, 5, 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, + 10, 5, 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15); + + __m256i b0 = _mm256_shuffle_epi8(a.val, sh_b); + __m256i g0 = _mm256_shuffle_epi8(b.val, sh_g); + __m256i r0 = _mm256_shuffle_epi8(c.val, sh_r); + + const __m256i m0 = _mm256_setr_epi8(0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, + 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0); + const __m256i m1 = _mm256_setr_epi8(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, + 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0); + + __m256i p0 = _mm256_blendv_epi8(_mm256_blendv_epi8(b0, g0, m0), r0, m1); + __m256i p1 = _mm256_blendv_epi8(_mm256_blendv_epi8(g0, r0, m0), b0, m1); + __m256i p2 = _mm256_blendv_epi8(_mm256_blendv_epi8(r0, b0, m0), g0, m1); + + __m256i bgr0 = _mm256_permute2x128_si256(p0, p1, 0 + 2*16); + __m256i bgr1 = _mm256_permute2x128_si256(p2, p0, 0 + 3*16); + __m256i bgr2 = _mm256_permute2x128_si256(p1, p2, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgr0); + _mm256_stream_si256((__m256i*)(ptr + 32), bgr1); + _mm256_stream_si256((__m256i*)(ptr + 64), bgr2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgr0); + _mm256_store_si256((__m256i*)(ptr + 32), bgr1); + _mm256_store_si256((__m256i*)(ptr + 64), bgr2); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgr0); + _mm256_storeu_si256((__m256i*)(ptr + 32), bgr1); + _mm256_storeu_si256((__m256i*)(ptr + 64), bgr2); + } +} + +inline void v_store_interleave( ushort* ptr, const v_uint16x16& a, const v_uint16x16& b, const v_uint16x16& c, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + const __m256i sh_b = _mm256_setr_epi8( + 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11, + 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11); + const __m256i sh_g = _mm256_setr_epi8( + 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, + 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5); + const __m256i sh_r = _mm256_setr_epi8( + 4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, + 4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15); + + __m256i b0 = _mm256_shuffle_epi8(a.val, sh_b); + __m256i g0 = _mm256_shuffle_epi8(b.val, sh_g); + __m256i r0 = _mm256_shuffle_epi8(c.val, sh_r); + + const __m256i m0 = _mm256_setr_epi8(0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, + 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0); + const __m256i m1 = _mm256_setr_epi8(0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, + -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0); + + __m256i p0 = _mm256_blendv_epi8(_mm256_blendv_epi8(b0, g0, m0), r0, m1); + __m256i p1 = _mm256_blendv_epi8(_mm256_blendv_epi8(g0, r0, m0), b0, m1); + __m256i p2 = _mm256_blendv_epi8(_mm256_blendv_epi8(r0, b0, m0), g0, m1); + + __m256i bgr0 = _mm256_permute2x128_si256(p0, p2, 0 + 2*16); + //__m256i bgr1 = p1; + __m256i bgr2 = _mm256_permute2x128_si256(p0, p2, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgr0); + _mm256_stream_si256((__m256i*)(ptr + 16), p1); + _mm256_stream_si256((__m256i*)(ptr + 32), bgr2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgr0); + _mm256_store_si256((__m256i*)(ptr + 16), p1); + _mm256_store_si256((__m256i*)(ptr + 32), bgr2); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgr0); + _mm256_storeu_si256((__m256i*)(ptr + 16), p1); + _mm256_storeu_si256((__m256i*)(ptr + 32), bgr2); + } +} + +inline void v_store_interleave( unsigned* ptr, const v_uint32x8& a, const v_uint32x8& b, const v_uint32x8& c, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i b0 = _mm256_shuffle_epi32(a.val, 0x6c); + __m256i g0 = _mm256_shuffle_epi32(b.val, 0xb1); + __m256i r0 = _mm256_shuffle_epi32(c.val, 0xc6); + + __m256i p0 = _mm256_blend_epi32(_mm256_blend_epi32(b0, g0, 0x92), r0, 0x24); + __m256i p1 = _mm256_blend_epi32(_mm256_blend_epi32(g0, r0, 0x92), b0, 0x24); + __m256i p2 = _mm256_blend_epi32(_mm256_blend_epi32(r0, b0, 0x92), g0, 0x24); + + __m256i bgr0 = _mm256_permute2x128_si256(p0, p1, 0 + 2*16); + //__m256i bgr1 = p2; + __m256i bgr2 = _mm256_permute2x128_si256(p0, p1, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgr0); + _mm256_stream_si256((__m256i*)(ptr + 8), p2); + _mm256_stream_si256((__m256i*)(ptr + 16), bgr2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgr0); + _mm256_store_si256((__m256i*)(ptr + 8), p2); + _mm256_store_si256((__m256i*)(ptr + 16), bgr2); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgr0); + _mm256_storeu_si256((__m256i*)(ptr + 8), p2); + _mm256_storeu_si256((__m256i*)(ptr + 16), bgr2); + } +} + +inline void v_store_interleave( uint64* ptr, const v_uint64x4& a, const v_uint64x4& b, const v_uint64x4& c, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i s01 = _mm256_unpacklo_epi64(a.val, b.val); + __m256i s12 = _mm256_unpackhi_epi64(b.val, c.val); + __m256i s20 = _mm256_blend_epi32(c.val, a.val, 0xcc); + + __m256i bgr0 = _mm256_permute2x128_si256(s01, s20, 0 + 2*16); + __m256i bgr1 = _mm256_blend_epi32(s01, s12, 0x0f); + __m256i bgr2 = _mm256_permute2x128_si256(s20, s12, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgr0); + _mm256_stream_si256((__m256i*)(ptr + 4), bgr1); + _mm256_stream_si256((__m256i*)(ptr + 8), bgr2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgr0); + _mm256_store_si256((__m256i*)(ptr + 4), bgr1); + _mm256_store_si256((__m256i*)(ptr + 8), bgr2); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgr0); + _mm256_storeu_si256((__m256i*)(ptr + 4), bgr1); + _mm256_storeu_si256((__m256i*)(ptr + 8), bgr2); + } +} + +inline void v_store_interleave( uchar* ptr, const v_uint8x32& a, const v_uint8x32& b, + const v_uint8x32& c, const v_uint8x32& d, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i bg0 = _mm256_unpacklo_epi8(a.val, b.val); + __m256i bg1 = _mm256_unpackhi_epi8(a.val, b.val); + __m256i ra0 = _mm256_unpacklo_epi8(c.val, d.val); + __m256i ra1 = _mm256_unpackhi_epi8(c.val, d.val); + + __m256i bgra0_ = _mm256_unpacklo_epi16(bg0, ra0); + __m256i bgra1_ = _mm256_unpackhi_epi16(bg0, ra0); + __m256i bgra2_ = _mm256_unpacklo_epi16(bg1, ra1); + __m256i bgra3_ = _mm256_unpackhi_epi16(bg1, ra1); + + __m256i bgra0 = _mm256_permute2x128_si256(bgra0_, bgra1_, 0 + 2*16); + __m256i bgra2 = _mm256_permute2x128_si256(bgra0_, bgra1_, 1 + 3*16); + __m256i bgra1 = _mm256_permute2x128_si256(bgra2_, bgra3_, 0 + 2*16); + __m256i bgra3 = _mm256_permute2x128_si256(bgra2_, bgra3_, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgra0); + _mm256_stream_si256((__m256i*)(ptr + 32), bgra1); + _mm256_stream_si256((__m256i*)(ptr + 64), bgra2); + _mm256_stream_si256((__m256i*)(ptr + 96), bgra3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgra0); + _mm256_store_si256((__m256i*)(ptr + 32), bgra1); + _mm256_store_si256((__m256i*)(ptr + 64), bgra2); + _mm256_store_si256((__m256i*)(ptr + 96), bgra3); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgra0); + _mm256_storeu_si256((__m256i*)(ptr + 32), bgra1); + _mm256_storeu_si256((__m256i*)(ptr + 64), bgra2); + _mm256_storeu_si256((__m256i*)(ptr + 96), bgra3); + } +} + +inline void v_store_interleave( ushort* ptr, const v_uint16x16& a, const v_uint16x16& b, + const v_uint16x16& c, const v_uint16x16& d, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i bg0 = _mm256_unpacklo_epi16(a.val, b.val); + __m256i bg1 = _mm256_unpackhi_epi16(a.val, b.val); + __m256i ra0 = _mm256_unpacklo_epi16(c.val, d.val); + __m256i ra1 = _mm256_unpackhi_epi16(c.val, d.val); + + __m256i bgra0_ = _mm256_unpacklo_epi32(bg0, ra0); + __m256i bgra1_ = _mm256_unpackhi_epi32(bg0, ra0); + __m256i bgra2_ = _mm256_unpacklo_epi32(bg1, ra1); + __m256i bgra3_ = _mm256_unpackhi_epi32(bg1, ra1); + + __m256i bgra0 = _mm256_permute2x128_si256(bgra0_, bgra1_, 0 + 2*16); + __m256i bgra2 = _mm256_permute2x128_si256(bgra0_, bgra1_, 1 + 3*16); + __m256i bgra1 = _mm256_permute2x128_si256(bgra2_, bgra3_, 0 + 2*16); + __m256i bgra3 = _mm256_permute2x128_si256(bgra2_, bgra3_, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgra0); + _mm256_stream_si256((__m256i*)(ptr + 16), bgra1); + _mm256_stream_si256((__m256i*)(ptr + 32), bgra2); + _mm256_stream_si256((__m256i*)(ptr + 48), bgra3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgra0); + _mm256_store_si256((__m256i*)(ptr + 16), bgra1); + _mm256_store_si256((__m256i*)(ptr + 32), bgra2); + _mm256_store_si256((__m256i*)(ptr + 48), bgra3); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgra0); + _mm256_storeu_si256((__m256i*)(ptr + 16), bgra1); + _mm256_storeu_si256((__m256i*)(ptr + 32), bgra2); + _mm256_storeu_si256((__m256i*)(ptr + 48), bgra3); + } +} + +inline void v_store_interleave( unsigned* ptr, const v_uint32x8& a, const v_uint32x8& b, + const v_uint32x8& c, const v_uint32x8& d, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i bg0 = _mm256_unpacklo_epi32(a.val, b.val); + __m256i bg1 = _mm256_unpackhi_epi32(a.val, b.val); + __m256i ra0 = _mm256_unpacklo_epi32(c.val, d.val); + __m256i ra1 = _mm256_unpackhi_epi32(c.val, d.val); + + __m256i bgra0_ = _mm256_unpacklo_epi64(bg0, ra0); + __m256i bgra1_ = _mm256_unpackhi_epi64(bg0, ra0); + __m256i bgra2_ = _mm256_unpacklo_epi64(bg1, ra1); + __m256i bgra3_ = _mm256_unpackhi_epi64(bg1, ra1); + + __m256i bgra0 = _mm256_permute2x128_si256(bgra0_, bgra1_, 0 + 2*16); + __m256i bgra2 = _mm256_permute2x128_si256(bgra0_, bgra1_, 1 + 3*16); + __m256i bgra1 = _mm256_permute2x128_si256(bgra2_, bgra3_, 0 + 2*16); + __m256i bgra3 = _mm256_permute2x128_si256(bgra2_, bgra3_, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgra0); + _mm256_stream_si256((__m256i*)(ptr + 8), bgra1); + _mm256_stream_si256((__m256i*)(ptr + 16), bgra2); + _mm256_stream_si256((__m256i*)(ptr + 24), bgra3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgra0); + _mm256_store_si256((__m256i*)(ptr + 8), bgra1); + _mm256_store_si256((__m256i*)(ptr + 16), bgra2); + _mm256_store_si256((__m256i*)(ptr + 24), bgra3); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgra0); + _mm256_storeu_si256((__m256i*)(ptr + 8), bgra1); + _mm256_storeu_si256((__m256i*)(ptr + 16), bgra2); + _mm256_storeu_si256((__m256i*)(ptr + 24), bgra3); + } +} + +inline void v_store_interleave( uint64* ptr, const v_uint64x4& a, const v_uint64x4& b, + const v_uint64x4& c, const v_uint64x4& d, + hal::StoreMode mode=hal::STORE_UNALIGNED ) +{ + __m256i bg0 = _mm256_unpacklo_epi64(a.val, b.val); + __m256i bg1 = _mm256_unpackhi_epi64(a.val, b.val); + __m256i ra0 = _mm256_unpacklo_epi64(c.val, d.val); + __m256i ra1 = _mm256_unpackhi_epi64(c.val, d.val); + + __m256i bgra0 = _mm256_permute2x128_si256(bg0, ra0, 0 + 2*16); + __m256i bgra1 = _mm256_permute2x128_si256(bg1, ra1, 0 + 2*16); + __m256i bgra2 = _mm256_permute2x128_si256(bg0, ra0, 1 + 3*16); + __m256i bgra3 = _mm256_permute2x128_si256(bg1, ra1, 1 + 3*16); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm256_stream_si256((__m256i*)ptr, bgra0); + _mm256_stream_si256((__m256i*)(ptr + 4), bgra1); + _mm256_stream_si256((__m256i*)(ptr + 8), bgra2); + _mm256_stream_si256((__m256i*)(ptr + 12), bgra3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm256_store_si256((__m256i*)ptr, bgra0); + _mm256_store_si256((__m256i*)(ptr + 4), bgra1); + _mm256_store_si256((__m256i*)(ptr + 8), bgra2); + _mm256_store_si256((__m256i*)(ptr + 12), bgra3); + } + else + { + _mm256_storeu_si256((__m256i*)ptr, bgra0); + _mm256_storeu_si256((__m256i*)(ptr + 4), bgra1); + _mm256_storeu_si256((__m256i*)(ptr + 8), bgra2); + _mm256_storeu_si256((__m256i*)(ptr + 12), bgra3); + } +} + +#define OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(_Tpvec0, _Tp0, suffix0, _Tpvec1, _Tp1, suffix1) \ +inline void v_load_deinterleave( const _Tp0* ptr, _Tpvec0& a0, _Tpvec0& b0 ) \ +{ \ + _Tpvec1 a1, b1; \ + v_load_deinterleave((const _Tp1*)ptr, a1, b1); \ + a0 = v_reinterpret_as_##suffix0(a1); \ + b0 = v_reinterpret_as_##suffix0(b1); \ +} \ +inline void v_load_deinterleave( const _Tp0* ptr, _Tpvec0& a0, _Tpvec0& b0, _Tpvec0& c0 ) \ +{ \ + _Tpvec1 a1, b1, c1; \ + v_load_deinterleave((const _Tp1*)ptr, a1, b1, c1); \ + a0 = v_reinterpret_as_##suffix0(a1); \ + b0 = v_reinterpret_as_##suffix0(b1); \ + c0 = v_reinterpret_as_##suffix0(c1); \ +} \ +inline void v_load_deinterleave( const _Tp0* ptr, _Tpvec0& a0, _Tpvec0& b0, _Tpvec0& c0, _Tpvec0& d0 ) \ +{ \ + _Tpvec1 a1, b1, c1, d1; \ + v_load_deinterleave((const _Tp1*)ptr, a1, b1, c1, d1); \ + a0 = v_reinterpret_as_##suffix0(a1); \ + b0 = v_reinterpret_as_##suffix0(b1); \ + c0 = v_reinterpret_as_##suffix0(c1); \ + d0 = v_reinterpret_as_##suffix0(d1); \ +} \ +inline void v_store_interleave( _Tp0* ptr, const _Tpvec0& a0, const _Tpvec0& b0, \ + hal::StoreMode mode=hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec1 a1 = v_reinterpret_as_##suffix1(a0); \ + _Tpvec1 b1 = v_reinterpret_as_##suffix1(b0); \ + v_store_interleave((_Tp1*)ptr, a1, b1, mode); \ +} \ +inline void v_store_interleave( _Tp0* ptr, const _Tpvec0& a0, const _Tpvec0& b0, const _Tpvec0& c0, \ + hal::StoreMode mode=hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec1 a1 = v_reinterpret_as_##suffix1(a0); \ + _Tpvec1 b1 = v_reinterpret_as_##suffix1(b0); \ + _Tpvec1 c1 = v_reinterpret_as_##suffix1(c0); \ + v_store_interleave((_Tp1*)ptr, a1, b1, c1, mode); \ +} \ +inline void v_store_interleave( _Tp0* ptr, const _Tpvec0& a0, const _Tpvec0& b0, \ + const _Tpvec0& c0, const _Tpvec0& d0, \ + hal::StoreMode mode=hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec1 a1 = v_reinterpret_as_##suffix1(a0); \ + _Tpvec1 b1 = v_reinterpret_as_##suffix1(b0); \ + _Tpvec1 c1 = v_reinterpret_as_##suffix1(c0); \ + _Tpvec1 d1 = v_reinterpret_as_##suffix1(d0); \ + v_store_interleave((_Tp1*)ptr, a1, b1, c1, d1, mode); \ +} + +OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(v_int8x32, schar, s8, v_uint8x32, uchar, u8) +OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(v_int16x16, short, s16, v_uint16x16, ushort, u16) +OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(v_int32x8, int, s32, v_uint32x8, unsigned, u32) +OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(v_float32x8, float, f32, v_uint32x8, unsigned, u32) +OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(v_int64x4, int64, s64, v_uint64x4, uint64, u64) +OPENCV_HAL_IMPL_AVX_LOADSTORE_INTERLEAVE(v_float64x4, double, f64, v_uint64x4, uint64, u64) + +// FP16 +inline v_float32x8 v256_load_expand(const float16_t* ptr) +{ + return v_float32x8(_mm256_cvtph_ps(_mm_loadu_si128((const __m128i*)ptr))); +} + +inline void v_pack_store(float16_t* ptr, const v_float32x8& a) +{ + __m128i ah = _mm256_cvtps_ph(a.val, 0); + _mm_storeu_si128((__m128i*)ptr, ah); +} + +inline void v256_cleanup() { _mm256_zeroall(); } + +//! @name Check SIMD256 support +//! @{ +//! @brief Check CPU capability of SIMD operation +static inline bool hasSIMD256() +{ + return (CV_CPU_HAS_SUPPORT_AVX2) ? true : false; +} +//! @} + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END + +//! @endcond + +} // cv:: + +#endif // OPENCV_HAL_INTRIN_AVX_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_cpp.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_cpp.hpp similarity index 81% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_cpp.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_cpp.hpp index e7ea899b7..757c67b31 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_cpp.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_cpp.hpp @@ -108,8 +108,8 @@ block and to save contents of the register to memory block. These operations allow to reorder or recombine elements in one or multiple vectors. - Interleave, deinterleave (2, 3 and 4 channels): @ref v_load_deinterleave, @ref v_store_interleave -- Expand: @ref v_load_expand, @ref v_load_expand_q, @ref v_expand -- Pack: @ref v_pack, @ref v_pack_u, @ref v_rshr_pack, @ref v_rshr_pack_u, +- Expand: @ref v_load_expand, @ref v_load_expand_q, @ref v_expand, @ref v_expand_low, @ref v_expand_high +- Pack: @ref v_pack, @ref v_pack_u, @ref v_pack_b, @ref v_rshr_pack, @ref v_rshr_pack_u, @ref v_pack_store, @ref v_pack_u_store, @ref v_rshr_pack_store, @ref v_rshr_pack_u_store - Recombine: @ref v_zip, @ref v_recombine, @ref v_combine_low, @ref v_combine_high - Extract: @ref v_extract @@ -159,7 +159,7 @@ Most of these operations return only one value. ### Other math - Some frequent operations: @ref v_sqrt, @ref v_invsqrt, @ref v_magnitude, @ref v_sqr_magnitude -- Absolute values: @ref v_abs, @ref v_absdiff +- Absolute values: @ref v_abs, @ref v_absdiff, @ref v_absdiffs ### Conversions @@ -185,23 +185,29 @@ Regular integers: |load, store | x | x | x | x | x | x | |interleave | x | x | x | x | x | x | |expand | x | x | x | x | x | x | +|expand_low | x | x | x | x | x | x | +|expand_high | x | x | x | x | x | x | |expand_q | x | x | | | | | |add, sub | x | x | x | x | x | x | |add_wrap, sub_wrap | x | x | x | x | | | -|mul | | | x | x | x | x | -|mul_expand | | | x | x | x | | +|mul_wrap | x | x | x | x | | | +|mul | x | x | x | x | x | x | +|mul_expand | x | x | x | x | x | | |compare | x | x | x | x | x | x | |shift | | | x | x | x | x | |dotprod | | | | x | | | |logical | x | x | x | x | x | x | |min, max | x | x | x | x | x | x | |absdiff | x | x | x | x | x | x | +|absdiffs | | x | | x | | | |reduce | | | | | x | x | |mask | x | x | x | x | x | x | |pack | x | x | x | x | x | x | |pack_u | x | | x | | | | +|pack_b | x | | | | | | |unpack | x | x | x | x | x | x | |extract | x | x | x | x | x | x | +|rotate (lanes) | x | x | x | x | x | x | |cvt_flt32 | | | | | | x | |cvt_flt64 | | | | | | x | |transpose4x4 | | | | | x | x | @@ -215,6 +221,7 @@ Big integers: |shift | x | x | |logical | x | x | |extract | x | x | +|rotate (lanes) | x | x | Floating point: @@ -236,7 +243,8 @@ Floating point: |sqrt, abs | x | x | |float math | x | x | |transpose4x4 | x | | - +|extract | x | x | +|rotate (lanes) | x | x | @{ */ @@ -244,8 +252,6 @@ template struct v_reg { //! @cond IGNORED typedef _Tp lane_type; - typedef v_reg::int_type, n> int_vec; - typedef v_reg::abs_type, n> abs_vec; enum { nlanes = n }; // !@endcond @@ -677,9 +683,28 @@ OPENCV_HAL_IMPL_CMP_OP(==) For all types except 64-bit integer values. */ OPENCV_HAL_IMPL_CMP_OP(!=) +template +inline v_reg v_not_nan(const v_reg& a) +{ + typedef typename V_TypeTraits::int_type itype; + v_reg c; + for (int i = 0; i < n; i++) + c.s[i] = V_TypeTraits::reinterpret_from_int((itype)-(int)(a.s[i] == a.s[i])); + return c; +} +template +inline v_reg v_not_nan(const v_reg& a) +{ + typedef typename V_TypeTraits::int_type itype; + v_reg c; + for (int i = 0; i < n; i++) + c.s[i] = V_TypeTraits::reinterpret_from_int((itype)-(int)(a.s[i] == a.s[i])); + return c; +} + //! @brief Helper macro //! @ingroup core_hal_intrin_impl -#define OPENCV_HAL_IMPL_ADD_SUB_OP(func, bin_op, cast_op, _Tp2) \ +#define OPENCV_HAL_IMPL_ARITHM_OP(func, bin_op, cast_op, _Tp2) \ template \ inline v_reg<_Tp2, n> func(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) \ { \ @@ -693,12 +718,17 @@ inline v_reg<_Tp2, n> func(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) \ /** @brief Add values without saturation For 8- and 16-bit integer values. */ -OPENCV_HAL_IMPL_ADD_SUB_OP(v_add_wrap, +, (_Tp), _Tp) +OPENCV_HAL_IMPL_ARITHM_OP(v_add_wrap, +, (_Tp), _Tp) /** @brief Subtract values without saturation For 8- and 16-bit integer values. */ -OPENCV_HAL_IMPL_ADD_SUB_OP(v_sub_wrap, -, (_Tp), _Tp) +OPENCV_HAL_IMPL_ARITHM_OP(v_sub_wrap, -, (_Tp), _Tp) + +/** @brief Multiply values without saturation + +For 8- and 16-bit integer values. */ +OPENCV_HAL_IMPL_ARITHM_OP(v_mul_wrap, *, (_Tp), _Tp) //! @cond IGNORED template inline T _absdiff(T a, T b) @@ -753,6 +783,19 @@ inline v_float64x2 v_absdiff(const v_float64x2& a, const v_float64x2& b) return c; } +/** @brief Saturating absolute difference + +Returns \f$ saturate(|a - b|) \f$ . +For 8-, 16-bit signed integer source types. */ +template +inline v_reg<_Tp, n> v_absdiffs(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) +{ + v_reg<_Tp, n> c; + for( int i = 0; i < n; i++) + c.s[i] = saturate_cast<_Tp>(std::abs(a.s[i] - b.s[i])); + return c; +} + /** @brief Inversed square root Returns \f$ 1/sqrt(a) \f$ @@ -794,11 +837,11 @@ inline v_reg<_Tp, n> v_sqr_magnitude(const v_reg<_Tp, n>& a, const v_reg<_Tp, n> /** @brief Multiply and add -Returns \f$ a*b + c \f$ -For floating point types only. */ + Returns \f$ a*b + c \f$ + For floating point types and signed 32bit int only. */ template -inline v_reg<_Tp, n> v_muladd(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b, - const v_reg<_Tp, n>& c) +inline v_reg<_Tp, n> v_fma(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b, + const v_reg<_Tp, n>& c) { v_reg<_Tp, n> d; for( int i = 0; i < n; i++ ) @@ -806,6 +849,14 @@ inline v_reg<_Tp, n> v_muladd(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b, return d; } +/** @brief A synonym for v_fma */ +template +inline v_reg<_Tp, n> v_muladd(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b, + const v_reg<_Tp, n>& c) +{ + return v_fma(a, b, c); +} + /** @brief Dot product of elements Multiply values in two registers and sum adjacent result pairs. @@ -828,6 +879,29 @@ template inline v_reg::w_type, n return c; } +/** @brief Dot product of elements + +Same as cv::v_dotprod, but add a third element to the sum of adjacent pairs. +Scheme: +@code + {A1 A2 ...} // 16-bit +x {B1 B2 ...} // 16-bit +------------- + {A1B1+A2B2+C1 ...} // 32-bit + +@endcode +Implemented only for 16-bit signed source type (v_int16x8). +*/ +template inline v_reg::w_type, n/2> + v_dotprod(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b, const v_reg::w_type, n / 2>& c) +{ + typedef typename V_TypeTraits<_Tp>::w_type w_type; + v_reg s; + for( int i = 0; i < (n/2); i++ ) + s.s[i] = (w_type)a.s[i*2]*b.s[i*2] + (w_type)a.s[i*2+1]*b.s[i*2+1] + c.s[i]; + return s; +} + /** @brief Multiply and expand Multiply values two registers and store results in two registers with wider pack type. @@ -859,6 +933,20 @@ template inline void v_mul_expand(const v_reg<_Tp, n>& a, c } } +/** @brief Multiply and extract high part + +Multiply values two registers and store high part of the results. +Implemented only for 16-bit source types (v_int16x8, v_uint16x8). Returns \f$ a*b >> 16 \f$ +*/ +template inline v_reg<_Tp, n> v_mul_hi(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) +{ + typedef typename V_TypeTraits<_Tp>::w_type w_type; + v_reg<_Tp, n> c; + for (int i = 0; i < n; i++) + c.s[i] = (_Tp)(((w_type)a.s[i] * b.s[i]) >> sizeof(_Tp)*8); + return c; +} + //! @cond IGNORED template inline void v_hsum(const v_reg<_Tp, n>& a, v_reg::w_type, n/2>& c) @@ -975,6 +1063,21 @@ inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, return r; } +/** @brief Sum absolute differences of values + +Scheme: +@code +{A1 A2 A3 ...} {B1 B2 B3 ...} => sum{ABS(A1-B1),abs(A2-B2),abs(A3-B3),...} +@endcode +For all types except 64-bit types.*/ +template inline typename V_TypeTraits< typename V_TypeTraits<_Tp>::abs_type >::sum_type v_reduce_sad(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) +{ + typename V_TypeTraits< typename V_TypeTraits<_Tp>::abs_type >::sum_type c = _absdiff(a.s[0], b.s[0]); + for (int i = 1; i < n; i++) + c += _absdiff(a.s[i], b.s[i]); + return c; +} + /** @brief Get negative values mask Returned value is a bit mask with bits set to 1 on places corresponding to negative packed values indexes. @@ -1016,13 +1119,16 @@ template inline bool v_check_any(const v_reg<_Tp, n>& a) return false; } -/** @brief Bitwise select +/** @brief Per-element select (blend operation) -Return value will be built by combining values a and b using the following scheme: -If the i-th bit in _mask_ is 1 - select i-th bit from _a_ -else - select i-th bit from _b_ */ +Return value will be built by combining values _a_ and _b_ using the following scheme: + result[i] = mask[i] ? a[i] : b[i]; + +@note: _mask_ element values are restricted to these values: +- 0: select element from _b_ +- 0xff/0xffff/etc: select element from _a_ +(fully compatible with bitwise-based operator) +*/ template inline v_reg<_Tp, n> v_select(const v_reg<_Tp, n>& mask, const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) { @@ -1032,8 +1138,8 @@ template inline v_reg<_Tp, n> v_select(const v_reg<_Tp, n>& for( int i = 0; i < n; i++ ) { int_type m = Traits::reinterpret_int(mask.s[i]); - c.s[i] = Traits::reinterpret_from_int((Traits::reinterpret_int(a.s[i]) & m) - | (Traits::reinterpret_int(b.s[i]) & ~m)); + CV_DbgAssert(m == 0 || m == (~(int_type)0)); // restrict mask values: 0 or 0xff/0xffff/etc + c.s[i] = m ? a.s[i] : b.s[i]; } return c; } @@ -1057,6 +1163,44 @@ template inline void v_expand(const v_reg<_Tp, n>& a, } } +/** @brief Expand lower values to the wider pack type + +Same as cv::v_expand, but return lower half of the vector. + +Scheme: +@code + int32x4 int64x2 +{A B C D} ==> {A B} +@endcode */ +template +inline v_reg::w_type, n/2> +v_expand_low(const v_reg<_Tp, n>& a) +{ + v_reg::w_type, n/2> b; + for( int i = 0; i < (n/2); i++ ) + b.s[i] = a.s[i]; + return b; +} + +/** @brief Expand higher values to the wider pack type + +Same as cv::v_expand_low, but expand higher half of the vector instead. + +Scheme: +@code + int32x4 int64x2 +{A B C D} ==> {C D} +@endcode */ +template +inline v_reg::w_type, n/2> +v_expand_high(const v_reg<_Tp, n>& a) +{ + v_reg::w_type, n/2> b; + for( int i = 0; i < (n/2); i++ ) + b.s[i] = a.s[i+(n/2)]; + return b; +} + //! @cond IGNORED template inline v_reg::int_type, n> v_reinterpret_as_int(const v_reg<_Tp, n>& a) @@ -1112,9 +1256,9 @@ template inline void v_zip( const v_reg<_Tp, n>& a0, const @note Returned type will be detected from passed pointer type, for example uchar ==> cv::v_uint8x16, int ==> cv::v_int32x4, etc. */ template -inline v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> v_load(const _Tp* ptr) +inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_load(const _Tp* ptr) { - return v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes>(ptr); + return v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128>(ptr); } /** @brief Load register contents from memory (aligned) @@ -1122,9 +1266,9 @@ inline v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> v_load(const _Tp* ptr) similar to cv::v_load, but source memory block should be aligned (to 16-byte boundary) */ template -inline v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> v_load_aligned(const _Tp* ptr) +inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_load_aligned(const _Tp* ptr) { - return v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes>(ptr); + return v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128>(ptr); } /** @brief Load 64-bits of data to lower part (high part is undefined). @@ -1137,9 +1281,9 @@ v_int32x4 r = v_load_low(lo); @endcode */ template -inline v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> v_load_low(const _Tp* ptr) +inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_load_low(const _Tp* ptr) { - v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> c; + v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> c; for( int i = 0; i < c.nlanes/2; i++ ) { c.s[i] = ptr[i]; @@ -1158,9 +1302,9 @@ v_int32x4 r = v_load_halves(lo, hi); @endcode */ template -inline v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> v_load_halves(const _Tp* loptr, const _Tp* hiptr) +inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_load_halves(const _Tp* loptr, const _Tp* hiptr) { - v_reg<_Tp, V_SIMD128Traits<_Tp>::nlanes> c; + v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> c; for( int i = 0; i < c.nlanes/2; i++ ) { c.s[i] = loptr[i]; @@ -1179,11 +1323,11 @@ v_int32x4 r = v_load_expand(buf); // r = {1, 2, 3, 4} - type is int32 @endcode For 8-, 16-, 32-bit integer source types. */ template -inline v_reg::w_type, V_SIMD128Traits<_Tp>::nlanes / 2> +inline v_reg::w_type, V_TypeTraits<_Tp>::nlanes128 / 2> v_load_expand(const _Tp* ptr) { typedef typename V_TypeTraits<_Tp>::w_type w_type; - v_reg::nlanes> c; + v_reg::nlanes128> c; for( int i = 0; i < c.nlanes; i++ ) { c.s[i] = ptr[i]; @@ -1200,11 +1344,11 @@ v_int32x4 r = v_load_q(buf); // r = {1, 2, 3, 4} - type is int32 @endcode For 8-bit integer source types. */ template -inline v_reg::q_type, V_SIMD128Traits<_Tp>::nlanes / 4> +inline v_reg::q_type, V_TypeTraits<_Tp>::nlanes128 / 4> v_load_expand_q(const _Tp* ptr) { typedef typename V_TypeTraits<_Tp>::q_type q_type; - v_reg::nlanes> c; + v_reg::nlanes128> c; for( int i = 0; i < c.nlanes; i++ ) { c.s[i] = ptr[i]; @@ -1284,7 +1428,8 @@ Interleave and store data from 2 registers to memory. For all types except 64-bit. */ template inline void v_store_interleave( _Tp* ptr, const v_reg<_Tp, n>& a, - const v_reg<_Tp, n>& b) + const v_reg<_Tp, n>& b, + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) { int i, i2; for( i = i2 = 0; i < n; i++, i2 += 2 ) @@ -1304,7 +1449,8 @@ Interleave and store data from 3 registers to memory. For all types except 64-bit. */ template inline void v_store_interleave( _Tp* ptr, const v_reg<_Tp, n>& a, - const v_reg<_Tp, n>& b, const v_reg<_Tp, n>& c) + const v_reg<_Tp, n>& b, const v_reg<_Tp, n>& c, + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) { int i, i3; for( i = i3 = 0; i < n; i++, i3 += 3 ) @@ -1325,7 +1471,8 @@ Interleave and store data from 4 registers to memory. For all types except 64-bit. */ template inline void v_store_interleave( _Tp* ptr, const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b, const v_reg<_Tp, n>& c, - const v_reg<_Tp, n>& d) + const v_reg<_Tp, n>& d, + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) { int i, i4; for( i = i4 = 0; i < n; i++, i4 += 4 ) @@ -1395,6 +1542,20 @@ inline void v_store_aligned(_Tp* ptr, const v_reg<_Tp, n>& a) ptr[i] = a.s[i]; } +template +inline void v_store_aligned_nocache(_Tp* ptr, const v_reg<_Tp, n>& a) +{ + for( int i = 0; i < n; i++ ) + ptr[i] = a.s[i]; +} + +template +inline void v_store_aligned(_Tp* ptr, const v_reg<_Tp, n>& a, hal::StoreMode /*mode*/) +{ + for( int i = 0; i < n; i++ ) + ptr[i] = a.s[i]; +} + /** @brief Combine vector from first elements of two vectors Scheme: @@ -1476,7 +1637,7 @@ Restriction: 0 <= shift < nlanes v_int32x4 a, b, c; c = v_extract<2>(a, b); @endcode -For integer types only. */ +For all types. */ template inline v_reg<_Tp, n> v_extract(const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) { @@ -1501,6 +1662,18 @@ template inline v_reg v_round(const v_reg& a) return c; } +/** @overload */ +template inline v_reg v_round(const v_reg& a, const v_reg& b) +{ + v_reg c; + for( int i = 0; i < n; i++ ) + { + c.s[i] = cvRound(a.s[i]); + c.s[i+n] = cvRound(b.s[i]); + } + return c; +} + /** @brief Floor Floor each value. Input type is float vector ==> output type is int vector.*/ @@ -1593,6 +1766,17 @@ template inline v_reg v_cvt_f32(const v_reg& a) return c; } +template inline v_reg v_cvt_f32(const v_reg& a, const v_reg& b) +{ + v_reg c; + for( int i = 0; i < n; i++ ) + { + c.s[i] = (float)a.s[i]; + c.s[i+n] = (float)b.s[i]; + } + return c; +} + /** @brief Convert to double Supported input type is cv::v_int32x4. */ @@ -1615,6 +1799,124 @@ template inline v_reg v_cvt_f64(const v_reg& a) return c; } +template inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_lut(const _Tp* tab, const int* idx) +{ + v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> c; + for (int i = 0; i < V_TypeTraits<_Tp>::nlanes128; i++) + c.s[i] = tab[idx[i]]; + return c; +} +template inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_lut_pairs(const _Tp* tab, const int* idx) +{ + v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> c; + for (int i = 0; i < V_TypeTraits<_Tp>::nlanes128; i++) + c.s[i] = tab[idx[i / 2] + i % 2]; + return c; +} +template inline v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> v_lut_quads(const _Tp* tab, const int* idx) +{ + v_reg<_Tp, V_TypeTraits<_Tp>::nlanes128> c; + for (int i = 0; i < V_TypeTraits<_Tp>::nlanes128; i++) + c.s[i] = tab[idx[i / 4] + i % 4]; + return c; +} + +template inline v_reg v_lut(const int* tab, const v_reg& idx) +{ + v_reg c; + for( int i = 0; i < n; i++ ) + c.s[i] = tab[idx.s[i]]; + return c; +} + +template inline v_reg v_lut(const unsigned* tab, const v_reg& idx) +{ + v_reg c; + for (int i = 0; i < n; i++) + c.s[i] = tab[idx.s[i]]; + return c; +} + +template inline v_reg v_lut(const float* tab, const v_reg& idx) +{ + v_reg c; + for( int i = 0; i < n; i++ ) + c.s[i] = tab[idx.s[i]]; + return c; +} + +template inline v_reg v_lut(const double* tab, const v_reg& idx) +{ + v_reg c; + for( int i = 0; i < n; i++ ) + c.s[i] = tab[idx.s[i]]; + return c; +} + +template inline void v_lut_deinterleave(const float* tab, const v_reg& idx, + v_reg& x, v_reg& y) +{ + for( int i = 0; i < n; i++ ) + { + int j = idx.s[i]; + x.s[i] = tab[j]; + y.s[i] = tab[j+1]; + } +} + +template inline void v_lut_deinterleave(const double* tab, const v_reg& idx, + v_reg& x, v_reg& y) +{ + for( int i = 0; i < n; i++ ) + { + int j = idx.s[i]; + x.s[i] = tab[j]; + y.s[i] = tab[j+1]; + } +} + +template inline v_reg<_Tp, n> v_interleave_pairs(const v_reg<_Tp, n>& vec) +{ + v_reg c; + for (int i = 0; i < n/4; i++) + { + c.s[4*i ] = vec.s[4*i ]; + c.s[4*i+1] = vec.s[4*i+2]; + c.s[4*i+2] = vec.s[4*i+1]; + c.s[4*i+3] = vec.s[4*i+3]; + } + return c; +} + +template inline v_reg<_Tp, n> v_interleave_quads(const v_reg<_Tp, n>& vec) +{ + v_reg c; + for (int i = 0; i < n/8; i++) + { + c.s[8*i ] = vec.s[8*i ]; + c.s[8*i+1] = vec.s[8*i+4]; + c.s[8*i+2] = vec.s[8*i+1]; + c.s[8*i+3] = vec.s[8*i+5]; + c.s[8*i+4] = vec.s[8*i+2]; + c.s[8*i+5] = vec.s[8*i+6]; + c.s[8*i+6] = vec.s[8*i+3]; + c.s[8*i+7] = vec.s[8*i+7]; + } + return c; +} + +template inline v_reg<_Tp, n> v_pack_triplets(const v_reg<_Tp, n>& vec) +{ + v_reg c; + for (int i = 0; i < n/4; i++) + { + c.s[3*i ] = vec.s[4*i ]; + c.s[3*i+1] = vec.s[4*i+1]; + c.s[3*i+2] = vec.s[4*i+2]; + } + return c; +} + /** @brief Transpose 4x4 matrix Scheme: @@ -1890,6 +2192,103 @@ OPENCV_HAL_IMPL_C_RSHR_PACK_STORE(v_int16x8, short, v_uint8x16, uchar, pack_u, s OPENCV_HAL_IMPL_C_RSHR_PACK_STORE(v_int32x4, int, v_uint16x8, ushort, pack_u, saturate_cast) //! @} +//! @cond IGNORED +template +inline void _pack_b(_Tpm* mptr, const v_reg<_Tp, n>& a, const v_reg<_Tp, n>& b) +{ + for (int i = 0; i < n; ++i) + { + mptr[i] = (_Tpm)a.s[i]; + mptr[i + n] = (_Tpm)b.s[i]; + } +} +//! @endcond + +//! @name Pack boolean values +//! @{ +//! @brief Pack boolean values from multiple vectors to one unsigned 8-bit integer vector +//! +//! @note Must provide valid boolean values to guarantee same result for all architectures. + +/** @brief +//! For 16-bit boolean values + +Scheme: +@code +a {0xFFFF 0 0 0xFFFF 0 0xFFFF 0xFFFF 0} +b {0xFFFF 0 0xFFFF 0 0 0xFFFF 0 0xFFFF} +=============== +{ + 0xFF 0 0 0xFF 0 0xFF 0xFF 0 + 0xFF 0 0xFF 0 0 0xFF 0 0xFF +} +@endcode */ + +inline v_uint8x16 v_pack_b(const v_uint16x8& a, const v_uint16x8& b) +{ + v_uint8x16 mask; + _pack_b(mask.s, a, b); + return mask; +} + +/** @overload +For 32-bit boolean values + +Scheme: +@code +a {0xFFFF.. 0 0 0xFFFF..} +b {0 0xFFFF.. 0xFFFF.. 0} +c {0xFFFF.. 0 0xFFFF.. 0} +d {0 0xFFFF.. 0 0xFFFF..} +=============== +{ + 0xFF 0 0 0xFF 0 0xFF 0xFF 0 + 0xFF 0 0xFF 0 0 0xFF 0 0xFF +} +@endcode */ + +inline v_uint8x16 v_pack_b(const v_uint32x4& a, const v_uint32x4& b, + const v_uint32x4& c, const v_uint32x4& d) +{ + v_uint8x16 mask; + _pack_b(mask.s, a, b); + _pack_b(mask.s + 8, c, d); + return mask; +} + +/** @overload +For 64-bit boolean values + +Scheme: +@code +a {0xFFFF.. 0} +b {0 0xFFFF..} +c {0xFFFF.. 0} +d {0 0xFFFF..} + +e {0xFFFF.. 0} +f {0xFFFF.. 0} +g {0 0xFFFF..} +h {0 0xFFFF..} +=============== +{ + 0xFF 0 0 0xFF 0xFF 0 0 0xFF + 0xFF 0 0xFF 0 0 0xFF 0 0xFF +} +@endcode */ +inline v_uint8x16 v_pack_b(const v_uint64x2& a, const v_uint64x2& b, const v_uint64x2& c, + const v_uint64x2& d, const v_uint64x2& e, const v_uint64x2& f, + const v_uint64x2& g, const v_uint64x2& h) +{ + v_uint8x16 mask; + _pack_b(mask.s, a, b); + _pack_b(mask.s + 4, c, d); + _pack_b(mask.s + 8, e, f); + _pack_b(mask.s + 12, g, h); + return mask; +} +//! @} + /** @brief Matrix multiplication Scheme: @@ -1939,6 +2338,30 @@ inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, v.s[0]*m0.s[3] + v.s[1]*m1.s[3] + v.s[2]*m2.s[3] + m3.s[3]); } +////// FP16 support /////// + +inline v_reg::nlanes128> +v_load_expand(const float16_t* ptr) +{ + v_reg::nlanes128> v; + for( int i = 0; i < v.nlanes; i++ ) + { + v.s[i] = ptr[i]; + } + return v; +} + +inline void +v_pack_store(float16_t* ptr, v_reg::nlanes128>& v) +{ + for( int i = 0; i < v.nlanes; i++ ) + { + ptr[i] = float16_t(v.s[i]); + } +} + +inline void v_cleanup() {} + //! @} //! @name Check SIMD support diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_forward.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_forward.hpp new file mode 100644 index 000000000..461855290 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_forward.hpp @@ -0,0 +1,158 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#ifndef CV__SIMD_FORWARD +#error "Need to pre-define forward width" +#endif + +namespace cv +{ + +//! @cond IGNORED + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN + +/** Types **/ +#if CV__SIMD_FORWARD == 512 +// [todo] 512 +#error "AVX512 Not implemented yet" +#elif CV__SIMD_FORWARD == 256 +// 256 +#define __CV_VX(fun) v256_##fun +#define __CV_V_UINT8 v_uint8x32 +#define __CV_V_INT8 v_int8x32 +#define __CV_V_UINT16 v_uint16x16 +#define __CV_V_INT16 v_int16x16 +#define __CV_V_UINT32 v_uint32x8 +#define __CV_V_INT32 v_int32x8 +#define __CV_V_UINT64 v_uint64x4 +#define __CV_V_INT64 v_int64x4 +#define __CV_V_FLOAT32 v_float32x8 +#define __CV_V_FLOAT64 v_float64x4 +struct v_uint8x32; +struct v_int8x32; +struct v_uint16x16; +struct v_int16x16; +struct v_uint32x8; +struct v_int32x8; +struct v_uint64x4; +struct v_int64x4; +struct v_float32x8; +struct v_float64x4; +#else +// 128 +#define __CV_VX(fun) v_##fun +#define __CV_V_UINT8 v_uint8x16 +#define __CV_V_INT8 v_int8x16 +#define __CV_V_UINT16 v_uint16x8 +#define __CV_V_INT16 v_int16x8 +#define __CV_V_UINT32 v_uint32x4 +#define __CV_V_INT32 v_int32x4 +#define __CV_V_UINT64 v_uint64x2 +#define __CV_V_INT64 v_int64x2 +#define __CV_V_FLOAT32 v_float32x4 +#define __CV_V_FLOAT64 v_float64x2 +struct v_uint8x16; +struct v_int8x16; +struct v_uint16x8; +struct v_int16x8; +struct v_uint32x4; +struct v_int32x4; +struct v_uint64x2; +struct v_int64x2; +struct v_float32x4; +struct v_float64x2; +#endif + +/** Value reordering **/ + +// Expansion +void v_expand(const __CV_V_UINT8&, __CV_V_UINT16&, __CV_V_UINT16&); +void v_expand(const __CV_V_INT8&, __CV_V_INT16&, __CV_V_INT16&); +void v_expand(const __CV_V_UINT16&, __CV_V_UINT32&, __CV_V_UINT32&); +void v_expand(const __CV_V_INT16&, __CV_V_INT32&, __CV_V_INT32&); +void v_expand(const __CV_V_UINT32&, __CV_V_UINT64&, __CV_V_UINT64&); +void v_expand(const __CV_V_INT32&, __CV_V_INT64&, __CV_V_INT64&); +// Low Expansion +__CV_V_UINT16 v_expand_low(const __CV_V_UINT8&); +__CV_V_INT16 v_expand_low(const __CV_V_INT8&); +__CV_V_UINT32 v_expand_low(const __CV_V_UINT16&); +__CV_V_INT32 v_expand_low(const __CV_V_INT16&); +__CV_V_UINT64 v_expand_low(const __CV_V_UINT32&); +__CV_V_INT64 v_expand_low(const __CV_V_INT32&); +// High Expansion +__CV_V_UINT16 v_expand_high(const __CV_V_UINT8&); +__CV_V_INT16 v_expand_high(const __CV_V_INT8&); +__CV_V_UINT32 v_expand_high(const __CV_V_UINT16&); +__CV_V_INT32 v_expand_high(const __CV_V_INT16&); +__CV_V_UINT64 v_expand_high(const __CV_V_UINT32&); +__CV_V_INT64 v_expand_high(const __CV_V_INT32&); +// Load & Low Expansion +__CV_V_UINT16 __CV_VX(load_expand)(const uchar*); +__CV_V_INT16 __CV_VX(load_expand)(const schar*); +__CV_V_UINT32 __CV_VX(load_expand)(const ushort*); +__CV_V_INT32 __CV_VX(load_expand)(const short*); +__CV_V_UINT64 __CV_VX(load_expand)(const uint*); +__CV_V_INT64 __CV_VX(load_expand)(const int*); +// Load lower 8-bit and expand into 32-bit +__CV_V_UINT32 __CV_VX(load_expand_q)(const uchar*); +__CV_V_INT32 __CV_VX(load_expand_q)(const schar*); + +// Saturating Pack +__CV_V_UINT8 v_pack(const __CV_V_UINT16&, const __CV_V_UINT16&); +__CV_V_INT8 v_pack(const __CV_V_INT16&, const __CV_V_INT16&); +__CV_V_UINT16 v_pack(const __CV_V_UINT32&, const __CV_V_UINT32&); +__CV_V_INT16 v_pack(const __CV_V_INT32&, const __CV_V_INT32&); +// Non-saturating Pack +__CV_V_UINT32 v_pack(const __CV_V_UINT64&, const __CV_V_UINT64&); +__CV_V_INT32 v_pack(const __CV_V_INT64&, const __CV_V_INT64&); +// Pack signed integers with unsigned saturation +__CV_V_UINT8 v_pack_u(const __CV_V_INT16&, const __CV_V_INT16&); +__CV_V_UINT16 v_pack_u(const __CV_V_INT32&, const __CV_V_INT32&); + +/** Arithmetic, bitwise and comparison operations **/ + +// Non-saturating multiply +#if CV_VSX +template +Tvec v_mul_wrap(const Tvec& a, const Tvec& b); +#else +__CV_V_UINT8 v_mul_wrap(const __CV_V_UINT8&, const __CV_V_UINT8&); +__CV_V_INT8 v_mul_wrap(const __CV_V_INT8&, const __CV_V_INT8&); +__CV_V_UINT16 v_mul_wrap(const __CV_V_UINT16&, const __CV_V_UINT16&); +__CV_V_INT16 v_mul_wrap(const __CV_V_INT16&, const __CV_V_INT16&); +#endif + +// Multiply and expand +#if CV_VSX +template +void v_mul_expand(const Tvec& a, const Tvec& b, Twvec& c, Twvec& d); +#else +void v_mul_expand(const __CV_V_UINT8&, const __CV_V_UINT8&, __CV_V_UINT16&, __CV_V_UINT16&); +void v_mul_expand(const __CV_V_INT8&, const __CV_V_INT8&, __CV_V_INT16&, __CV_V_INT16&); +void v_mul_expand(const __CV_V_UINT16&, const __CV_V_UINT16&, __CV_V_UINT32&, __CV_V_UINT32&); +void v_mul_expand(const __CV_V_INT16&, const __CV_V_INT16&, __CV_V_INT32&, __CV_V_INT32&); +void v_mul_expand(const __CV_V_UINT32&, const __CV_V_UINT32&, __CV_V_UINT64&, __CV_V_UINT64&); +void v_mul_expand(const __CV_V_INT32&, const __CV_V_INT32&, __CV_V_INT64&, __CV_V_INT64&); +#endif + +/** Cleanup **/ +#undef CV__SIMD_FORWARD +#undef __CV_VX +#undef __CV_V_UINT8 +#undef __CV_V_INT8 +#undef __CV_V_UINT16 +#undef __CV_V_INT16 +#undef __CV_V_UINT32 +#undef __CV_V_INT32 +#undef __CV_V_UINT64 +#undef __CV_V_INT64 +#undef __CV_V_FLOAT32 +#undef __CV_V_FLOAT64 + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END + +//! @endcond + +} // cv:: \ No newline at end of file diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_neon.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_neon.hpp new file mode 100644 index 000000000..3b946ff7c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_neon.hpp @@ -0,0 +1,1943 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_HAL_INTRIN_NEON_HPP +#define OPENCV_HAL_INTRIN_NEON_HPP + +#include +#include "opencv2/core/utility.hpp" + +namespace cv +{ + +//! @cond IGNORED + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN + +#define CV_SIMD128 1 +#if defined(__aarch64__) +#define CV_SIMD128_64F 1 +#else +#define CV_SIMD128_64F 0 +#endif + +#if CV_SIMD128_64F +#define OPENCV_HAL_IMPL_NEON_REINTERPRET(_Tpv, suffix) \ +template static inline \ +_Tpv vreinterpretq_##suffix##_f64(T a) { return (_Tpv) a; } \ +template static inline \ +float64x2_t vreinterpretq_f64_##suffix(T a) { return (float64x2_t) a; } +OPENCV_HAL_IMPL_NEON_REINTERPRET(uint8x16_t, u8) +OPENCV_HAL_IMPL_NEON_REINTERPRET(int8x16_t, s8) +OPENCV_HAL_IMPL_NEON_REINTERPRET(uint16x8_t, u16) +OPENCV_HAL_IMPL_NEON_REINTERPRET(int16x8_t, s16) +OPENCV_HAL_IMPL_NEON_REINTERPRET(uint32x4_t, u32) +OPENCV_HAL_IMPL_NEON_REINTERPRET(int32x4_t, s32) +OPENCV_HAL_IMPL_NEON_REINTERPRET(uint64x2_t, u64) +OPENCV_HAL_IMPL_NEON_REINTERPRET(int64x2_t, s64) +OPENCV_HAL_IMPL_NEON_REINTERPRET(float32x4_t, f32) +#endif + +struct v_uint8x16 +{ + typedef uchar lane_type; + enum { nlanes = 16 }; + + v_uint8x16() {} + explicit v_uint8x16(uint8x16_t v) : val(v) {} + v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, + uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) + { + uchar v[] = {v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15}; + val = vld1q_u8(v); + } + uchar get0() const + { + return vgetq_lane_u8(val, 0); + } + + uint8x16_t val; +}; + +struct v_int8x16 +{ + typedef schar lane_type; + enum { nlanes = 16 }; + + v_int8x16() {} + explicit v_int8x16(int8x16_t v) : val(v) {} + v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, + schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) + { + schar v[] = {v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15}; + val = vld1q_s8(v); + } + schar get0() const + { + return vgetq_lane_s8(val, 0); + } + + int8x16_t val; +}; + +struct v_uint16x8 +{ + typedef ushort lane_type; + enum { nlanes = 8 }; + + v_uint16x8() {} + explicit v_uint16x8(uint16x8_t v) : val(v) {} + v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) + { + ushort v[] = {v0, v1, v2, v3, v4, v5, v6, v7}; + val = vld1q_u16(v); + } + ushort get0() const + { + return vgetq_lane_u16(val, 0); + } + + uint16x8_t val; +}; + +struct v_int16x8 +{ + typedef short lane_type; + enum { nlanes = 8 }; + + v_int16x8() {} + explicit v_int16x8(int16x8_t v) : val(v) {} + v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) + { + short v[] = {v0, v1, v2, v3, v4, v5, v6, v7}; + val = vld1q_s16(v); + } + short get0() const + { + return vgetq_lane_s16(val, 0); + } + + int16x8_t val; +}; + +struct v_uint32x4 +{ + typedef unsigned lane_type; + enum { nlanes = 4 }; + + v_uint32x4() {} + explicit v_uint32x4(uint32x4_t v) : val(v) {} + v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) + { + unsigned v[] = {v0, v1, v2, v3}; + val = vld1q_u32(v); + } + unsigned get0() const + { + return vgetq_lane_u32(val, 0); + } + + uint32x4_t val; +}; + +struct v_int32x4 +{ + typedef int lane_type; + enum { nlanes = 4 }; + + v_int32x4() {} + explicit v_int32x4(int32x4_t v) : val(v) {} + v_int32x4(int v0, int v1, int v2, int v3) + { + int v[] = {v0, v1, v2, v3}; + val = vld1q_s32(v); + } + int get0() const + { + return vgetq_lane_s32(val, 0); + } + int32x4_t val; +}; + +struct v_float32x4 +{ + typedef float lane_type; + enum { nlanes = 4 }; + + v_float32x4() {} + explicit v_float32x4(float32x4_t v) : val(v) {} + v_float32x4(float v0, float v1, float v2, float v3) + { + float v[] = {v0, v1, v2, v3}; + val = vld1q_f32(v); + } + float get0() const + { + return vgetq_lane_f32(val, 0); + } + float32x4_t val; +}; + +struct v_uint64x2 +{ + typedef uint64 lane_type; + enum { nlanes = 2 }; + + v_uint64x2() {} + explicit v_uint64x2(uint64x2_t v) : val(v) {} + v_uint64x2(uint64 v0, uint64 v1) + { + uint64 v[] = {v0, v1}; + val = vld1q_u64(v); + } + uint64 get0() const + { + return vgetq_lane_u64(val, 0); + } + uint64x2_t val; +}; + +struct v_int64x2 +{ + typedef int64 lane_type; + enum { nlanes = 2 }; + + v_int64x2() {} + explicit v_int64x2(int64x2_t v) : val(v) {} + v_int64x2(int64 v0, int64 v1) + { + int64 v[] = {v0, v1}; + val = vld1q_s64(v); + } + int64 get0() const + { + return vgetq_lane_s64(val, 0); + } + int64x2_t val; +}; + +#if CV_SIMD128_64F +struct v_float64x2 +{ + typedef double lane_type; + enum { nlanes = 2 }; + + v_float64x2() {} + explicit v_float64x2(float64x2_t v) : val(v) {} + v_float64x2(double v0, double v1) + { + double v[] = {v0, v1}; + val = vld1q_f64(v); + } + double get0() const + { + return vgetq_lane_f64(val, 0); + } + float64x2_t val; +}; +#endif + +#if CV_FP16 +// Workaround for old compilers +static inline int16x4_t vreinterpret_s16_f16(float16x4_t a) { return (int16x4_t)a; } +static inline float16x4_t vreinterpret_f16_s16(int16x4_t a) { return (float16x4_t)a; } + +static inline float16x4_t cv_vld1_f16(const void* ptr) +{ +#ifndef vld1_f16 // APPLE compiler defines vld1_f16 as macro + return vreinterpret_f16_s16(vld1_s16((const short*)ptr)); +#else + return vld1_f16((const __fp16*)ptr); +#endif +} +static inline void cv_vst1_f16(void* ptr, float16x4_t a) +{ +#ifndef vst1_f16 // APPLE compiler defines vst1_f16 as macro + vst1_s16((short*)ptr, vreinterpret_s16_f16(a)); +#else + vst1_f16((__fp16*)ptr, a); +#endif +} + +#ifndef vdup_n_f16 + #define vdup_n_f16(v) (float16x4_t){v, v, v, v} +#endif + +#endif // CV_FP16 + +#if CV_FP16 +inline v_float32x4 v128_load_fp16_f32(const short* ptr) +{ + float16x4_t a = cv_vld1_f16((const __fp16*)ptr); + return v_float32x4(vcvt_f32_f16(a)); +} + +inline void v_store_fp16(short* ptr, const v_float32x4& a) +{ + float16x4_t fp16 = vcvt_f16_f32(a.val); + cv_vst1_f16((short*)ptr, fp16); +} +#endif + +#define OPENCV_HAL_IMPL_NEON_INIT(_Tpv, _Tp, suffix) \ +inline v_##_Tpv v_setzero_##suffix() { return v_##_Tpv(vdupq_n_##suffix((_Tp)0)); } \ +inline v_##_Tpv v_setall_##suffix(_Tp v) { return v_##_Tpv(vdupq_n_##suffix(v)); } \ +inline _Tpv##_t vreinterpretq_##suffix##_##suffix(_Tpv##_t v) { return v; } \ +inline v_uint8x16 v_reinterpret_as_u8(const v_##_Tpv& v) { return v_uint8x16(vreinterpretq_u8_##suffix(v.val)); } \ +inline v_int8x16 v_reinterpret_as_s8(const v_##_Tpv& v) { return v_int8x16(vreinterpretq_s8_##suffix(v.val)); } \ +inline v_uint16x8 v_reinterpret_as_u16(const v_##_Tpv& v) { return v_uint16x8(vreinterpretq_u16_##suffix(v.val)); } \ +inline v_int16x8 v_reinterpret_as_s16(const v_##_Tpv& v) { return v_int16x8(vreinterpretq_s16_##suffix(v.val)); } \ +inline v_uint32x4 v_reinterpret_as_u32(const v_##_Tpv& v) { return v_uint32x4(vreinterpretq_u32_##suffix(v.val)); } \ +inline v_int32x4 v_reinterpret_as_s32(const v_##_Tpv& v) { return v_int32x4(vreinterpretq_s32_##suffix(v.val)); } \ +inline v_uint64x2 v_reinterpret_as_u64(const v_##_Tpv& v) { return v_uint64x2(vreinterpretq_u64_##suffix(v.val)); } \ +inline v_int64x2 v_reinterpret_as_s64(const v_##_Tpv& v) { return v_int64x2(vreinterpretq_s64_##suffix(v.val)); } \ +inline v_float32x4 v_reinterpret_as_f32(const v_##_Tpv& v) { return v_float32x4(vreinterpretq_f32_##suffix(v.val)); } + +OPENCV_HAL_IMPL_NEON_INIT(uint8x16, uchar, u8) +OPENCV_HAL_IMPL_NEON_INIT(int8x16, schar, s8) +OPENCV_HAL_IMPL_NEON_INIT(uint16x8, ushort, u16) +OPENCV_HAL_IMPL_NEON_INIT(int16x8, short, s16) +OPENCV_HAL_IMPL_NEON_INIT(uint32x4, unsigned, u32) +OPENCV_HAL_IMPL_NEON_INIT(int32x4, int, s32) +OPENCV_HAL_IMPL_NEON_INIT(uint64x2, uint64, u64) +OPENCV_HAL_IMPL_NEON_INIT(int64x2, int64, s64) +OPENCV_HAL_IMPL_NEON_INIT(float32x4, float, f32) +#if CV_SIMD128_64F +#define OPENCV_HAL_IMPL_NEON_INIT_64(_Tpv, suffix) \ +inline v_float64x2 v_reinterpret_as_f64(const v_##_Tpv& v) { return v_float64x2(vreinterpretq_f64_##suffix(v.val)); } +OPENCV_HAL_IMPL_NEON_INIT(float64x2, double, f64) +OPENCV_HAL_IMPL_NEON_INIT_64(uint8x16, u8) +OPENCV_HAL_IMPL_NEON_INIT_64(int8x16, s8) +OPENCV_HAL_IMPL_NEON_INIT_64(uint16x8, u16) +OPENCV_HAL_IMPL_NEON_INIT_64(int16x8, s16) +OPENCV_HAL_IMPL_NEON_INIT_64(uint32x4, u32) +OPENCV_HAL_IMPL_NEON_INIT_64(int32x4, s32) +OPENCV_HAL_IMPL_NEON_INIT_64(uint64x2, u64) +OPENCV_HAL_IMPL_NEON_INIT_64(int64x2, s64) +OPENCV_HAL_IMPL_NEON_INIT_64(float32x4, f32) +OPENCV_HAL_IMPL_NEON_INIT_64(float64x2, f64) +#endif + +#define OPENCV_HAL_IMPL_NEON_PACK(_Tpvec, _Tp, hreg, suffix, _Tpwvec, pack, mov, rshr) \ +inline _Tpvec v_##pack(const _Tpwvec& a, const _Tpwvec& b) \ +{ \ + hreg a1 = mov(a.val), b1 = mov(b.val); \ + return _Tpvec(vcombine_##suffix(a1, b1)); \ +} \ +inline void v_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ +{ \ + hreg a1 = mov(a.val); \ + vst1_##suffix(ptr, a1); \ +} \ +template inline \ +_Tpvec v_rshr_##pack(const _Tpwvec& a, const _Tpwvec& b) \ +{ \ + hreg a1 = rshr(a.val, n); \ + hreg b1 = rshr(b.val, n); \ + return _Tpvec(vcombine_##suffix(a1, b1)); \ +} \ +template inline \ +void v_rshr_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ +{ \ + hreg a1 = rshr(a.val, n); \ + vst1_##suffix(ptr, a1); \ +} + +OPENCV_HAL_IMPL_NEON_PACK(v_uint8x16, uchar, uint8x8_t, u8, v_uint16x8, pack, vqmovn_u16, vqrshrn_n_u16) +OPENCV_HAL_IMPL_NEON_PACK(v_int8x16, schar, int8x8_t, s8, v_int16x8, pack, vqmovn_s16, vqrshrn_n_s16) +OPENCV_HAL_IMPL_NEON_PACK(v_uint16x8, ushort, uint16x4_t, u16, v_uint32x4, pack, vqmovn_u32, vqrshrn_n_u32) +OPENCV_HAL_IMPL_NEON_PACK(v_int16x8, short, int16x4_t, s16, v_int32x4, pack, vqmovn_s32, vqrshrn_n_s32) +OPENCV_HAL_IMPL_NEON_PACK(v_uint32x4, unsigned, uint32x2_t, u32, v_uint64x2, pack, vmovn_u64, vrshrn_n_u64) +OPENCV_HAL_IMPL_NEON_PACK(v_int32x4, int, int32x2_t, s32, v_int64x2, pack, vmovn_s64, vrshrn_n_s64) + +OPENCV_HAL_IMPL_NEON_PACK(v_uint8x16, uchar, uint8x8_t, u8, v_int16x8, pack_u, vqmovun_s16, vqrshrun_n_s16) +OPENCV_HAL_IMPL_NEON_PACK(v_uint16x8, ushort, uint16x4_t, u16, v_int32x4, pack_u, vqmovun_s32, vqrshrun_n_s32) + +// pack boolean +inline v_uint8x16 v_pack_b(const v_uint16x8& a, const v_uint16x8& b) +{ + uint8x16_t ab = vcombine_u8(vmovn_u16(a.val), vmovn_u16(b.val)); + return v_uint8x16(ab); +} + +inline v_uint8x16 v_pack_b(const v_uint32x4& a, const v_uint32x4& b, + const v_uint32x4& c, const v_uint32x4& d) +{ + uint16x8_t nab = vcombine_u16(vmovn_u32(a.val), vmovn_u32(b.val)); + uint16x8_t ncd = vcombine_u16(vmovn_u32(c.val), vmovn_u32(d.val)); + return v_uint8x16(vcombine_u8(vmovn_u16(nab), vmovn_u16(ncd))); +} + +inline v_uint8x16 v_pack_b(const v_uint64x2& a, const v_uint64x2& b, const v_uint64x2& c, + const v_uint64x2& d, const v_uint64x2& e, const v_uint64x2& f, + const v_uint64x2& g, const v_uint64x2& h) +{ + uint32x4_t ab = vcombine_u32(vmovn_u64(a.val), vmovn_u64(b.val)); + uint32x4_t cd = vcombine_u32(vmovn_u64(c.val), vmovn_u64(d.val)); + uint32x4_t ef = vcombine_u32(vmovn_u64(e.val), vmovn_u64(f.val)); + uint32x4_t gh = vcombine_u32(vmovn_u64(g.val), vmovn_u64(h.val)); + + uint16x8_t abcd = vcombine_u16(vmovn_u32(ab), vmovn_u32(cd)); + uint16x8_t efgh = vcombine_u16(vmovn_u32(ef), vmovn_u32(gh)); + return v_uint8x16(vcombine_u8(vmovn_u16(abcd), vmovn_u16(efgh))); +} + +inline v_float32x4 v_matmul(const v_float32x4& v, const v_float32x4& m0, + const v_float32x4& m1, const v_float32x4& m2, + const v_float32x4& m3) +{ + float32x2_t vl = vget_low_f32(v.val), vh = vget_high_f32(v.val); + float32x4_t res = vmulq_lane_f32(m0.val, vl, 0); + res = vmlaq_lane_f32(res, m1.val, vl, 1); + res = vmlaq_lane_f32(res, m2.val, vh, 0); + res = vmlaq_lane_f32(res, m3.val, vh, 1); + return v_float32x4(res); +} + +inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, + const v_float32x4& m1, const v_float32x4& m2, + const v_float32x4& a) +{ + float32x2_t vl = vget_low_f32(v.val), vh = vget_high_f32(v.val); + float32x4_t res = vmulq_lane_f32(m0.val, vl, 0); + res = vmlaq_lane_f32(res, m1.val, vl, 1); + res = vmlaq_lane_f32(res, m2.val, vh, 0); + res = vaddq_f32(res, a.val); + return v_float32x4(res); +} + +#define OPENCV_HAL_IMPL_NEON_BIN_OP(bin_op, _Tpvec, intrin) \ +inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec(intrin(a.val, b.val)); \ +} \ +inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ +{ \ + a.val = intrin(a.val, b.val); \ + return a; \ +} + +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint8x16, vqaddq_u8) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint8x16, vqsubq_u8) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int8x16, vqaddq_s8) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int8x16, vqsubq_s8) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint16x8, vqaddq_u16) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint16x8, vqsubq_u16) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int16x8, vqaddq_s16) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int16x8, vqsubq_s16) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int32x4, vaddq_s32) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int32x4, vsubq_s32) +OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_int32x4, vmulq_s32) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint32x4, vaddq_u32) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint32x4, vsubq_u32) +OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_uint32x4, vmulq_u32) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_float32x4, vaddq_f32) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_float32x4, vsubq_f32) +OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_float32x4, vmulq_f32) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int64x2, vaddq_s64) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int64x2, vsubq_s64) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint64x2, vaddq_u64) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint64x2, vsubq_u64) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_BIN_OP(/, v_float32x4, vdivq_f32) +OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_float64x2, vaddq_f64) +OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_float64x2, vsubq_f64) +OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_float64x2, vmulq_f64) +OPENCV_HAL_IMPL_NEON_BIN_OP(/, v_float64x2, vdivq_f64) +#else +inline v_float32x4 operator / (const v_float32x4& a, const v_float32x4& b) +{ + float32x4_t reciprocal = vrecpeq_f32(b.val); + reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); + reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); + return v_float32x4(vmulq_f32(a.val, reciprocal)); +} +inline v_float32x4& operator /= (v_float32x4& a, const v_float32x4& b) +{ + float32x4_t reciprocal = vrecpeq_f32(b.val); + reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); + reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); + a.val = vmulq_f32(a.val, reciprocal); + return a; +} +#endif + +// saturating multiply 8-bit, 16-bit +#define OPENCV_HAL_IMPL_NEON_MUL_SAT(_Tpvec, _Tpwvec) \ + inline _Tpvec operator * (const _Tpvec& a, const _Tpvec& b) \ + { \ + _Tpwvec c, d; \ + v_mul_expand(a, b, c, d); \ + return v_pack(c, d); \ + } \ + inline _Tpvec& operator *= (_Tpvec& a, const _Tpvec& b) \ + { a = a * b; return a; } + +OPENCV_HAL_IMPL_NEON_MUL_SAT(v_int8x16, v_int16x8) +OPENCV_HAL_IMPL_NEON_MUL_SAT(v_uint8x16, v_uint16x8) +OPENCV_HAL_IMPL_NEON_MUL_SAT(v_int16x8, v_int32x4) +OPENCV_HAL_IMPL_NEON_MUL_SAT(v_uint16x8, v_uint32x4) + +// Multiply and expand +inline void v_mul_expand(const v_int8x16& a, const v_int8x16& b, + v_int16x8& c, v_int16x8& d) +{ + c.val = vmull_s8(vget_low_s8(a.val), vget_low_s8(b.val)); + d.val = vmull_s8(vget_high_s8(a.val), vget_high_s8(b.val)); +} + +inline void v_mul_expand(const v_uint8x16& a, const v_uint8x16& b, + v_uint16x8& c, v_uint16x8& d) +{ + c.val = vmull_u8(vget_low_u8(a.val), vget_low_u8(b.val)); + d.val = vmull_u8(vget_high_u8(a.val), vget_high_u8(b.val)); +} + +inline void v_mul_expand(const v_int16x8& a, const v_int16x8& b, + v_int32x4& c, v_int32x4& d) +{ + c.val = vmull_s16(vget_low_s16(a.val), vget_low_s16(b.val)); + d.val = vmull_s16(vget_high_s16(a.val), vget_high_s16(b.val)); +} + +inline void v_mul_expand(const v_uint16x8& a, const v_uint16x8& b, + v_uint32x4& c, v_uint32x4& d) +{ + c.val = vmull_u16(vget_low_u16(a.val), vget_low_u16(b.val)); + d.val = vmull_u16(vget_high_u16(a.val), vget_high_u16(b.val)); +} + +inline void v_mul_expand(const v_uint32x4& a, const v_uint32x4& b, + v_uint64x2& c, v_uint64x2& d) +{ + c.val = vmull_u32(vget_low_u32(a.val), vget_low_u32(b.val)); + d.val = vmull_u32(vget_high_u32(a.val), vget_high_u32(b.val)); +} + +inline v_int16x8 v_mul_hi(const v_int16x8& a, const v_int16x8& b) +{ + return v_int16x8(vcombine_s16( + vshrn_n_s32(vmull_s16( vget_low_s16(a.val), vget_low_s16(b.val)), 16), + vshrn_n_s32(vmull_s16(vget_high_s16(a.val), vget_high_s16(b.val)), 16) + )); +} +inline v_uint16x8 v_mul_hi(const v_uint16x8& a, const v_uint16x8& b) +{ + return v_uint16x8(vcombine_u16( + vshrn_n_u32(vmull_u16( vget_low_u16(a.val), vget_low_u16(b.val)), 16), + vshrn_n_u32(vmull_u16(vget_high_u16(a.val), vget_high_u16(b.val)), 16) + )); +} + +inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b) +{ + int32x4_t c = vmull_s16(vget_low_s16(a.val), vget_low_s16(b.val)); + int32x4_t d = vmull_s16(vget_high_s16(a.val), vget_high_s16(b.val)); + int32x4x2_t cd = vuzpq_s32(c, d); + return v_int32x4(vaddq_s32(cd.val[0], cd.val[1])); +} + +inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b, const v_int32x4& c) +{ + v_int32x4 s = v_dotprod(a, b); + return v_int32x4(vaddq_s32(s.val , c.val)); +} + +#define OPENCV_HAL_IMPL_NEON_LOGIC_OP(_Tpvec, suffix) \ + OPENCV_HAL_IMPL_NEON_BIN_OP(&, _Tpvec, vandq_##suffix) \ + OPENCV_HAL_IMPL_NEON_BIN_OP(|, _Tpvec, vorrq_##suffix) \ + OPENCV_HAL_IMPL_NEON_BIN_OP(^, _Tpvec, veorq_##suffix) \ + inline _Tpvec operator ~ (const _Tpvec& a) \ + { \ + return _Tpvec(vreinterpretq_##suffix##_u8(vmvnq_u8(vreinterpretq_u8_##suffix(a.val)))); \ + } + +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint8x16, u8) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int8x16, s8) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint16x8, u16) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int16x8, s16) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint32x4, u32) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int32x4, s32) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint64x2, u64) +OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int64x2, s64) + +#define OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(bin_op, intrin) \ +inline v_float32x4 operator bin_op (const v_float32x4& a, const v_float32x4& b) \ +{ \ + return v_float32x4(vreinterpretq_f32_s32(intrin(vreinterpretq_s32_f32(a.val), vreinterpretq_s32_f32(b.val)))); \ +} \ +inline v_float32x4& operator bin_op##= (v_float32x4& a, const v_float32x4& b) \ +{ \ + a.val = vreinterpretq_f32_s32(intrin(vreinterpretq_s32_f32(a.val), vreinterpretq_s32_f32(b.val))); \ + return a; \ +} + +OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(&, vandq_s32) +OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(|, vorrq_s32) +OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(^, veorq_s32) + +inline v_float32x4 operator ~ (const v_float32x4& a) +{ + return v_float32x4(vreinterpretq_f32_s32(vmvnq_s32(vreinterpretq_s32_f32(a.val)))); +} + +#if CV_SIMD128_64F +inline v_float32x4 v_sqrt(const v_float32x4& x) +{ + return v_float32x4(vsqrtq_f32(x.val)); +} + +inline v_float32x4 v_invsqrt(const v_float32x4& x) +{ + v_float32x4 one = v_setall_f32(1.0f); + return one / v_sqrt(x); +} +#else +inline v_float32x4 v_sqrt(const v_float32x4& x) +{ + float32x4_t x1 = vmaxq_f32(x.val, vdupq_n_f32(FLT_MIN)); + float32x4_t e = vrsqrteq_f32(x1); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x1, e), e), e); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x1, e), e), e); + return v_float32x4(vmulq_f32(x.val, e)); +} + +inline v_float32x4 v_invsqrt(const v_float32x4& x) +{ + float32x4_t e = vrsqrteq_f32(x.val); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); + return v_float32x4(e); +} +#endif + +#define OPENCV_HAL_IMPL_NEON_ABS(_Tpuvec, _Tpsvec, usuffix, ssuffix) \ +inline _Tpuvec v_abs(const _Tpsvec& a) { return v_reinterpret_as_##usuffix(_Tpsvec(vabsq_##ssuffix(a.val))); } + +OPENCV_HAL_IMPL_NEON_ABS(v_uint8x16, v_int8x16, u8, s8) +OPENCV_HAL_IMPL_NEON_ABS(v_uint16x8, v_int16x8, u16, s16) +OPENCV_HAL_IMPL_NEON_ABS(v_uint32x4, v_int32x4, u32, s32) + +inline v_float32x4 v_abs(v_float32x4 x) +{ return v_float32x4(vabsq_f32(x.val)); } + +#if CV_SIMD128_64F +#define OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(bin_op, intrin) \ +inline v_float64x2 operator bin_op (const v_float64x2& a, const v_float64x2& b) \ +{ \ + return v_float64x2(vreinterpretq_f64_s64(intrin(vreinterpretq_s64_f64(a.val), vreinterpretq_s64_f64(b.val)))); \ +} \ +inline v_float64x2& operator bin_op##= (v_float64x2& a, const v_float64x2& b) \ +{ \ + a.val = vreinterpretq_f64_s64(intrin(vreinterpretq_s64_f64(a.val), vreinterpretq_s64_f64(b.val))); \ + return a; \ +} + +OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(&, vandq_s64) +OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(|, vorrq_s64) +OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(^, veorq_s64) + +inline v_float64x2 operator ~ (const v_float64x2& a) +{ + return v_float64x2(vreinterpretq_f64_s32(vmvnq_s32(vreinterpretq_s32_f64(a.val)))); +} + +inline v_float64x2 v_sqrt(const v_float64x2& x) +{ + return v_float64x2(vsqrtq_f64(x.val)); +} + +inline v_float64x2 v_invsqrt(const v_float64x2& x) +{ + v_float64x2 one = v_setall_f64(1.0f); + return one / v_sqrt(x); +} + +inline v_float64x2 v_abs(v_float64x2 x) +{ return v_float64x2(vabsq_f64(x.val)); } +#endif + +// TODO: exp, log, sin, cos + +#define OPENCV_HAL_IMPL_NEON_BIN_FUNC(_Tpvec, func, intrin) \ +inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec(intrin(a.val, b.val)); \ +} + +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_min, vminq_u8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_max, vmaxq_u8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_min, vminq_s8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_max, vmaxq_s8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_min, vminq_u16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_max, vmaxq_u16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_min, vminq_s16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_max, vmaxq_s16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint32x4, v_min, vminq_u32) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint32x4, v_max, vmaxq_u32) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int32x4, v_min, vminq_s32) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int32x4, v_max, vmaxq_s32) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float32x4, v_min, vminq_f32) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float32x4, v_max, vmaxq_f32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float64x2, v_min, vminq_f64) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float64x2, v_max, vmaxq_f64) +#endif + +#if CV_SIMD128_64F +inline int64x2_t vmvnq_s64(int64x2_t a) +{ + int64x2_t vx = vreinterpretq_s64_u32(vdupq_n_u32(0xFFFFFFFF)); + return veorq_s64(a, vx); +} +inline uint64x2_t vmvnq_u64(uint64x2_t a) +{ + uint64x2_t vx = vreinterpretq_u64_u32(vdupq_n_u32(0xFFFFFFFF)); + return veorq_u64(a, vx); +} +#endif +#define OPENCV_HAL_IMPL_NEON_INT_CMP_OP(_Tpvec, cast, suffix, not_suffix) \ +inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(cast(vceqq_##suffix(a.val, b.val))); } \ +inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(cast(vmvnq_##not_suffix(vceqq_##suffix(a.val, b.val)))); } \ +inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(cast(vcltq_##suffix(a.val, b.val))); } \ +inline _Tpvec operator > (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(cast(vcgtq_##suffix(a.val, b.val))); } \ +inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(cast(vcleq_##suffix(a.val, b.val))); } \ +inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(cast(vcgeq_##suffix(a.val, b.val))); } + +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint8x16, OPENCV_HAL_NOP, u8, u8) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int8x16, vreinterpretq_s8_u8, s8, u8) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint16x8, OPENCV_HAL_NOP, u16, u16) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int16x8, vreinterpretq_s16_u16, s16, u16) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint32x4, OPENCV_HAL_NOP, u32, u32) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int32x4, vreinterpretq_s32_u32, s32, u32) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_float32x4, vreinterpretq_f32_u32, f32, u32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint64x2, OPENCV_HAL_NOP, u64, u64) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int64x2, vreinterpretq_s64_u64, s64, u64) +OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_float64x2, vreinterpretq_f64_u64, f64, u64) +#endif + +inline v_float32x4 v_not_nan(const v_float32x4& a) +{ return v_float32x4(vreinterpretq_f32_u32(vceqq_f32(a.val, a.val))); } +#if CV_SIMD128_64F +inline v_float64x2 v_not_nan(const v_float64x2& a) +{ return v_float64x2(vreinterpretq_f64_u64(vceqq_f64(a.val, a.val))); } +#endif + +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_add_wrap, vaddq_u8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_add_wrap, vaddq_s8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_add_wrap, vaddq_u16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_add_wrap, vaddq_s16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_sub_wrap, vsubq_u8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_sub_wrap, vsubq_s8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_sub_wrap, vsubq_u16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_sub_wrap, vsubq_s16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_mul_wrap, vmulq_u8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_mul_wrap, vmulq_s8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_mul_wrap, vmulq_u16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_mul_wrap, vmulq_s16) + +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_absdiff, vabdq_u8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_absdiff, vabdq_u16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint32x4, v_absdiff, vabdq_u32) +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float32x4, v_absdiff, vabdq_f32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float64x2, v_absdiff, vabdq_f64) +#endif + +/** Saturating absolute difference **/ +inline v_int8x16 v_absdiffs(const v_int8x16& a, const v_int8x16& b) +{ return v_int8x16(vqabsq_s8(vqsubq_s8(a.val, b.val))); } +inline v_int16x8 v_absdiffs(const v_int16x8& a, const v_int16x8& b) +{ return v_int16x8(vqabsq_s16(vqsubq_s16(a.val, b.val))); } + +#define OPENCV_HAL_IMPL_NEON_BIN_FUNC2(_Tpvec, _Tpvec2, cast, func, intrin) \ +inline _Tpvec2 func(const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec2(cast(intrin(a.val, b.val))); \ +} + +OPENCV_HAL_IMPL_NEON_BIN_FUNC2(v_int8x16, v_uint8x16, vreinterpretq_u8_s8, v_absdiff, vabdq_s8) +OPENCV_HAL_IMPL_NEON_BIN_FUNC2(v_int16x8, v_uint16x8, vreinterpretq_u16_s16, v_absdiff, vabdq_s16) +OPENCV_HAL_IMPL_NEON_BIN_FUNC2(v_int32x4, v_uint32x4, vreinterpretq_u32_s32, v_absdiff, vabdq_s32) + +inline v_float32x4 v_magnitude(const v_float32x4& a, const v_float32x4& b) +{ + v_float32x4 x(vmlaq_f32(vmulq_f32(a.val, a.val), b.val, b.val)); + return v_sqrt(x); +} + +inline v_float32x4 v_sqr_magnitude(const v_float32x4& a, const v_float32x4& b) +{ + return v_float32x4(vmlaq_f32(vmulq_f32(a.val, a.val), b.val, b.val)); +} + +inline v_float32x4 v_fma(const v_float32x4& a, const v_float32x4& b, const v_float32x4& c) +{ +#if CV_SIMD128_64F + // ARMv8, which adds support for 64-bit floating-point (so CV_SIMD128_64F is defined), + // also adds FMA support both for single- and double-precision floating-point vectors + return v_float32x4(vfmaq_f32(c.val, a.val, b.val)); +#else + return v_float32x4(vmlaq_f32(c.val, a.val, b.val)); +#endif +} + +inline v_int32x4 v_fma(const v_int32x4& a, const v_int32x4& b, const v_int32x4& c) +{ + return v_int32x4(vmlaq_s32(c.val, a.val, b.val)); +} + +inline v_float32x4 v_muladd(const v_float32x4& a, const v_float32x4& b, const v_float32x4& c) +{ + return v_fma(a, b, c); +} + +inline v_int32x4 v_muladd(const v_int32x4& a, const v_int32x4& b, const v_int32x4& c) +{ + return v_fma(a, b, c); +} + +#if CV_SIMD128_64F +inline v_float64x2 v_magnitude(const v_float64x2& a, const v_float64x2& b) +{ + v_float64x2 x(vaddq_f64(vmulq_f64(a.val, a.val), vmulq_f64(b.val, b.val))); + return v_sqrt(x); +} + +inline v_float64x2 v_sqr_magnitude(const v_float64x2& a, const v_float64x2& b) +{ + return v_float64x2(vaddq_f64(vmulq_f64(a.val, a.val), vmulq_f64(b.val, b.val))); +} + +inline v_float64x2 v_fma(const v_float64x2& a, const v_float64x2& b, const v_float64x2& c) +{ + return v_float64x2(vfmaq_f64(c.val, a.val, b.val)); +} + +inline v_float64x2 v_muladd(const v_float64x2& a, const v_float64x2& b, const v_float64x2& c) +{ + return v_fma(a, b, c); +} +#endif + +// trade efficiency for convenience +#define OPENCV_HAL_IMPL_NEON_SHIFT_OP(_Tpvec, suffix, _Tps, ssuffix) \ +inline _Tpvec operator << (const _Tpvec& a, int n) \ +{ return _Tpvec(vshlq_##suffix(a.val, vdupq_n_##ssuffix((_Tps)n))); } \ +inline _Tpvec operator >> (const _Tpvec& a, int n) \ +{ return _Tpvec(vshlq_##suffix(a.val, vdupq_n_##ssuffix((_Tps)-n))); } \ +template inline _Tpvec v_shl(const _Tpvec& a) \ +{ return _Tpvec(vshlq_n_##suffix(a.val, n)); } \ +template inline _Tpvec v_shr(const _Tpvec& a) \ +{ return _Tpvec(vshrq_n_##suffix(a.val, n)); } \ +template inline _Tpvec v_rshr(const _Tpvec& a) \ +{ return _Tpvec(vrshrq_n_##suffix(a.val, n)); } + +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint8x16, u8, schar, s8) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int8x16, s8, schar, s8) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint16x8, u16, short, s16) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int16x8, s16, short, s16) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint32x4, u32, int, s32) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int32x4, s32, int, s32) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint64x2, u64, int64, s64) +OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int64x2, s64, int64, s64) + +#define OPENCV_HAL_IMPL_NEON_ROTATE_OP(_Tpvec, suffix) \ +template inline _Tpvec v_rotate_right(const _Tpvec& a) \ +{ return _Tpvec(vextq_##suffix(a.val, vdupq_n_##suffix(0), n)); } \ +template inline _Tpvec v_rotate_left(const _Tpvec& a) \ +{ return _Tpvec(vextq_##suffix(vdupq_n_##suffix(0), a.val, _Tpvec::nlanes - n)); } \ +template<> inline _Tpvec v_rotate_left<0>(const _Tpvec& a) \ +{ return a; } \ +template inline _Tpvec v_rotate_right(const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vextq_##suffix(a.val, b.val, n)); } \ +template inline _Tpvec v_rotate_left(const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vextq_##suffix(b.val, a.val, _Tpvec::nlanes - n)); } \ +template<> inline _Tpvec v_rotate_left<0>(const _Tpvec& a, const _Tpvec& b) \ +{ CV_UNUSED(b); return a; } + +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_uint8x16, u8) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_int8x16, s8) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_uint16x8, u16) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_int16x8, s16) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_uint32x4, u32) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_int32x4, s32) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_float32x4, f32) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_uint64x2, u64) +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_int64x2, s64) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_ROTATE_OP(v_float64x2, f64) +#endif + +#define OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(_Tpvec, _Tp, suffix) \ +inline _Tpvec v_load(const _Tp* ptr) \ +{ return _Tpvec(vld1q_##suffix(ptr)); } \ +inline _Tpvec v_load_aligned(const _Tp* ptr) \ +{ return _Tpvec(vld1q_##suffix(ptr)); } \ +inline _Tpvec v_load_low(const _Tp* ptr) \ +{ return _Tpvec(vcombine_##suffix(vld1_##suffix(ptr), vdup_n_##suffix((_Tp)0))); } \ +inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ +{ return _Tpvec(vcombine_##suffix(vld1_##suffix(ptr0), vld1_##suffix(ptr1))); } \ +inline void v_store(_Tp* ptr, const _Tpvec& a) \ +{ vst1q_##suffix(ptr, a.val); } \ +inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ +{ vst1q_##suffix(ptr, a.val); } \ +inline void v_store_aligned_nocache(_Tp* ptr, const _Tpvec& a) \ +{ vst1q_##suffix(ptr, a.val); } \ +inline void v_store(_Tp* ptr, const _Tpvec& a, hal::StoreMode /*mode*/) \ +{ vst1q_##suffix(ptr, a.val); } \ +inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ +{ vst1_##suffix(ptr, vget_low_##suffix(a.val)); } \ +inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ +{ vst1_##suffix(ptr, vget_high_##suffix(a.val)); } + +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint8x16, uchar, u8) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int8x16, schar, s8) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint16x8, ushort, u16) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int16x8, short, s16) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint32x4, unsigned, u32) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int32x4, int, s32) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint64x2, uint64, u64) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int64x2, int64, s64) +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_float32x4, float, f32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_float64x2, double, f64) +#endif + +#define OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(_Tpvec, _Tpnvec, scalartype, func, vectorfunc, suffix) \ +inline scalartype v_reduce_##func(const _Tpvec& a) \ +{ \ + _Tpnvec##_t a0 = vp##vectorfunc##_##suffix(vget_low_##suffix(a.val), vget_high_##suffix(a.val)); \ + a0 = vp##vectorfunc##_##suffix(a0, a0); \ + return (scalartype)vget_lane_##suffix(vp##vectorfunc##_##suffix(a0, a0),0); \ +} + +OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_uint16x8, uint16x4, unsigned short, sum, add, u16) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_uint16x8, uint16x4, unsigned short, max, max, u16) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_uint16x8, uint16x4, unsigned short, min, min, u16) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_int16x8, int16x4, short, sum, add, s16) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_int16x8, int16x4, short, max, max, s16) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_int16x8, int16x4, short, min, min, s16) + +#define OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(_Tpvec, _Tpnvec, scalartype, func, vectorfunc, suffix) \ +inline scalartype v_reduce_##func(const _Tpvec& a) \ +{ \ + _Tpnvec##_t a0 = vp##vectorfunc##_##suffix(vget_low_##suffix(a.val), vget_high_##suffix(a.val)); \ + return (scalartype)vget_lane_##suffix(vp##vectorfunc##_##suffix(a0, vget_high_##suffix(a.val)),0); \ +} + +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_uint32x4, uint32x2, unsigned, sum, add, u32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_uint32x4, uint32x2, unsigned, max, max, u32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_uint32x4, uint32x2, unsigned, min, min, u32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_int32x4, int32x2, int, sum, add, s32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_int32x4, int32x2, int, max, max, s32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_int32x4, int32x2, int, min, min, s32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_float32x4, float32x2, float, sum, add, f32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_float32x4, float32x2, float, max, max, f32) +OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_float32x4, float32x2, float, min, min, f32) + +#if CV_SIMD128_64F +inline double v_reduce_sum(const v_float64x2& a) +{ + return vgetq_lane_f64(a.val, 0) + vgetq_lane_f64(a.val, 1); +} +#endif + +inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, + const v_float32x4& c, const v_float32x4& d) +{ + float32x4x2_t ab = vtrnq_f32(a.val, b.val); + float32x4x2_t cd = vtrnq_f32(c.val, d.val); + + float32x4_t u0 = vaddq_f32(ab.val[0], ab.val[1]); // a0+a1 b0+b1 a2+a3 b2+b3 + float32x4_t u1 = vaddq_f32(cd.val[0], cd.val[1]); // c0+c1 d0+d1 c2+c3 d2+d3 + + float32x4_t v0 = vcombine_f32(vget_low_f32(u0), vget_low_f32(u1)); + float32x4_t v1 = vcombine_f32(vget_high_f32(u0), vget_high_f32(u1)); + + return v_float32x4(vaddq_f32(v0, v1)); +} + +inline unsigned v_reduce_sad(const v_uint8x16& a, const v_uint8x16& b) +{ + uint32x4_t t0 = vpaddlq_u16(vpaddlq_u8(vabdq_u8(a.val, b.val))); + uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); + return vget_lane_u32(vpadd_u32(t1, t1), 0); +} +inline unsigned v_reduce_sad(const v_int8x16& a, const v_int8x16& b) +{ + uint32x4_t t0 = vpaddlq_u16(vpaddlq_u8(vreinterpretq_u8_s8(vabdq_s8(a.val, b.val)))); + uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); + return vget_lane_u32(vpadd_u32(t1, t1), 0); +} +inline unsigned v_reduce_sad(const v_uint16x8& a, const v_uint16x8& b) +{ + uint32x4_t t0 = vpaddlq_u16(vabdq_u16(a.val, b.val)); + uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); + return vget_lane_u32(vpadd_u32(t1, t1), 0); +} +inline unsigned v_reduce_sad(const v_int16x8& a, const v_int16x8& b) +{ + uint32x4_t t0 = vpaddlq_u16(vreinterpretq_u16_s16(vabdq_s16(a.val, b.val))); + uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); + return vget_lane_u32(vpadd_u32(t1, t1), 0); +} +inline unsigned v_reduce_sad(const v_uint32x4& a, const v_uint32x4& b) +{ + uint32x4_t t0 = vabdq_u32(a.val, b.val); + uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); + return vget_lane_u32(vpadd_u32(t1, t1), 0); +} +inline unsigned v_reduce_sad(const v_int32x4& a, const v_int32x4& b) +{ + uint32x4_t t0 = vreinterpretq_u32_s32(vabdq_s32(a.val, b.val)); + uint32x2_t t1 = vpadd_u32(vget_low_u32(t0), vget_high_u32(t0)); + return vget_lane_u32(vpadd_u32(t1, t1), 0); +} +inline float v_reduce_sad(const v_float32x4& a, const v_float32x4& b) +{ + float32x4_t t0 = vabdq_f32(a.val, b.val); + float32x2_t t1 = vpadd_f32(vget_low_f32(t0), vget_high_f32(t0)); + return vget_lane_f32(vpadd_f32(t1, t1), 0); +} + +#define OPENCV_HAL_IMPL_NEON_POPCOUNT(_Tpvec, cast) \ +inline v_uint32x4 v_popcount(const _Tpvec& a) \ +{ \ + uint8x16_t t = vcntq_u8(cast(a.val)); \ + uint16x8_t t0 = vpaddlq_u8(t); /* 16 -> 8 */ \ + uint32x4_t t1 = vpaddlq_u16(t0); /* 8 -> 4 */ \ + return v_uint32x4(t1); \ +} + +OPENCV_HAL_IMPL_NEON_POPCOUNT(v_uint8x16, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_NEON_POPCOUNT(v_uint16x8, vreinterpretq_u8_u16) +OPENCV_HAL_IMPL_NEON_POPCOUNT(v_uint32x4, vreinterpretq_u8_u32) +OPENCV_HAL_IMPL_NEON_POPCOUNT(v_int8x16, vreinterpretq_u8_s8) +OPENCV_HAL_IMPL_NEON_POPCOUNT(v_int16x8, vreinterpretq_u8_s16) +OPENCV_HAL_IMPL_NEON_POPCOUNT(v_int32x4, vreinterpretq_u8_s32) + +inline int v_signmask(const v_uint8x16& a) +{ + int8x8_t m0 = vcreate_s8(CV_BIG_UINT(0x0706050403020100)); + uint8x16_t v0 = vshlq_u8(vshrq_n_u8(a.val, 7), vcombine_s8(m0, m0)); + uint64x2_t v1 = vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(v0))); + return (int)vgetq_lane_u64(v1, 0) + ((int)vgetq_lane_u64(v1, 1) << 8); +} +inline int v_signmask(const v_int8x16& a) +{ return v_signmask(v_reinterpret_as_u8(a)); } + +inline int v_signmask(const v_uint16x8& a) +{ + int16x4_t m0 = vcreate_s16(CV_BIG_UINT(0x0003000200010000)); + uint16x8_t v0 = vshlq_u16(vshrq_n_u16(a.val, 15), vcombine_s16(m0, m0)); + uint64x2_t v1 = vpaddlq_u32(vpaddlq_u16(v0)); + return (int)vgetq_lane_u64(v1, 0) + ((int)vgetq_lane_u64(v1, 1) << 4); +} +inline int v_signmask(const v_int16x8& a) +{ return v_signmask(v_reinterpret_as_u16(a)); } + +inline int v_signmask(const v_uint32x4& a) +{ + int32x2_t m0 = vcreate_s32(CV_BIG_UINT(0x0000000100000000)); + uint32x4_t v0 = vshlq_u32(vshrq_n_u32(a.val, 31), vcombine_s32(m0, m0)); + uint64x2_t v1 = vpaddlq_u32(v0); + return (int)vgetq_lane_u64(v1, 0) + ((int)vgetq_lane_u64(v1, 1) << 2); +} +inline int v_signmask(const v_int32x4& a) +{ return v_signmask(v_reinterpret_as_u32(a)); } +inline int v_signmask(const v_float32x4& a) +{ return v_signmask(v_reinterpret_as_u32(a)); } +#if CV_SIMD128_64F +inline int v_signmask(const v_uint64x2& a) +{ + int64x1_t m0 = vdup_n_s64(0); + uint64x2_t v0 = vshlq_u64(vshrq_n_u64(a.val, 63), vcombine_s64(m0, m0)); + return (int)vgetq_lane_u64(v0, 0) + ((int)vgetq_lane_u64(v0, 1) << 1); +} +inline int v_signmask(const v_float64x2& a) +{ return v_signmask(v_reinterpret_as_u64(a)); } +#endif + +#define OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(_Tpvec, suffix, shift) \ +inline bool v_check_all(const v_##_Tpvec& a) \ +{ \ + _Tpvec##_t v0 = vshrq_n_##suffix(vmvnq_##suffix(a.val), shift); \ + uint64x2_t v1 = vreinterpretq_u64_##suffix(v0); \ + return (vgetq_lane_u64(v1, 0) | vgetq_lane_u64(v1, 1)) == 0; \ +} \ +inline bool v_check_any(const v_##_Tpvec& a) \ +{ \ + _Tpvec##_t v0 = vshrq_n_##suffix(a.val, shift); \ + uint64x2_t v1 = vreinterpretq_u64_##suffix(v0); \ + return (vgetq_lane_u64(v1, 0) | vgetq_lane_u64(v1, 1)) != 0; \ +} + +OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint8x16, u8, 7) +OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint16x8, u16, 15) +OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint32x4, u32, 31) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint64x2, u64, 63) +#endif + +inline bool v_check_all(const v_int8x16& a) +{ return v_check_all(v_reinterpret_as_u8(a)); } +inline bool v_check_all(const v_int16x8& a) +{ return v_check_all(v_reinterpret_as_u16(a)); } +inline bool v_check_all(const v_int32x4& a) +{ return v_check_all(v_reinterpret_as_u32(a)); } +inline bool v_check_all(const v_float32x4& a) +{ return v_check_all(v_reinterpret_as_u32(a)); } + +inline bool v_check_any(const v_int8x16& a) +{ return v_check_any(v_reinterpret_as_u8(a)); } +inline bool v_check_any(const v_int16x8& a) +{ return v_check_any(v_reinterpret_as_u16(a)); } +inline bool v_check_any(const v_int32x4& a) +{ return v_check_any(v_reinterpret_as_u32(a)); } +inline bool v_check_any(const v_float32x4& a) +{ return v_check_any(v_reinterpret_as_u32(a)); } + +#if CV_SIMD128_64F +inline bool v_check_all(const v_int64x2& a) +{ return v_check_all(v_reinterpret_as_u64(a)); } +inline bool v_check_all(const v_float64x2& a) +{ return v_check_all(v_reinterpret_as_u64(a)); } +inline bool v_check_any(const v_int64x2& a) +{ return v_check_any(v_reinterpret_as_u64(a)); } +inline bool v_check_any(const v_float64x2& a) +{ return v_check_any(v_reinterpret_as_u64(a)); } +#endif + +#define OPENCV_HAL_IMPL_NEON_SELECT(_Tpvec, suffix, usuffix) \ +inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec(vbslq_##suffix(vreinterpretq_##usuffix##_##suffix(mask.val), a.val, b.val)); \ +} + +OPENCV_HAL_IMPL_NEON_SELECT(v_uint8x16, u8, u8) +OPENCV_HAL_IMPL_NEON_SELECT(v_int8x16, s8, u8) +OPENCV_HAL_IMPL_NEON_SELECT(v_uint16x8, u16, u16) +OPENCV_HAL_IMPL_NEON_SELECT(v_int16x8, s16, u16) +OPENCV_HAL_IMPL_NEON_SELECT(v_uint32x4, u32, u32) +OPENCV_HAL_IMPL_NEON_SELECT(v_int32x4, s32, u32) +OPENCV_HAL_IMPL_NEON_SELECT(v_float32x4, f32, u32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_SELECT(v_float64x2, f64, u64) +#endif + +#define OPENCV_HAL_IMPL_NEON_EXPAND(_Tpvec, _Tpwvec, _Tp, suffix) \ +inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ +{ \ + b0.val = vmovl_##suffix(vget_low_##suffix(a.val)); \ + b1.val = vmovl_##suffix(vget_high_##suffix(a.val)); \ +} \ +inline _Tpwvec v_expand_low(const _Tpvec& a) \ +{ \ + return _Tpwvec(vmovl_##suffix(vget_low_##suffix(a.val))); \ +} \ +inline _Tpwvec v_expand_high(const _Tpvec& a) \ +{ \ + return _Tpwvec(vmovl_##suffix(vget_high_##suffix(a.val))); \ +} \ +inline _Tpwvec v_load_expand(const _Tp* ptr) \ +{ \ + return _Tpwvec(vmovl_##suffix(vld1_##suffix(ptr))); \ +} + +OPENCV_HAL_IMPL_NEON_EXPAND(v_uint8x16, v_uint16x8, uchar, u8) +OPENCV_HAL_IMPL_NEON_EXPAND(v_int8x16, v_int16x8, schar, s8) +OPENCV_HAL_IMPL_NEON_EXPAND(v_uint16x8, v_uint32x4, ushort, u16) +OPENCV_HAL_IMPL_NEON_EXPAND(v_int16x8, v_int32x4, short, s16) +OPENCV_HAL_IMPL_NEON_EXPAND(v_uint32x4, v_uint64x2, uint, u32) +OPENCV_HAL_IMPL_NEON_EXPAND(v_int32x4, v_int64x2, int, s32) + +inline v_uint32x4 v_load_expand_q(const uchar* ptr) +{ + typedef unsigned int CV_DECL_ALIGNED(1) unaligned_uint; + uint8x8_t v0 = vcreate_u8(*(unaligned_uint*)ptr); + uint16x4_t v1 = vget_low_u16(vmovl_u8(v0)); + return v_uint32x4(vmovl_u16(v1)); +} + +inline v_int32x4 v_load_expand_q(const schar* ptr) +{ + typedef unsigned int CV_DECL_ALIGNED(1) unaligned_uint; + int8x8_t v0 = vcreate_s8(*(unaligned_uint*)ptr); + int16x4_t v1 = vget_low_s16(vmovl_s8(v0)); + return v_int32x4(vmovl_s16(v1)); +} + +#if defined(__aarch64__) +#define OPENCV_HAL_IMPL_NEON_UNPACKS(_Tpvec, suffix) \ +inline void v_zip(const v_##_Tpvec& a0, const v_##_Tpvec& a1, v_##_Tpvec& b0, v_##_Tpvec& b1) \ +{ \ + b0.val = vzip1q_##suffix(a0.val, a1.val); \ + b1.val = vzip2q_##suffix(a0.val, a1.val); \ +} \ +inline v_##_Tpvec v_combine_low(const v_##_Tpvec& a, const v_##_Tpvec& b) \ +{ \ + return v_##_Tpvec(vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val))); \ +} \ +inline v_##_Tpvec v_combine_high(const v_##_Tpvec& a, const v_##_Tpvec& b) \ +{ \ + return v_##_Tpvec(vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val))); \ +} \ +inline void v_recombine(const v_##_Tpvec& a, const v_##_Tpvec& b, v_##_Tpvec& c, v_##_Tpvec& d) \ +{ \ + c.val = vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val)); \ + d.val = vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val)); \ +} +#else +#define OPENCV_HAL_IMPL_NEON_UNPACKS(_Tpvec, suffix) \ +inline void v_zip(const v_##_Tpvec& a0, const v_##_Tpvec& a1, v_##_Tpvec& b0, v_##_Tpvec& b1) \ +{ \ + _Tpvec##x2_t p = vzipq_##suffix(a0.val, a1.val); \ + b0.val = p.val[0]; \ + b1.val = p.val[1]; \ +} \ +inline v_##_Tpvec v_combine_low(const v_##_Tpvec& a, const v_##_Tpvec& b) \ +{ \ + return v_##_Tpvec(vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val))); \ +} \ +inline v_##_Tpvec v_combine_high(const v_##_Tpvec& a, const v_##_Tpvec& b) \ +{ \ + return v_##_Tpvec(vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val))); \ +} \ +inline void v_recombine(const v_##_Tpvec& a, const v_##_Tpvec& b, v_##_Tpvec& c, v_##_Tpvec& d) \ +{ \ + c.val = vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val)); \ + d.val = vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val)); \ +} +#endif + +OPENCV_HAL_IMPL_NEON_UNPACKS(uint8x16, u8) +OPENCV_HAL_IMPL_NEON_UNPACKS(int8x16, s8) +OPENCV_HAL_IMPL_NEON_UNPACKS(uint16x8, u16) +OPENCV_HAL_IMPL_NEON_UNPACKS(int16x8, s16) +OPENCV_HAL_IMPL_NEON_UNPACKS(uint32x4, u32) +OPENCV_HAL_IMPL_NEON_UNPACKS(int32x4, s32) +OPENCV_HAL_IMPL_NEON_UNPACKS(float32x4, f32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_UNPACKS(float64x2, f64) +#endif + +#define OPENCV_HAL_IMPL_NEON_EXTRACT(_Tpvec, suffix) \ +template \ +inline v_##_Tpvec v_extract(const v_##_Tpvec& a, const v_##_Tpvec& b) \ +{ \ + return v_##_Tpvec(vextq_##suffix(a.val, b.val, s)); \ +} + +OPENCV_HAL_IMPL_NEON_EXTRACT(uint8x16, u8) +OPENCV_HAL_IMPL_NEON_EXTRACT(int8x16, s8) +OPENCV_HAL_IMPL_NEON_EXTRACT(uint16x8, u16) +OPENCV_HAL_IMPL_NEON_EXTRACT(int16x8, s16) +OPENCV_HAL_IMPL_NEON_EXTRACT(uint32x4, u32) +OPENCV_HAL_IMPL_NEON_EXTRACT(int32x4, s32) +OPENCV_HAL_IMPL_NEON_EXTRACT(uint64x2, u64) +OPENCV_HAL_IMPL_NEON_EXTRACT(int64x2, s64) +OPENCV_HAL_IMPL_NEON_EXTRACT(float32x4, f32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_EXTRACT(float64x2, f64) +#endif + +#if CV_SIMD128_64F +inline v_int32x4 v_round(const v_float32x4& a) +{ + float32x4_t a_ = a.val; + int32x4_t result; + __asm__ ("fcvtns %0.4s, %1.4s" + : "=w"(result) + : "w"(a_) + : /* No clobbers */); + return v_int32x4(result); +} +#else +inline v_int32x4 v_round(const v_float32x4& a) +{ + static const int32x4_t v_sign = vdupq_n_s32(1 << 31), + v_05 = vreinterpretq_s32_f32(vdupq_n_f32(0.5f)); + + int32x4_t v_addition = vorrq_s32(v_05, vandq_s32(v_sign, vreinterpretq_s32_f32(a.val))); + return v_int32x4(vcvtq_s32_f32(vaddq_f32(a.val, vreinterpretq_f32_s32(v_addition)))); +} +#endif +inline v_int32x4 v_floor(const v_float32x4& a) +{ + int32x4_t a1 = vcvtq_s32_f32(a.val); + uint32x4_t mask = vcgtq_f32(vcvtq_f32_s32(a1), a.val); + return v_int32x4(vaddq_s32(a1, vreinterpretq_s32_u32(mask))); +} + +inline v_int32x4 v_ceil(const v_float32x4& a) +{ + int32x4_t a1 = vcvtq_s32_f32(a.val); + uint32x4_t mask = vcgtq_f32(a.val, vcvtq_f32_s32(a1)); + return v_int32x4(vsubq_s32(a1, vreinterpretq_s32_u32(mask))); +} + +inline v_int32x4 v_trunc(const v_float32x4& a) +{ return v_int32x4(vcvtq_s32_f32(a.val)); } + +#if CV_SIMD128_64F +inline v_int32x4 v_round(const v_float64x2& a) +{ + static const int32x2_t zero = vdup_n_s32(0); + return v_int32x4(vcombine_s32(vmovn_s64(vcvtaq_s64_f64(a.val)), zero)); +} + +inline v_int32x4 v_round(const v_float64x2& a, const v_float64x2& b) +{ + return v_int32x4(vcombine_s32(vmovn_s64(vcvtaq_s64_f64(a.val)), vmovn_s64(vcvtaq_s64_f64(b.val)))); +} + +inline v_int32x4 v_floor(const v_float64x2& a) +{ + static const int32x2_t zero = vdup_n_s32(0); + int64x2_t a1 = vcvtq_s64_f64(a.val); + uint64x2_t mask = vcgtq_f64(vcvtq_f64_s64(a1), a.val); + a1 = vaddq_s64(a1, vreinterpretq_s64_u64(mask)); + return v_int32x4(vcombine_s32(vmovn_s64(a1), zero)); +} + +inline v_int32x4 v_ceil(const v_float64x2& a) +{ + static const int32x2_t zero = vdup_n_s32(0); + int64x2_t a1 = vcvtq_s64_f64(a.val); + uint64x2_t mask = vcgtq_f64(a.val, vcvtq_f64_s64(a1)); + a1 = vsubq_s64(a1, vreinterpretq_s64_u64(mask)); + return v_int32x4(vcombine_s32(vmovn_s64(a1), zero)); +} + +inline v_int32x4 v_trunc(const v_float64x2& a) +{ + static const int32x2_t zero = vdup_n_s32(0); + return v_int32x4(vcombine_s32(vmovn_s64(vcvtaq_s64_f64(a.val)), zero)); +} +#endif + +#define OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(_Tpvec, suffix) \ +inline void v_transpose4x4(const v_##_Tpvec& a0, const v_##_Tpvec& a1, \ + const v_##_Tpvec& a2, const v_##_Tpvec& a3, \ + v_##_Tpvec& b0, v_##_Tpvec& b1, \ + v_##_Tpvec& b2, v_##_Tpvec& b3) \ +{ \ + /* m00 m01 m02 m03 */ \ + /* m10 m11 m12 m13 */ \ + /* m20 m21 m22 m23 */ \ + /* m30 m31 m32 m33 */ \ + _Tpvec##x2_t t0 = vtrnq_##suffix(a0.val, a1.val); \ + _Tpvec##x2_t t1 = vtrnq_##suffix(a2.val, a3.val); \ + /* m00 m10 m02 m12 */ \ + /* m01 m11 m03 m13 */ \ + /* m20 m30 m22 m32 */ \ + /* m21 m31 m23 m33 */ \ + b0.val = vcombine_##suffix(vget_low_##suffix(t0.val[0]), vget_low_##suffix(t1.val[0])); \ + b1.val = vcombine_##suffix(vget_low_##suffix(t0.val[1]), vget_low_##suffix(t1.val[1])); \ + b2.val = vcombine_##suffix(vget_high_##suffix(t0.val[0]), vget_high_##suffix(t1.val[0])); \ + b3.val = vcombine_##suffix(vget_high_##suffix(t0.val[1]), vget_high_##suffix(t1.val[1])); \ +} + +OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(uint32x4, u32) +OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(int32x4, s32) +OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(float32x4, f32) + +#define OPENCV_HAL_IMPL_NEON_INTERLEAVED(_Tpvec, _Tp, suffix) \ +inline void v_load_deinterleave(const _Tp* ptr, v_##_Tpvec& a, v_##_Tpvec& b) \ +{ \ + _Tpvec##x2_t v = vld2q_##suffix(ptr); \ + a.val = v.val[0]; \ + b.val = v.val[1]; \ +} \ +inline void v_load_deinterleave(const _Tp* ptr, v_##_Tpvec& a, v_##_Tpvec& b, v_##_Tpvec& c) \ +{ \ + _Tpvec##x3_t v = vld3q_##suffix(ptr); \ + a.val = v.val[0]; \ + b.val = v.val[1]; \ + c.val = v.val[2]; \ +} \ +inline void v_load_deinterleave(const _Tp* ptr, v_##_Tpvec& a, v_##_Tpvec& b, \ + v_##_Tpvec& c, v_##_Tpvec& d) \ +{ \ + _Tpvec##x4_t v = vld4q_##suffix(ptr); \ + a.val = v.val[0]; \ + b.val = v.val[1]; \ + c.val = v.val[2]; \ + d.val = v.val[3]; \ +} \ +inline void v_store_interleave( _Tp* ptr, const v_##_Tpvec& a, const v_##_Tpvec& b, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ \ + _Tpvec##x2_t v; \ + v.val[0] = a.val; \ + v.val[1] = b.val; \ + vst2q_##suffix(ptr, v); \ +} \ +inline void v_store_interleave( _Tp* ptr, const v_##_Tpvec& a, const v_##_Tpvec& b, \ + const v_##_Tpvec& c, hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ \ + _Tpvec##x3_t v; \ + v.val[0] = a.val; \ + v.val[1] = b.val; \ + v.val[2] = c.val; \ + vst3q_##suffix(ptr, v); \ +} \ +inline void v_store_interleave( _Tp* ptr, const v_##_Tpvec& a, const v_##_Tpvec& b, \ + const v_##_Tpvec& c, const v_##_Tpvec& d, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec##x4_t v; \ + v.val[0] = a.val; \ + v.val[1] = b.val; \ + v.val[2] = c.val; \ + v.val[3] = d.val; \ + vst4q_##suffix(ptr, v); \ +} + +#define OPENCV_HAL_IMPL_NEON_INTERLEAVED_INT64(tp, suffix) \ +inline void v_load_deinterleave( const tp* ptr, v_##tp##x2& a, v_##tp##x2& b ) \ +{ \ + tp##x1_t a0 = vld1_##suffix(ptr); \ + tp##x1_t b0 = vld1_##suffix(ptr + 1); \ + tp##x1_t a1 = vld1_##suffix(ptr + 2); \ + tp##x1_t b1 = vld1_##suffix(ptr + 3); \ + a = v_##tp##x2(vcombine_##suffix(a0, a1)); \ + b = v_##tp##x2(vcombine_##suffix(b0, b1)); \ +} \ + \ +inline void v_load_deinterleave( const tp* ptr, v_##tp##x2& a, \ + v_##tp##x2& b, v_##tp##x2& c ) \ +{ \ + tp##x1_t a0 = vld1_##suffix(ptr); \ + tp##x1_t b0 = vld1_##suffix(ptr + 1); \ + tp##x1_t c0 = vld1_##suffix(ptr + 2); \ + tp##x1_t a1 = vld1_##suffix(ptr + 3); \ + tp##x1_t b1 = vld1_##suffix(ptr + 4); \ + tp##x1_t c1 = vld1_##suffix(ptr + 5); \ + a = v_##tp##x2(vcombine_##suffix(a0, a1)); \ + b = v_##tp##x2(vcombine_##suffix(b0, b1)); \ + c = v_##tp##x2(vcombine_##suffix(c0, c1)); \ +} \ + \ +inline void v_load_deinterleave( const tp* ptr, v_##tp##x2& a, v_##tp##x2& b, \ + v_##tp##x2& c, v_##tp##x2& d ) \ +{ \ + tp##x1_t a0 = vld1_##suffix(ptr); \ + tp##x1_t b0 = vld1_##suffix(ptr + 1); \ + tp##x1_t c0 = vld1_##suffix(ptr + 2); \ + tp##x1_t d0 = vld1_##suffix(ptr + 3); \ + tp##x1_t a1 = vld1_##suffix(ptr + 4); \ + tp##x1_t b1 = vld1_##suffix(ptr + 5); \ + tp##x1_t c1 = vld1_##suffix(ptr + 6); \ + tp##x1_t d1 = vld1_##suffix(ptr + 7); \ + a = v_##tp##x2(vcombine_##suffix(a0, a1)); \ + b = v_##tp##x2(vcombine_##suffix(b0, b1)); \ + c = v_##tp##x2(vcombine_##suffix(c0, c1)); \ + d = v_##tp##x2(vcombine_##suffix(d0, d1)); \ +} \ + \ +inline void v_store_interleave( tp* ptr, const v_##tp##x2& a, const v_##tp##x2& b, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ \ + vst1_##suffix(ptr, vget_low_##suffix(a.val)); \ + vst1_##suffix(ptr + 1, vget_low_##suffix(b.val)); \ + vst1_##suffix(ptr + 2, vget_high_##suffix(a.val)); \ + vst1_##suffix(ptr + 3, vget_high_##suffix(b.val)); \ +} \ + \ +inline void v_store_interleave( tp* ptr, const v_##tp##x2& a, \ + const v_##tp##x2& b, const v_##tp##x2& c, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ \ + vst1_##suffix(ptr, vget_low_##suffix(a.val)); \ + vst1_##suffix(ptr + 1, vget_low_##suffix(b.val)); \ + vst1_##suffix(ptr + 2, vget_low_##suffix(c.val)); \ + vst1_##suffix(ptr + 3, vget_high_##suffix(a.val)); \ + vst1_##suffix(ptr + 4, vget_high_##suffix(b.val)); \ + vst1_##suffix(ptr + 5, vget_high_##suffix(c.val)); \ +} \ + \ +inline void v_store_interleave( tp* ptr, const v_##tp##x2& a, const v_##tp##x2& b, \ + const v_##tp##x2& c, const v_##tp##x2& d, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ \ + vst1_##suffix(ptr, vget_low_##suffix(a.val)); \ + vst1_##suffix(ptr + 1, vget_low_##suffix(b.val)); \ + vst1_##suffix(ptr + 2, vget_low_##suffix(c.val)); \ + vst1_##suffix(ptr + 3, vget_low_##suffix(d.val)); \ + vst1_##suffix(ptr + 4, vget_high_##suffix(a.val)); \ + vst1_##suffix(ptr + 5, vget_high_##suffix(b.val)); \ + vst1_##suffix(ptr + 6, vget_high_##suffix(c.val)); \ + vst1_##suffix(ptr + 7, vget_high_##suffix(d.val)); \ +} + +OPENCV_HAL_IMPL_NEON_INTERLEAVED(uint8x16, uchar, u8) +OPENCV_HAL_IMPL_NEON_INTERLEAVED(int8x16, schar, s8) +OPENCV_HAL_IMPL_NEON_INTERLEAVED(uint16x8, ushort, u16) +OPENCV_HAL_IMPL_NEON_INTERLEAVED(int16x8, short, s16) +OPENCV_HAL_IMPL_NEON_INTERLEAVED(uint32x4, unsigned, u32) +OPENCV_HAL_IMPL_NEON_INTERLEAVED(int32x4, int, s32) +OPENCV_HAL_IMPL_NEON_INTERLEAVED(float32x4, float, f32) +#if CV_SIMD128_64F +OPENCV_HAL_IMPL_NEON_INTERLEAVED(float64x2, double, f64) +#endif + +OPENCV_HAL_IMPL_NEON_INTERLEAVED_INT64(int64, s64) +OPENCV_HAL_IMPL_NEON_INTERLEAVED_INT64(uint64, u64) + +inline v_float32x4 v_cvt_f32(const v_int32x4& a) +{ + return v_float32x4(vcvtq_f32_s32(a.val)); +} + +#if CV_SIMD128_64F +inline v_float32x4 v_cvt_f32(const v_float64x2& a) +{ + float32x2_t zero = vdup_n_f32(0.0f); + return v_float32x4(vcombine_f32(vcvt_f32_f64(a.val), zero)); +} + +inline v_float32x4 v_cvt_f32(const v_float64x2& a, const v_float64x2& b) +{ + return v_float32x4(vcombine_f32(vcvt_f32_f64(a.val), vcvt_f32_f64(b.val))); +} + +inline v_float64x2 v_cvt_f64(const v_int32x4& a) +{ + return v_float64x2(vcvt_f64_f32(vcvt_f32_s32(vget_low_s32(a.val)))); +} + +inline v_float64x2 v_cvt_f64_high(const v_int32x4& a) +{ + return v_float64x2(vcvt_f64_f32(vcvt_f32_s32(vget_high_s32(a.val)))); +} + +inline v_float64x2 v_cvt_f64(const v_float32x4& a) +{ + return v_float64x2(vcvt_f64_f32(vget_low_f32(a.val))); +} + +inline v_float64x2 v_cvt_f64_high(const v_float32x4& a) +{ + return v_float64x2(vcvt_f64_f32(vget_high_f32(a.val))); +} +#endif + +////////////// Lookup table access //////////////////// + +inline v_int8x16 v_lut(const schar* tab, const int* idx) +{ + schar CV_DECL_ALIGNED(32) elems[16] = + { + tab[idx[ 0]], + tab[idx[ 1]], + tab[idx[ 2]], + tab[idx[ 3]], + tab[idx[ 4]], + tab[idx[ 5]], + tab[idx[ 6]], + tab[idx[ 7]], + tab[idx[ 8]], + tab[idx[ 9]], + tab[idx[10]], + tab[idx[11]], + tab[idx[12]], + tab[idx[13]], + tab[idx[14]], + tab[idx[15]] + }; + return v_int8x16(vld1q_s8(elems)); +} +inline v_int8x16 v_lut_pairs(const schar* tab, const int* idx) +{ + schar CV_DECL_ALIGNED(32) elems[16] = + { + tab[idx[0]], + tab[idx[0] + 1], + tab[idx[1]], + tab[idx[1] + 1], + tab[idx[2]], + tab[idx[2] + 1], + tab[idx[3]], + tab[idx[3] + 1], + tab[idx[4]], + tab[idx[4] + 1], + tab[idx[5]], + tab[idx[5] + 1], + tab[idx[6]], + tab[idx[6] + 1], + tab[idx[7]], + tab[idx[7] + 1] + }; + return v_int8x16(vld1q_s8(elems)); +} +inline v_int8x16 v_lut_quads(const schar* tab, const int* idx) +{ + schar CV_DECL_ALIGNED(32) elems[16] = + { + tab[idx[0]], + tab[idx[0] + 1], + tab[idx[0] + 2], + tab[idx[0] + 3], + tab[idx[1]], + tab[idx[1] + 1], + tab[idx[1] + 2], + tab[idx[1] + 3], + tab[idx[2]], + tab[idx[2] + 1], + tab[idx[2] + 2], + tab[idx[2] + 3], + tab[idx[3]], + tab[idx[3] + 1], + tab[idx[3] + 2], + tab[idx[3] + 3] + }; + return v_int8x16(vld1q_s8(elems)); +} +inline v_uint8x16 v_lut(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut((schar*)tab, idx)); } +inline v_uint8x16 v_lut_pairs(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut_pairs((schar*)tab, idx)); } +inline v_uint8x16 v_lut_quads(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut_quads((schar*)tab, idx)); } + +inline v_int16x8 v_lut(const short* tab, const int* idx) +{ + short CV_DECL_ALIGNED(32) elems[8] = + { + tab[idx[0]], + tab[idx[1]], + tab[idx[2]], + tab[idx[3]], + tab[idx[4]], + tab[idx[5]], + tab[idx[6]], + tab[idx[7]] + }; + return v_int16x8(vld1q_s16(elems)); +} +inline v_int16x8 v_lut_pairs(const short* tab, const int* idx) +{ + short CV_DECL_ALIGNED(32) elems[8] = + { + tab[idx[0]], + tab[idx[0] + 1], + tab[idx[1]], + tab[idx[1] + 1], + tab[idx[2]], + tab[idx[2] + 1], + tab[idx[3]], + tab[idx[3] + 1] + }; + return v_int16x8(vld1q_s16(elems)); +} +inline v_int16x8 v_lut_quads(const short* tab, const int* idx) +{ + return v_int16x8(vcombine_s16(vld1_s16(tab + idx[0]), vld1_s16(tab + idx[1]))); +} +inline v_uint16x8 v_lut(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut((short*)tab, idx)); } +inline v_uint16x8 v_lut_pairs(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut_pairs((short*)tab, idx)); } +inline v_uint16x8 v_lut_quads(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut_quads((short*)tab, idx)); } + +inline v_int32x4 v_lut(const int* tab, const int* idx) +{ + int CV_DECL_ALIGNED(32) elems[4] = + { + tab[idx[0]], + tab[idx[1]], + tab[idx[2]], + tab[idx[3]] + }; + return v_int32x4(vld1q_s32(elems)); +} +inline v_int32x4 v_lut_pairs(const int* tab, const int* idx) +{ + return v_int32x4(vcombine_s32(vld1_s32(tab + idx[0]), vld1_s32(tab + idx[1]))); +} +inline v_int32x4 v_lut_quads(const int* tab, const int* idx) +{ + return v_int32x4(vld1q_s32(tab + idx[0])); +} +inline v_uint32x4 v_lut(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut((int*)tab, idx)); } +inline v_uint32x4 v_lut_pairs(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut_pairs((int*)tab, idx)); } +inline v_uint32x4 v_lut_quads(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut_quads((int*)tab, idx)); } + +inline v_int64x2 v_lut(const int64_t* tab, const int* idx) +{ + return v_int64x2(vcombine_s64(vcreate_s64(tab[idx[0]]), vcreate_s64(tab[idx[1]]))); +} +inline v_int64x2 v_lut_pairs(const int64_t* tab, const int* idx) +{ + return v_int64x2(vld1q_s64(tab + idx[0])); +} +inline v_uint64x2 v_lut(const uint64_t* tab, const int* idx) { return v_reinterpret_as_u64(v_lut((const int64_t *)tab, idx)); } +inline v_uint64x2 v_lut_pairs(const uint64_t* tab, const int* idx) { return v_reinterpret_as_u64(v_lut_pairs((const int64_t *)tab, idx)); } + +inline v_float32x4 v_lut(const float* tab, const int* idx) +{ + float CV_DECL_ALIGNED(32) elems[4] = + { + tab[idx[0]], + tab[idx[1]], + tab[idx[2]], + tab[idx[3]] + }; + return v_float32x4(vld1q_f32(elems)); +} +inline v_float32x4 v_lut_pairs(const float* tab, const int* idx) +{ + uint64 CV_DECL_ALIGNED(32) elems[2] = + { + *(uint64*)(tab + idx[0]), + *(uint64*)(tab + idx[1]) + }; + return v_float32x4(vreinterpretq_f32_u64(vld1q_u64(elems))); +} +inline v_float32x4 v_lut_quads(const float* tab, const int* idx) +{ + return v_float32x4(vld1q_f32(tab + idx[0])); +} + +inline v_int32x4 v_lut(const int* tab, const v_int32x4& idxvec) +{ + int CV_DECL_ALIGNED(32) elems[4] = + { + tab[vgetq_lane_s32(idxvec.val, 0)], + tab[vgetq_lane_s32(idxvec.val, 1)], + tab[vgetq_lane_s32(idxvec.val, 2)], + tab[vgetq_lane_s32(idxvec.val, 3)] + }; + return v_int32x4(vld1q_s32(elems)); +} + +inline v_uint32x4 v_lut(const unsigned* tab, const v_int32x4& idxvec) +{ + unsigned CV_DECL_ALIGNED(32) elems[4] = + { + tab[vgetq_lane_s32(idxvec.val, 0)], + tab[vgetq_lane_s32(idxvec.val, 1)], + tab[vgetq_lane_s32(idxvec.val, 2)], + tab[vgetq_lane_s32(idxvec.val, 3)] + }; + return v_uint32x4(vld1q_u32(elems)); +} + +inline v_float32x4 v_lut(const float* tab, const v_int32x4& idxvec) +{ + float CV_DECL_ALIGNED(32) elems[4] = + { + tab[vgetq_lane_s32(idxvec.val, 0)], + tab[vgetq_lane_s32(idxvec.val, 1)], + tab[vgetq_lane_s32(idxvec.val, 2)], + tab[vgetq_lane_s32(idxvec.val, 3)] + }; + return v_float32x4(vld1q_f32(elems)); +} + +inline void v_lut_deinterleave(const float* tab, const v_int32x4& idxvec, v_float32x4& x, v_float32x4& y) +{ + /*int CV_DECL_ALIGNED(32) idx[4]; + v_store(idx, idxvec); + + float32x4_t xy02 = vcombine_f32(vld1_f32(tab + idx[0]), vld1_f32(tab + idx[2])); + float32x4_t xy13 = vcombine_f32(vld1_f32(tab + idx[1]), vld1_f32(tab + idx[3])); + + float32x4x2_t xxyy = vuzpq_f32(xy02, xy13); + x = v_float32x4(xxyy.val[0]); + y = v_float32x4(xxyy.val[1]);*/ + int CV_DECL_ALIGNED(32) idx[4]; + v_store_aligned(idx, idxvec); + + x = v_float32x4(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]); + y = v_float32x4(tab[idx[0]+1], tab[idx[1]+1], tab[idx[2]+1], tab[idx[3]+1]); +} + +inline v_int8x16 v_interleave_pairs(const v_int8x16& vec) +{ + return v_int8x16(vcombine_s8(vtbl1_s8(vget_low_s8(vec.val), vcreate_s8(0x0705060403010200)), vtbl1_s8(vget_high_s8(vec.val), vcreate_s8(0x0705060403010200)))); +} +inline v_uint8x16 v_interleave_pairs(const v_uint8x16& vec) { return v_reinterpret_as_u8(v_interleave_pairs(v_reinterpret_as_s8(vec))); } +inline v_int8x16 v_interleave_quads(const v_int8x16& vec) +{ + return v_int8x16(vcombine_s8(vtbl1_s8(vget_low_s8(vec.val), vcreate_s8(0x0703060205010400)), vtbl1_s8(vget_high_s8(vec.val), vcreate_s8(0x0703060205010400)))); +} +inline v_uint8x16 v_interleave_quads(const v_uint8x16& vec) { return v_reinterpret_as_u8(v_interleave_quads(v_reinterpret_as_s8(vec))); } + +inline v_int16x8 v_interleave_pairs(const v_int16x8& vec) +{ + return v_int16x8(vreinterpretq_s16_s8(vcombine_s8(vtbl1_s8(vget_low_s8(vreinterpretq_s8_s16(vec.val)), vcreate_s8(0x0706030205040100)), vtbl1_s8(vget_high_s8(vreinterpretq_s8_s16(vec.val)), vcreate_s8(0x0706030205040100))))); +} +inline v_uint16x8 v_interleave_pairs(const v_uint16x8& vec) { return v_reinterpret_as_u16(v_interleave_pairs(v_reinterpret_as_s16(vec))); } +inline v_int16x8 v_interleave_quads(const v_int16x8& vec) +{ + int16x4x2_t res = vzip_s16(vget_low_s16(vec.val), vget_high_s16(vec.val)); + return v_int16x8(vcombine_s16(res.val[0], res.val[1])); +} +inline v_uint16x8 v_interleave_quads(const v_uint16x8& vec) { return v_reinterpret_as_u16(v_interleave_quads(v_reinterpret_as_s16(vec))); } + +inline v_int32x4 v_interleave_pairs(const v_int32x4& vec) +{ + int32x2x2_t res = vzip_s32(vget_low_s32(vec.val), vget_high_s32(vec.val)); + return v_int32x4(vcombine_s32(res.val[0], res.val[1])); +} +inline v_uint32x4 v_interleave_pairs(const v_uint32x4& vec) { return v_reinterpret_as_u32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } +inline v_float32x4 v_interleave_pairs(const v_float32x4& vec) { return v_reinterpret_as_f32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } + +inline v_int8x16 v_pack_triplets(const v_int8x16& vec) +{ + return v_int8x16(vextq_s8(vcombine_s8(vtbl1_s8(vget_low_s8(vec.val), vcreate_s8(0x0605040201000000)), vtbl1_s8(vget_high_s8(vec.val), vcreate_s8(0x0807060504020100))), vdupq_n_s8(0), 2)); +} +inline v_uint8x16 v_pack_triplets(const v_uint8x16& vec) { return v_reinterpret_as_u8(v_pack_triplets(v_reinterpret_as_s8(vec))); } + +inline v_int16x8 v_pack_triplets(const v_int16x8& vec) +{ + return v_int16x8(vreinterpretq_s16_s8(vextq_s8(vcombine_s8(vtbl1_s8(vget_low_s8(vreinterpretq_s8_s16(vec.val)), vcreate_s8(0x0504030201000000)), vget_high_s8(vreinterpretq_s8_s16(vec.val))), vdupq_n_s8(0), 2))); +} +inline v_uint16x8 v_pack_triplets(const v_uint16x8& vec) { return v_reinterpret_as_u16(v_pack_triplets(v_reinterpret_as_s16(vec))); } + +inline v_int32x4 v_pack_triplets(const v_int32x4& vec) { return vec; } +inline v_uint32x4 v_pack_triplets(const v_uint32x4& vec) { return vec; } +inline v_float32x4 v_pack_triplets(const v_float32x4& vec) { return vec; } + +#if CV_SIMD128_64F +inline v_float64x2 v_lut(const double* tab, const int* idx) +{ + double CV_DECL_ALIGNED(32) elems[2] = + { + tab[idx[0]], + tab[idx[1]] + }; + return v_float64x2(vld1q_f64(elems)); +} + +inline v_float64x2 v_lut_pairs(const double* tab, const int* idx) +{ + return v_float64x2(vld1q_f64(tab + idx[0])); +} + +inline v_float64x2 v_lut(const double* tab, const v_int32x4& idxvec) +{ + double CV_DECL_ALIGNED(32) elems[2] = + { + tab[vgetq_lane_s32(idxvec.val, 0)], + tab[vgetq_lane_s32(idxvec.val, 1)], + }; + return v_float64x2(vld1q_f64(elems)); +} + +inline void v_lut_deinterleave(const double* tab, const v_int32x4& idxvec, v_float64x2& x, v_float64x2& y) +{ + int CV_DECL_ALIGNED(32) idx[4]; + v_store_aligned(idx, idxvec); + + x = v_float64x2(tab[idx[0]], tab[idx[1]]); + y = v_float64x2(tab[idx[0]+1], tab[idx[1]+1]); +} +#endif + +////// FP16 support /////// +#if CV_FP16 +inline v_float32x4 v_load_expand(const float16_t* ptr) +{ + float16x4_t v = + #ifndef vld1_f16 // APPLE compiler defines vld1_f16 as macro + (float16x4_t)vld1_s16((const short*)ptr); + #else + vld1_f16((const __fp16*)ptr); + #endif + return v_float32x4(vcvt_f32_f16(v)); +} + +inline void v_pack_store(float16_t* ptr, const v_float32x4& v) +{ + float16x4_t hv = vcvt_f16_f32(v.val); + + #ifndef vst1_f16 // APPLE compiler defines vst1_f16 as macro + vst1_s16((short*)ptr, (int16x4_t)hv); + #else + vst1_f16((__fp16*)ptr, hv); + #endif +} +#else +inline v_float32x4 v_load_expand(const float16_t* ptr) +{ + const int N = 4; + float buf[N]; + for( int i = 0; i < N; i++ ) buf[i] = (float)ptr[i]; + return v_load(buf); +} + +inline void v_pack_store(float16_t* ptr, const v_float32x4& v) +{ + const int N = 4; + float buf[N]; + v_store(buf, v); + for( int i = 0; i < N; i++ ) ptr[i] = float16_t(buf[i]); +} +#endif + +inline void v_cleanup() {} + +//! @name Check SIMD support +//! @{ +//! @brief Check CPU capability of SIMD operation +static inline bool hasSIMD128() +{ + return (CV_CPU_HAS_SUPPORT_NEON) ? true : false; +} + +//! @} + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END + +//! @endcond + +} + +#endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_sse.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_sse.hpp new file mode 100644 index 000000000..a5adad04c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_sse.hpp @@ -0,0 +1,3016 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_HAL_SSE_HPP +#define OPENCV_HAL_SSE_HPP + +#include +#include "opencv2/core/utility.hpp" + +#define CV_SIMD128 1 +#define CV_SIMD128_64F 1 +#define CV_SIMD128_FP16 0 // no native operations with FP16 type. + +namespace cv +{ + +//! @cond IGNORED + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN + +///////// Types //////////// + +struct v_uint8x16 +{ + typedef uchar lane_type; + typedef __m128i vector_type; + enum { nlanes = 16 }; + + v_uint8x16() : val(_mm_setzero_si128()) {} + explicit v_uint8x16(__m128i v) : val(v) {} + v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, + uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) + { + val = _mm_setr_epi8((char)v0, (char)v1, (char)v2, (char)v3, + (char)v4, (char)v5, (char)v6, (char)v7, + (char)v8, (char)v9, (char)v10, (char)v11, + (char)v12, (char)v13, (char)v14, (char)v15); + } + uchar get0() const + { + return (uchar)_mm_cvtsi128_si32(val); + } + + __m128i val; +}; + +struct v_int8x16 +{ + typedef schar lane_type; + typedef __m128i vector_type; + enum { nlanes = 16 }; + + v_int8x16() : val(_mm_setzero_si128()) {} + explicit v_int8x16(__m128i v) : val(v) {} + v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, + schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) + { + val = _mm_setr_epi8((char)v0, (char)v1, (char)v2, (char)v3, + (char)v4, (char)v5, (char)v6, (char)v7, + (char)v8, (char)v9, (char)v10, (char)v11, + (char)v12, (char)v13, (char)v14, (char)v15); + } + schar get0() const + { + return (schar)_mm_cvtsi128_si32(val); + } + + __m128i val; +}; + +struct v_uint16x8 +{ + typedef ushort lane_type; + typedef __m128i vector_type; + enum { nlanes = 8 }; + + v_uint16x8() : val(_mm_setzero_si128()) {} + explicit v_uint16x8(__m128i v) : val(v) {} + v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) + { + val = _mm_setr_epi16((short)v0, (short)v1, (short)v2, (short)v3, + (short)v4, (short)v5, (short)v6, (short)v7); + } + ushort get0() const + { + return (ushort)_mm_cvtsi128_si32(val); + } + + __m128i val; +}; + +struct v_int16x8 +{ + typedef short lane_type; + typedef __m128i vector_type; + enum { nlanes = 8 }; + + v_int16x8() : val(_mm_setzero_si128()) {} + explicit v_int16x8(__m128i v) : val(v) {} + v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) + { + val = _mm_setr_epi16((short)v0, (short)v1, (short)v2, (short)v3, + (short)v4, (short)v5, (short)v6, (short)v7); + } + short get0() const + { + return (short)_mm_cvtsi128_si32(val); + } + + __m128i val; +}; + +struct v_uint32x4 +{ + typedef unsigned lane_type; + typedef __m128i vector_type; + enum { nlanes = 4 }; + + v_uint32x4() : val(_mm_setzero_si128()) {} + explicit v_uint32x4(__m128i v) : val(v) {} + v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) + { + val = _mm_setr_epi32((int)v0, (int)v1, (int)v2, (int)v3); + } + unsigned get0() const + { + return (unsigned)_mm_cvtsi128_si32(val); + } + + __m128i val; +}; + +struct v_int32x4 +{ + typedef int lane_type; + typedef __m128i vector_type; + enum { nlanes = 4 }; + + v_int32x4() : val(_mm_setzero_si128()) {} + explicit v_int32x4(__m128i v) : val(v) {} + v_int32x4(int v0, int v1, int v2, int v3) + { + val = _mm_setr_epi32(v0, v1, v2, v3); + } + int get0() const + { + return _mm_cvtsi128_si32(val); + } + + __m128i val; +}; + +struct v_float32x4 +{ + typedef float lane_type; + typedef __m128 vector_type; + enum { nlanes = 4 }; + + v_float32x4() : val(_mm_setzero_ps()) {} + explicit v_float32x4(__m128 v) : val(v) {} + v_float32x4(float v0, float v1, float v2, float v3) + { + val = _mm_setr_ps(v0, v1, v2, v3); + } + float get0() const + { + return _mm_cvtss_f32(val); + } + + __m128 val; +}; + +struct v_uint64x2 +{ + typedef uint64 lane_type; + typedef __m128i vector_type; + enum { nlanes = 2 }; + + v_uint64x2() : val(_mm_setzero_si128()) {} + explicit v_uint64x2(__m128i v) : val(v) {} + v_uint64x2(uint64 v0, uint64 v1) + { + val = _mm_setr_epi32((int)v0, (int)(v0 >> 32), (int)v1, (int)(v1 >> 32)); + } + uint64 get0() const + { + int a = _mm_cvtsi128_si32(val); + int b = _mm_cvtsi128_si32(_mm_srli_epi64(val, 32)); + return (unsigned)a | ((uint64)(unsigned)b << 32); + } + + __m128i val; +}; + +struct v_int64x2 +{ + typedef int64 lane_type; + typedef __m128i vector_type; + enum { nlanes = 2 }; + + v_int64x2() : val(_mm_setzero_si128()) {} + explicit v_int64x2(__m128i v) : val(v) {} + v_int64x2(int64 v0, int64 v1) + { + val = _mm_setr_epi32((int)v0, (int)(v0 >> 32), (int)v1, (int)(v1 >> 32)); + } + int64 get0() const + { + int a = _mm_cvtsi128_si32(val); + int b = _mm_cvtsi128_si32(_mm_srli_epi64(val, 32)); + return (int64)((unsigned)a | ((uint64)(unsigned)b << 32)); + } + + __m128i val; +}; + +struct v_float64x2 +{ + typedef double lane_type; + typedef __m128d vector_type; + enum { nlanes = 2 }; + + v_float64x2() : val(_mm_setzero_pd()) {} + explicit v_float64x2(__m128d v) : val(v) {} + v_float64x2(double v0, double v1) + { + val = _mm_setr_pd(v0, v1); + } + double get0() const + { + return _mm_cvtsd_f64(val); + } + + __m128d val; +}; + +namespace hal_sse_internal +{ + template + to_sse_type v_sse_reinterpret_as(const from_sse_type& val); + +#define OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(to_sse_type, from_sse_type, sse_cast_intrin) \ + template<> inline \ + to_sse_type v_sse_reinterpret_as(const from_sse_type& a) \ + { return sse_cast_intrin(a); } + + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128i, __m128i, OPENCV_HAL_NOP) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128i, __m128, _mm_castps_si128) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128i, __m128d, _mm_castpd_si128) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128, __m128i, _mm_castsi128_ps) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128, __m128, OPENCV_HAL_NOP) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128, __m128d, _mm_castpd_ps) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128d, __m128i, _mm_castsi128_pd) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128d, __m128, _mm_castps_pd) + OPENCV_HAL_IMPL_SSE_REINTERPRET_RAW(__m128d, __m128d, OPENCV_HAL_NOP) +} + +#define OPENCV_HAL_IMPL_SSE_INITVEC(_Tpvec, _Tp, suffix, zsuffix, ssuffix, _Tps, cast) \ +inline _Tpvec v_setzero_##suffix() { return _Tpvec(_mm_setzero_##zsuffix()); } \ +inline _Tpvec v_setall_##suffix(_Tp v) { return _Tpvec(_mm_set1_##ssuffix((_Tps)v)); } \ +template inline _Tpvec v_reinterpret_as_##suffix(const _Tpvec0& a) \ +{ return _Tpvec(cast(a.val)); } + +OPENCV_HAL_IMPL_SSE_INITVEC(v_uint8x16, uchar, u8, si128, epi8, char, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_INITVEC(v_int8x16, schar, s8, si128, epi8, char, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_INITVEC(v_uint16x8, ushort, u16, si128, epi16, short, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_INITVEC(v_int16x8, short, s16, si128, epi16, short, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_INITVEC(v_uint32x4, unsigned, u32, si128, epi32, int, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_INITVEC(v_int32x4, int, s32, si128, epi32, int, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_INITVEC(v_float32x4, float, f32, ps, ps, float, _mm_castsi128_ps) +OPENCV_HAL_IMPL_SSE_INITVEC(v_float64x2, double, f64, pd, pd, double, _mm_castsi128_pd) + +inline v_uint64x2 v_setzero_u64() { return v_uint64x2(_mm_setzero_si128()); } +inline v_int64x2 v_setzero_s64() { return v_int64x2(_mm_setzero_si128()); } +inline v_uint64x2 v_setall_u64(uint64 val) { return v_uint64x2(val, val); } +inline v_int64x2 v_setall_s64(int64 val) { return v_int64x2(val, val); } + +template inline +v_uint64x2 v_reinterpret_as_u64(const _Tpvec& a) { return v_uint64x2(a.val); } +template inline +v_int64x2 v_reinterpret_as_s64(const _Tpvec& a) { return v_int64x2(a.val); } +inline v_float32x4 v_reinterpret_as_f32(const v_uint64x2& a) +{ return v_float32x4(_mm_castsi128_ps(a.val)); } +inline v_float32x4 v_reinterpret_as_f32(const v_int64x2& a) +{ return v_float32x4(_mm_castsi128_ps(a.val)); } +inline v_float64x2 v_reinterpret_as_f64(const v_uint64x2& a) +{ return v_float64x2(_mm_castsi128_pd(a.val)); } +inline v_float64x2 v_reinterpret_as_f64(const v_int64x2& a) +{ return v_float64x2(_mm_castsi128_pd(a.val)); } + +#define OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(_Tpvec, suffix) \ +inline _Tpvec v_reinterpret_as_##suffix(const v_float32x4& a) \ +{ return _Tpvec(_mm_castps_si128(a.val)); } \ +inline _Tpvec v_reinterpret_as_##suffix(const v_float64x2& a) \ +{ return _Tpvec(_mm_castpd_si128(a.val)); } + +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint8x16, u8) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int8x16, s8) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint16x8, u16) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int16x8, s16) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint32x4, u32) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int32x4, s32) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint64x2, u64) +OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int64x2, s64) + +inline v_float32x4 v_reinterpret_as_f32(const v_float32x4& a) {return a; } +inline v_float64x2 v_reinterpret_as_f64(const v_float64x2& a) {return a; } +inline v_float32x4 v_reinterpret_as_f32(const v_float64x2& a) {return v_float32x4(_mm_castpd_ps(a.val)); } +inline v_float64x2 v_reinterpret_as_f64(const v_float32x4& a) {return v_float64x2(_mm_castps_pd(a.val)); } + +//////////////// PACK /////////////// +inline v_uint8x16 v_pack(const v_uint16x8& a, const v_uint16x8& b) +{ + __m128i delta = _mm_set1_epi16(255); + return v_uint8x16(_mm_packus_epi16(_mm_subs_epu16(a.val, _mm_subs_epu16(a.val, delta)), + _mm_subs_epu16(b.val, _mm_subs_epu16(b.val, delta)))); +} + +inline void v_pack_store(uchar* ptr, const v_uint16x8& a) +{ + __m128i delta = _mm_set1_epi16(255); + __m128i a1 = _mm_subs_epu16(a.val, _mm_subs_epu16(a.val, delta)); + _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a1, a1)); +} + +inline v_uint8x16 v_pack_u(const v_int16x8& a, const v_int16x8& b) +{ return v_uint8x16(_mm_packus_epi16(a.val, b.val)); } + +inline void v_pack_u_store(uchar* ptr, const v_int16x8& a) +{ _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a.val, a.val)); } + +template inline +v_uint8x16 v_rshr_pack(const v_uint16x8& a, const v_uint16x8& b) +{ + // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. + __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); + return v_uint8x16(_mm_packus_epi16(_mm_srli_epi16(_mm_adds_epu16(a.val, delta), n), + _mm_srli_epi16(_mm_adds_epu16(b.val, delta), n))); +} + +template inline +void v_rshr_pack_store(uchar* ptr, const v_uint16x8& a) +{ + __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); + __m128i a1 = _mm_srli_epi16(_mm_adds_epu16(a.val, delta), n); + _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a1, a1)); +} + +template inline +v_uint8x16 v_rshr_pack_u(const v_int16x8& a, const v_int16x8& b) +{ + __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); + return v_uint8x16(_mm_packus_epi16(_mm_srai_epi16(_mm_adds_epi16(a.val, delta), n), + _mm_srai_epi16(_mm_adds_epi16(b.val, delta), n))); +} + +template inline +void v_rshr_pack_u_store(uchar* ptr, const v_int16x8& a) +{ + __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); + __m128i a1 = _mm_srai_epi16(_mm_adds_epi16(a.val, delta), n); + _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a1, a1)); +} + +inline v_int8x16 v_pack(const v_int16x8& a, const v_int16x8& b) +{ return v_int8x16(_mm_packs_epi16(a.val, b.val)); } + +inline void v_pack_store(schar* ptr, const v_int16x8& a) +{ _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi16(a.val, a.val)); } + +template inline +v_int8x16 v_rshr_pack(const v_int16x8& a, const v_int16x8& b) +{ + // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. + __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); + return v_int8x16(_mm_packs_epi16(_mm_srai_epi16(_mm_adds_epi16(a.val, delta), n), + _mm_srai_epi16(_mm_adds_epi16(b.val, delta), n))); +} +template inline +void v_rshr_pack_store(schar* ptr, const v_int16x8& a) +{ + // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. + __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); + __m128i a1 = _mm_srai_epi16(_mm_adds_epi16(a.val, delta), n); + _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi16(a1, a1)); +} + + +// byte-wise "mask ? a : b" +inline __m128i v_select_si128(__m128i mask, __m128i a, __m128i b) +{ +#if CV_SSE4_1 + return _mm_blendv_epi8(b, a, mask); +#else + return _mm_xor_si128(b, _mm_and_si128(_mm_xor_si128(a, b), mask)); +#endif +} + +inline v_uint16x8 v_pack(const v_uint32x4& a, const v_uint32x4& b) +{ return v_uint16x8(_v128_packs_epu32(a.val, b.val)); } + +inline void v_pack_store(ushort* ptr, const v_uint32x4& a) +{ + __m128i z = _mm_setzero_si128(), maxval32 = _mm_set1_epi32(65535), delta32 = _mm_set1_epi32(32768); + __m128i a1 = _mm_sub_epi32(v_select_si128(_mm_cmpgt_epi32(z, a.val), maxval32, a.val), delta32); + __m128i r = _mm_packs_epi32(a1, a1); + _mm_storel_epi64((__m128i*)ptr, _mm_sub_epi16(r, _mm_set1_epi16(-32768))); +} + +template inline +v_uint16x8 v_rshr_pack(const v_uint32x4& a, const v_uint32x4& b) +{ + __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); + __m128i a1 = _mm_sub_epi32(_mm_srli_epi32(_mm_add_epi32(a.val, delta), n), delta32); + __m128i b1 = _mm_sub_epi32(_mm_srli_epi32(_mm_add_epi32(b.val, delta), n), delta32); + return v_uint16x8(_mm_sub_epi16(_mm_packs_epi32(a1, b1), _mm_set1_epi16(-32768))); +} + +template inline +void v_rshr_pack_store(ushort* ptr, const v_uint32x4& a) +{ + __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); + __m128i a1 = _mm_sub_epi32(_mm_srli_epi32(_mm_add_epi32(a.val, delta), n), delta32); + __m128i a2 = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); + _mm_storel_epi64((__m128i*)ptr, a2); +} + +inline v_uint16x8 v_pack_u(const v_int32x4& a, const v_int32x4& b) +{ +#if CV_SSE4_1 + return v_uint16x8(_mm_packus_epi32(a.val, b.val)); +#else + __m128i delta32 = _mm_set1_epi32(32768); + + // preliminary saturate negative values to zero + __m128i a1 = _mm_and_si128(a.val, _mm_cmpgt_epi32(a.val, _mm_set1_epi32(0))); + __m128i b1 = _mm_and_si128(b.val, _mm_cmpgt_epi32(b.val, _mm_set1_epi32(0))); + + __m128i r = _mm_packs_epi32(_mm_sub_epi32(a1, delta32), _mm_sub_epi32(b1, delta32)); + return v_uint16x8(_mm_sub_epi16(r, _mm_set1_epi16(-32768))); +#endif +} + +inline void v_pack_u_store(ushort* ptr, const v_int32x4& a) +{ +#if CV_SSE4_1 + _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi32(a.val, a.val)); +#else + __m128i delta32 = _mm_set1_epi32(32768); + __m128i a1 = _mm_sub_epi32(a.val, delta32); + __m128i r = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); + _mm_storel_epi64((__m128i*)ptr, r); +#endif +} + +template inline +v_uint16x8 v_rshr_pack_u(const v_int32x4& a, const v_int32x4& b) +{ +#if CV_SSE4_1 + __m128i delta = _mm_set1_epi32(1 << (n - 1)); + return v_uint16x8(_mm_packus_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), + _mm_srai_epi32(_mm_add_epi32(b.val, delta), n))); +#else + __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); + __m128i a1 = _mm_sub_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), delta32); + __m128i a2 = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); + __m128i b1 = _mm_sub_epi32(_mm_srai_epi32(_mm_add_epi32(b.val, delta), n), delta32); + __m128i b2 = _mm_sub_epi16(_mm_packs_epi32(b1, b1), _mm_set1_epi16(-32768)); + return v_uint16x8(_mm_unpacklo_epi64(a2, b2)); +#endif +} + +template inline +void v_rshr_pack_u_store(ushort* ptr, const v_int32x4& a) +{ +#if CV_SSE4_1 + __m128i delta = _mm_set1_epi32(1 << (n - 1)); + __m128i a1 = _mm_srai_epi32(_mm_add_epi32(a.val, delta), n); + _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi32(a1, a1)); +#else + __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); + __m128i a1 = _mm_sub_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), delta32); + __m128i a2 = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); + _mm_storel_epi64((__m128i*)ptr, a2); +#endif +} + +inline v_int16x8 v_pack(const v_int32x4& a, const v_int32x4& b) +{ return v_int16x8(_mm_packs_epi32(a.val, b.val)); } + +inline void v_pack_store(short* ptr, const v_int32x4& a) +{ + _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi32(a.val, a.val)); +} + +template inline +v_int16x8 v_rshr_pack(const v_int32x4& a, const v_int32x4& b) +{ + __m128i delta = _mm_set1_epi32(1 << (n-1)); + return v_int16x8(_mm_packs_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), + _mm_srai_epi32(_mm_add_epi32(b.val, delta), n))); +} + +template inline +void v_rshr_pack_store(short* ptr, const v_int32x4& a) +{ + __m128i delta = _mm_set1_epi32(1 << (n-1)); + __m128i a1 = _mm_srai_epi32(_mm_add_epi32(a.val, delta), n); + _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi32(a1, a1)); +} + + +// [a0 0 | b0 0] [a1 0 | b1 0] +inline v_uint32x4 v_pack(const v_uint64x2& a, const v_uint64x2& b) +{ + __m128i v0 = _mm_unpacklo_epi32(a.val, b.val); // a0 a1 0 0 + __m128i v1 = _mm_unpackhi_epi32(a.val, b.val); // b0 b1 0 0 + return v_uint32x4(_mm_unpacklo_epi32(v0, v1)); +} + +inline void v_pack_store(unsigned* ptr, const v_uint64x2& a) +{ + __m128i a1 = _mm_shuffle_epi32(a.val, _MM_SHUFFLE(0, 2, 2, 0)); + _mm_storel_epi64((__m128i*)ptr, a1); +} + +// [a0 0 | b0 0] [a1 0 | b1 0] +inline v_int32x4 v_pack(const v_int64x2& a, const v_int64x2& b) +{ + __m128i v0 = _mm_unpacklo_epi32(a.val, b.val); // a0 a1 0 0 + __m128i v1 = _mm_unpackhi_epi32(a.val, b.val); // b0 b1 0 0 + return v_int32x4(_mm_unpacklo_epi32(v0, v1)); +} + +inline void v_pack_store(int* ptr, const v_int64x2& a) +{ + __m128i a1 = _mm_shuffle_epi32(a.val, _MM_SHUFFLE(0, 2, 2, 0)); + _mm_storel_epi64((__m128i*)ptr, a1); +} + +template inline +v_uint32x4 v_rshr_pack(const v_uint64x2& a, const v_uint64x2& b) +{ + uint64 delta = (uint64)1 << (n-1); + v_uint64x2 delta2(delta, delta); + __m128i a1 = _mm_srli_epi64(_mm_add_epi64(a.val, delta2.val), n); + __m128i b1 = _mm_srli_epi64(_mm_add_epi64(b.val, delta2.val), n); + __m128i v0 = _mm_unpacklo_epi32(a1, b1); // a0 a1 0 0 + __m128i v1 = _mm_unpackhi_epi32(a1, b1); // b0 b1 0 0 + return v_uint32x4(_mm_unpacklo_epi32(v0, v1)); +} + +template inline +void v_rshr_pack_store(unsigned* ptr, const v_uint64x2& a) +{ + uint64 delta = (uint64)1 << (n-1); + v_uint64x2 delta2(delta, delta); + __m128i a1 = _mm_srli_epi64(_mm_add_epi64(a.val, delta2.val), n); + __m128i a2 = _mm_shuffle_epi32(a1, _MM_SHUFFLE(0, 2, 2, 0)); + _mm_storel_epi64((__m128i*)ptr, a2); +} + +inline __m128i v_sign_epi64(__m128i a) +{ + return _mm_shuffle_epi32(_mm_srai_epi32(a, 31), _MM_SHUFFLE(3, 3, 1, 1)); // x m0 | x m1 +} + +inline __m128i v_srai_epi64(__m128i a, int imm) +{ + __m128i smask = v_sign_epi64(a); + return _mm_xor_si128(_mm_srli_epi64(_mm_xor_si128(a, smask), imm), smask); +} + +template inline +v_int32x4 v_rshr_pack(const v_int64x2& a, const v_int64x2& b) +{ + int64 delta = (int64)1 << (n-1); + v_int64x2 delta2(delta, delta); + __m128i a1 = v_srai_epi64(_mm_add_epi64(a.val, delta2.val), n); + __m128i b1 = v_srai_epi64(_mm_add_epi64(b.val, delta2.val), n); + __m128i v0 = _mm_unpacklo_epi32(a1, b1); // a0 a1 0 0 + __m128i v1 = _mm_unpackhi_epi32(a1, b1); // b0 b1 0 0 + return v_int32x4(_mm_unpacklo_epi32(v0, v1)); +} + +template inline +void v_rshr_pack_store(int* ptr, const v_int64x2& a) +{ + int64 delta = (int64)1 << (n-1); + v_int64x2 delta2(delta, delta); + __m128i a1 = v_srai_epi64(_mm_add_epi64(a.val, delta2.val), n); + __m128i a2 = _mm_shuffle_epi32(a1, _MM_SHUFFLE(0, 2, 2, 0)); + _mm_storel_epi64((__m128i*)ptr, a2); +} + +// pack boolean +inline v_uint8x16 v_pack_b(const v_uint16x8& a, const v_uint16x8& b) +{ + __m128i ab = _mm_packs_epi16(a.val, b.val); + return v_uint8x16(ab); +} + +inline v_uint8x16 v_pack_b(const v_uint32x4& a, const v_uint32x4& b, + const v_uint32x4& c, const v_uint32x4& d) +{ + __m128i ab = _mm_packs_epi32(a.val, b.val); + __m128i cd = _mm_packs_epi32(c.val, d.val); + return v_uint8x16(_mm_packs_epi16(ab, cd)); +} + +inline v_uint8x16 v_pack_b(const v_uint64x2& a, const v_uint64x2& b, const v_uint64x2& c, + const v_uint64x2& d, const v_uint64x2& e, const v_uint64x2& f, + const v_uint64x2& g, const v_uint64x2& h) +{ + __m128i ab = _mm_packs_epi32(a.val, b.val); + __m128i cd = _mm_packs_epi32(c.val, d.val); + __m128i ef = _mm_packs_epi32(e.val, f.val); + __m128i gh = _mm_packs_epi32(g.val, h.val); + + __m128i abcd = _mm_packs_epi32(ab, cd); + __m128i efgh = _mm_packs_epi32(ef, gh); + return v_uint8x16(_mm_packs_epi16(abcd, efgh)); +} + +inline v_float32x4 v_matmul(const v_float32x4& v, const v_float32x4& m0, + const v_float32x4& m1, const v_float32x4& m2, + const v_float32x4& m3) +{ + __m128 v0 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(0, 0, 0, 0)), m0.val); + __m128 v1 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(1, 1, 1, 1)), m1.val); + __m128 v2 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(2, 2, 2, 2)), m2.val); + __m128 v3 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(3, 3, 3, 3)), m3.val); + + return v_float32x4(_mm_add_ps(_mm_add_ps(v0, v1), _mm_add_ps(v2, v3))); +} + +inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, + const v_float32x4& m1, const v_float32x4& m2, + const v_float32x4& a) +{ + __m128 v0 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(0, 0, 0, 0)), m0.val); + __m128 v1 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(1, 1, 1, 1)), m1.val); + __m128 v2 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(2, 2, 2, 2)), m2.val); + + return v_float32x4(_mm_add_ps(_mm_add_ps(v0, v1), _mm_add_ps(v2, a.val))); +} + +#define OPENCV_HAL_IMPL_SSE_BIN_OP(bin_op, _Tpvec, intrin) \ + inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ + { \ + return _Tpvec(intrin(a.val, b.val)); \ + } \ + inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ + { \ + a.val = intrin(a.val, b.val); \ + return a; \ + } + +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint8x16, _mm_adds_epu8) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint8x16, _mm_subs_epu8) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int8x16, _mm_adds_epi8) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int8x16, _mm_subs_epi8) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint16x8, _mm_adds_epu16) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint16x8, _mm_subs_epu16) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int16x8, _mm_adds_epi16) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int16x8, _mm_subs_epi16) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint32x4, _mm_add_epi32) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint32x4, _mm_sub_epi32) +OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_uint32x4, _v128_mullo_epi32) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int32x4, _mm_add_epi32) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int32x4, _mm_sub_epi32) +OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_int32x4, _v128_mullo_epi32) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_float32x4, _mm_add_ps) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_float32x4, _mm_sub_ps) +OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_float32x4, _mm_mul_ps) +OPENCV_HAL_IMPL_SSE_BIN_OP(/, v_float32x4, _mm_div_ps) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_float64x2, _mm_add_pd) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_float64x2, _mm_sub_pd) +OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_float64x2, _mm_mul_pd) +OPENCV_HAL_IMPL_SSE_BIN_OP(/, v_float64x2, _mm_div_pd) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint64x2, _mm_add_epi64) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint64x2, _mm_sub_epi64) +OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int64x2, _mm_add_epi64) +OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int64x2, _mm_sub_epi64) + +// saturating multiply 8-bit, 16-bit +#define OPENCV_HAL_IMPL_SSE_MUL_SAT(_Tpvec, _Tpwvec) \ + inline _Tpvec operator * (const _Tpvec& a, const _Tpvec& b) \ + { \ + _Tpwvec c, d; \ + v_mul_expand(a, b, c, d); \ + return v_pack(c, d); \ + } \ + inline _Tpvec& operator *= (_Tpvec& a, const _Tpvec& b) \ + { a = a * b; return a; } + +OPENCV_HAL_IMPL_SSE_MUL_SAT(v_uint8x16, v_uint16x8) +OPENCV_HAL_IMPL_SSE_MUL_SAT(v_int8x16, v_int16x8) +OPENCV_HAL_IMPL_SSE_MUL_SAT(v_uint16x8, v_uint32x4) +OPENCV_HAL_IMPL_SSE_MUL_SAT(v_int16x8, v_int32x4) + +// Multiply and expand +inline void v_mul_expand(const v_uint8x16& a, const v_uint8x16& b, + v_uint16x8& c, v_uint16x8& d) +{ + v_uint16x8 a0, a1, b0, b1; + v_expand(a, a0, a1); + v_expand(b, b0, b1); + c = v_mul_wrap(a0, b0); + d = v_mul_wrap(a1, b1); +} + +inline void v_mul_expand(const v_int8x16& a, const v_int8x16& b, + v_int16x8& c, v_int16x8& d) +{ + v_int16x8 a0, a1, b0, b1; + v_expand(a, a0, a1); + v_expand(b, b0, b1); + c = v_mul_wrap(a0, b0); + d = v_mul_wrap(a1, b1); +} + +inline void v_mul_expand(const v_int16x8& a, const v_int16x8& b, + v_int32x4& c, v_int32x4& d) +{ + __m128i v0 = _mm_mullo_epi16(a.val, b.val); + __m128i v1 = _mm_mulhi_epi16(a.val, b.val); + c.val = _mm_unpacklo_epi16(v0, v1); + d.val = _mm_unpackhi_epi16(v0, v1); +} + +inline void v_mul_expand(const v_uint16x8& a, const v_uint16x8& b, + v_uint32x4& c, v_uint32x4& d) +{ + __m128i v0 = _mm_mullo_epi16(a.val, b.val); + __m128i v1 = _mm_mulhi_epu16(a.val, b.val); + c.val = _mm_unpacklo_epi16(v0, v1); + d.val = _mm_unpackhi_epi16(v0, v1); +} + +inline void v_mul_expand(const v_uint32x4& a, const v_uint32x4& b, + v_uint64x2& c, v_uint64x2& d) +{ + __m128i c0 = _mm_mul_epu32(a.val, b.val); + __m128i c1 = _mm_mul_epu32(_mm_srli_epi64(a.val, 32), _mm_srli_epi64(b.val, 32)); + c.val = _mm_unpacklo_epi64(c0, c1); + d.val = _mm_unpackhi_epi64(c0, c1); +} + +inline v_int16x8 v_mul_hi(const v_int16x8& a, const v_int16x8& b) { return v_int16x8(_mm_mulhi_epi16(a.val, b.val)); } +inline v_uint16x8 v_mul_hi(const v_uint16x8& a, const v_uint16x8& b) { return v_uint16x8(_mm_mulhi_epu16(a.val, b.val)); } + +inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b) +{ + return v_int32x4(_mm_madd_epi16(a.val, b.val)); +} + +inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b, const v_int32x4& c) +{ + return v_int32x4(_mm_add_epi32(_mm_madd_epi16(a.val, b.val), c.val)); +} + +#define OPENCV_HAL_IMPL_SSE_LOGIC_OP(_Tpvec, suffix, not_const) \ + OPENCV_HAL_IMPL_SSE_BIN_OP(&, _Tpvec, _mm_and_##suffix) \ + OPENCV_HAL_IMPL_SSE_BIN_OP(|, _Tpvec, _mm_or_##suffix) \ + OPENCV_HAL_IMPL_SSE_BIN_OP(^, _Tpvec, _mm_xor_##suffix) \ + inline _Tpvec operator ~ (const _Tpvec& a) \ + { \ + return _Tpvec(_mm_xor_##suffix(a.val, not_const)); \ + } + +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint8x16, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int8x16, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint16x8, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int16x8, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint32x4, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int32x4, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint64x2, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int64x2, si128, _mm_set1_epi32(-1)) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_float32x4, ps, _mm_castsi128_ps(_mm_set1_epi32(-1))) +OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_float64x2, pd, _mm_castsi128_pd(_mm_set1_epi32(-1))) + +inline v_float32x4 v_sqrt(const v_float32x4& x) +{ return v_float32x4(_mm_sqrt_ps(x.val)); } + +inline v_float32x4 v_invsqrt(const v_float32x4& x) +{ + const __m128 _0_5 = _mm_set1_ps(0.5f), _1_5 = _mm_set1_ps(1.5f); + __m128 t = x.val; + __m128 h = _mm_mul_ps(t, _0_5); + t = _mm_rsqrt_ps(t); + t = _mm_mul_ps(t, _mm_sub_ps(_1_5, _mm_mul_ps(_mm_mul_ps(t, t), h))); + return v_float32x4(t); +} + +inline v_float64x2 v_sqrt(const v_float64x2& x) +{ return v_float64x2(_mm_sqrt_pd(x.val)); } + +inline v_float64x2 v_invsqrt(const v_float64x2& x) +{ + const __m128d v_1 = _mm_set1_pd(1.); + return v_float64x2(_mm_div_pd(v_1, _mm_sqrt_pd(x.val))); +} + +#define OPENCV_HAL_IMPL_SSE_ABS_INT_FUNC(_Tpuvec, _Tpsvec, func, suffix, subWidth) \ +inline _Tpuvec v_abs(const _Tpsvec& x) \ +{ return _Tpuvec(_mm_##func##_ep##suffix(x.val, _mm_sub_ep##subWidth(_mm_setzero_si128(), x.val))); } + +OPENCV_HAL_IMPL_SSE_ABS_INT_FUNC(v_uint8x16, v_int8x16, min, u8, i8) +OPENCV_HAL_IMPL_SSE_ABS_INT_FUNC(v_uint16x8, v_int16x8, max, i16, i16) +inline v_uint32x4 v_abs(const v_int32x4& x) +{ + __m128i s = _mm_srli_epi32(x.val, 31); + __m128i f = _mm_srai_epi32(x.val, 31); + return v_uint32x4(_mm_add_epi32(_mm_xor_si128(x.val, f), s)); +} +inline v_float32x4 v_abs(const v_float32x4& x) +{ return v_float32x4(_mm_and_ps(x.val, _mm_castsi128_ps(_mm_set1_epi32(0x7fffffff)))); } +inline v_float64x2 v_abs(const v_float64x2& x) +{ + return v_float64x2(_mm_and_pd(x.val, + _mm_castsi128_pd(_mm_srli_epi64(_mm_set1_epi32(-1), 1)))); +} + +// TODO: exp, log, sin, cos + +#define OPENCV_HAL_IMPL_SSE_BIN_FUNC(_Tpvec, func, intrin) \ +inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec(intrin(a.val, b.val)); \ +} + +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_min, _mm_min_epu8) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_max, _mm_max_epu8) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_min, _mm_min_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_max, _mm_max_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float32x4, v_min, _mm_min_ps) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float32x4, v_max, _mm_max_ps) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float64x2, v_min, _mm_min_pd) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float64x2, v_max, _mm_max_pd) + +inline v_int8x16 v_min(const v_int8x16& a, const v_int8x16& b) +{ +#if CV_SSE4_1 + return v_int8x16(_mm_min_epi8(a.val, b.val)); +#else + __m128i delta = _mm_set1_epi8((char)-128); + return v_int8x16(_mm_xor_si128(delta, _mm_min_epu8(_mm_xor_si128(a.val, delta), + _mm_xor_si128(b.val, delta)))); +#endif +} +inline v_int8x16 v_max(const v_int8x16& a, const v_int8x16& b) +{ +#if CV_SSE4_1 + return v_int8x16(_mm_max_epi8(a.val, b.val)); +#else + __m128i delta = _mm_set1_epi8((char)-128); + return v_int8x16(_mm_xor_si128(delta, _mm_max_epu8(_mm_xor_si128(a.val, delta), + _mm_xor_si128(b.val, delta)))); +#endif +} +inline v_uint16x8 v_min(const v_uint16x8& a, const v_uint16x8& b) +{ +#if CV_SSE4_1 + return v_uint16x8(_mm_min_epu16(a.val, b.val)); +#else + return v_uint16x8(_mm_subs_epu16(a.val, _mm_subs_epu16(a.val, b.val))); +#endif +} +inline v_uint16x8 v_max(const v_uint16x8& a, const v_uint16x8& b) +{ +#if CV_SSE4_1 + return v_uint16x8(_mm_max_epu16(a.val, b.val)); +#else + return v_uint16x8(_mm_adds_epu16(_mm_subs_epu16(a.val, b.val), b.val)); +#endif +} +inline v_uint32x4 v_min(const v_uint32x4& a, const v_uint32x4& b) +{ +#if CV_SSE4_1 + return v_uint32x4(_mm_min_epu32(a.val, b.val)); +#else + __m128i delta = _mm_set1_epi32((int)0x80000000); + __m128i mask = _mm_cmpgt_epi32(_mm_xor_si128(a.val, delta), _mm_xor_si128(b.val, delta)); + return v_uint32x4(v_select_si128(mask, b.val, a.val)); +#endif +} +inline v_uint32x4 v_max(const v_uint32x4& a, const v_uint32x4& b) +{ +#if CV_SSE4_1 + return v_uint32x4(_mm_max_epu32(a.val, b.val)); +#else + __m128i delta = _mm_set1_epi32((int)0x80000000); + __m128i mask = _mm_cmpgt_epi32(_mm_xor_si128(a.val, delta), _mm_xor_si128(b.val, delta)); + return v_uint32x4(v_select_si128(mask, a.val, b.val)); +#endif +} +inline v_int32x4 v_min(const v_int32x4& a, const v_int32x4& b) +{ +#if CV_SSE4_1 + return v_int32x4(_mm_min_epi32(a.val, b.val)); +#else + return v_int32x4(v_select_si128(_mm_cmpgt_epi32(a.val, b.val), b.val, a.val)); +#endif +} +inline v_int32x4 v_max(const v_int32x4& a, const v_int32x4& b) +{ +#if CV_SSE4_1 + return v_int32x4(_mm_max_epi32(a.val, b.val)); +#else + return v_int32x4(v_select_si128(_mm_cmpgt_epi32(a.val, b.val), a.val, b.val)); +#endif +} + +#define OPENCV_HAL_IMPL_SSE_INT_CMP_OP(_Tpuvec, _Tpsvec, suffix, sbit) \ +inline _Tpuvec operator == (const _Tpuvec& a, const _Tpuvec& b) \ +{ return _Tpuvec(_mm_cmpeq_##suffix(a.val, b.val)); } \ +inline _Tpuvec operator != (const _Tpuvec& a, const _Tpuvec& b) \ +{ \ + __m128i not_mask = _mm_set1_epi32(-1); \ + return _Tpuvec(_mm_xor_si128(_mm_cmpeq_##suffix(a.val, b.val), not_mask)); \ +} \ +inline _Tpsvec operator == (const _Tpsvec& a, const _Tpsvec& b) \ +{ return _Tpsvec(_mm_cmpeq_##suffix(a.val, b.val)); } \ +inline _Tpsvec operator != (const _Tpsvec& a, const _Tpsvec& b) \ +{ \ + __m128i not_mask = _mm_set1_epi32(-1); \ + return _Tpsvec(_mm_xor_si128(_mm_cmpeq_##suffix(a.val, b.val), not_mask)); \ +} \ +inline _Tpuvec operator < (const _Tpuvec& a, const _Tpuvec& b) \ +{ \ + __m128i smask = _mm_set1_##suffix(sbit); \ + return _Tpuvec(_mm_cmpgt_##suffix(_mm_xor_si128(b.val, smask), _mm_xor_si128(a.val, smask))); \ +} \ +inline _Tpuvec operator > (const _Tpuvec& a, const _Tpuvec& b) \ +{ \ + __m128i smask = _mm_set1_##suffix(sbit); \ + return _Tpuvec(_mm_cmpgt_##suffix(_mm_xor_si128(a.val, smask), _mm_xor_si128(b.val, smask))); \ +} \ +inline _Tpuvec operator <= (const _Tpuvec& a, const _Tpuvec& b) \ +{ \ + __m128i smask = _mm_set1_##suffix(sbit); \ + __m128i not_mask = _mm_set1_epi32(-1); \ + __m128i res = _mm_cmpgt_##suffix(_mm_xor_si128(a.val, smask), _mm_xor_si128(b.val, smask)); \ + return _Tpuvec(_mm_xor_si128(res, not_mask)); \ +} \ +inline _Tpuvec operator >= (const _Tpuvec& a, const _Tpuvec& b) \ +{ \ + __m128i smask = _mm_set1_##suffix(sbit); \ + __m128i not_mask = _mm_set1_epi32(-1); \ + __m128i res = _mm_cmpgt_##suffix(_mm_xor_si128(b.val, smask), _mm_xor_si128(a.val, smask)); \ + return _Tpuvec(_mm_xor_si128(res, not_mask)); \ +} \ +inline _Tpsvec operator < (const _Tpsvec& a, const _Tpsvec& b) \ +{ \ + return _Tpsvec(_mm_cmpgt_##suffix(b.val, a.val)); \ +} \ +inline _Tpsvec operator > (const _Tpsvec& a, const _Tpsvec& b) \ +{ \ + return _Tpsvec(_mm_cmpgt_##suffix(a.val, b.val)); \ +} \ +inline _Tpsvec operator <= (const _Tpsvec& a, const _Tpsvec& b) \ +{ \ + __m128i not_mask = _mm_set1_epi32(-1); \ + return _Tpsvec(_mm_xor_si128(_mm_cmpgt_##suffix(a.val, b.val), not_mask)); \ +} \ +inline _Tpsvec operator >= (const _Tpsvec& a, const _Tpsvec& b) \ +{ \ + __m128i not_mask = _mm_set1_epi32(-1); \ + return _Tpsvec(_mm_xor_si128(_mm_cmpgt_##suffix(b.val, a.val), not_mask)); \ +} + +OPENCV_HAL_IMPL_SSE_INT_CMP_OP(v_uint8x16, v_int8x16, epi8, (char)-128) +OPENCV_HAL_IMPL_SSE_INT_CMP_OP(v_uint16x8, v_int16x8, epi16, (short)-32768) +OPENCV_HAL_IMPL_SSE_INT_CMP_OP(v_uint32x4, v_int32x4, epi32, (int)0x80000000) + +#define OPENCV_HAL_IMPL_SSE_FLT_CMP_OP(_Tpvec, suffix) \ +inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(_mm_cmpeq_##suffix(a.val, b.val)); } \ +inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(_mm_cmpneq_##suffix(a.val, b.val)); } \ +inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(_mm_cmplt_##suffix(a.val, b.val)); } \ +inline _Tpvec operator > (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(_mm_cmpgt_##suffix(a.val, b.val)); } \ +inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(_mm_cmple_##suffix(a.val, b.val)); } \ +inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(_mm_cmpge_##suffix(a.val, b.val)); } + +OPENCV_HAL_IMPL_SSE_FLT_CMP_OP(v_float32x4, ps) +OPENCV_HAL_IMPL_SSE_FLT_CMP_OP(v_float64x2, pd) + +#define OPENCV_HAL_IMPL_SSE_64BIT_CMP_OP(_Tpvec, cast) \ +inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ +{ return cast(v_reinterpret_as_f64(a) == v_reinterpret_as_f64(b)); } \ +inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ +{ return cast(v_reinterpret_as_f64(a) != v_reinterpret_as_f64(b)); } + +OPENCV_HAL_IMPL_SSE_64BIT_CMP_OP(v_uint64x2, v_reinterpret_as_u64) +OPENCV_HAL_IMPL_SSE_64BIT_CMP_OP(v_int64x2, v_reinterpret_as_s64) + +inline v_float32x4 v_not_nan(const v_float32x4& a) +{ return v_float32x4(_mm_cmpord_ps(a.val, a.val)); } +inline v_float64x2 v_not_nan(const v_float64x2& a) +{ return v_float64x2(_mm_cmpord_pd(a.val, a.val)); } + +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_add_wrap, _mm_add_epi8) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int8x16, v_add_wrap, _mm_add_epi8) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint16x8, v_add_wrap, _mm_add_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_add_wrap, _mm_add_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_sub_wrap, _mm_sub_epi8) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int8x16, v_sub_wrap, _mm_sub_epi8) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint16x8, v_sub_wrap, _mm_sub_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_sub_wrap, _mm_sub_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint16x8, v_mul_wrap, _mm_mullo_epi16) +OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_mul_wrap, _mm_mullo_epi16) + +inline v_uint8x16 v_mul_wrap(const v_uint8x16& a, const v_uint8x16& b) +{ + __m128i ad = _mm_srai_epi16(a.val, 8); + __m128i bd = _mm_srai_epi16(b.val, 8); + __m128i p0 = _mm_mullo_epi16(a.val, b.val); // even + __m128i p1 = _mm_slli_epi16(_mm_mullo_epi16(ad, bd), 8); // odd + const __m128i b01 = _mm_set1_epi32(0xFF00FF00); + return v_uint8x16(_v128_blendv_epi8(p0, p1, b01)); +} +inline v_int8x16 v_mul_wrap(const v_int8x16& a, const v_int8x16& b) +{ + return v_reinterpret_as_s8(v_mul_wrap(v_reinterpret_as_u8(a), v_reinterpret_as_u8(b))); +} + +/** Absolute difference **/ + +inline v_uint8x16 v_absdiff(const v_uint8x16& a, const v_uint8x16& b) +{ return v_add_wrap(a - b, b - a); } +inline v_uint16x8 v_absdiff(const v_uint16x8& a, const v_uint16x8& b) +{ return v_add_wrap(a - b, b - a); } +inline v_uint32x4 v_absdiff(const v_uint32x4& a, const v_uint32x4& b) +{ return v_max(a, b) - v_min(a, b); } + +inline v_uint8x16 v_absdiff(const v_int8x16& a, const v_int8x16& b) +{ + v_int8x16 d = v_sub_wrap(a, b); + v_int8x16 m = a < b; + return v_reinterpret_as_u8(v_sub_wrap(d ^ m, m)); +} +inline v_uint16x8 v_absdiff(const v_int16x8& a, const v_int16x8& b) +{ + return v_reinterpret_as_u16(v_sub_wrap(v_max(a, b), v_min(a, b))); +} +inline v_uint32x4 v_absdiff(const v_int32x4& a, const v_int32x4& b) +{ + v_int32x4 d = a - b; + v_int32x4 m = a < b; + return v_reinterpret_as_u32((d ^ m) - m); +} + +/** Saturating absolute difference **/ +inline v_int8x16 v_absdiffs(const v_int8x16& a, const v_int8x16& b) +{ + v_int8x16 d = a - b; + v_int8x16 m = a < b; + return (d ^ m) - m; + } +inline v_int16x8 v_absdiffs(const v_int16x8& a, const v_int16x8& b) +{ return v_max(a, b) - v_min(a, b); } + + +inline v_int32x4 v_fma(const v_int32x4& a, const v_int32x4& b, const v_int32x4& c) +{ + return a * b + c; +} + +inline v_int32x4 v_muladd(const v_int32x4& a, const v_int32x4& b, const v_int32x4& c) +{ + return v_fma(a, b, c); +} + +inline v_float32x4 v_fma(const v_float32x4& a, const v_float32x4& b, const v_float32x4& c) +{ +#if CV_FMA3 + return v_float32x4(_mm_fmadd_ps(a.val, b.val, c.val)); +#else + return v_float32x4(_mm_add_ps(_mm_mul_ps(a.val, b.val), c.val)); +#endif +} + +inline v_float64x2 v_fma(const v_float64x2& a, const v_float64x2& b, const v_float64x2& c) +{ +#if CV_FMA3 + return v_float64x2(_mm_fmadd_pd(a.val, b.val, c.val)); +#else + return v_float64x2(_mm_add_pd(_mm_mul_pd(a.val, b.val), c.val)); +#endif +} + +#define OPENCV_HAL_IMPL_SSE_MISC_FLT_OP(_Tpvec, _Tp, _Tpreg, suffix, absmask_vec) \ +inline _Tpvec v_absdiff(const _Tpvec& a, const _Tpvec& b) \ +{ \ + _Tpreg absmask = _mm_castsi128_##suffix(absmask_vec); \ + return _Tpvec(_mm_and_##suffix(_mm_sub_##suffix(a.val, b.val), absmask)); \ +} \ +inline _Tpvec v_magnitude(const _Tpvec& a, const _Tpvec& b) \ +{ \ + _Tpvec res = v_fma(a, a, b*b); \ + return _Tpvec(_mm_sqrt_##suffix(res.val)); \ +} \ +inline _Tpvec v_sqr_magnitude(const _Tpvec& a, const _Tpvec& b) \ +{ \ + return v_fma(a, a, b*b); \ +} \ +inline _Tpvec v_muladd(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ +{ \ + return v_fma(a, b, c); \ +} + +OPENCV_HAL_IMPL_SSE_MISC_FLT_OP(v_float32x4, float, __m128, ps, _mm_set1_epi32((int)0x7fffffff)) +OPENCV_HAL_IMPL_SSE_MISC_FLT_OP(v_float64x2, double, __m128d, pd, _mm_srli_epi64(_mm_set1_epi32(-1), 1)) + +#define OPENCV_HAL_IMPL_SSE_SHIFT_OP(_Tpuvec, _Tpsvec, suffix, srai) \ +inline _Tpuvec operator << (const _Tpuvec& a, int imm) \ +{ \ + return _Tpuvec(_mm_slli_##suffix(a.val, imm)); \ +} \ +inline _Tpsvec operator << (const _Tpsvec& a, int imm) \ +{ \ + return _Tpsvec(_mm_slli_##suffix(a.val, imm)); \ +} \ +inline _Tpuvec operator >> (const _Tpuvec& a, int imm) \ +{ \ + return _Tpuvec(_mm_srli_##suffix(a.val, imm)); \ +} \ +inline _Tpsvec operator >> (const _Tpsvec& a, int imm) \ +{ \ + return _Tpsvec(srai(a.val, imm)); \ +} \ +template \ +inline _Tpuvec v_shl(const _Tpuvec& a) \ +{ \ + return _Tpuvec(_mm_slli_##suffix(a.val, imm)); \ +} \ +template \ +inline _Tpsvec v_shl(const _Tpsvec& a) \ +{ \ + return _Tpsvec(_mm_slli_##suffix(a.val, imm)); \ +} \ +template \ +inline _Tpuvec v_shr(const _Tpuvec& a) \ +{ \ + return _Tpuvec(_mm_srli_##suffix(a.val, imm)); \ +} \ +template \ +inline _Tpsvec v_shr(const _Tpsvec& a) \ +{ \ + return _Tpsvec(srai(a.val, imm)); \ +} + +OPENCV_HAL_IMPL_SSE_SHIFT_OP(v_uint16x8, v_int16x8, epi16, _mm_srai_epi16) +OPENCV_HAL_IMPL_SSE_SHIFT_OP(v_uint32x4, v_int32x4, epi32, _mm_srai_epi32) +OPENCV_HAL_IMPL_SSE_SHIFT_OP(v_uint64x2, v_int64x2, epi64, v_srai_epi64) + +namespace hal_sse_internal +{ + template 16)), + bool is_first = (imm == 0), + bool is_half = (imm == 8), + bool is_second = (imm == 16), + bool is_other = (((imm > 0) && (imm < 8)) || ((imm > 8) && (imm < 16)))> + class v_sse_palignr_u8_class; + + template + class v_sse_palignr_u8_class; + + template + class v_sse_palignr_u8_class + { + public: + inline __m128i operator()(const __m128i& a, const __m128i&) const + { + return a; + } + }; + + template + class v_sse_palignr_u8_class + { + public: + inline __m128i operator()(const __m128i& a, const __m128i& b) const + { + return _mm_unpacklo_epi64(_mm_unpackhi_epi64(a, a), b); + } + }; + + template + class v_sse_palignr_u8_class + { + public: + inline __m128i operator()(const __m128i&, const __m128i& b) const + { + return b; + } + }; + + template + class v_sse_palignr_u8_class + { +#if CV_SSSE3 + public: + inline __m128i operator()(const __m128i& a, const __m128i& b) const + { + return _mm_alignr_epi8(b, a, imm); + } +#else + public: + inline __m128i operator()(const __m128i& a, const __m128i& b) const + { + enum { imm2 = (sizeof(__m128i) - imm) }; + return _mm_or_si128(_mm_srli_si128(a, imm), _mm_slli_si128(b, imm2)); + } +#endif + }; + + template + inline __m128i v_sse_palignr_u8(const __m128i& a, const __m128i& b) + { + CV_StaticAssert((imm >= 0) && (imm <= 16), "Invalid imm for v_sse_palignr_u8."); + return v_sse_palignr_u8_class()(a, b); + } +} + +template +inline _Tpvec v_rotate_right(const _Tpvec &a) +{ + using namespace hal_sse_internal; + enum { imm2 = (imm * sizeof(typename _Tpvec::lane_type)) }; + return _Tpvec(v_sse_reinterpret_as( + _mm_srli_si128( + v_sse_reinterpret_as<__m128i>(a.val), imm2))); +} + +template +inline _Tpvec v_rotate_left(const _Tpvec &a) +{ + using namespace hal_sse_internal; + enum { imm2 = (imm * sizeof(typename _Tpvec::lane_type)) }; + return _Tpvec(v_sse_reinterpret_as( + _mm_slli_si128( + v_sse_reinterpret_as<__m128i>(a.val), imm2))); +} + +template +inline _Tpvec v_rotate_right(const _Tpvec &a, const _Tpvec &b) +{ + using namespace hal_sse_internal; + enum { imm2 = (imm * sizeof(typename _Tpvec::lane_type)) }; + return _Tpvec(v_sse_reinterpret_as( + v_sse_palignr_u8( + v_sse_reinterpret_as<__m128i>(a.val), + v_sse_reinterpret_as<__m128i>(b.val)))); +} + +template +inline _Tpvec v_rotate_left(const _Tpvec &a, const _Tpvec &b) +{ + using namespace hal_sse_internal; + enum { imm2 = ((_Tpvec::nlanes - imm) * sizeof(typename _Tpvec::lane_type)) }; + return _Tpvec(v_sse_reinterpret_as( + v_sse_palignr_u8( + v_sse_reinterpret_as<__m128i>(b.val), + v_sse_reinterpret_as<__m128i>(a.val)))); +} + +#define OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(_Tpvec, _Tp) \ +inline _Tpvec v_load(const _Tp* ptr) \ +{ return _Tpvec(_mm_loadu_si128((const __m128i*)ptr)); } \ +inline _Tpvec v_load_aligned(const _Tp* ptr) \ +{ return _Tpvec(_mm_load_si128((const __m128i*)ptr)); } \ +inline _Tpvec v_load_low(const _Tp* ptr) \ +{ return _Tpvec(_mm_loadl_epi64((const __m128i*)ptr)); } \ +inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ +{ \ + return _Tpvec(_mm_unpacklo_epi64(_mm_loadl_epi64((const __m128i*)ptr0), \ + _mm_loadl_epi64((const __m128i*)ptr1))); \ +} \ +inline void v_store(_Tp* ptr, const _Tpvec& a) \ +{ _mm_storeu_si128((__m128i*)ptr, a.val); } \ +inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ +{ _mm_store_si128((__m128i*)ptr, a.val); } \ +inline void v_store_aligned_nocache(_Tp* ptr, const _Tpvec& a) \ +{ _mm_stream_si128((__m128i*)ptr, a.val); } \ +inline void v_store(_Tp* ptr, const _Tpvec& a, hal::StoreMode mode) \ +{ \ + if( mode == hal::STORE_UNALIGNED ) \ + _mm_storeu_si128((__m128i*)ptr, a.val); \ + else if( mode == hal::STORE_ALIGNED_NOCACHE ) \ + _mm_stream_si128((__m128i*)ptr, a.val); \ + else \ + _mm_store_si128((__m128i*)ptr, a.val); \ +} \ +inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ +{ _mm_storel_epi64((__m128i*)ptr, a.val); } \ +inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ +{ _mm_storel_epi64((__m128i*)ptr, _mm_unpackhi_epi64(a.val, a.val)); } + +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint8x16, uchar) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int8x16, schar) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint16x8, ushort) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int16x8, short) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint32x4, unsigned) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int32x4, int) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint64x2, uint64) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int64x2, int64) + +#define OPENCV_HAL_IMPL_SSE_LOADSTORE_FLT_OP(_Tpvec, _Tp, suffix) \ +inline _Tpvec v_load(const _Tp* ptr) \ +{ return _Tpvec(_mm_loadu_##suffix(ptr)); } \ +inline _Tpvec v_load_aligned(const _Tp* ptr) \ +{ return _Tpvec(_mm_load_##suffix(ptr)); } \ +inline _Tpvec v_load_low(const _Tp* ptr) \ +{ return _Tpvec(_mm_castsi128_##suffix(_mm_loadl_epi64((const __m128i*)ptr))); } \ +inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ +{ \ + return _Tpvec(_mm_castsi128_##suffix( \ + _mm_unpacklo_epi64(_mm_loadl_epi64((const __m128i*)ptr0), \ + _mm_loadl_epi64((const __m128i*)ptr1)))); \ +} \ +inline void v_store(_Tp* ptr, const _Tpvec& a) \ +{ _mm_storeu_##suffix(ptr, a.val); } \ +inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ +{ _mm_store_##suffix(ptr, a.val); } \ +inline void v_store_aligned_nocache(_Tp* ptr, const _Tpvec& a) \ +{ _mm_stream_##suffix(ptr, a.val); } \ +inline void v_store(_Tp* ptr, const _Tpvec& a, hal::StoreMode mode) \ +{ \ + if( mode == hal::STORE_UNALIGNED ) \ + _mm_storeu_##suffix(ptr, a.val); \ + else if( mode == hal::STORE_ALIGNED_NOCACHE ) \ + _mm_stream_##suffix(ptr, a.val); \ + else \ + _mm_store_##suffix(ptr, a.val); \ +} \ +inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ +{ _mm_storel_epi64((__m128i*)ptr, _mm_cast##suffix##_si128(a.val)); } \ +inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ +{ \ + __m128i a1 = _mm_cast##suffix##_si128(a.val); \ + _mm_storel_epi64((__m128i*)ptr, _mm_unpackhi_epi64(a1, a1)); \ +} + +OPENCV_HAL_IMPL_SSE_LOADSTORE_FLT_OP(v_float32x4, float, ps) +OPENCV_HAL_IMPL_SSE_LOADSTORE_FLT_OP(v_float64x2, double, pd) + +#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_8(_Tpvec, scalartype, func, suffix, sbit) \ +inline scalartype v_reduce_##func(const v_##_Tpvec& a) \ +{ \ + __m128i val = a.val; \ + val = _mm_##func##_##suffix(val, _mm_srli_si128(val,8)); \ + val = _mm_##func##_##suffix(val, _mm_srli_si128(val,4)); \ + val = _mm_##func##_##suffix(val, _mm_srli_si128(val,2)); \ + return (scalartype)_mm_cvtsi128_si32(val); \ +} \ +inline unsigned scalartype v_reduce_##func(const v_u##_Tpvec& a) \ +{ \ + __m128i val = a.val; \ + __m128i smask = _mm_set1_epi16(sbit); \ + val = _mm_xor_si128(val, smask); \ + val = _mm_##func##_##suffix(val, _mm_srli_si128(val,8)); \ + val = _mm_##func##_##suffix(val, _mm_srli_si128(val,4)); \ + val = _mm_##func##_##suffix(val, _mm_srli_si128(val,2)); \ + return (unsigned scalartype)(_mm_cvtsi128_si32(val) ^ sbit); \ +} +#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_8_SUM(_Tpvec, scalartype, suffix) \ +inline scalartype v_reduce_sum(const v_##_Tpvec& a) \ +{ \ + __m128i val = a.val; \ + val = _mm_adds_epi##suffix(val, _mm_srli_si128(val, 8)); \ + val = _mm_adds_epi##suffix(val, _mm_srli_si128(val, 4)); \ + val = _mm_adds_epi##suffix(val, _mm_srli_si128(val, 2)); \ + return (scalartype)_mm_cvtsi128_si32(val); \ +} \ +inline unsigned scalartype v_reduce_sum(const v_u##_Tpvec& a) \ +{ \ + __m128i val = a.val; \ + val = _mm_adds_epu##suffix(val, _mm_srli_si128(val, 8)); \ + val = _mm_adds_epu##suffix(val, _mm_srli_si128(val, 4)); \ + val = _mm_adds_epu##suffix(val, _mm_srli_si128(val, 2)); \ + return (unsigned scalartype)_mm_cvtsi128_si32(val); \ +} +OPENCV_HAL_IMPL_SSE_REDUCE_OP_8(int16x8, short, max, epi16, (short)-32768) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_8(int16x8, short, min, epi16, (short)-32768) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_8_SUM(int16x8, short, 16) + +#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(_Tpvec, scalartype, regtype, suffix, cast_from, cast_to, extract) \ +inline scalartype v_reduce_sum(const _Tpvec& a) \ +{ \ + regtype val = a.val; \ + val = _mm_add_##suffix(val, cast_to(_mm_srli_si128(cast_from(val), 8))); \ + val = _mm_add_##suffix(val, cast_to(_mm_srli_si128(cast_from(val), 4))); \ + return (scalartype)_mm_cvt##extract(val); \ +} + +#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(_Tpvec, scalartype, func, scalar_func) \ +inline scalartype v_reduce_##func(const _Tpvec& a) \ +{ \ + scalartype CV_DECL_ALIGNED(16) buf[4]; \ + v_store_aligned(buf, a); \ + scalartype s0 = scalar_func(buf[0], buf[1]); \ + scalartype s1 = scalar_func(buf[2], buf[3]); \ + return scalar_func(s0, s1); \ +} + +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(v_uint32x4, unsigned, __m128i, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP, si128_si32) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(v_int32x4, int, __m128i, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP, si128_si32) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(v_float32x4, float, __m128, ps, _mm_castps_si128, _mm_castsi128_ps, ss_f32) + +inline double v_reduce_sum(const v_float64x2& a) +{ + double CV_DECL_ALIGNED(32) idx[2]; + v_store_aligned(idx, a); + return idx[0] + idx[1]; +} + +inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, + const v_float32x4& c, const v_float32x4& d) +{ +#if CV_SSE3 + __m128 ab = _mm_hadd_ps(a.val, b.val); + __m128 cd = _mm_hadd_ps(c.val, d.val); + return v_float32x4(_mm_hadd_ps(ab, cd)); +#else + __m128 ac = _mm_add_ps(_mm_unpacklo_ps(a.val, c.val), _mm_unpackhi_ps(a.val, c.val)); + __m128 bd = _mm_add_ps(_mm_unpacklo_ps(b.val, d.val), _mm_unpackhi_ps(b.val, d.val)); + return v_float32x4(_mm_add_ps(_mm_unpacklo_ps(ac, bd), _mm_unpackhi_ps(ac, bd))); +#endif +} + +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_uint32x4, unsigned, max, std::max) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_uint32x4, unsigned, min, std::min) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_int32x4, int, max, std::max) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_int32x4, int, min, std::min) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_float32x4, float, max, std::max) +OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_float32x4, float, min, std::min) + +inline unsigned v_reduce_sad(const v_uint8x16& a, const v_uint8x16& b) +{ + return (unsigned)_mm_cvtsi128_si32(_mm_sad_epu8(a.val, b.val)); +} +inline unsigned v_reduce_sad(const v_int8x16& a, const v_int8x16& b) +{ + __m128i half = _mm_set1_epi8(0x7f); + return (unsigned)_mm_cvtsi128_si32(_mm_sad_epu8(_mm_add_epi8(a.val, half), + _mm_add_epi8(b.val, half))); +} +inline unsigned v_reduce_sad(const v_uint16x8& a, const v_uint16x8& b) +{ + v_uint32x4 l, h; + v_expand(v_absdiff(a, b), l, h); + return v_reduce_sum(l + h); +} +inline unsigned v_reduce_sad(const v_int16x8& a, const v_int16x8& b) +{ + v_uint32x4 l, h; + v_expand(v_absdiff(a, b), l, h); + return v_reduce_sum(l + h); +} +inline unsigned v_reduce_sad(const v_uint32x4& a, const v_uint32x4& b) +{ + return v_reduce_sum(v_absdiff(a, b)); +} +inline unsigned v_reduce_sad(const v_int32x4& a, const v_int32x4& b) +{ + return v_reduce_sum(v_absdiff(a, b)); +} +inline float v_reduce_sad(const v_float32x4& a, const v_float32x4& b) +{ + return v_reduce_sum(v_absdiff(a, b)); +} + +#define OPENCV_HAL_IMPL_SSE_POPCOUNT(_Tpvec) \ +inline v_uint32x4 v_popcount(const _Tpvec& a) \ +{ \ + __m128i m1 = _mm_set1_epi32(0x55555555); \ + __m128i m2 = _mm_set1_epi32(0x33333333); \ + __m128i m4 = _mm_set1_epi32(0x0f0f0f0f); \ + __m128i p = a.val; \ + p = _mm_add_epi32(_mm_and_si128(_mm_srli_epi32(p, 1), m1), _mm_and_si128(p, m1)); \ + p = _mm_add_epi32(_mm_and_si128(_mm_srli_epi32(p, 2), m2), _mm_and_si128(p, m2)); \ + p = _mm_add_epi32(_mm_and_si128(_mm_srli_epi32(p, 4), m4), _mm_and_si128(p, m4)); \ + p = _mm_adds_epi8(p, _mm_srli_si128(p, 1)); \ + p = _mm_adds_epi8(p, _mm_srli_si128(p, 2)); \ + return v_uint32x4(_mm_and_si128(p, _mm_set1_epi32(0x000000ff))); \ +} + +OPENCV_HAL_IMPL_SSE_POPCOUNT(v_uint8x16) +OPENCV_HAL_IMPL_SSE_POPCOUNT(v_uint16x8) +OPENCV_HAL_IMPL_SSE_POPCOUNT(v_uint32x4) +OPENCV_HAL_IMPL_SSE_POPCOUNT(v_int8x16) +OPENCV_HAL_IMPL_SSE_POPCOUNT(v_int16x8) +OPENCV_HAL_IMPL_SSE_POPCOUNT(v_int32x4) + +#define OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(_Tpvec, suffix, pack_op, and_op, signmask, allmask) \ +inline int v_signmask(const _Tpvec& a) \ +{ \ + return and_op(_mm_movemask_##suffix(pack_op(a.val)), signmask); \ +} \ +inline bool v_check_all(const _Tpvec& a) \ +{ return and_op(_mm_movemask_##suffix(a.val), allmask) == allmask; } \ +inline bool v_check_any(const _Tpvec& a) \ +{ return and_op(_mm_movemask_##suffix(a.val), allmask) != 0; } + +#define OPENCV_HAL_PACKS(a) _mm_packs_epi16(a, a) +inline __m128i v_packq_epi32(__m128i a) +{ + __m128i b = _mm_packs_epi32(a, a); + return _mm_packs_epi16(b, b); +} + +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_uint8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 65535, 65535) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_int8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 65535, 65535) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_uint16x8, epi8, OPENCV_HAL_PACKS, OPENCV_HAL_AND, 255, (int)0xaaaa) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_int16x8, epi8, OPENCV_HAL_PACKS, OPENCV_HAL_AND, 255, (int)0xaaaa) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_uint32x4, epi8, v_packq_epi32, OPENCV_HAL_AND, 15, (int)0x8888) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_int32x4, epi8, v_packq_epi32, OPENCV_HAL_AND, 15, (int)0x8888) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_float32x4, ps, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 15, 15) +OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_float64x2, pd, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 3, 3) + +#if CV_SSE4_1 +#define OPENCV_HAL_IMPL_SSE_SELECT(_Tpvec, cast_ret, cast, suffix) \ +inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec(cast_ret(_mm_blendv_##suffix(cast(b.val), cast(a.val), cast(mask.val)))); \ +} + +OPENCV_HAL_IMPL_SSE_SELECT(v_uint8x16, OPENCV_HAL_NOP, OPENCV_HAL_NOP, epi8) +OPENCV_HAL_IMPL_SSE_SELECT(v_int8x16, OPENCV_HAL_NOP, OPENCV_HAL_NOP, epi8) +OPENCV_HAL_IMPL_SSE_SELECT(v_uint16x8, OPENCV_HAL_NOP, OPENCV_HAL_NOP, epi8) +OPENCV_HAL_IMPL_SSE_SELECT(v_int16x8, OPENCV_HAL_NOP, OPENCV_HAL_NOP, epi8) +OPENCV_HAL_IMPL_SSE_SELECT(v_uint32x4, _mm_castps_si128, _mm_castsi128_ps, ps) +OPENCV_HAL_IMPL_SSE_SELECT(v_int32x4, _mm_castps_si128, _mm_castsi128_ps, ps) +// OPENCV_HAL_IMPL_SSE_SELECT(v_uint64x2, TBD, TBD, pd) +// OPENCV_HAL_IMPL_SSE_SELECT(v_int64x2, TBD, TBD, ps) +OPENCV_HAL_IMPL_SSE_SELECT(v_float32x4, OPENCV_HAL_NOP, OPENCV_HAL_NOP, ps) +OPENCV_HAL_IMPL_SSE_SELECT(v_float64x2, OPENCV_HAL_NOP, OPENCV_HAL_NOP, pd) + +#else // CV_SSE4_1 + +#define OPENCV_HAL_IMPL_SSE_SELECT(_Tpvec, suffix) \ +inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ +{ \ + return _Tpvec(_mm_xor_##suffix(b.val, _mm_and_##suffix(_mm_xor_##suffix(b.val, a.val), mask.val))); \ +} + +OPENCV_HAL_IMPL_SSE_SELECT(v_uint8x16, si128) +OPENCV_HAL_IMPL_SSE_SELECT(v_int8x16, si128) +OPENCV_HAL_IMPL_SSE_SELECT(v_uint16x8, si128) +OPENCV_HAL_IMPL_SSE_SELECT(v_int16x8, si128) +OPENCV_HAL_IMPL_SSE_SELECT(v_uint32x4, si128) +OPENCV_HAL_IMPL_SSE_SELECT(v_int32x4, si128) +// OPENCV_HAL_IMPL_SSE_SELECT(v_uint64x2, si128) +// OPENCV_HAL_IMPL_SSE_SELECT(v_int64x2, si128) +OPENCV_HAL_IMPL_SSE_SELECT(v_float32x4, ps) +OPENCV_HAL_IMPL_SSE_SELECT(v_float64x2, pd) +#endif + +/* Expand */ +#define OPENCV_HAL_IMPL_SSE_EXPAND(_Tpvec, _Tpwvec, _Tp, intrin) \ + inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ + { \ + b0.val = intrin(a.val); \ + b1.val = __CV_CAT(intrin, _high)(a.val); \ + } \ + inline _Tpwvec v_expand_low(const _Tpvec& a) \ + { return _Tpwvec(intrin(a.val)); } \ + inline _Tpwvec v_expand_high(const _Tpvec& a) \ + { return _Tpwvec(__CV_CAT(intrin, _high)(a.val)); } \ + inline _Tpwvec v_load_expand(const _Tp* ptr) \ + { \ + __m128i a = _mm_loadl_epi64((const __m128i*)ptr); \ + return _Tpwvec(intrin(a)); \ + } + +OPENCV_HAL_IMPL_SSE_EXPAND(v_uint8x16, v_uint16x8, uchar, _v128_cvtepu8_epi16) +OPENCV_HAL_IMPL_SSE_EXPAND(v_int8x16, v_int16x8, schar, _v128_cvtepi8_epi16) +OPENCV_HAL_IMPL_SSE_EXPAND(v_uint16x8, v_uint32x4, ushort, _v128_cvtepu16_epi32) +OPENCV_HAL_IMPL_SSE_EXPAND(v_int16x8, v_int32x4, short, _v128_cvtepi16_epi32) +OPENCV_HAL_IMPL_SSE_EXPAND(v_uint32x4, v_uint64x2, unsigned, _v128_cvtepu32_epi64) +OPENCV_HAL_IMPL_SSE_EXPAND(v_int32x4, v_int64x2, int, _v128_cvtepi32_epi64) + +#define OPENCV_HAL_IMPL_SSE_EXPAND_Q(_Tpvec, _Tp, intrin) \ + inline _Tpvec v_load_expand_q(const _Tp* ptr) \ + { \ + __m128i a = _mm_cvtsi32_si128(*(const int*)ptr); \ + return _Tpvec(intrin(a)); \ + } + +OPENCV_HAL_IMPL_SSE_EXPAND_Q(v_uint32x4, uchar, _v128_cvtepu8_epi32) +OPENCV_HAL_IMPL_SSE_EXPAND_Q(v_int32x4, schar, _v128_cvtepi8_epi32) + +#define OPENCV_HAL_IMPL_SSE_UNPACKS(_Tpvec, suffix, cast_from, cast_to) \ +inline void v_zip(const _Tpvec& a0, const _Tpvec& a1, _Tpvec& b0, _Tpvec& b1) \ +{ \ + b0.val = _mm_unpacklo_##suffix(a0.val, a1.val); \ + b1.val = _mm_unpackhi_##suffix(a0.val, a1.val); \ +} \ +inline _Tpvec v_combine_low(const _Tpvec& a, const _Tpvec& b) \ +{ \ + __m128i a1 = cast_from(a.val), b1 = cast_from(b.val); \ + return _Tpvec(cast_to(_mm_unpacklo_epi64(a1, b1))); \ +} \ +inline _Tpvec v_combine_high(const _Tpvec& a, const _Tpvec& b) \ +{ \ + __m128i a1 = cast_from(a.val), b1 = cast_from(b.val); \ + return _Tpvec(cast_to(_mm_unpackhi_epi64(a1, b1))); \ +} \ +inline void v_recombine(const _Tpvec& a, const _Tpvec& b, _Tpvec& c, _Tpvec& d) \ +{ \ + __m128i a1 = cast_from(a.val), b1 = cast_from(b.val); \ + c.val = cast_to(_mm_unpacklo_epi64(a1, b1)); \ + d.val = cast_to(_mm_unpackhi_epi64(a1, b1)); \ +} + +OPENCV_HAL_IMPL_SSE_UNPACKS(v_uint8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_int8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_uint16x8, epi16, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_int16x8, epi16, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_uint32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_int32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_float32x4, ps, _mm_castps_si128, _mm_castsi128_ps) +OPENCV_HAL_IMPL_SSE_UNPACKS(v_float64x2, pd, _mm_castpd_si128, _mm_castsi128_pd) + +template +inline _Tpvec v_extract(const _Tpvec& a, const _Tpvec& b) +{ + return v_rotate_right(a, b); +} + +inline v_int32x4 v_round(const v_float32x4& a) +{ return v_int32x4(_mm_cvtps_epi32(a.val)); } + +inline v_int32x4 v_floor(const v_float32x4& a) +{ + __m128i a1 = _mm_cvtps_epi32(a.val); + __m128i mask = _mm_castps_si128(_mm_cmpgt_ps(_mm_cvtepi32_ps(a1), a.val)); + return v_int32x4(_mm_add_epi32(a1, mask)); +} + +inline v_int32x4 v_ceil(const v_float32x4& a) +{ + __m128i a1 = _mm_cvtps_epi32(a.val); + __m128i mask = _mm_castps_si128(_mm_cmpgt_ps(a.val, _mm_cvtepi32_ps(a1))); + return v_int32x4(_mm_sub_epi32(a1, mask)); +} + +inline v_int32x4 v_trunc(const v_float32x4& a) +{ return v_int32x4(_mm_cvttps_epi32(a.val)); } + +inline v_int32x4 v_round(const v_float64x2& a) +{ return v_int32x4(_mm_cvtpd_epi32(a.val)); } + +inline v_int32x4 v_round(const v_float64x2& a, const v_float64x2& b) +{ + __m128i ai = _mm_cvtpd_epi32(a.val), bi = _mm_cvtpd_epi32(b.val); + return v_int32x4(_mm_unpacklo_epi64(ai, bi)); +} + +inline v_int32x4 v_floor(const v_float64x2& a) +{ + __m128i a1 = _mm_cvtpd_epi32(a.val); + __m128i mask = _mm_castpd_si128(_mm_cmpgt_pd(_mm_cvtepi32_pd(a1), a.val)); + mask = _mm_srli_si128(_mm_slli_si128(mask, 4), 8); // m0 m0 m1 m1 => m0 m1 0 0 + return v_int32x4(_mm_add_epi32(a1, mask)); +} + +inline v_int32x4 v_ceil(const v_float64x2& a) +{ + __m128i a1 = _mm_cvtpd_epi32(a.val); + __m128i mask = _mm_castpd_si128(_mm_cmpgt_pd(a.val, _mm_cvtepi32_pd(a1))); + mask = _mm_srli_si128(_mm_slli_si128(mask, 4), 8); // m0 m0 m1 m1 => m0 m1 0 0 + return v_int32x4(_mm_sub_epi32(a1, mask)); +} + +inline v_int32x4 v_trunc(const v_float64x2& a) +{ return v_int32x4(_mm_cvttpd_epi32(a.val)); } + +#define OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(_Tpvec, suffix, cast_from, cast_to) \ +inline void v_transpose4x4(const _Tpvec& a0, const _Tpvec& a1, \ + const _Tpvec& a2, const _Tpvec& a3, \ + _Tpvec& b0, _Tpvec& b1, \ + _Tpvec& b2, _Tpvec& b3) \ +{ \ + __m128i t0 = cast_from(_mm_unpacklo_##suffix(a0.val, a1.val)); \ + __m128i t1 = cast_from(_mm_unpacklo_##suffix(a2.val, a3.val)); \ + __m128i t2 = cast_from(_mm_unpackhi_##suffix(a0.val, a1.val)); \ + __m128i t3 = cast_from(_mm_unpackhi_##suffix(a2.val, a3.val)); \ +\ + b0.val = cast_to(_mm_unpacklo_epi64(t0, t1)); \ + b1.val = cast_to(_mm_unpackhi_epi64(t0, t1)); \ + b2.val = cast_to(_mm_unpacklo_epi64(t2, t3)); \ + b3.val = cast_to(_mm_unpackhi_epi64(t2, t3)); \ +} + +OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(v_uint32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(v_int32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) +OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(v_float32x4, ps, _mm_castps_si128, _mm_castsi128_ps) + +// load deinterleave +inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b) +{ + __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); + __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 16)); + + __m128i t10 = _mm_unpacklo_epi8(t00, t01); + __m128i t11 = _mm_unpackhi_epi8(t00, t01); + + __m128i t20 = _mm_unpacklo_epi8(t10, t11); + __m128i t21 = _mm_unpackhi_epi8(t10, t11); + + __m128i t30 = _mm_unpacklo_epi8(t20, t21); + __m128i t31 = _mm_unpackhi_epi8(t20, t21); + + a.val = _mm_unpacklo_epi8(t30, t31); + b.val = _mm_unpackhi_epi8(t30, t31); +} + +inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b, v_uint8x16& c) +{ +#if CV_SSE4_1 + const __m128i m0 = _mm_setr_epi8(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0); + const __m128i m1 = _mm_setr_epi8(0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0); + __m128i s0 = _mm_loadu_si128((const __m128i*)ptr); + __m128i s1 = _mm_loadu_si128((const __m128i*)(ptr + 16)); + __m128i s2 = _mm_loadu_si128((const __m128i*)(ptr + 32)); + __m128i a0 = _mm_blendv_epi8(_mm_blendv_epi8(s0, s1, m0), s2, m1); + __m128i b0 = _mm_blendv_epi8(_mm_blendv_epi8(s1, s2, m0), s0, m1); + __m128i c0 = _mm_blendv_epi8(_mm_blendv_epi8(s2, s0, m0), s1, m1); + const __m128i sh_b = _mm_setr_epi8(0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14, 1, 4, 7, 10, 13); + const __m128i sh_g = _mm_setr_epi8(1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2, 5, 8, 11, 14); + const __m128i sh_r = _mm_setr_epi8(2, 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15); + a0 = _mm_shuffle_epi8(a0, sh_b); + b0 = _mm_shuffle_epi8(b0, sh_g); + c0 = _mm_shuffle_epi8(c0, sh_r); + a.val = a0; + b.val = b0; + c.val = c0; +#elif CV_SSSE3 + const __m128i m0 = _mm_setr_epi8(0, 3, 6, 9, 12, 15, 1, 4, 7, 10, 13, 2, 5, 8, 11, 14); + const __m128i m1 = _mm_alignr_epi8(m0, m0, 11); + const __m128i m2 = _mm_alignr_epi8(m0, m0, 6); + + __m128i t0 = _mm_loadu_si128((const __m128i*)ptr); + __m128i t1 = _mm_loadu_si128((const __m128i*)(ptr + 16)); + __m128i t2 = _mm_loadu_si128((const __m128i*)(ptr + 32)); + + __m128i s0 = _mm_shuffle_epi8(t0, m0); + __m128i s1 = _mm_shuffle_epi8(t1, m1); + __m128i s2 = _mm_shuffle_epi8(t2, m2); + + t0 = _mm_alignr_epi8(s1, _mm_slli_si128(s0, 10), 5); + a.val = _mm_alignr_epi8(s2, t0, 5); + + t1 = _mm_alignr_epi8(_mm_srli_si128(s1, 5), _mm_slli_si128(s0, 5), 6); + b.val = _mm_alignr_epi8(_mm_srli_si128(s2, 5), t1, 5); + + t2 = _mm_alignr_epi8(_mm_srli_si128(s2, 10), s1, 11); + c.val = _mm_alignr_epi8(t2, s0, 11); +#else + __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); + __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 16)); + __m128i t02 = _mm_loadu_si128((const __m128i*)(ptr + 32)); + + __m128i t10 = _mm_unpacklo_epi8(t00, _mm_unpackhi_epi64(t01, t01)); + __m128i t11 = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t00, t00), t02); + __m128i t12 = _mm_unpacklo_epi8(t01, _mm_unpackhi_epi64(t02, t02)); + + __m128i t20 = _mm_unpacklo_epi8(t10, _mm_unpackhi_epi64(t11, t11)); + __m128i t21 = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t10, t10), t12); + __m128i t22 = _mm_unpacklo_epi8(t11, _mm_unpackhi_epi64(t12, t12)); + + __m128i t30 = _mm_unpacklo_epi8(t20, _mm_unpackhi_epi64(t21, t21)); + __m128i t31 = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t20, t20), t22); + __m128i t32 = _mm_unpacklo_epi8(t21, _mm_unpackhi_epi64(t22, t22)); + + a.val = _mm_unpacklo_epi8(t30, _mm_unpackhi_epi64(t31, t31)); + b.val = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t30, t30), t32); + c.val = _mm_unpacklo_epi8(t31, _mm_unpackhi_epi64(t32, t32)); +#endif +} + +inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b, v_uint8x16& c, v_uint8x16& d) +{ + __m128i u0 = _mm_loadu_si128((const __m128i*)ptr); // a0 b0 c0 d0 a1 b1 c1 d1 ... + __m128i u1 = _mm_loadu_si128((const __m128i*)(ptr + 16)); // a4 b4 c4 d4 ... + __m128i u2 = _mm_loadu_si128((const __m128i*)(ptr + 32)); // a8 b8 c8 d8 ... + __m128i u3 = _mm_loadu_si128((const __m128i*)(ptr + 48)); // a12 b12 c12 d12 ... + + __m128i v0 = _mm_unpacklo_epi8(u0, u2); // a0 a8 b0 b8 ... + __m128i v1 = _mm_unpackhi_epi8(u0, u2); // a2 a10 b2 b10 ... + __m128i v2 = _mm_unpacklo_epi8(u1, u3); // a4 a12 b4 b12 ... + __m128i v3 = _mm_unpackhi_epi8(u1, u3); // a6 a14 b6 b14 ... + + u0 = _mm_unpacklo_epi8(v0, v2); // a0 a4 a8 a12 ... + u1 = _mm_unpacklo_epi8(v1, v3); // a2 a6 a10 a14 ... + u2 = _mm_unpackhi_epi8(v0, v2); // a1 a5 a9 a13 ... + u3 = _mm_unpackhi_epi8(v1, v3); // a3 a7 a11 a15 ... + + v0 = _mm_unpacklo_epi8(u0, u1); // a0 a2 a4 a6 ... + v1 = _mm_unpacklo_epi8(u2, u3); // a1 a3 a5 a7 ... + v2 = _mm_unpackhi_epi8(u0, u1); // c0 c2 c4 c6 ... + v3 = _mm_unpackhi_epi8(u2, u3); // c1 c3 c5 c7 ... + + a.val = _mm_unpacklo_epi8(v0, v1); + b.val = _mm_unpackhi_epi8(v0, v1); + c.val = _mm_unpacklo_epi8(v2, v3); + d.val = _mm_unpackhi_epi8(v2, v3); +} + +inline void v_load_deinterleave(const ushort* ptr, v_uint16x8& a, v_uint16x8& b) +{ + __m128i v0 = _mm_loadu_si128((__m128i*)(ptr)); // a0 b0 a1 b1 a2 b2 a3 b3 + __m128i v1 = _mm_loadu_si128((__m128i*)(ptr + 8)); // a4 b4 a5 b5 a6 b6 a7 b7 + + __m128i v2 = _mm_unpacklo_epi16(v0, v1); // a0 a4 b0 b4 a1 a5 b1 b5 + __m128i v3 = _mm_unpackhi_epi16(v0, v1); // a2 a6 b2 b6 a3 a7 b3 b7 + __m128i v4 = _mm_unpacklo_epi16(v2, v3); // a0 a2 a4 a6 b0 b2 b4 b6 + __m128i v5 = _mm_unpackhi_epi16(v2, v3); // a1 a3 a5 a7 b1 b3 b5 b7 + + a.val = _mm_unpacklo_epi16(v4, v5); // a0 a1 a2 a3 a4 a5 a6 a7 + b.val = _mm_unpackhi_epi16(v4, v5); // b0 b1 ab b3 b4 b5 b6 b7 +} + +inline void v_load_deinterleave(const ushort* ptr, v_uint16x8& a, v_uint16x8& b, v_uint16x8& c) +{ +#if CV_SSE4_1 + __m128i v0 = _mm_loadu_si128((__m128i*)(ptr)); + __m128i v1 = _mm_loadu_si128((__m128i*)(ptr + 8)); + __m128i v2 = _mm_loadu_si128((__m128i*)(ptr + 16)); + __m128i a0 = _mm_blend_epi16(_mm_blend_epi16(v0, v1, 0x92), v2, 0x24); + __m128i b0 = _mm_blend_epi16(_mm_blend_epi16(v2, v0, 0x92), v1, 0x24); + __m128i c0 = _mm_blend_epi16(_mm_blend_epi16(v1, v2, 0x92), v0, 0x24); + + const __m128i sh_a = _mm_setr_epi8(0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11); + const __m128i sh_b = _mm_setr_epi8(2, 3, 8, 9, 14, 15, 4, 5, 10, 11, 0, 1, 6, 7, 12, 13); + const __m128i sh_c = _mm_setr_epi8(4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15); + a0 = _mm_shuffle_epi8(a0, sh_a); + b0 = _mm_shuffle_epi8(b0, sh_b); + c0 = _mm_shuffle_epi8(c0, sh_c); + + a.val = a0; + b.val = b0; + c.val = c0; +#else + __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); + __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 8)); + __m128i t02 = _mm_loadu_si128((const __m128i*)(ptr + 16)); + + __m128i t10 = _mm_unpacklo_epi16(t00, _mm_unpackhi_epi64(t01, t01)); + __m128i t11 = _mm_unpacklo_epi16(_mm_unpackhi_epi64(t00, t00), t02); + __m128i t12 = _mm_unpacklo_epi16(t01, _mm_unpackhi_epi64(t02, t02)); + + __m128i t20 = _mm_unpacklo_epi16(t10, _mm_unpackhi_epi64(t11, t11)); + __m128i t21 = _mm_unpacklo_epi16(_mm_unpackhi_epi64(t10, t10), t12); + __m128i t22 = _mm_unpacklo_epi16(t11, _mm_unpackhi_epi64(t12, t12)); + + a.val = _mm_unpacklo_epi16(t20, _mm_unpackhi_epi64(t21, t21)); + b.val = _mm_unpacklo_epi16(_mm_unpackhi_epi64(t20, t20), t22); + c.val = _mm_unpacklo_epi16(t21, _mm_unpackhi_epi64(t22, t22)); +#endif +} + +inline void v_load_deinterleave(const ushort* ptr, v_uint16x8& a, v_uint16x8& b, v_uint16x8& c, v_uint16x8& d) +{ + __m128i u0 = _mm_loadu_si128((const __m128i*)ptr); // a0 b0 c0 d0 a1 b1 c1 d1 + __m128i u1 = _mm_loadu_si128((const __m128i*)(ptr + 8)); // a2 b2 c2 d2 ... + __m128i u2 = _mm_loadu_si128((const __m128i*)(ptr + 16)); // a4 b4 c4 d4 ... + __m128i u3 = _mm_loadu_si128((const __m128i*)(ptr + 24)); // a6 b6 c6 d6 ... + + __m128i v0 = _mm_unpacklo_epi16(u0, u2); // a0 a4 b0 b4 ... + __m128i v1 = _mm_unpackhi_epi16(u0, u2); // a1 a5 b1 b5 ... + __m128i v2 = _mm_unpacklo_epi16(u1, u3); // a2 a6 b2 b6 ... + __m128i v3 = _mm_unpackhi_epi16(u1, u3); // a3 a7 b3 b7 ... + + u0 = _mm_unpacklo_epi16(v0, v2); // a0 a2 a4 a6 ... + u1 = _mm_unpacklo_epi16(v1, v3); // a1 a3 a5 a7 ... + u2 = _mm_unpackhi_epi16(v0, v2); // c0 c2 c4 c6 ... + u3 = _mm_unpackhi_epi16(v1, v3); // c1 c3 c5 c7 ... + + a.val = _mm_unpacklo_epi16(u0, u1); + b.val = _mm_unpackhi_epi16(u0, u1); + c.val = _mm_unpacklo_epi16(u2, u3); + d.val = _mm_unpackhi_epi16(u2, u3); +} + +inline void v_load_deinterleave(const unsigned* ptr, v_uint32x4& a, v_uint32x4& b) +{ + __m128i v0 = _mm_loadu_si128((__m128i*)(ptr)); // a0 b0 a1 b1 + __m128i v1 = _mm_loadu_si128((__m128i*)(ptr + 4)); // a2 b2 a3 b3 + + __m128i v2 = _mm_unpacklo_epi32(v0, v1); // a0 a2 b0 b2 + __m128i v3 = _mm_unpackhi_epi32(v0, v1); // a1 a3 b1 b3 + + a.val = _mm_unpacklo_epi32(v2, v3); // a0 a1 a2 a3 + b.val = _mm_unpackhi_epi32(v2, v3); // b0 b1 ab b3 +} + +inline void v_load_deinterleave(const unsigned* ptr, v_uint32x4& a, v_uint32x4& b, v_uint32x4& c) +{ + __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); + __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 4)); + __m128i t02 = _mm_loadu_si128((const __m128i*)(ptr + 8)); + + __m128i t10 = _mm_unpacklo_epi32(t00, _mm_unpackhi_epi64(t01, t01)); + __m128i t11 = _mm_unpacklo_epi32(_mm_unpackhi_epi64(t00, t00), t02); + __m128i t12 = _mm_unpacklo_epi32(t01, _mm_unpackhi_epi64(t02, t02)); + + a.val = _mm_unpacklo_epi32(t10, _mm_unpackhi_epi64(t11, t11)); + b.val = _mm_unpacklo_epi32(_mm_unpackhi_epi64(t10, t10), t12); + c.val = _mm_unpacklo_epi32(t11, _mm_unpackhi_epi64(t12, t12)); +} + +inline void v_load_deinterleave(const unsigned* ptr, v_uint32x4& a, v_uint32x4& b, v_uint32x4& c, v_uint32x4& d) +{ + v_uint32x4 s0(_mm_loadu_si128((const __m128i*)ptr)); // a0 b0 c0 d0 + v_uint32x4 s1(_mm_loadu_si128((const __m128i*)(ptr + 4))); // a1 b1 c1 d1 + v_uint32x4 s2(_mm_loadu_si128((const __m128i*)(ptr + 8))); // a2 b2 c2 d2 + v_uint32x4 s3(_mm_loadu_si128((const __m128i*)(ptr + 12))); // a3 b3 c3 d3 + + v_transpose4x4(s0, s1, s2, s3, a, b, c, d); +} + +inline void v_load_deinterleave(const float* ptr, v_float32x4& a, v_float32x4& b) +{ + __m128 u0 = _mm_loadu_ps(ptr); // a0 b0 a1 b1 + __m128 u1 = _mm_loadu_ps((ptr + 4)); // a2 b2 a3 b3 + + a.val = _mm_shuffle_ps(u0, u1, _MM_SHUFFLE(2, 0, 2, 0)); // a0 a1 a2 a3 + b.val = _mm_shuffle_ps(u0, u1, _MM_SHUFFLE(3, 1, 3, 1)); // b0 b1 ab b3 +} + +inline void v_load_deinterleave(const float* ptr, v_float32x4& a, v_float32x4& b, v_float32x4& c) +{ + __m128 t0 = _mm_loadu_ps(ptr + 0); + __m128 t1 = _mm_loadu_ps(ptr + 4); + __m128 t2 = _mm_loadu_ps(ptr + 8); + + __m128 at12 = _mm_shuffle_ps(t1, t2, _MM_SHUFFLE(0, 1, 0, 2)); + a.val = _mm_shuffle_ps(t0, at12, _MM_SHUFFLE(2, 0, 3, 0)); + + __m128 bt01 = _mm_shuffle_ps(t0, t1, _MM_SHUFFLE(0, 0, 0, 1)); + __m128 bt12 = _mm_shuffle_ps(t1, t2, _MM_SHUFFLE(0, 2, 0, 3)); + b.val = _mm_shuffle_ps(bt01, bt12, _MM_SHUFFLE(2, 0, 2, 0)); + + __m128 ct01 = _mm_shuffle_ps(t0, t1, _MM_SHUFFLE(0, 1, 0, 2)); + c.val = _mm_shuffle_ps(ct01, t2, _MM_SHUFFLE(3, 0, 2, 0)); +} + +inline void v_load_deinterleave(const float* ptr, v_float32x4& a, v_float32x4& b, v_float32x4& c, v_float32x4& d) +{ + __m128 t0 = _mm_loadu_ps(ptr + 0); + __m128 t1 = _mm_loadu_ps(ptr + 4); + __m128 t2 = _mm_loadu_ps(ptr + 8); + __m128 t3 = _mm_loadu_ps(ptr + 12); + __m128 t02lo = _mm_unpacklo_ps(t0, t2); + __m128 t13lo = _mm_unpacklo_ps(t1, t3); + __m128 t02hi = _mm_unpackhi_ps(t0, t2); + __m128 t13hi = _mm_unpackhi_ps(t1, t3); + a.val = _mm_unpacklo_ps(t02lo, t13lo); + b.val = _mm_unpackhi_ps(t02lo, t13lo); + c.val = _mm_unpacklo_ps(t02hi, t13hi); + d.val = _mm_unpackhi_ps(t02hi, t13hi); +} + +inline void v_load_deinterleave(const uint64 *ptr, v_uint64x2& a, v_uint64x2& b) +{ + __m128i t0 = _mm_loadu_si128((const __m128i*)ptr); + __m128i t1 = _mm_loadu_si128((const __m128i*)(ptr + 2)); + + a = v_uint64x2(_mm_unpacklo_epi64(t0, t1)); + b = v_uint64x2(_mm_unpackhi_epi64(t0, t1)); +} + +inline void v_load_deinterleave(const uint64 *ptr, v_uint64x2& a, v_uint64x2& b, v_uint64x2& c) +{ + __m128i t0 = _mm_loadu_si128((const __m128i*)ptr); // a0, b0 + __m128i t1 = _mm_loadu_si128((const __m128i*)(ptr + 2)); // c0, a1 + __m128i t2 = _mm_loadu_si128((const __m128i*)(ptr + 4)); // b1, c1 + + t1 = _mm_shuffle_epi32(t1, 0x4e); // a1, c0 + + a = v_uint64x2(_mm_unpacklo_epi64(t0, t1)); + b = v_uint64x2(_mm_unpacklo_epi64(_mm_unpackhi_epi64(t0, t0), t2)); + c = v_uint64x2(_mm_unpackhi_epi64(t1, t2)); +} + +inline void v_load_deinterleave(const uint64 *ptr, v_uint64x2& a, + v_uint64x2& b, v_uint64x2& c, v_uint64x2& d) +{ + __m128i t0 = _mm_loadu_si128((const __m128i*)ptr); // a0 b0 + __m128i t1 = _mm_loadu_si128((const __m128i*)(ptr + 2)); // c0 d0 + __m128i t2 = _mm_loadu_si128((const __m128i*)(ptr + 4)); // a1 b1 + __m128i t3 = _mm_loadu_si128((const __m128i*)(ptr + 6)); // c1 d1 + + a = v_uint64x2(_mm_unpacklo_epi64(t0, t2)); + b = v_uint64x2(_mm_unpackhi_epi64(t0, t2)); + c = v_uint64x2(_mm_unpacklo_epi64(t1, t3)); + d = v_uint64x2(_mm_unpackhi_epi64(t1, t3)); +} + +// store interleave + +inline void v_store_interleave( uchar* ptr, const v_uint8x16& a, const v_uint8x16& b, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128i v0 = _mm_unpacklo_epi8(a.val, b.val); + __m128i v1 = _mm_unpackhi_epi8(a.val, b.val); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 16), v1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 16), v1); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 16), v1); + } +} + +inline void v_store_interleave( uchar* ptr, const v_uint8x16& a, const v_uint8x16& b, + const v_uint8x16& c, hal::StoreMode mode = hal::STORE_UNALIGNED) +{ +#if CV_SSE4_1 + const __m128i sh_a = _mm_setr_epi8(0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, 10, 5); + const __m128i sh_b = _mm_setr_epi8(5, 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15, 10); + const __m128i sh_c = _mm_setr_epi8(10, 5, 0, 11, 6, 1, 12, 7, 2, 13, 8, 3, 14, 9, 4, 15); + __m128i a0 = _mm_shuffle_epi8(a.val, sh_a); + __m128i b0 = _mm_shuffle_epi8(b.val, sh_b); + __m128i c0 = _mm_shuffle_epi8(c.val, sh_c); + + const __m128i m0 = _mm_setr_epi8(0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0); + const __m128i m1 = _mm_setr_epi8(0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0); + __m128i v0 = _mm_blendv_epi8(_mm_blendv_epi8(a0, b0, m1), c0, m0); + __m128i v1 = _mm_blendv_epi8(_mm_blendv_epi8(b0, c0, m1), a0, m0); + __m128i v2 = _mm_blendv_epi8(_mm_blendv_epi8(c0, a0, m1), b0, m0); +#elif CV_SSSE3 + const __m128i m0 = _mm_setr_epi8(0, 6, 11, 1, 7, 12, 2, 8, 13, 3, 9, 14, 4, 10, 15, 5); + const __m128i m1 = _mm_setr_epi8(5, 11, 0, 6, 12, 1, 7, 13, 2, 8, 14, 3, 9, 15, 4, 10); + const __m128i m2 = _mm_setr_epi8(10, 0, 5, 11, 1, 6, 12, 2, 7, 13, 3, 8, 14, 4, 9, 15); + + __m128i t0 = _mm_alignr_epi8(b.val, _mm_slli_si128(a.val, 10), 5); + t0 = _mm_alignr_epi8(c.val, t0, 5); + __m128i v0 = _mm_shuffle_epi8(t0, m0); + + __m128i t1 = _mm_alignr_epi8(_mm_srli_si128(b.val, 5), _mm_slli_si128(a.val, 5), 6); + t1 = _mm_alignr_epi8(_mm_srli_si128(c.val, 5), t1, 5); + __m128i v1 = _mm_shuffle_epi8(t1, m1); + + __m128i t2 = _mm_alignr_epi8(_mm_srli_si128(c.val, 10), b.val, 11); + t2 = _mm_alignr_epi8(t2, a.val, 11); + __m128i v2 = _mm_shuffle_epi8(t2, m2); +#else + __m128i z = _mm_setzero_si128(); + __m128i ab0 = _mm_unpacklo_epi8(a.val, b.val); + __m128i ab1 = _mm_unpackhi_epi8(a.val, b.val); + __m128i c0 = _mm_unpacklo_epi8(c.val, z); + __m128i c1 = _mm_unpackhi_epi8(c.val, z); + + __m128i p00 = _mm_unpacklo_epi16(ab0, c0); + __m128i p01 = _mm_unpackhi_epi16(ab0, c0); + __m128i p02 = _mm_unpacklo_epi16(ab1, c1); + __m128i p03 = _mm_unpackhi_epi16(ab1, c1); + + __m128i p10 = _mm_unpacklo_epi32(p00, p01); + __m128i p11 = _mm_unpackhi_epi32(p00, p01); + __m128i p12 = _mm_unpacklo_epi32(p02, p03); + __m128i p13 = _mm_unpackhi_epi32(p02, p03); + + __m128i p20 = _mm_unpacklo_epi64(p10, p11); + __m128i p21 = _mm_unpackhi_epi64(p10, p11); + __m128i p22 = _mm_unpacklo_epi64(p12, p13); + __m128i p23 = _mm_unpackhi_epi64(p12, p13); + + p20 = _mm_slli_si128(p20, 1); + p22 = _mm_slli_si128(p22, 1); + + __m128i p30 = _mm_slli_epi64(_mm_unpacklo_epi32(p20, p21), 8); + __m128i p31 = _mm_srli_epi64(_mm_unpackhi_epi32(p20, p21), 8); + __m128i p32 = _mm_slli_epi64(_mm_unpacklo_epi32(p22, p23), 8); + __m128i p33 = _mm_srli_epi64(_mm_unpackhi_epi32(p22, p23), 8); + + __m128i p40 = _mm_unpacklo_epi64(p30, p31); + __m128i p41 = _mm_unpackhi_epi64(p30, p31); + __m128i p42 = _mm_unpacklo_epi64(p32, p33); + __m128i p43 = _mm_unpackhi_epi64(p32, p33); + + __m128i v0 = _mm_or_si128(_mm_srli_si128(p40, 2), _mm_slli_si128(p41, 10)); + __m128i v1 = _mm_or_si128(_mm_srli_si128(p41, 6), _mm_slli_si128(p42, 6)); + __m128i v2 = _mm_or_si128(_mm_srli_si128(p42, 10), _mm_slli_si128(p43, 2)); +#endif + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 16), v1); + _mm_stream_si128((__m128i*)(ptr + 32), v2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 16), v1); + _mm_store_si128((__m128i*)(ptr + 32), v2); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 16), v1); + _mm_storeu_si128((__m128i*)(ptr + 32), v2); + } +} + +inline void v_store_interleave( uchar* ptr, const v_uint8x16& a, const v_uint8x16& b, + const v_uint8x16& c, const v_uint8x16& d, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + // a0 a1 a2 a3 .... + // b0 b1 b2 b3 .... + // c0 c1 c2 c3 .... + // d0 d1 d2 d3 .... + __m128i u0 = _mm_unpacklo_epi8(a.val, c.val); // a0 c0 a1 c1 ... + __m128i u1 = _mm_unpackhi_epi8(a.val, c.val); // a8 c8 a9 c9 ... + __m128i u2 = _mm_unpacklo_epi8(b.val, d.val); // b0 d0 b1 d1 ... + __m128i u3 = _mm_unpackhi_epi8(b.val, d.val); // b8 d8 b9 d9 ... + + __m128i v0 = _mm_unpacklo_epi8(u0, u2); // a0 b0 c0 d0 ... + __m128i v1 = _mm_unpackhi_epi8(u0, u2); // a4 b4 c4 d4 ... + __m128i v2 = _mm_unpacklo_epi8(u1, u3); // a8 b8 c8 d8 ... + __m128i v3 = _mm_unpackhi_epi8(u1, u3); // a12 b12 c12 d12 ... + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 16), v1); + _mm_stream_si128((__m128i*)(ptr + 32), v2); + _mm_stream_si128((__m128i*)(ptr + 48), v3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 16), v1); + _mm_store_si128((__m128i*)(ptr + 32), v2); + _mm_store_si128((__m128i*)(ptr + 48), v3); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 16), v1); + _mm_storeu_si128((__m128i*)(ptr + 32), v2); + _mm_storeu_si128((__m128i*)(ptr + 48), v3); + } +} + +inline void v_store_interleave( ushort* ptr, const v_uint16x8& a, const v_uint16x8& b, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128i v0 = _mm_unpacklo_epi16(a.val, b.val); + __m128i v1 = _mm_unpackhi_epi16(a.val, b.val); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 8), v1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 8), v1); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 8), v1); + } +} + +inline void v_store_interleave( ushort* ptr, const v_uint16x8& a, + const v_uint16x8& b, const v_uint16x8& c, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ +#if CV_SSE4_1 + const __m128i sh_a = _mm_setr_epi8(0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11); + const __m128i sh_b = _mm_setr_epi8(10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5); + const __m128i sh_c = _mm_setr_epi8(4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15); + __m128i a0 = _mm_shuffle_epi8(a.val, sh_a); + __m128i b0 = _mm_shuffle_epi8(b.val, sh_b); + __m128i c0 = _mm_shuffle_epi8(c.val, sh_c); + + __m128i v0 = _mm_blend_epi16(_mm_blend_epi16(a0, b0, 0x92), c0, 0x24); + __m128i v1 = _mm_blend_epi16(_mm_blend_epi16(c0, a0, 0x92), b0, 0x24); + __m128i v2 = _mm_blend_epi16(_mm_blend_epi16(b0, c0, 0x92), a0, 0x24); +#else + __m128i z = _mm_setzero_si128(); + __m128i ab0 = _mm_unpacklo_epi16(a.val, b.val); + __m128i ab1 = _mm_unpackhi_epi16(a.val, b.val); + __m128i c0 = _mm_unpacklo_epi16(c.val, z); + __m128i c1 = _mm_unpackhi_epi16(c.val, z); + + __m128i p10 = _mm_unpacklo_epi32(ab0, c0); + __m128i p11 = _mm_unpackhi_epi32(ab0, c0); + __m128i p12 = _mm_unpacklo_epi32(ab1, c1); + __m128i p13 = _mm_unpackhi_epi32(ab1, c1); + + __m128i p20 = _mm_unpacklo_epi64(p10, p11); + __m128i p21 = _mm_unpackhi_epi64(p10, p11); + __m128i p22 = _mm_unpacklo_epi64(p12, p13); + __m128i p23 = _mm_unpackhi_epi64(p12, p13); + + p20 = _mm_slli_si128(p20, 2); + p22 = _mm_slli_si128(p22, 2); + + __m128i p30 = _mm_unpacklo_epi64(p20, p21); + __m128i p31 = _mm_unpackhi_epi64(p20, p21); + __m128i p32 = _mm_unpacklo_epi64(p22, p23); + __m128i p33 = _mm_unpackhi_epi64(p22, p23); + + __m128i v0 = _mm_or_si128(_mm_srli_si128(p30, 2), _mm_slli_si128(p31, 10)); + __m128i v1 = _mm_or_si128(_mm_srli_si128(p31, 6), _mm_slli_si128(p32, 6)); + __m128i v2 = _mm_or_si128(_mm_srli_si128(p32, 10), _mm_slli_si128(p33, 2)); +#endif + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 8), v1); + _mm_stream_si128((__m128i*)(ptr + 16), v2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 8), v1); + _mm_store_si128((__m128i*)(ptr + 16), v2); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 8), v1); + _mm_storeu_si128((__m128i*)(ptr + 16), v2); + } +} + +inline void v_store_interleave( ushort* ptr, const v_uint16x8& a, const v_uint16x8& b, + const v_uint16x8& c, const v_uint16x8& d, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + // a0 a1 a2 a3 .... + // b0 b1 b2 b3 .... + // c0 c1 c2 c3 .... + // d0 d1 d2 d3 .... + __m128i u0 = _mm_unpacklo_epi16(a.val, c.val); // a0 c0 a1 c1 ... + __m128i u1 = _mm_unpackhi_epi16(a.val, c.val); // a4 c4 a5 c5 ... + __m128i u2 = _mm_unpacklo_epi16(b.val, d.val); // b0 d0 b1 d1 ... + __m128i u3 = _mm_unpackhi_epi16(b.val, d.val); // b4 d4 b5 d5 ... + + __m128i v0 = _mm_unpacklo_epi16(u0, u2); // a0 b0 c0 d0 ... + __m128i v1 = _mm_unpackhi_epi16(u0, u2); // a2 b2 c2 d2 ... + __m128i v2 = _mm_unpacklo_epi16(u1, u3); // a4 b4 c4 d4 ... + __m128i v3 = _mm_unpackhi_epi16(u1, u3); // a6 b6 c6 d6 ... + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 8), v1); + _mm_stream_si128((__m128i*)(ptr + 16), v2); + _mm_stream_si128((__m128i*)(ptr + 24), v3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 8), v1); + _mm_store_si128((__m128i*)(ptr + 16), v2); + _mm_store_si128((__m128i*)(ptr + 24), v3); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 8), v1); + _mm_storeu_si128((__m128i*)(ptr + 16), v2); + _mm_storeu_si128((__m128i*)(ptr + 24), v3); + } +} + +inline void v_store_interleave( unsigned* ptr, const v_uint32x4& a, const v_uint32x4& b, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128i v0 = _mm_unpacklo_epi32(a.val, b.val); + __m128i v1 = _mm_unpackhi_epi32(a.val, b.val); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 4), v1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 4), v1); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 4), v1); + } +} + +inline void v_store_interleave( unsigned* ptr, const v_uint32x4& a, const v_uint32x4& b, + const v_uint32x4& c, hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + v_uint32x4 z = v_setzero_u32(), u0, u1, u2, u3; + v_transpose4x4(a, b, c, z, u0, u1, u2, u3); + + __m128i v0 = _mm_or_si128(u0.val, _mm_slli_si128(u1.val, 12)); + __m128i v1 = _mm_or_si128(_mm_srli_si128(u1.val, 4), _mm_slli_si128(u2.val, 8)); + __m128i v2 = _mm_or_si128(_mm_srli_si128(u2.val, 8), _mm_slli_si128(u3.val, 4)); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 4), v1); + _mm_stream_si128((__m128i*)(ptr + 8), v2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 4), v1); + _mm_store_si128((__m128i*)(ptr + 8), v2); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 4), v1); + _mm_storeu_si128((__m128i*)(ptr + 8), v2); + } +} + +inline void v_store_interleave(unsigned* ptr, const v_uint32x4& a, const v_uint32x4& b, + const v_uint32x4& c, const v_uint32x4& d, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + v_uint32x4 v0, v1, v2, v3; + v_transpose4x4(a, b, c, d, v0, v1, v2, v3); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0.val); + _mm_stream_si128((__m128i*)(ptr + 4), v1.val); + _mm_stream_si128((__m128i*)(ptr + 8), v2.val); + _mm_stream_si128((__m128i*)(ptr + 12), v3.val); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0.val); + _mm_store_si128((__m128i*)(ptr + 4), v1.val); + _mm_store_si128((__m128i*)(ptr + 8), v2.val); + _mm_store_si128((__m128i*)(ptr + 12), v3.val); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0.val); + _mm_storeu_si128((__m128i*)(ptr + 4), v1.val); + _mm_storeu_si128((__m128i*)(ptr + 8), v2.val); + _mm_storeu_si128((__m128i*)(ptr + 12), v3.val); + } +} + +// 2-channel, float only +inline void v_store_interleave(float* ptr, const v_float32x4& a, const v_float32x4& b, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128 v0 = _mm_unpacklo_ps(a.val, b.val); // a0 b0 a1 b1 + __m128 v1 = _mm_unpackhi_ps(a.val, b.val); // a2 b2 a3 b3 + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_ps(ptr, v0); + _mm_stream_ps(ptr + 4, v1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_ps(ptr, v0); + _mm_store_ps(ptr + 4, v1); + } + else + { + _mm_storeu_ps(ptr, v0); + _mm_storeu_ps(ptr + 4, v1); + } +} + +inline void v_store_interleave(float* ptr, const v_float32x4& a, const v_float32x4& b, + const v_float32x4& c, hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128 u0 = _mm_shuffle_ps(a.val, b.val, _MM_SHUFFLE(0, 0, 0, 0)); + __m128 u1 = _mm_shuffle_ps(c.val, a.val, _MM_SHUFFLE(1, 1, 0, 0)); + __m128 v0 = _mm_shuffle_ps(u0, u1, _MM_SHUFFLE(2, 0, 2, 0)); + __m128 u2 = _mm_shuffle_ps(b.val, c.val, _MM_SHUFFLE(1, 1, 1, 1)); + __m128 u3 = _mm_shuffle_ps(a.val, b.val, _MM_SHUFFLE(2, 2, 2, 2)); + __m128 v1 = _mm_shuffle_ps(u2, u3, _MM_SHUFFLE(2, 0, 2, 0)); + __m128 u4 = _mm_shuffle_ps(c.val, a.val, _MM_SHUFFLE(3, 3, 2, 2)); + __m128 u5 = _mm_shuffle_ps(b.val, c.val, _MM_SHUFFLE(3, 3, 3, 3)); + __m128 v2 = _mm_shuffle_ps(u4, u5, _MM_SHUFFLE(2, 0, 2, 0)); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_ps(ptr, v0); + _mm_stream_ps(ptr + 4, v1); + _mm_stream_ps(ptr + 8, v2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_ps(ptr, v0); + _mm_store_ps(ptr + 4, v1); + _mm_store_ps(ptr + 8, v2); + } + else + { + _mm_storeu_ps(ptr, v0); + _mm_storeu_ps(ptr + 4, v1); + _mm_storeu_ps(ptr + 8, v2); + } +} + +inline void v_store_interleave(float* ptr, const v_float32x4& a, const v_float32x4& b, + const v_float32x4& c, const v_float32x4& d, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128 u0 = _mm_unpacklo_ps(a.val, c.val); + __m128 u1 = _mm_unpacklo_ps(b.val, d.val); + __m128 u2 = _mm_unpackhi_ps(a.val, c.val); + __m128 u3 = _mm_unpackhi_ps(b.val, d.val); + __m128 v0 = _mm_unpacklo_ps(u0, u1); + __m128 v2 = _mm_unpacklo_ps(u2, u3); + __m128 v1 = _mm_unpackhi_ps(u0, u1); + __m128 v3 = _mm_unpackhi_ps(u2, u3); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_ps(ptr, v0); + _mm_stream_ps(ptr + 4, v1); + _mm_stream_ps(ptr + 8, v2); + _mm_stream_ps(ptr + 12, v3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_ps(ptr, v0); + _mm_store_ps(ptr + 4, v1); + _mm_store_ps(ptr + 8, v2); + _mm_store_ps(ptr + 12, v3); + } + else + { + _mm_storeu_ps(ptr, v0); + _mm_storeu_ps(ptr + 4, v1); + _mm_storeu_ps(ptr + 8, v2); + _mm_storeu_ps(ptr + 12, v3); + } +} + +inline void v_store_interleave(uint64 *ptr, const v_uint64x2& a, const v_uint64x2& b, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128i v0 = _mm_unpacklo_epi64(a.val, b.val); + __m128i v1 = _mm_unpackhi_epi64(a.val, b.val); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 2), v1); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 2), v1); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 2), v1); + } +} + +inline void v_store_interleave(uint64 *ptr, const v_uint64x2& a, const v_uint64x2& b, + const v_uint64x2& c, hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128i v0 = _mm_unpacklo_epi64(a.val, b.val); + __m128i v1 = _mm_unpacklo_epi64(c.val, _mm_unpackhi_epi64(a.val, a.val)); + __m128i v2 = _mm_unpackhi_epi64(b.val, c.val); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 2), v1); + _mm_stream_si128((__m128i*)(ptr + 4), v2); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 2), v1); + _mm_store_si128((__m128i*)(ptr + 4), v2); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 2), v1); + _mm_storeu_si128((__m128i*)(ptr + 4), v2); + } +} + +inline void v_store_interleave(uint64 *ptr, const v_uint64x2& a, const v_uint64x2& b, + const v_uint64x2& c, const v_uint64x2& d, + hal::StoreMode mode = hal::STORE_UNALIGNED) +{ + __m128i v0 = _mm_unpacklo_epi64(a.val, b.val); + __m128i v1 = _mm_unpacklo_epi64(c.val, d.val); + __m128i v2 = _mm_unpackhi_epi64(a.val, b.val); + __m128i v3 = _mm_unpackhi_epi64(c.val, d.val); + + if( mode == hal::STORE_ALIGNED_NOCACHE ) + { + _mm_stream_si128((__m128i*)(ptr), v0); + _mm_stream_si128((__m128i*)(ptr + 2), v1); + _mm_stream_si128((__m128i*)(ptr + 4), v2); + _mm_stream_si128((__m128i*)(ptr + 6), v3); + } + else if( mode == hal::STORE_ALIGNED ) + { + _mm_store_si128((__m128i*)(ptr), v0); + _mm_store_si128((__m128i*)(ptr + 2), v1); + _mm_store_si128((__m128i*)(ptr + 4), v2); + _mm_store_si128((__m128i*)(ptr + 6), v3); + } + else + { + _mm_storeu_si128((__m128i*)(ptr), v0); + _mm_storeu_si128((__m128i*)(ptr + 2), v1); + _mm_storeu_si128((__m128i*)(ptr + 4), v2); + _mm_storeu_si128((__m128i*)(ptr + 6), v3); + } +} + +#define OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(_Tpvec0, _Tp0, suffix0, _Tpvec1, _Tp1, suffix1) \ +inline void v_load_deinterleave( const _Tp0* ptr, _Tpvec0& a0, _Tpvec0& b0 ) \ +{ \ + _Tpvec1 a1, b1; \ + v_load_deinterleave((const _Tp1*)ptr, a1, b1); \ + a0 = v_reinterpret_as_##suffix0(a1); \ + b0 = v_reinterpret_as_##suffix0(b1); \ +} \ +inline void v_load_deinterleave( const _Tp0* ptr, _Tpvec0& a0, _Tpvec0& b0, _Tpvec0& c0 ) \ +{ \ + _Tpvec1 a1, b1, c1; \ + v_load_deinterleave((const _Tp1*)ptr, a1, b1, c1); \ + a0 = v_reinterpret_as_##suffix0(a1); \ + b0 = v_reinterpret_as_##suffix0(b1); \ + c0 = v_reinterpret_as_##suffix0(c1); \ +} \ +inline void v_load_deinterleave( const _Tp0* ptr, _Tpvec0& a0, _Tpvec0& b0, _Tpvec0& c0, _Tpvec0& d0 ) \ +{ \ + _Tpvec1 a1, b1, c1, d1; \ + v_load_deinterleave((const _Tp1*)ptr, a1, b1, c1, d1); \ + a0 = v_reinterpret_as_##suffix0(a1); \ + b0 = v_reinterpret_as_##suffix0(b1); \ + c0 = v_reinterpret_as_##suffix0(c1); \ + d0 = v_reinterpret_as_##suffix0(d1); \ +} \ +inline void v_store_interleave( _Tp0* ptr, const _Tpvec0& a0, const _Tpvec0& b0, \ + hal::StoreMode mode = hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec1 a1 = v_reinterpret_as_##suffix1(a0); \ + _Tpvec1 b1 = v_reinterpret_as_##suffix1(b0); \ + v_store_interleave((_Tp1*)ptr, a1, b1, mode); \ +} \ +inline void v_store_interleave( _Tp0* ptr, const _Tpvec0& a0, const _Tpvec0& b0, \ + const _Tpvec0& c0, hal::StoreMode mode = hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec1 a1 = v_reinterpret_as_##suffix1(a0); \ + _Tpvec1 b1 = v_reinterpret_as_##suffix1(b0); \ + _Tpvec1 c1 = v_reinterpret_as_##suffix1(c0); \ + v_store_interleave((_Tp1*)ptr, a1, b1, c1, mode); \ +} \ +inline void v_store_interleave( _Tp0* ptr, const _Tpvec0& a0, const _Tpvec0& b0, \ + const _Tpvec0& c0, const _Tpvec0& d0, \ + hal::StoreMode mode = hal::STORE_UNALIGNED ) \ +{ \ + _Tpvec1 a1 = v_reinterpret_as_##suffix1(a0); \ + _Tpvec1 b1 = v_reinterpret_as_##suffix1(b0); \ + _Tpvec1 c1 = v_reinterpret_as_##suffix1(c0); \ + _Tpvec1 d1 = v_reinterpret_as_##suffix1(d0); \ + v_store_interleave((_Tp1*)ptr, a1, b1, c1, d1, mode); \ +} + +OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int8x16, schar, s8, v_uint8x16, uchar, u8) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int16x8, short, s16, v_uint16x8, ushort, u16) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int32x4, int, s32, v_uint32x4, unsigned, u32) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int64x2, int64, s64, v_uint64x2, uint64, u64) +OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_float64x2, double, f64, v_uint64x2, uint64, u64) + +inline v_float32x4 v_cvt_f32(const v_int32x4& a) +{ + return v_float32x4(_mm_cvtepi32_ps(a.val)); +} + +inline v_float32x4 v_cvt_f32(const v_float64x2& a) +{ + return v_float32x4(_mm_cvtpd_ps(a.val)); +} + +inline v_float32x4 v_cvt_f32(const v_float64x2& a, const v_float64x2& b) +{ + return v_float32x4(_mm_movelh_ps(_mm_cvtpd_ps(a.val), _mm_cvtpd_ps(b.val))); +} + +inline v_float64x2 v_cvt_f64(const v_int32x4& a) +{ + return v_float64x2(_mm_cvtepi32_pd(a.val)); +} + +inline v_float64x2 v_cvt_f64_high(const v_int32x4& a) +{ + return v_float64x2(_mm_cvtepi32_pd(_mm_srli_si128(a.val,8))); +} + +inline v_float64x2 v_cvt_f64(const v_float32x4& a) +{ + return v_float64x2(_mm_cvtps_pd(a.val)); +} + +inline v_float64x2 v_cvt_f64_high(const v_float32x4& a) +{ + return v_float64x2(_mm_cvtps_pd(_mm_movehl_ps(a.val, a.val))); +} + +#if CV_FP16 +inline v_float32x4 v128_load_fp16_f32(const short* ptr) +{ + return v_float32x4(_mm_cvtph_ps(_mm_loadu_si128((const __m128i*)ptr))); +} + +inline void v_store_fp16(short* ptr, const v_float32x4& a) +{ + __m128i fp16_value = _mm_cvtps_ph(a.val, 0); + _mm_storel_epi64((__m128i*)ptr, fp16_value); +} +#endif + +////////////// Lookup table access //////////////////// + +inline v_int8x16 v_lut(const schar* tab, const int* idx) +{ +#if defined(_MSC_VER) + return v_int8x16(_mm_setr_epi8(tab[idx[0]], tab[idx[1]], tab[idx[ 2]], tab[idx[ 3]], tab[idx[ 4]], tab[idx[ 5]], tab[idx[ 6]], tab[idx[ 7]], + tab[idx[8]], tab[idx[9]], tab[idx[10]], tab[idx[11]], tab[idx[12]], tab[idx[13]], tab[idx[14]], tab[idx[15]])); +#else + return v_int8x16(_mm_setr_epi64( + _mm_setr_pi8(tab[idx[0]], tab[idx[1]], tab[idx[ 2]], tab[idx[ 3]], tab[idx[ 4]], tab[idx[ 5]], tab[idx[ 6]], tab[idx[ 7]]), + _mm_setr_pi8(tab[idx[8]], tab[idx[9]], tab[idx[10]], tab[idx[11]], tab[idx[12]], tab[idx[13]], tab[idx[14]], tab[idx[15]]) + )); +#endif +} +inline v_int8x16 v_lut_pairs(const schar* tab, const int* idx) +{ +#if defined(_MSC_VER) + return v_int8x16(_mm_setr_epi16(*(const short*)(tab + idx[0]), *(const short*)(tab + idx[1]), *(const short*)(tab + idx[2]), *(const short*)(tab + idx[3]), + *(const short*)(tab + idx[4]), *(const short*)(tab + idx[5]), *(const short*)(tab + idx[6]), *(const short*)(tab + idx[7]))); +#else + return v_int8x16(_mm_setr_epi64( + _mm_setr_pi16(*(const short*)(tab + idx[0]), *(const short*)(tab + idx[1]), *(const short*)(tab + idx[2]), *(const short*)(tab + idx[3])), + _mm_setr_pi16(*(const short*)(tab + idx[4]), *(const short*)(tab + idx[5]), *(const short*)(tab + idx[6]), *(const short*)(tab + idx[7])) + )); +#endif +} +inline v_int8x16 v_lut_quads(const schar* tab, const int* idx) +{ +#if defined(_MSC_VER) + return v_int8x16(_mm_setr_epi32(*(const int*)(tab + idx[0]), *(const int*)(tab + idx[1]), + *(const int*)(tab + idx[2]), *(const int*)(tab + idx[3]))); +#else + return v_int8x16(_mm_setr_epi64( + _mm_setr_pi32(*(const int*)(tab + idx[0]), *(const int*)(tab + idx[1])), + _mm_setr_pi32(*(const int*)(tab + idx[2]), *(const int*)(tab + idx[3])) + )); +#endif +} +inline v_uint8x16 v_lut(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut((const schar *)tab, idx)); } +inline v_uint8x16 v_lut_pairs(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut_pairs((const schar *)tab, idx)); } +inline v_uint8x16 v_lut_quads(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut_quads((const schar *)tab, idx)); } + +inline v_int16x8 v_lut(const short* tab, const int* idx) +{ +#if defined(_MSC_VER) + return v_int16x8(_mm_setr_epi16(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]], + tab[idx[4]], tab[idx[5]], tab[idx[6]], tab[idx[7]])); +#else + return v_int16x8(_mm_setr_epi64( + _mm_setr_pi16(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]), + _mm_setr_pi16(tab[idx[4]], tab[idx[5]], tab[idx[6]], tab[idx[7]]) + )); +#endif +} +inline v_int16x8 v_lut_pairs(const short* tab, const int* idx) +{ +#if defined(_MSC_VER) + return v_int16x8(_mm_setr_epi32(*(const int*)(tab + idx[0]), *(const int*)(tab + idx[1]), + *(const int*)(tab + idx[2]), *(const int*)(tab + idx[3]))); +#else + return v_int16x8(_mm_setr_epi64( + _mm_setr_pi32(*(const int*)(tab + idx[0]), *(const int*)(tab + idx[1])), + _mm_setr_pi32(*(const int*)(tab + idx[2]), *(const int*)(tab + idx[3])) + )); +#endif +} +inline v_int16x8 v_lut_quads(const short* tab, const int* idx) +{ + return v_int16x8(_mm_set_epi64x(*(const int64_t*)(tab + idx[1]), *(const int64_t*)(tab + idx[0]))); +} +inline v_uint16x8 v_lut(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut((const short *)tab, idx)); } +inline v_uint16x8 v_lut_pairs(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut_pairs((const short *)tab, idx)); } +inline v_uint16x8 v_lut_quads(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut_quads((const short *)tab, idx)); } + +inline v_int32x4 v_lut(const int* tab, const int* idx) +{ +#if defined(_MSC_VER) + return v_int32x4(_mm_setr_epi32(tab[idx[0]], tab[idx[1]], + tab[idx[2]], tab[idx[3]])); +#else + return v_int32x4(_mm_setr_epi64( + _mm_setr_pi32(tab[idx[0]], tab[idx[1]]), + _mm_setr_pi32(tab[idx[2]], tab[idx[3]]) + )); +#endif +} +inline v_int32x4 v_lut_pairs(const int* tab, const int* idx) +{ + return v_int32x4(_mm_set_epi64x(*(const int64_t*)(tab + idx[1]), *(const int64_t*)(tab + idx[0]))); +} +inline v_int32x4 v_lut_quads(const int* tab, const int* idx) +{ + return v_int32x4(_mm_loadu_si128((const __m128i*)(tab + idx[0]))); +} +inline v_uint32x4 v_lut(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut((const int *)tab, idx)); } +inline v_uint32x4 v_lut_pairs(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut_pairs((const int *)tab, idx)); } +inline v_uint32x4 v_lut_quads(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut_quads((const int *)tab, idx)); } + +inline v_int64x2 v_lut(const int64_t* tab, const int* idx) +{ + return v_int64x2(_mm_set_epi64x(tab[idx[1]], tab[idx[0]])); +} +inline v_int64x2 v_lut_pairs(const int64_t* tab, const int* idx) +{ + return v_int64x2(_mm_loadu_si128((const __m128i*)(tab + idx[0]))); +} +inline v_uint64x2 v_lut(const uint64_t* tab, const int* idx) { return v_reinterpret_as_u64(v_lut((const int64_t *)tab, idx)); } +inline v_uint64x2 v_lut_pairs(const uint64_t* tab, const int* idx) { return v_reinterpret_as_u64(v_lut_pairs((const int64_t *)tab, idx)); } + +inline v_float32x4 v_lut(const float* tab, const int* idx) +{ + return v_float32x4(_mm_setr_ps(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]])); +} +inline v_float32x4 v_lut_pairs(const float* tab, const int* idx) { return v_reinterpret_as_f32(v_lut_pairs((const int *)tab, idx)); } +inline v_float32x4 v_lut_quads(const float* tab, const int* idx) { return v_reinterpret_as_f32(v_lut_quads((const int *)tab, idx)); } + +inline v_float64x2 v_lut(const double* tab, const int* idx) +{ + return v_float64x2(_mm_setr_pd(tab[idx[0]], tab[idx[1]])); +} +inline v_float64x2 v_lut_pairs(const double* tab, const int* idx) { return v_float64x2(_mm_castsi128_pd(_mm_loadu_si128((const __m128i*)(tab + idx[0])))); } + +inline v_int32x4 v_lut(const int* tab, const v_int32x4& idxvec) +{ + int CV_DECL_ALIGNED(32) idx[4]; + v_store_aligned(idx, idxvec); + return v_int32x4(_mm_setr_epi32(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]])); +} + +inline v_uint32x4 v_lut(const unsigned* tab, const v_int32x4& idxvec) +{ + return v_reinterpret_as_u32(v_lut((const int *)tab, idxvec)); +} + +inline v_float32x4 v_lut(const float* tab, const v_int32x4& idxvec) +{ + int CV_DECL_ALIGNED(32) idx[4]; + v_store_aligned(idx, idxvec); + return v_float32x4(_mm_setr_ps(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]])); +} + +inline v_float64x2 v_lut(const double* tab, const v_int32x4& idxvec) +{ + int idx[2]; + v_store_low(idx, idxvec); + return v_float64x2(_mm_setr_pd(tab[idx[0]], tab[idx[1]])); +} + +// loads pairs from the table and deinterleaves them, e.g. returns: +// x = (tab[idxvec[0], tab[idxvec[1]], tab[idxvec[2]], tab[idxvec[3]]), +// y = (tab[idxvec[0]+1], tab[idxvec[1]+1], tab[idxvec[2]+1], tab[idxvec[3]+1]) +// note that the indices are float's indices, not the float-pair indices. +// in theory, this function can be used to implement bilinear interpolation, +// when idxvec are the offsets within the image. +inline void v_lut_deinterleave(const float* tab, const v_int32x4& idxvec, v_float32x4& x, v_float32x4& y) +{ + int CV_DECL_ALIGNED(32) idx[4]; + v_store_aligned(idx, idxvec); + __m128 z = _mm_setzero_ps(); + __m128 xy01 = _mm_loadl_pi(z, (__m64*)(tab + idx[0])); + __m128 xy23 = _mm_loadl_pi(z, (__m64*)(tab + idx[2])); + xy01 = _mm_loadh_pi(xy01, (__m64*)(tab + idx[1])); + xy23 = _mm_loadh_pi(xy23, (__m64*)(tab + idx[3])); + __m128 xxyy02 = _mm_unpacklo_ps(xy01, xy23); + __m128 xxyy13 = _mm_unpackhi_ps(xy01, xy23); + x = v_float32x4(_mm_unpacklo_ps(xxyy02, xxyy13)); + y = v_float32x4(_mm_unpackhi_ps(xxyy02, xxyy13)); +} + +inline void v_lut_deinterleave(const double* tab, const v_int32x4& idxvec, v_float64x2& x, v_float64x2& y) +{ + int idx[2]; + v_store_low(idx, idxvec); + __m128d xy0 = _mm_loadu_pd(tab + idx[0]); + __m128d xy1 = _mm_loadu_pd(tab + idx[1]); + x = v_float64x2(_mm_unpacklo_pd(xy0, xy1)); + y = v_float64x2(_mm_unpackhi_pd(xy0, xy1)); +} + +inline v_int8x16 v_interleave_pairs(const v_int8x16& vec) +{ +#if CV_SSSE3 + return v_int8x16(_mm_shuffle_epi8(vec.val, _mm_set_epi64x(0x0f0d0e0c0b090a08, 0x0705060403010200))); +#else + __m128i a = _mm_shufflelo_epi16(vec.val, _MM_SHUFFLE(3, 1, 2, 0)); + a = _mm_shufflehi_epi16(a, _MM_SHUFFLE(3, 1, 2, 0)); + a = _mm_shuffle_epi32(a, _MM_SHUFFLE(3, 1, 2, 0)); + return v_int8x16(_mm_unpacklo_epi8(a, _mm_unpackhi_epi64(a, a))); +#endif +} +inline v_uint8x16 v_interleave_pairs(const v_uint8x16& vec) { return v_reinterpret_as_u8(v_interleave_pairs(v_reinterpret_as_s8(vec))); } +inline v_int8x16 v_interleave_quads(const v_int8x16& vec) +{ +#if CV_SSSE3 + return v_int8x16(_mm_shuffle_epi8(vec.val, _mm_set_epi64x(0x0f0b0e0a0d090c08, 0x0703060205010400))); +#else + __m128i a = _mm_shuffle_epi32(vec.val, _MM_SHUFFLE(3, 1, 2, 0)); + return v_int8x16(_mm_unpacklo_epi8(a, _mm_unpackhi_epi64(a, a))); +#endif +} +inline v_uint8x16 v_interleave_quads(const v_uint8x16& vec) { return v_reinterpret_as_u8(v_interleave_quads(v_reinterpret_as_s8(vec))); } + +inline v_int16x8 v_interleave_pairs(const v_int16x8& vec) +{ +#if CV_SSSE3 + return v_int16x8(_mm_shuffle_epi8(vec.val, _mm_set_epi64x(0x0f0e0b0a0d0c0908, 0x0706030205040100))); +#else + __m128i a = _mm_shufflelo_epi16(vec.val, _MM_SHUFFLE(3, 1, 2, 0)); + return v_int16x8(_mm_shufflehi_epi16(a, _MM_SHUFFLE(3, 1, 2, 0))); +#endif +} +inline v_uint16x8 v_interleave_pairs(const v_uint16x8& vec) { return v_reinterpret_as_u16(v_interleave_pairs(v_reinterpret_as_s16(vec))); } +inline v_int16x8 v_interleave_quads(const v_int16x8& vec) +{ +#if CV_SSSE3 + return v_int16x8(_mm_shuffle_epi8(vec.val, _mm_set_epi64x(0x0f0e07060d0c0504, 0x0b0a030209080100))); +#else + return v_int16x8(_mm_unpacklo_epi16(vec.val, _mm_unpackhi_epi64(vec.val, vec.val))); +#endif +} +inline v_uint16x8 v_interleave_quads(const v_uint16x8& vec) { return v_reinterpret_as_u16(v_interleave_quads(v_reinterpret_as_s16(vec))); } + +inline v_int32x4 v_interleave_pairs(const v_int32x4& vec) +{ + return v_int32x4(_mm_shuffle_epi32(vec.val, _MM_SHUFFLE(3, 1, 2, 0))); +} +inline v_uint32x4 v_interleave_pairs(const v_uint32x4& vec) { return v_reinterpret_as_u32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } +inline v_float32x4 v_interleave_pairs(const v_float32x4& vec) { return v_reinterpret_as_f32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } + +inline v_int8x16 v_pack_triplets(const v_int8x16& vec) +{ +#if CV_SSSE3 + return v_int8x16(_mm_shuffle_epi8(vec.val, _mm_set_epi64x(0xffffff0f0e0d0c0a, 0x0908060504020100))); +#else + __m128i mask = _mm_set1_epi64x(0x00000000FFFFFFFF); + __m128i a = _mm_srli_si128(_mm_or_si128(_mm_andnot_si128(mask, vec.val), _mm_and_si128(mask, _mm_sll_epi32(vec.val, _mm_set_epi64x(0, 8)))), 1); + return v_int8x16(_mm_srli_si128(_mm_shufflelo_epi16(a, _MM_SHUFFLE(2, 1, 0, 3)), 2)); +#endif +} +inline v_uint8x16 v_pack_triplets(const v_uint8x16& vec) { return v_reinterpret_as_u8(v_pack_triplets(v_reinterpret_as_s8(vec))); } + +inline v_int16x8 v_pack_triplets(const v_int16x8& vec) +{ +#if CV_SSSE3 + return v_int16x8(_mm_shuffle_epi8(vec.val, _mm_set_epi64x(0xffff0f0e0d0c0b0a, 0x0908050403020100))); +#else + return v_int16x8(_mm_srli_si128(_mm_shufflelo_epi16(vec.val, _MM_SHUFFLE(2, 1, 0, 3)), 2)); +#endif +} +inline v_uint16x8 v_pack_triplets(const v_uint16x8& vec) { return v_reinterpret_as_u16(v_pack_triplets(v_reinterpret_as_s16(vec))); } + +inline v_int32x4 v_pack_triplets(const v_int32x4& vec) { return vec; } +inline v_uint32x4 v_pack_triplets(const v_uint32x4& vec) { return vec; } +inline v_float32x4 v_pack_triplets(const v_float32x4& vec) { return vec; } + +////////////// FP16 support /////////////////////////// + +inline v_float32x4 v_load_expand(const float16_t* ptr) +{ + const __m128i z = _mm_setzero_si128(), delta = _mm_set1_epi32(0x38000000); + const __m128i signmask = _mm_set1_epi32(0x80000000), maxexp = _mm_set1_epi32(0x7c000000); + const __m128 deltaf = _mm_castsi128_ps(_mm_set1_epi32(0x38800000)); + __m128i bits = _mm_unpacklo_epi16(z, _mm_loadl_epi64((const __m128i*)ptr)); // h << 16 + __m128i e = _mm_and_si128(bits, maxexp), sign = _mm_and_si128(bits, signmask); + __m128i t = _mm_add_epi32(_mm_srli_epi32(_mm_xor_si128(bits, sign), 3), delta); // ((h & 0x7fff) << 13) + delta + __m128i zt = _mm_castps_si128(_mm_sub_ps(_mm_castsi128_ps(_mm_add_epi32(t, _mm_set1_epi32(1 << 23))), deltaf)); + + t = _mm_add_epi32(t, _mm_and_si128(delta, _mm_cmpeq_epi32(maxexp, e))); + __m128i zmask = _mm_cmpeq_epi32(e, z); + __m128i ft = v_select_si128(zmask, zt, t); + return v_float32x4(_mm_castsi128_ps(_mm_or_si128(ft, sign))); +} + +inline void v_pack_store(float16_t* ptr, const v_float32x4& v) +{ + const __m128i signmask = _mm_set1_epi32(0x80000000); + const __m128i rval = _mm_set1_epi32(0x3f000000); + + __m128i t = _mm_castps_si128(v.val); + __m128i sign = _mm_srai_epi32(_mm_and_si128(t, signmask), 16); + t = _mm_andnot_si128(signmask, t); + + __m128i finitemask = _mm_cmpgt_epi32(_mm_set1_epi32(0x47800000), t); + __m128i isnan = _mm_cmpgt_epi32(t, _mm_set1_epi32(0x7f800000)); + __m128i naninf = v_select_si128(isnan, _mm_set1_epi32(0x7e00), _mm_set1_epi32(0x7c00)); + __m128i tinymask = _mm_cmpgt_epi32(_mm_set1_epi32(0x38800000), t); + __m128i tt = _mm_castps_si128(_mm_add_ps(_mm_castsi128_ps(t), _mm_castsi128_ps(rval))); + tt = _mm_sub_epi32(tt, rval); + __m128i odd = _mm_and_si128(_mm_srli_epi32(t, 13), _mm_set1_epi32(1)); + __m128i nt = _mm_add_epi32(t, _mm_set1_epi32(0xc8000fff)); + nt = _mm_srli_epi32(_mm_add_epi32(nt, odd), 13); + t = v_select_si128(tinymask, tt, nt); + t = v_select_si128(finitemask, t, naninf); + t = _mm_or_si128(t, sign); + t = _mm_packs_epi32(t, t); + _mm_storel_epi64((__m128i*)ptr, t); +} + +inline void v_cleanup() {} + +//! @name Check SIMD support +//! @{ +//! @brief Check CPU capability of SIMD operation +static inline bool hasSIMD128() +{ + return (CV_CPU_HAS_SUPPORT_SSE2) ? true : false; +} + +//! @} + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END + +//! @endcond + +} + +#endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_sse_em.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_sse_em.hpp new file mode 100644 index 000000000..be2766847 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_sse_em.hpp @@ -0,0 +1,167 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#ifndef OPENCV_HAL_INTRIN_SSE_EM_HPP +#define OPENCV_HAL_INTRIN_SSE_EM_HPP + +namespace cv +{ + +//! @cond IGNORED + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN + +#define OPENCV_HAL_SSE_WRAP_1(fun, tp) \ + inline tp _v128_##fun(const tp& a) \ + { return _mm_##fun(a); } + +#define OPENCV_HAL_SSE_WRAP_2(fun, tp) \ + inline tp _v128_##fun(const tp& a, const tp& b) \ + { return _mm_##fun(a, b); } + +#define OPENCV_HAL_SSE_WRAP_3(fun, tp) \ + inline tp _v128_##fun(const tp& a, const tp& b, const tp& c) \ + { return _mm_##fun(a, b, c); } + +///////////////////////////// XOP ///////////////////////////// + +// [todo] define CV_XOP +#if 1 // CV_XOP +inline __m128i _v128_comgt_epu32(const __m128i& a, const __m128i& b) +{ + const __m128i delta = _mm_set1_epi32((int)0x80000000); + return _mm_cmpgt_epi32(_mm_xor_si128(a, delta), _mm_xor_si128(b, delta)); +} +// wrapping XOP +#else +OPENCV_HAL_SSE_WRAP_2(_v128_comgt_epu32, __m128i) +#endif // !CV_XOP + +///////////////////////////// SSE4.1 ///////////////////////////// + +#if !CV_SSE4_1 + +/** Swizzle **/ +inline __m128i _v128_blendv_epi8(const __m128i& a, const __m128i& b, const __m128i& mask) +{ return _mm_xor_si128(a, _mm_and_si128(_mm_xor_si128(b, a), mask)); } + +/** Convert **/ +// 8 >> 16 +inline __m128i _v128_cvtepu8_epi16(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpacklo_epi8(a, z); +} +inline __m128i _v128_cvtepi8_epi16(const __m128i& a) +{ return _mm_srai_epi16(_mm_unpacklo_epi8(a, a), 8); } +// 8 >> 32 +inline __m128i _v128_cvtepu8_epi32(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpacklo_epi16(_mm_unpacklo_epi8(a, z), z); +} +inline __m128i _v128_cvtepi8_epi32(const __m128i& a) +{ + __m128i r = _mm_unpacklo_epi8(a, a); + r = _mm_unpacklo_epi8(r, r); + return _mm_srai_epi32(r, 24); +} +// 16 >> 32 +inline __m128i _v128_cvtepu16_epi32(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpacklo_epi16(a, z); +} +inline __m128i _v128_cvtepi16_epi32(const __m128i& a) +{ return _mm_srai_epi32(_mm_unpacklo_epi16(a, a), 16); } +// 32 >> 64 +inline __m128i _v128_cvtepu32_epi64(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpacklo_epi32(a, z); +} +inline __m128i _v128_cvtepi32_epi64(const __m128i& a) +{ return _mm_unpacklo_epi32(a, _mm_srai_epi32(a, 31)); } + +/** Arithmetic **/ +inline __m128i _v128_mullo_epi32(const __m128i& a, const __m128i& b) +{ + __m128i c0 = _mm_mul_epu32(a, b); + __m128i c1 = _mm_mul_epu32(_mm_srli_epi64(a, 32), _mm_srli_epi64(b, 32)); + __m128i d0 = _mm_unpacklo_epi32(c0, c1); + __m128i d1 = _mm_unpackhi_epi32(c0, c1); + return _mm_unpacklo_epi64(d0, d1); +} + +/** Math **/ +inline __m128i _v128_min_epu32(const __m128i& a, const __m128i& b) +{ return _v128_blendv_epi8(a, b, _v128_comgt_epu32(a, b)); } + +// wrapping SSE4.1 +#else +OPENCV_HAL_SSE_WRAP_1(cvtepu8_epi16, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepi8_epi16, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepu8_epi32, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepi8_epi32, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepu16_epi32, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepi16_epi32, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepu32_epi64, __m128i) +OPENCV_HAL_SSE_WRAP_1(cvtepi32_epi64, __m128i) +OPENCV_HAL_SSE_WRAP_2(min_epu32, __m128i) +OPENCV_HAL_SSE_WRAP_2(mullo_epi32, __m128i) +OPENCV_HAL_SSE_WRAP_3(blendv_epi8, __m128i) +#endif // !CV_SSE4_1 + +///////////////////////////// Revolutionary ///////////////////////////// + +/** Convert **/ +// 16 << 8 +inline __m128i _v128_cvtepu8_epi16_high(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpackhi_epi8(a, z); +} +inline __m128i _v128_cvtepi8_epi16_high(const __m128i& a) +{ return _mm_srai_epi16(_mm_unpackhi_epi8(a, a), 8); } +// 32 << 16 +inline __m128i _v128_cvtepu16_epi32_high(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpackhi_epi16(a, z); +} +inline __m128i _v128_cvtepi16_epi32_high(const __m128i& a) +{ return _mm_srai_epi32(_mm_unpackhi_epi16(a, a), 16); } +// 64 << 32 +inline __m128i _v128_cvtepu32_epi64_high(const __m128i& a) +{ + const __m128i z = _mm_setzero_si128(); + return _mm_unpackhi_epi32(a, z); +} +inline __m128i _v128_cvtepi32_epi64_high(const __m128i& a) +{ return _mm_unpackhi_epi32(a, _mm_srai_epi32(a, 31)); } + +/** Miscellaneous **/ +inline __m128i _v128_packs_epu32(const __m128i& a, const __m128i& b) +{ + const __m128i m = _mm_set1_epi32(65535); + __m128i am = _v128_min_epu32(a, m); + __m128i bm = _v128_min_epu32(b, m); +#if CV_SSE4_1 + return _mm_packus_epi32(am, bm); +#else + const __m128i d = _mm_set1_epi32(32768), nd = _mm_set1_epi16(-32768); + am = _mm_sub_epi32(am, d); + bm = _mm_sub_epi32(bm, d); + am = _mm_packs_epi32(am, bm); + return _mm_sub_epi16(am, nd); +#endif +} + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END + +//! @endcond + +} // cv:: + +#endif // OPENCV_HAL_INTRIN_SSE_EM_HPP \ No newline at end of file diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_vsx.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_vsx.hpp new file mode 100644 index 000000000..c5ceb1132 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/hal/intrin_vsx.hpp @@ -0,0 +1,1328 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html + +#ifndef OPENCV_HAL_VSX_HPP +#define OPENCV_HAL_VSX_HPP + +#include +#include "opencv2/core/utility.hpp" + +#define CV_SIMD128 1 +#define CV_SIMD128_64F 1 + +namespace cv +{ + +//! @cond IGNORED + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN + +///////// Types //////////// + +struct v_uint8x16 +{ + typedef uchar lane_type; + enum { nlanes = 16 }; + vec_uchar16 val; + + explicit v_uint8x16(const vec_uchar16& v) : val(v) + {} + v_uint8x16() : val(vec_uchar16_z) + {} + v_uint8x16(vec_bchar16 v) : val(vec_uchar16_c(v)) + {} + v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, + uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) + : val(vec_uchar16_set(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)) + {} + uchar get0() const + { return vec_extract(val, 0); } +}; + +struct v_int8x16 +{ + typedef schar lane_type; + enum { nlanes = 16 }; + vec_char16 val; + + explicit v_int8x16(const vec_char16& v) : val(v) + {} + v_int8x16() : val(vec_char16_z) + {} + v_int8x16(vec_bchar16 v) : val(vec_char16_c(v)) + {} + v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, + schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) + : val(vec_char16_set(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)) + {} + schar get0() const + { return vec_extract(val, 0); } +}; + +struct v_uint16x8 +{ + typedef ushort lane_type; + enum { nlanes = 8 }; + vec_ushort8 val; + + explicit v_uint16x8(const vec_ushort8& v) : val(v) + {} + v_uint16x8() : val(vec_ushort8_z) + {} + v_uint16x8(vec_bshort8 v) : val(vec_ushort8_c(v)) + {} + v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) + : val(vec_ushort8_set(v0, v1, v2, v3, v4, v5, v6, v7)) + {} + ushort get0() const + { return vec_extract(val, 0); } +}; + +struct v_int16x8 +{ + typedef short lane_type; + enum { nlanes = 8 }; + vec_short8 val; + + explicit v_int16x8(const vec_short8& v) : val(v) + {} + v_int16x8() : val(vec_short8_z) + {} + v_int16x8(vec_bshort8 v) : val(vec_short8_c(v)) + {} + v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) + : val(vec_short8_set(v0, v1, v2, v3, v4, v5, v6, v7)) + {} + short get0() const + { return vec_extract(val, 0); } +}; + +struct v_uint32x4 +{ + typedef unsigned lane_type; + enum { nlanes = 4 }; + vec_uint4 val; + + explicit v_uint32x4(const vec_uint4& v) : val(v) + {} + v_uint32x4() : val(vec_uint4_z) + {} + v_uint32x4(vec_bint4 v) : val(vec_uint4_c(v)) + {} + v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) : val(vec_uint4_set(v0, v1, v2, v3)) + {} + uint get0() const + { return vec_extract(val, 0); } +}; + +struct v_int32x4 +{ + typedef int lane_type; + enum { nlanes = 4 }; + vec_int4 val; + + explicit v_int32x4(const vec_int4& v) : val(v) + {} + v_int32x4() : val(vec_int4_z) + {} + v_int32x4(vec_bint4 v) : val(vec_int4_c(v)) + {} + v_int32x4(int v0, int v1, int v2, int v3) : val(vec_int4_set(v0, v1, v2, v3)) + {} + int get0() const + { return vec_extract(val, 0); } +}; + +struct v_float32x4 +{ + typedef float lane_type; + enum { nlanes = 4 }; + vec_float4 val; + + explicit v_float32x4(const vec_float4& v) : val(v) + {} + v_float32x4() : val(vec_float4_z) + {} + v_float32x4(vec_bint4 v) : val(vec_float4_c(v)) + {} + v_float32x4(float v0, float v1, float v2, float v3) : val(vec_float4_set(v0, v1, v2, v3)) + {} + float get0() const + { return vec_extract(val, 0); } +}; + +struct v_uint64x2 +{ + typedef uint64 lane_type; + enum { nlanes = 2 }; + vec_udword2 val; + + explicit v_uint64x2(const vec_udword2& v) : val(v) + {} + v_uint64x2() : val(vec_udword2_z) + {} + v_uint64x2(vec_bdword2 v) : val(vec_udword2_c(v)) + {} + v_uint64x2(uint64 v0, uint64 v1) : val(vec_udword2_set(v0, v1)) + {} + uint64 get0() const + { return vec_extract(val, 0); } +}; + +struct v_int64x2 +{ + typedef int64 lane_type; + enum { nlanes = 2 }; + vec_dword2 val; + + explicit v_int64x2(const vec_dword2& v) : val(v) + {} + v_int64x2() : val(vec_dword2_z) + {} + v_int64x2(vec_bdword2 v) : val(vec_dword2_c(v)) + {} + v_int64x2(int64 v0, int64 v1) : val(vec_dword2_set(v0, v1)) + {} + int64 get0() const + { return vec_extract(val, 0); } +}; + +struct v_float64x2 +{ + typedef double lane_type; + enum { nlanes = 2 }; + vec_double2 val; + + explicit v_float64x2(const vec_double2& v) : val(v) + {} + v_float64x2() : val(vec_double2_z) + {} + v_float64x2(vec_bdword2 v) : val(vec_double2_c(v)) + {} + v_float64x2(double v0, double v1) : val(vec_double2_set(v0, v1)) + {} + double get0() const + { return vec_extract(val, 0); } +}; + +//////////////// Load and store operations /////////////// + +/* + * clang-5 aborted during parse "vec_xxx_c" only if it's + * inside a function template which is defined by preprocessor macro. + * + * if vec_xxx_c defined as C++ cast, clang-5 will pass it +*/ +#define OPENCV_HAL_IMPL_VSX_INITVEC(_Tpvec, _Tp, suffix, cast) \ +inline _Tpvec v_setzero_##suffix() { return _Tpvec(); } \ +inline _Tpvec v_setall_##suffix(_Tp v) { return _Tpvec(vec_splats((_Tp)v));} \ +template inline _Tpvec v_reinterpret_as_##suffix(const _Tpvec0 &a) \ +{ return _Tpvec((cast)a.val); } + +OPENCV_HAL_IMPL_VSX_INITVEC(v_uint8x16, uchar, u8, vec_uchar16) +OPENCV_HAL_IMPL_VSX_INITVEC(v_int8x16, schar, s8, vec_char16) +OPENCV_HAL_IMPL_VSX_INITVEC(v_uint16x8, ushort, u16, vec_ushort8) +OPENCV_HAL_IMPL_VSX_INITVEC(v_int16x8, short, s16, vec_short8) +OPENCV_HAL_IMPL_VSX_INITVEC(v_uint32x4, uint, u32, vec_uint4) +OPENCV_HAL_IMPL_VSX_INITVEC(v_int32x4, int, s32, vec_int4) +OPENCV_HAL_IMPL_VSX_INITVEC(v_uint64x2, uint64, u64, vec_udword2) +OPENCV_HAL_IMPL_VSX_INITVEC(v_int64x2, int64, s64, vec_dword2) +OPENCV_HAL_IMPL_VSX_INITVEC(v_float32x4, float, f32, vec_float4) +OPENCV_HAL_IMPL_VSX_INITVEC(v_float64x2, double, f64, vec_double2) + +#define OPENCV_HAL_IMPL_VSX_LOADSTORE_C(_Tpvec, _Tp, ld, ld_a, st, st_a) \ +inline _Tpvec v_load(const _Tp* ptr) \ +{ return _Tpvec(ld(0, ptr)); } \ +inline _Tpvec v_load_aligned(VSX_UNUSED(const _Tp* ptr)) \ +{ return _Tpvec(ld_a(0, ptr)); } \ +inline _Tpvec v_load_low(const _Tp* ptr) \ +{ return _Tpvec(vec_ld_l8(ptr)); } \ +inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ +{ return _Tpvec(vec_mergesqh(vec_ld_l8(ptr0), vec_ld_l8(ptr1))); } \ +inline void v_store(_Tp* ptr, const _Tpvec& a) \ +{ st(a.val, 0, ptr); } \ +inline void v_store_aligned(VSX_UNUSED(_Tp* ptr), const _Tpvec& a) \ +{ st_a(a.val, 0, ptr); } \ +inline void v_store_aligned_nocache(VSX_UNUSED(_Tp* ptr), const _Tpvec& a) \ +{ st_a(a.val, 0, ptr); } \ +inline void v_store(_Tp* ptr, const _Tpvec& a, hal::StoreMode mode) \ +{ if(mode == hal::STORE_UNALIGNED) st(a.val, 0, ptr); else st_a(a.val, 0, ptr); } \ +inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ +{ vec_st_l8(a.val, ptr); } \ +inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ +{ vec_st_h8(a.val, ptr); } + +// working around gcc bug for aligned ld/st +// if runtime check for vec_ld/st fail we failback to unaligned ld/st +// https://github.com/opencv/opencv/issues/13211 +#ifdef CV_COMPILER_VSX_BROKEN_ALIGNED + #define OPENCV_HAL_IMPL_VSX_LOADSTORE(_Tpvec, _Tp) \ + OPENCV_HAL_IMPL_VSX_LOADSTORE_C(_Tpvec, _Tp, vsx_ld, vsx_ld, vsx_st, vsx_st) +#else + #define OPENCV_HAL_IMPL_VSX_LOADSTORE(_Tpvec, _Tp) \ + OPENCV_HAL_IMPL_VSX_LOADSTORE_C(_Tpvec, _Tp, vsx_ld, vec_ld, vsx_st, vec_st) +#endif + +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_uint8x16, uchar) +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_int8x16, schar) +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_uint16x8, ushort) +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_int16x8, short) +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_uint32x4, uint) +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_int32x4, int) +OPENCV_HAL_IMPL_VSX_LOADSTORE(v_float32x4, float) + +OPENCV_HAL_IMPL_VSX_LOADSTORE_C(v_float64x2, double, vsx_ld, vsx_ld, vsx_st, vsx_st) +OPENCV_HAL_IMPL_VSX_LOADSTORE_C(v_uint64x2, uint64, vsx_ld2, vsx_ld2, vsx_st2, vsx_st2) +OPENCV_HAL_IMPL_VSX_LOADSTORE_C(v_int64x2, int64, vsx_ld2, vsx_ld2, vsx_st2, vsx_st2) + +//////////////// Value reordering /////////////// + +/* de&interleave */ +#define OPENCV_HAL_IMPL_VSX_INTERLEAVE(_Tp, _Tpvec) \ +inline void v_load_deinterleave(const _Tp* ptr, _Tpvec& a, _Tpvec& b) \ +{ vec_ld_deinterleave(ptr, a.val, b.val);} \ +inline void v_load_deinterleave(const _Tp* ptr, _Tpvec& a, \ + _Tpvec& b, _Tpvec& c) \ +{ vec_ld_deinterleave(ptr, a.val, b.val, c.val); } \ +inline void v_load_deinterleave(const _Tp* ptr, _Tpvec& a, _Tpvec& b, \ + _Tpvec& c, _Tpvec& d) \ +{ vec_ld_deinterleave(ptr, a.val, b.val, c.val, d.val); } \ +inline void v_store_interleave(_Tp* ptr, const _Tpvec& a, const _Tpvec& b, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ vec_st_interleave(a.val, b.val, ptr); } \ +inline void v_store_interleave(_Tp* ptr, const _Tpvec& a, \ + const _Tpvec& b, const _Tpvec& c, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ vec_st_interleave(a.val, b.val, c.val, ptr); } \ +inline void v_store_interleave(_Tp* ptr, const _Tpvec& a, const _Tpvec& b, \ + const _Tpvec& c, const _Tpvec& d, \ + hal::StoreMode /*mode*/=hal::STORE_UNALIGNED) \ +{ vec_st_interleave(a.val, b.val, c.val, d.val, ptr); } + +OPENCV_HAL_IMPL_VSX_INTERLEAVE(uchar, v_uint8x16) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(schar, v_int8x16) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(ushort, v_uint16x8) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(short, v_int16x8) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(uint, v_uint32x4) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(int, v_int32x4) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(float, v_float32x4) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(double, v_float64x2) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(int64, v_int64x2) +OPENCV_HAL_IMPL_VSX_INTERLEAVE(uint64, v_uint64x2) + +/* Expand */ +#define OPENCV_HAL_IMPL_VSX_EXPAND(_Tpvec, _Tpwvec, _Tp, fl, fh) \ +inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ +{ \ + b0.val = fh(a.val); \ + b1.val = fl(a.val); \ +} \ +inline _Tpwvec v_expand_low(const _Tpvec& a) \ +{ return _Tpwvec(fh(a.val)); } \ +inline _Tpwvec v_expand_high(const _Tpvec& a) \ +{ return _Tpwvec(fl(a.val)); } \ +inline _Tpwvec v_load_expand(const _Tp* ptr) \ +{ return _Tpwvec(fh(vec_ld_l8(ptr))); } + +OPENCV_HAL_IMPL_VSX_EXPAND(v_uint8x16, v_uint16x8, uchar, vec_unpacklu, vec_unpackhu) +OPENCV_HAL_IMPL_VSX_EXPAND(v_int8x16, v_int16x8, schar, vec_unpackl, vec_unpackh) +OPENCV_HAL_IMPL_VSX_EXPAND(v_uint16x8, v_uint32x4, ushort, vec_unpacklu, vec_unpackhu) +OPENCV_HAL_IMPL_VSX_EXPAND(v_int16x8, v_int32x4, short, vec_unpackl, vec_unpackh) +OPENCV_HAL_IMPL_VSX_EXPAND(v_uint32x4, v_uint64x2, uint, vec_unpacklu, vec_unpackhu) +OPENCV_HAL_IMPL_VSX_EXPAND(v_int32x4, v_int64x2, int, vec_unpackl, vec_unpackh) + +inline v_uint32x4 v_load_expand_q(const uchar* ptr) +{ return v_uint32x4(vec_uint4_set(ptr[0], ptr[1], ptr[2], ptr[3])); } + +inline v_int32x4 v_load_expand_q(const schar* ptr) +{ return v_int32x4(vec_int4_set(ptr[0], ptr[1], ptr[2], ptr[3])); } + +/* pack */ +#define OPENCV_HAL_IMPL_VSX_PACK(_Tpvec, _Tp, _Tpwvec, _Tpvn, _Tpdel, sfnc, pkfnc, addfnc, pack) \ +inline _Tpvec v_##pack(const _Tpwvec& a, const _Tpwvec& b) \ +{ \ + return _Tpvec(pkfnc(a.val, b.val)); \ +} \ +inline void v_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ +{ \ + vec_st_l8(pkfnc(a.val, a.val), ptr); \ +} \ +template \ +inline _Tpvec v_rshr_##pack(const _Tpwvec& a, const _Tpwvec& b) \ +{ \ + const __vector _Tpvn vn = vec_splats((_Tpvn)n); \ + const __vector _Tpdel delta = vec_splats((_Tpdel)((_Tpdel)1 << (n-1))); \ + return _Tpvec(pkfnc(sfnc(addfnc(a.val, delta), vn), sfnc(addfnc(b.val, delta), vn))); \ +} \ +template \ +inline void v_rshr_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ +{ \ + const __vector _Tpvn vn = vec_splats((_Tpvn)n); \ + const __vector _Tpdel delta = vec_splats((_Tpdel)((_Tpdel)1 << (n-1))); \ + vec_st_l8(pkfnc(sfnc(addfnc(a.val, delta), vn), delta), ptr); \ +} + +OPENCV_HAL_IMPL_VSX_PACK(v_uint8x16, uchar, v_uint16x8, unsigned short, unsigned short, + vec_sr, vec_packs, vec_adds, pack) +OPENCV_HAL_IMPL_VSX_PACK(v_int8x16, schar, v_int16x8, unsigned short, short, + vec_sra, vec_packs, vec_adds, pack) + +OPENCV_HAL_IMPL_VSX_PACK(v_uint16x8, ushort, v_uint32x4, unsigned int, unsigned int, + vec_sr, vec_packs, vec_add, pack) +OPENCV_HAL_IMPL_VSX_PACK(v_int16x8, short, v_int32x4, unsigned int, int, + vec_sra, vec_packs, vec_add, pack) + +OPENCV_HAL_IMPL_VSX_PACK(v_uint32x4, uint, v_uint64x2, unsigned long long, unsigned long long, + vec_sr, vec_pack, vec_add, pack) +OPENCV_HAL_IMPL_VSX_PACK(v_int32x4, int, v_int64x2, unsigned long long, long long, + vec_sra, vec_pack, vec_add, pack) + +OPENCV_HAL_IMPL_VSX_PACK(v_uint8x16, uchar, v_int16x8, unsigned short, short, + vec_sra, vec_packsu, vec_adds, pack_u) +OPENCV_HAL_IMPL_VSX_PACK(v_uint16x8, ushort, v_int32x4, unsigned int, int, + vec_sra, vec_packsu, vec_add, pack_u) +// Following variant is not implemented on other platforms: +//OPENCV_HAL_IMPL_VSX_PACK(v_uint32x4, uint, v_int64x2, unsigned long long, long long, +// vec_sra, vec_packsu, vec_add, pack_u) + +// pack boolean +inline v_uint8x16 v_pack_b(const v_uint16x8& a, const v_uint16x8& b) +{ + vec_uchar16 ab = vec_pack(a.val, b.val); + return v_uint8x16(ab); +} + +inline v_uint8x16 v_pack_b(const v_uint32x4& a, const v_uint32x4& b, + const v_uint32x4& c, const v_uint32x4& d) +{ + vec_ushort8 ab = vec_pack(a.val, b.val); + vec_ushort8 cd = vec_pack(c.val, d.val); + return v_uint8x16(vec_pack(ab, cd)); +} + +inline v_uint8x16 v_pack_b(const v_uint64x2& a, const v_uint64x2& b, const v_uint64x2& c, + const v_uint64x2& d, const v_uint64x2& e, const v_uint64x2& f, + const v_uint64x2& g, const v_uint64x2& h) +{ + vec_uint4 ab = vec_pack(a.val, b.val); + vec_uint4 cd = vec_pack(c.val, d.val); + vec_uint4 ef = vec_pack(e.val, f.val); + vec_uint4 gh = vec_pack(g.val, h.val); + + vec_ushort8 abcd = vec_pack(ab, cd); + vec_ushort8 efgh = vec_pack(ef, gh); + return v_uint8x16(vec_pack(abcd, efgh)); +} + +/* Recombine */ +template +inline void v_zip(const _Tpvec& a0, const _Tpvec& a1, _Tpvec& b0, _Tpvec& b1) +{ + b0.val = vec_mergeh(a0.val, a1.val); + b1.val = vec_mergel(a0.val, a1.val); +} + +template +inline _Tpvec v_combine_high(const _Tpvec& a, const _Tpvec& b) +{ return _Tpvec(vec_mergesql(a.val, b.val)); } + +template +inline _Tpvec v_combine_low(const _Tpvec& a, const _Tpvec& b) +{ return _Tpvec(vec_mergesqh(a.val, b.val)); } + +template +inline void v_recombine(const _Tpvec& a, const _Tpvec& b, _Tpvec& c, _Tpvec& d) +{ + c.val = vec_mergesqh(a.val, b.val); + d.val = vec_mergesql(a.val, b.val); +} + +////////// Arithmetic, bitwise and comparison operations ///////// + +/* Element-wise binary and unary operations */ +/** Arithmetics **/ +#define OPENCV_HAL_IMPL_VSX_BIN_OP(bin_op, _Tpvec, intrin) \ +inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(intrin(a.val, b.val)); } \ +inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ +{ a.val = intrin(a.val, b.val); return a; } + +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint8x16, vec_adds) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint8x16, vec_subs) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int8x16, vec_adds) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int8x16, vec_subs) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint16x8, vec_adds) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint16x8, vec_subs) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int16x8, vec_adds) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int16x8, vec_subs) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint32x4, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint32x4, vec_sub) +OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_uint32x4, vec_mul) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int32x4, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int32x4, vec_sub) +OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_int32x4, vec_mul) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_float32x4, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_float32x4, vec_sub) +OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_float32x4, vec_mul) +OPENCV_HAL_IMPL_VSX_BIN_OP(/, v_float32x4, vec_div) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_float64x2, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_float64x2, vec_sub) +OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_float64x2, vec_mul) +OPENCV_HAL_IMPL_VSX_BIN_OP(/, v_float64x2, vec_div) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint64x2, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint64x2, vec_sub) +OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int64x2, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int64x2, vec_sub) + +// saturating multiply +#define OPENCV_HAL_IMPL_VSX_MUL_SAT(_Tpvec, _Tpwvec) \ + inline _Tpvec operator * (const _Tpvec& a, const _Tpvec& b) \ + { \ + _Tpwvec c, d; \ + v_mul_expand(a, b, c, d); \ + return v_pack(c, d); \ + } \ + inline _Tpvec& operator *= (_Tpvec& a, const _Tpvec& b) \ + { a = a * b; return a; } + +OPENCV_HAL_IMPL_VSX_MUL_SAT(v_int8x16, v_int16x8) +OPENCV_HAL_IMPL_VSX_MUL_SAT(v_uint8x16, v_uint16x8) +OPENCV_HAL_IMPL_VSX_MUL_SAT(v_int16x8, v_int32x4) +OPENCV_HAL_IMPL_VSX_MUL_SAT(v_uint16x8, v_uint32x4) + +template +inline void v_mul_expand(const Tvec& a, const Tvec& b, Twvec& c, Twvec& d) +{ + Twvec p0 = Twvec(vec_mule(a.val, b.val)); + Twvec p1 = Twvec(vec_mulo(a.val, b.val)); + v_zip(p0, p1, c, d); +} + +inline void v_mul_expand(const v_uint32x4& a, const v_uint32x4& b, v_uint64x2& c, v_uint64x2& d) +{ + c.val = vec_mul(vec_unpackhu(a.val), vec_unpackhu(b.val)); + d.val = vec_mul(vec_unpacklu(a.val), vec_unpacklu(b.val)); +} + +inline v_int16x8 v_mul_hi(const v_int16x8& a, const v_int16x8& b) +{ + vec_int4 p0 = vec_mule(a.val, b.val); + vec_int4 p1 = vec_mulo(a.val, b.val); + static const vec_uchar16 perm = {2, 3, 18, 19, 6, 7, 22, 23, 10, 11, 26, 27, 14, 15, 30, 31}; + return v_int16x8(vec_perm(vec_short8_c(p0), vec_short8_c(p1), perm)); +} +inline v_uint16x8 v_mul_hi(const v_uint16x8& a, const v_uint16x8& b) +{ + vec_uint4 p0 = vec_mule(a.val, b.val); + vec_uint4 p1 = vec_mulo(a.val, b.val); + static const vec_uchar16 perm = {2, 3, 18, 19, 6, 7, 22, 23, 10, 11, 26, 27, 14, 15, 30, 31}; + return v_uint16x8(vec_perm(vec_ushort8_c(p0), vec_ushort8_c(p1), perm)); +} + +/** Non-saturating arithmetics **/ +#define OPENCV_HAL_IMPL_VSX_BIN_FUNC(func, intrin) \ +template \ +inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(intrin(a.val, b.val)); } + +OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_add_wrap, vec_add) +OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_sub_wrap, vec_sub) +OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_mul_wrap, vec_mul) + +/** Bitwise shifts **/ +#define OPENCV_HAL_IMPL_VSX_SHIFT_OP(_Tpvec, shr, splfunc) \ +inline _Tpvec operator << (const _Tpvec& a, int imm) \ +{ return _Tpvec(vec_sl(a.val, splfunc(imm))); } \ +inline _Tpvec operator >> (const _Tpvec& a, int imm) \ +{ return _Tpvec(shr(a.val, splfunc(imm))); } \ +template inline _Tpvec v_shl(const _Tpvec& a) \ +{ return _Tpvec(vec_sl(a.val, splfunc(imm))); } \ +template inline _Tpvec v_shr(const _Tpvec& a) \ +{ return _Tpvec(shr(a.val, splfunc(imm))); } + +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint8x16, vec_sr, vec_uchar16_sp) +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint16x8, vec_sr, vec_ushort8_sp) +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint32x4, vec_sr, vec_uint4_sp) +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint64x2, vec_sr, vec_udword2_sp) +// algebraic right shift +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int8x16, vec_sra, vec_uchar16_sp) +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int16x8, vec_sra, vec_ushort8_sp) +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int32x4, vec_sra, vec_uint4_sp) +OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int64x2, vec_sra, vec_udword2_sp) + +/** Bitwise logic **/ +#define OPENCV_HAL_IMPL_VSX_LOGIC_OP(_Tpvec) \ +OPENCV_HAL_IMPL_VSX_BIN_OP(&, _Tpvec, vec_and) \ +OPENCV_HAL_IMPL_VSX_BIN_OP(|, _Tpvec, vec_or) \ +OPENCV_HAL_IMPL_VSX_BIN_OP(^, _Tpvec, vec_xor) \ +inline _Tpvec operator ~ (const _Tpvec& a) \ +{ return _Tpvec(vec_not(a.val)); } + +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint8x16) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int8x16) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint16x8) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int16x8) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint32x4) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int32x4) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint64x2) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int64x2) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_float32x4) +OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_float64x2) + +/** Bitwise select **/ +#define OPENCV_HAL_IMPL_VSX_SELECT(_Tpvec, cast) \ +inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_sel(b.val, a.val, cast(mask.val))); } + +OPENCV_HAL_IMPL_VSX_SELECT(v_uint8x16, vec_bchar16_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_int8x16, vec_bchar16_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_uint16x8, vec_bshort8_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_int16x8, vec_bshort8_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_uint32x4, vec_bint4_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_int32x4, vec_bint4_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_float32x4, vec_bint4_c) +OPENCV_HAL_IMPL_VSX_SELECT(v_float64x2, vec_bdword2_c) + +/** Comparison **/ +#define OPENCV_HAL_IMPL_VSX_INT_CMP_OP(_Tpvec) \ +inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_cmpeq(a.val, b.val)); } \ +inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_cmpne(a.val, b.val)); } \ +inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_cmplt(a.val, b.val)); } \ +inline _Tpvec operator > (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_cmpgt(a.val, b.val)); } \ +inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_cmple(a.val, b.val)); } \ +inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_cmpge(a.val, b.val)); } + +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint8x16) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int8x16) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint16x8) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int16x8) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint32x4) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int32x4) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_float32x4) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_float64x2) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint64x2) +OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int64x2) + +inline v_float32x4 v_not_nan(const v_float32x4& a) +{ return v_float32x4(vec_cmpeq(a.val, a.val)); } +inline v_float64x2 v_not_nan(const v_float64x2& a) +{ return v_float64x2(vec_cmpeq(a.val, a.val)); } + +/** min/max **/ +OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_min, vec_min) +OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_max, vec_max) + +/** Rotate **/ +#define OPENCV_IMPL_VSX_ROTATE(_Tpvec, suffix, shf, cast) \ +template \ +inline _Tpvec v_rotate_##suffix(const _Tpvec& a) \ +{ \ + const int wd = imm * sizeof(typename _Tpvec::lane_type); \ + if (wd > 15) \ + return _Tpvec(); \ + return _Tpvec((cast)shf(vec_uchar16_c(a.val), vec_uchar16_sp(wd << 3))); \ +} + +#define OPENCV_IMPL_VSX_ROTATE_LR(_Tpvec, cast) \ +OPENCV_IMPL_VSX_ROTATE(_Tpvec, left, vec_slo, cast) \ +OPENCV_IMPL_VSX_ROTATE(_Tpvec, right, vec_sro, cast) + +OPENCV_IMPL_VSX_ROTATE_LR(v_uint8x16, vec_uchar16) +OPENCV_IMPL_VSX_ROTATE_LR(v_int8x16, vec_char16) +OPENCV_IMPL_VSX_ROTATE_LR(v_uint16x8, vec_ushort8) +OPENCV_IMPL_VSX_ROTATE_LR(v_int16x8, vec_short8) +OPENCV_IMPL_VSX_ROTATE_LR(v_uint32x4, vec_uint4) +OPENCV_IMPL_VSX_ROTATE_LR(v_int32x4, vec_int4) +OPENCV_IMPL_VSX_ROTATE_LR(v_float32x4, vec_float4) +OPENCV_IMPL_VSX_ROTATE_LR(v_uint64x2, vec_udword2) +OPENCV_IMPL_VSX_ROTATE_LR(v_int64x2, vec_dword2) +OPENCV_IMPL_VSX_ROTATE_LR(v_float64x2, vec_double2) + +template +inline _Tpvec v_rotate_right(const _Tpvec& a, const _Tpvec& b) +{ + enum { CV_SHIFT = 16 - imm * (sizeof(typename _Tpvec::lane_type)) }; + if (CV_SHIFT == 16) + return a; +#ifdef __IBMCPP__ + return _Tpvec(vec_sld(b.val, a.val, CV_SHIFT & 15)); +#else + return _Tpvec(vec_sld(b.val, a.val, CV_SHIFT)); +#endif +} + +template +inline _Tpvec v_rotate_left(const _Tpvec& a, const _Tpvec& b) +{ + enum { CV_SHIFT = imm * (sizeof(typename _Tpvec::lane_type)) }; + if (CV_SHIFT == 16) + return b; + return _Tpvec(vec_sld(a.val, b.val, CV_SHIFT)); +} + +#define OPENCV_IMPL_VSX_ROTATE_64_2RG(_Tpvec, suffix, rg1, rg2) \ +template \ +inline _Tpvec v_rotate_##suffix(const _Tpvec& a, const _Tpvec& b) \ +{ \ + if (imm == 1) \ + return _Tpvec(vec_permi(rg1.val, rg2.val, 2)); \ + return imm ? b : a; \ +} + +#define OPENCV_IMPL_VSX_ROTATE_64_2RG_LR(_Tpvec) \ +OPENCV_IMPL_VSX_ROTATE_64_2RG(_Tpvec, left, b, a) \ +OPENCV_IMPL_VSX_ROTATE_64_2RG(_Tpvec, right, a, b) + +OPENCV_IMPL_VSX_ROTATE_64_2RG_LR(v_float64x2) +OPENCV_IMPL_VSX_ROTATE_64_2RG_LR(v_uint64x2) +OPENCV_IMPL_VSX_ROTATE_64_2RG_LR(v_int64x2) + +/* Extract */ +template +inline _Tpvec v_extract(const _Tpvec& a, const _Tpvec& b) +{ return v_rotate_right(a, b); } + +////////// Reduce and mask ///////// + +/** Reduce **/ +inline short v_reduce_sum(const v_int16x8& a) +{ + const vec_int4 zero = vec_int4_z; + return saturate_cast(vec_extract(vec_sums(vec_sum4s(a.val, zero), zero), 3)); +} +inline ushort v_reduce_sum(const v_uint16x8& a) +{ + const vec_int4 v4 = vec_int4_c(vec_unpackhu(vec_adds(a.val, vec_sld(a.val, a.val, 8)))); + return saturate_cast(vec_extract(vec_sums(v4, vec_int4_z), 3)); +} + +#define OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(_Tpvec, _Tpvec2, scalartype, suffix, func) \ +inline scalartype v_reduce_##suffix(const _Tpvec& a) \ +{ \ + const _Tpvec2 rs = func(a.val, vec_sld(a.val, a.val, 8)); \ + return vec_extract(func(rs, vec_sld(rs, rs, 4)), 0); \ +} +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_uint32x4, vec_uint4, uint, sum, vec_add) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_uint32x4, vec_uint4, uint, max, vec_max) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_uint32x4, vec_uint4, uint, min, vec_min) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_int32x4, vec_int4, int, sum, vec_add) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_int32x4, vec_int4, int, max, vec_max) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_int32x4, vec_int4, int, min, vec_min) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_float32x4, vec_float4, float, sum, vec_add) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_float32x4, vec_float4, float, max, vec_max) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_float32x4, vec_float4, float, min, vec_min) + +inline double v_reduce_sum(const v_float64x2& a) +{ + return vec_extract(vec_add(a.val, vec_permi(a.val, a.val, 3)), 0); +} + +#define OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(_Tpvec, _Tpvec2, scalartype, suffix, func) \ +inline scalartype v_reduce_##suffix(const _Tpvec& a) \ +{ \ + _Tpvec2 rs = func(a.val, vec_sld(a.val, a.val, 8)); \ + rs = func(rs, vec_sld(rs, rs, 4)); \ + return vec_extract(func(rs, vec_sld(rs, rs, 2)), 0); \ +} +OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_uint16x8, vec_ushort8, ushort, max, vec_max) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_uint16x8, vec_ushort8, ushort, min, vec_min) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_int16x8, vec_short8, short, max, vec_max) +OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_int16x8, vec_short8, short, min, vec_min) + +inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, + const v_float32x4& c, const v_float32x4& d) +{ + vec_float4 ac = vec_add(vec_mergel(a.val, c.val), vec_mergeh(a.val, c.val)); + ac = vec_add(ac, vec_sld(ac, ac, 8)); + + vec_float4 bd = vec_add(vec_mergel(b.val, d.val), vec_mergeh(b.val, d.val)); + bd = vec_add(bd, vec_sld(bd, bd, 8)); + return v_float32x4(vec_mergeh(ac, bd)); +} + +inline unsigned v_reduce_sad(const v_uint8x16& a, const v_uint8x16& b) +{ + const vec_uint4 zero4 = vec_uint4_z; + vec_uint4 sum4 = vec_sum4s(vec_absd(a.val, b.val), zero4); + return (unsigned)vec_extract(vec_sums(vec_int4_c(sum4), vec_int4_c(zero4)), 3); +} +inline unsigned v_reduce_sad(const v_int8x16& a, const v_int8x16& b) +{ + const vec_int4 zero4 = vec_int4_z; + vec_char16 ad = vec_abss(vec_subs(a.val, b.val)); + vec_int4 sum4 = vec_sum4s(ad, zero4); + return (unsigned)vec_extract(vec_sums(sum4, zero4), 3); +} +inline unsigned v_reduce_sad(const v_uint16x8& a, const v_uint16x8& b) +{ + vec_ushort8 ad = vec_absd(a.val, b.val); + VSX_UNUSED(vec_int4) sum = vec_sums(vec_int4_c(vec_unpackhu(ad)), vec_int4_c(vec_unpacklu(ad))); + return (unsigned)vec_extract(sum, 3); +} +inline unsigned v_reduce_sad(const v_int16x8& a, const v_int16x8& b) +{ + const vec_int4 zero4 = vec_int4_z; + vec_short8 ad = vec_abss(vec_subs(a.val, b.val)); + vec_int4 sum4 = vec_sum4s(ad, zero4); + return (unsigned)vec_extract(vec_sums(sum4, zero4), 3); +} +inline unsigned v_reduce_sad(const v_uint32x4& a, const v_uint32x4& b) +{ + const vec_uint4 ad = vec_absd(a.val, b.val); + const vec_uint4 rd = vec_add(ad, vec_sld(ad, ad, 8)); + return vec_extract(vec_add(rd, vec_sld(rd, rd, 4)), 0); +} +inline unsigned v_reduce_sad(const v_int32x4& a, const v_int32x4& b) +{ + vec_int4 ad = vec_abss(vec_sub(a.val, b.val)); + return (unsigned)vec_extract(vec_sums(ad, vec_int4_z), 3); +} +inline float v_reduce_sad(const v_float32x4& a, const v_float32x4& b) +{ + const vec_float4 ad = vec_abs(vec_sub(a.val, b.val)); + const vec_float4 rd = vec_add(ad, vec_sld(ad, ad, 8)); + return vec_extract(vec_add(rd, vec_sld(rd, rd, 4)), 0); +} + +/** Popcount **/ +template +inline v_uint32x4 v_popcount(const _Tpvec& a) +{ return v_uint32x4(vec_popcntu(vec_uint4_c(a.val))); } + +/** Mask **/ +inline int v_signmask(const v_uint8x16& a) +{ + vec_uchar16 sv = vec_sr(a.val, vec_uchar16_sp(7)); + static const vec_uchar16 slm = {0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7}; + sv = vec_sl(sv, slm); + vec_uint4 sv4 = vec_sum4s(sv, vec_uint4_z); + static const vec_uint4 slm4 = {0, 0, 8, 8}; + sv4 = vec_sl(sv4, slm4); + return vec_extract(vec_sums((vec_int4) sv4, vec_int4_z), 3); +} +inline int v_signmask(const v_int8x16& a) +{ return v_signmask(v_reinterpret_as_u8(a)); } + +inline int v_signmask(const v_int16x8& a) +{ + static const vec_ushort8 slm = {0, 1, 2, 3, 4, 5, 6, 7}; + vec_short8 sv = vec_sr(a.val, vec_ushort8_sp(15)); + sv = vec_sl(sv, slm); + vec_int4 svi = vec_int4_z; + svi = vec_sums(vec_sum4s(sv, svi), svi); + return vec_extract(svi, 3); +} +inline int v_signmask(const v_uint16x8& a) +{ return v_signmask(v_reinterpret_as_s16(a)); } + +inline int v_signmask(const v_int32x4& a) +{ + static const vec_uint4 slm = {0, 1, 2, 3}; + vec_int4 sv = vec_sr(a.val, vec_uint4_sp(31)); + sv = vec_sl(sv, slm); + sv = vec_sums(sv, vec_int4_z); + return vec_extract(sv, 3); +} +inline int v_signmask(const v_uint32x4& a) +{ return v_signmask(v_reinterpret_as_s32(a)); } +inline int v_signmask(const v_float32x4& a) +{ return v_signmask(v_reinterpret_as_s32(a)); } + +inline int v_signmask(const v_int64x2& a) +{ + VSX_UNUSED(const vec_dword2) sv = vec_sr(a.val, vec_udword2_sp(63)); + return (int)vec_extract(sv, 0) | (int)vec_extract(sv, 1) << 1; +} +inline int v_signmask(const v_uint64x2& a) +{ return v_signmask(v_reinterpret_as_s64(a)); } +inline int v_signmask(const v_float64x2& a) +{ return v_signmask(v_reinterpret_as_s64(a)); } + +template +inline bool v_check_all(const _Tpvec& a) +{ return vec_all_lt(a.val, _Tpvec().val); } +inline bool v_check_all(const v_uint8x16& a) +{ return v_check_all(v_reinterpret_as_s8(a)); } +inline bool v_check_all(const v_uint16x8& a) +{ return v_check_all(v_reinterpret_as_s16(a)); } +inline bool v_check_all(const v_uint32x4& a) +{ return v_check_all(v_reinterpret_as_s32(a)); } +inline bool v_check_all(const v_float32x4& a) +{ return v_check_all(v_reinterpret_as_s32(a)); } +inline bool v_check_all(const v_float64x2& a) +{ return v_check_all(v_reinterpret_as_s64(a)); } + +template +inline bool v_check_any(const _Tpvec& a) +{ return vec_any_lt(a.val, _Tpvec().val); } +inline bool v_check_any(const v_uint8x16& a) +{ return v_check_any(v_reinterpret_as_s8(a)); } +inline bool v_check_any(const v_uint16x8& a) +{ return v_check_any(v_reinterpret_as_s16(a)); } +inline bool v_check_any(const v_uint32x4& a) +{ return v_check_any(v_reinterpret_as_s32(a)); } +inline bool v_check_any(const v_float32x4& a) +{ return v_check_any(v_reinterpret_as_s32(a)); } +inline bool v_check_any(const v_float64x2& a) +{ return v_check_any(v_reinterpret_as_s64(a)); } + +////////// Other math ///////// + +/** Some frequent operations **/ +inline v_float32x4 v_sqrt(const v_float32x4& x) +{ return v_float32x4(vec_sqrt(x.val)); } +inline v_float64x2 v_sqrt(const v_float64x2& x) +{ return v_float64x2(vec_sqrt(x.val)); } + +inline v_float32x4 v_invsqrt(const v_float32x4& x) +{ return v_float32x4(vec_rsqrt(x.val)); } +inline v_float64x2 v_invsqrt(const v_float64x2& x) +{ return v_float64x2(vec_rsqrt(x.val)); } + +#define OPENCV_HAL_IMPL_VSX_MULADD(_Tpvec) \ +inline _Tpvec v_magnitude(const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_sqrt(vec_madd(a.val, a.val, vec_mul(b.val, b.val)))); } \ +inline _Tpvec v_sqr_magnitude(const _Tpvec& a, const _Tpvec& b) \ +{ return _Tpvec(vec_madd(a.val, a.val, vec_mul(b.val, b.val))); } \ +inline _Tpvec v_fma(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ +{ return _Tpvec(vec_madd(a.val, b.val, c.val)); } \ +inline _Tpvec v_muladd(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ +{ return _Tpvec(vec_madd(a.val, b.val, c.val)); } + +OPENCV_HAL_IMPL_VSX_MULADD(v_float32x4) +OPENCV_HAL_IMPL_VSX_MULADD(v_float64x2) + +inline v_int32x4 v_muladd(const v_int32x4& a, const v_int32x4& b, const v_int32x4& c) +{ return a * b + c; } + +// TODO: exp, log, sin, cos + +/** Absolute values **/ +inline v_uint8x16 v_abs(const v_int8x16& x) +{ return v_uint8x16(vec_uchar16_c(vec_abs(x.val))); } + +inline v_uint16x8 v_abs(const v_int16x8& x) +{ return v_uint16x8(vec_ushort8_c(vec_abs(x.val))); } + +inline v_uint32x4 v_abs(const v_int32x4& x) +{ return v_uint32x4(vec_uint4_c(vec_abs(x.val))); } + +inline v_float32x4 v_abs(const v_float32x4& x) +{ return v_float32x4(vec_abs(x.val)); } + +inline v_float64x2 v_abs(const v_float64x2& x) +{ return v_float64x2(vec_abs(x.val)); } + +/** Absolute difference **/ +// unsigned +OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_absdiff, vec_absd) + +inline v_uint8x16 v_absdiff(const v_int8x16& a, const v_int8x16& b) +{ return v_reinterpret_as_u8(v_sub_wrap(v_max(a, b), v_min(a, b))); } +inline v_uint16x8 v_absdiff(const v_int16x8& a, const v_int16x8& b) +{ return v_reinterpret_as_u16(v_sub_wrap(v_max(a, b), v_min(a, b))); } +inline v_uint32x4 v_absdiff(const v_int32x4& a, const v_int32x4& b) +{ return v_reinterpret_as_u32(v_max(a, b) - v_min(a, b)); } + +inline v_float32x4 v_absdiff(const v_float32x4& a, const v_float32x4& b) +{ return v_abs(a - b); } +inline v_float64x2 v_absdiff(const v_float64x2& a, const v_float64x2& b) +{ return v_abs(a - b); } + +/** Absolute difference for signed integers **/ +inline v_int8x16 v_absdiffs(const v_int8x16& a, const v_int8x16& b) +{ return v_int8x16(vec_abss(vec_subs(a.val, b.val))); } +inline v_int16x8 v_absdiffs(const v_int16x8& a, const v_int16x8& b) +{ return v_int16x8(vec_abss(vec_subs(a.val, b.val))); } + +////////// Conversions ///////// + +/** Rounding **/ +inline v_int32x4 v_round(const v_float32x4& a) +{ return v_int32x4(vec_cts(vec_rint(a.val))); } + +inline v_int32x4 v_round(const v_float64x2& a) +{ return v_int32x4(vec_mergesqo(vec_ctso(vec_rint(a.val)), vec_int4_z)); } + +inline v_int32x4 v_round(const v_float64x2& a, const v_float64x2& b) +{ return v_int32x4(vec_mergesqo(vec_ctso(vec_rint(a.val)), vec_ctso(vec_rint(b.val)))); } + +inline v_int32x4 v_floor(const v_float32x4& a) +{ return v_int32x4(vec_cts(vec_floor(a.val))); } + +inline v_int32x4 v_floor(const v_float64x2& a) +{ return v_int32x4(vec_mergesqo(vec_ctso(vec_floor(a.val)), vec_int4_z)); } + +inline v_int32x4 v_ceil(const v_float32x4& a) +{ return v_int32x4(vec_cts(vec_ceil(a.val))); } + +inline v_int32x4 v_ceil(const v_float64x2& a) +{ return v_int32x4(vec_mergesqo(vec_ctso(vec_ceil(a.val)), vec_int4_z)); } + +inline v_int32x4 v_trunc(const v_float32x4& a) +{ return v_int32x4(vec_cts(a.val)); } + +inline v_int32x4 v_trunc(const v_float64x2& a) +{ return v_int32x4(vec_mergesqo(vec_ctso(a.val), vec_int4_z)); } + +/** To float **/ +inline v_float32x4 v_cvt_f32(const v_int32x4& a) +{ return v_float32x4(vec_ctf(a.val)); } + +inline v_float32x4 v_cvt_f32(const v_float64x2& a) +{ return v_float32x4(vec_mergesqo(vec_cvfo(a.val), vec_float4_z)); } + +inline v_float32x4 v_cvt_f32(const v_float64x2& a, const v_float64x2& b) +{ return v_float32x4(vec_mergesqo(vec_cvfo(a.val), vec_cvfo(b.val))); } + +inline v_float64x2 v_cvt_f64(const v_int32x4& a) +{ return v_float64x2(vec_ctdo(vec_mergeh(a.val, a.val))); } + +inline v_float64x2 v_cvt_f64_high(const v_int32x4& a) +{ return v_float64x2(vec_ctdo(vec_mergel(a.val, a.val))); } + +inline v_float64x2 v_cvt_f64(const v_float32x4& a) +{ return v_float64x2(vec_cvfo(vec_mergeh(a.val, a.val))); } + +inline v_float64x2 v_cvt_f64_high(const v_float32x4& a) +{ return v_float64x2(vec_cvfo(vec_mergel(a.val, a.val))); } + +////////////// Lookup table access //////////////////// + +inline v_int8x16 v_lut(const schar* tab, const int* idx) +{ + return v_int8x16(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]], tab[idx[4]], tab[idx[5]], tab[idx[6]], tab[idx[7]], + tab[idx[8]], tab[idx[9]], tab[idx[10]], tab[idx[11]], tab[idx[12]], tab[idx[13]], tab[idx[14]], tab[idx[15]]); +} +inline v_int8x16 v_lut_pairs(const schar* tab, const int* idx) +{ + return v_reinterpret_as_s8(v_int16x8(*(const short*)(tab+idx[0]), *(const short*)(tab+idx[1]), *(const short*)(tab+idx[2]), *(const short*)(tab+idx[3]), + *(const short*)(tab+idx[4]), *(const short*)(tab+idx[5]), *(const short*)(tab+idx[6]), *(const short*)(tab+idx[7]))); +} +inline v_int8x16 v_lut_quads(const schar* tab, const int* idx) +{ + return v_reinterpret_as_s8(v_int32x4(*(const int*)(tab+idx[0]), *(const int*)(tab+idx[1]), *(const int*)(tab+idx[2]), *(const int*)(tab+idx[3]))); +} +inline v_uint8x16 v_lut(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut((const schar*)tab, idx)); } +inline v_uint8x16 v_lut_pairs(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut_pairs((const schar*)tab, idx)); } +inline v_uint8x16 v_lut_quads(const uchar* tab, const int* idx) { return v_reinterpret_as_u8(v_lut_quads((const schar*)tab, idx)); } + +inline v_int16x8 v_lut(const short* tab, const int* idx) +{ + return v_int16x8(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]], tab[idx[4]], tab[idx[5]], tab[idx[6]], tab[idx[7]]); +} +inline v_int16x8 v_lut_pairs(const short* tab, const int* idx) +{ + return v_reinterpret_as_s16(v_int32x4(*(const int*)(tab + idx[0]), *(const int*)(tab + idx[1]), *(const int*)(tab + idx[2]), *(const int*)(tab + idx[3]))); +} +inline v_int16x8 v_lut_quads(const short* tab, const int* idx) +{ + return v_reinterpret_as_s16(v_int64x2(*(const int64*)(tab + idx[0]), *(const int64*)(tab + idx[1]))); +} +inline v_uint16x8 v_lut(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut((const short*)tab, idx)); } +inline v_uint16x8 v_lut_pairs(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut_pairs((const short*)tab, idx)); } +inline v_uint16x8 v_lut_quads(const ushort* tab, const int* idx) { return v_reinterpret_as_u16(v_lut_quads((const short*)tab, idx)); } + +inline v_int32x4 v_lut(const int* tab, const int* idx) +{ + return v_int32x4(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]); +} +inline v_int32x4 v_lut_pairs(const int* tab, const int* idx) +{ + return v_reinterpret_as_s32(v_int64x2(*(const int64*)(tab + idx[0]), *(const int64*)(tab + idx[1]))); +} +inline v_int32x4 v_lut_quads(const int* tab, const int* idx) +{ + return v_int32x4(vsx_ld(0, tab + idx[0])); +} +inline v_uint32x4 v_lut(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut((const int*)tab, idx)); } +inline v_uint32x4 v_lut_pairs(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut_pairs((const int*)tab, idx)); } +inline v_uint32x4 v_lut_quads(const unsigned* tab, const int* idx) { return v_reinterpret_as_u32(v_lut_quads((const int*)tab, idx)); } + +inline v_int64x2 v_lut(const int64_t* tab, const int* idx) +{ + return v_int64x2(tab[idx[0]], tab[idx[1]]); +} +inline v_int64x2 v_lut_pairs(const int64_t* tab, const int* idx) +{ + return v_int64x2(vsx_ld2(0, tab + idx[0])); +} +inline v_uint64x2 v_lut(const uint64_t* tab, const int* idx) { return v_reinterpret_as_u64(v_lut((const int64_t *)tab, idx)); } +inline v_uint64x2 v_lut_pairs(const uint64_t* tab, const int* idx) { return v_reinterpret_as_u64(v_lut_pairs((const int64_t *)tab, idx)); } + +inline v_float32x4 v_lut(const float* tab, const int* idx) +{ + return v_float32x4(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]); +} +inline v_float32x4 v_lut_pairs(const float* tab, const int* idx) { return v_reinterpret_as_f32(v_lut_pairs((const int*)tab, idx)); } +inline v_float32x4 v_lut_quads(const float* tab, const int* idx) { return v_load(tab + *idx); } + +inline v_float64x2 v_lut(const double* tab, const int* idx) +{ + return v_float64x2(tab[idx[0]], tab[idx[1]]); +} +inline v_float64x2 v_lut_pairs(const double* tab, const int* idx) { return v_load(tab + *idx); } + +inline v_int32x4 v_lut(const int* tab, const v_int32x4& idxvec) +{ + const int idx[4] = { + vec_extract(idxvec.val, 0), + vec_extract(idxvec.val, 1), + vec_extract(idxvec.val, 2), + vec_extract(idxvec.val, 3) + }; + return v_int32x4(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]); +} + +inline v_uint32x4 v_lut(const unsigned* tab, const v_int32x4& idxvec) +{ + const int idx[4] = { + vec_extract(idxvec.val, 0), + vec_extract(idxvec.val, 1), + vec_extract(idxvec.val, 2), + vec_extract(idxvec.val, 3) + }; + return v_uint32x4(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]); +} + +inline v_float32x4 v_lut(const float* tab, const v_int32x4& idxvec) +{ + const int idx[4] = { + vec_extract(idxvec.val, 0), + vec_extract(idxvec.val, 1), + vec_extract(idxvec.val, 2), + vec_extract(idxvec.val, 3) + }; + return v_float32x4(tab[idx[0]], tab[idx[1]], tab[idx[2]], tab[idx[3]]); +} + +inline v_float64x2 v_lut(const double* tab, const v_int32x4& idxvec) +{ + const int idx[2] = { + vec_extract(idxvec.val, 0), + vec_extract(idxvec.val, 1) + }; + return v_float64x2(tab[idx[0]], tab[idx[1]]); +} + +inline void v_lut_deinterleave(const float* tab, const v_int32x4& idxvec, v_float32x4& x, v_float32x4& y) +{ + vec_float4 xy0 = vec_ld_l8(tab + vec_extract(idxvec.val, 0)); + vec_float4 xy1 = vec_ld_l8(tab + vec_extract(idxvec.val, 1)); + vec_float4 xy2 = vec_ld_l8(tab + vec_extract(idxvec.val, 2)); + vec_float4 xy3 = vec_ld_l8(tab + vec_extract(idxvec.val, 3)); + vec_float4 xy02 = vec_mergeh(xy0, xy2); // x0, x2, y0, y2 + vec_float4 xy13 = vec_mergeh(xy1, xy3); // x1, x3, y1, y3 + x.val = vec_mergeh(xy02, xy13); + y.val = vec_mergel(xy02, xy13); +} +inline void v_lut_deinterleave(const double* tab, const v_int32x4& idxvec, v_float64x2& x, v_float64x2& y) +{ + vec_double2 xy0 = vsx_ld(vec_extract(idxvec.val, 0), tab); + vec_double2 xy1 = vsx_ld(vec_extract(idxvec.val, 1), tab); + x.val = vec_mergeh(xy0, xy1); + y.val = vec_mergel(xy0, xy1); +} + +inline v_int8x16 v_interleave_pairs(const v_int8x16& vec) +{ + static const vec_uchar16 perm = {0, 2, 1, 3, 4, 6, 5, 7, 8, 10, 9, 11, 12, 14, 13, 15}; + return v_int8x16(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint8x16 v_interleave_pairs(const v_uint8x16& vec) +{ return v_reinterpret_as_u8(v_interleave_pairs(v_reinterpret_as_s8(vec))); } + +inline v_int8x16 v_interleave_quads(const v_int8x16& vec) +{ + static const vec_uchar16 perm = {0, 4, 1, 5, 2, 6, 3, 7, 8, 12, 9, 13, 10, 14, 11, 15}; + return v_int8x16(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint8x16 v_interleave_quads(const v_uint8x16& vec) +{ return v_reinterpret_as_u8(v_interleave_quads(v_reinterpret_as_s8(vec))); } + +inline v_int16x8 v_interleave_pairs(const v_int16x8& vec) +{ + static const vec_uchar16 perm = {0,1, 4,5, 2,3, 6,7, 8,9, 12,13, 10,11, 14,15}; + return v_int16x8(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint16x8 v_interleave_pairs(const v_uint16x8& vec) +{ return v_reinterpret_as_u16(v_interleave_pairs(v_reinterpret_as_s16(vec))); } + +inline v_int16x8 v_interleave_quads(const v_int16x8& vec) +{ + static const vec_uchar16 perm = {0,1, 8,9, 2,3, 10,11, 4,5, 12,13, 6,7, 14,15}; + return v_int16x8(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint16x8 v_interleave_quads(const v_uint16x8& vec) +{ return v_reinterpret_as_u16(v_interleave_quads(v_reinterpret_as_s16(vec))); } + +inline v_int32x4 v_interleave_pairs(const v_int32x4& vec) +{ + static const vec_uchar16 perm = {0,1,2,3, 8,9,10,11, 4,5,6,7, 12,13,14,15}; + return v_int32x4(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint32x4 v_interleave_pairs(const v_uint32x4& vec) +{ return v_reinterpret_as_u32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } +inline v_float32x4 v_interleave_pairs(const v_float32x4& vec) +{ return v_reinterpret_as_f32(v_interleave_pairs(v_reinterpret_as_s32(vec))); } + +inline v_int8x16 v_pack_triplets(const v_int8x16& vec) +{ + static const vec_uchar16 perm = {0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 15, 15, 15}; + return v_int8x16(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint8x16 v_pack_triplets(const v_uint8x16& vec) +{ return v_reinterpret_as_u8(v_pack_triplets(v_reinterpret_as_s8(vec))); } + +inline v_int16x8 v_pack_triplets(const v_int16x8& vec) +{ + static const vec_uchar16 perm = {0,1, 2,3, 4,5, 8,9, 10,11, 12,13, 14,15, 14,15}; + return v_int16x8(vec_perm(vec.val, vec.val, perm)); +} +inline v_uint16x8 v_pack_triplets(const v_uint16x8& vec) +{ return v_reinterpret_as_u16(v_pack_triplets(v_reinterpret_as_s16(vec))); } + +inline v_int32x4 v_pack_triplets(const v_int32x4& vec) +{ return vec; } +inline v_uint32x4 v_pack_triplets(const v_uint32x4& vec) +{ return vec; } +inline v_float32x4 v_pack_triplets(const v_float32x4& vec) +{ return vec; } + +/////// FP16 support //////// + +inline v_float32x4 v_load_expand(const float16_t* ptr) +{ + vec_ushort8 vf16 = vec_ld_l8((const ushort*)ptr); +#if CV_VSX3 && defined(vec_extract_fp_from_shorth) + return v_float32x4(vec_extract_fp_from_shorth(vf16)); +#elif CV_VSX3 && !defined(CV_COMPILER_VSX_BROKEN_ASM) + vec_float4 vf32; + __asm__ __volatile__ ("xvcvhpsp %x0,%x1" : "=wf" (vf32) : "wa" (vec_mergeh(vf16, vf16))); + return v_float32x4(vf32); +#else + const vec_int4 z = vec_int4_z, delta = vec_int4_sp(0x38000000); + const vec_int4 signmask = vec_int4_sp(0x80000000); + const vec_int4 maxexp = vec_int4_sp(0x7c000000); + const vec_float4 deltaf = vec_float4_c(vec_int4_sp(0x38800000)); + + vec_int4 bits = vec_int4_c(vec_mergeh(vec_short8_c(z), vec_short8_c(vf16))); + vec_int4 e = vec_and(bits, maxexp), sign = vec_and(bits, signmask); + vec_int4 t = vec_add(vec_sr(vec_xor(bits, sign), vec_uint4_sp(3)), delta); // ((h & 0x7fff) << 13) + delta + vec_int4 zt = vec_int4_c(vec_sub(vec_float4_c(vec_add(t, vec_int4_sp(1 << 23))), deltaf)); + + t = vec_add(t, vec_and(delta, vec_cmpeq(maxexp, e))); + vec_bint4 zmask = vec_cmpeq(e, z); + vec_int4 ft = vec_sel(t, zt, zmask); + return v_float32x4(vec_float4_c(vec_or(ft, sign))); +#endif +} + +inline void v_pack_store(float16_t* ptr, const v_float32x4& v) +{ +// fixme: Is there any buitin op or intrinsic that cover "xvcvsphp"? +#if CV_VSX3 && !defined(CV_COMPILER_VSX_BROKEN_ASM) + vec_ushort8 vf16; + __asm__ __volatile__ ("xvcvsphp %x0,%x1" : "=wa" (vf16) : "wf" (v.val)); + vec_st_l8(vec_mergesqe(vf16, vf16), ptr); +#else + const vec_int4 signmask = vec_int4_sp(0x80000000); + const vec_int4 rval = vec_int4_sp(0x3f000000); + + vec_int4 t = vec_int4_c(v.val); + vec_int4 sign = vec_sra(vec_and(t, signmask), vec_uint4_sp(16)); + t = vec_and(vec_nor(signmask, signmask), t); + + vec_bint4 finitemask = vec_cmpgt(vec_int4_sp(0x47800000), t); + vec_bint4 isnan = vec_cmpgt(t, vec_int4_sp(0x7f800000)); + vec_int4 naninf = vec_sel(vec_int4_sp(0x7c00), vec_int4_sp(0x7e00), isnan); + vec_bint4 tinymask = vec_cmpgt(vec_int4_sp(0x38800000), t); + vec_int4 tt = vec_int4_c(vec_add(vec_float4_c(t), vec_float4_c(rval))); + tt = vec_sub(tt, rval); + vec_int4 odd = vec_and(vec_sr(t, vec_uint4_sp(13)), vec_int4_sp(1)); + vec_int4 nt = vec_add(t, vec_int4_sp(0xc8000fff)); + nt = vec_sr(vec_add(nt, odd), vec_uint4_sp(13)); + t = vec_sel(nt, tt, tinymask); + t = vec_sel(naninf, t, finitemask); + t = vec_or(t, sign); + vec_st_l8(vec_packs(t, t), ptr); +#endif +} + +inline void v_cleanup() {} + + +/** Reinterpret **/ +/** its up there with load and store operations **/ + +////////// Matrix operations ///////// + +inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b) +{ return v_int32x4(vec_msum(a.val, b.val, vec_int4_z)); } + +inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b, const v_int32x4& c) +{ return v_int32x4(vec_msum(a.val, b.val, c.val)); } + +inline v_float32x4 v_matmul(const v_float32x4& v, const v_float32x4& m0, + const v_float32x4& m1, const v_float32x4& m2, + const v_float32x4& m3) +{ + const vec_float4 v0 = vec_splat(v.val, 0); + const vec_float4 v1 = vec_splat(v.val, 1); + const vec_float4 v2 = vec_splat(v.val, 2); + VSX_UNUSED(const vec_float4) v3 = vec_splat(v.val, 3); + return v_float32x4(vec_madd(v0, m0.val, vec_madd(v1, m1.val, vec_madd(v2, m2.val, vec_mul(v3, m3.val))))); +} + +inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, + const v_float32x4& m1, const v_float32x4& m2, + const v_float32x4& a) +{ + const vec_float4 v0 = vec_splat(v.val, 0); + const vec_float4 v1 = vec_splat(v.val, 1); + const vec_float4 v2 = vec_splat(v.val, 2); + return v_float32x4(vec_madd(v0, m0.val, vec_madd(v1, m1.val, vec_madd(v2, m2.val, a.val)))); +} + +#define OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(_Tpvec, _Tpvec2) \ +inline void v_transpose4x4(const _Tpvec& a0, const _Tpvec& a1, \ + const _Tpvec& a2, const _Tpvec& a3, \ + _Tpvec& b0, _Tpvec& b1, _Tpvec& b2, _Tpvec& b3) \ +{ \ + _Tpvec2 a02 = vec_mergeh(a0.val, a2.val); \ + _Tpvec2 a13 = vec_mergeh(a1.val, a3.val); \ + b0.val = vec_mergeh(a02, a13); \ + b1.val = vec_mergel(a02, a13); \ + a02 = vec_mergel(a0.val, a2.val); \ + a13 = vec_mergel(a1.val, a3.val); \ + b2.val = vec_mergeh(a02, a13); \ + b3.val = vec_mergel(a02, a13); \ +} +OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(v_uint32x4, vec_uint4) +OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(v_int32x4, vec_int4) +OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(v_float32x4, vec_float4) + +//! @name Check SIMD support +//! @{ +//! @brief Check CPU capability of SIMD operation +static inline bool hasSIMD128() +{ + return (CV_CPU_HAS_SUPPORT_VSX) ? true : false; +} + +//! @} + +CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END + +//! @endcond + +} + +#endif // OPENCV_HAL_VSX_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/mat.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/mat.hpp new file mode 100644 index 000000000..703c27858 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/mat.hpp @@ -0,0 +1,3723 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_MAT_HPP +#define OPENCV_CORE_MAT_HPP + +#ifndef __cplusplus +# error mat.hpp header must be compiled as C++ +#endif + +#include "opencv2/core/matx.hpp" +#include "opencv2/core/types.hpp" + +#include "opencv2/core/bufferpool.hpp" + +#include + +namespace cv +{ + +//! @addtogroup core_basic +//! @{ + +enum AccessFlag { ACCESS_READ=1<<24, ACCESS_WRITE=1<<25, + ACCESS_RW=3<<24, ACCESS_MASK=ACCESS_RW, ACCESS_FAST=1<<26 }; +CV_ENUM_FLAGS(AccessFlag) +__CV_ENUM_FLAGS_BITWISE_AND(AccessFlag, int, AccessFlag) + +CV__DEBUG_NS_BEGIN + +class CV_EXPORTS _OutputArray; + +//////////////////////// Input/Output Array Arguments ///////////////////////////////// + +/** @brief This is the proxy class for passing read-only input arrays into OpenCV functions. + +It is defined as: +@code + typedef const _InputArray& InputArray; +@endcode +where _InputArray is a class that can be constructed from `Mat`, `Mat_`, `Matx`, +`std::vector`, `std::vector >`, `std::vector`, `std::vector >`, +`UMat`, `std::vector` or `double`. It can also be constructed from a matrix expression. + +Since this is mostly implementation-level class, and its interface may change in future versions, we +do not describe it in details. There are a few key things, though, that should be kept in mind: + +- When you see in the reference manual or in OpenCV source code a function that takes + InputArray, it means that you can actually pass `Mat`, `Matx`, `vector` etc. (see above the + complete list). +- Optional input arguments: If some of the input arrays may be empty, pass cv::noArray() (or + simply cv::Mat() as you probably did before). +- The class is designed solely for passing parameters. That is, normally you *should not* + declare class members, local and global variables of this type. +- If you want to design your own function or a class method that can operate of arrays of + multiple types, you can use InputArray (or OutputArray) for the respective parameters. Inside + a function you should use _InputArray::getMat() method to construct a matrix header for the + array (without copying data). _InputArray::kind() can be used to distinguish Mat from + `vector<>` etc., but normally it is not needed. + +Here is how you can use a function that takes InputArray : +@code + std::vector vec; + // points or a circle + for( int i = 0; i < 30; i++ ) + vec.push_back(Point2f((float)(100 + 30*cos(i*CV_PI*2/5)), + (float)(100 - 30*sin(i*CV_PI*2/5)))); + cv::transform(vec, vec, cv::Matx23f(0.707, -0.707, 10, 0.707, 0.707, 20)); +@endcode +That is, we form an STL vector containing points, and apply in-place affine transformation to the +vector using the 2x3 matrix created inline as `Matx` instance. + +Here is how such a function can be implemented (for simplicity, we implement a very specific case of +it, according to the assertion statement inside) : +@code + void myAffineTransform(InputArray _src, OutputArray _dst, InputArray _m) + { + // get Mat headers for input arrays. This is O(1) operation, + // unless _src and/or _m are matrix expressions. + Mat src = _src.getMat(), m = _m.getMat(); + CV_Assert( src.type() == CV_32FC2 && m.type() == CV_32F && m.size() == Size(3, 2) ); + + // [re]create the output array so that it has the proper size and type. + // In case of Mat it calls Mat::create, in case of STL vector it calls vector::resize. + _dst.create(src.size(), src.type()); + Mat dst = _dst.getMat(); + + for( int i = 0; i < src.rows; i++ ) + for( int j = 0; j < src.cols; j++ ) + { + Point2f pt = src.at(i, j); + dst.at(i, j) = Point2f(m.at(0, 0)*pt.x + + m.at(0, 1)*pt.y + + m.at(0, 2), + m.at(1, 0)*pt.x + + m.at(1, 1)*pt.y + + m.at(1, 2)); + } + } +@endcode +There is another related type, InputArrayOfArrays, which is currently defined as a synonym for +InputArray: +@code + typedef InputArray InputArrayOfArrays; +@endcode +It denotes function arguments that are either vectors of vectors or vectors of matrices. A separate +synonym is needed to generate Python/Java etc. wrappers properly. At the function implementation +level their use is similar, but _InputArray::getMat(idx) should be used to get header for the +idx-th component of the outer vector and _InputArray::size().area() should be used to find the +number of components (vectors/matrices) of the outer vector. + +In general, type support is limited to cv::Mat types. Other types are forbidden. +But in some cases we need to support passing of custom non-general Mat types, like arrays of cv::KeyPoint, cv::DMatch, etc. +This data is not intented to be interpreted as an image data, or processed somehow like regular cv::Mat. +To pass such custom type use rawIn() / rawOut() / rawInOut() wrappers. +Custom type is wrapped as Mat-compatible `CV_8UC` values (N = sizeof(T), N <= CV_CN_MAX). + */ +class CV_EXPORTS _InputArray +{ +public: + enum KindFlag { + KIND_SHIFT = 16, + FIXED_TYPE = 0x8000 << KIND_SHIFT, + FIXED_SIZE = 0x4000 << KIND_SHIFT, + KIND_MASK = 31 << KIND_SHIFT, + + NONE = 0 << KIND_SHIFT, + MAT = 1 << KIND_SHIFT, + MATX = 2 << KIND_SHIFT, + STD_VECTOR = 3 << KIND_SHIFT, + STD_VECTOR_VECTOR = 4 << KIND_SHIFT, + STD_VECTOR_MAT = 5 << KIND_SHIFT, + EXPR = 6 << KIND_SHIFT, + OPENGL_BUFFER = 7 << KIND_SHIFT, + CUDA_HOST_MEM = 8 << KIND_SHIFT, + CUDA_GPU_MAT = 9 << KIND_SHIFT, + UMAT =10 << KIND_SHIFT, + STD_VECTOR_UMAT =11 << KIND_SHIFT, + STD_BOOL_VECTOR =12 << KIND_SHIFT, + STD_VECTOR_CUDA_GPU_MAT = 13 << KIND_SHIFT, + STD_ARRAY =14 << KIND_SHIFT, + STD_ARRAY_MAT =15 << KIND_SHIFT + }; + + _InputArray(); + _InputArray(int _flags, void* _obj); + _InputArray(const Mat& m); + _InputArray(const MatExpr& expr); + _InputArray(const std::vector& vec); + template _InputArray(const Mat_<_Tp>& m); + template _InputArray(const std::vector<_Tp>& vec); + _InputArray(const std::vector& vec); + template _InputArray(const std::vector >& vec); + _InputArray(const std::vector >&) = delete; // not supported + template _InputArray(const std::vector >& vec); + template _InputArray(const _Tp* vec, int n); + template _InputArray(const Matx<_Tp, m, n>& matx); + _InputArray(const double& val); + _InputArray(const cuda::GpuMat& d_mat); + _InputArray(const std::vector& d_mat_array); + _InputArray(const ogl::Buffer& buf); + _InputArray(const cuda::HostMem& cuda_mem); + template _InputArray(const cudev::GpuMat_<_Tp>& m); + _InputArray(const UMat& um); + _InputArray(const std::vector& umv); + + template _InputArray(const std::array<_Tp, _Nm>& arr); + template _InputArray(const std::array& arr); + + template static _InputArray rawIn(const std::vector<_Tp>& vec); + template static _InputArray rawIn(const std::array<_Tp, _Nm>& arr); + + Mat getMat(int idx=-1) const; + Mat getMat_(int idx=-1) const; + UMat getUMat(int idx=-1) const; + void getMatVector(std::vector& mv) const; + void getUMatVector(std::vector& umv) const; + void getGpuMatVector(std::vector& gpumv) const; + cuda::GpuMat getGpuMat() const; + ogl::Buffer getOGlBuffer() const; + + int getFlags() const; + void* getObj() const; + Size getSz() const; + + _InputArray::KindFlag kind() const; + int dims(int i=-1) const; + int cols(int i=-1) const; + int rows(int i=-1) const; + Size size(int i=-1) const; + int sizend(int* sz, int i=-1) const; + bool sameSize(const _InputArray& arr) const; + size_t total(int i=-1) const; + int type(int i=-1) const; + int depth(int i=-1) const; + int channels(int i=-1) const; + bool isContinuous(int i=-1) const; + bool isSubmatrix(int i=-1) const; + bool empty() const; + void copyTo(const _OutputArray& arr) const; + void copyTo(const _OutputArray& arr, const _InputArray & mask) const; + size_t offset(int i=-1) const; + size_t step(int i=-1) const; + bool isMat() const; + bool isUMat() const; + bool isMatVector() const; + bool isUMatVector() const; + bool isMatx() const; + bool isVector() const; + bool isGpuMat() const; + bool isGpuMatVector() const; + ~_InputArray(); + +protected: + int flags; + void* obj; + Size sz; + + void init(int _flags, const void* _obj); + void init(int _flags, const void* _obj, Size _sz); +}; +CV_ENUM_FLAGS(_InputArray::KindFlag) +__CV_ENUM_FLAGS_BITWISE_AND(_InputArray::KindFlag, int, _InputArray::KindFlag) + +/** @brief This type is very similar to InputArray except that it is used for input/output and output function +parameters. + +Just like with InputArray, OpenCV users should not care about OutputArray, they just pass `Mat`, +`vector` etc. to the functions. The same limitation as for `InputArray`: *Do not explicitly +create OutputArray instances* applies here too. + +If you want to make your function polymorphic (i.e. accept different arrays as output parameters), +it is also not very difficult. Take the sample above as the reference. Note that +_OutputArray::create() needs to be called before _OutputArray::getMat(). This way you guarantee +that the output array is properly allocated. + +Optional output parameters. If you do not need certain output array to be computed and returned to +you, pass cv::noArray(), just like you would in the case of optional input array. At the +implementation level, use _OutputArray::needed() to check if certain output array needs to be +computed or not. + +There are several synonyms for OutputArray that are used to assist automatic Python/Java/... wrapper +generators: +@code + typedef OutputArray OutputArrayOfArrays; + typedef OutputArray InputOutputArray; + typedef OutputArray InputOutputArrayOfArrays; +@endcode + */ +class CV_EXPORTS _OutputArray : public _InputArray +{ +public: + enum DepthMask + { + DEPTH_MASK_8U = 1 << CV_8U, + DEPTH_MASK_8S = 1 << CV_8S, + DEPTH_MASK_16U = 1 << CV_16U, + DEPTH_MASK_16S = 1 << CV_16S, + DEPTH_MASK_32S = 1 << CV_32S, + DEPTH_MASK_32F = 1 << CV_32F, + DEPTH_MASK_64F = 1 << CV_64F, + DEPTH_MASK_16F = 1 << CV_16F, + DEPTH_MASK_ALL = (DEPTH_MASK_64F<<1)-1, + DEPTH_MASK_ALL_BUT_8S = DEPTH_MASK_ALL & ~DEPTH_MASK_8S, + DEPTH_MASK_ALL_16F = (DEPTH_MASK_16F<<1)-1, + DEPTH_MASK_FLT = DEPTH_MASK_32F + DEPTH_MASK_64F + }; + + _OutputArray(); + _OutputArray(int _flags, void* _obj); + _OutputArray(Mat& m); + _OutputArray(std::vector& vec); + _OutputArray(cuda::GpuMat& d_mat); + _OutputArray(std::vector& d_mat); + _OutputArray(ogl::Buffer& buf); + _OutputArray(cuda::HostMem& cuda_mem); + template _OutputArray(cudev::GpuMat_<_Tp>& m); + template _OutputArray(std::vector<_Tp>& vec); + _OutputArray(std::vector& vec) = delete; // not supported + template _OutputArray(std::vector >& vec); + _OutputArray(std::vector >&) = delete; // not supported + template _OutputArray(std::vector >& vec); + template _OutputArray(Mat_<_Tp>& m); + template _OutputArray(_Tp* vec, int n); + template _OutputArray(Matx<_Tp, m, n>& matx); + _OutputArray(UMat& m); + _OutputArray(std::vector& vec); + + _OutputArray(const Mat& m); + _OutputArray(const std::vector& vec); + _OutputArray(const cuda::GpuMat& d_mat); + _OutputArray(const std::vector& d_mat); + _OutputArray(const ogl::Buffer& buf); + _OutputArray(const cuda::HostMem& cuda_mem); + template _OutputArray(const cudev::GpuMat_<_Tp>& m); + template _OutputArray(const std::vector<_Tp>& vec); + template _OutputArray(const std::vector >& vec); + template _OutputArray(const std::vector >& vec); + template _OutputArray(const Mat_<_Tp>& m); + template _OutputArray(const _Tp* vec, int n); + template _OutputArray(const Matx<_Tp, m, n>& matx); + _OutputArray(const UMat& m); + _OutputArray(const std::vector& vec); + + template _OutputArray(std::array<_Tp, _Nm>& arr); + template _OutputArray(const std::array<_Tp, _Nm>& arr); + template _OutputArray(std::array& arr); + template _OutputArray(const std::array& arr); + + template static _OutputArray rawOut(std::vector<_Tp>& vec); + template static _OutputArray rawOut(std::array<_Tp, _Nm>& arr); + + bool fixedSize() const; + bool fixedType() const; + bool needed() const; + Mat& getMatRef(int i=-1) const; + UMat& getUMatRef(int i=-1) const; + cuda::GpuMat& getGpuMatRef() const; + std::vector& getGpuMatVecRef() const; + ogl::Buffer& getOGlBufferRef() const; + cuda::HostMem& getHostMemRef() const; + void create(Size sz, int type, int i=-1, bool allowTransposed=false, _OutputArray::DepthMask fixedDepthMask=static_cast<_OutputArray::DepthMask>(0)) const; + void create(int rows, int cols, int type, int i=-1, bool allowTransposed=false, _OutputArray::DepthMask fixedDepthMask=static_cast<_OutputArray::DepthMask>(0)) const; + void create(int dims, const int* size, int type, int i=-1, bool allowTransposed=false, _OutputArray::DepthMask fixedDepthMask=static_cast<_OutputArray::DepthMask>(0)) const; + void createSameSize(const _InputArray& arr, int mtype) const; + void release() const; + void clear() const; + void setTo(const _InputArray& value, const _InputArray & mask = _InputArray()) const; + + void assign(const UMat& u) const; + void assign(const Mat& m) const; + + void assign(const std::vector& v) const; + void assign(const std::vector& v) const; +}; + + +class CV_EXPORTS _InputOutputArray : public _OutputArray +{ +public: + _InputOutputArray(); + _InputOutputArray(int _flags, void* _obj); + _InputOutputArray(Mat& m); + _InputOutputArray(std::vector& vec); + _InputOutputArray(cuda::GpuMat& d_mat); + _InputOutputArray(ogl::Buffer& buf); + _InputOutputArray(cuda::HostMem& cuda_mem); + template _InputOutputArray(cudev::GpuMat_<_Tp>& m); + template _InputOutputArray(std::vector<_Tp>& vec); + _InputOutputArray(std::vector& vec) = delete; // not supported + template _InputOutputArray(std::vector >& vec); + template _InputOutputArray(std::vector >& vec); + template _InputOutputArray(Mat_<_Tp>& m); + template _InputOutputArray(_Tp* vec, int n); + template _InputOutputArray(Matx<_Tp, m, n>& matx); + _InputOutputArray(UMat& m); + _InputOutputArray(std::vector& vec); + + _InputOutputArray(const Mat& m); + _InputOutputArray(const std::vector& vec); + _InputOutputArray(const cuda::GpuMat& d_mat); + _InputOutputArray(const std::vector& d_mat); + _InputOutputArray(const ogl::Buffer& buf); + _InputOutputArray(const cuda::HostMem& cuda_mem); + template _InputOutputArray(const cudev::GpuMat_<_Tp>& m); + template _InputOutputArray(const std::vector<_Tp>& vec); + template _InputOutputArray(const std::vector >& vec); + template _InputOutputArray(const std::vector >& vec); + template _InputOutputArray(const Mat_<_Tp>& m); + template _InputOutputArray(const _Tp* vec, int n); + template _InputOutputArray(const Matx<_Tp, m, n>& matx); + _InputOutputArray(const UMat& m); + _InputOutputArray(const std::vector& vec); + + template _InputOutputArray(std::array<_Tp, _Nm>& arr); + template _InputOutputArray(const std::array<_Tp, _Nm>& arr); + template _InputOutputArray(std::array& arr); + template _InputOutputArray(const std::array& arr); + + template static _InputOutputArray rawInOut(std::vector<_Tp>& vec); + template _InputOutputArray rawInOut(std::array<_Tp, _Nm>& arr); + +}; + +/** Helper to wrap custom types. @see InputArray */ +template static inline _InputArray rawIn(_Tp& v); +/** Helper to wrap custom types. @see InputArray */ +template static inline _OutputArray rawOut(_Tp& v); +/** Helper to wrap custom types. @see InputArray */ +template static inline _InputOutputArray rawInOut(_Tp& v); + +CV__DEBUG_NS_END + +typedef const _InputArray& InputArray; +typedef InputArray InputArrayOfArrays; +typedef const _OutputArray& OutputArray; +typedef OutputArray OutputArrayOfArrays; +typedef const _InputOutputArray& InputOutputArray; +typedef InputOutputArray InputOutputArrayOfArrays; + +CV_EXPORTS InputOutputArray noArray(); + +/////////////////////////////////// MatAllocator ////////////////////////////////////// + +//! Usage flags for allocator +enum UMatUsageFlags +{ + USAGE_DEFAULT = 0, + + // buffer allocation policy is platform and usage specific + USAGE_ALLOCATE_HOST_MEMORY = 1 << 0, + USAGE_ALLOCATE_DEVICE_MEMORY = 1 << 1, + USAGE_ALLOCATE_SHARED_MEMORY = 1 << 2, // It is not equal to: USAGE_ALLOCATE_HOST_MEMORY | USAGE_ALLOCATE_DEVICE_MEMORY + + __UMAT_USAGE_FLAGS_32BIT = 0x7fffffff // Binary compatibility hint +}; + +struct CV_EXPORTS UMatData; + +/** @brief Custom array allocator +*/ +class CV_EXPORTS MatAllocator +{ +public: + MatAllocator() {} + virtual ~MatAllocator() {} + + // let's comment it off for now to detect and fix all the uses of allocator + //virtual void allocate(int dims, const int* sizes, int type, int*& refcount, + // uchar*& datastart, uchar*& data, size_t* step) = 0; + //virtual void deallocate(int* refcount, uchar* datastart, uchar* data) = 0; + virtual UMatData* allocate(int dims, const int* sizes, int type, + void* data, size_t* step, AccessFlag flags, UMatUsageFlags usageFlags) const = 0; + virtual bool allocate(UMatData* data, AccessFlag accessflags, UMatUsageFlags usageFlags) const = 0; + virtual void deallocate(UMatData* data) const = 0; + virtual void map(UMatData* data, AccessFlag accessflags) const; + virtual void unmap(UMatData* data) const; + virtual void download(UMatData* data, void* dst, int dims, const size_t sz[], + const size_t srcofs[], const size_t srcstep[], + const size_t dststep[]) const; + virtual void upload(UMatData* data, const void* src, int dims, const size_t sz[], + const size_t dstofs[], const size_t dststep[], + const size_t srcstep[]) const; + virtual void copy(UMatData* srcdata, UMatData* dstdata, int dims, const size_t sz[], + const size_t srcofs[], const size_t srcstep[], + const size_t dstofs[], const size_t dststep[], bool sync) const; + + // default implementation returns DummyBufferPoolController + virtual BufferPoolController* getBufferPoolController(const char* id = NULL) const; +}; + + +//////////////////////////////// MatCommaInitializer ////////////////////////////////// + +/** @brief Comma-separated Matrix Initializer + + The class instances are usually not created explicitly. + Instead, they are created on "matrix << firstValue" operator. + + The sample below initializes 2x2 rotation matrix: + + \code + double angle = 30, a = cos(angle*CV_PI/180), b = sin(angle*CV_PI/180); + Mat R = (Mat_(2,2) << a, -b, b, a); + \endcode +*/ +template class MatCommaInitializer_ +{ +public: + //! the constructor, created by "matrix << firstValue" operator, where matrix is cv::Mat + MatCommaInitializer_(Mat_<_Tp>* _m); + //! the operator that takes the next value and put it to the matrix + template MatCommaInitializer_<_Tp>& operator , (T2 v); + //! another form of conversion operator + operator Mat_<_Tp>() const; +protected: + MatIterator_<_Tp> it; +}; + + +/////////////////////////////////////// Mat /////////////////////////////////////////// + +// note that umatdata might be allocated together +// with the matrix data, not as a separate object. +// therefore, it does not have constructor or destructor; +// it should be explicitly initialized using init(). +struct CV_EXPORTS UMatData +{ + enum MemoryFlag { COPY_ON_MAP=1, HOST_COPY_OBSOLETE=2, + DEVICE_COPY_OBSOLETE=4, TEMP_UMAT=8, TEMP_COPIED_UMAT=24, + USER_ALLOCATED=32, DEVICE_MEM_MAPPED=64, + ASYNC_CLEANUP=128 + }; + UMatData(const MatAllocator* allocator); + ~UMatData(); + + // provide atomic access to the structure + void lock(); + void unlock(); + + bool hostCopyObsolete() const; + bool deviceCopyObsolete() const; + bool deviceMemMapped() const; + bool copyOnMap() const; + bool tempUMat() const; + bool tempCopiedUMat() const; + void markHostCopyObsolete(bool flag); + void markDeviceCopyObsolete(bool flag); + void markDeviceMemMapped(bool flag); + + const MatAllocator* prevAllocator; + const MatAllocator* currAllocator; + int urefcount; + int refcount; + uchar* data; + uchar* origdata; + size_t size; + + UMatData::MemoryFlag flags; + void* handle; + void* userdata; + int allocatorFlags_; + int mapcount; + UMatData* originalUMatData; +}; +CV_ENUM_FLAGS(UMatData::MemoryFlag) + + +struct CV_EXPORTS MatSize +{ + explicit MatSize(int* _p); + int dims() const; + Size operator()() const; + const int& operator[](int i) const; + int& operator[](int i); + operator const int*() const; // TODO OpenCV 4.0: drop this + bool operator == (const MatSize& sz) const; + bool operator != (const MatSize& sz) const; + + int* p; +}; + +struct CV_EXPORTS MatStep +{ + MatStep(); + explicit MatStep(size_t s); + const size_t& operator[](int i) const; + size_t& operator[](int i); + operator size_t() const; + MatStep& operator = (size_t s); + + size_t* p; + size_t buf[2]; +protected: + MatStep& operator = (const MatStep&); +}; + +/** @example samples/cpp/cout_mat.cpp +An example demonstrating the serial out capabilities of cv::Mat +*/ + + /** @brief n-dimensional dense array class \anchor CVMat_Details + +The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It +can be used to store real or complex-valued vectors and matrices, grayscale or color images, voxel +volumes, vector fields, point clouds, tensors, histograms (though, very high-dimensional histograms +may be better stored in a SparseMat ). The data layout of the array `M` is defined by the array +`M.step[]`, so that the address of element \f$(i_0,...,i_{M.dims-1})\f$, where \f$0\leq i_k= M.step[i+1]` (in fact, `M.step[i] >= M.step[i+1]*M.size[i+1]` ). This means +that 2-dimensional matrices are stored row-by-row, 3-dimensional matrices are stored plane-by-plane, +and so on. M.step[M.dims-1] is minimal and always equal to the element size M.elemSize() . + +So, the data layout in Mat is compatible with the majority of dense array types from the standard +toolkits and SDKs, such as Numpy (ndarray), Win32 (independent device bitmaps), and others, +that is, with any array that uses *steps* (or *strides*) to compute the position of a pixel. +Due to this compatibility, it is possible to make a Mat header for user-allocated data and process +it in-place using OpenCV functions. + +There are many different ways to create a Mat object. The most popular options are listed below: + +- Use the create(nrows, ncols, type) method or the similar Mat(nrows, ncols, type[, fillValue]) +constructor. A new array of the specified size and type is allocated. type has the same meaning as +in the cvCreateMat method. For example, CV_8UC1 means a 8-bit single-channel array, CV_32FC2 +means a 2-channel (complex) floating-point array, and so on. +@code + // make a 7x7 complex matrix filled with 1+3j. + Mat M(7,7,CV_32FC2,Scalar(1,3)); + // and now turn M to a 100x60 15-channel 8-bit matrix. + // The old content will be deallocated + M.create(100,60,CV_8UC(15)); +@endcode +As noted in the introduction to this chapter, create() allocates only a new array when the shape +or type of the current array are different from the specified ones. + +- Create a multi-dimensional array: +@code + // create a 100x100x100 8-bit array + int sz[] = {100, 100, 100}; + Mat bigCube(3, sz, CV_8U, Scalar::all(0)); +@endcode +It passes the number of dimensions =1 to the Mat constructor but the created array will be +2-dimensional with the number of columns set to 1. So, Mat::dims is always \>= 2 (can also be 0 +when the array is empty). + +- Use a copy constructor or assignment operator where there can be an array or expression on the +right side (see below). As noted in the introduction, the array assignment is an O(1) operation +because it only copies the header and increases the reference counter. The Mat::clone() method can +be used to get a full (deep) copy of the array when you need it. + +- Construct a header for a part of another array. It can be a single row, single column, several +rows, several columns, rectangular region in the array (called a *minor* in algebra) or a +diagonal. Such operations are also O(1) because the new header references the same data. You can +actually modify a part of the array using this feature, for example: +@code + // add the 5-th row, multiplied by 3 to the 3rd row + M.row(3) = M.row(3) + M.row(5)*3; + // now copy the 7-th column to the 1-st column + // M.col(1) = M.col(7); // this will not work + Mat M1 = M.col(1); + M.col(7).copyTo(M1); + // create a new 320x240 image + Mat img(Size(320,240),CV_8UC3); + // select a ROI + Mat roi(img, Rect(10,10,100,100)); + // fill the ROI with (0,255,0) (which is green in RGB space); + // the original 320x240 image will be modified + roi = Scalar(0,255,0); +@endcode +Due to the additional datastart and dataend members, it is possible to compute a relative +sub-array position in the main *container* array using locateROI(): +@code + Mat A = Mat::eye(10, 10, CV_32S); + // extracts A columns, 1 (inclusive) to 3 (exclusive). + Mat B = A(Range::all(), Range(1, 3)); + // extracts B rows, 5 (inclusive) to 9 (exclusive). + // that is, C \~ A(Range(5, 9), Range(1, 3)) + Mat C = B(Range(5, 9), Range::all()); + Size size; Point ofs; + C.locateROI(size, ofs); + // size will be (width=10,height=10) and the ofs will be (x=1, y=5) +@endcode +As in case of whole matrices, if you need a deep copy, use the `clone()` method of the extracted +sub-matrices. + +- Make a header for user-allocated data. It can be useful to do the following: + -# Process "foreign" data using OpenCV (for example, when you implement a DirectShow\* filter or + a processing module for gstreamer, and so on). For example: + @code + void process_video_frame(const unsigned char* pixels, + int width, int height, int step) + { + Mat img(height, width, CV_8UC3, pixels, step); + GaussianBlur(img, img, Size(7,7), 1.5, 1.5); + } + @endcode + -# Quickly initialize small matrices and/or get a super-fast element access. + @code + double m[3][3] = {{a, b, c}, {d, e, f}, {g, h, i}}; + Mat M = Mat(3, 3, CV_64F, m).inv(); + @endcode + . + +- Use MATLAB-style array initializers, zeros(), ones(), eye(), for example: +@code + // create a double-precision identity matrix and add it to M. + M += Mat::eye(M.rows, M.cols, CV_64F); +@endcode + +- Use a comma-separated initializer: +@code + // create a 3x3 double-precision identity matrix + Mat M = (Mat_(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1); +@endcode +With this approach, you first call a constructor of the Mat class with the proper parameters, and +then you just put `<< operator` followed by comma-separated values that can be constants, +variables, expressions, and so on. Also, note the extra parentheses required to avoid compilation +errors. + +Once the array is created, it is automatically managed via a reference-counting mechanism. If the +array header is built on top of user-allocated data, you should handle the data by yourself. The +array data is deallocated when no one points to it. If you want to release the data pointed by a +array header before the array destructor is called, use Mat::release(). + +The next important thing to learn about the array class is element access. This manual already +described how to compute an address of each array element. Normally, you are not required to use the +formula directly in the code. If you know the array element type (which can be retrieved using the +method Mat::type() ), you can access the element \f$M_{ij}\f$ of a 2-dimensional array as: +@code + M.at(i,j) += 1.f; +@endcode +assuming that `M` is a double-precision floating-point array. There are several variants of the method +at for a different number of dimensions. + +If you need to process a whole row of a 2D array, the most efficient way is to get the pointer to +the row first, and then just use the plain C operator [] : +@code + // compute sum of positive matrix elements + // (assuming that M is a double-precision matrix) + double sum=0; + for(int i = 0; i < M.rows; i++) + { + const double* Mi = M.ptr(i); + for(int j = 0; j < M.cols; j++) + sum += std::max(Mi[j], 0.); + } +@endcode +Some operations, like the one above, do not actually depend on the array shape. They just process +elements of an array one by one (or elements from multiple arrays that have the same coordinates, +for example, array addition). Such operations are called *element-wise*. It makes sense to check +whether all the input/output arrays are continuous, namely, have no gaps at the end of each row. If +yes, process them as a long single row: +@code + // compute the sum of positive matrix elements, optimized variant + double sum=0; + int cols = M.cols, rows = M.rows; + if(M.isContinuous()) + { + cols *= rows; + rows = 1; + } + for(int i = 0; i < rows; i++) + { + const double* Mi = M.ptr(i); + for(int j = 0; j < cols; j++) + sum += std::max(Mi[j], 0.); + } +@endcode +In case of the continuous matrix, the outer loop body is executed just once. So, the overhead is +smaller, which is especially noticeable in case of small matrices. + +Finally, there are STL-style iterators that are smart enough to skip gaps between successive rows: +@code + // compute sum of positive matrix elements, iterator-based variant + double sum=0; + MatConstIterator_ it = M.begin(), it_end = M.end(); + for(; it != it_end; ++it) + sum += std::max(*it, 0.); +@endcode +The matrix iterators are random-access iterators, so they can be passed to any STL algorithm, +including std::sort(). + +@note Matrix Expressions and arithmetic see MatExpr +*/ +class CV_EXPORTS Mat +{ +public: + /** + These are various constructors that form a matrix. As noted in the AutomaticAllocation, often + the default constructor is enough, and the proper matrix will be allocated by an OpenCV function. + The constructed matrix can further be assigned to another matrix or matrix expression or can be + allocated with Mat::create . In the former case, the old content is de-referenced. + */ + Mat(); + + /** @overload + @param rows Number of rows in a 2D array. + @param cols Number of columns in a 2D array. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + */ + Mat(int rows, int cols, int type); + + /** @overload + @param size 2D array size: Size(cols, rows) . In the Size() constructor, the number of rows and the + number of columns go in the reverse order. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + */ + Mat(Size size, int type); + + /** @overload + @param rows Number of rows in a 2D array. + @param cols Number of columns in a 2D array. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param s An optional value to initialize each matrix element with. To set all the matrix elements to + the particular value after the construction, use the assignment operator + Mat::operator=(const Scalar& value) . + */ + Mat(int rows, int cols, int type, const Scalar& s); + + /** @overload + @param size 2D array size: Size(cols, rows) . In the Size() constructor, the number of rows and the + number of columns go in the reverse order. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param s An optional value to initialize each matrix element with. To set all the matrix elements to + the particular value after the construction, use the assignment operator + Mat::operator=(const Scalar& value) . + */ + Mat(Size size, int type, const Scalar& s); + + /** @overload + @param ndims Array dimensionality. + @param sizes Array of integers specifying an n-dimensional array shape. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + */ + Mat(int ndims, const int* sizes, int type); + + /** @overload + @param sizes Array of integers specifying an n-dimensional array shape. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + */ + Mat(const std::vector& sizes, int type); + + /** @overload + @param ndims Array dimensionality. + @param sizes Array of integers specifying an n-dimensional array shape. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param s An optional value to initialize each matrix element with. To set all the matrix elements to + the particular value after the construction, use the assignment operator + Mat::operator=(const Scalar& value) . + */ + Mat(int ndims, const int* sizes, int type, const Scalar& s); + + /** @overload + @param sizes Array of integers specifying an n-dimensional array shape. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param s An optional value to initialize each matrix element with. To set all the matrix elements to + the particular value after the construction, use the assignment operator + Mat::operator=(const Scalar& value) . + */ + Mat(const std::vector& sizes, int type, const Scalar& s); + + + /** @overload + @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied + by these constructors. Instead, the header pointing to m data or its sub-array is constructed and + associated with it. The reference counter, if any, is incremented. So, when you modify the matrix + formed using such a constructor, you also modify the corresponding elements of m . If you want to + have an independent copy of the sub-array, use Mat::clone() . + */ + Mat(const Mat& m); + + /** @overload + @param rows Number of rows in a 2D array. + @param cols Number of columns in a 2D array. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param data Pointer to the user data. Matrix constructors that take data and step parameters do not + allocate matrix data. Instead, they just initialize the matrix header that points to the specified + data, which means that no data is copied. This operation is very efficient and can be used to + process external data using OpenCV functions. The external data is not automatically deallocated, so + you should take care of it. + @param step Number of bytes each matrix row occupies. The value should include the padding bytes at + the end of each row, if any. If the parameter is missing (set to AUTO_STEP ), no padding is assumed + and the actual step is calculated as cols*elemSize(). See Mat::elemSize. + */ + Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP); + + /** @overload + @param size 2D array size: Size(cols, rows) . In the Size() constructor, the number of rows and the + number of columns go in the reverse order. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param data Pointer to the user data. Matrix constructors that take data and step parameters do not + allocate matrix data. Instead, they just initialize the matrix header that points to the specified + data, which means that no data is copied. This operation is very efficient and can be used to + process external data using OpenCV functions. The external data is not automatically deallocated, so + you should take care of it. + @param step Number of bytes each matrix row occupies. The value should include the padding bytes at + the end of each row, if any. If the parameter is missing (set to AUTO_STEP ), no padding is assumed + and the actual step is calculated as cols*elemSize(). See Mat::elemSize. + */ + Mat(Size size, int type, void* data, size_t step=AUTO_STEP); + + /** @overload + @param ndims Array dimensionality. + @param sizes Array of integers specifying an n-dimensional array shape. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param data Pointer to the user data. Matrix constructors that take data and step parameters do not + allocate matrix data. Instead, they just initialize the matrix header that points to the specified + data, which means that no data is copied. This operation is very efficient and can be used to + process external data using OpenCV functions. The external data is not automatically deallocated, so + you should take care of it. + @param steps Array of ndims-1 steps in case of a multi-dimensional array (the last step is always + set to the element size). If not specified, the matrix is assumed to be continuous. + */ + Mat(int ndims, const int* sizes, int type, void* data, const size_t* steps=0); + + /** @overload + @param sizes Array of integers specifying an n-dimensional array shape. + @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param data Pointer to the user data. Matrix constructors that take data and step parameters do not + allocate matrix data. Instead, they just initialize the matrix header that points to the specified + data, which means that no data is copied. This operation is very efficient and can be used to + process external data using OpenCV functions. The external data is not automatically deallocated, so + you should take care of it. + @param steps Array of ndims-1 steps in case of a multi-dimensional array (the last step is always + set to the element size). If not specified, the matrix is assumed to be continuous. + */ + Mat(const std::vector& sizes, int type, void* data, const size_t* steps=0); + + /** @overload + @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied + by these constructors. Instead, the header pointing to m data or its sub-array is constructed and + associated with it. The reference counter, if any, is incremented. So, when you modify the matrix + formed using such a constructor, you also modify the corresponding elements of m . If you want to + have an independent copy of the sub-array, use Mat::clone() . + @param rowRange Range of the m rows to take. As usual, the range start is inclusive and the range + end is exclusive. Use Range::all() to take all the rows. + @param colRange Range of the m columns to take. Use Range::all() to take all the columns. + */ + Mat(const Mat& m, const Range& rowRange, const Range& colRange=Range::all()); + + /** @overload + @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied + by these constructors. Instead, the header pointing to m data or its sub-array is constructed and + associated with it. The reference counter, if any, is incremented. So, when you modify the matrix + formed using such a constructor, you also modify the corresponding elements of m . If you want to + have an independent copy of the sub-array, use Mat::clone() . + @param roi Region of interest. + */ + Mat(const Mat& m, const Rect& roi); + + /** @overload + @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied + by these constructors. Instead, the header pointing to m data or its sub-array is constructed and + associated with it. The reference counter, if any, is incremented. So, when you modify the matrix + formed using such a constructor, you also modify the corresponding elements of m . If you want to + have an independent copy of the sub-array, use Mat::clone() . + @param ranges Array of selected ranges of m along each dimensionality. + */ + Mat(const Mat& m, const Range* ranges); + + /** @overload + @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied + by these constructors. Instead, the header pointing to m data or its sub-array is constructed and + associated with it. The reference counter, if any, is incremented. So, when you modify the matrix + formed using such a constructor, you also modify the corresponding elements of m . If you want to + have an independent copy of the sub-array, use Mat::clone() . + @param ranges Array of selected ranges of m along each dimensionality. + */ + Mat(const Mat& m, const std::vector& ranges); + + /** @overload + @param vec STL vector whose elements form the matrix. The matrix has a single column and the number + of rows equal to the number of vector elements. Type of the matrix matches the type of vector + elements. The constructor can handle arbitrary types, for which there is a properly declared + DataType . This means that the vector elements must be primitive numbers or uni-type numerical + tuples of numbers. Mixed-type structures are not supported. The corresponding constructor is + explicit. Since STL vectors are not automatically converted to Mat instances, you should write + Mat(vec) explicitly. Unless you copy the data into the matrix ( copyData=true ), no new elements + will be added to the vector because it can potentially yield vector data reallocation, and, thus, + the matrix data pointer will be invalid. + @param copyData Flag to specify whether the underlying data of the STL vector should be copied + to (true) or shared with (false) the newly constructed matrix. When the data is copied, the + allocated buffer is managed using Mat reference counting mechanism. While the data is shared, + the reference counter is NULL, and you should not deallocate the data until the matrix is not + destructed. + */ + template explicit Mat(const std::vector<_Tp>& vec, bool copyData=false); + + /** @overload + */ + template::value>::type> + explicit Mat(const std::initializer_list<_Tp> list); + + /** @overload + */ + template explicit Mat(const std::initializer_list sizes, const std::initializer_list<_Tp> list); + + /** @overload + */ + template explicit Mat(const std::array<_Tp, _Nm>& arr, bool copyData=false); + + /** @overload + */ + template explicit Mat(const Vec<_Tp, n>& vec, bool copyData=true); + + /** @overload + */ + template explicit Mat(const Matx<_Tp, m, n>& mtx, bool copyData=true); + + /** @overload + */ + template explicit Mat(const Point_<_Tp>& pt, bool copyData=true); + + /** @overload + */ + template explicit Mat(const Point3_<_Tp>& pt, bool copyData=true); + + /** @overload + */ + template explicit Mat(const MatCommaInitializer_<_Tp>& commaInitializer); + + //! download data from GpuMat + explicit Mat(const cuda::GpuMat& m); + + //! destructor - calls release() + ~Mat(); + + /** @brief assignment operators + + These are available assignment operators. Since they all are very different, make sure to read the + operator parameters description. + @param m Assigned, right-hand-side matrix. Matrix assignment is an O(1) operation. This means that + no data is copied but the data is shared and the reference counter, if any, is incremented. Before + assigning new data, the old data is de-referenced via Mat::release . + */ + Mat& operator = (const Mat& m); + + /** @overload + @param expr Assigned matrix expression object. As opposite to the first form of the assignment + operation, the second form can reuse already allocated matrix if it has the right size and type to + fit the matrix expression result. It is automatically handled by the real function that the matrix + expressions is expanded to. For example, C=A+B is expanded to add(A, B, C), and add takes care of + automatic C reallocation. + */ + Mat& operator = (const MatExpr& expr); + + //! retrieve UMat from Mat + UMat getUMat(AccessFlag accessFlags, UMatUsageFlags usageFlags = USAGE_DEFAULT) const; + + /** @brief Creates a matrix header for the specified matrix row. + + The method makes a new header for the specified matrix row and returns it. This is an O(1) + operation, regardless of the matrix size. The underlying data of the new matrix is shared with the + original matrix. Here is the example of one of the classical basic matrix processing operations, + axpy, used by LU and many other algorithms: + @code + inline void matrix_axpy(Mat& A, int i, int j, double alpha) + { + A.row(i) += A.row(j)*alpha; + } + @endcode + @note In the current implementation, the following code does not work as expected: + @code + Mat A; + ... + A.row(i) = A.row(j); // will not work + @endcode + This happens because A.row(i) forms a temporary header that is further assigned to another header. + Remember that each of these operations is O(1), that is, no data is copied. Thus, the above + assignment is not true if you may have expected the j-th row to be copied to the i-th row. To + achieve that, you should either turn this simple assignment into an expression or use the + Mat::copyTo method: + @code + Mat A; + ... + // works, but looks a bit obscure. + A.row(i) = A.row(j) + 0; + // this is a bit longer, but the recommended method. + A.row(j).copyTo(A.row(i)); + @endcode + @param y A 0-based row index. + */ + Mat row(int y) const; + + /** @brief Creates a matrix header for the specified matrix column. + + The method makes a new header for the specified matrix column and returns it. This is an O(1) + operation, regardless of the matrix size. The underlying data of the new matrix is shared with the + original matrix. See also the Mat::row description. + @param x A 0-based column index. + */ + Mat col(int x) const; + + /** @brief Creates a matrix header for the specified row span. + + The method makes a new header for the specified row span of the matrix. Similarly to Mat::row and + Mat::col , this is an O(1) operation. + @param startrow An inclusive 0-based start index of the row span. + @param endrow An exclusive 0-based ending index of the row span. + */ + Mat rowRange(int startrow, int endrow) const; + + /** @overload + @param r Range structure containing both the start and the end indices. + */ + Mat rowRange(const Range& r) const; + + /** @brief Creates a matrix header for the specified column span. + + The method makes a new header for the specified column span of the matrix. Similarly to Mat::row and + Mat::col , this is an O(1) operation. + @param startcol An inclusive 0-based start index of the column span. + @param endcol An exclusive 0-based ending index of the column span. + */ + Mat colRange(int startcol, int endcol) const; + + /** @overload + @param r Range structure containing both the start and the end indices. + */ + Mat colRange(const Range& r) const; + + /** @brief Extracts a diagonal from a matrix + + The method makes a new header for the specified matrix diagonal. The new matrix is represented as a + single-column matrix. Similarly to Mat::row and Mat::col, this is an O(1) operation. + @param d index of the diagonal, with the following values: + - `d=0` is the main diagonal. + - `d<0` is a diagonal from the lower half. For example, d=-1 means the diagonal is set + immediately below the main one. + - `d>0` is a diagonal from the upper half. For example, d=1 means the diagonal is set + immediately above the main one. + For example: + @code + Mat m = (Mat_(3,3) << + 1,2,3, + 4,5,6, + 7,8,9); + Mat d0 = m.diag(0); + Mat d1 = m.diag(1); + Mat d_1 = m.diag(-1); + @endcode + The resulting matrices are + @code + d0 = + [1; + 5; + 9] + d1 = + [2; + 6] + d_1 = + [4; + 8] + @endcode + */ + Mat diag(int d=0) const; + + /** @brief creates a diagonal matrix + + The method creates a square diagonal matrix from specified main diagonal. + @param d One-dimensional matrix that represents the main diagonal. + */ + static Mat diag(const Mat& d); + + /** @brief Creates a full copy of the array and the underlying data. + + The method creates a full copy of the array. The original step[] is not taken into account. So, the + array copy is a continuous array occupying total()*elemSize() bytes. + */ + Mat clone() const CV_NODISCARD; + + /** @brief Copies the matrix to another one. + + The method copies the matrix data to another matrix. Before copying the data, the method invokes : + @code + m.create(this->size(), this->type()); + @endcode + so that the destination matrix is reallocated if needed. While m.copyTo(m); works flawlessly, the + function does not handle the case of a partial overlap between the source and the destination + matrices. + + When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, + the newly allocated matrix is initialized with all zeros before copying the data. + @param m Destination matrix. If it does not have a proper size or type before the operation, it is + reallocated. + */ + void copyTo( OutputArray m ) const; + + /** @overload + @param m Destination matrix. If it does not have a proper size or type before the operation, it is + reallocated. + @param mask Operation mask of the same size as \*this. Its non-zero elements indicate which matrix + elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels. + */ + void copyTo( OutputArray m, InputArray mask ) const; + + /** @brief Converts an array to another data type with optional scaling. + + The method converts source pixel values to the target data type. saturate_cast\<\> is applied at + the end to avoid possible overflows: + + \f[m(x,y) = saturate \_ cast( \alpha (*this)(x,y) + \beta )\f] + @param m output matrix; if it does not have a proper size or type before the operation, it is + reallocated. + @param rtype desired output matrix type or, rather, the depth since the number of channels are the + same as the input has; if rtype is negative, the output matrix will have the same type as the input. + @param alpha optional scale factor. + @param beta optional delta added to the scaled values. + */ + void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const; + + /** @brief Provides a functional form of convertTo. + + This is an internally used method called by the @ref MatrixExpressions engine. + @param m Destination array. + @param type Desired destination array depth (or -1 if it should be the same as the source type). + */ + void assignTo( Mat& m, int type=-1 ) const; + + /** @brief Sets all or some of the array elements to the specified value. + @param s Assigned scalar converted to the actual array type. + */ + Mat& operator = (const Scalar& s); + + /** @brief Sets all or some of the array elements to the specified value. + + This is an advanced variant of the Mat::operator=(const Scalar& s) operator. + @param value Assigned scalar converted to the actual array type. + @param mask Operation mask of the same size as \*this. Its non-zero elements indicate which matrix + elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels + */ + Mat& setTo(InputArray value, InputArray mask=noArray()); + + /** @brief Changes the shape and/or the number of channels of a 2D matrix without copying the data. + + The method makes a new matrix header for \*this elements. The new matrix may have a different size + and/or different number of channels. Any combination is possible if: + - No extra elements are included into the new matrix and no elements are excluded. Consequently, + the product rows\*cols\*channels() must stay the same after the transformation. + - No data is copied. That is, this is an O(1) operation. Consequently, if you change the number of + rows, or the operation changes the indices of elements row in some other way, the matrix must be + continuous. See Mat::isContinuous . + + For example, if there is a set of 3D points stored as an STL vector, and you want to represent the + points as a 3xN matrix, do the following: + @code + std::vector vec; + ... + Mat pointMat = Mat(vec). // convert vector to Mat, O(1) operation + reshape(1). // make Nx3 1-channel matrix out of Nx1 3-channel. + // Also, an O(1) operation + t(); // finally, transpose the Nx3 matrix. + // This involves copying all the elements + @endcode + @param cn New number of channels. If the parameter is 0, the number of channels remains the same. + @param rows New number of rows. If the parameter is 0, the number of rows remains the same. + */ + Mat reshape(int cn, int rows=0) const; + + /** @overload */ + Mat reshape(int cn, int newndims, const int* newsz) const; + + /** @overload */ + Mat reshape(int cn, const std::vector& newshape) const; + + /** @brief Transposes a matrix. + + The method performs matrix transposition by means of matrix expressions. It does not perform the + actual transposition but returns a temporary matrix transposition object that can be further used as + a part of more complex matrix expressions or can be assigned to a matrix: + @code + Mat A1 = A + Mat::eye(A.size(), A.type())*lambda; + Mat C = A1.t()*A1; // compute (A + lambda*I)^t * (A + lamda*I) + @endcode + */ + MatExpr t() const; + + /** @brief Inverses a matrix. + + The method performs a matrix inversion by means of matrix expressions. This means that a temporary + matrix inversion object is returned by the method and can be used further as a part of more complex + matrix expressions or can be assigned to a matrix. + @param method Matrix inversion method. One of cv::DecompTypes + */ + MatExpr inv(int method=DECOMP_LU) const; + + /** @brief Performs an element-wise multiplication or division of the two matrices. + + The method returns a temporary object encoding per-element array multiplication, with optional + scale. Note that this is not a matrix multiplication that corresponds to a simpler "\*" operator. + + Example: + @code + Mat C = A.mul(5/B); // equivalent to divide(A, B, C, 5) + @endcode + @param m Another array of the same type and the same size as \*this, or a matrix expression. + @param scale Optional scale factor. + */ + MatExpr mul(InputArray m, double scale=1) const; + + /** @brief Computes a cross-product of two 3-element vectors. + + The method computes a cross-product of two 3-element vectors. The vectors must be 3-element + floating-point vectors of the same shape and size. The result is another 3-element vector of the + same shape and type as operands. + @param m Another cross-product operand. + */ + Mat cross(InputArray m) const; + + /** @brief Computes a dot-product of two vectors. + + The method computes a dot-product of two matrices. If the matrices are not single-column or + single-row vectors, the top-to-bottom left-to-right scan ordering is used to treat them as 1D + vectors. The vectors must have the same size and type. If the matrices have more than one channel, + the dot products from all the channels are summed together. + @param m another dot-product operand. + */ + double dot(InputArray m) const; + + /** @brief Returns a zero array of the specified size and type. + + The method returns a Matlab-style zero array initializer. It can be used to quickly form a constant + array as a function parameter, part of a matrix expression, or as a matrix initializer: + @code + Mat A; + A = Mat::zeros(3, 3, CV_32F); + @endcode + In the example above, a new matrix is allocated only if A is not a 3x3 floating-point matrix. + Otherwise, the existing matrix A is filled with zeros. + @param rows Number of rows. + @param cols Number of columns. + @param type Created matrix type. + */ + static MatExpr zeros(int rows, int cols, int type); + + /** @overload + @param size Alternative to the matrix size specification Size(cols, rows) . + @param type Created matrix type. + */ + static MatExpr zeros(Size size, int type); + + /** @overload + @param ndims Array dimensionality. + @param sz Array of integers specifying the array shape. + @param type Created matrix type. + */ + static MatExpr zeros(int ndims, const int* sz, int type); + + /** @brief Returns an array of all 1's of the specified size and type. + + The method returns a Matlab-style 1's array initializer, similarly to Mat::zeros. Note that using + this method you can initialize an array with an arbitrary value, using the following Matlab idiom: + @code + Mat A = Mat::ones(100, 100, CV_8U)*3; // make 100x100 matrix filled with 3. + @endcode + The above operation does not form a 100x100 matrix of 1's and then multiply it by 3. Instead, it + just remembers the scale factor (3 in this case) and use it when actually invoking the matrix + initializer. + @note In case of multi-channels type, only the first channel will be initialized with 1's, the + others will be set to 0's. + @param rows Number of rows. + @param cols Number of columns. + @param type Created matrix type. + */ + static MatExpr ones(int rows, int cols, int type); + + /** @overload + @param size Alternative to the matrix size specification Size(cols, rows) . + @param type Created matrix type. + */ + static MatExpr ones(Size size, int type); + + /** @overload + @param ndims Array dimensionality. + @param sz Array of integers specifying the array shape. + @param type Created matrix type. + */ + static MatExpr ones(int ndims, const int* sz, int type); + + /** @brief Returns an identity matrix of the specified size and type. + + The method returns a Matlab-style identity matrix initializer, similarly to Mat::zeros. Similarly to + Mat::ones, you can use a scale operation to create a scaled identity matrix efficiently: + @code + // make a 4x4 diagonal matrix with 0.1's on the diagonal. + Mat A = Mat::eye(4, 4, CV_32F)*0.1; + @endcode + @note In case of multi-channels type, identity matrix will be initialized only for the first channel, + the others will be set to 0's + @param rows Number of rows. + @param cols Number of columns. + @param type Created matrix type. + */ + static MatExpr eye(int rows, int cols, int type); + + /** @overload + @param size Alternative matrix size specification as Size(cols, rows) . + @param type Created matrix type. + */ + static MatExpr eye(Size size, int type); + + /** @brief Allocates new array data if needed. + + This is one of the key Mat methods. Most new-style OpenCV functions and methods that produce arrays + call this method for each output array. The method uses the following algorithm: + + -# If the current array shape and the type match the new ones, return immediately. Otherwise, + de-reference the previous data by calling Mat::release. + -# Initialize the new header. + -# Allocate the new data of total()\*elemSize() bytes. + -# Allocate the new, associated with the data, reference counter and set it to 1. + + Such a scheme makes the memory management robust and efficient at the same time and helps avoid + extra typing for you. This means that usually there is no need to explicitly allocate output arrays. + That is, instead of writing: + @code + Mat color; + ... + Mat gray(color.rows, color.cols, color.depth()); + cvtColor(color, gray, COLOR_BGR2GRAY); + @endcode + you can simply write: + @code + Mat color; + ... + Mat gray; + cvtColor(color, gray, COLOR_BGR2GRAY); + @endcode + because cvtColor, as well as the most of OpenCV functions, calls Mat::create() for the output array + internally. + @param rows New number of rows. + @param cols New number of columns. + @param type New matrix type. + */ + void create(int rows, int cols, int type); + + /** @overload + @param size Alternative new matrix size specification: Size(cols, rows) + @param type New matrix type. + */ + void create(Size size, int type); + + /** @overload + @param ndims New array dimensionality. + @param sizes Array of integers specifying a new array shape. + @param type New matrix type. + */ + void create(int ndims, const int* sizes, int type); + + /** @overload + @param sizes Array of integers specifying a new array shape. + @param type New matrix type. + */ + void create(const std::vector& sizes, int type); + + /** @brief Increments the reference counter. + + The method increments the reference counter associated with the matrix data. If the matrix header + points to an external data set (see Mat::Mat ), the reference counter is NULL, and the method has no + effect in this case. Normally, to avoid memory leaks, the method should not be called explicitly. It + is called implicitly by the matrix assignment operator. The reference counter increment is an atomic + operation on the platforms that support it. Thus, it is safe to operate on the same matrices + asynchronously in different threads. + */ + void addref(); + + /** @brief Decrements the reference counter and deallocates the matrix if needed. + + The method decrements the reference counter associated with the matrix data. When the reference + counter reaches 0, the matrix data is deallocated and the data and the reference counter pointers + are set to NULL's. If the matrix header points to an external data set (see Mat::Mat ), the + reference counter is NULL, and the method has no effect in this case. + + This method can be called manually to force the matrix data deallocation. But since this method is + automatically called in the destructor, or by any other method that changes the data pointer, it is + usually not needed. The reference counter decrement and check for 0 is an atomic operation on the + platforms that support it. Thus, it is safe to operate on the same matrices asynchronously in + different threads. + */ + void release(); + + //! internal use function, consider to use 'release' method instead; deallocates the matrix data + void deallocate(); + //! internal use function; properly re-allocates _size, _step arrays + void copySize(const Mat& m); + + /** @brief Reserves space for the certain number of rows. + + The method reserves space for sz rows. If the matrix already has enough space to store sz rows, + nothing happens. If the matrix is reallocated, the first Mat::rows rows are preserved. The method + emulates the corresponding method of the STL vector class. + @param sz Number of rows. + */ + void reserve(size_t sz); + + /** @brief Reserves space for the certain number of bytes. + + The method reserves space for sz bytes. If the matrix already has enough space to store sz bytes, + nothing happens. If matrix has to be reallocated its previous content could be lost. + @param sz Number of bytes. + */ + void reserveBuffer(size_t sz); + + /** @brief Changes the number of matrix rows. + + The methods change the number of matrix rows. If the matrix is reallocated, the first + min(Mat::rows, sz) rows are preserved. The methods emulate the corresponding methods of the STL + vector class. + @param sz New number of rows. + */ + void resize(size_t sz); + + /** @overload + @param sz New number of rows. + @param s Value assigned to the newly added elements. + */ + void resize(size_t sz, const Scalar& s); + + //! internal function + void push_back_(const void* elem); + + /** @brief Adds elements to the bottom of the matrix. + + The methods add one or more elements to the bottom of the matrix. They emulate the corresponding + method of the STL vector class. When elem is Mat , its type and the number of columns must be the + same as in the container matrix. + @param elem Added element(s). + */ + template void push_back(const _Tp& elem); + + /** @overload + @param elem Added element(s). + */ + template void push_back(const Mat_<_Tp>& elem); + + /** @overload + @param elem Added element(s). + */ + template void push_back(const std::vector<_Tp>& elem); + + /** @overload + @param m Added line(s). + */ + void push_back(const Mat& m); + + /** @brief Removes elements from the bottom of the matrix. + + The method removes one or more rows from the bottom of the matrix. + @param nelems Number of removed rows. If it is greater than the total number of rows, an exception + is thrown. + */ + void pop_back(size_t nelems=1); + + /** @brief Locates the matrix header within a parent matrix. + + After you extracted a submatrix from a matrix using Mat::row, Mat::col, Mat::rowRange, + Mat::colRange, and others, the resultant submatrix points just to the part of the original big + matrix. However, each submatrix contains information (represented by datastart and dataend + fields) that helps reconstruct the original matrix size and the position of the extracted + submatrix within the original matrix. The method locateROI does exactly that. + @param wholeSize Output parameter that contains the size of the whole matrix containing *this* + as a part. + @param ofs Output parameter that contains an offset of *this* inside the whole matrix. + */ + void locateROI( Size& wholeSize, Point& ofs ) const; + + /** @brief Adjusts a submatrix size and position within the parent matrix. + + The method is complimentary to Mat::locateROI . The typical use of these functions is to determine + the submatrix position within the parent matrix and then shift the position somehow. Typically, it + can be required for filtering operations when pixels outside of the ROI should be taken into + account. When all the method parameters are positive, the ROI needs to grow in all directions by the + specified amount, for example: + @code + A.adjustROI(2, 2, 2, 2); + @endcode + In this example, the matrix size is increased by 4 elements in each direction. The matrix is shifted + by 2 elements to the left and 2 elements up, which brings in all the necessary pixels for the + filtering with the 5x5 kernel. + + adjustROI forces the adjusted ROI to be inside of the parent matrix that is boundaries of the + adjusted ROI are constrained by boundaries of the parent matrix. For example, if the submatrix A is + located in the first row of a parent matrix and you called A.adjustROI(2, 2, 2, 2) then A will not + be increased in the upward direction. + + The function is used internally by the OpenCV filtering functions, like filter2D , morphological + operations, and so on. + @param dtop Shift of the top submatrix boundary upwards. + @param dbottom Shift of the bottom submatrix boundary downwards. + @param dleft Shift of the left submatrix boundary to the left. + @param dright Shift of the right submatrix boundary to the right. + @sa copyMakeBorder + */ + Mat& adjustROI( int dtop, int dbottom, int dleft, int dright ); + + /** @brief Extracts a rectangular submatrix. + + The operators make a new header for the specified sub-array of \*this . They are the most + generalized forms of Mat::row, Mat::col, Mat::rowRange, and Mat::colRange . For example, + `A(Range(0, 10), Range::all())` is equivalent to `A.rowRange(0, 10)`. Similarly to all of the above, + the operators are O(1) operations, that is, no matrix data is copied. + @param rowRange Start and end row of the extracted submatrix. The upper boundary is not included. To + select all the rows, use Range::all(). + @param colRange Start and end column of the extracted submatrix. The upper boundary is not included. + To select all the columns, use Range::all(). + */ + Mat operator()( Range rowRange, Range colRange ) const; + + /** @overload + @param roi Extracted submatrix specified as a rectangle. + */ + Mat operator()( const Rect& roi ) const; + + /** @overload + @param ranges Array of selected ranges along each array dimension. + */ + Mat operator()( const Range* ranges ) const; + + /** @overload + @param ranges Array of selected ranges along each array dimension. + */ + Mat operator()(const std::vector& ranges) const; + + template operator std::vector<_Tp>() const; + template operator Vec<_Tp, n>() const; + template operator Matx<_Tp, m, n>() const; + + template operator std::array<_Tp, _Nm>() const; + + /** @brief Reports whether the matrix is continuous or not. + + The method returns true if the matrix elements are stored continuously without gaps at the end of + each row. Otherwise, it returns false. Obviously, 1x1 or 1xN matrices are always continuous. + Matrices created with Mat::create are always continuous. But if you extract a part of the matrix + using Mat::col, Mat::diag, and so on, or constructed a matrix header for externally allocated data, + such matrices may no longer have this property. + + The continuity flag is stored as a bit in the Mat::flags field and is computed automatically when + you construct a matrix header. Thus, the continuity check is a very fast operation, though + theoretically it could be done as follows: + @code + // alternative implementation of Mat::isContinuous() + bool myCheckMatContinuity(const Mat& m) + { + //return (m.flags & Mat::CONTINUOUS_FLAG) != 0; + return m.rows == 1 || m.step == m.cols*m.elemSize(); + } + @endcode + The method is used in quite a few of OpenCV functions. The point is that element-wise operations + (such as arithmetic and logical operations, math functions, alpha blending, color space + transformations, and others) do not depend on the image geometry. Thus, if all the input and output + arrays are continuous, the functions can process them as very long single-row vectors. The example + below illustrates how an alpha-blending function can be implemented: + @code + template + void alphaBlendRGBA(const Mat& src1, const Mat& src2, Mat& dst) + { + const float alpha_scale = (float)std::numeric_limits::max(), + inv_scale = 1.f/alpha_scale; + + CV_Assert( src1.type() == src2.type() && + src1.type() == CV_MAKETYPE(traits::Depth::value, 4) && + src1.size() == src2.size()); + Size size = src1.size(); + dst.create(size, src1.type()); + + // here is the idiom: check the arrays for continuity and, + // if this is the case, + // treat the arrays as 1D vectors + if( src1.isContinuous() && src2.isContinuous() && dst.isContinuous() ) + { + size.width *= size.height; + size.height = 1; + } + size.width *= 4; + + for( int i = 0; i < size.height; i++ ) + { + // when the arrays are continuous, + // the outer loop is executed only once + const T* ptr1 = src1.ptr(i); + const T* ptr2 = src2.ptr(i); + T* dptr = dst.ptr(i); + + for( int j = 0; j < size.width; j += 4 ) + { + float alpha = ptr1[j+3]*inv_scale, beta = ptr2[j+3]*inv_scale; + dptr[j] = saturate_cast(ptr1[j]*alpha + ptr2[j]*beta); + dptr[j+1] = saturate_cast(ptr1[j+1]*alpha + ptr2[j+1]*beta); + dptr[j+2] = saturate_cast(ptr1[j+2]*alpha + ptr2[j+2]*beta); + dptr[j+3] = saturate_cast((1 - (1-alpha)*(1-beta))*alpha_scale); + } + } + } + @endcode + This approach, while being very simple, can boost the performance of a simple element-operation by + 10-20 percents, especially if the image is rather small and the operation is quite simple. + + Another OpenCV idiom in this function, a call of Mat::create for the destination array, that + allocates the destination array unless it already has the proper size and type. And while the newly + allocated arrays are always continuous, you still need to check the destination array because + Mat::create does not always allocate a new matrix. + */ + bool isContinuous() const; + + //! returns true if the matrix is a submatrix of another matrix + bool isSubmatrix() const; + + /** @brief Returns the matrix element size in bytes. + + The method returns the matrix element size in bytes. For example, if the matrix type is CV_16SC3 , + the method returns 3\*sizeof(short) or 6. + */ + size_t elemSize() const; + + /** @brief Returns the size of each matrix element channel in bytes. + + The method returns the matrix element channel size in bytes, that is, it ignores the number of + channels. For example, if the matrix type is CV_16SC3 , the method returns sizeof(short) or 2. + */ + size_t elemSize1() const; + + /** @brief Returns the type of a matrix element. + + The method returns a matrix element type. This is an identifier compatible with the CvMat type + system, like CV_16SC3 or 16-bit signed 3-channel array, and so on. + */ + int type() const; + + /** @brief Returns the depth of a matrix element. + + The method returns the identifier of the matrix element depth (the type of each individual channel). + For example, for a 16-bit signed element array, the method returns CV_16S . A complete list of + matrix types contains the following values: + - CV_8U - 8-bit unsigned integers ( 0..255 ) + - CV_8S - 8-bit signed integers ( -128..127 ) + - CV_16U - 16-bit unsigned integers ( 0..65535 ) + - CV_16S - 16-bit signed integers ( -32768..32767 ) + - CV_32S - 32-bit signed integers ( -2147483648..2147483647 ) + - CV_32F - 32-bit floating-point numbers ( -FLT_MAX..FLT_MAX, INF, NAN ) + - CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN ) + */ + int depth() const; + + /** @brief Returns the number of matrix channels. + + The method returns the number of matrix channels. + */ + int channels() const; + + /** @brief Returns a normalized step. + + The method returns a matrix step divided by Mat::elemSize1() . It can be useful to quickly access an + arbitrary matrix element. + */ + size_t step1(int i=0) const; + + /** @brief Returns true if the array has no elements. + + The method returns true if Mat::total() is 0 or if Mat::data is NULL. Because of pop_back() and + resize() methods `M.total() == 0` does not imply that `M.data == NULL`. + */ + bool empty() const; + + /** @brief Returns the total number of array elements. + + The method returns the number of array elements (a number of pixels if the array represents an + image). + */ + size_t total() const; + + /** @brief Returns the total number of array elements. + + The method returns the number of elements within a certain sub-array slice with startDim <= dim < endDim + */ + size_t total(int startDim, int endDim=INT_MAX) const; + + /** + * @param elemChannels Number of channels or number of columns the matrix should have. + * For a 2-D matrix, when the matrix has only 1 column, then it should have + * elemChannels channels; When the matrix has only 1 channel, + * then it should have elemChannels columns. + * For a 3-D matrix, it should have only one channel. Furthermore, + * if the number of planes is not one, then the number of rows + * within every plane has to be 1; if the number of rows within + * every plane is not 1, then the number of planes has to be 1. + * @param depth The depth the matrix should have. Set it to -1 when any depth is fine. + * @param requireContinuous Set it to true to require the matrix to be continuous + * @return -1 if the requirement is not satisfied. + * Otherwise, it returns the number of elements in the matrix. Note + * that an element may have multiple channels. + * + * The following code demonstrates its usage for a 2-d matrix: + * @snippet snippets/core_mat_checkVector.cpp example-2d + * + * The following code demonstrates its usage for a 3-d matrix: + * @snippet snippets/core_mat_checkVector.cpp example-3d + */ + int checkVector(int elemChannels, int depth=-1, bool requireContinuous=true) const; + + /** @brief Returns a pointer to the specified matrix row. + + The methods return `uchar*` or typed pointer to the specified matrix row. See the sample in + Mat::isContinuous to know how to use these methods. + @param i0 A 0-based row index. + */ + uchar* ptr(int i0=0); + /** @overload */ + const uchar* ptr(int i0=0) const; + + /** @overload + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + uchar* ptr(int row, int col); + /** @overload + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + const uchar* ptr(int row, int col) const; + + /** @overload */ + uchar* ptr(int i0, int i1, int i2); + /** @overload */ + const uchar* ptr(int i0, int i1, int i2) const; + + /** @overload */ + uchar* ptr(const int* idx); + /** @overload */ + const uchar* ptr(const int* idx) const; + /** @overload */ + template uchar* ptr(const Vec& idx); + /** @overload */ + template const uchar* ptr(const Vec& idx) const; + + /** @overload */ + template _Tp* ptr(int i0=0); + /** @overload */ + template const _Tp* ptr(int i0=0) const; + /** @overload + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + template _Tp* ptr(int row, int col); + /** @overload + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + template const _Tp* ptr(int row, int col) const; + /** @overload */ + template _Tp* ptr(int i0, int i1, int i2); + /** @overload */ + template const _Tp* ptr(int i0, int i1, int i2) const; + /** @overload */ + template _Tp* ptr(const int* idx); + /** @overload */ + template const _Tp* ptr(const int* idx) const; + /** @overload */ + template _Tp* ptr(const Vec& idx); + /** @overload */ + template const _Tp* ptr(const Vec& idx) const; + + /** @brief Returns a reference to the specified array element. + + The template methods return a reference to the specified array element. For the sake of higher + performance, the index range checks are only performed in the Debug configuration. + + Note that the variants with a single index (i) can be used to access elements of single-row or + single-column 2-dimensional arrays. That is, if, for example, A is a 1 x N floating-point matrix and + B is an M x 1 integer matrix, you can simply write `A.at(k+4)` and `B.at(2*i+1)` + instead of `A.at(0,k+4)` and `B.at(2*i+1,0)`, respectively. + + The example below initializes a Hilbert matrix: + @code + Mat H(100, 100, CV_64F); + for(int i = 0; i < H.rows; i++) + for(int j = 0; j < H.cols; j++) + H.at(i,j)=1./(i+j+1); + @endcode + + Keep in mind that the size identifier used in the at operator cannot be chosen at random. It depends + on the image from which you are trying to retrieve the data. The table below gives a better insight in this: + - If matrix is of type `CV_8U` then use `Mat.at(y,x)`. + - If matrix is of type `CV_8S` then use `Mat.at(y,x)`. + - If matrix is of type `CV_16U` then use `Mat.at(y,x)`. + - If matrix is of type `CV_16S` then use `Mat.at(y,x)`. + - If matrix is of type `CV_32S` then use `Mat.at(y,x)`. + - If matrix is of type `CV_32F` then use `Mat.at(y,x)`. + - If matrix is of type `CV_64F` then use `Mat.at(y,x)`. + + @param i0 Index along the dimension 0 + */ + template _Tp& at(int i0=0); + /** @overload + @param i0 Index along the dimension 0 + */ + template const _Tp& at(int i0=0) const; + /** @overload + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + template _Tp& at(int row, int col); + /** @overload + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + template const _Tp& at(int row, int col) const; + + /** @overload + @param i0 Index along the dimension 0 + @param i1 Index along the dimension 1 + @param i2 Index along the dimension 2 + */ + template _Tp& at(int i0, int i1, int i2); + /** @overload + @param i0 Index along the dimension 0 + @param i1 Index along the dimension 1 + @param i2 Index along the dimension 2 + */ + template const _Tp& at(int i0, int i1, int i2) const; + + /** @overload + @param idx Array of Mat::dims indices. + */ + template _Tp& at(const int* idx); + /** @overload + @param idx Array of Mat::dims indices. + */ + template const _Tp& at(const int* idx) const; + + /** @overload */ + template _Tp& at(const Vec& idx); + /** @overload */ + template const _Tp& at(const Vec& idx) const; + + /** @overload + special versions for 2D arrays (especially convenient for referencing image pixels) + @param pt Element position specified as Point(j,i) . + */ + template _Tp& at(Point pt); + /** @overload + special versions for 2D arrays (especially convenient for referencing image pixels) + @param pt Element position specified as Point(j,i) . + */ + template const _Tp& at(Point pt) const; + + /** @brief Returns the matrix iterator and sets it to the first matrix element. + + The methods return the matrix read-only or read-write iterators. The use of matrix iterators is very + similar to the use of bi-directional STL iterators. In the example below, the alpha blending + function is rewritten using the matrix iterators: + @code + template + void alphaBlendRGBA(const Mat& src1, const Mat& src2, Mat& dst) + { + typedef Vec VT; + + const float alpha_scale = (float)std::numeric_limits::max(), + inv_scale = 1.f/alpha_scale; + + CV_Assert( src1.type() == src2.type() && + src1.type() == traits::Type::value && + src1.size() == src2.size()); + Size size = src1.size(); + dst.create(size, src1.type()); + + MatConstIterator_ it1 = src1.begin(), it1_end = src1.end(); + MatConstIterator_ it2 = src2.begin(); + MatIterator_ dst_it = dst.begin(); + + for( ; it1 != it1_end; ++it1, ++it2, ++dst_it ) + { + VT pix1 = *it1, pix2 = *it2; + float alpha = pix1[3]*inv_scale, beta = pix2[3]*inv_scale; + *dst_it = VT(saturate_cast(pix1[0]*alpha + pix2[0]*beta), + saturate_cast(pix1[1]*alpha + pix2[1]*beta), + saturate_cast(pix1[2]*alpha + pix2[2]*beta), + saturate_cast((1 - (1-alpha)*(1-beta))*alpha_scale)); + } + } + @endcode + */ + template MatIterator_<_Tp> begin(); + template MatConstIterator_<_Tp> begin() const; + + /** @brief Returns the matrix iterator and sets it to the after-last matrix element. + + The methods return the matrix read-only or read-write iterators, set to the point following the last + matrix element. + */ + template MatIterator_<_Tp> end(); + template MatConstIterator_<_Tp> end() const; + + /** @brief Runs the given functor over all matrix elements in parallel. + + The operation passed as argument has to be a function pointer, a function object or a lambda(C++11). + + Example 1. All of the operations below put 0xFF the first channel of all matrix elements: + @code + Mat image(1920, 1080, CV_8UC3); + typedef cv::Point3_ Pixel; + + // first. raw pointer access. + for (int r = 0; r < image.rows; ++r) { + Pixel* ptr = image.ptr(r, 0); + const Pixel* ptr_end = ptr + image.cols; + for (; ptr != ptr_end; ++ptr) { + ptr->x = 255; + } + } + + // Using MatIterator. (Simple but there are a Iterator's overhead) + for (Pixel &p : cv::Mat_(image)) { + p.x = 255; + } + + // Parallel execution with function object. + struct Operator { + void operator ()(Pixel &pixel, const int * position) { + pixel.x = 255; + } + }; + image.forEach(Operator()); + + // Parallel execution using C++11 lambda. + image.forEach([](Pixel &p, const int * position) -> void { + p.x = 255; + }); + @endcode + Example 2. Using the pixel's position: + @code + // Creating 3D matrix (255 x 255 x 255) typed uint8_t + // and initialize all elements by the value which equals elements position. + // i.e. pixels (x,y,z) = (1,2,3) is (b,g,r) = (1,2,3). + + int sizes[] = { 255, 255, 255 }; + typedef cv::Point3_ Pixel; + + Mat_ image = Mat::zeros(3, sizes, CV_8UC3); + + image.forEach([&](Pixel& pixel, const int position[]) -> void { + pixel.x = position[0]; + pixel.y = position[1]; + pixel.z = position[2]; + }); + @endcode + */ + template void forEach(const Functor& operation); + /** @overload */ + template void forEach(const Functor& operation) const; + + Mat(Mat&& m); + Mat& operator = (Mat&& m); + + enum { MAGIC_VAL = 0x42FF0000, AUTO_STEP = 0, CONTINUOUS_FLAG = CV_MAT_CONT_FLAG, SUBMATRIX_FLAG = CV_SUBMAT_FLAG }; + enum { MAGIC_MASK = 0xFFFF0000, TYPE_MASK = 0x00000FFF, DEPTH_MASK = 7 }; + + /*! includes several bit-fields: + - the magic signature + - continuity flag + - depth + - number of channels + */ + int flags; + //! the matrix dimensionality, >= 2 + int dims; + //! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions + int rows, cols; + //! pointer to the data + uchar* data; + + //! helper fields used in locateROI and adjustROI + const uchar* datastart; + const uchar* dataend; + const uchar* datalimit; + + //! custom allocator + MatAllocator* allocator; + //! and the standard allocator + static MatAllocator* getStdAllocator(); + static MatAllocator* getDefaultAllocator(); + static void setDefaultAllocator(MatAllocator* allocator); + + //! internal use method: updates the continuity flag + void updateContinuityFlag(); + + //! interaction with UMat + UMatData* u; + + MatSize size; + MatStep step; + +protected: + template void forEach_impl(const Functor& operation); +}; + + +///////////////////////////////// Mat_<_Tp> //////////////////////////////////// + +/** @brief Template matrix class derived from Mat + +@code{.cpp} + template class Mat_ : public Mat + { + public: + // ... some specific methods + // and + // no new extra fields + }; +@endcode +The class `Mat_<_Tp>` is a *thin* template wrapper on top of the Mat class. It does not have any +extra data fields. Nor this class nor Mat has any virtual methods. Thus, references or pointers to +these two classes can be freely but carefully converted one to another. For example: +@code{.cpp} + // create a 100x100 8-bit matrix + Mat M(100,100,CV_8U); + // this will be compiled fine. no any data conversion will be done. + Mat_& M1 = (Mat_&)M; + // the program is likely to crash at the statement below + M1(99,99) = 1.f; +@endcode +While Mat is sufficient in most cases, Mat_ can be more convenient if you use a lot of element +access operations and if you know matrix type at the compilation time. Note that +`Mat::at(int y,int x)` and `Mat_::operator()(int y,int x)` do absolutely the same +and run at the same speed, but the latter is certainly shorter: +@code{.cpp} + Mat_ M(20,20); + for(int i = 0; i < M.rows; i++) + for(int j = 0; j < M.cols; j++) + M(i,j) = 1./(i+j+1); + Mat E, V; + eigen(M,E,V); + cout << E.at(0,0)/E.at(M.rows-1,0); +@endcode +To use Mat_ for multi-channel images/matrices, pass Vec as a Mat_ parameter: +@code{.cpp} + // allocate a 320x240 color image and fill it with green (in RGB space) + Mat_ img(240, 320, Vec3b(0,255,0)); + // now draw a diagonal white line + for(int i = 0; i < 100; i++) + img(i,i)=Vec3b(255,255,255); + // and now scramble the 2nd (red) channel of each pixel + for(int i = 0; i < img.rows; i++) + for(int j = 0; j < img.cols; j++) + img(i,j)[2] ^= (uchar)(i ^ j); +@endcode +Mat_ is fully compatible with C++11 range-based for loop. For example such loop +can be used to safely apply look-up table: +@code{.cpp} +void applyTable(Mat_& I, const uchar* const table) +{ + for(auto& pixel : I) + { + pixel = table[pixel]; + } +} +@endcode + */ +template class Mat_ : public Mat +{ +public: + typedef _Tp value_type; + typedef typename DataType<_Tp>::channel_type channel_type; + typedef MatIterator_<_Tp> iterator; + typedef MatConstIterator_<_Tp> const_iterator; + + //! default constructor + Mat_(); + //! equivalent to Mat(_rows, _cols, DataType<_Tp>::type) + Mat_(int _rows, int _cols); + //! constructor that sets each matrix element to specified value + Mat_(int _rows, int _cols, const _Tp& value); + //! equivalent to Mat(_size, DataType<_Tp>::type) + explicit Mat_(Size _size); + //! constructor that sets each matrix element to specified value + Mat_(Size _size, const _Tp& value); + //! n-dim array constructor + Mat_(int _ndims, const int* _sizes); + //! n-dim array constructor that sets each matrix element to specified value + Mat_(int _ndims, const int* _sizes, const _Tp& value); + //! copy/conversion constructor. If m is of different type, it's converted + Mat_(const Mat& m); + //! copy constructor + Mat_(const Mat_& m); + //! constructs a matrix on top of user-allocated data. step is in bytes(!!!), regardless of the type + Mat_(int _rows, int _cols, _Tp* _data, size_t _step=AUTO_STEP); + //! constructs n-dim matrix on top of user-allocated data. steps are in bytes(!!!), regardless of the type + Mat_(int _ndims, const int* _sizes, _Tp* _data, const size_t* _steps=0); + //! selects a submatrix + Mat_(const Mat_& m, const Range& rowRange, const Range& colRange=Range::all()); + //! selects a submatrix + Mat_(const Mat_& m, const Rect& roi); + //! selects a submatrix, n-dim version + Mat_(const Mat_& m, const Range* ranges); + //! selects a submatrix, n-dim version + Mat_(const Mat_& m, const std::vector& ranges); + //! from a matrix expression + explicit Mat_(const MatExpr& e); + //! makes a matrix out of Vec, std::vector, Point_ or Point3_. The matrix will have a single column + explicit Mat_(const std::vector<_Tp>& vec, bool copyData=false); + template explicit Mat_(const Vec::channel_type, n>& vec, bool copyData=true); + template explicit Mat_(const Matx::channel_type, m, n>& mtx, bool copyData=true); + explicit Mat_(const Point_::channel_type>& pt, bool copyData=true); + explicit Mat_(const Point3_::channel_type>& pt, bool copyData=true); + explicit Mat_(const MatCommaInitializer_<_Tp>& commaInitializer); + + Mat_(std::initializer_list<_Tp> values); + explicit Mat_(const std::initializer_list sizes, const std::initializer_list<_Tp> values); + + template explicit Mat_(const std::array<_Tp, _Nm>& arr, bool copyData=false); + + Mat_& operator = (const Mat& m); + Mat_& operator = (const Mat_& m); + //! set all the elements to s. + Mat_& operator = (const _Tp& s); + //! assign a matrix expression + Mat_& operator = (const MatExpr& e); + + //! iterators; they are smart enough to skip gaps in the end of rows + iterator begin(); + iterator end(); + const_iterator begin() const; + const_iterator end() const; + + //! template methods for for operation over all matrix elements. + // the operations take care of skipping gaps in the end of rows (if any) + template void forEach(const Functor& operation); + template void forEach(const Functor& operation) const; + + //! equivalent to Mat::create(_rows, _cols, DataType<_Tp>::type) + void create(int _rows, int _cols); + //! equivalent to Mat::create(_size, DataType<_Tp>::type) + void create(Size _size); + //! equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type) + void create(int _ndims, const int* _sizes); + //! equivalent to Mat::release() + void release(); + //! cross-product + Mat_ cross(const Mat_& m) const; + //! data type conversion + template operator Mat_() const; + //! overridden forms of Mat::row() etc. + Mat_ row(int y) const; + Mat_ col(int x) const; + Mat_ diag(int d=0) const; + Mat_ clone() const CV_NODISCARD; + + //! overridden forms of Mat::elemSize() etc. + size_t elemSize() const; + size_t elemSize1() const; + int type() const; + int depth() const; + int channels() const; + size_t step1(int i=0) const; + //! returns step()/sizeof(_Tp) + size_t stepT(int i=0) const; + + //! overridden forms of Mat::zeros() etc. Data type is omitted, of course + static MatExpr zeros(int rows, int cols); + static MatExpr zeros(Size size); + static MatExpr zeros(int _ndims, const int* _sizes); + static MatExpr ones(int rows, int cols); + static MatExpr ones(Size size); + static MatExpr ones(int _ndims, const int* _sizes); + static MatExpr eye(int rows, int cols); + static MatExpr eye(Size size); + + //! some more overridden methods + Mat_& adjustROI( int dtop, int dbottom, int dleft, int dright ); + Mat_ operator()( const Range& rowRange, const Range& colRange ) const; + Mat_ operator()( const Rect& roi ) const; + Mat_ operator()( const Range* ranges ) const; + Mat_ operator()(const std::vector& ranges) const; + + //! more convenient forms of row and element access operators + _Tp* operator [](int y); + const _Tp* operator [](int y) const; + + //! returns reference to the specified element + _Tp& operator ()(const int* idx); + //! returns read-only reference to the specified element + const _Tp& operator ()(const int* idx) const; + + //! returns reference to the specified element + template _Tp& operator ()(const Vec& idx); + //! returns read-only reference to the specified element + template const _Tp& operator ()(const Vec& idx) const; + + //! returns reference to the specified element (1D case) + _Tp& operator ()(int idx0); + //! returns read-only reference to the specified element (1D case) + const _Tp& operator ()(int idx0) const; + //! returns reference to the specified element (2D case) + _Tp& operator ()(int row, int col); + //! returns read-only reference to the specified element (2D case) + const _Tp& operator ()(int row, int col) const; + //! returns reference to the specified element (3D case) + _Tp& operator ()(int idx0, int idx1, int idx2); + //! returns read-only reference to the specified element (3D case) + const _Tp& operator ()(int idx0, int idx1, int idx2) const; + + _Tp& operator ()(Point pt); + const _Tp& operator ()(Point pt) const; + + //! conversion to vector. + operator std::vector<_Tp>() const; + + //! conversion to array. + template operator std::array<_Tp, _Nm>() const; + + //! conversion to Vec + template operator Vec::channel_type, n>() const; + //! conversion to Matx + template operator Matx::channel_type, m, n>() const; + + Mat_(Mat_&& m); + Mat_& operator = (Mat_&& m); + + Mat_(Mat&& m); + Mat_& operator = (Mat&& m); + + Mat_(MatExpr&& e); +}; + +typedef Mat_ Mat1b; +typedef Mat_ Mat2b; +typedef Mat_ Mat3b; +typedef Mat_ Mat4b; + +typedef Mat_ Mat1s; +typedef Mat_ Mat2s; +typedef Mat_ Mat3s; +typedef Mat_ Mat4s; + +typedef Mat_ Mat1w; +typedef Mat_ Mat2w; +typedef Mat_ Mat3w; +typedef Mat_ Mat4w; + +typedef Mat_ Mat1i; +typedef Mat_ Mat2i; +typedef Mat_ Mat3i; +typedef Mat_ Mat4i; + +typedef Mat_ Mat1f; +typedef Mat_ Mat2f; +typedef Mat_ Mat3f; +typedef Mat_ Mat4f; + +typedef Mat_ Mat1d; +typedef Mat_ Mat2d; +typedef Mat_ Mat3d; +typedef Mat_ Mat4d; + +/** @todo document */ +class CV_EXPORTS UMat +{ +public: + //! default constructor + UMat(UMatUsageFlags usageFlags = USAGE_DEFAULT); + //! constructs 2D matrix of the specified size and type + // (_type is CV_8UC1, CV_64FC3, CV_32SC(12) etc.) + UMat(int rows, int cols, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + UMat(Size size, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + //! constucts 2D matrix and fills it with the specified value _s. + UMat(int rows, int cols, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); + UMat(Size size, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); + + //! constructs n-dimensional matrix + UMat(int ndims, const int* sizes, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + UMat(int ndims, const int* sizes, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); + + //! copy constructor + UMat(const UMat& m); + + //! creates a matrix header for a part of the bigger matrix + UMat(const UMat& m, const Range& rowRange, const Range& colRange=Range::all()); + UMat(const UMat& m, const Rect& roi); + UMat(const UMat& m, const Range* ranges); + UMat(const UMat& m, const std::vector& ranges); + //! builds matrix from std::vector with or without copying the data + template explicit UMat(const std::vector<_Tp>& vec, bool copyData=false); + + //! builds matrix from cv::Vec; the data is copied by default + template explicit UMat(const Vec<_Tp, n>& vec, bool copyData=true); + //! builds matrix from cv::Matx; the data is copied by default + template explicit UMat(const Matx<_Tp, m, n>& mtx, bool copyData=true); + //! builds matrix from a 2D point + template explicit UMat(const Point_<_Tp>& pt, bool copyData=true); + //! builds matrix from a 3D point + template explicit UMat(const Point3_<_Tp>& pt, bool copyData=true); + //! builds matrix from comma initializer + template explicit UMat(const MatCommaInitializer_<_Tp>& commaInitializer); + + //! destructor - calls release() + ~UMat(); + //! assignment operators + UMat& operator = (const UMat& m); + + Mat getMat(AccessFlag flags) const; + + //! returns a new matrix header for the specified row + UMat row(int y) const; + //! returns a new matrix header for the specified column + UMat col(int x) const; + //! ... for the specified row span + UMat rowRange(int startrow, int endrow) const; + UMat rowRange(const Range& r) const; + //! ... for the specified column span + UMat colRange(int startcol, int endcol) const; + UMat colRange(const Range& r) const; + //! ... for the specified diagonal + //! (d=0 - the main diagonal, + //! >0 - a diagonal from the upper half, + //! <0 - a diagonal from the lower half) + UMat diag(int d=0) const; + //! constructs a square diagonal matrix which main diagonal is vector "d" + static UMat diag(const UMat& d); + + //! returns deep copy of the matrix, i.e. the data is copied + UMat clone() const CV_NODISCARD; + //! copies the matrix content to "m". + // It calls m.create(this->size(), this->type()). + void copyTo( OutputArray m ) const; + //! copies those matrix elements to "m" that are marked with non-zero mask elements. + void copyTo( OutputArray m, InputArray mask ) const; + //! converts matrix to another datatype with optional scaling. See cvConvertScale. + void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const; + + void assignTo( UMat& m, int type=-1 ) const; + + //! sets every matrix element to s + UMat& operator = (const Scalar& s); + //! sets some of the matrix elements to s, according to the mask + UMat& setTo(InputArray value, InputArray mask=noArray()); + //! creates alternative matrix header for the same data, with different + // number of channels and/or different number of rows. see cvReshape. + UMat reshape(int cn, int rows=0) const; + UMat reshape(int cn, int newndims, const int* newsz) const; + + //! matrix transposition by means of matrix expressions + UMat t() const; + //! matrix inversion by means of matrix expressions + UMat inv(int method=DECOMP_LU) const; + //! per-element matrix multiplication by means of matrix expressions + UMat mul(InputArray m, double scale=1) const; + + //! computes dot-product + double dot(InputArray m) const; + + //! Matlab-style matrix initialization + static UMat zeros(int rows, int cols, int type); + static UMat zeros(Size size, int type); + static UMat zeros(int ndims, const int* sz, int type); + static UMat ones(int rows, int cols, int type); + static UMat ones(Size size, int type); + static UMat ones(int ndims, const int* sz, int type); + static UMat eye(int rows, int cols, int type); + static UMat eye(Size size, int type); + + //! allocates new matrix data unless the matrix already has specified size and type. + // previous data is unreferenced if needed. + void create(int rows, int cols, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + void create(Size size, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + void create(int ndims, const int* sizes, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + void create(const std::vector& sizes, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); + + //! increases the reference counter; use with care to avoid memleaks + void addref(); + //! decreases reference counter; + // deallocates the data when reference counter reaches 0. + void release(); + + //! deallocates the matrix data + void deallocate(); + //! internal use function; properly re-allocates _size, _step arrays + void copySize(const UMat& m); + + //! locates matrix header within a parent matrix. See below + void locateROI( Size& wholeSize, Point& ofs ) const; + //! moves/resizes the current matrix ROI inside the parent matrix. + UMat& adjustROI( int dtop, int dbottom, int dleft, int dright ); + //! extracts a rectangular sub-matrix + // (this is a generalized form of row, rowRange etc.) + UMat operator()( Range rowRange, Range colRange ) const; + UMat operator()( const Rect& roi ) const; + UMat operator()( const Range* ranges ) const; + UMat operator()(const std::vector& ranges) const; + + //! returns true iff the matrix data is continuous + // (i.e. when there are no gaps between successive rows). + // similar to CV_IS_MAT_CONT(cvmat->type) + bool isContinuous() const; + + //! returns true if the matrix is a submatrix of another matrix + bool isSubmatrix() const; + + //! returns element size in bytes, + // similar to CV_ELEM_SIZE(cvmat->type) + size_t elemSize() const; + //! returns the size of element channel in bytes. + size_t elemSize1() const; + //! returns element type, similar to CV_MAT_TYPE(cvmat->type) + int type() const; + //! returns element type, similar to CV_MAT_DEPTH(cvmat->type) + int depth() const; + //! returns element type, similar to CV_MAT_CN(cvmat->type) + int channels() const; + //! returns step/elemSize1() + size_t step1(int i=0) const; + //! returns true if matrix data is NULL + bool empty() const; + //! returns the total number of matrix elements + size_t total() const; + + //! returns N if the matrix is 1-channel (N x ptdim) or ptdim-channel (1 x N) or (N x 1); negative number otherwise + int checkVector(int elemChannels, int depth=-1, bool requireContinuous=true) const; + + UMat(UMat&& m); + UMat& operator = (UMat&& m); + + /*! Returns the OpenCL buffer handle on which UMat operates on. + The UMat instance should be kept alive during the use of the handle to prevent the buffer to be + returned to the OpenCV buffer pool. + */ + void* handle(AccessFlag accessFlags) const; + void ndoffset(size_t* ofs) const; + + enum { MAGIC_VAL = 0x42FF0000, AUTO_STEP = 0, CONTINUOUS_FLAG = CV_MAT_CONT_FLAG, SUBMATRIX_FLAG = CV_SUBMAT_FLAG }; + enum { MAGIC_MASK = 0xFFFF0000, TYPE_MASK = 0x00000FFF, DEPTH_MASK = 7 }; + + /*! includes several bit-fields: + - the magic signature + - continuity flag + - depth + - number of channels + */ + int flags; + //! the matrix dimensionality, >= 2 + int dims; + //! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions + int rows, cols; + + //! custom allocator + MatAllocator* allocator; + UMatUsageFlags usageFlags; // usage flags for allocator + //! and the standard allocator + static MatAllocator* getStdAllocator(); + + //! internal use method: updates the continuity flag + void updateContinuityFlag(); + + // black-box container of UMat data + UMatData* u; + + // offset of the submatrix (or 0) + size_t offset; + + MatSize size; + MatStep step; + +protected: +}; + + +/////////////////////////// multi-dimensional sparse matrix ////////////////////////// + +/** @brief The class SparseMat represents multi-dimensional sparse numerical arrays. + +Such a sparse array can store elements of any type that Mat can store. *Sparse* means that only +non-zero elements are stored (though, as a result of operations on a sparse matrix, some of its +stored elements can actually become 0. It is up to you to detect such elements and delete them +using SparseMat::erase ). The non-zero elements are stored in a hash table that grows when it is +filled so that the search time is O(1) in average (regardless of whether element is there or not). +Elements can be accessed using the following methods: +- Query operations (SparseMat::ptr and the higher-level SparseMat::ref, SparseMat::value and + SparseMat::find), for example: + @code + const int dims = 5; + int size[5] = {10, 10, 10, 10, 10}; + SparseMat sparse_mat(dims, size, CV_32F); + for(int i = 0; i < 1000; i++) + { + int idx[dims]; + for(int k = 0; k < dims; k++) + idx[k] = rand() % size[k]; + sparse_mat.ref(idx) += 1.f; + } + cout << "nnz = " << sparse_mat.nzcount() << endl; + @endcode +- Sparse matrix iterators. They are similar to MatIterator but different from NAryMatIterator. + That is, the iteration loop is familiar to STL users: + @code + // prints elements of a sparse floating-point matrix + // and the sum of elements. + SparseMatConstIterator_ + it = sparse_mat.begin(), + it_end = sparse_mat.end(); + double s = 0; + int dims = sparse_mat.dims(); + for(; it != it_end; ++it) + { + // print element indices and the element value + const SparseMat::Node* n = it.node(); + printf("("); + for(int i = 0; i < dims; i++) + printf("%d%s", n->idx[i], i < dims-1 ? ", " : ")"); + printf(": %g\n", it.value()); + s += *it; + } + printf("Element sum is %g\n", s); + @endcode + If you run this loop, you will notice that elements are not enumerated in a logical order + (lexicographical, and so on). They come in the same order as they are stored in the hash table + (semi-randomly). You may collect pointers to the nodes and sort them to get the proper ordering. + Note, however, that pointers to the nodes may become invalid when you add more elements to the + matrix. This may happen due to possible buffer reallocation. +- Combination of the above 2 methods when you need to process 2 or more sparse matrices + simultaneously. For example, this is how you can compute unnormalized cross-correlation of the 2 + floating-point sparse matrices: + @code + double cross_corr(const SparseMat& a, const SparseMat& b) + { + const SparseMat *_a = &a, *_b = &b; + // if b contains less elements than a, + // it is faster to iterate through b + if(_a->nzcount() > _b->nzcount()) + std::swap(_a, _b); + SparseMatConstIterator_ it = _a->begin(), + it_end = _a->end(); + double ccorr = 0; + for(; it != it_end; ++it) + { + // take the next element from the first matrix + float avalue = *it; + const Node* anode = it.node(); + // and try to find an element with the same index in the second matrix. + // since the hash value depends only on the element index, + // reuse the hash value stored in the node + float bvalue = _b->value(anode->idx,&anode->hashval); + ccorr += avalue*bvalue; + } + return ccorr; + } + @endcode + */ +class CV_EXPORTS SparseMat +{ +public: + typedef SparseMatIterator iterator; + typedef SparseMatConstIterator const_iterator; + + enum { MAGIC_VAL=0x42FD0000, MAX_DIM=32, HASH_SCALE=0x5bd1e995, HASH_BIT=0x80000000 }; + + //! the sparse matrix header + struct CV_EXPORTS Hdr + { + Hdr(int _dims, const int* _sizes, int _type); + void clear(); + int refcount; + int dims; + int valueOffset; + size_t nodeSize; + size_t nodeCount; + size_t freeList; + std::vector pool; + std::vector hashtab; + int size[MAX_DIM]; + }; + + //! sparse matrix node - element of a hash table + struct CV_EXPORTS Node + { + //! hash value + size_t hashval; + //! index of the next node in the same hash table entry + size_t next; + //! index of the matrix element + int idx[MAX_DIM]; + }; + + /** @brief Various SparseMat constructors. + */ + SparseMat(); + + /** @overload + @param dims Array dimensionality. + @param _sizes Sparce matrix size on all dementions. + @param _type Sparse matrix data type. + */ + SparseMat(int dims, const int* _sizes, int _type); + + /** @overload + @param m Source matrix for copy constructor. If m is dense matrix (ocvMat) then it will be converted + to sparse representation. + */ + SparseMat(const SparseMat& m); + + /** @overload + @param m Source matrix for copy constructor. If m is dense matrix (ocvMat) then it will be converted + to sparse representation. + */ + explicit SparseMat(const Mat& m); + + //! the destructor + ~SparseMat(); + + //! assignment operator. This is O(1) operation, i.e. no data is copied + SparseMat& operator = (const SparseMat& m); + //! equivalent to the corresponding constructor + SparseMat& operator = (const Mat& m); + + //! creates full copy of the matrix + SparseMat clone() const CV_NODISCARD; + + //! copies all the data to the destination matrix. All the previous content of m is erased + void copyTo( SparseMat& m ) const; + //! converts sparse matrix to dense matrix. + void copyTo( Mat& m ) const; + //! multiplies all the matrix elements by the specified scale factor alpha and converts the results to the specified data type + void convertTo( SparseMat& m, int rtype, double alpha=1 ) const; + //! converts sparse matrix to dense n-dim matrix with optional type conversion and scaling. + /*! + @param [out] m - output matrix; if it does not have a proper size or type before the operation, + it is reallocated + @param [in] rtype - desired output matrix type or, rather, the depth since the number of channels + are the same as the input has; if rtype is negative, the output matrix will have the + same type as the input. + @param [in] alpha - optional scale factor + @param [in] beta - optional delta added to the scaled values + */ + void convertTo( Mat& m, int rtype, double alpha=1, double beta=0 ) const; + + // not used now + void assignTo( SparseMat& m, int type=-1 ) const; + + //! reallocates sparse matrix. + /*! + If the matrix already had the proper size and type, + it is simply cleared with clear(), otherwise, + the old matrix is released (using release()) and the new one is allocated. + */ + void create(int dims, const int* _sizes, int _type); + //! sets all the sparse matrix elements to 0, which means clearing the hash table. + void clear(); + //! manually increments the reference counter to the header. + void addref(); + // decrements the header reference counter. When the counter reaches 0, the header and all the underlying data are deallocated. + void release(); + + //! converts sparse matrix to the old-style representation; all the elements are copied. + //operator CvSparseMat*() const; + //! returns the size of each element in bytes (not including the overhead - the space occupied by SparseMat::Node elements) + size_t elemSize() const; + //! returns elemSize()/channels() + size_t elemSize1() const; + + //! returns type of sparse matrix elements + int type() const; + //! returns the depth of sparse matrix elements + int depth() const; + //! returns the number of channels + int channels() const; + + //! returns the array of sizes, or NULL if the matrix is not allocated + const int* size() const; + //! returns the size of i-th matrix dimension (or 0) + int size(int i) const; + //! returns the matrix dimensionality + int dims() const; + //! returns the number of non-zero elements (=the number of hash table nodes) + size_t nzcount() const; + + //! computes the element hash value (1D case) + size_t hash(int i0) const; + //! computes the element hash value (2D case) + size_t hash(int i0, int i1) const; + //! computes the element hash value (3D case) + size_t hash(int i0, int i1, int i2) const; + //! computes the element hash value (nD case) + size_t hash(const int* idx) const; + + //!@{ + /*! + specialized variants for 1D, 2D, 3D cases and the generic_type one for n-D case. + return pointer to the matrix element. + - if the element is there (it's non-zero), the pointer to it is returned + - if it's not there and createMissing=false, NULL pointer is returned + - if it's not there and createMissing=true, then the new element + is created and initialized with 0. Pointer to it is returned + - if the optional hashval pointer is not NULL, the element hash value is + not computed, but *hashval is taken instead. + */ + //! returns pointer to the specified element (1D case) + uchar* ptr(int i0, bool createMissing, size_t* hashval=0); + //! returns pointer to the specified element (2D case) + uchar* ptr(int i0, int i1, bool createMissing, size_t* hashval=0); + //! returns pointer to the specified element (3D case) + uchar* ptr(int i0, int i1, int i2, bool createMissing, size_t* hashval=0); + //! returns pointer to the specified element (nD case) + uchar* ptr(const int* idx, bool createMissing, size_t* hashval=0); + //!@} + + //!@{ + /*! + return read-write reference to the specified sparse matrix element. + + `ref<_Tp>(i0,...[,hashval])` is equivalent to `*(_Tp*)ptr(i0,...,true[,hashval])`. + The methods always return a valid reference. + If the element did not exist, it is created and initialiazed with 0. + */ + //! returns reference to the specified element (1D case) + template _Tp& ref(int i0, size_t* hashval=0); + //! returns reference to the specified element (2D case) + template _Tp& ref(int i0, int i1, size_t* hashval=0); + //! returns reference to the specified element (3D case) + template _Tp& ref(int i0, int i1, int i2, size_t* hashval=0); + //! returns reference to the specified element (nD case) + template _Tp& ref(const int* idx, size_t* hashval=0); + //!@} + + //!@{ + /*! + return value of the specified sparse matrix element. + + `value<_Tp>(i0,...[,hashval])` is equivalent to + @code + { const _Tp* p = find<_Tp>(i0,...[,hashval]); return p ? *p : _Tp(); } + @endcode + + That is, if the element did not exist, the methods return 0. + */ + //! returns value of the specified element (1D case) + template _Tp value(int i0, size_t* hashval=0) const; + //! returns value of the specified element (2D case) + template _Tp value(int i0, int i1, size_t* hashval=0) const; + //! returns value of the specified element (3D case) + template _Tp value(int i0, int i1, int i2, size_t* hashval=0) const; + //! returns value of the specified element (nD case) + template _Tp value(const int* idx, size_t* hashval=0) const; + //!@} + + //!@{ + /*! + Return pointer to the specified sparse matrix element if it exists + + `find<_Tp>(i0,...[,hashval])` is equivalent to `(_const Tp*)ptr(i0,...false[,hashval])`. + + If the specified element does not exist, the methods return NULL. + */ + //! returns pointer to the specified element (1D case) + template const _Tp* find(int i0, size_t* hashval=0) const; + //! returns pointer to the specified element (2D case) + template const _Tp* find(int i0, int i1, size_t* hashval=0) const; + //! returns pointer to the specified element (3D case) + template const _Tp* find(int i0, int i1, int i2, size_t* hashval=0) const; + //! returns pointer to the specified element (nD case) + template const _Tp* find(const int* idx, size_t* hashval=0) const; + //!@} + + //! erases the specified element (2D case) + void erase(int i0, int i1, size_t* hashval=0); + //! erases the specified element (3D case) + void erase(int i0, int i1, int i2, size_t* hashval=0); + //! erases the specified element (nD case) + void erase(const int* idx, size_t* hashval=0); + + //!@{ + /*! + return the sparse matrix iterator pointing to the first sparse matrix element + */ + //! returns the sparse matrix iterator at the matrix beginning + SparseMatIterator begin(); + //! returns the sparse matrix iterator at the matrix beginning + template SparseMatIterator_<_Tp> begin(); + //! returns the read-only sparse matrix iterator at the matrix beginning + SparseMatConstIterator begin() const; + //! returns the read-only sparse matrix iterator at the matrix beginning + template SparseMatConstIterator_<_Tp> begin() const; + //!@} + /*! + return the sparse matrix iterator pointing to the element following the last sparse matrix element + */ + //! returns the sparse matrix iterator at the matrix end + SparseMatIterator end(); + //! returns the read-only sparse matrix iterator at the matrix end + SparseMatConstIterator end() const; + //! returns the typed sparse matrix iterator at the matrix end + template SparseMatIterator_<_Tp> end(); + //! returns the typed read-only sparse matrix iterator at the matrix end + template SparseMatConstIterator_<_Tp> end() const; + + //! returns the value stored in the sparse martix node + template _Tp& value(Node* n); + //! returns the value stored in the sparse martix node + template const _Tp& value(const Node* n) const; + + ////////////// some internal-use methods /////////////// + Node* node(size_t nidx); + const Node* node(size_t nidx) const; + + uchar* newNode(const int* idx, size_t hashval); + void removeNode(size_t hidx, size_t nidx, size_t previdx); + void resizeHashTab(size_t newsize); + + int flags; + Hdr* hdr; +}; + + + +///////////////////////////////// SparseMat_<_Tp> //////////////////////////////////// + +/** @brief Template sparse n-dimensional array class derived from SparseMat + +SparseMat_ is a thin wrapper on top of SparseMat created in the same way as Mat_ . It simplifies +notation of some operations: +@code + int sz[] = {10, 20, 30}; + SparseMat_ M(3, sz); + ... + M.ref(1, 2, 3) = M(4, 5, 6) + M(7, 8, 9); +@endcode + */ +template class SparseMat_ : public SparseMat +{ +public: + typedef SparseMatIterator_<_Tp> iterator; + typedef SparseMatConstIterator_<_Tp> const_iterator; + + //! the default constructor + SparseMat_(); + //! the full constructor equivalent to SparseMat(dims, _sizes, DataType<_Tp>::type) + SparseMat_(int dims, const int* _sizes); + //! the copy constructor. If DataType<_Tp>.type != m.type(), the m elements are converted + SparseMat_(const SparseMat& m); + //! the copy constructor. This is O(1) operation - no data is copied + SparseMat_(const SparseMat_& m); + //! converts dense matrix to the sparse form + SparseMat_(const Mat& m); + //! converts the old-style sparse matrix to the C++ class. All the elements are copied + //SparseMat_(const CvSparseMat* m); + //! the assignment operator. If DataType<_Tp>.type != m.type(), the m elements are converted + SparseMat_& operator = (const SparseMat& m); + //! the assignment operator. This is O(1) operation - no data is copied + SparseMat_& operator = (const SparseMat_& m); + //! converts dense matrix to the sparse form + SparseMat_& operator = (const Mat& m); + + //! makes full copy of the matrix. All the elements are duplicated + SparseMat_ clone() const CV_NODISCARD; + //! equivalent to cv::SparseMat::create(dims, _sizes, DataType<_Tp>::type) + void create(int dims, const int* _sizes); + //! converts sparse matrix to the old-style CvSparseMat. All the elements are copied + //operator CvSparseMat*() const; + + //! returns type of the matrix elements + int type() const; + //! returns depth of the matrix elements + int depth() const; + //! returns the number of channels in each matrix element + int channels() const; + + //! equivalent to SparseMat::ref<_Tp>(i0, hashval) + _Tp& ref(int i0, size_t* hashval=0); + //! equivalent to SparseMat::ref<_Tp>(i0, i1, hashval) + _Tp& ref(int i0, int i1, size_t* hashval=0); + //! equivalent to SparseMat::ref<_Tp>(i0, i1, i2, hashval) + _Tp& ref(int i0, int i1, int i2, size_t* hashval=0); + //! equivalent to SparseMat::ref<_Tp>(idx, hashval) + _Tp& ref(const int* idx, size_t* hashval=0); + + //! equivalent to SparseMat::value<_Tp>(i0, hashval) + _Tp operator()(int i0, size_t* hashval=0) const; + //! equivalent to SparseMat::value<_Tp>(i0, i1, hashval) + _Tp operator()(int i0, int i1, size_t* hashval=0) const; + //! equivalent to SparseMat::value<_Tp>(i0, i1, i2, hashval) + _Tp operator()(int i0, int i1, int i2, size_t* hashval=0) const; + //! equivalent to SparseMat::value<_Tp>(idx, hashval) + _Tp operator()(const int* idx, size_t* hashval=0) const; + + //! returns sparse matrix iterator pointing to the first sparse matrix element + SparseMatIterator_<_Tp> begin(); + //! returns read-only sparse matrix iterator pointing to the first sparse matrix element + SparseMatConstIterator_<_Tp> begin() const; + //! returns sparse matrix iterator pointing to the element following the last sparse matrix element + SparseMatIterator_<_Tp> end(); + //! returns read-only sparse matrix iterator pointing to the element following the last sparse matrix element + SparseMatConstIterator_<_Tp> end() const; +}; + + + +////////////////////////////////// MatConstIterator ////////////////////////////////// + +class CV_EXPORTS MatConstIterator +{ +public: + typedef uchar* value_type; + typedef ptrdiff_t difference_type; + typedef const uchar** pointer; + typedef uchar* reference; + + typedef std::random_access_iterator_tag iterator_category; + + //! default constructor + MatConstIterator(); + //! constructor that sets the iterator to the beginning of the matrix + MatConstIterator(const Mat* _m); + //! constructor that sets the iterator to the specified element of the matrix + MatConstIterator(const Mat* _m, int _row, int _col=0); + //! constructor that sets the iterator to the specified element of the matrix + MatConstIterator(const Mat* _m, Point _pt); + //! constructor that sets the iterator to the specified element of the matrix + MatConstIterator(const Mat* _m, const int* _idx); + //! copy constructor + MatConstIterator(const MatConstIterator& it); + + //! copy operator + MatConstIterator& operator = (const MatConstIterator& it); + //! returns the current matrix element + const uchar* operator *() const; + //! returns the i-th matrix element, relative to the current + const uchar* operator [](ptrdiff_t i) const; + + //! shifts the iterator forward by the specified number of elements + MatConstIterator& operator += (ptrdiff_t ofs); + //! shifts the iterator backward by the specified number of elements + MatConstIterator& operator -= (ptrdiff_t ofs); + //! decrements the iterator + MatConstIterator& operator --(); + //! decrements the iterator + MatConstIterator operator --(int); + //! increments the iterator + MatConstIterator& operator ++(); + //! increments the iterator + MatConstIterator operator ++(int); + //! returns the current iterator position + Point pos() const; + //! returns the current iterator position + void pos(int* _idx) const; + + ptrdiff_t lpos() const; + void seek(ptrdiff_t ofs, bool relative = false); + void seek(const int* _idx, bool relative = false); + + const Mat* m; + size_t elemSize; + const uchar* ptr; + const uchar* sliceStart; + const uchar* sliceEnd; +}; + + + +////////////////////////////////// MatConstIterator_ ///////////////////////////////// + +/** @brief Matrix read-only iterator + */ +template +class MatConstIterator_ : public MatConstIterator +{ +public: + typedef _Tp value_type; + typedef ptrdiff_t difference_type; + typedef const _Tp* pointer; + typedef const _Tp& reference; + + typedef std::random_access_iterator_tag iterator_category; + + //! default constructor + MatConstIterator_(); + //! constructor that sets the iterator to the beginning of the matrix + MatConstIterator_(const Mat_<_Tp>* _m); + //! constructor that sets the iterator to the specified element of the matrix + MatConstIterator_(const Mat_<_Tp>* _m, int _row, int _col=0); + //! constructor that sets the iterator to the specified element of the matrix + MatConstIterator_(const Mat_<_Tp>* _m, Point _pt); + //! constructor that sets the iterator to the specified element of the matrix + MatConstIterator_(const Mat_<_Tp>* _m, const int* _idx); + //! copy constructor + MatConstIterator_(const MatConstIterator_& it); + + //! copy operator + MatConstIterator_& operator = (const MatConstIterator_& it); + //! returns the current matrix element + const _Tp& operator *() const; + //! returns the i-th matrix element, relative to the current + const _Tp& operator [](ptrdiff_t i) const; + + //! shifts the iterator forward by the specified number of elements + MatConstIterator_& operator += (ptrdiff_t ofs); + //! shifts the iterator backward by the specified number of elements + MatConstIterator_& operator -= (ptrdiff_t ofs); + //! decrements the iterator + MatConstIterator_& operator --(); + //! decrements the iterator + MatConstIterator_ operator --(int); + //! increments the iterator + MatConstIterator_& operator ++(); + //! increments the iterator + MatConstIterator_ operator ++(int); + //! returns the current iterator position + Point pos() const; +}; + + + +//////////////////////////////////// MatIterator_ //////////////////////////////////// + +/** @brief Matrix read-write iterator +*/ +template +class MatIterator_ : public MatConstIterator_<_Tp> +{ +public: + typedef _Tp* pointer; + typedef _Tp& reference; + + typedef std::random_access_iterator_tag iterator_category; + + //! the default constructor + MatIterator_(); + //! constructor that sets the iterator to the beginning of the matrix + MatIterator_(Mat_<_Tp>* _m); + //! constructor that sets the iterator to the specified element of the matrix + MatIterator_(Mat_<_Tp>* _m, int _row, int _col=0); + //! constructor that sets the iterator to the specified element of the matrix + MatIterator_(Mat_<_Tp>* _m, Point _pt); + //! constructor that sets the iterator to the specified element of the matrix + MatIterator_(Mat_<_Tp>* _m, const int* _idx); + //! copy constructor + MatIterator_(const MatIterator_& it); + //! copy operator + MatIterator_& operator = (const MatIterator_<_Tp>& it ); + + //! returns the current matrix element + _Tp& operator *() const; + //! returns the i-th matrix element, relative to the current + _Tp& operator [](ptrdiff_t i) const; + + //! shifts the iterator forward by the specified number of elements + MatIterator_& operator += (ptrdiff_t ofs); + //! shifts the iterator backward by the specified number of elements + MatIterator_& operator -= (ptrdiff_t ofs); + //! decrements the iterator + MatIterator_& operator --(); + //! decrements the iterator + MatIterator_ operator --(int); + //! increments the iterator + MatIterator_& operator ++(); + //! increments the iterator + MatIterator_ operator ++(int); +}; + + + +/////////////////////////////// SparseMatConstIterator /////////////////////////////// + +/** @brief Read-Only Sparse Matrix Iterator. + + Here is how to use the iterator to compute the sum of floating-point sparse matrix elements: + + \code + SparseMatConstIterator it = m.begin(), it_end = m.end(); + double s = 0; + CV_Assert( m.type() == CV_32F ); + for( ; it != it_end; ++it ) + s += it.value(); + \endcode +*/ +class CV_EXPORTS SparseMatConstIterator +{ +public: + //! the default constructor + SparseMatConstIterator(); + //! the full constructor setting the iterator to the first sparse matrix element + SparseMatConstIterator(const SparseMat* _m); + //! the copy constructor + SparseMatConstIterator(const SparseMatConstIterator& it); + + //! the assignment operator + SparseMatConstIterator& operator = (const SparseMatConstIterator& it); + + //! template method returning the current matrix element + template const _Tp& value() const; + //! returns the current node of the sparse matrix. it.node->idx is the current element index + const SparseMat::Node* node() const; + + //! moves iterator to the previous element + SparseMatConstIterator& operator --(); + //! moves iterator to the previous element + SparseMatConstIterator operator --(int); + //! moves iterator to the next element + SparseMatConstIterator& operator ++(); + //! moves iterator to the next element + SparseMatConstIterator operator ++(int); + + //! moves iterator to the element after the last element + void seekEnd(); + + const SparseMat* m; + size_t hashidx; + uchar* ptr; +}; + + + +////////////////////////////////// SparseMatIterator ///////////////////////////////// + +/** @brief Read-write Sparse Matrix Iterator + + The class is similar to cv::SparseMatConstIterator, + but can be used for in-place modification of the matrix elements. +*/ +class CV_EXPORTS SparseMatIterator : public SparseMatConstIterator +{ +public: + //! the default constructor + SparseMatIterator(); + //! the full constructor setting the iterator to the first sparse matrix element + SparseMatIterator(SparseMat* _m); + //! the full constructor setting the iterator to the specified sparse matrix element + SparseMatIterator(SparseMat* _m, const int* idx); + //! the copy constructor + SparseMatIterator(const SparseMatIterator& it); + + //! the assignment operator + SparseMatIterator& operator = (const SparseMatIterator& it); + //! returns read-write reference to the current sparse matrix element + template _Tp& value() const; + //! returns pointer to the current sparse matrix node. it.node->idx is the index of the current element (do not modify it!) + SparseMat::Node* node() const; + + //! moves iterator to the next element + SparseMatIterator& operator ++(); + //! moves iterator to the next element + SparseMatIterator operator ++(int); +}; + + + +/////////////////////////////// SparseMatConstIterator_ ////////////////////////////// + +/** @brief Template Read-Only Sparse Matrix Iterator Class. + + This is the derived from SparseMatConstIterator class that + introduces more convenient operator *() for accessing the current element. +*/ +template class SparseMatConstIterator_ : public SparseMatConstIterator +{ +public: + + typedef std::forward_iterator_tag iterator_category; + + //! the default constructor + SparseMatConstIterator_(); + //! the full constructor setting the iterator to the first sparse matrix element + SparseMatConstIterator_(const SparseMat_<_Tp>* _m); + SparseMatConstIterator_(const SparseMat* _m); + //! the copy constructor + SparseMatConstIterator_(const SparseMatConstIterator_& it); + + //! the assignment operator + SparseMatConstIterator_& operator = (const SparseMatConstIterator_& it); + //! the element access operator + const _Tp& operator *() const; + + //! moves iterator to the next element + SparseMatConstIterator_& operator ++(); + //! moves iterator to the next element + SparseMatConstIterator_ operator ++(int); +}; + + + +///////////////////////////////// SparseMatIterator_ ///////////////////////////////// + +/** @brief Template Read-Write Sparse Matrix Iterator Class. + + This is the derived from cv::SparseMatConstIterator_ class that + introduces more convenient operator *() for accessing the current element. +*/ +template class SparseMatIterator_ : public SparseMatConstIterator_<_Tp> +{ +public: + + typedef std::forward_iterator_tag iterator_category; + + //! the default constructor + SparseMatIterator_(); + //! the full constructor setting the iterator to the first sparse matrix element + SparseMatIterator_(SparseMat_<_Tp>* _m); + SparseMatIterator_(SparseMat* _m); + //! the copy constructor + SparseMatIterator_(const SparseMatIterator_& it); + + //! the assignment operator + SparseMatIterator_& operator = (const SparseMatIterator_& it); + //! returns the reference to the current element + _Tp& operator *() const; + + //! moves the iterator to the next element + SparseMatIterator_& operator ++(); + //! moves the iterator to the next element + SparseMatIterator_ operator ++(int); +}; + + + +/////////////////////////////////// NAryMatIterator ////////////////////////////////// + +/** @brief n-ary multi-dimensional array iterator. + +Use the class to implement unary, binary, and, generally, n-ary element-wise operations on +multi-dimensional arrays. Some of the arguments of an n-ary function may be continuous arrays, some +may be not. It is possible to use conventional MatIterator 's for each array but incrementing all of +the iterators after each small operations may be a big overhead. In this case consider using +NAryMatIterator to iterate through several matrices simultaneously as long as they have the same +geometry (dimensionality and all the dimension sizes are the same). On each iteration `it.planes[0]`, +`it.planes[1]`,... will be the slices of the corresponding matrices. + +The example below illustrates how you can compute a normalized and threshold 3D color histogram: +@code + void computeNormalizedColorHist(const Mat& image, Mat& hist, int N, double minProb) + { + const int histSize[] = {N, N, N}; + + // make sure that the histogram has a proper size and type + hist.create(3, histSize, CV_32F); + + // and clear it + hist = Scalar(0); + + // the loop below assumes that the image + // is a 8-bit 3-channel. check it. + CV_Assert(image.type() == CV_8UC3); + MatConstIterator_ it = image.begin(), + it_end = image.end(); + for( ; it != it_end; ++it ) + { + const Vec3b& pix = *it; + hist.at(pix[0]*N/256, pix[1]*N/256, pix[2]*N/256) += 1.f; + } + + minProb *= image.rows*image.cols; + + // initialize iterator (the style is different from STL). + // after initialization the iterator will contain + // the number of slices or planes the iterator will go through. + // it simultaneously increments iterators for several matrices + // supplied as a null terminated list of pointers + const Mat* arrays[] = {&hist, 0}; + Mat planes[1]; + NAryMatIterator itNAry(arrays, planes, 1); + double s = 0; + // iterate through the matrix. on each iteration + // itNAry.planes[i] (of type Mat) will be set to the current plane + // of the i-th n-dim matrix passed to the iterator constructor. + for(int p = 0; p < itNAry.nplanes; p++, ++itNAry) + { + threshold(itNAry.planes[0], itNAry.planes[0], minProb, 0, THRESH_TOZERO); + s += sum(itNAry.planes[0])[0]; + } + + s = 1./s; + itNAry = NAryMatIterator(arrays, planes, 1); + for(int p = 0; p < itNAry.nplanes; p++, ++itNAry) + itNAry.planes[0] *= s; + } +@endcode + */ +class CV_EXPORTS NAryMatIterator +{ +public: + //! the default constructor + NAryMatIterator(); + //! the full constructor taking arbitrary number of n-dim matrices + NAryMatIterator(const Mat** arrays, uchar** ptrs, int narrays=-1); + //! the full constructor taking arbitrary number of n-dim matrices + NAryMatIterator(const Mat** arrays, Mat* planes, int narrays=-1); + //! the separate iterator initialization method + void init(const Mat** arrays, Mat* planes, uchar** ptrs, int narrays=-1); + + //! proceeds to the next plane of every iterated matrix + NAryMatIterator& operator ++(); + //! proceeds to the next plane of every iterated matrix (postfix increment operator) + NAryMatIterator operator ++(int); + + //! the iterated arrays + const Mat** arrays; + //! the current planes + Mat* planes; + //! data pointers + uchar** ptrs; + //! the number of arrays + int narrays; + //! the number of hyper-planes that the iterator steps through + size_t nplanes; + //! the size of each segment (in elements) + size_t size; +protected: + int iterdepth; + size_t idx; +}; + + + +///////////////////////////////// Matrix Expressions ///////////////////////////////// + +class CV_EXPORTS MatOp +{ +public: + MatOp(); + virtual ~MatOp(); + + virtual bool elementWise(const MatExpr& expr) const; + virtual void assign(const MatExpr& expr, Mat& m, int type=-1) const = 0; + virtual void roi(const MatExpr& expr, const Range& rowRange, + const Range& colRange, MatExpr& res) const; + virtual void diag(const MatExpr& expr, int d, MatExpr& res) const; + virtual void augAssignAdd(const MatExpr& expr, Mat& m) const; + virtual void augAssignSubtract(const MatExpr& expr, Mat& m) const; + virtual void augAssignMultiply(const MatExpr& expr, Mat& m) const; + virtual void augAssignDivide(const MatExpr& expr, Mat& m) const; + virtual void augAssignAnd(const MatExpr& expr, Mat& m) const; + virtual void augAssignOr(const MatExpr& expr, Mat& m) const; + virtual void augAssignXor(const MatExpr& expr, Mat& m) const; + + virtual void add(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res) const; + virtual void add(const MatExpr& expr1, const Scalar& s, MatExpr& res) const; + + virtual void subtract(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res) const; + virtual void subtract(const Scalar& s, const MatExpr& expr, MatExpr& res) const; + + virtual void multiply(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res, double scale=1) const; + virtual void multiply(const MatExpr& expr1, double s, MatExpr& res) const; + + virtual void divide(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res, double scale=1) const; + virtual void divide(double s, const MatExpr& expr, MatExpr& res) const; + + virtual void abs(const MatExpr& expr, MatExpr& res) const; + + virtual void transpose(const MatExpr& expr, MatExpr& res) const; + virtual void matmul(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res) const; + virtual void invert(const MatExpr& expr, int method, MatExpr& res) const; + + virtual Size size(const MatExpr& expr) const; + virtual int type(const MatExpr& expr) const; +}; + +/** @brief Matrix expression representation +@anchor MatrixExpressions +This is a list of implemented matrix operations that can be combined in arbitrary complex +expressions (here A, B stand for matrices ( Mat ), s for a scalar ( Scalar ), alpha for a +real-valued scalar ( double )): +- Addition, subtraction, negation: `A+B`, `A-B`, `A+s`, `A-s`, `s+A`, `s-A`, `-A` +- Scaling: `A*alpha` +- Per-element multiplication and division: `A.mul(B)`, `A/B`, `alpha/A` +- Matrix multiplication: `A*B` +- Transposition: `A.t()` (means AT) +- Matrix inversion and pseudo-inversion, solving linear systems and least-squares problems: + `A.inv([method]) (~ A-1)`, `A.inv([method])*B (~ X: AX=B)` +- Comparison: `A cmpop B`, `A cmpop alpha`, `alpha cmpop A`, where *cmpop* is one of + `>`, `>=`, `==`, `!=`, `<=`, `<`. The result of comparison is an 8-bit single channel mask whose + elements are set to 255 (if the particular element or pair of elements satisfy the condition) or + 0. +- Bitwise logical operations: `A logicop B`, `A logicop s`, `s logicop A`, `~A`, where *logicop* is one of + `&`, `|`, `^`. +- Element-wise minimum and maximum: `min(A, B)`, `min(A, alpha)`, `max(A, B)`, `max(A, alpha)` +- Element-wise absolute value: `abs(A)` +- Cross-product, dot-product: `A.cross(B)`, `A.dot(B)` +- Any function of matrix or matrices and scalars that returns a matrix or a scalar, such as norm, + mean, sum, countNonZero, trace, determinant, repeat, and others. +- Matrix initializers ( Mat::eye(), Mat::zeros(), Mat::ones() ), matrix comma-separated + initializers, matrix constructors and operators that extract sub-matrices (see Mat description). +- Mat_() constructors to cast the result to the proper type. +@note Comma-separated initializers and probably some other operations may require additional +explicit Mat() or Mat_() constructor calls to resolve a possible ambiguity. + +Here are examples of matrix expressions: +@code + // compute pseudo-inverse of A, equivalent to A.inv(DECOMP_SVD) + SVD svd(A); + Mat pinvA = svd.vt.t()*Mat::diag(1./svd.w)*svd.u.t(); + + // compute the new vector of parameters in the Levenberg-Marquardt algorithm + x -= (A.t()*A + lambda*Mat::eye(A.cols,A.cols,A.type())).inv(DECOMP_CHOLESKY)*(A.t()*err); + + // sharpen image using "unsharp mask" algorithm + Mat blurred; double sigma = 1, threshold = 5, amount = 1; + GaussianBlur(img, blurred, Size(), sigma, sigma); + Mat lowContrastMask = abs(img - blurred) < threshold; + Mat sharpened = img*(1+amount) + blurred*(-amount); + img.copyTo(sharpened, lowContrastMask); +@endcode +*/ +class CV_EXPORTS MatExpr +{ +public: + MatExpr(); + explicit MatExpr(const Mat& m); + + MatExpr(const MatOp* _op, int _flags, const Mat& _a = Mat(), const Mat& _b = Mat(), + const Mat& _c = Mat(), double _alpha = 1, double _beta = 1, const Scalar& _s = Scalar()); + + operator Mat() const; + template operator Mat_<_Tp>() const; + + Size size() const; + int type() const; + + MatExpr row(int y) const; + MatExpr col(int x) const; + MatExpr diag(int d = 0) const; + MatExpr operator()( const Range& rowRange, const Range& colRange ) const; + MatExpr operator()( const Rect& roi ) const; + + MatExpr t() const; + MatExpr inv(int method = DECOMP_LU) const; + MatExpr mul(const MatExpr& e, double scale=1) const; + MatExpr mul(const Mat& m, double scale=1) const; + + Mat cross(const Mat& m) const; + double dot(const Mat& m) const; + + const MatOp* op; + int flags; + + Mat a, b, c; + double alpha, beta; + Scalar s; +}; + +//! @} core_basic + +//! @relates cv::MatExpr +//! @{ +CV_EXPORTS MatExpr operator + (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator + (const Mat& a, const Scalar& s); +CV_EXPORTS MatExpr operator + (const Scalar& s, const Mat& a); +CV_EXPORTS MatExpr operator + (const MatExpr& e, const Mat& m); +CV_EXPORTS MatExpr operator + (const Mat& m, const MatExpr& e); +CV_EXPORTS MatExpr operator + (const MatExpr& e, const Scalar& s); +CV_EXPORTS MatExpr operator + (const Scalar& s, const MatExpr& e); +CV_EXPORTS MatExpr operator + (const MatExpr& e1, const MatExpr& e2); +template static inline +MatExpr operator + (const Mat& a, const Matx<_Tp, m, n>& b) { return a + Mat(b); } +template static inline +MatExpr operator + (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) + b; } + +CV_EXPORTS MatExpr operator - (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator - (const Mat& a, const Scalar& s); +CV_EXPORTS MatExpr operator - (const Scalar& s, const Mat& a); +CV_EXPORTS MatExpr operator - (const MatExpr& e, const Mat& m); +CV_EXPORTS MatExpr operator - (const Mat& m, const MatExpr& e); +CV_EXPORTS MatExpr operator - (const MatExpr& e, const Scalar& s); +CV_EXPORTS MatExpr operator - (const Scalar& s, const MatExpr& e); +CV_EXPORTS MatExpr operator - (const MatExpr& e1, const MatExpr& e2); +template static inline +MatExpr operator - (const Mat& a, const Matx<_Tp, m, n>& b) { return a - Mat(b); } +template static inline +MatExpr operator - (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) - b; } + +CV_EXPORTS MatExpr operator - (const Mat& m); +CV_EXPORTS MatExpr operator - (const MatExpr& e); + +CV_EXPORTS MatExpr operator * (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator * (const Mat& a, double s); +CV_EXPORTS MatExpr operator * (double s, const Mat& a); +CV_EXPORTS MatExpr operator * (const MatExpr& e, const Mat& m); +CV_EXPORTS MatExpr operator * (const Mat& m, const MatExpr& e); +CV_EXPORTS MatExpr operator * (const MatExpr& e, double s); +CV_EXPORTS MatExpr operator * (double s, const MatExpr& e); +CV_EXPORTS MatExpr operator * (const MatExpr& e1, const MatExpr& e2); +template static inline +MatExpr operator * (const Mat& a, const Matx<_Tp, m, n>& b) { return a * Mat(b); } +template static inline +MatExpr operator * (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) * b; } + +CV_EXPORTS MatExpr operator / (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator / (const Mat& a, double s); +CV_EXPORTS MatExpr operator / (double s, const Mat& a); +CV_EXPORTS MatExpr operator / (const MatExpr& e, const Mat& m); +CV_EXPORTS MatExpr operator / (const Mat& m, const MatExpr& e); +CV_EXPORTS MatExpr operator / (const MatExpr& e, double s); +CV_EXPORTS MatExpr operator / (double s, const MatExpr& e); +CV_EXPORTS MatExpr operator / (const MatExpr& e1, const MatExpr& e2); +template static inline +MatExpr operator / (const Mat& a, const Matx<_Tp, m, n>& b) { return a / Mat(b); } +template static inline +MatExpr operator / (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) / b; } + +CV_EXPORTS MatExpr operator < (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator < (const Mat& a, double s); +CV_EXPORTS MatExpr operator < (double s, const Mat& a); +template static inline +MatExpr operator < (const Mat& a, const Matx<_Tp, m, n>& b) { return a < Mat(b); } +template static inline +MatExpr operator < (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) < b; } + +CV_EXPORTS MatExpr operator <= (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator <= (const Mat& a, double s); +CV_EXPORTS MatExpr operator <= (double s, const Mat& a); +template static inline +MatExpr operator <= (const Mat& a, const Matx<_Tp, m, n>& b) { return a <= Mat(b); } +template static inline +MatExpr operator <= (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) <= b; } + +CV_EXPORTS MatExpr operator == (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator == (const Mat& a, double s); +CV_EXPORTS MatExpr operator == (double s, const Mat& a); +template static inline +MatExpr operator == (const Mat& a, const Matx<_Tp, m, n>& b) { return a == Mat(b); } +template static inline +MatExpr operator == (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) == b; } + +CV_EXPORTS MatExpr operator != (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator != (const Mat& a, double s); +CV_EXPORTS MatExpr operator != (double s, const Mat& a); +template static inline +MatExpr operator != (const Mat& a, const Matx<_Tp, m, n>& b) { return a != Mat(b); } +template static inline +MatExpr operator != (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) != b; } + +CV_EXPORTS MatExpr operator >= (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator >= (const Mat& a, double s); +CV_EXPORTS MatExpr operator >= (double s, const Mat& a); +template static inline +MatExpr operator >= (const Mat& a, const Matx<_Tp, m, n>& b) { return a >= Mat(b); } +template static inline +MatExpr operator >= (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) >= b; } + +CV_EXPORTS MatExpr operator > (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator > (const Mat& a, double s); +CV_EXPORTS MatExpr operator > (double s, const Mat& a); +template static inline +MatExpr operator > (const Mat& a, const Matx<_Tp, m, n>& b) { return a > Mat(b); } +template static inline +MatExpr operator > (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) > b; } + +CV_EXPORTS MatExpr operator & (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator & (const Mat& a, const Scalar& s); +CV_EXPORTS MatExpr operator & (const Scalar& s, const Mat& a); +template static inline +MatExpr operator & (const Mat& a, const Matx<_Tp, m, n>& b) { return a & Mat(b); } +template static inline +MatExpr operator & (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) & b; } + +CV_EXPORTS MatExpr operator | (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator | (const Mat& a, const Scalar& s); +CV_EXPORTS MatExpr operator | (const Scalar& s, const Mat& a); +template static inline +MatExpr operator | (const Mat& a, const Matx<_Tp, m, n>& b) { return a | Mat(b); } +template static inline +MatExpr operator | (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) | b; } + +CV_EXPORTS MatExpr operator ^ (const Mat& a, const Mat& b); +CV_EXPORTS MatExpr operator ^ (const Mat& a, const Scalar& s); +CV_EXPORTS MatExpr operator ^ (const Scalar& s, const Mat& a); +template static inline +MatExpr operator ^ (const Mat& a, const Matx<_Tp, m, n>& b) { return a ^ Mat(b); } +template static inline +MatExpr operator ^ (const Matx<_Tp, m, n>& a, const Mat& b) { return Mat(a) ^ b; } + +CV_EXPORTS MatExpr operator ~(const Mat& m); + +CV_EXPORTS MatExpr min(const Mat& a, const Mat& b); +CV_EXPORTS MatExpr min(const Mat& a, double s); +CV_EXPORTS MatExpr min(double s, const Mat& a); +template static inline +MatExpr min (const Mat& a, const Matx<_Tp, m, n>& b) { return min(a, Mat(b)); } +template static inline +MatExpr min (const Matx<_Tp, m, n>& a, const Mat& b) { return min(Mat(a), b); } + +CV_EXPORTS MatExpr max(const Mat& a, const Mat& b); +CV_EXPORTS MatExpr max(const Mat& a, double s); +CV_EXPORTS MatExpr max(double s, const Mat& a); +template static inline +MatExpr max (const Mat& a, const Matx<_Tp, m, n>& b) { return max(a, Mat(b)); } +template static inline +MatExpr max (const Matx<_Tp, m, n>& a, const Mat& b) { return max(Mat(a), b); } + +/** @brief Calculates an absolute value of each matrix element. + +abs is a meta-function that is expanded to one of absdiff or convertScaleAbs forms: +- C = abs(A-B) is equivalent to `absdiff(A, B, C)` +- C = abs(A) is equivalent to `absdiff(A, Scalar::all(0), C)` +- C = `Mat_ >(abs(A*alpha + beta))` is equivalent to `convertScaleAbs(A, C, alpha, +beta)` + +The output matrix has the same size and the same type as the input one except for the last case, +where C is depth=CV_8U . +@param m matrix. +@sa @ref MatrixExpressions, absdiff, convertScaleAbs + */ +CV_EXPORTS MatExpr abs(const Mat& m); +/** @overload +@param e matrix expression. +*/ +CV_EXPORTS MatExpr abs(const MatExpr& e); +//! @} relates cv::MatExpr + +} // cv + +#include "opencv2/core/mat.inl.hpp" + +#endif // OPENCV_CORE_MAT_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/mat.inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/mat.inl.hpp similarity index 95% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/mat.inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/mat.inl.hpp index dbd9584a5..0ef6405bb 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/mat.inl.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/mat.inl.hpp @@ -61,6 +61,16 @@ CV__DEBUG_NS_BEGIN //! @cond IGNORED +////////////////////////// Custom (raw) type wrapper ////////////////////////// + +template static inline +int rawType() +{ + CV_StaticAssert(sizeof(_Tp) <= CV_CN_MAX, "sizeof(_Tp) is too large"); + const int elemSize = sizeof(_Tp); + return (int)CV_MAKETYPE(CV_8U, elemSize); +} + //////////////////////// Input/Output Arrays //////////////////////// inline void _InputArray::init(int _flags, const void* _obj) @@ -73,7 +83,7 @@ inline void* _InputArray::getObj() const { return obj; } inline int _InputArray::getFlags() const { return flags; } inline Size _InputArray::getSz() const { return sz; } -inline _InputArray::_InputArray() { init(NONE, 0); } +inline _InputArray::_InputArray() { init(0 + NONE, 0); } inline _InputArray::_InputArray(int _flags, void* _obj) { init(_flags, _obj); } inline _InputArray::_InputArray(const Mat& m) { init(MAT+ACCESS_READ, &m); } inline _InputArray::_InputArray(const std::vector& vec) { init(STD_VECTOR_MAT+ACCESS_READ, &vec); } @@ -84,7 +94,6 @@ template inline _InputArray::_InputArray(const std::vector<_Tp>& vec) { init(FIXED_TYPE + STD_VECTOR + traits::Type<_Tp>::value + ACCESS_READ, &vec); } -#ifdef CV_CXX_STD_ARRAY template inline _InputArray::_InputArray(const std::array<_Tp, _Nm>& arr) { init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_READ, arr.data(), Size(1, _Nm)); } @@ -92,7 +101,6 @@ _InputArray::_InputArray(const std::array<_Tp, _Nm>& arr) template inline _InputArray::_InputArray(const std::array& arr) { init(STD_ARRAY_MAT + ACCESS_READ, arr.data(), Size(1, _Nm)); } -#endif inline _InputArray::_InputArray(const std::vector& vec) @@ -102,10 +110,6 @@ template inline _InputArray::_InputArray(const std::vector >& vec) { init(FIXED_TYPE + STD_VECTOR_VECTOR + traits::Type<_Tp>::value + ACCESS_READ, &vec); } -inline -_InputArray::_InputArray(const std::vector >&) -{ CV_Error(Error::StsUnsupportedFormat, "std::vector > is not supported!\n"); } - template inline _InputArray::_InputArray(const std::vector >& vec) { init(FIXED_TYPE + STD_VECTOR_MAT + traits::Type<_Tp>::value + ACCESS_READ, &vec); } @@ -140,6 +144,25 @@ inline _InputArray::_InputArray(const ogl::Buffer& buf) inline _InputArray::_InputArray(const cuda::HostMem& cuda_mem) { init(CUDA_HOST_MEM + ACCESS_READ, &cuda_mem); } +template inline +_InputArray _InputArray::rawIn(const std::vector<_Tp>& vec) +{ + _InputArray v; + v.flags = _InputArray::FIXED_TYPE + _InputArray::STD_VECTOR + rawType<_Tp>() + ACCESS_READ; + v.obj = (void*)&vec; + return v; +} + +template inline +_InputArray _InputArray::rawIn(const std::array<_Tp, _Nm>& arr) +{ + _InputArray v; + v.flags = FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_READ; + v.obj = (void*)arr.data(); + v.sz = Size(1, _Nm); + return v; +} + inline _InputArray::~_InputArray() {} inline Mat _InputArray::getMat(int i) const @@ -157,22 +180,22 @@ inline bool _InputArray::isMatx() const { return kind() == _InputArray::MATX; } inline bool _InputArray::isVector() const { return kind() == _InputArray::STD_VECTOR || kind() == _InputArray::STD_BOOL_VECTOR || kind() == _InputArray::STD_ARRAY; } +inline bool _InputArray::isGpuMat() const { return kind() == _InputArray::CUDA_GPU_MAT; } inline bool _InputArray::isGpuMatVector() const { return kind() == _InputArray::STD_VECTOR_CUDA_GPU_MAT; } //////////////////////////////////////////////////////////////////////////////////////// -inline _OutputArray::_OutputArray() { init(ACCESS_WRITE, 0); } -inline _OutputArray::_OutputArray(int _flags, void* _obj) { init(_flags|ACCESS_WRITE, _obj); } +inline _OutputArray::_OutputArray() { init(NONE + ACCESS_WRITE, 0); } +inline _OutputArray::_OutputArray(int _flags, void* _obj) { init(_flags + ACCESS_WRITE, _obj); } inline _OutputArray::_OutputArray(Mat& m) { init(MAT+ACCESS_WRITE, &m); } -inline _OutputArray::_OutputArray(std::vector& vec) { init(STD_VECTOR_MAT+ACCESS_WRITE, &vec); } -inline _OutputArray::_OutputArray(UMat& m) { init(UMAT+ACCESS_WRITE, &m); } -inline _OutputArray::_OutputArray(std::vector& vec) { init(STD_VECTOR_UMAT+ACCESS_WRITE, &vec); } +inline _OutputArray::_OutputArray(std::vector& vec) { init(STD_VECTOR_MAT + ACCESS_WRITE, &vec); } +inline _OutputArray::_OutputArray(UMat& m) { init(UMAT + ACCESS_WRITE, &m); } +inline _OutputArray::_OutputArray(std::vector& vec) { init(STD_VECTOR_UMAT + ACCESS_WRITE, &vec); } template inline _OutputArray::_OutputArray(std::vector<_Tp>& vec) { init(FIXED_TYPE + STD_VECTOR + traits::Type<_Tp>::value + ACCESS_WRITE, &vec); } -#ifdef CV_CXX_STD_ARRAY template inline _OutputArray::_OutputArray(std::array<_Tp, _Nm>& arr) { init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } @@ -180,20 +203,11 @@ _OutputArray::_OutputArray(std::array<_Tp, _Nm>& arr) template inline _OutputArray::_OutputArray(std::array& arr) { init(STD_ARRAY_MAT + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } -#endif - -inline -_OutputArray::_OutputArray(std::vector&) -{ CV_Error(Error::StsUnsupportedFormat, "std::vector cannot be an output array\n"); } template inline _OutputArray::_OutputArray(std::vector >& vec) { init(FIXED_TYPE + STD_VECTOR_VECTOR + traits::Type<_Tp>::value + ACCESS_WRITE, &vec); } -inline -_OutputArray::_OutputArray(std::vector >&) -{ CV_Error(Error::StsUnsupportedFormat, "std::vector > cannot be an output array\n"); } - template inline _OutputArray::_OutputArray(std::vector >& vec) { init(FIXED_TYPE + STD_VECTOR_MAT + traits::Type<_Tp>::value + ACCESS_WRITE, &vec); } @@ -214,7 +228,6 @@ template inline _OutputArray::_OutputArray(const std::vector<_Tp>& vec) { init(FIXED_TYPE + FIXED_SIZE + STD_VECTOR + traits::Type<_Tp>::value + ACCESS_WRITE, &vec); } -#ifdef CV_CXX_STD_ARRAY template inline _OutputArray::_OutputArray(const std::array<_Tp, _Nm>& arr) { init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } @@ -222,7 +235,6 @@ _OutputArray::_OutputArray(const std::array<_Tp, _Nm>& arr) template inline _OutputArray::_OutputArray(const std::array& arr) { init(FIXED_SIZE + STD_ARRAY_MAT + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } -#endif template inline _OutputArray::_OutputArray(const std::vector >& vec) @@ -278,10 +290,29 @@ inline _OutputArray::_OutputArray(const ogl::Buffer& buf) inline _OutputArray::_OutputArray(const cuda::HostMem& cuda_mem) { init(FIXED_TYPE + FIXED_SIZE + CUDA_HOST_MEM + ACCESS_WRITE, &cuda_mem); } +template inline +_OutputArray _OutputArray::rawOut(std::vector<_Tp>& vec) +{ + _OutputArray v; + v.flags = _InputArray::FIXED_TYPE + _InputArray::STD_VECTOR + rawType<_Tp>() + ACCESS_WRITE; + v.obj = (void*)&vec; + return v; +} + +template inline +_OutputArray _OutputArray::rawOut(std::array<_Tp, _Nm>& arr) +{ + _OutputArray v; + v.flags = FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_WRITE; + v.obj = (void*)arr.data(); + v.sz = Size(1, _Nm); + return v; +} + /////////////////////////////////////////////////////////////////////////////////////////// -inline _InputOutputArray::_InputOutputArray() { init(ACCESS_RW, 0); } -inline _InputOutputArray::_InputOutputArray(int _flags, void* _obj) { init(_flags|ACCESS_RW, _obj); } +inline _InputOutputArray::_InputOutputArray() { init(0+ACCESS_RW, 0); } +inline _InputOutputArray::_InputOutputArray(int _flags, void* _obj) { init(_flags+ACCESS_RW, _obj); } inline _InputOutputArray::_InputOutputArray(Mat& m) { init(MAT+ACCESS_RW, &m); } inline _InputOutputArray::_InputOutputArray(std::vector& vec) { init(STD_VECTOR_MAT+ACCESS_RW, &vec); } inline _InputOutputArray::_InputOutputArray(UMat& m) { init(UMAT+ACCESS_RW, &m); } @@ -291,7 +322,6 @@ template inline _InputOutputArray::_InputOutputArray(std::vector<_Tp>& vec) { init(FIXED_TYPE + STD_VECTOR + traits::Type<_Tp>::value + ACCESS_RW, &vec); } -#ifdef CV_CXX_STD_ARRAY template inline _InputOutputArray::_InputOutputArray(std::array<_Tp, _Nm>& arr) { init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_RW, arr.data(), Size(1, _Nm)); } @@ -299,10 +329,6 @@ _InputOutputArray::_InputOutputArray(std::array<_Tp, _Nm>& arr) template inline _InputOutputArray::_InputOutputArray(std::array& arr) { init(STD_ARRAY_MAT + ACCESS_RW, arr.data(), Size(1, _Nm)); } -#endif - -inline _InputOutputArray::_InputOutputArray(std::vector&) -{ CV_Error(Error::StsUnsupportedFormat, "std::vector cannot be an input/output array\n"); } template inline _InputOutputArray::_InputOutputArray(std::vector >& vec) @@ -328,7 +354,6 @@ template inline _InputOutputArray::_InputOutputArray(const std::vector<_Tp>& vec) { init(FIXED_TYPE + FIXED_SIZE + STD_VECTOR + traits::Type<_Tp>::value + ACCESS_RW, &vec); } -#ifdef CV_CXX_STD_ARRAY template inline _InputOutputArray::_InputOutputArray(const std::array<_Tp, _Nm>& arr) { init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_RW, arr.data(), Size(1, _Nm)); } @@ -336,7 +361,6 @@ _InputOutputArray::_InputOutputArray(const std::array<_Tp, _Nm>& arr) template inline _InputOutputArray::_InputOutputArray(const std::array& arr) { init(FIXED_SIZE + STD_ARRAY_MAT + ACCESS_RW, arr.data(), Size(1, _Nm)); } -#endif template inline _InputOutputArray::_InputOutputArray(const std::vector >& vec) @@ -394,6 +418,30 @@ inline _InputOutputArray::_InputOutputArray(const ogl::Buffer& buf) inline _InputOutputArray::_InputOutputArray(const cuda::HostMem& cuda_mem) { init(FIXED_TYPE + FIXED_SIZE + CUDA_HOST_MEM + ACCESS_RW, &cuda_mem); } +template inline +_InputOutputArray _InputOutputArray::rawInOut(std::vector<_Tp>& vec) +{ + _InputOutputArray v; + v.flags = _InputArray::FIXED_TYPE + _InputArray::STD_VECTOR + rawType<_Tp>() + ACCESS_RW; + v.obj = (void*)&vec; + return v; +} + +template inline +_InputOutputArray _InputOutputArray::rawInOut(std::array<_Tp, _Nm>& arr) +{ + _InputOutputArray v; + v.flags = FIXED_TYPE + FIXED_SIZE + STD_ARRAY + traits::Type<_Tp>::value + ACCESS_RW; + v.obj = (void*)arr.data(); + v.sz = Size(1, _Nm); + return v; +} + + +template static inline _InputArray rawIn(_Tp& v) { return _InputArray::rawIn(v); } +template static inline _OutputArray rawOut(_Tp& v) { return _OutputArray::rawOut(v); } +template static inline _InputOutputArray rawInOut(_Tp& v) { return _InputOutputArray::rawInOut(v); } + CV__DEBUG_NS_END //////////////////////////////////////////// Mat ////////////////////////////////////////// @@ -504,24 +552,20 @@ Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step) if( _step == AUTO_STEP ) { _step = minstep; - flags |= CONTINUOUS_FLAG; } else { CV_DbgAssert( _step >= minstep ); - if (_step % esz1 != 0) { CV_Error(Error::BadStep, "Step must be a multiple of esz1"); } - - if (_step == minstep || rows == 1) - flags |= CONTINUOUS_FLAG; } step[0] = _step; step[1] = esz; datalimit = datastart + _step * rows; dataend = datalimit - _step + minstep; + updateContinuityFlag(); } inline @@ -537,7 +581,6 @@ Mat::Mat(Size _sz, int _type, void* _data, size_t _step) if( _step == AUTO_STEP ) { _step = minstep; - flags |= CONTINUOUS_FLAG; } else { @@ -547,19 +590,17 @@ Mat::Mat(Size _sz, int _type, void* _data, size_t _step) { CV_Error(Error::BadStep, "Step must be a multiple of esz1"); } - - if (_step == minstep || rows == 1) - flags |= CONTINUOUS_FLAG; } step[0] = _step; step[1] = esz; datalimit = datastart + _step*rows; dataend = datalimit - _step + minstep; + updateContinuityFlag(); } template inline Mat::Mat(const std::vector<_Tp>& vec, bool copyData) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows((int)vec.size()), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows((int)vec.size()), cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if(vec.empty()) @@ -574,22 +615,29 @@ Mat::Mat(const std::vector<_Tp>& vec, bool copyData) Mat((int)vec.size(), 1, traits::Type<_Tp>::value, (uchar*)&vec[0]).copyTo(*this); } -#ifdef CV_CXX11 template inline Mat::Mat(const std::initializer_list<_Tp> list) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows((int)list.size()), - cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) + : Mat() { - if(list.size() == 0) - return; + CV_Assert(list.size() != 0); Mat((int)list.size(), 1, traits::Type<_Tp>::value, (uchar*)list.begin()).copyTo(*this); } -#endif -#ifdef CV_CXX_STD_ARRAY +template inline +Mat::Mat(const std::initializer_list sizes, const std::initializer_list<_Tp> list) + : Mat() +{ + size_t size_total = 1; + for(auto s : sizes) + size_total *= s; + CV_Assert(list.size() != 0); + CV_Assert(size_total == list.size()); + Mat((int)sizes.size(), (int*)sizes.begin(), traits::Type<_Tp>::value, (uchar*)list.begin()).copyTo(*this); +} + template inline Mat::Mat(const std::array<_Tp, _Nm>& arr, bool copyData) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows((int)arr.size()), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows((int)arr.size()), cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if(arr.empty()) @@ -603,11 +651,10 @@ Mat::Mat(const std::array<_Tp, _Nm>& arr, bool copyData) else Mat((int)arr.size(), 1, traits::Type<_Tp>::value, (uchar*)arr.data()).copyTo(*this); } -#endif template inline Mat::Mat(const Vec<_Tp, n>& vec, bool copyData) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows(n), cols(1), data(0), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows(n), cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) @@ -623,7 +670,7 @@ Mat::Mat(const Vec<_Tp, n>& vec, bool copyData) template inline Mat::Mat(const Matx<_Tp,m,n>& M, bool copyData) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows(m), cols(n), data(0), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows(m), cols(n), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) @@ -639,7 +686,7 @@ Mat::Mat(const Matx<_Tp,m,n>& M, bool copyData) template inline Mat::Mat(const Point_<_Tp>& pt, bool copyData) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows(2), cols(1), data(0), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows(2), cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) @@ -658,7 +705,7 @@ Mat::Mat(const Point_<_Tp>& pt, bool copyData) template inline Mat::Mat(const Point3_<_Tp>& pt, bool copyData) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows(3), cols(1), data(0), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows(3), cols(1), data(0), datastart(0), dataend(0), datalimit(0), allocator(0), u(0), size(&rows), step(0) { if( !copyData ) @@ -678,7 +725,7 @@ Mat::Mat(const Point3_<_Tp>& pt, bool copyData) template inline Mat::Mat(const MatCommaInitializer_<_Tp>& commaInitializer) - : flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(0), rows(0), cols(0), data(0), + : flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(0), rows(0), cols(0), data(0), datastart(0), dataend(0), allocator(0), u(0), size(&rows) { *this = commaInitializer.operator Mat_<_Tp>(); @@ -857,7 +904,9 @@ bool Mat::isSubmatrix() const inline size_t Mat::elemSize() const { - return dims > 0 ? step.p[dims - 1] : 0; + size_t res = dims > 0 ? step.p[dims - 1] : 0; + CV_DbgAssert(res != 0); + return res; } inline @@ -942,7 +991,7 @@ _Tp* Mat::ptr(int y) template inline const _Tp* Mat::ptr(int y) const { - CV_DbgAssert( y == 0 || (data && dims >= 1 && data && (unsigned)y < (unsigned)size.p[0]) ); + CV_DbgAssert( y == 0 || (data && dims >= 1 && (unsigned)y < (unsigned)size.p[0]) ); return (const _Tp*)(data + step.p[0] * y); } @@ -1253,7 +1302,6 @@ Mat::operator std::vector<_Tp>() const return v; } -#ifdef CV_CXX_STD_ARRAY template inline Mat::operator std::array<_Tp, _Nm>() const { @@ -1261,7 +1309,6 @@ Mat::operator std::array<_Tp, _Nm>() const copyTo(v); return v; } -#endif template inline Mat::operator Vec<_Tp, n>() const @@ -1329,8 +1376,6 @@ void Mat::push_back(const std::vector<_Tp>& v) push_back(Mat(v)); } -#ifdef CV_CXX_MOVE_SEMANTICS - inline Mat::Mat(Mat&& m) : flags(m.flags), dims(m.dims), rows(m.rows), cols(m.cols), data(m.data), @@ -1392,8 +1437,6 @@ Mat& Mat::operator = (Mat&& m) return *this; } -#endif - ///////////////////////////// MatSize //////////////////////////// @@ -1401,22 +1444,36 @@ inline MatSize::MatSize(int* _p) : p(_p) {} +inline +int MatSize::dims() const +{ + return (p - 1)[0]; +} + inline Size MatSize::operator()() const { - CV_DbgAssert(p[-1] <= 2); + CV_DbgAssert(dims() <= 2); return Size(p[1], p[0]); } inline const int& MatSize::operator[](int i) const { + CV_DbgAssert(i < dims()); +#ifdef __OPENCV_BUILD + CV_DbgAssert(i >= 0); +#endif return p[i]; } inline int& MatSize::operator[](int i) { + CV_DbgAssert(i < dims()); +#ifdef __OPENCV_BUILD + CV_DbgAssert(i >= 0); +#endif return p[i]; } @@ -1429,8 +1486,8 @@ MatSize::operator const int*() const inline bool MatSize::operator == (const MatSize& sz) const { - int d = p[-1]; - int dsz = sz.p[-1]; + int d = dims(); + int dsz = sz.dims(); if( d != dsz ) return false; if( d == 2 ) @@ -1497,7 +1554,7 @@ template inline Mat_<_Tp>::Mat_() : Mat() { - flags = (flags & ~CV_MAT_TYPE_MASK) | traits::Type<_Tp>::value; + flags = (flags & ~CV_MAT_TYPE_MASK) + traits::Type<_Tp>::value; } template inline @@ -1554,7 +1611,7 @@ template inline Mat_<_Tp>::Mat_(const Mat& m) : Mat() { - flags = (flags & ~CV_MAT_TYPE_MASK) | traits::Type<_Tp>::value; + flags = (flags & ~CV_MAT_TYPE_MASK) + traits::Type<_Tp>::value; *this = m; } @@ -1624,19 +1681,20 @@ Mat_<_Tp>::Mat_(const std::vector<_Tp>& vec, bool copyData) : Mat(vec, copyData) {} -#ifdef CV_CXX11 template inline Mat_<_Tp>::Mat_(std::initializer_list<_Tp> list) : Mat(list) {} -#endif -#ifdef CV_CXX_STD_ARRAY +template inline +Mat_<_Tp>::Mat_(const std::initializer_list sizes, std::initializer_list<_Tp> list) + : Mat(sizes, list) +{} + template template inline Mat_<_Tp>::Mat_(const std::array<_Tp, _Nm>& arr, bool copyData) : Mat(arr, copyData) {} -#endif template inline Mat_<_Tp>& Mat_<_Tp>::operator = (const Mat& m) @@ -1650,7 +1708,7 @@ Mat_<_Tp>& Mat_<_Tp>::operator = (const Mat& m) { return (*this = m.reshape(DataType<_Tp>::channels, m.dims, 0)); } - CV_DbgAssert(DataType<_Tp>::channels == m.channels()); + CV_Assert(DataType<_Tp>::channels == m.channels() || m.empty()); m.convertTo(*this, type()); return *this; } @@ -1693,7 +1751,7 @@ void Mat_<_Tp>::release() { Mat::release(); #ifdef _DEBUG - flags = (flags & ~CV_MAT_TYPE_MASK) | traits::Type<_Tp>::value; + flags = (flags & ~CV_MAT_TYPE_MASK) + traits::Type<_Tp>::value; #endif } @@ -1924,7 +1982,6 @@ Mat_<_Tp>::operator std::vector<_Tp>() const return v; } -#ifdef CV_CXX_STD_ARRAY template template inline Mat_<_Tp>::operator std::array<_Tp, _Nm>() const { @@ -1932,7 +1989,6 @@ Mat_<_Tp>::operator std::array<_Tp, _Nm>() const copyTo(a); return a; } -#endif template template inline Mat_<_Tp>::operator Vec::channel_type, n>() const @@ -1996,8 +2052,6 @@ void Mat_<_Tp>::forEach(const Functor& operation) const { Mat::forEach<_Tp, Functor>(operation); } -#ifdef CV_CXX_MOVE_SEMANTICS - template inline Mat_<_Tp>::Mat_(Mat_&& m) : Mat(m) @@ -2015,7 +2069,7 @@ template inline Mat_<_Tp>::Mat_(Mat&& m) : Mat() { - flags = (flags & ~CV_MAT_TYPE_MASK) | traits::Type<_Tp>::value; + flags = (flags & ~CV_MAT_TYPE_MASK) + traits::Type<_Tp>::value; *this = m; } @@ -2041,11 +2095,10 @@ template inline Mat_<_Tp>::Mat_(MatExpr&& e) : Mat() { - flags = (flags & ~CV_MAT_TYPE_MASK) | traits::Type<_Tp>::value; + flags = (flags & ~CV_MAT_TYPE_MASK) + traits::Type<_Tp>::value; *this = Mat(e); } -#endif ///////////////////////////// SparseMat ///////////////////////////// @@ -2378,7 +2431,7 @@ SparseMatConstIterator_<_Tp> SparseMat::end() const template inline SparseMat_<_Tp>::SparseMat_() { - flags = MAGIC_VAL | traits::Type<_Tp>::value; + flags = MAGIC_VAL + traits::Type<_Tp>::value; } template inline @@ -3601,7 +3654,7 @@ UMat::UMat(const UMat& m) template inline UMat::UMat(const std::vector<_Tp>& vec, bool copyData) -: flags(MAGIC_VAL | traits::Type<_Tp>::value | CV_MAT_CONT_FLAG), dims(2), rows((int)vec.size()), +: flags(MAGIC_VAL + traits::Type<_Tp>::value + CV_MAT_CONT_FLAG), dims(2), rows((int)vec.size()), cols(1), allocator(0), usageFlags(USAGE_DEFAULT), u(0), offset(0), size(&rows) { if(vec.empty()) @@ -3766,7 +3819,9 @@ bool UMat::isSubmatrix() const inline size_t UMat::elemSize() const { - return dims > 0 ? step.p[dims - 1] : 0; + size_t res = dims > 0 ? step.p[dims - 1] : 0; + CV_DbgAssert(res != 0); + return res; } inline @@ -3816,8 +3871,6 @@ size_t UMat::total() const return p; } -#ifdef CV_CXX_MOVE_SEMANTICS - inline UMat::UMat(UMat&& m) : flags(m.flags), dims(m.dims), rows(m.rows), cols(m.cols), allocator(m.allocator), @@ -3878,8 +3931,6 @@ UMat& UMat::operator = (UMat&& m) return *this; } -#endif - inline bool UMatData::hostCopyObsolete() const { return (flags & HOST_COPY_OBSOLETE) != 0; } inline bool UMatData::deviceCopyObsolete() const { return (flags & DEVICE_COPY_OBSOLETE) != 0; } @@ -3911,9 +3962,6 @@ inline void UMatData::markDeviceCopyObsolete(bool flag) flags &= ~DEVICE_COPY_OBSOLETE; } -inline UMatDataAutoLock::UMatDataAutoLock(UMatData* _u) : u(_u) { u->lock(); } -inline UMatDataAutoLock::~UMatDataAutoLock() { u->unlock(); } - //! @endcond } //cv diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/matx.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/matx.hpp similarity index 96% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/matx.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/matx.hpp index 1d1ab4a43..320a6fef7 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/matx.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/matx.hpp @@ -53,9 +53,7 @@ #include "opencv2/core/traits.hpp" #include "opencv2/core/saturate.hpp" -#ifdef CV_CXX11 #include -#endif namespace cv { @@ -66,13 +64,14 @@ namespace cv ////////////////////////////// Small Matrix /////////////////////////// //! @cond IGNORED -struct CV_EXPORTS Matx_AddOp {}; -struct CV_EXPORTS Matx_SubOp {}; -struct CV_EXPORTS Matx_ScaleOp {}; -struct CV_EXPORTS Matx_MulOp {}; -struct CV_EXPORTS Matx_DivOp {}; -struct CV_EXPORTS Matx_MatMulOp {}; -struct CV_EXPORTS Matx_TOp {}; +// FIXIT Remove this (especially CV_EXPORTS modifier) +struct CV_EXPORTS Matx_AddOp { Matx_AddOp() {} Matx_AddOp(const Matx_AddOp&) {} }; +struct CV_EXPORTS Matx_SubOp { Matx_SubOp() {} Matx_SubOp(const Matx_SubOp&) {} }; +struct CV_EXPORTS Matx_ScaleOp { Matx_ScaleOp() {} Matx_ScaleOp(const Matx_ScaleOp&) {} }; +struct CV_EXPORTS Matx_MulOp { Matx_MulOp() {} Matx_MulOp(const Matx_MulOp&) {} }; +struct CV_EXPORTS Matx_DivOp { Matx_DivOp() {} Matx_DivOp(const Matx_DivOp&) {} }; +struct CV_EXPORTS Matx_MatMulOp { Matx_MatMulOp() {} Matx_MatMulOp(const Matx_MatMulOp&) {} }; +struct CV_EXPORTS Matx_TOp { Matx_TOp() {} Matx_TOp(const Matx_TOp&) {} }; //! @endcond /** @brief Template class for small matrices whose type and size are known at compilation time @@ -92,7 +91,7 @@ Except of the plain constructor which takes a list of elements, Matx can be init float values[] = { 1, 2, 3}; Matx31f m(values); @endcode -In case if C++11 features are avaliable, std::initializer_list can be also used to initizlize Matx: +In case if C++11 features are available, std::initializer_list can be also used to initialize Matx: @code{.cpp} Matx31f m = { 1, 2, 3}; @endcode @@ -118,7 +117,7 @@ template class Matx //! default constructor Matx(); - Matx(_Tp v0); //!< 1x1 matrix + explicit Matx(_Tp v0); //!< 1x1 matrix Matx(_Tp v0, _Tp v1); //!< 1x2 or 2x1 matrix Matx(_Tp v0, _Tp v1, _Tp v2); //!< 1x3 or 3x1 matrix Matx(_Tp v0, _Tp v1, _Tp v2, _Tp v3); //!< 1x4, 2x2 or 4x1 matrix @@ -141,9 +140,7 @@ template class Matx _Tp v12, _Tp v13, _Tp v14, _Tp v15); //!< 1x16, 4x4 or 16x1 matrix explicit Matx(const _Tp* vals); //!< initialize from a plain array -#ifdef CV_CXX11 Matx(std::initializer_list<_Tp>); //!< initialize from an initializer list -#endif static Matx all(_Tp alpha); static Matx zeros(); @@ -166,7 +163,7 @@ template class Matx template Matx<_Tp, m1, n1> reshape() const; //! extract part of the matrix - template Matx<_Tp, m1, n1> get_minor(int i, int j) const; + template Matx<_Tp, m1, n1> get_minor(int base_row, int base_col) const; //! extract the matrix row Matx<_Tp, 1, n> row(int i) const; @@ -194,8 +191,8 @@ template class Matx Matx<_Tp, m, n> div(const Matx<_Tp, m, n>& a) const; //! element access - const _Tp& operator ()(int i, int j) const; - _Tp& operator ()(int i, int j); + const _Tp& operator ()(int row, int col) const; + _Tp& operator ()(int row, int col); //! 1D element access const _Tp& operator ()(int i) const; @@ -361,9 +358,7 @@ template class Vec : public Matx<_Tp, cn, 1> Vec(_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11, _Tp v12, _Tp v13); //!< 14-element vector constructor explicit Vec(const _Tp* values); -#ifdef CV_CXX11 Vec(std::initializer_list<_Tp>); -#endif Vec(const Vec<_Tp, cn>& v); @@ -665,7 +660,6 @@ Matx<_Tp, m, n>::Matx(const _Tp* values) for( int i = 0; i < channels; i++ ) val[i] = values[i]; } -#ifdef CV_CXX11 template inline Matx<_Tp, m, n>::Matx(std::initializer_list<_Tp> list) { @@ -676,7 +670,6 @@ Matx<_Tp, m, n>::Matx(std::initializer_list<_Tp> list) val[i++] = elem; } } -#endif template inline Matx<_Tp, m, n> Matx<_Tp, m, n>::all(_Tp alpha) @@ -749,13 +742,13 @@ Matx<_Tp, m1, n1> Matx<_Tp, m, n>::reshape() const template template inline -Matx<_Tp, m1, n1> Matx<_Tp, m, n>::get_minor(int i, int j) const +Matx<_Tp, m1, n1> Matx<_Tp, m, n>::get_minor(int base_row, int base_col) const { - CV_DbgAssert(0 <= i && i+m1 <= m && 0 <= j && j+n1 <= n); + CV_DbgAssert(0 <= base_row && base_row+m1 <= m && 0 <= base_col && base_col+n1 <= n); Matx<_Tp, m1, n1> s; for( int di = 0; di < m1; di++ ) for( int dj = 0; dj < n1; dj++ ) - s(di, dj) = (*this)(i+di, j+dj); + s(di, dj) = (*this)(base_row+di, base_col+dj); return s; } @@ -786,17 +779,17 @@ typename Matx<_Tp, m, n>::diag_type Matx<_Tp, m, n>::diag() const } template inline -const _Tp& Matx<_Tp, m, n>::operator()(int i, int j) const +const _Tp& Matx<_Tp, m, n>::operator()(int row_idx, int col_idx) const { - CV_DbgAssert( (unsigned)i < (unsigned)m && (unsigned)j < (unsigned)n ); - return this->val[i*n + j]; + CV_DbgAssert( (unsigned)row_idx < (unsigned)m && (unsigned)col_idx < (unsigned)n ); + return this->val[row_idx*n + col_idx]; } template inline -_Tp& Matx<_Tp, m, n>::operator ()(int i, int j) +_Tp& Matx<_Tp, m, n>::operator ()(int row_idx, int col_idx) { - CV_DbgAssert( (unsigned)i < (unsigned)m && (unsigned)j < (unsigned)n ); - return val[i*n + j]; + CV_DbgAssert( (unsigned)row_idx < (unsigned)m && (unsigned)col_idx < (unsigned)n ); + return val[row_idx*n + col_idx]; } template inline @@ -1019,11 +1012,9 @@ template inline Vec<_Tp, cn>::Vec(const _Tp* values) : Matx<_Tp, cn, 1>(values) {} -#ifdef CV_CXX11 template inline Vec<_Tp, cn>::Vec(std::initializer_list<_Tp> list) : Matx<_Tp, cn, 1>(list) {} -#endif template inline Vec<_Tp, cn>::Vec(const Vec<_Tp, cn>& m) diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/neon_utils.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/neon_utils.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/neon_utils.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/neon_utils.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ocl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/ocl.hpp similarity index 89% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/ocl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/ocl.hpp index 888477e15..95f0fcdd6 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ocl.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/ocl.hpp @@ -59,7 +59,7 @@ CV_EXPORTS_W void finish(); CV_EXPORTS bool haveSVM(); class CV_EXPORTS Context; -class CV_EXPORTS Device; +class CV_EXPORTS_W_SIMPLE Device; class CV_EXPORTS Kernel; class CV_EXPORTS Program; class CV_EXPORTS ProgramSource; @@ -67,14 +67,14 @@ class CV_EXPORTS Queue; class CV_EXPORTS PlatformInfo; class CV_EXPORTS Image2D; -class CV_EXPORTS Device +class CV_EXPORTS_W_SIMPLE Device { public: - Device(); + CV_WRAP Device(); explicit Device(void* d); Device(const Device& d); Device& operator = (const Device& d); - ~Device(); + CV_WRAP ~Device(); void set(void* d); @@ -89,24 +89,24 @@ class CV_EXPORTS Device TYPE_ALL = 0xFFFFFFFF }; - String name() const; - String extensions() const; - bool isExtensionSupported(const String& extensionName) const; - String version() const; - String vendorName() const; - String OpenCL_C_Version() const; - String OpenCLVersion() const; - int deviceVersionMajor() const; - int deviceVersionMinor() const; - String driverVersion() const; + CV_WRAP String name() const; + CV_WRAP String extensions() const; + CV_WRAP bool isExtensionSupported(const String& extensionName) const; + CV_WRAP String version() const; + CV_WRAP String vendorName() const; + CV_WRAP String OpenCL_C_Version() const; + CV_WRAP String OpenCLVersion() const; + CV_WRAP int deviceVersionMajor() const; + CV_WRAP int deviceVersionMinor() const; + CV_WRAP String driverVersion() const; void* ptr() const; - int type() const; + CV_WRAP int type() const; - int addressBits() const; - bool available() const; - bool compilerAvailable() const; - bool linkerAvailable() const; + CV_WRAP int addressBits() const; + CV_WRAP bool available() const; + CV_WRAP bool compilerAvailable() const; + CV_WRAP bool linkerAvailable() const; enum { @@ -119,21 +119,21 @@ class CV_EXPORTS Device FP_SOFT_FLOAT=(1 << 6), FP_CORRECTLY_ROUNDED_DIVIDE_SQRT=(1 << 7) }; - int doubleFPConfig() const; - int singleFPConfig() const; - int halfFPConfig() const; + CV_WRAP int doubleFPConfig() const; + CV_WRAP int singleFPConfig() const; + CV_WRAP int halfFPConfig() const; - bool endianLittle() const; - bool errorCorrectionSupport() const; + CV_WRAP bool endianLittle() const; + CV_WRAP bool errorCorrectionSupport() const; enum { EXEC_KERNEL=(1 << 0), EXEC_NATIVE_KERNEL=(1 << 1) }; - int executionCapabilities() const; + CV_WRAP int executionCapabilities() const; - size_t globalMemCacheSize() const; + CV_WRAP size_t globalMemCacheSize() const; enum { @@ -141,38 +141,38 @@ class CV_EXPORTS Device READ_ONLY_CACHE=1, READ_WRITE_CACHE=2 }; - int globalMemCacheType() const; - int globalMemCacheLineSize() const; - size_t globalMemSize() const; + CV_WRAP int globalMemCacheType() const; + CV_WRAP int globalMemCacheLineSize() const; + CV_WRAP size_t globalMemSize() const; - size_t localMemSize() const; + CV_WRAP size_t localMemSize() const; enum { NO_LOCAL_MEM=0, LOCAL_IS_LOCAL=1, LOCAL_IS_GLOBAL=2 }; - int localMemType() const; - bool hostUnifiedMemory() const; + CV_WRAP int localMemType() const; + CV_WRAP bool hostUnifiedMemory() const; - bool imageSupport() const; + CV_WRAP bool imageSupport() const; - bool imageFromBufferSupport() const; + CV_WRAP bool imageFromBufferSupport() const; uint imagePitchAlignment() const; uint imageBaseAddressAlignment() const; /// deprecated, use isExtensionSupported() method (probably with "cl_khr_subgroups" value) - bool intelSubgroupsSupport() const; + CV_WRAP bool intelSubgroupsSupport() const; - size_t image2DMaxWidth() const; - size_t image2DMaxHeight() const; + CV_WRAP size_t image2DMaxWidth() const; + CV_WRAP size_t image2DMaxHeight() const; - size_t image3DMaxWidth() const; - size_t image3DMaxHeight() const; - size_t image3DMaxDepth() const; + CV_WRAP size_t image3DMaxWidth() const; + CV_WRAP size_t image3DMaxHeight() const; + CV_WRAP size_t image3DMaxDepth() const; - size_t imageMaxBufferSize() const; - size_t imageMaxArraySize() const; + CV_WRAP size_t imageMaxBufferSize() const; + CV_WRAP size_t imageMaxArraySize() const; enum { @@ -181,53 +181,53 @@ class CV_EXPORTS Device VENDOR_INTEL=2, VENDOR_NVIDIA=3 }; - int vendorID() const; + CV_WRAP int vendorID() const; // FIXIT // dev.isAMD() doesn't work for OpenCL CPU devices from AMD OpenCL platform. // This method should use platform name instead of vendor name. // After fix restore code in arithm.cpp: ocl_compare() - inline bool isAMD() const { return vendorID() == VENDOR_AMD; } - inline bool isIntel() const { return vendorID() == VENDOR_INTEL; } - inline bool isNVidia() const { return vendorID() == VENDOR_NVIDIA; } + CV_WRAP inline bool isAMD() const { return vendorID() == VENDOR_AMD; } + CV_WRAP inline bool isIntel() const { return vendorID() == VENDOR_INTEL; } + CV_WRAP inline bool isNVidia() const { return vendorID() == VENDOR_NVIDIA; } - int maxClockFrequency() const; - int maxComputeUnits() const; - int maxConstantArgs() const; - size_t maxConstantBufferSize() const; + CV_WRAP int maxClockFrequency() const; + CV_WRAP int maxComputeUnits() const; + CV_WRAP int maxConstantArgs() const; + CV_WRAP size_t maxConstantBufferSize() const; - size_t maxMemAllocSize() const; - size_t maxParameterSize() const; + CV_WRAP size_t maxMemAllocSize() const; + CV_WRAP size_t maxParameterSize() const; - int maxReadImageArgs() const; - int maxWriteImageArgs() const; - int maxSamplers() const; + CV_WRAP int maxReadImageArgs() const; + CV_WRAP int maxWriteImageArgs() const; + CV_WRAP int maxSamplers() const; - size_t maxWorkGroupSize() const; - int maxWorkItemDims() const; + CV_WRAP size_t maxWorkGroupSize() const; + CV_WRAP int maxWorkItemDims() const; void maxWorkItemSizes(size_t*) const; - int memBaseAddrAlign() const; + CV_WRAP int memBaseAddrAlign() const; - int nativeVectorWidthChar() const; - int nativeVectorWidthShort() const; - int nativeVectorWidthInt() const; - int nativeVectorWidthLong() const; - int nativeVectorWidthFloat() const; - int nativeVectorWidthDouble() const; - int nativeVectorWidthHalf() const; + CV_WRAP int nativeVectorWidthChar() const; + CV_WRAP int nativeVectorWidthShort() const; + CV_WRAP int nativeVectorWidthInt() const; + CV_WRAP int nativeVectorWidthLong() const; + CV_WRAP int nativeVectorWidthFloat() const; + CV_WRAP int nativeVectorWidthDouble() const; + CV_WRAP int nativeVectorWidthHalf() const; - int preferredVectorWidthChar() const; - int preferredVectorWidthShort() const; - int preferredVectorWidthInt() const; - int preferredVectorWidthLong() const; - int preferredVectorWidthFloat() const; - int preferredVectorWidthDouble() const; - int preferredVectorWidthHalf() const; + CV_WRAP int preferredVectorWidthChar() const; + CV_WRAP int preferredVectorWidthShort() const; + CV_WRAP int preferredVectorWidthInt() const; + CV_WRAP int preferredVectorWidthLong() const; + CV_WRAP int preferredVectorWidthFloat() const; + CV_WRAP int preferredVectorWidthDouble() const; + CV_WRAP int preferredVectorWidthHalf() const; - size_t printfBufferSize() const; - size_t profilingTimerResolution() const; + CV_WRAP size_t printfBufferSize() const; + CV_WRAP size_t profilingTimerResolution() const; - static const Device& getDefault(); + CV_WRAP static const Device& getDefault(); protected: struct Impl; @@ -352,7 +352,8 @@ class CV_EXPORTS KernelArg KernelArg(int _flags, UMat* _m, int wscale=1, int iwscale=1, const void* _obj=0, size_t _sz=0); KernelArg(); - static KernelArg Local() { return KernelArg(LOCAL, 0); } + static KernelArg Local(size_t localMemSize) + { return KernelArg(LOCAL, 0, 1, 1, 0, localMemSize); } static KernelArg PtrWriteOnly(const UMat& m) { return KernelArg(PTR_ONLY+WRITE_ONLY, (UMat*)&m); } static KernelArg PtrReadOnly(const UMat& m) diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ocl_genbase.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/ocl_genbase.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/ocl_genbase.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/ocl_genbase.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/ocl_defs.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/ocl_defs.hpp new file mode 100644 index 000000000..14df750fc --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/ocl_defs.hpp @@ -0,0 +1,82 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +// Copyright (C) 2014, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. + +#ifndef OPENCV_CORE_OPENCL_DEFS_HPP +#define OPENCV_CORE_OPENCL_DEFS_HPP + +#include "opencv2/core/utility.hpp" +#include "cvconfig.h" + +namespace cv { namespace ocl { +#ifdef HAVE_OPENCL +/// Call is similar to useOpenCL() but doesn't try to load OpenCL runtime or create OpenCL context +CV_EXPORTS bool isOpenCLActivated(); +#else +static inline bool isOpenCLActivated() { return false; } +#endif +}} // namespace + + +//#define CV_OPENCL_RUN_ASSERT + +#ifdef HAVE_OPENCL + +#ifdef CV_OPENCL_RUN_VERBOSE +#define CV_OCL_RUN_(condition, func, ...) \ + { \ + if (cv::ocl::isOpenCLActivated() && (condition) && func) \ + { \ + printf("%s: OpenCL implementation is running\n", CV_Func); \ + fflush(stdout); \ + CV_IMPL_ADD(CV_IMPL_OCL); \ + return __VA_ARGS__; \ + } \ + else \ + { \ + printf("%s: Plain implementation is running\n", CV_Func); \ + fflush(stdout); \ + } \ + } +#elif defined CV_OPENCL_RUN_ASSERT +#define CV_OCL_RUN_(condition, func, ...) \ + { \ + if (cv::ocl::isOpenCLActivated() && (condition)) \ + { \ + if(func) \ + { \ + CV_IMPL_ADD(CV_IMPL_OCL); \ + } \ + else \ + { \ + CV_Error(cv::Error::StsAssert, #func); \ + } \ + return __VA_ARGS__; \ + } \ + } +#else +#define CV_OCL_RUN_(condition, func, ...) \ +try \ +{ \ + if (cv::ocl::isOpenCLActivated() && (condition) && func) \ + { \ + CV_IMPL_ADD(CV_IMPL_OCL); \ + return __VA_ARGS__; \ + } \ +} \ +catch (const cv::Exception& e) \ +{ \ + CV_UNUSED(e); /* TODO: Add some logging here */ \ +} +#endif + +#else +#define CV_OCL_RUN_(condition, func, ...) +#endif + +#define CV_OCL_RUN(condition, func) CV_OCL_RUN_(condition, func) + +#endif // OPENCV_CORE_OPENCL_DEFS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/opencl_info.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/opencl_info.hpp new file mode 100644 index 000000000..b5d37394a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/opencl_info.hpp @@ -0,0 +1,198 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#include + +#include +#include + +#ifndef DUMP_CONFIG_PROPERTY +#define DUMP_CONFIG_PROPERTY(...) +#endif + +#ifndef DUMP_MESSAGE_STDOUT +#define DUMP_MESSAGE_STDOUT(...) do { std::cout << __VA_ARGS__ << std::endl; } while (false) +#endif + +namespace cv { + +namespace { +static std::string bytesToStringRepr(size_t value) +{ + size_t b = value % 1024; + value /= 1024; + + size_t kb = value % 1024; + value /= 1024; + + size_t mb = value % 1024; + value /= 1024; + + size_t gb = value; + + std::ostringstream stream; + + if (gb > 0) + stream << gb << " GB "; + if (mb > 0) + stream << mb << " MB "; + if (kb > 0) + stream << kb << " KB "; + if (b > 0) + stream << b << " B"; + + std::string s = stream.str(); + if (s[s.size() - 1] == ' ') + s = s.substr(0, s.size() - 1); + return s; +} +} // namespace + +static void dumpOpenCLInformation() +{ + using namespace cv::ocl; + + try + { + if (!haveOpenCL() || !useOpenCL()) + { + DUMP_MESSAGE_STDOUT("OpenCL is disabled"); + DUMP_CONFIG_PROPERTY("cv_ocl", "disabled"); + return; + } + + std::vector platforms; + cv::ocl::getPlatfomsInfo(platforms); + if (platforms.size() > 0) + { + DUMP_MESSAGE_STDOUT("OpenCL Platforms: "); + for (size_t i = 0; i < platforms.size(); i++) + { + const PlatformInfo* platform = &platforms[i]; + DUMP_MESSAGE_STDOUT(" " << platform->name().c_str()); + Device current_device; + for (int j = 0; j < platform->deviceNumber(); j++) + { + platform->getDevice(current_device, j); + const char* deviceTypeStr = current_device.type() == Device::TYPE_CPU + ? ("CPU") : (current_device.type() == Device::TYPE_GPU ? current_device.hostUnifiedMemory() ? "iGPU" : "dGPU" : "unknown"); + DUMP_MESSAGE_STDOUT( " " << deviceTypeStr << ": " << current_device.name().c_str() << " (" << current_device.version().c_str() << ")"); + DUMP_CONFIG_PROPERTY( cv::format("cv_ocl_platform_%d_device_%d", (int)i, (int)j ), + cv::format("(Platform=%s)(Type=%s)(Name=%s)(Version=%s)", + platform->name().c_str(), deviceTypeStr, current_device.name().c_str(), current_device.version().c_str()) ); + } + } + } + else + { + DUMP_MESSAGE_STDOUT("OpenCL is not available"); + DUMP_CONFIG_PROPERTY("cv_ocl", "not available"); + return; + } + + const Device& device = Device::getDefault(); + if (!device.available()) + CV_Error(Error::OpenCLInitError, "OpenCL device is not available"); + + DUMP_MESSAGE_STDOUT("Current OpenCL device: "); + +#if 0 + DUMP_MESSAGE_STDOUT(" Platform = " << device.getPlatform().name()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_platformName", device.getPlatform().name()); +#endif + + const char* deviceTypeStr = device.type() == Device::TYPE_CPU + ? ("CPU") : (device.type() == Device::TYPE_GPU ? device.hostUnifiedMemory() ? "iGPU" : "dGPU" : "unknown"); + DUMP_MESSAGE_STDOUT(" Type = " << deviceTypeStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_deviceType", deviceTypeStr); + + DUMP_MESSAGE_STDOUT(" Name = " << device.name()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_deviceName", device.name()); + + DUMP_MESSAGE_STDOUT(" Version = " << device.version()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_deviceVersion", device.version()); + + DUMP_MESSAGE_STDOUT(" Driver version = " << device.driverVersion()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_driverVersion", device.driverVersion()); + + DUMP_MESSAGE_STDOUT(" Address bits = " << device.addressBits()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_addressBits", device.addressBits()); + + DUMP_MESSAGE_STDOUT(" Compute units = " << device.maxComputeUnits()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_maxComputeUnits", device.maxComputeUnits()); + + DUMP_MESSAGE_STDOUT(" Max work group size = " << device.maxWorkGroupSize()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_maxWorkGroupSize", device.maxWorkGroupSize()); + + std::string localMemorySizeStr = bytesToStringRepr(device.localMemSize()); + DUMP_MESSAGE_STDOUT(" Local memory size = " << localMemorySizeStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_localMemSize", device.localMemSize()); + + std::string maxMemAllocSizeStr = bytesToStringRepr(device.maxMemAllocSize()); + DUMP_MESSAGE_STDOUT(" Max memory allocation size = " << maxMemAllocSizeStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_maxMemAllocSize", device.maxMemAllocSize()); + + const char* doubleSupportStr = device.doubleFPConfig() > 0 ? "Yes" : "No"; + DUMP_MESSAGE_STDOUT(" Double support = " << doubleSupportStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_haveDoubleSupport", device.doubleFPConfig() > 0); + + const char* isUnifiedMemoryStr = device.hostUnifiedMemory() ? "Yes" : "No"; + DUMP_MESSAGE_STDOUT(" Host unified memory = " << isUnifiedMemoryStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_hostUnifiedMemory", device.hostUnifiedMemory()); + + DUMP_MESSAGE_STDOUT(" Device extensions:"); + String extensionsStr = device.extensions(); + size_t pos = 0; + while (pos < extensionsStr.size()) + { + size_t pos2 = extensionsStr.find(' ', pos); + if (pos2 == String::npos) + pos2 = extensionsStr.size(); + if (pos2 > pos) + { + String extensionName = extensionsStr.substr(pos, pos2 - pos); + DUMP_MESSAGE_STDOUT(" " << extensionName); + } + pos = pos2 + 1; + } + DUMP_CONFIG_PROPERTY("cv_ocl_current_extensions", extensionsStr.c_str()); + + const char* haveAmdBlasStr = haveAmdBlas() ? "Yes" : "No"; + DUMP_MESSAGE_STDOUT(" Has AMD Blas = " << haveAmdBlasStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_AmdBlas", haveAmdBlas()); + + const char* haveAmdFftStr = haveAmdFft() ? "Yes" : "No"; + DUMP_MESSAGE_STDOUT(" Has AMD Fft = " << haveAmdFftStr); + DUMP_CONFIG_PROPERTY("cv_ocl_current_AmdFft", haveAmdFft()); + + + DUMP_MESSAGE_STDOUT(" Preferred vector width char = " << device.preferredVectorWidthChar()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_preferredVectorWidthChar", device.preferredVectorWidthChar()); + + DUMP_MESSAGE_STDOUT(" Preferred vector width short = " << device.preferredVectorWidthShort()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_preferredVectorWidthShort", device.preferredVectorWidthShort()); + + DUMP_MESSAGE_STDOUT(" Preferred vector width int = " << device.preferredVectorWidthInt()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_preferredVectorWidthInt", device.preferredVectorWidthInt()); + + DUMP_MESSAGE_STDOUT(" Preferred vector width long = " << device.preferredVectorWidthLong()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_preferredVectorWidthLong", device.preferredVectorWidthLong()); + + DUMP_MESSAGE_STDOUT(" Preferred vector width float = " << device.preferredVectorWidthFloat()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_preferredVectorWidthFloat", device.preferredVectorWidthFloat()); + + DUMP_MESSAGE_STDOUT(" Preferred vector width double = " << device.preferredVectorWidthDouble()); + DUMP_CONFIG_PROPERTY("cv_ocl_current_preferredVectorWidthDouble", device.preferredVectorWidthDouble()); + } + catch (...) + { + DUMP_MESSAGE_STDOUT("Exception. Can't dump OpenCL info"); + DUMP_MESSAGE_STDOUT("OpenCL device not available"); + DUMP_CONFIG_PROPERTY("cv_ocl", "not available"); + } +} +#undef DUMP_MESSAGE_STDOUT +#undef DUMP_CONFIG_PROPERTY + +} // namespace diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/opencl_svm.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/opencl_svm.hpp new file mode 100644 index 000000000..7453082a6 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/opencl_svm.hpp @@ -0,0 +1,81 @@ +/* See LICENSE file in the root OpenCV directory */ + +#ifndef OPENCV_CORE_OPENCL_SVM_HPP +#define OPENCV_CORE_OPENCL_SVM_HPP + +// +// Internal usage only (binary compatibility is not guaranteed) +// +#ifndef __OPENCV_BUILD +#error Internal header file +#endif + +#if defined(HAVE_OPENCL) && defined(HAVE_OPENCL_SVM) +#include "runtime/opencl_core.hpp" +#include "runtime/opencl_svm_20.hpp" +#include "runtime/opencl_svm_hsa_extension.hpp" + +namespace cv { namespace ocl { namespace svm { + +struct SVMCapabilities +{ + enum Value + { + SVM_COARSE_GRAIN_BUFFER = (1 << 0), + SVM_FINE_GRAIN_BUFFER = (1 << 1), + SVM_FINE_GRAIN_SYSTEM = (1 << 2), + SVM_ATOMICS = (1 << 3), + }; + int value_; + + SVMCapabilities(int capabilities = 0) : value_(capabilities) { } + operator int() const { return value_; } + + inline bool isNoSVMSupport() const { return value_ == 0; } + inline bool isSupportCoarseGrainBuffer() const { return (value_ & SVM_COARSE_GRAIN_BUFFER) != 0; } + inline bool isSupportFineGrainBuffer() const { return (value_ & SVM_FINE_GRAIN_BUFFER) != 0; } + inline bool isSupportFineGrainSystem() const { return (value_ & SVM_FINE_GRAIN_SYSTEM) != 0; } + inline bool isSupportAtomics() const { return (value_ & SVM_ATOMICS) != 0; } +}; + +CV_EXPORTS const SVMCapabilities getSVMCapabilitites(const ocl::Context& context); + +struct SVMFunctions +{ + clSVMAllocAMD_fn fn_clSVMAlloc; + clSVMFreeAMD_fn fn_clSVMFree; + clSetKernelArgSVMPointerAMD_fn fn_clSetKernelArgSVMPointer; + //clSetKernelExecInfoAMD_fn fn_clSetKernelExecInfo; + //clEnqueueSVMFreeAMD_fn fn_clEnqueueSVMFree; + clEnqueueSVMMemcpyAMD_fn fn_clEnqueueSVMMemcpy; + clEnqueueSVMMemFillAMD_fn fn_clEnqueueSVMMemFill; + clEnqueueSVMMapAMD_fn fn_clEnqueueSVMMap; + clEnqueueSVMUnmapAMD_fn fn_clEnqueueSVMUnmap; + + inline SVMFunctions() + : fn_clSVMAlloc(NULL), fn_clSVMFree(NULL), + fn_clSetKernelArgSVMPointer(NULL), /*fn_clSetKernelExecInfo(NULL),*/ + /*fn_clEnqueueSVMFree(NULL),*/ fn_clEnqueueSVMMemcpy(NULL), fn_clEnqueueSVMMemFill(NULL), + fn_clEnqueueSVMMap(NULL), fn_clEnqueueSVMUnmap(NULL) + { + // nothing + } + + inline bool isValid() const + { + return fn_clSVMAlloc != NULL && fn_clSVMFree && fn_clSetKernelArgSVMPointer && + /*fn_clSetKernelExecInfo && fn_clEnqueueSVMFree &&*/ fn_clEnqueueSVMMemcpy && + fn_clEnqueueSVMMemFill && fn_clEnqueueSVMMap && fn_clEnqueueSVMUnmap; + } +}; + +// We should guarantee that SVMFunctions lifetime is not less than context's lifetime +CV_EXPORTS const SVMFunctions* getSVMFunctions(const ocl::Context& context); + +CV_EXPORTS bool useSVM(UMatUsageFlags usageFlags); + +}}} //namespace cv::ocl::svm +#endif + +#endif // OPENCV_CORE_OPENCL_SVM_HPP +/* End of file. */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp new file mode 100644 index 000000000..65c849352 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp @@ -0,0 +1,714 @@ +// +// AUTOGENERATED, DO NOT EDIT +// +#ifndef OPENCV_CORE_OCL_RUNTIME_CLAMDBLAS_HPP +#error "Invalid usage" +#endif + +// generated by parser_clamdblas.py +#define clAmdBlasAddScratchImage clAmdBlasAddScratchImage_ +#define clAmdBlasCaxpy clAmdBlasCaxpy_ +#define clAmdBlasCcopy clAmdBlasCcopy_ +#define clAmdBlasCdotc clAmdBlasCdotc_ +#define clAmdBlasCdotu clAmdBlasCdotu_ +#define clAmdBlasCgbmv clAmdBlasCgbmv_ +#define clAmdBlasCgemm clAmdBlasCgemm_ +#define clAmdBlasCgemmEx clAmdBlasCgemmEx_ +#define clAmdBlasCgemv clAmdBlasCgemv_ +#define clAmdBlasCgemvEx clAmdBlasCgemvEx_ +#define clAmdBlasCgerc clAmdBlasCgerc_ +#define clAmdBlasCgeru clAmdBlasCgeru_ +#define clAmdBlasChbmv clAmdBlasChbmv_ +#define clAmdBlasChemm clAmdBlasChemm_ +#define clAmdBlasChemv clAmdBlasChemv_ +#define clAmdBlasCher clAmdBlasCher_ +#define clAmdBlasCher2 clAmdBlasCher2_ +#define clAmdBlasCher2k clAmdBlasCher2k_ +#define clAmdBlasCherk clAmdBlasCherk_ +#define clAmdBlasChpmv clAmdBlasChpmv_ +#define clAmdBlasChpr clAmdBlasChpr_ +#define clAmdBlasChpr2 clAmdBlasChpr2_ +#define clAmdBlasCrotg clAmdBlasCrotg_ +#define clAmdBlasCscal clAmdBlasCscal_ +#define clAmdBlasCsrot clAmdBlasCsrot_ +#define clAmdBlasCsscal clAmdBlasCsscal_ +#define clAmdBlasCswap clAmdBlasCswap_ +#define clAmdBlasCsymm clAmdBlasCsymm_ +#define clAmdBlasCsyr2k clAmdBlasCsyr2k_ +#define clAmdBlasCsyr2kEx clAmdBlasCsyr2kEx_ +#define clAmdBlasCsyrk clAmdBlasCsyrk_ +#define clAmdBlasCsyrkEx clAmdBlasCsyrkEx_ +#define clAmdBlasCtbmv clAmdBlasCtbmv_ +#define clAmdBlasCtbsv clAmdBlasCtbsv_ +#define clAmdBlasCtpmv clAmdBlasCtpmv_ +#define clAmdBlasCtpsv clAmdBlasCtpsv_ +#define clAmdBlasCtrmm clAmdBlasCtrmm_ +#define clAmdBlasCtrmmEx clAmdBlasCtrmmEx_ +#define clAmdBlasCtrmv clAmdBlasCtrmv_ +#define clAmdBlasCtrsm clAmdBlasCtrsm_ +#define clAmdBlasCtrsmEx clAmdBlasCtrsmEx_ +#define clAmdBlasCtrsv clAmdBlasCtrsv_ +#define clAmdBlasDasum clAmdBlasDasum_ +#define clAmdBlasDaxpy clAmdBlasDaxpy_ +#define clAmdBlasDcopy clAmdBlasDcopy_ +#define clAmdBlasDdot clAmdBlasDdot_ +#define clAmdBlasDgbmv clAmdBlasDgbmv_ +#define clAmdBlasDgemm clAmdBlasDgemm_ +#define clAmdBlasDgemmEx clAmdBlasDgemmEx_ +#define clAmdBlasDgemv clAmdBlasDgemv_ +#define clAmdBlasDgemvEx clAmdBlasDgemvEx_ +#define clAmdBlasDger clAmdBlasDger_ +#define clAmdBlasDnrm2 clAmdBlasDnrm2_ +#define clAmdBlasDrot clAmdBlasDrot_ +#define clAmdBlasDrotg clAmdBlasDrotg_ +#define clAmdBlasDrotm clAmdBlasDrotm_ +#define clAmdBlasDrotmg clAmdBlasDrotmg_ +#define clAmdBlasDsbmv clAmdBlasDsbmv_ +#define clAmdBlasDscal clAmdBlasDscal_ +#define clAmdBlasDspmv clAmdBlasDspmv_ +#define clAmdBlasDspr clAmdBlasDspr_ +#define clAmdBlasDspr2 clAmdBlasDspr2_ +#define clAmdBlasDswap clAmdBlasDswap_ +#define clAmdBlasDsymm clAmdBlasDsymm_ +#define clAmdBlasDsymv clAmdBlasDsymv_ +#define clAmdBlasDsymvEx clAmdBlasDsymvEx_ +#define clAmdBlasDsyr clAmdBlasDsyr_ +#define clAmdBlasDsyr2 clAmdBlasDsyr2_ +#define clAmdBlasDsyr2k clAmdBlasDsyr2k_ +#define clAmdBlasDsyr2kEx clAmdBlasDsyr2kEx_ +#define clAmdBlasDsyrk clAmdBlasDsyrk_ +#define clAmdBlasDsyrkEx clAmdBlasDsyrkEx_ +#define clAmdBlasDtbmv clAmdBlasDtbmv_ +#define clAmdBlasDtbsv clAmdBlasDtbsv_ +#define clAmdBlasDtpmv clAmdBlasDtpmv_ +#define clAmdBlasDtpsv clAmdBlasDtpsv_ +#define clAmdBlasDtrmm clAmdBlasDtrmm_ +#define clAmdBlasDtrmmEx clAmdBlasDtrmmEx_ +#define clAmdBlasDtrmv clAmdBlasDtrmv_ +#define clAmdBlasDtrsm clAmdBlasDtrsm_ +#define clAmdBlasDtrsmEx clAmdBlasDtrsmEx_ +#define clAmdBlasDtrsv clAmdBlasDtrsv_ +#define clAmdBlasDzasum clAmdBlasDzasum_ +#define clAmdBlasDznrm2 clAmdBlasDznrm2_ +#define clAmdBlasGetVersion clAmdBlasGetVersion_ +#define clAmdBlasRemoveScratchImage clAmdBlasRemoveScratchImage_ +#define clAmdBlasSasum clAmdBlasSasum_ +#define clAmdBlasSaxpy clAmdBlasSaxpy_ +#define clAmdBlasScasum clAmdBlasScasum_ +#define clAmdBlasScnrm2 clAmdBlasScnrm2_ +#define clAmdBlasScopy clAmdBlasScopy_ +#define clAmdBlasSdot clAmdBlasSdot_ +#define clAmdBlasSetup clAmdBlasSetup_ +#define clAmdBlasSgbmv clAmdBlasSgbmv_ +#define clAmdBlasSgemm clAmdBlasSgemm_ +#define clAmdBlasSgemmEx clAmdBlasSgemmEx_ +#define clAmdBlasSgemv clAmdBlasSgemv_ +#define clAmdBlasSgemvEx clAmdBlasSgemvEx_ +#define clAmdBlasSger clAmdBlasSger_ +#define clAmdBlasSnrm2 clAmdBlasSnrm2_ +#define clAmdBlasSrot clAmdBlasSrot_ +#define clAmdBlasSrotg clAmdBlasSrotg_ +#define clAmdBlasSrotm clAmdBlasSrotm_ +#define clAmdBlasSrotmg clAmdBlasSrotmg_ +#define clAmdBlasSsbmv clAmdBlasSsbmv_ +#define clAmdBlasSscal clAmdBlasSscal_ +#define clAmdBlasSspmv clAmdBlasSspmv_ +#define clAmdBlasSspr clAmdBlasSspr_ +#define clAmdBlasSspr2 clAmdBlasSspr2_ +#define clAmdBlasSswap clAmdBlasSswap_ +#define clAmdBlasSsymm clAmdBlasSsymm_ +#define clAmdBlasSsymv clAmdBlasSsymv_ +#define clAmdBlasSsymvEx clAmdBlasSsymvEx_ +#define clAmdBlasSsyr clAmdBlasSsyr_ +#define clAmdBlasSsyr2 clAmdBlasSsyr2_ +#define clAmdBlasSsyr2k clAmdBlasSsyr2k_ +#define clAmdBlasSsyr2kEx clAmdBlasSsyr2kEx_ +#define clAmdBlasSsyrk clAmdBlasSsyrk_ +#define clAmdBlasSsyrkEx clAmdBlasSsyrkEx_ +#define clAmdBlasStbmv clAmdBlasStbmv_ +#define clAmdBlasStbsv clAmdBlasStbsv_ +#define clAmdBlasStpmv clAmdBlasStpmv_ +#define clAmdBlasStpsv clAmdBlasStpsv_ +#define clAmdBlasStrmm clAmdBlasStrmm_ +#define clAmdBlasStrmmEx clAmdBlasStrmmEx_ +#define clAmdBlasStrmv clAmdBlasStrmv_ +#define clAmdBlasStrsm clAmdBlasStrsm_ +#define clAmdBlasStrsmEx clAmdBlasStrsmEx_ +#define clAmdBlasStrsv clAmdBlasStrsv_ +#define clAmdBlasTeardown clAmdBlasTeardown_ +#define clAmdBlasZaxpy clAmdBlasZaxpy_ +#define clAmdBlasZcopy clAmdBlasZcopy_ +#define clAmdBlasZdotc clAmdBlasZdotc_ +#define clAmdBlasZdotu clAmdBlasZdotu_ +#define clAmdBlasZdrot clAmdBlasZdrot_ +#define clAmdBlasZdscal clAmdBlasZdscal_ +#define clAmdBlasZgbmv clAmdBlasZgbmv_ +#define clAmdBlasZgemm clAmdBlasZgemm_ +#define clAmdBlasZgemmEx clAmdBlasZgemmEx_ +#define clAmdBlasZgemv clAmdBlasZgemv_ +#define clAmdBlasZgemvEx clAmdBlasZgemvEx_ +#define clAmdBlasZgerc clAmdBlasZgerc_ +#define clAmdBlasZgeru clAmdBlasZgeru_ +#define clAmdBlasZhbmv clAmdBlasZhbmv_ +#define clAmdBlasZhemm clAmdBlasZhemm_ +#define clAmdBlasZhemv clAmdBlasZhemv_ +#define clAmdBlasZher clAmdBlasZher_ +#define clAmdBlasZher2 clAmdBlasZher2_ +#define clAmdBlasZher2k clAmdBlasZher2k_ +#define clAmdBlasZherk clAmdBlasZherk_ +#define clAmdBlasZhpmv clAmdBlasZhpmv_ +#define clAmdBlasZhpr clAmdBlasZhpr_ +#define clAmdBlasZhpr2 clAmdBlasZhpr2_ +#define clAmdBlasZrotg clAmdBlasZrotg_ +#define clAmdBlasZscal clAmdBlasZscal_ +#define clAmdBlasZswap clAmdBlasZswap_ +#define clAmdBlasZsymm clAmdBlasZsymm_ +#define clAmdBlasZsyr2k clAmdBlasZsyr2k_ +#define clAmdBlasZsyr2kEx clAmdBlasZsyr2kEx_ +#define clAmdBlasZsyrk clAmdBlasZsyrk_ +#define clAmdBlasZsyrkEx clAmdBlasZsyrkEx_ +#define clAmdBlasZtbmv clAmdBlasZtbmv_ +#define clAmdBlasZtbsv clAmdBlasZtbsv_ +#define clAmdBlasZtpmv clAmdBlasZtpmv_ +#define clAmdBlasZtpsv clAmdBlasZtpsv_ +#define clAmdBlasZtrmm clAmdBlasZtrmm_ +#define clAmdBlasZtrmmEx clAmdBlasZtrmmEx_ +#define clAmdBlasZtrmv clAmdBlasZtrmv_ +#define clAmdBlasZtrsm clAmdBlasZtrsm_ +#define clAmdBlasZtrsmEx clAmdBlasZtrsmEx_ +#define clAmdBlasZtrsv clAmdBlasZtrsv_ +#define clAmdBlasiCamax clAmdBlasiCamax_ +#define clAmdBlasiDamax clAmdBlasiDamax_ +#define clAmdBlasiSamax clAmdBlasiSamax_ +#define clAmdBlasiZamax clAmdBlasiZamax_ + +#include + +// generated by parser_clamdblas.py +#undef clAmdBlasAddScratchImage +//#define clAmdBlasAddScratchImage clAmdBlasAddScratchImage_pfn +#undef clAmdBlasCaxpy +//#define clAmdBlasCaxpy clAmdBlasCaxpy_pfn +#undef clAmdBlasCcopy +//#define clAmdBlasCcopy clAmdBlasCcopy_pfn +#undef clAmdBlasCdotc +//#define clAmdBlasCdotc clAmdBlasCdotc_pfn +#undef clAmdBlasCdotu +//#define clAmdBlasCdotu clAmdBlasCdotu_pfn +#undef clAmdBlasCgbmv +//#define clAmdBlasCgbmv clAmdBlasCgbmv_pfn +#undef clAmdBlasCgemm +//#define clAmdBlasCgemm clAmdBlasCgemm_pfn +#undef clAmdBlasCgemmEx +#define clAmdBlasCgemmEx clAmdBlasCgemmEx_pfn +#undef clAmdBlasCgemv +//#define clAmdBlasCgemv clAmdBlasCgemv_pfn +#undef clAmdBlasCgemvEx +//#define clAmdBlasCgemvEx clAmdBlasCgemvEx_pfn +#undef clAmdBlasCgerc +//#define clAmdBlasCgerc clAmdBlasCgerc_pfn +#undef clAmdBlasCgeru +//#define clAmdBlasCgeru clAmdBlasCgeru_pfn +#undef clAmdBlasChbmv +//#define clAmdBlasChbmv clAmdBlasChbmv_pfn +#undef clAmdBlasChemm +//#define clAmdBlasChemm clAmdBlasChemm_pfn +#undef clAmdBlasChemv +//#define clAmdBlasChemv clAmdBlasChemv_pfn +#undef clAmdBlasCher +//#define clAmdBlasCher clAmdBlasCher_pfn +#undef clAmdBlasCher2 +//#define clAmdBlasCher2 clAmdBlasCher2_pfn +#undef clAmdBlasCher2k +//#define clAmdBlasCher2k clAmdBlasCher2k_pfn +#undef clAmdBlasCherk +//#define clAmdBlasCherk clAmdBlasCherk_pfn +#undef clAmdBlasChpmv +//#define clAmdBlasChpmv clAmdBlasChpmv_pfn +#undef clAmdBlasChpr +//#define clAmdBlasChpr clAmdBlasChpr_pfn +#undef clAmdBlasChpr2 +//#define clAmdBlasChpr2 clAmdBlasChpr2_pfn +#undef clAmdBlasCrotg +//#define clAmdBlasCrotg clAmdBlasCrotg_pfn +#undef clAmdBlasCscal +//#define clAmdBlasCscal clAmdBlasCscal_pfn +#undef clAmdBlasCsrot +//#define clAmdBlasCsrot clAmdBlasCsrot_pfn +#undef clAmdBlasCsscal +//#define clAmdBlasCsscal clAmdBlasCsscal_pfn +#undef clAmdBlasCswap +//#define clAmdBlasCswap clAmdBlasCswap_pfn +#undef clAmdBlasCsymm +//#define clAmdBlasCsymm clAmdBlasCsymm_pfn +#undef clAmdBlasCsyr2k +//#define clAmdBlasCsyr2k clAmdBlasCsyr2k_pfn +#undef clAmdBlasCsyr2kEx +//#define clAmdBlasCsyr2kEx clAmdBlasCsyr2kEx_pfn +#undef clAmdBlasCsyrk +//#define clAmdBlasCsyrk clAmdBlasCsyrk_pfn +#undef clAmdBlasCsyrkEx +//#define clAmdBlasCsyrkEx clAmdBlasCsyrkEx_pfn +#undef clAmdBlasCtbmv +//#define clAmdBlasCtbmv clAmdBlasCtbmv_pfn +#undef clAmdBlasCtbsv +//#define clAmdBlasCtbsv clAmdBlasCtbsv_pfn +#undef clAmdBlasCtpmv +//#define clAmdBlasCtpmv clAmdBlasCtpmv_pfn +#undef clAmdBlasCtpsv +//#define clAmdBlasCtpsv clAmdBlasCtpsv_pfn +#undef clAmdBlasCtrmm +//#define clAmdBlasCtrmm clAmdBlasCtrmm_pfn +#undef clAmdBlasCtrmmEx +//#define clAmdBlasCtrmmEx clAmdBlasCtrmmEx_pfn +#undef clAmdBlasCtrmv +//#define clAmdBlasCtrmv clAmdBlasCtrmv_pfn +#undef clAmdBlasCtrsm +//#define clAmdBlasCtrsm clAmdBlasCtrsm_pfn +#undef clAmdBlasCtrsmEx +//#define clAmdBlasCtrsmEx clAmdBlasCtrsmEx_pfn +#undef clAmdBlasCtrsv +//#define clAmdBlasCtrsv clAmdBlasCtrsv_pfn +#undef clAmdBlasDasum +//#define clAmdBlasDasum clAmdBlasDasum_pfn +#undef clAmdBlasDaxpy +//#define clAmdBlasDaxpy clAmdBlasDaxpy_pfn +#undef clAmdBlasDcopy +//#define clAmdBlasDcopy clAmdBlasDcopy_pfn +#undef clAmdBlasDdot +//#define clAmdBlasDdot clAmdBlasDdot_pfn +#undef clAmdBlasDgbmv +//#define clAmdBlasDgbmv clAmdBlasDgbmv_pfn +#undef clAmdBlasDgemm +//#define clAmdBlasDgemm clAmdBlasDgemm_pfn +#undef clAmdBlasDgemmEx +#define clAmdBlasDgemmEx clAmdBlasDgemmEx_pfn +#undef clAmdBlasDgemv +//#define clAmdBlasDgemv clAmdBlasDgemv_pfn +#undef clAmdBlasDgemvEx +//#define clAmdBlasDgemvEx clAmdBlasDgemvEx_pfn +#undef clAmdBlasDger +//#define clAmdBlasDger clAmdBlasDger_pfn +#undef clAmdBlasDnrm2 +//#define clAmdBlasDnrm2 clAmdBlasDnrm2_pfn +#undef clAmdBlasDrot +//#define clAmdBlasDrot clAmdBlasDrot_pfn +#undef clAmdBlasDrotg +//#define clAmdBlasDrotg clAmdBlasDrotg_pfn +#undef clAmdBlasDrotm +//#define clAmdBlasDrotm clAmdBlasDrotm_pfn +#undef clAmdBlasDrotmg +//#define clAmdBlasDrotmg clAmdBlasDrotmg_pfn +#undef clAmdBlasDsbmv +//#define clAmdBlasDsbmv clAmdBlasDsbmv_pfn +#undef clAmdBlasDscal +//#define clAmdBlasDscal clAmdBlasDscal_pfn +#undef clAmdBlasDspmv +//#define clAmdBlasDspmv clAmdBlasDspmv_pfn +#undef clAmdBlasDspr +//#define clAmdBlasDspr clAmdBlasDspr_pfn +#undef clAmdBlasDspr2 +//#define clAmdBlasDspr2 clAmdBlasDspr2_pfn +#undef clAmdBlasDswap +//#define clAmdBlasDswap clAmdBlasDswap_pfn +#undef clAmdBlasDsymm +//#define clAmdBlasDsymm clAmdBlasDsymm_pfn +#undef clAmdBlasDsymv +//#define clAmdBlasDsymv clAmdBlasDsymv_pfn +#undef clAmdBlasDsymvEx +//#define clAmdBlasDsymvEx clAmdBlasDsymvEx_pfn +#undef clAmdBlasDsyr +//#define clAmdBlasDsyr clAmdBlasDsyr_pfn +#undef clAmdBlasDsyr2 +//#define clAmdBlasDsyr2 clAmdBlasDsyr2_pfn +#undef clAmdBlasDsyr2k +//#define clAmdBlasDsyr2k clAmdBlasDsyr2k_pfn +#undef clAmdBlasDsyr2kEx +//#define clAmdBlasDsyr2kEx clAmdBlasDsyr2kEx_pfn +#undef clAmdBlasDsyrk +//#define clAmdBlasDsyrk clAmdBlasDsyrk_pfn +#undef clAmdBlasDsyrkEx +//#define clAmdBlasDsyrkEx clAmdBlasDsyrkEx_pfn +#undef clAmdBlasDtbmv +//#define clAmdBlasDtbmv clAmdBlasDtbmv_pfn +#undef clAmdBlasDtbsv +//#define clAmdBlasDtbsv clAmdBlasDtbsv_pfn +#undef clAmdBlasDtpmv +//#define clAmdBlasDtpmv clAmdBlasDtpmv_pfn +#undef clAmdBlasDtpsv +//#define clAmdBlasDtpsv clAmdBlasDtpsv_pfn +#undef clAmdBlasDtrmm +//#define clAmdBlasDtrmm clAmdBlasDtrmm_pfn +#undef clAmdBlasDtrmmEx +//#define clAmdBlasDtrmmEx clAmdBlasDtrmmEx_pfn +#undef clAmdBlasDtrmv +//#define clAmdBlasDtrmv clAmdBlasDtrmv_pfn +#undef clAmdBlasDtrsm +//#define clAmdBlasDtrsm clAmdBlasDtrsm_pfn +#undef clAmdBlasDtrsmEx +//#define clAmdBlasDtrsmEx clAmdBlasDtrsmEx_pfn +#undef clAmdBlasDtrsv +//#define clAmdBlasDtrsv clAmdBlasDtrsv_pfn +#undef clAmdBlasDzasum +//#define clAmdBlasDzasum clAmdBlasDzasum_pfn +#undef clAmdBlasDznrm2 +//#define clAmdBlasDznrm2 clAmdBlasDznrm2_pfn +#undef clAmdBlasGetVersion +//#define clAmdBlasGetVersion clAmdBlasGetVersion_pfn +#undef clAmdBlasRemoveScratchImage +//#define clAmdBlasRemoveScratchImage clAmdBlasRemoveScratchImage_pfn +#undef clAmdBlasSasum +//#define clAmdBlasSasum clAmdBlasSasum_pfn +#undef clAmdBlasSaxpy +//#define clAmdBlasSaxpy clAmdBlasSaxpy_pfn +#undef clAmdBlasScasum +//#define clAmdBlasScasum clAmdBlasScasum_pfn +#undef clAmdBlasScnrm2 +//#define clAmdBlasScnrm2 clAmdBlasScnrm2_pfn +#undef clAmdBlasScopy +//#define clAmdBlasScopy clAmdBlasScopy_pfn +#undef clAmdBlasSdot +//#define clAmdBlasSdot clAmdBlasSdot_pfn +#undef clAmdBlasSetup +#define clAmdBlasSetup clAmdBlasSetup_pfn +#undef clAmdBlasSgbmv +//#define clAmdBlasSgbmv clAmdBlasSgbmv_pfn +#undef clAmdBlasSgemm +//#define clAmdBlasSgemm clAmdBlasSgemm_pfn +#undef clAmdBlasSgemmEx +#define clAmdBlasSgemmEx clAmdBlasSgemmEx_pfn +#undef clAmdBlasSgemv +//#define clAmdBlasSgemv clAmdBlasSgemv_pfn +#undef clAmdBlasSgemvEx +//#define clAmdBlasSgemvEx clAmdBlasSgemvEx_pfn +#undef clAmdBlasSger +//#define clAmdBlasSger clAmdBlasSger_pfn +#undef clAmdBlasSnrm2 +//#define clAmdBlasSnrm2 clAmdBlasSnrm2_pfn +#undef clAmdBlasSrot +//#define clAmdBlasSrot clAmdBlasSrot_pfn +#undef clAmdBlasSrotg +//#define clAmdBlasSrotg clAmdBlasSrotg_pfn +#undef clAmdBlasSrotm +//#define clAmdBlasSrotm clAmdBlasSrotm_pfn +#undef clAmdBlasSrotmg +//#define clAmdBlasSrotmg clAmdBlasSrotmg_pfn +#undef clAmdBlasSsbmv +//#define clAmdBlasSsbmv clAmdBlasSsbmv_pfn +#undef clAmdBlasSscal +//#define clAmdBlasSscal clAmdBlasSscal_pfn +#undef clAmdBlasSspmv +//#define clAmdBlasSspmv clAmdBlasSspmv_pfn +#undef clAmdBlasSspr +//#define clAmdBlasSspr clAmdBlasSspr_pfn +#undef clAmdBlasSspr2 +//#define clAmdBlasSspr2 clAmdBlasSspr2_pfn +#undef clAmdBlasSswap +//#define clAmdBlasSswap clAmdBlasSswap_pfn +#undef clAmdBlasSsymm +//#define clAmdBlasSsymm clAmdBlasSsymm_pfn +#undef clAmdBlasSsymv +//#define clAmdBlasSsymv clAmdBlasSsymv_pfn +#undef clAmdBlasSsymvEx +//#define clAmdBlasSsymvEx clAmdBlasSsymvEx_pfn +#undef clAmdBlasSsyr +//#define clAmdBlasSsyr clAmdBlasSsyr_pfn +#undef clAmdBlasSsyr2 +//#define clAmdBlasSsyr2 clAmdBlasSsyr2_pfn +#undef clAmdBlasSsyr2k +//#define clAmdBlasSsyr2k clAmdBlasSsyr2k_pfn +#undef clAmdBlasSsyr2kEx +//#define clAmdBlasSsyr2kEx clAmdBlasSsyr2kEx_pfn +#undef clAmdBlasSsyrk +//#define clAmdBlasSsyrk clAmdBlasSsyrk_pfn +#undef clAmdBlasSsyrkEx +//#define clAmdBlasSsyrkEx clAmdBlasSsyrkEx_pfn +#undef clAmdBlasStbmv +//#define clAmdBlasStbmv clAmdBlasStbmv_pfn +#undef clAmdBlasStbsv +//#define clAmdBlasStbsv clAmdBlasStbsv_pfn +#undef clAmdBlasStpmv +//#define clAmdBlasStpmv clAmdBlasStpmv_pfn +#undef clAmdBlasStpsv +//#define clAmdBlasStpsv clAmdBlasStpsv_pfn +#undef clAmdBlasStrmm +//#define clAmdBlasStrmm clAmdBlasStrmm_pfn +#undef clAmdBlasStrmmEx +//#define clAmdBlasStrmmEx clAmdBlasStrmmEx_pfn +#undef clAmdBlasStrmv +//#define clAmdBlasStrmv clAmdBlasStrmv_pfn +#undef clAmdBlasStrsm +//#define clAmdBlasStrsm clAmdBlasStrsm_pfn +#undef clAmdBlasStrsmEx +//#define clAmdBlasStrsmEx clAmdBlasStrsmEx_pfn +#undef clAmdBlasStrsv +//#define clAmdBlasStrsv clAmdBlasStrsv_pfn +#undef clAmdBlasTeardown +#define clAmdBlasTeardown clAmdBlasTeardown_pfn +#undef clAmdBlasZaxpy +//#define clAmdBlasZaxpy clAmdBlasZaxpy_pfn +#undef clAmdBlasZcopy +//#define clAmdBlasZcopy clAmdBlasZcopy_pfn +#undef clAmdBlasZdotc +//#define clAmdBlasZdotc clAmdBlasZdotc_pfn +#undef clAmdBlasZdotu +//#define clAmdBlasZdotu clAmdBlasZdotu_pfn +#undef clAmdBlasZdrot +//#define clAmdBlasZdrot clAmdBlasZdrot_pfn +#undef clAmdBlasZdscal +//#define clAmdBlasZdscal clAmdBlasZdscal_pfn +#undef clAmdBlasZgbmv +//#define clAmdBlasZgbmv clAmdBlasZgbmv_pfn +#undef clAmdBlasZgemm +//#define clAmdBlasZgemm clAmdBlasZgemm_pfn +#undef clAmdBlasZgemmEx +#define clAmdBlasZgemmEx clAmdBlasZgemmEx_pfn +#undef clAmdBlasZgemv +//#define clAmdBlasZgemv clAmdBlasZgemv_pfn +#undef clAmdBlasZgemvEx +//#define clAmdBlasZgemvEx clAmdBlasZgemvEx_pfn +#undef clAmdBlasZgerc +//#define clAmdBlasZgerc clAmdBlasZgerc_pfn +#undef clAmdBlasZgeru +//#define clAmdBlasZgeru clAmdBlasZgeru_pfn +#undef clAmdBlasZhbmv +//#define clAmdBlasZhbmv clAmdBlasZhbmv_pfn +#undef clAmdBlasZhemm +//#define clAmdBlasZhemm clAmdBlasZhemm_pfn +#undef clAmdBlasZhemv +//#define clAmdBlasZhemv clAmdBlasZhemv_pfn +#undef clAmdBlasZher +//#define clAmdBlasZher clAmdBlasZher_pfn +#undef clAmdBlasZher2 +//#define clAmdBlasZher2 clAmdBlasZher2_pfn +#undef clAmdBlasZher2k +//#define clAmdBlasZher2k clAmdBlasZher2k_pfn +#undef clAmdBlasZherk +//#define clAmdBlasZherk clAmdBlasZherk_pfn +#undef clAmdBlasZhpmv +//#define clAmdBlasZhpmv clAmdBlasZhpmv_pfn +#undef clAmdBlasZhpr +//#define clAmdBlasZhpr clAmdBlasZhpr_pfn +#undef clAmdBlasZhpr2 +//#define clAmdBlasZhpr2 clAmdBlasZhpr2_pfn +#undef clAmdBlasZrotg +//#define clAmdBlasZrotg clAmdBlasZrotg_pfn +#undef clAmdBlasZscal +//#define clAmdBlasZscal clAmdBlasZscal_pfn +#undef clAmdBlasZswap +//#define clAmdBlasZswap clAmdBlasZswap_pfn +#undef clAmdBlasZsymm +//#define clAmdBlasZsymm clAmdBlasZsymm_pfn +#undef clAmdBlasZsyr2k +//#define clAmdBlasZsyr2k clAmdBlasZsyr2k_pfn +#undef clAmdBlasZsyr2kEx +//#define clAmdBlasZsyr2kEx clAmdBlasZsyr2kEx_pfn +#undef clAmdBlasZsyrk +//#define clAmdBlasZsyrk clAmdBlasZsyrk_pfn +#undef clAmdBlasZsyrkEx +//#define clAmdBlasZsyrkEx clAmdBlasZsyrkEx_pfn +#undef clAmdBlasZtbmv +//#define clAmdBlasZtbmv clAmdBlasZtbmv_pfn +#undef clAmdBlasZtbsv +//#define clAmdBlasZtbsv clAmdBlasZtbsv_pfn +#undef clAmdBlasZtpmv +//#define clAmdBlasZtpmv clAmdBlasZtpmv_pfn +#undef clAmdBlasZtpsv +//#define clAmdBlasZtpsv clAmdBlasZtpsv_pfn +#undef clAmdBlasZtrmm +//#define clAmdBlasZtrmm clAmdBlasZtrmm_pfn +#undef clAmdBlasZtrmmEx +//#define clAmdBlasZtrmmEx clAmdBlasZtrmmEx_pfn +#undef clAmdBlasZtrmv +//#define clAmdBlasZtrmv clAmdBlasZtrmv_pfn +#undef clAmdBlasZtrsm +//#define clAmdBlasZtrsm clAmdBlasZtrsm_pfn +#undef clAmdBlasZtrsmEx +//#define clAmdBlasZtrsmEx clAmdBlasZtrsmEx_pfn +#undef clAmdBlasZtrsv +//#define clAmdBlasZtrsv clAmdBlasZtrsv_pfn +#undef clAmdBlasiCamax +//#define clAmdBlasiCamax clAmdBlasiCamax_pfn +#undef clAmdBlasiDamax +//#define clAmdBlasiDamax clAmdBlasiDamax_pfn +#undef clAmdBlasiSamax +//#define clAmdBlasiSamax clAmdBlasiSamax_pfn +#undef clAmdBlasiZamax +//#define clAmdBlasiZamax clAmdBlasiZamax_pfn + +// generated by parser_clamdblas.py +//extern CL_RUNTIME_EXPORT cl_ulong (*clAmdBlasAddScratchImage)(cl_context context, size_t width, size_t height, clAmdBlasStatus* status); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCaxpy)(size_t N, cl_float2 alpha, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCcopy)(size_t N, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCdotc)(size_t N, cl_mem dotProduct, size_t offDP, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCdotu)(size_t N, cl_mem dotProduct, size_t offDP, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgbmv)(clAmdBlasOrder order, clAmdBlasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_float2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_float2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgemm)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, FloatComplex beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgemmEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, FloatComplex beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgemv)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, FloatComplex alpha, const cl_mem A, size_t lda, const cl_mem x, size_t offx, int incx, FloatComplex beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgemvEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem x, size_t offx, int incx, FloatComplex beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgerc)(clAmdBlasOrder order, size_t M, size_t N, cl_float2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCgeru)(clAmdBlasOrder order, size_t M, size_t N, cl_float2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasChbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, size_t K, cl_float2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_float2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasChemm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, size_t M, size_t N, cl_float2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_float2 beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasChemv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, FloatComplex alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, FloatComplex beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCher)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCher2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCher2k)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_float beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCherk)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, float alpha, const cl_mem A, size_t offa, size_t lda, float beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasChpmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float2 alpha, const cl_mem AP, size_t offa, const cl_mem X, size_t offx, int incx, cl_float2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasChpr)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasChpr2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCrotg)(cl_mem CA, size_t offCA, cl_mem CB, size_t offCB, cl_mem C, size_t offC, cl_mem S, size_t offS, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCscal)(size_t N, cl_float2 alpha, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsrot)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_float C, cl_float S, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsscal)(size_t N, cl_float alpha, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCswap)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsymm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, size_t M, size_t N, cl_float2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_float2 beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsyr2k)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, FloatComplex beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsyr2kEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, FloatComplex beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsyrk)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t lda, FloatComplex beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCsyrkEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, FloatComplex beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtbsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtpmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem AP, size_t offa, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtpsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtrmm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, FloatComplex alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtrmmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtrmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtrsm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, FloatComplex alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtrsmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, FloatComplex alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasCtrsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDasum)(size_t N, cl_mem asum, size_t offAsum, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDaxpy)(size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDcopy)(size_t N, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDdot)(size_t N, cl_mem dotProduct, size_t offDP, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDgbmv)(clAmdBlasOrder order, clAmdBlasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_double alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_double beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDgemm)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, cl_double beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDgemmEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, cl_double beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDgemv)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t lda, const cl_mem x, size_t offx, int incx, cl_double beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDgemvEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem x, size_t offx, int incx, cl_double beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDger)(clAmdBlasOrder order, size_t M, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDnrm2)(size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDrot)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_double C, cl_double S, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDrotg)(cl_mem DA, size_t offDA, cl_mem DB, size_t offDB, cl_mem C, size_t offC, cl_mem S, size_t offS, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDrotm)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, const cl_mem DPARAM, size_t offDparam, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDrotmg)(cl_mem DD1, size_t offDD1, cl_mem DD2, size_t offDD2, cl_mem DX1, size_t offDX1, const cl_mem DY1, size_t offDY1, cl_mem DPARAM, size_t offDparam, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_double beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDscal)(size_t N, cl_double alpha, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDspmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem AP, size_t offa, const cl_mem X, size_t offx, int incx, cl_double beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDspr)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDspr2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDswap)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsymm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_double beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsymv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem A, size_t lda, const cl_mem x, size_t offx, int incx, cl_double beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsymvEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem x, size_t offx, int incx, cl_double beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsyr)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsyr2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsyr2k)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, cl_double beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsyr2kEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, cl_double beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsyrk)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t lda, cl_double beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDsyrkEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, cl_double alpha, const cl_mem A, size_t offA, size_t lda, cl_double beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtbsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtpmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem AP, size_t offa, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtpsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtrmm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtrmmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtrmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtrsm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtrsmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_double alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDtrsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDzasum)(size_t N, cl_mem asum, size_t offAsum, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasDznrm2)(size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasGetVersion)(cl_uint* major, cl_uint* minor, cl_uint* patch); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasRemoveScratchImage)(cl_ulong imageID); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSasum)(size_t N, cl_mem asum, size_t offAsum, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSaxpy)(size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasScasum)(size_t N, cl_mem asum, size_t offAsum, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasScnrm2)(size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasScopy)(size_t N, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSdot)(size_t N, cl_mem dotProduct, size_t offDP, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSetup)(); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSgbmv)(clAmdBlasOrder order, clAmdBlasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_float alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_float beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSgemm)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, cl_float beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSgemmEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, cl_float beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSgemv)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t lda, const cl_mem x, size_t offx, int incx, cl_float beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSgemvEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem x, size_t offx, int incx, cl_float beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSger)(clAmdBlasOrder order, size_t M, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSnrm2)(size_t N, cl_mem NRM2, size_t offNRM2, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSrot)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_float C, cl_float S, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSrotg)(cl_mem SA, size_t offSA, cl_mem SB, size_t offSB, cl_mem C, size_t offC, cl_mem S, size_t offS, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSrotm)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, const cl_mem SPARAM, size_t offSparam, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSrotmg)(cl_mem SD1, size_t offSD1, cl_mem SD2, size_t offSD2, cl_mem SX1, size_t offSX1, const cl_mem SY1, size_t offSY1, cl_mem SPARAM, size_t offSparam, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_float beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSscal)(size_t N, cl_float alpha, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSspmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem AP, size_t offa, const cl_mem X, size_t offx, int incx, cl_float beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSspr)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSspr2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSswap)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsymm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_float beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsymv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem A, size_t lda, const cl_mem x, size_t offx, int incx, cl_float beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsymvEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem x, size_t offx, int incx, cl_float beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsyr)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsyr2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_float alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsyr2k)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, cl_float beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsyr2kEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, cl_float beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsyrk)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t lda, cl_float beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasSsyrkEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, cl_float alpha, const cl_mem A, size_t offA, size_t lda, cl_float beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStbsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStpmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem AP, size_t offa, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStpsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStrmm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStrmmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStrmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStrsm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStrsmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, cl_float alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasStrsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +extern CL_RUNTIME_EXPORT void (*clAmdBlasTeardown)(); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZaxpy)(size_t N, cl_double2 alpha, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZcopy)(size_t N, const cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZdotc)(size_t N, cl_mem dotProduct, size_t offDP, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZdotu)(size_t N, cl_mem dotProduct, size_t offDP, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZdrot)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_double C, cl_double S, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZdscal)(size_t N, cl_double alpha, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgbmv)(clAmdBlasOrder order, clAmdBlasTranspose trans, size_t M, size_t N, size_t KL, size_t KU, cl_double2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_double2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgemm)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, DoubleComplex beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgemmEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, clAmdBlasTranspose transB, size_t M, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, DoubleComplex beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgemv)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, DoubleComplex alpha, const cl_mem A, size_t lda, const cl_mem x, size_t offx, int incx, DoubleComplex beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgemvEx)(clAmdBlasOrder order, clAmdBlasTranspose transA, size_t M, size_t N, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem x, size_t offx, int incx, DoubleComplex beta, cl_mem y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgerc)(clAmdBlasOrder order, size_t M, size_t N, cl_double2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZgeru)(clAmdBlasOrder order, size_t M, size_t N, cl_double2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZhbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, size_t K, cl_double2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, cl_double2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZhemm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, size_t M, size_t N, cl_double2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_double2 beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZhemv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, DoubleComplex alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem X, size_t offx, int incx, DoubleComplex beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZher)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZher2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem A, size_t offa, size_t lda, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZher2k)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_double beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZherk)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, double alpha, const cl_mem A, size_t offa, size_t lda, double beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZhpmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double2 alpha, const cl_mem AP, size_t offa, const cl_mem X, size_t offx, int incx, cl_double2 beta, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZhpr)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double alpha, const cl_mem X, size_t offx, int incx, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZhpr2)(clAmdBlasOrder order, clAmdBlasUplo uplo, size_t N, cl_double2 alpha, const cl_mem X, size_t offx, int incx, const cl_mem Y, size_t offy, int incy, cl_mem AP, size_t offa, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZrotg)(cl_mem CA, size_t offCA, cl_mem CB, size_t offCB, cl_mem C, size_t offC, cl_mem S, size_t offS, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZscal)(size_t N, cl_double2 alpha, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZswap)(size_t N, cl_mem X, size_t offx, int incx, cl_mem Y, size_t offy, int incy, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZsymm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, size_t M, size_t N, cl_double2 alpha, const cl_mem A, size_t offa, size_t lda, const cl_mem B, size_t offb, size_t ldb, cl_double2 beta, cl_mem C, size_t offc, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZsyr2k)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t lda, const cl_mem B, size_t ldb, DoubleComplex beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZsyr2kEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transAB, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, const cl_mem B, size_t offB, size_t ldb, DoubleComplex beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZsyrk)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t lda, DoubleComplex beta, cl_mem C, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZsyrkEx)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose transA, size_t N, size_t K, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, DoubleComplex beta, cl_mem C, size_t offC, size_t ldc, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtbmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtbsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, size_t K, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtpmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem AP, size_t offa, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtpsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtrmm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, DoubleComplex alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtrmmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtrmv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtrsm)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, DoubleComplex alpha, const cl_mem A, size_t lda, cl_mem B, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtrsmEx)(clAmdBlasOrder order, clAmdBlasSide side, clAmdBlasUplo uplo, clAmdBlasTranspose transA, clAmdBlasDiag diag, size_t M, size_t N, DoubleComplex alpha, const cl_mem A, size_t offA, size_t lda, cl_mem B, size_t offB, size_t ldb, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasZtrsv)(clAmdBlasOrder order, clAmdBlasUplo uplo, clAmdBlasTranspose trans, clAmdBlasDiag diag, size_t N, const cl_mem A, size_t offa, size_t lda, cl_mem X, size_t offx, int incx, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasiCamax)(size_t N, cl_mem iMax, size_t offiMax, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasiDamax)(size_t N, cl_mem iMax, size_t offiMax, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasiSamax)(size_t N, cl_mem iMax, size_t offiMax, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); +//extern CL_RUNTIME_EXPORT clAmdBlasStatus (*clAmdBlasiZamax)(size_t N, cl_mem iMax, size_t offiMax, const cl_mem X, size_t offx, int incx, cl_mem scratchBuff, cl_uint numCommandQueues, cl_command_queue* commandQueues, cl_uint numEventsInWaitList, const cl_event* eventWaitList, cl_event* events); diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp new file mode 100644 index 000000000..1457d7eb8 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp @@ -0,0 +1,142 @@ +// +// AUTOGENERATED, DO NOT EDIT +// +#ifndef OPENCV_CORE_OCL_RUNTIME_CLAMDFFT_HPP +#error "Invalid usage" +#endif + +// generated by parser_clamdfft.py +#define clAmdFftBakePlan clAmdFftBakePlan_ +#define clAmdFftCopyPlan clAmdFftCopyPlan_ +#define clAmdFftCreateDefaultPlan clAmdFftCreateDefaultPlan_ +#define clAmdFftDestroyPlan clAmdFftDestroyPlan_ +#define clAmdFftEnqueueTransform clAmdFftEnqueueTransform_ +#define clAmdFftGetLayout clAmdFftGetLayout_ +#define clAmdFftGetPlanBatchSize clAmdFftGetPlanBatchSize_ +#define clAmdFftGetPlanContext clAmdFftGetPlanContext_ +#define clAmdFftGetPlanDim clAmdFftGetPlanDim_ +#define clAmdFftGetPlanDistance clAmdFftGetPlanDistance_ +#define clAmdFftGetPlanInStride clAmdFftGetPlanInStride_ +#define clAmdFftGetPlanLength clAmdFftGetPlanLength_ +#define clAmdFftGetPlanOutStride clAmdFftGetPlanOutStride_ +#define clAmdFftGetPlanPrecision clAmdFftGetPlanPrecision_ +#define clAmdFftGetPlanScale clAmdFftGetPlanScale_ +#define clAmdFftGetPlanTransposeResult clAmdFftGetPlanTransposeResult_ +#define clAmdFftGetResultLocation clAmdFftGetResultLocation_ +#define clAmdFftGetTmpBufSize clAmdFftGetTmpBufSize_ +#define clAmdFftGetVersion clAmdFftGetVersion_ +#define clAmdFftSetLayout clAmdFftSetLayout_ +#define clAmdFftSetPlanBatchSize clAmdFftSetPlanBatchSize_ +#define clAmdFftSetPlanDim clAmdFftSetPlanDim_ +#define clAmdFftSetPlanDistance clAmdFftSetPlanDistance_ +#define clAmdFftSetPlanInStride clAmdFftSetPlanInStride_ +#define clAmdFftSetPlanLength clAmdFftSetPlanLength_ +#define clAmdFftSetPlanOutStride clAmdFftSetPlanOutStride_ +#define clAmdFftSetPlanPrecision clAmdFftSetPlanPrecision_ +#define clAmdFftSetPlanScale clAmdFftSetPlanScale_ +#define clAmdFftSetPlanTransposeResult clAmdFftSetPlanTransposeResult_ +#define clAmdFftSetResultLocation clAmdFftSetResultLocation_ +#define clAmdFftSetup clAmdFftSetup_ +#define clAmdFftTeardown clAmdFftTeardown_ + +#include + +// generated by parser_clamdfft.py +#undef clAmdFftBakePlan +#define clAmdFftBakePlan clAmdFftBakePlan_pfn +#undef clAmdFftCopyPlan +//#define clAmdFftCopyPlan clAmdFftCopyPlan_pfn +#undef clAmdFftCreateDefaultPlan +#define clAmdFftCreateDefaultPlan clAmdFftCreateDefaultPlan_pfn +#undef clAmdFftDestroyPlan +#define clAmdFftDestroyPlan clAmdFftDestroyPlan_pfn +#undef clAmdFftEnqueueTransform +#define clAmdFftEnqueueTransform clAmdFftEnqueueTransform_pfn +#undef clAmdFftGetLayout +//#define clAmdFftGetLayout clAmdFftGetLayout_pfn +#undef clAmdFftGetPlanBatchSize +//#define clAmdFftGetPlanBatchSize clAmdFftGetPlanBatchSize_pfn +#undef clAmdFftGetPlanContext +//#define clAmdFftGetPlanContext clAmdFftGetPlanContext_pfn +#undef clAmdFftGetPlanDim +//#define clAmdFftGetPlanDim clAmdFftGetPlanDim_pfn +#undef clAmdFftGetPlanDistance +//#define clAmdFftGetPlanDistance clAmdFftGetPlanDistance_pfn +#undef clAmdFftGetPlanInStride +//#define clAmdFftGetPlanInStride clAmdFftGetPlanInStride_pfn +#undef clAmdFftGetPlanLength +//#define clAmdFftGetPlanLength clAmdFftGetPlanLength_pfn +#undef clAmdFftGetPlanOutStride +//#define clAmdFftGetPlanOutStride clAmdFftGetPlanOutStride_pfn +#undef clAmdFftGetPlanPrecision +//#define clAmdFftGetPlanPrecision clAmdFftGetPlanPrecision_pfn +#undef clAmdFftGetPlanScale +//#define clAmdFftGetPlanScale clAmdFftGetPlanScale_pfn +#undef clAmdFftGetPlanTransposeResult +//#define clAmdFftGetPlanTransposeResult clAmdFftGetPlanTransposeResult_pfn +#undef clAmdFftGetResultLocation +//#define clAmdFftGetResultLocation clAmdFftGetResultLocation_pfn +#undef clAmdFftGetTmpBufSize +#define clAmdFftGetTmpBufSize clAmdFftGetTmpBufSize_pfn +#undef clAmdFftGetVersion +#define clAmdFftGetVersion clAmdFftGetVersion_pfn +#undef clAmdFftSetLayout +#define clAmdFftSetLayout clAmdFftSetLayout_pfn +#undef clAmdFftSetPlanBatchSize +#define clAmdFftSetPlanBatchSize clAmdFftSetPlanBatchSize_pfn +#undef clAmdFftSetPlanDim +//#define clAmdFftSetPlanDim clAmdFftSetPlanDim_pfn +#undef clAmdFftSetPlanDistance +#define clAmdFftSetPlanDistance clAmdFftSetPlanDistance_pfn +#undef clAmdFftSetPlanInStride +#define clAmdFftSetPlanInStride clAmdFftSetPlanInStride_pfn +#undef clAmdFftSetPlanLength +//#define clAmdFftSetPlanLength clAmdFftSetPlanLength_pfn +#undef clAmdFftSetPlanOutStride +#define clAmdFftSetPlanOutStride clAmdFftSetPlanOutStride_pfn +#undef clAmdFftSetPlanPrecision +#define clAmdFftSetPlanPrecision clAmdFftSetPlanPrecision_pfn +#undef clAmdFftSetPlanScale +#define clAmdFftSetPlanScale clAmdFftSetPlanScale_pfn +#undef clAmdFftSetPlanTransposeResult +//#define clAmdFftSetPlanTransposeResult clAmdFftSetPlanTransposeResult_pfn +#undef clAmdFftSetResultLocation +#define clAmdFftSetResultLocation clAmdFftSetResultLocation_pfn +#undef clAmdFftSetup +#define clAmdFftSetup clAmdFftSetup_pfn +#undef clAmdFftTeardown +#define clAmdFftTeardown clAmdFftTeardown_pfn + +// generated by parser_clamdfft.py +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftBakePlan)(clAmdFftPlanHandle plHandle, cl_uint numQueues, cl_command_queue* commQueueFFT, void (CL_CALLBACK* pfn_notify) (clAmdFftPlanHandle plHandle, void* user_data), void* user_data); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftCopyPlan)(clAmdFftPlanHandle* out_plHandle, cl_context new_context, clAmdFftPlanHandle in_plHandle); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftCreateDefaultPlan)(clAmdFftPlanHandle* plHandle, cl_context context, const clAmdFftDim dim, const size_t* clLengths); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftDestroyPlan)(clAmdFftPlanHandle* plHandle); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftEnqueueTransform)(clAmdFftPlanHandle plHandle, clAmdFftDirection dir, cl_uint numQueuesAndEvents, cl_command_queue* commQueues, cl_uint numWaitEvents, const cl_event* waitEvents, cl_event* outEvents, cl_mem* inputBuffers, cl_mem* outputBuffers, cl_mem tmpBuffer); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetLayout)(const clAmdFftPlanHandle plHandle, clAmdFftLayout* iLayout, clAmdFftLayout* oLayout); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanBatchSize)(const clAmdFftPlanHandle plHandle, size_t* batchSize); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanContext)(const clAmdFftPlanHandle plHandle, cl_context* context); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanDim)(const clAmdFftPlanHandle plHandle, clAmdFftDim* dim, cl_uint* size); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanDistance)(const clAmdFftPlanHandle plHandle, size_t* iDist, size_t* oDist); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanInStride)(const clAmdFftPlanHandle plHandle, const clAmdFftDim dim, size_t* clStrides); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanLength)(const clAmdFftPlanHandle plHandle, const clAmdFftDim dim, size_t* clLengths); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanOutStride)(const clAmdFftPlanHandle plHandle, const clAmdFftDim dim, size_t* clStrides); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanPrecision)(const clAmdFftPlanHandle plHandle, clAmdFftPrecision* precision); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanScale)(const clAmdFftPlanHandle plHandle, clAmdFftDirection dir, cl_float* scale); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetPlanTransposeResult)(const clAmdFftPlanHandle plHandle, clAmdFftResultTransposed* transposed); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetResultLocation)(const clAmdFftPlanHandle plHandle, clAmdFftResultLocation* placeness); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetTmpBufSize)(const clAmdFftPlanHandle plHandle, size_t* buffersize); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftGetVersion)(cl_uint* major, cl_uint* minor, cl_uint* patch); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetLayout)(clAmdFftPlanHandle plHandle, clAmdFftLayout iLayout, clAmdFftLayout oLayout); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanBatchSize)(clAmdFftPlanHandle plHandle, size_t batchSize); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanDim)(clAmdFftPlanHandle plHandle, const clAmdFftDim dim); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanDistance)(clAmdFftPlanHandle plHandle, size_t iDist, size_t oDist); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanInStride)(clAmdFftPlanHandle plHandle, const clAmdFftDim dim, size_t* clStrides); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanLength)(clAmdFftPlanHandle plHandle, const clAmdFftDim dim, const size_t* clLengths); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanOutStride)(clAmdFftPlanHandle plHandle, const clAmdFftDim dim, size_t* clStrides); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanPrecision)(clAmdFftPlanHandle plHandle, clAmdFftPrecision precision); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanScale)(clAmdFftPlanHandle plHandle, clAmdFftDirection dir, cl_float scale); +//extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetPlanTransposeResult)(clAmdFftPlanHandle plHandle, clAmdFftResultTransposed transposed); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetResultLocation)(clAmdFftPlanHandle plHandle, clAmdFftResultLocation placeness); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftSetup)(const clAmdFftSetupData* setupData); +extern CL_RUNTIME_EXPORT clAmdFftStatus (*clAmdFftTeardown)(); diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp new file mode 100644 index 000000000..28618a1f3 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp @@ -0,0 +1,371 @@ +// +// AUTOGENERATED, DO NOT EDIT +// +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_CORE_HPP +#error "Invalid usage" +#endif + +// generated by parser_cl.py +#define clBuildProgram clBuildProgram_ +#define clCompileProgram clCompileProgram_ +#define clCreateBuffer clCreateBuffer_ +#define clCreateCommandQueue clCreateCommandQueue_ +#define clCreateContext clCreateContext_ +#define clCreateContextFromType clCreateContextFromType_ +#define clCreateImage clCreateImage_ +#define clCreateImage2D clCreateImage2D_ +#define clCreateImage3D clCreateImage3D_ +#define clCreateKernel clCreateKernel_ +#define clCreateKernelsInProgram clCreateKernelsInProgram_ +#define clCreateProgramWithBinary clCreateProgramWithBinary_ +#define clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernels_ +#define clCreateProgramWithSource clCreateProgramWithSource_ +#define clCreateSampler clCreateSampler_ +#define clCreateSubBuffer clCreateSubBuffer_ +#define clCreateSubDevices clCreateSubDevices_ +#define clCreateUserEvent clCreateUserEvent_ +#define clEnqueueBarrier clEnqueueBarrier_ +#define clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitList_ +#define clEnqueueCopyBuffer clEnqueueCopyBuffer_ +#define clEnqueueCopyBufferRect clEnqueueCopyBufferRect_ +#define clEnqueueCopyBufferToImage clEnqueueCopyBufferToImage_ +#define clEnqueueCopyImage clEnqueueCopyImage_ +#define clEnqueueCopyImageToBuffer clEnqueueCopyImageToBuffer_ +#define clEnqueueFillBuffer clEnqueueFillBuffer_ +#define clEnqueueFillImage clEnqueueFillImage_ +#define clEnqueueMapBuffer clEnqueueMapBuffer_ +#define clEnqueueMapImage clEnqueueMapImage_ +#define clEnqueueMarker clEnqueueMarker_ +#define clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitList_ +#define clEnqueueMigrateMemObjects clEnqueueMigrateMemObjects_ +#define clEnqueueNDRangeKernel clEnqueueNDRangeKernel_ +#define clEnqueueNativeKernel clEnqueueNativeKernel_ +#define clEnqueueReadBuffer clEnqueueReadBuffer_ +#define clEnqueueReadBufferRect clEnqueueReadBufferRect_ +#define clEnqueueReadImage clEnqueueReadImage_ +#define clEnqueueTask clEnqueueTask_ +#define clEnqueueUnmapMemObject clEnqueueUnmapMemObject_ +#define clEnqueueWaitForEvents clEnqueueWaitForEvents_ +#define clEnqueueWriteBuffer clEnqueueWriteBuffer_ +#define clEnqueueWriteBufferRect clEnqueueWriteBufferRect_ +#define clEnqueueWriteImage clEnqueueWriteImage_ +#define clFinish clFinish_ +#define clFlush clFlush_ +#define clGetCommandQueueInfo clGetCommandQueueInfo_ +#define clGetContextInfo clGetContextInfo_ +#define clGetDeviceIDs clGetDeviceIDs_ +#define clGetDeviceInfo clGetDeviceInfo_ +#define clGetEventInfo clGetEventInfo_ +#define clGetEventProfilingInfo clGetEventProfilingInfo_ +#define clGetExtensionFunctionAddress clGetExtensionFunctionAddress_ +#define clGetExtensionFunctionAddressForPlatform clGetExtensionFunctionAddressForPlatform_ +#define clGetImageInfo clGetImageInfo_ +#define clGetKernelArgInfo clGetKernelArgInfo_ +#define clGetKernelInfo clGetKernelInfo_ +#define clGetKernelWorkGroupInfo clGetKernelWorkGroupInfo_ +#define clGetMemObjectInfo clGetMemObjectInfo_ +#define clGetPlatformIDs clGetPlatformIDs_ +#define clGetPlatformInfo clGetPlatformInfo_ +#define clGetProgramBuildInfo clGetProgramBuildInfo_ +#define clGetProgramInfo clGetProgramInfo_ +#define clGetSamplerInfo clGetSamplerInfo_ +#define clGetSupportedImageFormats clGetSupportedImageFormats_ +#define clLinkProgram clLinkProgram_ +#define clReleaseCommandQueue clReleaseCommandQueue_ +#define clReleaseContext clReleaseContext_ +#define clReleaseDevice clReleaseDevice_ +#define clReleaseEvent clReleaseEvent_ +#define clReleaseKernel clReleaseKernel_ +#define clReleaseMemObject clReleaseMemObject_ +#define clReleaseProgram clReleaseProgram_ +#define clReleaseSampler clReleaseSampler_ +#define clRetainCommandQueue clRetainCommandQueue_ +#define clRetainContext clRetainContext_ +#define clRetainDevice clRetainDevice_ +#define clRetainEvent clRetainEvent_ +#define clRetainKernel clRetainKernel_ +#define clRetainMemObject clRetainMemObject_ +#define clRetainProgram clRetainProgram_ +#define clRetainSampler clRetainSampler_ +#define clSetEventCallback clSetEventCallback_ +#define clSetKernelArg clSetKernelArg_ +#define clSetMemObjectDestructorCallback clSetMemObjectDestructorCallback_ +#define clSetUserEventStatus clSetUserEventStatus_ +#define clUnloadCompiler clUnloadCompiler_ +#define clUnloadPlatformCompiler clUnloadPlatformCompiler_ +#define clWaitForEvents clWaitForEvents_ + +#if defined __APPLE__ +#define CL_SILENCE_DEPRECATION +#include +#else +#include +#endif + +// generated by parser_cl.py +#undef clBuildProgram +#define clBuildProgram clBuildProgram_pfn +#undef clCompileProgram +#define clCompileProgram clCompileProgram_pfn +#undef clCreateBuffer +#define clCreateBuffer clCreateBuffer_pfn +#undef clCreateCommandQueue +#define clCreateCommandQueue clCreateCommandQueue_pfn +#undef clCreateContext +#define clCreateContext clCreateContext_pfn +#undef clCreateContextFromType +#define clCreateContextFromType clCreateContextFromType_pfn +#undef clCreateImage +#define clCreateImage clCreateImage_pfn +#undef clCreateImage2D +#define clCreateImage2D clCreateImage2D_pfn +#undef clCreateImage3D +#define clCreateImage3D clCreateImage3D_pfn +#undef clCreateKernel +#define clCreateKernel clCreateKernel_pfn +#undef clCreateKernelsInProgram +#define clCreateKernelsInProgram clCreateKernelsInProgram_pfn +#undef clCreateProgramWithBinary +#define clCreateProgramWithBinary clCreateProgramWithBinary_pfn +#undef clCreateProgramWithBuiltInKernels +#define clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernels_pfn +#undef clCreateProgramWithSource +#define clCreateProgramWithSource clCreateProgramWithSource_pfn +#undef clCreateSampler +#define clCreateSampler clCreateSampler_pfn +#undef clCreateSubBuffer +#define clCreateSubBuffer clCreateSubBuffer_pfn +#undef clCreateSubDevices +#define clCreateSubDevices clCreateSubDevices_pfn +#undef clCreateUserEvent +#define clCreateUserEvent clCreateUserEvent_pfn +#undef clEnqueueBarrier +#define clEnqueueBarrier clEnqueueBarrier_pfn +#undef clEnqueueBarrierWithWaitList +#define clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitList_pfn +#undef clEnqueueCopyBuffer +#define clEnqueueCopyBuffer clEnqueueCopyBuffer_pfn +#undef clEnqueueCopyBufferRect +#define clEnqueueCopyBufferRect clEnqueueCopyBufferRect_pfn +#undef clEnqueueCopyBufferToImage +#define clEnqueueCopyBufferToImage clEnqueueCopyBufferToImage_pfn +#undef clEnqueueCopyImage +#define clEnqueueCopyImage clEnqueueCopyImage_pfn +#undef clEnqueueCopyImageToBuffer +#define clEnqueueCopyImageToBuffer clEnqueueCopyImageToBuffer_pfn +#undef clEnqueueFillBuffer +#define clEnqueueFillBuffer clEnqueueFillBuffer_pfn +#undef clEnqueueFillImage +#define clEnqueueFillImage clEnqueueFillImage_pfn +#undef clEnqueueMapBuffer +#define clEnqueueMapBuffer clEnqueueMapBuffer_pfn +#undef clEnqueueMapImage +#define clEnqueueMapImage clEnqueueMapImage_pfn +#undef clEnqueueMarker +#define clEnqueueMarker clEnqueueMarker_pfn +#undef clEnqueueMarkerWithWaitList +#define clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitList_pfn +#undef clEnqueueMigrateMemObjects +#define clEnqueueMigrateMemObjects clEnqueueMigrateMemObjects_pfn +#undef clEnqueueNDRangeKernel +#define clEnqueueNDRangeKernel clEnqueueNDRangeKernel_pfn +#undef clEnqueueNativeKernel +#define clEnqueueNativeKernel clEnqueueNativeKernel_pfn +#undef clEnqueueReadBuffer +#define clEnqueueReadBuffer clEnqueueReadBuffer_pfn +#undef clEnqueueReadBufferRect +#define clEnqueueReadBufferRect clEnqueueReadBufferRect_pfn +#undef clEnqueueReadImage +#define clEnqueueReadImage clEnqueueReadImage_pfn +#undef clEnqueueTask +#define clEnqueueTask clEnqueueTask_pfn +#undef clEnqueueUnmapMemObject +#define clEnqueueUnmapMemObject clEnqueueUnmapMemObject_pfn +#undef clEnqueueWaitForEvents +#define clEnqueueWaitForEvents clEnqueueWaitForEvents_pfn +#undef clEnqueueWriteBuffer +#define clEnqueueWriteBuffer clEnqueueWriteBuffer_pfn +#undef clEnqueueWriteBufferRect +#define clEnqueueWriteBufferRect clEnqueueWriteBufferRect_pfn +#undef clEnqueueWriteImage +#define clEnqueueWriteImage clEnqueueWriteImage_pfn +#undef clFinish +#define clFinish clFinish_pfn +#undef clFlush +#define clFlush clFlush_pfn +#undef clGetCommandQueueInfo +#define clGetCommandQueueInfo clGetCommandQueueInfo_pfn +#undef clGetContextInfo +#define clGetContextInfo clGetContextInfo_pfn +#undef clGetDeviceIDs +#define clGetDeviceIDs clGetDeviceIDs_pfn +#undef clGetDeviceInfo +#define clGetDeviceInfo clGetDeviceInfo_pfn +#undef clGetEventInfo +#define clGetEventInfo clGetEventInfo_pfn +#undef clGetEventProfilingInfo +#define clGetEventProfilingInfo clGetEventProfilingInfo_pfn +#undef clGetExtensionFunctionAddress +#define clGetExtensionFunctionAddress clGetExtensionFunctionAddress_pfn +#undef clGetExtensionFunctionAddressForPlatform +#define clGetExtensionFunctionAddressForPlatform clGetExtensionFunctionAddressForPlatform_pfn +#undef clGetImageInfo +#define clGetImageInfo clGetImageInfo_pfn +#undef clGetKernelArgInfo +#define clGetKernelArgInfo clGetKernelArgInfo_pfn +#undef clGetKernelInfo +#define clGetKernelInfo clGetKernelInfo_pfn +#undef clGetKernelWorkGroupInfo +#define clGetKernelWorkGroupInfo clGetKernelWorkGroupInfo_pfn +#undef clGetMemObjectInfo +#define clGetMemObjectInfo clGetMemObjectInfo_pfn +#undef clGetPlatformIDs +#define clGetPlatformIDs clGetPlatformIDs_pfn +#undef clGetPlatformInfo +#define clGetPlatformInfo clGetPlatformInfo_pfn +#undef clGetProgramBuildInfo +#define clGetProgramBuildInfo clGetProgramBuildInfo_pfn +#undef clGetProgramInfo +#define clGetProgramInfo clGetProgramInfo_pfn +#undef clGetSamplerInfo +#define clGetSamplerInfo clGetSamplerInfo_pfn +#undef clGetSupportedImageFormats +#define clGetSupportedImageFormats clGetSupportedImageFormats_pfn +#undef clLinkProgram +#define clLinkProgram clLinkProgram_pfn +#undef clReleaseCommandQueue +#define clReleaseCommandQueue clReleaseCommandQueue_pfn +#undef clReleaseContext +#define clReleaseContext clReleaseContext_pfn +#undef clReleaseDevice +#define clReleaseDevice clReleaseDevice_pfn +#undef clReleaseEvent +#define clReleaseEvent clReleaseEvent_pfn +#undef clReleaseKernel +#define clReleaseKernel clReleaseKernel_pfn +#undef clReleaseMemObject +#define clReleaseMemObject clReleaseMemObject_pfn +#undef clReleaseProgram +#define clReleaseProgram clReleaseProgram_pfn +#undef clReleaseSampler +#define clReleaseSampler clReleaseSampler_pfn +#undef clRetainCommandQueue +#define clRetainCommandQueue clRetainCommandQueue_pfn +#undef clRetainContext +#define clRetainContext clRetainContext_pfn +#undef clRetainDevice +#define clRetainDevice clRetainDevice_pfn +#undef clRetainEvent +#define clRetainEvent clRetainEvent_pfn +#undef clRetainKernel +#define clRetainKernel clRetainKernel_pfn +#undef clRetainMemObject +#define clRetainMemObject clRetainMemObject_pfn +#undef clRetainProgram +#define clRetainProgram clRetainProgram_pfn +#undef clRetainSampler +#define clRetainSampler clRetainSampler_pfn +#undef clSetEventCallback +#define clSetEventCallback clSetEventCallback_pfn +#undef clSetKernelArg +#define clSetKernelArg clSetKernelArg_pfn +#undef clSetMemObjectDestructorCallback +#define clSetMemObjectDestructorCallback clSetMemObjectDestructorCallback_pfn +#undef clSetUserEventStatus +#define clSetUserEventStatus clSetUserEventStatus_pfn +#undef clUnloadCompiler +#define clUnloadCompiler clUnloadCompiler_pfn +#undef clUnloadPlatformCompiler +#define clUnloadPlatformCompiler clUnloadPlatformCompiler_pfn +#undef clWaitForEvents +#define clWaitForEvents clWaitForEvents_pfn + +// generated by parser_cl.py +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clBuildProgram)(cl_program, cl_uint, const cl_device_id*, const char*, void (CL_CALLBACK*) (cl_program, void*), void*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clCompileProgram)(cl_program, cl_uint, const cl_device_id*, const char*, cl_uint, const cl_program*, const char**, void (CL_CALLBACK*) (cl_program, void*), void*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateBuffer)(cl_context, cl_mem_flags, size_t, void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_command_queue (CL_API_CALL*clCreateCommandQueue)(cl_context, cl_device_id, cl_command_queue_properties, cl_int*); +extern CL_RUNTIME_EXPORT cl_context (CL_API_CALL*clCreateContext)(const cl_context_properties*, cl_uint, const cl_device_id*, void (CL_CALLBACK*) (const char*, const void*, size_t, void*), void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_context (CL_API_CALL*clCreateContextFromType)(const cl_context_properties*, cl_device_type, void (CL_CALLBACK*) (const char*, const void*, size_t, void*), void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateImage)(cl_context, cl_mem_flags, const cl_image_format*, const cl_image_desc*, void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateImage2D)(cl_context, cl_mem_flags, const cl_image_format*, size_t, size_t, size_t, void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateImage3D)(cl_context, cl_mem_flags, const cl_image_format*, size_t, size_t, size_t, size_t, size_t, void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_kernel (CL_API_CALL*clCreateKernel)(cl_program, const char*, cl_int*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clCreateKernelsInProgram)(cl_program, cl_uint, cl_kernel*, cl_uint*); +extern CL_RUNTIME_EXPORT cl_program (CL_API_CALL*clCreateProgramWithBinary)(cl_context, cl_uint, const cl_device_id*, const size_t*, const unsigned char**, cl_int*, cl_int*); +extern CL_RUNTIME_EXPORT cl_program (CL_API_CALL*clCreateProgramWithBuiltInKernels)(cl_context, cl_uint, const cl_device_id*, const char*, cl_int*); +extern CL_RUNTIME_EXPORT cl_program (CL_API_CALL*clCreateProgramWithSource)(cl_context, cl_uint, const char**, const size_t*, cl_int*); +extern CL_RUNTIME_EXPORT cl_sampler (CL_API_CALL*clCreateSampler)(cl_context, cl_bool, cl_addressing_mode, cl_filter_mode, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateSubBuffer)(cl_mem, cl_mem_flags, cl_buffer_create_type, const void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clCreateSubDevices)(cl_device_id, const cl_device_partition_property*, cl_uint, cl_device_id*, cl_uint*); +extern CL_RUNTIME_EXPORT cl_event (CL_API_CALL*clCreateUserEvent)(cl_context, cl_int*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueBarrier)(cl_command_queue); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueBarrierWithWaitList)(cl_command_queue, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueCopyBuffer)(cl_command_queue, cl_mem, cl_mem, size_t, size_t, size_t, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueCopyBufferRect)(cl_command_queue, cl_mem, cl_mem, const size_t*, const size_t*, const size_t*, size_t, size_t, size_t, size_t, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueCopyBufferToImage)(cl_command_queue, cl_mem, cl_mem, size_t, const size_t*, const size_t*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueCopyImage)(cl_command_queue, cl_mem, cl_mem, const size_t*, const size_t*, const size_t*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueCopyImageToBuffer)(cl_command_queue, cl_mem, cl_mem, const size_t*, const size_t*, size_t, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueFillBuffer)(cl_command_queue, cl_mem, const void*, size_t, size_t, size_t, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueFillImage)(cl_command_queue, cl_mem, const void*, const size_t*, const size_t*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT void* (CL_API_CALL*clEnqueueMapBuffer)(cl_command_queue, cl_mem, cl_bool, cl_map_flags, size_t, size_t, cl_uint, const cl_event*, cl_event*, cl_int*); +extern CL_RUNTIME_EXPORT void* (CL_API_CALL*clEnqueueMapImage)(cl_command_queue, cl_mem, cl_bool, cl_map_flags, const size_t*, const size_t*, size_t*, size_t*, cl_uint, const cl_event*, cl_event*, cl_int*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueMarker)(cl_command_queue, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueMarkerWithWaitList)(cl_command_queue, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueMigrateMemObjects)(cl_command_queue, cl_uint, const cl_mem*, cl_mem_migration_flags, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueNDRangeKernel)(cl_command_queue, cl_kernel, cl_uint, const size_t*, const size_t*, const size_t*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueNativeKernel)(cl_command_queue, void (CL_CALLBACK*) (void*), void*, size_t, cl_uint, const cl_mem*, const void**, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueReadBuffer)(cl_command_queue, cl_mem, cl_bool, size_t, size_t, void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueReadBufferRect)(cl_command_queue, cl_mem, cl_bool, const size_t*, const size_t*, const size_t*, size_t, size_t, size_t, size_t, void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueReadImage)(cl_command_queue, cl_mem, cl_bool, const size_t*, const size_t*, size_t, size_t, void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueTask)(cl_command_queue, cl_kernel, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueUnmapMemObject)(cl_command_queue, cl_mem, void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueWaitForEvents)(cl_command_queue, cl_uint, const cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueWriteBuffer)(cl_command_queue, cl_mem, cl_bool, size_t, size_t, const void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueWriteBufferRect)(cl_command_queue, cl_mem, cl_bool, const size_t*, const size_t*, const size_t*, size_t, size_t, size_t, size_t, const void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueWriteImage)(cl_command_queue, cl_mem, cl_bool, const size_t*, const size_t*, size_t, size_t, const void*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clFinish)(cl_command_queue); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clFlush)(cl_command_queue); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetCommandQueueInfo)(cl_command_queue, cl_command_queue_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetContextInfo)(cl_context, cl_context_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetDeviceIDs)(cl_platform_id, cl_device_type, cl_uint, cl_device_id*, cl_uint*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetDeviceInfo)(cl_device_id, cl_device_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetEventInfo)(cl_event, cl_event_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetEventProfilingInfo)(cl_event, cl_profiling_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT void* (CL_API_CALL*clGetExtensionFunctionAddress)(const char*); +extern CL_RUNTIME_EXPORT void* (CL_API_CALL*clGetExtensionFunctionAddressForPlatform)(cl_platform_id, const char*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetImageInfo)(cl_mem, cl_image_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetKernelArgInfo)(cl_kernel, cl_uint, cl_kernel_arg_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetKernelInfo)(cl_kernel, cl_kernel_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetKernelWorkGroupInfo)(cl_kernel, cl_device_id, cl_kernel_work_group_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetMemObjectInfo)(cl_mem, cl_mem_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetPlatformIDs)(cl_uint, cl_platform_id*, cl_uint*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetPlatformInfo)(cl_platform_id, cl_platform_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetProgramBuildInfo)(cl_program, cl_device_id, cl_program_build_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetProgramInfo)(cl_program, cl_program_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetSamplerInfo)(cl_sampler, cl_sampler_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetSupportedImageFormats)(cl_context, cl_mem_flags, cl_mem_object_type, cl_uint, cl_image_format*, cl_uint*); +extern CL_RUNTIME_EXPORT cl_program (CL_API_CALL*clLinkProgram)(cl_context, cl_uint, const cl_device_id*, const char*, cl_uint, const cl_program*, void (CL_CALLBACK*) (cl_program, void*), void*, cl_int*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseCommandQueue)(cl_command_queue); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseContext)(cl_context); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseDevice)(cl_device_id); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseEvent)(cl_event); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseKernel)(cl_kernel); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseMemObject)(cl_mem); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseProgram)(cl_program); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clReleaseSampler)(cl_sampler); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainCommandQueue)(cl_command_queue); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainContext)(cl_context); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainDevice)(cl_device_id); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainEvent)(cl_event); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainKernel)(cl_kernel); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainMemObject)(cl_mem); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainProgram)(cl_program); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clRetainSampler)(cl_sampler); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clSetEventCallback)(cl_event, cl_int, void (CL_CALLBACK*) (cl_event, cl_int, void*), void*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clSetKernelArg)(cl_kernel, cl_uint, size_t, const void*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clSetMemObjectDestructorCallback)(cl_mem, void (CL_CALLBACK*) (cl_mem, void*), void*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clSetUserEventStatus)(cl_event, cl_int); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clUnloadCompiler)(); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clUnloadPlatformCompiler)(cl_platform_id); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clWaitForEvents)(cl_uint, const cl_event*); diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp new file mode 100644 index 000000000..216b22b8a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp @@ -0,0 +1,272 @@ +// +// AUTOGENERATED, DO NOT EDIT +// +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_WRAPPERS_HPP +#error "Invalid usage" +#endif + +// generated by parser_cl.py +#undef clBuildProgram +#define clBuildProgram clBuildProgram_fn +inline cl_int clBuildProgram(cl_program p0, cl_uint p1, const cl_device_id* p2, const char* p3, void (CL_CALLBACK*p4) (cl_program, void*), void* p5) { return clBuildProgram_pfn(p0, p1, p2, p3, p4, p5); } +#undef clCompileProgram +#define clCompileProgram clCompileProgram_fn +inline cl_int clCompileProgram(cl_program p0, cl_uint p1, const cl_device_id* p2, const char* p3, cl_uint p4, const cl_program* p5, const char** p6, void (CL_CALLBACK*p7) (cl_program, void*), void* p8) { return clCompileProgram_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clCreateBuffer +#define clCreateBuffer clCreateBuffer_fn +inline cl_mem clCreateBuffer(cl_context p0, cl_mem_flags p1, size_t p2, void* p3, cl_int* p4) { return clCreateBuffer_pfn(p0, p1, p2, p3, p4); } +#undef clCreateCommandQueue +#define clCreateCommandQueue clCreateCommandQueue_fn +inline cl_command_queue clCreateCommandQueue(cl_context p0, cl_device_id p1, cl_command_queue_properties p2, cl_int* p3) { return clCreateCommandQueue_pfn(p0, p1, p2, p3); } +#undef clCreateContext +#define clCreateContext clCreateContext_fn +inline cl_context clCreateContext(const cl_context_properties* p0, cl_uint p1, const cl_device_id* p2, void (CL_CALLBACK*p3) (const char*, const void*, size_t, void*), void* p4, cl_int* p5) { return clCreateContext_pfn(p0, p1, p2, p3, p4, p5); } +#undef clCreateContextFromType +#define clCreateContextFromType clCreateContextFromType_fn +inline cl_context clCreateContextFromType(const cl_context_properties* p0, cl_device_type p1, void (CL_CALLBACK*p2) (const char*, const void*, size_t, void*), void* p3, cl_int* p4) { return clCreateContextFromType_pfn(p0, p1, p2, p3, p4); } +#undef clCreateImage +#define clCreateImage clCreateImage_fn +inline cl_mem clCreateImage(cl_context p0, cl_mem_flags p1, const cl_image_format* p2, const cl_image_desc* p3, void* p4, cl_int* p5) { return clCreateImage_pfn(p0, p1, p2, p3, p4, p5); } +#undef clCreateImage2D +#define clCreateImage2D clCreateImage2D_fn +inline cl_mem clCreateImage2D(cl_context p0, cl_mem_flags p1, const cl_image_format* p2, size_t p3, size_t p4, size_t p5, void* p6, cl_int* p7) { return clCreateImage2D_pfn(p0, p1, p2, p3, p4, p5, p6, p7); } +#undef clCreateImage3D +#define clCreateImage3D clCreateImage3D_fn +inline cl_mem clCreateImage3D(cl_context p0, cl_mem_flags p1, const cl_image_format* p2, size_t p3, size_t p4, size_t p5, size_t p6, size_t p7, void* p8, cl_int* p9) { return clCreateImage3D_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } +#undef clCreateKernel +#define clCreateKernel clCreateKernel_fn +inline cl_kernel clCreateKernel(cl_program p0, const char* p1, cl_int* p2) { return clCreateKernel_pfn(p0, p1, p2); } +#undef clCreateKernelsInProgram +#define clCreateKernelsInProgram clCreateKernelsInProgram_fn +inline cl_int clCreateKernelsInProgram(cl_program p0, cl_uint p1, cl_kernel* p2, cl_uint* p3) { return clCreateKernelsInProgram_pfn(p0, p1, p2, p3); } +#undef clCreateProgramWithBinary +#define clCreateProgramWithBinary clCreateProgramWithBinary_fn +inline cl_program clCreateProgramWithBinary(cl_context p0, cl_uint p1, const cl_device_id* p2, const size_t* p3, const unsigned char** p4, cl_int* p5, cl_int* p6) { return clCreateProgramWithBinary_pfn(p0, p1, p2, p3, p4, p5, p6); } +#undef clCreateProgramWithBuiltInKernels +#define clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernels_fn +inline cl_program clCreateProgramWithBuiltInKernels(cl_context p0, cl_uint p1, const cl_device_id* p2, const char* p3, cl_int* p4) { return clCreateProgramWithBuiltInKernels_pfn(p0, p1, p2, p3, p4); } +#undef clCreateProgramWithSource +#define clCreateProgramWithSource clCreateProgramWithSource_fn +inline cl_program clCreateProgramWithSource(cl_context p0, cl_uint p1, const char** p2, const size_t* p3, cl_int* p4) { return clCreateProgramWithSource_pfn(p0, p1, p2, p3, p4); } +#undef clCreateSampler +#define clCreateSampler clCreateSampler_fn +inline cl_sampler clCreateSampler(cl_context p0, cl_bool p1, cl_addressing_mode p2, cl_filter_mode p3, cl_int* p4) { return clCreateSampler_pfn(p0, p1, p2, p3, p4); } +#undef clCreateSubBuffer +#define clCreateSubBuffer clCreateSubBuffer_fn +inline cl_mem clCreateSubBuffer(cl_mem p0, cl_mem_flags p1, cl_buffer_create_type p2, const void* p3, cl_int* p4) { return clCreateSubBuffer_pfn(p0, p1, p2, p3, p4); } +#undef clCreateSubDevices +#define clCreateSubDevices clCreateSubDevices_fn +inline cl_int clCreateSubDevices(cl_device_id p0, const cl_device_partition_property* p1, cl_uint p2, cl_device_id* p3, cl_uint* p4) { return clCreateSubDevices_pfn(p0, p1, p2, p3, p4); } +#undef clCreateUserEvent +#define clCreateUserEvent clCreateUserEvent_fn +inline cl_event clCreateUserEvent(cl_context p0, cl_int* p1) { return clCreateUserEvent_pfn(p0, p1); } +#undef clEnqueueBarrier +#define clEnqueueBarrier clEnqueueBarrier_fn +inline cl_int clEnqueueBarrier(cl_command_queue p0) { return clEnqueueBarrier_pfn(p0); } +#undef clEnqueueBarrierWithWaitList +#define clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitList_fn +inline cl_int clEnqueueBarrierWithWaitList(cl_command_queue p0, cl_uint p1, const cl_event* p2, cl_event* p3) { return clEnqueueBarrierWithWaitList_pfn(p0, p1, p2, p3); } +#undef clEnqueueCopyBuffer +#define clEnqueueCopyBuffer clEnqueueCopyBuffer_fn +inline cl_int clEnqueueCopyBuffer(cl_command_queue p0, cl_mem p1, cl_mem p2, size_t p3, size_t p4, size_t p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueCopyBuffer_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueCopyBufferRect +#define clEnqueueCopyBufferRect clEnqueueCopyBufferRect_fn +inline cl_int clEnqueueCopyBufferRect(cl_command_queue p0, cl_mem p1, cl_mem p2, const size_t* p3, const size_t* p4, const size_t* p5, size_t p6, size_t p7, size_t p8, size_t p9, cl_uint p10, const cl_event* p11, cl_event* p12) { return clEnqueueCopyBufferRect_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); } +#undef clEnqueueCopyBufferToImage +#define clEnqueueCopyBufferToImage clEnqueueCopyBufferToImage_fn +inline cl_int clEnqueueCopyBufferToImage(cl_command_queue p0, cl_mem p1, cl_mem p2, size_t p3, const size_t* p4, const size_t* p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueCopyBufferToImage_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueCopyImage +#define clEnqueueCopyImage clEnqueueCopyImage_fn +inline cl_int clEnqueueCopyImage(cl_command_queue p0, cl_mem p1, cl_mem p2, const size_t* p3, const size_t* p4, const size_t* p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueCopyImage_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueCopyImageToBuffer +#define clEnqueueCopyImageToBuffer clEnqueueCopyImageToBuffer_fn +inline cl_int clEnqueueCopyImageToBuffer(cl_command_queue p0, cl_mem p1, cl_mem p2, const size_t* p3, const size_t* p4, size_t p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueCopyImageToBuffer_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueFillBuffer +#define clEnqueueFillBuffer clEnqueueFillBuffer_fn +inline cl_int clEnqueueFillBuffer(cl_command_queue p0, cl_mem p1, const void* p2, size_t p3, size_t p4, size_t p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueFillBuffer_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueFillImage +#define clEnqueueFillImage clEnqueueFillImage_fn +inline cl_int clEnqueueFillImage(cl_command_queue p0, cl_mem p1, const void* p2, const size_t* p3, const size_t* p4, cl_uint p5, const cl_event* p6, cl_event* p7) { return clEnqueueFillImage_pfn(p0, p1, p2, p3, p4, p5, p6, p7); } +#undef clEnqueueMapBuffer +#define clEnqueueMapBuffer clEnqueueMapBuffer_fn +inline void* clEnqueueMapBuffer(cl_command_queue p0, cl_mem p1, cl_bool p2, cl_map_flags p3, size_t p4, size_t p5, cl_uint p6, const cl_event* p7, cl_event* p8, cl_int* p9) { return clEnqueueMapBuffer_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } +#undef clEnqueueMapImage +#define clEnqueueMapImage clEnqueueMapImage_fn +inline void* clEnqueueMapImage(cl_command_queue p0, cl_mem p1, cl_bool p2, cl_map_flags p3, const size_t* p4, const size_t* p5, size_t* p6, size_t* p7, cl_uint p8, const cl_event* p9, cl_event* p10, cl_int* p11) { return clEnqueueMapImage_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); } +#undef clEnqueueMarker +#define clEnqueueMarker clEnqueueMarker_fn +inline cl_int clEnqueueMarker(cl_command_queue p0, cl_event* p1) { return clEnqueueMarker_pfn(p0, p1); } +#undef clEnqueueMarkerWithWaitList +#define clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitList_fn +inline cl_int clEnqueueMarkerWithWaitList(cl_command_queue p0, cl_uint p1, const cl_event* p2, cl_event* p3) { return clEnqueueMarkerWithWaitList_pfn(p0, p1, p2, p3); } +#undef clEnqueueMigrateMemObjects +#define clEnqueueMigrateMemObjects clEnqueueMigrateMemObjects_fn +inline cl_int clEnqueueMigrateMemObjects(cl_command_queue p0, cl_uint p1, const cl_mem* p2, cl_mem_migration_flags p3, cl_uint p4, const cl_event* p5, cl_event* p6) { return clEnqueueMigrateMemObjects_pfn(p0, p1, p2, p3, p4, p5, p6); } +#undef clEnqueueNDRangeKernel +#define clEnqueueNDRangeKernel clEnqueueNDRangeKernel_fn +inline cl_int clEnqueueNDRangeKernel(cl_command_queue p0, cl_kernel p1, cl_uint p2, const size_t* p3, const size_t* p4, const size_t* p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueNDRangeKernel_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueNativeKernel +#define clEnqueueNativeKernel clEnqueueNativeKernel_fn +inline cl_int clEnqueueNativeKernel(cl_command_queue p0, void (CL_CALLBACK*p1) (void*), void* p2, size_t p3, cl_uint p4, const cl_mem* p5, const void** p6, cl_uint p7, const cl_event* p8, cl_event* p9) { return clEnqueueNativeKernel_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } +#undef clEnqueueReadBuffer +#define clEnqueueReadBuffer clEnqueueReadBuffer_fn +inline cl_int clEnqueueReadBuffer(cl_command_queue p0, cl_mem p1, cl_bool p2, size_t p3, size_t p4, void* p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueReadBuffer_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueReadBufferRect +#define clEnqueueReadBufferRect clEnqueueReadBufferRect_fn +inline cl_int clEnqueueReadBufferRect(cl_command_queue p0, cl_mem p1, cl_bool p2, const size_t* p3, const size_t* p4, const size_t* p5, size_t p6, size_t p7, size_t p8, size_t p9, void* p10, cl_uint p11, const cl_event* p12, cl_event* p13) { return clEnqueueReadBufferRect_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } +#undef clEnqueueReadImage +#define clEnqueueReadImage clEnqueueReadImage_fn +inline cl_int clEnqueueReadImage(cl_command_queue p0, cl_mem p1, cl_bool p2, const size_t* p3, const size_t* p4, size_t p5, size_t p6, void* p7, cl_uint p8, const cl_event* p9, cl_event* p10) { return clEnqueueReadImage_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } +#undef clEnqueueTask +#define clEnqueueTask clEnqueueTask_fn +inline cl_int clEnqueueTask(cl_command_queue p0, cl_kernel p1, cl_uint p2, const cl_event* p3, cl_event* p4) { return clEnqueueTask_pfn(p0, p1, p2, p3, p4); } +#undef clEnqueueUnmapMemObject +#define clEnqueueUnmapMemObject clEnqueueUnmapMemObject_fn +inline cl_int clEnqueueUnmapMemObject(cl_command_queue p0, cl_mem p1, void* p2, cl_uint p3, const cl_event* p4, cl_event* p5) { return clEnqueueUnmapMemObject_pfn(p0, p1, p2, p3, p4, p5); } +#undef clEnqueueWaitForEvents +#define clEnqueueWaitForEvents clEnqueueWaitForEvents_fn +inline cl_int clEnqueueWaitForEvents(cl_command_queue p0, cl_uint p1, const cl_event* p2) { return clEnqueueWaitForEvents_pfn(p0, p1, p2); } +#undef clEnqueueWriteBuffer +#define clEnqueueWriteBuffer clEnqueueWriteBuffer_fn +inline cl_int clEnqueueWriteBuffer(cl_command_queue p0, cl_mem p1, cl_bool p2, size_t p3, size_t p4, const void* p5, cl_uint p6, const cl_event* p7, cl_event* p8) { return clEnqueueWriteBuffer_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clEnqueueWriteBufferRect +#define clEnqueueWriteBufferRect clEnqueueWriteBufferRect_fn +inline cl_int clEnqueueWriteBufferRect(cl_command_queue p0, cl_mem p1, cl_bool p2, const size_t* p3, const size_t* p4, const size_t* p5, size_t p6, size_t p7, size_t p8, size_t p9, const void* p10, cl_uint p11, const cl_event* p12, cl_event* p13) { return clEnqueueWriteBufferRect_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13); } +#undef clEnqueueWriteImage +#define clEnqueueWriteImage clEnqueueWriteImage_fn +inline cl_int clEnqueueWriteImage(cl_command_queue p0, cl_mem p1, cl_bool p2, const size_t* p3, const size_t* p4, size_t p5, size_t p6, const void* p7, cl_uint p8, const cl_event* p9, cl_event* p10) { return clEnqueueWriteImage_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); } +#undef clFinish +#define clFinish clFinish_fn +inline cl_int clFinish(cl_command_queue p0) { return clFinish_pfn(p0); } +#undef clFlush +#define clFlush clFlush_fn +inline cl_int clFlush(cl_command_queue p0) { return clFlush_pfn(p0); } +#undef clGetCommandQueueInfo +#define clGetCommandQueueInfo clGetCommandQueueInfo_fn +inline cl_int clGetCommandQueueInfo(cl_command_queue p0, cl_command_queue_info p1, size_t p2, void* p3, size_t* p4) { return clGetCommandQueueInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetContextInfo +#define clGetContextInfo clGetContextInfo_fn +inline cl_int clGetContextInfo(cl_context p0, cl_context_info p1, size_t p2, void* p3, size_t* p4) { return clGetContextInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetDeviceIDs +#define clGetDeviceIDs clGetDeviceIDs_fn +inline cl_int clGetDeviceIDs(cl_platform_id p0, cl_device_type p1, cl_uint p2, cl_device_id* p3, cl_uint* p4) { return clGetDeviceIDs_pfn(p0, p1, p2, p3, p4); } +#undef clGetDeviceInfo +#define clGetDeviceInfo clGetDeviceInfo_fn +inline cl_int clGetDeviceInfo(cl_device_id p0, cl_device_info p1, size_t p2, void* p3, size_t* p4) { return clGetDeviceInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetEventInfo +#define clGetEventInfo clGetEventInfo_fn +inline cl_int clGetEventInfo(cl_event p0, cl_event_info p1, size_t p2, void* p3, size_t* p4) { return clGetEventInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetEventProfilingInfo +#define clGetEventProfilingInfo clGetEventProfilingInfo_fn +inline cl_int clGetEventProfilingInfo(cl_event p0, cl_profiling_info p1, size_t p2, void* p3, size_t* p4) { return clGetEventProfilingInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetExtensionFunctionAddress +#define clGetExtensionFunctionAddress clGetExtensionFunctionAddress_fn +inline void* clGetExtensionFunctionAddress(const char* p0) { return clGetExtensionFunctionAddress_pfn(p0); } +#undef clGetExtensionFunctionAddressForPlatform +#define clGetExtensionFunctionAddressForPlatform clGetExtensionFunctionAddressForPlatform_fn +inline void* clGetExtensionFunctionAddressForPlatform(cl_platform_id p0, const char* p1) { return clGetExtensionFunctionAddressForPlatform_pfn(p0, p1); } +#undef clGetImageInfo +#define clGetImageInfo clGetImageInfo_fn +inline cl_int clGetImageInfo(cl_mem p0, cl_image_info p1, size_t p2, void* p3, size_t* p4) { return clGetImageInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetKernelArgInfo +#define clGetKernelArgInfo clGetKernelArgInfo_fn +inline cl_int clGetKernelArgInfo(cl_kernel p0, cl_uint p1, cl_kernel_arg_info p2, size_t p3, void* p4, size_t* p5) { return clGetKernelArgInfo_pfn(p0, p1, p2, p3, p4, p5); } +#undef clGetKernelInfo +#define clGetKernelInfo clGetKernelInfo_fn +inline cl_int clGetKernelInfo(cl_kernel p0, cl_kernel_info p1, size_t p2, void* p3, size_t* p4) { return clGetKernelInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetKernelWorkGroupInfo +#define clGetKernelWorkGroupInfo clGetKernelWorkGroupInfo_fn +inline cl_int clGetKernelWorkGroupInfo(cl_kernel p0, cl_device_id p1, cl_kernel_work_group_info p2, size_t p3, void* p4, size_t* p5) { return clGetKernelWorkGroupInfo_pfn(p0, p1, p2, p3, p4, p5); } +#undef clGetMemObjectInfo +#define clGetMemObjectInfo clGetMemObjectInfo_fn +inline cl_int clGetMemObjectInfo(cl_mem p0, cl_mem_info p1, size_t p2, void* p3, size_t* p4) { return clGetMemObjectInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetPlatformIDs +#define clGetPlatformIDs clGetPlatformIDs_fn +inline cl_int clGetPlatformIDs(cl_uint p0, cl_platform_id* p1, cl_uint* p2) { return clGetPlatformIDs_pfn(p0, p1, p2); } +#undef clGetPlatformInfo +#define clGetPlatformInfo clGetPlatformInfo_fn +inline cl_int clGetPlatformInfo(cl_platform_id p0, cl_platform_info p1, size_t p2, void* p3, size_t* p4) { return clGetPlatformInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetProgramBuildInfo +#define clGetProgramBuildInfo clGetProgramBuildInfo_fn +inline cl_int clGetProgramBuildInfo(cl_program p0, cl_device_id p1, cl_program_build_info p2, size_t p3, void* p4, size_t* p5) { return clGetProgramBuildInfo_pfn(p0, p1, p2, p3, p4, p5); } +#undef clGetProgramInfo +#define clGetProgramInfo clGetProgramInfo_fn +inline cl_int clGetProgramInfo(cl_program p0, cl_program_info p1, size_t p2, void* p3, size_t* p4) { return clGetProgramInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetSamplerInfo +#define clGetSamplerInfo clGetSamplerInfo_fn +inline cl_int clGetSamplerInfo(cl_sampler p0, cl_sampler_info p1, size_t p2, void* p3, size_t* p4) { return clGetSamplerInfo_pfn(p0, p1, p2, p3, p4); } +#undef clGetSupportedImageFormats +#define clGetSupportedImageFormats clGetSupportedImageFormats_fn +inline cl_int clGetSupportedImageFormats(cl_context p0, cl_mem_flags p1, cl_mem_object_type p2, cl_uint p3, cl_image_format* p4, cl_uint* p5) { return clGetSupportedImageFormats_pfn(p0, p1, p2, p3, p4, p5); } +#undef clLinkProgram +#define clLinkProgram clLinkProgram_fn +inline cl_program clLinkProgram(cl_context p0, cl_uint p1, const cl_device_id* p2, const char* p3, cl_uint p4, const cl_program* p5, void (CL_CALLBACK*p6) (cl_program, void*), void* p7, cl_int* p8) { return clLinkProgram_pfn(p0, p1, p2, p3, p4, p5, p6, p7, p8); } +#undef clReleaseCommandQueue +#define clReleaseCommandQueue clReleaseCommandQueue_fn +inline cl_int clReleaseCommandQueue(cl_command_queue p0) { return clReleaseCommandQueue_pfn(p0); } +#undef clReleaseContext +#define clReleaseContext clReleaseContext_fn +inline cl_int clReleaseContext(cl_context p0) { return clReleaseContext_pfn(p0); } +#undef clReleaseDevice +#define clReleaseDevice clReleaseDevice_fn +inline cl_int clReleaseDevice(cl_device_id p0) { return clReleaseDevice_pfn(p0); } +#undef clReleaseEvent +#define clReleaseEvent clReleaseEvent_fn +inline cl_int clReleaseEvent(cl_event p0) { return clReleaseEvent_pfn(p0); } +#undef clReleaseKernel +#define clReleaseKernel clReleaseKernel_fn +inline cl_int clReleaseKernel(cl_kernel p0) { return clReleaseKernel_pfn(p0); } +#undef clReleaseMemObject +#define clReleaseMemObject clReleaseMemObject_fn +inline cl_int clReleaseMemObject(cl_mem p0) { return clReleaseMemObject_pfn(p0); } +#undef clReleaseProgram +#define clReleaseProgram clReleaseProgram_fn +inline cl_int clReleaseProgram(cl_program p0) { return clReleaseProgram_pfn(p0); } +#undef clReleaseSampler +#define clReleaseSampler clReleaseSampler_fn +inline cl_int clReleaseSampler(cl_sampler p0) { return clReleaseSampler_pfn(p0); } +#undef clRetainCommandQueue +#define clRetainCommandQueue clRetainCommandQueue_fn +inline cl_int clRetainCommandQueue(cl_command_queue p0) { return clRetainCommandQueue_pfn(p0); } +#undef clRetainContext +#define clRetainContext clRetainContext_fn +inline cl_int clRetainContext(cl_context p0) { return clRetainContext_pfn(p0); } +#undef clRetainDevice +#define clRetainDevice clRetainDevice_fn +inline cl_int clRetainDevice(cl_device_id p0) { return clRetainDevice_pfn(p0); } +#undef clRetainEvent +#define clRetainEvent clRetainEvent_fn +inline cl_int clRetainEvent(cl_event p0) { return clRetainEvent_pfn(p0); } +#undef clRetainKernel +#define clRetainKernel clRetainKernel_fn +inline cl_int clRetainKernel(cl_kernel p0) { return clRetainKernel_pfn(p0); } +#undef clRetainMemObject +#define clRetainMemObject clRetainMemObject_fn +inline cl_int clRetainMemObject(cl_mem p0) { return clRetainMemObject_pfn(p0); } +#undef clRetainProgram +#define clRetainProgram clRetainProgram_fn +inline cl_int clRetainProgram(cl_program p0) { return clRetainProgram_pfn(p0); } +#undef clRetainSampler +#define clRetainSampler clRetainSampler_fn +inline cl_int clRetainSampler(cl_sampler p0) { return clRetainSampler_pfn(p0); } +#undef clSetEventCallback +#define clSetEventCallback clSetEventCallback_fn +inline cl_int clSetEventCallback(cl_event p0, cl_int p1, void (CL_CALLBACK*p2) (cl_event, cl_int, void*), void* p3) { return clSetEventCallback_pfn(p0, p1, p2, p3); } +#undef clSetKernelArg +#define clSetKernelArg clSetKernelArg_fn +inline cl_int clSetKernelArg(cl_kernel p0, cl_uint p1, size_t p2, const void* p3) { return clSetKernelArg_pfn(p0, p1, p2, p3); } +#undef clSetMemObjectDestructorCallback +#define clSetMemObjectDestructorCallback clSetMemObjectDestructorCallback_fn +inline cl_int clSetMemObjectDestructorCallback(cl_mem p0, void (CL_CALLBACK*p1) (cl_mem, void*), void* p2) { return clSetMemObjectDestructorCallback_pfn(p0, p1, p2); } +#undef clSetUserEventStatus +#define clSetUserEventStatus clSetUserEventStatus_fn +inline cl_int clSetUserEventStatus(cl_event p0, cl_int p1) { return clSetUserEventStatus_pfn(p0, p1); } +#undef clUnloadCompiler +#define clUnloadCompiler clUnloadCompiler_fn +inline cl_int clUnloadCompiler() { return clUnloadCompiler_pfn(); } +#undef clUnloadPlatformCompiler +#define clUnloadPlatformCompiler clUnloadPlatformCompiler_fn +inline cl_int clUnloadPlatformCompiler(cl_platform_id p0) { return clUnloadPlatformCompiler_pfn(p0); } +#undef clWaitForEvents +#define clWaitForEvents clWaitForEvents_fn +inline cl_int clWaitForEvents(cl_uint p0, const cl_event* p1) { return clWaitForEvents_pfn(p0, p1); } diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp new file mode 100644 index 000000000..0b12aed6c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp @@ -0,0 +1,62 @@ +// +// AUTOGENERATED, DO NOT EDIT +// +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_HPP +#error "Invalid usage" +#endif + +// generated by parser_cl.py +#define clCreateFromGLBuffer clCreateFromGLBuffer_ +#define clCreateFromGLRenderbuffer clCreateFromGLRenderbuffer_ +#define clCreateFromGLTexture clCreateFromGLTexture_ +#define clCreateFromGLTexture2D clCreateFromGLTexture2D_ +#define clCreateFromGLTexture3D clCreateFromGLTexture3D_ +#define clEnqueueAcquireGLObjects clEnqueueAcquireGLObjects_ +#define clEnqueueReleaseGLObjects clEnqueueReleaseGLObjects_ +#define clGetGLContextInfoKHR clGetGLContextInfoKHR_ +#define clGetGLObjectInfo clGetGLObjectInfo_ +#define clGetGLTextureInfo clGetGLTextureInfo_ + +#if defined __APPLE__ +#include +#else +#include +#endif + +// generated by parser_cl.py +#undef clCreateFromGLBuffer +#define clCreateFromGLBuffer clCreateFromGLBuffer_pfn +#undef clCreateFromGLRenderbuffer +#define clCreateFromGLRenderbuffer clCreateFromGLRenderbuffer_pfn +#undef clCreateFromGLTexture +#define clCreateFromGLTexture clCreateFromGLTexture_pfn +#undef clCreateFromGLTexture2D +#define clCreateFromGLTexture2D clCreateFromGLTexture2D_pfn +#undef clCreateFromGLTexture3D +#define clCreateFromGLTexture3D clCreateFromGLTexture3D_pfn +#undef clEnqueueAcquireGLObjects +#define clEnqueueAcquireGLObjects clEnqueueAcquireGLObjects_pfn +#undef clEnqueueReleaseGLObjects +#define clEnqueueReleaseGLObjects clEnqueueReleaseGLObjects_pfn +#undef clGetGLContextInfoKHR +#define clGetGLContextInfoKHR clGetGLContextInfoKHR_pfn +#undef clGetGLObjectInfo +#define clGetGLObjectInfo clGetGLObjectInfo_pfn +#undef clGetGLTextureInfo +#define clGetGLTextureInfo clGetGLTextureInfo_pfn + +#ifdef cl_khr_gl_sharing + +// generated by parser_cl.py +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateFromGLBuffer)(cl_context, cl_mem_flags, cl_GLuint, int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateFromGLRenderbuffer)(cl_context, cl_mem_flags, cl_GLuint, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateFromGLTexture)(cl_context, cl_mem_flags, cl_GLenum, cl_GLint, cl_GLuint, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateFromGLTexture2D)(cl_context, cl_mem_flags, cl_GLenum, cl_GLint, cl_GLuint, cl_int*); +extern CL_RUNTIME_EXPORT cl_mem (CL_API_CALL*clCreateFromGLTexture3D)(cl_context, cl_mem_flags, cl_GLenum, cl_GLint, cl_GLuint, cl_int*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueAcquireGLObjects)(cl_command_queue, cl_uint, const cl_mem*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clEnqueueReleaseGLObjects)(cl_command_queue, cl_uint, const cl_mem*, cl_uint, const cl_event*, cl_event*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetGLContextInfoKHR)(const cl_context_properties*, cl_gl_context_info, size_t, void*, size_t*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetGLObjectInfo)(cl_mem, cl_gl_object_type*, cl_GLuint*); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL*clGetGLTextureInfo)(cl_mem, cl_gl_texture_info, size_t, void*, size_t*); + +#endif // cl_khr_gl_sharing diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp new file mode 100644 index 000000000..12f342b2e --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp @@ -0,0 +1,42 @@ +// +// AUTOGENERATED, DO NOT EDIT +// +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_WRAPPERS_HPP +#error "Invalid usage" +#endif + +#ifdef cl_khr_gl_sharing + +// generated by parser_cl.py +#undef clCreateFromGLBuffer +#define clCreateFromGLBuffer clCreateFromGLBuffer_fn +inline cl_mem clCreateFromGLBuffer(cl_context p0, cl_mem_flags p1, cl_GLuint p2, int* p3) { return clCreateFromGLBuffer_pfn(p0, p1, p2, p3); } +#undef clCreateFromGLRenderbuffer +#define clCreateFromGLRenderbuffer clCreateFromGLRenderbuffer_fn +inline cl_mem clCreateFromGLRenderbuffer(cl_context p0, cl_mem_flags p1, cl_GLuint p2, cl_int* p3) { return clCreateFromGLRenderbuffer_pfn(p0, p1, p2, p3); } +#undef clCreateFromGLTexture +#define clCreateFromGLTexture clCreateFromGLTexture_fn +inline cl_mem clCreateFromGLTexture(cl_context p0, cl_mem_flags p1, cl_GLenum p2, cl_GLint p3, cl_GLuint p4, cl_int* p5) { return clCreateFromGLTexture_pfn(p0, p1, p2, p3, p4, p5); } +#undef clCreateFromGLTexture2D +#define clCreateFromGLTexture2D clCreateFromGLTexture2D_fn +inline cl_mem clCreateFromGLTexture2D(cl_context p0, cl_mem_flags p1, cl_GLenum p2, cl_GLint p3, cl_GLuint p4, cl_int* p5) { return clCreateFromGLTexture2D_pfn(p0, p1, p2, p3, p4, p5); } +#undef clCreateFromGLTexture3D +#define clCreateFromGLTexture3D clCreateFromGLTexture3D_fn +inline cl_mem clCreateFromGLTexture3D(cl_context p0, cl_mem_flags p1, cl_GLenum p2, cl_GLint p3, cl_GLuint p4, cl_int* p5) { return clCreateFromGLTexture3D_pfn(p0, p1, p2, p3, p4, p5); } +#undef clEnqueueAcquireGLObjects +#define clEnqueueAcquireGLObjects clEnqueueAcquireGLObjects_fn +inline cl_int clEnqueueAcquireGLObjects(cl_command_queue p0, cl_uint p1, const cl_mem* p2, cl_uint p3, const cl_event* p4, cl_event* p5) { return clEnqueueAcquireGLObjects_pfn(p0, p1, p2, p3, p4, p5); } +#undef clEnqueueReleaseGLObjects +#define clEnqueueReleaseGLObjects clEnqueueReleaseGLObjects_fn +inline cl_int clEnqueueReleaseGLObjects(cl_command_queue p0, cl_uint p1, const cl_mem* p2, cl_uint p3, const cl_event* p4, cl_event* p5) { return clEnqueueReleaseGLObjects_pfn(p0, p1, p2, p3, p4, p5); } +#undef clGetGLContextInfoKHR +#define clGetGLContextInfoKHR clGetGLContextInfoKHR_fn +inline cl_int clGetGLContextInfoKHR(const cl_context_properties* p0, cl_gl_context_info p1, size_t p2, void* p3, size_t* p4) { return clGetGLContextInfoKHR_pfn(p0, p1, p2, p3, p4); } +#undef clGetGLObjectInfo +#define clGetGLObjectInfo clGetGLObjectInfo_fn +inline cl_int clGetGLObjectInfo(cl_mem p0, cl_gl_object_type* p1, cl_GLuint* p2) { return clGetGLObjectInfo_pfn(p0, p1, p2); } +#undef clGetGLTextureInfo +#define clGetGLTextureInfo clGetGLTextureInfo_fn +inline cl_int clGetGLTextureInfo(cl_mem p0, cl_gl_texture_info p1, size_t p2, void* p3, size_t* p4) { return clGetGLTextureInfo_pfn(p0, p1, p2, p3, p4); } + +#endif // cl_khr_gl_sharing diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp new file mode 100644 index 000000000..2ad8ac0b5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp @@ -0,0 +1,53 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the OpenCV Foundation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OCL_RUNTIME_CLAMDBLAS_HPP +#define OPENCV_CORE_OCL_RUNTIME_CLAMDBLAS_HPP + +#ifdef HAVE_CLAMDBLAS + +#include "opencl_core.hpp" + +#include "autogenerated/opencl_clamdblas.hpp" + +#endif // HAVE_CLAMDBLAS + +#endif // OPENCV_CORE_OCL_RUNTIME_CLAMDBLAS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp new file mode 100644 index 000000000..a328f722f --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp @@ -0,0 +1,53 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the OpenCV Foundation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OCL_RUNTIME_CLAMDFFT_HPP +#define OPENCV_CORE_OCL_RUNTIME_CLAMDFFT_HPP + +#ifdef HAVE_CLAMDFFT + +#include "opencl_core.hpp" + +#include "autogenerated/opencl_clamdfft.hpp" + +#endif // HAVE_CLAMDFFT + +#endif // OPENCV_CORE_OCL_RUNTIME_CLAMDFFT_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_core.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_core.hpp new file mode 100644 index 000000000..0404b3177 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_core.hpp @@ -0,0 +1,84 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the OpenCV Foundation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_CORE_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_CORE_HPP + +#ifdef HAVE_OPENCL + +#ifndef CL_RUNTIME_EXPORT +#if (defined(BUILD_SHARED_LIBS) || defined(OPENCV_CORE_SHARED)) && (defined _WIN32 || defined WINCE) && \ + !(defined(__OPENCV_BUILD) && defined(OPENCV_MODULE_IS_PART_OF_WORLD)) +#define CL_RUNTIME_EXPORT __declspec(dllimport) +#else +#define CL_RUNTIME_EXPORT +#endif +#endif + +#ifdef HAVE_OPENCL_SVM +#define clSVMAlloc clSVMAlloc_ +#define clSVMFree clSVMFree_ +#define clSetKernelArgSVMPointer clSetKernelArgSVMPointer_ +#define clSetKernelExecInfo clSetKernelExecInfo_ +#define clEnqueueSVMFree clEnqueueSVMFree_ +#define clEnqueueSVMMemcpy clEnqueueSVMMemcpy_ +#define clEnqueueSVMMemFill clEnqueueSVMMemFill_ +#define clEnqueueSVMMap clEnqueueSVMMap_ +#define clEnqueueSVMUnmap clEnqueueSVMUnmap_ +#endif + +#include "autogenerated/opencl_core.hpp" + +#ifndef CL_DEVICE_DOUBLE_FP_CONFIG +#define CL_DEVICE_DOUBLE_FP_CONFIG 0x1032 +#endif + +#ifndef CL_DEVICE_HALF_FP_CONFIG +#define CL_DEVICE_HALF_FP_CONFIG 0x1033 +#endif + +#ifndef CL_VERSION_1_2 +#define CV_REQUIRE_OPENCL_1_2_ERROR CV_Error(cv::Error::OpenCLApiCallError, "OpenCV compiled without OpenCL v1.2 support, so we can't use functionality from OpenCL v1.2") +#endif + +#endif // HAVE_OPENCL + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_CORE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp new file mode 100644 index 000000000..38fcae995 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp @@ -0,0 +1,47 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the OpenCV Foundation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_WRAPPERS_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_WRAPPERS_HPP + +#include "autogenerated/opencl_core_wrappers.hpp" + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_WRAPPERS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_gl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_gl.hpp new file mode 100644 index 000000000..659c7d805 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_gl.hpp @@ -0,0 +1,53 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the OpenCV Foundation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_HPP + +#if defined HAVE_OPENCL && defined HAVE_OPENGL + +#include "opencl_core.hpp" + +#include "autogenerated/opencl_gl.hpp" + +#endif // defined HAVE_OPENCL && defined HAVE_OPENGL + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp new file mode 100644 index 000000000..9700004ca --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp @@ -0,0 +1,47 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the OpenCV Foundation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_WRAPPERS_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_WRAPPERS_HPP + +#include "autogenerated/opencl_gl_wrappers.hpp" + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_GL_WRAPPERS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp new file mode 100644 index 000000000..9636b19b0 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp @@ -0,0 +1,48 @@ +/* See LICENSE file in the root OpenCV directory */ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_2_0_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_2_0_HPP + +#if defined(HAVE_OPENCL_SVM) +#include "opencl_core.hpp" + +#include "opencl_svm_definitions.hpp" + +#undef clSVMAlloc +#define clSVMAlloc clSVMAlloc_pfn +#undef clSVMFree +#define clSVMFree clSVMFree_pfn +#undef clSetKernelArgSVMPointer +#define clSetKernelArgSVMPointer clSetKernelArgSVMPointer_pfn +#undef clSetKernelExecInfo +//#define clSetKernelExecInfo clSetKernelExecInfo_pfn +#undef clEnqueueSVMFree +//#define clEnqueueSVMFree clEnqueueSVMFree_pfn +#undef clEnqueueSVMMemcpy +#define clEnqueueSVMMemcpy clEnqueueSVMMemcpy_pfn +#undef clEnqueueSVMMemFill +#define clEnqueueSVMMemFill clEnqueueSVMMemFill_pfn +#undef clEnqueueSVMMap +#define clEnqueueSVMMap clEnqueueSVMMap_pfn +#undef clEnqueueSVMUnmap +#define clEnqueueSVMUnmap clEnqueueSVMUnmap_pfn + +extern CL_RUNTIME_EXPORT void* (CL_API_CALL *clSVMAlloc)(cl_context context, cl_svm_mem_flags flags, size_t size, unsigned int alignment); +extern CL_RUNTIME_EXPORT void (CL_API_CALL *clSVMFree)(cl_context context, void* svm_pointer); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL *clSetKernelArgSVMPointer)(cl_kernel kernel, cl_uint arg_index, const void* arg_value); +//extern CL_RUNTIME_EXPORT void* (CL_API_CALL *clSetKernelExecInfo)(cl_kernel kernel, cl_kernel_exec_info param_name, size_t param_value_size, const void* param_value); +//extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL *clEnqueueSVMFree)(cl_command_queue command_queue, cl_uint num_svm_pointers, void* svm_pointers[], +// void (CL_CALLBACK *pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void* svm_pointers[], void* user_data), void* user_data, +// cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL *clEnqueueSVMMemcpy)(cl_command_queue command_queue, cl_bool blocking_copy, void* dst_ptr, const void* src_ptr, size_t size, + cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL *clEnqueueSVMMemFill)(cl_command_queue command_queue, void* svm_ptr, const void* pattern, size_t pattern_size, size_t size, + cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL *clEnqueueSVMMap)(cl_command_queue command_queue, cl_bool blocking_map, cl_map_flags map_flags, void* svm_ptr, size_t size, + cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); +extern CL_RUNTIME_EXPORT cl_int (CL_API_CALL *clEnqueueSVMUnmap)(cl_command_queue command_queue, void* svm_ptr, + cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event); + +#endif // HAVE_OPENCL_SVM + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_2_0_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp new file mode 100644 index 000000000..97c927b44 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp @@ -0,0 +1,42 @@ +/* See LICENSE file in the root OpenCV directory */ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_DEFINITIONS_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_DEFINITIONS_HPP + +#if defined(HAVE_OPENCL_SVM) +#if defined(CL_VERSION_2_0) + +// OpenCL 2.0 contains SVM definitions + +#else + +typedef cl_bitfield cl_device_svm_capabilities; +typedef cl_bitfield cl_svm_mem_flags; +typedef cl_uint cl_kernel_exec_info; + +// +// TODO Add real values after OpenCL 2.0 release +// + +#ifndef CL_DEVICE_SVM_CAPABILITIES +#define CL_DEVICE_SVM_CAPABILITIES 0x1053 + +#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER (1 << 0) +#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER (1 << 1) +#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM (1 << 2) +#define CL_DEVICE_SVM_ATOMICS (1 << 3) +#endif + +#ifndef CL_MEM_SVM_FINE_GRAIN_BUFFER +#define CL_MEM_SVM_FINE_GRAIN_BUFFER (1 << 10) +#endif + +#ifndef CL_MEM_SVM_ATOMICS +#define CL_MEM_SVM_ATOMICS (1 << 11) +#endif + + +#endif // CL_VERSION_2_0 +#endif // HAVE_OPENCL_SVM + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_DEFINITIONS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp new file mode 100644 index 000000000..497bc3de7 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp @@ -0,0 +1,166 @@ +/* See LICENSE file in the root OpenCV directory */ + +#ifndef OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_HSA_EXTENSION_HPP +#define OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_HSA_EXTENSION_HPP + +#if defined(HAVE_OPENCL_SVM) +#include "opencl_core.hpp" + +#ifndef CL_DEVICE_SVM_CAPABILITIES_AMD +// +// Part of the file is an extract from the cl_ext.h file from AMD APP SDK package. +// Below is the original copyright. +// +/******************************************************************************* + * Copyright (c) 2008-2013 The Khronos Group Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Materials. + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + ******************************************************************************/ + +/******************************************* + * Shared Virtual Memory (SVM) extension + *******************************************/ +typedef cl_bitfield cl_device_svm_capabilities_amd; +typedef cl_bitfield cl_svm_mem_flags_amd; +typedef cl_uint cl_kernel_exec_info_amd; + +/* cl_device_info */ +#define CL_DEVICE_SVM_CAPABILITIES_AMD 0x1053 +#define CL_DEVICE_PREFERRED_PLATFORM_ATOMIC_ALIGNMENT_AMD 0x1054 + +/* cl_device_svm_capabilities_amd */ +#define CL_DEVICE_SVM_COARSE_GRAIN_BUFFER_AMD (1 << 0) +#define CL_DEVICE_SVM_FINE_GRAIN_BUFFER_AMD (1 << 1) +#define CL_DEVICE_SVM_FINE_GRAIN_SYSTEM_AMD (1 << 2) +#define CL_DEVICE_SVM_ATOMICS_AMD (1 << 3) + +/* cl_svm_mem_flags_amd */ +#define CL_MEM_SVM_FINE_GRAIN_BUFFER_AMD (1 << 10) +#define CL_MEM_SVM_ATOMICS_AMD (1 << 11) + +/* cl_mem_info */ +#define CL_MEM_USES_SVM_POINTER_AMD 0x1109 + +/* cl_kernel_exec_info_amd */ +#define CL_KERNEL_EXEC_INFO_SVM_PTRS_AMD 0x11B6 +#define CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM_AMD 0x11B7 + +/* cl_command_type */ +#define CL_COMMAND_SVM_FREE_AMD 0x1209 +#define CL_COMMAND_SVM_MEMCPY_AMD 0x120A +#define CL_COMMAND_SVM_MEMFILL_AMD 0x120B +#define CL_COMMAND_SVM_MAP_AMD 0x120C +#define CL_COMMAND_SVM_UNMAP_AMD 0x120D + +typedef CL_API_ENTRY void* +(CL_API_CALL * clSVMAllocAMD_fn)( + cl_context /* context */, + cl_svm_mem_flags_amd /* flags */, + size_t /* size */, + unsigned int /* alignment */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY void +(CL_API_CALL * clSVMFreeAMD_fn)( + cl_context /* context */, + void* /* svm_pointer */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueSVMFreeAMD_fn)( + cl_command_queue /* command_queue */, + cl_uint /* num_svm_pointers */, + void** /* svm_pointers */, + void (CL_CALLBACK *)( /*pfn_free_func*/ + cl_command_queue /* queue */, + cl_uint /* num_svm_pointers */, + void** /* svm_pointers */, + void* /* user_data */), + void* /* user_data */, + cl_uint /* num_events_in_wait_list */, + const cl_event* /* event_wait_list */, + cl_event* /* event */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueSVMMemcpyAMD_fn)( + cl_command_queue /* command_queue */, + cl_bool /* blocking_copy */, + void* /* dst_ptr */, + const void* /* src_ptr */, + size_t /* size */, + cl_uint /* num_events_in_wait_list */, + const cl_event* /* event_wait_list */, + cl_event* /* event */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueSVMMemFillAMD_fn)( + cl_command_queue /* command_queue */, + void* /* svm_ptr */, + const void* /* pattern */, + size_t /* pattern_size */, + size_t /* size */, + cl_uint /* num_events_in_wait_list */, + const cl_event* /* event_wait_list */, + cl_event* /* event */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueSVMMapAMD_fn)( + cl_command_queue /* command_queue */, + cl_bool /* blocking_map */, + cl_map_flags /* map_flags */, + void* /* svm_ptr */, + size_t /* size */, + cl_uint /* num_events_in_wait_list */, + const cl_event* /* event_wait_list */, + cl_event* /* event */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clEnqueueSVMUnmapAMD_fn)( + cl_command_queue /* command_queue */, + void* /* svm_ptr */, + cl_uint /* num_events_in_wait_list */, + const cl_event* /* event_wait_list */, + cl_event* /* event */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clSetKernelArgSVMPointerAMD_fn)( + cl_kernel /* kernel */, + cl_uint /* arg_index */, + const void * /* arg_value */ +) CL_EXT_SUFFIX__VERSION_1_2; + +typedef CL_API_ENTRY cl_int +(CL_API_CALL * clSetKernelExecInfoAMD_fn)( + cl_kernel /* kernel */, + cl_kernel_exec_info_amd /* param_name */, + size_t /* param_value_size */, + const void * /* param_value */ +) CL_EXT_SUFFIX__VERSION_1_2; + +#endif + +#endif // HAVE_OPENCL_SVM + +#endif // OPENCV_CORE_OCL_RUNTIME_OPENCL_SVM_HSA_EXTENSION_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/opengl.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/opengl.hpp similarity index 99% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/opengl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/opengl.hpp index 8b63d6c91..a311ce252 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/opengl.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/opengl.hpp @@ -245,7 +245,7 @@ class CV_EXPORTS Buffer /** @brief Maps OpenGL buffer to CUDA device memory. - This operatation doesn't copy data. Several buffer objects can be mapped to CUDA memory at a time. + This operation doesn't copy data. Several buffer objects can be mapped to CUDA memory at a time. A mapped data store must be unmapped with ogl::Buffer::unmapDevice before its buffer object is used. */ @@ -548,7 +548,7 @@ calling unmapGLBuffer() function. @param accessFlags - data access flags (ACCESS_READ|ACCESS_WRITE). @return Returns UMat object */ -CV_EXPORTS UMat mapGLBuffer(const Buffer& buffer, int accessFlags = ACCESS_READ|ACCESS_WRITE); +CV_EXPORTS UMat mapGLBuffer(const Buffer& buffer, AccessFlag accessFlags = ACCESS_READ | ACCESS_WRITE); /** @brief Unmaps Buffer object (releases UMat, previously mapped from Buffer). @@ -558,13 +558,11 @@ by the call to mapGLBuffer() function. */ CV_EXPORTS void unmapGLBuffer(UMat& u); +//! @} }} // namespace cv::ogl namespace cv { namespace cuda { -//! @addtogroup cuda -//! @{ - /** @brief Sets a CUDA device and initializes it for the current thread with OpenGL interoperability. This function should be explicitly called after OpenGL context creation and before any CUDA calls. @@ -573,8 +571,6 @@ This function should be explicitly called after OpenGL context creation and befo */ CV_EXPORTS void setGlDevice(int device = 0); -//! @} - }} //! @cond IGNORED diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/operations.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/operations.hpp new file mode 100644 index 000000000..0e0db4072 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/operations.hpp @@ -0,0 +1,590 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_OPERATIONS_HPP +#define OPENCV_CORE_OPERATIONS_HPP + +#ifndef __cplusplus +# error operations.hpp header must be compiled as C++ +#endif + +#include + +#if defined(__GNUC__) || defined(__clang__) // at least GCC 3.1+, clang 3.5+ +# define CV_FORMAT_PRINTF(string_idx, first_to_check) __attribute__ ((format (printf, string_idx, first_to_check))) +#else +# define CV_FORMAT_PRINTF(A, B) +#endif + +//! @cond IGNORED + +namespace cv +{ + +////////////////////////////// Matx methods depending on core API ///////////////////////////// + +namespace internal +{ + +template struct Matx_FastInvOp +{ + bool operator()(const Matx<_Tp, m, n>& a, Matx<_Tp, n, m>& b, int method) const + { + return invert(a, b, method) != 0; + } +}; + +template struct Matx_FastInvOp<_Tp, m, m> +{ + bool operator()(const Matx<_Tp, m, m>& a, Matx<_Tp, m, m>& b, int method) const + { + if (method == DECOMP_LU || method == DECOMP_CHOLESKY) + { + Matx<_Tp, m, m> temp = a; + + // assume that b is all 0's on input => make it a unity matrix + for (int i = 0; i < m; i++) + b(i, i) = (_Tp)1; + + if (method == DECOMP_CHOLESKY) + return Cholesky(temp.val, m*sizeof(_Tp), m, b.val, m*sizeof(_Tp), m); + + return LU(temp.val, m*sizeof(_Tp), m, b.val, m*sizeof(_Tp), m) != 0; + } + else + { + return invert(a, b, method) != 0; + } + } +}; + +template struct Matx_FastInvOp<_Tp, 2, 2> +{ + bool operator()(const Matx<_Tp, 2, 2>& a, Matx<_Tp, 2, 2>& b, int /*method*/) const + { + _Tp d = (_Tp)determinant(a); + if (d == 0) + return false; + d = 1/d; + b(1,1) = a(0,0)*d; + b(0,0) = a(1,1)*d; + b(0,1) = -a(0,1)*d; + b(1,0) = -a(1,0)*d; + return true; + } +}; + +template struct Matx_FastInvOp<_Tp, 3, 3> +{ + bool operator()(const Matx<_Tp, 3, 3>& a, Matx<_Tp, 3, 3>& b, int /*method*/) const + { + _Tp d = (_Tp)determinant(a); + if (d == 0) + return false; + d = 1/d; + b(0,0) = (a(1,1) * a(2,2) - a(1,2) * a(2,1)) * d; + b(0,1) = (a(0,2) * a(2,1) - a(0,1) * a(2,2)) * d; + b(0,2) = (a(0,1) * a(1,2) - a(0,2) * a(1,1)) * d; + + b(1,0) = (a(1,2) * a(2,0) - a(1,0) * a(2,2)) * d; + b(1,1) = (a(0,0) * a(2,2) - a(0,2) * a(2,0)) * d; + b(1,2) = (a(0,2) * a(1,0) - a(0,0) * a(1,2)) * d; + + b(2,0) = (a(1,0) * a(2,1) - a(1,1) * a(2,0)) * d; + b(2,1) = (a(0,1) * a(2,0) - a(0,0) * a(2,1)) * d; + b(2,2) = (a(0,0) * a(1,1) - a(0,1) * a(1,0)) * d; + return true; + } +}; + + +template struct Matx_FastSolveOp +{ + bool operator()(const Matx<_Tp, m, l>& a, const Matx<_Tp, m, n>& b, + Matx<_Tp, l, n>& x, int method) const + { + return cv::solve(a, b, x, method); + } +}; + +template struct Matx_FastSolveOp<_Tp, m, m, n> +{ + bool operator()(const Matx<_Tp, m, m>& a, const Matx<_Tp, m, n>& b, + Matx<_Tp, m, n>& x, int method) const + { + if (method == DECOMP_LU || method == DECOMP_CHOLESKY) + { + Matx<_Tp, m, m> temp = a; + x = b; + if( method == DECOMP_CHOLESKY ) + return Cholesky(temp.val, m*sizeof(_Tp), m, x.val, n*sizeof(_Tp), n); + + return LU(temp.val, m*sizeof(_Tp), m, x.val, n*sizeof(_Tp), n) != 0; + } + else + { + return cv::solve(a, b, x, method); + } + } +}; + +template struct Matx_FastSolveOp<_Tp, 2, 2, 1> +{ + bool operator()(const Matx<_Tp, 2, 2>& a, const Matx<_Tp, 2, 1>& b, + Matx<_Tp, 2, 1>& x, int) const + { + _Tp d = (_Tp)determinant(a); + if (d == 0) + return false; + d = 1/d; + x(0) = (b(0)*a(1,1) - b(1)*a(0,1))*d; + x(1) = (b(1)*a(0,0) - b(0)*a(1,0))*d; + return true; + } +}; + +template struct Matx_FastSolveOp<_Tp, 3, 3, 1> +{ + bool operator()(const Matx<_Tp, 3, 3>& a, const Matx<_Tp, 3, 1>& b, + Matx<_Tp, 3, 1>& x, int) const + { + _Tp d = (_Tp)determinant(a); + if (d == 0) + return false; + d = 1/d; + x(0) = d*(b(0)*(a(1,1)*a(2,2) - a(1,2)*a(2,1)) - + a(0,1)*(b(1)*a(2,2) - a(1,2)*b(2)) + + a(0,2)*(b(1)*a(2,1) - a(1,1)*b(2))); + + x(1) = d*(a(0,0)*(b(1)*a(2,2) - a(1,2)*b(2)) - + b(0)*(a(1,0)*a(2,2) - a(1,2)*a(2,0)) + + a(0,2)*(a(1,0)*b(2) - b(1)*a(2,0))); + + x(2) = d*(a(0,0)*(a(1,1)*b(2) - b(1)*a(2,1)) - + a(0,1)*(a(1,0)*b(2) - b(1)*a(2,0)) + + b(0)*(a(1,0)*a(2,1) - a(1,1)*a(2,0))); + return true; + } +}; + +} // internal + +template inline +Matx<_Tp,m,n> Matx<_Tp,m,n>::randu(_Tp a, _Tp b) +{ + Matx<_Tp,m,n> M; + cv::randu(M, Scalar(a), Scalar(b)); + return M; +} + +template inline +Matx<_Tp,m,n> Matx<_Tp,m,n>::randn(_Tp a, _Tp b) +{ + Matx<_Tp,m,n> M; + cv::randn(M, Scalar(a), Scalar(b)); + return M; +} + +template inline +Matx<_Tp, n, m> Matx<_Tp, m, n>::inv(int method, bool *p_is_ok /*= NULL*/) const +{ + Matx<_Tp, n, m> b; + bool ok = cv::internal::Matx_FastInvOp<_Tp, m, n>()(*this, b, method); + if (p_is_ok) *p_is_ok = ok; + return ok ? b : Matx<_Tp, n, m>::zeros(); +} + +template template inline +Matx<_Tp, n, l> Matx<_Tp, m, n>::solve(const Matx<_Tp, m, l>& rhs, int method) const +{ + Matx<_Tp, n, l> x; + bool ok = cv::internal::Matx_FastSolveOp<_Tp, m, n, l>()(*this, rhs, x, method); + return ok ? x : Matx<_Tp, n, l>::zeros(); +} + + + +////////////////////////// Augmenting algebraic & logical operations ////////////////////////// + +#define CV_MAT_AUG_OPERATOR1(op, cvop, A, B) \ + static inline A& operator op (A& a, const B& b) { cvop; return a; } + +#define CV_MAT_AUG_OPERATOR(op, cvop, A, B) \ + CV_MAT_AUG_OPERATOR1(op, cvop, A, B) \ + CV_MAT_AUG_OPERATOR1(op, cvop, const A, B) + +#define CV_MAT_AUG_OPERATOR_T(op, cvop, A, B) \ + template CV_MAT_AUG_OPERATOR1(op, cvop, A, B) \ + template CV_MAT_AUG_OPERATOR1(op, cvop, const A, B) + +#define CV_MAT_AUG_OPERATOR_TN(op, cvop, A) \ + template static inline A& operator op (A& a, const Matx<_Tp,m,n>& b) { cvop; return a; } \ + template static inline const A& operator op (const A& a, const Matx<_Tp,m,n>& b) { cvop; return a; } + +CV_MAT_AUG_OPERATOR (+=, cv::add(a,b,a), Mat, Mat) +CV_MAT_AUG_OPERATOR (+=, cv::add(a,b,a), Mat, Scalar) +CV_MAT_AUG_OPERATOR_T(+=, cv::add(a,b,a), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(+=, cv::add(a,b,a), Mat_<_Tp>, Scalar) +CV_MAT_AUG_OPERATOR_T(+=, cv::add(a,b,a), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR_TN(+=, cv::add(a,Mat(b),a), Mat) +CV_MAT_AUG_OPERATOR_TN(+=, cv::add(a,Mat(b),a), Mat_<_Tp>) + +CV_MAT_AUG_OPERATOR (-=, cv::subtract(a,b,a), Mat, Mat) +CV_MAT_AUG_OPERATOR (-=, cv::subtract(a,b,a), Mat, Scalar) +CV_MAT_AUG_OPERATOR_T(-=, cv::subtract(a,b,a), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(-=, cv::subtract(a,b,a), Mat_<_Tp>, Scalar) +CV_MAT_AUG_OPERATOR_T(-=, cv::subtract(a,b,a), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR_TN(-=, cv::subtract(a,Mat(b),a), Mat) +CV_MAT_AUG_OPERATOR_TN(-=, cv::subtract(a,Mat(b),a), Mat_<_Tp>) + +CV_MAT_AUG_OPERATOR (*=, cv::gemm(a, b, 1, Mat(), 0, a, 0), Mat, Mat) +CV_MAT_AUG_OPERATOR_T(*=, cv::gemm(a, b, 1, Mat(), 0, a, 0), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(*=, cv::gemm(a, b, 1, Mat(), 0, a, 0), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR (*=, a.convertTo(a, -1, b), Mat, double) +CV_MAT_AUG_OPERATOR_T(*=, a.convertTo(a, -1, b), Mat_<_Tp>, double) +CV_MAT_AUG_OPERATOR_TN(*=, cv::gemm(a, Mat(b), 1, Mat(), 0, a, 0), Mat) +CV_MAT_AUG_OPERATOR_TN(*=, cv::gemm(a, Mat(b), 1, Mat(), 0, a, 0), Mat_<_Tp>) + +CV_MAT_AUG_OPERATOR (/=, cv::divide(a,b,a), Mat, Mat) +CV_MAT_AUG_OPERATOR_T(/=, cv::divide(a,b,a), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(/=, cv::divide(a,b,a), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR (/=, a.convertTo((Mat&)a, -1, 1./b), Mat, double) +CV_MAT_AUG_OPERATOR_T(/=, a.convertTo((Mat&)a, -1, 1./b), Mat_<_Tp>, double) +CV_MAT_AUG_OPERATOR_TN(/=, cv::divide(a, Mat(b), a), Mat) +CV_MAT_AUG_OPERATOR_TN(/=, cv::divide(a, Mat(b), a), Mat_<_Tp>) + +CV_MAT_AUG_OPERATOR (&=, cv::bitwise_and(a,b,a), Mat, Mat) +CV_MAT_AUG_OPERATOR (&=, cv::bitwise_and(a,b,a), Mat, Scalar) +CV_MAT_AUG_OPERATOR_T(&=, cv::bitwise_and(a,b,a), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(&=, cv::bitwise_and(a,b,a), Mat_<_Tp>, Scalar) +CV_MAT_AUG_OPERATOR_T(&=, cv::bitwise_and(a,b,a), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR_TN(&=, cv::bitwise_and(a, Mat(b), a), Mat) +CV_MAT_AUG_OPERATOR_TN(&=, cv::bitwise_and(a, Mat(b), a), Mat_<_Tp>) + +CV_MAT_AUG_OPERATOR (|=, cv::bitwise_or(a,b,a), Mat, Mat) +CV_MAT_AUG_OPERATOR (|=, cv::bitwise_or(a,b,a), Mat, Scalar) +CV_MAT_AUG_OPERATOR_T(|=, cv::bitwise_or(a,b,a), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(|=, cv::bitwise_or(a,b,a), Mat_<_Tp>, Scalar) +CV_MAT_AUG_OPERATOR_T(|=, cv::bitwise_or(a,b,a), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR_TN(|=, cv::bitwise_or(a, Mat(b), a), Mat) +CV_MAT_AUG_OPERATOR_TN(|=, cv::bitwise_or(a, Mat(b), a), Mat_<_Tp>) + +CV_MAT_AUG_OPERATOR (^=, cv::bitwise_xor(a,b,a), Mat, Mat) +CV_MAT_AUG_OPERATOR (^=, cv::bitwise_xor(a,b,a), Mat, Scalar) +CV_MAT_AUG_OPERATOR_T(^=, cv::bitwise_xor(a,b,a), Mat_<_Tp>, Mat) +CV_MAT_AUG_OPERATOR_T(^=, cv::bitwise_xor(a,b,a), Mat_<_Tp>, Scalar) +CV_MAT_AUG_OPERATOR_T(^=, cv::bitwise_xor(a,b,a), Mat_<_Tp>, Mat_<_Tp>) +CV_MAT_AUG_OPERATOR_TN(^=, cv::bitwise_xor(a, Mat(b), a), Mat) +CV_MAT_AUG_OPERATOR_TN(^=, cv::bitwise_xor(a, Mat(b), a), Mat_<_Tp>) + +#undef CV_MAT_AUG_OPERATOR_TN +#undef CV_MAT_AUG_OPERATOR_T +#undef CV_MAT_AUG_OPERATOR +#undef CV_MAT_AUG_OPERATOR1 + + + +///////////////////////////////////////////// SVD ///////////////////////////////////////////// + +inline SVD::SVD() {} +inline SVD::SVD( InputArray m, int flags ) { operator ()(m, flags); } +inline void SVD::solveZ( InputArray m, OutputArray _dst ) +{ + Mat mtx = m.getMat(); + SVD svd(mtx, (mtx.rows >= mtx.cols ? 0 : SVD::FULL_UV)); + _dst.create(svd.vt.cols, 1, svd.vt.type()); + Mat dst = _dst.getMat(); + svd.vt.row(svd.vt.rows-1).reshape(1,svd.vt.cols).copyTo(dst); +} + +template inline void + SVD::compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w, Matx<_Tp, m, nm>& u, Matx<_Tp, n, nm>& vt ) +{ + CV_StaticAssert( nm == MIN(m, n), "Invalid size of output vector."); + Mat _a(a, false), _u(u, false), _w(w, false), _vt(vt, false); + SVD::compute(_a, _w, _u, _vt); + CV_Assert(_w.data == (uchar*)&w.val[0] && _u.data == (uchar*)&u.val[0] && _vt.data == (uchar*)&vt.val[0]); +} + +template inline void +SVD::compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w ) +{ + CV_StaticAssert( nm == MIN(m, n), "Invalid size of output vector."); + Mat _a(a, false), _w(w, false); + SVD::compute(_a, _w); + CV_Assert(_w.data == (uchar*)&w.val[0]); +} + +template inline void +SVD::backSubst( const Matx<_Tp, nm, 1>& w, const Matx<_Tp, m, nm>& u, + const Matx<_Tp, n, nm>& vt, const Matx<_Tp, m, nb>& rhs, + Matx<_Tp, n, nb>& dst ) +{ + CV_StaticAssert( nm == MIN(m, n), "Invalid size of output vector."); + Mat _u(u, false), _w(w, false), _vt(vt, false), _rhs(rhs, false), _dst(dst, false); + SVD::backSubst(_w, _u, _vt, _rhs, _dst); + CV_Assert(_dst.data == (uchar*)&dst.val[0]); +} + + + +/////////////////////////////////// Multiply-with-Carry RNG /////////////////////////////////// + +inline RNG::RNG() { state = 0xffffffff; } +inline RNG::RNG(uint64 _state) { state = _state ? _state : 0xffffffff; } + +inline RNG::operator uchar() { return (uchar)next(); } +inline RNG::operator schar() { return (schar)next(); } +inline RNG::operator ushort() { return (ushort)next(); } +inline RNG::operator short() { return (short)next(); } +inline RNG::operator int() { return (int)next(); } +inline RNG::operator unsigned() { return next(); } +inline RNG::operator float() { return next()*2.3283064365386962890625e-10f; } +inline RNG::operator double() { unsigned t = next(); return (((uint64)t << 32) | next()) * 5.4210108624275221700372640043497e-20; } + +inline unsigned RNG::operator ()(unsigned N) { return (unsigned)uniform(0,N); } +inline unsigned RNG::operator ()() { return next(); } + +inline int RNG::uniform(int a, int b) { return a == b ? a : (int)(next() % (b - a) + a); } +inline float RNG::uniform(float a, float b) { return ((float)*this)*(b - a) + a; } +inline double RNG::uniform(double a, double b) { return ((double)*this)*(b - a) + a; } + +inline bool RNG::operator ==(const RNG& other) const { return state == other.state; } + +inline unsigned RNG::next() +{ + state = (uint64)(unsigned)state* /*CV_RNG_COEFF*/ 4164903690U + (unsigned)(state >> 32); + return (unsigned)state; +} + +//! returns the next unifomly-distributed random number of the specified type +template static inline _Tp randu() +{ + return (_Tp)theRNG(); +} + +///////////////////////////////// Formatted string generation ///////////////////////////////// + +/** @brief Returns a text string formatted using the printf-like expression. + +The function acts like sprintf but forms and returns an STL string. It can be used to form an error +message in the Exception constructor. +@param fmt printf-compatible formatting specifiers. + +**Note**: +|Type|Specifier| +|-|-| +|`const char*`|`%s`| +|`char`|`%c`| +|`float` / `double`|`%f`,`%g`| +|`int`, `long`, `long long`|`%d`, `%ld`, ``%lld`| +|`unsigned`, `unsigned long`, `unsigned long long`|`%u`, `%lu`, `%llu`| +|`uint64` -> `uintmax_t`, `int64` -> `intmax_t`|`%ju`, `%jd`| +|`size_t`|`%zu`| + */ +CV_EXPORTS String format( const char* fmt, ... ) CV_FORMAT_PRINTF(1, 2); + +///////////////////////////////// Formatted output of cv::Mat ///////////////////////////////// + +static inline +Ptr format(InputArray mtx, Formatter::FormatType fmt) +{ + return Formatter::get(fmt)->format(mtx.getMat()); +} + +static inline +int print(Ptr fmtd, FILE* stream = stdout) +{ + int written = 0; + fmtd->reset(); + for(const char* str = fmtd->next(); str; str = fmtd->next()) + written += fputs(str, stream); + + return written; +} + +static inline +int print(const Mat& mtx, FILE* stream = stdout) +{ + return print(Formatter::get()->format(mtx), stream); +} + +static inline +int print(const UMat& mtx, FILE* stream = stdout) +{ + return print(Formatter::get()->format(mtx.getMat(ACCESS_READ)), stream); +} + +template static inline +int print(const std::vector >& vec, FILE* stream = stdout) +{ + return print(Formatter::get()->format(Mat(vec)), stream); +} + +template static inline +int print(const std::vector >& vec, FILE* stream = stdout) +{ + return print(Formatter::get()->format(Mat(vec)), stream); +} + +template static inline +int print(const Matx<_Tp, m, n>& matx, FILE* stream = stdout) +{ + return print(Formatter::get()->format(cv::Mat(matx)), stream); +} + +//! @endcond + +/****************************************************************************************\ +* Auxiliary algorithms * +\****************************************************************************************/ + +/** @brief Splits an element set into equivalency classes. + +The generic function partition implements an \f$O(N^2)\f$ algorithm for splitting a set of \f$N\f$ elements +into one or more equivalency classes, as described in + . The function returns the number of +equivalency classes. +@param _vec Set of elements stored as a vector. +@param labels Output vector of labels. It contains as many elements as vec. Each label labels[i] is +a 0-based cluster index of `vec[i]`. +@param predicate Equivalence predicate (pointer to a boolean function of two arguments or an +instance of the class that has the method bool operator()(const _Tp& a, const _Tp& b) ). The +predicate returns true when the elements are certainly in the same class, and returns false if they +may or may not be in the same class. +@ingroup core_cluster +*/ +template int +partition( const std::vector<_Tp>& _vec, std::vector& labels, + _EqPredicate predicate=_EqPredicate()) +{ + int i, j, N = (int)_vec.size(); + const _Tp* vec = &_vec[0]; + + const int PARENT=0; + const int RANK=1; + + std::vector _nodes(N*2); + int (*nodes)[2] = (int(*)[2])&_nodes[0]; + + // The first O(N) pass: create N single-vertex trees + for(i = 0; i < N; i++) + { + nodes[i][PARENT]=-1; + nodes[i][RANK] = 0; + } + + // The main O(N^2) pass: merge connected components + for( i = 0; i < N; i++ ) + { + int root = i; + + // find root + while( nodes[root][PARENT] >= 0 ) + root = nodes[root][PARENT]; + + for( j = 0; j < N; j++ ) + { + if( i == j || !predicate(vec[i], vec[j])) + continue; + int root2 = j; + + while( nodes[root2][PARENT] >= 0 ) + root2 = nodes[root2][PARENT]; + + if( root2 != root ) + { + // unite both trees + int rank = nodes[root][RANK], rank2 = nodes[root2][RANK]; + if( rank > rank2 ) + nodes[root2][PARENT] = root; + else + { + nodes[root][PARENT] = root2; + nodes[root2][RANK] += rank == rank2; + root = root2; + } + CV_Assert( nodes[root][PARENT] < 0 ); + + int k = j, parent; + + // compress the path from node2 to root + while( (parent = nodes[k][PARENT]) >= 0 ) + { + nodes[k][PARENT] = root; + k = parent; + } + + // compress the path from node to root + k = i; + while( (parent = nodes[k][PARENT]) >= 0 ) + { + nodes[k][PARENT] = root; + k = parent; + } + } + } + } + + // Final O(N) pass: enumerate classes + labels.resize(N); + int nclasses = 0; + + for( i = 0; i < N; i++ ) + { + int root = i; + while( nodes[root][PARENT] >= 0 ) + root = nodes[root][PARENT]; + // re-use the rank as the class label + if( nodes[root][RANK] >= 0 ) + nodes[root][RANK] = ~nclasses++; + labels[i] = ~nodes[root][RANK]; + } + + return nclasses; +} + +} // cv + +#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/optim.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/optim.hpp similarity index 98% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/optim.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/optim.hpp index 190d54310..36c798a5f 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/optim.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/optim.hpp @@ -115,7 +115,7 @@ class CV_EXPORTS MinProblemSolver : public Algorithm always sensible) will be used. @param x The initial point, that will become a centroid of an initial simplex. After the algorithm - will terminate, it will be setted to the point where the algorithm stops, the point of possible + will terminate, it will be set to the point where the algorithm stops, the point of possible minimum. @return The value of a function at the point found. */ @@ -288,12 +288,12 @@ Bland's rule is used to prevent cy contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted, in the latter case it is understood to correspond to \f$c^T\f$. @param Constr `m`-by-`n+1` matrix, whose rightmost column corresponds to \f$b\f$ in formulation above -and the remaining to \f$A\f$. It should containt 32- or 64-bit floating point numbers. +and the remaining to \f$A\f$. It should contain 32- or 64-bit floating point numbers. @param z The solution will be returned here as a column-vector - it corresponds to \f$c\f$ in the formulation above. It will contain 64-bit floating point numbers. @return One of cv::SolveLPResult */ -CV_EXPORTS_W int solveLP(const Mat& Func, const Mat& Constr, Mat& z); +CV_EXPORTS_W int solveLP(InputArray Func, InputArray Constr, OutputArray z); //! @} diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ovx.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/ovx.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/ovx.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/ovx.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/persistence.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/persistence.hpp similarity index 76% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/persistence.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/persistence.hpp index 6d8ad20c1..ba02d698f 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/persistence.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/persistence.hpp @@ -94,10 +94,6 @@ The same functions can read and write data in both formats; the particular forma the extension of the opened file, ".xml" for XML files, ".yml" or ".yaml" for YAML and ".json" for JSON. */ -typedef struct CvFileStorage CvFileStorage; -typedef struct CvFileNode CvFileNode; -typedef struct CvMat CvMat; -typedef struct CvMatND CvMatND; //! @} core_c @@ -287,12 +283,12 @@ element is a structure of 2 integers, followed by a single-precision floating-po equivalent notations of the above specification are `iif`, `2i1f` and so forth. Other examples: `u` means that the array consists of bytes, and `2d` means the array consists of pairs of doubles. -@see @ref filestorage.cpp +@see @ref samples/cpp/filestorage.cpp */ //! @{ -/** @example filestorage.cpp +/** @example samples/cpp/filestorage.cpp A complete example using the FileStorage interface */ @@ -314,7 +310,7 @@ class CV_EXPORTS_W FileStorage WRITE = 1, //!< value, open the file for writing APPEND = 2, //!< value, open the file for appending MEMORY = 4, //!< flag, read data from source or write data to the internal buffer (which is - //!< returned by FileStorage::release) + //!< returned by FileStorage::release) FORMAT_MASK = (7<<3), //!< mask for format flags FORMAT_AUTO = 0, //!< flag, auto format FORMAT_XML = (1<<3), //!< flag, XML format @@ -324,7 +320,7 @@ class CV_EXPORTS_W FileStorage BASE64 = 64, //!< flag, write rawdata in Base64 by default. (consider using WRITE_BASE64) WRITE_BASE64 = BASE64 | WRITE, //!< flag, enable both WRITE and BASE64 }; - enum + enum State { UNDEFINED = 0, VALUE_EXPECTED = 1, @@ -334,129 +330,118 @@ class CV_EXPORTS_W FileStorage /** @brief The constructors. - The full constructor opens the file. Alternatively you can use the default constructor and then - call FileStorage::open. + The full constructor opens the file. Alternatively you can use the default constructor and then + call FileStorage::open. */ CV_WRAP FileStorage(); /** @overload - @copydoc open() - */ + @copydoc open() + */ CV_WRAP FileStorage(const String& filename, int flags, const String& encoding=String()); - /** @overload */ - FileStorage(CvFileStorage* fs, bool owning=true); - //! the destructor. calls release() virtual ~FileStorage(); /** @brief Opens a file. - See description of parameters in FileStorage::FileStorage. The method calls FileStorage::release - before opening the file. - @param filename Name of the file to open or the text string to read the data from. - Extension of the file (.xml, .yml/.yaml or .json) determines its format (XML, YAML or JSON - respectively). Also you can append .gz to work with compressed files, for example myHugeMatrix.xml.gz. If both - FileStorage::WRITE and FileStorage::MEMORY flags are specified, source is used just to specify - the output file format (e.g. mydata.xml, .yml etc.). A file name can also contain parameters. - You can use this format, "*?base64" (e.g. "file.json?base64" (case sensitive)), as an alternative to - FileStorage::BASE64 flag. - @param flags Mode of operation. One of FileStorage::Mode - @param encoding Encoding of the file. Note that UTF-16 XML encoding is not supported currently and - you should use 8-bit encoding instead of it. + See description of parameters in FileStorage::FileStorage. The method calls FileStorage::release + before opening the file. + @param filename Name of the file to open or the text string to read the data from. + Extension of the file (.xml, .yml/.yaml or .json) determines its format (XML, YAML or JSON + respectively). Also you can append .gz to work with compressed files, for example myHugeMatrix.xml.gz. If both + FileStorage::WRITE and FileStorage::MEMORY flags are specified, source is used just to specify + the output file format (e.g. mydata.xml, .yml etc.). A file name can also contain parameters. + You can use this format, "*?base64" (e.g. "file.json?base64" (case sensitive)), as an alternative to + FileStorage::BASE64 flag. + @param flags Mode of operation. One of FileStorage::Mode + @param encoding Encoding of the file. Note that UTF-16 XML encoding is not supported currently and + you should use 8-bit encoding instead of it. */ CV_WRAP virtual bool open(const String& filename, int flags, const String& encoding=String()); /** @brief Checks whether the file is opened. - @returns true if the object is associated with the current file and false otherwise. It is a - good practice to call this method after you tried to open a file. + @returns true if the object is associated with the current file and false otherwise. It is a + good practice to call this method after you tried to open a file. */ CV_WRAP virtual bool isOpened() const; /** @brief Closes the file and releases all the memory buffers. - Call this method after all I/O operations with the storage are finished. + Call this method after all I/O operations with the storage are finished. */ CV_WRAP virtual void release(); /** @brief Closes the file and releases all the memory buffers. - Call this method after all I/O operations with the storage are finished. If the storage was - opened for writing data and FileStorage::WRITE was specified + Call this method after all I/O operations with the storage are finished. If the storage was + opened for writing data and FileStorage::WRITE was specified */ CV_WRAP virtual String releaseAndGetString(); /** @brief Returns the first element of the top-level mapping. - @returns The first element of the top-level mapping. + @returns The first element of the top-level mapping. */ CV_WRAP FileNode getFirstTopLevelNode() const; /** @brief Returns the top-level mapping - @param streamidx Zero-based index of the stream. In most cases there is only one stream in the file. - However, YAML supports multiple streams and so there can be several. - @returns The top-level mapping. + @param streamidx Zero-based index of the stream. In most cases there is only one stream in the file. + However, YAML supports multiple streams and so there can be several. + @returns The top-level mapping. */ CV_WRAP FileNode root(int streamidx=0) const; /** @brief Returns the specified element of the top-level mapping. - @param nodename Name of the file node. - @returns Node with the given name. + @param nodename Name of the file node. + @returns Node with the given name. */ FileNode operator[](const String& nodename) const; /** @overload */ CV_WRAP_AS(getNode) FileNode operator[](const char* nodename) const; - /** @brief Returns the obsolete C FileStorage structure. - @returns Pointer to the underlying C FileStorage structure - */ - CvFileStorage* operator *() { return fs.get(); } - - /** @overload */ - const CvFileStorage* operator *() const { return fs.get(); } - - /** @brief Writes multiple numbers. - - Writes one or more numbers of the specified format to the currently written structure. Usually it is - more convenient to use operator `<<` instead of this method. - @param fmt Specification of each array element, see @ref format_spec "format specification" - @param vec Pointer to the written array. - @param len Number of the uchar elements to write. - */ - void writeRaw( const String& fmt, const uchar* vec, size_t len ); - - /** @brief Writes the registered C structure (CvMat, CvMatND, CvSeq). - @param name Name of the written object. - @param obj Pointer to the object. - @see ocvWrite for details. - */ - void writeObj( const String& name, const void* obj ); - /** * @brief Simplified writing API to use with bindings. * @param name Name of the written object * @param val Value of the written object */ + CV_WRAP void write(const String& name, int val); + /// @overload CV_WRAP void write(const String& name, double val); /// @overload CV_WRAP void write(const String& name, const String& val); /// @overload - CV_WRAP void write(const String& name, InputArray val); + CV_WRAP void write(const String& name, const Mat& val); + /// @overload + CV_WRAP void write(const String& name, const std::vector& val); + + /** @brief Writes multiple numbers. + + Writes one or more numbers of the specified format to the currently written structure. Usually it is + more convenient to use operator `<<` instead of this method. + @param fmt Specification of each array element, see @ref format_spec "format specification" + @param vec Pointer to the written array. + @param len Number of the uchar elements to write. + */ + void writeRaw( const String& fmt, const void* vec, size_t len ); /** @brief Writes a comment. - The function writes a comment into file storage. The comments are skipped when the storage is read. - @param comment The written comment, single-line or multi-line - @param append If true, the function tries to put the comment at the end of current line. - Else if the comment is multi-line, or if it does not fit at the end of the current - line, the comment starts a new line. + The function writes a comment into file storage. The comments are skipped when the storage is read. + @param comment The written comment, single-line or multi-line + @param append If true, the function tries to put the comment at the end of current line. + Else if the comment is multi-line, or if it does not fit at the end of the current + line, the comment starts a new line. */ CV_WRAP void writeComment(const String& comment, bool append = false); + void startWriteStruct(const String& name, int flags, const String& typeName); + void endWriteStruct(); + /** @brief Returns the normalized object name for the specified name of a file. - @param filename Name of a file - @returns The normalized object name. + @param filename Name of a file + @returns The normalized object name. */ static String getDefaultObjectName(const String& filename); @@ -465,13 +450,12 @@ class CV_EXPORTS_W FileStorage */ CV_WRAP int getFormat() const; - Ptr fs; //!< the underlying C FileStorage structure - String elname; //!< the currently written element - std::vector structs; //!< the stack of written structures - int state; //!< the writer state -}; + int state; + std::string elname; -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvFileStorage* obj) const; + class Impl; + Ptr p; +}; /** @brief File Storage Node class. @@ -489,7 +473,7 @@ class CV_EXPORTS_W_SIMPLE FileNode { public: //! type of the file storage node - enum Type + enum { NONE = 0, //!< empty node INT = 1, //!< an integer @@ -497,51 +481,58 @@ class CV_EXPORTS_W_SIMPLE FileNode FLOAT = REAL, //!< synonym or REAL STR = 3, //!< text string in UTF-8 encoding STRING = STR, //!< synonym for STR - REF = 4, //!< integer of size size_t. Typically used for storing complex dynamic structures where some elements reference the others - SEQ = 5, //!< sequence - MAP = 6, //!< mapping + SEQ = 4, //!< sequence + MAP = 5, //!< mapping TYPE_MASK = 7, + FLOW = 8, //!< compact representation of a sequence or mapping. Used only by YAML writer - USER = 16, //!< a registered object (e.g. a matrix) - EMPTY = 32, //!< empty structure (sequence or mapping) - NAMED = 64 //!< the node has a name (i.e. it is element of a mapping) + UNIFORM = 8, //!< if set, means that all the collection elements are numbers of the same type (real's or int's). + //!< UNIFORM is used only when reading FileStorage; FLOW is used only when writing. So they share the same bit + EMPTY = 16, //!< empty structure (sequence or mapping) + NAMED = 32 //!< the node has a name (i.e. it is element of a mapping). }; /** @brief The constructors. - These constructors are used to create a default file node, construct it from obsolete structures or - from the another file node. + These constructors are used to create a default file node, construct it from obsolete structures or + from the another file node. */ CV_WRAP FileNode(); /** @overload - @param fs Pointer to the obsolete file storage structure. - @param node File node to be used as initialization for the created file node. - */ - FileNode(const CvFileStorage* fs, const CvFileNode* node); + @param fs Pointer to the file storage structure. + @param blockIdx Index of the memory block where the file node is stored + @param ofs Offset in bytes from the beginning of the serialized storage + */ + FileNode(const FileStorage* fs, size_t blockIdx, size_t ofs); /** @overload - @param node File node to be used as initialization for the created file node. - */ + @param node File node to be used as initialization for the created file node. + */ FileNode(const FileNode& node); /** @brief Returns element of a mapping node or a sequence node. - @param nodename Name of an element in the mapping node. - @returns Returns the element with the given identifier. + @param nodename Name of an element in the mapping node. + @returns Returns the element with the given identifier. */ FileNode operator[](const String& nodename) const; /** @overload - @param nodename Name of an element in the mapping node. - */ + @param nodename Name of an element in the mapping node. + */ CV_WRAP_AS(getNode) FileNode operator[](const char* nodename) const; /** @overload - @param i Index of an element in the sequence node. - */ + @param i Index of an element in the sequence node. + */ CV_WRAP_AS(at) FileNode operator[](int i) const; + /** @brief Returns keys of a mapping node. + @returns Keys of a mapping node. + */ + CV_WRAP std::vector keys() const; + /** @brief Returns type of the node. - @returns Type of the node. See FileNode::Type + @returns Type of the node. See FileNode::Type */ CV_WRAP int type() const; @@ -562,9 +553,11 @@ class CV_EXPORTS_W_SIMPLE FileNode //! returns true if the node has a name CV_WRAP bool isNamed() const; //! returns the node name or an empty string if the node is nameless - CV_WRAP String name() const; + CV_WRAP std::string name() const; //! returns the number of elements in the node, if it is a sequence or mapping, or 1 otherwise. CV_WRAP size_t size() const; + //! returns raw size of the FileNode in bytes + CV_WRAP size_t rawSize() const; //! returns the node content as an integer. If the node stores floating-point number, it is rounded. operator int() const; //! returns the node content as float @@ -572,13 +565,16 @@ class CV_EXPORTS_W_SIMPLE FileNode //! returns the node content as double operator double() const; //! returns the node content as text string - operator String() const; - operator std::string() const; + inline operator std::string() const { return this->string(); } - //! returns pointer to the underlying file node - CvFileNode* operator *(); - //! returns pointer to the underlying file node - const CvFileNode* operator* () const; + static bool isMap(int flags); + static bool isSeq(int flags); + static bool isCollection(int flags); + static bool isEmptyCollection(int flags); + static bool isFlow(int flags); + + uchar* ptr(); + const uchar* ptr() const; //! returns iterator pointing to the first node element FileNodeIterator begin() const; @@ -587,102 +583,96 @@ class CV_EXPORTS_W_SIMPLE FileNode /** @brief Reads node elements to the buffer with the specified format. - Usually it is more convenient to use operator `>>` instead of this method. - @param fmt Specification of each array element. See @ref format_spec "format specification" - @param vec Pointer to the destination array. - @param len Number of elements to read. If it is greater than number of remaining elements then all - of them will be read. + Usually it is more convenient to use operator `>>` instead of this method. + @param fmt Specification of each array element. See @ref format_spec "format specification" + @param vec Pointer to the destination array. + @param len Number of elements to read. If it is greater than number of remaining elements then all + of them will be read. */ - void readRaw( const String& fmt, uchar* vec, size_t len ) const; + void readRaw( const String& fmt, void* vec, size_t len ) const; - //! reads the registered object and returns pointer to it - void* readObj() const; + /** Internal method used when reading FileStorage. + Sets the type (int, real or string) and value of the previously created node. + */ + void setValue( int type, const void* value, int len=-1 ); //! Simplified reading API to use with bindings. CV_WRAP double real() const; //! Simplified reading API to use with bindings. - CV_WRAP String string() const; + CV_WRAP std::string string() const; //! Simplified reading API to use with bindings. CV_WRAP Mat mat() const; - // do not use wrapper pointer classes for better efficiency - const CvFileStorage* fs; - const CvFileNode* node; + //protected: + const FileStorage* fs; + size_t blockIdx; + size_t ofs; }; /** @brief used to iterate through sequences and mappings. -A standard STL notation, with node.begin(), node.end() denoting the beginning and the end of a -sequence, stored in node. See the data reading sample in the beginning of the section. + A standard STL notation, with node.begin(), node.end() denoting the beginning and the end of a + sequence, stored in node. See the data reading sample in the beginning of the section. */ class CV_EXPORTS FileNodeIterator { public: /** @brief The constructors. - These constructors are used to create a default iterator, set it to specific element in a file node - or construct it from another iterator. + These constructors are used to create a default iterator, set it to specific element in a file node + or construct it from another iterator. */ FileNodeIterator(); /** @overload - @param fs File storage for the iterator. - @param node File node for the iterator. - @param ofs Index of the element in the node. The created iterator will point to this element. - */ - FileNodeIterator(const CvFileStorage* fs, const CvFileNode* node, size_t ofs=0); + @param node File node - the collection to iterate over; + it can be a scalar (equivalent to 1-element collection) or "none" (equivalent to empty collection). + @param seekEnd - true if iterator needs to be set after the last element of the node; + that is: + * node.begin() => FileNodeIterator(node, false) + * node.end() => FileNodeIterator(node, true) + */ + FileNodeIterator(const FileNode& node, bool seekEnd); /** @overload - @param it Iterator to be used as initialization for the created iterator. - */ + @param it Iterator to be used as initialization for the created iterator. + */ FileNodeIterator(const FileNodeIterator& it); //! returns the currently observed element FileNode operator *() const; - //! accesses the currently observed element methods - FileNode operator ->() const; //! moves iterator to the next node FileNodeIterator& operator ++ (); //! moves iterator to the next node FileNodeIterator operator ++ (int); - //! moves iterator to the previous node - FileNodeIterator& operator -- (); - //! moves iterator to the previous node - FileNodeIterator operator -- (int); //! moves iterator forward by the specified offset (possibly negative) FileNodeIterator& operator += (int ofs); - //! moves iterator backward by the specified offset (possibly negative) - FileNodeIterator& operator -= (int ofs); /** @brief Reads node elements to the buffer with the specified format. - Usually it is more convenient to use operator `>>` instead of this method. - @param fmt Specification of each array element. See @ref format_spec "format specification" - @param vec Pointer to the destination array. - @param maxCount Number of elements to read. If it is greater than number of remaining elements then - all of them will be read. + Usually it is more convenient to use operator `>>` instead of this method. + @param fmt Specification of each array element. See @ref format_spec "format specification" + @param vec Pointer to the destination array. + @param maxCount Number of elements to read. If it is greater than number of remaining elements then + all of them will be read. */ - FileNodeIterator& readRaw( const String& fmt, uchar* vec, + FileNodeIterator& readRaw( const String& fmt, void* vec, size_t maxCount=(size_t)INT_MAX ); - struct SeqReader - { - int header_size; - void* seq; /* sequence, beign read; CvSeq */ - void* block; /* current block; CvSeqBlock */ - schar* ptr; /* pointer to element be read next */ - schar* block_min; /* pointer to the beginning of block */ - schar* block_max; /* pointer to the end of block */ - int delta_index;/* = seq->first->start_index */ - schar* prev_elem; /* pointer to previous element */ - }; + //! returns the number of remaining (not read yet) elements + size_t remaining() const; - const CvFileStorage* fs; - const CvFileNode* container; - SeqReader reader; - size_t remaining; + bool equalTo(const FileNodeIterator& it) const; + +protected: + const FileStorage* fs; + size_t blockIdx; + size_t ofs; + size_t blockSize; + size_t nodeNElems; + size_t idx; }; //! @} core_xml @@ -716,7 +706,6 @@ CV_EXPORTS void writeScalar( FileStorage& fs, const String& value ); CV_EXPORTS void read(const FileNode& node, int& value, int default_value); CV_EXPORTS void read(const FileNode& node, float& value, float default_value); CV_EXPORTS void read(const FileNode& node, double& value, double default_value); -CV_EXPORTS void read(const FileNode& node, String& value, const String& default_value); CV_EXPORTS void read(const FileNode& node, std::string& value, const std::string& default_value); CV_EXPORTS void read(const FileNode& node, Mat& mat, const Mat& default_mat = Mat() ); CV_EXPORTS void read(const FileNode& node, SparseMat& mat, const SparseMat& default_mat = SparseMat() ); @@ -765,6 +754,17 @@ template static inline void read(const FileNode& node, Vec value = temp.size() != cn ? default_value : Vec<_Tp, cn>(&temp[0]); } +template static inline void read(const FileNode& node, Matx<_Tp, m, n>& value, const Matx<_Tp, m, n>& default_matx = Matx<_Tp, m, n>()) +{ + Mat temp; + read(node, temp); // read as a Mat class + + if (temp.empty()) + value = default_matx; + else + value = Matx<_Tp, m, n>(temp); +} + template static inline void read(const FileNode& node, Scalar_<_Tp>& value, const Scalar_<_Tp>& default_value) { std::vector<_Tp> temp; FileNodeIterator it = node.begin(); it >> temp; @@ -833,7 +833,7 @@ namespace internal VecReaderProxy( FileNodeIterator* _it ) : it(_it) {} void operator()(std::vector<_Tp>& vec, size_t count) const { - count = std::min(count, it->remaining); + count = std::min(count, it->remaining()); vec.resize(count); for (size_t i = 0; i < count; i++, ++(*it)) read(**it, vec[i], _Tp()); @@ -848,14 +848,14 @@ namespace internal VecReaderProxy( FileNodeIterator* _it ) : it(_it) {} void operator()(std::vector<_Tp>& vec, size_t count) const { - size_t remaining = it->remaining; + size_t remaining = it->remaining(); size_t cn = DataType<_Tp>::channels; int _fmt = traits::SafeFmt<_Tp>::fmt; CV_Assert((_fmt >> 8) < 9); char fmt[] = { (char)((_fmt >> 8)+'1'), (char)_fmt, '\0' }; CV_Assert((remaining % cn) == 0); size_t remaining1 = remaining / cn; - count = count < remaining1 ? count : remaining1; + count = count > remaining1 ? remaining1 : count; vec.resize(count); it->readRaw(fmt, !vec.empty() ? (uchar*)&vec[0] : 0, count*sizeof(_Tp)); } @@ -945,6 +945,12 @@ void write(FileStorage& fs, const Vec<_Tp, cn>& v ) write(fs, v.val[i]); } +template static inline +void write(FileStorage& fs, const Matx<_Tp, m, n>& x ) +{ + write(fs, Mat(x)); // write as a Mat class +} + template static inline void write(FileStorage& fs, const Scalar_<_Tp>& s ) { @@ -1010,6 +1016,12 @@ void write(FileStorage& fs, const String& name, const Vec<_Tp, cn>& v ) write(fs, v); } +template static inline +void write(FileStorage& fs, const String& name, const Matx<_Tp, m, n>& x ) +{ + write(fs, name, Mat(x)); // write as a Mat class +} + template static inline void write(FileStorage& fs, const String& name, const Scalar_<_Tp>& s ) { @@ -1047,6 +1059,12 @@ void write(FileStorage& fs, const String& name, const DMatch& m) write(fs, m.distance); } +template::value >::type* = nullptr> +static inline void write( FileStorage& fs, const String& name, const _Tp& val ) +{ + write(fs, name, static_cast(val)); +} + template static inline void write( FileStorage& fs, const String& name, const std::vector<_Tp>& vec ) { @@ -1135,10 +1153,18 @@ void read( FileNodeIterator& it, std::vector<_Tp>& vec, size_t maxCount = (size_ r(vec, maxCount); } +template::value >::type* = nullptr> +static inline void read(const FileNode& node, _Tp& value, const _Tp& default_value = static_cast<_Tp>(0)) +{ + int temp; + read(node, temp, static_cast(default_value)); + value = static_cast<_Tp>(temp); +} + template static inline void read( const FileNode& node, std::vector<_Tp>& vec, const std::vector<_Tp>& default_value = std::vector<_Tp>() ) { - if(!node.node) + if(node.empty()) vec = default_value; else { @@ -1150,7 +1176,7 @@ void read( const FileNode& node, std::vector<_Tp>& vec, const std::vector<_Tp>& static inline void read( const FileNode& node, std::vector& vec, const std::vector& default_value ) { - if(!node.node) + if(node.empty()) vec = default_value; else read(node, vec); @@ -1159,7 +1185,7 @@ void read( const FileNode& node, std::vector& vec, const std::vector& vec, const std::vector& default_value ) { - if(!node.node) + if(node.empty()) vec = default_value; else read(node, vec); @@ -1285,75 +1311,23 @@ void operator >> (const FileNode& n, DMatch& m) //! @relates cv::FileNodeIterator //! @{ -static inline -bool operator == (const FileNodeIterator& it1, const FileNodeIterator& it2) -{ - return it1.fs == it2.fs && it1.container == it2.container && - it1.reader.ptr == it2.reader.ptr && it1.remaining == it2.remaining; -} - -static inline -bool operator != (const FileNodeIterator& it1, const FileNodeIterator& it2) -{ - return !(it1 == it2); -} +CV_EXPORTS bool operator == (const FileNodeIterator& it1, const FileNodeIterator& it2); +CV_EXPORTS bool operator != (const FileNodeIterator& it1, const FileNodeIterator& it2); static inline ptrdiff_t operator - (const FileNodeIterator& it1, const FileNodeIterator& it2) { - return it2.remaining - it1.remaining; + return it2.remaining() - it1.remaining(); } static inline bool operator < (const FileNodeIterator& it1, const FileNodeIterator& it2) { - return it1.remaining > it2.remaining; + return it1.remaining() > it2.remaining(); } //! @} FileNodeIterator -//! @cond IGNORED - -inline FileNode FileStorage::getFirstTopLevelNode() const { FileNode r = root(); FileNodeIterator it = r.begin(); return it != r.end() ? *it : FileNode(); } -inline FileNode::FileNode() : fs(0), node(0) {} -inline FileNode::FileNode(const CvFileStorage* _fs, const CvFileNode* _node) : fs(_fs), node(_node) {} -inline FileNode::FileNode(const FileNode& _node) : fs(_node.fs), node(_node.node) {} -inline bool FileNode::empty() const { return node == 0; } -inline bool FileNode::isNone() const { return type() == NONE; } -inline bool FileNode::isSeq() const { return type() == SEQ; } -inline bool FileNode::isMap() const { return type() == MAP; } -inline bool FileNode::isInt() const { return type() == INT; } -inline bool FileNode::isReal() const { return type() == REAL; } -inline bool FileNode::isString() const { return type() == STR; } -inline CvFileNode* FileNode::operator *() { return (CvFileNode*)node; } -inline const CvFileNode* FileNode::operator* () const { return node; } -inline FileNode::operator int() const { int value; read(*this, value, 0); return value; } -inline FileNode::operator float() const { float value; read(*this, value, 0.f); return value; } -inline FileNode::operator double() const { double value; read(*this, value, 0.); return value; } -inline FileNode::operator String() const { String value; read(*this, value, value); return value; } -inline double FileNode::real() const { return double(*this); } -inline String FileNode::string() const { return String(*this); } -inline Mat FileNode::mat() const { Mat value; read(*this, value, value); return value; } -inline FileNodeIterator FileNode::begin() const { return FileNodeIterator(fs, node); } -inline FileNodeIterator FileNode::end() const { return FileNodeIterator(fs, node, size()); } -inline void FileNode::readRaw( const String& fmt, uchar* vec, size_t len ) const { begin().readRaw( fmt, vec, len ); } -inline FileNode FileNodeIterator::operator *() const { return FileNode(fs, (const CvFileNode*)(const void*)reader.ptr); } -inline FileNode FileNodeIterator::operator ->() const { return FileNode(fs, (const CvFileNode*)(const void*)reader.ptr); } -inline String::String(const FileNode& fn): cstr_(0), len_(0) { read(fn, *this, *this); } - -//! @endcond - - -CV_EXPORTS void cvStartWriteRawData_Base64(::CvFileStorage * fs, const char* name, int len, const char* dt); - -CV_EXPORTS void cvWriteRawData_Base64(::CvFileStorage * fs, const void* _data, int len); - -CV_EXPORTS void cvEndWriteRawData_Base64(::CvFileStorage * fs); - -CV_EXPORTS void cvWriteMat_Base64(::CvFileStorage* fs, const char* name, const ::CvMat* mat); - -CV_EXPORTS void cvWriteMatND_Base64(::CvFileStorage* fs, const char* name, const ::CvMatND* mat); - } // cv #endif // OPENCV_CORE_PERSISTENCE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/saturate.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/saturate.hpp new file mode 100644 index 000000000..ced5e66f4 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/saturate.hpp @@ -0,0 +1,181 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2014, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_SATURATE_HPP +#define OPENCV_CORE_SATURATE_HPP + +#include "opencv2/core/cvdef.h" +#include "opencv2/core/fast_math.hpp" + +namespace cv +{ + +//! @addtogroup core_utils +//! @{ + +/////////////// saturate_cast (used in image & signal processing) /////////////////// + +/** @brief Template function for accurate conversion from one primitive type to another. + + The function saturate_cast resembles the standard C++ cast operations, such as static_cast\() + and others. It perform an efficient and accurate conversion from one primitive type to another + (see the introduction chapter). saturate in the name means that when the input value v is out of the + range of the target type, the result is not formed just by taking low bits of the input, but instead + the value is clipped. For example: + @code + uchar a = saturate_cast(-100); // a = 0 (UCHAR_MIN) + short b = saturate_cast(33333.33333); // b = 32767 (SHRT_MAX) + @endcode + Such clipping is done when the target type is unsigned char , signed char , unsigned short or + signed short . For 32-bit integers, no clipping is done. + + When the parameter is a floating-point value and the target type is an integer (8-, 16- or 32-bit), + the floating-point value is first rounded to the nearest integer and then clipped if needed (when + the target type is 8- or 16-bit). + + This operation is used in the simplest or most complex image processing functions in OpenCV. + + @param v Function parameter. + @sa add, subtract, multiply, divide, Mat::convertTo + */ +template static inline _Tp saturate_cast(uchar v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(schar v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(ushort v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(short v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(unsigned v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(int v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(float v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(double v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(int64 v) { return _Tp(v); } +/** @overload */ +template static inline _Tp saturate_cast(uint64 v) { return _Tp(v); } + +template<> inline uchar saturate_cast(schar v) { return (uchar)std::max((int)v, 0); } +template<> inline uchar saturate_cast(ushort v) { return (uchar)std::min((unsigned)v, (unsigned)UCHAR_MAX); } +template<> inline uchar saturate_cast(int v) { return (uchar)((unsigned)v <= UCHAR_MAX ? v : v > 0 ? UCHAR_MAX : 0); } +template<> inline uchar saturate_cast(short v) { return saturate_cast((int)v); } +template<> inline uchar saturate_cast(unsigned v) { return (uchar)std::min(v, (unsigned)UCHAR_MAX); } +template<> inline uchar saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline uchar saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline uchar saturate_cast(int64 v) { return (uchar)((uint64)v <= (uint64)UCHAR_MAX ? v : v > 0 ? UCHAR_MAX : 0); } +template<> inline uchar saturate_cast(uint64 v) { return (uchar)std::min(v, (uint64)UCHAR_MAX); } + +template<> inline schar saturate_cast(uchar v) { return (schar)std::min((int)v, SCHAR_MAX); } +template<> inline schar saturate_cast(ushort v) { return (schar)std::min((unsigned)v, (unsigned)SCHAR_MAX); } +template<> inline schar saturate_cast(int v) { return (schar)((unsigned)(v-SCHAR_MIN) <= (unsigned)UCHAR_MAX ? v : v > 0 ? SCHAR_MAX : SCHAR_MIN); } +template<> inline schar saturate_cast(short v) { return saturate_cast((int)v); } +template<> inline schar saturate_cast(unsigned v) { return (schar)std::min(v, (unsigned)SCHAR_MAX); } +template<> inline schar saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline schar saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline schar saturate_cast(int64 v) { return (schar)((uint64)((int64)v-SCHAR_MIN) <= (uint64)UCHAR_MAX ? v : v > 0 ? SCHAR_MAX : SCHAR_MIN); } +template<> inline schar saturate_cast(uint64 v) { return (schar)std::min(v, (uint64)SCHAR_MAX); } + +template<> inline ushort saturate_cast(schar v) { return (ushort)std::max((int)v, 0); } +template<> inline ushort saturate_cast(short v) { return (ushort)std::max((int)v, 0); } +template<> inline ushort saturate_cast(int v) { return (ushort)((unsigned)v <= (unsigned)USHRT_MAX ? v : v > 0 ? USHRT_MAX : 0); } +template<> inline ushort saturate_cast(unsigned v) { return (ushort)std::min(v, (unsigned)USHRT_MAX); } +template<> inline ushort saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline ushort saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline ushort saturate_cast(int64 v) { return (ushort)((uint64)v <= (uint64)USHRT_MAX ? v : v > 0 ? USHRT_MAX : 0); } +template<> inline ushort saturate_cast(uint64 v) { return (ushort)std::min(v, (uint64)USHRT_MAX); } + +template<> inline short saturate_cast(ushort v) { return (short)std::min((int)v, SHRT_MAX); } +template<> inline short saturate_cast(int v) { return (short)((unsigned)(v - SHRT_MIN) <= (unsigned)USHRT_MAX ? v : v > 0 ? SHRT_MAX : SHRT_MIN); } +template<> inline short saturate_cast(unsigned v) { return (short)std::min(v, (unsigned)SHRT_MAX); } +template<> inline short saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline short saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } +template<> inline short saturate_cast(int64 v) { return (short)((uint64)((int64)v - SHRT_MIN) <= (uint64)USHRT_MAX ? v : v > 0 ? SHRT_MAX : SHRT_MIN); } +template<> inline short saturate_cast(uint64 v) { return (short)std::min(v, (uint64)SHRT_MAX); } + +template<> inline int saturate_cast(unsigned v) { return (int)std::min(v, (unsigned)INT_MAX); } +template<> inline int saturate_cast(int64 v) { return (int)((uint64)(v - INT_MIN) <= (uint64)UINT_MAX ? v : v > 0 ? INT_MAX : INT_MIN); } +template<> inline int saturate_cast(uint64 v) { return (int)std::min(v, (uint64)INT_MAX); } +template<> inline int saturate_cast(float v) { return cvRound(v); } +template<> inline int saturate_cast(double v) { return cvRound(v); } + +template<> inline unsigned saturate_cast(schar v) { return (unsigned)std::max(v, (schar)0); } +template<> inline unsigned saturate_cast(short v) { return (unsigned)std::max(v, (short)0); } +template<> inline unsigned saturate_cast(int v) { return (unsigned)std::max(v, (int)0); } +template<> inline unsigned saturate_cast(int64 v) { return (unsigned)((uint64)v <= (uint64)UINT_MAX ? v : v > 0 ? UINT_MAX : 0); } +template<> inline unsigned saturate_cast(uint64 v) { return (unsigned)std::min(v, (uint64)UINT_MAX); } +// we intentionally do not clip negative numbers, to make -1 become 0xffffffff etc. +template<> inline unsigned saturate_cast(float v) { return static_cast(cvRound(v)); } +template<> inline unsigned saturate_cast(double v) { return static_cast(cvRound(v)); } + +template<> inline uint64 saturate_cast(schar v) { return (uint64)std::max(v, (schar)0); } +template<> inline uint64 saturate_cast(short v) { return (uint64)std::max(v, (short)0); } +template<> inline uint64 saturate_cast(int v) { return (uint64)std::max(v, (int)0); } +template<> inline uint64 saturate_cast(int64 v) { return (uint64)std::max(v, (int64)0); } + +template<> inline int64 saturate_cast(uint64 v) { return (int64)std::min(v, (uint64)LLONG_MAX); } + +/** @overload */ +template static inline _Tp saturate_cast(float16_t v) { return saturate_cast<_Tp>((float)v); } + +// in theory, we could use a LUT for 8u/8s->16f conversion, +// but with hardware support for FP32->FP16 conversion the current approach is preferable +template<> inline float16_t saturate_cast(uchar v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(schar v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(ushort v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(short v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(unsigned v){ return float16_t((float)v); } +template<> inline float16_t saturate_cast(int v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(uint64 v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(int64 v) { return float16_t((float)v); } +template<> inline float16_t saturate_cast(float v) { return float16_t(v); } +template<> inline float16_t saturate_cast(double v) { return float16_t((float)v); } + +//! @} + +} // cv + +#endif // OPENCV_CORE_SATURATE_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/softfloat.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/softfloat.hpp similarity index 98% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/softfloat.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/softfloat.hpp index b640111b3..547098038 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/softfloat.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/softfloat.hpp @@ -45,18 +45,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "cvdef.h" -// int32_t / uint32_t -#if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */ -namespace cv { -typedef signed int int32_t; -typedef unsigned int uint32_t; -} -#elif defined(_MSC_VER) || __cplusplus >= 201103L -#include -#else -#include -#endif - namespace cv { @@ -82,7 +70,7 @@ namespace cv Both types support the following: - Construction from signed and unsigned 32-bit and 64 integers, float/double or raw binary representation - - Conversions betweeen each other, to float or double and to int + - Conversions between each other, to float or double and to int using @ref cvRound, @ref cvTrunc, @ref cvFloor, @ref cvCeil or a bunch of saturate_cast functions - Add, subtract, multiply, divide, remainder, square root, FMA with absolute precision diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/sse_utils.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/sse_utils.hpp similarity index 99% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/sse_utils.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/sse_utils.hpp index 69efffe41..0906583ea 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/sse_utils.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/sse_utils.hpp @@ -567,7 +567,7 @@ inline void _mm_deinterleave_ps(__m128 & v_r0, __m128 & v_r1, __m128 & v_g0, __m inline void _mm_interleave_ps(__m128 & v_r0, __m128 & v_r1, __m128 & v_g0, __m128 & v_g1) { - const int mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1); + enum { mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1) }; __m128 layer2_chunk0 = _mm_shuffle_ps(v_r0, v_r1, mask_lo); __m128 layer2_chunk2 = _mm_shuffle_ps(v_r0, v_r1, mask_hi); @@ -588,7 +588,7 @@ inline void _mm_interleave_ps(__m128 & v_r0, __m128 & v_r1, __m128 & v_g0, __m12 inline void _mm_interleave_ps(__m128 & v_r0, __m128 & v_r1, __m128 & v_g0, __m128 & v_g1, __m128 & v_b0, __m128 & v_b1) { - const int mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1); + enum { mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1) }; __m128 layer2_chunk0 = _mm_shuffle_ps(v_r0, v_r1, mask_lo); __m128 layer2_chunk3 = _mm_shuffle_ps(v_r0, v_r1, mask_hi); @@ -615,7 +615,7 @@ inline void _mm_interleave_ps(__m128 & v_r0, __m128 & v_r1, __m128 & v_g0, inline void _mm_interleave_ps(__m128 & v_r0, __m128 & v_r1, __m128 & v_g0, __m128 & v_g1, __m128 & v_b0, __m128 & v_b1, __m128 & v_a0, __m128 & v_a1) { - const int mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1); + enum { mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1) }; __m128 layer2_chunk0 = _mm_shuffle_ps(v_r0, v_r1, mask_lo); __m128 layer2_chunk4 = _mm_shuffle_ps(v_r0, v_r1, mask_hi); diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/traits.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/traits.hpp new file mode 100644 index 000000000..52ab083ca --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/traits.hpp @@ -0,0 +1,417 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_TRAITS_HPP +#define OPENCV_CORE_TRAITS_HPP + +#include "opencv2/core/cvdef.h" + +namespace cv +{ + +//#define OPENCV_TRAITS_ENABLE_DEPRECATED + +//! @addtogroup core_basic +//! @{ + +/** @brief Template "trait" class for OpenCV primitive data types. + +@note Deprecated. This is replaced by "single purpose" traits: traits::Type and traits::Depth + +A primitive OpenCV data type is one of unsigned char, bool, signed char, unsigned short, signed +short, int, float, double, or a tuple of values of one of these types, where all the values in the +tuple have the same type. Any primitive type from the list can be defined by an identifier in the +form CV_\{U|S|F}C(\), for example: uchar \~ CV_8UC1, 3-element +floating-point tuple \~ CV_32FC3, and so on. A universal OpenCV structure that is able to store a +single instance of such a primitive data type is Vec. Multiple instances of such a type can be +stored in a std::vector, Mat, Mat_, SparseMat, SparseMat_, or any other container that is able to +store Vec instances. + +The DataType class is basically used to provide a description of such primitive data types without +adding any fields or methods to the corresponding classes (and it is actually impossible to add +anything to primitive C/C++ data types). This technique is known in C++ as class traits. It is not +DataType itself that is used but its specialized versions, such as: +@code + template<> class DataType + { + typedef uchar value_type; + typedef int work_type; + typedef uchar channel_type; + enum { channel_type = CV_8U, channels = 1, fmt='u', type = CV_8U }; + }; + ... + template DataType > + { + typedef std::complex<_Tp> value_type; + typedef std::complex<_Tp> work_type; + typedef _Tp channel_type; + // DataDepth is another helper trait class + enum { depth = DataDepth<_Tp>::value, channels=2, + fmt=(channels-1)*256+DataDepth<_Tp>::fmt, + type=CV_MAKETYPE(depth, channels) }; + }; + ... +@endcode +The main purpose of this class is to convert compilation-time type information to an +OpenCV-compatible data type identifier, for example: +@code + // allocates a 30x40 floating-point matrix + Mat A(30, 40, DataType::type); + + Mat B = Mat_ >(3, 3); + // the statement below will print 6, 2 , that is depth == CV_64F, channels == 2 + cout << B.depth() << ", " << B.channels() << endl; +@endcode +So, such traits are used to tell OpenCV which data type you are working with, even if such a type is +not native to OpenCV. For example, the matrix B initialization above is compiled because OpenCV +defines the proper specialized template class DataType\ \> . This mechanism is also +useful (and used in OpenCV this way) for generic algorithms implementations. + +@note Default values were dropped to stop confusing developers about using of unsupported types (see #7599) +*/ +template class DataType +{ +public: +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + typedef _Tp value_type; + typedef value_type work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 1, + depth = -1, + channels = 1, + fmt = 0, + type = CV_MAKETYPE(depth, channels) + }; +#endif +}; + +template<> class DataType +{ +public: + typedef bool value_type; + typedef int work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_8U, + channels = 1, + fmt = (int)'u', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef uchar value_type; + typedef int work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_8U, + channels = 1, + fmt = (int)'u', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef schar value_type; + typedef int work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_8S, + channels = 1, + fmt = (int)'c', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef schar value_type; + typedef int work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_8S, + channels = 1, + fmt = (int)'c', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef ushort value_type; + typedef int work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_16U, + channels = 1, + fmt = (int)'w', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef short value_type; + typedef int work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_16S, + channels = 1, + fmt = (int)'s', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef int value_type; + typedef value_type work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_32S, + channels = 1, + fmt = (int)'i', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef float value_type; + typedef value_type work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_32F, + channels = 1, + fmt = (int)'f', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef double value_type; + typedef value_type work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_64F, + channels = 1, + fmt = (int)'d', + type = CV_MAKETYPE(depth, channels) + }; +}; + +template<> class DataType +{ +public: + typedef float16_t value_type; + typedef float work_type; + typedef value_type channel_type; + typedef value_type vec_type; + enum { generic_type = 0, + depth = CV_16F, + channels = 1, + fmt = (int)'h', + type = CV_MAKETYPE(depth, channels) + }; +}; + +/** @brief A helper class for cv::DataType + +The class is specialized for each fundamental numerical data type supported by OpenCV. It provides +DataDepth::value constant. +*/ +template class DataDepth +{ +public: + enum + { + value = DataType<_Tp>::depth, + fmt = DataType<_Tp>::fmt + }; +}; + + +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + +template class TypeDepth +{ +#ifdef OPENCV_TRAITS_ENABLE_LEGACY_DEFAULTS + enum { depth = CV_USRTYPE1 }; + typedef void value_type; +#endif +}; + +template<> class TypeDepth +{ + enum { depth = CV_8U }; + typedef uchar value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_8S }; + typedef schar value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_16U }; + typedef ushort value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_16S }; + typedef short value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_32S }; + typedef int value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_32F }; + typedef float value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_64F }; + typedef double value_type; +}; + +template<> class TypeDepth +{ + enum { depth = CV_16F }; + typedef float16_t value_type; +}; + +#endif + +//! @} + +namespace traits { + +namespace internal { +#define CV_CREATE_MEMBER_CHECK(X) \ +template class CheckMember_##X { \ + struct Fallback { int X; }; \ + struct Derived : T, Fallback { }; \ + template struct Check; \ + typedef char CV_NO[1]; \ + typedef char CV_YES[2]; \ + template static CV_NO & func(Check *); \ + template static CV_YES & func(...); \ +public: \ + typedef CheckMember_##X type; \ + enum { value = sizeof(func(0)) == sizeof(CV_YES) }; \ +}; + +CV_CREATE_MEMBER_CHECK(fmt) +CV_CREATE_MEMBER_CHECK(type) + +} // namespace internal + + +template +struct Depth +{ enum { value = DataType::depth }; }; + +template +struct Type +{ enum { value = DataType::type }; }; + +/** Similar to traits::Type but has value = -1 in case of unknown type (instead of compiler error) */ +template >::value > +struct SafeType {}; + +template +struct SafeType +{ enum { value = -1 }; }; + +template +struct SafeType +{ enum { value = Type::value }; }; + + +template >::value > +struct SafeFmt {}; + +template +struct SafeFmt +{ enum { fmt = 0 }; }; + +template +struct SafeFmt +{ enum { fmt = DataType::fmt }; }; + + +} // namespace + +} // cv + +#endif // OPENCV_CORE_TRAITS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/types.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/types.hpp new file mode 100644 index 000000000..b1fa676e5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/types.hpp @@ -0,0 +1,2476 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_TYPES_HPP +#define OPENCV_CORE_TYPES_HPP + +#ifndef __cplusplus +# error types.hpp header must be compiled as C++ +#endif + +#include +#include +#include +#include + +#include "opencv2/core/cvdef.h" +#include "opencv2/core/cvstd.hpp" +#include "opencv2/core/matx.hpp" + +namespace cv +{ + +//! @addtogroup core_basic +//! @{ + +//////////////////////////////// Complex ////////////////////////////// + +/** @brief A complex number class. + + The template class is similar and compatible with std::complex, however it provides slightly + more convenient access to the real and imaginary parts using through the simple field access, as opposite + to std::complex::real() and std::complex::imag(). +*/ +template class Complex +{ +public: + + //! default constructor + Complex(); + Complex( _Tp _re, _Tp _im = 0 ); + + //! conversion to another data type + template operator Complex() const; + //! conjugation + Complex conj() const; + + _Tp re, im; //< the real and the imaginary parts +}; + +typedef Complex Complexf; +typedef Complex Complexd; + +template class DataType< Complex<_Tp> > +{ +public: + typedef Complex<_Tp> value_type; + typedef value_type work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 2, + fmt = DataType::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template +struct Depth< Complex<_Tp> > { enum { value = Depth<_Tp>::value }; }; +template +struct Type< Complex<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 2) }; }; +} // namespace + + +//////////////////////////////// Point_ //////////////////////////////// + +/** @brief Template class for 2D points specified by its coordinates `x` and `y`. + +An instance of the class is interchangeable with C structures, CvPoint and CvPoint2D32f . There is +also a cast operator to convert point coordinates to the specified type. The conversion from +floating-point coordinates to integer coordinates is done by rounding. Commonly, the conversion +uses this operation for each of the coordinates. Besides the class members listed in the +declaration above, the following operations on points are implemented: +@code + pt1 = pt2 + pt3; + pt1 = pt2 - pt3; + pt1 = pt2 * a; + pt1 = a * pt2; + pt1 = pt2 / a; + pt1 += pt2; + pt1 -= pt2; + pt1 *= a; + pt1 /= a; + double value = norm(pt); // L2 norm + pt1 == pt2; + pt1 != pt2; +@endcode +For your convenience, the following type aliases are defined: +@code + typedef Point_ Point2i; + typedef Point2i Point; + typedef Point_ Point2f; + typedef Point_ Point2d; +@endcode +Example: +@code + Point2f a(0.3f, 0.f), b(0.f, 0.4f); + Point pt = (a + b)*10.f; + cout << pt.x << ", " << pt.y << endl; +@endcode +*/ +template class Point_ +{ +public: + typedef _Tp value_type; + + //! default constructor + Point_(); + Point_(_Tp _x, _Tp _y); + Point_(const Point_& pt); + Point_(Point_&& pt) CV_NOEXCEPT; + Point_(const Size_<_Tp>& sz); + Point_(const Vec<_Tp, 2>& v); + + Point_& operator = (const Point_& pt); + Point_& operator = (Point_&& pt) CV_NOEXCEPT; + //! conversion to another data type + template operator Point_<_Tp2>() const; + + //! conversion to the old-style C structures + operator Vec<_Tp, 2>() const; + + //! dot product + _Tp dot(const Point_& pt) const; + //! dot product computed in double-precision arithmetics + double ddot(const Point_& pt) const; + //! cross-product + double cross(const Point_& pt) const; + //! checks whether the point is inside the specified rectangle + bool inside(const Rect_<_Tp>& r) const; + _Tp x; //!< x coordinate of the point + _Tp y; //!< y coordinate of the point +}; + +typedef Point_ Point2i; +typedef Point_ Point2l; +typedef Point_ Point2f; +typedef Point_ Point2d; +typedef Point2i Point; + +template class DataType< Point_<_Tp> > +{ +public: + typedef Point_<_Tp> value_type; + typedef Point_::work_type> work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 2, + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template +struct Depth< Point_<_Tp> > { enum { value = Depth<_Tp>::value }; }; +template +struct Type< Point_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 2) }; }; +} // namespace + + +//////////////////////////////// Point3_ //////////////////////////////// + +/** @brief Template class for 3D points specified by its coordinates `x`, `y` and `z`. + +An instance of the class is interchangeable with the C structure CvPoint2D32f . Similarly to +Point_ , the coordinates of 3D points can be converted to another type. The vector arithmetic and +comparison operations are also supported. + +The following Point3_\<\> aliases are available: +@code + typedef Point3_ Point3i; + typedef Point3_ Point3f; + typedef Point3_ Point3d; +@endcode +@see cv::Point3i, cv::Point3f and cv::Point3d +*/ +template class Point3_ +{ +public: + typedef _Tp value_type; + + //! default constructor + Point3_(); + Point3_(_Tp _x, _Tp _y, _Tp _z); + Point3_(const Point3_& pt); + Point3_(Point3_&& pt) CV_NOEXCEPT; + explicit Point3_(const Point_<_Tp>& pt); + Point3_(const Vec<_Tp, 3>& v); + + Point3_& operator = (const Point3_& pt); + Point3_& operator = (Point3_&& pt) CV_NOEXCEPT; + //! conversion to another data type + template operator Point3_<_Tp2>() const; + //! conversion to cv::Vec<> + operator Vec<_Tp, 3>() const; + + //! dot product + _Tp dot(const Point3_& pt) const; + //! dot product computed in double-precision arithmetics + double ddot(const Point3_& pt) const; + //! cross product of the 2 3D points + Point3_ cross(const Point3_& pt) const; + _Tp x; //!< x coordinate of the 3D point + _Tp y; //!< y coordinate of the 3D point + _Tp z; //!< z coordinate of the 3D point +}; + +typedef Point3_ Point3i; +typedef Point3_ Point3f; +typedef Point3_ Point3d; + +template class DataType< Point3_<_Tp> > +{ +public: + typedef Point3_<_Tp> value_type; + typedef Point3_::work_type> work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 3, + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template +struct Depth< Point3_<_Tp> > { enum { value = Depth<_Tp>::value }; }; +template +struct Type< Point3_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 3) }; }; +} // namespace + +//////////////////////////////// Size_ //////////////////////////////// + +/** @brief Template class for specifying the size of an image or rectangle. + +The class includes two members called width and height. The structure can be converted to and from +the old OpenCV structures CvSize and CvSize2D32f . The same set of arithmetic and comparison +operations as for Point_ is available. + +OpenCV defines the following Size_\<\> aliases: +@code + typedef Size_ Size2i; + typedef Size2i Size; + typedef Size_ Size2f; +@endcode +*/ +template class Size_ +{ +public: + typedef _Tp value_type; + + //! default constructor + Size_(); + Size_(_Tp _width, _Tp _height); + Size_(const Size_& sz); + Size_(Size_&& sz) CV_NOEXCEPT; + Size_(const Point_<_Tp>& pt); + + Size_& operator = (const Size_& sz); + Size_& operator = (Size_&& sz) CV_NOEXCEPT; + //! the area (width*height) + _Tp area() const; + //! aspect ratio (width/height) + double aspectRatio() const; + //! true if empty + bool empty() const; + + //! conversion of another data type. + template operator Size_<_Tp2>() const; + + _Tp width; //!< the width + _Tp height; //!< the height +}; + +typedef Size_ Size2i; +typedef Size_ Size2l; +typedef Size_ Size2f; +typedef Size_ Size2d; +typedef Size2i Size; + +template class DataType< Size_<_Tp> > +{ +public: + typedef Size_<_Tp> value_type; + typedef Size_::work_type> work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 2, + fmt = DataType::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template +struct Depth< Size_<_Tp> > { enum { value = Depth<_Tp>::value }; }; +template +struct Type< Size_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 2) }; }; +} // namespace + +//////////////////////////////// Rect_ //////////////////////////////// + +/** @brief Template class for 2D rectangles + +described by the following parameters: +- Coordinates of the top-left corner. This is a default interpretation of Rect_::x and Rect_::y + in OpenCV. Though, in your algorithms you may count x and y from the bottom-left corner. +- Rectangle width and height. + +OpenCV typically assumes that the top and left boundary of the rectangle are inclusive, while the +right and bottom boundaries are not. For example, the method Rect_::contains returns true if + +\f[x \leq pt.x < x+width, + y \leq pt.y < y+height\f] + +Virtually every loop over an image ROI in OpenCV (where ROI is specified by Rect_\ ) is +implemented as: +@code + for(int y = roi.y; y < roi.y + roi.height; y++) + for(int x = roi.x; x < roi.x + roi.width; x++) + { + // ... + } +@endcode +In addition to the class members, the following operations on rectangles are implemented: +- \f$\texttt{rect} = \texttt{rect} \pm \texttt{point}\f$ (shifting a rectangle by a certain offset) +- \f$\texttt{rect} = \texttt{rect} \pm \texttt{size}\f$ (expanding or shrinking a rectangle by a + certain amount) +- rect += point, rect -= point, rect += size, rect -= size (augmenting operations) +- rect = rect1 & rect2 (rectangle intersection) +- rect = rect1 | rect2 (minimum area rectangle containing rect1 and rect2 ) +- rect &= rect1, rect |= rect1 (and the corresponding augmenting operations) +- rect == rect1, rect != rect1 (rectangle comparison) + +This is an example how the partial ordering on rectangles can be established (rect1 \f$\subseteq\f$ +rect2): +@code + template inline bool + operator <= (const Rect_<_Tp>& r1, const Rect_<_Tp>& r2) + { + return (r1 & r2) == r1; + } +@endcode +For your convenience, the Rect_\<\> alias is available: cv::Rect +*/ +template class Rect_ +{ +public: + typedef _Tp value_type; + + //! default constructor + Rect_(); + Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height); + Rect_(const Rect_& r); + Rect_(Rect_&& r) CV_NOEXCEPT; + Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz); + Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2); + + Rect_& operator = ( const Rect_& r ); + Rect_& operator = ( Rect_&& r ) CV_NOEXCEPT; + //! the top-left corner + Point_<_Tp> tl() const; + //! the bottom-right corner + Point_<_Tp> br() const; + + //! size (width, height) of the rectangle + Size_<_Tp> size() const; + //! area (width*height) of the rectangle + _Tp area() const; + //! true if empty + bool empty() const; + + //! conversion to another data type + template operator Rect_<_Tp2>() const; + + //! checks whether the rectangle contains the point + bool contains(const Point_<_Tp>& pt) const; + + _Tp x; //!< x coordinate of the top-left corner + _Tp y; //!< y coordinate of the top-left corner + _Tp width; //!< width of the rectangle + _Tp height; //!< height of the rectangle +}; + +typedef Rect_ Rect2i; +typedef Rect_ Rect2f; +typedef Rect_ Rect2d; +typedef Rect2i Rect; + +template class DataType< Rect_<_Tp> > +{ +public: + typedef Rect_<_Tp> value_type; + typedef Rect_::work_type> work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 4, + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template +struct Depth< Rect_<_Tp> > { enum { value = Depth<_Tp>::value }; }; +template +struct Type< Rect_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 4) }; }; +} // namespace + +///////////////////////////// RotatedRect ///////////////////////////// + +/** @brief The class represents rotated (i.e. not up-right) rectangles on a plane. + +Each rectangle is specified by the center point (mass center), length of each side (represented by +#Size2f structure) and the rotation angle in degrees. + +The sample below demonstrates how to use RotatedRect: +@snippet snippets/core_various.cpp RotatedRect_demo +![image](pics/rotatedrect.png) + +@sa CamShift, fitEllipse, minAreaRect, CvBox2D +*/ +class CV_EXPORTS RotatedRect +{ +public: + //! default constructor + RotatedRect(); + /** full constructor + @param center The rectangle mass center. + @param size Width and height of the rectangle. + @param angle The rotation angle in a clockwise direction. When the angle is 0, 90, 180, 270 etc., + the rectangle becomes an up-right rectangle. + */ + RotatedRect(const Point2f& center, const Size2f& size, float angle); + /** + Any 3 end points of the RotatedRect. They must be given in order (either clockwise or + anticlockwise). + */ + RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3); + + /** returns 4 vertices of the rectangle + @param pts The points array for storing rectangle vertices. The order is bottomLeft, topLeft, topRight, bottomRight. + */ + void points(Point2f pts[]) const; + //! returns the minimal up-right integer rectangle containing the rotated rectangle + Rect boundingRect() const; + //! returns the minimal (exact) floating point rectangle containing the rotated rectangle, not intended for use with images + Rect_ boundingRect2f() const; + //! returns the rectangle mass center + Point2f center; + //! returns width and height of the rectangle + Size2f size; + //! returns the rotation angle. When the angle is 0, 90, 180, 270 etc., the rectangle becomes an up-right rectangle. + float angle; +}; + +template<> class DataType< RotatedRect > +{ +public: + typedef RotatedRect value_type; + typedef value_type work_type; + typedef float channel_type; + + enum { generic_type = 0, + channels = (int)sizeof(value_type)/sizeof(channel_type), // 5 + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template<> +struct Depth< RotatedRect > { enum { value = Depth::value }; }; +template<> +struct Type< RotatedRect > { enum { value = CV_MAKETYPE(Depth::value, (int)sizeof(RotatedRect)/sizeof(float)) }; }; +} // namespace + + +//////////////////////////////// Range ///////////////////////////////// + +/** @brief Template class specifying a continuous subsequence (slice) of a sequence. + +The class is used to specify a row or a column span in a matrix ( Mat ) and for many other purposes. +Range(a,b) is basically the same as a:b in Matlab or a..b in Python. As in Python, start is an +inclusive left boundary of the range and end is an exclusive right boundary of the range. Such a +half-opened interval is usually denoted as \f$[start,end)\f$ . + +The static method Range::all() returns a special variable that means "the whole sequence" or "the +whole range", just like " : " in Matlab or " ... " in Python. All the methods and functions in +OpenCV that take Range support this special Range::all() value. But, of course, in case of your own +custom processing, you will probably have to check and handle it explicitly: +@code + void my_function(..., const Range& r, ....) + { + if(r == Range::all()) { + // process all the data + } + else { + // process [r.start, r.end) + } + } +@endcode +*/ +class CV_EXPORTS Range +{ +public: + Range(); + Range(int _start, int _end); + int size() const; + bool empty() const; + static Range all(); + + int start, end; +}; + +template<> class DataType +{ +public: + typedef Range value_type; + typedef value_type work_type; + typedef int channel_type; + + enum { generic_type = 0, + channels = 2, + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template<> +struct Depth< Range > { enum { value = Depth::value }; }; +template<> +struct Type< Range > { enum { value = CV_MAKETYPE(Depth::value, 2) }; }; +} // namespace + + +//////////////////////////////// Scalar_ /////////////////////////////// + +/** @brief Template class for a 4-element vector derived from Vec. + +Being derived from Vec\<_Tp, 4\> , Scalar\_ and Scalar can be used just as typical 4-element +vectors. In addition, they can be converted to/from CvScalar . The type Scalar is widely used in +OpenCV to pass pixel values. +*/ +template class Scalar_ : public Vec<_Tp, 4> +{ +public: + //! default constructor + Scalar_(); + Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0); + Scalar_(_Tp v0); + + Scalar_(const Scalar_& s); + Scalar_(Scalar_&& s) CV_NOEXCEPT; + + Scalar_& operator=(const Scalar_& s); + Scalar_& operator=(Scalar_&& s) CV_NOEXCEPT; + + template + Scalar_(const Vec<_Tp2, cn>& v); + + //! returns a scalar with all elements set to v0 + static Scalar_<_Tp> all(_Tp v0); + + //! conversion to another data type + template operator Scalar_() const; + + //! per-element product + Scalar_<_Tp> mul(const Scalar_<_Tp>& a, double scale=1 ) const; + + //! returns (v0, -v1, -v2, -v3) + Scalar_<_Tp> conj() const; + + //! returns true iff v1 == v2 == v3 == 0 + bool isReal() const; +}; + +typedef Scalar_ Scalar; + +template class DataType< Scalar_<_Tp> > +{ +public: + typedef Scalar_<_Tp> value_type; + typedef Scalar_::work_type> work_type; + typedef _Tp channel_type; + + enum { generic_type = 0, + channels = 4, + fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template +struct Depth< Scalar_<_Tp> > { enum { value = Depth<_Tp>::value }; }; +template +struct Type< Scalar_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 4) }; }; +} // namespace + + +/////////////////////////////// KeyPoint //////////////////////////////// + +/** @brief Data structure for salient point detectors. + +The class instance stores a keypoint, i.e. a point feature found by one of many available keypoint +detectors, such as Harris corner detector, #FAST, %StarDetector, %SURF, %SIFT etc. + +The keypoint is characterized by the 2D position, scale (proportional to the diameter of the +neighborhood that needs to be taken into account), orientation and some other parameters. The +keypoint neighborhood is then analyzed by another algorithm that builds a descriptor (usually +represented as a feature vector). The keypoints representing the same object in different images +can then be matched using %KDTree or another method. +*/ +class CV_EXPORTS_W_SIMPLE KeyPoint +{ +public: + //! the default constructor + CV_WRAP KeyPoint(); + /** + @param _pt x & y coordinates of the keypoint + @param _size keypoint diameter + @param _angle keypoint orientation + @param _response keypoint detector response on the keypoint (that is, strength of the keypoint) + @param _octave pyramid octave in which the keypoint has been detected + @param _class_id object id + */ + KeyPoint(Point2f _pt, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1); + /** + @param x x-coordinate of the keypoint + @param y y-coordinate of the keypoint + @param _size keypoint diameter + @param _angle keypoint orientation + @param _response keypoint detector response on the keypoint (that is, strength of the keypoint) + @param _octave pyramid octave in which the keypoint has been detected + @param _class_id object id + */ + CV_WRAP KeyPoint(float x, float y, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1); + + size_t hash() const; + + /** + This method converts vector of keypoints to vector of points or the reverse, where each keypoint is + assigned the same size and the same orientation. + + @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB + @param points2f Array of (x,y) coordinates of each keypoint + @param keypointIndexes Array of indexes of keypoints to be converted to points. (Acts like a mask to + convert only specified keypoints) + */ + CV_WRAP static void convert(const std::vector& keypoints, + CV_OUT std::vector& points2f, + const std::vector& keypointIndexes=std::vector()); + /** @overload + @param points2f Array of (x,y) coordinates of each keypoint + @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB + @param size keypoint diameter + @param response keypoint detector response on the keypoint (that is, strength of the keypoint) + @param octave pyramid octave in which the keypoint has been detected + @param class_id object id + */ + CV_WRAP static void convert(const std::vector& points2f, + CV_OUT std::vector& keypoints, + float size=1, float response=1, int octave=0, int class_id=-1); + + /** + This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint + regions' intersection and area of keypoint regions' union (considering keypoint region as circle). + If they don't overlap, we get zero. If they coincide at same location with same size, we get 1. + @param kp1 First keypoint + @param kp2 Second keypoint + */ + CV_WRAP static float overlap(const KeyPoint& kp1, const KeyPoint& kp2); + + CV_PROP_RW Point2f pt; //!< coordinates of the keypoints + CV_PROP_RW float size; //!< diameter of the meaningful keypoint neighborhood + CV_PROP_RW float angle; //!< computed orientation of the keypoint (-1 if not applicable); + //!< it's in [0,360) degrees and measured relative to + //!< image coordinate system, ie in clockwise. + CV_PROP_RW float response; //!< the response by which the most strong keypoints have been selected. Can be used for the further sorting or subsampling + CV_PROP_RW int octave; //!< octave (pyramid layer) from which the keypoint has been extracted + CV_PROP_RW int class_id; //!< object class (if the keypoints need to be clustered by an object they belong to) +}; + +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED +template<> class DataType +{ +public: + typedef KeyPoint value_type; + typedef float work_type; + typedef float channel_type; + + enum { generic_type = 0, + depth = DataType::depth, + channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 7 + fmt = DataType::fmt + ((channels - 1) << 8), + type = CV_MAKETYPE(depth, channels) + }; + + typedef Vec vec_type; +}; +#endif + + +//////////////////////////////// DMatch ///////////////////////////////// + +/** @brief Class for matching keypoint descriptors + +query descriptor index, train descriptor index, train image index, and distance between +descriptors. +*/ +class CV_EXPORTS_W_SIMPLE DMatch +{ +public: + CV_WRAP DMatch(); + CV_WRAP DMatch(int _queryIdx, int _trainIdx, float _distance); + CV_WRAP DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance); + + CV_PROP_RW int queryIdx; //!< query descriptor index + CV_PROP_RW int trainIdx; //!< train descriptor index + CV_PROP_RW int imgIdx; //!< train image index + + CV_PROP_RW float distance; + + // less is better + bool operator<(const DMatch &m) const; +}; + +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED +template<> class DataType +{ +public: + typedef DMatch value_type; + typedef int work_type; + typedef int channel_type; + + enum { generic_type = 0, + depth = DataType::depth, + channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 4 + fmt = DataType::fmt + ((channels - 1) << 8), + type = CV_MAKETYPE(depth, channels) + }; + + typedef Vec vec_type; +}; +#endif + + +///////////////////////////// TermCriteria ////////////////////////////// + +/** @brief The class defining termination criteria for iterative algorithms. + +You can initialize it by default constructor and then override any parameters, or the structure may +be fully initialized using the advanced variant of the constructor. +*/ +class CV_EXPORTS TermCriteria +{ +public: + /** + Criteria type, can be one of: COUNT, EPS or COUNT + EPS + */ + enum Type + { + COUNT=1, //!< the maximum number of iterations or elements to compute + MAX_ITER=COUNT, //!< ditto + EPS=2 //!< the desired accuracy or change in parameters at which the iterative algorithm stops + }; + + //! default constructor + TermCriteria(); + /** + @param type The type of termination criteria, one of TermCriteria::Type + @param maxCount The maximum number of iterations or elements to compute. + @param epsilon The desired accuracy or change in parameters at which the iterative algorithm stops. + */ + TermCriteria(int type, int maxCount, double epsilon); + + inline bool isValid() const + { + const bool isCount = (type & COUNT) && maxCount > 0; + const bool isEps = (type & EPS) && !cvIsNaN(epsilon); + return isCount || isEps; + } + + int type; //!< the type of termination criteria: COUNT, EPS or COUNT + EPS + int maxCount; //!< the maximum number of iterations/elements + double epsilon; //!< the desired accuracy +}; + + +//! @} core_basic + +///////////////////////// raster image moments ////////////////////////// + +//! @addtogroup imgproc_shape +//! @{ + +/** @brief struct returned by cv::moments + +The spatial moments \f$\texttt{Moments::m}_{ji}\f$ are computed as: + +\f[\texttt{m} _{ji}= \sum _{x,y} \left ( \texttt{array} (x,y) \cdot x^j \cdot y^i \right )\f] + +The central moments \f$\texttt{Moments::mu}_{ji}\f$ are computed as: + +\f[\texttt{mu} _{ji}= \sum _{x,y} \left ( \texttt{array} (x,y) \cdot (x - \bar{x} )^j \cdot (y - \bar{y} )^i \right )\f] + +where \f$(\bar{x}, \bar{y})\f$ is the mass center: + +\f[\bar{x} = \frac{\texttt{m}_{10}}{\texttt{m}_{00}} , \; \bar{y} = \frac{\texttt{m}_{01}}{\texttt{m}_{00}}\f] + +The normalized central moments \f$\texttt{Moments::nu}_{ij}\f$ are computed as: + +\f[\texttt{nu} _{ji}= \frac{\texttt{mu}_{ji}}{\texttt{m}_{00}^{(i+j)/2+1}} .\f] + +@note +\f$\texttt{mu}_{00}=\texttt{m}_{00}\f$, \f$\texttt{nu}_{00}=1\f$ +\f$\texttt{nu}_{10}=\texttt{mu}_{10}=\texttt{mu}_{01}=\texttt{mu}_{10}=0\f$ , hence the values are not +stored. + +The moments of a contour are defined in the same way but computed using the Green's formula (see +). So, due to a limited raster resolution, the moments +computed for a contour are slightly different from the moments computed for the same rasterized +contour. + +@note +Since the contour moments are computed using Green formula, you may get seemingly odd results for +contours with self-intersections, e.g. a zero area (m00) for butterfly-shaped contours. + */ +class CV_EXPORTS_W_MAP Moments +{ +public: + //! the default constructor + Moments(); + //! the full constructor + Moments(double m00, double m10, double m01, double m20, double m11, + double m02, double m30, double m21, double m12, double m03 ); + ////! the conversion from CvMoments + //Moments( const CvMoments& moments ); + ////! the conversion to CvMoments + //operator CvMoments() const; + + //! @name spatial moments + //! @{ + CV_PROP_RW double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; + //! @} + + //! @name central moments + //! @{ + CV_PROP_RW double mu20, mu11, mu02, mu30, mu21, mu12, mu03; + //! @} + + //! @name central normalized moments + //! @{ + CV_PROP_RW double nu20, nu11, nu02, nu30, nu21, nu12, nu03; + //! @} +}; + +template<> class DataType +{ +public: + typedef Moments value_type; + typedef double work_type; + typedef double channel_type; + + enum { generic_type = 0, + channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 24 + fmt = DataType::fmt + ((channels - 1) << 8) +#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED + ,depth = DataType::depth + ,type = CV_MAKETYPE(depth, channels) +#endif + }; + + typedef Vec vec_type; +}; + +namespace traits { +template<> +struct Depth< Moments > { enum { value = Depth::value }; }; +template<> +struct Type< Moments > { enum { value = CV_MAKETYPE(Depth::value, (int)(sizeof(Moments)/sizeof(double))) }; }; +} // namespace + +//! @} imgproc_shape + +//! @cond IGNORED + +///////////////////////////////////////////////////////////////////////// +///////////////////////////// Implementation //////////////////////////// +///////////////////////////////////////////////////////////////////////// + +//////////////////////////////// Complex //////////////////////////////// + +template inline +Complex<_Tp>::Complex() + : re(0), im(0) {} + +template inline +Complex<_Tp>::Complex( _Tp _re, _Tp _im ) + : re(_re), im(_im) {} + +template template inline +Complex<_Tp>::operator Complex() const +{ + return Complex(saturate_cast(re), saturate_cast(im)); +} + +template inline +Complex<_Tp> Complex<_Tp>::conj() const +{ + return Complex<_Tp>(re, -im); +} + + +template static inline +bool operator == (const Complex<_Tp>& a, const Complex<_Tp>& b) +{ + return a.re == b.re && a.im == b.im; +} + +template static inline +bool operator != (const Complex<_Tp>& a, const Complex<_Tp>& b) +{ + return a.re != b.re || a.im != b.im; +} + +template static inline +Complex<_Tp> operator + (const Complex<_Tp>& a, const Complex<_Tp>& b) +{ + return Complex<_Tp>( a.re + b.re, a.im + b.im ); +} + +template static inline +Complex<_Tp>& operator += (Complex<_Tp>& a, const Complex<_Tp>& b) +{ + a.re += b.re; a.im += b.im; + return a; +} + +template static inline +Complex<_Tp> operator - (const Complex<_Tp>& a, const Complex<_Tp>& b) +{ + return Complex<_Tp>( a.re - b.re, a.im - b.im ); +} + +template static inline +Complex<_Tp>& operator -= (Complex<_Tp>& a, const Complex<_Tp>& b) +{ + a.re -= b.re; a.im -= b.im; + return a; +} + +template static inline +Complex<_Tp> operator - (const Complex<_Tp>& a) +{ + return Complex<_Tp>(-a.re, -a.im); +} + +template static inline +Complex<_Tp> operator * (const Complex<_Tp>& a, const Complex<_Tp>& b) +{ + return Complex<_Tp>( a.re*b.re - a.im*b.im, a.re*b.im + a.im*b.re ); +} + +template static inline +Complex<_Tp> operator * (const Complex<_Tp>& a, _Tp b) +{ + return Complex<_Tp>( a.re*b, a.im*b ); +} + +template static inline +Complex<_Tp> operator * (_Tp b, const Complex<_Tp>& a) +{ + return Complex<_Tp>( a.re*b, a.im*b ); +} + +template static inline +Complex<_Tp> operator + (const Complex<_Tp>& a, _Tp b) +{ + return Complex<_Tp>( a.re + b, a.im ); +} + +template static inline +Complex<_Tp> operator - (const Complex<_Tp>& a, _Tp b) +{ return Complex<_Tp>( a.re - b, a.im ); } + +template static inline +Complex<_Tp> operator + (_Tp b, const Complex<_Tp>& a) +{ + return Complex<_Tp>( a.re + b, a.im ); +} + +template static inline +Complex<_Tp> operator - (_Tp b, const Complex<_Tp>& a) +{ + return Complex<_Tp>( b - a.re, -a.im ); +} + +template static inline +Complex<_Tp>& operator += (Complex<_Tp>& a, _Tp b) +{ + a.re += b; return a; +} + +template static inline +Complex<_Tp>& operator -= (Complex<_Tp>& a, _Tp b) +{ + a.re -= b; return a; +} + +template static inline +Complex<_Tp>& operator *= (Complex<_Tp>& a, _Tp b) +{ + a.re *= b; a.im *= b; return a; +} + +template static inline +double abs(const Complex<_Tp>& a) +{ + return std::sqrt( (double)a.re*a.re + (double)a.im*a.im); +} + +template static inline +Complex<_Tp> operator / (const Complex<_Tp>& a, const Complex<_Tp>& b) +{ + double t = 1./((double)b.re*b.re + (double)b.im*b.im); + return Complex<_Tp>( (_Tp)((a.re*b.re + a.im*b.im)*t), + (_Tp)((-a.re*b.im + a.im*b.re)*t) ); +} + +template static inline +Complex<_Tp>& operator /= (Complex<_Tp>& a, const Complex<_Tp>& b) +{ + a = a / b; + return a; +} + +template static inline +Complex<_Tp> operator / (const Complex<_Tp>& a, _Tp b) +{ + _Tp t = (_Tp)1/b; + return Complex<_Tp>( a.re*t, a.im*t ); +} + +template static inline +Complex<_Tp> operator / (_Tp b, const Complex<_Tp>& a) +{ + return Complex<_Tp>(b)/a; +} + +template static inline +Complex<_Tp> operator /= (const Complex<_Tp>& a, _Tp b) +{ + _Tp t = (_Tp)1/b; + a.re *= t; a.im *= t; return a; +} + + + +//////////////////////////////// 2D Point /////////////////////////////// + +template inline +Point_<_Tp>::Point_() + : x(0), y(0) {} + +template inline +Point_<_Tp>::Point_(_Tp _x, _Tp _y) + : x(_x), y(_y) {} + +template inline +Point_<_Tp>::Point_(const Point_& pt) + : x(pt.x), y(pt.y) {} + +template inline +Point_<_Tp>::Point_(Point_&& pt) CV_NOEXCEPT + : x(std::move(pt.x)), y(std::move(pt.y)) {} + +template inline +Point_<_Tp>::Point_(const Size_<_Tp>& sz) + : x(sz.width), y(sz.height) {} + +template inline +Point_<_Tp>::Point_(const Vec<_Tp,2>& v) + : x(v[0]), y(v[1]) {} + +template inline +Point_<_Tp>& Point_<_Tp>::operator = (const Point_& pt) +{ + x = pt.x; y = pt.y; + return *this; +} + +template inline +Point_<_Tp>& Point_<_Tp>::operator = (Point_&& pt) CV_NOEXCEPT +{ + x = std::move(pt.x); y = std::move(pt.y); + return *this; +} + +template template inline +Point_<_Tp>::operator Point_<_Tp2>() const +{ + return Point_<_Tp2>(saturate_cast<_Tp2>(x), saturate_cast<_Tp2>(y)); +} + +template inline +Point_<_Tp>::operator Vec<_Tp, 2>() const +{ + return Vec<_Tp, 2>(x, y); +} + +template inline +_Tp Point_<_Tp>::dot(const Point_& pt) const +{ + return saturate_cast<_Tp>(x*pt.x + y*pt.y); +} + +template inline +double Point_<_Tp>::ddot(const Point_& pt) const +{ + return (double)x*pt.x + (double)y*pt.y; +} + +template inline +double Point_<_Tp>::cross(const Point_& pt) const +{ + return (double)x*pt.y - (double)y*pt.x; +} + +template inline bool +Point_<_Tp>::inside( const Rect_<_Tp>& r ) const +{ + return r.contains(*this); +} + + +template static inline +Point_<_Tp>& operator += (Point_<_Tp>& a, const Point_<_Tp>& b) +{ + a.x += b.x; + a.y += b.y; + return a; +} + +template static inline +Point_<_Tp>& operator -= (Point_<_Tp>& a, const Point_<_Tp>& b) +{ + a.x -= b.x; + a.y -= b.y; + return a; +} + +template static inline +Point_<_Tp>& operator *= (Point_<_Tp>& a, int b) +{ + a.x = saturate_cast<_Tp>(a.x * b); + a.y = saturate_cast<_Tp>(a.y * b); + return a; +} + +template static inline +Point_<_Tp>& operator *= (Point_<_Tp>& a, float b) +{ + a.x = saturate_cast<_Tp>(a.x * b); + a.y = saturate_cast<_Tp>(a.y * b); + return a; +} + +template static inline +Point_<_Tp>& operator *= (Point_<_Tp>& a, double b) +{ + a.x = saturate_cast<_Tp>(a.x * b); + a.y = saturate_cast<_Tp>(a.y * b); + return a; +} + +template static inline +Point_<_Tp>& operator /= (Point_<_Tp>& a, int b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + return a; +} + +template static inline +Point_<_Tp>& operator /= (Point_<_Tp>& a, float b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + return a; +} + +template static inline +Point_<_Tp>& operator /= (Point_<_Tp>& a, double b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + return a; +} + +template static inline +double norm(const Point_<_Tp>& pt) +{ + return std::sqrt((double)pt.x*pt.x + (double)pt.y*pt.y); +} + +template static inline +bool operator == (const Point_<_Tp>& a, const Point_<_Tp>& b) +{ + return a.x == b.x && a.y == b.y; +} + +template static inline +bool operator != (const Point_<_Tp>& a, const Point_<_Tp>& b) +{ + return a.x != b.x || a.y != b.y; +} + +template static inline +Point_<_Tp> operator + (const Point_<_Tp>& a, const Point_<_Tp>& b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(a.x + b.x), saturate_cast<_Tp>(a.y + b.y) ); +} + +template static inline +Point_<_Tp> operator - (const Point_<_Tp>& a, const Point_<_Tp>& b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(a.x - b.x), saturate_cast<_Tp>(a.y - b.y) ); +} + +template static inline +Point_<_Tp> operator - (const Point_<_Tp>& a) +{ + return Point_<_Tp>( saturate_cast<_Tp>(-a.x), saturate_cast<_Tp>(-a.y) ); +} + +template static inline +Point_<_Tp> operator * (const Point_<_Tp>& a, int b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b) ); +} + +template static inline +Point_<_Tp> operator * (int a, const Point_<_Tp>& b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(b.x*a), saturate_cast<_Tp>(b.y*a) ); +} + +template static inline +Point_<_Tp> operator * (const Point_<_Tp>& a, float b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b) ); +} + +template static inline +Point_<_Tp> operator * (float a, const Point_<_Tp>& b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(b.x*a), saturate_cast<_Tp>(b.y*a) ); +} + +template static inline +Point_<_Tp> operator * (const Point_<_Tp>& a, double b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b) ); +} + +template static inline +Point_<_Tp> operator * (double a, const Point_<_Tp>& b) +{ + return Point_<_Tp>( saturate_cast<_Tp>(b.x*a), saturate_cast<_Tp>(b.y*a) ); +} + +template static inline +Point_<_Tp> operator * (const Matx<_Tp, 2, 2>& a, const Point_<_Tp>& b) +{ + Matx<_Tp, 2, 1> tmp = a * Vec<_Tp,2>(b.x, b.y); + return Point_<_Tp>(tmp.val[0], tmp.val[1]); +} + +template static inline +Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point_<_Tp>& b) +{ + Matx<_Tp, 3, 1> tmp = a * Vec<_Tp,3>(b.x, b.y, 1); + return Point3_<_Tp>(tmp.val[0], tmp.val[1], tmp.val[2]); +} + +template static inline +Point_<_Tp> operator / (const Point_<_Tp>& a, int b) +{ + Point_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Point_<_Tp> operator / (const Point_<_Tp>& a, float b) +{ + Point_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Point_<_Tp> operator / (const Point_<_Tp>& a, double b) +{ + Point_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + + +template static inline _AccTp normL2Sqr(const Point_& pt); +template static inline _AccTp normL2Sqr(const Point_& pt); +template static inline _AccTp normL2Sqr(const Point_& pt); +template static inline _AccTp normL2Sqr(const Point_& pt); + +template<> inline int normL2Sqr(const Point_& pt) { return pt.dot(pt); } +template<> inline int64 normL2Sqr(const Point_& pt) { return pt.dot(pt); } +template<> inline float normL2Sqr(const Point_& pt) { return pt.dot(pt); } +template<> inline double normL2Sqr(const Point_& pt) { return pt.dot(pt); } + +template<> inline double normL2Sqr(const Point_& pt) { return pt.ddot(pt); } +template<> inline double normL2Sqr(const Point_& pt) { return pt.ddot(pt); } + + + +//////////////////////////////// 3D Point /////////////////////////////// + +template inline +Point3_<_Tp>::Point3_() + : x(0), y(0), z(0) {} + +template inline +Point3_<_Tp>::Point3_(_Tp _x, _Tp _y, _Tp _z) + : x(_x), y(_y), z(_z) {} + +template inline +Point3_<_Tp>::Point3_(const Point3_& pt) + : x(pt.x), y(pt.y), z(pt.z) {} + +template inline +Point3_<_Tp>::Point3_(Point3_&& pt) CV_NOEXCEPT + : x(std::move(pt.x)), y(std::move(pt.y)), z(std::move(pt.z)) {} + +template inline +Point3_<_Tp>::Point3_(const Point_<_Tp>& pt) + : x(pt.x), y(pt.y), z(_Tp()) {} + +template inline +Point3_<_Tp>::Point3_(const Vec<_Tp, 3>& v) + : x(v[0]), y(v[1]), z(v[2]) {} + +template template inline +Point3_<_Tp>::operator Point3_<_Tp2>() const +{ + return Point3_<_Tp2>(saturate_cast<_Tp2>(x), saturate_cast<_Tp2>(y), saturate_cast<_Tp2>(z)); +} + +template inline +Point3_<_Tp>::operator Vec<_Tp, 3>() const +{ + return Vec<_Tp, 3>(x, y, z); +} + +template inline +Point3_<_Tp>& Point3_<_Tp>::operator = (const Point3_& pt) +{ + x = pt.x; y = pt.y; z = pt.z; + return *this; +} + +template inline +Point3_<_Tp>& Point3_<_Tp>::operator = (Point3_&& pt) CV_NOEXCEPT +{ + x = std::move(pt.x); y = std::move(pt.y); z = std::move(pt.z); + return *this; +} + +template inline +_Tp Point3_<_Tp>::dot(const Point3_& pt) const +{ + return saturate_cast<_Tp>(x*pt.x + y*pt.y + z*pt.z); +} + +template inline +double Point3_<_Tp>::ddot(const Point3_& pt) const +{ + return (double)x*pt.x + (double)y*pt.y + (double)z*pt.z; +} + +template inline +Point3_<_Tp> Point3_<_Tp>::cross(const Point3_<_Tp>& pt) const +{ + return Point3_<_Tp>(y*pt.z - z*pt.y, z*pt.x - x*pt.z, x*pt.y - y*pt.x); +} + + +template static inline +Point3_<_Tp>& operator += (Point3_<_Tp>& a, const Point3_<_Tp>& b) +{ + a.x += b.x; + a.y += b.y; + a.z += b.z; + return a; +} + +template static inline +Point3_<_Tp>& operator -= (Point3_<_Tp>& a, const Point3_<_Tp>& b) +{ + a.x -= b.x; + a.y -= b.y; + a.z -= b.z; + return a; +} + +template static inline +Point3_<_Tp>& operator *= (Point3_<_Tp>& a, int b) +{ + a.x = saturate_cast<_Tp>(a.x * b); + a.y = saturate_cast<_Tp>(a.y * b); + a.z = saturate_cast<_Tp>(a.z * b); + return a; +} + +template static inline +Point3_<_Tp>& operator *= (Point3_<_Tp>& a, float b) +{ + a.x = saturate_cast<_Tp>(a.x * b); + a.y = saturate_cast<_Tp>(a.y * b); + a.z = saturate_cast<_Tp>(a.z * b); + return a; +} + +template static inline +Point3_<_Tp>& operator *= (Point3_<_Tp>& a, double b) +{ + a.x = saturate_cast<_Tp>(a.x * b); + a.y = saturate_cast<_Tp>(a.y * b); + a.z = saturate_cast<_Tp>(a.z * b); + return a; +} + +template static inline +Point3_<_Tp>& operator /= (Point3_<_Tp>& a, int b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + a.z = saturate_cast<_Tp>(a.z / b); + return a; +} + +template static inline +Point3_<_Tp>& operator /= (Point3_<_Tp>& a, float b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + a.z = saturate_cast<_Tp>(a.z / b); + return a; +} + +template static inline +Point3_<_Tp>& operator /= (Point3_<_Tp>& a, double b) +{ + a.x = saturate_cast<_Tp>(a.x / b); + a.y = saturate_cast<_Tp>(a.y / b); + a.z = saturate_cast<_Tp>(a.z / b); + return a; +} + +template static inline +double norm(const Point3_<_Tp>& pt) +{ + return std::sqrt((double)pt.x*pt.x + (double)pt.y*pt.y + (double)pt.z*pt.z); +} + +template static inline +bool operator == (const Point3_<_Tp>& a, const Point3_<_Tp>& b) +{ + return a.x == b.x && a.y == b.y && a.z == b.z; +} + +template static inline +bool operator != (const Point3_<_Tp>& a, const Point3_<_Tp>& b) +{ + return a.x != b.x || a.y != b.y || a.z != b.z; +} + +template static inline +Point3_<_Tp> operator + (const Point3_<_Tp>& a, const Point3_<_Tp>& b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(a.x + b.x), saturate_cast<_Tp>(a.y + b.y), saturate_cast<_Tp>(a.z + b.z)); +} + +template static inline +Point3_<_Tp> operator - (const Point3_<_Tp>& a, const Point3_<_Tp>& b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(a.x - b.x), saturate_cast<_Tp>(a.y - b.y), saturate_cast<_Tp>(a.z - b.z)); +} + +template static inline +Point3_<_Tp> operator - (const Point3_<_Tp>& a) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(-a.x), saturate_cast<_Tp>(-a.y), saturate_cast<_Tp>(-a.z) ); +} + +template static inline +Point3_<_Tp> operator * (const Point3_<_Tp>& a, int b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b), saturate_cast<_Tp>(a.z*b) ); +} + +template static inline +Point3_<_Tp> operator * (int a, const Point3_<_Tp>& b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(b.x * a), saturate_cast<_Tp>(b.y * a), saturate_cast<_Tp>(b.z * a) ); +} + +template static inline +Point3_<_Tp> operator * (const Point3_<_Tp>& a, float b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(a.x * b), saturate_cast<_Tp>(a.y * b), saturate_cast<_Tp>(a.z * b) ); +} + +template static inline +Point3_<_Tp> operator * (float a, const Point3_<_Tp>& b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(b.x * a), saturate_cast<_Tp>(b.y * a), saturate_cast<_Tp>(b.z * a) ); +} + +template static inline +Point3_<_Tp> operator * (const Point3_<_Tp>& a, double b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(a.x * b), saturate_cast<_Tp>(a.y * b), saturate_cast<_Tp>(a.z * b) ); +} + +template static inline +Point3_<_Tp> operator * (double a, const Point3_<_Tp>& b) +{ + return Point3_<_Tp>( saturate_cast<_Tp>(b.x * a), saturate_cast<_Tp>(b.y * a), saturate_cast<_Tp>(b.z * a) ); +} + +template static inline +Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point3_<_Tp>& b) +{ + Matx<_Tp, 3, 1> tmp = a * Vec<_Tp,3>(b.x, b.y, b.z); + return Point3_<_Tp>(tmp.val[0], tmp.val[1], tmp.val[2]); +} + +template static inline +Matx<_Tp, 4, 1> operator * (const Matx<_Tp, 4, 4>& a, const Point3_<_Tp>& b) +{ + return a * Matx<_Tp, 4, 1>(b.x, b.y, b.z, 1); +} + +template static inline +Point3_<_Tp> operator / (const Point3_<_Tp>& a, int b) +{ + Point3_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Point3_<_Tp> operator / (const Point3_<_Tp>& a, float b) +{ + Point3_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Point3_<_Tp> operator / (const Point3_<_Tp>& a, double b) +{ + Point3_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + + + +////////////////////////////////// Size ///////////////////////////////// + +template inline +Size_<_Tp>::Size_() + : width(0), height(0) {} + +template inline +Size_<_Tp>::Size_(_Tp _width, _Tp _height) + : width(_width), height(_height) {} + +template inline +Size_<_Tp>::Size_(const Size_& sz) + : width(sz.width), height(sz.height) {} + +template inline +Size_<_Tp>::Size_(Size_&& sz) CV_NOEXCEPT + : width(std::move(sz.width)), height(std::move(sz.height)) {} + +template inline +Size_<_Tp>::Size_(const Point_<_Tp>& pt) + : width(pt.x), height(pt.y) {} + +template template inline +Size_<_Tp>::operator Size_<_Tp2>() const +{ + return Size_<_Tp2>(saturate_cast<_Tp2>(width), saturate_cast<_Tp2>(height)); +} + +template inline +Size_<_Tp>& Size_<_Tp>::operator = (const Size_<_Tp>& sz) +{ + width = sz.width; height = sz.height; + return *this; +} + +template inline +Size_<_Tp>& Size_<_Tp>::operator = (Size_<_Tp>&& sz) CV_NOEXCEPT +{ + width = std::move(sz.width); height = std::move(sz.height); + return *this; +} + +template inline +_Tp Size_<_Tp>::area() const +{ + const _Tp result = width * height; + CV_DbgAssert(!std::numeric_limits<_Tp>::is_integer + || width == 0 || result / width == height); // make sure the result fits in the return value + return result; +} + +template inline +double Size_<_Tp>::aspectRatio() const +{ + return width / static_cast(height); +} + +template inline +bool Size_<_Tp>::empty() const +{ + return width <= 0 || height <= 0; +} + + +template static inline +Size_<_Tp>& operator *= (Size_<_Tp>& a, _Tp b) +{ + a.width *= b; + a.height *= b; + return a; +} + +template static inline +Size_<_Tp> operator * (const Size_<_Tp>& a, _Tp b) +{ + Size_<_Tp> tmp(a); + tmp *= b; + return tmp; +} + +template static inline +Size_<_Tp>& operator /= (Size_<_Tp>& a, _Tp b) +{ + a.width /= b; + a.height /= b; + return a; +} + +template static inline +Size_<_Tp> operator / (const Size_<_Tp>& a, _Tp b) +{ + Size_<_Tp> tmp(a); + tmp /= b; + return tmp; +} + +template static inline +Size_<_Tp>& operator += (Size_<_Tp>& a, const Size_<_Tp>& b) +{ + a.width += b.width; + a.height += b.height; + return a; +} + +template static inline +Size_<_Tp> operator + (const Size_<_Tp>& a, const Size_<_Tp>& b) +{ + Size_<_Tp> tmp(a); + tmp += b; + return tmp; +} + +template static inline +Size_<_Tp>& operator -= (Size_<_Tp>& a, const Size_<_Tp>& b) +{ + a.width -= b.width; + a.height -= b.height; + return a; +} + +template static inline +Size_<_Tp> operator - (const Size_<_Tp>& a, const Size_<_Tp>& b) +{ + Size_<_Tp> tmp(a); + tmp -= b; + return tmp; +} + +template static inline +bool operator == (const Size_<_Tp>& a, const Size_<_Tp>& b) +{ + return a.width == b.width && a.height == b.height; +} + +template static inline +bool operator != (const Size_<_Tp>& a, const Size_<_Tp>& b) +{ + return !(a == b); +} + + + +////////////////////////////////// Rect ///////////////////////////////// + +template inline +Rect_<_Tp>::Rect_() + : x(0), y(0), width(0), height(0) {} + +template inline +Rect_<_Tp>::Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height) + : x(_x), y(_y), width(_width), height(_height) {} + +template inline +Rect_<_Tp>::Rect_(const Rect_<_Tp>& r) + : x(r.x), y(r.y), width(r.width), height(r.height) {} + +template inline +Rect_<_Tp>::Rect_(Rect_<_Tp>&& r) CV_NOEXCEPT + : x(std::move(r.x)), y(std::move(r.y)), width(std::move(r.width)), height(std::move(r.height)) {} + +template inline +Rect_<_Tp>::Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz) + : x(org.x), y(org.y), width(sz.width), height(sz.height) {} + +template inline +Rect_<_Tp>::Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2) +{ + x = std::min(pt1.x, pt2.x); + y = std::min(pt1.y, pt2.y); + width = std::max(pt1.x, pt2.x) - x; + height = std::max(pt1.y, pt2.y) - y; +} + +template inline +Rect_<_Tp>& Rect_<_Tp>::operator = ( const Rect_<_Tp>& r ) +{ + x = r.x; + y = r.y; + width = r.width; + height = r.height; + return *this; +} + +template inline +Rect_<_Tp>& Rect_<_Tp>::operator = ( Rect_<_Tp>&& r ) CV_NOEXCEPT +{ + x = std::move(r.x); + y = std::move(r.y); + width = std::move(r.width); + height = std::move(r.height); + return *this; +} + +template inline +Point_<_Tp> Rect_<_Tp>::tl() const +{ + return Point_<_Tp>(x,y); +} + +template inline +Point_<_Tp> Rect_<_Tp>::br() const +{ + return Point_<_Tp>(x + width, y + height); +} + +template inline +Size_<_Tp> Rect_<_Tp>::size() const +{ + return Size_<_Tp>(width, height); +} + +template inline +_Tp Rect_<_Tp>::area() const +{ + const _Tp result = width * height; + CV_DbgAssert(!std::numeric_limits<_Tp>::is_integer + || width == 0 || result / width == height); // make sure the result fits in the return value + return result; +} + +template inline +bool Rect_<_Tp>::empty() const +{ + return width <= 0 || height <= 0; +} + +template template inline +Rect_<_Tp>::operator Rect_<_Tp2>() const +{ + return Rect_<_Tp2>(saturate_cast<_Tp2>(x), saturate_cast<_Tp2>(y), saturate_cast<_Tp2>(width), saturate_cast<_Tp2>(height)); +} + +template inline +bool Rect_<_Tp>::contains(const Point_<_Tp>& pt) const +{ + return x <= pt.x && pt.x < x + width && y <= pt.y && pt.y < y + height; +} + + +template static inline +Rect_<_Tp>& operator += ( Rect_<_Tp>& a, const Point_<_Tp>& b ) +{ + a.x += b.x; + a.y += b.y; + return a; +} + +template static inline +Rect_<_Tp>& operator -= ( Rect_<_Tp>& a, const Point_<_Tp>& b ) +{ + a.x -= b.x; + a.y -= b.y; + return a; +} + +template static inline +Rect_<_Tp>& operator += ( Rect_<_Tp>& a, const Size_<_Tp>& b ) +{ + a.width += b.width; + a.height += b.height; + return a; +} + +template static inline +Rect_<_Tp>& operator -= ( Rect_<_Tp>& a, const Size_<_Tp>& b ) +{ + const _Tp width = a.width - b.width; + const _Tp height = a.height - b.height; + CV_DbgAssert(width >= 0 && height >= 0); + a.width = width; + a.height = height; + return a; +} + +template static inline +Rect_<_Tp>& operator &= ( Rect_<_Tp>& a, const Rect_<_Tp>& b ) +{ + _Tp x1 = std::max(a.x, b.x); + _Tp y1 = std::max(a.y, b.y); + a.width = std::min(a.x + a.width, b.x + b.width) - x1; + a.height = std::min(a.y + a.height, b.y + b.height) - y1; + a.x = x1; + a.y = y1; + if( a.width <= 0 || a.height <= 0 ) + a = Rect(); + return a; +} + +template static inline +Rect_<_Tp>& operator |= ( Rect_<_Tp>& a, const Rect_<_Tp>& b ) +{ + if (a.empty()) { + a = b; + } + else if (!b.empty()) { + _Tp x1 = std::min(a.x, b.x); + _Tp y1 = std::min(a.y, b.y); + a.width = std::max(a.x + a.width, b.x + b.width) - x1; + a.height = std::max(a.y + a.height, b.y + b.height) - y1; + a.x = x1; + a.y = y1; + } + return a; +} + +template static inline +bool operator == (const Rect_<_Tp>& a, const Rect_<_Tp>& b) +{ + return a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height; +} + +template static inline +bool operator != (const Rect_<_Tp>& a, const Rect_<_Tp>& b) +{ + return a.x != b.x || a.y != b.y || a.width != b.width || a.height != b.height; +} + +template static inline +Rect_<_Tp> operator + (const Rect_<_Tp>& a, const Point_<_Tp>& b) +{ + return Rect_<_Tp>( a.x + b.x, a.y + b.y, a.width, a.height ); +} + +template static inline +Rect_<_Tp> operator - (const Rect_<_Tp>& a, const Point_<_Tp>& b) +{ + return Rect_<_Tp>( a.x - b.x, a.y - b.y, a.width, a.height ); +} + +template static inline +Rect_<_Tp> operator + (const Rect_<_Tp>& a, const Size_<_Tp>& b) +{ + return Rect_<_Tp>( a.x, a.y, a.width + b.width, a.height + b.height ); +} + +template static inline +Rect_<_Tp> operator - (const Rect_<_Tp>& a, const Size_<_Tp>& b) +{ + const _Tp width = a.width - b.width; + const _Tp height = a.height - b.height; + CV_DbgAssert(width >= 0 && height >= 0); + return Rect_<_Tp>( a.x, a.y, width, height ); +} + +template static inline +Rect_<_Tp> operator & (const Rect_<_Tp>& a, const Rect_<_Tp>& b) +{ + Rect_<_Tp> c = a; + return c &= b; +} + +template static inline +Rect_<_Tp> operator | (const Rect_<_Tp>& a, const Rect_<_Tp>& b) +{ + Rect_<_Tp> c = a; + return c |= b; +} + +/** + * @brief measure dissimilarity between two sample sets + * + * computes the complement of the Jaccard Index as described in . + * For rectangles this reduces to computing the intersection over the union. + */ +template static inline +double jaccardDistance(const Rect_<_Tp>& a, const Rect_<_Tp>& b) { + _Tp Aa = a.area(); + _Tp Ab = b.area(); + + if ((Aa + Ab) <= std::numeric_limits<_Tp>::epsilon()) { + // jaccard_index = 1 -> distance = 0 + return 0.0; + } + + double Aab = (a & b).area(); + // distance = 1 - jaccard_index + return 1.0 - Aab / (Aa + Ab - Aab); +} + +////////////////////////////// RotatedRect ////////////////////////////// + +inline +RotatedRect::RotatedRect() + : center(), size(), angle(0) {} + +inline +RotatedRect::RotatedRect(const Point2f& _center, const Size2f& _size, float _angle) + : center(_center), size(_size), angle(_angle) {} + +///////////////////////////////// Range ///////////////////////////////// + +inline +Range::Range() + : start(0), end(0) {} + +inline +Range::Range(int _start, int _end) + : start(_start), end(_end) {} + +inline +int Range::size() const +{ + return end - start; +} + +inline +bool Range::empty() const +{ + return start == end; +} + +inline +Range Range::all() +{ + return Range(INT_MIN, INT_MAX); +} + + +static inline +bool operator == (const Range& r1, const Range& r2) +{ + return r1.start == r2.start && r1.end == r2.end; +} + +static inline +bool operator != (const Range& r1, const Range& r2) +{ + return !(r1 == r2); +} + +static inline +bool operator !(const Range& r) +{ + return r.start == r.end; +} + +static inline +Range operator & (const Range& r1, const Range& r2) +{ + Range r(std::max(r1.start, r2.start), std::min(r1.end, r2.end)); + r.end = std::max(r.end, r.start); + return r; +} + +static inline +Range& operator &= (Range& r1, const Range& r2) +{ + r1 = r1 & r2; + return r1; +} + +static inline +Range operator + (const Range& r1, int delta) +{ + return Range(r1.start + delta, r1.end + delta); +} + +static inline +Range operator + (int delta, const Range& r1) +{ + return Range(r1.start + delta, r1.end + delta); +} + +static inline +Range operator - (const Range& r1, int delta) +{ + return r1 + (-delta); +} + + + +///////////////////////////////// Scalar //////////////////////////////// + +template inline +Scalar_<_Tp>::Scalar_() +{ + this->val[0] = this->val[1] = this->val[2] = this->val[3] = 0; +} + +template inline +Scalar_<_Tp>::Scalar_(_Tp v0, _Tp v1, _Tp v2, _Tp v3) +{ + this->val[0] = v0; + this->val[1] = v1; + this->val[2] = v2; + this->val[3] = v3; +} + +template inline +Scalar_<_Tp>::Scalar_(const Scalar_<_Tp>& s) : Vec<_Tp, 4>(s) { +} + +template inline +Scalar_<_Tp>::Scalar_(Scalar_<_Tp>&& s) CV_NOEXCEPT { + this->val[0] = std::move(s.val[0]); + this->val[1] = std::move(s.val[1]); + this->val[2] = std::move(s.val[2]); + this->val[3] = std::move(s.val[3]); +} + +template inline +Scalar_<_Tp>& Scalar_<_Tp>::operator=(const Scalar_<_Tp>& s) { + this->val[0] = s.val[0]; + this->val[1] = s.val[1]; + this->val[2] = s.val[2]; + this->val[3] = s.val[3]; + return *this; +} + +template inline +Scalar_<_Tp>& Scalar_<_Tp>::operator=(Scalar_<_Tp>&& s) CV_NOEXCEPT { + this->val[0] = std::move(s.val[0]); + this->val[1] = std::move(s.val[1]); + this->val[2] = std::move(s.val[2]); + this->val[3] = std::move(s.val[3]); + return *this; +} + +template template inline +Scalar_<_Tp>::Scalar_(const Vec<_Tp2, cn>& v) +{ + int i; + for( i = 0; i < (cn < 4 ? cn : 4); i++ ) + this->val[i] = cv::saturate_cast<_Tp>(v.val[i]); + for( ; i < 4; i++ ) + this->val[i] = 0; +} + +template inline +Scalar_<_Tp>::Scalar_(_Tp v0) +{ + this->val[0] = v0; + this->val[1] = this->val[2] = this->val[3] = 0; +} + +template inline +Scalar_<_Tp> Scalar_<_Tp>::all(_Tp v0) +{ + return Scalar_<_Tp>(v0, v0, v0, v0); +} + + +template inline +Scalar_<_Tp> Scalar_<_Tp>::mul(const Scalar_<_Tp>& a, double scale ) const +{ + return Scalar_<_Tp>(saturate_cast<_Tp>(this->val[0] * a.val[0] * scale), + saturate_cast<_Tp>(this->val[1] * a.val[1] * scale), + saturate_cast<_Tp>(this->val[2] * a.val[2] * scale), + saturate_cast<_Tp>(this->val[3] * a.val[3] * scale)); +} + +template inline +Scalar_<_Tp> Scalar_<_Tp>::conj() const +{ + return Scalar_<_Tp>(saturate_cast<_Tp>( this->val[0]), + saturate_cast<_Tp>(-this->val[1]), + saturate_cast<_Tp>(-this->val[2]), + saturate_cast<_Tp>(-this->val[3])); +} + +template inline +bool Scalar_<_Tp>::isReal() const +{ + return this->val[1] == 0 && this->val[2] == 0 && this->val[3] == 0; +} + + +template template inline +Scalar_<_Tp>::operator Scalar_() const +{ + return Scalar_(saturate_cast(this->val[0]), + saturate_cast(this->val[1]), + saturate_cast(this->val[2]), + saturate_cast(this->val[3])); +} + + +template static inline +Scalar_<_Tp>& operator += (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + a.val[0] += b.val[0]; + a.val[1] += b.val[1]; + a.val[2] += b.val[2]; + a.val[3] += b.val[3]; + return a; +} + +template static inline +Scalar_<_Tp>& operator -= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + a.val[0] -= b.val[0]; + a.val[1] -= b.val[1]; + a.val[2] -= b.val[2]; + a.val[3] -= b.val[3]; + return a; +} + +template static inline +Scalar_<_Tp>& operator *= ( Scalar_<_Tp>& a, _Tp v ) +{ + a.val[0] *= v; + a.val[1] *= v; + a.val[2] *= v; + a.val[3] *= v; + return a; +} + +template static inline +bool operator == ( const Scalar_<_Tp>& a, const Scalar_<_Tp>& b ) +{ + return a.val[0] == b.val[0] && a.val[1] == b.val[1] && + a.val[2] == b.val[2] && a.val[3] == b.val[3]; +} + +template static inline +bool operator != ( const Scalar_<_Tp>& a, const Scalar_<_Tp>& b ) +{ + return a.val[0] != b.val[0] || a.val[1] != b.val[1] || + a.val[2] != b.val[2] || a.val[3] != b.val[3]; +} + +template static inline +Scalar_<_Tp> operator + (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + return Scalar_<_Tp>(a.val[0] + b.val[0], + a.val[1] + b.val[1], + a.val[2] + b.val[2], + a.val[3] + b.val[3]); +} + +template static inline +Scalar_<_Tp> operator - (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + return Scalar_<_Tp>(saturate_cast<_Tp>(a.val[0] - b.val[0]), + saturate_cast<_Tp>(a.val[1] - b.val[1]), + saturate_cast<_Tp>(a.val[2] - b.val[2]), + saturate_cast<_Tp>(a.val[3] - b.val[3])); +} + +template static inline +Scalar_<_Tp> operator * (const Scalar_<_Tp>& a, _Tp alpha) +{ + return Scalar_<_Tp>(a.val[0] * alpha, + a.val[1] * alpha, + a.val[2] * alpha, + a.val[3] * alpha); +} + +template static inline +Scalar_<_Tp> operator * (_Tp alpha, const Scalar_<_Tp>& a) +{ + return a*alpha; +} + +template static inline +Scalar_<_Tp> operator - (const Scalar_<_Tp>& a) +{ + return Scalar_<_Tp>(saturate_cast<_Tp>(-a.val[0]), + saturate_cast<_Tp>(-a.val[1]), + saturate_cast<_Tp>(-a.val[2]), + saturate_cast<_Tp>(-a.val[3])); +} + + +template static inline +Scalar_<_Tp> operator * (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + return Scalar_<_Tp>(saturate_cast<_Tp>(a[0]*b[0] - a[1]*b[1] - a[2]*b[2] - a[3]*b[3]), + saturate_cast<_Tp>(a[0]*b[1] + a[1]*b[0] + a[2]*b[3] - a[3]*b[2]), + saturate_cast<_Tp>(a[0]*b[2] - a[1]*b[3] + a[2]*b[0] + a[3]*b[1]), + saturate_cast<_Tp>(a[0]*b[3] + a[1]*b[2] - a[2]*b[1] + a[3]*b[0])); +} + +template static inline +Scalar_<_Tp>& operator *= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + a = a * b; + return a; +} + +template static inline +Scalar_<_Tp> operator / (const Scalar_<_Tp>& a, _Tp alpha) +{ + return Scalar_<_Tp>(a.val[0] / alpha, + a.val[1] / alpha, + a.val[2] / alpha, + a.val[3] / alpha); +} + +template static inline +Scalar_ operator / (const Scalar_& a, float alpha) +{ + float s = 1 / alpha; + return Scalar_(a.val[0] * s, a.val[1] * s, a.val[2] * s, a.val[3] * s); +} + +template static inline +Scalar_ operator / (const Scalar_& a, double alpha) +{ + double s = 1 / alpha; + return Scalar_(a.val[0] * s, a.val[1] * s, a.val[2] * s, a.val[3] * s); +} + +template static inline +Scalar_<_Tp>& operator /= (Scalar_<_Tp>& a, _Tp alpha) +{ + a = a / alpha; + return a; +} + +template static inline +Scalar_<_Tp> operator / (_Tp a, const Scalar_<_Tp>& b) +{ + _Tp s = a / (b[0]*b[0] + b[1]*b[1] + b[2]*b[2] + b[3]*b[3]); + return b.conj() * s; +} + +template static inline +Scalar_<_Tp> operator / (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + return a * ((_Tp)1 / b); +} + +template static inline +Scalar_<_Tp>& operator /= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) +{ + a = a / b; + return a; +} + +template static inline +Scalar operator * (const Matx<_Tp, 4, 4>& a, const Scalar& b) +{ + Matx c((Matx)a, b, Matx_MatMulOp()); + return reinterpret_cast(c); +} + +template<> inline +Scalar operator * (const Matx& a, const Scalar& b) +{ + Matx c(a, b, Matx_MatMulOp()); + return reinterpret_cast(c); +} + + + +//////////////////////////////// KeyPoint /////////////////////////////// + +inline +KeyPoint::KeyPoint() + : pt(0,0), size(0), angle(-1), response(0), octave(0), class_id(-1) {} + +inline +KeyPoint::KeyPoint(Point2f _pt, float _size, float _angle, float _response, int _octave, int _class_id) + : pt(_pt), size(_size), angle(_angle), response(_response), octave(_octave), class_id(_class_id) {} + +inline +KeyPoint::KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave, int _class_id) + : pt(x, y), size(_size), angle(_angle), response(_response), octave(_octave), class_id(_class_id) {} + + + +///////////////////////////////// DMatch //////////////////////////////// + +inline +DMatch::DMatch() + : queryIdx(-1), trainIdx(-1), imgIdx(-1), distance(FLT_MAX) {} + +inline +DMatch::DMatch(int _queryIdx, int _trainIdx, float _distance) + : queryIdx(_queryIdx), trainIdx(_trainIdx), imgIdx(-1), distance(_distance) {} + +inline +DMatch::DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance) + : queryIdx(_queryIdx), trainIdx(_trainIdx), imgIdx(_imgIdx), distance(_distance) {} + +inline +bool DMatch::operator < (const DMatch &m) const +{ + return distance < m.distance; +} + + + +////////////////////////////// TermCriteria ///////////////////////////// + +inline +TermCriteria::TermCriteria() + : type(0), maxCount(0), epsilon(0) {} + +inline +TermCriteria::TermCriteria(int _type, int _maxCount, double _epsilon) + : type(_type), maxCount(_maxCount), epsilon(_epsilon) {} + +//! @endcond + +} // cv + +#endif //OPENCV_CORE_TYPES_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/types_c.h b/lib/3rdParty/OpenCV/include/opencv2/core/types_c.h new file mode 100644 index 000000000..a095bc385 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/types_c.h @@ -0,0 +1,2120 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_TYPES_H +#define OPENCV_CORE_TYPES_H + +#if !defined(__OPENCV_BUILD) && !defined(CV__DISABLE_C_API_CTORS) +#define CV__ENABLE_C_API_CTORS // enable C API ctors (must be removed) +#endif + +//#define CV__VALIDATE_UNUNITIALIZED_VARS 1 // C++11 & GCC only + +#ifdef __cplusplus + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#define CV_STRUCT_INITIALIZER {0,} +#else +#if defined(__GNUC__) && __GNUC__ == 4 // GCC 4.x warns on "= {}" initialization, fixed in GCC 5.0 +#pragma GCC diagnostic ignored "-Wmissing-field-initializers" +#endif +#define CV_STRUCT_INITIALIZER {} +#endif + +#else +#define CV_STRUCT_INITIALIZER {0} +#endif + + +#ifdef HAVE_IPL +# ifndef __IPL_H__ +# if defined _WIN32 +# include +# else +# include +# endif +# endif +#elif defined __IPL_H__ +# define HAVE_IPL +#endif + +#include "opencv2/core/cvdef.h" + +#ifndef SKIP_INCLUDES +#include +#include +#include +#include +#endif // SKIP_INCLUDES + +#if defined _WIN32 +# define CV_CDECL __cdecl +# define CV_STDCALL __stdcall +#else +# define CV_CDECL +# define CV_STDCALL +#endif + +#ifndef CV_DEFAULT +# ifdef __cplusplus +# define CV_DEFAULT(val) = val +# else +# define CV_DEFAULT(val) +# endif +#endif + +#ifndef CV_EXTERN_C_FUNCPTR +# ifdef __cplusplus +# define CV_EXTERN_C_FUNCPTR(x) extern "C" { typedef x; } +# else +# define CV_EXTERN_C_FUNCPTR(x) typedef x +# endif +#endif + +#ifndef CVAPI +# define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL +#endif + +#ifndef CV_IMPL +# define CV_IMPL CV_EXTERN_C +#endif + +#ifdef __cplusplus +# include "opencv2/core.hpp" +#endif + +/** @addtogroup core_c + @{ +*/ + +/** @brief This is the "metatype" used *only* as a function parameter. + +It denotes that the function accepts arrays of multiple types, such as IplImage*, CvMat* or even +CvSeq* sometimes. The particular array type is determined at runtime by analyzing the first 4 +bytes of the header. In C++ interface the role of CvArr is played by InputArray and OutputArray. + */ +typedef void CvArr; + +typedef int CVStatus; + +/** @see cv::Error::Code */ +enum { + CV_StsOk= 0, /**< everything is ok */ + CV_StsBackTrace= -1, /**< pseudo error for back trace */ + CV_StsError= -2, /**< unknown /unspecified error */ + CV_StsInternal= -3, /**< internal error (bad state) */ + CV_StsNoMem= -4, /**< insufficient memory */ + CV_StsBadArg= -5, /**< function arg/param is bad */ + CV_StsBadFunc= -6, /**< unsupported function */ + CV_StsNoConv= -7, /**< iter. didn't converge */ + CV_StsAutoTrace= -8, /**< tracing */ + CV_HeaderIsNull= -9, /**< image header is NULL */ + CV_BadImageSize= -10, /**< image size is invalid */ + CV_BadOffset= -11, /**< offset is invalid */ + CV_BadDataPtr= -12, /**/ + CV_BadStep= -13, /**< image step is wrong, this may happen for a non-continuous matrix */ + CV_BadModelOrChSeq= -14, /**/ + CV_BadNumChannels= -15, /**< bad number of channels, for example, some functions accept only single channel matrices */ + CV_BadNumChannel1U= -16, /**/ + CV_BadDepth= -17, /**< input image depth is not supported by the function */ + CV_BadAlphaChannel= -18, /**/ + CV_BadOrder= -19, /**< number of dimensions is out of range */ + CV_BadOrigin= -20, /**< incorrect input origin */ + CV_BadAlign= -21, /**< incorrect input align */ + CV_BadCallBack= -22, /**/ + CV_BadTileSize= -23, /**/ + CV_BadCOI= -24, /**< input COI is not supported */ + CV_BadROISize= -25, /**< incorrect input roi */ + CV_MaskIsTiled= -26, /**/ + CV_StsNullPtr= -27, /**< null pointer */ + CV_StsVecLengthErr= -28, /**< incorrect vector length */ + CV_StsFilterStructContentErr= -29, /**< incorrect filter structure content */ + CV_StsKernelStructContentErr= -30, /**< incorrect transform kernel content */ + CV_StsFilterOffsetErr= -31, /**< incorrect filter offset value */ + CV_StsBadSize= -201, /**< the input/output structure size is incorrect */ + CV_StsDivByZero= -202, /**< division by zero */ + CV_StsInplaceNotSupported= -203, /**< in-place operation is not supported */ + CV_StsObjectNotFound= -204, /**< request can't be completed */ + CV_StsUnmatchedFormats= -205, /**< formats of input/output arrays differ */ + CV_StsBadFlag= -206, /**< flag is wrong or not supported */ + CV_StsBadPoint= -207, /**< bad CvPoint */ + CV_StsBadMask= -208, /**< bad format of mask (neither 8uC1 nor 8sC1)*/ + CV_StsUnmatchedSizes= -209, /**< sizes of input/output structures do not match */ + CV_StsUnsupportedFormat= -210, /**< the data format/type is not supported by the function*/ + CV_StsOutOfRange= -211, /**< some of parameters are out of range */ + CV_StsParseError= -212, /**< invalid syntax/structure of the parsed file */ + CV_StsNotImplemented= -213, /**< the requested function/feature is not implemented */ + CV_StsBadMemBlock= -214, /**< an allocated block has been corrupted */ + CV_StsAssert= -215, /**< assertion failed */ + CV_GpuNotSupported= -216, /**< no CUDA support */ + CV_GpuApiCallError= -217, /**< GPU API call error */ + CV_OpenGlNotSupported= -218, /**< no OpenGL support */ + CV_OpenGlApiCallError= -219, /**< OpenGL API call error */ + CV_OpenCLApiCallError= -220, /**< OpenCL API call error */ + CV_OpenCLDoubleNotSupported= -221, + CV_OpenCLInitError= -222, /**< OpenCL initialization error */ + CV_OpenCLNoAMDBlasFft= -223 +}; + +/****************************************************************************************\ +* Common macros and inline functions * +\****************************************************************************************/ + +#define CV_SWAP(a,b,t) ((t) = (a), (a) = (b), (b) = (t)) + +/** min & max without jumps */ +#define CV_IMIN(a, b) ((a) ^ (((a)^(b)) & (((a) < (b)) - 1))) + +#define CV_IMAX(a, b) ((a) ^ (((a)^(b)) & (((a) > (b)) - 1))) + +/** absolute value without jumps */ +#ifndef __cplusplus +# define CV_IABS(a) (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0)) +#else +# define CV_IABS(a) abs(a) +#endif +#define CV_CMP(a,b) (((a) > (b)) - ((a) < (b))) +#define CV_SIGN(a) CV_CMP((a),0) + +#define cvInvSqrt(value) ((float)(1./sqrt(value))) +#define cvSqrt(value) ((float)sqrt(value)) + + +/*************** Random number generation *******************/ + +typedef uint64 CvRNG; + +#define CV_RNG_COEFF 4164903690U + +/** @brief Initializes a random number generator state. + +The function initializes a random number generator and returns the state. The pointer to the state +can be then passed to the cvRandInt, cvRandReal and cvRandArr functions. In the current +implementation a multiply-with-carry generator is used. +@param seed 64-bit value used to initiate a random sequence +@sa the C++ class RNG replaced CvRNG. + */ +CV_INLINE CvRNG cvRNG( int64 seed CV_DEFAULT(-1)) +{ + CvRNG rng = seed ? (uint64)seed : (uint64)(int64)-1; + return rng; +} + +/** @brief Returns a 32-bit unsigned integer and updates RNG. + +The function returns a uniformly-distributed random 32-bit unsigned integer and updates the RNG +state. It is similar to the rand() function from the C runtime library, except that OpenCV functions +always generates a 32-bit random number, regardless of the platform. +@param rng CvRNG state initialized by cvRNG. + */ +CV_INLINE unsigned cvRandInt( CvRNG* rng ) +{ + uint64 temp = *rng; + temp = (uint64)(unsigned)temp*CV_RNG_COEFF + (temp >> 32); + *rng = temp; + return (unsigned)temp; +} + +/** @brief Returns a floating-point random number and updates RNG. + +The function returns a uniformly-distributed random floating-point number between 0 and 1 (1 is not +included). +@param rng RNG state initialized by cvRNG + */ +CV_INLINE double cvRandReal( CvRNG* rng ) +{ + return cvRandInt(rng)*2.3283064365386962890625e-10 /* 2^-32 */; +} + +/****************************************************************************************\ +* Image type (IplImage) * +\****************************************************************************************/ + +#ifndef HAVE_IPL + +/* + * The following definitions (until #endif) + * is an extract from IPL headers. + * Copyright (c) 1995 Intel Corporation. + */ +#define IPL_DEPTH_SIGN 0x80000000 + +#define IPL_DEPTH_1U 1 +#define IPL_DEPTH_8U 8 +#define IPL_DEPTH_16U 16 +#define IPL_DEPTH_32F 32 + +#define IPL_DEPTH_8S (IPL_DEPTH_SIGN| 8) +#define IPL_DEPTH_16S (IPL_DEPTH_SIGN|16) +#define IPL_DEPTH_32S (IPL_DEPTH_SIGN|32) + +#define IPL_DATA_ORDER_PIXEL 0 +#define IPL_DATA_ORDER_PLANE 1 + +#define IPL_ORIGIN_TL 0 +#define IPL_ORIGIN_BL 1 + +#define IPL_ALIGN_4BYTES 4 +#define IPL_ALIGN_8BYTES 8 +#define IPL_ALIGN_16BYTES 16 +#define IPL_ALIGN_32BYTES 32 + +#define IPL_ALIGN_DWORD IPL_ALIGN_4BYTES +#define IPL_ALIGN_QWORD IPL_ALIGN_8BYTES + +#define IPL_BORDER_CONSTANT 0 +#define IPL_BORDER_REPLICATE 1 +#define IPL_BORDER_REFLECT 2 +#define IPL_BORDER_WRAP 3 + +#ifdef __cplusplus +typedef struct _IplImage IplImage; +CV_EXPORTS _IplImage cvIplImage(const cv::Mat& m); +#endif + +/** The IplImage is taken from the Intel Image Processing Library, in which the format is native. OpenCV +only supports a subset of possible IplImage formats, as outlined in the parameter list above. + +In addition to the above restrictions, OpenCV handles ROIs differently. OpenCV functions require +that the image size or ROI size of all source and destination images match exactly. On the other +hand, the Intel Image Processing Library processes the area of intersection between the source and +destination images (or ROIs), allowing them to vary independently. +*/ +typedef struct +_IplImage +{ + int nSize; /**< sizeof(IplImage) */ + int ID; /**< version (=0)*/ + int nChannels; /**< Most of OpenCV functions support 1,2,3 or 4 channels */ + int alphaChannel; /**< Ignored by OpenCV */ + int depth; /**< Pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S, + IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported. */ + char colorModel[4]; /**< Ignored by OpenCV */ + char channelSeq[4]; /**< ditto */ + int dataOrder; /**< 0 - interleaved color channels, 1 - separate color channels. + cvCreateImage can only create interleaved images */ + int origin; /**< 0 - top-left origin, + 1 - bottom-left origin (Windows bitmaps style). */ + int align; /**< Alignment of image rows (4 or 8). + OpenCV ignores it and uses widthStep instead. */ + int width; /**< Image width in pixels. */ + int height; /**< Image height in pixels. */ + struct _IplROI *roi; /**< Image ROI. If NULL, the whole image is selected. */ + struct _IplImage *maskROI; /**< Must be NULL. */ + void *imageId; /**< " " */ + struct _IplTileInfo *tileInfo; /**< " " */ + int imageSize; /**< Image data size in bytes + (==image->height*image->widthStep + in case of interleaved data)*/ + char *imageData; /**< Pointer to aligned image data. */ + int widthStep; /**< Size of aligned image row in bytes. */ + int BorderMode[4]; /**< Ignored by OpenCV. */ + int BorderConst[4]; /**< Ditto. */ + char *imageDataOrigin; /**< Pointer to very origin of image data + (not necessarily aligned) - + needed for correct deallocation */ + +#if defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + _IplImage() {} + _IplImage(const cv::Mat& m) { *this = cvIplImage(m); } +#endif +} +IplImage; + +CV_INLINE IplImage cvIplImage() +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + IplImage self = CV_STRUCT_INITIALIZER; self.nSize = sizeof(IplImage); return self; +#else + return _IplImage(); +#endif +} + +typedef struct _IplTileInfo IplTileInfo; + +typedef struct _IplROI +{ + int coi; /**< 0 - no COI (all channels are selected), 1 - 0th channel is selected ...*/ + int xOffset; + int yOffset; + int width; + int height; +} +IplROI; + +typedef struct _IplConvKernel +{ + int nCols; + int nRows; + int anchorX; + int anchorY; + int *values; + int nShiftR; +} +IplConvKernel; + +typedef struct _IplConvKernelFP +{ + int nCols; + int nRows; + int anchorX; + int anchorY; + float *values; +} +IplConvKernelFP; + +#define IPL_IMAGE_HEADER 1 +#define IPL_IMAGE_DATA 2 +#define IPL_IMAGE_ROI 4 + +#endif/*HAVE_IPL*/ + +/** extra border mode */ +#define IPL_BORDER_REFLECT_101 4 +#define IPL_BORDER_TRANSPARENT 5 + +#define IPL_IMAGE_MAGIC_VAL ((int)sizeof(IplImage)) +#define CV_TYPE_NAME_IMAGE "opencv-image" + +#define CV_IS_IMAGE_HDR(img) \ + ((img) != NULL && ((const IplImage*)(img))->nSize == sizeof(IplImage)) + +#define CV_IS_IMAGE(img) \ + (CV_IS_IMAGE_HDR(img) && ((IplImage*)img)->imageData != NULL) + +/** for storing double-precision + floating point data in IplImage's */ +#define IPL_DEPTH_64F 64 + +/** get reference to pixel at (col,row), + for multi-channel images (col) should be multiplied by number of channels */ +#define CV_IMAGE_ELEM( image, elemtype, row, col ) \ + (((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)]) + +/****************************************************************************************\ +* Matrix type (CvMat) * +\****************************************************************************************/ + +#define CV_AUTO_STEP 0x7fffffff +#define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff ) + +#define CV_MAGIC_MASK 0xFFFF0000 +#define CV_MAT_MAGIC_VAL 0x42420000 +#define CV_TYPE_NAME_MAT "opencv-matrix" + +#ifdef __cplusplus +typedef struct CvMat CvMat; +CV_INLINE CvMat cvMat(const cv::Mat& m); +#endif + +/** Matrix elements are stored row by row. Element (i, j) (i - 0-based row index, j - 0-based column +index) of a matrix can be retrieved or modified using CV_MAT_ELEM macro: + + uchar pixval = CV_MAT_ELEM(grayimg, uchar, i, j) + CV_MAT_ELEM(cameraMatrix, float, 0, 2) = image.width*0.5f; + +To access multiple-channel matrices, you can use +CV_MAT_ELEM(matrix, type, i, j\*nchannels + channel_idx). + +@deprecated CvMat is now obsolete; consider using Mat instead. + */ +typedef struct CvMat +{ + int type; + int step; + + /* for internal use only */ + int* refcount; + int hdr_refcount; + + union + { + uchar* ptr; + short* s; + int* i; + float* fl; + double* db; + } data; + +#ifdef __cplusplus + union + { + int rows; + int height; + }; + + union + { + int cols; + int width; + }; +#else + int rows; + int cols; +#endif + +#if defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvMat() {} + CvMat(const cv::Mat& m) { *this = cvMat(m); } +#endif +} +CvMat; + + +#define CV_IS_MAT_HDR(mat) \ + ((mat) != NULL && \ + (((const CvMat*)(mat))->type & CV_MAGIC_MASK) == CV_MAT_MAGIC_VAL && \ + ((const CvMat*)(mat))->cols > 0 && ((const CvMat*)(mat))->rows > 0) + +#define CV_IS_MAT_HDR_Z(mat) \ + ((mat) != NULL && \ + (((const CvMat*)(mat))->type & CV_MAGIC_MASK) == CV_MAT_MAGIC_VAL && \ + ((const CvMat*)(mat))->cols >= 0 && ((const CvMat*)(mat))->rows >= 0) + +#define CV_IS_MAT(mat) \ + (CV_IS_MAT_HDR(mat) && ((const CvMat*)(mat))->data.ptr != NULL) + +#define CV_IS_MASK_ARR(mat) \ + (((mat)->type & (CV_MAT_TYPE_MASK & ~CV_8SC1)) == 0) + +#define CV_ARE_TYPES_EQ(mat1, mat2) \ + ((((mat1)->type ^ (mat2)->type) & CV_MAT_TYPE_MASK) == 0) + +#define CV_ARE_CNS_EQ(mat1, mat2) \ + ((((mat1)->type ^ (mat2)->type) & CV_MAT_CN_MASK) == 0) + +#define CV_ARE_DEPTHS_EQ(mat1, mat2) \ + ((((mat1)->type ^ (mat2)->type) & CV_MAT_DEPTH_MASK) == 0) + +#define CV_ARE_SIZES_EQ(mat1, mat2) \ + ((mat1)->rows == (mat2)->rows && (mat1)->cols == (mat2)->cols) + +#define CV_IS_MAT_CONST(mat) \ + (((mat)->rows|(mat)->cols) == 1) + +#define IPL2CV_DEPTH(depth) \ + ((((CV_8U)+(CV_16U<<4)+(CV_32F<<8)+(CV_64F<<16)+(CV_8S<<20)+ \ + (CV_16S<<24)+(CV_32S<<28)) >> ((((depth) & 0xF0) >> 2) + \ + (((depth) & IPL_DEPTH_SIGN) ? 20 : 0))) & 15) + +/** Inline constructor. No data is allocated internally!!! + * (Use together with cvCreateData, or use cvCreateMat instead to + * get a matrix with allocated data): + */ +CV_INLINE CvMat cvMat( int rows, int cols, int type, void* data CV_DEFAULT(NULL)) +{ + CvMat m; + + assert( (unsigned)CV_MAT_DEPTH(type) <= CV_64F ); + type = CV_MAT_TYPE(type); + m.type = CV_MAT_MAGIC_VAL | CV_MAT_CONT_FLAG | type; + m.cols = cols; + m.rows = rows; + m.step = m.cols*CV_ELEM_SIZE(type); + m.data.ptr = (uchar*)data; + m.refcount = NULL; + m.hdr_refcount = 0; + + return m; +} + +#ifdef __cplusplus + +CV_INLINE CvMat cvMat(const cv::Mat& m) +{ + CvMat self; + CV_DbgAssert(m.dims <= 2); + self = cvMat(m.rows, m.dims == 1 ? 1 : m.cols, m.type(), m.data); + self.step = (int)m.step[0]; + self.type = (self.type & ~cv::Mat::CONTINUOUS_FLAG) | (m.flags & cv::Mat::CONTINUOUS_FLAG); + return self; +} +CV_INLINE CvMat cvMat() +{ +#if !defined(CV__ENABLE_C_API_CTORS) + CvMat self = CV_STRUCT_INITIALIZER; return self; +#else + return CvMat(); +#endif +} +CV_INLINE CvMat cvMat(const CvMat& m) +{ +#if !defined(CV__ENABLE_C_API_CTORS) + CvMat self = CV_STRUCT_INITIALIZER; memcpy(&self, &m, sizeof(self)); return self; +#else + return CvMat(m); +#endif +} + +#endif // __cplusplus + + +#define CV_MAT_ELEM_PTR_FAST( mat, row, col, pix_size ) \ + (assert( (unsigned)(row) < (unsigned)(mat).rows && \ + (unsigned)(col) < (unsigned)(mat).cols ), \ + (mat).data.ptr + (size_t)(mat).step*(row) + (pix_size)*(col)) + +#define CV_MAT_ELEM_PTR( mat, row, col ) \ + CV_MAT_ELEM_PTR_FAST( mat, row, col, CV_ELEM_SIZE((mat).type) ) + +#define CV_MAT_ELEM( mat, elemtype, row, col ) \ + (*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype))) + +/** @brief Returns the particular element of single-channel floating-point matrix. + +The function is a fast replacement for cvGetReal2D in the case of single-channel floating-point +matrices. It is faster because it is inline, it does fewer checks for array type and array element +type, and it checks for the row and column ranges only in debug mode. +@param mat Input matrix +@param row The zero-based index of row +@param col The zero-based index of column + */ +CV_INLINE double cvmGet( const CvMat* mat, int row, int col ) +{ + int type; + + type = CV_MAT_TYPE(mat->type); + assert( (unsigned)row < (unsigned)mat->rows && + (unsigned)col < (unsigned)mat->cols ); + + if( type == CV_32FC1 ) + return ((float*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col]; + else + { + assert( type == CV_64FC1 ); + return ((double*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col]; + } +} + +/** @brief Sets a specific element of a single-channel floating-point matrix. + +The function is a fast replacement for cvSetReal2D in the case of single-channel floating-point +matrices. It is faster because it is inline, it does fewer checks for array type and array element +type, and it checks for the row and column ranges only in debug mode. +@param mat The matrix +@param row The zero-based index of row +@param col The zero-based index of column +@param value The new value of the matrix element + */ +CV_INLINE void cvmSet( CvMat* mat, int row, int col, double value ) +{ + int type; + type = CV_MAT_TYPE(mat->type); + assert( (unsigned)row < (unsigned)mat->rows && + (unsigned)col < (unsigned)mat->cols ); + + if( type == CV_32FC1 ) + ((float*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col] = (float)value; + else + { + assert( type == CV_64FC1 ); + ((double*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col] = value; + } +} + + +CV_INLINE int cvIplDepth( int type ) +{ + int depth = CV_MAT_DEPTH(type); + return CV_ELEM_SIZE1(depth)*8 | (depth == CV_8S || depth == CV_16S || + depth == CV_32S ? IPL_DEPTH_SIGN : 0); +} + + +/****************************************************************************************\ +* Multi-dimensional dense array (CvMatND) * +\****************************************************************************************/ + +#define CV_MATND_MAGIC_VAL 0x42430000 +#define CV_TYPE_NAME_MATND "opencv-nd-matrix" + +#define CV_MAX_DIM 32 + +#ifdef __cplusplus +typedef struct CvMatND CvMatND; +CV_EXPORTS CvMatND cvMatND(const cv::Mat& m); +#endif + +/** + @deprecated consider using cv::Mat instead + */ +typedef struct +CvMatND +{ + int type; + int dims; + + int* refcount; + int hdr_refcount; + + union + { + uchar* ptr; + float* fl; + double* db; + int* i; + short* s; + } data; + + struct + { + int size; + int step; + } + dim[CV_MAX_DIM]; + +#if defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvMatND() {} + CvMatND(const cv::Mat& m) { *this = cvMatND(m); } +#endif +} +CvMatND; + + +CV_INLINE CvMatND cvMatND() +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvMatND self = CV_STRUCT_INITIALIZER; return self; +#else + return CvMatND(); +#endif +} + +#define CV_IS_MATND_HDR(mat) \ + ((mat) != NULL && (((const CvMatND*)(mat))->type & CV_MAGIC_MASK) == CV_MATND_MAGIC_VAL) + +#define CV_IS_MATND(mat) \ + (CV_IS_MATND_HDR(mat) && ((const CvMatND*)(mat))->data.ptr != NULL) + + +/****************************************************************************************\ +* Multi-dimensional sparse array (CvSparseMat) * +\****************************************************************************************/ + +#define CV_SPARSE_MAT_MAGIC_VAL 0x42440000 +#define CV_TYPE_NAME_SPARSE_MAT "opencv-sparse-matrix" + +struct CvSet; + +typedef struct CvSparseMat +{ + int type; + int dims; + int* refcount; + int hdr_refcount; + + struct CvSet* heap; + void** hashtable; + int hashsize; + int valoffset; + int idxoffset; + int size[CV_MAX_DIM]; + +#ifdef __cplusplus + CV_EXPORTS void copyToSparseMat(cv::SparseMat& m) const; +#endif +} +CvSparseMat; + +#ifdef __cplusplus +CV_EXPORTS CvSparseMat* cvCreateSparseMat(const cv::SparseMat& m); +#endif + +#define CV_IS_SPARSE_MAT_HDR(mat) \ + ((mat) != NULL && \ + (((const CvSparseMat*)(mat))->type & CV_MAGIC_MASK) == CV_SPARSE_MAT_MAGIC_VAL) + +#define CV_IS_SPARSE_MAT(mat) \ + CV_IS_SPARSE_MAT_HDR(mat) + +/**************** iteration through a sparse array *****************/ + +typedef struct CvSparseNode +{ + unsigned hashval; + struct CvSparseNode* next; +} +CvSparseNode; + +typedef struct CvSparseMatIterator +{ + CvSparseMat* mat; + CvSparseNode* node; + int curidx; +} +CvSparseMatIterator; + +#define CV_NODE_VAL(mat,node) ((void*)((uchar*)(node) + (mat)->valoffset)) +#define CV_NODE_IDX(mat,node) ((int*)((uchar*)(node) + (mat)->idxoffset)) + +/****************************************************************************************\ +* Histogram * +\****************************************************************************************/ + +typedef int CvHistType; + +#define CV_HIST_MAGIC_VAL 0x42450000 +#define CV_HIST_UNIFORM_FLAG (1 << 10) + +/** indicates whether bin ranges are set already or not */ +#define CV_HIST_RANGES_FLAG (1 << 11) + +#define CV_HIST_ARRAY 0 +#define CV_HIST_SPARSE 1 +#define CV_HIST_TREE CV_HIST_SPARSE + +/** should be used as a parameter only, + it turns to CV_HIST_UNIFORM_FLAG of hist->type */ +#define CV_HIST_UNIFORM 1 + +typedef struct CvHistogram +{ + int type; + CvArr* bins; + float thresh[CV_MAX_DIM][2]; /**< For uniform histograms. */ + float** thresh2; /**< For non-uniform histograms. */ + CvMatND mat; /**< Embedded matrix header for array histograms. */ +} +CvHistogram; + +#define CV_IS_HIST( hist ) \ + ((hist) != NULL && \ + (((CvHistogram*)(hist))->type & CV_MAGIC_MASK) == CV_HIST_MAGIC_VAL && \ + (hist)->bins != NULL) + +#define CV_IS_UNIFORM_HIST( hist ) \ + (((hist)->type & CV_HIST_UNIFORM_FLAG) != 0) + +#define CV_IS_SPARSE_HIST( hist ) \ + CV_IS_SPARSE_MAT((hist)->bins) + +#define CV_HIST_HAS_RANGES( hist ) \ + (((hist)->type & CV_HIST_RANGES_FLAG) != 0) + +/****************************************************************************************\ +* Other supplementary data type definitions * +\****************************************************************************************/ + +/*************************************** CvRect *****************************************/ +/** @sa Rect_ */ +typedef struct CvRect +{ + int x; + int y; + int width; + int height; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvRect() __attribute__(( warning("Non-initialized variable") )) {}; + template CvRect(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 4); + x = y = width = height = 0; + if (list.size() == 4) + { + x = list.begin()[0]; y = list.begin()[1]; width = list.begin()[2]; height = list.begin()[3]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvRect(int _x = 0, int _y = 0, int w = 0, int h = 0): x(_x), y(_y), width(w), height(h) {} + template + CvRect(const cv::Rect_<_Tp>& r): x(cv::saturate_cast(r.x)), y(cv::saturate_cast(r.y)), width(cv::saturate_cast(r.width)), height(cv::saturate_cast(r.height)) {} +#endif +#ifdef __cplusplus + template + operator cv::Rect_<_Tp>() const { return cv::Rect_<_Tp>((_Tp)x, (_Tp)y, (_Tp)width, (_Tp)height); } +#endif +} +CvRect; + +/** constructs CvRect structure. */ +CV_INLINE CvRect cvRect( int x, int y, int width, int height ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvRect r = {x, y, width, height}; +#else + CvRect r(x, y , width, height); +#endif + return r; +} +#ifdef __cplusplus +CV_INLINE CvRect cvRect(const cv::Rect& rc) { return cvRect(rc.x, rc.y, rc.width, rc.height); } +#endif + +CV_INLINE IplROI cvRectToROI( CvRect rect, int coi ) +{ + IplROI roi; + roi.xOffset = rect.x; + roi.yOffset = rect.y; + roi.width = rect.width; + roi.height = rect.height; + roi.coi = coi; + + return roi; +} + + +CV_INLINE CvRect cvROIToRect( IplROI roi ) +{ + return cvRect( roi.xOffset, roi.yOffset, roi.width, roi.height ); +} + +/*********************************** CvTermCriteria *************************************/ + +#define CV_TERMCRIT_ITER 1 +#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER +#define CV_TERMCRIT_EPS 2 + +/** @sa TermCriteria + */ +typedef struct CvTermCriteria +{ + int type; /**< may be combination of + CV_TERMCRIT_ITER + CV_TERMCRIT_EPS */ + int max_iter; + double epsilon; +#if defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvTermCriteria(int _type = 0, int _iter = 0, double _eps = 0) : type(_type), max_iter(_iter), epsilon(_eps) {} + CvTermCriteria(const cv::TermCriteria& t) : type(t.type), max_iter(t.maxCount), epsilon(t.epsilon) {} +#endif +#ifdef __cplusplus + operator cv::TermCriteria() const { return cv::TermCriteria(type, max_iter, epsilon); } +#endif +} +CvTermCriteria; + +CV_INLINE CvTermCriteria cvTermCriteria( int type, int max_iter, double epsilon ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvTermCriteria t = { type, max_iter, (float)epsilon}; +#else + CvTermCriteria t(type, max_iter, epsilon); +#endif + return t; +} +#ifdef __cplusplus +CV_INLINE CvTermCriteria cvTermCriteria(const cv::TermCriteria& t) { return cvTermCriteria(t.type, t.maxCount, t.epsilon); } +#endif + + +/******************************* CvPoint and variants ***********************************/ + +typedef struct CvPoint +{ + int x; + int y; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvPoint() __attribute__(( warning("Non-initialized variable") )) {} + template CvPoint(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 2); + x = y = 0; + if (list.size() == 2) + { + x = list.begin()[0]; y = list.begin()[1]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvPoint(int _x = 0, int _y = 0): x(_x), y(_y) {} + template + CvPoint(const cv::Point_<_Tp>& pt): x((int)pt.x), y((int)pt.y) {} +#endif +#ifdef __cplusplus + template + operator cv::Point_<_Tp>() const { return cv::Point_<_Tp>(cv::saturate_cast<_Tp>(x), cv::saturate_cast<_Tp>(y)); } +#endif +} +CvPoint; + +/** constructs CvPoint structure. */ +CV_INLINE CvPoint cvPoint( int x, int y ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvPoint p = {x, y}; +#else + CvPoint p(x, y); +#endif + return p; +} +#ifdef __cplusplus +CV_INLINE CvPoint cvPoint(const cv::Point& pt) { return cvPoint(pt.x, pt.y); } +#endif + +typedef struct CvPoint2D32f +{ + float x; + float y; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvPoint2D32f() __attribute__(( warning("Non-initialized variable") )) {} + template CvPoint2D32f(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 2); + x = y = 0; + if (list.size() == 2) + { + x = list.begin()[0]; y = list.begin()[1]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvPoint2D32f(float _x = 0, float _y = 0): x(_x), y(_y) {} + template + CvPoint2D32f(const cv::Point_<_Tp>& pt): x((float)pt.x), y((float)pt.y) {} +#endif +#ifdef __cplusplus + template + operator cv::Point_<_Tp>() const { return cv::Point_<_Tp>(cv::saturate_cast<_Tp>(x), cv::saturate_cast<_Tp>(y)); } +#endif +} +CvPoint2D32f; + +/** constructs CvPoint2D32f structure. */ +CV_INLINE CvPoint2D32f cvPoint2D32f( double x, double y ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvPoint2D32f p = { (float)x, (float)y }; +#else + CvPoint2D32f p((float)x, (float)y); +#endif + return p; +} + +#ifdef __cplusplus +template +CvPoint2D32f cvPoint2D32f(const cv::Point_<_Tp>& pt) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvPoint2D32f p = { (float)pt.x, (float)pt.y }; +#else + CvPoint2D32f p((float)pt.x, (float)pt.y); +#endif + return p; +} +#endif + +/** converts CvPoint to CvPoint2D32f. */ +CV_INLINE CvPoint2D32f cvPointTo32f( CvPoint point ) +{ + return cvPoint2D32f( (float)point.x, (float)point.y ); +} + +/** converts CvPoint2D32f to CvPoint. */ +CV_INLINE CvPoint cvPointFrom32f( CvPoint2D32f point ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvPoint ipt = { cvRound(point.x), cvRound(point.y) }; +#else + CvPoint ipt(cvRound(point.x), cvRound(point.y)); +#endif + return ipt; +} + + +typedef struct CvPoint3D32f +{ + float x; + float y; + float z; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvPoint3D32f() __attribute__(( warning("Non-initialized variable") )) {} + template CvPoint3D32f(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 3); + x = y = z = 0; + if (list.size() == 3) + { + x = list.begin()[0]; y = list.begin()[1]; z = list.begin()[2]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvPoint3D32f(float _x = 0, float _y = 0, float _z = 0): x(_x), y(_y), z(_z) {} + template + CvPoint3D32f(const cv::Point3_<_Tp>& pt): x((float)pt.x), y((float)pt.y), z((float)pt.z) {} +#endif +#ifdef __cplusplus + template + operator cv::Point3_<_Tp>() const { return cv::Point3_<_Tp>(cv::saturate_cast<_Tp>(x), cv::saturate_cast<_Tp>(y), cv::saturate_cast<_Tp>(z)); } +#endif +} +CvPoint3D32f; + +/** constructs CvPoint3D32f structure. */ +CV_INLINE CvPoint3D32f cvPoint3D32f( double x, double y, double z ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvPoint3D32f p = { (float)x, (float)y, (float)z }; +#else + CvPoint3D32f p((float)x, (float)y, (float)z); +#endif + return p; +} + +#ifdef __cplusplus +template +CvPoint3D32f cvPoint3D32f(const cv::Point3_<_Tp>& pt) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvPoint3D32f p = { (float)pt.x, (float)pt.y, (float)pt.z }; +#else + CvPoint3D32f p((float)pt.x, (float)pt.y, (float)pt.z); +#endif + return p; +} +#endif + + +typedef struct CvPoint2D64f +{ + double x; + double y; +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvPoint2D64f() __attribute__(( warning("Non-initialized variable") )) {} + template CvPoint2D64f(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 2); + x = y = 0; + if (list.size() == 2) + { + x = list.begin()[0]; y = list.begin()[1]; + } + }; +#endif +} +CvPoint2D64f; + +/** constructs CvPoint2D64f structure.*/ +CV_INLINE CvPoint2D64f cvPoint2D64f( double x, double y ) +{ + CvPoint2D64f p = { x, y }; + return p; +} + + +typedef struct CvPoint3D64f +{ + double x; + double y; + double z; +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvPoint3D64f() __attribute__(( warning("Non-initialized variable") )) {} + template CvPoint3D64f(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 3); + x = y = z = 0; + if (list.size() == 3) + { + x = list.begin()[0]; y = list.begin()[1]; z = list.begin()[2]; + } + }; +#endif +} +CvPoint3D64f; + +/** constructs CvPoint3D64f structure. */ +CV_INLINE CvPoint3D64f cvPoint3D64f( double x, double y, double z ) +{ + CvPoint3D64f p = { x, y, z }; + return p; +} + + +/******************************** CvSize's & CvBox **************************************/ + +typedef struct CvSize +{ + int width; + int height; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvSize() __attribute__(( warning("Non-initialized variable") )) {} + template CvSize(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 2); + width = 0; height = 0; + if (list.size() == 2) + { + width = list.begin()[0]; height = list.begin()[1]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvSize(int w = 0, int h = 0): width(w), height(h) {} + template + CvSize(const cv::Size_<_Tp>& sz): width(cv::saturate_cast(sz.width)), height(cv::saturate_cast(sz.height)) {} +#endif +#ifdef __cplusplus + template + operator cv::Size_<_Tp>() const { return cv::Size_<_Tp>(cv::saturate_cast<_Tp>(width), cv::saturate_cast<_Tp>(height)); } +#endif +} +CvSize; + +/** constructs CvSize structure. */ +CV_INLINE CvSize cvSize( int width, int height ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvSize s = { width, height }; +#else + CvSize s(width, height); +#endif + return s; +} + +#ifdef __cplusplus +CV_INLINE CvSize cvSize(const cv::Size& sz) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvSize s = { sz.width, sz.height }; +#else + CvSize s(sz.width, sz.height); +#endif + return s; +} +#endif + +typedef struct CvSize2D32f +{ + float width; + float height; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvSize2D32f() __attribute__(( warning("Non-initialized variable") )) {} + template CvSize2D32f(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 2); + width = 0; height = 0; + if (list.size() == 2) + { + width = list.begin()[0]; height = list.begin()[1]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvSize2D32f(float w = 0, float h = 0): width(w), height(h) {} + template + CvSize2D32f(const cv::Size_<_Tp>& sz): width(cv::saturate_cast(sz.width)), height(cv::saturate_cast(sz.height)) {} +#endif +#ifdef __cplusplus + template + operator cv::Size_<_Tp>() const { return cv::Size_<_Tp>(cv::saturate_cast<_Tp>(width), cv::saturate_cast<_Tp>(height)); } +#endif +} +CvSize2D32f; + +/** constructs CvSize2D32f structure. */ +CV_INLINE CvSize2D32f cvSize2D32f( double width, double height ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvSize2D32f s = { (float)width, (float)height }; +#else + CvSize2D32f s((float)width, (float)height); +#endif + return s; +} +#ifdef __cplusplus +template +CvSize2D32f cvSize2D32f(const cv::Size_<_Tp>& sz) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvSize2D32f s = { (float)sz.width, (float)sz.height }; +#else + CvSize2D32f s((float)sz.width, (float)sz.height); +#endif + return s; +} +#endif + +/** @sa RotatedRect + */ +typedef struct CvBox2D +{ + CvPoint2D32f center; /**< Center of the box. */ + CvSize2D32f size; /**< Box width and length. */ + float angle; /**< Angle between the horizontal axis */ + /**< and the first side (i.e. length) in degrees */ + +#if defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvBox2D(CvPoint2D32f c = CvPoint2D32f(), CvSize2D32f s = CvSize2D32f(), float a = 0) : center(c), size(s), angle(a) {} + CvBox2D(const cv::RotatedRect& rr) : center(rr.center), size(rr.size), angle(rr.angle) {} +#endif +#ifdef __cplusplus + operator cv::RotatedRect() const { return cv::RotatedRect(center, size, angle); } +#endif +} +CvBox2D; + + +#ifdef __cplusplus +CV_INLINE CvBox2D cvBox2D(CvPoint2D32f c = CvPoint2D32f(), CvSize2D32f s = CvSize2D32f(), float a = 0) +{ + CvBox2D self; + self.center = c; + self.size = s; + self.angle = a; + return self; +} +CV_INLINE CvBox2D cvBox2D(const cv::RotatedRect& rr) +{ + CvBox2D self; + self.center = cvPoint2D32f(rr.center); + self.size = cvSize2D32f(rr.size); + self.angle = rr.angle; + return self; +} +#endif + + +/** Line iterator state: */ +typedef struct CvLineIterator +{ + /** Pointer to the current point: */ + uchar* ptr; + + /* Bresenham algorithm state: */ + int err; + int plus_delta; + int minus_delta; + int plus_step; + int minus_step; +} +CvLineIterator; + + + +/************************************* CvSlice ******************************************/ +#define CV_WHOLE_SEQ_END_INDEX 0x3fffffff +#define CV_WHOLE_SEQ cvSlice(0, CV_WHOLE_SEQ_END_INDEX) + +typedef struct CvSlice +{ + int start_index, end_index; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvSlice() __attribute__(( warning("Non-initialized variable") )) {} + template CvSlice(const std::initializer_list<_Tp> list) + { + CV_Assert(list.size() == 0 || list.size() == 2); + start_index = end_index = 0; + if (list.size() == 2) + { + start_index = list.begin()[0]; end_index = list.begin()[1]; + } + }; +#endif +#if defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) && !defined(__CUDACC__) + CvSlice(int start = 0, int end = 0) : start_index(start), end_index(end) {} + CvSlice(const cv::Range& r) { *this = (r.start != INT_MIN && r.end != INT_MAX) ? CvSlice(r.start, r.end) : CvSlice(0, CV_WHOLE_SEQ_END_INDEX); } + operator cv::Range() const { return (start_index == 0 && end_index == CV_WHOLE_SEQ_END_INDEX ) ? cv::Range::all() : cv::Range(start_index, end_index); } +#endif +} +CvSlice; + +CV_INLINE CvSlice cvSlice( int start, int end ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) && !defined(__CUDACC__)) + CvSlice slice = { start, end }; +#else + CvSlice slice(start, end); +#endif + return slice; +} + +#if defined(__cplusplus) +CV_INLINE CvSlice cvSlice(const cv::Range& r) +{ + CvSlice slice = (r.start != INT_MIN && r.end != INT_MAX) ? cvSlice(r.start, r.end) : cvSlice(0, CV_WHOLE_SEQ_END_INDEX); + return slice; +} +#endif + + +/************************************* CvScalar *****************************************/ +/** @sa Scalar_ + */ +typedef struct CvScalar +{ + double val[4]; + +#ifdef CV__VALIDATE_UNUNITIALIZED_VARS + CvScalar() __attribute__(( warning("Non-initialized variable") )) {} + CvScalar(const std::initializer_list list) + { + CV_Assert(list.size() == 0 || list.size() == 4); + val[0] = val[1] = val[2] = val[3] = 0; + if (list.size() == 4) + { + val[0] = list.begin()[0]; val[1] = list.begin()[1]; val[2] = list.begin()[2]; val[3] = list.begin()[3]; + } + }; +#elif defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus) + CvScalar() {} + CvScalar(double d0, double d1 = 0, double d2 = 0, double d3 = 0) { val[0] = d0; val[1] = d1; val[2] = d2; val[3] = d3; } + template + CvScalar(const cv::Scalar_<_Tp>& s) { val[0] = s.val[0]; val[1] = s.val[1]; val[2] = s.val[2]; val[3] = s.val[3]; } + template + CvScalar(const cv::Vec<_Tp, cn>& v) + { + int i; + for( i = 0; i < (cn < 4 ? cn : 4); i++ ) val[i] = v.val[i]; + for( ; i < 4; i++ ) val[i] = 0; + } +#endif +#ifdef __cplusplus + template + operator cv::Scalar_<_Tp>() const { return cv::Scalar_<_Tp>(cv::saturate_cast<_Tp>(val[0]), cv::saturate_cast<_Tp>(val[1]), cv::saturate_cast<_Tp>(val[2]), cv::saturate_cast<_Tp>(val[3])); } +#endif +} +CvScalar; + +CV_INLINE CvScalar cvScalar( double val0, double val1 CV_DEFAULT(0), + double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0)) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvScalar scalar = CV_STRUCT_INITIALIZER; +#else + CvScalar scalar; +#endif + scalar.val[0] = val0; scalar.val[1] = val1; + scalar.val[2] = val2; scalar.val[3] = val3; + return scalar; +} + +#ifdef __cplusplus +CV_INLINE CvScalar cvScalar() +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvScalar scalar = CV_STRUCT_INITIALIZER; +#else + CvScalar scalar; +#endif + scalar.val[0] = scalar.val[1] = scalar.val[2] = scalar.val[3] = 0; + return scalar; +} +CV_INLINE CvScalar cvScalar(const cv::Scalar& s) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvScalar scalar = CV_STRUCT_INITIALIZER; +#else + CvScalar scalar; +#endif + scalar.val[0] = s.val[0]; + scalar.val[1] = s.val[1]; + scalar.val[2] = s.val[2]; + scalar.val[3] = s.val[3]; + return scalar; +} +#endif + +CV_INLINE CvScalar cvRealScalar( double val0 ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvScalar scalar = CV_STRUCT_INITIALIZER; +#else + CvScalar scalar; +#endif + scalar.val[0] = val0; + scalar.val[1] = scalar.val[2] = scalar.val[3] = 0; + return scalar; +} + +CV_INLINE CvScalar cvScalarAll( double val0123 ) +{ +#if !(defined(CV__ENABLE_C_API_CTORS) && defined(__cplusplus)) + CvScalar scalar = CV_STRUCT_INITIALIZER; +#else + CvScalar scalar; +#endif + scalar.val[0] = val0123; + scalar.val[1] = val0123; + scalar.val[2] = val0123; + scalar.val[3] = val0123; + return scalar; +} + +/****************************************************************************************\ +* Dynamic Data structures * +\****************************************************************************************/ + +/******************************** Memory storage ****************************************/ + +typedef struct CvMemBlock +{ + struct CvMemBlock* prev; + struct CvMemBlock* next; +} +CvMemBlock; + +#define CV_STORAGE_MAGIC_VAL 0x42890000 + +typedef struct CvMemStorage +{ + int signature; + CvMemBlock* bottom; /**< First allocated block. */ + CvMemBlock* top; /**< Current memory block - top of the stack. */ + struct CvMemStorage* parent; /**< We get new blocks from parent as needed. */ + int block_size; /**< Block size. */ + int free_space; /**< Remaining free space in current block. */ +} +CvMemStorage; + +#define CV_IS_STORAGE(storage) \ + ((storage) != NULL && \ + (((CvMemStorage*)(storage))->signature & CV_MAGIC_MASK) == CV_STORAGE_MAGIC_VAL) + + +typedef struct CvMemStoragePos +{ + CvMemBlock* top; + int free_space; +} +CvMemStoragePos; + + +/*********************************** Sequence *******************************************/ + +typedef struct CvSeqBlock +{ + struct CvSeqBlock* prev; /**< Previous sequence block. */ + struct CvSeqBlock* next; /**< Next sequence block. */ + int start_index; /**< Index of the first element in the block + */ + /**< sequence->first->start_index. */ + int count; /**< Number of elements in the block. */ + schar* data; /**< Pointer to the first element of the block. */ +} +CvSeqBlock; + + +#define CV_TREE_NODE_FIELDS(node_type) \ + int flags; /**< Miscellaneous flags. */ \ + int header_size; /**< Size of sequence header. */ \ + struct node_type* h_prev; /**< Previous sequence. */ \ + struct node_type* h_next; /**< Next sequence. */ \ + struct node_type* v_prev; /**< 2nd previous sequence. */ \ + struct node_type* v_next /**< 2nd next sequence. */ + +/** + Read/Write sequence. + Elements can be dynamically inserted to or deleted from the sequence. +*/ +#define CV_SEQUENCE_FIELDS() \ + CV_TREE_NODE_FIELDS(CvSeq); \ + int total; /**< Total number of elements. */ \ + int elem_size; /**< Size of sequence element in bytes. */ \ + schar* block_max; /**< Maximal bound of the last block. */ \ + schar* ptr; /**< Current write pointer. */ \ + int delta_elems; /**< Grow seq this many at a time. */ \ + CvMemStorage* storage; /**< Where the seq is stored. */ \ + CvSeqBlock* free_blocks; /**< Free blocks list. */ \ + CvSeqBlock* first; /**< Pointer to the first sequence block. */ + +typedef struct CvSeq +{ + CV_SEQUENCE_FIELDS() +} +CvSeq; + +#define CV_TYPE_NAME_SEQ "opencv-sequence" +#define CV_TYPE_NAME_SEQ_TREE "opencv-sequence-tree" + +/*************************************** Set ********************************************/ +/** @brief Set + Order is not preserved. There can be gaps between sequence elements. + After the element has been inserted it stays in the same place all the time. + The MSB(most-significant or sign bit) of the first field (flags) is 0 iff the element exists. +*/ +#define CV_SET_ELEM_FIELDS(elem_type) \ + int flags; \ + struct elem_type* next_free; + +typedef struct CvSetElem +{ + CV_SET_ELEM_FIELDS(CvSetElem) +} +CvSetElem; + +#define CV_SET_FIELDS() \ + CV_SEQUENCE_FIELDS() \ + CvSetElem* free_elems; \ + int active_count; + +typedef struct CvSet +{ + CV_SET_FIELDS() +} +CvSet; + + +#define CV_SET_ELEM_IDX_MASK ((1 << 26) - 1) +#define CV_SET_ELEM_FREE_FLAG (1 << (sizeof(int)*8-1)) + +/** Checks whether the element pointed by ptr belongs to a set or not */ +#define CV_IS_SET_ELEM( ptr ) (((CvSetElem*)(ptr))->flags >= 0) + +/************************************* Graph ********************************************/ + +/** @name Graph + +We represent a graph as a set of vertices. Vertices contain their adjacency lists (more exactly, +pointers to first incoming or outcoming edge (or 0 if isolated vertex)). Edges are stored in +another set. There is a singly-linked list of incoming/outcoming edges for each vertex. + +Each edge consists of: + +- Two pointers to the starting and ending vertices (vtx[0] and vtx[1] respectively). + + A graph may be oriented or not. In the latter case, edges between vertex i to vertex j are not +distinguished during search operations. + +- Two pointers to next edges for the starting and ending vertices, where next[0] points to the +next edge in the vtx[0] adjacency list and next[1] points to the next edge in the vtx[1] +adjacency list. + +@see CvGraphEdge, CvGraphVtx, CvGraphVtx2D, CvGraph +@{ +*/ +#define CV_GRAPH_EDGE_FIELDS() \ + int flags; \ + float weight; \ + struct CvGraphEdge* next[2]; \ + struct CvGraphVtx* vtx[2]; + + +#define CV_GRAPH_VERTEX_FIELDS() \ + int flags; \ + struct CvGraphEdge* first; + + +typedef struct CvGraphEdge +{ + CV_GRAPH_EDGE_FIELDS() +} +CvGraphEdge; + +typedef struct CvGraphVtx +{ + CV_GRAPH_VERTEX_FIELDS() +} +CvGraphVtx; + +typedef struct CvGraphVtx2D +{ + CV_GRAPH_VERTEX_FIELDS() + CvPoint2D32f* ptr; +} +CvGraphVtx2D; + +/** + Graph is "derived" from the set (this is set a of vertices) + and includes another set (edges) +*/ +#define CV_GRAPH_FIELDS() \ + CV_SET_FIELDS() \ + CvSet* edges; + +typedef struct CvGraph +{ + CV_GRAPH_FIELDS() +} +CvGraph; + +#define CV_TYPE_NAME_GRAPH "opencv-graph" + +/** @} */ + +/*********************************** Chain/Contour *************************************/ + +typedef struct CvChain +{ + CV_SEQUENCE_FIELDS() + CvPoint origin; +} +CvChain; + +#define CV_CONTOUR_FIELDS() \ + CV_SEQUENCE_FIELDS() \ + CvRect rect; \ + int color; \ + int reserved[3]; + +typedef struct CvContour +{ + CV_CONTOUR_FIELDS() +} +CvContour; + +typedef CvContour CvPoint2DSeq; + +/****************************************************************************************\ +* Sequence types * +\****************************************************************************************/ + +#define CV_SEQ_MAGIC_VAL 0x42990000 + +#define CV_IS_SEQ(seq) \ + ((seq) != NULL && (((CvSeq*)(seq))->flags & CV_MAGIC_MASK) == CV_SEQ_MAGIC_VAL) + +#define CV_SET_MAGIC_VAL 0x42980000 +#define CV_IS_SET(set) \ + ((set) != NULL && (((CvSeq*)(set))->flags & CV_MAGIC_MASK) == CV_SET_MAGIC_VAL) + +#define CV_SEQ_ELTYPE_BITS 12 +#define CV_SEQ_ELTYPE_MASK ((1 << CV_SEQ_ELTYPE_BITS) - 1) + +#define CV_SEQ_ELTYPE_POINT CV_32SC2 /**< (x,y) */ +#define CV_SEQ_ELTYPE_CODE CV_8UC1 /**< freeman code: 0..7 */ +#define CV_SEQ_ELTYPE_GENERIC 0 +#define CV_SEQ_ELTYPE_PTR CV_MAKE_TYPE(CV_8U, 8 /*sizeof(void*)*/) +#define CV_SEQ_ELTYPE_PPOINT CV_SEQ_ELTYPE_PTR /**< &(x,y) */ +#define CV_SEQ_ELTYPE_INDEX CV_32SC1 /**< #(x,y) */ +#define CV_SEQ_ELTYPE_GRAPH_EDGE 0 /**< &next_o, &next_d, &vtx_o, &vtx_d */ +#define CV_SEQ_ELTYPE_GRAPH_VERTEX 0 /**< first_edge, &(x,y) */ +#define CV_SEQ_ELTYPE_TRIAN_ATR 0 /**< vertex of the binary tree */ +#define CV_SEQ_ELTYPE_CONNECTED_COMP 0 /**< connected component */ +#define CV_SEQ_ELTYPE_POINT3D CV_32FC3 /**< (x,y,z) */ + +#define CV_SEQ_KIND_BITS 2 +#define CV_SEQ_KIND_MASK (((1 << CV_SEQ_KIND_BITS) - 1)<flags & CV_SEQ_ELTYPE_MASK) +#define CV_SEQ_KIND( seq ) ((seq)->flags & CV_SEQ_KIND_MASK ) + +/** flag checking */ +#define CV_IS_SEQ_INDEX( seq ) ((CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_INDEX) && \ + (CV_SEQ_KIND(seq) == CV_SEQ_KIND_GENERIC)) + +#define CV_IS_SEQ_CURVE( seq ) (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE) +#define CV_IS_SEQ_CLOSED( seq ) (((seq)->flags & CV_SEQ_FLAG_CLOSED) != 0) +#define CV_IS_SEQ_CONVEX( seq ) 0 +#define CV_IS_SEQ_HOLE( seq ) (((seq)->flags & CV_SEQ_FLAG_HOLE) != 0) +#define CV_IS_SEQ_SIMPLE( seq ) 1 + +/** type checking macros */ +#define CV_IS_SEQ_POINT_SET( seq ) \ + ((CV_SEQ_ELTYPE(seq) == CV_32SC2 || CV_SEQ_ELTYPE(seq) == CV_32FC2)) + +#define CV_IS_SEQ_POINT_SUBSET( seq ) \ + (CV_IS_SEQ_INDEX( seq ) || CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_PPOINT) + +#define CV_IS_SEQ_POLYLINE( seq ) \ + (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && CV_IS_SEQ_POINT_SET(seq)) + +#define CV_IS_SEQ_POLYGON( seq ) \ + (CV_IS_SEQ_POLYLINE(seq) && CV_IS_SEQ_CLOSED(seq)) + +#define CV_IS_SEQ_CHAIN( seq ) \ + (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && (seq)->elem_size == 1) + +#define CV_IS_SEQ_CONTOUR( seq ) \ + (CV_IS_SEQ_CLOSED(seq) && (CV_IS_SEQ_POLYLINE(seq) || CV_IS_SEQ_CHAIN(seq))) + +#define CV_IS_SEQ_CHAIN_CONTOUR( seq ) \ + (CV_IS_SEQ_CHAIN( seq ) && CV_IS_SEQ_CLOSED( seq )) + +#define CV_IS_SEQ_POLYGON_TREE( seq ) \ + (CV_SEQ_ELTYPE (seq) == CV_SEQ_ELTYPE_TRIAN_ATR && \ + CV_SEQ_KIND( seq ) == CV_SEQ_KIND_BIN_TREE ) + +#define CV_IS_GRAPH( seq ) \ + (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_GRAPH) + +#define CV_IS_GRAPH_ORIENTED( seq ) \ + (((seq)->flags & CV_GRAPH_FLAG_ORIENTED) != 0) + +#define CV_IS_SUBDIV2D( seq ) \ + (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_SUBDIV2D) + +/****************************************************************************************/ +/* Sequence writer & reader */ +/****************************************************************************************/ + +#define CV_SEQ_WRITER_FIELDS() \ + int header_size; \ + CvSeq* seq; /**< the sequence written */ \ + CvSeqBlock* block; /**< current block */ \ + schar* ptr; /**< pointer to free space */ \ + schar* block_min; /**< pointer to the beginning of block*/\ + schar* block_max; /**< pointer to the end of block */ + +typedef struct CvSeqWriter +{ + CV_SEQ_WRITER_FIELDS() +} +CvSeqWriter; + + +#define CV_SEQ_READER_FIELDS() \ + int header_size; \ + CvSeq* seq; /**< sequence, beign read */ \ + CvSeqBlock* block; /**< current block */ \ + schar* ptr; /**< pointer to element be read next */ \ + schar* block_min; /**< pointer to the beginning of block */\ + schar* block_max; /**< pointer to the end of block */ \ + int delta_index;/**< = seq->first->start_index */ \ + schar* prev_elem; /**< pointer to previous element */ + +typedef struct CvSeqReader +{ + CV_SEQ_READER_FIELDS() +} +CvSeqReader; + +/****************************************************************************************/ +/* Operations on sequences */ +/****************************************************************************************/ + +#define CV_SEQ_ELEM( seq, elem_type, index ) \ +/** assert gives some guarantee that parameter is valid */ \ +( assert(sizeof((seq)->first[0]) == sizeof(CvSeqBlock) && \ + (seq)->elem_size == sizeof(elem_type)), \ + (elem_type*)((seq)->first && (unsigned)index < \ + (unsigned)((seq)->first->count) ? \ + (seq)->first->data + (index) * sizeof(elem_type) : \ + cvGetSeqElem( (CvSeq*)(seq), (index) ))) +#define CV_GET_SEQ_ELEM( elem_type, seq, index ) CV_SEQ_ELEM( (seq), elem_type, (index) ) + +/** Add element to sequence: */ +#define CV_WRITE_SEQ_ELEM_VAR( elem_ptr, writer ) \ +{ \ + if( (writer).ptr >= (writer).block_max ) \ + { \ + cvCreateSeqBlock( &writer); \ + } \ + memcpy((writer).ptr, elem_ptr, (writer).seq->elem_size);\ + (writer).ptr += (writer).seq->elem_size; \ +} + +#define CV_WRITE_SEQ_ELEM( elem, writer ) \ +{ \ + assert( (writer).seq->elem_size == sizeof(elem)); \ + if( (writer).ptr >= (writer).block_max ) \ + { \ + cvCreateSeqBlock( &writer); \ + } \ + assert( (writer).ptr <= (writer).block_max - sizeof(elem));\ + memcpy((writer).ptr, &(elem), sizeof(elem)); \ + (writer).ptr += sizeof(elem); \ +} + + +/** Move reader position forward: */ +#define CV_NEXT_SEQ_ELEM( elem_size, reader ) \ +{ \ + if( ((reader).ptr += (elem_size)) >= (reader).block_max ) \ + { \ + cvChangeSeqBlock( &(reader), 1 ); \ + } \ +} + + +/** Move reader position backward: */ +#define CV_PREV_SEQ_ELEM( elem_size, reader ) \ +{ \ + if( ((reader).ptr -= (elem_size)) < (reader).block_min ) \ + { \ + cvChangeSeqBlock( &(reader), -1 ); \ + } \ +} + +/** Read element and move read position forward: */ +#define CV_READ_SEQ_ELEM( elem, reader ) \ +{ \ + assert( (reader).seq->elem_size == sizeof(elem)); \ + memcpy( &(elem), (reader).ptr, sizeof((elem))); \ + CV_NEXT_SEQ_ELEM( sizeof(elem), reader ) \ +} + +/** Read element and move read position backward: */ +#define CV_REV_READ_SEQ_ELEM( elem, reader ) \ +{ \ + assert( (reader).seq->elem_size == sizeof(elem)); \ + memcpy(&(elem), (reader).ptr, sizeof((elem))); \ + CV_PREV_SEQ_ELEM( sizeof(elem), reader ) \ +} + + +#define CV_READ_CHAIN_POINT( _pt, reader ) \ +{ \ + (_pt) = (reader).pt; \ + if( (reader).ptr ) \ + { \ + CV_READ_SEQ_ELEM( (reader).code, (reader)); \ + assert( ((reader).code & ~7) == 0 ); \ + (reader).pt.x += (reader).deltas[(int)(reader).code][0]; \ + (reader).pt.y += (reader).deltas[(int)(reader).code][1]; \ + } \ +} + +#define CV_CURRENT_POINT( reader ) (*((CvPoint*)((reader).ptr))) +#define CV_PREV_POINT( reader ) (*((CvPoint*)((reader).prev_elem))) + +#define CV_READ_EDGE( pt1, pt2, reader ) \ +{ \ + assert( sizeof(pt1) == sizeof(CvPoint) && \ + sizeof(pt2) == sizeof(CvPoint) && \ + reader.seq->elem_size == sizeof(CvPoint)); \ + (pt1) = CV_PREV_POINT( reader ); \ + (pt2) = CV_CURRENT_POINT( reader ); \ + (reader).prev_elem = (reader).ptr; \ + CV_NEXT_SEQ_ELEM( sizeof(CvPoint), (reader)); \ +} + +/************ Graph macros ************/ + +/** Return next graph edge for given vertex: */ +#define CV_NEXT_GRAPH_EDGE( edge, vertex ) \ + (assert((edge)->vtx[0] == (vertex) || (edge)->vtx[1] == (vertex)), \ + (edge)->next[(edge)->vtx[1] == (vertex)]) + + + +/****************************************************************************************\ +* Data structures for persistence (a.k.a serialization) functionality * +\****************************************************************************************/ + +#if 0 + +/** "black box" file storage */ +typedef struct CvFileStorage CvFileStorage; + +/** Storage flags: */ +#define CV_STORAGE_READ 0 +#define CV_STORAGE_WRITE 1 +#define CV_STORAGE_WRITE_TEXT CV_STORAGE_WRITE +#define CV_STORAGE_WRITE_BINARY CV_STORAGE_WRITE +#define CV_STORAGE_APPEND 2 +#define CV_STORAGE_MEMORY 4 +#define CV_STORAGE_FORMAT_MASK (7<<3) +#define CV_STORAGE_FORMAT_AUTO 0 +#define CV_STORAGE_FORMAT_XML 8 +#define CV_STORAGE_FORMAT_YAML 16 +#define CV_STORAGE_FORMAT_JSON 24 +#define CV_STORAGE_BASE64 64 +#define CV_STORAGE_WRITE_BASE64 (CV_STORAGE_BASE64 | CV_STORAGE_WRITE) + +/** @brief List of attributes. : + +In the current implementation, attributes are used to pass extra parameters when writing user +objects (see cvWrite). XML attributes inside tags are not supported, aside from the object type +specification (type_id attribute). +@see cvAttrList, cvAttrValue + */ +typedef struct CvAttrList +{ + const char** attr; /**< NULL-terminated array of (attribute_name,attribute_value) pairs. */ + struct CvAttrList* next; /**< Pointer to next chunk of the attributes list. */ +} +CvAttrList; + +/** initializes CvAttrList structure */ +CV_INLINE CvAttrList cvAttrList( const char** attr CV_DEFAULT(NULL), + CvAttrList* next CV_DEFAULT(NULL) ) +{ + CvAttrList l; + l.attr = attr; + l.next = next; + + return l; +} + +struct CvTypeInfo; + +#define CV_NODE_NONE 0 +#define CV_NODE_INT 1 +#define CV_NODE_INTEGER CV_NODE_INT +#define CV_NODE_REAL 2 +#define CV_NODE_FLOAT CV_NODE_REAL +#define CV_NODE_STR 3 +#define CV_NODE_STRING CV_NODE_STR +#define CV_NODE_REF 4 /**< not used */ +#define CV_NODE_SEQ 5 +#define CV_NODE_MAP 6 +#define CV_NODE_TYPE_MASK 7 + +#define CV_NODE_TYPE(flags) ((flags) & CV_NODE_TYPE_MASK) + +/** file node flags */ +#define CV_NODE_FLOW 8 /**= CV_NODE_SEQ) +#define CV_NODE_IS_FLOW(flags) (((flags) & CV_NODE_FLOW) != 0) +#define CV_NODE_IS_EMPTY(flags) (((flags) & CV_NODE_EMPTY) != 0) +#define CV_NODE_IS_USER(flags) (((flags) & CV_NODE_USER) != 0) +#define CV_NODE_HAS_NAME(flags) (((flags) & CV_NODE_NAMED) != 0) + +#define CV_NODE_SEQ_SIMPLE 256 +#define CV_NODE_SEQ_IS_SIMPLE(seq) (((seq)->flags & CV_NODE_SEQ_SIMPLE) != 0) + +typedef struct CvString +{ + int len; + char* ptr; +} +CvString; + +/** All the keys (names) of elements in the read file storage + are stored in the hash to speed up the lookup operations: */ +typedef struct CvStringHashNode +{ + unsigned hashval; + CvString str; + struct CvStringHashNode* next; +} +CvStringHashNode; + +typedef struct CvGenericHash CvFileNodeHash; + +/** Basic element of the file storage - scalar or collection: */ +typedef struct CvFileNode +{ + int tag; + struct CvTypeInfo* info; /**< type information + (only for user-defined object, for others it is 0) */ + union + { + double f; /**< scalar floating-point number */ + int i; /**< scalar integer number */ + CvString str; /**< text string */ + CvSeq* seq; /**< sequence (ordered collection of file nodes) */ + CvFileNodeHash* map; /**< map (collection of named file nodes) */ + } data; +} +CvFileNode; + +#ifdef __cplusplus +extern "C" { +#endif +typedef int (CV_CDECL *CvIsInstanceFunc)( const void* struct_ptr ); +typedef void (CV_CDECL *CvReleaseFunc)( void** struct_dblptr ); +typedef void* (CV_CDECL *CvReadFunc)( CvFileStorage* storage, CvFileNode* node ); +typedef void (CV_CDECL *CvWriteFunc)( CvFileStorage* storage, const char* name, + const void* struct_ptr, CvAttrList attributes ); +typedef void* (CV_CDECL *CvCloneFunc)( const void* struct_ptr ); +#ifdef __cplusplus +} +#endif + +/** @brief Type information + +The structure contains information about one of the standard or user-defined types. Instances of the +type may or may not contain a pointer to the corresponding CvTypeInfo structure. In any case, there +is a way to find the type info structure for a given object using the cvTypeOf function. +Alternatively, type info can be found by type name using cvFindType, which is used when an object +is read from file storage. The user can register a new type with cvRegisterType that adds the type +information structure into the beginning of the type list. Thus, it is possible to create +specialized types from generic standard types and override the basic methods. + */ +typedef struct CvTypeInfo +{ + int flags; /**< not used */ + int header_size; /**< sizeof(CvTypeInfo) */ + struct CvTypeInfo* prev; /**< previous registered type in the list */ + struct CvTypeInfo* next; /**< next registered type in the list */ + const char* type_name; /**< type name, written to file storage */ + CvIsInstanceFunc is_instance; /**< checks if the passed object belongs to the type */ + CvReleaseFunc release; /**< releases object (memory etc.) */ + CvReadFunc read; /**< reads object from file storage */ + CvWriteFunc write; /**< writes object to file storage */ + CvCloneFunc clone; /**< creates a copy of the object */ +} +CvTypeInfo; +#endif + +/** @} */ + +#endif /*OPENCV_CORE_TYPES_H*/ + +/* End of file. */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/utility.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/utility.hpp new file mode 100644 index 000000000..29dd8fb2c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/utility.hpp @@ -0,0 +1,1314 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Copyright (C) 2015, Itseez Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_CORE_UTILITY_H +#define OPENCV_CORE_UTILITY_H + +#ifndef __cplusplus +# error utility.hpp header must be compiled as C++ +#endif + +#if defined(check) +# warning Detected Apple 'check' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. +#endif + +#include "opencv2/core.hpp" +#include + +#include + +#if !defined(_M_CEE) +#include // std::mutex, std::lock_guard +#endif + +namespace cv +{ + +#ifdef CV_COLLECT_IMPL_DATA +CV_EXPORTS void setImpl(int flags); // set implementation flags and reset storage arrays +CV_EXPORTS void addImpl(int flag, const char* func = 0); // add implementation and function name to storage arrays +// Get stored implementation flags and functions names arrays +// Each implementation entry correspond to function name entry, so you can find which implementation was executed in which function +CV_EXPORTS int getImpl(std::vector &impl, std::vector &funName); + +CV_EXPORTS bool useCollection(); // return implementation collection state +CV_EXPORTS void setUseCollection(bool flag); // set implementation collection state + +#define CV_IMPL_PLAIN 0x01 // native CPU OpenCV implementation +#define CV_IMPL_OCL 0x02 // OpenCL implementation +#define CV_IMPL_IPP 0x04 // IPP implementation +#define CV_IMPL_MT 0x10 // multithreaded implementation + +#define CV_IMPL_ADD(impl) \ + if(cv::useCollection()) \ + { \ + cv::addImpl(impl, CV_Func); \ + } +#else +#define CV_IMPL_ADD(impl) +#endif + +//! @addtogroup core_utils +//! @{ + +/** @brief Automatically Allocated Buffer Class + + The class is used for temporary buffers in functions and methods. + If a temporary buffer is usually small (a few K's of memory), + but its size depends on the parameters, it makes sense to create a small + fixed-size array on stack and use it if it's large enough. If the required buffer size + is larger than the fixed size, another buffer of sufficient size is allocated dynamically + and released after the processing. Therefore, in typical cases, when the buffer size is small, + there is no overhead associated with malloc()/free(). + At the same time, there is no limit on the size of processed data. + + This is what AutoBuffer does. The template takes 2 parameters - type of the buffer elements and + the number of stack-allocated elements. Here is how the class is used: + + \code + void my_func(const cv::Mat& m) + { + cv::AutoBuffer buf(1000); // create automatic buffer containing 1000 floats + + buf.allocate(m.rows); // if m.rows <= 1000, the pre-allocated buffer is used, + // otherwise the buffer of "m.rows" floats will be allocated + // dynamically and deallocated in cv::AutoBuffer destructor + ... + } + \endcode +*/ +template class AutoBuffer +{ +public: + typedef _Tp value_type; + + //! the default constructor + AutoBuffer(); + //! constructor taking the real buffer size + explicit AutoBuffer(size_t _size); + + //! the copy constructor + AutoBuffer(const AutoBuffer<_Tp, fixed_size>& buf); + //! the assignment operator + AutoBuffer<_Tp, fixed_size>& operator = (const AutoBuffer<_Tp, fixed_size>& buf); + + //! destructor. calls deallocate() + ~AutoBuffer(); + + //! allocates the new buffer of size _size. if the _size is small enough, stack-allocated buffer is used + void allocate(size_t _size); + //! deallocates the buffer if it was dynamically allocated + void deallocate(); + //! resizes the buffer and preserves the content + void resize(size_t _size); + //! returns the current buffer size + size_t size() const; + //! returns pointer to the real buffer, stack-allocated or heap-allocated + inline _Tp* data() { return ptr; } + //! returns read-only pointer to the real buffer, stack-allocated or heap-allocated + inline const _Tp* data() const { return ptr; } + +#if !defined(OPENCV_DISABLE_DEPRECATED_COMPATIBILITY) // use to .data() calls instead + //! returns pointer to the real buffer, stack-allocated or heap-allocated + operator _Tp* () { return ptr; } + //! returns read-only pointer to the real buffer, stack-allocated or heap-allocated + operator const _Tp* () const { return ptr; } +#else + //! returns a reference to the element at specified location. No bounds checking is performed in Release builds. + inline _Tp& operator[] (size_t i) { CV_DbgCheckLT(i, sz, "out of range"); return ptr[i]; } + //! returns a reference to the element at specified location. No bounds checking is performed in Release builds. + inline const _Tp& operator[] (size_t i) const { CV_DbgCheckLT(i, sz, "out of range"); return ptr[i]; } +#endif + +protected: + //! pointer to the real buffer, can point to buf if the buffer is small enough + _Tp* ptr; + //! size of the real buffer + size_t sz; + //! pre-allocated buffer. At least 1 element to confirm C++ standard requirements + _Tp buf[(fixed_size > 0) ? fixed_size : 1]; +}; + +/** @brief Sets/resets the break-on-error mode. + +When the break-on-error mode is set, the default error handler issues a hardware exception, which +can make debugging more convenient. + +\return the previous state + */ +CV_EXPORTS bool setBreakOnError(bool flag); + +extern "C" typedef int (*ErrorCallback)( int status, const char* func_name, + const char* err_msg, const char* file_name, + int line, void* userdata ); + + +/** @brief Sets the new error handler and the optional user data. + + The function sets the new error handler, called from cv::error(). + + \param errCallback the new error handler. If NULL, the default error handler is used. + \param userdata the optional user data pointer, passed to the callback. + \param prevUserdata the optional output parameter where the previous user data pointer is stored + + \return the previous error handler +*/ +CV_EXPORTS ErrorCallback redirectError( ErrorCallback errCallback, void* userdata=0, void** prevUserdata=0); + +CV_EXPORTS String tempfile( const char* suffix = 0); +CV_EXPORTS void glob(String pattern, std::vector& result, bool recursive = false); + +/** @brief OpenCV will try to set the number of threads for the next parallel region. + +If threads == 0, OpenCV will disable threading optimizations and run all it's functions +sequentially. Passing threads \< 0 will reset threads number to system default. This function must +be called outside of parallel region. + +OpenCV will try to run its functions with specified threads number, but some behaviour differs from +framework: +- `TBB` - User-defined parallel constructions will run with the same threads number, if + another is not specified. If later on user creates his own scheduler, OpenCV will use it. +- `OpenMP` - No special defined behaviour. +- `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its + functions sequentially. +- `GCD` - Supports only values \<= 0. +- `C=` - No special defined behaviour. +@param nthreads Number of threads used by OpenCV. +@sa getNumThreads, getThreadNum + */ +CV_EXPORTS_W void setNumThreads(int nthreads); + +/** @brief Returns the number of threads used by OpenCV for parallel regions. + +Always returns 1 if OpenCV is built without threading support. + +The exact meaning of return value depends on the threading framework used by OpenCV library: +- `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is + any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns + default number of threads used by TBB library. +- `OpenMP` - An upper bound on the number of threads that could be used to form a new team. +- `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions. +- `GCD` - Unsupported; returns the GCD thread pool limit (512) for compatibility. +- `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before + called setNumThreads with threads \> 0, otherwise returns the number of logical CPUs, + available for the process. +@sa setNumThreads, getThreadNum + */ +CV_EXPORTS_W int getNumThreads(); + +/** @brief Returns the index of the currently executed thread within the current parallel region. Always +returns 0 if called outside of parallel region. + +@deprecated Current implementation doesn't corresponding to this documentation. + +The exact meaning of the return value depends on the threading framework used by OpenCV library: +- `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future. +- `OpenMP` - The thread number, within the current team, of the calling thread. +- `Concurrency` - An ID for the virtual processor that the current context is executing on (0 + for master thread and unique number for others, but not necessary 1,2,3,...). +- `GCD` - System calling thread's ID. Never returns 0 inside parallel region. +- `C=` - The index of the current parallel task. +@sa setNumThreads, getNumThreads + */ +CV_EXPORTS_W int getThreadNum(); + +/** @brief Returns full configuration time cmake output. + +Returned value is raw cmake output including version control system revision, compiler version, +compiler flags, enabled modules and third party libraries, etc. Output format depends on target +architecture. + */ +CV_EXPORTS_W const String& getBuildInformation(); + +/** @brief Returns library version string + +For example "3.4.1-dev". + +@sa getMajorVersion, getMinorVersion, getRevisionVersion +*/ +CV_EXPORTS_W String getVersionString(); + +/** @brief Returns major library version */ +CV_EXPORTS_W int getVersionMajor(); + +/** @brief Returns minor library version */ +CV_EXPORTS_W int getVersionMinor(); + +/** @brief Returns revision field of the library version */ +CV_EXPORTS_W int getVersionRevision(); + +/** @brief Returns the number of ticks. + +The function returns the number of ticks after the certain event (for example, when the machine was +turned on). It can be used to initialize RNG or to measure a function execution time by reading the +tick count before and after the function call. +@sa getTickFrequency, TickMeter + */ +CV_EXPORTS_W int64 getTickCount(); + +/** @brief Returns the number of ticks per second. + +The function returns the number of ticks per second. That is, the following code computes the +execution time in seconds: +@code + double t = (double)getTickCount(); + // do something ... + t = ((double)getTickCount() - t)/getTickFrequency(); +@endcode +@sa getTickCount, TickMeter + */ +CV_EXPORTS_W double getTickFrequency(); + +/** @brief a Class to measure passing time. + +The class computes passing time by counting the number of ticks per second. That is, the following code computes the +execution time in seconds: +@code +TickMeter tm; +tm.start(); +// do something ... +tm.stop(); +std::cout << tm.getTimeSec(); +@endcode + +It is also possible to compute the average time over multiple runs: +@code +TickMeter tm; +for (int i = 0; i < 100; i++) +{ + tm.start(); + // do something ... + tm.stop(); +} +double average_time = tm.getTimeSec() / tm.getCounter(); +std::cout << "Average time in second per iteration is: " << average_time << std::endl; +@endcode +@sa getTickCount, getTickFrequency +*/ + +class CV_EXPORTS_W TickMeter +{ +public: + //! the default constructor + CV_WRAP TickMeter() + { + reset(); + } + + /** + starts counting ticks. + */ + CV_WRAP void start() + { + startTime = cv::getTickCount(); + } + + /** + stops counting ticks. + */ + CV_WRAP void stop() + { + int64 time = cv::getTickCount(); + if (startTime == 0) + return; + ++counter; + sumTime += (time - startTime); + startTime = 0; + } + + /** + returns counted ticks. + */ + CV_WRAP int64 getTimeTicks() const + { + return sumTime; + } + + /** + returns passed time in microseconds. + */ + CV_WRAP double getTimeMicro() const + { + return getTimeMilli()*1e3; + } + + /** + returns passed time in milliseconds. + */ + CV_WRAP double getTimeMilli() const + { + return getTimeSec()*1e3; + } + + /** + returns passed time in seconds. + */ + CV_WRAP double getTimeSec() const + { + return (double)getTimeTicks() / getTickFrequency(); + } + + /** + returns internal counter value. + */ + CV_WRAP int64 getCounter() const + { + return counter; + } + + /** + resets internal values. + */ + CV_WRAP void reset() + { + startTime = 0; + sumTime = 0; + counter = 0; + } + +private: + int64 counter; + int64 sumTime; + int64 startTime; +}; + +/** @brief output operator +@code +TickMeter tm; +tm.start(); +// do something ... +tm.stop(); +std::cout << tm; +@endcode +*/ + +static inline +std::ostream& operator << (std::ostream& out, const TickMeter& tm) +{ + return out << tm.getTimeSec() << "sec"; +} + +/** @brief Returns the number of CPU ticks. + +The function returns the current number of CPU ticks on some architectures (such as x86, x64, +PowerPC). On other platforms the function is equivalent to getTickCount. It can also be used for +very accurate time measurements, as well as for RNG initialization. Note that in case of multi-CPU +systems a thread, from which getCPUTickCount is called, can be suspended and resumed at another CPU +with its own counter. So, theoretically (and practically) the subsequent calls to the function do +not necessary return the monotonously increasing values. Also, since a modern CPU varies the CPU +frequency depending on the load, the number of CPU clocks spent in some code cannot be directly +converted to time units. Therefore, getTickCount is generally a preferable solution for measuring +execution time. + */ +CV_EXPORTS_W int64 getCPUTickCount(); + +/** @brief Returns true if the specified feature is supported by the host hardware. + +The function returns true if the host hardware supports the specified feature. When user calls +setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until +setUseOptimized(true) is called. This way user can dynamically switch on and off the optimized code +in OpenCV. +@param feature The feature of interest, one of cv::CpuFeatures + */ +CV_EXPORTS_W bool checkHardwareSupport(int feature); + +/** @brief Returns feature name by ID + +Returns empty string if feature is not defined +*/ +CV_EXPORTS_W String getHardwareFeatureName(int feature); + +/** @brief Returns list of CPU features enabled during compilation. + +Returned value is a string containing space separated list of CPU features with following markers: + +- no markers - baseline features +- prefix `*` - features enabled in dispatcher +- suffix `?` - features enabled but not available in HW + +Example: `SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?` +*/ +CV_EXPORTS std::string getCPUFeaturesLine(); + +/** @brief Returns the number of logical CPUs available for the process. + */ +CV_EXPORTS_W int getNumberOfCPUs(); + + +/** @brief Aligns a pointer to the specified number of bytes. + +The function returns the aligned pointer of the same type as the input pointer: +\f[\texttt{(_Tp*)(((size_t)ptr + n-1) & -n)}\f] +@param ptr Aligned pointer. +@param n Alignment size that must be a power of two. + */ +template static inline _Tp* alignPtr(_Tp* ptr, int n=(int)sizeof(_Tp)) +{ + CV_DbgAssert((n & (n - 1)) == 0); // n is a power of 2 + return (_Tp*)(((size_t)ptr + n-1) & -n); +} + +/** @brief Aligns a buffer size to the specified number of bytes. + +The function returns the minimum number that is greater than or equal to sz and is divisible by n : +\f[\texttt{(sz + n-1) & -n}\f] +@param sz Buffer size to align. +@param n Alignment size that must be a power of two. + */ +static inline size_t alignSize(size_t sz, int n) +{ + CV_DbgAssert((n & (n - 1)) == 0); // n is a power of 2 + return (sz + n-1) & -n; +} + +/** @brief Integer division with result round up. + +Use this function instead of `ceil((float)a / b)` expressions. + +@sa alignSize +*/ +static inline int divUp(int a, unsigned int b) +{ + CV_DbgAssert(a >= 0); + return (a + b - 1) / b; +} +/** @overload */ +static inline size_t divUp(size_t a, unsigned int b) +{ + return (a + b - 1) / b; +} + +/** @brief Round first value up to the nearest multiple of second value. + +Use this function instead of `ceil((float)a / b) * b` expressions. + +@sa divUp +*/ +static inline int roundUp(int a, unsigned int b) +{ + CV_DbgAssert(a >= 0); + return a + b - 1 - (a + b -1) % b; +} +/** @overload */ +static inline size_t roundUp(size_t a, unsigned int b) +{ + return a + b - 1 - (a + b - 1) % b; +} + +/** @brief Enables or disables the optimized code. + +The function can be used to dynamically turn on and off optimized dispatched code (code that uses SSE4.2, AVX/AVX2, +and other instructions on the platforms that support it). It sets a global flag that is further +checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only +safe to call the function on the very top level in your application where you can be sure that no +other OpenCV function is currently executed. + +By default, the optimized code is enabled unless you disable it in CMake. The current status can be +retrieved using useOptimized. +@param onoff The boolean flag specifying whether the optimized code should be used (onoff=true) +or not (onoff=false). + */ +CV_EXPORTS_W void setUseOptimized(bool onoff); + +/** @brief Returns the status of optimized code usage. + +The function returns true if the optimized code is enabled. Otherwise, it returns false. + */ +CV_EXPORTS_W bool useOptimized(); + +static inline size_t getElemSize(int type) { return (size_t)CV_ELEM_SIZE(type); } + +/////////////////////////////// Parallel Primitives ////////////////////////////////// + +/** @brief Base class for parallel data processors +*/ +class CV_EXPORTS ParallelLoopBody +{ +public: + virtual ~ParallelLoopBody(); + virtual void operator() (const Range& range) const = 0; +}; + +/** @brief Parallel data processor +*/ +CV_EXPORTS void parallel_for_(const Range& range, const ParallelLoopBody& body, double nstripes=-1.); + +class ParallelLoopBodyLambdaWrapper : public ParallelLoopBody +{ +private: + std::function m_functor; +public: + ParallelLoopBodyLambdaWrapper(std::function functor) : + m_functor(functor) + { } + + virtual void operator() (const cv::Range& range) const CV_OVERRIDE + { + m_functor(range); + } +}; + +inline void parallel_for_(const Range& range, std::function functor, double nstripes=-1.) +{ + parallel_for_(range, ParallelLoopBodyLambdaWrapper(functor), nstripes); +} + +/////////////////////////////// forEach method of cv::Mat //////////////////////////// +template inline +void Mat::forEach_impl(const Functor& operation) { + if (false) { + operation(*reinterpret_cast<_Tp*>(0), reinterpret_cast(0)); + // If your compiler fails in this line. + // Please check that your functor signature is + // (_Tp&, const int*) <- multi-dimensional + // or (_Tp&, void*) <- in case you don't need current idx. + } + + CV_Assert(this->total() / this->size[this->dims - 1] <= INT_MAX); + const int LINES = static_cast(this->total() / this->size[this->dims - 1]); + + class PixelOperationWrapper :public ParallelLoopBody + { + public: + PixelOperationWrapper(Mat_<_Tp>* const frame, const Functor& _operation) + : mat(frame), op(_operation) {} + virtual ~PixelOperationWrapper(){} + // ! Overloaded virtual operator + // convert range call to row call. + virtual void operator()(const Range &range) const CV_OVERRIDE + { + const int DIMS = mat->dims; + const int COLS = mat->size[DIMS - 1]; + if (DIMS <= 2) { + for (int row = range.start; row < range.end; ++row) { + this->rowCall2(row, COLS); + } + } else { + std::vector idx(DIMS); /// idx is modified in this->rowCall + idx[DIMS - 2] = range.start - 1; + + for (int line_num = range.start; line_num < range.end; ++line_num) { + idx[DIMS - 2]++; + for (int i = DIMS - 2; i >= 0; --i) { + if (idx[i] >= mat->size[i]) { + idx[i - 1] += idx[i] / mat->size[i]; + idx[i] %= mat->size[i]; + continue; // carry-over; + } + else { + break; + } + } + this->rowCall(&idx[0], COLS, DIMS); + } + } + } + private: + Mat_<_Tp>* const mat; + const Functor op; + // ! Call operator for each elements in this row. + inline void rowCall(int* const idx, const int COLS, const int DIMS) const { + int &col = idx[DIMS - 1]; + col = 0; + _Tp* pixel = &(mat->template at<_Tp>(idx)); + + while (col < COLS) { + op(*pixel, const_cast(idx)); + pixel++; col++; + } + col = 0; + } + // ! Call operator for each elements in this row. 2d mat special version. + inline void rowCall2(const int row, const int COLS) const { + union Index{ + int body[2]; + operator const int*() const { + return reinterpret_cast(this); + } + int& operator[](const int i) { + return body[i]; + } + } idx = {{row, 0}}; + // Special union is needed to avoid + // "error: array subscript is above array bounds [-Werror=array-bounds]" + // when call the functor `op` such that access idx[3]. + + _Tp* pixel = &(mat->template at<_Tp>(idx)); + const _Tp* const pixel_end = pixel + COLS; + while(pixel < pixel_end) { + op(*pixel++, static_cast(idx)); + idx[1]++; + } + } + PixelOperationWrapper& operator=(const PixelOperationWrapper &) { + CV_Assert(false); + // We can not remove this implementation because Visual Studio warning C4822. + return *this; + } + }; + + parallel_for_(cv::Range(0, LINES), PixelOperationWrapper(reinterpret_cast*>(this), operation)); +} + +/////////////////////////// Synchronization Primitives /////////////////////////////// + +#if !defined(_M_CEE) +typedef std::recursive_mutex Mutex; +typedef std::lock_guard AutoLock; +#endif + +// TLS interface +class CV_EXPORTS TLSDataContainer +{ +protected: + TLSDataContainer(); + virtual ~TLSDataContainer(); + + void gatherData(std::vector &data) const; + void* getData() const; + void release(); + +private: + virtual void* createDataInstance() const = 0; + virtual void deleteDataInstance(void* pData) const = 0; + + int key_; + +public: + void cleanup(); //! Release created TLS data container objects. It is similar to release() call, but it keeps TLS container valid. +}; + +// Main TLS data class +template +class TLSData : protected TLSDataContainer +{ +public: + inline TLSData() {} + inline ~TLSData() { release(); } // Release key and delete associated data + inline T* get() const { return (T*)getData(); } // Get data associated with key + inline T& getRef() const { T* ptr = (T*)getData(); CV_Assert(ptr); return *ptr; } // Get data associated with key + + // Get data from all threads + inline void gather(std::vector &data) const + { + std::vector &dataVoid = reinterpret_cast&>(data); + gatherData(dataVoid); + } + + inline void cleanup() { TLSDataContainer::cleanup(); } + +private: + virtual void* createDataInstance() const CV_OVERRIDE {return new T;} // Wrapper to allocate data by template + virtual void deleteDataInstance(void* pData) const CV_OVERRIDE {delete (T*)pData;} // Wrapper to release data by template + + // Disable TLS copy operations + TLSData(TLSData &) {} + TLSData& operator =(const TLSData &) {return *this;} +}; + +/** @brief Designed for command line parsing + +The sample below demonstrates how to use CommandLineParser: +@code + CommandLineParser parser(argc, argv, keys); + parser.about("Application name v1.0.0"); + + if (parser.has("help")) + { + parser.printMessage(); + return 0; + } + + int N = parser.get("N"); + double fps = parser.get("fps"); + String path = parser.get("path"); + + use_time_stamp = parser.has("timestamp"); + + String img1 = parser.get(0); + String img2 = parser.get(1); + + int repeat = parser.get(2); + + if (!parser.check()) + { + parser.printErrors(); + return 0; + } +@endcode + +### Keys syntax + +The keys parameter is a string containing several blocks, each one is enclosed in curly braces and +describes one argument. Each argument contains three parts separated by the `|` symbol: + +-# argument names is a space-separated list of option synonyms (to mark argument as positional, prefix it with the `@` symbol) +-# default value will be used if the argument was not provided (can be empty) +-# help message (can be empty) + +For example: + +@code{.cpp} + const String keys = + "{help h usage ? | | print this message }" + "{@image1 | | image1 for compare }" + "{@image2 || image2 for compare }" + "{@repeat |1 | number }" + "{path |. | path to file }" + "{fps | -1.0 | fps for output video }" + "{N count |100 | count of objects }" + "{ts timestamp | | use time stamp }" + ; +} +@endcode + +Note that there are no default values for `help` and `timestamp` so we can check their presence using the `has()` method. +Arguments with default values are considered to be always present. Use the `get()` method in these cases to check their +actual value instead. + +String keys like `get("@image1")` return the empty string `""` by default - even with an empty default value. +Use the special `` default value to enforce that the returned string must not be empty. (like in `get("@image2")`) + +### Usage + +For the described keys: + +@code{.sh} + # Good call (3 positional parameters: image1, image2 and repeat; N is 200, ts is true) + $ ./app -N=200 1.png 2.jpg 19 -ts + + # Bad call + $ ./app -fps=aaa + ERRORS: + Parameter 'fps': can not convert: [aaa] to [double] +@endcode + */ +class CV_EXPORTS CommandLineParser +{ +public: + + /** @brief Constructor + + Initializes command line parser object + + @param argc number of command line arguments (from main()) + @param argv array of command line arguments (from main()) + @param keys string describing acceptable command line parameters (see class description for syntax) + */ + CommandLineParser(int argc, const char* const argv[], const String& keys); + + /** @brief Copy constructor */ + CommandLineParser(const CommandLineParser& parser); + + /** @brief Assignment operator */ + CommandLineParser& operator = (const CommandLineParser& parser); + + /** @brief Destructor */ + ~CommandLineParser(); + + /** @brief Returns application path + + This method returns the path to the executable from the command line (`argv[0]`). + + For example, if the application has been started with such a command: + @code{.sh} + $ ./bin/my-executable + @endcode + this method will return `./bin`. + */ + String getPathToApplication() const; + + /** @brief Access arguments by name + + Returns argument converted to selected type. If the argument is not known or can not be + converted to selected type, the error flag is set (can be checked with @ref check). + + For example, define: + @code{.cpp} + String keys = "{N count||}"; + @endcode + + Call: + @code{.sh} + $ ./my-app -N=20 + # or + $ ./my-app --count=20 + @endcode + + Access: + @code{.cpp} + int N = parser.get("N"); + @endcode + + @param name name of the argument + @param space_delete remove spaces from the left and right of the string + @tparam T the argument will be converted to this type if possible + + @note You can access positional arguments by their `@`-prefixed name: + @code{.cpp} + parser.get("@image"); + @endcode + */ + template + T get(const String& name, bool space_delete = true) const + { + T val = T(); + getByName(name, space_delete, ParamType::type, (void*)&val); + return val; + } + + /** @brief Access positional arguments by index + + Returns argument converted to selected type. Indexes are counted from zero. + + For example, define: + @code{.cpp} + String keys = "{@arg1||}{@arg2||}" + @endcode + + Call: + @code{.sh} + ./my-app abc qwe + @endcode + + Access arguments: + @code{.cpp} + String val_1 = parser.get(0); // returns "abc", arg1 + String val_2 = parser.get(1); // returns "qwe", arg2 + @endcode + + @param index index of the argument + @param space_delete remove spaces from the left and right of the string + @tparam T the argument will be converted to this type if possible + */ + template + T get(int index, bool space_delete = true) const + { + T val = T(); + getByIndex(index, space_delete, ParamType::type, (void*)&val); + return val; + } + + /** @brief Check if field was provided in the command line + + @param name argument name to check + */ + bool has(const String& name) const; + + /** @brief Check for parsing errors + + Returns false if error occurred while accessing the parameters (bad conversion, missing arguments, + etc.). Call @ref printErrors to print error messages list. + */ + bool check() const; + + /** @brief Set the about message + + The about message will be shown when @ref printMessage is called, right before arguments table. + */ + void about(const String& message); + + /** @brief Print help message + + This method will print standard help message containing the about message and arguments description. + + @sa about + */ + void printMessage() const; + + /** @brief Print list of errors occurred + + @sa check + */ + void printErrors() const; + +protected: + void getByName(const String& name, bool space_delete, Param type, void* dst) const; + void getByIndex(int index, bool space_delete, Param type, void* dst) const; + + struct Impl; + Impl* impl; +}; + +//! @} core_utils + +//! @cond IGNORED + +/////////////////////////////// AutoBuffer implementation //////////////////////////////////////// + +template inline +AutoBuffer<_Tp, fixed_size>::AutoBuffer() +{ + ptr = buf; + sz = fixed_size; +} + +template inline +AutoBuffer<_Tp, fixed_size>::AutoBuffer(size_t _size) +{ + ptr = buf; + sz = fixed_size; + allocate(_size); +} + +template inline +AutoBuffer<_Tp, fixed_size>::AutoBuffer(const AutoBuffer<_Tp, fixed_size>& abuf ) +{ + ptr = buf; + sz = fixed_size; + allocate(abuf.size()); + for( size_t i = 0; i < sz; i++ ) + ptr[i] = abuf.ptr[i]; +} + +template inline AutoBuffer<_Tp, fixed_size>& +AutoBuffer<_Tp, fixed_size>::operator = (const AutoBuffer<_Tp, fixed_size>& abuf) +{ + if( this != &abuf ) + { + deallocate(); + allocate(abuf.size()); + for( size_t i = 0; i < sz; i++ ) + ptr[i] = abuf.ptr[i]; + } + return *this; +} + +template inline +AutoBuffer<_Tp, fixed_size>::~AutoBuffer() +{ deallocate(); } + +template inline void +AutoBuffer<_Tp, fixed_size>::allocate(size_t _size) +{ + if(_size <= sz) + { + sz = _size; + return; + } + deallocate(); + sz = _size; + if(_size > fixed_size) + { + ptr = new _Tp[_size]; + } +} + +template inline void +AutoBuffer<_Tp, fixed_size>::deallocate() +{ + if( ptr != buf ) + { + delete[] ptr; + ptr = buf; + sz = fixed_size; + } +} + +template inline void +AutoBuffer<_Tp, fixed_size>::resize(size_t _size) +{ + if(_size <= sz) + { + sz = _size; + return; + } + size_t i, prevsize = sz, minsize = MIN(prevsize, _size); + _Tp* prevptr = ptr; + + ptr = _size > fixed_size ? new _Tp[_size] : buf; + sz = _size; + + if( ptr != prevptr ) + for( i = 0; i < minsize; i++ ) + ptr[i] = prevptr[i]; + for( i = prevsize; i < _size; i++ ) + ptr[i] = _Tp(); + + if( prevptr != buf ) + delete[] prevptr; +} + +template inline size_t +AutoBuffer<_Tp, fixed_size>::size() const +{ return sz; } + +//! @endcond + + +// Basic Node class for tree building +template +class CV_EXPORTS Node +{ +public: + Node() + { + m_pParent = 0; + } + Node(OBJECT& payload) : m_payload(payload) + { + m_pParent = 0; + } + ~Node() + { + removeChilds(); + if (m_pParent) + { + int idx = m_pParent->findChild(this); + if (idx >= 0) + m_pParent->m_childs.erase(m_pParent->m_childs.begin() + idx); + } + } + + Node* findChild(OBJECT& payload) const + { + for(size_t i = 0; i < this->m_childs.size(); i++) + { + if(this->m_childs[i]->m_payload == payload) + return this->m_childs[i]; + } + return NULL; + } + + int findChild(Node *pNode) const + { + for (size_t i = 0; i < this->m_childs.size(); i++) + { + if(this->m_childs[i] == pNode) + return (int)i; + } + return -1; + } + + void addChild(Node *pNode) + { + if(!pNode) + return; + + CV_Assert(pNode->m_pParent == 0); + pNode->m_pParent = this; + this->m_childs.push_back(pNode); + } + + void removeChilds() + { + for(size_t i = 0; i < m_childs.size(); i++) + { + m_childs[i]->m_pParent = 0; // avoid excessive parent vector trimming + delete m_childs[i]; + } + m_childs.clear(); + } + + int getDepth() + { + int count = 0; + Node *pParent = m_pParent; + while(pParent) count++, pParent = pParent->m_pParent; + return count; + } + +public: + OBJECT m_payload; + Node* m_pParent; + std::vector*> m_childs; +}; + +// Instrumentation external interface +namespace instr +{ + +#if !defined OPENCV_ABI_CHECK + +enum TYPE +{ + TYPE_GENERAL = 0, // OpenCV API function, e.g. exported function + TYPE_MARKER, // Information marker + TYPE_WRAPPER, // Wrapper function for implementation + TYPE_FUN, // Simple function call +}; + +enum IMPL +{ + IMPL_PLAIN = 0, + IMPL_IPP, + IMPL_OPENCL, +}; + +struct NodeDataTls +{ + NodeDataTls() + { + m_ticksTotal = 0; + } + uint64 m_ticksTotal; +}; + +class CV_EXPORTS NodeData +{ +public: + NodeData(const char* funName = 0, const char* fileName = NULL, int lineNum = 0, void* retAddress = NULL, bool alwaysExpand = false, cv::instr::TYPE instrType = TYPE_GENERAL, cv::instr::IMPL implType = IMPL_PLAIN); + NodeData(NodeData &ref); + ~NodeData(); + NodeData& operator=(const NodeData&); + + cv::String m_funName; + cv::instr::TYPE m_instrType; + cv::instr::IMPL m_implType; + const char* m_fileName; + int m_lineNum; + void* m_retAddress; + bool m_alwaysExpand; + bool m_funError; + + volatile int m_counter; + volatile uint64 m_ticksTotal; + TLSData m_tls; + int m_threads; + + // No synchronization + double getTotalMs() const { return ((double)m_ticksTotal / cv::getTickFrequency()) * 1000; } + double getMeanMs() const { return (((double)m_ticksTotal/m_counter) / cv::getTickFrequency()) * 1000; } +}; +bool operator==(const NodeData& lhs, const NodeData& rhs); + +typedef Node InstrNode; + +CV_EXPORTS InstrNode* getTrace(); + +#endif // !defined OPENCV_ABI_CHECK + + +CV_EXPORTS bool useInstrumentation(); +CV_EXPORTS void setUseInstrumentation(bool flag); +CV_EXPORTS void resetTrace(); + +enum FLAGS +{ + FLAGS_NONE = 0, + FLAGS_MAPPING = 0x01, + FLAGS_EXPAND_SAME_NAMES = 0x02, +}; + +CV_EXPORTS void setFlags(FLAGS modeFlags); +static inline void setFlags(int modeFlags) { setFlags((FLAGS)modeFlags); } +CV_EXPORTS FLAGS getFlags(); + +} // namespace instr + + +namespace samples { + +//! @addtogroup core_utils_samples +// This section describes utility functions for OpenCV samples. +// +// @note Implementation of these utilities is not thread-safe. +// +//! @{ + +/** @brief Try to find requested data file + +Search directories: + +1. Directories passed via `addSamplesDataSearchPath()` +2. OPENCV_SAMPLES_DATA_PATH_HINT environment variable +3. OPENCV_SAMPLES_DATA_PATH environment variable + If parameter value is not empty and nothing is found then stop searching. +4. Detects build/install path based on: + a. current working directory (CWD) + b. and/or binary module location (opencv_core/opencv_world, doesn't work with static linkage) +5. Scan `/{,data,samples/data}` directories if build directory is detected or the current directory is in source tree. +6. Scan `/share/OpenCV` directory if install directory is detected. + +@see cv::utils::findDataFile + +@param relative_path Relative path to data file +@param required Specify "file not found" handling. + If true, function prints information message and raises cv::Exception. + If false, function returns empty result +@param silentMode Disables messages +@return Returns path (absolute or relative to the current directory) or empty string if file is not found +*/ +CV_EXPORTS_W cv::String findFile(const cv::String& relative_path, bool required = true, bool silentMode = false); + +CV_EXPORTS_W cv::String findFileOrKeep(const cv::String& relative_path, bool silentMode = false); + +inline cv::String findFileOrKeep(const cv::String& relative_path, bool silentMode) +{ + cv::String res = findFile(relative_path, false, silentMode); + if (res.empty()) + return relative_path; + return res; +} + +/** @brief Override search data path by adding new search location + +Use this only to override default behavior +Passed paths are used in LIFO order. + +@param path Path to used samples data +*/ +CV_EXPORTS_W void addSamplesDataSearchPath(const cv::String& path); + +/** @brief Append samples search data sub directory + +General usage is to add OpenCV modules name (`/modules//samples/data` -> `/samples/data` + `modules//samples/data`). +Passed subdirectories are used in LIFO order. + +@param subdir samples data sub directory +*/ +CV_EXPORTS_W void addSamplesDataSearchSubDirectory(const cv::String& subdir); + +//! @} +} // namespace samples + +namespace utils { + +CV_EXPORTS int getThreadID(); + +} // namespace + +} //namespace cv + +#endif //OPENCV_CORE_UTILITY_H diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/utils/filesystem.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/utils/filesystem.hpp new file mode 100644 index 000000000..9f043bef5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/utils/filesystem.hpp @@ -0,0 +1,81 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_UTILS_FILESYSTEM_HPP +#define OPENCV_UTILS_FILESYSTEM_HPP + +namespace cv { namespace utils { namespace fs { + + +CV_EXPORTS bool exists(const cv::String& path); +CV_EXPORTS bool isDirectory(const cv::String& path); + +CV_EXPORTS void remove_all(const cv::String& path); + + +CV_EXPORTS cv::String getcwd(); + +/** @brief Converts path p to a canonical absolute path + * Symlinks are processed if there is support for them on running platform. + * + * @param path input path. Target file/directory should exist. + */ +CV_EXPORTS cv::String canonical(const cv::String& path); + +/** Join path components */ +CV_EXPORTS cv::String join(const cv::String& base, const cv::String& path); + +/** Get parent directory */ +CV_EXPORTS cv::String getParent(const cv::String &path); + +/** + * Generate a list of all files that match the globbing pattern. + * + * Result entries are prefixed by base directory path. + * + * @param directory base directory + * @param pattern filter pattern (based on '*'/'?' symbols). Use empty string to disable filtering and return all results + * @param[out] result result of globing. + * @param recursive scan nested directories too + * @param includeDirectories include directories into results list + */ +CV_EXPORTS void glob(const cv::String& directory, const cv::String& pattern, + CV_OUT std::vector& result, + bool recursive = false, bool includeDirectories = false); + +/** + * Generate a list of all files that match the globbing pattern. + * + * @param directory base directory + * @param pattern filter pattern (based on '*'/'?' symbols). Use empty string to disable filtering and return all results + * @param[out] result globbing result with relative paths from base directory + * @param recursive scan nested directories too + * @param includeDirectories include directories into results list + */ +CV_EXPORTS void glob_relative(const cv::String& directory, const cv::String& pattern, + CV_OUT std::vector& result, + bool recursive = false, bool includeDirectories = false); + + +CV_EXPORTS bool createDirectory(const cv::String& path); +CV_EXPORTS bool createDirectories(const cv::String& path); + +#ifdef __OPENCV_BUILD +// TODO +//CV_EXPORTS cv::String getTempDirectory(); + +/** + * @brief Returns directory to store OpenCV cache files + * Create sub-directory in common OpenCV cache directory if it doesn't exist. + * @param sub_directory_name name of sub-directory. NULL or "" value asks to return root cache directory. + * @param configuration_name optional name of configuration parameter name which overrides default behavior. + * @return Path to cache directory. Returns empty string if cache directories support is not available. Returns "disabled" if cache disabled by user. + */ +CV_EXPORTS cv::String getCacheDirectory(const char* sub_directory_name, const char* configuration_name = NULL); + +#endif + +}}} // namespace + +#endif // OPENCV_UTILS_FILESYSTEM_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/logger.defines.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/utils/logger.defines.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/logger.defines.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/utils/logger.defines.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/logger.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/utils/logger.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/logger.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/utils/logger.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/trace.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/utils/trace.hpp similarity index 98% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/trace.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/utils/trace.hpp index 1539fb9ad..858e973a8 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/trace.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/utils/trace.hpp @@ -37,6 +37,10 @@ namespace trace { //! @cond IGNORED #define CV_TRACE_NS cv::utils::trace +#if !defined(OPENCV_DISABLE_TRACE) && defined(__EMSCRIPTEN__) +#define OPENCV_DISABLE_TRACE 1 +#endif + namespace details { #ifndef __OPENCV_TRACE @@ -142,7 +146,7 @@ CV_EXPORTS void traceArg(const TraceArg& arg, double value); static const CV_TRACE_NS::details::Region::LocationStaticStorage \ CV__TRACE_LOCATION_VARNAME(loc_id) = { &(CV__TRACE_LOCATION_EXTRA_VARNAME(loc_id)), name, CV_TRACE_FILENAME, __LINE__, flags}; -#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, (flags | CV_TRACE_NS::details::REGION_FLAG_FUNCTION)) +#define CV__TRACE_DEFINE_LOCATION_FN(name, flags) CV__TRACE_DEFINE_LOCATION_(fn, name, ((flags) | CV_TRACE_NS::details::REGION_FLAG_FUNCTION)) #define CV__TRACE_OPENCV_FUNCTION() \ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/va_intel.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/va_intel.hpp similarity index 94% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/va_intel.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/va_intel.hpp index 33258484d..f66547093 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/va_intel.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/va_intel.hpp @@ -31,8 +31,9 @@ This section describes Intel VA-API/OpenCL (CL-VA) interoperability. To enable CL-VA interoperability support, configure OpenCV using CMake with WITH_VA_INTEL=ON . Currently VA-API is supported on Linux only. You should also install Intel Media Server Studio (MSS) to use this feature. You may -have to specify the path(s) to MSS components for cmake in environment variables: VA_INTEL_MSDK_ROOT for Media SDK -(default is "/opt/intel/mediasdk"), and VA_INTEL_IOCL_ROOT for Intel OpenCL (default is "/opt/intel/opencl"). +have to specify the path(s) to MSS components for cmake in environment variables: + +- VA_INTEL_IOCL_ROOT for Intel OpenCL (default is "/opt/intel/opencl"). To use CL-VA interoperability you should first create VADisplay (libva), and then call initializeContextFromVA() function to create OpenCL context and set up interoperability. diff --git a/lib/3rdParty/OpenCV/include/opencv2/core/version.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/version.hpp new file mode 100644 index 000000000..1dbe22389 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/core/version.hpp @@ -0,0 +1,26 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_VERSION_HPP +#define OPENCV_VERSION_HPP + +#define CV_VERSION_MAJOR 4 +#define CV_VERSION_MINOR 1 +#define CV_VERSION_REVISION 0 +#define CV_VERSION_STATUS "" + +#define CVAUX_STR_EXP(__A) #__A +#define CVAUX_STR(__A) CVAUX_STR_EXP(__A) + +#define CVAUX_STRW_EXP(__A) L ## #__A +#define CVAUX_STRW(__A) CVAUX_STRW_EXP(__A) + +#define CV_VERSION CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS + +/* old style version constants*/ +#define CV_MAJOR_VERSION CV_VERSION_MAJOR +#define CV_MINOR_VERSION CV_VERSION_MINOR +#define CV_SUBMINOR_VERSION CV_VERSION_REVISION + +#endif // OPENCV_VERSION_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/vsx_utils.hpp b/lib/3rdParty/OpenCV/include/opencv2/core/vsx_utils.hpp similarity index 87% rename from lib/3rdParty/OpenCV3.4/include/opencv2/core/vsx_utils.hpp rename to lib/3rdParty/OpenCV/include/opencv2/core/vsx_utils.hpp index 3888cbfcd..6e2baeacf 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/vsx_utils.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/core/vsx_utils.hpp @@ -1,52 +1,16 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html #ifndef OPENCV_HAL_VSX_UTILS_HPP #define OPENCV_HAL_VSX_UTILS_HPP #include "opencv2/core/cvdef.h" +#ifndef SKIP_INCLUDES +# include +#endif + //! @addtogroup core_utils_vsx //! @{ #if CV_VSX @@ -58,108 +22,79 @@ typedef __vector unsigned char vec_uchar16; #define vec_uchar16_set(...) (vec_uchar16){__VA_ARGS__} -#define vec_uchar16_sp(c) (__VSX_S16__(vec_uchar16, c)) +#define vec_uchar16_sp(c) (__VSX_S16__(vec_uchar16, (unsigned char)c)) #define vec_uchar16_c(v) ((vec_uchar16)(v)) -#define vec_uchar16_mx vec_uchar16_sp(0xFF) -#define vec_uchar16_mn vec_uchar16_sp(0) -#define vec_uchar16_z vec_uchar16_mn +#define vec_uchar16_z vec_uchar16_sp(0) typedef __vector signed char vec_char16; #define vec_char16_set(...) (vec_char16){__VA_ARGS__} -#define vec_char16_sp(c) (__VSX_S16__(vec_char16, c)) +#define vec_char16_sp(c) (__VSX_S16__(vec_char16, (signed char)c)) #define vec_char16_c(v) ((vec_char16)(v)) -#define vec_char16_mx vec_char16_sp(0x7F) -#define vec_char16_mn vec_char16_sp(-0x7F-1) #define vec_char16_z vec_char16_sp(0) typedef __vector unsigned short vec_ushort8; #define vec_ushort8_set(...) (vec_ushort8){__VA_ARGS__} -#define vec_ushort8_sp(c) (__VSX_S8__(vec_ushort8, c)) +#define vec_ushort8_sp(c) (__VSX_S8__(vec_ushort8, (unsigned short)c)) #define vec_ushort8_c(v) ((vec_ushort8)(v)) -#define vec_ushort8_mx vec_ushort8_sp(0xFFFF) -#define vec_ushort8_mn vec_ushort8_sp(0) -#define vec_ushort8_z vec_ushort8_mn +#define vec_ushort8_z vec_ushort8_sp(0) typedef __vector signed short vec_short8; #define vec_short8_set(...) (vec_short8){__VA_ARGS__} -#define vec_short8_sp(c) (__VSX_S8__(vec_short8, c)) +#define vec_short8_sp(c) (__VSX_S8__(vec_short8, (signed short)c)) #define vec_short8_c(v) ((vec_short8)(v)) -#define vec_short8_mx vec_short8_sp(0x7FFF) -#define vec_short8_mn vec_short8_sp(-0x7FFF-1) #define vec_short8_z vec_short8_sp(0) typedef __vector unsigned int vec_uint4; #define vec_uint4_set(...) (vec_uint4){__VA_ARGS__} -#define vec_uint4_sp(c) (__VSX_S4__(vec_uint4, c)) +#define vec_uint4_sp(c) (__VSX_S4__(vec_uint4, (unsigned int)c)) #define vec_uint4_c(v) ((vec_uint4)(v)) -#define vec_uint4_mx vec_uint4_sp(0xFFFFFFFFU) -#define vec_uint4_mn vec_uint4_sp(0) -#define vec_uint4_z vec_uint4_mn +#define vec_uint4_z vec_uint4_sp(0) typedef __vector signed int vec_int4; #define vec_int4_set(...) (vec_int4){__VA_ARGS__} -#define vec_int4_sp(c) (__VSX_S4__(vec_int4, c)) +#define vec_int4_sp(c) (__VSX_S4__(vec_int4, (signed int)c)) #define vec_int4_c(v) ((vec_int4)(v)) -#define vec_int4_mx vec_int4_sp(0x7FFFFFFF) -#define vec_int4_mn vec_int4_sp(-0x7FFFFFFF-1) #define vec_int4_z vec_int4_sp(0) typedef __vector float vec_float4; #define vec_float4_set(...) (vec_float4){__VA_ARGS__} #define vec_float4_sp(c) (__VSX_S4__(vec_float4, c)) #define vec_float4_c(v) ((vec_float4)(v)) -#define vec_float4_mx vec_float4_sp(3.40282347E+38F) -#define vec_float4_mn vec_float4_sp(1.17549435E-38F) #define vec_float4_z vec_float4_sp(0) typedef __vector unsigned long long vec_udword2; #define vec_udword2_set(...) (vec_udword2){__VA_ARGS__} -#define vec_udword2_sp(c) (__VSX_S2__(vec_udword2, c)) +#define vec_udword2_sp(c) (__VSX_S2__(vec_udword2, (unsigned long long)c)) #define vec_udword2_c(v) ((vec_udword2)(v)) -#define vec_udword2_mx vec_udword2_sp(18446744073709551615ULL) -#define vec_udword2_mn vec_udword2_sp(0) -#define vec_udword2_z vec_udword2_mn +#define vec_udword2_z vec_udword2_sp(0) typedef __vector signed long long vec_dword2; #define vec_dword2_set(...) (vec_dword2){__VA_ARGS__} -#define vec_dword2_sp(c) (__VSX_S2__(vec_dword2, c)) +#define vec_dword2_sp(c) (__VSX_S2__(vec_dword2, (signed long long)c)) #define vec_dword2_c(v) ((vec_dword2)(v)) -#define vec_dword2_mx vec_dword2_sp(9223372036854775807LL) -#define vec_dword2_mn vec_dword2_sp(-9223372036854775807LL-1) #define vec_dword2_z vec_dword2_sp(0) typedef __vector double vec_double2; #define vec_double2_set(...) (vec_double2){__VA_ARGS__} #define vec_double2_c(v) ((vec_double2)(v)) #define vec_double2_sp(c) (__VSX_S2__(vec_double2, c)) -#define vec_double2_mx vec_double2_sp(1.7976931348623157E+308) -#define vec_double2_mn vec_double2_sp(2.2250738585072014E-308) #define vec_double2_z vec_double2_sp(0) #define vec_bchar16 __vector __bool char #define vec_bchar16_set(...) (vec_bchar16){__VA_ARGS__} #define vec_bchar16_c(v) ((vec_bchar16)(v)) -#define vec_bchar16_f (__VSX_S16__(vec_bchar16, 0)) -#define vec_bchar16_t (__VSX_S16__(vec_bchar16, 1)) #define vec_bshort8 __vector __bool short #define vec_bshort8_set(...) (vec_bshort8){__VA_ARGS__} #define vec_bshort8_c(v) ((vec_bshort8)(v)) -#define vec_bshort8_f (__VSX_S8__(vec_bshort8, 0)) -#define vec_bshort8_t (__VSX_S8__(vec_bshort8, 1)) #define vec_bint4 __vector __bool int #define vec_bint4_set(...) (vec_bint4){__VA_ARGS__} #define vec_bint4_c(v) ((vec_bint4)(v)) -#define vec_bint4_f (__VSX_S4__(vec_bint4, 0)) -#define vec_bint4_t (__VSX_S4__(vec_bint4, 1)) #define vec_bdword2 __vector __bool long long #define vec_bdword2_set(...) (vec_bdword2){__VA_ARGS__} #define vec_bdword2_c(v) ((vec_bdword2)(v)) -#define vec_bdword2_f (__VSX_S2__(vec_bdword2, 0)) -#define vec_bdword2_t (__VSX_S2__(vec_bdword2, 1)) - #define VSX_FINLINE(tp) extern inline tp __attribute__((always_inline)) @@ -195,19 +130,21 @@ VSX_FINLINE(rt) fnm(const rg& a, const rg& b) \ # undef vec_mul # endif /* - * there's no a direct instruction for supporting 16-bit multiplication in ISA 2.07, + * there's no a direct instruction for supporting 8-bit, 16-bit multiplication in ISA 2.07, * XLC Implement it by using instruction "multiply even", "multiply odd" and "permute" - * todo: Do I need to support 8-bit ? **/ -# define VSX_IMPL_MULH(Tvec, Tcast) \ - VSX_FINLINE(Tvec) vec_mul(const Tvec& a, const Tvec& b) \ - { \ - static const vec_uchar16 even_perm = {0, 1, 16, 17, 4, 5, 20, 21, \ - 8, 9, 24, 25, 12, 13, 28, 29}; \ - return vec_perm(Tcast(vec_mule(a, b)), Tcast(vec_mulo(a, b)), even_perm); \ +# define VSX_IMPL_MULH(Tvec, cperm) \ + VSX_FINLINE(Tvec) vec_mul(const Tvec& a, const Tvec& b) \ + { \ + static const vec_uchar16 ev_od = {cperm}; \ + return vec_perm((Tvec)vec_mule(a, b), (Tvec)vec_mulo(a, b), ev_od); \ } - VSX_IMPL_MULH(vec_short8, vec_short8_c) - VSX_IMPL_MULH(vec_ushort8, vec_ushort8_c) + #define VSX_IMPL_MULH_P16 0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30 + VSX_IMPL_MULH(vec_char16, VSX_IMPL_MULH_P16) + VSX_IMPL_MULH(vec_uchar16, VSX_IMPL_MULH_P16) + #define VSX_IMPL_MULH_P8 0, 1, 16, 17, 4, 5, 20, 21, 8, 9, 24, 25, 12, 13, 28, 29 + VSX_IMPL_MULH(vec_short8, VSX_IMPL_MULH_P8) + VSX_IMPL_MULH(vec_ushort8, VSX_IMPL_MULH_P8) // vmuluwm can be used for unsigned or signed integers, that's what they said VSX_IMPL_2VRG(vec_int4, vec_int4, vmuluwm, vec_mul) VSX_IMPL_2VRG(vec_uint4, vec_uint4, vmuluwm, vec_mul) @@ -268,7 +205,7 @@ VSX_FINLINE(rt) fnm(const rg& a, const rg& b) \ #if __GNUG__ < 5 // vec_xxpermdi in gcc4 missing little-endian supports just like clang -# define vec_permi(a, b, c) vec_xxpermdi(b, a, (3 ^ ((c & 1) << 1 | c >> 1))) +# define vec_permi(a, b, c) vec_xxpermdi(b, a, (3 ^ (((c) & 1) << 1 | (c) >> 1))) #else # define vec_permi vec_xxpermdi #endif // __GNUG__ < 5 @@ -354,6 +291,8 @@ VSX_IMPL_1RG(vec_udword2, wi, vec_float4, wf, xvcvspuxds, vec_ctulo) * * So we're not able to use inline asm and only use built-in functions that CLANG supports * and use __builtin_convertvector if clang missng any of vector conversions built-in functions + * + * todo: clang asm template bug is fixed, need to reconsider the current workarounds. */ // convert vector helper @@ -385,7 +324,7 @@ VSX_FINLINE(rt) fnm(const rg& a) { return __builtin_convertvector(a, rt); } # define vec_xxsldwi(a, b, c) vec_sld(a, b, (c) * 4) #else // vec_xxpermdi is missing little-endian supports in clang 4 just like gcc4 -# define vec_permi(a, b, c) vec_xxpermdi(b, a, (3 ^ ((c & 1) << 1 | c >> 1))) +# define vec_permi(a, b, c) vec_xxpermdi(b, a, (3 ^ (((c) & 1) << 1 | (c) >> 1))) #endif // __clang_major__ < 5 // shift left double by word immediate @@ -520,6 +459,27 @@ VSX_IMPL_CONV_EVEN_2_4(vec_float4, vec_udword2, vec_ctf, vec_ctfo) VSX_IMPL_CONV_EVEN_2_4(vec_int4, vec_double2, vec_cts, vec_ctso) VSX_IMPL_CONV_EVEN_2_4(vec_uint4, vec_double2, vec_ctu, vec_ctuo) +// Only for Eigen! +/* + * changing behavior of conversion intrinsics for gcc has effect on Eigen + * so we redfine old behavior again only on gcc, clang +*/ +#if !defined(__clang__) || __clang_major__ > 4 + // ignoring second arg since Eigen only truncates toward zero +# define VSX_IMPL_CONV_2VARIANT(rt, rg, fnm, fn2) \ + VSX_FINLINE(rt) fnm(const rg& a, int only_truncate) \ + { \ + assert(only_truncate == 0); \ + CV_UNUSED(only_truncate); \ + return fn2(a); \ + } + VSX_IMPL_CONV_2VARIANT(vec_int4, vec_float4, vec_cts, vec_cts) + VSX_IMPL_CONV_2VARIANT(vec_float4, vec_int4, vec_ctf, vec_ctf) + // define vec_cts for converting double precision to signed doubleword + // which isn't combitable with xlc but its okay since Eigen only use it for gcc + VSX_IMPL_CONV_2VARIANT(vec_dword2, vec_double2, vec_cts, vec_ctsl) +#endif // Eigen + #endif // Common GCC, CLANG compatibility /* @@ -530,7 +490,7 @@ VSX_IMPL_CONV_EVEN_2_4(vec_uint4, vec_double2, vec_ctu, vec_ctuo) // vector population count #define vec_popcntu vec_popcnt -// overload and redirect wih setting second arg to zero +// overload and redirect with setting second arg to zero // since we only support conversions without the second arg #define VSX_IMPL_OVERLOAD_Z2(rt, rg, fnm) \ VSX_FINLINE(rt) fnm(const rg& a) { return fnm(a, 0); } @@ -585,7 +545,7 @@ VSX_IMPL_CONV_ODD_2_4(vec_uint4, vec_double2, vec_ctuo, vec_ctu) #endif // XLC VSX compatibility -// ignore GCC warning that casued by -Wunused-but-set-variable in rare cases +// ignore GCC warning that caused by -Wunused-but-set-variable in rare cases #if defined(__GNUG__) && !defined(__clang__) # define VSX_UNUSED(Tvec) Tvec __attribute__((__unused__)) #else // CLANG, XLC @@ -663,34 +623,17 @@ VSX_IMPL_CONV_ODD_2_4(vec_uint4, vec_double2, vec_ctuo, vec_ctu) { vsx_stf(vec, VSX_OFFSET(o, p), (long long*)p); } #endif -// load 4 unsigned bytes into uint4 vector -#define vec_ld_buw(p) vec_uint4_set((p)[0], (p)[1], (p)[2], (p)[3]) - -// load 4 signed bytes into int4 vector -#define vec_ld_bsw(p) vec_int4_set((p)[0], (p)[1], (p)[2], (p)[3]) - -// load 4 unsigned bytes into float vector -#define vec_ld_bps(p) vec_ctf(vec_ld_buw(p), 0) - // Store lower 8 byte #define vec_st_l8(v, p) *((uint64*)(p)) = vec_extract(vec_udword2_c(v), 0) // Store higher 8 byte #define vec_st_h8(v, p) *((uint64*)(p)) = vec_extract(vec_udword2_c(v), 1) -/* - * vec_ld_l8(ptr) -> Load 64-bits of integer data to lower part - * vec_ldz_l8(ptr) -> Load 64-bits of integer data to lower part and zero upper part -**/ -#define VSX_IMPL_LOAD_L8(Tvec, Tp) \ -VSX_FINLINE(Tvec) vec_ld_l8(const Tp *p) \ -{ return ((Tvec)vec_promote(*((uint64*)p), 0)); } \ -VSX_FINLINE(Tvec) vec_ldz_l8(const Tp *p) \ -{ \ - /* TODO: try (Tvec)(vec_udword2{*((uint64*)p), 0}) */ \ - static const vec_bdword2 mask = {0xFFFFFFFFFFFFFFFF, 0x0000000000000000}; \ - return vec_and(vec_ld_l8(p), (Tvec)mask); \ -} +// Load 64-bits of integer data to lower part +#define VSX_IMPL_LOAD_L8(Tvec, Tp) \ +VSX_FINLINE(Tvec) vec_ld_l8(const Tp *p) \ +{ return ((Tvec)vec_promote(*((uint64*)p), 0)); } + VSX_IMPL_LOAD_L8(vec_uchar16, uchar) VSX_IMPL_LOAD_L8(vec_char16, schar) VSX_IMPL_LOAD_L8(vec_ushort8, ushort) @@ -711,7 +654,7 @@ VSX_IMPL_LOAD_L8(vec_double2, double) # define vec_cmpne(a, b) vec_not(vec_cmpeq(a, b)) #endif -// absoulte difference +// absolute difference #ifndef vec_absd # define vec_absd(a, b) vec_sub(vec_max(a, b), vec_min(a, b)) #endif @@ -720,11 +663,11 @@ VSX_IMPL_LOAD_L8(vec_double2, double) * Implement vec_unpacklu and vec_unpackhu * since vec_unpackl, vec_unpackh only support signed integers **/ -#define VSX_IMPL_UNPACKU(rt, rg, zero) \ -VSX_FINLINE(rt) vec_unpacklu(const rg& a) \ -{ return reinterpret_cast(vec_mergel(a, zero)); } \ -VSX_FINLINE(rt) vec_unpackhu(const rg& a) \ -{ return reinterpret_cast(vec_mergeh(a, zero)); } +#define VSX_IMPL_UNPACKU(rt, rg, zero) \ +VSX_FINLINE(rt) vec_unpacklu(const rg& a) \ +{ return (rt)(vec_mergel(a, zero)); } \ +VSX_FINLINE(rt) vec_unpackhu(const rg& a) \ +{ return (rt)(vec_mergeh(a, zero)); } VSX_IMPL_UNPACKU(vec_ushort8, vec_uchar16, vec_uchar16_z) VSX_IMPL_UNPACKU(vec_uint4, vec_ushort8, vec_ushort8_z) diff --git a/lib/3rdParty/OpenCV/include/opencv2/cvconfig.h b/lib/3rdParty/OpenCV/include/opencv2/cvconfig.h new file mode 100644 index 000000000..8f8b60c07 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/cvconfig.h @@ -0,0 +1,164 @@ +#ifndef OPENCV_CVCONFIG_H_INCLUDED +#define OPENCV_CVCONFIG_H_INCLUDED + +/* OpenCV compiled as static or dynamic libs */ +#define BUILD_SHARED_LIBS + +/* OpenCV intrinsics optimized code */ +#define CV_ENABLE_INTRINSICS + +/* OpenCV additional optimized code */ +/* #undef CV_DISABLE_OPTIMIZATION */ + +/* Compile for 'real' NVIDIA GPU architectures */ +#define CUDA_ARCH_BIN "" + +/* Create PTX or BIN for 1.0 compute capability */ +/* #undef CUDA_ARCH_BIN_OR_PTX_10 */ + +/* NVIDIA GPU features are used */ +#define CUDA_ARCH_FEATURES "" + +/* Compile for 'virtual' NVIDIA PTX architectures */ +#define CUDA_ARCH_PTX "" + +/* AMD's Basic Linear Algebra Subprograms Library*/ +/* #undef HAVE_CLAMDBLAS */ + +/* AMD's OpenCL Fast Fourier Transform Library*/ +/* #undef HAVE_CLAMDFFT */ + +/* Clp support */ +/* #undef HAVE_CLP */ + +/* Cocoa API */ +/* #undef HAVE_COCOA */ + +/* NVIDIA CUDA Basic Linear Algebra Subprograms (BLAS) API*/ +/* #undef HAVE_CUBLAS */ + +/* NVIDIA CUDA Runtime API*/ +/* #undef HAVE_CUDA */ + +/* NVIDIA CUDA Fast Fourier Transform (FFT) API*/ +/* #undef HAVE_CUFFT */ + +/* DirectX */ +#define HAVE_DIRECTX +#define HAVE_DIRECTX_NV12 +#define HAVE_D3D11 +#define HAVE_D3D10 +#define HAVE_D3D9 + +/* Eigen Matrix & Linear Algebra Library */ +/* #undef HAVE_EIGEN */ + +/* Geospatial Data Abstraction Library */ +/* #undef HAVE_GDAL */ + +/* GTK+ 2.0 Thread support */ +/* #undef HAVE_GTHREAD */ + +/* GTK+ 2.x toolkit */ +/* #undef HAVE_GTK */ + +/* Halide support */ +/* #undef HAVE_HALIDE */ + +/* Vulkan support */ +/* #undef HAVE_VULKAN */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Intel Integrated Performance Primitives */ +#define HAVE_IPP +#define HAVE_IPP_ICV +#define HAVE_IPP_IW +#define HAVE_IPP_IW_LL + +/* JPEG-2000 codec */ +#define HAVE_JASPER + +/* IJG JPEG codec */ +#define HAVE_JPEG + +/* libpng/png.h needs to be included */ +/* #undef HAVE_LIBPNG_PNG_H */ + +/* GDCM DICOM codec */ +/* #undef HAVE_GDCM */ + +/* NVIDIA Video Decoding API*/ +/* #undef HAVE_NVCUVID */ + +/* NVIDIA Video Encoding API*/ +/* #undef HAVE_NVCUVENC */ + +/* OpenCL Support */ +#define HAVE_OPENCL +/* #undef HAVE_OPENCL_STATIC */ +/* #undef HAVE_OPENCL_SVM */ + +/* NVIDIA OpenCL D3D Extensions support */ +#define HAVE_OPENCL_D3D11_NV + +/* OpenEXR codec */ +#define HAVE_OPENEXR + +/* OpenGL support*/ +/* #undef HAVE_OPENGL */ + +/* PNG codec */ +#define HAVE_PNG + +/* Posix threads (pthreads) */ +/* #undef HAVE_PTHREAD */ + +/* parallel_for with pthreads */ +/* #undef HAVE_PTHREADS_PF */ + +/* Qt support */ +/* #undef HAVE_QT */ + +/* Qt OpenGL support */ +/* #undef HAVE_QT_OPENGL */ + +/* Intel Threading Building Blocks */ +/* #undef HAVE_TBB */ + +/* Ste||ar Group High Performance ParallelX */ +/* #undef HAVE_HPX */ + +/* TIFF codec */ +#define HAVE_TIFF + +/* Win32 UI */ +#define HAVE_WIN32UI + +/* Define if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +/* #undef WORDS_BIGENDIAN */ + +/* VA library (libva) */ +/* #undef HAVE_VA */ + +/* Intel VA-API/OpenCL */ +/* #undef HAVE_VA_INTEL */ + +/* Lapack */ +/* #undef HAVE_LAPACK */ + +/* Library was compiled with functions instrumentation */ +/* #undef ENABLE_INSTRUMENTATION */ + +/* OpenVX */ +/* #undef HAVE_OPENVX */ + +/* OpenCV trace utilities */ +#define OPENCV_TRACE + +/* Library QR-code decoding */ +#define HAVE_QUIRC + +#endif // OPENCV_CVCONFIG_H_INCLUDED diff --git a/lib/3rdParty/OpenCV/include/opencv2/dnn.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn.hpp new file mode 100644 index 000000000..97f2fe3ff --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn.hpp @@ -0,0 +1,78 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_DNN_HPP +#define OPENCV_DNN_HPP + +// This is an umbrella header to include into you project. +// We are free to change headers layout in dnn subfolder, so please include +// this header for future compatibility + + +/** @defgroup dnn Deep Neural Network module + @{ + This module contains: + - API for new layers creation, layers are building bricks of neural networks; + - set of built-in most-useful Layers; + - API to construct and modify comprehensive neural networks from layers; + - functionality for loading serialized networks models from different frameworks. + + Functionality of this module is designed only for forward pass computations (i.e. network testing). + A network training is in principle not supported. + @} +*/ +/** @example samples/dnn/classification.cpp +Check @ref tutorial_dnn_googlenet "the corresponding tutorial" for more details +*/ +/** @example samples/dnn/colorization.cpp +*/ +/** @example samples/dnn/object_detection.cpp +Check @ref tutorial_dnn_yolo "the corresponding tutorial" for more details +*/ +/** @example samples/dnn/openpose.cpp +*/ +/** @example samples/dnn/segmentation.cpp +*/ +/** @example samples/dnn/text_detection.cpp +*/ +#include + +#endif /* OPENCV_DNN_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/all_layers.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/all_layers.hpp similarity index 83% rename from lib/3rdParty/OpenCV3.4/include/opencv2/dnn/all_layers.hpp rename to lib/3rdParty/OpenCV/include/opencv2/dnn/all_layers.hpp index da0e34afc..4bede768b 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/all_layers.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/all_layers.hpp @@ -45,20 +45,20 @@ namespace cv { namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN +CV__DNN_INLINE_NS_BEGIN //! @addtogroup dnn //! @{ /** @defgroup dnnLayerList Partial List of Implemented Layers @{ - This subsection of dnn module contains information about bult-in layers and their descriptions. + This subsection of dnn module contains information about built-in layers and their descriptions. - Classes listed here, in fact, provides C++ API for creating intances of bult-in layers. + Classes listed here, in fact, provides C++ API for creating instances of built-in layers. In addition to this way of layers instantiation, there is a more common factory API (see @ref dnnLayerFactory), it allows to create layers dynamically (by name) and register new ones. - You can use both API, but factory API is less convinient for native C++ programming and basically designed for use inside importers (see @ref readNetFromCaffe(), @ref readNetFromTorch(), @ref readNetFromTensorflow()). + You can use both API, but factory API is less convenient for native C++ programming and basically designed for use inside importers (see @ref readNetFromCaffe(), @ref readNetFromTorch(), @ref readNetFromTensorflow()). - Bult-in layers partially reproduce functionality of corresponding Caffe and Torch7 layers. - In partuclar, the following layers and Caffe importer were tested to reproduce Caffe functionality: + Built-in layers partially reproduce functionality of corresponding Caffe and Torch7 layers. + In particular, the following layers and Caffe importer were tested to reproduce Caffe functionality: - Convolution - Deconvolution - Pooling @@ -77,6 +77,15 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN static Ptr create(const LayerParams ¶ms); }; + /** + * Constant layer produces the same data blob at an every forward pass. + */ + class CV_EXPORTS ConstLayer : public Layer + { + public: + static Ptr create(const LayerParams ¶ms); + }; + //! LSTM recurrent layer class CV_EXPORTS LSTMLayer : public Layer { @@ -108,13 +117,13 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN @f$W_{x?} \in R^{N_h \times N_x}@f$, @f$W_{h?} \in R^{N_h \times N_h}@f$, @f$b_? \in R^{N_h}@f$. For simplicity and performance purposes we use @f$ W_x = [W_{xi}; W_{xf}; W_{xo}, W_{xg}] @f$ - (i.e. @f$W_x@f$ is vertical contacentaion of @f$ W_{x?} @f$), @f$ W_x \in R^{4N_h \times N_x} @f$. + (i.e. @f$W_x@f$ is vertical concatenation of @f$ W_{x?} @f$), @f$ W_x \in R^{4N_h \times N_x} @f$. The same for @f$ W_h = [W_{hi}; W_{hf}; W_{ho}, W_{hg}], W_h \in R^{4N_h \times N_h} @f$ and for @f$ b = [b_i; b_f, b_o, b_g]@f$, @f$b \in R^{4N_h} @f$. - @param Wh is matrix defining how previous output is transformed to internal gates (i.e. according to abovemtioned notation is @f$ W_h @f$) - @param Wx is matrix defining how current input is transformed to internal gates (i.e. according to abovemtioned notation is @f$ W_x @f$) - @param b is bias vector (i.e. according to abovemtioned notation is @f$ b @f$) + @param Wh is matrix defining how previous output is transformed to internal gates (i.e. according to above mentioned notation is @f$ W_h @f$) + @param Wx is matrix defining how current input is transformed to internal gates (i.e. according to above mentioned notation is @f$ W_x @f$) + @param b is bias vector (i.e. according to above mentioned notation is @f$ b @f$) */ CV_DEPRECATED virtual void setWeights(const Mat &Wh, const Mat &Wx, const Mat &b) = 0; @@ -125,12 +134,12 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN virtual void setOutShape(const MatShape &outTailShape = MatShape()) = 0; /** @deprecated Use flag `produce_cell_output` in LayerParams. - * @brief Specifies either interpet first dimension of input blob as timestamp dimenion either as sample. + * @brief Specifies either interpret first dimension of input blob as timestamp dimenion either as sample. * - * If flag is set to true then shape of input blob will be interpeted as [`T`, `N`, `[data dims]`] where `T` specifies number of timpestamps, `N` is number of independent streams. + * If flag is set to true then shape of input blob will be interpreted as [`T`, `N`, `[data dims]`] where `T` specifies number of timestamps, `N` is number of independent streams. * In this case each forward() call will iterate through `T` timestamps and update layer's state `T` times. * - * If flag is set to false then shape of input blob will be interpeted as [`N`, `[data dims]`]. + * If flag is set to false then shape of input blob will be interpreted as [`N`, `[data dims]`]. * In this case each forward() call will make one iteration and produce one timestamp with shape [`N`, `[out dims]`]. */ CV_DEPRECATED virtual void setUseTimstampsDim(bool use = true) = 0; @@ -146,14 +155,14 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN * @param output contains computed outputs: @f$h_t@f$ (and @f$c_t@f$ if setProduceCellOutput() flag was set to true). * * If setUseTimstampsDim() is set to true then @p input[0] should has at least two dimensions with the following shape: [`T`, `N`, `[data dims]`], - * where `T` specifies number of timpestamps, `N` is number of independent streams (i.e. @f$ x_{t_0 + t}^{stream} @f$ is stored inside @p input[0][t, stream, ...]). + * where `T` specifies number of timestamps, `N` is number of independent streams (i.e. @f$ x_{t_0 + t}^{stream} @f$ is stored inside @p input[0][t, stream, ...]). * - * If setUseTimstampsDim() is set to fase then @p input[0] should contain single timestamp, its shape should has form [`N`, `[data dims]`] with at least one dimension. + * If setUseTimstampsDim() is set to false then @p input[0] should contain single timestamp, its shape should has form [`N`, `[data dims]`] with at least one dimension. * (i.e. @f$ x_{t}^{stream} @f$ is stored inside @p input[0][stream, ...]). */ - int inputNameToIndex(String inputName); - int outputNameToIndex(String outputName); + int inputNameToIndex(String inputName) CV_OVERRIDE; + int outputNameToIndex(const String& outputName) CV_OVERRIDE; }; /** @brief Classical recurrent layer @@ -234,11 +243,17 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN { public: int type; - Size kernel, stride, pad; + Size kernel, stride; + int pad_l, pad_t, pad_r, pad_b; + CV_DEPRECATED_EXTERNAL Size pad; bool globalPooling; bool computeMaxIdx; String padMode; bool ceilMode; + // If true for average pooling with padding, divide an every output region + // by a whole kernel area. Otherwise exclude zero padded values and divide + // by number of real values. + bool avePoolPaddedArea; // ROIPooling parameters. Size pooledSize; float spatialScale; @@ -328,7 +343,7 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN * @param begin Vector of start indices * @param size Vector of sizes * - * More convinient numpy-like slice. One and only output blob + * More convenient numpy-like slice. One and only output blob * is a slice `input[begin[0]:begin[0]+size[0], begin[1]:begin[1]+size[1], ...]` * * 3. Torch mode @@ -357,6 +372,23 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN static Ptr create(const LayerParams& params); }; + /** + * Permute channels of 4-dimensional input blob. + * @param group Number of groups to split input channels and pick in turns + * into output blob. + * + * \f[ groupSize = \frac{number\ of\ channels}{group} \f] + * \f[ output(n, c, h, w) = input(n, groupSize \times (c \% group) + \lfloor \frac{c}{group} \rfloor, h, w) \f] + * Read more at https://arxiv.org/pdf/1707.01083.pdf + */ + class CV_EXPORTS ShuffleChannelLayer : public Layer + { + public: + static Ptr create(const LayerParams& params); + + int group; + }; + /** * @brief Adds extra values for specific axes. * @param paddings Vector of paddings in format @@ -402,6 +434,8 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN class CV_EXPORTS ReLU6Layer : public ActivationLayer { public: + float minValue, maxValue; + static Ptr create(const LayerParams ¶ms); }; @@ -466,13 +500,12 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN static Ptr create(const LayerParams ¶ms); }; - class CV_EXPORTS BatchNormLayer : public Layer + class CV_EXPORTS BatchNormLayer : public ActivationLayer { public: bool hasWeights, hasBias; float epsilon; - virtual void getScaleShift(Mat& scale, Mat& shift) const = 0; static Ptr create(const LayerParams ¶ms); }; @@ -490,6 +523,7 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN { public: bool hasBias; + int axis; static Ptr create(const LayerParams& params); }; @@ -497,7 +531,7 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN class CV_EXPORTS ShiftLayer : public Layer { public: - static Ptr create(const LayerParams& params); + static Ptr create(const LayerParams& params); }; class CV_EXPORTS PriorBoxLayer : public Layer @@ -544,29 +578,40 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN * dst(x, y, c) = \frac{ src(x, y, c) }{norm(c)} * @f] * - * Where `x, y` - spatial cooridnates, `c` - channel. + * Where `x, y` - spatial coordinates, `c` - channel. * * An every sample in the batch is normalized separately. Optionally, * output is scaled by the trained parameters. */ - class NormalizeBBoxLayer : public Layer + class CV_EXPORTS NormalizeBBoxLayer : public Layer { public: float pnorm, epsilon; - bool acrossSpatial; + CV_DEPRECATED_EXTERNAL bool acrossSpatial; static Ptr create(const LayerParams& params); }; /** - * @brief Resize input 4-dimensional blob by nearest neghbor strategy. + * @brief Resize input 4-dimensional blob by nearest neighbor or bilinear strategy. + * + * Layer is used to support TensorFlow's resize_nearest_neighbor and resize_bilinear ops. + */ + class CV_EXPORTS ResizeLayer : public Layer + { + public: + static Ptr create(const LayerParams& params); + }; + + /** + * @brief Bilinear resize layer from https://github.com/cdmh/deeplab-public * - * Layer is used to support TensorFlow's resize_nearest_neighbor op. + * It differs from @ref ResizeLayer in output shape and resize scales computations. */ - class CV_EXPORTS ResizeNearestNeighborLayer : public Layer + class CV_EXPORTS InterpLayer : public Layer { public: - static Ptr create(const LayerParams& params); + static Ptr create(const LayerParams& params); }; class CV_EXPORTS ProposalLayer : public Layer @@ -575,9 +620,15 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN static Ptr create(const LayerParams& params); }; + class CV_EXPORTS CropAndResizeLayer : public Layer + { + public: + static Ptr create(const LayerParams& params); + }; + //! @} //! @} -CV__DNN_EXPERIMENTAL_NS_END +CV__DNN_INLINE_NS_END } } #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dict.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/dict.hpp similarity index 88% rename from lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dict.hpp rename to lib/3rdParty/OpenCV/include/opencv2/dnn/dict.hpp index 43cb58a68..463d314be 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dict.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/dict.hpp @@ -50,7 +50,7 @@ namespace cv { namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN +CV__DNN_INLINE_NS_BEGIN //! @addtogroup dnn //! @{ @@ -60,12 +60,13 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN struct CV_EXPORTS_W DictValue { DictValue(const DictValue &r); + DictValue(bool i) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i ? 1 : 0; } //!< Constructs integer scalar DictValue(int64 i = 0) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i; } //!< Constructs integer scalar - CV_WRAP DictValue(int i) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i; } //!< Constructs integer scalar + CV_WRAP DictValue(int i) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = i; } //!< Constructs integer scalar DictValue(unsigned p) : type(Param::INT), pi(new AutoBuffer) { (*pi)[0] = p; } //!< Constructs integer scalar CV_WRAP DictValue(double p) : type(Param::REAL), pd(new AutoBuffer) { (*pd)[0] = p; } //!< Constructs floating point scalar CV_WRAP DictValue(const String &s) : type(Param::STRING), ps(new AutoBuffer) { (*ps)[0] = s; } //!< Constructs string scalar - DictValue(const char *s) : type(Param::STRING), ps(new AutoBuffer) { (*ps)[0] = s; } //!< @overload + DictValue(const char *s) : type(Param::STRING), ps(new AutoBuffer) { (*ps)[0] = s; } //!< @overload template static DictValue arrayInt(TypeIter begin, int size); //!< Constructs integer array @@ -95,7 +96,7 @@ struct CV_EXPORTS_W DictValue private: - int type; + Param type; union { @@ -105,7 +106,7 @@ struct CV_EXPORTS_W DictValue void *pv; }; - DictValue(int _type, void *_p) : type(_type), pv(_p) {} + DictValue(Param _type, void *_p) : type(_type), pv(_p) {} void release(); }; @@ -141,11 +142,18 @@ class CV_EXPORTS Dict template const T &set(const String &key, const T &value); + //! Erase @p key from the dictionary. + void erase(const String &key); + friend std::ostream &operator<<(std::ostream &stream, const Dict &dict); + + std::map::const_iterator begin() const; + + std::map::const_iterator end() const; }; //! @} -CV__DNN_EXPERIMENTAL_NS_END +CV__DNN_INLINE_NS_END } } diff --git a/lib/3rdParty/OpenCV/include/opencv2/dnn/dnn.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/dnn.hpp new file mode 100644 index 000000000..127b761d9 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/dnn.hpp @@ -0,0 +1,969 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_DNN_DNN_HPP +#define OPENCV_DNN_DNN_HPP + +#include +#include + +#include "../dnn/version.hpp" + +#include + +namespace cv { +namespace dnn { +CV__DNN_INLINE_NS_BEGIN +//! @addtogroup dnn +//! @{ + + typedef std::vector MatShape; + + /** + * @brief Enum of computation backends supported by layers. + * @see Net::setPreferableBackend + */ + enum Backend + { + //! DNN_BACKEND_DEFAULT equals to DNN_BACKEND_INFERENCE_ENGINE if + //! OpenCV is built with Intel's Inference Engine library or + //! DNN_BACKEND_OPENCV otherwise. + DNN_BACKEND_DEFAULT, + DNN_BACKEND_HALIDE, + DNN_BACKEND_INFERENCE_ENGINE, + DNN_BACKEND_OPENCV, + DNN_BACKEND_VKCOM + }; + + /** + * @brief Enum of target devices for computations. + * @see Net::setPreferableTarget + */ + enum Target + { + DNN_TARGET_CPU, + DNN_TARGET_OPENCL, + DNN_TARGET_OPENCL_FP16, + DNN_TARGET_MYRIAD, + DNN_TARGET_VULKAN, + //! FPGA device with CPU fallbacks using Inference Engine's Heterogeneous plugin. + DNN_TARGET_FPGA + }; + + CV_EXPORTS std::vector< std::pair > getAvailableBackends(); + CV_EXPORTS std::vector getAvailableTargets(Backend be); + + /** @brief This class provides all data needed to initialize layer. + * + * It includes dictionary with scalar params (which can be read by using Dict interface), + * blob params #blobs and optional meta information: #name and #type of layer instance. + */ + class CV_EXPORTS LayerParams : public Dict + { + public: + //TODO: Add ability to name blob params + std::vector blobs; //!< List of learned parameters stored as blobs. + + String name; //!< Name of the layer instance (optional, can be used internal purposes). + String type; //!< Type name which was used for creating layer by layer factory (optional). + }; + + /** + * @brief Derivatives of this class encapsulates functions of certain backends. + */ + class BackendNode + { + public: + BackendNode(int backendId); + + virtual ~BackendNode(); //!< Virtual destructor to make polymorphism. + + int backendId; //!< Backend identifier. + }; + + /** + * @brief Derivatives of this class wraps cv::Mat for different backends and targets. + */ + class BackendWrapper + { + public: + BackendWrapper(int backendId, int targetId); + + /** + * @brief Wrap cv::Mat for specific backend and target. + * @param[in] targetId Target identifier. + * @param[in] m cv::Mat for wrapping. + * + * Make CPU->GPU data transfer if it's require for the target. + */ + BackendWrapper(int targetId, const cv::Mat& m); + + /** + * @brief Make wrapper for reused cv::Mat. + * @param[in] base Wrapper of cv::Mat that will be reused. + * @param[in] shape Specific shape. + * + * Initialize wrapper from another one. It'll wrap the same host CPU + * memory and mustn't allocate memory on device(i.e. GPU). It might + * has different shape. Use in case of CPU memory reusing for reuse + * associated memory on device too. + */ + BackendWrapper(const Ptr& base, const MatShape& shape); + + virtual ~BackendWrapper(); //!< Virtual destructor to make polymorphism. + + /** + * @brief Transfer data to CPU host memory. + */ + virtual void copyToHost() = 0; + + /** + * @brief Indicate that an actual data is on CPU. + */ + virtual void setHostDirty() = 0; + + int backendId; //!< Backend identifier. + int targetId; //!< Target identifier. + }; + + class CV_EXPORTS ActivationLayer; + + /** @brief This interface class allows to build new Layers - are building blocks of networks. + * + * Each class, derived from Layer, must implement allocate() methods to declare own outputs and forward() to compute outputs. + * Also before using the new layer into networks you must register your layer by using one of @ref dnnLayerFactory "LayerFactory" macros. + */ + class CV_EXPORTS_W Layer : public Algorithm + { + public: + + //! List of learned parameters must be stored here to allow read them by using Net::getParam(). + CV_PROP_RW std::vector blobs; + + /** @brief Computes and sets internal parameters according to inputs, outputs and blobs. + * @deprecated Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead + * @param[in] input vector of already allocated input blobs + * @param[out] output vector of already allocated output blobs + * + * If this method is called after network has allocated all memory for input and output blobs + * and before inferencing. + */ + CV_DEPRECATED_EXTERNAL + virtual void finalize(const std::vector &input, std::vector &output); + + /** @brief Computes and sets internal parameters according to inputs, outputs and blobs. + * @param[in] inputs vector of already allocated input blobs + * @param[out] outputs vector of already allocated output blobs + * + * If this method is called after network has allocated all memory for input and output blobs + * and before inferencing. + */ + CV_WRAP virtual void finalize(InputArrayOfArrays inputs, OutputArrayOfArrays outputs); + + /** @brief Given the @p input blobs, computes the output @p blobs. + * @deprecated Use Layer::forward(InputArrayOfArrays, OutputArrayOfArrays, OutputArrayOfArrays) instead + * @param[in] input the input blobs. + * @param[out] output allocated output blobs, which will store results of the computation. + * @param[out] internals allocated internal blobs + */ + CV_DEPRECATED_EXTERNAL + virtual void forward(std::vector &input, std::vector &output, std::vector &internals); + + /** @brief Given the @p input blobs, computes the output @p blobs. + * @param[in] inputs the input blobs. + * @param[out] outputs allocated output blobs, which will store results of the computation. + * @param[out] internals allocated internal blobs + */ + virtual void forward(InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals); + + /** @brief Given the @p input blobs, computes the output @p blobs. + * @param[in] inputs the input blobs. + * @param[out] outputs allocated output blobs, which will store results of the computation. + * @param[out] internals allocated internal blobs + */ + void forward_fallback(InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals); + + /** @brief + * @overload + * @deprecated Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead + */ + CV_DEPRECATED_EXTERNAL + void finalize(const std::vector &inputs, CV_OUT std::vector &outputs); + + /** @brief + * @overload + * @deprecated Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead + */ + CV_DEPRECATED std::vector finalize(const std::vector &inputs); + + /** @brief Allocates layer and computes output. + * @deprecated This method will be removed in the future release. + */ + CV_DEPRECATED CV_WRAP void run(const std::vector &inputs, CV_OUT std::vector &outputs, + CV_IN_OUT std::vector &internals); + + /** @brief Returns index of input blob into the input array. + * @param inputName label of input blob + * + * Each layer input and output can be labeled to easily identify them using "%[.output_name]" notation. + * This method maps label of input blob to its index into input vector. + */ + virtual int inputNameToIndex(String inputName); + /** @brief Returns index of output blob in output array. + * @see inputNameToIndex() + */ + CV_WRAP virtual int outputNameToIndex(const String& outputName); + + /** + * @brief Ask layer if it support specific backend for doing computations. + * @param[in] backendId computation backend identifier. + * @see Backend + */ + virtual bool supportBackend(int backendId); + + /** + * @brief Returns Halide backend node. + * @param[in] inputs Input Halide buffers. + * @see BackendNode, BackendWrapper + * + * Input buffers should be exactly the same that will be used in forward invocations. + * Despite we can use Halide::ImageParam based on input shape only, + * it helps prevent some memory management issues (if something wrong, + * Halide tests will be failed). + */ + virtual Ptr initHalide(const std::vector > &inputs); + + virtual Ptr initInfEngine(const std::vector > &inputs); + + virtual Ptr initVkCom(const std::vector > &inputs); + /** + * @brief Automatic Halide scheduling based on layer hyper-parameters. + * @param[in] node Backend node with Halide functions. + * @param[in] inputs Blobs that will be used in forward invocations. + * @param[in] outputs Blobs that will be used in forward invocations. + * @param[in] targetId Target identifier + * @see BackendNode, Target + * + * Layer don't use own Halide::Func members because we can have applied + * layers fusing. In this way the fused function should be scheduled. + */ + virtual void applyHalideScheduler(Ptr& node, + const std::vector &inputs, + const std::vector &outputs, + int targetId) const; + + /** + * @brief Implement layers fusing. + * @param[in] node Backend node of bottom layer. + * @see BackendNode + * + * Actual for graph-based backends. If layer attached successfully, + * returns non-empty cv::Ptr to node of the same backend. + * Fuse only over the last function. + */ + virtual Ptr tryAttach(const Ptr& node); + + /** + * @brief Tries to attach to the layer the subsequent activation layer, i.e. do the layer fusion in a partial case. + * @param[in] layer The subsequent activation layer. + * + * Returns true if the activation layer has been attached successfully. + */ + virtual bool setActivation(const Ptr& layer); + + /** + * @brief Try to fuse current layer with a next one + * @param[in] top Next layer to be fused. + * @returns True if fusion was performed. + */ + virtual bool tryFuse(Ptr& top); + + /** + * @brief Returns parameters of layers with channel-wise multiplication and addition. + * @param[out] scale Channel-wise multipliers. Total number of values should + * be equal to number of channels. + * @param[out] shift Channel-wise offsets. Total number of values should + * be equal to number of channels. + * + * Some layers can fuse their transformations with further layers. + * In example, convolution + batch normalization. This way base layer + * use weights from layer after it. Fused layer is skipped. + * By default, @p scale and @p shift are empty that means layer has no + * element-wise multiplications or additions. + */ + virtual void getScaleShift(Mat& scale, Mat& shift) const; + + /** + * @brief "Deattaches" all the layers, attached to particular layer. + */ + virtual void unsetAttached(); + + virtual bool getMemoryShapes(const std::vector &inputs, + const int requiredOutputs, + std::vector &outputs, + std::vector &internals) const; + virtual int64 getFLOPS(const std::vector &inputs, + const std::vector &outputs) const {CV_UNUSED(inputs); CV_UNUSED(outputs); return 0;} + + CV_PROP String name; //!< Name of the layer instance, can be used for logging or other internal purposes. + CV_PROP String type; //!< Type name which was used for creating layer by layer factory. + CV_PROP int preferableTarget; //!< prefer target for layer forwarding + + Layer(); + explicit Layer(const LayerParams ¶ms); //!< Initializes only #name, #type and #blobs fields. + void setParamsFrom(const LayerParams ¶ms); //!< Initializes only #name, #type and #blobs fields. + virtual ~Layer(); + }; + + /** @brief This class allows to create and manipulate comprehensive artificial neural networks. + * + * Neural network is presented as directed acyclic graph (DAG), where vertices are Layer instances, + * and edges specify relationships between layers inputs and outputs. + * + * Each network layer has unique integer id and unique string name inside its network. + * LayerId can store either layer name or layer id. + * + * This class supports reference counting of its instances, i. e. copies point to the same instance. + */ + class CV_EXPORTS_W_SIMPLE Net + { + public: + + CV_WRAP Net(); //!< Default constructor. + CV_WRAP ~Net(); //!< Destructor frees the net only if there aren't references to the net anymore. + + /** @brief Create a network from Intel's Model Optimizer intermediate representation. + * @param[in] xml XML configuration file with network's topology. + * @param[in] bin Binary file with trained weights. + * Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine + * backend. + */ + CV_WRAP static Net readFromModelOptimizer(const String& xml, const String& bin); + + /** Returns true if there are no layers in the network. */ + CV_WRAP bool empty() const; + + /** @brief Adds new layer to the net. + * @param name unique name of the adding layer. + * @param type typename of the adding layer (type must be registered in LayerRegister). + * @param params parameters which will be used to initialize the creating layer. + * @returns unique identifier of created layer, or -1 if a failure will happen. + */ + int addLayer(const String &name, const String &type, LayerParams ¶ms); + /** @brief Adds new layer and connects its first input to the first output of previously added layer. + * @see addLayer() + */ + int addLayerToPrev(const String &name, const String &type, LayerParams ¶ms); + + /** @brief Converts string name of the layer to the integer identifier. + * @returns id of the layer, or -1 if the layer wasn't found. + */ + CV_WRAP int getLayerId(const String &layer); + + CV_WRAP std::vector getLayerNames() const; + + /** @brief Container for strings and integers. */ + typedef DictValue LayerId; + + /** @brief Returns pointer to layer with specified id or name which the network use. */ + CV_WRAP Ptr getLayer(LayerId layerId); + + /** @brief Returns pointers to input layers of specific layer. */ + std::vector > getLayerInputs(LayerId layerId); // FIXIT: CV_WRAP + + /** @brief Connects output of the first layer to input of the second layer. + * @param outPin descriptor of the first layer output. + * @param inpPin descriptor of the second layer input. + * + * Descriptors have the following template <layer_name>[.input_number]: + * - the first part of the template layer_name is sting name of the added layer. + * If this part is empty then the network input pseudo layer will be used; + * - the second optional part of the template input_number + * is either number of the layer input, either label one. + * If this part is omitted then the first layer input will be used. + * + * @see setNetInputs(), Layer::inputNameToIndex(), Layer::outputNameToIndex() + */ + CV_WRAP void connect(String outPin, String inpPin); + + /** @brief Connects #@p outNum output of the first layer to #@p inNum input of the second layer. + * @param outLayerId identifier of the first layer + * @param outNum number of the first layer output + * @param inpLayerId identifier of the second layer + * @param inpNum number of the second layer input + */ + void connect(int outLayerId, int outNum, int inpLayerId, int inpNum); + + /** @brief Sets outputs names of the network input pseudo layer. + * + * Each net always has special own the network input pseudo layer with id=0. + * This layer stores the user blobs only and don't make any computations. + * In fact, this layer provides the only way to pass user data into the network. + * As any other layer, this layer can label its outputs and this function provides an easy way to do this. + */ + CV_WRAP void setInputsNames(const std::vector &inputBlobNames); + + /** @brief Runs forward pass to compute output of layer with name @p outputName. + * @param outputName name for layer which output is needed to get + * @return blob for first output of specified layer. + * @details By default runs forward pass for the whole network. + */ + CV_WRAP Mat forward(const String& outputName = String()); + + /** @brief Runs forward pass to compute output of layer with name @p outputName. + * @param outputBlobs contains all output blobs for specified layer. + * @param outputName name for layer which output is needed to get + * @details If @p outputName is empty, runs forward pass for the whole network. + */ + CV_WRAP void forward(OutputArrayOfArrays outputBlobs, const String& outputName = String()); + + /** @brief Runs forward pass to compute outputs of layers listed in @p outBlobNames. + * @param outputBlobs contains blobs for first outputs of specified layers. + * @param outBlobNames names for layers which outputs are needed to get + */ + CV_WRAP void forward(OutputArrayOfArrays outputBlobs, + const std::vector& outBlobNames); + + /** @brief Runs forward pass to compute outputs of layers listed in @p outBlobNames. + * @param outputBlobs contains all output blobs for each layer specified in @p outBlobNames. + * @param outBlobNames names for layers which outputs are needed to get + */ + CV_WRAP_AS(forwardAndRetrieve) void forward(CV_OUT std::vector >& outputBlobs, + const std::vector& outBlobNames); + + /** + * @brief Compile Halide layers. + * @param[in] scheduler Path to YAML file with scheduling directives. + * @see setPreferableBackend + * + * Schedule layers that support Halide backend. Then compile them for + * specific target. For layers that not represented in scheduling file + * or if no manual scheduling used at all, automatic scheduling will be applied. + */ + CV_WRAP void setHalideScheduler(const String& scheduler); + + /** + * @brief Ask network to use specific computation backend where it supported. + * @param[in] backendId backend identifier. + * @see Backend + * + * If OpenCV is compiled with Intel's Inference Engine library, DNN_BACKEND_DEFAULT + * means DNN_BACKEND_INFERENCE_ENGINE. Otherwise it equals to DNN_BACKEND_OPENCV. + */ + CV_WRAP void setPreferableBackend(int backendId); + + /** + * @brief Ask network to make computations on specific target device. + * @param[in] targetId target identifier. + * @see Target + * + * List of supported combinations backend / target: + * | | DNN_BACKEND_OPENCV | DNN_BACKEND_INFERENCE_ENGINE | DNN_BACKEND_HALIDE | + * |------------------------|--------------------|------------------------------|--------------------| + * | DNN_TARGET_CPU | + | + | + | + * | DNN_TARGET_OPENCL | + | + | + | + * | DNN_TARGET_OPENCL_FP16 | + | + | | + * | DNN_TARGET_MYRIAD | | + | | + * | DNN_TARGET_FPGA | | + | | + */ + CV_WRAP void setPreferableTarget(int targetId); + + /** @brief Sets the new input value for the network + * @param blob A new blob. Should have CV_32F or CV_8U depth. + * @param name A name of input layer. + * @param scalefactor An optional normalization scale. + * @param mean An optional mean subtraction values. + * @see connect(String, String) to know format of the descriptor. + * + * If scale or mean values are specified, a final input blob is computed + * as: + * \f[input(n,c,h,w) = scalefactor \times (blob(n,c,h,w) - mean_c)\f] + */ + CV_WRAP void setInput(InputArray blob, const String& name = "", + double scalefactor = 1.0, const Scalar& mean = Scalar()); + + /** @brief Sets the new value for the learned param of the layer. + * @param layer name or id of the layer. + * @param numParam index of the layer parameter in the Layer::blobs array. + * @param blob the new value. + * @see Layer::blobs + * @note If shape of the new blob differs from the previous shape, + * then the following forward pass may fail. + */ + CV_WRAP void setParam(LayerId layer, int numParam, const Mat &blob); + + /** @brief Returns parameter blob of the layer. + * @param layer name or id of the layer. + * @param numParam index of the layer parameter in the Layer::blobs array. + * @see Layer::blobs + */ + CV_WRAP Mat getParam(LayerId layer, int numParam = 0); + + /** @brief Returns indexes of layers with unconnected outputs. + */ + CV_WRAP std::vector getUnconnectedOutLayers() const; + + /** @brief Returns names of layers with unconnected outputs. + */ + CV_WRAP std::vector getUnconnectedOutLayersNames() const; + + /** @brief Returns input and output shapes for all layers in loaded model; + * preliminary inferencing isn't necessary. + * @param netInputShapes shapes for all input blobs in net input layer. + * @param layersIds output parameter for layer IDs. + * @param inLayersShapes output parameter for input layers shapes; + * order is the same as in layersIds + * @param outLayersShapes output parameter for output layers shapes; + * order is the same as in layersIds + */ + CV_WRAP void getLayersShapes(const std::vector& netInputShapes, + CV_OUT std::vector& layersIds, + CV_OUT std::vector >& inLayersShapes, + CV_OUT std::vector >& outLayersShapes) const; + + /** @overload */ + CV_WRAP void getLayersShapes(const MatShape& netInputShape, + CV_OUT std::vector& layersIds, + CV_OUT std::vector >& inLayersShapes, + CV_OUT std::vector >& outLayersShapes) const; + + /** @brief Returns input and output shapes for layer with specified + * id in loaded model; preliminary inferencing isn't necessary. + * @param netInputShape shape input blob in net input layer. + * @param layerId id for layer. + * @param inLayerShapes output parameter for input layers shapes; + * order is the same as in layersIds + * @param outLayerShapes output parameter for output layers shapes; + * order is the same as in layersIds + */ + void getLayerShapes(const MatShape& netInputShape, + const int layerId, + CV_OUT std::vector& inLayerShapes, + CV_OUT std::vector& outLayerShapes) const; // FIXIT: CV_WRAP + + /** @overload */ + void getLayerShapes(const std::vector& netInputShapes, + const int layerId, + CV_OUT std::vector& inLayerShapes, + CV_OUT std::vector& outLayerShapes) const; // FIXIT: CV_WRAP + + /** @brief Computes FLOP for whole loaded model with specified input shapes. + * @param netInputShapes vector of shapes for all net inputs. + * @returns computed FLOP. + */ + CV_WRAP int64 getFLOPS(const std::vector& netInputShapes) const; + /** @overload */ + CV_WRAP int64 getFLOPS(const MatShape& netInputShape) const; + /** @overload */ + CV_WRAP int64 getFLOPS(const int layerId, + const std::vector& netInputShapes) const; + /** @overload */ + CV_WRAP int64 getFLOPS(const int layerId, + const MatShape& netInputShape) const; + + /** @brief Returns list of types for layer used in model. + * @param layersTypes output parameter for returning types. + */ + CV_WRAP void getLayerTypes(CV_OUT std::vector& layersTypes) const; + + /** @brief Returns count of layers of specified type. + * @param layerType type. + * @returns count of layers + */ + CV_WRAP int getLayersCount(const String& layerType) const; + + /** @brief Computes bytes number which are required to store + * all weights and intermediate blobs for model. + * @param netInputShapes vector of shapes for all net inputs. + * @param weights output parameter to store resulting bytes for weights. + * @param blobs output parameter to store resulting bytes for intermediate blobs. + */ + void getMemoryConsumption(const std::vector& netInputShapes, + CV_OUT size_t& weights, CV_OUT size_t& blobs) const; // FIXIT: CV_WRAP + /** @overload */ + CV_WRAP void getMemoryConsumption(const MatShape& netInputShape, + CV_OUT size_t& weights, CV_OUT size_t& blobs) const; + /** @overload */ + CV_WRAP void getMemoryConsumption(const int layerId, + const std::vector& netInputShapes, + CV_OUT size_t& weights, CV_OUT size_t& blobs) const; + /** @overload */ + CV_WRAP void getMemoryConsumption(const int layerId, + const MatShape& netInputShape, + CV_OUT size_t& weights, CV_OUT size_t& blobs) const; + + /** @brief Computes bytes number which are required to store + * all weights and intermediate blobs for each layer. + * @param netInputShapes vector of shapes for all net inputs. + * @param layerIds output vector to save layer IDs. + * @param weights output parameter to store resulting bytes for weights. + * @param blobs output parameter to store resulting bytes for intermediate blobs. + */ + void getMemoryConsumption(const std::vector& netInputShapes, + CV_OUT std::vector& layerIds, + CV_OUT std::vector& weights, + CV_OUT std::vector& blobs) const; // FIXIT: CV_WRAP + /** @overload */ + void getMemoryConsumption(const MatShape& netInputShape, + CV_OUT std::vector& layerIds, + CV_OUT std::vector& weights, + CV_OUT std::vector& blobs) const; // FIXIT: CV_WRAP + + /** @brief Enables or disables layer fusion in the network. + * @param fusion true to enable the fusion, false to disable. The fusion is enabled by default. + */ + CV_WRAP void enableFusion(bool fusion); + + /** @brief Returns overall time for inference and timings (in ticks) for layers. + * Indexes in returned vector correspond to layers ids. Some layers can be fused with others, + * in this case zero ticks count will be return for that skipped layers. + * @param timings vector for tick timings for all layers. + * @return overall ticks for model inference. + */ + CV_WRAP int64 getPerfProfile(CV_OUT std::vector& timings); + + private: + struct Impl; + Ptr impl; + }; + + /** @brief Reads a network model stored in Darknet model files. + * @param cfgFile path to the .cfg file with text description of the network architecture. + * @param darknetModel path to the .weights file with learned network. + * @returns Network object that ready to do forward, throw an exception in failure cases. + * @returns Net object. + */ + CV_EXPORTS_W Net readNetFromDarknet(const String &cfgFile, const String &darknetModel = String()); + + /** @brief Reads a network model stored in Darknet model files. + * @param bufferCfg A buffer contains a content of .cfg file with text description of the network architecture. + * @param bufferModel A buffer contains a content of .weights file with learned network. + * @returns Net object. + */ + CV_EXPORTS_W Net readNetFromDarknet(const std::vector& bufferCfg, + const std::vector& bufferModel = std::vector()); + + /** @brief Reads a network model stored in Darknet model files. + * @param bufferCfg A buffer contains a content of .cfg file with text description of the network architecture. + * @param lenCfg Number of bytes to read from bufferCfg + * @param bufferModel A buffer contains a content of .weights file with learned network. + * @param lenModel Number of bytes to read from bufferModel + * @returns Net object. + */ + CV_EXPORTS Net readNetFromDarknet(const char *bufferCfg, size_t lenCfg, + const char *bufferModel = NULL, size_t lenModel = 0); + + /** @brief Reads a network model stored in Caffe framework's format. + * @param prototxt path to the .prototxt file with text description of the network architecture. + * @param caffeModel path to the .caffemodel file with learned network. + * @returns Net object. + */ + CV_EXPORTS_W Net readNetFromCaffe(const String &prototxt, const String &caffeModel = String()); + + /** @brief Reads a network model stored in Caffe model in memory. + * @param bufferProto buffer containing the content of the .prototxt file + * @param bufferModel buffer containing the content of the .caffemodel file + * @returns Net object. + */ + CV_EXPORTS_W Net readNetFromCaffe(const std::vector& bufferProto, + const std::vector& bufferModel = std::vector()); + + /** @brief Reads a network model stored in Caffe model in memory. + * @details This is an overloaded member function, provided for convenience. + * It differs from the above function only in what argument(s) it accepts. + * @param bufferProto buffer containing the content of the .prototxt file + * @param lenProto length of bufferProto + * @param bufferModel buffer containing the content of the .caffemodel file + * @param lenModel length of bufferModel + * @returns Net object. + */ + CV_EXPORTS Net readNetFromCaffe(const char *bufferProto, size_t lenProto, + const char *bufferModel = NULL, size_t lenModel = 0); + + /** @brief Reads a network model stored in TensorFlow framework's format. + * @param model path to the .pb file with binary protobuf description of the network architecture + * @param config path to the .pbtxt file that contains text graph definition in protobuf format. + * Resulting Net object is built by text graph using weights from a binary one that + * let us make it more flexible. + * @returns Net object. + */ + CV_EXPORTS_W Net readNetFromTensorflow(const String &model, const String &config = String()); + + /** @brief Reads a network model stored in TensorFlow framework's format. + * @param bufferModel buffer containing the content of the pb file + * @param bufferConfig buffer containing the content of the pbtxt file + * @returns Net object. + */ + CV_EXPORTS_W Net readNetFromTensorflow(const std::vector& bufferModel, + const std::vector& bufferConfig = std::vector()); + + /** @brief Reads a network model stored in TensorFlow framework's format. + * @details This is an overloaded member function, provided for convenience. + * It differs from the above function only in what argument(s) it accepts. + * @param bufferModel buffer containing the content of the pb file + * @param lenModel length of bufferModel + * @param bufferConfig buffer containing the content of the pbtxt file + * @param lenConfig length of bufferConfig + */ + CV_EXPORTS Net readNetFromTensorflow(const char *bufferModel, size_t lenModel, + const char *bufferConfig = NULL, size_t lenConfig = 0); + + /** + * @brief Reads a network model stored in Torch7 framework's format. + * @param model path to the file, dumped from Torch by using torch.save() function. + * @param isBinary specifies whether the network was serialized in ascii mode or binary. + * @param evaluate specifies testing phase of network. If true, it's similar to evaluate() method in Torch. + * @returns Net object. + * + * @note Ascii mode of Torch serializer is more preferable, because binary mode extensively use `long` type of C language, + * which has various bit-length on different systems. + * + * The loading file must contain serialized nn.Module object + * with importing network. Try to eliminate a custom objects from serialazing data to avoid importing errors. + * + * List of supported layers (i.e. object instances derived from Torch nn.Module class): + * - nn.Sequential + * - nn.Parallel + * - nn.Concat + * - nn.Linear + * - nn.SpatialConvolution + * - nn.SpatialMaxPooling, nn.SpatialAveragePooling + * - nn.ReLU, nn.TanH, nn.Sigmoid + * - nn.Reshape + * - nn.SoftMax, nn.LogSoftMax + * + * Also some equivalents of these classes from cunn, cudnn, and fbcunn may be successfully imported. + */ + CV_EXPORTS_W Net readNetFromTorch(const String &model, bool isBinary = true, bool evaluate = true); + + /** + * @brief Read deep learning network represented in one of the supported formats. + * @param[in] model Binary file contains trained weights. The following file + * extensions are expected for models from different frameworks: + * * `*.caffemodel` (Caffe, http://caffe.berkeleyvision.org/) + * * `*.pb` (TensorFlow, https://www.tensorflow.org/) + * * `*.t7` | `*.net` (Torch, http://torch.ch/) + * * `*.weights` (Darknet, https://pjreddie.com/darknet/) + * * `*.bin` (DLDT, https://software.intel.com/openvino-toolkit) + * @param[in] config Text file contains network configuration. It could be a + * file with the following extensions: + * * `*.prototxt` (Caffe, http://caffe.berkeleyvision.org/) + * * `*.pbtxt` (TensorFlow, https://www.tensorflow.org/) + * * `*.cfg` (Darknet, https://pjreddie.com/darknet/) + * * `*.xml` (DLDT, https://software.intel.com/openvino-toolkit) + * @param[in] framework Explicit framework name tag to determine a format. + * @returns Net object. + * + * This function automatically detects an origin framework of trained model + * and calls an appropriate function such @ref readNetFromCaffe, @ref readNetFromTensorflow, + * @ref readNetFromTorch or @ref readNetFromDarknet. An order of @p model and @p config + * arguments does not matter. + */ + CV_EXPORTS_W Net readNet(const String& model, const String& config = "", const String& framework = ""); + + /** + * @brief Read deep learning network represented in one of the supported formats. + * @details This is an overloaded member function, provided for convenience. + * It differs from the above function only in what argument(s) it accepts. + * @param[in] framework Name of origin framework. + * @param[in] bufferModel A buffer with a content of binary file with weights + * @param[in] bufferConfig A buffer with a content of text file contains network configuration. + * @returns Net object. + */ + CV_EXPORTS_W Net readNet(const String& framework, const std::vector& bufferModel, + const std::vector& bufferConfig = std::vector()); + + /** @brief Loads blob which was serialized as torch.Tensor object of Torch7 framework. + * @warning This function has the same limitations as readNetFromTorch(). + */ + CV_EXPORTS_W Mat readTorchBlob(const String &filename, bool isBinary = true); + + /** @brief Load a network from Intel's Model Optimizer intermediate representation. + * @param[in] xml XML configuration file with network's topology. + * @param[in] bin Binary file with trained weights. + * @returns Net object. + * Networks imported from Intel's Model Optimizer are launched in Intel's Inference Engine + * backend. + */ + CV_EXPORTS_W Net readNetFromModelOptimizer(const String &xml, const String &bin); + + /** @brief Reads a network model ONNX. + * @param onnxFile path to the .onnx file with text description of the network architecture. + * @returns Network object that ready to do forward, throw an exception in failure cases. + */ + CV_EXPORTS_W Net readNetFromONNX(const String &onnxFile); + + /** @brief Creates blob from .pb file. + * @param path to the .pb file with input tensor. + * @returns Mat. + */ + CV_EXPORTS_W Mat readTensorFromONNX(const String& path); + + /** @brief Creates 4-dimensional blob from image. Optionally resizes and crops @p image from center, + * subtract @p mean values, scales values by @p scalefactor, swap Blue and Red channels. + * @param image input image (with 1-, 3- or 4-channels). + * @param size spatial size for output image + * @param mean scalar with mean values which are subtracted from channels. Values are intended + * to be in (mean-R, mean-G, mean-B) order if @p image has BGR ordering and @p swapRB is true. + * @param scalefactor multiplier for @p image values. + * @param swapRB flag which indicates that swap first and last channels + * in 3-channel image is necessary. + * @param crop flag which indicates whether image will be cropped after resize or not + * @param ddepth Depth of output blob. Choose CV_32F or CV_8U. + * @details if @p crop is true, input image is resized so one side after resize is equal to corresponding + * dimension in @p size and another one is equal or larger. Then, crop from the center is performed. + * If @p crop is false, direct resize without cropping and preserving aspect ratio is performed. + * @returns 4-dimensional Mat with NCHW dimensions order. + */ + CV_EXPORTS_W Mat blobFromImage(InputArray image, double scalefactor=1.0, const Size& size = Size(), + const Scalar& mean = Scalar(), bool swapRB=false, bool crop=false, + int ddepth=CV_32F); + + /** @brief Creates 4-dimensional blob from image. + * @details This is an overloaded member function, provided for convenience. + * It differs from the above function only in what argument(s) it accepts. + */ + CV_EXPORTS void blobFromImage(InputArray image, OutputArray blob, double scalefactor=1.0, + const Size& size = Size(), const Scalar& mean = Scalar(), + bool swapRB=false, bool crop=false, int ddepth=CV_32F); + + + /** @brief Creates 4-dimensional blob from series of images. Optionally resizes and + * crops @p images from center, subtract @p mean values, scales values by @p scalefactor, + * swap Blue and Red channels. + * @param images input images (all with 1-, 3- or 4-channels). + * @param size spatial size for output image + * @param mean scalar with mean values which are subtracted from channels. Values are intended + * to be in (mean-R, mean-G, mean-B) order if @p image has BGR ordering and @p swapRB is true. + * @param scalefactor multiplier for @p images values. + * @param swapRB flag which indicates that swap first and last channels + * in 3-channel image is necessary. + * @param crop flag which indicates whether image will be cropped after resize or not + * @param ddepth Depth of output blob. Choose CV_32F or CV_8U. + * @details if @p crop is true, input image is resized so one side after resize is equal to corresponding + * dimension in @p size and another one is equal or larger. Then, crop from the center is performed. + * If @p crop is false, direct resize without cropping and preserving aspect ratio is performed. + * @returns 4-dimensional Mat with NCHW dimensions order. + */ + CV_EXPORTS_W Mat blobFromImages(InputArrayOfArrays images, double scalefactor=1.0, + Size size = Size(), const Scalar& mean = Scalar(), bool swapRB=false, bool crop=false, + int ddepth=CV_32F); + + /** @brief Creates 4-dimensional blob from series of images. + * @details This is an overloaded member function, provided for convenience. + * It differs from the above function only in what argument(s) it accepts. + */ + CV_EXPORTS void blobFromImages(InputArrayOfArrays images, OutputArray blob, + double scalefactor=1.0, Size size = Size(), + const Scalar& mean = Scalar(), bool swapRB=false, bool crop=false, + int ddepth=CV_32F); + + /** @brief Parse a 4D blob and output the images it contains as 2D arrays through a simpler data structure + * (std::vector). + * @param[in] blob_ 4 dimensional array (images, channels, height, width) in floating point precision (CV_32F) from + * which you would like to extract the images. + * @param[out] images_ array of 2D Mat containing the images extracted from the blob in floating point precision + * (CV_32F). They are non normalized neither mean added. The number of returned images equals the first dimension + * of the blob (batch size). Every image has a number of channels equals to the second dimension of the blob (depth). + */ + CV_EXPORTS_W void imagesFromBlob(const cv::Mat& blob_, OutputArrayOfArrays images_); + + /** @brief Convert all weights of Caffe network to half precision floating point. + * @param src Path to origin model from Caffe framework contains single + * precision floating point weights (usually has `.caffemodel` extension). + * @param dst Path to destination model with updated weights. + * @param layersTypes Set of layers types which parameters will be converted. + * By default, converts only Convolutional and Fully-Connected layers' + * weights. + * + * @note Shrinked model has no origin float32 weights so it can't be used + * in origin Caffe framework anymore. However the structure of data + * is taken from NVidia's Caffe fork: https://github.com/NVIDIA/caffe. + * So the resulting model may be used there. + */ + CV_EXPORTS_W void shrinkCaffeModel(const String& src, const String& dst, + const std::vector& layersTypes = std::vector()); + + /** @brief Create a text representation for a binary network stored in protocol buffer format. + * @param[in] model A path to binary network. + * @param[in] output A path to output text file to be created. + * + * @note To reduce output file size, trained weights are not included. + */ + CV_EXPORTS_W void writeTextGraph(const String& model, const String& output); + + /** @brief Performs non maximum suppression given boxes and corresponding scores. + + * @param bboxes a set of bounding boxes to apply NMS. + * @param scores a set of corresponding confidences. + * @param score_threshold a threshold used to filter boxes by score. + * @param nms_threshold a threshold used in non maximum suppression. + * @param indices the kept indices of bboxes after NMS. + * @param eta a coefficient in adaptive threshold formula: \f$nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\f$. + * @param top_k if `>0`, keep at most @p top_k picked indices. + */ + CV_EXPORTS_W void NMSBoxes(const std::vector& bboxes, const std::vector& scores, + const float score_threshold, const float nms_threshold, + CV_OUT std::vector& indices, + const float eta = 1.f, const int top_k = 0); + + CV_EXPORTS_W void NMSBoxes(const std::vector& bboxes, const std::vector& scores, + const float score_threshold, const float nms_threshold, + CV_OUT std::vector& indices, + const float eta = 1.f, const int top_k = 0); + + CV_EXPORTS_AS(NMSBoxesRotated) void NMSBoxes(const std::vector& bboxes, const std::vector& scores, + const float score_threshold, const float nms_threshold, + CV_OUT std::vector& indices, + const float eta = 1.f, const int top_k = 0); + +//! @} +CV__DNN_INLINE_NS_END +} +} + +#include +#include + +/// @deprecated Include this header directly from application. Automatic inclusion will be removed +#include + +#endif /* OPENCV_DNN_DNN_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dnn.inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/dnn.inl.hpp similarity index 88% rename from lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dnn.inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/dnn/dnn.inl.hpp index c30185b27..d6809ce3f 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dnn.inl.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/dnn.inl.hpp @@ -46,7 +46,7 @@ namespace cv { namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN +CV__DNN_INLINE_NS_BEGIN template DictValue DictValue::arrayInt(TypeIter begin, int size) @@ -102,9 +102,13 @@ inline int64 DictValue::get(int idx) const return (int64)doubleValue; } + else if (type == Param::STRING) + { + return std::atoi((*ps)[idx].c_str()); + } else { - CV_Assert(isInt() || isReal()); + CV_Assert(isInt() || isReal() || isString()); return 0; } } @@ -146,9 +150,13 @@ inline double DictValue::get(int idx) const { return (double)(*pi)[idx]; } + else if (type == Param::STRING) + { + return std::atof((*ps)[idx].c_str()); + } else { - CV_Assert(isReal() || isInt()); + CV_Assert(isReal() || isInt() || isString()); return 0; } } @@ -191,6 +199,16 @@ inline void DictValue::release() case Param::REAL: delete pd; break; + case Param::BOOLEAN: + case Param::MAT: + case Param::MAT_VECTOR: + case Param::ALGORITHM: + case Param::FLOAT: + case Param::UNSIGNED_INT: + case Param::UINT64: + case Param::UCHAR: + case Param::SCALAR: + break; // unhandled } } @@ -261,17 +279,22 @@ inline int DictValue::size() const { case Param::INT: return (int)pi->size(); - break; case Param::STRING: return (int)ps->size(); - break; case Param::REAL: return (int)pd->size(); - break; - default: - CV_Error(Error::StsInternal, ""); - return -1; + case Param::BOOLEAN: + case Param::MAT: + case Param::MAT_VECTOR: + case Param::ALGORITHM: + case Param::FLOAT: + case Param::UNSIGNED_INT: + case Param::UINT64: + case Param::UCHAR: + case Param::SCALAR: + break; // unhandled } + CV_Error_(Error::StsInternal, ("Unhandled type (%d)", static_cast(type))); } inline std::ostream &operator<<(std::ostream &stream, const DictValue &dictv) @@ -357,6 +380,11 @@ inline const T &Dict::set(const String &key, const T &value) return value; } +inline void Dict::erase(const String &key) +{ + dict.erase(key); +} + inline std::ostream &operator<<(std::ostream &stream, const Dict &dict) { Dict::_Dict::const_iterator it; @@ -366,7 +394,17 @@ inline std::ostream &operator<<(std::ostream &stream, const Dict &dict) return stream; } -CV__DNN_EXPERIMENTAL_NS_END +inline std::map::const_iterator Dict::begin() const +{ + return dict.begin(); +} + +inline std::map::const_iterator Dict::end() const +{ + return dict.end(); +} + +CV__DNN_INLINE_NS_END } } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/layer.details.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/layer.details.hpp similarity index 78% rename from lib/3rdParty/OpenCV3.4/include/opencv2/dnn/layer.details.hpp rename to lib/3rdParty/OpenCV/include/opencv2/dnn/layer.details.hpp index 82bd3b11f..1133da562 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/layer.details.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/layer.details.hpp @@ -9,15 +9,15 @@ namespace cv { namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN +CV__DNN_INLINE_NS_BEGIN /** @brief Registers layer constructor in runtime. * @param type string, containing type name of the layer. -* @param constuctorFunc pointer to the function of type LayerRegister::Constuctor, which creates the layer. +* @param constructorFunc pointer to the function of type LayerRegister::Constructor, which creates the layer. * @details This macros must be placed inside the function code. */ -#define CV_DNN_REGISTER_LAYER_FUNC(type, constuctorFunc) \ - cv::dnn::LayerFactory::registerLayer(#type, constuctorFunc); +#define CV_DNN_REGISTER_LAYER_FUNC(type, constructorFunc) \ + cv::dnn::LayerFactory::registerLayer(#type, constructorFunc); /** @brief Registers layer class in runtime. * @param type string, containing type name of the layer. @@ -29,11 +29,11 @@ CV__DNN_EXPERIMENTAL_NS_BEGIN /** @brief Registers layer constructor on module load time. * @param type string, containing type name of the layer. -* @param constuctorFunc pointer to the function of type LayerRegister::Constuctor, which creates the layer. +* @param constructorFunc pointer to the function of type LayerRegister::Constructor, which creates the layer. * @details This macros must be placed outside the function code. */ -#define CV_DNN_REGISTER_LAYER_FUNC_STATIC(type, constuctorFunc) \ -static cv::dnn::details::_LayerStaticRegisterer __LayerStaticRegisterer_##type(#type, constuctorFunc); +#define CV_DNN_REGISTER_LAYER_FUNC_STATIC(type, constructorFunc) \ +static cv::dnn::details::_LayerStaticRegisterer __LayerStaticRegisterer_##type(#type, constructorFunc); /** @brief Registers layer class on module load time. * @param type string, containing type name of the layer. @@ -59,10 +59,10 @@ class _LayerStaticRegisterer String type; public: - _LayerStaticRegisterer(const String &layerType, LayerFactory::Constuctor layerConstuctor) + _LayerStaticRegisterer(const String &layerType, LayerFactory::Constructor layerConstructor) { this->type = layerType; - LayerFactory::registerLayer(layerType, layerConstuctor); + LayerFactory::registerLayer(layerType, layerConstructor); } ~_LayerStaticRegisterer() @@ -72,7 +72,7 @@ class _LayerStaticRegisterer }; } // namespace -CV__DNN_EXPERIMENTAL_NS_END +CV__DNN_INLINE_NS_END }} // namespace #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/layer.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/layer.hpp similarity index 94% rename from lib/3rdParty/OpenCV3.4/include/opencv2/dnn/layer.hpp rename to lib/3rdParty/OpenCV/include/opencv2/dnn/layer.hpp index 3fb81f326..850059937 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/layer.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/layer.hpp @@ -45,7 +45,7 @@ namespace cv { namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN +CV__DNN_INLINE_NS_BEGIN //! @addtogroup dnn //! @{ //! @@ -58,10 +58,10 @@ class CV_EXPORTS LayerFactory public: //! Each Layer class must provide this function to the factory - typedef Ptr(*Constuctor)(LayerParams ¶ms); + typedef Ptr(*Constructor)(LayerParams ¶ms); //! Registers the layer class with typename @p type and specified @p constructor. Thread-safe. - static void registerLayer(const String &type, Constuctor constructor); + static void registerLayer(const String &type, Constructor constructor); //! Unregisters registered layer with specified type name. Thread-safe. static void unregisterLayer(const String &type); @@ -79,7 +79,7 @@ class CV_EXPORTS LayerFactory //! @} //! @} -CV__DNN_EXPERIMENTAL_NS_END +CV__DNN_INLINE_NS_END } } #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/shape_utils.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/shape_utils.hpp similarity index 84% rename from lib/3rdParty/OpenCV3.4/include/opencv2/dnn/shape_utils.hpp rename to lib/3rdParty/OpenCV/include/opencv2/dnn/shape_utils.hpp index fa4b497a8..98adcc382 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/shape_utils.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/shape_utils.hpp @@ -42,19 +42,15 @@ #ifndef OPENCV_DNN_DNN_SHAPE_UTILS_HPP #define OPENCV_DNN_DNN_SHAPE_UTILS_HPP -#include -#include +#include +#include // CV_MAX_DIM +#include #include +#include namespace cv { namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN - -//Useful shortcut -inline std::ostream &operator<< (std::ostream &s, cv::Range &r) -{ - return s << "[" << r.start << ", " << r.end << ")"; -} +CV__DNN_INLINE_NS_BEGIN //Slicing @@ -120,7 +116,7 @@ static inline Mat getPlane(const Mat &m, int n, int cn) return Mat(m.dims - 2, sz, m.type(), (void*)m.ptr(n, cn)); } -static inline MatShape shape(const int* dims, const int n = 4) +static inline MatShape shape(const int* dims, const int n) { MatShape shape; shape.assign(dims, dims + n); @@ -132,6 +128,11 @@ static inline MatShape shape(const Mat& mat) return shape(mat.size.p, mat.dims); } +static inline MatShape shape(const MatSize& sz) +{ + return shape(sz.p, sz.dims()); +} + static inline MatShape shape(const UMat& mat) { return shape(mat.size.p, mat.dims); @@ -142,7 +143,7 @@ namespace {inline bool is_neg(int i) { return i < 0; }} static inline MatShape shape(int a0, int a1=-1, int a2=-1, int a3=-1) { int dims[] = {a0, a1, a2, a3}; - MatShape s = shape(dims); + MatShape s = shape(dims, 4); s.erase(std::remove_if(s.begin(), s.end(), is_neg), s.end()); return s; } @@ -173,13 +174,25 @@ static inline MatShape concat(const MatShape& a, const MatShape& b) return c; } -inline void print(const MatShape& shape, const String& name = "") +static inline std::string toString(const MatShape& shape, const String& name = "") +{ + std::ostringstream ss; + if (!name.empty()) + ss << name << ' '; + ss << '['; + for(size_t i = 0, n = shape.size(); i < n; ++i) + ss << ' ' << shape[i]; + ss << " ]"; + return ss.str(); +} +static inline void print(const MatShape& shape, const String& name = "") +{ + std::cout << toString(shape, name) << std::endl; +} +static inline std::ostream& operator<<(std::ostream &out, const MatShape& shape) { - printf("%s: [", name.c_str()); - size_t i, n = shape.size(); - for( i = 0; i < n; i++ ) - printf(" %d", shape[i]); - printf(" ]\n"); + out << toString(shape); + return out; } inline int clamp(int ax, int dims) @@ -196,11 +209,11 @@ inline Range clamp(const Range& r, int axisSize) { Range clamped(std::max(r.start, 0), r.end > 0 ? std::min(r.end, axisSize) : axisSize + r.end + 1); - CV_Assert(clamped.start < clamped.end, clamped.end <= axisSize); + CV_Assert_N(clamped.start < clamped.end, clamped.end <= axisSize); return clamped; } -CV__DNN_EXPERIMENTAL_NS_END +CV__DNN_INLINE_NS_END } } #endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/dnn/utils/inference_engine.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/utils/inference_engine.hpp new file mode 100644 index 000000000..564e52601 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/utils/inference_engine.hpp @@ -0,0 +1,43 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018-2019, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. + +#ifndef OPENCV_DNN_UTILS_INF_ENGINE_HPP +#define OPENCV_DNN_UTILS_INF_ENGINE_HPP + +#include "../dnn.hpp" + +namespace cv { namespace dnn { +CV__DNN_INLINE_NS_BEGIN + + +/** @brief Release a Myriad device (binded by OpenCV). + * + * Single Myriad device cannot be shared across multiple processes which uses + * Inference Engine's Myriad plugin. + */ +CV_EXPORTS_W void resetMyriadDevice(); + + +/* Values for 'OPENCV_DNN_IE_VPU_TYPE' parameter */ +#define CV_DNN_INFERENCE_ENGINE_VPU_TYPE_UNSPECIFIED "" +/// Intel(R) Movidius(TM) Neural Compute Stick, NCS (USB 03e7:2150), Myriad2 (https://software.intel.com/en-us/movidius-ncs) +#define CV_DNN_INFERENCE_ENGINE_VPU_TYPE_MYRIAD_2 "Myriad2" +/// Intel(R) Neural Compute Stick 2, NCS2 (USB 03e7:2485), MyriadX (https://software.intel.com/ru-ru/neural-compute-stick) +#define CV_DNN_INFERENCE_ENGINE_VPU_TYPE_MYRIAD_X "MyriadX" + + +/** @brief Returns Inference Engine VPU type. + * + * See values of `CV_DNN_INFERENCE_ENGINE_VPU_TYPE_*` macros. + */ +CV_EXPORTS_W cv::String getInferenceEngineVPUType(); + + +CV__DNN_INLINE_NS_END +}} // namespace + +#endif // OPENCV_DNN_UTILS_INF_ENGINE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/dnn/version.hpp b/lib/3rdParty/OpenCV/include/opencv2/dnn/version.hpp new file mode 100644 index 000000000..b14f4f66c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/dnn/version.hpp @@ -0,0 +1,21 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_DNN_VERSION_HPP +#define OPENCV_DNN_VERSION_HPP + +/// Use with major OpenCV version only. +#define OPENCV_DNN_API_VERSION 20190122 + +#if !defined CV_DOXYGEN && !defined CV_DNN_DONT_ADD_INLINE_NS +#define CV__DNN_INLINE_NS __CV_CAT(dnn4_v, OPENCV_DNN_API_VERSION) +#define CV__DNN_INLINE_NS_BEGIN namespace CV__DNN_INLINE_NS { +#define CV__DNN_INLINE_NS_END } +namespace cv { namespace dnn { namespace CV__DNN_INLINE_NS { } using namespace CV__DNN_INLINE_NS; }} +#else +#define CV__DNN_INLINE_NS_BEGIN +#define CV__DNN_INLINE_NS_END +#endif + +#endif // OPENCV_DNN_VERSION_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/features2d.hpp b/lib/3rdParty/OpenCV/include/opencv2/features2d.hpp similarity index 90% rename from lib/3rdParty/OpenCV3.4/include/opencv2/features2d.hpp rename to lib/3rdParty/OpenCV/include/opencv2/features2d.hpp index 82d76c40a..c995fbf01 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/features2d.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/features2d.hpp @@ -137,7 +137,11 @@ class CV_EXPORTS KeyPointsFilter /** @brief Abstract base class for 2D image feature detectors and descriptor extractors */ +#ifdef __EMSCRIPTEN__ +class CV_EXPORTS_W Feature2D : public Algorithm +#else class CV_EXPORTS_W Feature2D : public virtual Algorithm +#endif { public: virtual ~Feature2D(); @@ -208,14 +212,14 @@ class CV_EXPORTS_W Feature2D : public virtual Algorithm CV_WRAP void read( const String& fileName ); - virtual void write( FileStorage&) const; + virtual void write( FileStorage&) const CV_OVERRIDE; // see corresponding cv::Algorithm method - CV_WRAP virtual void read( const FileNode&); + CV_WRAP virtual void read( const FileNode&) CV_OVERRIDE; //! Return true if detector object is empty - CV_WRAP virtual bool empty() const; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual bool empty() const CV_OVERRIDE; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; // see corresponding cv::Algorithm method CV_WRAP inline void write(const Ptr& fs, const String& name = String()) const { Algorithm::write(fs, name); } @@ -280,7 +284,19 @@ class CV_EXPORTS_W BRISK : public Feature2D CV_WRAP static Ptr create(int thresh, int octaves, const std::vector &radiusList, const std::vector &numberList, float dMax=5.85f, float dMin=8.2f, const std::vector& indexChange=std::vector()); - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; + + /** @brief Set detection threshold. + @param threshold AGAST detection threshold score. + */ + CV_WRAP virtual void setThreshold(int threshold) { CV_UNUSED(threshold); return; } + CV_WRAP virtual int getThreshold() const { return -1; } + + /** @brief Set detection octaves. + @param octaves detection octaves. Use 0 to do single scale. + */ + CV_WRAP virtual void setOctaves(int octaves) { CV_UNUSED(octaves); return; } + CV_WRAP virtual int getOctaves() const { return -1; } }; /** @brief Class implementing the ORB (*oriented BRIEF*) keypoint detector and descriptor extractor @@ -293,7 +309,8 @@ k-tuples) are rotated according to the measured orientation). class CV_EXPORTS_W ORB : public Feature2D { public: - enum { kBytes = 32, HARRIS_SCORE=0, FAST_SCORE=1 }; + enum ScoreType { HARRIS_SCORE=0, FAST_SCORE=1 }; + static const int kBytes = 32; /** @brief The ORB constructor @@ -304,10 +321,11 @@ class CV_EXPORTS_W ORB : public Feature2D will mean that to cover certain scale range you will need more pyramid levels and so the speed will suffer. @param nlevels The number of pyramid levels. The smallest level will have linear size equal to - input_image_linear_size/pow(scaleFactor, nlevels). + input_image_linear_size/pow(scaleFactor, nlevels - firstLevel). @param edgeThreshold This is size of the border where the features are not detected. It should roughly match the patchSize parameter. - @param firstLevel It should be 0 in the current implementation. + @param firstLevel The level of pyramid to put source image to. Previous layers are filled + with upscaled source image. @param WTA_K The number of points that produce each element of the oriented BRIEF descriptor. The default value 2 means the BRIEF where we take a random point pair and compare their brightnesses, so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3 @@ -326,7 +344,7 @@ class CV_EXPORTS_W ORB : public Feature2D @param fastThreshold */ CV_WRAP static Ptr create(int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, - int firstLevel=0, int WTA_K=2, int scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20); + int firstLevel=0, int WTA_K=2, ORB::ScoreType scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20); CV_WRAP virtual void setMaxFeatures(int maxFeatures) = 0; CV_WRAP virtual int getMaxFeatures() const = 0; @@ -346,15 +364,15 @@ class CV_EXPORTS_W ORB : public Feature2D CV_WRAP virtual void setWTA_K(int wta_k) = 0; CV_WRAP virtual int getWTA_K() const = 0; - CV_WRAP virtual void setScoreType(int scoreType) = 0; - CV_WRAP virtual int getScoreType() const = 0; + CV_WRAP virtual void setScoreType(ORB::ScoreType scoreType) = 0; + CV_WRAP virtual ORB::ScoreType getScoreType() const = 0; CV_WRAP virtual void setPatchSize(int patchSize) = 0; CV_WRAP virtual int getPatchSize() const = 0; CV_WRAP virtual void setFastThreshold(int fastThreshold) = 0; CV_WRAP virtual int getFastThreshold() const = 0; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; /** @brief Maximally stable extremal region extractor @@ -381,7 +399,7 @@ class CV_EXPORTS_W MSER : public Feature2D @param _delta it compares \f$(size_{i}-size_{i-delta})/size_{i-delta}\f$ @param _min_area prune the area which smaller than minArea @param _max_area prune the area which bigger than maxArea - @param _max_variation prune the area have simliar size to its children + @param _max_variation prune the area have similar size to its children @param _min_diversity for color image, trace back to cut off mser with diversity less than min_diversity @param _max_evolution for color image, the evolution steps @param _area_threshold for color image, the area threshold to cause re-initialize @@ -414,7 +432,42 @@ class CV_EXPORTS_W MSER : public Feature2D CV_WRAP virtual void setPass2Only(bool f) = 0; CV_WRAP virtual bool getPass2Only() const = 0; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; +}; + +//! @} features2d_main + +//! @addtogroup features2d_main +//! @{ + +/** @brief Wrapping class for feature detection using the FAST method. : + */ +class CV_EXPORTS_W FastFeatureDetector : public Feature2D +{ +public: + enum DetectorType + { + TYPE_5_8 = 0, TYPE_7_12 = 1, TYPE_9_16 = 2 + }; + enum + { + THRESHOLD = 10000, NONMAX_SUPPRESSION=10001, FAST_N=10002 + }; + + + CV_WRAP static Ptr create( int threshold=10, + bool nonmaxSuppression=true, + FastFeatureDetector::DetectorType type=FastFeatureDetector::TYPE_9_16 ); + + CV_WRAP virtual void setThreshold(int threshold) = 0; + CV_WRAP virtual int getThreshold() const = 0; + + CV_WRAP virtual void setNonmaxSuppression(bool f) = 0; + CV_WRAP virtual bool getNonmaxSuppression() const = 0; + + CV_WRAP virtual void setType(FastFeatureDetector::DetectorType type) = 0; + CV_WRAP virtual FastFeatureDetector::DetectorType getType() const = 0; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; /** @overload */ @@ -435,32 +488,36 @@ FastFeatureDetector::TYPE_5_8 Detects corners using the FAST algorithm by @cite Rosten06 . -@note In Python API, types are given as cv2.FAST_FEATURE_DETECTOR_TYPE_5_8, -cv2.FAST_FEATURE_DETECTOR_TYPE_7_12 and cv2.FAST_FEATURE_DETECTOR_TYPE_9_16. For corner -detection, use cv2.FAST.detect() method. +@note In Python API, types are given as cv.FAST_FEATURE_DETECTOR_TYPE_5_8, +cv.FAST_FEATURE_DETECTOR_TYPE_7_12 and cv.FAST_FEATURE_DETECTOR_TYPE_9_16. For corner +detection, use cv.FAST.detect() method. */ CV_EXPORTS void FAST( InputArray image, CV_OUT std::vector& keypoints, - int threshold, bool nonmaxSuppression, int type ); + int threshold, bool nonmaxSuppression, FastFeatureDetector::DetectorType type ); //! @} features2d_main //! @addtogroup features2d_main //! @{ -/** @brief Wrapping class for feature detection using the FAST method. : +/** @brief Wrapping class for feature detection using the AGAST method. : */ -class CV_EXPORTS_W FastFeatureDetector : public Feature2D +class CV_EXPORTS_W AgastFeatureDetector : public Feature2D { public: + enum DetectorType + { + AGAST_5_8 = 0, AGAST_7_12d = 1, AGAST_7_12s = 2, OAST_9_16 = 3, + }; + enum { - TYPE_5_8 = 0, TYPE_7_12 = 1, TYPE_9_16 = 2, - THRESHOLD = 10000, NONMAX_SUPPRESSION=10001, FAST_N=10002, + THRESHOLD = 10000, NONMAX_SUPPRESSION = 10001, }; - CV_WRAP static Ptr create( int threshold=10, - bool nonmaxSuppression=true, - int type=FastFeatureDetector::TYPE_9_16 ); + CV_WRAP static Ptr create( int threshold=10, + bool nonmaxSuppression=true, + AgastFeatureDetector::DetectorType type = AgastFeatureDetector::OAST_9_16); CV_WRAP virtual void setThreshold(int threshold) = 0; CV_WRAP virtual int getThreshold() const = 0; @@ -468,9 +525,9 @@ class CV_EXPORTS_W FastFeatureDetector : public Feature2D CV_WRAP virtual void setNonmaxSuppression(bool f) = 0; CV_WRAP virtual bool getNonmaxSuppression() const = 0; - CV_WRAP virtual void setType(int type) = 0; - CV_WRAP virtual int getType() const = 0; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual void setType(AgastFeatureDetector::DetectorType type) = 0; + CV_WRAP virtual AgastFeatureDetector::DetectorType getType() const = 0; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; /** @overload */ @@ -496,37 +553,7 @@ Detects corners using the AGAST algorithm by @cite mair2010_agast . */ CV_EXPORTS void AGAST( InputArray image, CV_OUT std::vector& keypoints, - int threshold, bool nonmaxSuppression, int type ); -//! @} features2d_main - -//! @addtogroup features2d_main -//! @{ - -/** @brief Wrapping class for feature detection using the AGAST method. : - */ -class CV_EXPORTS_W AgastFeatureDetector : public Feature2D -{ -public: - enum - { - AGAST_5_8 = 0, AGAST_7_12d = 1, AGAST_7_12s = 2, OAST_9_16 = 3, - THRESHOLD = 10000, NONMAX_SUPPRESSION = 10001, - }; - - CV_WRAP static Ptr create( int threshold=10, - bool nonmaxSuppression=true, - int type=AgastFeatureDetector::OAST_9_16 ); - - CV_WRAP virtual void setThreshold(int threshold) = 0; - CV_WRAP virtual int getThreshold() const = 0; - - CV_WRAP virtual void setNonmaxSuppression(bool f) = 0; - CV_WRAP virtual bool getNonmaxSuppression() const = 0; - - CV_WRAP virtual void setType(int type) = 0; - CV_WRAP virtual int getType() const = 0; - CV_WRAP virtual String getDefaultName() const; -}; + int threshold, bool nonmaxSuppression, AgastFeatureDetector::DetectorType type ); /** @brief Wrapping class for feature detection using the goodFeaturesToTrack function. : */ @@ -554,7 +581,7 @@ class CV_EXPORTS_W GFTTDetector : public Feature2D CV_WRAP virtual void setK(double k) = 0; CV_WRAP virtual double getK() const = 0; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; /** @brief Class for extracting blobs from an image. : @@ -621,7 +648,7 @@ class CV_EXPORTS_W SimpleBlobDetector : public Feature2D CV_WRAP static Ptr create(const SimpleBlobDetector::Params ¶meters = SimpleBlobDetector::Params()); - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; //! @} features2d_main @@ -638,7 +665,7 @@ F. Alcantarilla, Adrien Bartoli and Andrew J. Davison. In European Conference on class CV_EXPORTS_W KAZE : public Feature2D { public: - enum + enum DiffusivityType { DIFF_PM_G1 = 0, DIFF_PM_G2 = 1, @@ -659,7 +686,7 @@ class CV_EXPORTS_W KAZE : public Feature2D CV_WRAP static Ptr create(bool extended=false, bool upright=false, float threshold = 0.001f, int nOctaves = 4, int nOctaveLayers = 4, - int diffusivity = KAZE::DIFF_PM_G2); + KAZE::DiffusivityType diffusivity = KAZE::DIFF_PM_G2); CV_WRAP virtual void setExtended(bool extended) = 0; CV_WRAP virtual bool getExtended() const = 0; @@ -676,9 +703,9 @@ class CV_EXPORTS_W KAZE : public Feature2D CV_WRAP virtual void setNOctaveLayers(int octaveLayers) = 0; CV_WRAP virtual int getNOctaveLayers() const = 0; - CV_WRAP virtual void setDiffusivity(int diff) = 0; - CV_WRAP virtual int getDiffusivity() const = 0; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual void setDiffusivity(KAZE::DiffusivityType diff) = 0; + CV_WRAP virtual KAZE::DiffusivityType getDiffusivity() const = 0; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; /** @brief Class implementing the AKAZE keypoint detector and descriptor extractor, described in @cite ANB13. @@ -701,7 +728,7 @@ class CV_EXPORTS_W AKAZE : public Feature2D { public: // AKAZE descriptor type - enum + enum DescriptorType { DESCRIPTOR_KAZE_UPRIGHT = 2, ///< Upright descriptors, not invariant to rotation DESCRIPTOR_KAZE = 3, @@ -721,13 +748,13 @@ class CV_EXPORTS_W AKAZE : public Feature2D @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or DIFF_CHARBONNIER */ - CV_WRAP static Ptr create(int descriptor_type=AKAZE::DESCRIPTOR_MLDB, + CV_WRAP static Ptr create(AKAZE::DescriptorType descriptor_type = AKAZE::DESCRIPTOR_MLDB, int descriptor_size = 0, int descriptor_channels = 3, float threshold = 0.001f, int nOctaves = 4, - int nOctaveLayers = 4, int diffusivity = KAZE::DIFF_PM_G2); + int nOctaveLayers = 4, KAZE::DiffusivityType diffusivity = KAZE::DIFF_PM_G2); - CV_WRAP virtual void setDescriptorType(int dtype) = 0; - CV_WRAP virtual int getDescriptorType() const = 0; + CV_WRAP virtual void setDescriptorType(AKAZE::DescriptorType dtype) = 0; + CV_WRAP virtual AKAZE::DescriptorType getDescriptorType() const = 0; CV_WRAP virtual void setDescriptorSize(int dsize) = 0; CV_WRAP virtual int getDescriptorSize() const = 0; @@ -744,9 +771,9 @@ class CV_EXPORTS_W AKAZE : public Feature2D CV_WRAP virtual void setNOctaveLayers(int octaveLayers) = 0; CV_WRAP virtual int getNOctaveLayers() const = 0; - CV_WRAP virtual void setDiffusivity(int diff) = 0; - CV_WRAP virtual int getDiffusivity() const = 0; - CV_WRAP virtual String getDefaultName() const; + CV_WRAP virtual void setDiffusivity(KAZE::DiffusivityType diff) = 0; + CV_WRAP virtual KAZE::DiffusivityType getDiffusivity() const = 0; + CV_WRAP virtual String getDefaultName() const CV_OVERRIDE; }; //! @} features2d_main @@ -772,7 +799,7 @@ template<> struct Accumulator { typedef float Type; }; template struct CV_EXPORTS SL2 { - enum { normType = NORM_L2SQR }; + static const NormTypes normType = NORM_L2SQR; typedef T ValueType; typedef typename Accumulator::Type ResultType; @@ -788,7 +815,7 @@ struct CV_EXPORTS SL2 template struct L2 { - enum { normType = NORM_L2 }; + static const NormTypes normType = NORM_L2; typedef T ValueType; typedef typename Accumulator::Type ResultType; @@ -804,7 +831,7 @@ struct L2 template struct L1 { - enum { normType = NORM_L1 }; + static const NormTypes normType = NORM_L1; typedef T ValueType; typedef typename Accumulator::Type ResultType; @@ -829,7 +856,7 @@ an image set. class CV_EXPORTS_W DescriptorMatcher : public Algorithm { public: - enum + enum MatcherType { FLANNBASED = 1, BRUTEFORCE = 2, @@ -838,6 +865,7 @@ class CV_EXPORTS_W DescriptorMatcher : public Algorithm BRUTEFORCE_HAMMINGLUT = 5, BRUTEFORCE_SL2 = 6 }; + virtual ~DescriptorMatcher(); /** @brief Adds descriptors to train a CPU(trainDescCollectionis) or GPU(utrainDescCollectionis) descriptor @@ -856,11 +884,11 @@ class CV_EXPORTS_W DescriptorMatcher : public Algorithm /** @brief Clears the train descriptor collections. */ - CV_WRAP virtual void clear(); + CV_WRAP virtual void clear() CV_OVERRIDE; /** @brief Returns true if there are no train descriptors in the both collections. */ - CV_WRAP virtual bool empty() const; + CV_WRAP virtual bool empty() const CV_OVERRIDE; /** @brief Returns true if the descriptor matcher supports masking permissible matches. */ @@ -990,9 +1018,9 @@ class CV_EXPORTS_W DescriptorMatcher : public Algorithm } // Reads matcher object from a file node // see corresponding cv::Algorithm method - CV_WRAP virtual void read( const FileNode& ); + CV_WRAP virtual void read( const FileNode& ) CV_OVERRIDE; // Writes matcher object to a file storage - virtual void write( FileStorage& ) const; + virtual void write( FileStorage& ) const CV_OVERRIDE; /** @brief Clones the matcher. @@ -1015,7 +1043,7 @@ class CV_EXPORTS_W DescriptorMatcher : public Algorithm */ CV_WRAP static Ptr create( const String& descriptorMatcherType ); - CV_WRAP static Ptr create( int matcherType ); + CV_WRAP static Ptr create( const DescriptorMatcher::MatcherType& matcherType ); // see corresponding cv::Algorithm method @@ -1085,7 +1113,7 @@ class CV_EXPORTS_W BFMatcher : public DescriptorMatcher virtual ~BFMatcher() {} - virtual bool isMaskSupported() const { return true; } + virtual bool isMaskSupported() const CV_OVERRIDE { return true; } /** @brief Brute-force matcher create method. @param normType One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are @@ -1101,12 +1129,12 @@ class CV_EXPORTS_W BFMatcher : public DescriptorMatcher */ CV_WRAP static Ptr create( int normType=NORM_L2, bool crossCheck=false ) ; - virtual Ptr clone( bool emptyTrainData=false ) const; + virtual Ptr clone( bool emptyTrainData=false ) const CV_OVERRIDE; protected: virtual void knnMatchImpl( InputArray queryDescriptors, std::vector >& matches, int k, - InputArrayOfArrays masks=noArray(), bool compactResult=false ); + InputArrayOfArrays masks=noArray(), bool compactResult=false ) CV_OVERRIDE; virtual void radiusMatchImpl( InputArray queryDescriptors, std::vector >& matches, float maxDistance, - InputArrayOfArrays masks=noArray(), bool compactResult=false ); + InputArrayOfArrays masks=noArray(), bool compactResult=false ) CV_OVERRIDE; int normType; bool crossCheck; @@ -1127,29 +1155,29 @@ class CV_EXPORTS_W FlannBasedMatcher : public DescriptorMatcher CV_WRAP FlannBasedMatcher( const Ptr& indexParams=makePtr(), const Ptr& searchParams=makePtr() ); - virtual void add( InputArrayOfArrays descriptors ); - virtual void clear(); + virtual void add( InputArrayOfArrays descriptors ) CV_OVERRIDE; + virtual void clear() CV_OVERRIDE; // Reads matcher object from a file node - virtual void read( const FileNode& ); + virtual void read( const FileNode& ) CV_OVERRIDE; // Writes matcher object to a file storage - virtual void write( FileStorage& ) const; + virtual void write( FileStorage& ) const CV_OVERRIDE; - virtual void train(); - virtual bool isMaskSupported() const; + virtual void train() CV_OVERRIDE; + virtual bool isMaskSupported() const CV_OVERRIDE; CV_WRAP static Ptr create(); - virtual Ptr clone( bool emptyTrainData=false ) const; + virtual Ptr clone( bool emptyTrainData=false ) const CV_OVERRIDE; protected: static void convertToDMatches( const DescriptorCollection& descriptors, const Mat& indices, const Mat& distances, std::vector >& matches ); virtual void knnMatchImpl( InputArray queryDescriptors, std::vector >& matches, int k, - InputArrayOfArrays masks=noArray(), bool compactResult=false ); + InputArrayOfArrays masks=noArray(), bool compactResult=false ) CV_OVERRIDE; virtual void radiusMatchImpl( InputArray queryDescriptors, std::vector >& matches, float maxDistance, - InputArrayOfArrays masks=noArray(), bool compactResult=false ); + InputArrayOfArrays masks=noArray(), bool compactResult=false ) CV_OVERRIDE; Ptr indexParams; Ptr searchParams; @@ -1170,20 +1198,20 @@ class CV_EXPORTS_W FlannBasedMatcher : public DescriptorMatcher //! @addtogroup features2d_draw //! @{ -struct CV_EXPORTS DrawMatchesFlags +enum struct DrawMatchesFlags { - enum{ DEFAULT = 0, //!< Output image matrix will be created (Mat::create), - //!< i.e. existing memory of output image may be reused. - //!< Two source image, matches and single keypoints will be drawn. - //!< For each keypoint only the center point will be drawn (without - //!< the circle around keypoint with keypoint size and orientation). - DRAW_OVER_OUTIMG = 1, //!< Output image matrix will not be created (Mat::create). - //!< Matches will be drawn on existing content of output image. - NOT_DRAW_SINGLE_POINTS = 2, //!< Single keypoints will not be drawn. - DRAW_RICH_KEYPOINTS = 4 //!< For each keypoint the circle around keypoint with keypoint size and - //!< orientation will be drawn. - }; + DEFAULT = 0, //!< Output image matrix will be created (Mat::create), + //!< i.e. existing memory of output image may be reused. + //!< Two source image, matches and single keypoints will be drawn. + //!< For each keypoint only the center point will be drawn (without + //!< the circle around keypoint with keypoint size and orientation). + DRAW_OVER_OUTIMG = 1, //!< Output image matrix will not be created (Mat::create). + //!< Matches will be drawn on existing content of output image. + NOT_DRAW_SINGLE_POINTS = 2, //!< Single keypoints will not be drawn. + DRAW_RICH_KEYPOINTS = 4 //!< For each keypoint the circle around keypoint with keypoint size and + //!< orientation will be drawn. }; +CV_ENUM_FLAGS(DrawMatchesFlags) /** @brief Draws keypoints. @@ -1196,12 +1224,12 @@ output image. See possible flags bit values below. DrawMatchesFlags. See details above in drawMatches . @note -For Python API, flags are modified as cv2.DRAW_MATCHES_FLAGS_DEFAULT, -cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv2.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG, -cv2.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS +For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT, +cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG, +cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS */ CV_EXPORTS_W void drawKeypoints( InputArray image, const std::vector& keypoints, InputOutputArray outImage, - const Scalar& color=Scalar::all(-1), int flags=DrawMatchesFlags::DEFAULT ); + const Scalar& color=Scalar::all(-1), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT ); /** @brief Draws the found matches of keypoints from two images. @@ -1229,14 +1257,14 @@ CV_EXPORTS_W void drawMatches( InputArray img1, const std::vector& key InputArray img2, const std::vector& keypoints2, const std::vector& matches1to2, InputOutputArray outImg, const Scalar& matchColor=Scalar::all(-1), const Scalar& singlePointColor=Scalar::all(-1), - const std::vector& matchesMask=std::vector(), int flags=DrawMatchesFlags::DEFAULT ); + const std::vector& matchesMask=std::vector(), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT ); /** @overload */ CV_EXPORTS_AS(drawMatchesKnn) void drawMatches( InputArray img1, const std::vector& keypoints1, InputArray img2, const std::vector& keypoints2, const std::vector >& matches1to2, InputOutputArray outImg, const Scalar& matchColor=Scalar::all(-1), const Scalar& singlePointColor=Scalar::all(-1), - const std::vector >& matchesMask=std::vector >(), int flags=DrawMatchesFlags::DEFAULT ); + const std::vector >& matchesMask=std::vector >(), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT ); //! @} features2d_draw @@ -1326,8 +1354,8 @@ class CV_EXPORTS_W BOWKMeansTrainer : public BOWTrainer virtual ~BOWKMeansTrainer(); // Returns trained vocabulary (i.e. cluster centers). - CV_WRAP virtual Mat cluster() const; - CV_WRAP virtual Mat cluster( const Mat& descriptors ) const; + CV_WRAP virtual Mat cluster() const CV_OVERRIDE; + CV_WRAP virtual Mat cluster( const Mat& descriptors ) const CV_OVERRIDE; protected: diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/features2d/features2d.hpp b/lib/3rdParty/OpenCV/include/opencv2/features2d/features2d.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/features2d/features2d.hpp rename to lib/3rdParty/OpenCV/include/opencv2/features2d/features2d.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/features2d/hal/interface.h b/lib/3rdParty/OpenCV/include/opencv2/features2d/hal/interface.h new file mode 100644 index 000000000..bcc6577c1 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/features2d/hal/interface.h @@ -0,0 +1,33 @@ +#ifndef OPENCV_FEATURE2D_HAL_INTERFACE_H +#define OPENCV_FEATURE2D_HAL_INTERFACE_H + +#include "opencv2/core/cvdef.h" +//! @addtogroup featrure2d_hal_interface +//! @{ + +//! @name Fast feature detector types +//! @sa cv::FastFeatureDetector +//! @{ +#define CV_HAL_TYPE_5_8 0 +#define CV_HAL_TYPE_7_12 1 +#define CV_HAL_TYPE_9_16 2 +//! @} + +//! @name Key point +//! @sa cv::KeyPoint +//! @{ +struct CV_EXPORTS cvhalKeyPoint +{ + float x; + float y; + float size; + float angle; + float response; + int octave; + int class_id; +}; +//! @} + +//! @} + +#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann.hpp b/lib/3rdParty/OpenCV/include/opencv2/flann.hpp similarity index 85% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann.hpp rename to lib/3rdParty/OpenCV/include/opencv2/flann.hpp index 22c6ffcf1..fec3d067c 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/flann.hpp @@ -103,6 +103,58 @@ using ::cvflann::KL_Divergence; /** @brief The FLANN nearest neighbor index class. This class is templated with the type of elements for which the index is built. + +`Distance` functor specifies the metric to be used to calculate the distance between two points. +There are several `Distance` functors that are readily available: + +@link cvflann::L2_Simple cv::flann::L2_Simple @endlink- Squared Euclidean distance functor. +This is the simpler, unrolled version. This is preferable for very low dimensionality data (eg 3D points) + +@link cvflann::L2 cv::flann::L2 @endlink- Squared Euclidean distance functor, optimized version. + +@link cvflann::L1 cv::flann::L1 @endlink - Manhattan distance functor, optimized version. + +@link cvflann::MinkowskiDistance cv::flann::MinkowskiDistance @endlink - The Minkowsky distance functor. +This is highly optimised with loop unrolling. +The computation of squared root at the end is omitted for efficiency. + +@link cvflann::MaxDistance cv::flann::MaxDistance @endlink - The max distance functor. It computes the +maximum distance between two vectors. This distance is not a valid kdtree distance, it's not +dimensionwise additive. + +@link cvflann::HammingLUT cv::flann::HammingLUT @endlink - %Hamming distance functor. It counts the bit +differences between two strings using a lookup table implementation. + +@link cvflann::Hamming cv::flann::Hamming @endlink - %Hamming distance functor. Population count is +performed using library calls, if available. Lookup table implementation is used as a fallback. + +@link cvflann::Hamming2 cv::flann::Hamming2 @endlink- %Hamming distance functor. Population count is +implemented in 12 arithmetic operations (one of which is multiplication). + +@link cvflann::HistIntersectionDistance cv::flann::HistIntersectionDistance @endlink - The histogram +intersection distance functor. + +@link cvflann::HellingerDistance cv::flann::HellingerDistance @endlink - The Hellinger distance functor. + +@link cvflann::ChiSquareDistance cv::flann::ChiSquareDistance @endlink - The chi-square distance functor. + +@link cvflann::KL_Divergence cv::flann::KL_Divergence @endlink - The Kullback-Leibler divergence functor. + +Although the provided implementations cover a vast range of cases, it is also possible to use +a custom implementation. The distance functor is a class whose `operator()` computes the distance +between two features. If the distance is also a kd-tree compatible distance, it should also provide an +`accum_dist()` method that computes the distance between individual feature dimensions. + +In addition to `operator()` and `accum_dist()`, a distance functor should also define the +`ElementType` and the `ResultType` as the types of the elements it operates on and the type of the +result it computes. If a distance functor can be used as a kd-tree distance (meaning that the full +distance between a pair of features can be accumulated from the partial distances between the +individual dimensions) a typedef `is_kdtree_distance` should be present inside the distance functor. +If the distance is not a kd-tree distance, but it's a distance in a vector space (the individual +dimensions of the elements it operates on can be accessed independently) a typedef +`is_vector_space_distance` should be defined inside the functor. If neither typedef is defined, the +distance is assumed to be a metric distance and will only be used with indexes operating on +generic metric distances. */ template class GenericIndex @@ -217,6 +269,17 @@ class GenericIndex std::vector& dists, int knn, const ::cvflann::SearchParams& params); void knnSearch(const Mat& queries, Mat& indices, Mat& dists, int knn, const ::cvflann::SearchParams& params); + /** @brief Performs a radius nearest neighbor search for a given query point using the index. + + @param query The query point. + @param indices Vector that will contain the indices of the nearest neighbors found. + @param dists Vector that will contain the distances to the nearest neighbors found. It has the same + number of elements as indices. + @param radius The search radius. + @param params SearchParams + + This function returns the number of nearest neighbors found. + */ int radiusSearch(const std::vector& query, std::vector& indices, std::vector& dists, DistanceType radius, const ::cvflann::SearchParams& params); int radiusSearch(const Mat& query, Mat& indices, Mat& dists, diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/all_indices.h b/lib/3rdParty/OpenCV/include/opencv2/flann/all_indices.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/all_indices.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/all_indices.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/allocator.h b/lib/3rdParty/OpenCV/include/opencv2/flann/allocator.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/allocator.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/allocator.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/any.h b/lib/3rdParty/OpenCV/include/opencv2/flann/any.h similarity index 83% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/any.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/any.h index e829162bb..5b57aa3df 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/any.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/any.h @@ -54,50 +54,50 @@ struct base_any_policy template struct typed_base_any_policy : base_any_policy { - virtual ::size_t get_size() { return sizeof(T); } - virtual const std::type_info& type() { return typeid(T); } + virtual ::size_t get_size() CV_OVERRIDE { return sizeof(T); } + virtual const std::type_info& type() CV_OVERRIDE { return typeid(T); } }; template -struct small_any_policy : typed_base_any_policy +struct small_any_policy CV_FINAL : typed_base_any_policy { - virtual void static_delete(void**) { } - virtual void copy_from_value(void const* src, void** dest) + virtual void static_delete(void**) CV_OVERRIDE { } + virtual void copy_from_value(void const* src, void** dest) CV_OVERRIDE { new (dest) T(* reinterpret_cast(src)); } - virtual void clone(void* const* src, void** dest) { *dest = *src; } - virtual void move(void* const* src, void** dest) { *dest = *src; } - virtual void* get_value(void** src) { return reinterpret_cast(src); } - virtual const void* get_value(void* const * src) { return reinterpret_cast(src); } - virtual void print(std::ostream& out, void* const* src) { out << *reinterpret_cast(src); } + virtual void clone(void* const* src, void** dest) CV_OVERRIDE { *dest = *src; } + virtual void move(void* const* src, void** dest) CV_OVERRIDE { *dest = *src; } + virtual void* get_value(void** src) CV_OVERRIDE { return reinterpret_cast(src); } + virtual const void* get_value(void* const * src) CV_OVERRIDE { return reinterpret_cast(src); } + virtual void print(std::ostream& out, void* const* src) CV_OVERRIDE { out << *reinterpret_cast(src); } }; template -struct big_any_policy : typed_base_any_policy +struct big_any_policy CV_FINAL : typed_base_any_policy { - virtual void static_delete(void** x) + virtual void static_delete(void** x) CV_OVERRIDE { if (* x) delete (* reinterpret_cast(x)); *x = NULL; } - virtual void copy_from_value(void const* src, void** dest) + virtual void copy_from_value(void const* src, void** dest) CV_OVERRIDE { *dest = new T(*reinterpret_cast(src)); } - virtual void clone(void* const* src, void** dest) + virtual void clone(void* const* src, void** dest) CV_OVERRIDE { *dest = new T(**reinterpret_cast(src)); } - virtual void move(void* const* src, void** dest) + virtual void move(void* const* src, void** dest) CV_OVERRIDE { (*reinterpret_cast(dest))->~T(); **reinterpret_cast(dest) = **reinterpret_cast(src); } - virtual void* get_value(void** src) { return *src; } - virtual const void* get_value(void* const * src) { return *src; } - virtual void print(std::ostream& out, void* const* src) { out << *reinterpret_cast(*src); } + virtual void* get_value(void** src) CV_OVERRIDE { return *src; } + virtual const void* get_value(void* const * src) CV_OVERRIDE { return *src; } + virtual void print(std::ostream& out, void* const* src) CV_OVERRIDE { out << *reinterpret_cast(*src); } }; template<> inline void big_any_policy::print(std::ostream& out, void* const* src) diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/autotuned_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/autotuned_index.h similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/autotuned_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/autotuned_index.h index e9abbf721..2fbc6c9af 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/autotuned_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/autotuned_index.h @@ -100,7 +100,7 @@ class AutotunedIndex : public NNIndex /** * Method responsible with building the index. */ - virtual void buildIndex() + virtual void buildIndex() CV_OVERRIDE { std::ostringstream stream; bestParams_ = estimateBuildParams(); @@ -124,7 +124,7 @@ class AutotunedIndex : public NNIndex /** * Saves the index to a stream */ - virtual void saveIndex(FILE* stream) + virtual void saveIndex(FILE* stream) CV_OVERRIDE { save_value(stream, (int)bestIndex_->getType()); bestIndex_->saveIndex(stream); @@ -134,7 +134,7 @@ class AutotunedIndex : public NNIndex /** * Loads the index from a stream */ - virtual void loadIndex(FILE* stream) + virtual void loadIndex(FILE* stream) CV_OVERRIDE { int index_type; @@ -151,7 +151,7 @@ class AutotunedIndex : public NNIndex /** * Method that searches for nearest-neighbors */ - virtual void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + virtual void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { int checks = get_param(searchParams,"checks",FLANN_CHECKS_AUTOTUNED); if (checks == FLANN_CHECKS_AUTOTUNED) { @@ -163,7 +163,7 @@ class AutotunedIndex : public NNIndex } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return bestIndex_->getParameters(); } @@ -182,7 +182,7 @@ class AutotunedIndex : public NNIndex /** * Number of features in this index. */ - virtual size_t size() const + virtual size_t size() const CV_OVERRIDE { return bestIndex_->size(); } @@ -190,7 +190,7 @@ class AutotunedIndex : public NNIndex /** * The length of each vector in this index. */ - virtual size_t veclen() const + virtual size_t veclen() const CV_OVERRIDE { return bestIndex_->veclen(); } @@ -198,7 +198,7 @@ class AutotunedIndex : public NNIndex /** * The amount of memory (in bytes) this index uses. */ - virtual int usedMemory() const + virtual int usedMemory() const CV_OVERRIDE { return bestIndex_->usedMemory(); } @@ -206,7 +206,7 @@ class AutotunedIndex : public NNIndex /** * Algorithm name */ - virtual flann_algorithm_t getType() const + virtual flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_AUTOTUNED; } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/composite_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/composite_index.h similarity index 93% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/composite_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/composite_index.h index 527ca1ad7..5e12a177b 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/composite_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/composite_index.h @@ -101,7 +101,7 @@ class CompositeIndex : public NNIndex /** * @return The index type */ - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_COMPOSITE; } @@ -109,7 +109,7 @@ class CompositeIndex : public NNIndex /** * @return Size of the index */ - size_t size() const + size_t size() const CV_OVERRIDE { return kdtree_index_->size(); } @@ -117,7 +117,7 @@ class CompositeIndex : public NNIndex /** * \returns The dimensionality of the features in this index. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return kdtree_index_->veclen(); } @@ -125,7 +125,7 @@ class CompositeIndex : public NNIndex /** * \returns The amount of memory (in bytes) used by the index. */ - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return kmeans_index_->usedMemory() + kdtree_index_->usedMemory(); } @@ -133,7 +133,7 @@ class CompositeIndex : public NNIndex /** * \brief Builds the index */ - void buildIndex() + void buildIndex() CV_OVERRIDE { Logger::info("Building kmeans tree...\n"); kmeans_index_->buildIndex(); @@ -145,7 +145,7 @@ class CompositeIndex : public NNIndex * \brief Saves the index to a stream * \param stream The stream to save the index to */ - void saveIndex(FILE* stream) + void saveIndex(FILE* stream) CV_OVERRIDE { kmeans_index_->saveIndex(stream); kdtree_index_->saveIndex(stream); @@ -155,7 +155,7 @@ class CompositeIndex : public NNIndex * \brief Loads the index from a stream * \param stream The stream from which the index is loaded */ - void loadIndex(FILE* stream) + void loadIndex(FILE* stream) CV_OVERRIDE { kmeans_index_->loadIndex(stream); kdtree_index_->loadIndex(stream); @@ -164,7 +164,7 @@ class CompositeIndex : public NNIndex /** * \returns The index parameters */ - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return index_params_; } @@ -172,7 +172,7 @@ class CompositeIndex : public NNIndex /** * \brief Method that searches for nearest-neighbours */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { kmeans_index_->findNeighbors(result, vec, searchParams); kdtree_index_->findNeighbors(result, vec, searchParams); diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/config.h b/lib/3rdParty/OpenCV/include/opencv2/flann/config.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/config.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/config.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/defines.h b/lib/3rdParty/OpenCV/include/opencv2/flann/defines.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/defines.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/defines.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/dist.h b/lib/3rdParty/OpenCV/include/opencv2/flann/dist.h similarity index 99% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/dist.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/dist.h index 9e2c5129f..2bb4fc947 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/dist.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/dist.h @@ -47,7 +47,7 @@ typedef unsigned __int64 uint64_t; # include #endif -#ifdef __ARM_NEON__ +#if defined(__ARM_NEON__) && !defined(__CUDACC__) # include "arm_neon.h" #endif @@ -425,7 +425,7 @@ struct Hamming ResultType operator()(Iterator1 a, Iterator2 b, size_t size, ResultType /*worst_dist*/ = -1) const { ResultType result = 0; -#ifdef __ARM_NEON__ +#if defined(__ARM_NEON__) && !defined(__CUDACC__) { uint32x4_t bits = vmovq_n_u32(0); for (size_t i = 0; i < size; i += 16) { @@ -462,10 +462,9 @@ struct Hamming } } #else // NO NEON and NOT GNUC - typedef unsigned long long pop_t; HammingLUT lut; result = lut(reinterpret_cast (a), - reinterpret_cast (b), size * sizeof(pop_t)); + reinterpret_cast (b), size); #endif return result; } @@ -843,7 +842,7 @@ typename Distance::ResultType ensureSquareDistance( typename Distance::ResultTyp /* * ...and a template to ensure the user that he will process the normal distance, - * and not squared distance, without loosing processing time calling sqrt(ensureSquareDistance) + * and not squared distance, without losing processing time calling sqrt(ensureSquareDistance) * that will result in doing actually sqrt(dist*dist) for L1 distance for instance. */ template diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/dummy.h b/lib/3rdParty/OpenCV/include/opencv2/flann/dummy.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/dummy.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/dummy.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/dynamic_bitset.h b/lib/3rdParty/OpenCV/include/opencv2/flann/dynamic_bitset.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/dynamic_bitset.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/dynamic_bitset.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/flann.hpp b/lib/3rdParty/OpenCV/include/opencv2/flann/flann.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/flann.hpp rename to lib/3rdParty/OpenCV/include/opencv2/flann/flann.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/flann_base.hpp b/lib/3rdParty/OpenCV/include/opencv2/flann/flann_base.hpp similarity index 94% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/flann_base.hpp rename to lib/3rdParty/OpenCV/include/opencv2/flann/flann_base.hpp index f3fd4fb20..0ffb857cc 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/flann_base.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/flann_base.hpp @@ -128,7 +128,7 @@ class Index : public NNIndex /** * Builds the index. */ - void buildIndex() + void buildIndex() CV_OVERRIDE { if (!loaded_) { nnIndex_->buildIndex(); @@ -150,7 +150,7 @@ class Index : public NNIndex * \brief Saves the index to a stream * \param stream The stream to save the index to */ - virtual void saveIndex(FILE* stream) + virtual void saveIndex(FILE* stream) CV_OVERRIDE { nnIndex_->saveIndex(stream); } @@ -159,7 +159,7 @@ class Index : public NNIndex * \brief Loads the index from a stream * \param stream The stream from which the index is loaded */ - virtual void loadIndex(FILE* stream) + virtual void loadIndex(FILE* stream) CV_OVERRIDE { nnIndex_->loadIndex(stream); } @@ -167,7 +167,7 @@ class Index : public NNIndex /** * \returns number of features in this index. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return nnIndex_->veclen(); } @@ -175,7 +175,7 @@ class Index : public NNIndex /** * \returns The dimensionality of the features in this index. */ - size_t size() const + size_t size() const CV_OVERRIDE { return nnIndex_->size(); } @@ -183,7 +183,7 @@ class Index : public NNIndex /** * \returns The index type (kdtree, kmeans,...) */ - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return nnIndex_->getType(); } @@ -191,7 +191,7 @@ class Index : public NNIndex /** * \returns The amount of memory (in bytes) used by the index. */ - virtual int usedMemory() const + virtual int usedMemory() const CV_OVERRIDE { return nnIndex_->usedMemory(); } @@ -200,7 +200,7 @@ class Index : public NNIndex /** * \returns The index parameters */ - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return nnIndex_->getParameters(); } @@ -213,7 +213,7 @@ class Index : public NNIndex * \param[in] knn Number of nearest neighbors to return * \param[in] params Search parameters */ - void knnSearch(const Matrix& queries, Matrix& indices, Matrix& dists, int knn, const SearchParams& params) + void knnSearch(const Matrix& queries, Matrix& indices, Matrix& dists, int knn, const SearchParams& params) CV_OVERRIDE { nnIndex_->knnSearch(queries, indices, dists, knn, params); } @@ -227,7 +227,7 @@ class Index : public NNIndex * \param[in] params Search parameters * \returns Number of neighbors found */ - int radiusSearch(const Matrix& query, Matrix& indices, Matrix& dists, float radius, const SearchParams& params) + int radiusSearch(const Matrix& query, Matrix& indices, Matrix& dists, float radius, const SearchParams& params) CV_OVERRIDE { return nnIndex_->radiusSearch(query, indices, dists, radius, params); } @@ -235,7 +235,7 @@ class Index : public NNIndex /** * \brief Method that searches for nearest-neighbours */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { nnIndex_->findNeighbors(result, vec, searchParams); } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/general.h b/lib/3rdParty/OpenCV/include/opencv2/flann/general.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/general.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/general.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/ground_truth.h b/lib/3rdParty/OpenCV/include/opencv2/flann/ground_truth.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/ground_truth.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/ground_truth.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/heap.h b/lib/3rdParty/OpenCV/include/opencv2/flann/heap.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/heap.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/heap.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/hierarchical_clustering_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/hierarchical_clustering_index.h similarity index 98% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/hierarchical_clustering_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/hierarchical_clustering_index.h index 9d890d4d6..2a947dab6 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/hierarchical_clustering_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/hierarchical_clustering_index.h @@ -435,7 +435,7 @@ class HierarchicalClusteringIndex : public NNIndex /** * Returns size of index. */ - size_t size() const + size_t size() const CV_OVERRIDE { return size_; } @@ -443,7 +443,7 @@ class HierarchicalClusteringIndex : public NNIndex /** * Returns the length of an index feature. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return veclen_; } @@ -453,7 +453,7 @@ class HierarchicalClusteringIndex : public NNIndex * Computes the inde memory usage * Returns: memory used by the index */ - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return pool.usedMemory+pool.wastedMemory+memoryCounter; } @@ -461,7 +461,7 @@ class HierarchicalClusteringIndex : public NNIndex /** * Builds the index */ - void buildIndex() + void buildIndex() CV_OVERRIDE { if (branching_<2) { throw FLANNException("Branching factor must be at least 2"); @@ -480,13 +480,13 @@ class HierarchicalClusteringIndex : public NNIndex } - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_HIERARCHICAL; } - void saveIndex(FILE* stream) + void saveIndex(FILE* stream) CV_OVERRIDE { save_value(stream, branching_); save_value(stream, trees_); @@ -501,7 +501,7 @@ class HierarchicalClusteringIndex : public NNIndex } - void loadIndex(FILE* stream) + void loadIndex(FILE* stream) CV_OVERRIDE { free_elements(); @@ -544,7 +544,7 @@ class HierarchicalClusteringIndex : public NNIndex * vec = the vector for which to search the nearest neighbors * searchParams = parameters that influence the search algorithm (checks) */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { int maxChecks = get_param(searchParams,"checks",32); @@ -569,7 +569,7 @@ class HierarchicalClusteringIndex : public NNIndex } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return params; } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/index_testing.h b/lib/3rdParty/OpenCV/include/opencv2/flann/index_testing.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/index_testing.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/index_testing.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/kdtree_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/kdtree_index.h similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/kdtree_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/kdtree_index.h index 3f6ee0174..c233515b4 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/kdtree_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/kdtree_index.h @@ -120,7 +120,7 @@ class KDTreeIndex : public NNIndex /** * Builds the index */ - void buildIndex() + void buildIndex() CV_OVERRIDE { /* Construct the randomized trees. */ for (int i = 0; i < trees_; i++) { @@ -136,13 +136,13 @@ class KDTreeIndex : public NNIndex } - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_KDTREE; } - void saveIndex(FILE* stream) + void saveIndex(FILE* stream) CV_OVERRIDE { save_value(stream, trees_); for (int i=0; i - void loadIndex(FILE* stream) + void loadIndex(FILE* stream) CV_OVERRIDE { load_value(stream, trees_); if (tree_roots_!=NULL) { @@ -170,7 +170,7 @@ class KDTreeIndex : public NNIndex /** * Returns size of index. */ - size_t size() const + size_t size() const CV_OVERRIDE { return size_; } @@ -178,7 +178,7 @@ class KDTreeIndex : public NNIndex /** * Returns the length of an index feature. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return veclen_; } @@ -187,7 +187,7 @@ class KDTreeIndex : public NNIndex * Computes the inde memory usage * Returns: memory used by the index */ - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return int(pool_.usedMemory+pool_.wastedMemory+dataset_.rows*sizeof(int)); // pool memory and vind array memory } @@ -201,7 +201,7 @@ class KDTreeIndex : public NNIndex * vec = the vector for which to search the nearest neighbors * maxCheck = the maximum number of restarts (in a best-bin-first manner) */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { int maxChecks = get_param(searchParams,"checks", 32); float epsError = 1+get_param(searchParams,"eps",0.0f); @@ -214,7 +214,7 @@ class KDTreeIndex : public NNIndex } } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return index_params_; } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/kdtree_single_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/kdtree_single_index.h similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/kdtree_single_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/kdtree_single_index.h index ef1539200..22a28d0c1 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/kdtree_single_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/kdtree_single_index.h @@ -114,7 +114,7 @@ class KDTreeSingleIndex : public NNIndex /** * Builds the index */ - void buildIndex() + void buildIndex() CV_OVERRIDE { computeBoundingBox(root_bbox_); root_node_ = divideTree(0, (int)size_, root_bbox_ ); // construct the tree @@ -133,13 +133,13 @@ class KDTreeSingleIndex : public NNIndex } } - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_KDTREE_SINGLE; } - void saveIndex(FILE* stream) + void saveIndex(FILE* stream) CV_OVERRIDE { save_value(stream, size_); save_value(stream, dim_); @@ -154,7 +154,7 @@ class KDTreeSingleIndex : public NNIndex } - void loadIndex(FILE* stream) + void loadIndex(FILE* stream) CV_OVERRIDE { load_value(stream, size_); load_value(stream, dim_); @@ -179,7 +179,7 @@ class KDTreeSingleIndex : public NNIndex /** * Returns size of index. */ - size_t size() const + size_t size() const CV_OVERRIDE { return size_; } @@ -187,7 +187,7 @@ class KDTreeSingleIndex : public NNIndex /** * Returns the length of an index feature. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return dim_; } @@ -196,7 +196,7 @@ class KDTreeSingleIndex : public NNIndex * Computes the inde memory usage * Returns: memory used by the index */ - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return (int)(pool_.usedMemory+pool_.wastedMemory+dataset_.rows*sizeof(int)); // pool memory and vind array memory } @@ -210,7 +210,7 @@ class KDTreeSingleIndex : public NNIndex * \param[in] knn Number of nearest neighbors to return * \param[in] params Search parameters */ - void knnSearch(const Matrix& queries, Matrix& indices, Matrix& dists, int knn, const SearchParams& params) + void knnSearch(const Matrix& queries, Matrix& indices, Matrix& dists, int knn, const SearchParams& params) CV_OVERRIDE { assert(queries.cols == veclen()); assert(indices.rows >= queries.rows); @@ -225,7 +225,7 @@ class KDTreeSingleIndex : public NNIndex } } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return index_params_; } @@ -239,7 +239,7 @@ class KDTreeSingleIndex : public NNIndex * vec = the vector for which to search the nearest neighbors * maxCheck = the maximum number of restarts (in a best-bin-first manner) */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { float epsError = 1+get_param(searchParams,"eps",0.0f); diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/kmeans_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/kmeans_index.h similarity index 95% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/kmeans_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/kmeans_index.h index 98ad0c86e..fe91dddd1 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/kmeans_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/kmeans_index.h @@ -266,7 +266,7 @@ class KMeansIndex : public NNIndex public: - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_KMEANS; } @@ -276,30 +276,27 @@ class KMeansIndex : public NNIndex public: KMeansDistanceComputer(Distance _distance, const Matrix& _dataset, const int _branching, const int* _indices, const Matrix& _dcenters, const size_t _veclen, - int* _count, int* _belongs_to, std::vector& _radiuses, bool& _converged, cv::Mutex& _mtx) + std::vector &_new_centroids, std::vector &_sq_dists) : distance(_distance) , dataset(_dataset) , branching(_branching) , indices(_indices) , dcenters(_dcenters) , veclen(_veclen) - , count(_count) - , belongs_to(_belongs_to) - , radiuses(_radiuses) - , converged(_converged) - , mtx(_mtx) + , new_centroids(_new_centroids) + , sq_dists(_sq_dists) { } - void operator()(const cv::Range& range) const + void operator()(const cv::Range& range) const CV_OVERRIDE { const int begin = range.start; const int end = range.end; for( int i = begin; inew_sq_dist) { @@ -307,17 +304,8 @@ class KMeansIndex : public NNIndex sq_dist = new_sq_dist; } } - if (sq_dist > radiuses[new_centroid]) { - radiuses[new_centroid] = sq_dist; - } - if (new_centroid != belongs_to[i]) { - count[belongs_to[i]]--; - count[new_centroid]++; - belongs_to[i] = new_centroid; - mtx.lock(); - converged = false; - mtx.unlock(); - } + sq_dists[i] = sq_dist; + new_centroids[i] = new_centroid; } } @@ -328,11 +316,8 @@ class KMeansIndex : public NNIndex const int* indices; const Matrix& dcenters; const size_t veclen; - int* count; - int* belongs_to; - std::vector& radiuses; - bool& converged; - cv::Mutex& mtx; + std::vector &new_centroids; + std::vector &sq_dists; KMeansDistanceComputer& operator=( const KMeansDistanceComputer & ) { return *this; } }; @@ -398,7 +383,7 @@ class KMeansIndex : public NNIndex /** * Returns size of index. */ - size_t size() const + size_t size() const CV_OVERRIDE { return size_; } @@ -406,7 +391,7 @@ class KMeansIndex : public NNIndex /** * Returns the length of an index feature. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return veclen_; } @@ -421,7 +406,7 @@ class KMeansIndex : public NNIndex * Computes the inde memory usage * Returns: memory used by the index */ - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return pool_.usedMemory+pool_.wastedMemory+memoryCounter_; } @@ -429,7 +414,7 @@ class KMeansIndex : public NNIndex /** * Builds the index */ - void buildIndex() + void buildIndex() CV_OVERRIDE { if (branching_<2) { throw FLANNException("Branching factor must be at least 2"); @@ -448,7 +433,7 @@ class KMeansIndex : public NNIndex } - void saveIndex(FILE* stream) + void saveIndex(FILE* stream) CV_OVERRIDE { save_value(stream, branching_); save_value(stream, iterations_); @@ -460,7 +445,7 @@ class KMeansIndex : public NNIndex } - void loadIndex(FILE* stream) + void loadIndex(FILE* stream) CV_OVERRIDE { load_value(stream, branching_); load_value(stream, iterations_); @@ -495,7 +480,7 @@ class KMeansIndex : public NNIndex * vec = the vector for which to search the nearest neighbors * searchParams = parameters that influence the search algorithm (checks, cb_index) */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& searchParams) CV_OVERRIDE { int maxChecks = get_param(searchParams,"checks",32); @@ -554,7 +539,7 @@ class KMeansIndex : public NNIndex return clusterCount; } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return index_params_; } @@ -726,7 +711,7 @@ class KMeansIndex : public NNIndex } cv::AutoBuffer centers_idx_buf(branching); - int* centers_idx = (int*)centers_idx_buf; + int* centers_idx = centers_idx_buf.data(); int centers_length; (this->*chooseCenters)(branching, indices, indices_length, centers_idx, centers_length); @@ -739,7 +724,7 @@ class KMeansIndex : public NNIndex cv::AutoBuffer dcenters_buf(branching*veclen_); - Matrix dcenters((double*)dcenters_buf,branching,veclen_); + Matrix dcenters(dcenters_buf.data(), branching, veclen_); for (int i=0; i std::vector radiuses(branching); cv::AutoBuffer count_buf(branching); - int* count = (int*)count_buf; + int* count = count_buf.data(); for (int i=0; i // assign points to clusters cv::AutoBuffer belongs_to_buf(indices_length); - int* belongs_to = (int*)belongs_to_buf; + int* belongs_to = belongs_to_buf.data(); for (int i=0; i } } + std::vector new_centroids(indices_length); + std::vector sq_dists(indices_length); + // reassign points to clusters - cv::Mutex mtx; - KMeansDistanceComputer invoker(distance_, dataset_, branching, indices, dcenters, veclen_, count, belongs_to, radiuses, converged, mtx); + KMeansDistanceComputer invoker(distance_, dataset_, branching, indices, dcenters, veclen_, new_centroids, sq_dists); parallel_for_(cv::Range(0, (int)indices_length), invoker); + for (int i=0; i < (int)indices_length; ++i) { + DistanceType sq_dist(sq_dists[i]); + int new_centroid(new_centroids[i]); + if (sq_dist > radiuses[new_centroid]) { + radiuses[new_centroid] = sq_dist; + } + if (new_centroid != belongs_to[i]) { + count[belongs_to[i]]--; + count[new_centroid]++; + belongs_to[i] = new_centroid; + converged = false; + } + } + for (int i=0; i /** - * Helper function the descends in the hierarchical k-means tree by spliting those clusters that minimize + * Helper function the descends in the hierarchical k-means tree by splitting those clusters that minimize * the overall variance of the clustering. * Params: * root = root node diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/linear_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/linear_index.h similarity index 89% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/linear_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/linear_index.h index 5aa7a5cfa..ca3f44d0c 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/linear_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/linear_index.h @@ -63,47 +63,47 @@ class LinearIndex : public NNIndex LinearIndex(const LinearIndex&); LinearIndex& operator=(const LinearIndex&); - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_LINEAR; } - size_t size() const + size_t size() const CV_OVERRIDE { return dataset_.rows; } - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return dataset_.cols; } - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return 0; } - void buildIndex() + void buildIndex() CV_OVERRIDE { /* nothing to do here for linear search */ } - void saveIndex(FILE*) + void saveIndex(FILE*) CV_OVERRIDE { /* nothing to do here for linear search */ } - void loadIndex(FILE*) + void loadIndex(FILE*) CV_OVERRIDE { /* nothing to do here for linear search */ index_params_["algorithm"] = getType(); } - void findNeighbors(ResultSet& resultSet, const ElementType* vec, const SearchParams& /*searchParams*/) + void findNeighbors(ResultSet& resultSet, const ElementType* vec, const SearchParams& /*searchParams*/) CV_OVERRIDE { ElementType* data = dataset_.data; for (size_t i = 0; i < dataset_.rows; ++i, data += dataset_.cols) { @@ -112,7 +112,7 @@ class LinearIndex : public NNIndex } } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return index_params_; } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/logger.h b/lib/3rdParty/OpenCV/include/opencv2/flann/logger.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/logger.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/logger.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/lsh_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/lsh_index.h similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/lsh_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/lsh_index.h index 4d4670ea5..42afe892a 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/lsh_index.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/lsh_index.h @@ -107,7 +107,7 @@ class LshIndex : public NNIndex /** * Builds the index */ - void buildIndex() + void buildIndex() CV_OVERRIDE { tables_.resize(table_number_); for (unsigned int i = 0; i < table_number_; ++i) { @@ -119,13 +119,13 @@ class LshIndex : public NNIndex } } - flann_algorithm_t getType() const + flann_algorithm_t getType() const CV_OVERRIDE { return FLANN_INDEX_LSH; } - void saveIndex(FILE* stream) + void saveIndex(FILE* stream) CV_OVERRIDE { save_value(stream,table_number_); save_value(stream,key_size_); @@ -133,7 +133,7 @@ class LshIndex : public NNIndex save_value(stream, dataset_); } - void loadIndex(FILE* stream) + void loadIndex(FILE* stream) CV_OVERRIDE { load_value(stream, table_number_); load_value(stream, key_size_); @@ -151,7 +151,7 @@ class LshIndex : public NNIndex /** * Returns size of index. */ - size_t size() const + size_t size() const CV_OVERRIDE { return dataset_.rows; } @@ -159,7 +159,7 @@ class LshIndex : public NNIndex /** * Returns the length of an index feature. */ - size_t veclen() const + size_t veclen() const CV_OVERRIDE { return feature_size_; } @@ -168,13 +168,13 @@ class LshIndex : public NNIndex * Computes the index memory usage * Returns: memory used by the index */ - int usedMemory() const + int usedMemory() const CV_OVERRIDE { return (int)(dataset_.rows * sizeof(int)); } - IndexParams getParameters() const + IndexParams getParameters() const CV_OVERRIDE { return index_params_; } @@ -187,7 +187,7 @@ class LshIndex : public NNIndex * \param[in] knn Number of nearest neighbors to return * \param[in] params Search parameters */ - virtual void knnSearch(const Matrix& queries, Matrix& indices, Matrix& dists, int knn, const SearchParams& params) + virtual void knnSearch(const Matrix& queries, Matrix& indices, Matrix& dists, int knn, const SearchParams& params) CV_OVERRIDE { assert(queries.cols == veclen()); assert(indices.rows >= queries.rows); @@ -217,7 +217,7 @@ class LshIndex : public NNIndex * vec = the vector for which to search the nearest neighbors * maxCheck = the maximum number of restarts (in a best-bin-first manner) */ - void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& /*searchParams*/) + void findNeighbors(ResultSet& result, const ElementType* vec, const SearchParams& /*searchParams*/) CV_OVERRIDE { getNeighbors(vec, result); } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/lsh_table.h b/lib/3rdParty/OpenCV/include/opencv2/flann/lsh_table.h similarity index 99% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/lsh_table.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/lsh_table.h index 1db9960f8..b07a9d528 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/lsh_table.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/lsh_table.h @@ -159,7 +159,7 @@ class LshTable LshTable(unsigned int feature_size, unsigned int key_size) { feature_size_ = feature_size; - (void)key_size; + CV_UNUSED(key_size); std::cerr << "LSH is not implemented for that type" << std::endl; assert(0); } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/matrix.h b/lib/3rdParty/OpenCV/include/opencv2/flann/matrix.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/matrix.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/matrix.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/miniflann.hpp b/lib/3rdParty/OpenCV/include/opencv2/flann/miniflann.hpp similarity index 91% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/miniflann.hpp rename to lib/3rdParty/OpenCV/include/opencv2/flann/miniflann.hpp index bda2ed498..2590ad76f 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/miniflann.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/miniflann.hpp @@ -52,6 +52,20 @@ namespace cv namespace flann { +enum FlannIndexType { + FLANN_INDEX_TYPE_8U = CV_8U, + FLANN_INDEX_TYPE_8S = CV_8S, + FLANN_INDEX_TYPE_16U = CV_16U, + FLANN_INDEX_TYPE_16S = CV_16S, + FLANN_INDEX_TYPE_32S = CV_32S, + FLANN_INDEX_TYPE_32F = CV_32F, + FLANN_INDEX_TYPE_64F = CV_64F, + FLANN_INDEX_TYPE_STRING, + FLANN_INDEX_TYPE_BOOL, + FLANN_INDEX_TYPE_ALGORITHM, + LAST_VALUE_FLANN_INDEX_TYPE = FLANN_INDEX_TYPE_ALGORITHM +}; + struct CV_EXPORTS IndexParams { IndexParams(); @@ -68,8 +82,9 @@ struct CV_EXPORTS IndexParams void setBool(const String& key, bool value); void setAlgorithm(int value); + // FIXIT: replace by void write(FileStorage& fs) const + read() void getAll(std::vector& names, - std::vector& types, + std::vector& types, std::vector& strValues, std::vector& numValues) const; diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/nn_index.h b/lib/3rdParty/OpenCV/include/opencv2/flann/nn_index.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/nn_index.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/nn_index.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/object_factory.h b/lib/3rdParty/OpenCV/include/opencv2/flann/object_factory.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/object_factory.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/object_factory.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/params.h b/lib/3rdParty/OpenCV/include/opencv2/flann/params.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/params.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/params.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/random.h b/lib/3rdParty/OpenCV/include/opencv2/flann/random.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/random.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/random.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/result_set.h b/lib/3rdParty/OpenCV/include/opencv2/flann/result_set.h similarity index 95% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/result_set.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/result_set.h index 7c0909397..5c69ac29e 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/result_set.h +++ b/lib/3rdParty/OpenCV/include/opencv2/flann/result_set.h @@ -109,13 +109,13 @@ class KNNSimpleResultSet : public ResultSet return count; } - bool full() const + bool full() const CV_OVERRIDE { return count == capacity; } - void addPoint(DistanceType dist, int index) + void addPoint(DistanceType dist, int index) CV_OVERRIDE { if (dist >= worst_distance_) return; int i; @@ -139,7 +139,7 @@ class KNNSimpleResultSet : public ResultSet worst_distance_ = dists[capacity-1]; } - DistanceType worstDist() const + DistanceType worstDist() const CV_OVERRIDE { return worst_distance_; } @@ -176,13 +176,13 @@ class KNNResultSet : public ResultSet return count; } - bool full() const + bool full() const CV_OVERRIDE { return count == capacity; } - void addPoint(DistanceType dist, int index) + void addPoint(DistanceType dist, int index) CV_OVERRIDE { if (dist >= worst_distance_) return; int i; @@ -215,7 +215,7 @@ class KNNResultSet : public ResultSet worst_distance_ = dists[capacity-1]; } - DistanceType worstDist() const + DistanceType worstDist() const CV_OVERRIDE { return worst_distance_; } @@ -310,7 +310,7 @@ class UniqueResultSet : public ResultSet /** Check the status of the set * @return true if we have k NN */ - inline bool full() const + inline bool full() const CV_OVERRIDE { return is_full_; } @@ -365,7 +365,7 @@ class UniqueResultSet : public ResultSet * If we don't have enough neighbors, it returns the max possible value * @return */ - inline DistanceType worstDist() const + inline DistanceType worstDist() const CV_OVERRIDE { return worst_distance_; } @@ -402,7 +402,7 @@ class KNNUniqueResultSet : public UniqueResultSet * @param dist distance for that neighbor * @param index index of that neighbor */ - inline void addPoint(DistanceType dist, int index) + inline void addPoint(DistanceType dist, int index) CV_OVERRIDE { // Don't do anything if we are worse than the worst if (dist >= worst_distance_) return; @@ -422,7 +422,7 @@ class KNNUniqueResultSet : public UniqueResultSet /** Remove all elements in the set */ - void clear() + void clear() CV_OVERRIDE { dist_indices_.clear(); worst_distance_ = std::numeric_limits::max(); @@ -461,14 +461,14 @@ class RadiusUniqueResultSet : public UniqueResultSet * @param dist distance for that neighbor * @param index index of that neighbor */ - void addPoint(DistanceType dist, int index) + void addPoint(DistanceType dist, int index) CV_OVERRIDE { if (dist <= radius_) dist_indices_.insert(DistIndex(dist, index)); } /** Remove all elements in the set */ - inline void clear() + inline void clear() CV_OVERRIDE { dist_indices_.clear(); } @@ -477,7 +477,7 @@ class RadiusUniqueResultSet : public UniqueResultSet /** Check the status of the set * @return alwys false */ - inline bool full() const + inline bool full() const CV_OVERRIDE { return true; } @@ -486,7 +486,7 @@ class RadiusUniqueResultSet : public UniqueResultSet * If we don't have enough neighbors, it returns the max possible value * @return */ - inline DistanceType worstDist() const + inline DistanceType worstDist() const CV_OVERRIDE { return radius_; } diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/sampling.h b/lib/3rdParty/OpenCV/include/opencv2/flann/sampling.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/sampling.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/sampling.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/saving.h b/lib/3rdParty/OpenCV/include/opencv2/flann/saving.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/saving.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/saving.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/simplex_downhill.h b/lib/3rdParty/OpenCV/include/opencv2/flann/simplex_downhill.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/simplex_downhill.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/simplex_downhill.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/timer.h b/lib/3rdParty/OpenCV/include/opencv2/flann/timer.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/flann/timer.h rename to lib/3rdParty/OpenCV/include/opencv2/flann/timer.h diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi.hpp new file mode 100644 index 000000000..a043a83fc --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi.hpp @@ -0,0 +1,33 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_HPP +#define OPENCV_GAPI_HPP + +#include + +/** \defgroup gapi G-API framework +@{ + @defgroup gapi_main_classes G-API Main Classes + @defgroup gapi_data_objects G-API Data Objects + @{ + @defgroup gapi_meta_args G-API Metadata Descriptors + @} + @defgroup gapi_std_backends G-API Standard backends + @defgroup gapi_compile_args G-API Graph Compilation Arguments +@} + */ + +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/garray.hpp" +#include "opencv2/gapi/gcomputation.hpp" +#include "opencv2/gapi/gcompiled.hpp" +#include "opencv2/gapi/gtyped.hpp" +#include "opencv2/gapi/gkernel.hpp" +#include "opencv2/gapi/operators.hpp" + +#endif // OPENCV_GAPI_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/core.hpp new file mode 100644 index 000000000..645542968 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/core.hpp @@ -0,0 +1,1630 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_CORE_HPP +#define OPENCV_GAPI_CORE_HPP + +#include // std::tuple + +#include + +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/gscalar.hpp" +#include "opencv2/gapi/gkernel.hpp" + +/** \defgroup gapi_core G-API core (basic) functionality +@{ + @defgroup gapi_math Graph API: Math operations + @defgroup gapi_pixelwise Graph API: Pixelwise operations + @defgroup gapi_matrixop Graph API: Operations on matrices + @defgroup gapi_transform Graph API: Geometric, depth and LUT-like image transformations +@} + */ +namespace cv { namespace gapi { +namespace core { + using GMat2 = std::tuple; + using GMat3 = std::tuple; // FIXME: how to avoid this? + using GMat4 = std::tuple; + using GMatScalar = std::tuple; + + G_TYPED_KERNEL(GAdd, , "org.opencv.core.math.add") { + static GMatDesc outMeta(GMatDesc a, GMatDesc b, int ddepth) { + if (ddepth == -1) + { + // OpenCV: When the input arrays in add/subtract/multiply/divide + // functions have different depths, the output array depth must be + // explicitly specified! + // See artim_op() @ arithm.cpp + GAPI_Assert(a.chan == b.chan); + GAPI_Assert(a.depth == b.depth); + return a; + } + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GAddC, , "org.opencv.core.math.addC") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc, int ddepth) { + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GSub, , "org.opencv.core.math.sub") { + static GMatDesc outMeta(GMatDesc a, GMatDesc b, int ddepth) { + if (ddepth == -1) + { + // This macro should select a larger data depth from a and b + // considering the number of channels in the same + // FIXME!!! Clarify if it is valid for sub() + GAPI_Assert(a.chan == b.chan); + ddepth = std::max(a.depth, b.depth); + } + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GSubC, , "org.opencv.core.math.subC") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc, int ddepth) { + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GSubRC,, "org.opencv.core.math.subRC") { + static GMatDesc outMeta(GScalarDesc, GMatDesc b, int ddepth) { + return b.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GMul, , "org.opencv.core.math.mul") { + static GMatDesc outMeta(GMatDesc a, GMatDesc, double, int ddepth) { + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GMulCOld, , "org.opencv.core.math.mulCOld") { + static GMatDesc outMeta(GMatDesc a, double, int ddepth) { + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GMulC, , "org.opencv.core.math.mulC"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc, int ddepth) { + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GMulS, , "org.opencv.core.math.muls") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a; + } + }; // FIXME: Merge with MulC + + G_TYPED_KERNEL(GDiv, , "org.opencv.core.math.div") { + static GMatDesc outMeta(GMatDesc a, GMatDesc b, double, int ddepth) { + if (ddepth == -1) + { + GAPI_Assert(a.depth == b.depth); + return b; + } + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GDivC, , "org.opencv.core.math.divC") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc, double, int ddepth) { + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GDivRC, , "org.opencv.core.math.divRC") { + static GMatDesc outMeta(GScalarDesc, GMatDesc b, double, int ddepth) { + return b.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GMean, , "org.opencv.core.math.mean") { + static GScalarDesc outMeta(GMatDesc) { + return empty_scalar_desc(); + } + }; + + G_TYPED_KERNEL_M(GPolarToCart, , "org.opencv.core.math.polarToCart") { + static std::tuple outMeta(GMatDesc, GMatDesc a, bool) { + return std::make_tuple(a, a); + } + }; + + G_TYPED_KERNEL_M(GCartToPolar, , "org.opencv.core.math.cartToPolar") { + static std::tuple outMeta(GMatDesc x, GMatDesc, bool) { + return std::make_tuple(x, x); + } + }; + + G_TYPED_KERNEL(GPhase, , "org.opencv.core.math.phase") { + static GMatDesc outMeta(const GMatDesc &inx, const GMatDesc &, bool) { + return inx; + } + }; + + G_TYPED_KERNEL(GMask, , "org.opencv.core.pixelwise.mask") { + static GMatDesc outMeta(GMatDesc in, GMatDesc) { + return in; + } + }; + + G_TYPED_KERNEL(GCmpGT, , "org.opencv.core.pixelwise.compare.cmpGT") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpGE, , "org.opencv.core.pixelwise.compare.cmpGE") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpLE, , "org.opencv.core.pixelwise.compare.cmpLE") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpLT, , "org.opencv.core.pixelwise.compare.cmpLT") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpEQ, , "org.opencv.core.pixelwise.compare.cmpEQ") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpNE, , "org.opencv.core.pixelwise.compare.cmpNE") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpGTScalar, , "org.opencv.core.pixelwise.compare.cmpGTScalar"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpGEScalar, , "org.opencv.core.pixelwise.compare.cmpGEScalar"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpLEScalar, , "org.opencv.core.pixelwise.compare.cmpLEScalar"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpLTScalar, , "org.opencv.core.pixelwise.compare.cmpLTScalar"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpEQScalar, , "org.opencv.core.pixelwise.compare.cmpEQScalar"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GCmpNEScalar, , "org.opencv.core.pixelwise.compare.cmpNEScalar"){ + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a.withDepth(CV_8U); + } + }; + + G_TYPED_KERNEL(GAnd, , "org.opencv.core.pixelwise.bitwise_and") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GAndS, , "org.opencv.core.pixelwise.bitwise_andS") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GOr, , "org.opencv.core.pixelwise.bitwise_or") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GOrS, , "org.opencv.core.pixelwise.bitwise_orS") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GXor, , "org.opencv.core.pixelwise.bitwise_xor") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GXorS, , "org.opencv.core.pixelwise.bitwise_xorS") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GNot, , "org.opencv.core.pixelwise.bitwise_not") { + static GMatDesc outMeta(GMatDesc a) { + return a; + } + }; + + G_TYPED_KERNEL(GSelect, , "org.opencv.core.pixelwise.select") { + static GMatDesc outMeta(GMatDesc a, GMatDesc, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GMin, , "org.opencv.core.matrixop.min") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GMax, , "org.opencv.core.matrixop.max") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GAbsDiff, , "org.opencv.core.matrixop.absdiff") { + static GMatDesc outMeta(GMatDesc a, GMatDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GAbsDiffC, , "org.opencv.core.matrixop.absdiffC") { + static GMatDesc outMeta(GMatDesc a, GScalarDesc) { + return a; + } + }; + + G_TYPED_KERNEL(GSum, , "org.opencv.core.matrixop.sum") { + static GScalarDesc outMeta(GMatDesc) { + return empty_scalar_desc(); + } + }; + + G_TYPED_KERNEL(GAddW, , "org.opencv.core.matrixop.addweighted") { + static GMatDesc outMeta(GMatDesc a, double, GMatDesc b, double, double, int ddepth) { + if (ddepth == -1) + { + // OpenCV: When the input arrays in add/subtract/multiply/divide + // functions have different depths, the output array depth must be + // explicitly specified! + // See artim_op() @ arithm.cpp + GAPI_Assert(a.chan == b.chan); + GAPI_Assert(a.depth == b.depth); + return a; + } + return a.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GNormL1, , "org.opencv.core.matrixop.norml1") { + static GScalarDesc outMeta(GMatDesc) { + return empty_scalar_desc(); + } + }; + + G_TYPED_KERNEL(GNormL2, , "org.opencv.core.matrixop.norml2") { + static GScalarDesc outMeta(GMatDesc) { + return empty_scalar_desc(); + } + }; + + G_TYPED_KERNEL(GNormInf, , "org.opencv.core.matrixop.norminf") { + static GScalarDesc outMeta(GMatDesc) { + return empty_scalar_desc(); + } + }; + + G_TYPED_KERNEL_M(GIntegral, , "org.opencv.core.matrixop.integral") { + static std::tuple outMeta(GMatDesc in, int sd, int sqd) { + return std::make_tuple(in.withSizeDelta(1,1).withDepth(sd), + in.withSizeDelta(1,1).withDepth(sqd)); + } + }; + + G_TYPED_KERNEL(GThreshold, , "org.opencv.core.matrixop.threshold") { + static GMatDesc outMeta(GMatDesc in, GScalarDesc, GScalarDesc, int) { + return in; + } + }; + + + G_TYPED_KERNEL_M(GThresholdOT, , "org.opencv.core.matrixop.thresholdOT") { + static std::tuple outMeta(GMatDesc in, GScalarDesc, int) { + return std::make_tuple(in, empty_scalar_desc()); + } + }; + + G_TYPED_KERNEL(GInRange, , "org.opencv.core.matrixop.inrange") { + static GMatDesc outMeta(GMatDesc in, GScalarDesc, GScalarDesc) { + return in.withType(CV_8U, 1); + } + }; + + G_TYPED_KERNEL_M(GSplit3, , "org.opencv.core.transform.split3") { + static std::tuple outMeta(GMatDesc in) { + const auto out_depth = in.depth; + const auto out_desc = in.withType(out_depth, 1); + return std::make_tuple(out_desc, out_desc, out_desc); + } + }; + + G_TYPED_KERNEL_M(GSplit4, ,"org.opencv.core.transform.split4") { + static std::tuple outMeta(GMatDesc in) { + const auto out_depth = in.depth; + const auto out_desc = in.withType(out_depth, 1); + return std::make_tuple(out_desc, out_desc, out_desc, out_desc); + } + }; + + G_TYPED_KERNEL(GResize, , "org.opencv.core.transform.resize") { + static GMatDesc outMeta(GMatDesc in, Size sz, double fx, double fy, int) { + if (sz.width != 0 && sz.height != 0) + { + return in.withSize(sz); + } + else + { + GAPI_Assert(fx != 0. && fy != 0.); + return in.withSize + (Size(static_cast(std::round(in.size.width * fx)), + static_cast(std::round(in.size.height * fy)))); + } + } + }; + + G_TYPED_KERNEL(GMerge3, , "org.opencv.core.transform.merge3") { + static GMatDesc outMeta(GMatDesc in, GMatDesc, GMatDesc) { + // Preserve depth and add channel component + return in.withType(in.depth, 3); + } + }; + + G_TYPED_KERNEL(GMerge4, , "org.opencv.core.transform.merge4") { + static GMatDesc outMeta(GMatDesc in, GMatDesc, GMatDesc, GMatDesc) { + // Preserve depth and add channel component + return in.withType(in.depth, 4); + } + }; + + G_TYPED_KERNEL(GRemap, , "org.opencv.core.transform.remap") { + static GMatDesc outMeta(GMatDesc in, Mat m1, Mat, int, int, Scalar) { + return in.withSize(m1.size()); + } + }; + + G_TYPED_KERNEL(GFlip, , "org.opencv.core.transform.flip") { + static GMatDesc outMeta(GMatDesc in, int) { + return in; + } + }; + + G_TYPED_KERNEL(GCrop, , "org.opencv.core.transform.crop") { + static GMatDesc outMeta(GMatDesc in, Rect rc) { + return in.withSize(Size(rc.width, rc.height)); + } + }; + + G_TYPED_KERNEL(GConcatHor, , "org.opencv.imgproc.transform.concatHor") { + static GMatDesc outMeta(GMatDesc l, GMatDesc r) { + return l.withSizeDelta(+r.size.width, 0); + } + }; + + G_TYPED_KERNEL(GConcatVert, , "org.opencv.imgproc.transform.concatVert") { + static GMatDesc outMeta(GMatDesc t, GMatDesc b) { + return t.withSizeDelta(0, +b.size.height); + } + }; + + G_TYPED_KERNEL(GLUT, , "org.opencv.core.transform.LUT") { + static GMatDesc outMeta(GMatDesc in, Mat) { + return in; + } + }; + + G_TYPED_KERNEL(GConvertTo, , "org.opencv.core.transform.convertTo") { + static GMatDesc outMeta(GMatDesc in, int rdepth, double, double) { + return rdepth < 0 ? in : in.withDepth(rdepth); + } + }; + + G_TYPED_KERNEL(GSqrt, , "org.opencv.core.math.sqrt") { + static GMatDesc outMeta(GMatDesc in) { + return in; + } + }; + + G_TYPED_KERNEL(GNormalize, , "org.opencv.core.normalize") { + static GMatDesc outMeta(GMatDesc in, double, double, int, int ddepth) { + // unlike opencv doesn't have a mask as a parameter + return (ddepth < 0 ? in : in.withDepth(ddepth)); + } + }; +} + +//! @addtogroup gapi_math +//! @{ + +/** @brief Calculates the per-element sum of two matrices. + +The function add calculates sum of two matrices of the same size and the same number of channels: +\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) + \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0\f] + +The function can be replaced with matrix expressions: + \f[\texttt{dst} = \texttt{src1} + \texttt{src2}\f] + +The input matrices and the output matrix can all have the same or different depths. For example, you +can add a 16-bit unsigned matrix to a 8-bit signed matrix and store the sum as a 32-bit +floating-point matrix. Depth of the output matrix is determined by the ddepth parameter. +If src1.depth() == src2.depth(), ddepth can be set to the default -1. In this case, the output matrix will have +the same depth as the input matrices. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.add" +@param src1 first input matrix. +@param src2 second input matrix. +@param ddepth optional depth of the output matrix. +@sa sub, addWeighted +*/ +GAPI_EXPORTS GMat add(const GMat& src1, const GMat& src2, int ddepth = -1); + +/** @brief Calculates the per-element sum of matrix and given scalar. + +The function addC adds a given scalar value to each element of given matrix. +The function can be replaced with matrix expressions: + + \f[\texttt{dst} = \texttt{src1} + \texttt{c}\f] + +Depth of the output matrix is determined by the ddepth parameter. +If ddepth is set to default -1, the depth of output matrix will be the same as the depth of input matrix. +The matrices can be single or multi channel. Output matrix must have the same size and number of channels as the input matrix. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.addC" +@param src1 first input matrix. +@param c scalar value to be added. +@param ddepth optional depth of the output matrix. +@sa sub, addWeighted +*/ +GAPI_EXPORTS GMat addC(const GMat& src1, const GScalar& c, int ddepth = -1); +//! @overload +GAPI_EXPORTS GMat addC(const GScalar& c, const GMat& src1, int ddepth = -1); + +/** @brief Calculates the per-element difference between two matrices. + +The function sub calculates difference between two matrices, when both matrices have the same size and the same number of +channels: + \f[\texttt{dst}(I) = \texttt{src1}(I) - \texttt{src2}(I)\f] + +The function can be replaced with matrix expressions: +\f[\texttt{dst} = \texttt{src1} - \texttt{src2}\f] + +The input matrices and the output matrix can all have the same or different depths. For example, you +can subtract two 8-bit unsigned matrices store the result as a 16-bit signed matrix. +Depth of the output matrix is determined by the ddepth parameter. +If src1.depth() == src2.depth(), ddepth can be set to the default -1. In this case, the output matrix will have +the same depth as the input matrices. The matrices can be single or multi channel. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.sub" +@param src1 first input matrix. +@param src2 second input matrix. +@param ddepth optional depth of the output matrix. +@sa add, addC + */ +GAPI_EXPORTS GMat sub(const GMat& src1, const GMat& src2, int ddepth = -1); + +/** @brief Calculates the per-element difference between matrix and given scalar. + +The function can be replaced with matrix expressions: + \f[\texttt{dst} = \texttt{src} - \texttt{c}\f] + +Depth of the output matrix is determined by the ddepth parameter. +If ddepth is set to default -1, the depth of output matrix will be the same as the depth of input matrix. +The matrices can be single or multi channel. Output matrix must have the same size as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.subC" +@param src first input matrix. +@param c scalar value to subtracted. +@param ddepth optional depth of the output matrix. +@sa add, addC, subRC + */ +GAPI_EXPORTS GMat subC(const GMat& src, const GScalar& c, int ddepth = -1); + +/** @brief Calculates the per-element difference between given scalar and the matrix. + +The function can be replaced with matrix expressions: + \f[\texttt{dst} = \texttt{val} - \texttt{src}\f] + +Depth of the output matrix is determined by the ddepth parameter. +If ddepth is set to default -1, the depth of output matrix will be the same as the depth of input matrix. +The matrices can be single or multi channel. Output matrix must have the same size as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.subRC" +@param c scalar value to subtract from. +@param src input matrix to be subtracted. +@param ddepth optional depth of the output matrix. +@sa add, addC, subC + */ +GAPI_EXPORTS GMat subRC(const GScalar& c, const GMat& src, int ddepth = -1); + +/** @brief Calculates the per-element scaled product of two matrices. + +The function mul calculates the per-element product of two matrices: + +\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{scale} \cdot \texttt{src1} (I) \cdot \texttt{src2} (I))\f] + +If src1.depth() == src2.depth(), ddepth can be set to the default -1. In this case, the output matrix will have +the same depth as the input matrices. The matrices can be single or multi channel. +Output matrix must have the same size as input matrices. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.mul" +@param src1 first input matrix. +@param src2 second input matrix of the same size and the same depth as src1. +@param scale optional scale factor. +@param ddepth optional depth of the output matrix. +@sa add, sub, div, addWeighted +*/ +GAPI_EXPORTS GMat mul(const GMat& src1, const GMat& src2, double scale = 1.0, int ddepth = -1); + +/** @brief Multiplies matrix by scalar. + +The function mulC multiplies each element of matrix src by given scalar value: + +\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I) \cdot \texttt{multiplier} )\f] + +The matrices can be single or multi channel. Output matrix must have the same size as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.mulC" +@param src input matrix. +@param multiplier factor to be multiplied. +@param ddepth optional depth of the output matrix. If -1, the depth of output matrix will be the same as input matrix depth. +@sa add, sub, div, addWeighted +*/ +GAPI_EXPORTS GMat mulC(const GMat& src, double multiplier, int ddepth = -1); +//! @overload +GAPI_EXPORTS GMat mulC(const GMat& src, const GScalar& multiplier, int ddepth = -1); // FIXME: merge with mulc +//! @overload +GAPI_EXPORTS GMat mulC(const GScalar& multiplier, const GMat& src, int ddepth = -1); // FIXME: merge with mulc + +/** @brief Performs per-element division of two matrices. + +The function divides one matrix by another: +\f[\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\f] + +When src2(I) is zero, dst(I) will also be zero. Different channels of +multi-channel matrices are processed independently. +The matrices can be single or multi channel. Output matrix must have the same size and depth as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.div" +@param src1 first input matrix. +@param src2 second input matrix of the same size and depth as src1. +@param scale scalar factor. +@param ddepth optional depth of the output matrix; you can only pass -1 when src1.depth() == src2.depth(). +@sa mul, add, sub +*/ +GAPI_EXPORTS GMat div(const GMat& src1, const GMat& src2, double scale, int ddepth = -1); + +/** @brief Divides matrix by scalar. + +The function divC divides each element of matrix src by given scalar value: + +\f[\texttt{dst(I) = saturate(src(I)*scale/divisor)}\f] + +When divisor is zero, dst(I) will also be zero. Different channels of +multi-channel matrices are processed independently. +The matrices can be single or multi channel. Output matrix must have the same size and depth as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.divC" +@param src input matrix. +@param divisor number to be divided by. +@param ddepth optional depth of the output matrix. If -1, the depth of output matrix will be the same as input matrix depth. +@param scale scale factor. +@sa add, sub, div, addWeighted +*/ +GAPI_EXPORTS GMat divC(const GMat& src, const GScalar& divisor, double scale, int ddepth = -1); + +/** @brief Divides scalar by matrix. + +The function divRC divides given scalar by each element of matrix src and keep the division result in new matrix of the same size and type as src: + +\f[\texttt{dst(I) = saturate(divident*scale/src(I))}\f] + +When src(I) is zero, dst(I) will also be zero. Different channels of +multi-channel matrices are processed independently. +The matrices can be single or multi channel. Output matrix must have the same size and depth as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.divRC" +@param src input matrix. +@param divident number to be divided. +@param ddepth optional depth of the output matrix. If -1, the depth of output matrix will be the same as input matrix depth. +@param scale scale factor +@sa add, sub, div, addWeighted +*/ +GAPI_EXPORTS GMat divRC(const GScalar& divident, const GMat& src, double scale, int ddepth = -1); + +/** @brief Applies a mask to a matrix. + +The function mask set value from given matrix if the corresponding pixel value in mask matrix set to true, +and set the matrix value to 0 overwise. + +Supported src matrix data types are @ref CV_8UC1, @ref CV_16SC1, @ref CV_16UC1. Supported mask data type is @ref CV_8UC1. + +@note Function textual ID is "org.opencv.core.math.mask" +@param src input matrix. +@param mask input mask matrix. +*/ +GAPI_EXPORTS GMat mask(const GMat& src, const GMat& mask); + +/** @brief Calculates an average (mean) of matrix elements. + +The function mean calculates the mean value M of matrix elements, +independently for each channel, and return it. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.math.mean" +@param src input matrix. +*/ +GAPI_EXPORTS GScalar mean(const GMat& src); + +/** @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle. + +The function polarToCart calculates the Cartesian coordinates of each 2D +vector represented by the corresponding elements of magnitude and angle: +\f[\begin{array}{l} \texttt{x} (I) = \texttt{magnitude} (I) \cos ( \texttt{angle} (I)) \\ \texttt{y} (I) = \texttt{magnitude} (I) \sin ( \texttt{angle} (I)) \\ \end{array}\f] + +The relative accuracy of the estimated coordinates is about 1e-6. + +First output is a matrix of x-coordinates of 2D vectors. +Second output is a matrix of y-coordinates of 2D vectors. +Both output must have the same size and depth as input matrices. + +@note Function textual ID is "org.opencv.core.math.polarToCart" + +@param magnitude input floating-point @ref CV_32FC1 matrix (1xN) of magnitudes of 2D vectors; +@param angle input floating-point @ref CV_32FC1 matrix (1xN) of angles of 2D vectors. +@param angleInDegrees when true, the input angles are measured in +degrees, otherwise, they are measured in radians. +@sa cartToPolar, exp, log, pow, sqrt +*/ +GAPI_EXPORTS std::tuple polarToCart(const GMat& magnitude, const GMat& angle, + bool angleInDegrees = false); + +/** @brief Calculates the magnitude and angle of 2D vectors. + +The function cartToPolar calculates either the magnitude, angle, or both +for every 2D vector (x(I),y(I)): +\f[\begin{array}{l} \texttt{magnitude} (I)= \sqrt{\texttt{x}(I)^2+\texttt{y}(I)^2} , \\ \texttt{angle} (I)= \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))[ \cdot180 / \pi ] \end{array}\f] + +The angles are calculated with accuracy about 0.3 degrees. For the point +(0,0), the angle is set to 0. + +First output is a matrix of magnitudes of the same size and depth as input x. +Second output is a matrix of angles that has the same size and depth as +x; the angles are measured in radians (from 0 to 2\*Pi) or in degrees (0 to 360 degrees). + +@note Function textual ID is "org.opencv.core.math.cartToPolar" + +@param x matrix of @ref CV_32FC1 x-coordinates. +@param y array of @ref CV_32FC1 y-coordinates. +@param angleInDegrees a flag, indicating whether the angles are measured +in radians (which is by default), or in degrees. +@sa polarToCart +*/ +GAPI_EXPORTS std::tuple cartToPolar(const GMat& x, const GMat& y, + bool angleInDegrees = false); + +/** @brief Calculates the rotation angle of 2D vectors. + +The function cv::phase calculates the rotation angle of each 2D vector that +is formed from the corresponding elements of x and y : +\f[\texttt{angle} (I) = \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))\f] + +The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 , +the corresponding angle(I) is set to 0. +@param x input floating-point array of x-coordinates of 2D vectors. +@param y input array of y-coordinates of 2D vectors; it must have the +same size and the same type as x. +@param angleInDegrees when true, the function calculates the angle in +degrees, otherwise, they are measured in radians. +@return array of vector angles; it has the same size and same type as x. +*/ +GAPI_EXPORTS GMat phase(const GMat& x, const GMat &y, bool angleInDegrees = false); + +/** @brief Calculates a square root of array elements. + +The function cv::gapi::sqrt calculates a square root of each input array element. +In case of multi-channel arrays, each channel is processed +independently. The accuracy is approximately the same as of the built-in +std::sqrt . +@param src input floating-point array. +@return output array of the same size and type as src. +*/ +GAPI_EXPORTS GMat sqrt(const GMat &src); + +//! @} gapi_math +//! +//! @addtogroup gapi_pixelwise +//! @{ + +/** @brief Performs the per-element comparison of two matrices checking if elements from first matrix are greater compare to elements in second. + +The function compares elements of two matrices src1 and src2 of the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) > \texttt{src2} (I)\f] + +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: +\f[\texttt{dst} = \texttt{src1} > \texttt{src2}\f] + +Output matrix of depth @ref CV_8U must have the same size and the same number of channels as + the input matrices/matrix. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpGT" +@param src1 first input matrix. +@param src2 second input matrix/scalar of the same depth as first input matrix. +@sa min, max, threshold, cmpLE, cmpGE, cmpLS +*/ +GAPI_EXPORTS GMat cmpGT(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpGTScalar" +*/ +GAPI_EXPORTS GMat cmpGT(const GMat& src1, const GScalar& src2); + +/** @brief Performs the per-element comparison of two matrices checking if elements from first matrix are less than elements in second. + +The function compares elements of two matrices src1 and src2 of the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) < \texttt{src2} (I)\f] + +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: + \f[\texttt{dst} = \texttt{src1} < \texttt{src2}\f] + +Output matrix of depth @ref CV_8U must have the same size and the same number of channels as + the input matrices/matrix. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpLT" +@param src1 first input matrix. +@param src2 second input matrix/scalar of the same depth as first input matrix. +@sa min, max, threshold, cmpLE, cmpGE, cmpGT +*/ +GAPI_EXPORTS GMat cmpLT(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpLTScalar" +*/ +GAPI_EXPORTS GMat cmpLT(const GMat& src1, const GScalar& src2); + +/** @brief Performs the per-element comparison of two matrices checking if elements from first matrix are greater or equal compare to elements in second. + +The function compares elements of two matrices src1 and src2 of the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) >= \texttt{src2} (I)\f] + +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: + \f[\texttt{dst} = \texttt{src1} >= \texttt{src2}\f] + +Output matrix of depth @ref CV_8U must have the same size and the same number of channels as + the input matrices. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpGE" +@param src1 first input matrix. +@param src2 second input matrix/scalar of the same depth as first input matrix. +@sa min, max, threshold, cmpLE, cmpGT, cmpLS +*/ +GAPI_EXPORTS GMat cmpGE(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpLGEcalar" +*/ +GAPI_EXPORTS GMat cmpGE(const GMat& src1, const GScalar& src2); + +/** @brief Performs the per-element comparison of two matrices checking if elements from first matrix are less or equal compare to elements in second. + +The function compares elements of two matrices src1 and src2 of the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) <= \texttt{src2} (I)\f] + +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: + \f[\texttt{dst} = \texttt{src1} <= \texttt{src2}\f] + +Output matrix of depth @ref CV_8U must have the same size and the same number of channels as + the input matrices. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpLE" +@param src1 first input matrix. +@param src2 second input matrix/scalar of the same depth as first input matrix. +@sa min, max, threshold, cmpGT, cmpGE, cmpLS +*/ +GAPI_EXPORTS GMat cmpLE(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpLEScalar" +*/ +GAPI_EXPORTS GMat cmpLE(const GMat& src1, const GScalar& src2); + +/** @brief Performs the per-element comparison of two matrices checking if elements from first matrix are equal to elements in second. + +The function compares elements of two matrices src1 and src2 of the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) == \texttt{src2} (I)\f] + +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: + \f[\texttt{dst} = \texttt{src1} == \texttt{src2}\f] + +Output matrix of depth @ref CV_8U must have the same size and the same number of channels as + the input matrices. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpEQ" +@param src1 first input matrix. +@param src2 second input matrix/scalar of the same depth as first input matrix. +@sa min, max, threshold, cmpNE +*/ +GAPI_EXPORTS GMat cmpEQ(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpEQScalar" +*/ +GAPI_EXPORTS GMat cmpEQ(const GMat& src1, const GScalar& src2); + +/** @brief Performs the per-element comparison of two matrices checking if elements from first matrix are not equal to elements in second. + +The function compares elements of two matrices src1 and src2 of the same size: + \f[\texttt{dst} (I) = \texttt{src1} (I) != \texttt{src2} (I)\f] + +When the comparison result is true, the corresponding element of output +array is set to 255. The comparison operations can be replaced with the +equivalent matrix expressions: + \f[\texttt{dst} = \texttt{src1} != \texttt{src2}\f] + +Output matrix of depth @ref CV_8U must have the same size and the same number of channels as + the input matrices. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpNE" +@param src1 first input matrix. +@param src2 second input matrix/scalar of the same depth as first input matrix. +@sa min, max, threshold, cmpEQ +*/ +GAPI_EXPORTS GMat cmpNE(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.cmpNEScalar" +*/ +GAPI_EXPORTS GMat cmpNE(const GMat& src1, const GScalar& src2); + +/** @brief computes bitwise conjunction of the two matrixes (src1 & src2) +Calculates the per-element bit-wise logical conjunction of two matrices of the same size. + +In case of floating-point matrices, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel matrices, each channel is processed +independently. Output matrix must have the same size and depth as the input +matrices. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.bitwise_and" + +@param src1 first input matrix. +@param src2 second input matrix. +*/ +GAPI_EXPORTS GMat bitwise_and(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.bitwise_andS" +@param src1 first input matrix. +@param src2 scalar, which will be per-lemenetly conjuncted with elements of src1. +*/ +GAPI_EXPORTS GMat bitwise_and(const GMat& src1, const GScalar& src2); + +/** @brief computes bitwise disjunction of the two matrixes (src1 | src2) +Calculates the per-element bit-wise logical disjunction of two matrices of the same size. + +In case of floating-point matrices, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel matrices, each channel is processed +independently. Output matrix must have the same size and depth as the input +matrices. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.bitwise_or" + +@param src1 first input matrix. +@param src2 second input matrix. +*/ +GAPI_EXPORTS GMat bitwise_or(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.bitwise_orS" +@param src1 first input matrix. +@param src2 scalar, which will be per-lemenetly disjuncted with elements of src1. +*/ +GAPI_EXPORTS GMat bitwise_or(const GMat& src1, const GScalar& src2); + + +/** @brief computes bitwise logical "exclusive or" of the two matrixes (src1 ^ src2) +Calculates the per-element bit-wise logical "exclusive or" of two matrices of the same size. + +In case of floating-point matrices, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel matrices, each channel is processed +independently. Output matrix must have the same size and depth as the input +matrices. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.bitwise_xor" + +@param src1 first input matrix. +@param src2 second input matrix. +*/ +GAPI_EXPORTS GMat bitwise_xor(const GMat& src1, const GMat& src2); +/** @overload +@note Function textual ID is "org.opencv.core.pixelwise.compare.bitwise_xorS" +@param src1 first input matrix. +@param src2 scalar, for which per-lemenet "logical or" operation on elements of src1 will be performed. +*/ +GAPI_EXPORTS GMat bitwise_xor(const GMat& src1, const GScalar& src2); + + +/** @brief Inverts every bit of an array. +The function bitwise_not calculates per-element bit-wise inversion of the input +matrix: +\f[\texttt{dst} (I) = \neg \texttt{src} (I)\f] + +In case of floating-point matrices, their machine-specific bit +representations (usually IEEE754-compliant) are used for the operation. +In case of multi-channel matrices, each channel is processed +independently. Output matrix must have the same size and depth as the input +matrix. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.bitwise_not" + +@param src input matrix. +*/ +GAPI_EXPORTS GMat bitwise_not(const GMat& src); + +/** @brief Select values from either first or second of input matrices by given mask. +The function set to the output matrix either the value from the first input matrix if corresponding value of mask matrix is 255, + or value from the second input matrix (if value of mask matrix set to 0). + +Input mask matrix must be of @ref CV_8UC1 type, two other inout matrices and output matrix should be of the same type. The size should +be the same for all input and output matrices. +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.pixelwise.select" + +@param src1 first input matrix. +@param src2 second input matrix. +@param mask mask input matrix. +*/ +GAPI_EXPORTS GMat select(const GMat& src1, const GMat& src2, const GMat& mask); + +//! @} gapi_pixelwise + + +//! @addtogroup gapi_matrixop +//! @{ +/** @brief Calculates per-element minimum of two matrices. + +The function min calculates the per-element minimum of two matrices of the same size, number of channels and depth: +\f[\texttt{dst} (I)= \min ( \texttt{src1} (I), \texttt{src2} (I))\f] + where I is a multi-dimensional index of matrix elements. In case of + multi-channel matrices, each channel is processed independently. +Output matrix must be of the same size and depth as src1. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.min" +@param src1 first input matrix. +@param src2 second input matrix of the same size and depth as src1. +@sa max, compareEqual, compareLess, compareLessEqual +*/ +GAPI_EXPORTS GMat min(const GMat& src1, const GMat& src2); + +/** @brief Calculates per-element maximum of two matrices. + +The function max calculates the per-element maximum of two matrices of the same size, number of channels and depth: +\f[\texttt{dst} (I)= \max ( \texttt{src1} (I), \texttt{src2} (I))\f] + where I is a multi-dimensional index of matrix elements. In case of + multi-channel matrices, each channel is processed independently. +Output matrix must be of the same size and depth as src1. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.max" +@param src1 first input matrix. +@param src2 second input matrix of the same size and depth as src1. +@sa min, compare, compareEqual, compareGreater, compareGreaterEqual +*/ +GAPI_EXPORTS GMat max(const GMat& src1, const GMat& src2); + +/** @brief Calculates the per-element absolute difference between two matrices. + +The function absDiff calculates absolute difference between two matrices of the same size and depth: + \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{src2}(I)|)\f] + where I is a multi-dimensional index of matrix elements. In case of + multi-channel matrices, each channel is processed independently. +Output matrix must have the same size and depth as input matrices. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.absdiff" +@param src1 first input matrix. +@param src2 second input matrix. +@sa abs +*/ +GAPI_EXPORTS GMat absDiff(const GMat& src1, const GMat& src2); + +/** @brief Calculates absolute value of matrix elements. + +The function abs calculates absolute difference between matrix elements and given scalar value: + \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{matC}(I)|)\f] + where matC is constructed from given scalar c and has the same sizes and depth as input matrix src. + +Output matrix must be of the same size and depth as src. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.absdiffC" +@param src input matrix. +@param c scalar to be subtracted. +@sa min, max +*/ +GAPI_EXPORTS GMat absDiffC(const GMat& src, const GScalar& c); + +/** @brief Calculates sum of all matrix elements. + +The function sum calculates sum of all matrix elements, independently for each channel. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.sum" +@param src input matrix. +@sa min, max +*/ +GAPI_EXPORTS GScalar sum(const GMat& src); + +/** @brief Calculates the weighted sum of two matrices. + +The function addWeighted calculates the weighted sum of two matrices as follows: +\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I)* \texttt{alpha} + \texttt{src2} (I)* \texttt{beta} + \texttt{gamma} )\f] +where I is a multi-dimensional index of array elements. In case of multi-channel matrices, each +channel is processed independently. + +The function can be replaced with a matrix expression: + \f[\texttt{dst}(I) = \texttt{alpha} * \texttt{src1}(I) - \texttt{beta} * \texttt{src2}(I) + \texttt{gamma} \f] + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.addweighted" +@param src1 first input matrix. +@param alpha weight of the first matrix elements. +@param src2 second input matrix of the same size and channel number as src1. +@param beta weight of the second matrix elements. +@param gamma scalar added to each sum. +@param ddepth optional depth of the output matrix. +@sa add, sub +*/ +GAPI_EXPORTS GMat addWeighted(const GMat& src1, double alpha, const GMat& src2, double beta, double gamma, int ddepth = -1); + +/** @brief Calculates the absolute L1 norm of a matrix. + +This version of normL1 calculates the absolute L1 norm of src. + +As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$. +The \f$ L_{1} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$ +is calculated as follows +\f{align*} + \| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\ +\f} +and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is +\f{align*} + \| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\ +\f} + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.norml1" +@param src input matrix. +@sa normL2, normInf +*/ +GAPI_EXPORTS GScalar normL1(const GMat& src); + +/** @brief Calculates the absolute L2 norm of a matrix. + +This version of normL2 calculates the absolute L2 norm of src. + +As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$. +The \f$ L_{2} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$ +is calculated as follows +\f{align*} + \| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\ +\f} +and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is +\f{align*} + \| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\ +\f} + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. +@note Function textual ID is "org.opencv.core.matrixop.norml2" +@param src input matrix. +@sa normL1, normInf +*/ +GAPI_EXPORTS GScalar normL2(const GMat& src); + +/** @brief Calculates the absolute infinite norm of a matrix. + +This version of normInf calculates the absolute infinite norm of src. + +As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$. +The \f$ L_{\infty} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$ +is calculated as follows +\f{align*} + \| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2 +\f} +and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is +\f{align*} + \| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5. +\f} + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.core.matrixop.norminf" +@param src input matrix. +@sa normL1, normL2 +*/ +GAPI_EXPORTS GScalar normInf(const GMat& src); + +/** @brief Calculates the integral of an image. + +The function calculates one or more integral images for the source image as follows: + +\f[\texttt{sum} (X,Y) = \sum _{x integral(const GMat& src, int sdepth = -1, int sqdepth = -1); + +/** @brief Applies a fixed-level threshold to each matrix element. + +The function applies fixed-level thresholding to a single- or multiple-channel matrix. +The function is typically used to get a bi-level (binary) image out of a grayscale image ( cmp functions could be also used for +this purpose) or for removing a noise, that is, filtering out pixels with too small or too large +values. There are several depths of thresholding supported by the function. They are determined by +depth parameter. + +Also, the special values cv::THRESH_OTSU or cv::THRESH_TRIANGLE may be combined with one of the +above values. In these cases, the function determines the optimal threshold value using the Otsu's +or Triangle algorithm and uses it instead of the specified thresh . The function returns the +computed threshold value in addititon to thresholded matrix. +The Otsu's and Triangle methods are implemented only for 8-bit matrices. + +Input image should be single channel only in case of cv::THRESH_OTSU or cv::THRESH_TRIANGLE flags. +Output matrix must be of the same size and depth as src. + +@note Function textual ID is "org.opencv.core.matrixop.threshold" + +@param src input matrix (@ref CV_8UC1, @ref CV_8UC3, or @ref CV_32FC1). +@param thresh threshold value. +@param maxval maximum value to use with the cv::THRESH_BINARY and cv::THRESH_BINARY_INV thresholding +depths. +@param depth thresholding depth (see the cv::ThresholdTypes). + +@sa min, max, cmpGT, cmpLE, cmpGE, cmpLS + */ +GAPI_EXPORTS GMat threshold(const GMat& src, const GScalar& thresh, const GScalar& maxval, int depth); +/** @overload +This function appicable for all threshold depths except CV_THRESH_OTSU and CV_THRESH_TRIANGLE +@note Function textual ID is "org.opencv.core.matrixop.thresholdOT" +*/ +GAPI_EXPORTS std::tuple threshold(const GMat& src, const GScalar& maxval, int depth); + +/** @brief Applies a range-level threshold to each matrix element. + +The function applies range-level thresholding to a single- or multiple-channel matrix. +It sets output pixel value to OxFF if the corresponding pixel value of input matrix is in specified range,or 0 otherwise. + +Input and output matrices must be CV_8UC1. + +@note Function textual ID is "org.opencv.core.matrixop.inRange" + +@param src input matrix (CV_8UC1). +@param threshLow lower boundary value. +@param threshUp upper boundary value. + +@sa threshold + */ +GAPI_EXPORTS GMat inRange(const GMat& src, const GScalar& threshLow, const GScalar& threshUp); + +//! @} gapi_matrixop + +//! @addtogroup gapi_transform +//! @{ +/** @brief Resizes an image. + +The function resizes the image src down to or up to the specified size. + +Output image size will have the size dsize (when dsize is non-zero) or the size computed from +src.size(), fx, and fy; the depth of output is the same as of src. + +If you want to resize src so that it fits the pre-created dst, +you may call the function as follows: +@code + // explicitly specify dsize=dst.size(); fx and fy will be computed from that. + resize(src, dst, dst.size(), 0, 0, interpolation); +@endcode +If you want to decimate the image by factor of 2 in each direction, you can call the function this +way: +@code + // specify fx and fy and let the function compute the destination image size. + resize(src, dst, Size(), 0.5, 0.5, interpolation); +@endcode +To shrink an image, it will generally look best with cv::INTER_AREA interpolation, whereas to +enlarge an image, it will generally look best with cv::INTER_CUBIC (slow) or cv::INTER_LINEAR +(faster but still looks OK). + +@note Function textual ID is "org.opencv.core.transform.resize" + +@param src input image. +@param dsize output image size; if it equals zero, it is computed as: + \f[\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\f] + Either dsize or both fx and fy must be non-zero. +@param fx scale factor along the horizontal axis; when it equals 0, it is computed as +\f[\texttt{(double)dsize.width/src.cols}\f] +@param fy scale factor along the vertical axis; when it equals 0, it is computed as +\f[\texttt{(double)dsize.height/src.rows}\f] +@param interpolation interpolation method, see cv::InterpolationFlags + +@sa warpAffine, warpPerspective, remap + */ +GAPI_EXPORTS GMat resize(const GMat& src, const Size& dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR); + +/** @brief Creates one 3-channel (4-channel) matrix out of 3(4) single-channel ones. + +The function merges several matrices to make a single multi-channel matrix. That is, each +element of the output matrix will be a concatenation of the elements of the input matrices, where +elements of i-th input matrix are treated as mv[i].channels()-element vectors. +Input matrix must be of @ref CV_8UC3 (@ref CV_8UC4) type. + +The function split3/split4 does the reverse operation. + +@note Function textual ID for merge3 is "org.opencv.core.transform.merge3" +@note Function textual ID for merge4 is "org.opencv.core.transform.merge4" + +@param src1 first input matrix to be merged +@param src2 second input matrix to be merged +@param src3 third input matrix to be merged +@param src4 fourth input matrix to be merged +@sa split4, split3 +*/ +GAPI_EXPORTS GMat merge4(const GMat& src1, const GMat& src2, const GMat& src3, const GMat& src4); +GAPI_EXPORTS GMat merge3(const GMat& src1, const GMat& src2, const GMat& src3); + +/** @brief Divides a 3-channel (4-channel) matrix into 3(4) single-channel matrices. + +The function splits a 3-channel (4-channel) matrix into 3(4) single-channel matrices: +\f[\texttt{mv} [c](I) = \texttt{src} (I)_c\f] + +All output matrices must be in @ref CV_8UC1. + +@note Function textual for split3 ID is "org.opencv.core.transform.split3" +@note Function textual for split4 ID is "org.opencv.core.transform.split4" + +@param src input @ref CV_8UC4 (@ref CV_8UC3) matrix. +@sa merge3, merge4 +*/ +GAPI_EXPORTS std::tuple split4(const GMat& src); +GAPI_EXPORTS std::tuple split3(const GMat& src); + +/** @brief Applies a generic geometrical transformation to an image. + +The function remap transforms the source image using the specified map: + +\f[\texttt{dst} (x,y) = \texttt{src} (map_x(x,y),map_y(x,y))\f] + +where values of pixels with non-integer coordinates are computed using one of available +interpolation methods. \f$map_x\f$ and \f$map_y\f$ can be encoded as separate floating-point maps +in \f$map_1\f$ and \f$map_2\f$ respectively, or interleaved floating-point maps of \f$(x,y)\f$ in +\f$map_1\f$, or fixed-point maps created by using convertMaps. The reason you might want to +convert from floating to fixed-point representations of a map is that they can yield much faster +(\~2x) remapping operations. In the converted case, \f$map_1\f$ contains pairs (cvFloor(x), +cvFloor(y)) and \f$map_2\f$ contains indices in a table of interpolation coefficients. +Output image must be of the same size and depth as input one. + +@note Function textual ID is "org.opencv.core.transform.remap" + +@param src Source image. +@param map1 The first map of either (x,y) points or just x values having the type CV_16SC2, +CV_32FC1, or CV_32FC2. +@param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map +if map1 is (x,y) points), respectively. +@param interpolation Interpolation method (see cv::InterpolationFlags). The method INTER_AREA is +not supported by this function. +@param borderMode Pixel extrapolation method (see cv::BorderTypes). When +borderMode=BORDER_TRANSPARENT, it means that the pixels in the destination image that +corresponds to the "outliers" in the source image are not modified by the function. +@param borderValue Value used in case of a constant border. By default, it is 0. +@note +Due to current implementation limitations the size of an input and output images should be less than 32767x32767. + */ +GAPI_EXPORTS GMat remap(const GMat& src, const Mat& map1, const Mat& map2, + int interpolation, int borderMode = BORDER_CONSTANT, + const Scalar& borderValue = Scalar()); + +/** @brief Flips a 2D matrix around vertical, horizontal, or both axes. + +The function flips the matrix in one of three different ways (row +and column indices are 0-based): +\f[\texttt{dst} _{ij} = +\left\{ +\begin{array}{l l} +\texttt{src} _{\texttt{src.rows}-i-1,j} & if\; \texttt{flipCode} = 0 \\ +\texttt{src} _{i, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} > 0 \\ +\texttt{src} _{ \texttt{src.rows} -i-1, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} < 0 \\ +\end{array} +\right.\f] +The example scenarios of using the function are the following: +* Vertical flipping of the image (flipCode == 0) to switch between + top-left and bottom-left image origin. This is a typical operation + in video processing on Microsoft Windows\* OS. +* Horizontal flipping of the image with the subsequent horizontal + shift and absolute difference calculation to check for a + vertical-axis symmetry (flipCode \> 0). +* Simultaneous horizontal and vertical flipping of the image with + the subsequent shift and absolute difference calculation to check + for a central symmetry (flipCode \< 0). +* Reversing the order of point arrays (flipCode \> 0 or + flipCode == 0). +Output image must be of the same depth as input one, size should be correct for given flipCode. + +@note Function textual ID is "org.opencv.core.transform.flip" + +@param src input matrix. +@param flipCode a flag to specify how to flip the array; 0 means +flipping around the x-axis and positive value (for example, 1) means +flipping around y-axis. Negative value (for example, -1) means flipping +around both axes. +@sa remap +*/ +GAPI_EXPORTS GMat flip(const GMat& src, int flipCode); + +/** @brief Crops a 2D matrix. + +The function crops the matrix by given cv::Rect. + +Output matrix must be of the same depth as input one, size is specified by given rect size. + +@note Function textual ID is "org.opencv.core.transform.crop" + +@param src input matrix. +@param rect a rect to crop a matrix to +@sa resize +*/ +GAPI_EXPORTS GMat crop(const GMat& src, const Rect& rect); + +/** @brief Applies horizontal concatenation to given matrices. + +The function horizontally concatenates two GMat matrices (with the same number of rows). +@code{.cpp} + GMat A = { 1, 4, + 2, 5, + 3, 6 }; + GMat B = { 7, 10, + 8, 11, + 9, 12 }; + + GMat C = gapi::concatHor(A, B); + //C: + //[1, 4, 7, 10; + // 2, 5, 8, 11; + // 3, 6, 9, 12] +@endcode +Output matrix must the same number of rows and depth as the src1 and src2, and the sum of cols of the src1 and src2. +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.imgproc.transform.concatHor" + +@param src1 first input matrix to be considered for horizontal concatenation. +@param src2 second input matrix to be considered for horizontal concatenation. +@sa concatVert +*/ +GAPI_EXPORTS GMat concatHor(const GMat& src1, const GMat& src2); + +/** @overload +The function horizontally concatenates given number of GMat matrices (with the same number of columns). +Output matrix must the same number of columns and depth as the input matrices, and the sum of rows of input matrices. + +@param v vector of input matrices to be concatenated horizontally. +*/ +GAPI_EXPORTS GMat concatHor(const std::vector &v); + +/** @brief Applies vertical concatenation to given matrices. + +The function vertically concatenates two GMat matrices (with the same number of cols). + @code{.cpp} + GMat A = { 1, 7, + 2, 8, + 3, 9 }; + GMat B = { 4, 10, + 5, 11, + 6, 12 }; + + GMat C = gapi::concatVert(A, B); + //C: + //[1, 7; + // 2, 8; + // 3, 9; + // 4, 10; + // 5, 11; + // 6, 12] + @endcode + +Output matrix must the same number of cols and depth as the src1 and src2, and the sum of rows of the src1 and src2. +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. + +@note Function textual ID is "org.opencv.imgproc.transform.concatVert" + +@param src1 first input matrix to be considered for vertical concatenation. +@param src2 second input matrix to be considered for vertical concatenation. +@sa concatHor +*/ +GAPI_EXPORTS GMat concatVert(const GMat& src1, const GMat& src2); + +/** @overload +The function vertically concatenates given number of GMat matrices (with the same number of columns). +Output matrix must the same number of columns and depth as the input matrices, and the sum of rows of input matrices. + +@param v vector of input matrices to be concatenated vertically. +*/ +GAPI_EXPORTS GMat concatVert(const std::vector &v); + + +/** @brief Performs a look-up table transform of a matrix. + +The function LUT fills the output matrix with values from the look-up table. Indices of the entries +are taken from the input matrix. That is, the function processes each element of src as follows: +\f[\texttt{dst} (I) \leftarrow \texttt{lut(src(I))}\f] + +Supported matrix data types are @ref CV_8UC1. +Output is a matrix of the same size and number of channels as src, and the same depth as lut. + +@note Function textual ID is "org.opencv.core.transform.LUT" + +@param src input matrix of 8-bit elements. +@param lut look-up table of 256 elements; in case of multi-channel input array, the table should +either have a single channel (in this case the same table is used for all channels) or the same +number of channels as in the input matrix. +*/ +GAPI_EXPORTS GMat LUT(const GMat& src, const Mat& lut); + +/** @brief Performs a 3D look-up table transform of a multi-channel matrix. + +The function LUT3D fills the output matrix with values from the look-up table. Indices of the entries +are taken from the input matrix. Interpolation is applied for mapping 0-255 range values to 0-16 range of 3DLUT table. +The function processes each element of src as follows: +@code{.cpp} + dst[i][j][k] = lut3D[~src_r][~src_g][~src_b]; +@endcode +where ~ means approximation. +Output is a matrix of of @ref CV_8UC3. + +@note Function textual ID is "org.opencv.core.transform.LUT3D" + +@param src input matrix of @ref CV_8UC3. +@param lut3D look-up table 17x17x17 3-channel elements. +@param interpolation The depth of interpoolation to be used. +*/ +GAPI_EXPORTS GMat LUT3D(const GMat& src, const GMat& lut3D, int interpolation = INTER_NEAREST); + +/** @brief Converts a matrix to another data depth with optional scaling. + +The method converts source pixel values to the target data depth. saturate_cast\<\> is applied at +the end to avoid possible overflows: + +\f[m(x,y) = saturate \_ cast( \alpha (*this)(x,y) + \beta )\f] +Output matrix must be of the same size as input one. + +@note Function textual ID is "org.opencv.core.transform.convertTo" +@param src input matrix to be converted from. +@param rdepth desired output matrix depth or, rather, the depth since the number of channels are the +same as the input has; if rdepth is negative, the output matrix will have the same depth as the input. +@param alpha optional scale factor. +@param beta optional delta added to the scaled values. + */ +GAPI_EXPORTS GMat convertTo(const GMat& src, int rdepth, double alpha=1, double beta=0); + +/** @brief Normalizes the norm or value range of an array. + +The function normalizes scale and shift the input array elements so that +\f[\| \texttt{dst} \| _{L_p}= \texttt{alpha}\f] +(where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that +\f[\min _I \texttt{dst} (I)= \texttt{alpha} , \, \, \max _I \texttt{dst} (I)= \texttt{beta}\f] +when normType=NORM_MINMAX (for dense arrays only). + +@note Function textual ID is "org.opencv.core.normalize" + +@param src input array. +@param alpha norm value to normalize to or the lower range boundary in case of the range +normalization. +@param beta upper range boundary in case of the range normalization; it is not used for the norm +normalization. +@param norm_type normalization type (see cv::NormTypes). +@param ddepth when negative, the output array has the same type as src; otherwise, it has the same +number of channels as src and the depth =ddepth. +@sa norm, Mat::convertTo +*/ +GAPI_EXPORTS GMat normalize(const GMat& src, double alpha, double beta, + int norm_type, int ddepth = -1); +//! @} gapi_transform + +} //namespace gapi +} //namespace cv + +#endif //OPENCV_GAPI_CORE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/core.hpp new file mode 100644 index 000000000..ec76fe5d5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/core.hpp @@ -0,0 +1,27 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_CPU_CORE_API_HPP +#define OPENCV_GAPI_CPU_CORE_API_HPP + +#include // GKernelPackage +#include "opencv2/gapi/own/exports.hpp" // GAPI_EXPORTS + +namespace cv { +namespace gapi { +namespace core { +namespace cpu { + +GAPI_EXPORTS GKernelPackage kernels(); + +} // namespace cpu +} // namespace core +} // namespace gapi +} // namespace cv + + +#endif // OPENCV_GAPI_CPU_CORE_API_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/gcpukernel.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/gcpukernel.hpp new file mode 100644 index 000000000..facaab6aa --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/gcpukernel.hpp @@ -0,0 +1,266 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GCPUKERNEL_HPP +#define OPENCV_GAPI_GCPUKERNEL_HPP + +#include +#include +#include +#include + +#include +#include +#include +#include +#include //to_ocv +#include //suppress_unused_warning + +// FIXME: namespace scheme for backends? +namespace cv { + +namespace gimpl +{ + // Forward-declare an internal class + class GCPUExecutable; +} // namespace gimpl + +namespace gapi +{ +namespace cpu +{ + /** + * \addtogroup gapi_std_backends + * @{ + * + * @brief G-API backends available in this OpenCV version + * + * G-API backends play a corner stone role in G-API execution + * stack. Every backend is hardware-oriented and thus can run its + * kernels efficiently on the target platform. + * + * Backends are usually "back boxes" for G-API users -- on the API + * side, all backends are represented as different objects of the + * same class cv::gapi::GBackend. User can manipulate with backends + * mainly by specifying which kernels to use or where to look up + * for kernels first. + * + * @sa @ref gapi_hld, cv::gapi::lookup_order() + */ + + /** + * @brief Get a reference to CPU (OpenCV) backend. + * + * This is the default backend in G-API at the moment, providing + * broader functional coverage but losing some graph model + * advantages. Provided mostly for reference and prototyping + * purposes. + * + * @sa gapi_std_backends + */ + GAPI_EXPORTS cv::gapi::GBackend backend(); + /** @} */ +} // namespace cpu +} // namespace gapi + +// Represents arguments which are passed to a wrapped CPU function +// FIXME: put into detail? +class GAPI_EXPORTS GCPUContext +{ +public: + // Generic accessor API + template + const T& inArg(int input) { return m_args.at(input).get(); } + + // Syntax sugar + const cv::gapi::own::Mat& inMat(int input); + cv::gapi::own::Mat& outMatR(int output); // FIXME: Avoid cv::gapi::own::Mat m = ctx.outMatR() + + const cv::gapi::own::Scalar& inVal(int input); + cv::gapi::own::Scalar& outValR(int output); // FIXME: Avoid cv::gapi::own::Scalar s = ctx.outValR() + template std::vector& outVecR(int output) // FIXME: the same issue + { + return outVecRef(output).wref(); + } + +protected: + detail::VectorRef& outVecRef(int output); + + std::vector m_args; + + //FIXME: avoid conversion of arguments from internal representaion to OpenCV one on each call + //to OCV kernel. (This can be achieved by a two single time conversions in GCPUExecutable::run, + //once on enter for input and output arguments, and once before return for output arguments only + std::unordered_map m_results; + + friend class gimpl::GCPUExecutable; +}; + +class GAPI_EXPORTS GCPUKernel +{ +public: + // This function is kernel's execution entry point (does the processing work) + using F = std::function; + + GCPUKernel(); + explicit GCPUKernel(const F& f); + + void apply(GCPUContext &ctx); + +protected: + F m_f; +}; + +// FIXME: This is an ugly ad-hoc imlpementation. TODO: refactor + +namespace detail +{ +template struct get_in; +template<> struct get_in +{ + static cv::Mat get(GCPUContext &ctx, int idx) { return to_ocv(ctx.inMat(idx)); } +}; +template<> struct get_in +{ + static cv::Scalar get(GCPUContext &ctx, int idx) { return to_ocv(ctx.inVal(idx)); } +}; +template struct get_in > +{ + static const std::vector& get(GCPUContext &ctx, int idx) { return ctx.inArg(idx).rref(); } +}; +template struct get_in +{ + static T get(GCPUContext &ctx, int idx) { return ctx.inArg(idx); } +}; + +struct tracked_cv_mat{ + tracked_cv_mat(cv::gapi::own::Mat& m) : r{to_ocv(m)}, original_data{m.data} {} + cv::Mat r; + uchar* original_data; + + operator cv::Mat& (){ return r;} + void validate() const{ + if (r.data != original_data) + { + util::throw_error + (std::logic_error + ("OpenCV kernel output parameter was reallocated. \n" + "Incorrect meta data was provided ?")); + } + } +}; + +struct scalar_wrapper +{ + scalar_wrapper(cv::gapi::own::Scalar& s) : m_s{cv::gapi::own::to_ocv(s)}, m_org_s(s) {}; + operator cv::Scalar& () { return m_s; } + void writeBack() const { m_org_s = to_own(m_s); } + + cv::Scalar m_s; + cv::gapi::own::Scalar& m_org_s; +}; + +template +void postprocess(Outputs&... outs) +{ + struct + { + void operator()(tracked_cv_mat* bm) { bm->validate(); } + void operator()(scalar_wrapper* sw) { sw->writeBack(); } + void operator()(...) { } + + } validate; + //dummy array to unfold parameter pack + int dummy[] = { 0, (validate(&outs), 0)... }; + cv::util::suppress_unused_warning(dummy); +} + +template struct get_out; +template<> struct get_out +{ + static tracked_cv_mat get(GCPUContext &ctx, int idx) + { + auto& r = ctx.outMatR(idx); + return {r}; + } +}; +template<> struct get_out +{ + static scalar_wrapper get(GCPUContext &ctx, int idx) + { + auto& s = ctx.outValR(idx); + return {s}; + } +}; +template struct get_out> +{ + static std::vector& get(GCPUContext &ctx, int idx) + { + return ctx.outVecR(idx); + } +}; + +template +struct OCVCallHelper; + +// FIXME: probably can be simplified with std::apply or analogue. +template +struct OCVCallHelper, std::tuple > +{ + template + struct call_and_postprocess + { + template + static void call(Inputs&&... ins, Outputs&&... outs) + { + //not using a std::forward on outs is deliberate in order to + //cause compilation error, by tring to bind rvalue references to lvalue references + Impl::run(std::forward(ins)..., outs...); + + postprocess(outs...); + } + }; + + template + static void call_impl(GCPUContext &ctx, detail::Seq, detail::Seq) + { + //Make sure that OpenCV kernels do not reallocate memory for output parameters + //by comparing it's state (data ptr) before and after the call. + //This is done by converting each output Mat into tracked_cv_mat object, and binding + //them to parameters of ad-hoc function + //Convert own::Scalar to cv::Scalar before call kernel and run kernel + //convert cv::Scalar to own::Scalar after call kernel and write back results + call_and_postprocess::get(ctx, IIs))...>::call(get_in::get(ctx, IIs)..., get_out::get(ctx, OIs)...); + } + + static void call(GCPUContext &ctx) + { + call_impl(ctx, + typename detail::MkSeq::type(), + typename detail::MkSeq::type()); + } +}; + +} // namespace detail + +template +class GCPUKernelImpl: public detail::OCVCallHelper +{ + using P = detail::OCVCallHelper; + +public: + using API = K; + + static cv::gapi::GBackend backend() { return cv::gapi::cpu::backend(); } + static cv::GCPUKernel kernel() { return GCPUKernel(&P::call); } +}; + +#define GAPI_OCV_KERNEL(Name, API) struct Name: public cv::GCPUKernelImpl + +} // namespace cv + +#endif // OPENCV_GAPI_GCPUKERNEL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/imgproc.hpp new file mode 100644 index 000000000..0b96db08a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/cpu/imgproc.hpp @@ -0,0 +1,27 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_CPU_IMGPROC_API_HPP +#define OPENCV_GAPI_CPU_IMGPROC_API_HPP + +#include // GAPI_EXPORTS +#include // GKernelPackage + +namespace cv { +namespace gapi { +namespace imgproc { +namespace cpu { + +GAPI_EXPORTS GKernelPackage kernels(); + +} // namespace cpu +} // namespace imgproc +} // namespace gapi +} // namespace cv + + +#endif // OPENCV_GAPI_CPU_IMGPROC_API_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/core.hpp new file mode 100644 index 000000000..8c21f5760 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/core.hpp @@ -0,0 +1,20 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_FLUID_CORE_HPP +#define OPENCV_GAPI_FLUID_CORE_HPP + +#include // GKernelPackage +#include // GAPI_EXPORTS + +namespace cv { namespace gapi { namespace core { namespace fluid { + +GAPI_EXPORTS GKernelPackage kernels(); + +}}}} + +#endif // OPENCV_GAPI_FLUID_CORE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/gfluidbuffer.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/gfluidbuffer.hpp new file mode 100644 index 000000000..8a723128b --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/gfluidbuffer.hpp @@ -0,0 +1,154 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_FLUID_BUFFER_HPP +#define OPENCV_GAPI_FLUID_BUFFER_HPP + +#include +#include // accumulate +#include // ostream +#include // uint8_t + +#include +#include +#include + +#include "opencv2/gapi/util/optional.hpp" +#include "opencv2/gapi/own/scalar.hpp" +#include "opencv2/gapi/own/mat.hpp" + +namespace cv { +namespace gapi { +namespace fluid { + +struct Border +{ +#if !defined(GAPI_STANDALONE) + // This constructor is required to support existing kernels which are part of G-API + Border(int _type, cv::Scalar _val) : type(_type), value(to_own(_val)) {}; +#endif // !defined(GAPI_STANDALONE) + Border(int _type, cv::gapi::own::Scalar _val) : type(_type), value(_val) {}; + int type; + cv::gapi::own::Scalar value; +}; + +using BorderOpt = util::optional; + +bool operator == (const Border& b1, const Border& b2); + +class GAPI_EXPORTS Buffer; + +class GAPI_EXPORTS View +{ +public: + struct Cache + { + std::vector m_linePtrs; + GMatDesc m_desc; + int m_border_size = 0; + + inline const uint8_t* linePtr(int index) const + { + // "out_of_window" check: + // user must not request the lines which are outside of specified kernel window + GAPI_DbgAssert(index >= -m_border_size + && index < -m_border_size + static_cast(m_linePtrs.size())); + return m_linePtrs[index + m_border_size]; + } + }; + + View() = default; + + const inline uint8_t* InLineB(int index) const // -(w-1)/2...0...+(w-1)/2 for Filters + { + return m_cache->linePtr(index); + } + + template const inline T* InLine(int i) const + { + const uint8_t* ptr = this->InLineB(i); + return reinterpret_cast(ptr); + } + + inline operator bool() const { return m_priv != nullptr; } + bool ready() const; + inline int length() const { return m_cache->m_desc.size.width; } + int y() const; + + inline const GMatDesc& meta() const { return m_cache->m_desc; } + + class GAPI_EXPORTS Priv; // internal use only + Priv& priv(); // internal use only + const Priv& priv() const; // internal use only + + View(Priv* p); + +private: + std::shared_ptr m_priv; + const Cache* m_cache; +}; + +class GAPI_EXPORTS Buffer +{ +public: + struct Cache + { + std::vector m_linePtrs; + GMatDesc m_desc; + }; + + // Default constructor (executable creation stage, + // all following initialization performed in Priv::init()) + Buffer(); + // Scratch constructor (user kernels) + Buffer(const cv::GMatDesc &desc); + + // Constructor for intermediate buffers (for tests) + Buffer(const cv::GMatDesc &desc, + int max_line_consumption, int border_size, + int skew, + int wlpi, + BorderOpt border); + // Constructor for in/out buffers (for tests) + Buffer(const cv::gapi::own::Mat &data, bool is_input); + + inline uint8_t* OutLineB(int index = 0) + { + return m_cache->m_linePtrs[index]; + } + + template inline T* OutLine(int index = 0) + { + uint8_t* ptr = this->OutLineB(index); + return reinterpret_cast(ptr); + } + + int y() const; + + int linesReady() const; + void debug(std::ostream &os) const; + inline int length() const { return m_cache->m_desc.size.width; } + int lpi() const; // LPI for WRITER + + inline const GMatDesc& meta() const { return m_cache->m_desc; } + + View mkView(int borderSize, bool ownStorage); + + class GAPI_EXPORTS Priv; // internal use only + Priv& priv(); // internal use only + const Priv& priv() const; // internal use only + +private: + std::shared_ptr m_priv; + const Cache* m_cache; +}; + +} // namespace cv::gapi::fluid +} // namespace cv::gapi +} // namespace cv + +#endif // OPENCV_GAPI_FLUID_BUFFER_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/gfluidkernel.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/gfluidkernel.hpp new file mode 100644 index 000000000..b6adf9e11 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/gfluidkernel.hpp @@ -0,0 +1,303 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_FLUID_KERNEL_HPP +#define OPENCV_GAPI_FLUID_KERNEL_HPP + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +// FIXME: namespace scheme for backends? +namespace cv { + +namespace gapi +{ +namespace fluid +{ + /** + * \addtogroup gapi_std_backends G-API Standard backends + * @{ + */ + /** + * @brief Get a reference to Fluid backend. + * + * @sa gapi_std_backends + */ + GAPI_EXPORTS cv::gapi::GBackend backend(); + /** @} */ +} // namespace flud +} // namespace gapi + + +class GAPI_EXPORTS GFluidKernel +{ +public: + enum class Kind + { + Filter, + Resize, + NV12toRGB + }; + + // This function is a generic "doWork" callback + using F = std::function &)>; + + // This function is a generic "initScratch" callback + using IS = std::function; + + // This function is a generic "resetScratch" callback + using RS = std::function; + + // This function describes kernel metadata inference rule. + using M = std::function; + + // This function is a generic "getBorder" callback (extracts border-related data from kernel's input parameters) + using B = std::function; + + // FIXME: move implementations out of header file + GFluidKernel() {} + GFluidKernel(int w, Kind k, int l, bool scratch, const F& f, const IS &is, const RS &rs, const B& b) + : m_window(w) + , m_kind(k) + , m_lpi(l) + , m_scratch(scratch) + , m_f(f) + , m_is(is) + , m_rs(rs) + , m_b(b) {} + + int m_window = -1; + Kind m_kind; + const int m_lpi = -1; + const bool m_scratch = false; + + const F m_f; + const IS m_is; + const RS m_rs; + const B m_b; +}; + +// FIXME!!! +// This is the temporary and experimental API +// which should be replaced by runtime roi-based scheduling +struct GFluidOutputRois +{ + std::vector rois; +}; + +namespace detail +{ +template<> struct CompileArgTag +{ + static const char* tag() { return "gapi.fluid.outputRois"; } +}; +} // namespace detail + +namespace detail +{ +template struct fluid_get_in; +template<> struct fluid_get_in +{ + static const cv::gapi::fluid::View& get(const cv::GArgs &in_args, int idx) + { + return in_args[idx].unsafe_get(); + } +}; + +template<> struct fluid_get_in +{ + // FIXME: change to return by reference when moved to own::Scalar +#if !defined(GAPI_STANDALONE) + static const cv::Scalar get(const cv::GArgs &in_args, int idx) + { + return cv::gapi::own::to_ocv(in_args[idx].unsafe_get()); + } +#else + static const cv::gapi::own::Scalar get(const cv::GArgs &in_args, int idx) + { + return in_args[idx].get(); + } +#endif // !defined(GAPI_STANDALONE) +}; +template struct fluid_get_in +{ + static const T& get(const cv::GArgs &in_args, int idx) + { + return in_args[idx].unsafe_get(); + } +}; + +template +struct scratch_helper; + +template +struct scratch_helper +{ + // Init + template + static void help_init_impl(const cv::GMetaArgs &metas, + const cv::GArgs &in_args, + gapi::fluid::Buffer &scratch_buf, + detail::Seq) + { + Impl::initScratch(get_in_meta(metas, in_args, IIs)..., scratch_buf); + } + + static void help_init(const cv::GMetaArgs &metas, + const cv::GArgs &in_args, + gapi::fluid::Buffer &b) + { + help_init_impl(metas, in_args, b, typename detail::MkSeq::type()); + } + + // Reset + static void help_reset(gapi::fluid::Buffer &b) + { + Impl::resetScratch(b); + } +}; + +template +struct scratch_helper +{ + static void help_init(const cv::GMetaArgs &, + const cv::GArgs &, + gapi::fluid::Buffer &) + { + GAPI_Assert(false); + } + static void help_reset(gapi::fluid::Buffer &) + { + GAPI_Assert(false); + } +}; + +template struct is_gmat_type +{ + static const constexpr bool value = std::is_same::value; +}; + +template +struct get_border_helper; + +template +struct get_border_helper +{ + template + static gapi::fluid::BorderOpt get_border_impl(const GMetaArgs &metas, + const cv::GArgs &in_args, + cv::detail::Seq) + { + return util::make_optional(Impl::getBorder(cv::detail::get_in_meta(metas, in_args, IIs)...)); + } + + static gapi::fluid::BorderOpt help(const GMetaArgs &metas, + const cv::GArgs &in_args) + { + return get_border_impl(metas, in_args, typename detail::MkSeq::type()); + } +}; + +template +struct get_border_helper +{ + static gapi::fluid::BorderOpt help(const cv::GMetaArgs &, + const cv::GArgs &) + { + return {}; + } +}; + +template +struct FluidCallHelper; + +template +struct FluidCallHelper, std::tuple, UseScratch> +{ + static_assert(all_satisfy::value, "return type must be GMat"); + + // Execution dispatcher //////////////////////////////////////////////////// + template + static void call_impl(const cv::GArgs &in_args, + const std::vector &out_bufs, + detail::Seq, + detail::Seq) + { + Impl::run(fluid_get_in::get(in_args, IIs)..., *out_bufs[OIs]...); + } + + static void call(const cv::GArgs &in_args, + const std::vector &out_bufs) + { + constexpr int numOuts = (sizeof...(Outs)) + (UseScratch ? 1 : 0); + call_impl(in_args, out_bufs, + typename detail::MkSeq::type(), + typename detail::MkSeq::type()); + } + + // Scratch buffer initialization dispatcher //////////////////////////////// + static void init_scratch(const GMetaArgs &metas, + const cv::GArgs &in_args, + gapi::fluid::Buffer &b) + { + scratch_helper::help_init(metas, in_args, b); + } + + // Scratch buffer reset dispatcher ///////////////////////////////////////// + static void reset_scratch(gapi::fluid::Buffer &scratch_buf) + { + scratch_helper::help_reset(scratch_buf); + } + + static gapi::fluid::BorderOpt getBorder(const GMetaArgs &metas, const cv::GArgs &in_args) + { + // User must provide "init" callback if Window != 1 + // TODO: move to constexpr if when we enable C++17 + constexpr bool callCustomGetBorder = (Impl::Window != 1); + return get_border_helper::help(metas, in_args); + } +}; +} // namespace detail + + +template +class GFluidKernelImpl +{ + static const int LPI = 1; + static const auto Kind = GFluidKernel::Kind::Filter; + using P = detail::FluidCallHelper; + +public: + using API = K; + + static GFluidKernel kernel() + { + // FIXME: call() and getOutMeta() needs to be renamed so it is clear these + // functions are internal wrappers, not user API + return GFluidKernel(Impl::Window, Impl::Kind, Impl::LPI, + UseScratch, + &P::call, &P::init_scratch, &P::reset_scratch, &P::getBorder); + } + + static cv::gapi::GBackend backend() { return cv::gapi::fluid::backend(); } +}; + +#define GAPI_FLUID_KERNEL(Name, API, Scratch) struct Name: public cv::GFluidKernelImpl + +} // namespace cv + +#endif // OPENCV_GAPI_GCPUKERNEL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/imgproc.hpp new file mode 100644 index 000000000..dedfa9dbe --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/fluid/imgproc.hpp @@ -0,0 +1,20 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_FLUID_IMGPROC_HPP +#define OPENCV_GAPI_FLUID_IMGPROC_HPP + +#include // GKernelPackage +#include // GAPI_EXPORTS + +namespace cv { namespace gapi { namespace imgproc { namespace fluid { + +GAPI_EXPORTS GKernelPackage kernels(); + +}}}} + +#endif // OPENCV_GAPI_FLUID_IMGPROC_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/garg.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/garg.hpp new file mode 100644 index 000000000..f8a317006 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/garg.hpp @@ -0,0 +1,126 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GARG_HPP +#define OPENCV_GAPI_GARG_HPP + +#include +#include + +#include +#include "opencv2/gapi/own/mat.hpp" + +#include "opencv2/gapi/util/any.hpp" +#include "opencv2/gapi/util/variant.hpp" + +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/gscalar.hpp" +#include "opencv2/gapi/garray.hpp" +#include "opencv2/gapi/gtype_traits.hpp" +#include "opencv2/gapi/gmetaarg.hpp" +#include "opencv2/gapi/own/scalar.hpp" + +namespace cv { + +class GArg; + +namespace detail { + template + using is_garg = std::is_same::type>; +} + +// Parameter holder class for a node +// Depending on platform capabilities, can either support arbitrary types +// (as `boost::any`) or a limited number of types (as `boot::variant`). +// FIXME: put into "details" as a user shouldn't use it in his code +class GAPI_EXPORTS GArg +{ +public: + GArg() {} + + template::value, int>::type = 0> + explicit GArg(const T &t) + : kind(detail::GTypeTraits::kind) + , value(detail::wrap_gapi_helper::wrap(t)) + { + } + + template::value, int>::type = 0> + explicit GArg(T &&t) + : kind(detail::GTypeTraits::type>::kind) + , value(detail::wrap_gapi_helper::wrap(t)) + { + } + + template inline T& get() + { + return util::any_cast::type>(value); + } + + template inline const T& get() const + { + return util::any_cast::type>(value); + } + + template inline T& unsafe_get() + { + return util::unsafe_any_cast::type>(value); + } + + template inline const T& unsafe_get() const + { + return util::unsafe_any_cast::type>(value); + } + + detail::ArgKind kind = detail::ArgKind::OPAQUE; + +protected: + util::any value; +}; + +using GArgs = std::vector; + +// FIXME: Express as M::type +// FIXME: Move to a separate file! +using GRunArg = util::variant< +#if !defined(GAPI_STANDALONE) + cv::Mat, + cv::Scalar, + cv::UMat, +#endif // !defined(GAPI_STANDALONE) + cv::gapi::own::Mat, + cv::gapi::own::Scalar, + cv::detail::VectorRef + >; +using GRunArgs = std::vector; + +using GRunArgP = util::variant< +#if !defined(GAPI_STANDALONE) + cv::Mat*, + cv::Scalar*, + cv::UMat*, +#endif // !defined(GAPI_STANDALONE) + cv::gapi::own::Mat*, + cv::gapi::own::Scalar*, + cv::detail::VectorRef + >; +using GRunArgsP = std::vector; + + +template inline GRunArgs gin(const Ts&... args) +{ + return GRunArgs{ GRunArg(detail::wrap_host_helper::wrap_in(args))... }; +} + +template inline GRunArgsP gout(Ts&... args) +{ + return GRunArgsP{ GRunArgP(detail::wrap_host_helper::wrap_out(args))... }; +} + +} // namespace cv + +#endif // OPENCV_GAPI_GARG_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/garray.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/garray.hpp new file mode 100644 index 000000000..87d00155b --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/garray.hpp @@ -0,0 +1,251 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GARRAY_HPP +#define OPENCV_GAPI_GARRAY_HPP + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include "opencv2/gapi/own/assert.hpp" + +namespace cv +{ +// Forward declaration; GNode and GOrigin are an internal +// (user-inaccessible) classes. +class GNode; +struct GOrigin; + +template class GArray; + +/** + * \addtogroup gapi_meta_args + * @{ + */ +struct GArrayDesc +{ + // FIXME: Body + // FIXME: Also implement proper operator== then + bool operator== (const GArrayDesc&) const { return true; } +}; +template GArrayDesc descr_of(const std::vector &) { return {};} +static inline GArrayDesc empty_array_desc() {return {}; } +/** @} */ + +std::ostream& operator<<(std::ostream& os, const cv::GArrayDesc &desc); + +namespace detail +{ + // ConstructVec is a callback which stores information about T and is used by + // G-API runtime to construct arrays in host memory (T remains opaque for G-API). + // ConstructVec is carried into G-API internals by GArrayU. + // Currently it is suitable for Host (CPU) plugins only, real offload may require + // more information for manual memory allocation on-device. + class VectorRef; + using ConstructVec = std::function; + + + // This class strips type information from GArray and makes it usable + // in the G-API graph compiler (expression unrolling, graph generation, etc). + // Part of GProtoArg. + class GAPI_EXPORTS GArrayU + { + public: + GArrayU(const GNode &n, std::size_t out); // Operation result constructor + + GOrigin& priv(); // Internal use only + const GOrigin& priv() const; // Internal use only + + protected: + GArrayU(); // Default constructor + template friend class cv::GArray; // (avialable to GArray only) + + void setConstructFcn(ConstructVec &&cv); // Store T-aware constructor + + std::shared_ptr m_priv; + }; + + // This class represents a typed STL vector reference. + // Depending on origins, this reference may be either "just a" reference to + // an object created externally, OR actually own the underlying object + // (be value holder). + class BasicVectorRef + { + public: + std::size_t m_elemSize = 0ul; + cv::GArrayDesc m_desc; + virtual ~BasicVectorRef() {} + }; + + template class VectorRefT: public BasicVectorRef + { + using empty_t = util::monostate; + using ro_ext_t = const std::vector *; + using rw_ext_t = std::vector *; + using rw_own_t = std::vector ; + util::variant m_ref; + + inline bool isEmpty() const { return util::holds_alternative(m_ref); } + inline bool isROExt() const { return util::holds_alternative(m_ref); } + inline bool isRWExt() const { return util::holds_alternative(m_ref); } + inline bool isRWOwn() const { return util::holds_alternative(m_ref); } + + void init(const std::vector* vec = nullptr) + { + m_elemSize = sizeof(T); + if (vec) m_desc = cv::descr_of(*vec); + } + + public: + VectorRefT() { init(); } + virtual ~VectorRefT() {} + + explicit VectorRefT(const std::vector& vec) : m_ref(&vec) { init(&vec); } + explicit VectorRefT(std::vector& vec) : m_ref(&vec) { init(&vec); } + explicit VectorRefT(std::vector&& vec) : m_ref(std::move(vec)) { init(&vec); } + + // Reset a VectorRefT. Called only for objects instantiated + // internally in G-API (e.g. temporary GArray's within a + // computation). Reset here means both initialization + // (creating an object) and reset (discarding its existing + // content before the next execution). Must never be called + // for external VectorRefTs. + void reset() + { + if (isEmpty()) + { + std::vector empty_vector; + m_desc = cv::descr_of(empty_vector); + m_ref = std::move(empty_vector); + GAPI_Assert(isRWOwn()); + } + else if (isRWOwn()) + { + util::get(m_ref).clear(); + } + else GAPI_Assert(false); // shouldn't be called in *EXT modes + } + + // Obtain a WRITE reference to underlying object + // Used by CPU kernel API wrappers when a kernel execution frame + // is created + std::vector& wref() + { + GAPI_Assert(isRWExt() || isRWOwn()); + if (isRWExt()) return *util::get(m_ref); + if (isRWOwn()) return util::get(m_ref); + util::throw_error(std::logic_error("Impossible happened")); + } + + // Obtain a READ reference to underlying object + // Used by CPU kernel API wrappers when a kernel execution frame + // is created + const std::vector& rref() const + { + // ANY vector can be accessed for reading, even if it declared for + // output. Example -- a GComputation from [in] to [out1,out2] + // where [out2] is a result of operation applied to [out1]: + // + // GComputation boundary + // . . . . . . . + // . . + // [in] ----> foo() ----> [out1] + // . . : + // . . . .:. . . + // . V . + // . bar() ---> [out2] + // . . . . . . . . . . . . + // + if (isROExt()) return *util::get(m_ref); + if (isRWExt()) return *util::get(m_ref); + if (isRWOwn()) return util::get(m_ref); + util::throw_error(std::logic_error("Impossible happened")); + } + }; + + // This class strips type information from VectorRefT<> and makes it usable + // in the G-API executables (carrying run-time data/information to kernels). + // Part of GRunArg. + // Its methods are typed proxies to VectorRefT. + // VectorRef maintains "reference" semantics so two copies of VectoRef refer + // to the same underlying object. + // FIXME: Put a good explanation on why cv::OutputArray doesn't fit this role + class VectorRef + { + std::shared_ptr m_ref; + + template inline void check() const + { + GAPI_DbgAssert(dynamic_cast*>(m_ref.get()) != nullptr); + GAPI_Assert(sizeof(T) == m_ref->m_elemSize); + } + + public: + VectorRef() = default; + template explicit VectorRef(const std::vector& vec) : m_ref(new VectorRefT(vec)) {} + template explicit VectorRef(std::vector& vec) : m_ref(new VectorRefT(vec)) {} + template explicit VectorRef(std::vector&& vec) : m_ref(new VectorRefT(vec)) {} + + template void reset() + { + if (!m_ref) m_ref.reset(new VectorRefT()); + + check(); + static_cast&>(*m_ref).reset(); + } + + template std::vector& wref() + { + check(); + return static_cast&>(*m_ref).wref(); + } + + template const std::vector& rref() const + { + check(); + return static_cast&>(*m_ref).rref(); + } + + cv::GArrayDesc descr_of() const + { + return m_ref->m_desc; + } + }; +} // namespace detail + +/** \addtogroup gapi_data_objects + * @{ + */ + +template class GArray +{ +public: + GArray() { putDetails(); } // Empty constructor + explicit GArray(detail::GArrayU &&ref) // GArrayU-based constructor + : m_ref(ref) { putDetails(); } // (used by GCall, not for users) + + detail::GArrayU strip() const { return m_ref; } + +private: + static void VCTor(detail::VectorRef& vref) { vref.reset(); } + void putDetails() {m_ref.setConstructFcn(&VCTor); } + + detail::GArrayU m_ref; +}; + +/** @} */ + +} // namespace cv + +#endif // OPENCV_GAPI_GARRAY_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gcall.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcall.hpp new file mode 100644 index 000000000..baf4f44e2 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcall.hpp @@ -0,0 +1,63 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GCALL_HPP +#define OPENCV_GAPI_GCALL_HPP + +#include "opencv2/gapi/garg.hpp" // GArg +#include "opencv2/gapi/gmat.hpp" // GMat +#include "opencv2/gapi/gscalar.hpp" // GScalar +#include "opencv2/gapi/garray.hpp" // GArray + +namespace cv { + +struct GKernel; + +// The whole idea of this class is to represent an operation +// which is applied to arguments. This is part of public API, +// since it is what users should use to define kernel interfaces. + +class GAPI_EXPORTS GCall final +{ +public: + class Priv; + + explicit GCall(const GKernel &k); + ~GCall(); + + template + GCall& pass(Ts&&... args) + { + setArgs({cv::GArg(std::move(args))...}); + return *this; + } + + // A generic yield method - obtain a link to operator's particular GMat output + GMat yield (int output = 0); + GScalar yieldScalar(int output = 0); + + template GArray yieldArray(int output = 0) + { + return GArray(yieldArray(output)); + } + + // Internal use only + Priv& priv(); + const Priv& priv() const; + +protected: + std::shared_ptr m_priv; + + void setArgs(std::vector &&args); + + // Public version returns a typed array, this one is implementation detail + detail::GArrayU yieldArray(int output = 0); +}; + +} // namespace cv + +#endif // OPENCV_GAPI_GCALL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gcommon.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcommon.hpp new file mode 100644 index 000000000..6a3f51f77 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcommon.hpp @@ -0,0 +1,166 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GCOMMON_HPP +#define OPENCV_GAPI_GCOMMON_HPP + +#include // std::hash +#include // std::vector +#include // decay + +#include + +#include "opencv2/gapi/util/any.hpp" +#include "opencv2/gapi/own/exports.hpp" +#include "opencv2/gapi/own/assert.hpp" + +namespace cv { + +namespace detail +{ + // This is a trait-like structure to mark backend-specific compile arguments + // with tags + template struct CompileArgTag; + template struct CompileArgTag + { + static const char* tag() { return ""; }; + }; +} + +// This definition is here because it is reused by both public(?) and internal +// modules. Keeping it here wouldn't expose public details (e.g., API-level) +// to components which are internal and operate on a lower-level entities +// (e.g., compiler, backends). +// FIXME: merge with ArgKind? +// FIXME: replace with variant[format desc]? +enum class GShape: int +{ + GMAT, + GSCALAR, + GARRAY, +}; + +struct GCompileArg; + +namespace detail { + template + using is_compile_arg = std::is_same::type>; +} +// CompileArg is an unified interface over backend-specific compilation +// information +// FIXME: Move to a separate file? +/** \addtogroup gapi_compile_args + * @{ + * + * @brief Compilation arguments: a set of data structures which can be + * passed to control compilation process + * + * G-API comes with a number of graph compilation options which can be + * passed to cv::GComputation::apply() or + * cv::GComputation::compile(). Known compilation options are listed + * in this page, while extra backends may introduce their own + * compilation options (G-API transparently accepts _everything_ which + * can be passed to cv::compile_args(), it depends on underlying + * backends if an option would be interpreted or not). + * + * For example, if an example computation is executed like this: + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp graph_decl_apply + * + * Extra parameter specifying which kernels to compile with can be + * passed like this: + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp apply_with_param + */ + +/** + * @brief Represents an arbitrary compilation argument. + * + * Any value can be wrapped into cv::GCompileArg, but only known ones + * (to G-API or its backends) can be interpreted correctly. + * + * Normally objects of this class shouldn't be created manually, use + * cv::compile_args() function which automatically wraps everything + * passed in (a variadic template parameter pack) into a vector of + * cv::GCompileArg objects. + */ +struct GAPI_EXPORTS GCompileArg +{ +public: + std::string tag; + + // FIXME: use decay in GArg/other trait-based wrapper before leg is shot! + template::value, int>::type = 0> + explicit GCompileArg(T &&t) + : tag(detail::CompileArgTag::type>::tag()) + , arg(t) + { + } + + template T& get() + { + return util::any_cast(arg); + } + + template const T& get() const + { + return util::any_cast(arg); + } + +private: + util::any arg; +}; + +using GCompileArgs = std::vector; + +/** + * Wraps a list of arguments (a parameter pack) into a vector of + * compilation arguments (cv::GCompileArg). + */ +template GCompileArgs compile_args(Ts&&... args) +{ + return GCompileArgs{ GCompileArg(args)... }; +} + +/** + * @brief Ask G-API to dump compiled graph in Graphviz format under + * the given file name. + * + * Specifies a graph dump path (path to .dot file to be generated). + * G-API will dump a .dot file under specified path during a + * compilation process if this flag is passed. + */ +struct graph_dump_path +{ + std::string m_dump_path; +}; +/** @} */ + +namespace detail +{ + template<> struct CompileArgTag + { + static const char* tag() { return "gapi.graph_dump_path"; } + }; +} + +} // namespace cv + +// std::hash overload for GShape +namespace std +{ +template<> struct hash +{ + size_t operator() (cv::GShape sh) const + { + return std::hash()(static_cast(sh)); + } +}; +} // namespace std + + +#endif // OPENCV_GAPI_GCOMMON_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gcompiled.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcompiled.hpp new file mode 100644 index 000000000..ad491b733 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcompiled.hpp @@ -0,0 +1,217 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GCOMPILED_HPP +#define OPENCV_GAPI_GCOMPILED_HPP + +#include + +#include "opencv2/gapi/opencv_includes.hpp" +#include "opencv2/gapi/own/assert.hpp" +#include "opencv2/gapi/garg.hpp" + +namespace cv { + +// This class represents a compiled computation. +// In theory (and ideally), it can be used w/o the rest of APIs. +// In theory (and ideally), it can be serialized/deserialized. +// It can enable scenarious like deployment to an autonomous devince, FuSa, etc. +// +// Currently GCompiled assumes all GMats you used to pass data to G-API +// are valid and not destroyed while you use a GCompiled object. +// +// FIXME: In future, there should be a way to name I/O objects and specify it +// to GCompiled externally (for example, when it is loaded on the target system). + +/** + * \addtogroup gapi_main_classes + * @{ + */ +/** + * @brief Represents a compiled computation (graph). Can only be used + * with image / data formats & resolutions it was compiled for, with + * some exceptions. + * + * This class represents a product of graph compilation (calling + * cv::GComputation::compile()). Objects of this class actually do + * data processing, and graph execution is incapsulated into objects + * of this class. Execution model itself depends on kernels and + * backends which were using during the compilation, see @ref + * gapi_compile_args for details. + * + * In a general case, GCompiled objects can be applied to data only in + * that formats/resolutions they were compiled for (see @ref + * gapi_meta_args). However, if the underlying backends allow, a + * compiled object can be _reshaped_ to handle data (images) of + * different resolution, though formats and types must remain the same. + * + * GCompiled is very similar to `std::function<>` in its semantics -- + * running it looks like a function call in the user code. + * + * At the moment, GCompiled objects are not reentrant -- generally, + * the objects are stateful since graph execution itself is a stateful + * process and this state is now maintained in GCompiled's own memory + * (not on the process stack). + * + * At the same time, two different GCompiled objects produced from the + * single cv::GComputation are completely independent and can be used + * concurrently. + */ +class GAPI_EXPORTS GCompiled +{ +public: + /// @private + class GAPI_EXPORTS Priv; + + /** + * @brief Constructs an empty object + */ + GCompiled(); + + /** + * @brief Run the compiled computation, a generic version. + * + * @param ins vector of inputs to process. + * @param outs vector of outputs to produce. + * + * Input/output vectors must have the same number of elements as + * defined in the cv::GComputation protocol (at the moment of its + * construction). Shapes of elements also must conform to protocol + * (e.g. cv::Mat needs to be passed where cv::GMat has been + * declared as input, and so on). Run-time exception is generated + * otherwise. + * + * Objects in output vector may remain empty (like cv::Mat) -- + * G-API will automatically initialize output objects to proper formats. + * + * @note Don't construct GRunArgs/GRunArgsP objects manually, use + * cv::gin()/cv::gout() wrappers instead. + */ + void operator() (GRunArgs &&ins, GRunArgsP &&outs); // Generic arg-to-arg +#if !defined(GAPI_STANDALONE) + + /** + * @brief Execute an unary computation + * + * @overload + * @param in input cv::Mat for unary computation + * @param out output cv::Mat for unary computation + * process. + */ + void operator() (cv::Mat in, cv::Mat &out); // Unary overload + + /** + * @brief Execute an unary computation + * + * @overload + * @param in input cv::Mat for unary computation + * @param out output cv::Scalar for unary computation + * process. + */ + void operator() (cv::Mat in, cv::Scalar &out); // Unary overload (scalar) + + /** + * @brief Execute a binary computation + * + * @overload + * @param in1 first input cv::Mat for binary computation + * @param in2 second input cv::Mat for binary computation + * @param out output cv::Mat for binary computation + * process. + */ + void operator() (cv::Mat in1, cv::Mat in2, cv::Mat &out); // Binary overload + + /** + * @brief Execute an binary computation + * + * @overload + * @param in1 first input cv::Mat for binary computation + * @param in2 second input cv::Mat for binary computation + * @param out output cv::Scalar for binary computation + * process. + */ + void operator() (cv::Mat in1, cv::Mat in2, cv::Scalar &out); // Binary overload (scalar) + + /** + * @brief Execute a computation with arbitrary number of + * inputs/outputs. + * + * @overload + * @param ins vector of input cv::Mat objects to process by the + * computation. + * @param outs vector of output cv::Mat objects to produce by the + * computation. + * + * Numbers of elements in ins/outs vectos must match numbers of + * inputs/outputs which were used to define the source GComputation. + */ + void operator() (const std::vector &ins, // Compatibility overload + const std::vector &outs); +#endif // !defined(GAPI_STANDALONE) + /// @private + Priv& priv(); + + /** + * @brief Check if compiled object is valid (non-empty) + * + * @return true if the object is runnable (valid), false otherwise + */ + explicit operator bool () const; + + /** + * @brief Vector of metadata this graph was compiled for. + * + * @return Unless _reshape_ is not supported, return value is the + * same vector which was passed to cv::GComputation::compile() to + * produce this compiled object. Otherwise, it is the latest + * metadata vector passed to reshape() (if that call was + * successful). + */ + const GMetaArgs& metas() const; // Meta passed to compile() + + /** + * @brief Vector of metadata descriptions of graph outputs + * + * @return vector with formats/resolutions of graph's output + * objects, auto-inferred from input metadata vector by + * operations which form this computation. + * + * @note GCompiled objects produced from the same + * cv::GComputiation graph with different input metas may return + * different values in this vector. + */ + const GMetaArgs& outMetas() const; + + /** + * @brief Check if the underlying backends support reshape or not. + * + * @return true if supported, false otherwise. + */ + bool canReshape() const; + + /** + * @brief Reshape a compiled graph to support new image + * resolutions. + * + * Throws an exception if an error occurs. + * + * @param inMetas new metadata to reshape on. Vector size and + * metadata shapes must match the computation's protocol. + * @param args compilation arguments to use. + */ + // FIXME: Why it requires compile args? + void reshape(const GMetaArgs& inMetas, const GCompileArgs& args); + +protected: + /// @private + std::shared_ptr m_priv; +}; +/** @} */ + +} + +#endif // OPENCV_GAPI_GCOMPILED_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gcompoundkernel.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcompoundkernel.hpp new file mode 100644 index 000000000..f4c02344e --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcompoundkernel.hpp @@ -0,0 +1,123 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GCOMPOUNDKERNEL_HPP +#define OPENCV_GAPI_GCOMPOUNDKERNEL_HPP + +#include +#include +#include +#include + +namespace cv { +namespace gapi +{ +namespace compound +{ + // FIXME User does not need to know about this function + // Needs that user may define compound kernels(as cpu kernels) + GAPI_EXPORTS cv::gapi::GBackend backend(); +} // namespace compound +} // namespace gapi + +namespace detail +{ + +struct GCompoundContext +{ + explicit GCompoundContext(const GArgs& in_args); + template + const T& inArg(int input) { return m_args.at(input).get(); } + + GArgs m_args; + GArgs m_results; +}; + +class GAPI_EXPORTS GCompoundKernel +{ +// Compound kernel must use all of it's inputs +public: + using F = std::function; + + explicit GCompoundKernel(const F& f); + void apply(GCompoundContext& ctx); + +protected: + F m_f; +}; + +template struct get_compound_in +{ + static T get(GCompoundContext &ctx, int idx) { return ctx.inArg(idx); } +}; + +template struct get_compound_in> +{ + static cv::GArray get(GCompoundContext &ctx, int idx) + { + auto array = cv::GArray(); + ctx.m_args[idx] = GArg(array); + return array; + } +}; + +// Kernel may return one object(GMat, GScalar) or a tuple of objects. +// This helper is needed to cast return value to the same form(tuple) +template +struct tuple_wrap_helper; + +template struct tuple_wrap_helper +{ + static std::tuple get(T&& obj) { return std::make_tuple(std::move(obj)); } +}; + +template +struct tuple_wrap_helper> +{ + static std::tuple get(std::tuple&& objs) { return std::forward>(objs); } +}; + +template +struct GCompoundCallHelper; + +template +struct GCompoundCallHelper, std::tuple > +{ + template + static void expand_impl(GCompoundContext &ctx, detail::Seq, detail::Seq) + { + auto result = Impl::expand(get_compound_in::get(ctx, IIs)...); + auto tuple_return = tuple_wrap_helper::get(std::move(result)); + ctx.m_results = { cv::GArg(std::get(tuple_return))... }; + } + + static void expand(GCompoundContext &ctx) + { + expand_impl(ctx, + typename detail::MkSeq::type(), + typename detail::MkSeq::type()); + } +}; + +template +class GCompoundKernelImpl: public cv::detail::GCompoundCallHelper +{ + using P = cv::detail::GCompoundCallHelper; + +public: + using API = K; + + static cv::gapi::GBackend backend() { return cv::gapi::compound::backend(); } + static GCompoundKernel kernel() { return GCompoundKernel(&P::expand); } +}; + +} // namespace detail +#define GAPI_COMPOUND_KERNEL(Name, API) struct Name: public cv::detail::GCompoundKernelImpl + +} // namespace cv + +#endif // OPENCV_GAPI_GCOMPOUNDKERNEL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gcomputation.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcomputation.hpp new file mode 100644 index 000000000..439b349d8 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gcomputation.hpp @@ -0,0 +1,456 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GCOMPUTATION_HPP +#define OPENCV_GAPI_GCOMPUTATION_HPP + +#include + +#include "opencv2/gapi/util/util.hpp" +#include "opencv2/gapi/gcommon.hpp" +#include "opencv2/gapi/gproto.hpp" +#include "opencv2/gapi/garg.hpp" +#include "opencv2/gapi/gcompiled.hpp" + +namespace cv { + +namespace detail +{ + // FIXME: move to algorithm, cover with separate tests + // FIXME: replace with O(1) version (both memory and compilation time) + template + struct last_type; + + template + struct last_type { using type = T;}; + + template + struct last_type { using type = typename last_type::type; }; + + template + using last_type_t = typename last_type::type; +} + +/** + * \addtogroup gapi_main_classes + * @{ + */ +/** + * @brief GComputation class represents a captured computation + * graph. GComputation objects form boundaries for expression code + * user writes with G-API, allowing to compile and execute it. + * + * G-API computations are defined with input/output data + * objects. G-API will track automatically which operations connect + * specified outputs to the inputs, forming up a call graph to be + * executed. The below example expresses calculation of Sobel operator + * for edge detection (\f$G = \sqrt{G_x^2 + G_y^2}\f$): + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp graph_def + * + * Full pipeline can be now captured with this object declaration: + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp graph_cap_full + * + * Input/output data objects on which a call graph should be + * reconstructed are passed using special wrappers cv::GIn and + * cv::GOut. G-API will track automatically which operations form a + * path from inputs to outputs and build the execution graph appropriately. + * + * Note that cv::GComputation doesn't take ownership on data objects + * it is defined. Moreover, multiple GComputation objects may be + * defined on the same expressions, e.g. a smaller pipeline which + * expects that image gradients are already pre-calculated may be + * defined like this: + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp graph_cap_sub + * + * The resulting graph would expect two inputs and produce one + * output. In this case, it doesn't matter if gx/gy data objects are + * results of cv::gapi::Sobel operators -- G-API will stop unrolling + * expressions and building the underlying graph one reaching this + * data objects. + * + * The way how GComputation is defined is important as its definition + * specifies graph _protocol_ -- the way how the graph should be + * used. Protocol is defined by number of inputs, number of outputs, + * and shapes of inputs and outputs. + * + * In the above example, sobelEdge expects one Mat on input and + * produces one Mat; while sobelEdgeSub expects two Mats on input and + * produces one Mat. GComputation's protocol defines how other + * computaion methods should be used -- cv::GComputation::compile() and + * cv::GComputation::apply(). For example, if a graph is defined on + * two GMat inputs, two cv::Mat objects have to be passed to apply() + * for execution. GComputation checks protocol correctness in runtime + * so passing a different number of objects in apply() or passing + * cv::Scalar instead of cv::Mat there would compile well as a C++ + * source but raise an exception in run-time. G-API also comes with a + * typed wrapper cv::GComputationT<> which introduces this type-checking in + * compile-time. + * + * cv::GComputation itself is a thin object which just captures what + * the graph is. The compiled graph (which actually process data) is + * represented by class GCompiled. Use compile() method to generate a + * compiled graph with given compile options. cv::GComputation can + * also be used to process data with implicit graph compilation + * on-the-fly, see apply() for details. + * + * GComputation is a reference-counted object -- once defined, all its + * copies will refer to the same instance. + * + * @sa GCompiled + */ +class GAPI_EXPORTS GComputation +{ +public: + class Priv; + typedef std::function Generator; + + // Various constructors enable different ways to define a computation: ///// + // 1. Generic constructors + /** + * @brief Define a computation using a generator function. + * + * Graph can be defined in-place directly at the moment of its + * construction with a lambda: + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp graph_gen + * + * This may be useful since all temporary objects (cv::GMats) and + * namespaces can be localized to scope of lambda, without + * contaminating the parent scope with probably unnecessary objects + * and information. + * + * @param gen generator function which returns a cv::GComputation, + * see Generator. + */ + GComputation(const Generator& gen); // Generator + // overload + + /** + * @brief Generic GComputation constructor. + * + * Constructs a new graph with a given protocol, specified as a + * flow of operations connecting input/output objects. Throws if + * the passed boundaries are invalid, e.g. if there's no + * functional dependency (path) between given outputs and inputs. + * + * @param ins Input data vector. + * @param outs Output data vector. + * + * @note Don't construct GProtoInputArgs/GProtoOutputArgs objects + * directly, use cv::GIn()/cv::GOut() wrapper functions instead. + * + * @sa @ref gapi_data_objects + */ + GComputation(GProtoInputArgs &&ins, + GProtoOutputArgs &&outs); // Arg-to-arg overload + + // 2. Syntax sugar and compatibility overloads + /** + * @brief Defines an unary (one input -- one output) computation + * + * @overload + * @param in input GMat of the defined unary computation + * @param out output GMat of the defined unary computation + */ + GComputation(GMat in, GMat out); // Unary overload + + /** + * @brief Defines an unary (one input -- one output) computation + * + * @overload + * @param in input GMat of the defined unary computation + * @param out output GScalar of the defined unary computation + */ + GComputation(GMat in, GScalar out); // Unary overload (scalar) + + /** + * @brief Defines a binary (two inputs -- one output) computation + * + * @overload + * @param in1 first input GMat of the defined binary computation + * @param in2 second input GMat of the defined binary computation + * @param out output GMat of the defined binary computation + */ + GComputation(GMat in1, GMat in2, GMat out); // Binary overload + + /** + * @brief Defines a binary (two inputs -- one output) computation + * + * @overload + * @param in1 first input GMat of the defined binary computation + * @param in2 second input GMat of the defined binary computation + * @param out output GScalar of the defined binary computation + */ + GComputation(GMat in1, GMat in2, GScalar out); // Binary + // overload + // (scalar) + + /** + * @brief Defines a computation with arbitrary input/output number. + * + * @overload + * @param ins vector of inputs GMats for this computation + * @param outs vector of outputs GMats for this computation + * + * Use this overload for cases when number of computation + * inputs/outputs is not known in compile-time -- e.g. when graph + * is programmatically generated to build an image pyramid with + * the given number of levels, etc. + */ + GComputation(const std::vector &ins, // Compatibility overload + const std::vector &outs); + + // Various versions of apply(): //////////////////////////////////////////// + // 1. Generic apply() + /** + * @brief Compile graph on-the-fly and immediately execute it on + * the inputs data vectors. + * + * Number of input/output data objects must match GComputation's + * protocol, also types of host data objects (cv::Mat, cv::Scalar) + * must match the shapes of data objects from protocol (cv::GMat, + * cv::GScalar). If there's a mismatch, a run-time exception will + * be generated. + * + * Internally, a cv::GCompiled object is created for the given + * input format configuration, which then is executed on the input + * data immediately. cv::GComputation caches compiled objects + * produced within apply() -- if this method would be called next + * time with the same input parameters (image formats, image + * resolution, etc), the underlying compiled graph will be reused + * without recompilation. If new metadata doesn't match the cached + * one, the underlying compiled graph is regenerated. + * + * @note compile() always triggers a compilation process and + * produces a new GCompiled object regardless if a similar one has + * been cached via apply() or not. + * + * @param ins vector of input data to process. Don't create + * GRunArgs object manually, use cv::gin() wrapper instead. + * @param outs vector of output data to fill results in. cv::Mat + * objects may be empty in this vector, G-API will automatically + * initialize it with the required format & dimensions. Don't + * create GRunArgsP object manually, use cv::gout() wrapper instead. + * @param args a list of compilation arguments to pass to the + * underlying compilation process. Don't create GCompileArgs + * object manually, use cv::compile_args() wrapper instead. + * + * @sa @ref gapi_data_objects, @ref gapi_compile_args + */ + void apply(GRunArgs &&ins, GRunArgsP &&outs, GCompileArgs &&args = {}); // Arg-to-arg overload + + /// @private -- Exclude this function from OpenCV documentation + void apply(const std::vector& ins, // Compatibility overload + const std::vector& outs, + GCompileArgs &&args = {}); + + // 2. Syntax sugar and compatibility overloads +#if !defined(GAPI_STANDALONE) + /** + * @brief Execute an unary computation (with compilation on the fly) + * + * @overload + * @param in input cv::Mat for unary computation + * @param out output cv::Mat for unary computation + * @param args compilation arguments for underlying compilation + * process. + */ + void apply(cv::Mat in, cv::Mat &out, GCompileArgs &&args = {}); // Unary overload + + /** + * @brief Execute an unary computation (with compilation on the fly) + * + * @overload + * @param in input cv::Mat for unary computation + * @param out output cv::Scalar for unary computation + * @param args compilation arguments for underlying compilation + * process. + */ + void apply(cv::Mat in, cv::Scalar &out, GCompileArgs &&args = {}); // Unary overload (scalar) + + /** + * @brief Execute a binary computation (with compilation on the fly) + * + * @overload + * @param in1 first input cv::Mat for binary computation + * @param in2 second input cv::Mat for binary computation + * @param out output cv::Mat for binary computation + * @param args compilation arguments for underlying compilation + * process. + */ + void apply(cv::Mat in1, cv::Mat in2, cv::Mat &out, GCompileArgs &&args = {}); // Binary overload + + /** + * @brief Execute an binary computation (with compilation on the fly) + * + * @overload + * @param in1 first input cv::Mat for binary computation + * @param in2 second input cv::Mat for binary computation + * @param out output cv::Scalar for binary computation + * @param args compilation arguments for underlying compilation + * process. + */ + void apply(cv::Mat in1, cv::Mat in2, cv::Scalar &out, GCompileArgs &&args = {}); // Binary overload (scalar) + + /** + * @brief Execute a computation with arbitrary number of + * inputs/outputs (with compilation on-the-fly). + * + * @overload + * @param ins vector of input cv::Mat objects to process by the + * computation. + * @param outs vector of output cv::Mat objects to produce by the + * computation. + * @param args compilation arguments for underlying compilation + * process. + * + * Numbers of elements in ins/outs vectos must match numbers of + * inputs/outputs which were used to define this GComputation. + */ + void apply(const std::vector& ins, // Compatibility overload + const std::vector& outs, + GCompileArgs &&args = {}); +#endif // !defined(GAPI_STANDALONE) + // Various versions of compile(): ////////////////////////////////////////// + // 1. Generic compile() - requires metas to be passed as vector + /** + * @brief Compile the computation for specific input format(s). + * + * This method triggers compilation process and produces a new + * GCompiled object which then can process data of the given + * format. Passing data with different format to the compiled + * computation will generate a run-time exception. + * + * @param in_metas vector of input metadata configuration. Grab + * metadata from real data objects (like cv::Mat or cv::Scalar) + * using cv::descr_of(), or create it on your own. + * @param args compilation arguments for this compilation + * process. Compilation arguments directly affect what kind of + * executable object would be produced, e.g. which kernels (and + * thus, devices) would be used to execute computation. + * + * @return GCompiled, an executable computation compiled + * specifically for the given input parameters. + * + * @sa @ref gapi_compile_args + */ + GCompiled compile(GMetaArgs &&in_metas, GCompileArgs &&args = {}); + + // 2. Syntax sugar - variadic list of metas, no extra compile args + // FIXME: SFINAE looks ugly in the generated documentation + /** + * @overload + * + * Takes a variadic parameter pack with metadata + * descriptors for which a compiled object needs to be produced. + * + * @return GCompiled, an executable computation compiled + * specifically for the given input parameters. + */ + template + auto compile(const Ts&... metas) -> + typename std::enable_if::value, GCompiled>::type + { + return compile(GMetaArgs{GMetaArg(metas)...}, GCompileArgs()); + } + + // 3. Syntax sugar - variadic list of metas, extra compile args + // (seems optional parameters don't work well when there's an variadic template + // comes first) + // + // Ideally it should look like: + // + // template + // GCompiled compile(const Ts&... metas, GCompileArgs &&args) + // + // But not all compilers can hande this (and seems they shouldn't be able to). + // FIXME: SFINAE looks ugly in the generated documentation + /** + * @overload + * + * Takes a variadic parameter pack with metadata + * descriptors for which a compiled object needs to be produced, + * followed by GCompileArgs object representing compilation + * arguments for this process. + * + * @return GCompiled, an executable computation compiled + * specifically for the given input parameters. + */ + template + auto compile(const Ts&... meta_and_compile_args) -> + typename std::enable_if::value + && std::is_same >::value, + GCompiled>::type + { + //FIXME: wrapping meta_and_compile_args into a tuple to unwrap them inside a helper function is the overkill + return compile(std::make_tuple(meta_and_compile_args...), + typename detail::MkSeq::type()); + } + + // Internal use only + /// @private + Priv& priv(); + /// @private + const Priv& priv() const; + +protected: + + // 4. Helper method for (3) + /// @private + template + GCompiled compile(const std::tuple &meta_and_compile_args, detail::Seq) + { + GMetaArgs meta_args = {GMetaArg(std::get(meta_and_compile_args))...}; + GCompileArgs comp_args = std::get(meta_and_compile_args); + return compile(std::move(meta_args), std::move(comp_args)); + } + /// @private + std::shared_ptr m_priv; +}; +/** @} */ + +namespace gapi +{ + // FIXME: all these standalone functions need to be added to some + // common documentation section + /** + * @brief Define an tagged island (subgraph) within a computation. + * + * Declare an Island tagged with `name` and defined from `ins` to `outs` + * (exclusively, as ins/outs are data objects, and regioning is done on + * operations level). + * Throws if any operation between `ins` and `outs` are already assigned + * to another island. + * + * Islands allow to partition graph into subgraphs, fine-tuning + * the way it is scheduled by the underlying executor. + * + * @param name name of the Island to create + * @param ins vector of input data objects where the subgraph + * begins + * @param outs vector of output data objects where the subgraph + * ends. + * + * The way how an island is defined is similar to how + * cv::GComputation is defined on input/output data objects. + * Same rules apply here as well -- if there's no functional + * dependency between inputs and outputs or there's not enough + * input data objects were specified to properly calculate all + * outputs, an exception is thrown. + * + * Use cv::GIn() / cv::GOut() to specify input/output vectors. + */ + void GAPI_EXPORTS island(const std::string &name, + GProtoInputArgs &&ins, + GProtoOutputArgs &&outs); +} // namespace gapi + +} // namespace cv +#endif // OPENCV_GAPI_GCOMPUTATION_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gkernel.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gkernel.hpp new file mode 100644 index 000000000..40a9cbbfb --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gkernel.hpp @@ -0,0 +1,563 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GKERNEL_HPP +#define OPENCV_GAPI_GKERNEL_HPP + +#include +#include +#include // string +#include // false_type, true_type +#include // map (for GKernelPackage) +#include // tuple +#include // lookup order + +#include // CompileArgTag +#include // Seq +#include +#include // GArg +#include // GMetaArg +#include // GTypeTraits +#include //suppress_unused_warning + + +namespace cv { + +using GShapes = std::vector; + +// GKernel describes kernel API to the system +// FIXME: add attributes of a kernel, (e.g. number and types +// of inputs, etc) +struct GAPI_EXPORTS GKernel +{ + using M = std::function; + + const std::string name; // kernel ID, defined by its API (signature) + const M outMeta; // generic adaptor to API::outMeta(...) + const GShapes outShapes; // types (shapes) kernel's outputs +}; + +// GKernelImpl describes particular kernel implementation to the system +struct GAPI_EXPORTS GKernelImpl +{ + util::any opaque; // backend-specific opaque info +}; + +template class GKernelTypeM; + +namespace detail +{ + //////////////////////////////////////////////////////////////////////////// + // yield() is used in graph construction time as a generic method to obtain + // lazy "return value" of G-API operations + // + namespace + { + + template struct Yield; + template<> struct Yield + { + static inline cv::GMat yield(cv::GCall &call, int i) { return call.yield(i); } + }; + template<> struct Yield + { + static inline cv::GScalar yield(cv::GCall &call, int i) { return call.yieldScalar(i); } + }; + template struct Yield > + { + static inline cv::GArray yield(cv::GCall &call, int i) { return call.yieldArray(i); } + }; + } // anonymous namespace + + //////////////////////////////////////////////////////////////////////////// + // Helper classes which brings outputMeta() marshalling to kernel + // implementations + // + // 1. MetaType establishes G#Type -> G#Meta mapping between G-API dynamic + // types and its metadata descriptor types. + // This mapping is used to transform types to call outMeta() callback. + template struct MetaType; + template<> struct MetaType { using type = GMatDesc; }; + template<> struct MetaType { using type = GScalarDesc; }; + template struct MetaType > { using type = GArrayDesc; }; + template struct MetaType { using type = T; }; // opaque args passed as-is + + // 2. Hacky test based on MetaType to check if we operate on G-* type or not + template using is_nongapi_type = std::is_same::type>; + + // 3. Two ways to transform input arguments to its meta - for G-* and non-G* types: + template + typename std::enable_if::value, typename MetaType::type> + ::type get_in_meta(const GMetaArgs &in_meta, const GArgs &, int idx) + { + return util::get::type>(in_meta.at(idx)); + } + + template + typename std::enable_if::value, T> + ::type get_in_meta(const GMetaArgs &, const GArgs &in_args, int idx) + { + return in_args.at(idx).template get(); + } + + // 4. The MetaHelper itself: an entity which generates outMeta() call + // based on kernel signature, with arguments properly substituted. + // 4.1 - case for multiple return values + // FIXME: probably can be simplified with std::apply or analogue. + template + struct MetaHelper; + + template + struct MetaHelper, std::tuple > + { + template + static GMetaArgs getOutMeta_impl(const GMetaArgs &in_meta, + const GArgs &in_args, + detail::Seq, + detail::Seq) + { + // FIXME: decay? + using R = std::tuple::type...>; + const R r = K::outMeta( get_in_meta(in_meta, in_args, IIs)... ); + return GMetaArgs{ GMetaArg(std::get(r))... }; + } + // FIXME: help users identify how outMeta must look like (via default impl w/static_assert?) + + static GMetaArgs getOutMeta(const GMetaArgs &in_meta, + const GArgs &in_args) + { + return getOutMeta_impl(in_meta, + in_args, + typename detail::MkSeq::type(), + typename detail::MkSeq::type()); + } + }; + + // 4.1 - case for a single return value + // FIXME: How to avoid duplication here? + template + struct MetaHelper, Out > + { + template + static GMetaArgs getOutMeta_impl(const GMetaArgs &in_meta, + const GArgs &in_args, + detail::Seq) + { + // FIXME: decay? + using R = typename MetaType::type; + const R r = K::outMeta( get_in_meta(in_meta, in_args, IIs)... ); + return GMetaArgs{ GMetaArg(r) }; + } + // FIXME: help users identify how outMeta must look like (via default impl w/static_assert?) + + static GMetaArgs getOutMeta(const GMetaArgs &in_meta, + const GArgs &in_args) + { + return getOutMeta_impl(in_meta, + in_args, + typename detail::MkSeq::type()); + } + }; + +} // namespace detail + +// GKernelType and GKernelTypeM are base classes which implement typed ::on() +// method based on kernel signature. GKernelTypeM stands for multiple-return-value kernels +// +// G_TYPED_KERNEL and G_TYPED_KERNEK_M macros inherit user classes from GKernelType and +// GKernelTypeM respectively. + +template +class GKernelTypeM(Args...)> >: + public detail::MetaHelper, std::tuple > +{ + template + static std::tuple yield(cv::GCall &call, detail::Seq) + { + return std::make_tuple(detail::Yield::yield(call, IIs)...); + } + +public: + using InArgs = std::tuple; + using OutArgs = std::tuple; + + static std::tuple on(Args... args) + { + cv::GCall call(GKernel{K::id(), &K::getOutMeta, {detail::GTypeTraits::shape...}}); + call.pass(args...); + return yield(call, typename detail::MkSeq::type()); + } +}; + +template class GKernelType; + +template +class GKernelType >: + public detail::MetaHelper, R > +{ +public: + using InArgs = std::tuple; + using OutArgs = std::tuple; + + static R on(Args... args) + { + cv::GCall call(GKernel{K::id(), &K::getOutMeta, {detail::GTypeTraits::shape}}); + call.pass(args...); + return detail::Yield::yield(call, 0); + } +}; + +} // namespace cv + + +// FIXME: I don't know a better way so far. Feel free to suggest one +// The problem is that every typed kernel should have ::id() but body +// of the class is defined by user (with outMeta, other stuff) + +#define G_ID_HELPER_CLASS(Class) Class##IdHelper + +#define G_ID_HELPER_BODY(Class, Id) \ + namespace detail \ + { \ + struct G_ID_HELPER_CLASS(Class) \ + { \ + static constexpr const char * id() {return Id;}; \ + }; \ + } + +#define G_TYPED_KERNEL(Class, API, Id) \ + G_ID_HELPER_BODY(Class, Id) \ + struct Class final: public cv::GKernelType, \ + public detail::G_ID_HELPER_CLASS(Class) +// {body} is to be defined by user + +#define G_TYPED_KERNEL_M(Class, API, Id) \ + G_ID_HELPER_BODY(Class, Id) \ + struct Class final: public cv::GKernelTypeM, \ + public detail::G_ID_HELPER_CLASS(Class) \ +// {body} is to be defined by user + +namespace cv +{ +// Declare in cv:: namespace +enum class unite_policy +{ + REPLACE, + KEEP +}; + +namespace gapi +{ + // Prework: model "Device" API before it gets to G-API headers. + // FIXME: Don't mix with internal Backends class! + class GAPI_EXPORTS GBackend + { + public: + class Priv; + + // TODO: make it template (call `new` within??) + GBackend(); + explicit GBackend(std::shared_ptr &&p); + + Priv& priv(); + const Priv& priv() const; + std::size_t hash() const; + + bool operator== (const GBackend &rhs) const; + + private: + std::shared_ptr m_priv; + }; + + inline bool operator != (const GBackend &lhs, const GBackend &rhs) + { + return !(lhs == rhs); + } +} // namespace gapi +} // namespace cv + +namespace std +{ + template<> struct hash + { + std::size_t operator() (const cv::gapi::GBackend &b) const + { + return b.hash(); + } + }; +} // namespace std + + +namespace cv { +namespace gapi { + /** \addtogroup gapi_compile_args + * @{ + */ + + // Lookup order is in fact a vector of Backends to traverse during look-up + /** + * @brief Priority list of backends to use during kernel + * resolution process. + * + * Priority is descending -- the first backend in the list has the + * top priority, and the last one has the lowest priority. + * + * If there's multiple implementations available for a kernel at + * the moment of graph compilation, a kernel (and thus a backend) + * will be selected according to this order (if the parameter is passed). + * + * Default order is not specified (and by default, only + * CPU(OpenCV) backend is involved in graph compilation). + */ + using GLookupOrder = std::vector; + /** + * @brief Create a backend lookup order -- priority list of + * backends to use during graph compilation process. + * + * @sa GLookupOrder, @ref gapi_std_backends + */ + inline GLookupOrder lookup_order(std::initializer_list &&list) + { + return GLookupOrder(std::move(list)); + } + + // FIXME: Hide implementation + /** + * @brief A container class for heterogeneous kernel + * implementation collections. + * + * GKernelPackage is a special container class which stores kernel + * _implementations_. Objects of this class are created and passed + * to cv::GComputation::compile() to specify which kernels to use + * in the compiled graph. GKernelPackage may contain kernels of + * different backends, e.g. be heterogeneous. + * + * The most easy way to create a kernel package is to use function + * cv::gapi::kernels(). This template functions takes kernel + * implementations in form of type list (variadic template) and + * generates a kernel package atop of that. + * + * Kernel packages can be also generated programatically, starting + * with an empty package (created with the default constructor) + * and then by populating it with kernels via call to + * GKernelPackage::include(). Note this method is also a template + * one since G-API kernel implementations are _types_, not objects. + * + * Finally, two kernel packages can be combined into a new one + * with function cv::gapi::combine(). There are different rules + * apply to this process, see also cv::gapi::unite_policy for + * details. + */ + class GAPI_EXPORTS GKernelPackage + { + /// @private + using S = std::unordered_map; + + /// @private + using M = std::unordered_map; + + /// @private + M m_backend_kernels; + + protected: + /// @private + // Check if package contains ANY implementation of a kernel API + // by API textual id. + bool includesAPI(const std::string &id) const; + + /// @private + // Remove ALL implementations of the given API (identified by ID) + void removeAPI(const std::string &id); + + public: + /** + * @brief Returns total number of kernels in the package + * (across all backends included) + * + * @return a number of kernels in the package + */ + std::size_t size() const; + + /** + * @brief Test if a particular kernel _implementation_ KImpl is + * included in this kernel package. + * + * @sa includesAPI() + * + * @return true if there is such kernel, false otherwise. + */ + template + bool includes() const + { + const auto set_iter = m_backend_kernels.find(KImpl::backend()); + return (set_iter != m_backend_kernels.end()) + ? (set_iter->second.count(KImpl::API::id()) > 0) + : false; + } + + /** + * @brief Remove all kernels associated with the given backend + * from the package. + * + * Does nothing if there's no kernels of this backend in the package. + * + * @param backend backend which kernels to remove + */ + void remove(const GBackend& backend); + + /** + * @brief Remove all kernels implementing the given API from + * the package. + * + * Does nothing if there's no kernels implementing the given interface. + */ + template + void remove() + { + removeAPI(KAPI::id()); + } + + // FIXME: Rename to includes() and distinguish API/impl case by + // statically? + /** + * Check if package contains ANY implementation of a kernel API + * by API type. + */ + template + bool includesAPI() const + { + return includesAPI(KAPI::id()); + } + + /** + * @brief Find a kernel (by its API), given the look-up order. + * + * If order is empty, returns first suitable implementation. + * Throws if nothing found. + * + * @return Backend which hosts matching kernel implementation. + * + * @sa cv::gapi::lookup_order + */ + template + GBackend lookup(const GLookupOrder &order = {}) const + { + return lookup(KAPI::id(), order).first; + } + + /// @private + std::pair + lookup(const std::string &id, const GLookupOrder &order = {}) const; + + // FIXME: No overwrites allowed? + /** + * @brief Put a new kernel implementation KImpl into package. + * + * @param up unite policy to use. If the package has already + * implementation for this kernel (probably from another + * backend), and cv::unite_policy::KEEP is passed, the + * existing implementation remains in package; on + * cv::unite_policy::REPLACE all other existing + * implementations are first dropped from the package. + */ + template + void include(const cv::unite_policy up = cv::unite_policy::KEEP) + { + auto backend = KImpl::backend(); + auto kernel_id = KImpl::API::id(); + auto kernel_impl = GKernelImpl{KImpl::kernel()}; + if (up == cv::unite_policy::REPLACE) removeAPI(kernel_id); + else GAPI_Assert(up == cv::unite_policy::KEEP); + + // Regardless of the policy, store new impl in its storage slot. + m_backend_kernels[backend][kernel_id] = std::move(kernel_impl); + } + + /** + * @brief Lists all backends which are included into package + * + * @return vector of backends + */ + std::vector backends() const; + + // TODO: Doxygen bug -- it wants me to place this comment + // here, not below. + /** + * @brief Create a new package based on `lhs` and `rhs`, + * with unity policy defined by `policy`. + * + * @param lhs "Left-hand-side" package in the process + * @param rhs "Right-hand-side" package in the process + * @param policy Unite policy which is used in case of conflicts + * -- when the same kernel API is implemented in both packages by + * different backends; cv::unite_policy::KEEP keeps both + * implementation in the resulting package, while + * cv::unite_policy::REPLACE gives precedence two kernels from + * "Right-hand-side". + * + * @return a new kernel package. + */ + friend GAPI_EXPORTS GKernelPackage combine(const GKernelPackage &lhs, + const GKernelPackage &rhs, + const cv::unite_policy policy); + }; + + /** + * @brief Create a kernel package object containing kernels + * specified in variadic template argument. + * + * In G-API, kernel implementations are _types_. Every backend has + * its own kernel API (like GAPI_OCV_KERNEL() and + * GAPI_FLUID_KERNEL()) but all of that APIs define a new type for + * each kernel implementation. + * + * Use this function to pass kernel implementations (defined in + * either way) to the system. Example: + * + * @snippet modules/gapi/samples/api_ref_snippets.cpp kernels_snippet + * + * Note that kernels() itself is a function returning object, not + * a type, so having `()` at the end is important -- it must be a + * function call. + */ + template GKernelPackage kernels() + { + GKernelPackage pkg; + + // For those who wonder - below is a trick to call a number of + // methods based on parameter pack (zeroes just help hiding these + // calls into a sequence which helps to expand this parameter pack). + // Just note that `f(),a` always equals to `a` (with f() called!) + // and parentheses are used to hide function call in the expanded sequence. + // Leading 0 helps to handle case when KK is an empty list (kernels<>()). + + int unused[] = { 0, (pkg.include(), 0)... }; + cv::util::suppress_unused_warning(unused); + return pkg; + }; + + /** @} */ + + GAPI_EXPORTS GKernelPackage combine(const GKernelPackage &lhs, + const GKernelPackage &rhs, + const cv::unite_policy policy); +} // namespace gapi + +namespace detail +{ + template<> struct CompileArgTag + { + static const char* tag() { return "gapi.kernel_package"; } + }; + template<> struct CompileArgTag + { + static const char* tag() { return "gapi.lookup_order"; } + }; +} // namespace detail +} // namespace cv + +#endif // OPENCV_GAPI_GKERNEL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gmat.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gmat.hpp new file mode 100644 index 000000000..b6dbf4f57 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gmat.hpp @@ -0,0 +1,149 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GMAT_HPP +#define OPENCV_GAPI_GMAT_HPP + +#include +#include // std::shared_ptr + +#include +#include // GShape + +#include "opencv2/gapi/own/types.hpp" // cv::gapi::own::Size +#include "opencv2/gapi/own/convert.hpp" // to_own +#include "opencv2/gapi/own/assert.hpp" + +// TODO GAPI_EXPORTS or so +namespace cv +{ +// Forward declaration; GNode and GOrigin are an internal +// (user-inaccessible) classes. +class GNode; +struct GOrigin; + +/** \addtogroup gapi_data_objects + * @{ + * + * @brief Data-representing objects which can be used to build G-API + * expressions. + */ + +class GAPI_EXPORTS GMat +{ +public: + GMat(); // Empty constructor + GMat(const GNode &n, std::size_t out); // Operation result constructor + + GOrigin& priv(); // Internal use only + const GOrigin& priv() const; // Internal use only + +private: + std::shared_ptr m_priv; +}; + +/** @} */ + +/** + * \addtogroup gapi_meta_args + * @{ + */ +struct GAPI_EXPORTS GMatDesc +{ + // FIXME: Default initializers in C++14 + int depth; + int chan; + cv::gapi::own::Size size; // NB.: no multi-dimensional cases covered yet + + inline bool operator== (const GMatDesc &rhs) const + { + return depth == rhs.depth && chan == rhs.chan && size == rhs.size; + } + + inline bool operator!= (const GMatDesc &rhs) const + { + return !(*this == rhs); + } + + // Meta combinator: return a new GMatDesc which differs in size by delta + // (all other fields are taken unchanged from this GMatDesc) + // FIXME: a better name? + GMatDesc withSizeDelta(cv::gapi::own::Size delta) const + { + GMatDesc desc(*this); + desc.size += delta; + return desc; + } +#if !defined(GAPI_STANDALONE) + GMatDesc withSizeDelta(cv::Size delta) const + { + return withSizeDelta(to_own(delta)); + } + + GMatDesc withSize(cv::Size sz) const + { + return withSize(to_own(sz)); + } +#endif // !defined(GAPI_STANDALONE) + // Meta combinator: return a new GMatDesc which differs in size by delta + // (all other fields are taken unchanged from this GMatDesc) + // + // This is an overload. + GMatDesc withSizeDelta(int dx, int dy) const + { + return withSizeDelta(cv::gapi::own::Size{dx,dy}); + } + + GMatDesc withSize(cv::gapi::own::Size sz) const + { + GMatDesc desc(*this); + desc.size = sz; + return desc; + } + + // Meta combinator: return a new GMatDesc with specified data depth. + // (all other fields are taken unchanged from this GMatDesc) + GMatDesc withDepth(int ddepth) const + { + GAPI_Assert(CV_MAT_CN(ddepth) == 1 || ddepth == -1); + GMatDesc desc(*this); + if (ddepth != -1) desc.depth = ddepth; + return desc; + } + + // Meta combinator: return a new GMatDesc with specified data depth + // and number of channels. + // (all other fields are taken unchanged from this GMatDesc) + GMatDesc withType(int ddepth, int dchan) const + { + GAPI_Assert(CV_MAT_CN(ddepth) == 1 || ddepth == -1); + GMatDesc desc = withDepth(ddepth); + desc.chan = dchan; + return desc; + } +}; + +static inline GMatDesc empty_gmat_desc() { return GMatDesc{-1,-1,{-1,-1}}; } + +#if !defined(GAPI_STANDALONE) +class Mat; +GAPI_EXPORTS GMatDesc descr_of(const cv::Mat &mat); +GAPI_EXPORTS GMatDesc descr_of(const cv::UMat &mat); +#endif // !defined(GAPI_STANDALONE) + +/** @} */ + +namespace gapi { namespace own { + class Mat; + GAPI_EXPORTS GMatDesc descr_of(const Mat &mat); +}}//gapi::own + +GAPI_EXPORTS std::ostream& operator<<(std::ostream& os, const cv::GMatDesc &desc); + +} // namespace cv + +#endif // OPENCV_GAPI_GMAT_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gmetaarg.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gmetaarg.hpp new file mode 100644 index 000000000..abdea752e --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gmetaarg.hpp @@ -0,0 +1,75 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GMETAARG_HPP +#define OPENCV_GAPI_GMETAARG_HPP + +#include +#include + +#include "opencv2/gapi/util/util.hpp" +#include "opencv2/gapi/util/variant.hpp" + +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/gscalar.hpp" +#include "opencv2/gapi/garray.hpp" + +namespace cv +{ +// FIXME: Rename to GMeta? +// FIXME: user shouldn't deal with it - put to detail? +// GMetaArg is an union type over descriptions of G-types which can serve as +// GComputation's in/output slots. +// +// GMetaArg objects are passed as arguments to GComputation::compile() +// to specify which data a compiled computation should be specialized on. +// For manual compile(), user must supply this metadata, in case of apply() +// this metadata is taken from arguments computation should operate on. +// +// The first type (monostate) is equal to "uninitialized"/"unresolved" meta. +using GMetaArg = util::variant + < util::monostate + , GMatDesc + , GScalarDesc + , GArrayDesc + >; +GAPI_EXPORTS std::ostream& operator<<(std::ostream& os, const GMetaArg &); + +using GMetaArgs = std::vector; + +namespace detail +{ + // These traits are used by GComputation::compile() + + // FIXME: is_constructible doesn't work as variant doesn't do any SFINAE + // in its current template constructor + + template struct is_meta_descr : std::false_type {}; + template<> struct is_meta_descr : std::true_type {}; + template<> struct is_meta_descr : std::true_type {}; + template<> struct is_meta_descr : std::true_type {}; + + template + using are_meta_descrs = all_satisfy; + + template + using are_meta_descrs_but_last = all_satisfy::type>; + +} // namespace detail + +class Mat; +class UMat; +GAPI_EXPORTS cv::GMetaArgs descr_of(const std::vector &vec); +GAPI_EXPORTS cv::GMetaArgs descr_of(const std::vector &vec); +namespace gapi { namespace own { + class Mat; + GAPI_EXPORTS cv::GMetaArgs descr_of(const std::vector &vec); +}} // namespace gapi::own + +} // namespace cv + +#endif // OPENCV_GAPI_GMETAARG_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gproto.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gproto.hpp new file mode 100644 index 000000000..7f50623be --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gproto.hpp @@ -0,0 +1,120 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GPROTO_HPP +#define OPENCV_GAPI_GPROTO_HPP + +#include +#include +#include + +#include "opencv2/gapi/util/variant.hpp" + +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/gscalar.hpp" +#include "opencv2/gapi/garray.hpp" +#include "opencv2/gapi/garg.hpp" +#include "opencv2/gapi/gmetaarg.hpp" + +namespace cv { + +// FIXME: user shouldn't deal with it - put to detail? +// GProtoArg is an union type over G-types which can serve as +// GComputation's in/output slots. In other words, GProtoArg +// wraps any type which can serve as G-API exchange type. +// +// In Runtime, GProtoArgs are substituted with appropriate GRunArgs. +// +// GProtoArg objects are constructed in-place when user describes +// (captures) computations, user doesn't interact with these types +// directly. +using GProtoArg = util::variant + < GMat + , GScalar + , detail::GArrayU // instead of GArray + >; + +using GProtoArgs = std::vector; + +namespace detail +{ +template inline GProtoArgs packArgs(Ts... args) +{ + return GProtoArgs{ GProtoArg(wrap_gapi_helper::wrap(args))... }; +} + +} + +template +struct GIOProtoArgs +{ +public: + explicit GIOProtoArgs(const GProtoArgs& args) : m_args(args) {} + explicit GIOProtoArgs(GProtoArgs &&args) : m_args(std::move(args)) {} + + GProtoArgs m_args; +}; + +struct In_Tag{}; +struct Out_Tag{}; + +using GProtoInputArgs = GIOProtoArgs; +using GProtoOutputArgs = GIOProtoArgs; + +// Perfect forwarding +template inline GProtoInputArgs GIn(Ts&&... ts) +{ + return GProtoInputArgs(detail::packArgs(std::forward(ts)...)); +} + +template inline GProtoOutputArgs GOut(Ts&&... ts) +{ + return GProtoOutputArgs(detail::packArgs(std::forward(ts)...)); +} + +namespace detail +{ + // Extract elements form tuple + // FIXME: Someday utilize a generic tuple_to_vec<> routine + template + static GProtoOutputArgs getGOut_impl(const std::tuple& ts, detail::Seq) + { + return GProtoOutputArgs{ detail::packArgs(std::get(ts)...)}; + } +} + +template inline GProtoOutputArgs GOut(const std::tuple& ts) +{ + // TODO: think of std::forward(ts) + return detail::getGOut_impl(ts, typename detail::MkSeq::type()); +} + +// Takes rvalue as input arg +template inline GProtoOutputArgs GOut(std::tuple&& ts) +{ + // TODO: think of std::forward(ts) + return detail::getGOut_impl(ts, typename detail::MkSeq::type()); +} + +// Extract run-time arguments from node origin +// Can be used to extract constant values associated with G-objects +// (like GScalar) at graph construction time +GRunArg value_of(const GOrigin &origin); + +// Transform run-time computation arguments into a collection of metadata +// extracted from that arguments +GMetaArg GAPI_EXPORTS descr_of(const GRunArg &arg ); +GMetaArgs GAPI_EXPORTS descr_of(const GRunArgs &args); + +// Transform run-time operation result argument into metadata extracted from that argument +// Used to compare the metadata, which generated at compile time with the metadata result operation in run time +GMetaArg GAPI_EXPORTS descr_of(const GRunArgP& argp); + + +} // namespace cv + +#endif // OPENCV_GAPI_GPROTO_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/core.hpp new file mode 100644 index 000000000..f780545df --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/core.hpp @@ -0,0 +1,27 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GPU_CORE_API_HPP +#define OPENCV_GAPI_GPU_CORE_API_HPP +/** @file +* @deprecated Use "opencv2/gapi/ocl/core.hpp" instead. +*/ + +#include "opencv2/gapi/ocl/core.hpp" + +namespace cv { +namespace gapi { +namespace core { +namespace gpu { + using namespace ocl; +} // namespace gpu +} // namespace core +} // namespace gapi +} // namespace cv + + +#endif // OPENCV_GAPI_GPU_CORE_API_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/ggpukernel.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/ggpukernel.hpp new file mode 100644 index 000000000..f41cf133f --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/ggpukernel.hpp @@ -0,0 +1,18 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GGPUKERNEL_HPP +#define OPENCV_GAPI_GGPUKERNEL_HPP +/** @file +* @deprecated Use "opencv2/gapi/ocl/goclkernel.hpp" instead. +*/ + +#include "opencv2/gapi/ocl/goclkernel.hpp" +#define GAPI_GPU_KERNEL GAPI_OCL_KERNEL + + +#endif // OPENCV_GAPI_GGPUKERNEL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/imgproc.hpp new file mode 100644 index 000000000..81ae0cb76 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gpu/imgproc.hpp @@ -0,0 +1,28 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GPU_IMGPROC_API_HPP +#define OPENCV_GAPI_GPU_IMGPROC_API_HPP +/** @file +* @deprecated Use "opencv2/gapi/ocl/imgproc.hpp" instead. +*/ + +#include "opencv2/gapi/ocl/imgproc.hpp" + + +namespace cv { +namespace gapi { +namespace imgproc { +namespace gpu { + using namespace ocl; +} // namespace gpu +} // namespace imgproc +} // namespace gapi +} // namespace cv + + +#endif // OPENCV_GAPI_GPU_IMGPROC_API_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gscalar.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gscalar.hpp new file mode 100644 index 000000000..dd1205b63 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gscalar.hpp @@ -0,0 +1,83 @@ +// This file is part of OpenCV project. + +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GSCALAR_HPP +#define OPENCV_GAPI_GSCALAR_HPP + +#include + +#include +#include // GShape +#include +#include "opencv2/gapi/own/scalar.hpp" + +namespace cv +{ +// Forward declaration; GNode and GOrigin are an internal +// (user-inaccessible) classes. +class GNode; +struct GOrigin; + +/** \addtogroup gapi_data_objects + * @{ + */ + +class GAPI_EXPORTS GScalar +{ +public: + GScalar(); // Empty constructor + explicit GScalar(const cv::gapi::own::Scalar& s); // Constant value constructor from cv::gapi::own::Scalar + explicit GScalar(cv::gapi::own::Scalar&& s); // Constant value move-constructor from cv::gapi::own::Scalar +#if !defined(GAPI_STANDALONE) + explicit GScalar(const cv::Scalar& s); // Constant value constructor from cv::Scalar +#endif // !defined(GAPI_STANDALONE) + GScalar(double v0); // Constant value constructor from double + GScalar(const GNode &n, std::size_t out); // Operation result constructor + + GOrigin& priv(); // Internal use only + const GOrigin& priv() const; // Internal use only + +private: + std::shared_ptr m_priv; +}; + +/** @} */ + +/** + * \addtogroup gapi_meta_args + * @{ + */ +struct GScalarDesc +{ + // NB.: right now it is empty + + inline bool operator== (const GScalarDesc &) const + { + return true; // NB: implement this method if GScalar meta appears + } + + inline bool operator!= (const GScalarDesc &rhs) const + { + return !(*this == rhs); + } +}; + +static inline GScalarDesc empty_scalar_desc() { return GScalarDesc(); } + +#if !defined(GAPI_STANDALONE) +GAPI_EXPORTS GScalarDesc descr_of(const cv::Scalar &scalar); +#endif // !defined(GAPI_STANDALONE) +/** @} */ + +GAPI_EXPORTS GScalarDesc descr_of(const cv::gapi::own::Scalar &scalar); + +std::ostream& operator<<(std::ostream& os, const cv::GScalarDesc &desc); + +} // namespace cv + +#endif // OPENCV_GAPI_GSCALAR_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gtype_traits.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gtype_traits.hpp new file mode 100644 index 000000000..d05e02e0e --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gtype_traits.hpp @@ -0,0 +1,152 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GTYPE_TRAITS_HPP +#define OPENCV_GAPI_GTYPE_TRAITS_HPP + +#include +#include + +#include +#include +#include +#include +#include + +namespace cv +{ +namespace detail +{ + // FIXME: These traits and enum and possible numerous switch(kind) + // block may be replaced with a special Handler object or with + // a double dispatch + enum class ArgKind: int + { + OPAQUE, // Unknown, generic, opaque-to-GAPI data type - STATIC + GOBJREF, // reference to object + GMAT, // a cv::GMat + GSCALAR, // a cv::GScalar + GARRAY, // a cv::GArrayU (note - exactly GArrayU, not GArray!) + }; + + // Describe G-API types (G-types) with traits. Mostly used by + // cv::GArg to store meta information about types passed into + // operation arguments. Please note that cv::GComputation is + // defined on GProtoArgs, not GArgs! + template struct GTypeTraits; + template struct GTypeTraits + { + static constexpr const ArgKind kind = ArgKind::OPAQUE; + }; + template<> struct GTypeTraits + { + static constexpr const ArgKind kind = ArgKind::GMAT; + static constexpr const GShape shape = GShape::GMAT; + }; + template<> struct GTypeTraits + { + static constexpr const ArgKind kind = ArgKind::GSCALAR; + static constexpr const GShape shape = GShape::GSCALAR; + }; + template struct GTypeTraits > + { + static constexpr const ArgKind kind = ArgKind::GARRAY; + static constexpr const GShape shape = GShape::GARRAY; + using host_type = std::vector; + using strip_type = cv::detail::VectorRef; + static cv::detail::GArrayU wrap_value(const cv::GArray &t) { return t.strip();} + static cv::detail::VectorRef wrap_in (const std::vector &t) { return detail::VectorRef(t); } + static cv::detail::VectorRef wrap_out ( std::vector &t) { return detail::VectorRef(t); } + }; + + // Tests if Trait for type T requires extra marshalling ("custom wrap") or not. + // If Traits has wrap_value() defined, it does. + template struct has_custom_wrap + { + template class check; + template static std::true_type test(check::wrap_value)> *); + template static std::false_type test(...); + using type = decltype(test(nullptr)); + static const constexpr bool value = std::is_same(nullptr))>::value; + }; + + // Resolve a Host type back to its associated G-Type. + // FIXME: Probably it can be avoided + template struct GTypeOf; +#if !defined(GAPI_STANDALONE) + template<> struct GTypeOf { using type = cv::GMat; }; + template<> struct GTypeOf { using type = cv::GScalar; }; +#endif // !defined(GAPI_STANDALONE) + template<> struct GTypeOf { using type = cv::GMat; }; + template<> struct GTypeOf { using type = cv::GScalar; }; + template struct GTypeOf > { using type = cv::GArray; }; + template using g_type_of_t = typename GTypeOf::type; + + // Marshalling helper for G-types and its Host types. Helps G-API + // to store G types in internal generic containers for further + // processing. Implements the following callbacks: + // + // * wrap() - converts user-facing G-type into an internal one + // for internal storage. + // Used when G-API operation is instantiated (G::on(), + // etc) during expressing a pipeline. Mostly returns input + // value "as is" except the case when G-type is a template. For + // template G-classes, calls custom wrap() from Traits. + // The value returned by wrap() is then wrapped into GArg() and + // stored in G-API metadata. + // + // Example: + // - cv::GMat arguments are passed as-is. + // - integers, pointers, STL containers, user types are passed as-is. + // - cv::GArray is converted to cv::GArrayU. + // + // * wrap_in() / wrap_out() - convert Host type associated with + // G-type to internal representation type. + // + // - For "simple" (non-template) G-types, returns value as-is. + // Example: cv::GMat has host type cv::Mat, when user passes a + // cv::Mat, system stores it internally as cv::Mat. + // + // - For "complex" (template) G-types, utilizes custom + // wrap_in()/wrap_out() as described in Traits. + // Example: cv::GArray has host type std::vector, when + // user passes a std::vector, system stores it + // internally as VectorRef (with stripped away). + template struct WrapValue + { + static auto wrap(const T& t) -> + typename std::remove_reference::type + { + return static_cast::type>(t); + } + + template static U wrap_in (const U &u) { return u; } + template static U* wrap_out(U &u) { return &u; } + }; + template struct WrapValue::value>::type> + { + static auto wrap(const T& t) -> decltype(GTypeTraits::wrap_value(t)) + { + return GTypeTraits::wrap_value(t); + } + template static auto wrap_in (const U &u) -> typename GTypeTraits::strip_type + { + return GTypeTraits::wrap_in(u); + } + template static auto wrap_out(U &u) -> typename GTypeTraits::strip_type + { + return GTypeTraits::wrap_out(u); + } + }; + + template using wrap_gapi_helper = WrapValue::type>; + template using wrap_host_helper = WrapValue >::type>; + +} // namespace detail +} // namespace cv + +#endif // OPENCV_GAPI_GTYPE_TRAITS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/gtyped.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/gtyped.hpp new file mode 100644 index 000000000..a966f263f --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/gtyped.hpp @@ -0,0 +1,187 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GTYPED_HPP +#define OPENCV_GAPI_GTYPED_HPP +#if !defined(GAPI_STANDALONE) + +#include + +#include "opencv2/gapi/gcomputation.hpp" +#include "opencv2/gapi/gcompiled.hpp" +#include "opencv2/gapi/gproto.hpp" +#include "opencv2/gapi/gcommon.hpp" + +namespace cv { + +namespace detail +{ + // FIXME: How to prevent coolhackers from extending it by their own types? + // FIXME: ...Should we care? + template struct ProtoToParam; + template<> struct ProtoToParam { using type = cv::Mat; }; + template<> struct ProtoToParam { using type = cv::Scalar; }; + template struct ProtoToParam > { using type = std::vector; }; + template using ProtoToParamT = typename ProtoToParam::type; + + template struct ProtoToMeta; + template<> struct ProtoToMeta { using type = cv::GMatDesc; }; + template<> struct ProtoToMeta { using type = cv::GScalarDesc; }; + template struct ProtoToMeta > { using type = cv::GArrayDesc; }; + template using ProtoToMetaT = typename ProtoToMeta::type; + + //workaround for MSVC 19.0 bug + template + auto make_default()->decltype(T{}) {return {};} +}; // detail + +template class GComputationT; + +// Single return value implementation +template class GComputationT +{ +public: + typedef std::function Gen; + + class GCompiledT + { + private: + friend class GComputationT; + + cv::GCompiled m_comp; + + explicit GCompiledT(const cv::GCompiled &comp) : m_comp(comp) {} + + public: + GCompiledT() {} + + void operator()(detail::ProtoToParamT... inArgs, + detail::ProtoToParamT &outArg) + { + m_comp(cv::gin(inArgs...), cv::gout(outArg)); + } + + explicit operator bool() const + { + return static_cast(m_comp); + } + }; + +private: + typedef std::pair Captured; + + Captured capture(const Gen& g, Args... args) + { + return Captured(g(args...), cv::GIn(args...)); + } + + Captured m_capture; + cv::GComputation m_comp; + +public: + GComputationT(const Gen &generator) + : m_capture(capture(generator, detail::make_default()...)) + , m_comp(cv::GProtoInputArgs(std::move(m_capture.second)), + cv::GOut(m_capture.first)) + { + } + + void apply(detail::ProtoToParamT... inArgs, + detail::ProtoToParamT &outArg) + { + m_comp.apply(cv::gin(inArgs...), cv::gout(outArg)); + } + + GCompiledT compile(detail::ProtoToMetaT... inDescs) + { + GMetaArgs inMetas = { GMetaArg(inDescs)... }; + return GCompiledT(m_comp.compile(std::move(inMetas), GCompileArgs())); + } + + GCompiledT compile(detail::ProtoToMetaT... inDescs, GCompileArgs &&args) + { + GMetaArgs inMetas = { GMetaArg(inDescs)... }; + return GCompiledT(m_comp.compile(std::move(inMetas), std::move(args))); + } +}; + +// Multiple (fixed) return value implementation. FIXME: How to avoid copy-paste? +template class GComputationT(Args...)> +{ +public: + typedef std::function(Args...)> Gen; + + class GCompiledT + { + private: + friend class GComputationT(Args...)>; + + cv::GCompiled m_comp; + explicit GCompiledT(const cv::GCompiled &comp) : m_comp(comp) {} + + public: + GCompiledT() {} + + void operator()(detail::ProtoToParamT... inArgs, + detail::ProtoToParamT&... outArgs) + { + m_comp(cv::gin(inArgs...), cv::gout(outArgs...)); + } + + explicit operator bool() const + { + return static_cast(m_comp); + } + }; + +private: + typedef std::pair Captured; + + template + Captured capture(GProtoArgs &&args, const std::tuple &rr, detail::Seq) + { + return Captured(cv::GOut(std::get(rr)...).m_args, args); + } + + Captured capture(const Gen& g, Args... args) + { + return capture(cv::GIn(args...).m_args, g(args...), typename detail::MkSeq::type()); + } + + Captured m_capture; + cv::GComputation m_comp; + +public: + GComputationT(const Gen &generator) + : m_capture(capture(generator, detail::make_default()...)) + , m_comp(cv::GProtoInputArgs(std::move(m_capture.second)), + cv::GProtoOutputArgs(std::move(m_capture.first))) + { + } + + void apply(detail::ProtoToParamT... inArgs, + detail::ProtoToParamT&... outArgs) + { + m_comp.apply(cv::gin(inArgs...), cv::gout(outArgs...)); + } + + GCompiledT compile(detail::ProtoToMetaT... inDescs) + { + GMetaArgs inMetas = { GMetaArg(inDescs)... }; + return GCompiledT(m_comp.compile(std::move(inMetas), GCompileArgs())); + } + + GCompiledT compile(detail::ProtoToMetaT... inDescs, GCompileArgs &&args) + { + GMetaArgs inMetas = { GMetaArg(inDescs)... }; + return GCompiledT(m_comp.compile(std::move(inMetas), std::move(args))); + } +}; + +} // namespace cv +#endif // !defined(GAPI_STANDALONE) +#endif // OPENCV_GAPI_GTYPED_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/imgproc.hpp new file mode 100644 index 000000000..db9ac4632 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/imgproc.hpp @@ -0,0 +1,791 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_IMGPROC_HPP +#define OPENCV_GAPI_IMGPROC_HPP + +#include "opencv2/imgproc.hpp" + +#include // std::tuple + +#include "opencv2/gapi/gkernel.hpp" +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/gscalar.hpp" + + +/** \defgroup gapi_imgproc G-API image processing functionality +@{ + @defgroup gapi_filters Graph API: Image filters + @defgroup gapi_colorconvert Graph API: Converting image from one color space to another +@} + */ + +namespace cv { namespace gapi { + +namespace imgproc { + using GMat2 = std::tuple; + using GMat3 = std::tuple; // FIXME: how to avoid this? + + G_TYPED_KERNEL(GFilter2D, ,"org.opencv.imgproc.filters.filter2D") { + static GMatDesc outMeta(GMatDesc in, int ddepth, Mat, Point, Scalar, int, Scalar) { + return in.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GSepFilter, , "org.opencv.imgproc.filters.sepfilter") { + static GMatDesc outMeta(GMatDesc in, int ddepth, Mat, Mat, Point, Scalar, int, Scalar) { + return in.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GBoxFilter, , "org.opencv.imgproc.filters.boxfilter") { + static GMatDesc outMeta(GMatDesc in, int ddepth, Size, Point, bool, int, Scalar) { + return in.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL(GBlur, , "org.opencv.imgproc.filters.blur"){ + static GMatDesc outMeta(GMatDesc in, Size, Point, int, Scalar) { + return in; + } + }; + + G_TYPED_KERNEL(GGaussBlur, , "org.opencv.imgproc.filters.gaussianBlur") { + static GMatDesc outMeta(GMatDesc in, Size, double, double, int, Scalar) { + return in; + } + }; + + G_TYPED_KERNEL(GMedianBlur, , "org.opencv.imgproc.filters.medianBlur") { + static GMatDesc outMeta(GMatDesc in, int) { + return in; + } + }; + + G_TYPED_KERNEL(GErode, , "org.opencv.imgproc.filters.erode") { + static GMatDesc outMeta(GMatDesc in, Mat, Point, int, int, Scalar) { + return in; + } + }; + + G_TYPED_KERNEL(GDilate, , "org.opencv.imgproc.filters.dilate") { + static GMatDesc outMeta(GMatDesc in, Mat, Point, int, int, Scalar) { + return in; + } + }; + + G_TYPED_KERNEL(GSobel, , "org.opencv.imgproc.filters.sobel") { + static GMatDesc outMeta(GMatDesc in, int ddepth, int, int, int, double, double, int, Scalar) { + return in.withDepth(ddepth); + } + }; + + G_TYPED_KERNEL_M(GSobelXY, , "org.opencv.imgproc.filters.sobelxy") { + static std::tuple outMeta(GMatDesc in, int ddepth, int, int, double, double, int, Scalar) { + return std::make_tuple(in.withDepth(ddepth), in.withDepth(ddepth)); + } + }; + + G_TYPED_KERNEL(GEqHist, , "org.opencv.imgproc.equalizeHist"){ + static GMatDesc outMeta(GMatDesc in) { + return in.withType(CV_8U, 1); + } + }; + + G_TYPED_KERNEL(GCanny, , "org.opencv.imgproc.canny"){ + static GMatDesc outMeta(GMatDesc in, double, double, int, bool) { + return in.withType(CV_8U, 1); + } + }; + + G_TYPED_KERNEL(GRGB2YUV, , "org.opencv.imgproc.colorconvert.rgb2yuv") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GYUV2RGB, , "org.opencv.imgproc.colorconvert.yuv2rgb") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GNV12toRGB, , "org.opencv.imgproc.colorconvert.nv12torgb") { + static GMatDesc outMeta(GMatDesc in_y, GMatDesc in_uv) { + GAPI_Assert(in_y.chan == 1); + GAPI_Assert(in_uv.chan == 2); + GAPI_Assert(in_y.depth == CV_8U); + GAPI_Assert(in_uv.depth == CV_8U); + // UV size should be aligned with Y + GAPI_Assert(in_y.size.width == 2 * in_uv.size.width); + GAPI_Assert(in_y.size.height == 2 * in_uv.size.height); + return in_y.withType(CV_8U, 3); // type will be CV_8UC3; + } + }; + + G_TYPED_KERNEL(GNV12toBGR, , "org.opencv.imgproc.colorconvert.nv12tobgr") { + static GMatDesc outMeta(GMatDesc in_y, GMatDesc in_uv) { + GAPI_Assert(in_y.chan == 1); + GAPI_Assert(in_uv.chan == 2); + GAPI_Assert(in_y.depth == CV_8U); + GAPI_Assert(in_uv.depth == CV_8U); + // UV size should be aligned with Y + GAPI_Assert(in_y.size.width == 2 * in_uv.size.width); + GAPI_Assert(in_y.size.height == 2 * in_uv.size.height); + return in_y.withType(CV_8U, 3); // type will be CV_8UC3; + } + }; + + G_TYPED_KERNEL(GRGB2Lab, , "org.opencv.imgproc.colorconvert.rgb2lab") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GBGR2LUV, , "org.opencv.imgproc.colorconvert.bgr2luv") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GLUV2BGR, , "org.opencv.imgproc.colorconvert.luv2bgr") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GYUV2BGR, , "org.opencv.imgproc.colorconvert.yuv2bgr") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GBGR2YUV, , "org.opencv.imgproc.colorconvert.bgr2yuv") { + static GMatDesc outMeta(GMatDesc in) { + return in; // type still remains CV_8UC3; + } + }; + + G_TYPED_KERNEL(GRGB2Gray, , "org.opencv.imgproc.colorconvert.rgb2gray") { + static GMatDesc outMeta(GMatDesc in) { + return in.withType(CV_8U, 1); + } + }; + + G_TYPED_KERNEL(GRGB2GrayCustom, , "org.opencv.imgproc.colorconvert.rgb2graycustom") { + static GMatDesc outMeta(GMatDesc in, float, float, float) { + return in.withType(CV_8U, 1); + } + }; + + G_TYPED_KERNEL(GBGR2Gray, , "org.opencv.imgproc.colorconvert.bgr2gray") { + static GMatDesc outMeta(GMatDesc in) { + return in.withType(CV_8U, 1); + } + }; +} + + +//! @addtogroup gapi_filters +//! @{ +/** @brief Applies a separable linear filter to a matrix(image). + +The function applies a separable linear filter to the matrix. That is, first, every row of src is +filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D +kernel kernelY. The final result is returned. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note In case of floating-point computation, rounding to nearest even is procedeed +if hardware supports it (if not - to nearest value). + +@note Function textual ID is "org.opencv.imgproc.filters.sepfilter" +@param src Source image. +@param ddepth desired depth of the destination image (the following combinations of src.depth() and ddepth are supported: + + src.depth() = CV_8U, ddepth = -1/CV_16S/CV_32F/CV_64F + src.depth() = CV_16U/CV_16S, ddepth = -1/CV_32F/CV_64F + src.depth() = CV_32F, ddepth = -1/CV_32F/CV_64F + src.depth() = CV_64F, ddepth = -1/CV_64F + +when ddepth=-1, the output image will have the same depth as the source) +@param kernelX Coefficients for filtering each row. +@param kernelY Coefficients for filtering each column. +@param anchor Anchor position within the kernel. The default value \f$(-1,-1)\f$ means that the anchor +is at the kernel center. +@param delta Value added to the filtered results before storing them. +@param borderType Pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa boxFilter, gaussianBlur, medianBlur + */ +GAPI_EXPORTS GMat sepFilter(const GMat& src, int ddepth, const Mat& kernelX, const Mat& kernelY, const Point& anchor /*FIXME: = Point(-1,-1)*/, + const Scalar& delta /*FIXME = GScalar(0)*/, int borderType = BORDER_DEFAULT, + const Scalar& borderValue = Scalar(0)); + +/** @brief Convolves an image with the kernel. + +The function applies an arbitrary linear filter to an image. When +the aperture is partially outside the image, the function interpolates outlier pixel values +according to the specified border mode. + +The function does actually compute correlation, not the convolution: + +\f[\texttt{dst} (x,y) = \sum _{ \stackrel{0\leq x' < \texttt{kernel.cols},}{0\leq y' < \texttt{kernel.rows}} } \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\f] + +That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip +the kernel using flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows - +anchor.y - 1)`. + +Supported matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. +Output image must have the same size and number of channels an input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.filter2D" + +@param src input image. +@param ddepth desired depth of the destination image +@param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point +matrix; if you want to apply different kernels to different channels, split the image into +separate color planes using split and process them individually. +@param anchor anchor of the kernel that indicates the relative position of a filtered point within +the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor +is at the kernel center. +@param delta optional value added to the filtered pixels before storing them in dst. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa sepFilter + */ +GAPI_EXPORTS GMat filter2D(const GMat& src, int ddepth, const Mat& kernel, const Point& anchor = Point(-1,-1), const Scalar& delta = Scalar(0), + int borderType = BORDER_DEFAULT, const Scalar& borderValue = Scalar(0)); + + +/** @brief Blurs an image using the box filter. + +The function smooths an image using the kernel: + +\f[\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\f] + +where + +\f[\alpha = \fork{\frac{1}{\texttt{ksize.width*ksize.height}}}{when \texttt{normalize=true}}{1}{otherwise}\f] + +Unnormalized box filter is useful for computing various integral characteristics over each pixel +neighborhood, such as covariance matrices of image derivatives (used in dense optical flow +algorithms, and so on). If you need to compute pixel sums over variable-size windows, use cv::integral. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.boxfilter" + +@param src Source image. +@param dtype the output image depth (-1 to set the input image data type). +@param ksize blurring kernel size. +@param anchor Anchor position within the kernel. The default value \f$(-1,-1)\f$ means that the anchor +is at the kernel center. +@param normalize flag, specifying whether the kernel is normalized by its area or not. +@param borderType Pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa sepFilter, gaussianBlur, medianBlur, integral + */ +GAPI_EXPORTS GMat boxFilter(const GMat& src, int dtype, const Size& ksize, const Point& anchor = Point(-1,-1), + bool normalize = true, int borderType = BORDER_DEFAULT, + const Scalar& borderValue = Scalar(0)); + +/** @brief Blurs an image using the normalized box filter. + +The function smooths an image using the kernel: + +\f[\texttt{K} = \frac{1}{\texttt{ksize.width*ksize.height}} \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \end{bmatrix}\f] + +The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), +anchor, true, borderType)`. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.blur" + +@param src Source image. +@param ksize blurring kernel size. +@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel +center. +@param borderType border mode used to extrapolate pixels outside of the image, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa boxFilter, bilateralFilter, GaussianBlur, medianBlur + */ +GAPI_EXPORTS GMat blur(const GMat& src, const Size& ksize, const Point& anchor = Point(-1,-1), + int borderType = BORDER_DEFAULT, const Scalar& borderValue = Scalar(0)); + + +//GAPI_EXPORTS_W void blur( InputArray src, OutputArray dst, + // Size ksize, Point anchor = Point(-1,-1), + // int borderType = BORDER_DEFAULT ); + + +/** @brief Blurs an image using a Gaussian filter. + +The function filter2Ds the source image with the specified Gaussian kernel. +Output image must have the same type and number of channels an input image. + +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.gaussianBlur" + +@param src input image; +@param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be +positive and odd. Or, they can be zero's and then they are computed from sigma. +@param sigmaX Gaussian kernel standard deviation in X direction. +@param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be +equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, +respectively (see cv::getGaussianKernel for details); to fully control the result regardless of +possible future modifications of all this semantics, it is recommended to specify all of ksize, +sigmaX, and sigmaY. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa sepFilter, boxFilter, medianBlur + */ +GAPI_EXPORTS GMat gaussianBlur(const GMat& src, const Size& ksize, double sigmaX, double sigmaY = 0, + int borderType = BORDER_DEFAULT, const Scalar& borderValue = Scalar(0)); + +/** @brief Blurs an image using the median filter. + +The function smoothes an image using the median filter with the \f$\texttt{ksize} \times +\texttt{ksize}\f$ aperture. Each channel of a multi-channel image is processed independently. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. +The median filter uses cv::BORDER_REPLICATE internally to cope with border pixels, see cv::BorderTypes + +@note Function textual ID is "org.opencv.imgproc.filters.medianBlur" + +@param src input matrix (image) +@param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... +@sa boxFilter, gaussianBlur + */ +GAPI_EXPORTS GMat medianBlur(const GMat& src, int ksize); + +/** @brief Erodes an image by using a specific structuring element. + +The function erodes the source image using the specified structuring element that determines the +shape of a pixel neighborhood over which the minimum is taken: + +\f[\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] + +Erosion can be applied several (iterations) times. In case of multi-channel images, each channel is processed independently. +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, and @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.erode" + +@param src input image +@param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular +structuring element is used. Kernel can be created using getStructuringElement. +@param anchor position of the anchor within the element; default value (-1, -1) means that the +anchor is at the element center. +@param iterations number of times erosion is applied. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of a constant border +@sa dilate + */ +GAPI_EXPORTS GMat erode(const GMat& src, const Mat& kernel, const Point& anchor = Point(-1,-1), int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue()); + +/** @brief Erodes an image by using 3 by 3 rectangular structuring element. + +The function erodes the source image using the rectangular structuring element with rectangle center as an anchor. +Erosion can be applied several (iterations) times. In case of multi-channel images, each channel is processed independently. +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, and @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@param src input image +@param iterations number of times erosion is applied. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of a constant border +@sa erode, dilate3x3 + */ +GAPI_EXPORTS GMat erode3x3(const GMat& src, int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue()); + +/** @brief Dilates an image by using a specific structuring element. + +The function dilates the source image using the specified structuring element that determines the +shape of a pixel neighborhood over which the maximum is taken: +\f[\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] + +Dilation can be applied several (iterations) times. In case of multi-channel images, each channel is processed independently. +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, and @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.dilate" + +@param src input image. +@param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular +structuring element is used. Kernel can be created using getStructuringElement +@param anchor position of the anchor within the element; default value (-1, -1) means that the +anchor is at the element center. +@param iterations number of times dilation is applied. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of a constant border +@sa erode, morphologyEx, getStructuringElement + */ +GAPI_EXPORTS GMat dilate(const GMat& src, const Mat& kernel, const Point& anchor = Point(-1,-1), int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue()); + +/** @brief Dilates an image by using 3 by 3 rectangular structuring element. + +The function dilates the source image using the specified structuring element that determines the +shape of a pixel neighborhood over which the maximum is taken: +\f[\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] + +Dilation can be applied several (iterations) times. In case of multi-channel images, each channel is processed independently. +Supported input matrix data types are @ref CV_8UC1, @ref CV_8UC3, @ref CV_16UC1, @ref CV_16SC1, and @ref CV_32FC1. +Output image must have the same type, size, and number of channels as the input image. +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.dilate" + +@param src input image. +@param iterations number of times dilation is applied. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of a constant border +@sa dilate, erode3x3 + */ + +GAPI_EXPORTS GMat dilate3x3(const GMat& src, int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue()); + +/** @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator. + +In all cases except one, the \f$\texttt{ksize} \times \texttt{ksize}\f$ separable kernel is used to +calculate the derivative. When \f$\texttt{ksize = 1}\f$, the \f$3 \times 1\f$ or \f$1 \times 3\f$ +kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first +or the second x- or y- derivatives. + +There is also the special value `ksize = FILTER_SCHARR (-1)` that corresponds to the \f$3\times3\f$ Scharr +filter that may give more accurate results than the \f$3\times3\f$ Sobel. The Scharr aperture is + +\f[\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\f] + +for the x-derivative, or transposed for the y-derivative. + +The function calculates an image derivative by convolving the image with the appropriate kernel: + +\f[\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\f] + +The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less +resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3) +or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first +case corresponds to a kernel of: + +\f[\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\f] + +The second case corresponds to a kernel of: + +\f[\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\f] + +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.sobel" + +@param src input image. +@param ddepth output image depth, see @ref filter_depths "combinations"; in the case of + 8-bit input images it will result in truncated derivatives. +@param dx order of the derivative x. +@param dy order of the derivative y. +@param ksize size of the extended Sobel kernel; it must be odd. +@param scale optional scale factor for the computed derivative values; by default, no scaling is +applied (see cv::getDerivKernels for details). +@param delta optional delta value that is added to the results prior to storing them in dst. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa filter2D, gaussianBlur, cartToPolar + */ +GAPI_EXPORTS GMat Sobel(const GMat& src, int ddepth, int dx, int dy, int ksize = 3, + double scale = 1, double delta = 0, + int borderType = BORDER_DEFAULT, + const Scalar& borderValue = Scalar(0)); + +/** @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator. + +In all cases except one, the \f$\texttt{ksize} \times \texttt{ksize}\f$ separable kernel is used to +calculate the derivative. When \f$\texttt{ksize = 1}\f$, the \f$3 \times 1\f$ or \f$1 \times 3\f$ +kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first +or the second x- or y- derivatives. + +There is also the special value `ksize = FILTER_SCHARR (-1)` that corresponds to the \f$3\times3\f$ Scharr +filter that may give more accurate results than the \f$3\times3\f$ Sobel. The Scharr aperture is + +\f[\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\f] + +for the x-derivative, or transposed for the y-derivative. + +The function calculates an image derivative by convolving the image with the appropriate kernel: + +\f[\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\f] + +The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less +resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3) +or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first +case corresponds to a kernel of: + +\f[\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\f] + +The second case corresponds to a kernel of: + +\f[\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\f] + +@note First returned matrix correspons to dx derivative while the second one to dy. + +@note Rounding to nearest even is procedeed if hardware supports it, if not - to nearest. + +@note Function textual ID is "org.opencv.imgproc.filters.sobelxy" + +@param src input image. +@param ddepth output image depth, see @ref filter_depths "combinations"; in the case of + 8-bit input images it will result in truncated derivatives. +@param order order of the derivatives. +@param ksize size of the extended Sobel kernel; it must be odd. +@param scale optional scale factor for the computed derivative values; by default, no scaling is +applied (see cv::getDerivKernels for details). +@param delta optional delta value that is added to the results prior to storing them in dst. +@param borderType pixel extrapolation method, see cv::BorderTypes +@param borderValue border value in case of constant border type +@sa filter2D, gaussianBlur, cartToPolar + */ +GAPI_EXPORTS std::tuple SobelXY(const GMat& src, int ddepth, int order, int ksize = 3, + double scale = 1, double delta = 0, + int borderType = BORDER_DEFAULT, + const Scalar& borderValue = Scalar(0)); + +/** @brief Finds edges in an image using the Canny algorithm. + +The function finds edges in the input image and marks them in the output map edges using the +Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The +largest value is used to find initial segments of strong edges. See + + +@note Function textual ID is "org.opencv.imgproc.filters.canny" + +@param image 8-bit input image. +@param threshold1 first threshold for the hysteresis procedure. +@param threshold2 second threshold for the hysteresis procedure. +@param apertureSize aperture size for the Sobel operator. +@param L2gradient a flag, indicating whether a more accurate \f$L_2\f$ norm +\f$=\sqrt{(dI/dx)^2 + (dI/dy)^2}\f$ should be used to calculate the image gradient magnitude ( +L2gradient=true ), or whether the default \f$L_1\f$ norm \f$=|dI/dx|+|dI/dy|\f$ is enough ( +L2gradient=false ). + */ +GAPI_EXPORTS GMat Canny(const GMat& image, double threshold1, double threshold2, + int apertureSize = 3, bool L2gradient = false); + +/** @brief Equalizes the histogram of a grayscale image. + +The function equalizes the histogram of the input image using the following algorithm: + +- Calculate the histogram \f$H\f$ for src . +- Normalize the histogram so that the sum of histogram bins is 255. +- Compute the integral of the histogram: +\f[H'_i = \sum _{0 \le j < i} H(j)\f] +- Transform the image using \f$H'\f$ as a look-up table: \f$\texttt{dst}(x,y) = H'(\texttt{src}(x,y))\f$ + +The algorithm normalizes the brightness and increases the contrast of the image. +@note The returned image is of the same size and type as input. + +@note Function textual ID is "org.opencv.imgproc.equalizeHist" + +@param src Source 8-bit single channel image. + */ +GAPI_EXPORTS GMat equalizeHist(const GMat& src); + +//! @} gapi_filters + +//! @addtogroup gapi_colorconvert +//! @{ +/** @brief Converts an image from RGB color space to gray-scaled. +The conventional ranges for R, G, and B channel values are 0 to 255. +Resulting gray color value computed as +\f[\texttt{dst} (I)= \texttt{0.299} * \texttt{src}(I).R + \texttt{0.587} * \texttt{src}(I).G + \texttt{0.114} * \texttt{src}(I).B \f] + +@note Function textual ID is "org.opencv.imgproc.colorconvert.rgb2gray" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC1. +@sa RGB2YUV + */ +GAPI_EXPORTS GMat RGB2Gray(const GMat& src); + +/** @overload +Resulting gray color value computed as +\f[\texttt{dst} (I)= \texttt{rY} * \texttt{src}(I).R + \texttt{gY} * \texttt{src}(I).G + \texttt{bY} * \texttt{src}(I).B \f] + +@note Function textual ID is "org.opencv.imgproc.colorconvert.rgb2graycustom" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC1. +@param rY float multiplier for R channel. +@param gY float multiplier for G channel. +@param bY float multiplier for B channel. +@sa RGB2YUV + */ +GAPI_EXPORTS GMat RGB2Gray(const GMat& src, float rY, float gY, float bY); + +/** @brief Converts an image from BGR color space to gray-scaled. +The conventional ranges for B, G, and R channel values are 0 to 255. +Resulting gray color value computed as +\f[\texttt{dst} (I)= \texttt{0.114} * \texttt{src}(I).B + \texttt{0.587} * \texttt{src}(I).G + \texttt{0.299} * \texttt{src}(I).R \f] + +@note Function textual ID is "org.opencv.imgproc.colorconvert.bgr2gray" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC1. +@sa BGR2LUV + */ +GAPI_EXPORTS GMat BGR2Gray(const GMat& src); + +/** @brief Converts an image from RGB color space to YUV color space. + +The function converts an input image from RGB color space to YUV. +The conventional ranges for R, G, and B channel values are 0 to 255. + +In case of linear transformations, the range does not matter. But in case of a non-linear +transformation, an input RGB image should be normalized to the proper value range to get the correct +results, like here, at RGB \f$\rightarrow\f$ Y\*u\*v\* transformation. +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.rgb2yuv" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC3. +@sa YUV2RGB, RGB2Lab +*/ +GAPI_EXPORTS GMat RGB2YUV(const GMat& src); + +/** @brief Converts an image from BGR color space to LUV color space. + +The function converts an input image from BGR color space to LUV. +The conventional ranges for B, G, and R channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.bgr2luv" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC3. +@sa RGB2Lab, RGB2LUV +*/ +GAPI_EXPORTS GMat BGR2LUV(const GMat& src); + +/** @brief Converts an image from LUV color space to BGR color space. + +The function converts an input image from LUV color space to BGR. +The conventional ranges for B, G, and R channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.luv2bgr" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC3. +@sa BGR2LUV +*/ +GAPI_EXPORTS GMat LUV2BGR(const GMat& src); + +/** @brief Converts an image from YUV color space to BGR color space. + +The function converts an input image from YUV color space to BGR. +The conventional ranges for B, G, and R channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.yuv2bgr" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC3. +@sa BGR2YUV +*/ +GAPI_EXPORTS GMat YUV2BGR(const GMat& src); + +/** @brief Converts an image from BGR color space to YUV color space. + +The function converts an input image from BGR color space to YUV. +The conventional ranges for B, G, and R channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.bgr2yuv" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC3. +@sa YUV2BGR +*/ +GAPI_EXPORTS GMat BGR2YUV(const GMat& src); + +/** @brief Converts an image from RGB color space to Lab color space. + +The function converts an input image from BGR color space to Lab. +The conventional ranges for R, G, and B channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC1. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.rgb2lab" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC1. +@sa RGB2YUV, RGB2LUV +*/ +GAPI_EXPORTS GMat RGB2Lab(const GMat& src); + +/** @brief Converts an image from YUV color space to RGB. +The function converts an input image from YUV color space to RGB. +The conventional ranges for Y, U, and V channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.yuv2rgb" + +@param src input image: 8-bit unsigned 3-channel image @ref CV_8UC3. + +@sa RGB2Lab, RGB2YUV +*/ +GAPI_EXPORTS GMat YUV2RGB(const GMat& src); + +/** @brief Converts an image from NV12 (YUV420p) color space to RGB. +The function converts an input image from NV12 color space to RGB. +The conventional ranges for Y, U, and V channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.nv12torgb" + +@param src_y input image: 8-bit unsigned 1-channel image @ref CV_8UC1. +@param src_uv input image: 8-bit unsigned 2-channel image @ref CV_8UC2. + +@sa YUV2RGB, NV12toBGR +*/ +GAPI_EXPORTS GMat NV12toRGB(const GMat& src_y, const GMat& src_uv); + +/** @brief Converts an image from NV12 (YUV420p) color space to BGR. +The function converts an input image from NV12 color space to RGB. +The conventional ranges for Y, U, and V channel values are 0 to 255. + +Output image must be 8-bit unsigned 3-channel image @ref CV_8UC3. + +@note Function textual ID is "org.opencv.imgproc.colorconvert.nv12tobgr" + +@param src_y input image: 8-bit unsigned 1-channel image @ref CV_8UC1. +@param src_uv input image: 8-bit unsigned 2-channel image @ref CV_8UC2. + +@sa YUV2BGR, NV12toRGB +*/ +GAPI_EXPORTS GMat NV12toBGR(const GMat& src_y, const GMat& src_uv); +//! @} gapi_colorconvert +} //namespace gapi +} //namespace cv + +#endif // OPENCV_GAPI_IMGPROC_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/core.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/core.hpp new file mode 100644 index 000000000..4ab85e209 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/core.hpp @@ -0,0 +1,27 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OCL_CORE_API_HPP +#define OPENCV_GAPI_OCL_CORE_API_HPP + +#include // GAPI_EXPORTS +#include // GKernelPackage + +namespace cv { +namespace gapi { +namespace core { +namespace ocl { + + GAPI_EXPORTS GKernelPackage kernels(); + +} // namespace ocl +} // namespace core +} // namespace gapi +} // namespace cv + + +#endif // OPENCV_GAPI_OCL_CORE_API_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/goclkernel.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/goclkernel.hpp new file mode 100644 index 000000000..ea2cda0bf --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/goclkernel.hpp @@ -0,0 +1,244 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GOCLKERNEL_HPP +#define OPENCV_GAPI_GOCLKERNEL_HPP + +#include +#include +#include +#include + +#include +#include +#include +#include + +// FIXME: namespace scheme for backends? +namespace cv { + +namespace gimpl +{ + // Forward-declare an internal class + class GOCLExecutable; +} // namespace gimpl + +namespace gapi +{ +namespace ocl +{ + /** + * \addtogroup gapi_std_backends G-API Standard backends + * @{ + */ + /** + * @brief Get a reference to OCL backend. + * + * At the moment, the OCL backend is built atop of OpenCV + * "Transparent API" (T-API), see cv::UMat for details. + * + * @sa gapi_std_backends + */ + GAPI_EXPORTS cv::gapi::GBackend backend(); + /** @} */ +} // namespace ocl +} // namespace gapi + + +// Represents arguments which are passed to a wrapped OCL function +// FIXME: put into detail? +class GAPI_EXPORTS GOCLContext +{ +public: + // Generic accessor API + template + const T& inArg(int input) { return m_args.at(input).get(); } + + // Syntax sugar + const cv::UMat& inMat(int input); + cv::UMat& outMatR(int output); // FIXME: Avoid cv::Mat m = ctx.outMatR() + + const cv::gapi::own::Scalar& inVal(int input); + cv::gapi::own::Scalar& outValR(int output); // FIXME: Avoid cv::gapi::own::Scalar s = ctx.outValR() + template std::vector& outVecR(int output) // FIXME: the same issue + { + return outVecRef(output).wref(); + } + +protected: + detail::VectorRef& outVecRef(int output); + + std::vector m_args; + std::unordered_map m_results; + + + friend class gimpl::GOCLExecutable; +}; + +class GAPI_EXPORTS GOCLKernel +{ +public: + // This function is kernel's execution entry point (does the processing work) + using F = std::function; + + GOCLKernel(); + explicit GOCLKernel(const F& f); + + void apply(GOCLContext &ctx); + +protected: + F m_f; +}; + +// FIXME: This is an ugly ad-hoc imlpementation. TODO: refactor + +namespace detail +{ +template struct ocl_get_in; +template<> struct ocl_get_in +{ + static cv::UMat get(GOCLContext &ctx, int idx) { return ctx.inMat(idx); } +}; +template<> struct ocl_get_in +{ + static cv::Scalar get(GOCLContext &ctx, int idx) { return to_ocv(ctx.inVal(idx)); } +}; +template struct ocl_get_in > +{ + static const std::vector& get(GOCLContext &ctx, int idx) { return ctx.inArg(idx).rref(); } +}; +template struct ocl_get_in +{ + static T get(GOCLContext &ctx, int idx) { return ctx.inArg(idx); } +}; + +struct tracked_cv_umat{ + //TODO Think if T - API could reallocate UMat to a proper size - how do we handle this ? + //tracked_cv_umat(cv::UMat& m) : r{(m)}, original_data{m.getMat(ACCESS_RW).data} {} + tracked_cv_umat(cv::UMat& m) : r{ (m) }, original_data{ nullptr } {} + cv::UMat r; + uchar* original_data; + + operator cv::UMat& (){ return r;} + void validate() const{ + //if (r.getMat(ACCESS_RW).data != original_data) + //{ + // util::throw_error + // (std::logic_error + // ("OpenCV kernel output parameter was reallocated. \n" + // "Incorrect meta data was provided ?")); + //} + + } +}; + +struct scalar_wrapper_ocl +{ + //FIXME reuse CPU (OpenCV) plugin code + scalar_wrapper_ocl(cv::gapi::own::Scalar& s) : m_s{cv::gapi::own::to_ocv(s)}, m_org_s(s) {}; + operator cv::Scalar& () { return m_s; } + void writeBack() const { m_org_s = to_own(m_s); } + + cv::Scalar m_s; + cv::gapi::own::Scalar& m_org_s; +}; + +template +void postprocess_ocl(Outputs&... outs) +{ + struct + { + void operator()(tracked_cv_umat* bm) { bm->validate(); } + void operator()(scalar_wrapper_ocl* sw) { sw->writeBack(); } + void operator()(...) { } + + } validate; + //dummy array to unfold parameter pack + int dummy[] = { 0, (validate(&outs), 0)... }; + cv::util::suppress_unused_warning(dummy); +} + +template struct ocl_get_out; +template<> struct ocl_get_out +{ + static tracked_cv_umat get(GOCLContext &ctx, int idx) + { + auto& r = ctx.outMatR(idx); + return{ r }; + } +}; +template<> struct ocl_get_out +{ + static scalar_wrapper_ocl get(GOCLContext &ctx, int idx) + { + auto& s = ctx.outValR(idx); + return{ s }; + } +}; +template struct ocl_get_out > +{ + static std::vector& get(GOCLContext &ctx, int idx) { return ctx.outVecR(idx); } +}; + +template +struct OCLCallHelper; + +// FIXME: probably can be simplified with std::apply or analogue. +template +struct OCLCallHelper, std::tuple > +{ + template + struct call_and_postprocess + { + template + static void call(Inputs&&... ins, Outputs&&... outs) + { + //not using a std::forward on outs is deliberate in order to + //cause compilation error, by tring to bind rvalue references to lvalue references + Impl::run(std::forward(ins)..., outs...); + + postprocess_ocl(outs...); + } + }; + + template + static void call_impl(GOCLContext &ctx, detail::Seq, detail::Seq) + { + //TODO: Make sure that OpenCV kernels do not reallocate memory for output parameters + //by comparing it's state (data ptr) before and after the call. + //Convert own::Scalar to cv::Scalar before call kernel and run kernel + //convert cv::Scalar to own::Scalar after call kernel and write back results + call_and_postprocess::get(ctx, IIs))...>::call(ocl_get_in::get(ctx, IIs)..., ocl_get_out::get(ctx, OIs)...); + } + + static void call(GOCLContext &ctx) + { + call_impl(ctx, + typename detail::MkSeq::type(), + typename detail::MkSeq::type()); + } +}; + +} // namespace detail + +template +class GOCLKernelImpl: public detail::OCLCallHelper +{ + using P = detail::OCLCallHelper; + +public: + using API = K; + + static cv::gapi::GBackend backend() { return cv::gapi::ocl::backend(); } + static cv::GOCLKernel kernel() { return GOCLKernel(&P::call); } +}; + +#define GAPI_OCL_KERNEL(Name, API) struct Name: public cv::GOCLKernelImpl + +} // namespace cv + +#endif // OPENCV_GAPI_GOCLKERNEL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/imgproc.hpp new file mode 100644 index 000000000..1bb5911b1 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/ocl/imgproc.hpp @@ -0,0 +1,27 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OCL_IMGPROC_API_HPP +#define OPENCV_GAPI_OCL_IMGPROC_API_HPP + +#include // GAPI_EXPORTS +#include // GKernelPackage + +namespace cv { +namespace gapi { +namespace imgproc { +namespace ocl { + + GAPI_EXPORTS GKernelPackage kernels(); + +} // namespace ocl +} // namespace imgproc +} // namespace gapi +} // namespace cv + + +#endif // OPENCV_GAPI_OCL_IMGPROC_API_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/opencv_includes.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/opencv_includes.hpp new file mode 100644 index 000000000..5acf28023 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/opencv_includes.hpp @@ -0,0 +1,21 @@ +// This file is part of OpenCV project. + +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OPENCV_INCLUDES_HPP +#define OPENCV_GAPI_OPENCV_INCLUDES_HPP + +#if !defined(GAPI_STANDALONE) +# include +# include +# include +# include +#else // Without OpenCV +# include +#endif // !defined(GAPI_STANDALONE) + +#endif // OPENCV_GAPI_OPENCV_INCLUDES_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/operators.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/operators.hpp new file mode 100644 index 000000000..27a1d8012 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/operators.hpp @@ -0,0 +1,69 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OPERATORS_HPP +#define OPENCV_GAPI_OPERATORS_HPP + +#include "opencv2/gapi/gmat.hpp" +#include "opencv2/gapi/gscalar.hpp" + +GAPI_EXPORTS cv::GMat operator+(const cv::GMat& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator+(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator+(const cv::GScalar& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator-(const cv::GMat& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator-(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator-(const cv::GScalar& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator*(const cv::GMat& lhs, float rhs); +GAPI_EXPORTS cv::GMat operator*(float lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator*(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator*(const cv::GScalar& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator/(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator/(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator/(const cv::GMat& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator&(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator|(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator^(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator~(const cv::GMat& lhs); + +GAPI_EXPORTS cv::GMat operator&(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator|(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator^(const cv::GScalar& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator&(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator|(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator^(const cv::GMat& lhs, const cv::GScalar& rhs); + +GAPI_EXPORTS cv::GMat operator>(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator>=(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator<(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator<=(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator==(const cv::GMat& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator!=(const cv::GMat& lhs, const cv::GMat& rhs); + +GAPI_EXPORTS cv::GMat operator>(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator>=(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator<(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator<=(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator==(const cv::GMat& lhs, const cv::GScalar& rhs); +GAPI_EXPORTS cv::GMat operator!=(const cv::GMat& lhs, const cv::GScalar& rhs); + +GAPI_EXPORTS cv::GMat operator>(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator>=(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator<(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator<=(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator==(const cv::GScalar& lhs, const cv::GMat& rhs); +GAPI_EXPORTS cv::GMat operator!=(const cv::GScalar& lhs, const cv::GMat& rhs); + + + +#endif // OPENCV_GAPI_OPERATORS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/assert.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/assert.hpp new file mode 100644 index 000000000..10ec240b5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/assert.hpp @@ -0,0 +1,43 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OWN_ASSERT_HPP +#define OPENCV_GAPI_OWN_ASSERT_HPP + +#if !defined(GAPI_STANDALONE) +#include +#define GAPI_Assert CV_Assert +#define GAPI_DbgAssert CV_DbgAssert + +#else +#include +#include +#include "opencv2/gapi/util/throw.hpp" + +namespace detail +{ + inline void assert_abort(const char* str, int line, const char* file, const char* func) + { + std::stringstream ss; + ss << file << ":" << line << ": Assertion " << str << " in function " << func << " failed\n"; + cv::util::throw_error(std::logic_error(ss.str())); + } +} + +#define GAPI_Assert(expr) \ +{ if (!(expr)) ::detail::assert_abort(#expr, __LINE__, __FILE__, __func__); } + + +#ifdef NDEBUG +# define GAPI_DbgAssert(expr) +#else +# define GAPI_DbgAssert(expr) GAPI_Assert(expr) +#endif + +#endif // GAPI_STANDALONE + +#endif // OPENCV_GAPI_OWN_ASSERT_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/convert.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/convert.hpp new file mode 100644 index 000000000..8c1feb408 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/convert.hpp @@ -0,0 +1,50 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OWN_CONVERT_HPP +#define OPENCV_GAPI_OWN_CONVERT_HPP + +#if !defined(GAPI_STANDALONE) + +#include +#include +#include +#include "opencv2/gapi/own/scalar.hpp" + +namespace cv +{ + inline cv::gapi::own::Mat to_own(Mat const& m) { return {m.rows, m.cols, m.type(), m.data, m.step};}; + cv::gapi::own::Mat to_own(Mat&&) = delete; + + inline cv::gapi::own::Scalar to_own(const cv::Scalar& s) { return {s[0], s[1], s[2], s[3]}; }; + + inline cv::gapi::own::Size to_own (const Size& s) { return {s.width, s.height}; }; + + inline cv::gapi::own::Rect to_own (const Rect& r) { return {r.x, r.y, r.width, r.height}; }; + + + +namespace gapi +{ +namespace own +{ + inline cv::Mat to_ocv(Mat const& m) { return {m.rows, m.cols, m.type(), m.data, m.step};}; + cv::Mat to_ocv(Mat&&) = delete; + + inline cv::Scalar to_ocv(const Scalar& s) { return {s[0], s[1], s[2], s[3]}; }; + + inline cv::Size to_ocv (const Size& s) { return cv::Size(s.width, s.height); }; + + inline cv::Rect to_ocv (const Rect& r) { return cv::Rect(r.x, r.y, r.width, r.height); }; + +} // namespace own +} // namespace gapi +} // namespace cv + +#endif // !defined(GAPI_STANDALONE) + +#endif // OPENCV_GAPI_OWN_CONVERT_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/cvdefs.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/cvdefs.hpp new file mode 100644 index 000000000..e11053692 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/cvdefs.hpp @@ -0,0 +1,146 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_CV_DEFS_HPP +#define OPENCV_GAPI_CV_DEFS_HPP + +#if defined(GAPI_STANDALONE) + +// Simulate OpenCV definitions taken from various +// OpenCV interface headers if G-API is built in a +// standalone mode. + +// interface.h: + +typedef unsigned char uchar; +typedef char schar; + +typedef unsigned short ushort; + +#define CV_CN_MAX 512 +#define CV_CN_SHIFT 3 +#define CV_DEPTH_MAX (1 << CV_CN_SHIFT) + + +#define CV_8U 0 +#define CV_8S 1 +#define CV_16U 2 +#define CV_16S 3 +#define CV_32S 4 +#define CV_32F 5 +#define CV_64F 6 +#define CV_USRTYPE1 7 + +#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1) +#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK) + +#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT)) +#define CV_MAKE_TYPE CV_MAKETYPE + +#define CV_8UC1 CV_MAKETYPE(CV_8U,1) +#define CV_8UC2 CV_MAKETYPE(CV_8U,2) +#define CV_8UC3 CV_MAKETYPE(CV_8U,3) +#define CV_8UC4 CV_MAKETYPE(CV_8U,4) +#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n)) + +#define CV_8SC1 CV_MAKETYPE(CV_8S,1) +#define CV_8SC2 CV_MAKETYPE(CV_8S,2) +#define CV_8SC3 CV_MAKETYPE(CV_8S,3) +#define CV_8SC4 CV_MAKETYPE(CV_8S,4) +#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n)) + +#define CV_16UC1 CV_MAKETYPE(CV_16U,1) +#define CV_16UC2 CV_MAKETYPE(CV_16U,2) +#define CV_16UC3 CV_MAKETYPE(CV_16U,3) +#define CV_16UC4 CV_MAKETYPE(CV_16U,4) +#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n)) + +#define CV_16SC1 CV_MAKETYPE(CV_16S,1) +#define CV_16SC2 CV_MAKETYPE(CV_16S,2) +#define CV_16SC3 CV_MAKETYPE(CV_16S,3) +#define CV_16SC4 CV_MAKETYPE(CV_16S,4) +#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n)) + +#define CV_32SC1 CV_MAKETYPE(CV_32S,1) +#define CV_32SC2 CV_MAKETYPE(CV_32S,2) +#define CV_32SC3 CV_MAKETYPE(CV_32S,3) +#define CV_32SC4 CV_MAKETYPE(CV_32S,4) +#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n)) + +#define CV_32FC1 CV_MAKETYPE(CV_32F,1) +#define CV_32FC2 CV_MAKETYPE(CV_32F,2) +#define CV_32FC3 CV_MAKETYPE(CV_32F,3) +#define CV_32FC4 CV_MAKETYPE(CV_32F,4) +#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n)) + +#define CV_64FC1 CV_MAKETYPE(CV_64F,1) +#define CV_64FC2 CV_MAKETYPE(CV_64F,2) +#define CV_64FC3 CV_MAKETYPE(CV_64F,3) +#define CV_64FC4 CV_MAKETYPE(CV_64F,4) +#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n)) + +// cvdef.h: + +#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT) +#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1) +#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1) +#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK) +#define CV_MAT_CONT_FLAG_SHIFT 14 +#define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT) +#define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG) +#define CV_IS_CONT_MAT CV_IS_MAT_CONT +#define CV_SUBMAT_FLAG_SHIFT 15 +#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT) +#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG) + +///** Size of each channel item, +// 0x8442211 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */ +//#define CV_ELEM_SIZE1(type) \ +// ((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15) + +#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK) + +/** 0x3a50 = 11 10 10 01 01 00 00 ~ array of log2(sizeof(arr_type_elem)) */ +#define CV_ELEM_SIZE(type) \ + (CV_MAT_CN(type) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> CV_MAT_DEPTH(type)*2) & 3)) + +// base.h: +namespace cv +{ +enum BorderTypes { + BORDER_CONSTANT = 0, //!< `iiiiii|abcdefgh|iiiiiii` with some specified `i` + BORDER_REPLICATE = 1, //!< `aaaaaa|abcdefgh|hhhhhhh` + BORDER_REFLECT = 2, //!< `fedcba|abcdefgh|hgfedcb` + BORDER_WRAP = 3, //!< `cdefgh|abcdefgh|abcdefg` + BORDER_REFLECT_101 = 4, //!< `gfedcb|abcdefgh|gfedcba` + BORDER_TRANSPARENT = 5, //!< `uvwxyz|abcdefgh|ijklmno` + + BORDER_REFLECT101 = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101 + BORDER_DEFAULT = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101 + BORDER_ISOLATED = 16 //!< do not look outside of ROI +}; +// imgproc.hpp: +enum InterpolationFlags{ + INTER_NEAREST = 0, + INTER_LINEAR = 1, + INTER_CUBIC = 2, + INTER_AREA = 3, + INTER_LANCZOS4 = 4, + INTER_LINEAR_EXACT = 5, + INTER_MAX = 7, +}; +} // namespace cv + +static inline int cvFloor( double value ) +{ + int i = (int)value; + return i - (i > value); +} + +#endif // defined(GAPI_STANDALONE) + +#endif // OPENCV_GAPI_CV_DEFS_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/exports.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/exports.hpp new file mode 100644 index 000000000..0d955d0e4 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/exports.hpp @@ -0,0 +1,28 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OWN_TYPES_HPP +#define OPENCV_GAPI_OWN_TYPES_HPP + +# if 0 +# include +# define GAPI_EXPORTS CV_EXPORTS + +# else +# if defined _WIN32 +# define GAPI_EXPORTS __declspec(dllexport) +# elif defined __GNUC__ && __GNUC__ >= 4 +# define GAPI_EXPORTS __attribute__ ((visibility ("default"))) +# endif + +# ifndef GAPI_EXPORTS +# define GAPI_EXPORTS +# endif + +# endif + +#endif // OPENCV_GAPI_OWN_TYPES_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/mat.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/mat.hpp new file mode 100644 index 000000000..73f3afcbc --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/mat.hpp @@ -0,0 +1,291 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OWN_MAT_HPP +#define OPENCV_GAPI_OWN_MAT_HPP + +#include "opencv2/gapi/opencv_includes.hpp" +#include "opencv2/gapi/own/types.hpp" +#include "opencv2/gapi/own/scalar.hpp" +#include "opencv2/gapi/own/saturate.hpp" +#include "opencv2/gapi/own/assert.hpp" + +#include //std::shared_ptr +#include //std::memcpy +#include "opencv2/gapi/util/throw.hpp" + +namespace cv { namespace gapi { namespace own { + namespace detail { + template + void assign_row(void* ptr, int cols, Scalar const& s) + { + auto p = static_cast(ptr); + for (int c = 0; c < cols; c++) + { + for (int ch = 0; ch < channels; ch++) + { + p[c * channels + ch] = saturate(s[ch], roundd); + } + } + } + + inline size_t default_step(int type, int cols) + { + return CV_ELEM_SIZE(type) * cols; + } + //Matrix header, i.e. fields that are unique to each Mat object. + //Devoted class is needed to implement custom behavior on move (erasing state of moved from object) + struct MatHeader{ + enum { AUTO_STEP = 0}; + enum { TYPE_MASK = 0x00000FFF }; + + MatHeader() = default; + + MatHeader(int _rows, int _cols, int type, void* _data, size_t _step) + : flags((type & TYPE_MASK)), rows(_rows), cols(_cols), data((uchar*)_data), step(_step == AUTO_STEP ? detail::default_step(type, _cols) : _step) + {} + + MatHeader(const MatHeader& ) = default; + MatHeader(MatHeader&& src) : MatHeader(src) // reuse copy constructor here + { + MatHeader empty; //give it a name to call copy(not move) assignment below + src = empty; + } + MatHeader& operator=(const MatHeader& ) = default; + MatHeader& operator=(MatHeader&& src) + { + *this = src; //calling a copy assignment here, not move one + MatHeader empty; //give it a name to call copy(not move) assignment below + src = empty; + return *this; + } + /*! includes several bit-fields: + - depth + - number of channels + */ + int flags = 0; + + //! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions + int rows = 0, cols = 0; + //! pointer to the data + uchar* data = nullptr; + size_t step = 0; + }; + } + //concise version of cv::Mat suitable for GAPI needs (used when no dependence on OpenCV is required) + class Mat : public detail::MatHeader{ + public: + + Mat() = default; + + /** @overload + @param _rows Number of rows in a 2D array. + @param _cols Number of columns in a 2D array. + @param _type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or + CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. + @param _data Pointer to the user data. Matrix constructors that take data and step parameters do not + allocate matrix data. Instead, they just initialize the matrix header that points to the specified + data, which means that no data is copied. This operation is very efficient and can be used to + process external data using OpenCV functions. The external data is not automatically deallocated, so + you should take care of it. + @param _step Number of bytes each matrix row occupies. The value should include the padding bytes at + the end of each row, if any. If the parameter is missing (set to AUTO_STEP ), no padding is assumed + and the actual step is calculated as cols*elemSize(). See Mat::elemSize. + */ + Mat(int _rows, int _cols, int _type, void* _data, size_t _step = AUTO_STEP) + : MatHeader (_rows, _cols, _type, _data, _step) + {} + + Mat(Mat const& src, const Rect& roi ) + : Mat(src) + { + rows = roi.height; + cols = roi.width; + data = ptr(roi.y, roi.x); + } + + Mat(Mat const& src) = default; + Mat(Mat&& src) = default; + + Mat& operator=(Mat const& src) = default; + Mat& operator=(Mat&& src) = default; + + /** @brief Sets all or some of the array elements to the specified value. + @param s Assigned scalar converted to the actual array type. + */ + Mat& operator = (const Scalar& s) + { + constexpr unsigned max_channels = 4; //Scalar can't fit more than 4 + const auto channels = static_cast(this->channels()); + GAPI_Assert(channels <= max_channels); + + using func_p_t = void (*)(void*, int, Scalar const&); + using detail::assign_row; + #define TABLE_ENTRY(type) {assign_row, assign_row, assign_row, assign_row} + static constexpr func_p_t func_tbl[][max_channels] = { + TABLE_ENTRY(uchar), + TABLE_ENTRY(schar), + TABLE_ENTRY(ushort), + TABLE_ENTRY(short), + TABLE_ENTRY(int), + TABLE_ENTRY(float), + TABLE_ENTRY(double) + }; + #undef TABLE_ENTRY + + static_assert(CV_8U == 0 && CV_8S == 1 && CV_16U == 2 && CV_16S == 3 + && CV_32S == 4 && CV_32F == 5 && CV_64F == 6, + "OCV type ids used as indexes to array, thus exact numbers are important!" + ); + + const auto depth = static_cast(this->depth()); + GAPI_Assert(depth < sizeof(func_tbl)/sizeof(func_tbl[0])); + + for (int r = 0; r < rows; ++r) + { + auto* f = func_tbl[depth][channels -1]; + (*f)(static_cast(ptr(r)), cols, s ); + } + return *this; + } + + /** @brief Returns the matrix element size in bytes. + + The method returns the matrix element size in bytes. For example, if the matrix type is CV_16SC3 , + the method returns 3\*sizeof(short) or 6. + */ + size_t elemSize() const + { + return CV_ELEM_SIZE(type()); + } + /** @brief Returns the type of a matrix element. + + The method returns a matrix element type. This is an identifier compatible with the CvMat type + system, like CV_16SC3 or 16-bit signed 3-channel array, and so on. + */ + int type() const {return CV_MAT_TYPE(flags);} + + /** @brief Returns the depth of a matrix element. + + The method returns the identifier of the matrix element depth (the type of each individual channel). + For example, for a 16-bit signed element array, the method returns CV_16S . A complete list of + matrix types contains the following values: + - CV_8U - 8-bit unsigned integers ( 0..255 ) + - CV_8S - 8-bit signed integers ( -128..127 ) + - CV_16U - 16-bit unsigned integers ( 0..65535 ) + - CV_16S - 16-bit signed integers ( -32768..32767 ) + - CV_32S - 32-bit signed integers ( -2147483648..2147483647 ) + - CV_32F - 32-bit floating-point numbers ( -FLT_MAX..FLT_MAX, INF, NAN ) + - CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN ) + */ + int depth() const {return CV_MAT_DEPTH(flags);} + + /** @brief Returns the number of matrix channels. + + The method returns the number of matrix channels. + */ + int channels() const {return CV_MAT_CN(flags);} + + /** + @param _rows New number of rows. + @param _cols New number of columns. + @param _type New matrix type. + */ + void create(int _rows, int _cols, int _type) + { + create({_cols, _rows}, _type); + } + /** @overload + @param _size Alternative new matrix size specification: Size(cols, rows) + @param _type New matrix type. + */ + void create(Size _size, int _type) + { + if (_size != Size{cols, rows} ) + { + Mat tmp{_size.height, _size.width, _type, nullptr}; + tmp.memory.reset(new uchar[ tmp.step * tmp.rows], [](uchar * p){delete[] p;}); + tmp.data = tmp.memory.get(); + + *this = std::move(tmp); + } + } + + /** @brief Copies the matrix to another one. + + The method copies the matrix data to another matrix. Before copying the data, the method invokes : + @code + m.create(this->size(), this->type()); + @endcode + so that the destination matrix is reallocated if needed. While m.copyTo(m); works flawlessly, the + function does not handle the case of a partial overlap between the source and the destination + matrices. + */ + void copyTo(Mat& dst) const + { + dst.create(rows, cols, type()); + for (int r = 0; r < rows; ++r) + { + std::copy_n(ptr(r), detail::default_step(type(),cols), dst.ptr(r)); + } + } + + /** @brief Returns true if the array has no elements. + + The method returns true if Mat::total() is 0 or if Mat::data is NULL. Because of pop_back() and + resize() methods `M.total() == 0` does not imply that `M.data == NULL`. + */ + bool empty() const; + + /** @brief Returns the total number of array elements. + + The method returns the number of array elements (a number of pixels if the array represents an + image). + */ + size_t total() const + { + return static_cast(rows * cols); + } + + + /** @overload + @param roi Extracted submatrix specified as a rectangle. + */ + Mat operator()( const Rect& roi ) const + { + return Mat{*this, roi}; + } + + + /** @brief Returns a pointer to the specified matrix row. + + The methods return `uchar*` or typed pointer to the specified matrix row. See the sample in + Mat::isContinuous to know how to use these methods. + @param row Index along the dimension 0 + @param col Index along the dimension 1 + */ + uchar* ptr(int row, int col = 0) + { + return const_cast(const_cast(this)->ptr(row,col)); + } + /** @overload */ + const uchar* ptr(int row, int col = 0) const + { + return data + step * row + CV_ELEM_SIZE(type()) * col; + } + + + private: + //actual memory allocated for storage, or nullptr if object is non owning view to over memory + std::shared_ptr memory; + }; + +} //namespace own +} //namespace gapi +} //namespace cv + +#endif /* OPENCV_GAPI_OWN_MAT_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/saturate.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/saturate.hpp new file mode 100644 index 000000000..207dcde25 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/saturate.hpp @@ -0,0 +1,90 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_OWN_SATURATE_HPP +#define OPENCV_GAPI_OWN_SATURATE_HPP + +#include + +#include +#include + +#include + +namespace cv { namespace gapi { namespace own { +//----------------------------- +// +// Numeric cast with saturation +// +//----------------------------- + +template +static inline DST saturate(SRC x) +{ + // only integral types please! + GAPI_DbgAssert(std::is_integral::value && + std::is_integral::value); + + if (std::is_same::value) + return static_cast(x); + + if (sizeof(DST) > sizeof(SRC)) + return static_cast(x); + + // compiler must recognize this saturation, + // so compile saturate(a + b) with adds + // instruction (e.g.: _mm_adds_epi16 if x86) + return x < std::numeric_limits::min()? + std::numeric_limits::min(): + x > std::numeric_limits::max()? + std::numeric_limits::max(): + static_cast(x); +} + +// Note, that OpenCV rounds differently: +// - like std::round() for add, subtract +// - like std::rint() for multiply, divide +template +static inline DST saturate(SRC x, R round) +{ + if (std::is_floating_point::value) + { + return static_cast(x); + } + else if (std::is_integral::value) + { + GAPI_DbgAssert(std::is_integral::value && + std::is_integral::value); + return saturate(x); + } + else + { + GAPI_DbgAssert(std::is_integral::value && + std::is_floating_point::value); +#ifdef _WIN32 +// Suppress warning about convering x to floating-point +// Note that x is already floating-point at this point +#pragma warning(disable: 4244) +#endif + int ix = static_cast(round(x)); +#ifdef _WIN32 +#pragma warning(default: 4244) +#endif + return saturate(ix); + } +} + +// explicit suffix 'd' for double type +inline double ceild(double x) { return std::ceil(x); } +inline double floord(double x) { return std::floor(x); } +inline double roundd(double x) { return std::round(x); } +inline double rintd(double x) { return std::rint(x); } + +} //namespace own +} //namespace gapi +} //namespace cv +#endif /* OPENCV_GAPI_OWN_SATURATE_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/scalar.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/scalar.hpp new file mode 100644 index 000000000..bda91c83b --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/scalar.hpp @@ -0,0 +1,47 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_GAPI_OWN_SCALAR_HPP +#define OPENCV_GAPI_GAPI_OWN_SCALAR_HPP + +#include + +namespace cv +{ +namespace gapi +{ +namespace own +{ + +class GAPI_EXPORTS Scalar +{ +public: + Scalar() = default; + explicit Scalar(double v0) { val[0] = v0; }; + Scalar(double v0, double v1, double v2 = 0, double v3 = 0) + : val{v0, v1, v2, v3} + { + } + + const double& operator[](int i) const { return val[i]; } + double& operator[](int i) { return val[i]; } + + static Scalar all(double v0) { return Scalar(v0, v0, v0, v0); } + + double val[4] = {0}; +}; + +inline bool operator==(const Scalar& lhs, const Scalar& rhs) +{ + return std::equal(std::begin(lhs.val), std::end(lhs.val), std::begin(rhs.val)); +} + +} // namespace own +} // namespace gapi +} // namespace cv + +#endif // OPENCV_GAPI_GAPI_OWN_SCALAR_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/own/types.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/types.hpp new file mode 100644 index 000000000..20445ee0f --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/own/types.hpp @@ -0,0 +1,135 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_TYPES_HPP +#define OPENCV_GAPI_TYPES_HPP + +#include // std::max, std::min +#include + +namespace cv +{ +namespace gapi +{ +namespace own +{ + +class Point +{ +public: + Point() = default; + Point(int _x, int _y) : x(_x), y(_y) {}; + + int x = 0; + int y = 0; +}; + +class Rect +{ +public: + Rect() = default; + Rect(int _x, int _y, int _width, int _height) : x(_x), y(_y), width(_width), height(_height) {}; +#if !defined(GAPI_STANDALONE) + Rect(const cv::Rect& other) : x(other.x), y(other.y), width(other.width), height(other.height) {}; + inline Rect& operator=(const cv::Rect& other) + { + x = other.x; + y = other.x; + width = other.width; + height = other.height; + return *this; + } +#endif // !defined(GAPI_STANDALONE) + + int x = 0; //!< x coordinate of the top-left corner + int y = 0; //!< y coordinate of the top-left corner + int width = 0; //!< width of the rectangle + int height = 0; //!< height of the rectangle +}; + +inline bool operator==(const Rect& lhs, const Rect& rhs) +{ + return lhs.x == rhs.x && lhs.y == rhs.y && lhs.width == rhs.width && lhs.height == rhs.height; +} + +inline bool operator!=(const Rect& lhs, const Rect& rhs) +{ + return !(lhs == rhs); +} + +inline Rect& operator&=(Rect& lhs, const Rect& rhs) +{ + int x1 = std::max(lhs.x, rhs.x); + int y1 = std::max(lhs.y, rhs.y); + lhs.width = std::min(lhs.x + lhs.width, rhs.x + rhs.width) - x1; + lhs.height = std::min(lhs.y + lhs.height, rhs.y + rhs.height) - y1; + lhs.x = x1; + lhs.y = y1; + if( lhs.width <= 0 || lhs.height <= 0 ) + lhs = Rect(); + return lhs; +} + +inline const Rect operator&(const Rect& lhs, const Rect& rhs) +{ + Rect result = lhs; + return result &= rhs; +} + +inline std::ostream& operator<<(std::ostream& o, const Rect& rect) +{ + return o << "[" << rect.width << " x " << rect.height << " from (" << rect.x << ", " << rect.y << ")]"; +} + +class Size +{ +public: + Size() = default; + Size(int _width, int _height) : width(_width), height(_height) {}; +#if !defined(GAPI_STANDALONE) + Size(const cv::Size& other) : width(other.width), height(other.height) {}; + inline Size& operator=(const cv::Size& rhs) + { + width = rhs.width; + height = rhs.height; + return *this; + } +#endif // !defined(GAPI_STANDALONE) + + int width = 0; + int height = 0; +}; + +inline Size& operator+=(Size& lhs, const Size& rhs) +{ + lhs.width += rhs.width; + lhs.height += rhs.height; + return lhs; +} + +inline bool operator==(const Size& lhs, const Size& rhs) +{ + return lhs.width == rhs.width && lhs.height == rhs.height; +} + +inline bool operator!=(const Size& lhs, const Size& rhs) +{ + return !(lhs == rhs); +} + + +inline std::ostream& operator<<(std::ostream& o, const Size& s) +{ + o << "[" << s.width << " x " << s.height << "]"; + return o; +} + +} // namespace own +} // namespace gapi +} // namespace cv + +#endif // OPENCV_GAPI_TYPES_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/util/any.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/any.hpp new file mode 100644 index 000000000..3146cb6fd --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/any.hpp @@ -0,0 +1,186 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_UTIL_ANY_HPP +#define OPENCV_GAPI_UTIL_ANY_HPP + +#include +#include +#include +#include + +#include "opencv2/gapi/util/throw.hpp" + +#if defined(_MSC_VER) + // disable MSVC warning on "multiple copy constructors specified" +# pragma warning(disable: 4521) +#endif + +namespace cv +{ + +namespace internal +{ + template + T down_cast(Source operand) + { +#if defined(__GXX_RTTI) || defined(_CPPRTTI) + return dynamic_cast(operand); +#else + #warning used static cast instead of dynamic because RTTI is disabled + return static_cast(operand); +#endif + } +} + +namespace util +{ + class bad_any_cast : public std::bad_cast + { + public: + virtual const char* what() const noexcept override + { + return "Bad any cast"; + } + }; + + //modeled against C++17 std::any + + class any + { + private: + struct holder; + using holder_ptr = std::unique_ptr; + struct holder + { + virtual holder_ptr clone() = 0; + virtual ~holder() = default; + }; + + template + struct holder_impl : holder + { + value_t v; + template + holder_impl(arg_t&& a) : v(std::forward(a)) {} + holder_ptr clone() override { return holder_ptr(new holder_impl (v));} + }; + + holder_ptr hldr; + public: + template + any(value_t&& arg) : hldr(new holder_impl::type>( std::forward(arg))) {} + + any(any const& src) : hldr( src.hldr ? src.hldr->clone() : nullptr) {} + //simple hack in order not to write enable_if for the template constructor + any(any & src) : any (const_cast(src)) {} + + any() = default; + any(any&& ) = default; + + any& operator=(any&&) = default; + + any& operator=(any const& src) + { + any copy(src); + swap(*this, copy); + return *this; + } + + template + friend value_t* any_cast(any* operand); + + template + friend const value_t* any_cast(const any* operand); + + template + friend value_t& unsafe_any_cast(any& operand); + + template + friend const value_t& unsafe_any_cast(const any& operand); + + friend void swap(any & lhs, any& rhs) + { + swap(lhs.hldr, rhs.hldr); + } + + }; + + template + value_t* any_cast(any* operand) + { + auto casted = internal::down_cast::type> *>(operand->hldr.get()); + if (casted){ + return & (casted->v); + } + return nullptr; + } + + template + const value_t* any_cast(const any* operand) + { + auto casted = internal::down_cast::type> *>(operand->hldr.get()); + if (casted){ + return & (casted->v); + } + return nullptr; + } + + template + value_t& any_cast(any& operand) + { + auto ptr = any_cast(&operand); + if (ptr) + { + return *ptr; + } + + throw_error(bad_any_cast()); + } + + + template + const value_t& any_cast(const any& operand) + { + auto ptr = any_cast(&operand); + if (ptr) + { + return *ptr; + } + + throw_error(bad_any_cast()); + } + + template + inline value_t& unsafe_any_cast(any& operand) + { +#ifdef DEBUG + return any_cast(operand); +#else + return static_cast::type> *>(operand.hldr.get())->v; +#endif + } + + template + inline const value_t& unsafe_any_cast(const any& operand) + { +#ifdef DEBUG + return any_cast(operand); +#else + return static_cast::type> *>(operand.hldr.get())->v; +#endif + } + +} // namespace util +} // namespace cv + +#if defined(_MSC_VER) + // Enable "multiple copy constructors specified" back +# pragma warning(default: 4521) +#endif + +#endif // OPENCV_GAPI_UTIL_ANY_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/util/compiler_hints.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/compiler_hints.hpp new file mode 100644 index 000000000..a41a97145 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/compiler_hints.hpp @@ -0,0 +1,19 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + +#ifndef OPENCV_GAPI_UTIL_COMPILER_HINTS_HPP +#define OPENCV_GAPI_UTIL_COMPILER_HINTS_HPP + +namespace cv +{ +namespace util +{ + //! Utility template function to prevent "unused" warnings by various compilers. + template void suppress_unused_warning( const T& ) {} +} // namespace util +} // namespace cv + +#endif /* OPENCV_GAPI_UTIL_COMPILER_HINTS_HPP */ diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/util/optional.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/optional.hpp new file mode 100644 index 000000000..54126d627 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/optional.hpp @@ -0,0 +1,178 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_UTIL_OPTIONAL_HPP +#define OPENCV_GAPI_UTIL_OPTIONAL_HPP + +#include "opencv2/gapi/util/variant.hpp" + +// A poor man's `optional` implementation, incompletely modeled against C++17 spec. +namespace cv +{ +namespace util +{ + class bad_optional_access: public std::exception + { + public: + virtual const char *what() const noexcept override + { + return "Bad optional access"; + } + }; + + // TODO: nullopt_t + + // Interface /////////////////////////////////////////////////////////////// + template class optional + { + public: + // Constructors + // NB.: there were issues with Clang 3.8 when =default() was used + // instead {} + optional() {}; + optional(const optional&) = default; + explicit optional(T &&value) noexcept; + explicit optional(const T &value) noexcept; + optional(optional &&) noexcept; + // TODO: optional(nullopt_t) noexcept; + // TODO: optional(const optional &) + // TODO: optional(optional &&) + // TODO: optional(Args&&...) + // TODO: optional(initializer_list) + // TODO: optional(U&& value); + + // Assignment + optional& operator=(const optional& rhs) = default; + optional& operator=(optional&& rhs); + + // Observers + T* operator-> (); + const T* operator-> () const; + T& operator* (); + const T& operator* () const; + // TODO: && versions + + operator bool() const noexcept; + bool has_value() const noexcept; + + T& value(); + const T& value() const; + // TODO: && versions + + template + T value_or(U &&default_value) const; + + void swap(optional &other) noexcept; + void reset() noexcept; + // TODO: emplace + + // TODO: operator==, !=, <, <=, >, >= + + private: + struct nothing {}; + util::variant m_holder; + }; + + template + optional::type> make_optional(T&& value); + + // TODO: Args... and initializer_list versions + + // Implementation ////////////////////////////////////////////////////////// + template optional::optional(T &&v) noexcept + : m_holder(v) + { + } + + template optional::optional(const T &v) noexcept + : m_holder(v) + { + } + + template optional::optional(optional&& rhs) noexcept + : m_holder(std::move(rhs.m_holder)) + { + rhs.reset(); + } + + template optional& optional::operator=(optional&& rhs) + { + m_holder = std::move(rhs.m_holder); + rhs.reset(); + return *this; + } + + template T* optional::operator-> () + { + return & *(*this); + } + + template const T* optional::operator-> () const + { + return & *(*this); + } + + template T& optional::operator* () + { + return this->value(); + } + + template const T& optional::operator* () const + { + return this->value(); + } + + template optional::operator bool() const noexcept + { + return this->has_value(); + } + + template bool optional::has_value() const noexcept + { + return util::holds_alternative(m_holder); + } + + template T& optional::value() + { + if (!this->has_value()) + throw_error(bad_optional_access()); + return util::get(m_holder); + } + + template const T& optional::value() const + { + if (!this->has_value()) + throw_error(bad_optional_access()); + return util::get(m_holder); + } + + template + template T optional::value_or(U &&default_value) const + { + return (this->has_value() ? this->value() : T(default_value)); + } + + template void optional::swap(optional &other) noexcept + { + m_holder.swap(other.m_holder); + } + + template void optional::reset() noexcept + { + if (this->has_value()) + m_holder = nothing{}; + } + + template + optional::type> make_optional(T&& value) + { + return optional::type>(std::forward(value)); + } +} // namespace util +} // namespace cv + +#endif // OPENCV_GAPI_UTIL_OPTIONAL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/util/throw.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/throw.hpp new file mode 100644 index 000000000..689bf583c --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/throw.hpp @@ -0,0 +1,36 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_UTIL_THROW_HPP +#define OPENCV_GAPI_UTIL_THROW_HPP + +#include // std::forward + +#if !defined(__EXCEPTIONS) +#include +#include +#endif + +namespace cv +{ +namespace util +{ +template +[[noreturn]] void throw_error(ExceptionType &&e) +{ +#if defined(__EXCEPTIONS) || defined(_CPPUNWIND) + throw std::forward(e); +#else + fprintf(stderr, "An exception thrown! %s\n" , e.what()); + fflush(stderr); + abort(); +#endif +} +} // namespace util +} // namespace cv + +#endif // OPENCV_GAPI_UTIL_THROW_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/util/util.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/util.hpp new file mode 100644 index 000000000..d0378e0e5 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/util.hpp @@ -0,0 +1,92 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_UTIL_HPP +#define OPENCV_GAPI_UTIL_HPP + +#include // std::tuple + +// \cond HIDDEN_SYMBOLS +// This header file contains some generic utility functions which are +// used in other G-API Public API headers. +// +// PLEASE don't put any stuff here if it is NOT used in public API headers! + +namespace cv +{ +namespace detail +{ + // Recursive integer sequence type, useful for enumerating elements of + // template parameter packs. + template struct Seq { using next = Seq; }; + template struct MkSeq { using type = typename MkSeq::type::next; }; + template<> struct MkSeq<0>{ using type = Seq<>; }; + + // Checks if elements of variadic template satisfy the given Predicate. + // Implemented via tuple, with an interface to accept plain type lists + template class, typename, typename...> struct all_satisfy; + + template class F, typename T, typename... Ts> + struct all_satisfy > + { + static const constexpr bool value = F::value + && all_satisfy >::value; + }; + template class F, typename T> + struct all_satisfy > + { + static const constexpr bool value = F::value; + }; + + template class F, typename T, typename... Ts> + struct all_satisfy: public all_satisfy > {}; + + // Permute given tuple type C with given integer sequence II + // Sequence may be less than tuple C size. + template struct permute_tuple; + + template + struct permute_tuple > + { + using type = std::tuple< typename std::tuple_element::type... >; + }; + + // Given T..., generates a type sequence of sizeof...(T)-1 elements + // which is T... without its last element + // Implemented via tuple, with an interface to accept plain type lists + template struct all_but_last; + + template + struct all_but_last > + { + using C = std::tuple; + using S = typename MkSeq::value - 1>::type; + using type = typename permute_tuple::type; + }; + + template + struct all_but_last: public all_but_last > {}; + + template + using all_but_last_t = typename all_but_last::type; + + // NB.: This is here because there's no constexpr std::max in C++11 + template struct max_of_t + { + static constexpr const std::size_t rest = max_of_t::value; + static constexpr const std::size_t value = rest > S0 ? rest : S0; + }; + template struct max_of_t + { + static constexpr const std::size_t value = S; + }; +} // namespace detail +} // namespace cv + +// \endcond + +#endif // OPENCV_GAPI_UTIL_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/gapi/util/variant.hpp b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/variant.hpp new file mode 100644 index 000000000..a7e43c556 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/gapi/util/variant.hpp @@ -0,0 +1,379 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. +// +// Copyright (C) 2018 Intel Corporation + + +#ifndef OPENCV_GAPI_UTIL_VARIANT_HPP +#define OPENCV_GAPI_UTIL_VARIANT_HPP + +#include +#include + +#include "opencv2/gapi/util/throw.hpp" +#include "opencv2/gapi/util/util.hpp" // max_of_t + +// A poor man's `variant` implementation, incompletely modeled against C++17 spec. +namespace cv +{ +namespace util +{ + namespace detail + { + template + struct type_list_index_helper + { + static const constexpr bool is_same = std::is_same::value; + static const constexpr std::size_t value = + std::conditional, type_list_index_helper>::type::value; + }; + + template + struct type_list_index_helper + { + static_assert(std::is_same::value, "Type not found"); + static const constexpr std::size_t value = I; + }; + + + template using are_different = + std::enable_if::type, + typename std::decay::type>::value, + V>; + } + + template + struct type_list_index + { + static const constexpr std::size_t value = detail::type_list_index_helper<0, Target, Types...>::value; + }; + + class bad_variant_access: public std::exception + { + public: + virtual const char *what() const noexcept override + { + return "Bad variant access"; + } + }; + + // Interface /////////////////////////////////////////////////////////////// + struct monostate {}; + inline bool operator==(const util::monostate&, const util::monostate&) + { + return true; + } + + template // FIXME: no references, arrays, and void + class variant + { + // FIXME: Replace with std::aligned_union after gcc4.8 support is dropped + static constexpr const std::size_t S = cv::detail::max_of_t::value; + static constexpr const std::size_t A = cv::detail::max_of_t::value; + using Memory = typename std::aligned_storage::type[1]; + + template struct cctr_h { + static void help(Memory memory, const Memory from) { + new (memory) T(*reinterpret_cast(from)); + } + }; + + template struct vctr_h { + static void help(Memory memory, const void* pval) { + new (memory) T(*reinterpret_cast(pval)); + } + }; + + template struct mctr_h { + static void help(Memory memory, void *pval) { + new (memory) T(std::move(*reinterpret_cast(pval))); + } + }; + + template struct copy_h { + static void help(Memory to, const Memory from) { + *reinterpret_cast(to) = *reinterpret_cast(from); + } + }; + + template struct move_h { + static void help(Memory to, const Memory from) { + *reinterpret_cast(to) = std::move(*reinterpret_cast(from)); + } + }; + + template struct swap_h { + static void help(Memory to, Memory from) { + std::swap(*reinterpret_cast(to), *reinterpret_cast(from)); + } + }; + + template struct dtor_h { + static void help(Memory memory) { + (void) memory; // MSCV warning + reinterpret_cast(memory)->~T(); + } + }; + + template struct equal_h { + static bool help(const Memory lhs, const Memory rhs) { + const T& t_lhs = *reinterpret_cast(lhs); + const T& t_rhs = *reinterpret_cast(rhs); + return t_lhs == t_rhs; + } + }; + + typedef void (*CCtr) (Memory, const Memory); // Copy c-tor (variant) + typedef void (*VCtr) (Memory, const void*); // Copy c-tor (value) + typedef void (*MCtr) (Memory, void*); // Generic move c-tor + typedef void (*Copy) (Memory, const Memory); // Copy assignment + typedef void (*Move) (Memory, const Memory); // Move assignment + typedef void (*Swap) (Memory, Memory); // Swap + typedef void (*Dtor) (Memory); // Destructor + + typedef bool (*Equal)(const Memory, const Memory); // Equality test (external) + + static constexpr std::array cctrs(){ return {{(&cctr_h::help)...}};} + static constexpr std::array vctrs(){ return {{(&vctr_h::help)...}};} + static constexpr std::array mctrs(){ return {{(&mctr_h::help)...}};} + static constexpr std::array cpyrs(){ return {{(©_h::help)...}};} + static constexpr std::array mvers(){ return {{(&move_h::help)...}};} + static constexpr std::array swprs(){ return {{(&swap_h::help)...}};} + static constexpr std::array dtors(){ return {{(&dtor_h::help)...}};} + + std::size_t m_index = 0; + + protected: + template friend T& get(variant &v); + template friend const T& get(const variant &v); + template friend bool operator==(const variant &lhs, + const variant &rhs); + Memory memory; + + public: + // Constructors + variant() noexcept; + variant(const variant& other); + variant(variant&& other) noexcept; + template explicit variant(const T& t); + // are_different is a SFINAE trick to avoid variant(T &&t) with T=variant + // for some reason, this version is called instead of variant(variant&& o) when + // variant is used in STL containers (examples: vector assignment) + template explicit variant(T&& t, typename detail::are_different::type = 0); + // template explicit variant(Args&&... args); + // FIXME: other constructors + + // Destructor + ~variant(); + + // Assignment + variant& operator=(const variant& rhs); + variant& operator=(variant &&rhs) noexcept; + + // SFINAE trick to avoid operator=(T&&) with T=variant<>, see comment above + template + typename detail::are_different + ::type operator=(T&& t) noexcept; + + // Observers + std::size_t index() const noexcept; + // FIXME: valueless_by_exception() + + // Modifiers + // FIXME: emplace() + void swap(variant &rhs) noexcept; + + // Non-C++17x! + template static constexpr std::size_t index_of(); + }; + + // FIMXE: visit + + template + T& get(util::variant &v); + + template + const T& get(const util::variant &v); + + template + bool holds_alternative(const util::variant &v) noexcept; + + // FIXME: T&&, const TT&& versions. + + // Implementation ////////////////////////////////////////////////////////// + template + variant::variant() noexcept + { + typedef typename std::tuple_element<0, std::tuple >::type TFirst; + new (memory) TFirst(); + } + + template + variant::variant(const variant &other) + : m_index(other.m_index) + { + (cctrs()[m_index])(memory, other.memory); + } + + template + variant::variant(variant &&other) noexcept + : m_index(other.m_index) + { + (mctrs()[m_index])(memory, other.memory); + } + + template + template + variant::variant(const T& t) + : m_index(util::type_list_index::value) + { + (vctrs()[m_index])(memory, &t); + } + + template + template + variant::variant(T&& t, typename detail::are_different::type) + : m_index(util::type_list_index::type, Ts...>::value) + { + (mctrs()[m_index])(memory, &t); + } + + template + variant::~variant() + { + (dtors()[m_index])(memory); + } + + template + variant& variant::operator=(const variant &rhs) + { + if (m_index != rhs.m_index) + { + (dtors()[ m_index])(memory); + (cctrs()[rhs.m_index])(memory, rhs.memory); + m_index = rhs.m_index; + } + else + { + (cpyrs()[rhs.m_index])(memory, rhs.memory); + } + return *this; + } + + template + variant& variant::operator=(variant &&rhs) noexcept + { + if (m_index != rhs.m_index) + { + (dtors()[ m_index])(memory); + (mctrs()[rhs.m_index])(memory, rhs.memory); + m_index = rhs.m_index; + } + else + { + (mvers()[rhs.m_index])(memory, rhs.memory); + } + return *this; + } + + template + template typename detail::are_different, T, variant&> + ::type variant::operator=(T&& t) noexcept + { + // FIXME: No version with implicit type conversion available! + static const constexpr std::size_t t_index = + util::type_list_index::value; + + if (t_index == m_index) + { + util::get(*this) = std::move(t); + return *this; + } + else return (*this = variant(std::move(t))); + } + + template + std::size_t util::variant::index() const noexcept + { + return m_index; + } + + template + void variant::swap(variant &rhs) noexcept + { + if (m_index == rhs.index()) + { + (swprs()[m_index](memory, rhs.memory)); + } + else + { + variant tmp(std::move(*this)); + *this = std::move(rhs); + rhs = std::move(tmp); + } + } + + template + template + constexpr std::size_t variant::index_of() + { + return util::type_list_index::value; // FIXME: tests! + } + + template + T& get(util::variant &v) + { + const constexpr std::size_t t_index = + util::type_list_index::value; + + if (v.index() == t_index) + return *(T*)(&v.memory); // workaround for ICC 2019 + // original code: return reinterpret_cast(v.memory); + else + throw_error(bad_variant_access()); + } + + template + const T& get(const util::variant &v) + { + const constexpr std::size_t t_index = + util::type_list_index::value; + + if (v.index() == t_index) + return *(const T*)(&v.memory); // workaround for ICC 2019 + // original code: return reinterpret_cast(v.memory); + else + throw_error(bad_variant_access()); + } + + template + bool holds_alternative(const util::variant &v) noexcept + { + return v.index() == util::variant::template index_of(); + } + + template bool operator==(const variant &lhs, + const variant &rhs) + { + using V = variant; + + // Instantiate table only here since it requires operator== for + // should have operator== only if this one is used, not in general + static const std::array eqs = { + {(&V::template equal_h::help)...} + }; + if (lhs.index() != rhs.index()) + return false; + return (eqs[lhs.index()])(lhs.memory, rhs.memory); + } + + template bool operator!=(const variant &lhs, + const variant &rhs) + { + return !(lhs == rhs); + } +} // namespace cv +} // namespace util + +#endif // OPENCV_GAPI_UTIL_VARIANT_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/highgui.hpp b/lib/3rdParty/OpenCV/include/opencv2/highgui.hpp similarity index 96% rename from lib/3rdParty/OpenCV3.4/include/opencv2/highgui.hpp rename to lib/3rdParty/OpenCV/include/opencv2/highgui.hpp index e8aff6d0e..dfd946c42 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/highgui.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/highgui.hpp @@ -442,12 +442,23 @@ The function getWindowProperty returns properties of a window. */ CV_EXPORTS_W double getWindowProperty(const String& winname, int prop_id); +/** @brief Provides rectangle of image in the window. + +The function getWindowImageRect returns the client screen coordinates, width and height of the image rendering area. + +@param winname Name of the window. + +@sa resizeWindow moveWindow + */ +CV_EXPORTS_W Rect getWindowImageRect(const String& winname); + +/** @example samples/cpp/create_mask.cpp +This program demonstrates using mouse events and how to make and use a mask image (black and white) . +*/ /** @brief Sets mouse handler for the specified window @param winname Name of the window. -@param onMouse Mouse callback. See OpenCV samples, such as -, on how to specify and -use the callback. +@param onMouse Callback function for mouse events. See OpenCV samples on how to specify and use the callback. @param userdata The optional parameter passed to the callback. */ CV_EXPORTS void setMouseCallback(const String& winname, MouseCallback onMouse, void* userdata = 0); @@ -521,7 +532,7 @@ displayed in the specified window winname. @note -[__Qt Backend Only__] winname can be empty (or NULL) if the trackbar should be attached to the +[__Qt Backend Only__] winname can be empty if the trackbar should be attached to the control panel. Clicking the label of each trackbar enables editing the trackbar values manually. @@ -549,7 +560,7 @@ The function returns the current position of the specified trackbar. @note -[__Qt Backend Only__] winname can be empty (or NULL) if the trackbar is attached to the control +[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel. @param trackbarname Name of the trackbar. @@ -563,7 +574,7 @@ The function sets the position of the specified trackbar in the specified window @note -[__Qt Backend Only__] winname can be empty (or NULL) if the trackbar is attached to the control +[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel. @param trackbarname Name of the trackbar. @@ -578,7 +589,7 @@ The function sets the maximum position of the specified trackbar in the specifie @note -[__Qt Backend Only__] winname can be empty (or NULL) if the trackbar is attached to the control +[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel. @param trackbarname Name of the trackbar. @@ -593,7 +604,7 @@ The function sets the minimum position of the specified trackbar in the specifie @note -[__Qt Backend Only__] winname can be empty (or NULL) if the trackbar is attached to the control +[__Qt Backend Only__] winname can be empty if the trackbar is attached to the control panel. @param trackbarname Name of the trackbar. @@ -800,7 +811,7 @@ QT_NEW_BUTTONBAR flag is added to the type. See below various examples of the cv::createButton function call: : @code - createButton(NULL,callbackButton);//create a push button "button 0", that will call callbackButton. + createButton("",callbackButton);//create a push button "button 0", that will call callbackButton. createButton("button2",callbackButton,NULL,QT_CHECKBOX,0); createButton("button3",callbackButton,&value); createButton("button5",callbackButton1,NULL,QT_RADIOBOX); @@ -827,8 +838,4 @@ CV_EXPORTS int createButton( const String& bar_name, ButtonCallback on_change, } // cv -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/highgui/highgui_c.h" -#endif - #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/highgui/highgui.hpp b/lib/3rdParty/OpenCV/include/opencv2/highgui/highgui.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/highgui/highgui.hpp rename to lib/3rdParty/OpenCV/include/opencv2/highgui/highgui.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/highgui/highgui_c.h b/lib/3rdParty/OpenCV/include/opencv2/highgui/highgui_c.h similarity index 98% rename from lib/3rdParty/OpenCV3.4/include/opencv2/highgui/highgui_c.h rename to lib/3rdParty/OpenCV/include/opencv2/highgui/highgui_c.h index d8323d0d9..5d20b9501 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/highgui/highgui_c.h +++ b/lib/3rdParty/OpenCV/include/opencv2/highgui/highgui_c.h @@ -44,12 +44,6 @@ #include "opencv2/core/core_c.h" #include "opencv2/imgproc/imgproc_c.h" -#ifdef HAVE_OPENCV_IMGCODECS -#include "opencv2/imgcodecs/imgcodecs_c.h" -#endif -#ifdef HAVE_OPENCV_VIDEOIO -#include "opencv2/videoio/videoio_c.h" -#endif #ifdef __cplusplus extern "C" { @@ -135,6 +129,11 @@ CVAPI(int) cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOS CVAPI(void) cvSetWindowProperty(const char* name, int prop_id, double prop_value); CVAPI(double) cvGetWindowProperty(const char* name, int prop_id); +#ifdef __cplusplus // FIXIT remove in OpenCV 4.0 +/* Get window image rectangle coordinates, width and height */ +CVAPI(cv::Rect)cvGetWindowImageRect(const char* name); +#endif + /* display image within window (highgui windows remember their content) */ CVAPI(void) cvShowImage( const char* name, const CvArr* image ); diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs.hpp b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs.hpp similarity index 80% rename from lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs.hpp rename to lib/3rdParty/OpenCV/include/opencv2/imgcodecs.hpp index 567344dc5..143926b7b 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs.hpp @@ -63,7 +63,7 @@ namespace cv //! Imread flags enum ImreadModes { IMREAD_UNCHANGED = -1, //!< If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). - IMREAD_GRAYSCALE = 0, //!< If set, always convert image to the single channel grayscale image. + IMREAD_GRAYSCALE = 0, //!< If set, always convert image to the single channel grayscale image (codec internal conversion). IMREAD_COLOR = 1, //!< If set, always convert image to the 3 channel BGR color image. IMREAD_ANYDEPTH = 2, //!< If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit. IMREAD_ANYCOLOR = 4, //!< If set, the image is read in any possible color format. @@ -92,6 +92,11 @@ enum ImwriteFlags { IMWRITE_EXR_TYPE = (3 << 4) + 0, /* 48 */ //!< override EXR storage type (FLOAT (FP32) is default) IMWRITE_WEBP_QUALITY = 64, //!< For WEBP, it can be a quality from 1 to 100 (the higher is the better). By default (without any parameter) and for quality above 100 the lossless compression is used. IMWRITE_PAM_TUPLETYPE = 128,//!< For PAM, sets the TUPLETYPE field to the corresponding string value that is defined for the format + IMWRITE_TIFF_RESUNIT = 256,//!< For TIFF, use to specify which DPI resolution unit to set; see libtiff documentation for valid values + IMWRITE_TIFF_XDPI = 257,//!< For TIFF, use to specify the X direction DPI + IMWRITE_TIFF_YDPI = 258, //!< For TIFF, use to specify the Y direction DPI + IMWRITE_TIFF_COMPRESSION = 259, //!< For TIFF, use to specify the image compression scheme. See libtiff for integer constants corresponding to compression formats. Note, for images whose depth is CV_32F, only libtiff's SGILOG compression scheme is used. For other supported depths, the compression scheme can be specified by this flag; LZW compression is the default. + IMWRITE_JPEG2000_COMPRESSION_X1000 = 272 //!< For JPEG2000, use to specify the target compression rate (multiplied by 1000). The value can be from 0 to 1000. Default is 1000. }; enum ImwriteEXRTypeFlags { @@ -137,21 +142,23 @@ returns an empty matrix ( Mat::data==NULL ). Currently, the following file formats are supported: - Windows bitmaps - \*.bmp, \*.dib (always supported) -- JPEG files - \*.jpeg, \*.jpg, \*.jpe (see the *Notes* section) -- JPEG 2000 files - \*.jp2 (see the *Notes* section) -- Portable Network Graphics - \*.png (see the *Notes* section) -- WebP - \*.webp (see the *Notes* section) +- JPEG files - \*.jpeg, \*.jpg, \*.jpe (see the *Note* section) +- JPEG 2000 files - \*.jp2 (see the *Note* section) +- Portable Network Graphics - \*.png (see the *Note* section) +- WebP - \*.webp (see the *Note* section) - Portable image format - \*.pbm, \*.pgm, \*.ppm \*.pxm, \*.pnm (always supported) +- PFM files - \*.pfm (see the *Note* section) - Sun rasters - \*.sr, \*.ras (always supported) -- TIFF files - \*.tiff, \*.tif (see the *Notes* section) -- OpenEXR Image files - \*.exr (see the *Notes* section) +- TIFF files - \*.tiff, \*.tif (see the *Note* section) +- OpenEXR Image files - \*.exr (see the *Note* section) - Radiance HDR - \*.hdr, \*.pic (always supported) -- Raster and Vector geospatial data supported by Gdal (see the *Notes* section) +- Raster and Vector geospatial data supported by GDAL (see the *Note* section) @note - - The function determines the type of an image by the content, not by the file extension. - In the case of color images, the decoded images will have the channels stored in **B G R** order. +- When using IMREAD_GRAYSCALE, the codec's internal grayscale conversion will be used, if available. + Results may differ to the output of cvtColor() - On Microsoft Windows\* OS and MacOSX\*, the codecs shipped with an OpenCV image (libjpeg, libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs, and TIFFs. On MacOSX, there is also an option to use native MacOSX image readers. But beware @@ -162,11 +169,15 @@ Currently, the following file formats are supported: files, for example, "libjpeg-dev", in Debian\* and Ubuntu\*) to get the codec support or turn on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake. - In the case you set *WITH_GDAL* flag to true in CMake and @ref IMREAD_LOAD_GDAL to load the image, - then [GDAL](http://www.gdal.org) driver will be used in order to decode the image by supporting + then the [GDAL](http://www.gdal.org) driver will be used in order to decode the image, supporting the following formats: [Raster](http://www.gdal.org/formats_list.html), [Vector](http://www.gdal.org/ogr_formats.html). - If EXIF information are embedded in the image file, the EXIF orientation will be taken into account and thus the image will be rotated accordingly except if the flag @ref IMREAD_IGNORE_ORIENTATION is passed. +- Use the IMREAD_UNCHANGED flag to keep the floating point values from PFM image. +- By default number of pixels must be less than 2^30. Limit can be set using system + variable OPENCV_IO_MAX_IMAGE_PIXELS + @param filename Name of file to be loaded. @param flags Flag that can take values of cv::ImreadModes */ @@ -185,60 +196,25 @@ CV_EXPORTS_W bool imreadmulti(const String& filename, CV_OUT std::vector& m /** @brief Saves an image to a specified file. The function imwrite saves the image to the specified file. The image format is chosen based on the -filename extension (see cv::imread for the list of extensions). Only 8-bit (or 16-bit unsigned (CV_16U) -in case of PNG, JPEG 2000, and TIFF) single-channel or 3-channel (with 'BGR' channel order) images -can be saved using this function. If the format, depth or channel order is different, use -Mat::convertTo , and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O +filename extension (see cv::imread for the list of extensions). In general, only 8-bit +single-channel or 3-channel (with 'BGR' channel order) images +can be saved using this function, with these exceptions: + +- 16-bit unsigned (CV_16U) images can be saved in the case of PNG, JPEG 2000, and TIFF formats +- 32-bit float (CV_32F) images can be saved in PFM, TIFF, OpenEXR, and Radiance HDR formats; + 3-channel (CV_32FC3) TIFF images will be saved using the LogLuv high dynamic range encoding + (4 bytes per pixel) +- PNG images with an alpha channel can be saved using this function. To do this, create +8-bit (or 16-bit) 4-channel image BGRA, where the alpha channel goes last. Fully transparent pixels +should have alpha set to 0, fully opaque pixels should have alpha set to 255/65535 (see the code sample below). + +If the format, depth or channel order is different, use +Mat::convertTo and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O functions to save the image to XML or YAML format. -It is possible to store PNG images with an alpha channel using this function. To do this, create -8-bit (or 16-bit) 4-channel image BGRA, where the alpha channel goes last. Fully transparent pixels -should have alpha set to 0, fully opaque pixels should have alpha set to 255/65535. - -The sample below shows how to create such a BGRA image and store to PNG file. It also demonstrates how to set custom -compression parameters : -@code - #include - - using namespace cv; - using namespace std; - - void createAlphaMat(Mat &mat) - { - CV_Assert(mat.channels() == 4); - for (int i = 0; i < mat.rows; ++i) { - for (int j = 0; j < mat.cols; ++j) { - Vec4b& bgra = mat.at(i, j); - bgra[0] = UCHAR_MAX; // Blue - bgra[1] = saturate_cast((float (mat.cols - j)) / ((float)mat.cols) * UCHAR_MAX); // Green - bgra[2] = saturate_cast((float (mat.rows - i)) / ((float)mat.rows) * UCHAR_MAX); // Red - bgra[3] = saturate_cast(0.5 * (bgra[1] + bgra[2])); // Alpha - } - } - } - - int main(int argv, char **argc) - { - // Create mat with alpha channel - Mat mat(480, 640, CV_8UC4); - createAlphaMat(mat); - - vector compression_params; - compression_params.push_back(IMWRITE_PNG_COMPRESSION); - compression_params.push_back(9); - - try { - imwrite("alpha.png", mat, compression_params); - } - catch (cv::Exception& ex) { - fprintf(stderr, "Exception converting image to PNG format: %s\n", ex.what()); - return 1; - } - - fprintf(stdout, "Saved PNG file with alpha data.\n"); - return 0; - } -@endcode +The sample below shows how to create a BGRA image and save it to a PNG file. It also demonstrates how to set custom +compression parameters: +@include snippets/imgcodecs_imwrite.cpp @param filename Name of the file. @param img Image to be saved. @param params Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .) see cv::ImwriteFlags @@ -281,6 +257,19 @@ CV_EXPORTS_W bool imencode( const String& ext, InputArray img, CV_OUT std::vector& buf, const std::vector& params = std::vector()); +/** @brief Returns true if the specified image can be decoded by OpenCV + +@param filename File name of the image +*/ +CV_EXPORTS_W bool haveImageReader( const String& filename ); + +/** @brief Returns true if an image with the specified filename can be encoded by OpenCV + + @param filename File name of the image + */ +CV_EXPORTS_W bool haveImageWriter( const String& filename ); + + //! @} imgcodecs } // cv diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/imgcodecs.hpp b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/imgcodecs.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/imgcodecs.hpp rename to lib/3rdParty/OpenCV/include/opencv2/imgcodecs/imgcodecs.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/imgcodecs_c.h b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/imgcodecs_c.h new file mode 100644 index 000000000..5c13e55f4 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/imgcodecs_c.h @@ -0,0 +1 @@ +#error "This header with legacy C API declarations has been removed from OpenCV. Legacy contants are available from legacy/constants_c.h file." diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/ios.h b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/ios.h new file mode 100644 index 000000000..a90c6d37a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/ios.h @@ -0,0 +1,57 @@ + +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#import +#import +#import +#import +#include "opencv2/core/core.hpp" + +//! @addtogroup imgcodecs_ios +//! @{ + +CV_EXPORTS UIImage* MatToUIImage(const cv::Mat& image); +CV_EXPORTS void UIImageToMat(const UIImage* image, + cv::Mat& m, bool alphaExist = false); + +//! @} diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/legacy/constants_c.h b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/legacy/constants_c.h new file mode 100644 index 000000000..de7be4f74 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgcodecs/legacy/constants_c.h @@ -0,0 +1,54 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_IMGCODECS_LEGACY_CONSTANTS_H +#define OPENCV_IMGCODECS_LEGACY_CONSTANTS_H + +/* duplicate of "ImreadModes" enumeration for better compatibility with OpenCV 3.x */ +enum +{ +/* 8bit, color or not */ + CV_LOAD_IMAGE_UNCHANGED =-1, +/* 8bit, gray */ + CV_LOAD_IMAGE_GRAYSCALE =0, +/* ?, color */ + CV_LOAD_IMAGE_COLOR =1, +/* any depth, ? */ + CV_LOAD_IMAGE_ANYDEPTH =2, +/* ?, any color */ + CV_LOAD_IMAGE_ANYCOLOR =4, +/* ?, no rotate */ + CV_LOAD_IMAGE_IGNORE_ORIENTATION =128 +}; + +/* duplicate of "ImwriteFlags" enumeration for better compatibility with OpenCV 3.x */ +enum +{ + CV_IMWRITE_JPEG_QUALITY =1, + CV_IMWRITE_JPEG_PROGRESSIVE =2, + CV_IMWRITE_JPEG_OPTIMIZE =3, + CV_IMWRITE_JPEG_RST_INTERVAL =4, + CV_IMWRITE_JPEG_LUMA_QUALITY =5, + CV_IMWRITE_JPEG_CHROMA_QUALITY =6, + CV_IMWRITE_PNG_COMPRESSION =16, + CV_IMWRITE_PNG_STRATEGY =17, + CV_IMWRITE_PNG_BILEVEL =18, + CV_IMWRITE_PNG_STRATEGY_DEFAULT =0, + CV_IMWRITE_PNG_STRATEGY_FILTERED =1, + CV_IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY =2, + CV_IMWRITE_PNG_STRATEGY_RLE =3, + CV_IMWRITE_PNG_STRATEGY_FIXED =4, + CV_IMWRITE_PXM_BINARY =32, + CV_IMWRITE_EXR_TYPE = 48, + CV_IMWRITE_WEBP_QUALITY =64, + CV_IMWRITE_PAM_TUPLETYPE = 128, + CV_IMWRITE_PAM_FORMAT_NULL = 0, + CV_IMWRITE_PAM_FORMAT_BLACKANDWHITE = 1, + CV_IMWRITE_PAM_FORMAT_GRAYSCALE = 2, + CV_IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA = 3, + CV_IMWRITE_PAM_FORMAT_RGB = 4, + CV_IMWRITE_PAM_FORMAT_RGB_ALPHA = 5, +}; + +#endif // OPENCV_IMGCODECS_LEGACY_CONSTANTS_H diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/imgproc.hpp new file mode 100644 index 000000000..26fbbbdb1 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgproc.hpp @@ -0,0 +1,4758 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_IMGPROC_HPP +#define OPENCV_IMGPROC_HPP + +#include "opencv2/core.hpp" + +/** + @defgroup imgproc Image Processing + +This module includes image-processing functions. + + @{ + @defgroup imgproc_filter Image Filtering + +Functions and classes described in this section are used to perform various linear or non-linear +filtering operations on 2D images (represented as Mat's). It means that for each pixel location +\f$(x,y)\f$ in the source image (normally, rectangular), its neighborhood is considered and used to +compute the response. In case of a linear filter, it is a weighted sum of pixel values. In case of +morphological operations, it is the minimum or maximum values, and so on. The computed response is +stored in the destination image at the same location \f$(x,y)\f$. It means that the output image +will be of the same size as the input image. Normally, the functions support multi-channel arrays, +in which case every channel is processed independently. Therefore, the output image will also have +the same number of channels as the input one. + +Another common feature of the functions and classes described in this section is that, unlike +simple arithmetic functions, they need to extrapolate values of some non-existing pixels. For +example, if you want to smooth an image using a Gaussian \f$3 \times 3\f$ filter, then, when +processing the left-most pixels in each row, you need pixels to the left of them, that is, outside +of the image. You can let these pixels be the same as the left-most image pixels ("replicated +border" extrapolation method), or assume that all the non-existing pixels are zeros ("constant +border" extrapolation method), and so on. OpenCV enables you to specify the extrapolation method. +For details, see #BorderTypes + +@anchor filter_depths +### Depth combinations +Input depth (src.depth()) | Output depth (ddepth) +--------------------------|---------------------- +CV_8U | -1/CV_16S/CV_32F/CV_64F +CV_16U/CV_16S | -1/CV_32F/CV_64F +CV_32F | -1/CV_32F/CV_64F +CV_64F | -1/CV_64F + +@note when ddepth=-1, the output image will have the same depth as the source. + + @defgroup imgproc_transform Geometric Image Transformations + +The functions in this section perform various geometrical transformations of 2D images. They do not +change the image content but deform the pixel grid and map this deformed grid to the destination +image. In fact, to avoid sampling artifacts, the mapping is done in the reverse order, from +destination to the source. That is, for each pixel \f$(x, y)\f$ of the destination image, the +functions compute coordinates of the corresponding "donor" pixel in the source image and copy the +pixel value: + +\f[\texttt{dst} (x,y)= \texttt{src} (f_x(x,y), f_y(x,y))\f] + +In case when you specify the forward mapping \f$\left: \texttt{src} \rightarrow +\texttt{dst}\f$, the OpenCV functions first compute the corresponding inverse mapping +\f$\left: \texttt{dst} \rightarrow \texttt{src}\f$ and then use the above formula. + +The actual implementations of the geometrical transformations, from the most generic remap and to +the simplest and the fastest resize, need to solve two main problems with the above formula: + +- Extrapolation of non-existing pixels. Similarly to the filtering functions described in the +previous section, for some \f$(x,y)\f$, either one of \f$f_x(x,y)\f$, or \f$f_y(x,y)\f$, or both +of them may fall outside of the image. In this case, an extrapolation method needs to be used. +OpenCV provides the same selection of extrapolation methods as in the filtering functions. In +addition, it provides the method #BORDER_TRANSPARENT. This means that the corresponding pixels in +the destination image will not be modified at all. + +- Interpolation of pixel values. Usually \f$f_x(x,y)\f$ and \f$f_y(x,y)\f$ are floating-point +numbers. This means that \f$\left\f$ can be either an affine or perspective +transformation, or radial lens distortion correction, and so on. So, a pixel value at fractional +coordinates needs to be retrieved. In the simplest case, the coordinates can be just rounded to the +nearest integer coordinates and the corresponding pixel can be used. This is called a +nearest-neighbor interpolation. However, a better result can be achieved by using more +sophisticated [interpolation methods](http://en.wikipedia.org/wiki/Multivariate_interpolation) , +where a polynomial function is fit into some neighborhood of the computed pixel \f$(f_x(x,y), +f_y(x,y))\f$, and then the value of the polynomial at \f$(f_x(x,y), f_y(x,y))\f$ is taken as the +interpolated pixel value. In OpenCV, you can choose between several interpolation methods. See +resize for details. + +@note The geometrical transformations do not work with `CV_8S` or `CV_32S` images. + + @defgroup imgproc_misc Miscellaneous Image Transformations + @defgroup imgproc_draw Drawing Functions + +Drawing functions work with matrices/images of arbitrary depth. The boundaries of the shapes can be +rendered with antialiasing (implemented only for 8-bit images for now). All the functions include +the parameter color that uses an RGB value (that may be constructed with the Scalar constructor ) +for color images and brightness for grayscale images. For color images, the channel ordering is +normally *Blue, Green, Red*. This is what imshow, imread, and imwrite expect. So, if you form a +color using the Scalar constructor, it should look like: + +\f[\texttt{Scalar} (blue \_ component, green \_ component, red \_ component[, alpha \_ component])\f] + +If you are using your own image rendering and I/O functions, you can use any channel ordering. The +drawing functions process each channel independently and do not depend on the channel order or even +on the used color space. The whole image can be converted from BGR to RGB or to a different color +space using cvtColor . + +If a drawn figure is partially or completely outside the image, the drawing functions clip it. Also, +many drawing functions can handle pixel coordinates specified with sub-pixel accuracy. This means +that the coordinates can be passed as fixed-point numbers encoded as integers. The number of +fractional bits is specified by the shift parameter and the real point coordinates are calculated as +\f$\texttt{Point}(x,y)\rightarrow\texttt{Point2f}(x*2^{-shift},y*2^{-shift})\f$ . This feature is +especially effective when rendering antialiased shapes. + +@note The functions do not support alpha-transparency when the target image is 4-channel. In this +case, the color[3] is simply copied to the repainted pixels. Thus, if you want to paint +semi-transparent shapes, you can paint them in a separate buffer and then blend it with the main +image. + + @defgroup imgproc_color_conversions Color Space Conversions + @defgroup imgproc_colormap ColorMaps in OpenCV + +The human perception isn't built for observing fine changes in grayscale images. Human eyes are more +sensitive to observing changes between colors, so you often need to recolor your grayscale images to +get a clue about them. OpenCV now comes with various colormaps to enhance the visualization in your +computer vision application. + +In OpenCV you only need applyColorMap to apply a colormap on a given image. The following sample +code reads the path to an image from command line, applies a Jet colormap on it and shows the +result: + +@include snippets/imgproc_applyColorMap.cpp + +@see #ColormapTypes + + @defgroup imgproc_subdiv2d Planar Subdivision + +The Subdiv2D class described in this section is used to perform various planar subdivision on +a set of 2D points (represented as vector of Point2f). OpenCV subdivides a plane into triangles +using the Delaunay's algorithm, which corresponds to the dual graph of the Voronoi diagram. +In the figure below, the Delaunay's triangulation is marked with black lines and the Voronoi +diagram with red lines. + +![Delaunay triangulation (black) and Voronoi (red)](pics/delaunay_voronoi.png) + +The subdivisions can be used for the 3D piece-wise transformation of a plane, morphing, fast +location of points on the plane, building special graphs (such as NNG,RNG), and so forth. + + @defgroup imgproc_hist Histograms + @defgroup imgproc_shape Structural Analysis and Shape Descriptors + @defgroup imgproc_motion Motion Analysis and Object Tracking + @defgroup imgproc_feature Feature Detection + @defgroup imgproc_object Object Detection + @defgroup imgproc_c C API + @defgroup imgproc_hal Hardware Acceleration Layer + @{ + @defgroup imgproc_hal_functions Functions + @defgroup imgproc_hal_interface Interface + @} + @} +*/ + +namespace cv +{ + +/** @addtogroup imgproc +@{ +*/ + +//! @addtogroup imgproc_filter +//! @{ + +enum SpecialFilter { + FILTER_SCHARR = -1 +}; + +//! type of morphological operation +enum MorphTypes{ + MORPH_ERODE = 0, //!< see #erode + MORPH_DILATE = 1, //!< see #dilate + MORPH_OPEN = 2, //!< an opening operation + //!< \f[\texttt{dst} = \mathrm{open} ( \texttt{src} , \texttt{element} )= \mathrm{dilate} ( \mathrm{erode} ( \texttt{src} , \texttt{element} ))\f] + MORPH_CLOSE = 3, //!< a closing operation + //!< \f[\texttt{dst} = \mathrm{close} ( \texttt{src} , \texttt{element} )= \mathrm{erode} ( \mathrm{dilate} ( \texttt{src} , \texttt{element} ))\f] + MORPH_GRADIENT = 4, //!< a morphological gradient + //!< \f[\texttt{dst} = \mathrm{morph\_grad} ( \texttt{src} , \texttt{element} )= \mathrm{dilate} ( \texttt{src} , \texttt{element} )- \mathrm{erode} ( \texttt{src} , \texttt{element} )\f] + MORPH_TOPHAT = 5, //!< "top hat" + //!< \f[\texttt{dst} = \mathrm{tophat} ( \texttt{src} , \texttt{element} )= \texttt{src} - \mathrm{open} ( \texttt{src} , \texttt{element} )\f] + MORPH_BLACKHAT = 6, //!< "black hat" + //!< \f[\texttt{dst} = \mathrm{blackhat} ( \texttt{src} , \texttt{element} )= \mathrm{close} ( \texttt{src} , \texttt{element} )- \texttt{src}\f] + MORPH_HITMISS = 7 //!< "hit or miss" + //!< .- Only supported for CV_8UC1 binary images. A tutorial can be found in the documentation +}; + +//! shape of the structuring element +enum MorphShapes { + MORPH_RECT = 0, //!< a rectangular structuring element: \f[E_{ij}=1\f] + MORPH_CROSS = 1, //!< a cross-shaped structuring element: + //!< \f[E_{ij} = \fork{1}{if i=\texttt{anchor.y} or j=\texttt{anchor.x}}{0}{otherwise}\f] + MORPH_ELLIPSE = 2 //!< an elliptic structuring element, that is, a filled ellipse inscribed + //!< into the rectangle Rect(0, 0, esize.width, 0.esize.height) +}; + +//! @} imgproc_filter + +//! @addtogroup imgproc_transform +//! @{ + +//! interpolation algorithm +enum InterpolationFlags{ + /** nearest neighbor interpolation */ + INTER_NEAREST = 0, + /** bilinear interpolation */ + INTER_LINEAR = 1, + /** bicubic interpolation */ + INTER_CUBIC = 2, + /** resampling using pixel area relation. It may be a preferred method for image decimation, as + it gives moire'-free results. But when the image is zoomed, it is similar to the INTER_NEAREST + method. */ + INTER_AREA = 3, + /** Lanczos interpolation over 8x8 neighborhood */ + INTER_LANCZOS4 = 4, + /** Bit exact bilinear interpolation */ + INTER_LINEAR_EXACT = 5, + /** mask for interpolation codes */ + INTER_MAX = 7, + /** flag, fills all of the destination image pixels. If some of them correspond to outliers in the + source image, they are set to zero */ + WARP_FILL_OUTLIERS = 8, + /** flag, inverse transformation + + For example, #linearPolar or #logPolar transforms: + - flag is __not__ set: \f$dst( \rho , \phi ) = src(x,y)\f$ + - flag is set: \f$dst(x,y) = src( \rho , \phi )\f$ + */ + WARP_INVERSE_MAP = 16 +}; + +/** \brief Specify the polar mapping mode +@sa warpPolar +*/ +enum WarpPolarMode +{ + WARP_POLAR_LINEAR = 0, ///< Remaps an image to/from polar space. + WARP_POLAR_LOG = 256 ///< Remaps an image to/from semilog-polar space. +}; + +enum InterpolationMasks { + INTER_BITS = 5, + INTER_BITS2 = INTER_BITS * 2, + INTER_TAB_SIZE = 1 << INTER_BITS, + INTER_TAB_SIZE2 = INTER_TAB_SIZE * INTER_TAB_SIZE + }; + +//! @} imgproc_transform + +//! @addtogroup imgproc_misc +//! @{ + +//! Distance types for Distance Transform and M-estimators +//! @see distanceTransform, fitLine +enum DistanceTypes { + DIST_USER = -1, //!< User defined distance + DIST_L1 = 1, //!< distance = |x1-x2| + |y1-y2| + DIST_L2 = 2, //!< the simple euclidean distance + DIST_C = 3, //!< distance = max(|x1-x2|,|y1-y2|) + DIST_L12 = 4, //!< L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) + DIST_FAIR = 5, //!< distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 + DIST_WELSCH = 6, //!< distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 + DIST_HUBER = 7 //!< distance = |x| \texttt{thresh}\)}{0}{otherwise}\f] + THRESH_BINARY_INV = 1, //!< \f[\texttt{dst} (x,y) = \fork{0}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{maxval}}{otherwise}\f] + THRESH_TRUNC = 2, //!< \f[\texttt{dst} (x,y) = \fork{\texttt{threshold}}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{src}(x,y)}{otherwise}\f] + THRESH_TOZERO = 3, //!< \f[\texttt{dst} (x,y) = \fork{\texttt{src}(x,y)}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{0}{otherwise}\f] + THRESH_TOZERO_INV = 4, //!< \f[\texttt{dst} (x,y) = \fork{0}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{src}(x,y)}{otherwise}\f] + THRESH_MASK = 7, + THRESH_OTSU = 8, //!< flag, use Otsu algorithm to choose the optimal threshold value + THRESH_TRIANGLE = 16 //!< flag, use Triangle algorithm to choose the optimal threshold value +}; + +//! adaptive threshold algorithm +//! @see adaptiveThreshold +enum AdaptiveThresholdTypes { + /** the threshold value \f$T(x,y)\f$ is a mean of the \f$\texttt{blockSize} \times + \texttt{blockSize}\f$ neighborhood of \f$(x, y)\f$ minus C */ + ADAPTIVE_THRESH_MEAN_C = 0, + /** the threshold value \f$T(x, y)\f$ is a weighted sum (cross-correlation with a Gaussian + window) of the \f$\texttt{blockSize} \times \texttt{blockSize}\f$ neighborhood of \f$(x, y)\f$ + minus C . The default sigma (standard deviation) is used for the specified blockSize . See + #getGaussianKernel*/ + ADAPTIVE_THRESH_GAUSSIAN_C = 1 +}; + +//! class of the pixel in GrabCut algorithm +enum GrabCutClasses { + GC_BGD = 0, //!< an obvious background pixels + GC_FGD = 1, //!< an obvious foreground (object) pixel + GC_PR_BGD = 2, //!< a possible background pixel + GC_PR_FGD = 3 //!< a possible foreground pixel +}; + +//! GrabCut algorithm flags +enum GrabCutModes { + /** The function initializes the state and the mask using the provided rectangle. After that it + runs iterCount iterations of the algorithm. */ + GC_INIT_WITH_RECT = 0, + /** The function initializes the state using the provided mask. Note that GC_INIT_WITH_RECT + and GC_INIT_WITH_MASK can be combined. Then, all the pixels outside of the ROI are + automatically initialized with GC_BGD .*/ + GC_INIT_WITH_MASK = 1, + /** The value means that the algorithm should just resume. */ + GC_EVAL = 2, + /** The value means that the algorithm should just run the grabCut algorithm (a single iteration) with the fixed model */ + GC_EVAL_FREEZE_MODEL = 3 +}; + +//! distanceTransform algorithm flags +enum DistanceTransformLabelTypes { + /** each connected component of zeros in src (as well as all the non-zero pixels closest to the + connected component) will be assigned the same label */ + DIST_LABEL_CCOMP = 0, + /** each zero pixel (and all the non-zero pixels closest to it) gets its own label. */ + DIST_LABEL_PIXEL = 1 +}; + +//! floodfill algorithm flags +enum FloodFillFlags { + /** If set, the difference between the current pixel and seed pixel is considered. Otherwise, + the difference between neighbor pixels is considered (that is, the range is floating). */ + FLOODFILL_FIXED_RANGE = 1 << 16, + /** If set, the function does not change the image ( newVal is ignored), and only fills the + mask with the value specified in bits 8-16 of flags as described above. This option only make + sense in function variants that have the mask parameter. */ + FLOODFILL_MASK_ONLY = 1 << 17 +}; + +//! @} imgproc_misc + +//! @addtogroup imgproc_shape +//! @{ + +//! connected components algorithm output formats +enum ConnectedComponentsTypes { + CC_STAT_LEFT = 0, //!< The leftmost (x) coordinate which is the inclusive start of the bounding + //!< box in the horizontal direction. + CC_STAT_TOP = 1, //!< The topmost (y) coordinate which is the inclusive start of the bounding + //!< box in the vertical direction. + CC_STAT_WIDTH = 2, //!< The horizontal size of the bounding box + CC_STAT_HEIGHT = 3, //!< The vertical size of the bounding box + CC_STAT_AREA = 4, //!< The total area (in pixels) of the connected component + CC_STAT_MAX = 5 +}; + +//! connected components algorithm +enum ConnectedComponentsAlgorithmsTypes { + CCL_WU = 0, //!< SAUF algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity + CCL_DEFAULT = -1, //!< BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity + CCL_GRANA = 1 //!< BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity +}; + +//! mode of the contour retrieval algorithm +enum RetrievalModes { + /** retrieves only the extreme outer contours. It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for + all the contours. */ + RETR_EXTERNAL = 0, + /** retrieves all of the contours without establishing any hierarchical relationships. */ + RETR_LIST = 1, + /** retrieves all of the contours and organizes them into a two-level hierarchy. At the top + level, there are external boundaries of the components. At the second level, there are + boundaries of the holes. If there is another contour inside a hole of a connected component, it + is still put at the top level. */ + RETR_CCOMP = 2, + /** retrieves all of the contours and reconstructs a full hierarchy of nested contours.*/ + RETR_TREE = 3, + RETR_FLOODFILL = 4 //!< +}; + +//! the contour approximation algorithm +enum ContourApproximationModes { + /** stores absolutely all the contour points. That is, any 2 subsequent points (x1,y1) and + (x2,y2) of the contour will be either horizontal, vertical or diagonal neighbors, that is, + max(abs(x1-x2),abs(y2-y1))==1. */ + CHAIN_APPROX_NONE = 1, + /** compresses horizontal, vertical, and diagonal segments and leaves only their end points. + For example, an up-right rectangular contour is encoded with 4 points. */ + CHAIN_APPROX_SIMPLE = 2, + /** applies one of the flavors of the Teh-Chin chain approximation algorithm @cite TehChin89 */ + CHAIN_APPROX_TC89_L1 = 3, + /** applies one of the flavors of the Teh-Chin chain approximation algorithm @cite TehChin89 */ + CHAIN_APPROX_TC89_KCOS = 4 +}; + +/** @brief Shape matching methods + +\f$A\f$ denotes object1,\f$B\f$ denotes object2 + +\f$\begin{array}{l} m^A_i = \mathrm{sign} (h^A_i) \cdot \log{h^A_i} \\ m^B_i = \mathrm{sign} (h^B_i) \cdot \log{h^B_i} \end{array}\f$ + +and \f$h^A_i, h^B_i\f$ are the Hu moments of \f$A\f$ and \f$B\f$ , respectively. +*/ +enum ShapeMatchModes { + CONTOURS_MATCH_I1 =1, //!< \f[I_1(A,B) = \sum _{i=1...7} \left | \frac{1}{m^A_i} - \frac{1}{m^B_i} \right |\f] + CONTOURS_MATCH_I2 =2, //!< \f[I_2(A,B) = \sum _{i=1...7} \left | m^A_i - m^B_i \right |\f] + CONTOURS_MATCH_I3 =3 //!< \f[I_3(A,B) = \max _{i=1...7} \frac{ \left| m^A_i - m^B_i \right| }{ \left| m^A_i \right| }\f] +}; + +//! @} imgproc_shape + +//! @addtogroup imgproc_feature +//! @{ + +//! Variants of a Hough transform +enum HoughModes { + + /** classical or standard Hough transform. Every line is represented by two floating-point + numbers \f$(\rho, \theta)\f$ , where \f$\rho\f$ is a distance between (0,0) point and the line, + and \f$\theta\f$ is the angle between x-axis and the normal to the line. Thus, the matrix must + be (the created sequence will be) of CV_32FC2 type */ + HOUGH_STANDARD = 0, + /** probabilistic Hough transform (more efficient in case if the picture contains a few long + linear segments). It returns line segments rather than the whole line. Each segment is + represented by starting and ending points, and the matrix must be (the created sequence will + be) of the CV_32SC4 type. */ + HOUGH_PROBABILISTIC = 1, + /** multi-scale variant of the classical Hough transform. The lines are encoded the same way as + HOUGH_STANDARD. */ + HOUGH_MULTI_SCALE = 2, + HOUGH_GRADIENT = 3 //!< basically *21HT*, described in @cite Yuen90 +}; + +//! Variants of Line Segment %Detector +enum LineSegmentDetectorModes { + LSD_REFINE_NONE = 0, //!< No refinement applied + LSD_REFINE_STD = 1, //!< Standard refinement is applied. E.g. breaking arches into smaller straighter line approximations. + LSD_REFINE_ADV = 2 //!< Advanced refinement. Number of false alarms is calculated, lines are + //!< refined through increase of precision, decrement in size, etc. +}; + +//! @} imgproc_feature + +/** Histogram comparison methods + @ingroup imgproc_hist +*/ +enum HistCompMethods { + /** Correlation + \f[d(H_1,H_2) = \frac{\sum_I (H_1(I) - \bar{H_1}) (H_2(I) - \bar{H_2})}{\sqrt{\sum_I(H_1(I) - \bar{H_1})^2 \sum_I(H_2(I) - \bar{H_2})^2}}\f] + where + \f[\bar{H_k} = \frac{1}{N} \sum _J H_k(J)\f] + and \f$N\f$ is a total number of histogram bins. */ + HISTCMP_CORREL = 0, + /** Chi-Square + \f[d(H_1,H_2) = \sum _I \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)}\f] */ + HISTCMP_CHISQR = 1, + /** Intersection + \f[d(H_1,H_2) = \sum _I \min (H_1(I), H_2(I))\f] */ + HISTCMP_INTERSECT = 2, + /** Bhattacharyya distance + (In fact, OpenCV computes Hellinger distance, which is related to Bhattacharyya coefficient.) + \f[d(H_1,H_2) = \sqrt{1 - \frac{1}{\sqrt{\bar{H_1} \bar{H_2} N^2}} \sum_I \sqrt{H_1(I) \cdot H_2(I)}}\f] */ + HISTCMP_BHATTACHARYYA = 3, + HISTCMP_HELLINGER = HISTCMP_BHATTACHARYYA, //!< Synonym for HISTCMP_BHATTACHARYYA + /** Alternative Chi-Square + \f[d(H_1,H_2) = 2 * \sum _I \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)+H_2(I)}\f] + This alternative formula is regularly used for texture comparison. See e.g. @cite Puzicha1997 */ + HISTCMP_CHISQR_ALT = 4, + /** Kullback-Leibler divergence + \f[d(H_1,H_2) = \sum _I H_1(I) \log \left(\frac{H_1(I)}{H_2(I)}\right)\f] */ + HISTCMP_KL_DIV = 5 +}; + +/** the color conversion codes +@see @ref imgproc_color_conversions +@ingroup imgproc_color_conversions + */ +enum ColorConversionCodes { + COLOR_BGR2BGRA = 0, //!< add alpha channel to RGB or BGR image + COLOR_RGB2RGBA = COLOR_BGR2BGRA, + + COLOR_BGRA2BGR = 1, //!< remove alpha channel from RGB or BGR image + COLOR_RGBA2RGB = COLOR_BGRA2BGR, + + COLOR_BGR2RGBA = 2, //!< convert between RGB and BGR color spaces (with or without alpha channel) + COLOR_RGB2BGRA = COLOR_BGR2RGBA, + + COLOR_RGBA2BGR = 3, + COLOR_BGRA2RGB = COLOR_RGBA2BGR, + + COLOR_BGR2RGB = 4, + COLOR_RGB2BGR = COLOR_BGR2RGB, + + COLOR_BGRA2RGBA = 5, + COLOR_RGBA2BGRA = COLOR_BGRA2RGBA, + + COLOR_BGR2GRAY = 6, //!< convert between RGB/BGR and grayscale, @ref color_convert_rgb_gray "color conversions" + COLOR_RGB2GRAY = 7, + COLOR_GRAY2BGR = 8, + COLOR_GRAY2RGB = COLOR_GRAY2BGR, + COLOR_GRAY2BGRA = 9, + COLOR_GRAY2RGBA = COLOR_GRAY2BGRA, + COLOR_BGRA2GRAY = 10, + COLOR_RGBA2GRAY = 11, + + COLOR_BGR2BGR565 = 12, //!< convert between RGB/BGR and BGR565 (16-bit images) + COLOR_RGB2BGR565 = 13, + COLOR_BGR5652BGR = 14, + COLOR_BGR5652RGB = 15, + COLOR_BGRA2BGR565 = 16, + COLOR_RGBA2BGR565 = 17, + COLOR_BGR5652BGRA = 18, + COLOR_BGR5652RGBA = 19, + + COLOR_GRAY2BGR565 = 20, //!< convert between grayscale to BGR565 (16-bit images) + COLOR_BGR5652GRAY = 21, + + COLOR_BGR2BGR555 = 22, //!< convert between RGB/BGR and BGR555 (16-bit images) + COLOR_RGB2BGR555 = 23, + COLOR_BGR5552BGR = 24, + COLOR_BGR5552RGB = 25, + COLOR_BGRA2BGR555 = 26, + COLOR_RGBA2BGR555 = 27, + COLOR_BGR5552BGRA = 28, + COLOR_BGR5552RGBA = 29, + + COLOR_GRAY2BGR555 = 30, //!< convert between grayscale and BGR555 (16-bit images) + COLOR_BGR5552GRAY = 31, + + COLOR_BGR2XYZ = 32, //!< convert RGB/BGR to CIE XYZ, @ref color_convert_rgb_xyz "color conversions" + COLOR_RGB2XYZ = 33, + COLOR_XYZ2BGR = 34, + COLOR_XYZ2RGB = 35, + + COLOR_BGR2YCrCb = 36, //!< convert RGB/BGR to luma-chroma (aka YCC), @ref color_convert_rgb_ycrcb "color conversions" + COLOR_RGB2YCrCb = 37, + COLOR_YCrCb2BGR = 38, + COLOR_YCrCb2RGB = 39, + + COLOR_BGR2HSV = 40, //!< convert RGB/BGR to HSV (hue saturation value), @ref color_convert_rgb_hsv "color conversions" + COLOR_RGB2HSV = 41, + + COLOR_BGR2Lab = 44, //!< convert RGB/BGR to CIE Lab, @ref color_convert_rgb_lab "color conversions" + COLOR_RGB2Lab = 45, + + COLOR_BGR2Luv = 50, //!< convert RGB/BGR to CIE Luv, @ref color_convert_rgb_luv "color conversions" + COLOR_RGB2Luv = 51, + COLOR_BGR2HLS = 52, //!< convert RGB/BGR to HLS (hue lightness saturation), @ref color_convert_rgb_hls "color conversions" + COLOR_RGB2HLS = 53, + + COLOR_HSV2BGR = 54, //!< backward conversions to RGB/BGR + COLOR_HSV2RGB = 55, + + COLOR_Lab2BGR = 56, + COLOR_Lab2RGB = 57, + COLOR_Luv2BGR = 58, + COLOR_Luv2RGB = 59, + COLOR_HLS2BGR = 60, + COLOR_HLS2RGB = 61, + + COLOR_BGR2HSV_FULL = 66, + COLOR_RGB2HSV_FULL = 67, + COLOR_BGR2HLS_FULL = 68, + COLOR_RGB2HLS_FULL = 69, + + COLOR_HSV2BGR_FULL = 70, + COLOR_HSV2RGB_FULL = 71, + COLOR_HLS2BGR_FULL = 72, + COLOR_HLS2RGB_FULL = 73, + + COLOR_LBGR2Lab = 74, + COLOR_LRGB2Lab = 75, + COLOR_LBGR2Luv = 76, + COLOR_LRGB2Luv = 77, + + COLOR_Lab2LBGR = 78, + COLOR_Lab2LRGB = 79, + COLOR_Luv2LBGR = 80, + COLOR_Luv2LRGB = 81, + + COLOR_BGR2YUV = 82, //!< convert between RGB/BGR and YUV + COLOR_RGB2YUV = 83, + COLOR_YUV2BGR = 84, + COLOR_YUV2RGB = 85, + + //! YUV 4:2:0 family to RGB + COLOR_YUV2RGB_NV12 = 90, + COLOR_YUV2BGR_NV12 = 91, + COLOR_YUV2RGB_NV21 = 92, + COLOR_YUV2BGR_NV21 = 93, + COLOR_YUV420sp2RGB = COLOR_YUV2RGB_NV21, + COLOR_YUV420sp2BGR = COLOR_YUV2BGR_NV21, + + COLOR_YUV2RGBA_NV12 = 94, + COLOR_YUV2BGRA_NV12 = 95, + COLOR_YUV2RGBA_NV21 = 96, + COLOR_YUV2BGRA_NV21 = 97, + COLOR_YUV420sp2RGBA = COLOR_YUV2RGBA_NV21, + COLOR_YUV420sp2BGRA = COLOR_YUV2BGRA_NV21, + + COLOR_YUV2RGB_YV12 = 98, + COLOR_YUV2BGR_YV12 = 99, + COLOR_YUV2RGB_IYUV = 100, + COLOR_YUV2BGR_IYUV = 101, + COLOR_YUV2RGB_I420 = COLOR_YUV2RGB_IYUV, + COLOR_YUV2BGR_I420 = COLOR_YUV2BGR_IYUV, + COLOR_YUV420p2RGB = COLOR_YUV2RGB_YV12, + COLOR_YUV420p2BGR = COLOR_YUV2BGR_YV12, + + COLOR_YUV2RGBA_YV12 = 102, + COLOR_YUV2BGRA_YV12 = 103, + COLOR_YUV2RGBA_IYUV = 104, + COLOR_YUV2BGRA_IYUV = 105, + COLOR_YUV2RGBA_I420 = COLOR_YUV2RGBA_IYUV, + COLOR_YUV2BGRA_I420 = COLOR_YUV2BGRA_IYUV, + COLOR_YUV420p2RGBA = COLOR_YUV2RGBA_YV12, + COLOR_YUV420p2BGRA = COLOR_YUV2BGRA_YV12, + + COLOR_YUV2GRAY_420 = 106, + COLOR_YUV2GRAY_NV21 = COLOR_YUV2GRAY_420, + COLOR_YUV2GRAY_NV12 = COLOR_YUV2GRAY_420, + COLOR_YUV2GRAY_YV12 = COLOR_YUV2GRAY_420, + COLOR_YUV2GRAY_IYUV = COLOR_YUV2GRAY_420, + COLOR_YUV2GRAY_I420 = COLOR_YUV2GRAY_420, + COLOR_YUV420sp2GRAY = COLOR_YUV2GRAY_420, + COLOR_YUV420p2GRAY = COLOR_YUV2GRAY_420, + + //! YUV 4:2:2 family to RGB + COLOR_YUV2RGB_UYVY = 107, + COLOR_YUV2BGR_UYVY = 108, + //COLOR_YUV2RGB_VYUY = 109, + //COLOR_YUV2BGR_VYUY = 110, + COLOR_YUV2RGB_Y422 = COLOR_YUV2RGB_UYVY, + COLOR_YUV2BGR_Y422 = COLOR_YUV2BGR_UYVY, + COLOR_YUV2RGB_UYNV = COLOR_YUV2RGB_UYVY, + COLOR_YUV2BGR_UYNV = COLOR_YUV2BGR_UYVY, + + COLOR_YUV2RGBA_UYVY = 111, + COLOR_YUV2BGRA_UYVY = 112, + //COLOR_YUV2RGBA_VYUY = 113, + //COLOR_YUV2BGRA_VYUY = 114, + COLOR_YUV2RGBA_Y422 = COLOR_YUV2RGBA_UYVY, + COLOR_YUV2BGRA_Y422 = COLOR_YUV2BGRA_UYVY, + COLOR_YUV2RGBA_UYNV = COLOR_YUV2RGBA_UYVY, + COLOR_YUV2BGRA_UYNV = COLOR_YUV2BGRA_UYVY, + + COLOR_YUV2RGB_YUY2 = 115, + COLOR_YUV2BGR_YUY2 = 116, + COLOR_YUV2RGB_YVYU = 117, + COLOR_YUV2BGR_YVYU = 118, + COLOR_YUV2RGB_YUYV = COLOR_YUV2RGB_YUY2, + COLOR_YUV2BGR_YUYV = COLOR_YUV2BGR_YUY2, + COLOR_YUV2RGB_YUNV = COLOR_YUV2RGB_YUY2, + COLOR_YUV2BGR_YUNV = COLOR_YUV2BGR_YUY2, + + COLOR_YUV2RGBA_YUY2 = 119, + COLOR_YUV2BGRA_YUY2 = 120, + COLOR_YUV2RGBA_YVYU = 121, + COLOR_YUV2BGRA_YVYU = 122, + COLOR_YUV2RGBA_YUYV = COLOR_YUV2RGBA_YUY2, + COLOR_YUV2BGRA_YUYV = COLOR_YUV2BGRA_YUY2, + COLOR_YUV2RGBA_YUNV = COLOR_YUV2RGBA_YUY2, + COLOR_YUV2BGRA_YUNV = COLOR_YUV2BGRA_YUY2, + + COLOR_YUV2GRAY_UYVY = 123, + COLOR_YUV2GRAY_YUY2 = 124, + //CV_YUV2GRAY_VYUY = CV_YUV2GRAY_UYVY, + COLOR_YUV2GRAY_Y422 = COLOR_YUV2GRAY_UYVY, + COLOR_YUV2GRAY_UYNV = COLOR_YUV2GRAY_UYVY, + COLOR_YUV2GRAY_YVYU = COLOR_YUV2GRAY_YUY2, + COLOR_YUV2GRAY_YUYV = COLOR_YUV2GRAY_YUY2, + COLOR_YUV2GRAY_YUNV = COLOR_YUV2GRAY_YUY2, + + //! alpha premultiplication + COLOR_RGBA2mRGBA = 125, + COLOR_mRGBA2RGBA = 126, + + //! RGB to YUV 4:2:0 family + COLOR_RGB2YUV_I420 = 127, + COLOR_BGR2YUV_I420 = 128, + COLOR_RGB2YUV_IYUV = COLOR_RGB2YUV_I420, + COLOR_BGR2YUV_IYUV = COLOR_BGR2YUV_I420, + + COLOR_RGBA2YUV_I420 = 129, + COLOR_BGRA2YUV_I420 = 130, + COLOR_RGBA2YUV_IYUV = COLOR_RGBA2YUV_I420, + COLOR_BGRA2YUV_IYUV = COLOR_BGRA2YUV_I420, + COLOR_RGB2YUV_YV12 = 131, + COLOR_BGR2YUV_YV12 = 132, + COLOR_RGBA2YUV_YV12 = 133, + COLOR_BGRA2YUV_YV12 = 134, + + //! Demosaicing + COLOR_BayerBG2BGR = 46, + COLOR_BayerGB2BGR = 47, + COLOR_BayerRG2BGR = 48, + COLOR_BayerGR2BGR = 49, + + COLOR_BayerBG2RGB = COLOR_BayerRG2BGR, + COLOR_BayerGB2RGB = COLOR_BayerGR2BGR, + COLOR_BayerRG2RGB = COLOR_BayerBG2BGR, + COLOR_BayerGR2RGB = COLOR_BayerGB2BGR, + + COLOR_BayerBG2GRAY = 86, + COLOR_BayerGB2GRAY = 87, + COLOR_BayerRG2GRAY = 88, + COLOR_BayerGR2GRAY = 89, + + //! Demosaicing using Variable Number of Gradients + COLOR_BayerBG2BGR_VNG = 62, + COLOR_BayerGB2BGR_VNG = 63, + COLOR_BayerRG2BGR_VNG = 64, + COLOR_BayerGR2BGR_VNG = 65, + + COLOR_BayerBG2RGB_VNG = COLOR_BayerRG2BGR_VNG, + COLOR_BayerGB2RGB_VNG = COLOR_BayerGR2BGR_VNG, + COLOR_BayerRG2RGB_VNG = COLOR_BayerBG2BGR_VNG, + COLOR_BayerGR2RGB_VNG = COLOR_BayerGB2BGR_VNG, + + //! Edge-Aware Demosaicing + COLOR_BayerBG2BGR_EA = 135, + COLOR_BayerGB2BGR_EA = 136, + COLOR_BayerRG2BGR_EA = 137, + COLOR_BayerGR2BGR_EA = 138, + + COLOR_BayerBG2RGB_EA = COLOR_BayerRG2BGR_EA, + COLOR_BayerGB2RGB_EA = COLOR_BayerGR2BGR_EA, + COLOR_BayerRG2RGB_EA = COLOR_BayerBG2BGR_EA, + COLOR_BayerGR2RGB_EA = COLOR_BayerGB2BGR_EA, + + //! Demosaicing with alpha channel + COLOR_BayerBG2BGRA = 139, + COLOR_BayerGB2BGRA = 140, + COLOR_BayerRG2BGRA = 141, + COLOR_BayerGR2BGRA = 142, + + COLOR_BayerBG2RGBA = COLOR_BayerRG2BGRA, + COLOR_BayerGB2RGBA = COLOR_BayerGR2BGRA, + COLOR_BayerRG2RGBA = COLOR_BayerBG2BGRA, + COLOR_BayerGR2RGBA = COLOR_BayerGB2BGRA, + + COLOR_COLORCVT_MAX = 143 +}; + +//! @addtogroup imgproc_shape +//! @{ + +//! types of intersection between rectangles +enum RectanglesIntersectTypes { + INTERSECT_NONE = 0, //!< No intersection + INTERSECT_PARTIAL = 1, //!< There is a partial intersection + INTERSECT_FULL = 2 //!< One of the rectangle is fully enclosed in the other +}; + +/** types of line +@ingroup imgproc_draw +*/ +enum LineTypes { + FILLED = -1, + LINE_4 = 4, //!< 4-connected line + LINE_8 = 8, //!< 8-connected line + LINE_AA = 16 //!< antialiased line +}; + +/** Only a subset of Hershey fonts are supported +@ingroup imgproc_draw +*/ +enum HersheyFonts { + FONT_HERSHEY_SIMPLEX = 0, //!< normal size sans-serif font + FONT_HERSHEY_PLAIN = 1, //!< small size sans-serif font + FONT_HERSHEY_DUPLEX = 2, //!< normal size sans-serif font (more complex than FONT_HERSHEY_SIMPLEX) + FONT_HERSHEY_COMPLEX = 3, //!< normal size serif font + FONT_HERSHEY_TRIPLEX = 4, //!< normal size serif font (more complex than FONT_HERSHEY_COMPLEX) + FONT_HERSHEY_COMPLEX_SMALL = 5, //!< smaller version of FONT_HERSHEY_COMPLEX + FONT_HERSHEY_SCRIPT_SIMPLEX = 6, //!< hand-writing style font + FONT_HERSHEY_SCRIPT_COMPLEX = 7, //!< more complex variant of FONT_HERSHEY_SCRIPT_SIMPLEX + FONT_ITALIC = 16 //!< flag for italic font +}; + +/** Possible set of marker types used for the cv::drawMarker function +@ingroup imgproc_draw +*/ +enum MarkerTypes +{ + MARKER_CROSS = 0, //!< A crosshair marker shape + MARKER_TILTED_CROSS = 1, //!< A 45 degree tilted crosshair marker shape + MARKER_STAR = 2, //!< A star marker shape, combination of cross and tilted cross + MARKER_DIAMOND = 3, //!< A diamond marker shape + MARKER_SQUARE = 4, //!< A square marker shape + MARKER_TRIANGLE_UP = 5, //!< An upwards pointing triangle marker shape + MARKER_TRIANGLE_DOWN = 6 //!< A downwards pointing triangle marker shape +}; + +/** @brief finds arbitrary template in the grayscale image using Generalized Hough Transform +*/ +class CV_EXPORTS_W GeneralizedHough : public Algorithm +{ +public: + //! set template to search + CV_WRAP virtual void setTemplate(InputArray templ, Point templCenter = Point(-1, -1)) = 0; + CV_WRAP virtual void setTemplate(InputArray edges, InputArray dx, InputArray dy, Point templCenter = Point(-1, -1)) = 0; + + //! find template on image + CV_WRAP virtual void detect(InputArray image, OutputArray positions, OutputArray votes = noArray()) = 0; + CV_WRAP virtual void detect(InputArray edges, InputArray dx, InputArray dy, OutputArray positions, OutputArray votes = noArray()) = 0; + + //! Canny low threshold. + CV_WRAP virtual void setCannyLowThresh(int cannyLowThresh) = 0; + CV_WRAP virtual int getCannyLowThresh() const = 0; + + //! Canny high threshold. + CV_WRAP virtual void setCannyHighThresh(int cannyHighThresh) = 0; + CV_WRAP virtual int getCannyHighThresh() const = 0; + + //! Minimum distance between the centers of the detected objects. + CV_WRAP virtual void setMinDist(double minDist) = 0; + CV_WRAP virtual double getMinDist() const = 0; + + //! Inverse ratio of the accumulator resolution to the image resolution. + CV_WRAP virtual void setDp(double dp) = 0; + CV_WRAP virtual double getDp() const = 0; + + //! Maximal size of inner buffers. + CV_WRAP virtual void setMaxBufferSize(int maxBufferSize) = 0; + CV_WRAP virtual int getMaxBufferSize() const = 0; +}; + +/** @brief finds arbitrary template in the grayscale image using Generalized Hough Transform + +Detects position only without translation and rotation @cite Ballard1981 . +*/ +class CV_EXPORTS_W GeneralizedHoughBallard : public GeneralizedHough +{ +public: + //! R-Table levels. + CV_WRAP virtual void setLevels(int levels) = 0; + CV_WRAP virtual int getLevels() const = 0; + + //! The accumulator threshold for the template centers at the detection stage. The smaller it is, the more false positions may be detected. + CV_WRAP virtual void setVotesThreshold(int votesThreshold) = 0; + CV_WRAP virtual int getVotesThreshold() const = 0; +}; + +/** @brief finds arbitrary template in the grayscale image using Generalized Hough Transform + +Detects position, translation and rotation @cite Guil1999 . +*/ +class CV_EXPORTS_W GeneralizedHoughGuil : public GeneralizedHough +{ +public: + //! Angle difference in degrees between two points in feature. + virtual void setXi(double xi) = 0; + virtual double getXi() const = 0; + + //! Feature table levels. + virtual void setLevels(int levels) = 0; + virtual int getLevels() const = 0; + + //! Maximal difference between angles that treated as equal. + virtual void setAngleEpsilon(double angleEpsilon) = 0; + virtual double getAngleEpsilon() const = 0; + + //! Minimal rotation angle to detect in degrees. + virtual void setMinAngle(double minAngle) = 0; + virtual double getMinAngle() const = 0; + + //! Maximal rotation angle to detect in degrees. + virtual void setMaxAngle(double maxAngle) = 0; + virtual double getMaxAngle() const = 0; + + //! Angle step in degrees. + virtual void setAngleStep(double angleStep) = 0; + virtual double getAngleStep() const = 0; + + //! Angle votes threshold. + virtual void setAngleThresh(int angleThresh) = 0; + virtual int getAngleThresh() const = 0; + + //! Minimal scale to detect. + virtual void setMinScale(double minScale) = 0; + virtual double getMinScale() const = 0; + + //! Maximal scale to detect. + virtual void setMaxScale(double maxScale) = 0; + virtual double getMaxScale() const = 0; + + //! Scale step. + virtual void setScaleStep(double scaleStep) = 0; + virtual double getScaleStep() const = 0; + + //! Scale votes threshold. + virtual void setScaleThresh(int scaleThresh) = 0; + virtual int getScaleThresh() const = 0; + + //! Position votes threshold. + virtual void setPosThresh(int posThresh) = 0; + virtual int getPosThresh() const = 0; +}; + +//! @} imgproc_shape + +//! @addtogroup imgproc_hist +//! @{ + +/** @brief Base class for Contrast Limited Adaptive Histogram Equalization. +*/ +class CV_EXPORTS_W CLAHE : public Algorithm +{ +public: + /** @brief Equalizes the histogram of a grayscale image using Contrast Limited Adaptive Histogram Equalization. + + @param src Source image of type CV_8UC1 or CV_16UC1. + @param dst Destination image. + */ + CV_WRAP virtual void apply(InputArray src, OutputArray dst) = 0; + + /** @brief Sets threshold for contrast limiting. + + @param clipLimit threshold value. + */ + CV_WRAP virtual void setClipLimit(double clipLimit) = 0; + + //! Returns threshold value for contrast limiting. + CV_WRAP virtual double getClipLimit() const = 0; + + /** @brief Sets size of grid for histogram equalization. Input image will be divided into + equally sized rectangular tiles. + + @param tileGridSize defines the number of tiles in row and column. + */ + CV_WRAP virtual void setTilesGridSize(Size tileGridSize) = 0; + + //!@brief Returns Size defines the number of tiles in row and column. + CV_WRAP virtual Size getTilesGridSize() const = 0; + + CV_WRAP virtual void collectGarbage() = 0; +}; + +//! @} imgproc_hist + +//! @addtogroup imgproc_subdiv2d +//! @{ + +class CV_EXPORTS_W Subdiv2D +{ +public: + /** Subdiv2D point location cases */ + enum { PTLOC_ERROR = -2, //!< Point location error + PTLOC_OUTSIDE_RECT = -1, //!< Point outside the subdivision bounding rect + PTLOC_INSIDE = 0, //!< Point inside some facet + PTLOC_VERTEX = 1, //!< Point coincides with one of the subdivision vertices + PTLOC_ON_EDGE = 2 //!< Point on some edge + }; + + /** Subdiv2D edge type navigation (see: getEdge()) */ + enum { NEXT_AROUND_ORG = 0x00, + NEXT_AROUND_DST = 0x22, + PREV_AROUND_ORG = 0x11, + PREV_AROUND_DST = 0x33, + NEXT_AROUND_LEFT = 0x13, + NEXT_AROUND_RIGHT = 0x31, + PREV_AROUND_LEFT = 0x20, + PREV_AROUND_RIGHT = 0x02 + }; + + /** creates an empty Subdiv2D object. + To create a new empty Delaunay subdivision you need to use the #initDelaunay function. + */ + CV_WRAP Subdiv2D(); + + /** @overload + + @param rect Rectangle that includes all of the 2D points that are to be added to the subdivision. + + The function creates an empty Delaunay subdivision where 2D points can be added using the function + insert() . All of the points to be added must be within the specified rectangle, otherwise a runtime + error is raised. + */ + CV_WRAP Subdiv2D(Rect rect); + + /** @brief Creates a new empty Delaunay subdivision + + @param rect Rectangle that includes all of the 2D points that are to be added to the subdivision. + + */ + CV_WRAP void initDelaunay(Rect rect); + + /** @brief Insert a single point into a Delaunay triangulation. + + @param pt Point to insert. + + The function inserts a single point into a subdivision and modifies the subdivision topology + appropriately. If a point with the same coordinates exists already, no new point is added. + @returns the ID of the point. + + @note If the point is outside of the triangulation specified rect a runtime error is raised. + */ + CV_WRAP int insert(Point2f pt); + + /** @brief Insert multiple points into a Delaunay triangulation. + + @param ptvec Points to insert. + + The function inserts a vector of points into a subdivision and modifies the subdivision topology + appropriately. + */ + CV_WRAP void insert(const std::vector& ptvec); + + /** @brief Returns the location of a point within a Delaunay triangulation. + + @param pt Point to locate. + @param edge Output edge that the point belongs to or is located to the right of it. + @param vertex Optional output vertex the input point coincides with. + + The function locates the input point within the subdivision and gives one of the triangle edges + or vertices. + + @returns an integer which specify one of the following five cases for point location: + - The point falls into some facet. The function returns #PTLOC_INSIDE and edge will contain one of + edges of the facet. + - The point falls onto the edge. The function returns #PTLOC_ON_EDGE and edge will contain this edge. + - The point coincides with one of the subdivision vertices. The function returns #PTLOC_VERTEX and + vertex will contain a pointer to the vertex. + - The point is outside the subdivision reference rectangle. The function returns #PTLOC_OUTSIDE_RECT + and no pointers are filled. + - One of input arguments is invalid. A runtime error is raised or, if silent or "parent" error + processing mode is selected, #PTLOC_ERROR is returned. + */ + CV_WRAP int locate(Point2f pt, CV_OUT int& edge, CV_OUT int& vertex); + + /** @brief Finds the subdivision vertex closest to the given point. + + @param pt Input point. + @param nearestPt Output subdivision vertex point. + + The function is another function that locates the input point within the subdivision. It finds the + subdivision vertex that is the closest to the input point. It is not necessarily one of vertices + of the facet containing the input point, though the facet (located using locate() ) is used as a + starting point. + + @returns vertex ID. + */ + CV_WRAP int findNearest(Point2f pt, CV_OUT Point2f* nearestPt = 0); + + /** @brief Returns a list of all edges. + + @param edgeList Output vector. + + The function gives each edge as a 4 numbers vector, where each two are one of the edge + vertices. i.e. org_x = v[0], org_y = v[1], dst_x = v[2], dst_y = v[3]. + */ + CV_WRAP void getEdgeList(CV_OUT std::vector& edgeList) const; + + /** @brief Returns a list of the leading edge ID connected to each triangle. + + @param leadingEdgeList Output vector. + + The function gives one edge ID for each triangle. + */ + CV_WRAP void getLeadingEdgeList(CV_OUT std::vector& leadingEdgeList) const; + + /** @brief Returns a list of all triangles. + + @param triangleList Output vector. + + The function gives each triangle as a 6 numbers vector, where each two are one of the triangle + vertices. i.e. p1_x = v[0], p1_y = v[1], p2_x = v[2], p2_y = v[3], p3_x = v[4], p3_y = v[5]. + */ + CV_WRAP void getTriangleList(CV_OUT std::vector& triangleList) const; + + /** @brief Returns a list of all Voroni facets. + + @param idx Vector of vertices IDs to consider. For all vertices you can pass empty vector. + @param facetList Output vector of the Voroni facets. + @param facetCenters Output vector of the Voroni facets center points. + + */ + CV_WRAP void getVoronoiFacetList(const std::vector& idx, CV_OUT std::vector >& facetList, + CV_OUT std::vector& facetCenters); + + /** @brief Returns vertex location from vertex ID. + + @param vertex vertex ID. + @param firstEdge Optional. The first edge ID which is connected to the vertex. + @returns vertex (x,y) + + */ + CV_WRAP Point2f getVertex(int vertex, CV_OUT int* firstEdge = 0) const; + + /** @brief Returns one of the edges related to the given edge. + + @param edge Subdivision edge ID. + @param nextEdgeType Parameter specifying which of the related edges to return. + The following values are possible: + - NEXT_AROUND_ORG next around the edge origin ( eOnext on the picture below if e is the input edge) + - NEXT_AROUND_DST next around the edge vertex ( eDnext ) + - PREV_AROUND_ORG previous around the edge origin (reversed eRnext ) + - PREV_AROUND_DST previous around the edge destination (reversed eLnext ) + - NEXT_AROUND_LEFT next around the left facet ( eLnext ) + - NEXT_AROUND_RIGHT next around the right facet ( eRnext ) + - PREV_AROUND_LEFT previous around the left facet (reversed eOnext ) + - PREV_AROUND_RIGHT previous around the right facet (reversed eDnext ) + + ![sample output](pics/quadedge.png) + + @returns edge ID related to the input edge. + */ + CV_WRAP int getEdge( int edge, int nextEdgeType ) const; + + /** @brief Returns next edge around the edge origin. + + @param edge Subdivision edge ID. + + @returns an integer which is next edge ID around the edge origin: eOnext on the + picture above if e is the input edge). + */ + CV_WRAP int nextEdge(int edge) const; + + /** @brief Returns another edge of the same quad-edge. + + @param edge Subdivision edge ID. + @param rotate Parameter specifying which of the edges of the same quad-edge as the input + one to return. The following values are possible: + - 0 - the input edge ( e on the picture below if e is the input edge) + - 1 - the rotated edge ( eRot ) + - 2 - the reversed edge (reversed e (in green)) + - 3 - the reversed rotated edge (reversed eRot (in green)) + + @returns one of the edges ID of the same quad-edge as the input edge. + */ + CV_WRAP int rotateEdge(int edge, int rotate) const; + CV_WRAP int symEdge(int edge) const; + + /** @brief Returns the edge origin. + + @param edge Subdivision edge ID. + @param orgpt Output vertex location. + + @returns vertex ID. + */ + CV_WRAP int edgeOrg(int edge, CV_OUT Point2f* orgpt = 0) const; + + /** @brief Returns the edge destination. + + @param edge Subdivision edge ID. + @param dstpt Output vertex location. + + @returns vertex ID. + */ + CV_WRAP int edgeDst(int edge, CV_OUT Point2f* dstpt = 0) const; + +protected: + int newEdge(); + void deleteEdge(int edge); + int newPoint(Point2f pt, bool isvirtual, int firstEdge = 0); + void deletePoint(int vtx); + void setEdgePoints( int edge, int orgPt, int dstPt ); + void splice( int edgeA, int edgeB ); + int connectEdges( int edgeA, int edgeB ); + void swapEdges( int edge ); + int isRightOf(Point2f pt, int edge) const; + void calcVoronoi(); + void clearVoronoi(); + void checkSubdiv() const; + + struct CV_EXPORTS Vertex + { + Vertex(); + Vertex(Point2f pt, bool _isvirtual, int _firstEdge=0); + bool isvirtual() const; + bool isfree() const; + + int firstEdge; + int type; + Point2f pt; + }; + + struct CV_EXPORTS QuadEdge + { + QuadEdge(); + QuadEdge(int edgeidx); + bool isfree() const; + + int next[4]; + int pt[4]; + }; + + //! All of the vertices + std::vector vtx; + //! All of the edges + std::vector qedges; + int freeQEdge; + int freePoint; + bool validGeometry; + + int recentEdge; + //! Top left corner of the bounding rect + Point2f topLeft; + //! Bottom right corner of the bounding rect + Point2f bottomRight; +}; + +//! @} imgproc_subdiv2d + +//! @addtogroup imgproc_feature +//! @{ + +/** @brief Line segment detector class + +following the algorithm described at @cite Rafael12 . + +@note Implementation has been removed due original code license conflict + +*/ +class CV_EXPORTS_W LineSegmentDetector : public Algorithm +{ +public: + + /** @brief Finds lines in the input image. + + This is the output of the default parameters of the algorithm on the above shown image. + + ![image](pics/building_lsd.png) + + @param _image A grayscale (CV_8UC1) input image. If only a roi needs to be selected, use: + `lsd_ptr-\>detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);` + @param _lines A vector of Vec4i or Vec4f elements specifying the beginning and ending point of a line. Where + Vec4i/Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly + oriented depending on the gradient. + @param width Vector of widths of the regions, where the lines are found. E.g. Width of line. + @param prec Vector of precisions with which the lines are found. + @param nfa Vector containing number of false alarms in the line region, with precision of 10%. The + bigger the value, logarithmically better the detection. + - -1 corresponds to 10 mean false alarms + - 0 corresponds to 1 mean false alarm + - 1 corresponds to 0.1 mean false alarms + This vector will be calculated only when the objects type is #LSD_REFINE_ADV. + */ + CV_WRAP virtual void detect(InputArray _image, OutputArray _lines, + OutputArray width = noArray(), OutputArray prec = noArray(), + OutputArray nfa = noArray()) = 0; + + /** @brief Draws the line segments on a given image. + @param _image The image, where the lines will be drawn. Should be bigger or equal to the image, + where the lines were found. + @param lines A vector of the lines that needed to be drawn. + */ + CV_WRAP virtual void drawSegments(InputOutputArray _image, InputArray lines) = 0; + + /** @brief Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels. + + @param size The size of the image, where lines1 and lines2 were found. + @param lines1 The first group of lines that needs to be drawn. It is visualized in blue color. + @param lines2 The second group of lines. They visualized in red color. + @param _image Optional image, where the lines will be drawn. The image should be color(3-channel) + in order for lines1 and lines2 to be drawn in the above mentioned colors. + */ + CV_WRAP virtual int compareSegments(const Size& size, InputArray lines1, InputArray lines2, InputOutputArray _image = noArray()) = 0; + + virtual ~LineSegmentDetector() { } +}; + +/** @brief Creates a smart pointer to a LineSegmentDetector object and initializes it. + +The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want +to edit those, as to tailor it for their own application. + +@param _refine The way found lines will be refined, see #LineSegmentDetectorModes +@param _scale The scale of the image that will be used to find the lines. Range (0..1]. +@param _sigma_scale Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale. +@param _quant Bound to the quantization error on the gradient norm. +@param _ang_th Gradient angle tolerance in degrees. +@param _log_eps Detection threshold: -log10(NFA) \> log_eps. Used only when advance refinement +is chosen. +@param _density_th Minimal density of aligned region points in the enclosing rectangle. +@param _n_bins Number of bins in pseudo-ordering of gradient modulus. + +@note Implementation has been removed due original code license conflict + */ +CV_EXPORTS_W Ptr createLineSegmentDetector( + int _refine = LSD_REFINE_STD, double _scale = 0.8, + double _sigma_scale = 0.6, double _quant = 2.0, double _ang_th = 22.5, + double _log_eps = 0, double _density_th = 0.7, int _n_bins = 1024); + +//! @} imgproc_feature + +//! @addtogroup imgproc_filter +//! @{ + +/** @brief Returns Gaussian filter coefficients. + +The function computes and returns the \f$\texttt{ksize} \times 1\f$ matrix of Gaussian filter +coefficients: + +\f[G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)},\f] + +where \f$i=0..\texttt{ksize}-1\f$ and \f$\alpha\f$ is the scale factor chosen so that \f$\sum_i G_i=1\f$. + +Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize +smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly. +You may also use the higher-level GaussianBlur. +@param ksize Aperture size. It should be odd ( \f$\texttt{ksize} \mod 2 = 1\f$ ) and positive. +@param sigma Gaussian standard deviation. If it is non-positive, it is computed from ksize as +`sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`. +@param ktype Type of filter coefficients. It can be CV_32F or CV_64F . +@sa sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur + */ +CV_EXPORTS_W Mat getGaussianKernel( int ksize, double sigma, int ktype = CV_64F ); + +/** @brief Returns filter coefficients for computing spatial image derivatives. + +The function computes and returns the filter coefficients for spatial image derivatives. When +`ksize=FILTER_SCHARR`, the Scharr \f$3 \times 3\f$ kernels are generated (see #Scharr). Otherwise, Sobel +kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to + +@param kx Output matrix of row filter coefficients. It has the type ktype . +@param ky Output matrix of column filter coefficients. It has the type ktype . +@param dx Derivative order in respect of x. +@param dy Derivative order in respect of y. +@param ksize Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7. +@param normalize Flag indicating whether to normalize (scale down) the filter coefficients or not. +Theoretically, the coefficients should have the denominator \f$=2^{ksize*2-dx-dy-2}\f$. If you are +going to filter floating-point images, you are likely to use the normalized kernels. But if you +compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve +all the fractional bits, you may want to set normalize=false . +@param ktype Type of filter coefficients. It can be CV_32f or CV_64F . + */ +CV_EXPORTS_W void getDerivKernels( OutputArray kx, OutputArray ky, + int dx, int dy, int ksize, + bool normalize = false, int ktype = CV_32F ); + +/** @brief Returns Gabor filter coefficients. + +For more details about gabor filter equations and parameters, see: [Gabor +Filter](http://en.wikipedia.org/wiki/Gabor_filter). + +@param ksize Size of the filter returned. +@param sigma Standard deviation of the gaussian envelope. +@param theta Orientation of the normal to the parallel stripes of a Gabor function. +@param lambd Wavelength of the sinusoidal factor. +@param gamma Spatial aspect ratio. +@param psi Phase offset. +@param ktype Type of filter coefficients. It can be CV_32F or CV_64F . + */ +CV_EXPORTS_W Mat getGaborKernel( Size ksize, double sigma, double theta, double lambd, + double gamma, double psi = CV_PI*0.5, int ktype = CV_64F ); + +//! returns "magic" border value for erosion and dilation. It is automatically transformed to Scalar::all(-DBL_MAX) for dilation. +static inline Scalar morphologyDefaultBorderValue() { return Scalar::all(DBL_MAX); } + +/** @brief Returns a structuring element of the specified size and shape for morphological operations. + +The function constructs and returns the structuring element that can be further passed to #erode, +#dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as +the structuring element. + +@param shape Element shape that could be one of #MorphShapes +@param ksize Size of the structuring element. +@param anchor Anchor position within the element. The default value \f$(-1, -1)\f$ means that the +anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor +position. In other cases the anchor just regulates how much the result of the morphological +operation is shifted. + */ +CV_EXPORTS_W Mat getStructuringElement(int shape, Size ksize, Point anchor = Point(-1,-1)); + +/** @example samples/cpp/tutorial_code/ImgProc/Smoothing/Smoothing.cpp +Sample code for simple filters +![Sample screenshot](Smoothing_Tutorial_Result_Median_Filter.jpg) +Check @ref tutorial_gausian_median_blur_bilateral_filter "the corresponding tutorial" for more details + */ + +/** @brief Blurs an image using the median filter. + +The function smoothes an image using the median filter with the \f$\texttt{ksize} \times +\texttt{ksize}\f$ aperture. Each channel of a multi-channel image is processed independently. +In-place operation is supported. + +@note The median filter uses #BORDER_REPLICATE internally to cope with border pixels, see #BorderTypes + +@param src input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be +CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U. +@param dst destination array of the same size and type as src. +@param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... +@sa bilateralFilter, blur, boxFilter, GaussianBlur + */ +CV_EXPORTS_W void medianBlur( InputArray src, OutputArray dst, int ksize ); + +/** @brief Blurs an image using a Gaussian filter. + +The function convolves the source image with the specified Gaussian kernel. In-place filtering is +supported. + +@param src input image; the image can have any number of channels, which are processed +independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +@param dst output image of the same size and type as src. +@param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be +positive and odd. Or, they can be zero's and then they are computed from sigma. +@param sigmaX Gaussian kernel standard deviation in X direction. +@param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be +equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, +respectively (see #getGaussianKernel for details); to fully control the result regardless of +possible future modifications of all this semantics, it is recommended to specify all of ksize, +sigmaX, and sigmaY. +@param borderType pixel extrapolation method, see #BorderTypes + +@sa sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur + */ +CV_EXPORTS_W void GaussianBlur( InputArray src, OutputArray dst, Size ksize, + double sigmaX, double sigmaY = 0, + int borderType = BORDER_DEFAULT ); + +/** @brief Applies the bilateral filter to an image. + +The function applies bilateral filtering to the input image, as described in +http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html +bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is +very slow compared to most filters. + +_Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (\< +10), the filter will not have much effect, whereas if they are large (\> 150), they will have a very +strong effect, making the image look "cartoonish". + +_Filter size_: Large filters (d \> 5) are very slow, so it is recommended to use d=5 for real-time +applications, and perhaps d=9 for offline applications that need heavy noise filtering. + +This filter does not work inplace. +@param src Source 8-bit or floating-point, 1-channel or 3-channel image. +@param dst Destination image of the same size and type as src . +@param d Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, +it is computed from sigmaSpace. +@param sigmaColor Filter sigma in the color space. A larger value of the parameter means that +farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting +in larger areas of semi-equal color. +@param sigmaSpace Filter sigma in the coordinate space. A larger value of the parameter means that +farther pixels will influence each other as long as their colors are close enough (see sigmaColor +). When d\>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is +proportional to sigmaSpace. +@param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes + */ +CV_EXPORTS_W void bilateralFilter( InputArray src, OutputArray dst, int d, + double sigmaColor, double sigmaSpace, + int borderType = BORDER_DEFAULT ); + +/** @brief Blurs an image using the box filter. + +The function smooths an image using the kernel: + +\f[\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\f] + +where + +\f[\alpha = \fork{\frac{1}{\texttt{ksize.width*ksize.height}}}{when \texttt{normalize=true}}{1}{otherwise}\f] + +Unnormalized box filter is useful for computing various integral characteristics over each pixel +neighborhood, such as covariance matrices of image derivatives (used in dense optical flow +algorithms, and so on). If you need to compute pixel sums over variable-size windows, use #integral. + +@param src input image. +@param dst output image of the same size and type as src. +@param ddepth the output image depth (-1 to use src.depth()). +@param ksize blurring kernel size. +@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel +center. +@param normalize flag, specifying whether the kernel is normalized by its area or not. +@param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes +@sa blur, bilateralFilter, GaussianBlur, medianBlur, integral + */ +CV_EXPORTS_W void boxFilter( InputArray src, OutputArray dst, int ddepth, + Size ksize, Point anchor = Point(-1,-1), + bool normalize = true, + int borderType = BORDER_DEFAULT ); + +/** @brief Calculates the normalized sum of squares of the pixel values overlapping the filter. + +For every pixel \f$ (x, y) \f$ in the source image, the function calculates the sum of squares of those neighboring +pixel values which overlap the filter placed over the pixel \f$ (x, y) \f$. + +The unnormalized square box filter can be useful in computing local image statistics such as the the local +variance and standard deviation around the neighborhood of a pixel. + +@param src input image +@param dst output image of the same size and type as _src +@param ddepth the output image depth (-1 to use src.depth()) +@param ksize kernel size +@param anchor kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel +center. +@param normalize flag, specifying whether the kernel is to be normalized by it's area or not. +@param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes +@sa boxFilter +*/ +CV_EXPORTS_W void sqrBoxFilter( InputArray src, OutputArray dst, int ddepth, + Size ksize, Point anchor = Point(-1, -1), + bool normalize = true, + int borderType = BORDER_DEFAULT ); + +/** @brief Blurs an image using the normalized box filter. + +The function smooths an image using the kernel: + +\f[\texttt{K} = \frac{1}{\texttt{ksize.width*ksize.height}} \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \end{bmatrix}\f] + +The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), +anchor, true, borderType)`. + +@param src input image; it can have any number of channels, which are processed independently, but +the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +@param dst output image of the same size and type as src. +@param ksize blurring kernel size. +@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel +center. +@param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes +@sa boxFilter, bilateralFilter, GaussianBlur, medianBlur + */ +CV_EXPORTS_W void blur( InputArray src, OutputArray dst, + Size ksize, Point anchor = Point(-1,-1), + int borderType = BORDER_DEFAULT ); + +/** @brief Convolves an image with the kernel. + +The function applies an arbitrary linear filter to an image. In-place operation is supported. When +the aperture is partially outside the image, the function interpolates outlier pixel values +according to the specified border mode. + +The function does actually compute correlation, not the convolution: + +\f[\texttt{dst} (x,y) = \sum _{ \stackrel{0\leq x' < \texttt{kernel.cols},}{0\leq y' < \texttt{kernel.rows}} } \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\f] + +That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip +the kernel using #flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows - +anchor.y - 1)`. + +The function uses the DFT-based algorithm in case of sufficiently large kernels (~`11 x 11` or +larger) and the direct algorithm for small kernels. + +@param src input image. +@param dst output image of the same size and the same number of channels as src. +@param ddepth desired depth of the destination image, see @ref filter_depths "combinations" +@param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point +matrix; if you want to apply different kernels to different channels, split the image into +separate color planes using split and process them individually. +@param anchor anchor of the kernel that indicates the relative position of a filtered point within +the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor +is at the kernel center. +@param delta optional value added to the filtered pixels before storing them in dst. +@param borderType pixel extrapolation method, see #BorderTypes +@sa sepFilter2D, dft, matchTemplate + */ +CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth, + InputArray kernel, Point anchor = Point(-1,-1), + double delta = 0, int borderType = BORDER_DEFAULT ); + +/** @brief Applies a separable linear filter to an image. + +The function applies a separable linear filter to the image. That is, first, every row of src is +filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D +kernel kernelY. The final result shifted by delta is stored in dst . + +@param src Source image. +@param dst Destination image of the same size and the same number of channels as src . +@param ddepth Destination image depth, see @ref filter_depths "combinations" +@param kernelX Coefficients for filtering each row. +@param kernelY Coefficients for filtering each column. +@param anchor Anchor position within the kernel. The default value \f$(-1,-1)\f$ means that the anchor +is at the kernel center. +@param delta Value added to the filtered results before storing them. +@param borderType Pixel extrapolation method, see #BorderTypes +@sa filter2D, Sobel, GaussianBlur, boxFilter, blur + */ +CV_EXPORTS_W void sepFilter2D( InputArray src, OutputArray dst, int ddepth, + InputArray kernelX, InputArray kernelY, + Point anchor = Point(-1,-1), + double delta = 0, int borderType = BORDER_DEFAULT ); + +/** @example samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp +Sample code using Sobel and/or Scharr OpenCV functions to make a simple Edge Detector +![Sample screenshot](Sobel_Derivatives_Tutorial_Result.jpg) +Check @ref tutorial_sobel_derivatives "the corresponding tutorial" for more details +*/ + +/** @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator. + +In all cases except one, the \f$\texttt{ksize} \times \texttt{ksize}\f$ separable kernel is used to +calculate the derivative. When \f$\texttt{ksize = 1}\f$, the \f$3 \times 1\f$ or \f$1 \times 3\f$ +kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first +or the second x- or y- derivatives. + +There is also the special value `ksize = #FILTER_SCHARR (-1)` that corresponds to the \f$3\times3\f$ Scharr +filter that may give more accurate results than the \f$3\times3\f$ Sobel. The Scharr aperture is + +\f[\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\f] + +for the x-derivative, or transposed for the y-derivative. + +The function calculates an image derivative by convolving the image with the appropriate kernel: + +\f[\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\f] + +The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less +resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3) +or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first +case corresponds to a kernel of: + +\f[\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\f] + +The second case corresponds to a kernel of: + +\f[\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\f] + +@param src input image. +@param dst output image of the same size and the same number of channels as src . +@param ddepth output image depth, see @ref filter_depths "combinations"; in the case of + 8-bit input images it will result in truncated derivatives. +@param dx order of the derivative x. +@param dy order of the derivative y. +@param ksize size of the extended Sobel kernel; it must be 1, 3, 5, or 7. +@param scale optional scale factor for the computed derivative values; by default, no scaling is +applied (see #getDerivKernels for details). +@param delta optional delta value that is added to the results prior to storing them in dst. +@param borderType pixel extrapolation method, see #BorderTypes +@sa Scharr, Laplacian, sepFilter2D, filter2D, GaussianBlur, cartToPolar + */ +CV_EXPORTS_W void Sobel( InputArray src, OutputArray dst, int ddepth, + int dx, int dy, int ksize = 3, + double scale = 1, double delta = 0, + int borderType = BORDER_DEFAULT ); + +/** @brief Calculates the first order image derivative in both x and y using a Sobel operator + +Equivalent to calling: + +@code +Sobel( src, dx, CV_16SC1, 1, 0, 3 ); +Sobel( src, dy, CV_16SC1, 0, 1, 3 ); +@endcode + +@param src input image. +@param dx output image with first-order derivative in x. +@param dy output image with first-order derivative in y. +@param ksize size of Sobel kernel. It must be 3. +@param borderType pixel extrapolation method, see #BorderTypes + +@sa Sobel + */ + +CV_EXPORTS_W void spatialGradient( InputArray src, OutputArray dx, + OutputArray dy, int ksize = 3, + int borderType = BORDER_DEFAULT ); + +/** @brief Calculates the first x- or y- image derivative using Scharr operator. + +The function computes the first x- or y- spatial image derivative using the Scharr operator. The +call + +\f[\texttt{Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)}\f] + +is equivalent to + +\f[\texttt{Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)} .\f] + +@param src input image. +@param dst output image of the same size and the same number of channels as src. +@param ddepth output image depth, see @ref filter_depths "combinations" +@param dx order of the derivative x. +@param dy order of the derivative y. +@param scale optional scale factor for the computed derivative values; by default, no scaling is +applied (see #getDerivKernels for details). +@param delta optional delta value that is added to the results prior to storing them in dst. +@param borderType pixel extrapolation method, see #BorderTypes +@sa cartToPolar + */ +CV_EXPORTS_W void Scharr( InputArray src, OutputArray dst, int ddepth, + int dx, int dy, double scale = 1, double delta = 0, + int borderType = BORDER_DEFAULT ); + +/** @example samples/cpp/laplace.cpp +An example using Laplace transformations for edge detection +*/ + +/** @brief Calculates the Laplacian of an image. + +The function calculates the Laplacian of the source image by adding up the second x and y +derivatives calculated using the Sobel operator: + +\f[\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\f] + +This is done when `ksize > 1`. When `ksize == 1`, the Laplacian is computed by filtering the image +with the following \f$3 \times 3\f$ aperture: + +\f[\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\f] + +@param src Source image. +@param dst Destination image of the same size and the same number of channels as src . +@param ddepth Desired depth of the destination image. +@param ksize Aperture size used to compute the second-derivative filters. See #getDerivKernels for +details. The size must be positive and odd. +@param scale Optional scale factor for the computed Laplacian values. By default, no scaling is +applied. See #getDerivKernels for details. +@param delta Optional delta value that is added to the results prior to storing them in dst . +@param borderType Pixel extrapolation method, see #BorderTypes +@sa Sobel, Scharr + */ +CV_EXPORTS_W void Laplacian( InputArray src, OutputArray dst, int ddepth, + int ksize = 1, double scale = 1, double delta = 0, + int borderType = BORDER_DEFAULT ); + +//! @} imgproc_filter + +//! @addtogroup imgproc_feature +//! @{ + +/** @example samples/cpp/edge.cpp +This program demonstrates usage of the Canny edge detector + +Check @ref tutorial_canny_detector "the corresponding tutorial" for more details +*/ + +/** @brief Finds edges in an image using the Canny algorithm @cite Canny86 . + +The function finds edges in the input image and marks them in the output map edges using the +Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The +largest value is used to find initial segments of strong edges. See + + +@param image 8-bit input image. +@param edges output edge map; single channels 8-bit image, which has the same size as image . +@param threshold1 first threshold for the hysteresis procedure. +@param threshold2 second threshold for the hysteresis procedure. +@param apertureSize aperture size for the Sobel operator. +@param L2gradient a flag, indicating whether a more accurate \f$L_2\f$ norm +\f$=\sqrt{(dI/dx)^2 + (dI/dy)^2}\f$ should be used to calculate the image gradient magnitude ( +L2gradient=true ), or whether the default \f$L_1\f$ norm \f$=|dI/dx|+|dI/dy|\f$ is enough ( +L2gradient=false ). + */ +CV_EXPORTS_W void Canny( InputArray image, OutputArray edges, + double threshold1, double threshold2, + int apertureSize = 3, bool L2gradient = false ); + +/** \overload + +Finds edges in an image using the Canny algorithm with custom image gradient. + +@param dx 16-bit x derivative of input image (CV_16SC1 or CV_16SC3). +@param dy 16-bit y derivative of input image (same type as dx). +@param edges output edge map; single channels 8-bit image, which has the same size as image . +@param threshold1 first threshold for the hysteresis procedure. +@param threshold2 second threshold for the hysteresis procedure. +@param L2gradient a flag, indicating whether a more accurate \f$L_2\f$ norm +\f$=\sqrt{(dI/dx)^2 + (dI/dy)^2}\f$ should be used to calculate the image gradient magnitude ( +L2gradient=true ), or whether the default \f$L_1\f$ norm \f$=|dI/dx|+|dI/dy|\f$ is enough ( +L2gradient=false ). + */ +CV_EXPORTS_W void Canny( InputArray dx, InputArray dy, + OutputArray edges, + double threshold1, double threshold2, + bool L2gradient = false ); + +/** @brief Calculates the minimal eigenvalue of gradient matrices for corner detection. + +The function is similar to cornerEigenValsAndVecs but it calculates and stores only the minimal +eigenvalue of the covariance matrix of derivatives, that is, \f$\min(\lambda_1, \lambda_2)\f$ in terms +of the formulae in the cornerEigenValsAndVecs description. + +@param src Input single-channel 8-bit or floating-point image. +@param dst Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as +src . +@param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ). +@param ksize Aperture parameter for the Sobel operator. +@param borderType Pixel extrapolation method. See #BorderTypes. + */ +CV_EXPORTS_W void cornerMinEigenVal( InputArray src, OutputArray dst, + int blockSize, int ksize = 3, + int borderType = BORDER_DEFAULT ); + +/** @brief Harris corner detector. + +The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and +cornerEigenValsAndVecs , for each pixel \f$(x, y)\f$ it calculates a \f$2\times2\f$ gradient covariance +matrix \f$M^{(x,y)}\f$ over a \f$\texttt{blockSize} \times \texttt{blockSize}\f$ neighborhood. Then, it +computes the following characteristic: + +\f[\texttt{dst} (x,y) = \mathrm{det} M^{(x,y)} - k \cdot \left ( \mathrm{tr} M^{(x,y)} \right )^2\f] + +Corners in the image can be found as the local maxima of this response map. + +@param src Input single-channel 8-bit or floating-point image. +@param dst Image to store the Harris detector responses. It has the type CV_32FC1 and the same +size as src . +@param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ). +@param ksize Aperture parameter for the Sobel operator. +@param k Harris detector free parameter. See the formula above. +@param borderType Pixel extrapolation method. See #BorderTypes. + */ +CV_EXPORTS_W void cornerHarris( InputArray src, OutputArray dst, int blockSize, + int ksize, double k, + int borderType = BORDER_DEFAULT ); + +/** @brief Calculates eigenvalues and eigenvectors of image blocks for corner detection. + +For every pixel \f$p\f$ , the function cornerEigenValsAndVecs considers a blockSize \f$\times\f$ blockSize +neighborhood \f$S(p)\f$ . It calculates the covariation matrix of derivatives over the neighborhood as: + +\f[M = \begin{bmatrix} \sum _{S(p)}(dI/dx)^2 & \sum _{S(p)}dI/dx dI/dy \\ \sum _{S(p)}dI/dx dI/dy & \sum _{S(p)}(dI/dy)^2 \end{bmatrix}\f] + +where the derivatives are computed using the Sobel operator. + +After that, it finds eigenvectors and eigenvalues of \f$M\f$ and stores them in the destination image as +\f$(\lambda_1, \lambda_2, x_1, y_1, x_2, y_2)\f$ where + +- \f$\lambda_1, \lambda_2\f$ are the non-sorted eigenvalues of \f$M\f$ +- \f$x_1, y_1\f$ are the eigenvectors corresponding to \f$\lambda_1\f$ +- \f$x_2, y_2\f$ are the eigenvectors corresponding to \f$\lambda_2\f$ + +The output of the function can be used for robust edge or corner detection. + +@param src Input single-channel 8-bit or floating-point image. +@param dst Image to store the results. It has the same size as src and the type CV_32FC(6) . +@param blockSize Neighborhood size (see details below). +@param ksize Aperture parameter for the Sobel operator. +@param borderType Pixel extrapolation method. See #BorderTypes. + +@sa cornerMinEigenVal, cornerHarris, preCornerDetect + */ +CV_EXPORTS_W void cornerEigenValsAndVecs( InputArray src, OutputArray dst, + int blockSize, int ksize, + int borderType = BORDER_DEFAULT ); + +/** @brief Calculates a feature map for corner detection. + +The function calculates the complex spatial derivative-based function of the source image + +\f[\texttt{dst} = (D_x \texttt{src} )^2 \cdot D_{yy} \texttt{src} + (D_y \texttt{src} )^2 \cdot D_{xx} \texttt{src} - 2 D_x \texttt{src} \cdot D_y \texttt{src} \cdot D_{xy} \texttt{src}\f] + +where \f$D_x\f$,\f$D_y\f$ are the first image derivatives, \f$D_{xx}\f$,\f$D_{yy}\f$ are the second image +derivatives, and \f$D_{xy}\f$ is the mixed derivative. + +The corners can be found as local maximums of the functions, as shown below: +@code + Mat corners, dilated_corners; + preCornerDetect(image, corners, 3); + // dilation with 3x3 rectangular structuring element + dilate(corners, dilated_corners, Mat(), 1); + Mat corner_mask = corners == dilated_corners; +@endcode + +@param src Source single-channel 8-bit of floating-point image. +@param dst Output image that has the type CV_32F and the same size as src . +@param ksize %Aperture size of the Sobel . +@param borderType Pixel extrapolation method. See #BorderTypes. + */ +CV_EXPORTS_W void preCornerDetect( InputArray src, OutputArray dst, int ksize, + int borderType = BORDER_DEFAULT ); + +/** @brief Refines the corner locations. + +The function iterates to find the sub-pixel accurate location of corners or radial saddle points, as +shown on the figure below. + +![image](pics/cornersubpix.png) + +Sub-pixel accurate corner locator is based on the observation that every vector from the center \f$q\f$ +to a point \f$p\f$ located within a neighborhood of \f$q\f$ is orthogonal to the image gradient at \f$p\f$ +subject to image and measurement noise. Consider the expression: + +\f[\epsilon _i = {DI_{p_i}}^T \cdot (q - p_i)\f] + +where \f${DI_{p_i}}\f$ is an image gradient at one of the points \f$p_i\f$ in a neighborhood of \f$q\f$ . The +value of \f$q\f$ is to be found so that \f$\epsilon_i\f$ is minimized. A system of equations may be set up +with \f$\epsilon_i\f$ set to zero: + +\f[\sum _i(DI_{p_i} \cdot {DI_{p_i}}^T) \cdot q - \sum _i(DI_{p_i} \cdot {DI_{p_i}}^T \cdot p_i)\f] + +where the gradients are summed within a neighborhood ("search window") of \f$q\f$ . Calling the first +gradient term \f$G\f$ and the second gradient term \f$b\f$ gives: + +\f[q = G^{-1} \cdot b\f] + +The algorithm sets the center of the neighborhood window at this new center \f$q\f$ and then iterates +until the center stays within a set threshold. + +@param image Input single-channel, 8-bit or float image. +@param corners Initial coordinates of the input corners and refined coordinates provided for +output. +@param winSize Half of the side length of the search window. For example, if winSize=Size(5,5) , +then a \f$(5*2+1) \times (5*2+1) = 11 \times 11\f$ search window is used. +@param zeroZone Half of the size of the dead region in the middle of the search zone over which +the summation in the formula below is not done. It is used sometimes to avoid possible +singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such +a size. +@param criteria Criteria for termination of the iterative process of corner refinement. That is, +the process of corner position refinement stops either after criteria.maxCount iterations or when +the corner position moves by less than criteria.epsilon on some iteration. + */ +CV_EXPORTS_W void cornerSubPix( InputArray image, InputOutputArray corners, + Size winSize, Size zeroZone, + TermCriteria criteria ); + +/** @brief Determines strong corners on an image. + +The function finds the most prominent corners in the image or in the specified image region, as +described in @cite Shi94 + +- Function calculates the corner quality measure at every source image pixel using the + #cornerMinEigenVal or #cornerHarris . +- Function performs a non-maximum suppression (the local maximums in *3 x 3* neighborhood are + retained). +- The corners with the minimal eigenvalue less than + \f$\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\f$ are rejected. +- The remaining corners are sorted by the quality measure in the descending order. +- Function throws away each corner for which there is a stronger corner at a distance less than + maxDistance. + +The function can be used to initialize a point-based tracker of an object. + +@note If the function is called with different values A and B of the parameter qualityLevel , and +A \> B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector +with qualityLevel=B . + +@param image Input 8-bit or floating-point 32-bit, single-channel image. +@param corners Output vector of detected corners. +@param maxCorners Maximum number of corners to return. If there are more corners than are found, +the strongest of them is returned. `maxCorners <= 0` implies that no limit on the maximum is set +and all detected corners are returned. +@param qualityLevel Parameter characterizing the minimal accepted quality of image corners. The +parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue +(see #cornerMinEigenVal ) or the Harris function response (see #cornerHarris ). The corners with the +quality measure less than the product are rejected. For example, if the best corner has the +quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure +less than 15 are rejected. +@param minDistance Minimum possible Euclidean distance between the returned corners. +@param mask Optional region of interest. If the image is not empty (it needs to have the type +CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected. +@param blockSize Size of an average block for computing a derivative covariation matrix over each +pixel neighborhood. See cornerEigenValsAndVecs . +@param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris) +or #cornerMinEigenVal. +@param k Free parameter of the Harris detector. + +@sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform, + */ + +CV_EXPORTS_W void goodFeaturesToTrack( InputArray image, OutputArray corners, + int maxCorners, double qualityLevel, double minDistance, + InputArray mask = noArray(), int blockSize = 3, + bool useHarrisDetector = false, double k = 0.04 ); + +CV_EXPORTS_W void goodFeaturesToTrack( InputArray image, OutputArray corners, + int maxCorners, double qualityLevel, double minDistance, + InputArray mask, int blockSize, + int gradientSize, bool useHarrisDetector = false, + double k = 0.04 ); +/** @example samples/cpp/tutorial_code/ImgTrans/houghlines.cpp +An example using the Hough line detector +![Sample input image](Hough_Lines_Tutorial_Original_Image.jpg) ![Output image](Hough_Lines_Tutorial_Result.jpg) +*/ + +/** @brief Finds lines in a binary image using the standard Hough transform. + +The function implements the standard or standard multi-scale Hough transform algorithm for line +detection. See for a good explanation of Hough +transform. + +@param image 8-bit, single-channel binary source image. The image may be modified by the function. +@param lines Output vector of lines. Each line is represented by a 2 or 3 element vector +\f$(\rho, \theta)\f$ or \f$(\rho, \theta, \textrm{votes})\f$ . \f$\rho\f$ is the distance from the coordinate origin \f$(0,0)\f$ (top-left corner of +the image). \f$\theta\f$ is the line rotation angle in radians ( +\f$0 \sim \textrm{vertical line}, \pi/2 \sim \textrm{horizontal line}\f$ ). +\f$\textrm{votes}\f$ is the value of accumulator. +@param rho Distance resolution of the accumulator in pixels. +@param theta Angle resolution of the accumulator in radians. +@param threshold Accumulator threshold parameter. Only those lines are returned that get enough +votes ( \f$>\texttt{threshold}\f$ ). +@param srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho . +The coarse accumulator distance resolution is rho and the accurate accumulator resolution is +rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these +parameters should be positive. +@param stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta. +@param min_theta For standard and multi-scale Hough transform, minimum angle to check for lines. +Must fall between 0 and max_theta. +@param max_theta For standard and multi-scale Hough transform, maximum angle to check for lines. +Must fall between min_theta and CV_PI. + */ +CV_EXPORTS_W void HoughLines( InputArray image, OutputArray lines, + double rho, double theta, int threshold, + double srn = 0, double stn = 0, + double min_theta = 0, double max_theta = CV_PI ); + +/** @brief Finds line segments in a binary image using the probabilistic Hough transform. + +The function implements the probabilistic Hough transform algorithm for line detection, described +in @cite Matas00 + +See the line detection example below: +@include snippets/imgproc_HoughLinesP.cpp +This is a sample picture the function parameters have been tuned for: + +![image](pics/building.jpg) + +And this is the output of the above program in case of the probabilistic Hough transform: + +![image](pics/houghp.png) + +@param image 8-bit, single-channel binary source image. The image may be modified by the function. +@param lines Output vector of lines. Each line is represented by a 4-element vector +\f$(x_1, y_1, x_2, y_2)\f$ , where \f$(x_1,y_1)\f$ and \f$(x_2, y_2)\f$ are the ending points of each detected +line segment. +@param rho Distance resolution of the accumulator in pixels. +@param theta Angle resolution of the accumulator in radians. +@param threshold Accumulator threshold parameter. Only those lines are returned that get enough +votes ( \f$>\texttt{threshold}\f$ ). +@param minLineLength Minimum line length. Line segments shorter than that are rejected. +@param maxLineGap Maximum allowed gap between points on the same line to link them. + +@sa LineSegmentDetector + */ +CV_EXPORTS_W void HoughLinesP( InputArray image, OutputArray lines, + double rho, double theta, int threshold, + double minLineLength = 0, double maxLineGap = 0 ); + +/** @brief Finds lines in a set of points using the standard Hough transform. + +The function finds lines in a set of points using a modification of the Hough transform. +@include snippets/imgproc_HoughLinesPointSet.cpp +@param _point Input vector of points. Each vector must be encoded as a Point vector \f$(x,y)\f$. Type must be CV_32FC2 or CV_32SC2. +@param _lines Output vector of found lines. Each vector is encoded as a vector \f$(votes, rho, theta)\f$. +The larger the value of 'votes', the higher the reliability of the Hough line. +@param lines_max Max count of hough lines. +@param threshold Accumulator threshold parameter. Only those lines are returned that get enough +votes ( \f$>\texttt{threshold}\f$ ) +@param min_rho Minimum Distance value of the accumulator in pixels. +@param max_rho Maximum Distance value of the accumulator in pixels. +@param rho_step Distance resolution of the accumulator in pixels. +@param min_theta Minimum angle value of the accumulator in radians. +@param max_theta Maximum angle value of the accumulator in radians. +@param theta_step Angle resolution of the accumulator in radians. + */ +CV_EXPORTS_W void HoughLinesPointSet( InputArray _point, OutputArray _lines, int lines_max, int threshold, + double min_rho, double max_rho, double rho_step, + double min_theta, double max_theta, double theta_step ); + +/** @example samples/cpp/tutorial_code/ImgTrans/houghcircles.cpp +An example using the Hough circle detector +*/ + +/** @brief Finds circles in a grayscale image using the Hough transform. + +The function finds circles in a grayscale image using a modification of the Hough transform. + +Example: : +@include snippets/imgproc_HoughLinesCircles.cpp + +@note Usually the function detects the centers of circles well. However, it may fail to find correct +radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if +you know it. Or, you may set maxRadius to a negative number to return centers only without radius +search, and find the correct radius using an additional procedure. + +@param image 8-bit, single-channel, grayscale input image. +@param circles Output vector of found circles. Each vector is encoded as 3 or 4 element +floating-point vector \f$(x, y, radius)\f$ or \f$(x, y, radius, votes)\f$ . +@param method Detection method, see #HoughModes. Currently, the only implemented method is #HOUGH_GRADIENT +@param dp Inverse ratio of the accumulator resolution to the image resolution. For example, if +dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has +half as big width and height. +@param minDist Minimum distance between the centers of the detected circles. If the parameter is +too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is +too large, some circles may be missed. +@param param1 First method-specific parameter. In case of #HOUGH_GRADIENT , it is the higher +threshold of the two passed to the Canny edge detector (the lower one is twice smaller). +@param param2 Second method-specific parameter. In case of #HOUGH_GRADIENT , it is the +accumulator threshold for the circle centers at the detection stage. The smaller it is, the more +false circles may be detected. Circles, corresponding to the larger accumulator values, will be +returned first. +@param minRadius Minimum circle radius. +@param maxRadius Maximum circle radius. If <= 0, uses the maximum image dimension. If < 0, returns +centers without finding the radius. + +@sa fitEllipse, minEnclosingCircle + */ +CV_EXPORTS_W void HoughCircles( InputArray image, OutputArray circles, + int method, double dp, double minDist, + double param1 = 100, double param2 = 100, + int minRadius = 0, int maxRadius = 0 ); + +//! @} imgproc_feature + +//! @addtogroup imgproc_filter +//! @{ + +/** @example samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp +Advanced morphology Transformations sample code +![Sample screenshot](Morphology_2_Tutorial_Result.jpg) +Check @ref tutorial_opening_closing_hats "the corresponding tutorial" for more details +*/ + +/** @brief Erodes an image by using a specific structuring element. + +The function erodes the source image using the specified structuring element that determines the +shape of a pixel neighborhood over which the minimum is taken: + +\f[\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] + +The function supports the in-place mode. Erosion can be applied several ( iterations ) times. In +case of multi-channel images, each channel is processed independently. + +@param src input image; the number of channels can be arbitrary, but the depth should be one of +CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +@param dst output image of the same size and type as src. +@param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular +structuring element is used. Kernel can be created using #getStructuringElement. +@param anchor position of the anchor within the element; default value (-1, -1) means that the +anchor is at the element center. +@param iterations number of times erosion is applied. +@param borderType pixel extrapolation method, see #BorderTypes +@param borderValue border value in case of a constant border +@sa dilate, morphologyEx, getStructuringElement + */ +CV_EXPORTS_W void erode( InputArray src, OutputArray dst, InputArray kernel, + Point anchor = Point(-1,-1), int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue() ); + +/** @example samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp +Erosion and Dilation sample code +![Sample Screenshot-Erosion](Morphology_1_Tutorial_Erosion_Result.jpg)![Sample Screenshot-Dilation](Morphology_1_Tutorial_Dilation_Result.jpg) +Check @ref tutorial_erosion_dilatation "the corresponding tutorial" for more details +*/ + +/** @brief Dilates an image by using a specific structuring element. + +The function dilates the source image using the specified structuring element that determines the +shape of a pixel neighborhood over which the maximum is taken: +\f[\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] + +The function supports the in-place mode. Dilation can be applied several ( iterations ) times. In +case of multi-channel images, each channel is processed independently. + +@param src input image; the number of channels can be arbitrary, but the depth should be one of +CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +@param dst output image of the same size and type as src. +@param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular +structuring element is used. Kernel can be created using #getStructuringElement +@param anchor position of the anchor within the element; default value (-1, -1) means that the +anchor is at the element center. +@param iterations number of times dilation is applied. +@param borderType pixel extrapolation method, see #BorderTypes +@param borderValue border value in case of a constant border +@sa erode, morphologyEx, getStructuringElement + */ +CV_EXPORTS_W void dilate( InputArray src, OutputArray dst, InputArray kernel, + Point anchor = Point(-1,-1), int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue() ); + +/** @brief Performs advanced morphological transformations. + +The function cv::morphologyEx can perform advanced morphological transformations using an erosion and dilation as +basic operations. + +Any of the operations can be done in-place. In case of multi-channel images, each channel is +processed independently. + +@param src Source image. The number of channels can be arbitrary. The depth should be one of +CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. +@param dst Destination image of the same size and type as source image. +@param op Type of a morphological operation, see #MorphTypes +@param kernel Structuring element. It can be created using #getStructuringElement. +@param anchor Anchor position with the kernel. Negative values mean that the anchor is at the +kernel center. +@param iterations Number of times erosion and dilation are applied. +@param borderType Pixel extrapolation method, see #BorderTypes +@param borderValue Border value in case of a constant border. The default value has a special +meaning. +@sa dilate, erode, getStructuringElement +@note The number of iterations is the number of times erosion or dilatation operation will be applied. +For instance, an opening operation (#MORPH_OPEN) with two iterations is equivalent to apply +successively: erode -> erode -> dilate -> dilate (and not erode -> dilate -> erode -> dilate). + */ +CV_EXPORTS_W void morphologyEx( InputArray src, OutputArray dst, + int op, InputArray kernel, + Point anchor = Point(-1,-1), int iterations = 1, + int borderType = BORDER_CONSTANT, + const Scalar& borderValue = morphologyDefaultBorderValue() ); + +//! @} imgproc_filter + +//! @addtogroup imgproc_transform +//! @{ + +/** @brief Resizes an image. + +The function resize resizes the image src down to or up to the specified size. Note that the +initial dst type or size are not taken into account. Instead, the size and type are derived from +the `src`,`dsize`,`fx`, and `fy`. If you want to resize src so that it fits the pre-created dst, +you may call the function as follows: +@code + // explicitly specify dsize=dst.size(); fx and fy will be computed from that. + resize(src, dst, dst.size(), 0, 0, interpolation); +@endcode +If you want to decimate the image by factor of 2 in each direction, you can call the function this +way: +@code + // specify fx and fy and let the function compute the destination image size. + resize(src, dst, Size(), 0.5, 0.5, interpolation); +@endcode +To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to +enlarge an image, it will generally look best with c#INTER_CUBIC (slow) or #INTER_LINEAR +(faster but still looks OK). + +@param src input image. +@param dst output image; it has the size dsize (when it is non-zero) or the size computed from +src.size(), fx, and fy; the type of dst is the same as of src. +@param dsize output image size; if it equals zero, it is computed as: + \f[\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\f] + Either dsize or both fx and fy must be non-zero. +@param fx scale factor along the horizontal axis; when it equals 0, it is computed as +\f[\texttt{(double)dsize.width/src.cols}\f] +@param fy scale factor along the vertical axis; when it equals 0, it is computed as +\f[\texttt{(double)dsize.height/src.rows}\f] +@param interpolation interpolation method, see #InterpolationFlags + +@sa warpAffine, warpPerspective, remap + */ +CV_EXPORTS_W void resize( InputArray src, OutputArray dst, + Size dsize, double fx = 0, double fy = 0, + int interpolation = INTER_LINEAR ); + +/** @brief Applies an affine transformation to an image. + +The function warpAffine transforms the source image using the specified matrix: + +\f[\texttt{dst} (x,y) = \texttt{src} ( \texttt{M} _{11} x + \texttt{M} _{12} y + \texttt{M} _{13}, \texttt{M} _{21} x + \texttt{M} _{22} y + \texttt{M} _{23})\f] + +when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted +with #invertAffineTransform and then put in the formula above instead of M. The function cannot +operate in-place. + +@param src input image. +@param dst output image that has the size dsize and the same type as src . +@param M \f$2\times 3\f$ transformation matrix. +@param dsize size of the output image. +@param flags combination of interpolation methods (see #InterpolationFlags) and the optional +flag #WARP_INVERSE_MAP that means that M is the inverse transformation ( +\f$\texttt{dst}\rightarrow\texttt{src}\f$ ). +@param borderMode pixel extrapolation method (see #BorderTypes); when +borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image corresponding to +the "outliers" in the source image are not modified by the function. +@param borderValue value used in case of a constant border; by default, it is 0. + +@sa warpPerspective, resize, remap, getRectSubPix, transform + */ +CV_EXPORTS_W void warpAffine( InputArray src, OutputArray dst, + InputArray M, Size dsize, + int flags = INTER_LINEAR, + int borderMode = BORDER_CONSTANT, + const Scalar& borderValue = Scalar()); + +/** @example samples/cpp/warpPerspective_demo.cpp +An example program shows using cv::findHomography and cv::warpPerspective for image warping +*/ + +/** @brief Applies a perspective transformation to an image. + +The function warpPerspective transforms the source image using the specified matrix: + +\f[\texttt{dst} (x,y) = \texttt{src} \left ( \frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} , + \frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \right )\f] + +when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted with invert +and then put in the formula above instead of M. The function cannot operate in-place. + +@param src input image. +@param dst output image that has the size dsize and the same type as src . +@param M \f$3\times 3\f$ transformation matrix. +@param dsize size of the output image. +@param flags combination of interpolation methods (#INTER_LINEAR or #INTER_NEAREST) and the +optional flag #WARP_INVERSE_MAP, that sets M as the inverse transformation ( +\f$\texttt{dst}\rightarrow\texttt{src}\f$ ). +@param borderMode pixel extrapolation method (#BORDER_CONSTANT or #BORDER_REPLICATE). +@param borderValue value used in case of a constant border; by default, it equals 0. + +@sa warpAffine, resize, remap, getRectSubPix, perspectiveTransform + */ +CV_EXPORTS_W void warpPerspective( InputArray src, OutputArray dst, + InputArray M, Size dsize, + int flags = INTER_LINEAR, + int borderMode = BORDER_CONSTANT, + const Scalar& borderValue = Scalar()); + +/** @brief Applies a generic geometrical transformation to an image. + +The function remap transforms the source image using the specified map: + +\f[\texttt{dst} (x,y) = \texttt{src} (map_x(x,y),map_y(x,y))\f] + +where values of pixels with non-integer coordinates are computed using one of available +interpolation methods. \f$map_x\f$ and \f$map_y\f$ can be encoded as separate floating-point maps +in \f$map_1\f$ and \f$map_2\f$ respectively, or interleaved floating-point maps of \f$(x,y)\f$ in +\f$map_1\f$, or fixed-point maps created by using convertMaps. The reason you might want to +convert from floating to fixed-point representations of a map is that they can yield much faster +(\~2x) remapping operations. In the converted case, \f$map_1\f$ contains pairs (cvFloor(x), +cvFloor(y)) and \f$map_2\f$ contains indices in a table of interpolation coefficients. + +This function cannot operate in-place. + +@param src Source image. +@param dst Destination image. It has the same size as map1 and the same type as src . +@param map1 The first map of either (x,y) points or just x values having the type CV_16SC2 , +CV_32FC1, or CV_32FC2. See convertMaps for details on converting a floating point +representation to fixed-point for speed. +@param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map +if map1 is (x,y) points), respectively. +@param interpolation Interpolation method (see #InterpolationFlags). The method #INTER_AREA is +not supported by this function. +@param borderMode Pixel extrapolation method (see #BorderTypes). When +borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image that +corresponds to the "outliers" in the source image are not modified by the function. +@param borderValue Value used in case of a constant border. By default, it is 0. +@note +Due to current implementation limitations the size of an input and output images should be less than 32767x32767. + */ +CV_EXPORTS_W void remap( InputArray src, OutputArray dst, + InputArray map1, InputArray map2, + int interpolation, int borderMode = BORDER_CONSTANT, + const Scalar& borderValue = Scalar()); + +/** @brief Converts image transformation maps from one representation to another. + +The function converts a pair of maps for remap from one representation to another. The following +options ( (map1.type(), map2.type()) \f$\rightarrow\f$ (dstmap1.type(), dstmap2.type()) ) are +supported: + +- \f$\texttt{(CV_32FC1, CV_32FC1)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\f$. This is the +most frequently used conversion operation, in which the original floating-point maps (see remap ) +are converted to a more compact and much faster fixed-point representation. The first output array +contains the rounded coordinates and the second array (created only when nninterpolation=false ) +contains indices in the interpolation tables. + +- \f$\texttt{(CV_32FC2)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\f$. The same as above but +the original maps are stored in one 2-channel matrix. + +- Reverse conversion. Obviously, the reconstructed floating-point maps will not be exactly the same +as the originals. + +@param map1 The first input map of type CV_16SC2, CV_32FC1, or CV_32FC2 . +@param map2 The second input map of type CV_16UC1, CV_32FC1, or none (empty matrix), +respectively. +@param dstmap1 The first output map that has the type dstmap1type and the same size as src . +@param dstmap2 The second output map. +@param dstmap1type Type of the first output map that should be CV_16SC2, CV_32FC1, or +CV_32FC2 . +@param nninterpolation Flag indicating whether the fixed-point maps are used for the +nearest-neighbor or for a more complex interpolation. + +@sa remap, undistort, initUndistortRectifyMap + */ +CV_EXPORTS_W void convertMaps( InputArray map1, InputArray map2, + OutputArray dstmap1, OutputArray dstmap2, + int dstmap1type, bool nninterpolation = false ); + +/** @brief Calculates an affine matrix of 2D rotation. + +The function calculates the following matrix: + +\f[\begin{bmatrix} \alpha & \beta & (1- \alpha ) \cdot \texttt{center.x} - \beta \cdot \texttt{center.y} \\ - \beta & \alpha & \beta \cdot \texttt{center.x} + (1- \alpha ) \cdot \texttt{center.y} \end{bmatrix}\f] + +where + +\f[\begin{array}{l} \alpha = \texttt{scale} \cdot \cos \texttt{angle} , \\ \beta = \texttt{scale} \cdot \sin \texttt{angle} \end{array}\f] + +The transformation maps the rotation center to itself. If this is not the target, adjust the shift. + +@param center Center of the rotation in the source image. +@param angle Rotation angle in degrees. Positive values mean counter-clockwise rotation (the +coordinate origin is assumed to be the top-left corner). +@param scale Isotropic scale factor. + +@sa getAffineTransform, warpAffine, transform + */ +CV_EXPORTS_W Mat getRotationMatrix2D( Point2f center, double angle, double scale ); + +/** @brief Calculates an affine transform from three pairs of the corresponding points. + +The function calculates the \f$2 \times 3\f$ matrix of an affine transform so that: + +\f[\begin{bmatrix} x'_i \\ y'_i \end{bmatrix} = \texttt{map_matrix} \cdot \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}\f] + +where + +\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2\f] + +@param src Coordinates of triangle vertices in the source image. +@param dst Coordinates of the corresponding triangle vertices in the destination image. + +@sa warpAffine, transform + */ +CV_EXPORTS Mat getAffineTransform( const Point2f src[], const Point2f dst[] ); + +/** @brief Inverts an affine transformation. + +The function computes an inverse affine transformation represented by \f$2 \times 3\f$ matrix M: + +\f[\begin{bmatrix} a_{11} & a_{12} & b_1 \\ a_{21} & a_{22} & b_2 \end{bmatrix}\f] + +The result is also a \f$2 \times 3\f$ matrix of the same type as M. + +@param M Original affine transformation. +@param iM Output reverse affine transformation. + */ +CV_EXPORTS_W void invertAffineTransform( InputArray M, OutputArray iM ); + +/** @brief Calculates a perspective transform from four pairs of the corresponding points. + +The function calculates the \f$3 \times 3\f$ matrix of a perspective transform so that: + +\f[\begin{bmatrix} t_i x'_i \\ t_i y'_i \\ t_i \end{bmatrix} = \texttt{map_matrix} \cdot \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}\f] + +where + +\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\f] + +@param src Coordinates of quadrangle vertices in the source image. +@param dst Coordinates of the corresponding quadrangle vertices in the destination image. +@param solveMethod method passed to cv::solve (#DecompTypes) + +@sa findHomography, warpPerspective, perspectiveTransform + */ +CV_EXPORTS_W Mat getPerspectiveTransform(InputArray src, InputArray dst, int solveMethod = DECOMP_LU); + +/** @overload */ +CV_EXPORTS Mat getPerspectiveTransform(const Point2f src[], const Point2f dst[], int solveMethod = DECOMP_LU); + + +CV_EXPORTS_W Mat getAffineTransform( InputArray src, InputArray dst ); + +/** @brief Retrieves a pixel rectangle from an image with sub-pixel accuracy. + +The function getRectSubPix extracts pixels from src: + +\f[patch(x, y) = src(x + \texttt{center.x} - ( \texttt{dst.cols} -1)*0.5, y + \texttt{center.y} - ( \texttt{dst.rows} -1)*0.5)\f] + +where the values of the pixels at non-integer coordinates are retrieved using bilinear +interpolation. Every channel of multi-channel images is processed independently. Also +the image should be a single channel or three channel image. While the center of the +rectangle must be inside the image, parts of the rectangle may be outside. + +@param image Source image. +@param patchSize Size of the extracted patch. +@param center Floating point coordinates of the center of the extracted rectangle within the +source image. The center must be inside the image. +@param patch Extracted patch that has the size patchSize and the same number of channels as src . +@param patchType Depth of the extracted pixels. By default, they have the same depth as src . + +@sa warpAffine, warpPerspective + */ +CV_EXPORTS_W void getRectSubPix( InputArray image, Size patchSize, + Point2f center, OutputArray patch, int patchType = -1 ); + +/** @example samples/cpp/polar_transforms.cpp +An example using the cv::linearPolar and cv::logPolar operations +*/ + +/** @brief Remaps an image to semilog-polar coordinates space. + +@deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG); + +@internal +Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image d)"): +\f[\begin{array}{l} + dst( \rho , \phi ) = src(x,y) \\ + dst.size() \leftarrow src.size() +\end{array}\f] + +where +\f[\begin{array}{l} + I = (dx,dy) = (x - center.x,y - center.y) \\ + \rho = M \cdot log_e(\texttt{magnitude} (I)) ,\\ + \phi = Kangle \cdot \texttt{angle} (I) \\ +\end{array}\f] + +and +\f[\begin{array}{l} + M = src.cols / log_e(maxRadius) \\ + Kangle = src.rows / 2\Pi \\ +\end{array}\f] + +The function emulates the human "foveal" vision and can be used for fast scale and +rotation-invariant template matching, for object tracking and so forth. +@param src Source image +@param dst Destination image. It will have same size and type as src. +@param center The transformation center; where the output precision is maximal +@param M Magnitude scale parameter. It determines the radius of the bounding circle to transform too. +@param flags A combination of interpolation methods, see #InterpolationFlags + +@note +- The function can not operate in-place. +- To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees. + +@sa cv::linearPolar +@endinternal +*/ +CV_EXPORTS_W void logPolar( InputArray src, OutputArray dst, + Point2f center, double M, int flags ); + +/** @brief Remaps an image to polar coordinates space. + +@deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags) + +@internal +Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image c)"): +\f[\begin{array}{l} + dst( \rho , \phi ) = src(x,y) \\ + dst.size() \leftarrow src.size() +\end{array}\f] + +where +\f[\begin{array}{l} + I = (dx,dy) = (x - center.x,y - center.y) \\ + \rho = Kmag \cdot \texttt{magnitude} (I) ,\\ + \phi = angle \cdot \texttt{angle} (I) +\end{array}\f] + +and +\f[\begin{array}{l} + Kx = src.cols / maxRadius \\ + Ky = src.rows / 2\Pi +\end{array}\f] + + +@param src Source image +@param dst Destination image. It will have same size and type as src. +@param center The transformation center; +@param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too. +@param flags A combination of interpolation methods, see #InterpolationFlags + +@note +- The function can not operate in-place. +- To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees. + +@sa cv::logPolar +@endinternal +*/ +CV_EXPORTS_W void linearPolar( InputArray src, OutputArray dst, + Point2f center, double maxRadius, int flags ); + + +/** \brief Remaps an image to polar or semilog-polar coordinates space + +@anchor polar_remaps_reference_image +![Polar remaps reference](pics/polar_remap_doc.png) + +Transform the source image using the following transformation: +\f[ +dst(\rho , \phi ) = src(x,y) +\f] + +where +\f[ +\begin{array}{l} +\vec{I} = (x - center.x, \;y - center.y) \\ +\phi = Kangle \cdot \texttt{angle} (\vec{I}) \\ +\rho = \left\{\begin{matrix} +Klin \cdot \texttt{magnitude} (\vec{I}) & default \\ +Klog \cdot log_e(\texttt{magnitude} (\vec{I})) & if \; semilog \\ +\end{matrix}\right. +\end{array} +\f] + +and +\f[ +\begin{array}{l} +Kangle = dsize.height / 2\Pi \\ +Klin = dsize.width / maxRadius \\ +Klog = dsize.width / log_e(maxRadius) \\ +\end{array} +\f] + + +\par Linear vs semilog mapping + +Polar mapping can be linear or semi-log. Add one of #WarpPolarMode to `flags` to specify the polar mapping mode. + +Linear is the default mode. + +The semilog mapping emulates the human "foveal" vision that permit very high acuity on the line of sight (central vision) +in contrast to peripheral vision where acuity is minor. + +\par Option on `dsize`: + +- if both values in `dsize <=0 ` (default), +the destination image will have (almost) same area of source bounding circle: +\f[\begin{array}{l} +dsize.area \leftarrow (maxRadius^2 \cdot \Pi) \\ +dsize.width = \texttt{cvRound}(maxRadius) \\ +dsize.height = \texttt{cvRound}(maxRadius \cdot \Pi) \\ +\end{array}\f] + + +- if only `dsize.height <= 0`, +the destination image area will be proportional to the bounding circle area but scaled by `Kx * Kx`: +\f[\begin{array}{l} +dsize.height = \texttt{cvRound}(dsize.width \cdot \Pi) \\ +\end{array} +\f] + +- if both values in `dsize > 0 `, +the destination image will have the given size therefore the area of the bounding circle will be scaled to `dsize`. + + +\par Reverse mapping + +You can get reverse mapping adding #WARP_INVERSE_MAP to `flags` +\snippet polar_transforms.cpp InverseMap + +In addiction, to calculate the original coordinate from a polar mapped coordinate \f$(rho, phi)->(x, y)\f$: +\snippet polar_transforms.cpp InverseCoordinate + +@param src Source image. +@param dst Destination image. It will have same type as src. +@param dsize The destination image size (see description for valid options). +@param center The transformation center. +@param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too. +@param flags A combination of interpolation methods, #InterpolationFlags + #WarpPolarMode. + - Add #WARP_POLAR_LINEAR to select linear polar mapping (default) + - Add #WARP_POLAR_LOG to select semilog polar mapping + - Add #WARP_INVERSE_MAP for reverse mapping. +@note +- The function can not operate in-place. +- To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees. +- This function uses #remap. Due to current implementation limitations the size of an input and output images should be less than 32767x32767. + +@sa cv::remap +*/ +CV_EXPORTS_W void warpPolar(InputArray src, OutputArray dst, Size dsize, + Point2f center, double maxRadius, int flags); + + +//! @} imgproc_transform + +//! @addtogroup imgproc_misc +//! @{ + +/** @overload */ +CV_EXPORTS_W void integral( InputArray src, OutputArray sum, int sdepth = -1 ); + +/** @overload */ +CV_EXPORTS_AS(integral2) void integral( InputArray src, OutputArray sum, + OutputArray sqsum, int sdepth = -1, int sqdepth = -1 ); + +/** @brief Calculates the integral of an image. + +The function calculates one or more integral images for the source image as follows: + +\f[\texttt{sum} (X,Y) = \sum _{x + +Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed +with getOptimalDFTSize. + +The function performs the following equations: +- First it applies a Hanning window (see ) to each +image to remove possible edge effects. This window is cached until the array size changes to speed +up processing time. +- Next it computes the forward DFTs of each source array: +\f[\mathbf{G}_a = \mathcal{F}\{src_1\}, \; \mathbf{G}_b = \mathcal{F}\{src_2\}\f] +where \f$\mathcal{F}\f$ is the forward DFT. +- It then computes the cross-power spectrum of each frequency domain array: +\f[R = \frac{ \mathbf{G}_a \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^*|}\f] +- Next the cross-correlation is converted back into the time domain via the inverse DFT: +\f[r = \mathcal{F}^{-1}\{R\}\f] +- Finally, it computes the peak location and computes a 5x5 weighted centroid around the peak to +achieve sub-pixel accuracy. +\f[(\Delta x, \Delta y) = \texttt{weightedCentroid} \{\arg \max_{(x, y)}\{r\}\}\f] +- If non-zero, the response parameter is computed as the sum of the elements of r within the 5x5 +centroid around the peak location. It is normalized to a maximum of 1 (meaning there is a single +peak) and will be smaller when there are multiple peaks. + +@param src1 Source floating point array (CV_32FC1 or CV_64FC1) +@param src2 Source floating point array (CV_32FC1 or CV_64FC1) +@param window Floating point array with windowing coefficients to reduce edge effects (optional). +@param response Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional). +@returns detected phase shift (sub-pixel) between the two arrays. + +@sa dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow + */ +CV_EXPORTS_W Point2d phaseCorrelate(InputArray src1, InputArray src2, + InputArray window = noArray(), CV_OUT double* response = 0); + +/** @brief This function computes a Hanning window coefficients in two dimensions. + +See (http://en.wikipedia.org/wiki/Hann_function) and (http://en.wikipedia.org/wiki/Window_function) +for more information. + +An example is shown below: +@code + // create hanning window of size 100x100 and type CV_32F + Mat hann; + createHanningWindow(hann, Size(100, 100), CV_32F); +@endcode +@param dst Destination array to place Hann coefficients in +@param winSize The window size specifications (both width and height must be > 1) +@param type Created array type + */ +CV_EXPORTS_W void createHanningWindow(OutputArray dst, Size winSize, int type); + +//! @} imgproc_motion + +//! @addtogroup imgproc_misc +//! @{ + +/** @brief Applies a fixed-level threshold to each array element. + +The function applies fixed-level thresholding to a multiple-channel array. The function is typically +used to get a bi-level (binary) image out of a grayscale image ( #compare could be also used for +this purpose) or for removing a noise, that is, filtering out pixels with too small or too large +values. There are several types of thresholding supported by the function. They are determined by +type parameter. + +Also, the special values #THRESH_OTSU or #THRESH_TRIANGLE may be combined with one of the +above values. In these cases, the function determines the optimal threshold value using the Otsu's +or Triangle algorithm and uses it instead of the specified thresh. + +@note Currently, the Otsu's and Triangle methods are implemented only for 8-bit single-channel images. + +@param src input array (multiple-channel, 8-bit or 32-bit floating point). +@param dst output array of the same size and type and the same number of channels as src. +@param thresh threshold value. +@param maxval maximum value to use with the #THRESH_BINARY and #THRESH_BINARY_INV thresholding +types. +@param type thresholding type (see #ThresholdTypes). +@return the computed threshold value if Otsu's or Triangle methods used. + +@sa adaptiveThreshold, findContours, compare, min, max + */ +CV_EXPORTS_W double threshold( InputArray src, OutputArray dst, + double thresh, double maxval, int type ); + + +/** @brief Applies an adaptive threshold to an array. + +The function transforms a grayscale image to a binary image according to the formulae: +- **THRESH_BINARY** + \f[dst(x,y) = \fork{\texttt{maxValue}}{if \(src(x,y) > T(x,y)\)}{0}{otherwise}\f] +- **THRESH_BINARY_INV** + \f[dst(x,y) = \fork{0}{if \(src(x,y) > T(x,y)\)}{\texttt{maxValue}}{otherwise}\f] +where \f$T(x,y)\f$ is a threshold calculated individually for each pixel (see adaptiveMethod parameter). + +The function can process the image in-place. + +@param src Source 8-bit single-channel image. +@param dst Destination image of the same size and the same type as src. +@param maxValue Non-zero value assigned to the pixels for which the condition is satisfied +@param adaptiveMethod Adaptive thresholding algorithm to use, see #AdaptiveThresholdTypes. +The #BORDER_REPLICATE | #BORDER_ISOLATED is used to process boundaries. +@param thresholdType Thresholding type that must be either #THRESH_BINARY or #THRESH_BINARY_INV, +see #ThresholdTypes. +@param blockSize Size of a pixel neighborhood that is used to calculate a threshold value for the +pixel: 3, 5, 7, and so on. +@param C Constant subtracted from the mean or weighted mean (see the details below). Normally, it +is positive but may be zero or negative as well. + +@sa threshold, blur, GaussianBlur + */ +CV_EXPORTS_W void adaptiveThreshold( InputArray src, OutputArray dst, + double maxValue, int adaptiveMethod, + int thresholdType, int blockSize, double C ); + +//! @} imgproc_misc + +//! @addtogroup imgproc_filter +//! @{ + +/** @example samples/cpp/tutorial_code/ImgProc/Pyramids/Pyramids.cpp +An example using pyrDown and pyrUp functions +*/ + +/** @brief Blurs an image and downsamples it. + +By default, size of the output image is computed as `Size((src.cols+1)/2, (src.rows+1)/2)`, but in +any case, the following conditions should be satisfied: + +\f[\begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array}\f] + +The function performs the downsampling step of the Gaussian pyramid construction. First, it +convolves the source image with the kernel: + +\f[\frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix}\f] + +Then, it downsamples the image by rejecting even rows and columns. + +@param src input image. +@param dst output image; it has the specified size and the same type as src. +@param dstsize size of the output image. +@param borderType Pixel extrapolation method, see #BorderTypes (#BORDER_CONSTANT isn't supported) + */ +CV_EXPORTS_W void pyrDown( InputArray src, OutputArray dst, + const Size& dstsize = Size(), int borderType = BORDER_DEFAULT ); + +/** @brief Upsamples an image and then blurs it. + +By default, size of the output image is computed as `Size(src.cols\*2, (src.rows\*2)`, but in any +case, the following conditions should be satisfied: + +\f[\begin{array}{l} | \texttt{dstsize.width} -src.cols*2| \leq ( \texttt{dstsize.width} \mod 2) \\ | \texttt{dstsize.height} -src.rows*2| \leq ( \texttt{dstsize.height} \mod 2) \end{array}\f] + +The function performs the upsampling step of the Gaussian pyramid construction, though it can +actually be used to construct the Laplacian pyramid. First, it upsamples the source image by +injecting even zero rows and columns and then convolves the result with the same kernel as in +pyrDown multiplied by 4. + +@param src input image. +@param dst output image. It has the specified size and the same type as src . +@param dstsize size of the output image. +@param borderType Pixel extrapolation method, see #BorderTypes (only #BORDER_DEFAULT is supported) + */ +CV_EXPORTS_W void pyrUp( InputArray src, OutputArray dst, + const Size& dstsize = Size(), int borderType = BORDER_DEFAULT ); + +/** @brief Constructs the Gaussian pyramid for an image. + +The function constructs a vector of images and builds the Gaussian pyramid by recursively applying +pyrDown to the previously built pyramid layers, starting from `dst[0]==src`. + +@param src Source image. Check pyrDown for the list of supported types. +@param dst Destination vector of maxlevel+1 images of the same type as src. dst[0] will be the +same as src. dst[1] is the next pyramid layer, a smoothed and down-sized src, and so on. +@param maxlevel 0-based index of the last (the smallest) pyramid layer. It must be non-negative. +@param borderType Pixel extrapolation method, see #BorderTypes (#BORDER_CONSTANT isn't supported) + */ +CV_EXPORTS void buildPyramid( InputArray src, OutputArrayOfArrays dst, + int maxlevel, int borderType = BORDER_DEFAULT ); + +//! @} imgproc_filter + +//! @addtogroup imgproc_hist +//! @{ + +/** @example samples/cpp/demhist.cpp +An example for creating histograms of an image +*/ + +/** @brief Calculates a histogram of a set of arrays. + +The function cv::calcHist calculates the histogram of one or more arrays. The elements of a tuple used +to increment a histogram bin are taken from the corresponding input arrays at the same location. The +sample below shows how to compute a 2D Hue-Saturation histogram for a color image. : +@include snippets/imgproc_calcHist.cpp + +@param images Source arrays. They all should have the same depth, CV_8U, CV_16U or CV_32F , and the same +size. Each of them can have an arbitrary number of channels. +@param nimages Number of source images. +@param channels List of the dims channels used to compute the histogram. The first array channels +are numerated from 0 to images[0].channels()-1 , the second array channels are counted from +images[0].channels() to images[0].channels() + images[1].channels()-1, and so on. +@param mask Optional mask. If the matrix is not empty, it must be an 8-bit array of the same size +as images[i] . The non-zero mask elements mark the array elements counted in the histogram. +@param hist Output histogram, which is a dense or sparse dims -dimensional array. +@param dims Histogram dimensionality that must be positive and not greater than CV_MAX_DIMS +(equal to 32 in the current OpenCV version). +@param histSize Array of histogram sizes in each dimension. +@param ranges Array of the dims arrays of the histogram bin boundaries in each dimension. When the +histogram is uniform ( uniform =true), then for each dimension i it is enough to specify the lower +(inclusive) boundary \f$L_0\f$ of the 0-th histogram bin and the upper (exclusive) boundary +\f$U_{\texttt{histSize}[i]-1}\f$ for the last histogram bin histSize[i]-1 . That is, in case of a +uniform histogram each of ranges[i] is an array of 2 elements. When the histogram is not uniform ( +uniform=false ), then each of ranges[i] contains histSize[i]+1 elements: +\f$L_0, U_0=L_1, U_1=L_2, ..., U_{\texttt{histSize[i]}-2}=L_{\texttt{histSize[i]}-1}, U_{\texttt{histSize[i]}-1}\f$ +. The array elements, that are not between \f$L_0\f$ and \f$U_{\texttt{histSize[i]}-1}\f$ , are not +counted in the histogram. +@param uniform Flag indicating whether the histogram is uniform or not (see above). +@param accumulate Accumulation flag. If it is set, the histogram is not cleared in the beginning +when it is allocated. This feature enables you to compute a single histogram from several sets of +arrays, or to update the histogram in time. +*/ +CV_EXPORTS void calcHist( const Mat* images, int nimages, + const int* channels, InputArray mask, + OutputArray hist, int dims, const int* histSize, + const float** ranges, bool uniform = true, bool accumulate = false ); + +/** @overload + +this variant uses %SparseMat for output +*/ +CV_EXPORTS void calcHist( const Mat* images, int nimages, + const int* channels, InputArray mask, + SparseMat& hist, int dims, + const int* histSize, const float** ranges, + bool uniform = true, bool accumulate = false ); + +/** @overload */ +CV_EXPORTS_W void calcHist( InputArrayOfArrays images, + const std::vector& channels, + InputArray mask, OutputArray hist, + const std::vector& histSize, + const std::vector& ranges, + bool accumulate = false ); + +/** @brief Calculates the back projection of a histogram. + +The function cv::calcBackProject calculates the back project of the histogram. That is, similarly to +#calcHist , at each location (x, y) the function collects the values from the selected channels +in the input images and finds the corresponding histogram bin. But instead of incrementing it, the +function reads the bin value, scales it by scale , and stores in backProject(x,y) . In terms of +statistics, the function computes probability of each element value in respect with the empirical +probability distribution represented by the histogram. See how, for example, you can find and track +a bright-colored object in a scene: + +- Before tracking, show the object to the camera so that it covers almost the whole frame. +Calculate a hue histogram. The histogram may have strong maximums, corresponding to the dominant +colors in the object. + +- When tracking, calculate a back projection of a hue plane of each input video frame using that +pre-computed histogram. Threshold the back projection to suppress weak colors. It may also make +sense to suppress pixels with non-sufficient color saturation and too dark or too bright pixels. + +- Find connected components in the resulting picture and choose, for example, the largest +component. + +This is an approximate algorithm of the CamShift color object tracker. + +@param images Source arrays. They all should have the same depth, CV_8U, CV_16U or CV_32F , and the same +size. Each of them can have an arbitrary number of channels. +@param nimages Number of source images. +@param channels The list of channels used to compute the back projection. The number of channels +must match the histogram dimensionality. The first array channels are numerated from 0 to +images[0].channels()-1 , the second array channels are counted from images[0].channels() to +images[0].channels() + images[1].channels()-1, and so on. +@param hist Input histogram that can be dense or sparse. +@param backProject Destination back projection array that is a single-channel array of the same +size and depth as images[0] . +@param ranges Array of arrays of the histogram bin boundaries in each dimension. See #calcHist . +@param scale Optional scale factor for the output back projection. +@param uniform Flag indicating whether the histogram is uniform or not (see above). + +@sa calcHist, compareHist + */ +CV_EXPORTS void calcBackProject( const Mat* images, int nimages, + const int* channels, InputArray hist, + OutputArray backProject, const float** ranges, + double scale = 1, bool uniform = true ); + +/** @overload */ +CV_EXPORTS void calcBackProject( const Mat* images, int nimages, + const int* channels, const SparseMat& hist, + OutputArray backProject, const float** ranges, + double scale = 1, bool uniform = true ); + +/** @overload */ +CV_EXPORTS_W void calcBackProject( InputArrayOfArrays images, const std::vector& channels, + InputArray hist, OutputArray dst, + const std::vector& ranges, + double scale ); + +/** @brief Compares two histograms. + +The function cv::compareHist compares two dense or two sparse histograms using the specified method. + +The function returns \f$d(H_1, H_2)\f$ . + +While the function works well with 1-, 2-, 3-dimensional dense histograms, it may not be suitable +for high-dimensional sparse histograms. In such histograms, because of aliasing and sampling +problems, the coordinates of non-zero histogram bins can slightly shift. To compare such histograms +or more general sparse configurations of weighted points, consider using the #EMD function. + +@param H1 First compared histogram. +@param H2 Second compared histogram of the same size as H1 . +@param method Comparison method, see #HistCompMethods + */ +CV_EXPORTS_W double compareHist( InputArray H1, InputArray H2, int method ); + +/** @overload */ +CV_EXPORTS double compareHist( const SparseMat& H1, const SparseMat& H2, int method ); + +/** @brief Equalizes the histogram of a grayscale image. + +The function equalizes the histogram of the input image using the following algorithm: + +- Calculate the histogram \f$H\f$ for src . +- Normalize the histogram so that the sum of histogram bins is 255. +- Compute the integral of the histogram: +\f[H'_i = \sum _{0 \le j < i} H(j)\f] +- Transform the image using \f$H'\f$ as a look-up table: \f$\texttt{dst}(x,y) = H'(\texttt{src}(x,y))\f$ + +The algorithm normalizes the brightness and increases the contrast of the image. + +@param src Source 8-bit single channel image. +@param dst Destination image of the same size and type as src . + */ +CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst ); + +/** @brief Creates a smart pointer to a cv::CLAHE class and initializes it. + +@param clipLimit Threshold for contrast limiting. +@param tileGridSize Size of grid for histogram equalization. Input image will be divided into +equally sized rectangular tiles. tileGridSize defines the number of tiles in row and column. + */ +CV_EXPORTS_W Ptr createCLAHE(double clipLimit = 40.0, Size tileGridSize = Size(8, 8)); + +/** @brief Computes the "minimal work" distance between two weighted point configurations. + +The function computes the earth mover distance and/or a lower boundary of the distance between the +two weighted point configurations. One of the applications described in @cite RubnerSept98, +@cite Rubner2000 is multi-dimensional histogram comparison for image retrieval. EMD is a transportation +problem that is solved using some modification of a simplex algorithm, thus the complexity is +exponential in the worst case, though, on average it is much faster. In the case of a real metric +the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used +to determine roughly whether the two signatures are far enough so that they cannot relate to the +same object. + +@param signature1 First signature, a \f$\texttt{size1}\times \texttt{dims}+1\f$ floating-point matrix. +Each row stores the point weight followed by the point coordinates. The matrix is allowed to have +a single column (weights only) if the user-defined cost matrix is used. The weights must be +non-negative and have at least one non-zero value. +@param signature2 Second signature of the same format as signature1 , though the number of rows +may be different. The total weights may be different. In this case an extra "dummy" point is added +to either signature1 or signature2. The weights must be non-negative and have at least one non-zero +value. +@param distType Used metric. See #DistanceTypes. +@param cost User-defined \f$\texttt{size1}\times \texttt{size2}\f$ cost matrix. Also, if a cost matrix +is used, lower boundary lowerBound cannot be calculated because it needs a metric function. +@param lowerBound Optional input/output parameter: lower boundary of a distance between the two +signatures that is a distance between mass centers. The lower boundary may not be calculated if +the user-defined cost matrix is used, the total weights of point configurations are not equal, or +if the signatures consist of weights only (the signature matrices have a single column). You +**must** initialize \*lowerBound . If the calculated distance between mass centers is greater or +equal to \*lowerBound (it means that the signatures are far enough), the function does not +calculate EMD. In any case \*lowerBound is set to the calculated distance between mass centers on +return. Thus, if you want to calculate both distance between mass centers and EMD, \*lowerBound +should be set to 0. +@param flow Resultant \f$\texttt{size1} \times \texttt{size2}\f$ flow matrix: \f$\texttt{flow}_{i,j}\f$ is +a flow from \f$i\f$ -th point of signature1 to \f$j\f$ -th point of signature2 . + */ +CV_EXPORTS float EMD( InputArray signature1, InputArray signature2, + int distType, InputArray cost=noArray(), + float* lowerBound = 0, OutputArray flow = noArray() ); + +CV_EXPORTS_AS(EMD) float wrapperEMD( InputArray signature1, InputArray signature2, + int distType, InputArray cost=noArray(), + CV_IN_OUT Ptr lowerBound = Ptr(), OutputArray flow = noArray() ); + +//! @} imgproc_hist + +/** @example samples/cpp/watershed.cpp +An example using the watershed algorithm +*/ + +/** @brief Performs a marker-based image segmentation using the watershed algorithm. + +The function implements one of the variants of watershed, non-parametric marker-based segmentation +algorithm, described in @cite Meyer92 . + +Before passing the image to the function, you have to roughly outline the desired regions in the +image markers with positive (\>0) indices. So, every region is represented as one or more connected +components with the pixel values 1, 2, 3, and so on. Such markers can be retrieved from a binary +mask using #findContours and #drawContours (see the watershed.cpp demo). The markers are "seeds" of +the future image regions. All the other pixels in markers , whose relation to the outlined regions +is not known and should be defined by the algorithm, should be set to 0's. In the function output, +each pixel in markers is set to a value of the "seed" components or to -1 at boundaries between the +regions. + +@note Any two neighbor connected components are not necessarily separated by a watershed boundary +(-1's pixels); for example, they can touch each other in the initial marker image passed to the +function. + +@param image Input 8-bit 3-channel image. +@param markers Input/output 32-bit single-channel image (map) of markers. It should have the same +size as image . + +@sa findContours + +@ingroup imgproc_misc + */ +CV_EXPORTS_W void watershed( InputArray image, InputOutputArray markers ); + +//! @addtogroup imgproc_filter +//! @{ + +/** @brief Performs initial step of meanshift segmentation of an image. + +The function implements the filtering stage of meanshift segmentation, that is, the output of the +function is the filtered "posterized" image with color gradients and fine-grain texture flattened. +At every pixel (X,Y) of the input image (or down-sized input image, see below) the function executes +meanshift iterations, that is, the pixel (X,Y) neighborhood in the joint space-color hyperspace is +considered: + +\f[(x,y): X- \texttt{sp} \le x \le X+ \texttt{sp} , Y- \texttt{sp} \le y \le Y+ \texttt{sp} , ||(R,G,B)-(r,g,b)|| \le \texttt{sr}\f] + +where (R,G,B) and (r,g,b) are the vectors of color components at (X,Y) and (x,y), respectively +(though, the algorithm does not depend on the color space used, so any 3-component color space can +be used instead). Over the neighborhood the average spatial value (X',Y') and average color vector +(R',G',B') are found and they act as the neighborhood center on the next iteration: + +\f[(X,Y)~(X',Y'), (R,G,B)~(R',G',B').\f] + +After the iterations over, the color components of the initial pixel (that is, the pixel from where +the iterations started) are set to the final value (average color at the last iteration): + +\f[I(X,Y) <- (R*,G*,B*)\f] + +When maxLevel \> 0, the gaussian pyramid of maxLevel+1 levels is built, and the above procedure is +run on the smallest layer first. After that, the results are propagated to the larger layer and the +iterations are run again only on those pixels where the layer colors differ by more than sr from the +lower-resolution layer of the pyramid. That makes boundaries of color regions sharper. Note that the +results will be actually different from the ones obtained by running the meanshift procedure on the +whole original image (i.e. when maxLevel==0). + +@param src The source 8-bit, 3-channel image. +@param dst The destination image of the same format and the same size as the source. +@param sp The spatial window radius. +@param sr The color window radius. +@param maxLevel Maximum level of the pyramid for the segmentation. +@param termcrit Termination criteria: when to stop meanshift iterations. + */ +CV_EXPORTS_W void pyrMeanShiftFiltering( InputArray src, OutputArray dst, + double sp, double sr, int maxLevel = 1, + TermCriteria termcrit=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) ); + +//! @} + +//! @addtogroup imgproc_misc +//! @{ + +/** @example samples/cpp/grabcut.cpp +An example using the GrabCut algorithm +![Sample Screenshot](grabcut_output1.jpg) +*/ + +/** @brief Runs the GrabCut algorithm. + +The function implements the [GrabCut image segmentation algorithm](http://en.wikipedia.org/wiki/GrabCut). + +@param img Input 8-bit 3-channel image. +@param mask Input/output 8-bit single-channel mask. The mask is initialized by the function when +mode is set to #GC_INIT_WITH_RECT. Its elements may have one of the #GrabCutClasses. +@param rect ROI containing a segmented object. The pixels outside of the ROI are marked as +"obvious background". The parameter is only used when mode==#GC_INIT_WITH_RECT . +@param bgdModel Temporary array for the background model. Do not modify it while you are +processing the same image. +@param fgdModel Temporary arrays for the foreground model. Do not modify it while you are +processing the same image. +@param iterCount Number of iterations the algorithm should make before returning the result. Note +that the result can be refined with further calls with mode==#GC_INIT_WITH_MASK or +mode==GC_EVAL . +@param mode Operation mode that could be one of the #GrabCutModes + */ +CV_EXPORTS_W void grabCut( InputArray img, InputOutputArray mask, Rect rect, + InputOutputArray bgdModel, InputOutputArray fgdModel, + int iterCount, int mode = GC_EVAL ); + +/** @example samples/cpp/distrans.cpp +An example on using the distance transform +*/ + +/** @brief Calculates the distance to the closest zero pixel for each pixel of the source image. + +The function cv::distanceTransform calculates the approximate or precise distance from every binary +image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero. + +When maskSize == #DIST_MASK_PRECISE and distanceType == #DIST_L2 , the function runs the +algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library. + +In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function +finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical, +diagonal, or knight's move (the latest is available for a \f$5\times 5\f$ mask). The overall +distance is calculated as a sum of these basic distances. Since the distance function should be +symmetric, all of the horizontal and vertical shifts must have the same cost (denoted as a ), all +the diagonal shifts must have the same cost (denoted as `b`), and all knight's moves must have the +same cost (denoted as `c`). For the #DIST_C and #DIST_L1 types, the distance is calculated +precisely, whereas for #DIST_L2 (Euclidean distance) the distance can be calculated only with a +relative error (a \f$5\times 5\f$ mask gives more accurate results). For `a`,`b`, and `c`, OpenCV +uses the values suggested in the original paper: +- DIST_L1: `a = 1, b = 2` +- DIST_L2: + - `3 x 3`: `a=0.955, b=1.3693` + - `5 x 5`: `a=1, b=1.4, c=2.1969` +- DIST_C: `a = 1, b = 1` + +Typically, for a fast, coarse distance estimation #DIST_L2, a \f$3\times 3\f$ mask is used. For a +more accurate distance estimation #DIST_L2, a \f$5\times 5\f$ mask or the precise algorithm is used. +Note that both the precise and the approximate algorithms are linear on the number of pixels. + +This variant of the function does not only compute the minimum distance for each pixel \f$(x, y)\f$ +but also identifies the nearest connected component consisting of zero pixels +(labelType==#DIST_LABEL_CCOMP) or the nearest zero pixel (labelType==#DIST_LABEL_PIXEL). Index of the +component/pixel is stored in `labels(x, y)`. When labelType==#DIST_LABEL_CCOMP, the function +automatically finds connected components of zero pixels in the input image and marks them with +distinct labels. When labelType==#DIST_LABEL_CCOMP, the function scans through the input image and +marks all the zero pixels with distinct labels. + +In this mode, the complexity is still linear. That is, the function provides a very fast way to +compute the Voronoi diagram for a binary image. Currently, the second variant can use only the +approximate distance transform algorithm, i.e. maskSize=#DIST_MASK_PRECISE is not supported +yet. + +@param src 8-bit, single-channel (binary) source image. +@param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point, +single-channel image of the same size as src. +@param labels Output 2D array of labels (the discrete Voronoi diagram). It has the type +CV_32SC1 and the same size as src. +@param distanceType Type of distance, see #DistanceTypes +@param maskSize Size of the distance transform mask, see #DistanceTransformMasks. +#DIST_MASK_PRECISE is not supported by this variant. In case of the #DIST_L1 or #DIST_C distance type, +the parameter is forced to 3 because a \f$3\times 3\f$ mask gives the same result as \f$5\times +5\f$ or any larger aperture. +@param labelType Type of the label array to build, see #DistanceTransformLabelTypes. + */ +CV_EXPORTS_AS(distanceTransformWithLabels) void distanceTransform( InputArray src, OutputArray dst, + OutputArray labels, int distanceType, int maskSize, + int labelType = DIST_LABEL_CCOMP ); + +/** @overload +@param src 8-bit, single-channel (binary) source image. +@param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point, +single-channel image of the same size as src . +@param distanceType Type of distance, see #DistanceTypes +@param maskSize Size of the distance transform mask, see #DistanceTransformMasks. In case of the +#DIST_L1 or #DIST_C distance type, the parameter is forced to 3 because a \f$3\times 3\f$ mask gives +the same result as \f$5\times 5\f$ or any larger aperture. +@param dstType Type of output image. It can be CV_8U or CV_32F. Type CV_8U can be used only for +the first variant of the function and distanceType == #DIST_L1. +*/ +CV_EXPORTS_W void distanceTransform( InputArray src, OutputArray dst, + int distanceType, int maskSize, int dstType=CV_32F); + +/** @example samples/cpp/ffilldemo.cpp +An example using the FloodFill technique +*/ + +/** @overload + +variant without `mask` parameter +*/ +CV_EXPORTS int floodFill( InputOutputArray image, + Point seedPoint, Scalar newVal, CV_OUT Rect* rect = 0, + Scalar loDiff = Scalar(), Scalar upDiff = Scalar(), + int flags = 4 ); + +/** @brief Fills a connected component with the given color. + +The function cv::floodFill fills a connected component starting from the seed point with the specified +color. The connectivity is determined by the color/brightness closeness of the neighbor pixels. The +pixel at \f$(x,y)\f$ is considered to belong to the repainted domain if: + +- in case of a grayscale image and floating range +\f[\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\f] + + +- in case of a grayscale image and fixed range +\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\f] + + +- in case of a color image and floating range +\f[\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\f] +\f[\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\f] +and +\f[\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\f] + + +- in case of a color image and fixed range +\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\f] +\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\f] +and +\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\f] + + +where \f$src(x',y')\f$ is the value of one of pixel neighbors that is already known to belong to the +component. That is, to be added to the connected component, a color/brightness of the pixel should +be close enough to: +- Color/brightness of one of its neighbors that already belong to the connected component in case +of a floating range. +- Color/brightness of the seed point in case of a fixed range. + +Use these functions to either mark a connected component with the specified color in-place, or build +a mask and then extract the contour, or copy the region to another image, and so on. + +@param image Input/output 1- or 3-channel, 8-bit, or floating-point image. It is modified by the +function unless the #FLOODFILL_MASK_ONLY flag is set in the second variant of the function. See +the details below. +@param mask Operation mask that should be a single-channel 8-bit image, 2 pixels wider and 2 pixels +taller than image. Since this is both an input and output parameter, you must take responsibility +of initializing it. Flood-filling cannot go across non-zero pixels in the input mask. For example, +an edge detector output can be used as a mask to stop filling at edges. On output, pixels in the +mask corresponding to filled pixels in the image are set to 1 or to the a value specified in flags +as described below. Additionally, the function fills the border of the mask with ones to simplify +internal processing. It is therefore possible to use the same mask in multiple calls to the function +to make sure the filled areas do not overlap. +@param seedPoint Starting point. +@param newVal New value of the repainted domain pixels. +@param loDiff Maximal lower brightness/color difference between the currently observed pixel and +one of its neighbors belonging to the component, or a seed pixel being added to the component. +@param upDiff Maximal upper brightness/color difference between the currently observed pixel and +one of its neighbors belonging to the component, or a seed pixel being added to the component. +@param rect Optional output parameter set by the function to the minimum bounding rectangle of the +repainted domain. +@param flags Operation flags. The first 8 bits contain a connectivity value. The default value of +4 means that only the four nearest neighbor pixels (those that share an edge) are considered. A +connectivity value of 8 means that the eight nearest neighbor pixels (those that share a corner) +will be considered. The next 8 bits (8-16) contain a value between 1 and 255 with which to fill +the mask (the default value is 1). For example, 4 | ( 255 \<\< 8 ) will consider 4 nearest +neighbours and fill the mask with a value of 255. The following additional options occupy higher +bits and therefore may be further combined with the connectivity and mask fill values using +bit-wise or (|), see #FloodFillFlags. + +@note Since the mask is larger than the filled image, a pixel \f$(x, y)\f$ in image corresponds to the +pixel \f$(x+1, y+1)\f$ in the mask . + +@sa findContours + */ +CV_EXPORTS_W int floodFill( InputOutputArray image, InputOutputArray mask, + Point seedPoint, Scalar newVal, CV_OUT Rect* rect=0, + Scalar loDiff = Scalar(), Scalar upDiff = Scalar(), + int flags = 4 ); + +//! Performs linear blending of two images: +//! \f[ \texttt{dst}(i,j) = \texttt{weights1}(i,j)*\texttt{src1}(i,j) + \texttt{weights2}(i,j)*\texttt{src2}(i,j) \f] +//! @param src1 It has a type of CV_8UC(n) or CV_32FC(n), where n is a positive integer. +//! @param src2 It has the same type and size as src1. +//! @param weights1 It has a type of CV_32FC1 and the same size with src1. +//! @param weights2 It has a type of CV_32FC1 and the same size with src1. +//! @param dst It is created if it does not have the same size and type with src1. +CV_EXPORTS void blendLinear(InputArray src1, InputArray src2, InputArray weights1, InputArray weights2, OutputArray dst); + +//! @} imgproc_misc + +//! @addtogroup imgproc_color_conversions +//! @{ + +/** @brief Converts an image from one color space to another. + +The function converts an input image from one color space to another. In case of a transformation +to-from RGB color space, the order of the channels should be specified explicitly (RGB or BGR). Note +that the default color format in OpenCV is often referred to as RGB but it is actually BGR (the +bytes are reversed). So the first byte in a standard (24-bit) color image will be an 8-bit Blue +component, the second byte will be Green, and the third byte will be Red. The fourth, fifth, and +sixth bytes would then be the second pixel (Blue, then Green, then Red), and so on. + +The conventional ranges for R, G, and B channel values are: +- 0 to 255 for CV_8U images +- 0 to 65535 for CV_16U images +- 0 to 1 for CV_32F images + +In case of linear transformations, the range does not matter. But in case of a non-linear +transformation, an input RGB image should be normalized to the proper value range to get the correct +results, for example, for RGB \f$\rightarrow\f$ L\*u\*v\* transformation. For example, if you have a +32-bit floating-point image directly converted from an 8-bit image without any scaling, then it will +have the 0..255 value range instead of 0..1 assumed by the function. So, before calling #cvtColor , +you need first to scale the image down: +@code + img *= 1./255; + cvtColor(img, img, COLOR_BGR2Luv); +@endcode +If you use #cvtColor with 8-bit images, the conversion will have some information lost. For many +applications, this will not be noticeable but it is recommended to use 32-bit images in applications +that need the full range of colors or that convert an image before an operation and then convert +back. + +If conversion adds the alpha channel, its value will set to the maximum of corresponding channel +range: 255 for CV_8U, 65535 for CV_16U, 1 for CV_32F. + +@param src input image: 8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision +floating-point. +@param dst output image of the same size and depth as src. +@param code color space conversion code (see #ColorConversionCodes). +@param dstCn number of channels in the destination image; if the parameter is 0, the number of the +channels is derived automatically from src and code. + +@see @ref imgproc_color_conversions + */ +CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 ); + +/** @brief Converts an image from one color space to another where the source image is +stored in two planes. + +This function only supports YUV420 to RGB conversion as of now. + +@param src1: 8-bit image (#CV_8U) of the Y plane. +@param src2: image containing interleaved U/V plane. +@param dst: output image. +@param code: Specifies the type of conversion. It can take any of the following values: +- #COLOR_YUV2BGR_NV12 +- #COLOR_YUV2RGB_NV12 +- #COLOR_YUV2BGRA_NV12 +- #COLOR_YUV2RGBA_NV12 +- #COLOR_YUV2BGR_NV21 +- #COLOR_YUV2RGB_NV21 +- #COLOR_YUV2BGRA_NV21 +- #COLOR_YUV2RGBA_NV21 +*/ +CV_EXPORTS_W void cvtColorTwoPlane( InputArray src1, InputArray src2, OutputArray dst, int code ); + +/** @brief main function for all demosaicing processes + +@param src input image: 8-bit unsigned or 16-bit unsigned. +@param dst output image of the same size and depth as src. +@param code Color space conversion code (see the description below). +@param dstCn number of channels in the destination image; if the parameter is 0, the number of the +channels is derived automatically from src and code. + +The function can do the following transformations: + +- Demosaicing using bilinear interpolation + + #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR + + #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY + +- Demosaicing using Variable Number of Gradients. + + #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG + +- Edge-Aware Demosaicing. + + #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA + +- Demosaicing with alpha channel + + #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA + +@sa cvtColor +*/ +CV_EXPORTS_W void demosaicing(InputArray src, OutputArray dst, int code, int dstCn = 0); + +//! @} imgproc_color_conversions + +//! @addtogroup imgproc_shape +//! @{ + +/** @brief Calculates all of the moments up to the third order of a polygon or rasterized shape. + +The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The +results are returned in the structure cv::Moments. + +@param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array ( +\f$1 \times N\f$ or \f$N \times 1\f$ ) of 2D points (Point or Point2f ). +@param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is +used for images only. +@returns moments. + +@note Only applicable to contour moments calculations from Python bindings: Note that the numpy +type for the input array should be either np.int32 or np.float32. + +@sa contourArea, arcLength + */ +CV_EXPORTS_W Moments moments( InputArray array, bool binaryImage = false ); + +/** @brief Calculates seven Hu invariants. + +The function calculates seven Hu invariants (introduced in @cite Hu62; see also +) defined as: + +\f[\begin{array}{l} hu[0]= \eta _{20}+ \eta _{02} \\ hu[1]=( \eta _{20}- \eta _{02})^{2}+4 \eta _{11}^{2} \\ hu[2]=( \eta _{30}-3 \eta _{12})^{2}+ (3 \eta _{21}- \eta _{03})^{2} \\ hu[3]=( \eta _{30}+ \eta _{12})^{2}+ ( \eta _{21}+ \eta _{03})^{2} \\ hu[4]=( \eta _{30}-3 \eta _{12})( \eta _{30}+ \eta _{12})[( \eta _{30}+ \eta _{12})^{2}-3( \eta _{21}+ \eta _{03})^{2}]+(3 \eta _{21}- \eta _{03})( \eta _{21}+ \eta _{03})[3( \eta _{30}+ \eta _{12})^{2}-( \eta _{21}+ \eta _{03})^{2}] \\ hu[5]=( \eta _{20}- \eta _{02})[( \eta _{30}+ \eta _{12})^{2}- ( \eta _{21}+ \eta _{03})^{2}]+4 \eta _{11}( \eta _{30}+ \eta _{12})( \eta _{21}+ \eta _{03}) \\ hu[6]=(3 \eta _{21}- \eta _{03})( \eta _{21}+ \eta _{03})[3( \eta _{30}+ \eta _{12})^{2}-( \eta _{21}+ \eta _{03})^{2}]-( \eta _{30}-3 \eta _{12})( \eta _{21}+ \eta _{03})[3( \eta _{30}+ \eta _{12})^{2}-( \eta _{21}+ \eta _{03})^{2}] \\ \end{array}\f] + +where \f$\eta_{ji}\f$ stands for \f$\texttt{Moments::nu}_{ji}\f$ . + +These values are proved to be invariants to the image scale, rotation, and reflection except the +seventh one, whose sign is changed by reflection. This invariance is proved with the assumption of +infinite image resolution. In case of raster images, the computed Hu invariants for the original and +transformed images are a bit different. + +@param moments Input moments computed with moments . +@param hu Output Hu invariants. + +@sa matchShapes + */ +CV_EXPORTS void HuMoments( const Moments& moments, double hu[7] ); + +/** @overload */ +CV_EXPORTS_W void HuMoments( const Moments& m, OutputArray hu ); + +//! @} imgproc_shape + +//! @addtogroup imgproc_object +//! @{ + +//! type of the template matching operation +enum TemplateMatchModes { + TM_SQDIFF = 0, //!< \f[R(x,y)= \sum _{x',y'} (T(x',y')-I(x+x',y+y'))^2\f] + TM_SQDIFF_NORMED = 1, //!< \f[R(x,y)= \frac{\sum_{x',y'} (T(x',y')-I(x+x',y+y'))^2}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}}\f] + TM_CCORR = 2, //!< \f[R(x,y)= \sum _{x',y'} (T(x',y') \cdot I(x+x',y+y'))\f] + TM_CCORR_NORMED = 3, //!< \f[R(x,y)= \frac{\sum_{x',y'} (T(x',y') \cdot I(x+x',y+y'))}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}}\f] + TM_CCOEFF = 4, //!< \f[R(x,y)= \sum _{x',y'} (T'(x',y') \cdot I'(x+x',y+y'))\f] + //!< where + //!< \f[\begin{array}{l} T'(x',y')=T(x',y') - 1/(w \cdot h) \cdot \sum _{x'',y''} T(x'',y'') \\ I'(x+x',y+y')=I(x+x',y+y') - 1/(w \cdot h) \cdot \sum _{x'',y''} I(x+x'',y+y'') \end{array}\f] + TM_CCOEFF_NORMED = 5 //!< \f[R(x,y)= \frac{ \sum_{x',y'} (T'(x',y') \cdot I'(x+x',y+y')) }{ \sqrt{\sum_{x',y'}T'(x',y')^2 \cdot \sum_{x',y'} I'(x+x',y+y')^2} }\f] +}; + +/** @example samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp +An example using Template Matching algorithm +*/ + +/** @brief Compares a template against overlapped image regions. + +The function slides through image , compares the overlapped patches of size \f$w \times h\f$ against +templ using the specified method and stores the comparison results in result . Here are the formulae +for the available comparison methods ( \f$I\f$ denotes image, \f$T\f$ template, \f$R\f$ result ). The summation +is done over template and/or the image patch: \f$x' = 0...w-1, y' = 0...h-1\f$ + +After the function finishes the comparison, the best matches can be found as global minimums (when +#TM_SQDIFF was used) or maximums (when #TM_CCORR or #TM_CCOEFF was used) using the +#minMaxLoc function. In case of a color image, template summation in the numerator and each sum in +the denominator is done over all of the channels and separate mean values are used for each channel. +That is, the function can take a color template and a color image. The result will still be a +single-channel image, which is easier to analyze. + +@param image Image where the search is running. It must be 8-bit or 32-bit floating-point. +@param templ Searched template. It must be not greater than the source image and have the same +data type. +@param result Map of comparison results. It must be single-channel 32-bit floating-point. If image +is \f$W \times H\f$ and templ is \f$w \times h\f$ , then result is \f$(W-w+1) \times (H-h+1)\f$ . +@param method Parameter specifying the comparison method, see #TemplateMatchModes +@param mask Mask of searched template. It must have the same datatype and size with templ. It is +not set by default. Currently, only the #TM_SQDIFF and #TM_CCORR_NORMED methods are supported. + */ +CV_EXPORTS_W void matchTemplate( InputArray image, InputArray templ, + OutputArray result, int method, InputArray mask = noArray() ); + +//! @} + +//! @addtogroup imgproc_shape +//! @{ + +/** @example samples/cpp/connected_components.cpp +This program demonstrates connected components and use of the trackbar +*/ + +/** @brief computes the connected components labeled image of boolean image + +image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0 +represents the background label. ltype specifies the output label image type, an important +consideration based on the total number of labels or alternatively the total number of pixels in +the source image. ccltype specifies the connected components labeling algorithm to use, currently +Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes +for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not. +This function uses parallel version of both Grana and Wu's algorithms if at least one allowed +parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs. + +@param image the 8-bit single-channel image to be labeled +@param labels destination labeled image +@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively +@param ltype output image label type. Currently CV_32S and CV_16U are supported. +@param ccltype connected components algorithm type (see the #ConnectedComponentsAlgorithmsTypes). +*/ +CV_EXPORTS_AS(connectedComponentsWithAlgorithm) int connectedComponents(InputArray image, OutputArray labels, + int connectivity, int ltype, int ccltype); + + +/** @overload + +@param image the 8-bit single-channel image to be labeled +@param labels destination labeled image +@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively +@param ltype output image label type. Currently CV_32S and CV_16U are supported. +*/ +CV_EXPORTS_W int connectedComponents(InputArray image, OutputArray labels, + int connectivity = 8, int ltype = CV_32S); + + +/** @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label + +image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0 +represents the background label. ltype specifies the output label image type, an important +consideration based on the total number of labels or alternatively the total number of pixels in +the source image. ccltype specifies the connected components labeling algorithm to use, currently +Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes +for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not. +This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed +parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs. + +@param image the 8-bit single-channel image to be labeled +@param labels destination labeled image +@param stats statistics output for each label, including the background label, see below for +available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of +#ConnectedComponentsTypes. The data type is CV_32S. +@param centroids centroid output for each label, including the background label. Centroids are +accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F. +@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively +@param ltype output image label type. Currently CV_32S and CV_16U are supported. +@param ccltype connected components algorithm type (see #ConnectedComponentsAlgorithmsTypes). +*/ +CV_EXPORTS_AS(connectedComponentsWithStatsWithAlgorithm) int connectedComponentsWithStats(InputArray image, OutputArray labels, + OutputArray stats, OutputArray centroids, + int connectivity, int ltype, int ccltype); + +/** @overload +@param image the 8-bit single-channel image to be labeled +@param labels destination labeled image +@param stats statistics output for each label, including the background label, see below for +available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of +#ConnectedComponentsTypes. The data type is CV_32S. +@param centroids centroid output for each label, including the background label. Centroids are +accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F. +@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively +@param ltype output image label type. Currently CV_32S and CV_16U are supported. +*/ +CV_EXPORTS_W int connectedComponentsWithStats(InputArray image, OutputArray labels, + OutputArray stats, OutputArray centroids, + int connectivity = 8, int ltype = CV_32S); + + +/** @brief Finds contours in a binary image. + +The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours +are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the +OpenCV sample directory. +@note Since opencv 3.2 source image is not modified by this function. + +@param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero +pixels remain 0's, so the image is treated as binary . You can use #compare, #inRange, #threshold , +#adaptiveThreshold, #Canny, and others to create a binary image out of a grayscale or color one. +If mode equals to #RETR_CCOMP or #RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1). +@param contours Detected contours. Each contour is stored as a vector of points (e.g. +std::vector >). +@param hierarchy Optional output vector (e.g. std::vector), containing information about the image topology. It has +as many elements as the number of contours. For each i-th contour contours[i], the elements +hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices +in contours of the next and previous contours at the same hierarchical level, the first child +contour and the parent contour, respectively. If for the contour i there are no next, previous, +parent, or nested contours, the corresponding elements of hierarchy[i] will be negative. +@param mode Contour retrieval mode, see #RetrievalModes +@param method Contour approximation method, see #ContourApproximationModes +@param offset Optional offset by which every contour point is shifted. This is useful if the +contours are extracted from the image ROI and then they should be analyzed in the whole image +context. + */ +CV_EXPORTS_W void findContours( InputArray image, OutputArrayOfArrays contours, + OutputArray hierarchy, int mode, + int method, Point offset = Point()); + +/** @overload */ +CV_EXPORTS void findContours( InputArray image, OutputArrayOfArrays contours, + int mode, int method, Point offset = Point()); + +/** @example samples/cpp/squares.cpp +A program using pyramid scaling, Canny, contours and contour simplification to find +squares in a list of images (pic1-6.png). Returns sequence of squares detected on the image. +*/ + +/** @example samples/tapi/squares.cpp +A program using pyramid scaling, Canny, contours and contour simplification to find +squares in the input image. +*/ + +/** @brief Approximates a polygonal curve(s) with the specified precision. + +The function cv::approxPolyDP approximates a curve or a polygon with another curve/polygon with less +vertices so that the distance between them is less or equal to the specified precision. It uses the +Douglas-Peucker algorithm + +@param curve Input vector of a 2D point stored in std::vector or Mat +@param approxCurve Result of the approximation. The type should match the type of the input curve. +@param epsilon Parameter specifying the approximation accuracy. This is the maximum distance +between the original curve and its approximation. +@param closed If true, the approximated curve is closed (its first and last vertices are +connected). Otherwise, it is not closed. + */ +CV_EXPORTS_W void approxPolyDP( InputArray curve, + OutputArray approxCurve, + double epsilon, bool closed ); + +/** @brief Calculates a contour perimeter or a curve length. + +The function computes a curve length or a closed contour perimeter. + +@param curve Input vector of 2D points, stored in std::vector or Mat. +@param closed Flag indicating whether the curve is closed or not. + */ +CV_EXPORTS_W double arcLength( InputArray curve, bool closed ); + +/** @brief Calculates the up-right bounding rectangle of a point set or non-zero pixels of gray-scale image. + +The function calculates and returns the minimal up-right bounding rectangle for the specified point set or +non-zero pixels of gray-scale image. + +@param array Input gray-scale image or 2D point set, stored in std::vector or Mat. + */ +CV_EXPORTS_W Rect boundingRect( InputArray array ); + +/** @brief Calculates a contour area. + +The function computes a contour area. Similarly to moments , the area is computed using the Green +formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using +#drawContours or #fillPoly , can be different. Also, the function will most certainly give a wrong +results for contours with self-intersections. + +Example: +@code + vector contour; + contour.push_back(Point2f(0, 0)); + contour.push_back(Point2f(10, 0)); + contour.push_back(Point2f(10, 10)); + contour.push_back(Point2f(5, 4)); + + double area0 = contourArea(contour); + vector approx; + approxPolyDP(contour, approx, 5, true); + double area1 = contourArea(approx); + + cout << "area0 =" << area0 << endl << + "area1 =" << area1 << endl << + "approx poly vertices" << approx.size() << endl; +@endcode +@param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat. +@param oriented Oriented area flag. If it is true, the function returns a signed area value, +depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can +determine orientation of a contour by taking the sign of an area. By default, the parameter is +false, which means that the absolute value is returned. + */ +CV_EXPORTS_W double contourArea( InputArray contour, bool oriented = false ); + +/** @brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set. + +The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a +specified point set. Developer should keep in mind that the returned RotatedRect can contain negative +indices when data is close to the containing Mat element boundary. + +@param points Input vector of 2D points, stored in std::vector\<\> or Mat + */ +CV_EXPORTS_W RotatedRect minAreaRect( InputArray points ); + +/** @brief Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle. + +The function finds the four vertices of a rotated rectangle. This function is useful to draw the +rectangle. In C++, instead of using this function, you can directly use RotatedRect::points method. Please +visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information. + +@param box The input rotated rectangle. It may be the output of +@param points The output array of four vertices of rectangles. + */ +CV_EXPORTS_W void boxPoints(RotatedRect box, OutputArray points); + +/** @brief Finds a circle of the minimum area enclosing a 2D point set. + +The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm. + +@param points Input vector of 2D points, stored in std::vector\<\> or Mat +@param center Output center of the circle. +@param radius Output radius of the circle. + */ +CV_EXPORTS_W void minEnclosingCircle( InputArray points, + CV_OUT Point2f& center, CV_OUT float& radius ); + +/** @example samples/cpp/minarea.cpp +*/ + +/** @brief Finds a triangle of minimum area enclosing a 2D point set and returns its area. + +The function finds a triangle of minimum area enclosing the given set of 2D points and returns its +area. The output for a given 2D point set is shown in the image below. 2D points are depicted in +*red* and the enclosing triangle in *yellow*. + +![Sample output of the minimum enclosing triangle function](pics/minenclosingtriangle.png) + +The implementation of the algorithm is based on O'Rourke's @cite ORourke86 and Klee and Laskowski's +@cite KleeLaskowski85 papers. O'Rourke provides a \f$\theta(n)\f$ algorithm for finding the minimal +enclosing triangle of a 2D convex polygon with n vertices. Since the #minEnclosingTriangle function +takes a 2D point set as input an additional preprocessing step of computing the convex hull of the +2D point set is required. The complexity of the #convexHull function is \f$O(n log(n))\f$ which is higher +than \f$\theta(n)\f$. Thus the overall complexity of the function is \f$O(n log(n))\f$. + +@param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector\<\> or Mat +@param triangle Output vector of three 2D points defining the vertices of the triangle. The depth +of the OutputArray must be CV_32F. + */ +CV_EXPORTS_W double minEnclosingTriangle( InputArray points, CV_OUT OutputArray triangle ); + +/** @brief Compares two shapes. + +The function compares two shapes. All three implemented methods use the Hu invariants (see #HuMoments) + +@param contour1 First contour or grayscale image. +@param contour2 Second contour or grayscale image. +@param method Comparison method, see #ShapeMatchModes +@param parameter Method-specific parameter (not supported now). + */ +CV_EXPORTS_W double matchShapes( InputArray contour1, InputArray contour2, + int method, double parameter ); + +/** @example samples/cpp/convexhull.cpp +An example using the convexHull functionality +*/ + +/** @brief Finds the convex hull of a point set. + +The function cv::convexHull finds the convex hull of a 2D point set using the Sklansky's algorithm @cite Sklansky82 +that has *O(N logN)* complexity in the current implementation. + +@param points Input 2D point set, stored in std::vector or Mat. +@param hull Output convex hull. It is either an integer vector of indices or vector of points. In +the first case, the hull elements are 0-based indices of the convex hull points in the original +array (since the set of convex hull points is a subset of the original point set). In the second +case, hull elements are the convex hull points themselves. +@param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise. +Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing +to the right, and its Y axis pointing upwards. +@param returnPoints Operation flag. In case of a matrix, when the flag is true, the function +returns convex hull points. Otherwise, it returns indices of the convex hull points. When the +output array is std::vector, the flag is ignored, and the output depends on the type of the +vector: std::vector\ implies returnPoints=false, std::vector\ implies +returnPoints=true. + +@note `points` and `hull` should be different arrays, inplace processing isn't supported. + +Check @ref tutorial_hull "the corresponding tutorial" for more details. + +useful links: + +https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/ + */ +CV_EXPORTS_W void convexHull( InputArray points, OutputArray hull, + bool clockwise = false, bool returnPoints = true ); + +/** @brief Finds the convexity defects of a contour. + +The figure below displays convexity defects of a hand contour: + +![image](pics/defects.png) + +@param contour Input contour. +@param convexhull Convex hull obtained using convexHull that should contain indices of the contour +points that make the hull. +@param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java +interface each convexity defect is represented as 4-element integer vector (a.k.a. #Vec4i): +(start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices +in the original contour of the convexity defect beginning, end and the farthest point, and +fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the +farthest contour point and the hull. That is, to get the floating-point value of the depth will be +fixpt_depth/256.0. + */ +CV_EXPORTS_W void convexityDefects( InputArray contour, InputArray convexhull, OutputArray convexityDefects ); + +/** @brief Tests a contour convexity. + +The function tests whether the input contour is convex or not. The contour must be simple, that is, +without self-intersections. Otherwise, the function output is undefined. + +@param contour Input vector of 2D points, stored in std::vector\<\> or Mat + */ +CV_EXPORTS_W bool isContourConvex( InputArray contour ); + +//! finds intersection of two convex polygons +CV_EXPORTS_W float intersectConvexConvex( InputArray _p1, InputArray _p2, + OutputArray _p12, bool handleNested = true ); + +/** @example samples/cpp/fitellipse.cpp +An example using the fitEllipse technique +*/ + +/** @brief Fits an ellipse around a set of 2D points. + +The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of +all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm described by @cite Fitzgibbon95 +is used. Developer should keep in mind that it is possible that the returned +ellipse/rotatedRect data contains negative indices, due to the data points being close to the +border of the containing Mat element. + +@param points Input 2D point set, stored in std::vector\<\> or Mat + */ +CV_EXPORTS_W RotatedRect fitEllipse( InputArray points ); + +/** @brief Fits an ellipse around a set of 2D points. + + The function calculates the ellipse that fits a set of 2D points. + It returns the rotated rectangle in which the ellipse is inscribed. + The Approximate Mean Square (AMS) proposed by @cite Taubin1991 is used. + + For an ellipse, this basis set is \f$ \chi= \left(x^2, x y, y^2, x, y, 1\right) \f$, + which is a set of six free coefficients \f$ A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} \f$. + However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \f$ (a,b) \f$, + the position \f$ (x_0,y_0) \f$, and the orientation \f$ \theta \f$. This is because the basis set includes lines, + quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits. + If the fit is found to be a parabolic or hyperbolic function then the standard #fitEllipse method is used. + The AMS method restricts the fit to parabolic, hyperbolic and elliptical curves + by imposing the condition that \f$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 \f$ where + the matrices \f$ Dx \f$ and \f$ Dy \f$ are the partial derivatives of the design matrix \f$ D \f$ with + respect to x and y. The matrices are formed row by row applying the following to + each of the points in the set: + \f{align*}{ + D(i,:)&=\left\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\right\} & + D_x(i,:)&=\left\{2 x_i,y_i,0,1,0,0\right\} & + D_y(i,:)&=\left\{0,x_i,2 y_i,0,1,0\right\} + \f} + The AMS method minimizes the cost function + \f{equation*}{ + \epsilon ^2=\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T } + \f} + + The minimum cost is found by solving the generalized eigenvalue problem. + + \f{equation*}{ + D^T D A = \lambda \left( D_x^T D_x + D_y^T D_y\right) A + \f} + + @param points Input 2D point set, stored in std::vector\<\> or Mat + */ +CV_EXPORTS_W RotatedRect fitEllipseAMS( InputArray points ); + + +/** @brief Fits an ellipse around a set of 2D points. + + The function calculates the ellipse that fits a set of 2D points. + It returns the rotated rectangle in which the ellipse is inscribed. + The Direct least square (Direct) method by @cite Fitzgibbon1999 is used. + + For an ellipse, this basis set is \f$ \chi= \left(x^2, x y, y^2, x, y, 1\right) \f$, + which is a set of six free coefficients \f$ A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} \f$. + However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \f$ (a,b) \f$, + the position \f$ (x_0,y_0) \f$, and the orientation \f$ \theta \f$. This is because the basis set includes lines, + quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits. + The Direct method confines the fit to ellipses by ensuring that \f$ 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \f$. + The condition imposed is that \f$ 4 A_{xx} A_{yy}- A_{xy}^2=1 \f$ which satisfies the inequality + and as the coefficients can be arbitrarily scaled is not overly restrictive. + + \f{equation*}{ + \epsilon ^2= A^T D^T D A \quad \text{with} \quad A^T C A =1 \quad \text{and} \quad C=\left(\begin{matrix} + 0 & 0 & 2 & 0 & 0 & 0 \\ + 0 & -1 & 0 & 0 & 0 & 0 \\ + 2 & 0 & 0 & 0 & 0 & 0 \\ + 0 & 0 & 0 & 0 & 0 & 0 \\ + 0 & 0 & 0 & 0 & 0 & 0 \\ + 0 & 0 & 0 & 0 & 0 & 0 + \end{matrix} \right) + \f} + + The minimum cost is found by solving the generalized eigenvalue problem. + + \f{equation*}{ + D^T D A = \lambda \left( C\right) A + \f} + + The system produces only one positive eigenvalue \f$ \lambda\f$ which is chosen as the solution + with its eigenvector \f$\mathbf{u}\f$. These are used to find the coefficients + + \f{equation*}{ + A = \sqrt{\frac{1}{\mathbf{u}^T C \mathbf{u}}} \mathbf{u} + \f} + The scaling factor guarantees that \f$A^T C A =1\f$. + + @param points Input 2D point set, stored in std::vector\<\> or Mat + */ +CV_EXPORTS_W RotatedRect fitEllipseDirect( InputArray points ); + +/** @brief Fits a line to a 2D or 3D point set. + +The function fitLine fits a line to a 2D or 3D point set by minimizing \f$\sum_i \rho(r_i)\f$ where +\f$r_i\f$ is a distance between the \f$i^{th}\f$ point, the line and \f$\rho(r)\f$ is a distance function, one +of the following: +- DIST_L2 +\f[\rho (r) = r^2/2 \quad \text{(the simplest and the fastest least-squares method)}\f] +- DIST_L1 +\f[\rho (r) = r\f] +- DIST_L12 +\f[\rho (r) = 2 \cdot ( \sqrt{1 + \frac{r^2}{2}} - 1)\f] +- DIST_FAIR +\f[\rho \left (r \right ) = C^2 \cdot \left ( \frac{r}{C} - \log{\left(1 + \frac{r}{C}\right)} \right ) \quad \text{where} \quad C=1.3998\f] +- DIST_WELSCH +\f[\rho \left (r \right ) = \frac{C^2}{2} \cdot \left ( 1 - \exp{\left(-\left(\frac{r}{C}\right)^2\right)} \right ) \quad \text{where} \quad C=2.9846\f] +- DIST_HUBER +\f[\rho (r) = \fork{r^2/2}{if \(r < C\)}{C \cdot (r-C/2)}{otherwise} \quad \text{where} \quad C=1.345\f] + +The algorithm is based on the M-estimator ( ) technique +that iteratively fits the line using the weighted least-squares algorithm. After each iteration the +weights \f$w_i\f$ are adjusted to be inversely proportional to \f$\rho(r_i)\f$ . + +@param points Input vector of 2D or 3D points, stored in std::vector\<\> or Mat. +@param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements +(like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and +(x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like +Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line +and (x0, y0, z0) is a point on the line. +@param distType Distance used by the M-estimator, see #DistanceTypes +@param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value +is chosen. +@param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line). +@param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps. + */ +CV_EXPORTS_W void fitLine( InputArray points, OutputArray line, int distType, + double param, double reps, double aeps ); + +/** @brief Performs a point-in-contour test. + +The function determines whether the point is inside a contour, outside, or lies on an edge (or +coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge) +value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively. +Otherwise, the return value is a signed distance between the point and the nearest contour edge. + +See below a sample output of the function where each image pixel is tested against the contour: + +![sample output](pics/pointpolygon.png) + +@param contour Input contour. +@param pt Point tested against the contour. +@param measureDist If true, the function estimates the signed distance from the point to the +nearest contour edge. Otherwise, the function only checks if the point is inside a contour or not. + */ +CV_EXPORTS_W double pointPolygonTest( InputArray contour, Point2f pt, bool measureDist ); + +/** @brief Finds out if there is any intersection between two rotated rectangles. + +If there is then the vertices of the intersecting region are returned as well. + +Below are some examples of intersection configurations. The hatched pattern indicates the +intersecting region and the red vertices are returned by the function. + +![intersection examples](pics/intersection.png) + +@param rect1 First rectangle +@param rect2 Second rectangle +@param intersectingRegion The output array of the vertices of the intersecting region. It returns +at most 8 vertices. Stored as std::vector\ or cv::Mat as Mx1 of type CV_32FC2. +@returns One of #RectanglesIntersectTypes + */ +CV_EXPORTS_W int rotatedRectangleIntersection( const RotatedRect& rect1, const RotatedRect& rect2, OutputArray intersectingRegion ); + +/** @brief Creates a smart pointer to a cv::GeneralizedHoughBallard class and initializes it. +*/ +CV_EXPORTS Ptr createGeneralizedHoughBallard(); + +/** @brief Creates a smart pointer to a cv::GeneralizedHoughGuil class and initializes it. +*/ +CV_EXPORTS Ptr createGeneralizedHoughGuil(); + +//! @} imgproc_shape + +//! @addtogroup imgproc_colormap +//! @{ + +//! GNU Octave/MATLAB equivalent colormaps +enum ColormapTypes +{ + COLORMAP_AUTUMN = 0, //!< ![autumn](pics/colormaps/colorscale_autumn.jpg) + COLORMAP_BONE = 1, //!< ![bone](pics/colormaps/colorscale_bone.jpg) + COLORMAP_JET = 2, //!< ![jet](pics/colormaps/colorscale_jet.jpg) + COLORMAP_WINTER = 3, //!< ![winter](pics/colormaps/colorscale_winter.jpg) + COLORMAP_RAINBOW = 4, //!< ![rainbow](pics/colormaps/colorscale_rainbow.jpg) + COLORMAP_OCEAN = 5, //!< ![ocean](pics/colormaps/colorscale_ocean.jpg) + COLORMAP_SUMMER = 6, //!< ![summer](pics/colormaps/colorscale_summer.jpg) + COLORMAP_SPRING = 7, //!< ![spring](pics/colormaps/colorscale_spring.jpg) + COLORMAP_COOL = 8, //!< ![cool](pics/colormaps/colorscale_cool.jpg) + COLORMAP_HSV = 9, //!< ![HSV](pics/colormaps/colorscale_hsv.jpg) + COLORMAP_PINK = 10, //!< ![pink](pics/colormaps/colorscale_pink.jpg) + COLORMAP_HOT = 11, //!< ![hot](pics/colormaps/colorscale_hot.jpg) + COLORMAP_PARULA = 12, //!< ![parula](pics/colormaps/colorscale_parula.jpg) + COLORMAP_MAGMA = 13, //!< ![magma](pics/colormaps/colorscale_magma.jpg) + COLORMAP_INFERNO = 14, //!< ![inferno](pics/colormaps/colorscale_inferno.jpg) + COLORMAP_PLASMA = 15, //!< ![plasma](pics/colormaps/colorscale_plasma.jpg) + COLORMAP_VIRIDIS = 16, //!< ![viridis](pics/colormaps/colorscale_viridis.jpg) + COLORMAP_CIVIDIS = 17, //!< ![cividis](pics/colormaps/colorscale_cividis.jpg) + COLORMAP_TWILIGHT = 18, //!< ![twilight](pics/colormaps/colorscale_twilight.jpg) + COLORMAP_TWILIGHT_SHIFTED = 19 //!< ![twilight shifted](pics/colormaps/colorscale_twilight_shifted.jpg) +}; + +/** @example samples/cpp/falsecolor.cpp +An example using applyColorMap function +*/ + +/** @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image. + +@param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3. +@param dst The result is the colormapped source image. Note: Mat::create is called on dst. +@param colormap The colormap to apply, see #ColormapTypes +*/ +CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap); + +/** @brief Applies a user colormap on a given image. + +@param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3. +@param dst The result is the colormapped source image. Note: Mat::create is called on dst. +@param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256 +*/ +CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, InputArray userColor); + +//! @} imgproc_colormap + +//! @addtogroup imgproc_draw +//! @{ + + +/** OpenCV color channel order is BGR[A] */ +#define CV_RGB(r, g, b) cv::Scalar((b), (g), (r), 0) + +/** @brief Draws a line segment connecting two points. + +The function line draws the line segment between pt1 and pt2 points in the image. The line is +clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected +or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased +lines are drawn using Gaussian filtering. + +@param img Image. +@param pt1 First point of the line segment. +@param pt2 Second point of the line segment. +@param color Line color. +@param thickness Line thickness. +@param lineType Type of the line. See #LineTypes. +@param shift Number of fractional bits in the point coordinates. + */ +CV_EXPORTS_W void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, + int thickness = 1, int lineType = LINE_8, int shift = 0); + +/** @brief Draws a arrow segment pointing from the first point to the second one. + +The function cv::arrowedLine draws an arrow between pt1 and pt2 points in the image. See also #line. + +@param img Image. +@param pt1 The point the arrow starts from. +@param pt2 The point the arrow points to. +@param color Line color. +@param thickness Line thickness. +@param line_type Type of the line. See #LineTypes +@param shift Number of fractional bits in the point coordinates. +@param tipLength The length of the arrow tip in relation to the arrow length + */ +CV_EXPORTS_W void arrowedLine(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, + int thickness=1, int line_type=8, int shift=0, double tipLength=0.1); + +/** @brief Draws a simple, thick, or filled up-right rectangle. + +The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners +are pt1 and pt2. + +@param img Image. +@param pt1 Vertex of the rectangle. +@param pt2 Vertex of the rectangle opposite to pt1 . +@param color Rectangle color or brightness (grayscale image). +@param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED, +mean that the function has to draw a filled rectangle. +@param lineType Type of the line. See #LineTypes +@param shift Number of fractional bits in the point coordinates. + */ +CV_EXPORTS_W void rectangle(InputOutputArray img, Point pt1, Point pt2, + const Scalar& color, int thickness = 1, + int lineType = LINE_8, int shift = 0); + +/** @overload + +use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and +r.br()-Point(1,1)` are opposite corners +*/ +CV_EXPORTS_W void rectangle(InputOutputArray img, Rect rec, + const Scalar& color, int thickness = 1, + int lineType = LINE_8, int shift = 0); + +/** @example samples/cpp/tutorial_code/ImgProc/basic_drawing/Drawing_2.cpp +An example using drawing functions +*/ + +/** @brief Draws a circle. + +The function cv::circle draws a simple or filled circle with a given center and radius. +@param img Image where the circle is drawn. +@param center Center of the circle. +@param radius Radius of the circle. +@param color Circle color. +@param thickness Thickness of the circle outline, if positive. Negative values, like #FILLED, +mean that a filled circle is to be drawn. +@param lineType Type of the circle boundary. See #LineTypes +@param shift Number of fractional bits in the coordinates of the center and in the radius value. + */ +CV_EXPORTS_W void circle(InputOutputArray img, Point center, int radius, + const Scalar& color, int thickness = 1, + int lineType = LINE_8, int shift = 0); + +/** @brief Draws a simple or thick elliptic arc or fills an ellipse sector. + +The function cv::ellipse with more parameters draws an ellipse outline, a filled ellipse, an elliptic +arc, or a filled ellipse sector. The drawing code uses general parametric form. +A piecewise-linear curve is used to approximate the elliptic arc +boundary. If you need more control of the ellipse rendering, you can retrieve the curve using +#ellipse2Poly and then render it with #polylines or fill it with #fillPoly. If you use the first +variant of the function and want to draw the whole ellipse, not an arc, pass `startAngle=0` and +`endAngle=360`. If `startAngle` is greater than `endAngle`, they are swapped. The figure below explains +the meaning of the parameters to draw the blue arc. + +![Parameters of Elliptic Arc](pics/ellipse.svg) + +@param img Image. +@param center Center of the ellipse. +@param axes Half of the size of the ellipse main axes. +@param angle Ellipse rotation angle in degrees. +@param startAngle Starting angle of the elliptic arc in degrees. +@param endAngle Ending angle of the elliptic arc in degrees. +@param color Ellipse color. +@param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that +a filled ellipse sector is to be drawn. +@param lineType Type of the ellipse boundary. See #LineTypes +@param shift Number of fractional bits in the coordinates of the center and values of axes. + */ +CV_EXPORTS_W void ellipse(InputOutputArray img, Point center, Size axes, + double angle, double startAngle, double endAngle, + const Scalar& color, int thickness = 1, + int lineType = LINE_8, int shift = 0); + +/** @overload +@param img Image. +@param box Alternative ellipse representation via RotatedRect. This means that the function draws +an ellipse inscribed in the rotated rectangle. +@param color Ellipse color. +@param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that +a filled ellipse sector is to be drawn. +@param lineType Type of the ellipse boundary. See #LineTypes +*/ +CV_EXPORTS_W void ellipse(InputOutputArray img, const RotatedRect& box, const Scalar& color, + int thickness = 1, int lineType = LINE_8); + +/* ----------------------------------------------------------------------------------------- */ +/* ADDING A SET OF PREDEFINED MARKERS WHICH COULD BE USED TO HIGHLIGHT POSITIONS IN AN IMAGE */ +/* ----------------------------------------------------------------------------------------- */ + +/** @brief Draws a marker on a predefined position in an image. + +The function cv::drawMarker draws a marker on a given position in the image. For the moment several +marker types are supported, see #MarkerTypes for more information. + +@param img Image. +@param position The point where the crosshair is positioned. +@param color Line color. +@param markerType The specific type of marker you want to use, see #MarkerTypes +@param thickness Line thickness. +@param line_type Type of the line, See #LineTypes +@param markerSize The length of the marker axis [default = 20 pixels] + */ +CV_EXPORTS_W void drawMarker(InputOutputArray img, Point position, const Scalar& color, + int markerType = MARKER_CROSS, int markerSize=20, int thickness=1, + int line_type=8); + +/* ----------------------------------------------------------------------------------------- */ +/* END OF MARKER SECTION */ +/* ----------------------------------------------------------------------------------------- */ + +/** @overload */ +CV_EXPORTS void fillConvexPoly(InputOutputArray img, const Point* pts, int npts, + const Scalar& color, int lineType = LINE_8, + int shift = 0); + +/** @brief Fills a convex polygon. + +The function cv::fillConvexPoly draws a filled convex polygon. This function is much faster than the +function #fillPoly . It can fill not only convex polygons but any monotonic polygon without +self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line) +twice at the most (though, its top-most and/or the bottom edge could be horizontal). + +@param img Image. +@param points Polygon vertices. +@param color Polygon color. +@param lineType Type of the polygon boundaries. See #LineTypes +@param shift Number of fractional bits in the vertex coordinates. + */ +CV_EXPORTS_W void fillConvexPoly(InputOutputArray img, InputArray points, + const Scalar& color, int lineType = LINE_8, + int shift = 0); + +/** @overload */ +CV_EXPORTS void fillPoly(InputOutputArray img, const Point** pts, + const int* npts, int ncontours, + const Scalar& color, int lineType = LINE_8, int shift = 0, + Point offset = Point() ); + +/** @example samples/cpp/tutorial_code/ImgProc/basic_drawing/Drawing_1.cpp +An example using drawing functions +Check @ref tutorial_random_generator_and_text "the corresponding tutorial" for more details +*/ + +/** @brief Fills the area bounded by one or more polygons. + +The function cv::fillPoly fills an area bounded by several polygonal contours. The function can fill +complex areas, for example, areas with holes, contours with self-intersections (some of their +parts), and so forth. + +@param img Image. +@param pts Array of polygons where each polygon is represented as an array of points. +@param color Polygon color. +@param lineType Type of the polygon boundaries. See #LineTypes +@param shift Number of fractional bits in the vertex coordinates. +@param offset Optional offset of all points of the contours. + */ +CV_EXPORTS_W void fillPoly(InputOutputArray img, InputArrayOfArrays pts, + const Scalar& color, int lineType = LINE_8, int shift = 0, + Point offset = Point() ); + +/** @overload */ +CV_EXPORTS void polylines(InputOutputArray img, const Point* const* pts, const int* npts, + int ncontours, bool isClosed, const Scalar& color, + int thickness = 1, int lineType = LINE_8, int shift = 0 ); + +/** @brief Draws several polygonal curves. + +@param img Image. +@param pts Array of polygonal curves. +@param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed, +the function draws a line from the last vertex of each curve to its first vertex. +@param color Polyline color. +@param thickness Thickness of the polyline edges. +@param lineType Type of the line segments. See #LineTypes +@param shift Number of fractional bits in the vertex coordinates. + +The function cv::polylines draws one or more polygonal curves. + */ +CV_EXPORTS_W void polylines(InputOutputArray img, InputArrayOfArrays pts, + bool isClosed, const Scalar& color, + int thickness = 1, int lineType = LINE_8, int shift = 0 ); + +/** @example samples/cpp/contours2.cpp +An example program illustrates the use of cv::findContours and cv::drawContours +\image html WindowsQtContoursOutput.png "Screenshot of the program" +*/ + +/** @example samples/cpp/segment_objects.cpp +An example using drawContours to clean up a background segmentation result +*/ + +/** @brief Draws contours outlines or filled contours. + +The function draws contour outlines in the image if \f$\texttt{thickness} \ge 0\f$ or fills the area +bounded by the contours if \f$\texttt{thickness}<0\f$ . The example below shows how to retrieve +connected components from the binary image and label them: : +@include snippets/imgproc_drawContours.cpp + +@param image Destination image. +@param contours All the input contours. Each contour is stored as a point vector. +@param contourIdx Parameter indicating a contour to draw. If it is negative, all the contours are drawn. +@param color Color of the contours. +@param thickness Thickness of lines the contours are drawn with. If it is negative (for example, +thickness=#FILLED ), the contour interiors are drawn. +@param lineType Line connectivity. See #LineTypes +@param hierarchy Optional information about hierarchy. It is only needed if you want to draw only +some of the contours (see maxLevel ). +@param maxLevel Maximal level for drawn contours. If it is 0, only the specified contour is drawn. +If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function +draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This +parameter is only taken into account when there is hierarchy available. +@param offset Optional contour shift parameter. Shift all the drawn contours by the specified +\f$\texttt{offset}=(dx,dy)\f$ . +@note When thickness=#FILLED, the function is designed to handle connected components with holes correctly +even when no hierarchy date is provided. This is done by analyzing all the outlines together +using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved +contours. In order to solve this problem, you need to call #drawContours separately for each sub-group +of contours, or iterate over the collection using contourIdx parameter. + */ +CV_EXPORTS_W void drawContours( InputOutputArray image, InputArrayOfArrays contours, + int contourIdx, const Scalar& color, + int thickness = 1, int lineType = LINE_8, + InputArray hierarchy = noArray(), + int maxLevel = INT_MAX, Point offset = Point() ); + +/** @brief Clips the line against the image rectangle. + +The function cv::clipLine calculates a part of the line segment that is entirely within the specified +rectangle. it returns false if the line segment is completely outside the rectangle. Otherwise, +it returns true . +@param imgSize Image size. The image rectangle is Rect(0, 0, imgSize.width, imgSize.height) . +@param pt1 First line point. +@param pt2 Second line point. + */ +CV_EXPORTS bool clipLine(Size imgSize, CV_IN_OUT Point& pt1, CV_IN_OUT Point& pt2); + +/** @overload +@param imgSize Image size. The image rectangle is Rect(0, 0, imgSize.width, imgSize.height) . +@param pt1 First line point. +@param pt2 Second line point. +*/ +CV_EXPORTS bool clipLine(Size2l imgSize, CV_IN_OUT Point2l& pt1, CV_IN_OUT Point2l& pt2); + +/** @overload +@param imgRect Image rectangle. +@param pt1 First line point. +@param pt2 Second line point. +*/ +CV_EXPORTS_W bool clipLine(Rect imgRect, CV_OUT CV_IN_OUT Point& pt1, CV_OUT CV_IN_OUT Point& pt2); + +/** @brief Approximates an elliptic arc with a polyline. + +The function ellipse2Poly computes the vertices of a polyline that approximates the specified +elliptic arc. It is used by #ellipse. If `arcStart` is greater than `arcEnd`, they are swapped. + +@param center Center of the arc. +@param axes Half of the size of the ellipse main axes. See #ellipse for details. +@param angle Rotation angle of the ellipse in degrees. See #ellipse for details. +@param arcStart Starting angle of the elliptic arc in degrees. +@param arcEnd Ending angle of the elliptic arc in degrees. +@param delta Angle between the subsequent polyline vertices. It defines the approximation +accuracy. +@param pts Output vector of polyline vertices. + */ +CV_EXPORTS_W void ellipse2Poly( Point center, Size axes, int angle, + int arcStart, int arcEnd, int delta, + CV_OUT std::vector& pts ); + +/** @overload +@param center Center of the arc. +@param axes Half of the size of the ellipse main axes. See #ellipse for details. +@param angle Rotation angle of the ellipse in degrees. See #ellipse for details. +@param arcStart Starting angle of the elliptic arc in degrees. +@param arcEnd Ending angle of the elliptic arc in degrees. +@param delta Angle between the subsequent polyline vertices. It defines the approximation accuracy. +@param pts Output vector of polyline vertices. +*/ +CV_EXPORTS void ellipse2Poly(Point2d center, Size2d axes, int angle, + int arcStart, int arcEnd, int delta, + CV_OUT std::vector& pts); + +/** @brief Draws a text string. + +The function cv::putText renders the specified text string in the image. Symbols that cannot be rendered +using the specified font are replaced by question marks. See #getTextSize for a text rendering code +example. + +@param img Image. +@param text Text string to be drawn. +@param org Bottom-left corner of the text string in the image. +@param fontFace Font type, see #HersheyFonts. +@param fontScale Font scale factor that is multiplied by the font-specific base size. +@param color Text color. +@param thickness Thickness of the lines used to draw a text. +@param lineType Line type. See #LineTypes +@param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise, +it is at the top-left corner. + */ +CV_EXPORTS_W void putText( InputOutputArray img, const String& text, Point org, + int fontFace, double fontScale, Scalar color, + int thickness = 1, int lineType = LINE_8, + bool bottomLeftOrigin = false ); + +/** @brief Calculates the width and height of a text string. + +The function cv::getTextSize calculates and returns the size of a box that contains the specified text. +That is, the following code renders some text, the tight box surrounding it, and the baseline: : +@code + String text = "Funny text inside the box"; + int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX; + double fontScale = 2; + int thickness = 3; + + Mat img(600, 800, CV_8UC3, Scalar::all(0)); + + int baseline=0; + Size textSize = getTextSize(text, fontFace, + fontScale, thickness, &baseline); + baseline += thickness; + + // center the text + Point textOrg((img.cols - textSize.width)/2, + (img.rows + textSize.height)/2); + + // draw the box + rectangle(img, textOrg + Point(0, baseline), + textOrg + Point(textSize.width, -textSize.height), + Scalar(0,0,255)); + // ... and the baseline first + line(img, textOrg + Point(0, thickness), + textOrg + Point(textSize.width, thickness), + Scalar(0, 0, 255)); + + // then put the text itself + putText(img, text, textOrg, fontFace, fontScale, + Scalar::all(255), thickness, 8); +@endcode + +@param text Input text string. +@param fontFace Font to use, see #HersheyFonts. +@param fontScale Font scale factor that is multiplied by the font-specific base size. +@param thickness Thickness of lines used to render the text. See #putText for details. +@param[out] baseLine y-coordinate of the baseline relative to the bottom-most text +point. +@return The size of a box that contains the specified text. + +@see putText + */ +CV_EXPORTS_W Size getTextSize(const String& text, int fontFace, + double fontScale, int thickness, + CV_OUT int* baseLine); + + +/** @brief Calculates the font-specific size to use to achieve a given height in pixels. + +@param fontFace Font to use, see cv::HersheyFonts. +@param pixelHeight Pixel height to compute the fontScale for +@param thickness Thickness of lines used to render the text.See putText for details. +@return The fontSize to use for cv::putText + +@see cv::putText +*/ +CV_EXPORTS_W double getFontScaleFromHeight(const int fontFace, + const int pixelHeight, + const int thickness = 1); + +/** @brief Line iterator + +The class is used to iterate over all the pixels on the raster line +segment connecting two specified points. + +The class LineIterator is used to get each pixel of a raster line. It +can be treated as versatile implementation of the Bresenham algorithm +where you can stop at each pixel and do some extra processing, for +example, grab pixel values along the line or draw a line with an effect +(for example, with XOR operation). + +The number of pixels along the line is stored in LineIterator::count. +The method LineIterator::pos returns the current position in the image: + +@code{.cpp} +// grabs pixels along the line (pt1, pt2) +// from 8-bit 3-channel image to the buffer +LineIterator it(img, pt1, pt2, 8); +LineIterator it2 = it; +vector buf(it.count); + +for(int i = 0; i < it.count; i++, ++it) + buf[i] = *(const Vec3b*)*it; + +// alternative way of iterating through the line +for(int i = 0; i < it2.count; i++, ++it2) +{ + Vec3b val = img.at(it2.pos()); + CV_Assert(buf[i] == val); +} +@endcode +*/ +class CV_EXPORTS LineIterator +{ +public: + /** @brief initializes the iterator + + creates iterators for the line connecting pt1 and pt2 + the line will be clipped on the image boundaries + the line is 8-connected or 4-connected + If leftToRight=true, then the iteration is always done + from the left-most point to the right most, + not to depend on the ordering of pt1 and pt2 parameters + */ + LineIterator( const Mat& img, Point pt1, Point pt2, + int connectivity = 8, bool leftToRight = false ); + /** @brief returns pointer to the current pixel + */ + uchar* operator *(); + /** @brief prefix increment operator (++it). shifts iterator to the next pixel + */ + LineIterator& operator ++(); + /** @brief postfix increment operator (it++). shifts iterator to the next pixel + */ + LineIterator operator ++(int); + /** @brief returns coordinates of the current pixel + */ + Point pos() const; + + uchar* ptr; + const uchar* ptr0; + int step, elemSize; + int err, count; + int minusDelta, plusDelta; + int minusStep, plusStep; +}; + +//! @cond IGNORED + +// === LineIterator implementation === + +inline +uchar* LineIterator::operator *() +{ + return ptr; +} + +inline +LineIterator& LineIterator::operator ++() +{ + int mask = err < 0 ? -1 : 0; + err += minusDelta + (plusDelta & mask); + ptr += minusStep + (plusStep & mask); + return *this; +} + +inline +LineIterator LineIterator::operator ++(int) +{ + LineIterator it = *this; + ++(*this); + return it; +} + +inline +Point LineIterator::pos() const +{ + Point p; + p.y = (int)((ptr - ptr0)/step); + p.x = (int)(((ptr - ptr0) - p.y*step)/elemSize); + return p; +} + +//! @endcond + +//! @} imgproc_draw + +//! @} imgproc + +} // cv + +#endif diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgproc/detail/gcgraph.hpp b/lib/3rdParty/OpenCV/include/opencv2/imgproc/detail/gcgraph.hpp new file mode 100644 index 000000000..db2ea0f61 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgproc/detail/gcgraph.hpp @@ -0,0 +1,393 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_IMGPROC_DETAIL_GCGRAPH_HPP +#define OPENCV_IMGPROC_DETAIL_GCGRAPH_HPP + +//! @cond IGNORED + +namespace cv { namespace detail { +template class GCGraph +{ +public: + GCGraph(); + GCGraph( unsigned int vtxCount, unsigned int edgeCount ); + ~GCGraph(); + void create( unsigned int vtxCount, unsigned int edgeCount ); + int addVtx(); + void addEdges( int i, int j, TWeight w, TWeight revw ); + void addTermWeights( int i, TWeight sourceW, TWeight sinkW ); + TWeight maxFlow(); + bool inSourceSegment( int i ); +private: + class Vtx + { + public: + Vtx *next; // initialized and used in maxFlow() only + int parent; + int first; + int ts; + int dist; + TWeight weight; + uchar t; + }; + class Edge + { + public: + int dst; + int next; + TWeight weight; + }; + + std::vector vtcs; + std::vector edges; + TWeight flow; +}; + +template +GCGraph::GCGraph() +{ + flow = 0; +} +template +GCGraph::GCGraph( unsigned int vtxCount, unsigned int edgeCount ) +{ + create( vtxCount, edgeCount ); +} +template +GCGraph::~GCGraph() +{ +} +template +void GCGraph::create( unsigned int vtxCount, unsigned int edgeCount ) +{ + vtcs.reserve( vtxCount ); + edges.reserve( edgeCount + 2 ); + flow = 0; +} + +template +int GCGraph::addVtx() +{ + Vtx v; + memset( &v, 0, sizeof(Vtx)); + vtcs.push_back(v); + return (int)vtcs.size() - 1; +} + +template +void GCGraph::addEdges( int i, int j, TWeight w, TWeight revw ) +{ + CV_Assert( i>=0 && i<(int)vtcs.size() ); + CV_Assert( j>=0 && j<(int)vtcs.size() ); + CV_Assert( w>=0 && revw>=0 ); + CV_Assert( i != j ); + + if( !edges.size() ) + edges.resize( 2 ); + + Edge fromI, toI; + fromI.dst = j; + fromI.next = vtcs[i].first; + fromI.weight = w; + vtcs[i].first = (int)edges.size(); + edges.push_back( fromI ); + + toI.dst = i; + toI.next = vtcs[j].first; + toI.weight = revw; + vtcs[j].first = (int)edges.size(); + edges.push_back( toI ); +} + +template +void GCGraph::addTermWeights( int i, TWeight sourceW, TWeight sinkW ) +{ + CV_Assert( i>=0 && i<(int)vtcs.size() ); + + TWeight dw = vtcs[i].weight; + if( dw > 0 ) + sourceW += dw; + else + sinkW -= dw; + flow += (sourceW < sinkW) ? sourceW : sinkW; + vtcs[i].weight = sourceW - sinkW; +} + +template +TWeight GCGraph::maxFlow() +{ + const int TERMINAL = -1, ORPHAN = -2; + Vtx stub, *nilNode = &stub, *first = nilNode, *last = nilNode; + int curr_ts = 0; + stub.next = nilNode; + Vtx *vtxPtr = &vtcs[0]; + Edge *edgePtr = &edges[0]; + + std::vector orphans; + + // initialize the active queue and the graph vertices + for( int i = 0; i < (int)vtcs.size(); i++ ) + { + Vtx* v = vtxPtr + i; + v->ts = 0; + if( v->weight != 0 ) + { + last = last->next = v; + v->dist = 1; + v->parent = TERMINAL; + v->t = v->weight < 0; + } + else + v->parent = 0; + } + first = first->next; + last->next = nilNode; + nilNode->next = 0; + + // run the search-path -> augment-graph -> restore-trees loop + for(;;) + { + Vtx* v, *u; + int e0 = -1, ei = 0, ej = 0; + TWeight minWeight, weight; + uchar vt; + + // grow S & T search trees, find an edge connecting them + while( first != nilNode ) + { + v = first; + if( v->parent ) + { + vt = v->t; + for( ei = v->first; ei != 0; ei = edgePtr[ei].next ) + { + if( edgePtr[ei^vt].weight == 0 ) + continue; + u = vtxPtr+edgePtr[ei].dst; + if( !u->parent ) + { + u->t = vt; + u->parent = ei ^ 1; + u->ts = v->ts; + u->dist = v->dist + 1; + if( !u->next ) + { + u->next = nilNode; + last = last->next = u; + } + continue; + } + + if( u->t != vt ) + { + e0 = ei ^ vt; + break; + } + + if( u->dist > v->dist+1 && u->ts <= v->ts ) + { + // reassign the parent + u->parent = ei ^ 1; + u->ts = v->ts; + u->dist = v->dist + 1; + } + } + if( e0 > 0 ) + break; + } + // exclude the vertex from the active list + first = first->next; + v->next = 0; + } + + if( e0 <= 0 ) + break; + + // find the minimum edge weight along the path + minWeight = edgePtr[e0].weight; + CV_Assert( minWeight > 0 ); + // k = 1: source tree, k = 0: destination tree + for( int k = 1; k >= 0; k-- ) + { + for( v = vtxPtr+edgePtr[e0^k].dst;; v = vtxPtr+edgePtr[ei].dst ) + { + if( (ei = v->parent) < 0 ) + break; + weight = edgePtr[ei^k].weight; + minWeight = MIN(minWeight, weight); + CV_Assert( minWeight > 0 ); + } + weight = fabs(v->weight); + minWeight = MIN(minWeight, weight); + CV_Assert( minWeight > 0 ); + } + + // modify weights of the edges along the path and collect orphans + edgePtr[e0].weight -= minWeight; + edgePtr[e0^1].weight += minWeight; + flow += minWeight; + + // k = 1: source tree, k = 0: destination tree + for( int k = 1; k >= 0; k-- ) + { + for( v = vtxPtr+edgePtr[e0^k].dst;; v = vtxPtr+edgePtr[ei].dst ) + { + if( (ei = v->parent) < 0 ) + break; + edgePtr[ei^(k^1)].weight += minWeight; + if( (edgePtr[ei^k].weight -= minWeight) == 0 ) + { + orphans.push_back(v); + v->parent = ORPHAN; + } + } + + v->weight = v->weight + minWeight*(1-k*2); + if( v->weight == 0 ) + { + orphans.push_back(v); + v->parent = ORPHAN; + } + } + + // restore the search trees by finding new parents for the orphans + curr_ts++; + while( !orphans.empty() ) + { + Vtx* v2 = orphans.back(); + orphans.pop_back(); + + int d, minDist = INT_MAX; + e0 = 0; + vt = v2->t; + + for( ei = v2->first; ei != 0; ei = edgePtr[ei].next ) + { + if( edgePtr[ei^(vt^1)].weight == 0 ) + continue; + u = vtxPtr+edgePtr[ei].dst; + if( u->t != vt || u->parent == 0 ) + continue; + // compute the distance to the tree root + for( d = 0;; ) + { + if( u->ts == curr_ts ) + { + d += u->dist; + break; + } + ej = u->parent; + d++; + if( ej < 0 ) + { + if( ej == ORPHAN ) + d = INT_MAX-1; + else + { + u->ts = curr_ts; + u->dist = 1; + } + break; + } + u = vtxPtr+edgePtr[ej].dst; + } + + // update the distance + if( ++d < INT_MAX ) + { + if( d < minDist ) + { + minDist = d; + e0 = ei; + } + for( u = vtxPtr+edgePtr[ei].dst; u->ts != curr_ts; u = vtxPtr+edgePtr[u->parent].dst ) + { + u->ts = curr_ts; + u->dist = --d; + } + } + } + + if( (v2->parent = e0) > 0 ) + { + v2->ts = curr_ts; + v2->dist = minDist; + continue; + } + + /* no parent is found */ + v2->ts = 0; + for( ei = v2->first; ei != 0; ei = edgePtr[ei].next ) + { + u = vtxPtr+edgePtr[ei].dst; + ej = u->parent; + if( u->t != vt || !ej ) + continue; + if( edgePtr[ei^(vt^1)].weight && !u->next ) + { + u->next = nilNode; + last = last->next = u; + } + if( ej > 0 && vtxPtr+edgePtr[ej].dst == v2 ) + { + orphans.push_back(u); + u->parent = ORPHAN; + } + } + } + } + return flow; +} + +template +bool GCGraph::inSourceSegment( int i ) +{ + CV_Assert( i>=0 && i<(int)vtcs.size() ); + return vtcs[i].t == 0; +} + +}} // namespace detail, cv + + +//! @endcond + +#endif // OPENCV_IMGPROC_DETAIL_GCGRAPH_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgproc/hal/hal.hpp b/lib/3rdParty/OpenCV/include/opencv2/imgproc/hal/hal.hpp new file mode 100644 index 000000000..ac20725e6 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgproc/hal/hal.hpp @@ -0,0 +1,241 @@ +#ifndef CV_IMGPROC_HAL_HPP +#define CV_IMGPROC_HAL_HPP + +#include "opencv2/core/cvdef.h" +#include "opencv2/core/cvstd.hpp" +#include "opencv2/core/hal/interface.h" + +namespace cv { namespace hal { + +//! @addtogroup imgproc_hal_functions +//! @{ + +//--------------------------- +//! @cond IGNORED + +struct CV_EXPORTS Filter2D +{ + CV_DEPRECATED static Ptr create(uchar * , size_t , int , + int , int , + int , int , + int , int , + int , double , + int , int , + bool , bool ); + virtual void apply(uchar * , size_t , + uchar * , size_t , + int , int , + int , int , + int , int ) = 0; + virtual ~Filter2D() {} +}; + +struct CV_EXPORTS SepFilter2D +{ + CV_DEPRECATED static Ptr create(int , int , int , + uchar * , int , + uchar * , int , + int , int , + double , int ); + virtual void apply(uchar * , size_t , + uchar * , size_t , + int , int , + int , int , + int , int ) = 0; + virtual ~SepFilter2D() {} +}; + + +struct CV_EXPORTS Morph +{ + CV_DEPRECATED static Ptr create(int , int , int , int , int , + int , uchar * , size_t , + int , int , + int , int , + int , const double *, + int , bool , bool ); + virtual void apply(uchar * , size_t , uchar * , size_t , int , int , + int , int , int , int , + int , int , int , int ) = 0; + virtual ~Morph() {} +}; + +//! @endcond +//--------------------------- + +CV_EXPORTS void filter2D(int stype, int dtype, int kernel_type, + uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int full_width, int full_height, + int offset_x, int offset_y, + uchar * kernel_data, size_t kernel_step, + int kernel_width, int kernel_height, + int anchor_x, int anchor_y, + double delta, int borderType, + bool isSubmatrix); + +CV_EXPORTS void sepFilter2D(int stype, int dtype, int ktype, + uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int full_width, int full_height, + int offset_x, int offset_y, + uchar * kernelx_data, int kernelx_len, + uchar * kernely_data, int kernely_len, + int anchor_x, int anchor_y, + double delta, int borderType); + +CV_EXPORTS void morph(int op, int src_type, int dst_type, + uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int roi_width, int roi_height, int roi_x, int roi_y, + int roi_width2, int roi_height2, int roi_x2, int roi_y2, + int kernel_type, uchar * kernel_data, size_t kernel_step, + int kernel_width, int kernel_height, int anchor_x, int anchor_y, + int borderType, const double borderValue[4], + int iterations, bool isSubmatrix); + + +CV_EXPORTS void resize(int src_type, + const uchar * src_data, size_t src_step, int src_width, int src_height, + uchar * dst_data, size_t dst_step, int dst_width, int dst_height, + double inv_scale_x, double inv_scale_y, int interpolation); + +CV_EXPORTS void warpAffine(int src_type, + const uchar * src_data, size_t src_step, int src_width, int src_height, + uchar * dst_data, size_t dst_step, int dst_width, int dst_height, + const double M[6], int interpolation, int borderType, const double borderValue[4]); + +CV_EXPORTS void warpPerspective(int src_type, + const uchar * src_data, size_t src_step, int src_width, int src_height, + uchar * dst_data, size_t dst_step, int dst_width, int dst_height, + const double M[9], int interpolation, int borderType, const double borderValue[4]); + +CV_EXPORTS void cvtBGRtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int scn, int dcn, bool swapBlue); + +CV_EXPORTS void cvtBGRtoBGR5x5(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int scn, bool swapBlue, int greenBits); + +CV_EXPORTS void cvtBGR5x5toBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int dcn, bool swapBlue, int greenBits); + +CV_EXPORTS void cvtBGRtoGray(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int scn, bool swapBlue); + +CV_EXPORTS void cvtGraytoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int dcn); + +CV_EXPORTS void cvtBGR5x5toGray(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int greenBits); + +CV_EXPORTS void cvtGraytoBGR5x5(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int greenBits); +CV_EXPORTS void cvtBGRtoYUV(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int scn, bool swapBlue, bool isCbCr); + +CV_EXPORTS void cvtYUVtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int dcn, bool swapBlue, bool isCbCr); + +CV_EXPORTS void cvtBGRtoXYZ(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int scn, bool swapBlue); + +CV_EXPORTS void cvtXYZtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int dcn, bool swapBlue); + +CV_EXPORTS void cvtBGRtoHSV(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int scn, bool swapBlue, bool isFullRange, bool isHSV); + +CV_EXPORTS void cvtHSVtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int dcn, bool swapBlue, bool isFullRange, bool isHSV); + +CV_EXPORTS void cvtBGRtoLab(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int scn, bool swapBlue, bool isLab, bool srgb); + +CV_EXPORTS void cvtLabtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int depth, int dcn, bool swapBlue, bool isLab, bool srgb); + +CV_EXPORTS void cvtTwoPlaneYUVtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int dst_width, int dst_height, + int dcn, bool swapBlue, int uIdx); + +//! Separate Y and UV planes +CV_EXPORTS void cvtTwoPlaneYUVtoBGR(const uchar * y_data, const uchar * uv_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int dst_width, int dst_height, + int dcn, bool swapBlue, int uIdx); + +CV_EXPORTS void cvtThreePlaneYUVtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int dst_width, int dst_height, + int dcn, bool swapBlue, int uIdx); + +CV_EXPORTS void cvtBGRtoThreePlaneYUV(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int scn, bool swapBlue, int uIdx); + +//! Separate Y and UV planes +CV_EXPORTS void cvtBGRtoTwoPlaneYUV(const uchar * src_data, size_t src_step, + uchar * y_data, uchar * uv_data, size_t dst_step, + int width, int height, + int scn, bool swapBlue, int uIdx); + +CV_EXPORTS void cvtOnePlaneYUVtoBGR(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height, + int dcn, bool swapBlue, int uIdx, int ycn); + +CV_EXPORTS void cvtRGBAtoMultipliedRGBA(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height); + +CV_EXPORTS void cvtMultipliedRGBAtoRGBA(const uchar * src_data, size_t src_step, + uchar * dst_data, size_t dst_step, + int width, int height); + +CV_EXPORTS void integral(int depth, int sdepth, int sqdepth, + const uchar* src, size_t srcstep, + uchar* sum, size_t sumstep, + uchar* sqsum, size_t sqsumstep, + uchar* tilted, size_t tstep, + int width, int height, int cn); + +//! @} + +}} + +#endif // CV_IMGPROC_HAL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/hal/interface.h b/lib/3rdParty/OpenCV/include/opencv2/imgproc/hal/interface.h similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/hal/interface.h rename to lib/3rdParty/OpenCV/include/opencv2/imgproc/hal/interface.h diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/imgproc.hpp b/lib/3rdParty/OpenCV/include/opencv2/imgproc/imgproc.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/imgproc.hpp rename to lib/3rdParty/OpenCV/include/opencv2/imgproc/imgproc.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/imgproc_c.h b/lib/3rdParty/OpenCV/include/opencv2/imgproc/imgproc_c.h similarity index 96% rename from lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/imgproc_c.h rename to lib/3rdParty/OpenCV/include/opencv2/imgproc/imgproc_c.h index d11db4b25..9f7131f7b 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/imgproc_c.h +++ b/lib/3rdParty/OpenCV/include/opencv2/imgproc/imgproc_c.h @@ -260,52 +260,19 @@ CVAPI(void) cvConvertMaps( const CvArr* mapx, const CvArr* mapy, CvArr* mapxy, CvArr* mapalpha ); /** @brief Performs forward or inverse log-polar image transform -@see cv::logPolar +@see cv::warpPolar */ CVAPI(void) cvLogPolar( const CvArr* src, CvArr* dst, CvPoint2D32f center, double M, int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS)); /** Performs forward or inverse linear-polar image transform -@see cv::linearPolar +@see cv::warpPolar */ CVAPI(void) cvLinearPolar( const CvArr* src, CvArr* dst, CvPoint2D32f center, double maxRadius, int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS)); -/** @brief Transforms the input image to compensate lens distortion -@see cv::undistort -*/ -CVAPI(void) cvUndistort2( const CvArr* src, CvArr* dst, - const CvMat* camera_matrix, - const CvMat* distortion_coeffs, - const CvMat* new_camera_matrix CV_DEFAULT(0) ); - -/** @brief Computes transformation map from intrinsic camera parameters - that can used by cvRemap -*/ -CVAPI(void) cvInitUndistortMap( const CvMat* camera_matrix, - const CvMat* distortion_coeffs, - CvArr* mapx, CvArr* mapy ); - -/** @brief Computes undistortion+rectification map for a head of stereo camera -@see cv::initUndistortRectifyMap -*/ -CVAPI(void) cvInitUndistortRectifyMap( const CvMat* camera_matrix, - const CvMat* dist_coeffs, - const CvMat *R, const CvMat* new_camera_matrix, - CvArr* mapx, CvArr* mapy ); - -/** @brief Computes the original (undistorted) feature coordinates - from the observed (distorted) coordinates -@see cv::undistortPoints -*/ -CVAPI(void) cvUndistortPoints( const CvMat* src, CvMat* dst, - const CvMat* camera_matrix, - const CvMat* dist_coeffs, - const CvMat* R CV_DEFAULT(0), - const CvMat* P CV_DEFAULT(0)); - /** @brief Returns a structuring element of the specified size and shape for morphological operations. @note the created structuring element IplConvKernel\* element must be released in the end using @@ -982,7 +949,6 @@ CVAPI(void) cvFitLine( const CvArr* points, int dist_type, double param, * If a drawn figure is partially or completely outside of the image, it is clipped.* \****************************************************************************************/ -#define CV_RGB( r, g, b ) cvScalar( (b), (g), (r), 0 ) #define CV_FILLED -1 #define CV_AA 16 @@ -1037,9 +1003,10 @@ CV_INLINE void cvEllipseBox( CvArr* img, CvBox2D box, CvScalar color, int thickness CV_DEFAULT(1), int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0) ) { - CvSize axes; - axes.width = cvRound(box.size.width*0.5); - axes.height = cvRound(box.size.height*0.5); + CvSize axes = cvSize( + cvRound(box.size.width*0.5), + cvRound(box.size.height*0.5) + ); cvEllipse( img, cvPointFrom32f( box.center ), axes, box.angle, 0, 360, color, thickness, line_type, shift ); diff --git a/lib/3rdParty/OpenCV/include/opencv2/imgproc/types_c.h b/lib/3rdParty/OpenCV/include/opencv2/imgproc/types_c.h new file mode 100644 index 000000000..d3e55f576 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/imgproc/types_c.h @@ -0,0 +1,659 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_IMGPROC_TYPES_C_H +#define OPENCV_IMGPROC_TYPES_C_H + +#include "opencv2/core/core_c.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @addtogroup imgproc_c + @{ +*/ + +/** Connected component structure */ +typedef struct CvConnectedComp +{ + double area; /** DBL_EPSILON ? 1./std::sqrt(am00) : 0; + } + operator cv::Moments() const + { + return cv::Moments(m00, m10, m01, m20, m11, m02, m30, m21, m12, m03); + } +#endif +} +CvMoments; + +#ifdef __cplusplus +} // extern "C" + +CV_INLINE CvMoments cvMoments() +{ +#if !defined(CV__ENABLE_C_API_CTORS) + CvMoments self = CV_STRUCT_INITIALIZER; return self; +#else + return CvMoments(); +#endif +} + +CV_INLINE CvMoments cvMoments(const cv::Moments& m) +{ +#if !defined(CV__ENABLE_C_API_CTORS) + double am00 = std::abs(m.m00); + CvMoments self = { + m.m00, m.m10, m.m01, m.m20, m.m11, m.m02, m.m30, m.m21, m.m12, m.m03, + m.mu20, m.mu11, m.mu02, m.mu30, m.mu21, m.mu12, m.mu03, + am00 > DBL_EPSILON ? 1./std::sqrt(am00) : 0 + }; + return self; +#else + return CvMoments(m); +#endif +} + +extern "C" { +#endif // __cplusplus + +/** Hu invariants */ +typedef struct CvHuMoments +{ + double hu1, hu2, hu3, hu4, hu5, hu6, hu7; /**< Hu invariants */ +} +CvHuMoments; + +/** Template matching methods */ +enum +{ + CV_TM_SQDIFF =0, + CV_TM_SQDIFF_NORMED =1, + CV_TM_CCORR =2, + CV_TM_CCORR_NORMED =3, + CV_TM_CCOEFF =4, + CV_TM_CCOEFF_NORMED =5 +}; + +typedef float (CV_CDECL * CvDistanceFunction)( const float* a, const float* b, void* user_param ); + +/** Contour retrieval modes */ +enum +{ + CV_RETR_EXTERNAL=0, + CV_RETR_LIST=1, + CV_RETR_CCOMP=2, + CV_RETR_TREE=3, + CV_RETR_FLOODFILL=4 +}; + +/** Contour approximation methods */ +enum +{ + CV_CHAIN_CODE=0, + CV_CHAIN_APPROX_NONE=1, + CV_CHAIN_APPROX_SIMPLE=2, + CV_CHAIN_APPROX_TC89_L1=3, + CV_CHAIN_APPROX_TC89_KCOS=4, + CV_LINK_RUNS=5 +}; + +/* +Internal structure that is used for sequential retrieving contours from the image. +It supports both hierarchical and plane variants of Suzuki algorithm. +*/ +typedef struct _CvContourScanner* CvContourScanner; + +/** Freeman chain reader state */ +typedef struct CvChainPtReader +{ + CV_SEQ_READER_FIELDS() + char code; + CvPoint pt; + schar deltas[8][2]; +} +CvChainPtReader; + +/** initializes 8-element array for fast access to 3x3 neighborhood of a pixel */ +#define CV_INIT_3X3_DELTAS( deltas, step, nch ) \ + ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \ + (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \ + (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \ + (deltas)[6] = (step), (deltas)[7] = (step) + (nch)) + + +/** Contour approximation algorithms */ +enum +{ + CV_POLY_APPROX_DP = 0 +}; + +/** Shape matching methods */ +enum +{ + CV_CONTOURS_MATCH_I1 =1, //!< \f[I_1(A,B) = \sum _{i=1...7} \left | \frac{1}{m^A_i} - \frac{1}{m^B_i} \right |\f] + CV_CONTOURS_MATCH_I2 =2, //!< \f[I_2(A,B) = \sum _{i=1...7} \left | m^A_i - m^B_i \right |\f] + CV_CONTOURS_MATCH_I3 =3 //!< \f[I_3(A,B) = \max _{i=1...7} \frac{ \left| m^A_i - m^B_i \right| }{ \left| m^A_i \right| }\f] +}; + +/** Shape orientation */ +enum +{ + CV_CLOCKWISE =1, + CV_COUNTER_CLOCKWISE =2 +}; + + +/** Convexity defect */ +typedef struct CvConvexityDefect +{ + CvPoint* start; /**< point of the contour where the defect begins */ + CvPoint* end; /**< point of the contour where the defect ends */ + CvPoint* depth_point; /**< the farthest from the convex hull point within the defect */ + float depth; /**< distance between the farthest point and the convex hull */ +} CvConvexityDefect; + + +/** Histogram comparison methods */ +enum +{ + CV_COMP_CORREL =0, + CV_COMP_CHISQR =1, + CV_COMP_INTERSECT =2, + CV_COMP_BHATTACHARYYA =3, + CV_COMP_HELLINGER =CV_COMP_BHATTACHARYYA, + CV_COMP_CHISQR_ALT =4, + CV_COMP_KL_DIV =5 +}; + +/** Mask size for distance transform */ +enum +{ + CV_DIST_MASK_3 =3, + CV_DIST_MASK_5 =5, + CV_DIST_MASK_PRECISE =0 +}; + +/** Content of output label array: connected components or pixels */ +enum +{ + CV_DIST_LABEL_CCOMP = 0, + CV_DIST_LABEL_PIXEL = 1 +}; + +/** Distance types for Distance Transform and M-estimators */ +enum +{ + CV_DIST_USER =-1, /**< User defined distance */ + CV_DIST_L1 =1, /**< distance = |x1-x2| + |y1-y2| */ + CV_DIST_L2 =2, /**< the simple euclidean distance */ + CV_DIST_C =3, /**< distance = max(|x1-x2|,|y1-y2|) */ + CV_DIST_L12 =4, /**< L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) */ + CV_DIST_FAIR =5, /**< distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 */ + CV_DIST_WELSCH =6, /**< distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 */ + CV_DIST_HUBER =7 /**< distance = |x| threshold ? max_value : 0 */ + CV_THRESH_BINARY_INV =1, /**< value = value > threshold ? 0 : max_value */ + CV_THRESH_TRUNC =2, /**< value = value > threshold ? threshold : value */ + CV_THRESH_TOZERO =3, /**< value = value > threshold ? value : 0 */ + CV_THRESH_TOZERO_INV =4, /**< value = value > threshold ? 0 : value */ + CV_THRESH_MASK =7, + CV_THRESH_OTSU =8, /**< use Otsu algorithm to choose the optimal threshold value; + combine the flag with one of the above CV_THRESH_* values */ + CV_THRESH_TRIANGLE =16 /**< use Triangle algorithm to choose the optimal threshold value; + combine the flag with one of the above CV_THRESH_* values, but not + with CV_THRESH_OTSU */ +}; + +/** Adaptive threshold methods */ +enum +{ + CV_ADAPTIVE_THRESH_MEAN_C =0, + CV_ADAPTIVE_THRESH_GAUSSIAN_C =1 +}; + +/** FloodFill flags */ +enum +{ + CV_FLOODFILL_FIXED_RANGE =(1 << 16), + CV_FLOODFILL_MASK_ONLY =(1 << 17) +}; + + +/** Canny edge detector flags */ +enum +{ + CV_CANNY_L2_GRADIENT =(1 << 31) +}; + +/** Variants of a Hough transform */ +enum +{ + CV_HOUGH_STANDARD =0, + CV_HOUGH_PROBABILISTIC =1, + CV_HOUGH_MULTI_SCALE =2, + CV_HOUGH_GRADIENT =3 +}; + + +/* Fast search data structures */ +struct CvFeatureTree; +struct CvLSH; +struct CvLSHOperations; + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/ml.hpp b/lib/3rdParty/OpenCV/include/opencv2/ml.hpp similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/ml.hpp rename to lib/3rdParty/OpenCV/include/opencv2/ml.hpp index 0295a0765..f1258fdcb 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/ml.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/ml.hpp @@ -120,7 +120,7 @@ class CV_EXPORTS_W ParamGrid \f[(minVal, minVal*step, minVal*{step}^2, \dots, minVal*{logStep}^n),\f] where \f$n\f$ is the maximal index satisfying \f[\texttt{minVal} * \texttt{logStep} ^n < \texttt{maxVal}\f] - The grid is logarithmic, so logStep must always be greater then 1. Default value is 1. + The grid is logarithmic, so logStep must always be greater than 1. Default value is 1. */ CV_PROP_RW double logStep; @@ -198,7 +198,7 @@ class CV_EXPORTS_W TrainData CV_WRAP virtual Mat getTestSampleWeights() const = 0; CV_WRAP virtual Mat getVarIdx() const = 0; CV_WRAP virtual Mat getVarType() const = 0; - CV_WRAP Mat getVarSymbolFlags() const; + CV_WRAP virtual Mat getVarSymbolFlags() const = 0; CV_WRAP virtual int getResponseType() const = 0; CV_WRAP virtual Mat getTrainSampleIdx() const = 0; CV_WRAP virtual Mat getTestSampleIdx() const = 0; @@ -234,12 +234,23 @@ class CV_EXPORTS_W TrainData CV_WRAP virtual void shuffleTrainTest() = 0; /** @brief Returns matrix of test samples */ - CV_WRAP Mat getTestSamples() const; + CV_WRAP virtual Mat getTestSamples() const = 0; /** @brief Returns vector of symbolic names captured in loadFromCSV() */ - CV_WRAP void getNames(std::vector& names) const; + CV_WRAP virtual void getNames(std::vector& names) const = 0; - CV_WRAP static Mat getSubVector(const Mat& vec, const Mat& idx); + /** @brief Extract from 1D vector elements specified by passed indexes. + @param vec input vector (supported types: CV_32S, CV_32F, CV_64F) + @param idx 1D index vector + */ + static CV_WRAP Mat getSubVector(const Mat& vec, const Mat& idx); + + /** @brief Extract from matrix rows/cols specified by passed indexes. + @param matrix input matrix (supported types: CV_32S, CV_32F, CV_64F) + @param idx 1D index vector + @param layout specifies to extract rows (cv::ml::ROW_SAMPLES) or to extract columns (cv::ml::COL_SAMPLES) + */ + static CV_WRAP Mat getSubMatrix(const Mat& matrix, const Mat& idx, int layout); /** @brief Reads the dataset from a .csv file and returns the ready-to-use training data. @@ -318,7 +329,7 @@ class CV_EXPORTS_W StatModel : public Algorithm /** @brief Returns the number of variables in training samples */ CV_WRAP virtual int getVarCount() const = 0; - CV_WRAP virtual bool empty() const; + CV_WRAP virtual bool empty() const CV_OVERRIDE; /** @brief Returns true if the model is trained */ CV_WRAP virtual bool isTrained() const = 0; @@ -727,7 +738,7 @@ class CV_EXPORTS_W SVM : public StatModel regression (SVM::EPS_SVR or SVM::NU_SVR). If it is SVM::ONE_CLASS, no optimization is made and the usual %SVM with parameters specified in params is executed. */ - CV_WRAP bool trainAuto(InputArray samples, + CV_WRAP virtual bool trainAuto(InputArray samples, int layout, InputArray responses, int kFold = 10, @@ -737,7 +748,7 @@ class CV_EXPORTS_W SVM : public StatModel Ptr nuGrid = SVM::getDefaultGridPtr(SVM::NU), Ptr coeffGrid = SVM::getDefaultGridPtr(SVM::COEF), Ptr degreeGrid = SVM::getDefaultGridPtr(SVM::DEGREE), - bool balanced=false); + bool balanced=false) = 0; /** @brief Retrieves all the support vectors @@ -752,7 +763,7 @@ class CV_EXPORTS_W SVM : public StatModel support vector, used for prediction, was derived from. They are returned in a floating-point matrix, where the support vectors are stored as matrix rows. */ - CV_WRAP Mat getUncompressedSupportVectors() const; + CV_WRAP virtual Mat getUncompressedSupportVectors() const = 0; /** @brief Retrieves the decision function @@ -894,7 +905,7 @@ class CV_EXPORTS_W EM : public StatModel posterior probabilities for each sample from the input @param flags This parameter will be ignored */ - CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const = 0; + CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const CV_OVERRIDE = 0; /** @brief Returns a likelihood logarithm value and an index of the most probable mixture component for the given sample. @@ -1269,11 +1280,11 @@ class CV_EXPORTS_W RTrees : public DTrees results for each of the sample cases. If the model is a classifier, it will return a Mat with samples + 1 rows, where the first row gives the class number and the following rows return the votes each class had for each sample. - @param samples Array containg the samples for which votes will be calculated. + @param samples Array containing the samples for which votes will be calculated. @param results Array where the result of the calculation will be written. @param flags Flags for defining the type of RTrees. */ - CV_WRAP void getVotes(InputArray samples, OutputArray results, int flags) const; + CV_WRAP virtual void getVotes(InputArray samples, OutputArray results, int flags) const = 0; /** Creates the empty model. Use StatModel::train to train the model, StatModel::train to create and train the model, @@ -1503,33 +1514,33 @@ class CV_EXPORTS_W ANN_MLP : public StatModel /** ANNEAL: Update initial temperature. It must be \>=0. Default value is 10.*/ /** @see setAnnealInitialT */ - CV_WRAP double getAnnealInitialT() const; + CV_WRAP virtual double getAnnealInitialT() const = 0; /** @copybrief getAnnealInitialT @see getAnnealInitialT */ - CV_WRAP void setAnnealInitialT(double val); + CV_WRAP virtual void setAnnealInitialT(double val) = 0; /** ANNEAL: Update final temperature. It must be \>=0 and less than initialT. Default value is 0.1.*/ /** @see setAnnealFinalT */ - CV_WRAP double getAnnealFinalT() const; + CV_WRAP virtual double getAnnealFinalT() const = 0; /** @copybrief getAnnealFinalT @see getAnnealFinalT */ - CV_WRAP void setAnnealFinalT(double val); + CV_WRAP virtual void setAnnealFinalT(double val) = 0; /** ANNEAL: Update cooling ratio. It must be \>0 and less than 1. Default value is 0.95.*/ /** @see setAnnealCoolingRatio */ - CV_WRAP double getAnnealCoolingRatio() const; + CV_WRAP virtual double getAnnealCoolingRatio() const = 0; /** @copybrief getAnnealCoolingRatio @see getAnnealCoolingRatio */ - CV_WRAP void setAnnealCoolingRatio(double val); + CV_WRAP virtual void setAnnealCoolingRatio(double val) = 0; /** ANNEAL: Update iteration per step. It must be \>0 . Default value is 10.*/ /** @see setAnnealItePerStep */ - CV_WRAP int getAnnealItePerStep() const; + CV_WRAP virtual int getAnnealItePerStep() const = 0; /** @copybrief getAnnealItePerStep @see getAnnealItePerStep */ - CV_WRAP void setAnnealItePerStep(int val); + CV_WRAP virtual void setAnnealItePerStep(int val) = 0; /** @brief Set/initialize anneal RNG */ - void setAnnealEnergyRNG(const RNG& rng); + virtual void setAnnealEnergyRNG(const RNG& rng) = 0; /** possible activation functions */ enum ActivationFunctions { @@ -1586,6 +1597,10 @@ class CV_EXPORTS_W ANN_MLP : public StatModel }; +#ifndef DISABLE_OPENCV_3_COMPATIBILITY +typedef ANN_MLP ANN_MLP_ANNEAL; +#endif + /****************************************************************************************\ * Logistic Regression * \****************************************************************************************/ @@ -1656,11 +1671,11 @@ class CV_EXPORTS_W LogisticRegression : public StatModel @param results Predicted labels as a column matrix of type CV_32S. @param flags Not used. */ - CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const = 0; + CV_WRAP virtual float predict( InputArray samples, OutputArray results=noArray(), int flags=0 ) const CV_OVERRIDE = 0; - /** @brief This function returns the trained paramters arranged across rows. + /** @brief This function returns the trained parameters arranged across rows. - For a two class classifcation problem, it returns a row matrix. It returns learnt paramters of + For a two class classifcation problem, it returns a row matrix. It returns learnt parameters of the Logistic Regression as a matrix of type CV_32F. */ CV_WRAP virtual Mat get_learnt_thetas() const = 0; @@ -1854,7 +1869,7 @@ class CV_EXPORTS_W SVMSGD : public cv::ml::StatModel /****************************************************************************************\ -* Auxilary functions declarations * +* Auxiliary functions declarations * \****************************************************************************************/ /** @brief Generates _sample_ from multivariate normal distribution @@ -1870,43 +1885,6 @@ CV_EXPORTS void randMVNormal( InputArray mean, InputArray cov, int nsamples, Out CV_EXPORTS void createConcentricSpheresTestSet( int nsamples, int nfeatures, int nclasses, OutputArray samples, OutputArray responses); -/** @brief Artificial Neural Networks - Multi-Layer Perceptrons. - -@sa @ref ml_intro_ann -*/ -class CV_EXPORTS_W ANN_MLP_ANNEAL : public ANN_MLP -{ -public: - /** @see setAnnealInitialT */ - CV_WRAP virtual double getAnnealInitialT() const = 0; - /** @copybrief getAnnealInitialT @see getAnnealInitialT */ - CV_WRAP virtual void setAnnealInitialT(double val) = 0; - - /** ANNEAL: Update final temperature. - It must be \>=0 and less than initialT. Default value is 0.1.*/ - /** @see setAnnealFinalT */ - CV_WRAP virtual double getAnnealFinalT() const = 0; - /** @copybrief getAnnealFinalT @see getAnnealFinalT */ - CV_WRAP virtual void setAnnealFinalT(double val) = 0; - - /** ANNEAL: Update cooling ratio. - It must be \>0 and less than 1. Default value is 0.95.*/ - /** @see setAnnealCoolingRatio */ - CV_WRAP virtual double getAnnealCoolingRatio() const = 0; - /** @copybrief getAnnealCoolingRatio @see getAnnealCoolingRatio */ - CV_WRAP virtual void setAnnealCoolingRatio(double val) = 0; - - /** ANNEAL: Update iteration per step. - It must be \>0 . Default value is 10.*/ - /** @see setAnnealItePerStep */ - CV_WRAP virtual int getAnnealItePerStep() const = 0; - /** @copybrief getAnnealItePerStep @see getAnnealItePerStep */ - CV_WRAP virtual void setAnnealItePerStep(int val) = 0; - - /** @brief Set/initialize anneal RNG */ - virtual void setAnnealEnergyRNG(const RNG& rng) = 0; -}; - /****************************************************************************************\ * Simulated annealing solver * @@ -1921,7 +1899,7 @@ struct SimulatedAnnealingSolverSystem { /** Give energy value for a state of system.*/ double energy() const; - /** Function which change the state of system (random pertubation).*/ + /** Function which change the state of system (random perturbation).*/ void changeState(); /** Function to reverse to the previous state. Can be called once only after changeState(). */ void reverseState(); diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/ml/ml.hpp b/lib/3rdParty/OpenCV/include/opencv2/ml/ml.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/ml/ml.hpp rename to lib/3rdParty/OpenCV/include/opencv2/ml/ml.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/ml/ml.inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/ml/ml.inl.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/ml/ml.inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/ml/ml.inl.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect.hpp b/lib/3rdParty/OpenCV/include/opencv2/objdetect.hpp similarity index 87% rename from lib/3rdParty/OpenCV3.4/include/opencv2/objdetect.hpp rename to lib/3rdParty/OpenCV/include/opencv2/objdetect.hpp index 40ebf56f7..1cbbf8456 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/objdetect.hpp @@ -163,7 +163,7 @@ CV_EXPORTS void groupRectangles_meanshift(std::vector& rectList, std::ve std::vector& foundScales, double detectThreshold = 0.0, Size winDetSize = Size(64, 128)); -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvHaarClassifierCascade* obj) const; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvHaarClassifierCascade* obj) const; }; enum { CASCADE_DO_CANNY_PRUNING = 1, CASCADE_SCALE_IMAGE = 2, @@ -175,7 +175,7 @@ class CV_EXPORTS_W BaseCascadeClassifier : public Algorithm { public: virtual ~BaseCascadeClassifier(); - virtual bool empty() const = 0; + virtual bool empty() const CV_OVERRIDE = 0; virtual bool load( const String& filename ) = 0; virtual void detectMultiScale( InputArray image, CV_OUT std::vector& objects, @@ -215,7 +215,7 @@ class CV_EXPORTS_W BaseCascadeClassifier : public Algorithm virtual Ptr getMaskGenerator() = 0; }; -/** @example facedetect.cpp +/** @example samples/cpp/facedetect.cpp This program demonstrates usage of the Cascade classifier class \image html Cascade_Classifier_Tutorial_Result_Haar.jpg "Sample screenshot" width=321 height=254 */ @@ -346,7 +346,7 @@ struct DetectionROI { //! scale(size) of the bounding box double scale; - //! set of requrested locations to be evaluated + //! set of requested locations to be evaluated std::vector locations; //! vector that will contain confidence values for each location std::vector confidences; @@ -372,13 +372,15 @@ useful links: struct CV_EXPORTS_W HOGDescriptor { public: - enum { L2Hys = 0 //!< Default histogramNormType + enum HistogramNormType { L2Hys = 0 //!< Default histogramNormType }; enum { DEFAULT_NLEVELS = 64 //!< Default nlevels value. }; + enum DescriptorStorageFormat { DESCR_FORMAT_COL_BY_COL, DESCR_FORMAT_ROW_BY_ROW }; + /**@brief Creates the HOG descriptor and detector with default params. - aqual to HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9, 1 ) + aqual to HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9 ) */ CV_WRAP HOGDescriptor() : winSize(64,128), blockSize(16,16), blockStride(8,8), cellSize(8,8), nbins(9), derivAperture(1), winSigma(-1), @@ -402,7 +404,7 @@ struct CV_EXPORTS_W HOGDescriptor */ CV_WRAP HOGDescriptor(Size _winSize, Size _blockSize, Size _blockStride, Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1, - int _histogramNormType=HOGDescriptor::L2Hys, + HOGDescriptor::HistogramNormType _histogramNormType=HOGDescriptor::L2Hys, double _L2HysThreshold=0.2, bool _gammaCorrection=false, int _nlevels=HOGDescriptor::DEFAULT_NLEVELS, bool _signedGradient=false) : winSize(_winSize), blockSize(_blockSize), blockStride(_blockStride), cellSize(_cellSize), @@ -412,7 +414,7 @@ struct CV_EXPORTS_W HOGDescriptor {} /** @overload - @param filename the file name containing HOGDescriptor properties and coefficients of the trained classifier + @param filename The file name containing HOGDescriptor properties and coefficients for the linear SVM classifier. */ CV_WRAP HOGDescriptor(const String& filename) { @@ -443,31 +445,31 @@ struct CV_EXPORTS_W HOGDescriptor */ CV_WRAP double getWinSigma() const; - /**@example peopledetect.cpp + /**@example samples/cpp/peopledetect.cpp */ /**@brief Sets coefficients for the linear SVM classifier. - @param _svmdetector coefficients for the linear SVM classifier. + @param svmdetector coefficients for the linear SVM classifier. */ - CV_WRAP virtual void setSVMDetector(InputArray _svmdetector); + CV_WRAP virtual void setSVMDetector(InputArray svmdetector); - /** @brief Reads HOGDescriptor parameters from a file node. + /** @brief Reads HOGDescriptor parameters from a cv::FileNode. @param fn File node */ virtual bool read(FileNode& fn); - /** @brief Stores HOGDescriptor parameters in a file storage. + /** @brief Stores HOGDescriptor parameters in a cv::FileStorage. @param fs File storage @param objname Object name */ virtual void write(FileStorage& fs, const String& objname) const; - /** @brief loads coefficients for the linear SVM classifier from a file - @param filename Name of the file to read. + /** @brief loads HOGDescriptor parameters and coefficients for the linear SVM classifier from a file. + @param filename Path of the file to read. @param objname The optional name of the node to read (if empty, the first top-level node will be used). */ CV_WRAP virtual bool load(const String& filename, const String& objname = String()); - /** @brief saves coefficients for the linear SVM classifier to a file + /** @brief saves HOGDescriptor parameters and coefficients for the linear SVM classifier to a file @param filename File name @param objname Object name */ @@ -478,7 +480,7 @@ struct CV_EXPORTS_W HOGDescriptor */ virtual void copyTo(HOGDescriptor& c) const; - /**@example train_HOG.cpp + /**@example samples/cpp/train_HOG.cpp */ /** @brief Computes HOG descriptors of given image. @param img Matrix of the type CV_8U containing an image where HOG features will be calculated. @@ -497,13 +499,13 @@ struct CV_EXPORTS_W HOGDescriptor @param foundLocations Vector of point where each point contains left-top corner point of detected object boundaries. @param weights Vector that will contain confidence values for each detected object. @param hitThreshold Threshold for the distance between features and SVM classifying plane. - Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient). + Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. @param winStride Window stride. It must be a multiple of block stride. @param padding Padding - @param searchLocations Vector of Point includes set of requrested locations to be evaluated. + @param searchLocations Vector of Point includes set of requested locations to be evaluated. */ - CV_WRAP virtual void detect(const Mat& img, CV_OUT std::vector& foundLocations, + CV_WRAP virtual void detect(InputArray img, CV_OUT std::vector& foundLocations, CV_OUT std::vector& weights, double hitThreshold = 0, Size winStride = Size(), Size padding = Size(), @@ -513,13 +515,13 @@ struct CV_EXPORTS_W HOGDescriptor @param img Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. @param foundLocations Vector of point where each point contains left-top corner point of detected object boundaries. @param hitThreshold Threshold for the distance between features and SVM classifying plane. - Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient). + Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. @param winStride Window stride. It must be a multiple of block stride. @param padding Padding @param searchLocations Vector of Point includes locations to search. */ - virtual void detect(const Mat& img, CV_OUT std::vector& foundLocations, + virtual void detect(InputArray img, CV_OUT std::vector& foundLocations, double hitThreshold = 0, Size winStride = Size(), Size padding = Size(), const std::vector& searchLocations=std::vector()) const; @@ -530,7 +532,7 @@ struct CV_EXPORTS_W HOGDescriptor @param foundLocations Vector of rectangles where each rectangle contains the detected object. @param foundWeights Vector that will contain confidence values for each detected object. @param hitThreshold Threshold for the distance between features and SVM classifying plane. - Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient). + Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. @param winStride Window stride. It must be a multiple of block stride. @param padding Padding @@ -548,7 +550,7 @@ struct CV_EXPORTS_W HOGDescriptor @param img Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. @param foundLocations Vector of rectangles where each rectangle contains the detected object. @param hitThreshold Threshold for the distance between features and SVM classifying plane. - Usually it is 0 and should be specfied in the detector coefficients (as the last free coefficient). + Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. @param winStride Window stride. It must be a multiple of block stride. @param padding Padding @@ -568,14 +570,14 @@ struct CV_EXPORTS_W HOGDescriptor @param paddingTL Padding from top-left @param paddingBR Padding from bottom-right */ - CV_WRAP virtual void computeGradient(const Mat& img, CV_OUT Mat& grad, CV_OUT Mat& angleOfs, + CV_WRAP virtual void computeGradient(InputArray img, InputOutputArray grad, InputOutputArray angleOfs, Size paddingTL = Size(), Size paddingBR = Size()) const; /** @brief Returns coefficients of the classifier trained for people detection (for 64x128 windows). */ CV_WRAP static std::vector getDefaultPeopleDetector(); - /**@example hog.cpp + /**@example samples/tapi/hog.cpp */ /** @brief Returns coefficients of the classifier trained for people detection (for 48x96 windows). */ @@ -603,7 +605,7 @@ struct CV_EXPORTS_W HOGDescriptor CV_PROP double winSigma; //! histogramNormType - CV_PROP int histogramNormType; + CV_PROP HOGDescriptor::HistogramNormType histogramNormType; //! L2-Hys normalization method shrinkage. CV_PROP double L2HysThreshold; @@ -632,12 +634,12 @@ struct CV_EXPORTS_W HOGDescriptor @param foundLocations Vector of Point where each Point is detected object's top-left point. @param confidences confidences @param hitThreshold Threshold for the distance between features and SVM classifying plane. Usually - it is 0 and should be specfied in the detector coefficients (as the last free coefficient). But if + it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here @param winStride winStride @param padding padding */ - virtual void detectROI(const cv::Mat& img, const std::vector &locations, + virtual void detectROI(InputArray img, const std::vector &locations, CV_OUT std::vector& foundLocations, CV_OUT std::vector& confidences, double hitThreshold = 0, cv::Size winStride = Size(), cv::Size padding = Size()) const; @@ -646,21 +648,16 @@ struct CV_EXPORTS_W HOGDescriptor @param img Matrix of the type CV_8U or CV_8UC3 containing an image where objects are detected. @param foundLocations Vector of rectangles where each rectangle contains the detected object. @param locations Vector of DetectionROI - @param hitThreshold Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specfied + @param hitThreshold Threshold for the distance between features and SVM classifying plane. Usually it is 0 and should be specified in the detector coefficients (as the last free coefficient). But if the free coefficient is omitted (which is allowed), you can specify it manually here. @param groupThreshold Minimum possible number of rectangles minus 1. The threshold is used in a group of rectangles to retain it. */ - virtual void detectMultiScaleROI(const cv::Mat& img, + virtual void detectMultiScaleROI(InputArray img, CV_OUT std::vector& foundLocations, std::vector& locations, double hitThreshold = 0, int groupThreshold = 0) const; - /** @brief read/parse Dalal's alt model file - @param modelfile Path of Dalal's alt model file. - */ - void readALTModel(String modelfile); - /** @brief Groups the object candidate rectangles. @param rectList Input/output vector of rectangles. Output vector includes retained and grouped rectangles. (The Python list is not modified in place.) @param weights Input/output vector of weights of rectangles. Output vector includes weights of retained and grouped rectangles. (The Python list is not modified in place.) @@ -670,14 +667,54 @@ struct CV_EXPORTS_W HOGDescriptor void groupRectangles(std::vector& rectList, std::vector& weights, int groupThreshold, double eps) const; }; -//! @} objdetect +class CV_EXPORTS_W QRCodeDetector +{ +public: + CV_WRAP QRCodeDetector(); + ~QRCodeDetector(); + + /** @brief sets the epsilon used during the horizontal scan of QR code stop marker detection. + @param epsX Epsilon neighborhood, which allows you to determine the horizontal pattern + of the scheme 1:1:3:1:1 according to QR code standard. + */ + CV_WRAP void setEpsX(double epsX); + /** @brief sets the epsilon used during the vertical scan of QR code stop marker detection. + @param epsY Epsilon neighborhood, which allows you to determine the vertical pattern + of the scheme 1:1:3:1:1 according to QR code standard. + */ + CV_WRAP void setEpsY(double epsY); + + /** @brief Detects QR code in image and returns the quadrangle containing the code. + @param img grayscale or color (BGR) image containing (or not) QR code. + @param points Output vector of vertices of the minimum-area quadrangle containing the code. + */ + CV_WRAP bool detect(InputArray img, OutputArray points) const; + /** @brief Decodes QR code in image once it's found by the detect() method. + Returns UTF8-encoded output string or empty string if the code cannot be decoded. + + @param img grayscale or color (BGR) image containing QR code. + @param points Quadrangle vertices found by detect() method (or some other algorithm). + @param straight_qrcode The optional output image containing rectified and binarized QR code + */ + CV_WRAP std::string decode(InputArray img, InputArray points, OutputArray straight_qrcode = noArray()); + + /** @brief Both detects and decodes QR code + + @param img grayscale or color (BGR) image containing QR code. + @param points opiotnal output array of vertices of the found QR code quadrangle. Will be empty if not found. + @param straight_qrcode The optional output image containing rectified and binarized QR code + */ + CV_WRAP std::string detectAndDecode(InputArray img, OutputArray points=noArray(), + OutputArray straight_qrcode = noArray()); +protected: + struct Impl; + Ptr p; +}; + +//! @} objdetect } #include "opencv2/objdetect/detection_based_tracker.hpp" -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/objdetect/objdetect_c.h" -#endif - #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/detection_based_tracker.hpp b/lib/3rdParty/OpenCV/include/opencv2/objdetect/detection_based_tracker.hpp similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/detection_based_tracker.hpp rename to lib/3rdParty/OpenCV/include/opencv2/objdetect/detection_based_tracker.hpp index 07dd58749..18cde13ea 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/detection_based_tracker.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/objdetect/detection_based_tracker.hpp @@ -46,10 +46,6 @@ #include -// After this condition removal update blacklist for bindings: modules/python/common.cmake -#if defined(__linux__) || defined(LINUX) || defined(__APPLE__) || defined(__ANDROID__) || \ - defined(CV_CXX11) - #include namespace cv @@ -222,6 +218,5 @@ class CV_EXPORTS DetectionBasedTracker //! @} objdetect } //end of cv namespace -#endif #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/objdetect.hpp b/lib/3rdParty/OpenCV/include/opencv2/objdetect/objdetect.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/objdetect.hpp rename to lib/3rdParty/OpenCV/include/opencv2/objdetect/objdetect.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/opencv.hpp b/lib/3rdParty/OpenCV/include/opencv2/opencv.hpp similarity index 98% rename from lib/3rdParty/OpenCV3.4/include/opencv2/opencv.hpp rename to lib/3rdParty/OpenCV/include/opencv2/opencv.hpp index 532d7a32d..40481587f 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/opencv.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/opencv.hpp @@ -58,6 +58,9 @@ #ifdef HAVE_OPENCV_FEATURES2D #include "opencv2/features2d.hpp" #endif +#ifdef HAVE_OPENCV_DNN +#include "opencv2/dnn.hpp" +#endif #ifdef HAVE_OPENCV_FLANN #include "opencv2/flann.hpp" #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/opencv_modules.hpp b/lib/3rdParty/OpenCV/include/opencv2/opencv_modules.hpp similarity index 89% rename from lib/3rdParty/OpenCV3.4/include/opencv2/opencv_modules.hpp rename to lib/3rdParty/OpenCV/include/opencv2/opencv_modules.hpp index d0f2dc58c..c9e24d845 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/opencv_modules.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/opencv_modules.hpp @@ -15,18 +15,16 @@ #define HAVE_OPENCV_DNN #define HAVE_OPENCV_FEATURES2D #define HAVE_OPENCV_FLANN +#define HAVE_OPENCV_GAPI #define HAVE_OPENCV_HIGHGUI #define HAVE_OPENCV_IMGCODECS #define HAVE_OPENCV_IMGPROC #define HAVE_OPENCV_ML #define HAVE_OPENCV_OBJDETECT #define HAVE_OPENCV_PHOTO -#define HAVE_OPENCV_SHAPE #define HAVE_OPENCV_STITCHING -#define HAVE_OPENCV_SUPERRES #define HAVE_OPENCV_VIDEO #define HAVE_OPENCV_VIDEOIO -#define HAVE_OPENCV_VIDEOSTAB #define HAVE_OPENCV_WORLD diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/photo.hpp b/lib/3rdParty/OpenCV/include/opencv2/photo.hpp similarity index 90% rename from lib/3rdParty/OpenCV3.4/include/opencv2/photo.hpp rename to lib/3rdParty/OpenCV/include/opencv2/photo.hpp index 6651ac80a..9ef1c0fe9 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/photo.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/photo.hpp @@ -48,16 +48,35 @@ /** @defgroup photo Computational Photography + +This module includes photo processing algorithms @{ + @defgroup photo_inpaint Inpainting @defgroup photo_denoise Denoising @defgroup photo_hdr HDR imaging This section describes high dynamic range imaging algorithms namely tonemapping, exposure alignment, camera calibration with multiple exposures and exposure fusion. + @defgroup photo_decolor Contrast Preserving Decolorization + +Useful links: + +http://www.cse.cuhk.edu.hk/leojia/projects/color2gray/index.html + @defgroup photo_clone Seamless Cloning + +Useful links: + +https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp + @defgroup photo_render Non-Photorealistic Rendering - @defgroup photo_c C API + +Useful links: + +http://www.inf.ufrgs.br/~eslgastal/DomainTransform + +https://www.learnopencv.com/non-photorealistic-rendering-using-opencv-python-c/ @} */ @@ -67,24 +86,13 @@ namespace cv //! @addtogroup photo //! @{ +//! @addtogroup photo_inpaint +//! @{ //! the inpainting algorithm enum { - INPAINT_NS = 0, // Navier-Stokes algorithm - INPAINT_TELEA = 1 // A. Telea algorithm -}; - -enum -{ - NORMAL_CLONE = 1, - MIXED_CLONE = 2, - MONOCHROME_TRANSFER = 3 -}; - -enum -{ - RECURS_FILTER = 1, - NORMCONV_FILTER = 2 + INPAINT_NS = 0, //!< Use Navier-Stokes based method + INPAINT_TELEA = 1 //!< Use the algorithm proposed by Alexandru Telea @cite Telea04 }; /** @brief Restores the selected region in an image using the region neighborhood. @@ -95,9 +103,7 @@ needs to be inpainted. @param dst Output image with the same size and type as src . @param inpaintRadius Radius of a circular neighborhood of each point inpainted that is considered by the algorithm. -@param flags Inpainting method that could be one of the following: -- **INPAINT_NS** Navier-Stokes based method [Navier01] -- **INPAINT_TELEA** Method by Alexandru Telea @cite Telea04 . +@param flags Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA The function reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable @@ -106,12 +112,14 @@ objects from still images or video. See @@ -216,7 +224,7 @@ CV_EXPORTS_W void fastNlMeansDenoisingMulti( InputArrayOfArrays srcImgs, OutputA int imgToDenoiseIndex, int temporalWindowSize, float h = 3, int templateWindowSize = 7, int searchWindowSize = 21); -/** @brief Modification of fastNlMeansDenoising function for images sequence where consequtive images have been +/** @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see @@ -328,8 +336,8 @@ class CV_EXPORTS_W Tonemap : public Algorithm public: /** @brief Tonemaps image - @param src source image - 32-bit 3-channel Mat - @param dst destination image - 32-bit 3-channel Mat with values in [0, 1] range + @param src source image - CV_32FC3 Mat (float 32 bits 3 channels) + @param dst destination image - CV_32FC3 Mat with values in [0, 1] range */ CV_WRAP virtual void process(InputArray src, OutputArray dst) = 0; @@ -376,43 +384,6 @@ results, default value is 0.85. */ CV_EXPORTS_W Ptr createTonemapDrago(float gamma = 1.0f, float saturation = 1.0f, float bias = 0.85f); -/** @brief This algorithm decomposes image into two layers: base layer and detail layer using bilateral filter -and compresses contrast of the base layer thus preserving all the details. - -This implementation uses regular bilateral filter from opencv. - -Saturation enhancement is possible as in ocvTonemapDrago. - -For more information see @cite DD02 . - */ -class CV_EXPORTS_W TonemapDurand : public Tonemap -{ -public: - - CV_WRAP virtual float getSaturation() const = 0; - CV_WRAP virtual void setSaturation(float saturation) = 0; - - CV_WRAP virtual float getContrast() const = 0; - CV_WRAP virtual void setContrast(float contrast) = 0; - - CV_WRAP virtual float getSigmaSpace() const = 0; - CV_WRAP virtual void setSigmaSpace(float sigma_space) = 0; - - CV_WRAP virtual float getSigmaColor() const = 0; - CV_WRAP virtual void setSigmaColor(float sigma_color) = 0; -}; - -/** @brief Creates TonemapDurand object - -@param gamma gamma value for gamma correction. See createTonemap -@param contrast resulting contrast on logarithmic scale, i. e. log(max / min), where max and min -are maximum and minimum luminance values of the resulting image. -@param saturation saturation enhancement value. See createTonemapDrago -@param sigma_space bilateral filter sigma in color space -@param sigma_color bilateral filter sigma in coordinate space - */ -CV_EXPORTS_W Ptr -createTonemapDurand(float gamma = 1.0f, float contrast = 4.0f, float saturation = 1.0f, float sigma_space = 2.0f, float sigma_color = 2.0f); /** @brief This is a global tonemapping operator that models human visual system. @@ -502,7 +473,7 @@ class CV_EXPORTS_W AlignMTB : public AlignExposures { public: CV_WRAP virtual void process(InputArrayOfArrays src, std::vector& dst, - InputArray times, InputArray response) = 0; + InputArray times, InputArray response) CV_OVERRIDE = 0; /** @brief Short version of process, that doesn't take extra arguments. @@ -646,7 +617,7 @@ class CV_EXPORTS_W MergeDebevec : public MergeExposures { public: CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, - InputArray times, InputArray response) = 0; + InputArray times, InputArray response) CV_OVERRIDE = 0; CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, InputArray times) = 0; }; @@ -669,7 +640,7 @@ class CV_EXPORTS_W MergeMertens : public MergeExposures { public: CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, - InputArray times, InputArray response) = 0; + InputArray times, InputArray response) CV_OVERRIDE = 0; /** @brief Short version of process, that doesn't take extra arguments. @param src vector of input images @@ -705,7 +676,7 @@ class CV_EXPORTS_W MergeRobertson : public MergeExposures { public: CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, - InputArray times, InputArray response) = 0; + InputArray times, InputArray response) CV_OVERRIDE = 0; CV_WRAP virtual void process(InputArrayOfArrays src, OutputArray dst, InputArray times) = 0; }; @@ -715,6 +686,9 @@ CV_EXPORTS_W Ptr createMergeRobertson(); //! @} photo_hdr +//! @addtogroup photo_decolor +//! @{ + /** @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized black-and-white photograph rendering, and in many single channel image processing applications @cite CL12 . @@ -727,10 +701,25 @@ This function is to be applied on color images. */ CV_EXPORTS_W void decolor( InputArray src, OutputArray grayscale, OutputArray color_boost); +//! @} photo_decolor + //! @addtogroup photo_clone //! @{ -/** @example cloning_demo.cpp + +//! seamlessClone algorithm flags +enum +{ + /** The power of the method is fully expressed when inserting objects with complex outlines into a new background*/ + NORMAL_CLONE = 1, + /** The classic method, color-based selection and alpha masking might be time consuming and often leaves an undesirable + halo. Seamless cloning, even averaged with the original image, is not effective. Mixed seamless cloning based on a loose selection proves effective.*/ + MIXED_CLONE = 2, + /** Monochrome transfer allows the user to easily replace certain features of one object by alternative features.*/ + MONOCHROME_TRANSFER = 3}; + + +/** @example samples/cpp/tutorial_code/photo/seamless_cloning/cloning_demo.cpp An example using seamlessClone function */ /** @brief Image editing tasks concern either global changes (color/intensity corrections, filters, @@ -744,15 +733,7 @@ content @cite PM03 . @param mask Input 8-bit 1 or 3-channel image. @param p Point in dst image where object is placed. @param blend Output image with the same size and type as dst. -@param flags Cloning method that could be one of the following: -- **NORMAL_CLONE** The power of the method is fully expressed when inserting objects with -complex outlines into a new background -- **MIXED_CLONE** The classic method, color-based selection and alpha masking might be time -consuming and often leaves an undesirable halo. Seamless cloning, even averaged with the -original image, is not effective. Mixed seamless cloning based on a loose selection proves -effective. -- **MONOCHROME_TRANSFER** Monochrome transfer allows the user to easily replace certain features of -one object by alternative features. +@param flags Cloning method that could be cv::NORMAL_CLONE, cv::MIXED_CLONE or cv::MONOCHROME_TRANSFER */ CV_EXPORTS_W void seamlessClone( InputArray src, InputArray dst, InputArray mask, Point p, OutputArray blend, int flags); @@ -787,18 +768,16 @@ CV_EXPORTS_W void illuminationChange(InputArray src, InputArray mask, OutputArra float alpha = 0.2f, float beta = 0.4f); /** @brief By retaining only the gradients at edge locations, before integrating with the Poisson solver, one -washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge -Detector is used. +washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used. @param src Input 8-bit 3-channel image. @param mask Input 8-bit 1 or 3-channel image. @param dst Output image with the same size and type as src. -@param low_threshold Range from 0 to 100. +@param low_threshold %Range from 0 to 100. @param high_threshold Value \> 100. @param kernel_size The size of the Sobel kernel to be used. -**NOTE:** - +@note The algorithm assumes that the color of the source image is close to that of the destination. This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image. @@ -812,16 +791,21 @@ CV_EXPORTS_W void textureFlattening(InputArray src, InputArray mask, OutputArray //! @addtogroup photo_render //! @{ +//! Edge preserving filters +enum +{ + RECURS_FILTER = 1, //!< Recursive Filtering + NORMCONV_FILTER = 2 //!< Normalized Convolution Filtering +}; + /** @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters are used in many different applications @cite EM11 . @param src Input 8-bit 3-channel image. @param dst Output 8-bit 3-channel image. -@param flags Edge preserving filters: -- **RECURS_FILTER** = 1 -- **NORMCONV_FILTER** = 2 -@param sigma_s Range between 0 to 200. -@param sigma_r Range between 0 to 1. +@param flags Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTER +@param sigma_s %Range between 0 to 200. +@param sigma_r %Range between 0 to 1. */ CV_EXPORTS_W void edgePreservingFilter(InputArray src, OutputArray dst, int flags = 1, float sigma_s = 60, float sigma_r = 0.4f); @@ -830,13 +814,13 @@ CV_EXPORTS_W void edgePreservingFilter(InputArray src, OutputArray dst, int flag @param src Input 8-bit 3-channel image. @param dst Output image with the same size and type as src. -@param sigma_s Range between 0 to 200. -@param sigma_r Range between 0 to 1. +@param sigma_s %Range between 0 to 200. +@param sigma_r %Range between 0 to 1. */ CV_EXPORTS_W void detailEnhance(InputArray src, OutputArray dst, float sigma_s = 10, float sigma_r = 0.15f); -/** @example npr_demo.cpp +/** @example samples/cpp/tutorial_code/photo/non_photorealistic_rendering/npr_demo.cpp An example using non-photorealistic line drawing functions */ /** @brief Pencil-like non-photorealistic line drawing @@ -844,9 +828,9 @@ An example using non-photorealistic line drawing functions @param src Input 8-bit 3-channel image. @param dst1 Output 8-bit 1-channel image. @param dst2 Output image with the same size and type as src. -@param sigma_s Range between 0 to 200. -@param sigma_r Range between 0 to 1. -@param shade_factor Range between 0 to 0.1. +@param sigma_s %Range between 0 to 200. +@param sigma_r %Range between 0 to 1. +@param shade_factor %Range between 0 to 0.1. */ CV_EXPORTS_W void pencilSketch(InputArray src, OutputArray dst1, OutputArray dst2, float sigma_s = 60, float sigma_r = 0.07f, float shade_factor = 0.02f); @@ -857,8 +841,8 @@ contrast while preserving, or enhancing, high-contrast features. @param src Input 8-bit 3-channel image. @param dst Output image with the same size and type as src. -@param sigma_s Range between 0 to 200. -@param sigma_r Range between 0 to 1. +@param sigma_s %Range between 0 to 200. +@param sigma_r %Range between 0 to 1. */ CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 60, float sigma_r = 0.45f); @@ -869,8 +853,4 @@ CV_EXPORTS_W void stylization(InputArray src, OutputArray dst, float sigma_s = 6 } // cv -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/photo/photo_c.h" -#endif - #endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/photo/cuda.hpp b/lib/3rdParty/OpenCV/include/opencv2/photo/cuda.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/photo/cuda.hpp rename to lib/3rdParty/OpenCV/include/opencv2/photo/cuda.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/photo/legacy/constants_c.h b/lib/3rdParty/OpenCV/include/opencv2/photo/legacy/constants_c.h new file mode 100644 index 000000000..ec1d4403f --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/photo/legacy/constants_c.h @@ -0,0 +1,14 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_PHOTO_LEGACY_CONSTANTS_H +#define OPENCV_PHOTO_LEGACY_CONSTANTS_H + +enum InpaintingModes +{ + CV_INPAINT_NS =0, + CV_INPAINT_TELEA =1 +}; + +#endif // OPENCV_PHOTO_LEGACY_CONSTANTS_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/photo/photo.hpp b/lib/3rdParty/OpenCV/include/opencv2/photo/photo.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/photo/photo.hpp rename to lib/3rdParty/OpenCV/include/opencv2/photo/photo.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching.hpp similarity index 83% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching.hpp index 387e1dec7..016e7d802 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching.hpp @@ -109,6 +109,18 @@ namespace cv { //! @addtogroup stitching //! @{ +/** @example samples/cpp/stitching.cpp +A basic example on image stitching +*/ + +/** @example samples/python/stitching.py +A basic example on image stitching in Python. +*/ + +/** @example samples/cpp/stitching_detailed.cpp +A detailed example on image stitching +*/ + /** @brief High level image stitcher. It's possible to use this class without being aware of the entire stitching pipeline. However, to @@ -116,15 +128,27 @@ be able to achieve higher stitching stability and quality of the final images at familiar with the theory is recommended. @note - - A basic example on image stitching can be found at - opencv_source_code/samples/cpp/stitching.cpp - - A detailed example on image stitching can be found at - opencv_source_code/samples/cpp/stitching_detailed.cpp +- A basic example on image stitching can be found at + opencv_source_code/samples/cpp/stitching.cpp +- A basic example on image stitching in Python can be found at + opencv_source_code/samples/python/stitching.py +- A detailed example on image stitching can be found at + opencv_source_code/samples/cpp/stitching_detailed.cpp */ class CV_EXPORTS_W Stitcher { public: - enum { ORIG_RESOL = -1 }; + /** + * When setting a resolution for stitching, this values is a placeholder + * for preserving the original resolution. + */ +#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900/*MSVS 2015*/) + static constexpr double ORIG_RESOL = -1.0; +#else + // support MSVS 2013 + static const double ORIG_RESOL; // Initialized in stitcher.cpp +#endif + enum Status { OK = 0, @@ -132,6 +156,7 @@ class CV_EXPORTS_W Stitcher ERR_HOMOGRAPHY_EST_FAIL = 2, ERR_CAMERA_PARAMS_ADJUST_FAIL = 3 }; + enum Mode { /** Mode for creating photo panoramas. Expects images under perspective @@ -149,22 +174,14 @@ class CV_EXPORTS_W Stitcher }; - // Stitcher() {} - /** @brief Creates a stitcher with the default parameters. - - @param try_use_gpu Flag indicating whether GPU should be used whenever it's possible. - @return Stitcher class instance. - */ - static Stitcher createDefault(bool try_use_gpu = false); /** @brief Creates a Stitcher configured in one of the stitching modes. @param mode Scenario for stitcher operation. This is usually determined by source of images to stitch and their transformation. Default parameters will be chosen for operation in given scenario. - @param try_use_gpu Flag indicating whether GPU should be used whenever it's possible. @return Stitcher class instance. */ - static Ptr create(Mode mode = PANORAMA, bool try_use_gpu = false); + CV_WRAP static Ptr create(Mode mode = Stitcher::PANORAMA); CV_WRAP double registrationResol() const { return registr_resol_; } CV_WRAP void setRegistrationResol(double resol_mpx) { registr_resol_ = resol_mpx; } @@ -181,12 +198,15 @@ class CV_EXPORTS_W Stitcher CV_WRAP bool waveCorrection() const { return do_wave_correct_; } CV_WRAP void setWaveCorrection(bool flag) { do_wave_correct_ = flag; } + CV_WRAP InterpolationFlags interpolationFlags() const { return interp_flags_; } + CV_WRAP void setInterpolationFlags(InterpolationFlags interp_flags) { interp_flags_ = interp_flags; } + detail::WaveCorrectKind waveCorrectKind() const { return wave_correct_kind_; } void setWaveCorrectKind(detail::WaveCorrectKind kind) { wave_correct_kind_ = kind; } - Ptr featuresFinder() { return features_finder_; } - const Ptr featuresFinder() const { return features_finder_; } - void setFeaturesFinder(Ptr features_finder) + Ptr featuresFinder() { return features_finder_; } + const Ptr featuresFinder() const { return features_finder_; } + void setFeaturesFinder(Ptr features_finder) { features_finder_ = features_finder; } Ptr featuresMatcher() { return features_matcher_; } @@ -206,12 +226,10 @@ class CV_EXPORTS_W Stitcher void setBundleAdjuster(Ptr bundle_adjuster) { bundle_adjuster_ = bundle_adjuster; } - /* TODO OpenCV ABI 4.x Ptr estimator() { return estimator_; } const Ptr estimator() const { return estimator_; } void setEstimator(Ptr estimator) { estimator_ = estimator; } - */ Ptr warper() { return warper_; } const Ptr warper() const { return warper_; } @@ -230,18 +248,16 @@ class CV_EXPORTS_W Stitcher const Ptr blender() const { return blender_; } void setBlender(Ptr b) { blender_ = b; } - /** @overload */ - CV_WRAP Status estimateTransform(InputArrayOfArrays images); /** @brief These functions try to match the given images and to estimate rotations of each camera. @note Use the functions only if you're aware of the stitching pipeline, otherwise use Stitcher::stitch. @param images Input images. - @param rois Region of interest rectangles. + @param masks Masks for each input image specifying where to look for keypoints (optional). @return Status code. */ - Status estimateTransform(InputArrayOfArrays images, const std::vector > &rois); + CV_WRAP Status estimateTransform(InputArrayOfArrays images, InputArrayOfArrays masks = noArray()); /** @overload */ CV_WRAP Status composePanorama(OutputArray pano); @@ -263,19 +279,18 @@ class CV_EXPORTS_W Stitcher /** @brief These functions try to stitch the given images. @param images Input images. - @param rois Region of interest rectangles. + @param masks Masks for each input image specifying where to look for keypoints (optional). @param pano Final pano. @return Status code. */ - Status stitch(InputArrayOfArrays images, const std::vector > &rois, OutputArray pano); + CV_WRAP Status stitch(InputArrayOfArrays images, InputArrayOfArrays masks, OutputArray pano); std::vector component() const { return indices_; } std::vector cameras() const { return cameras_; } CV_WRAP double workScale() const { return work_scale_; } + UMat resultMask() const { return result_mask_; } private: - //Stitcher() {} - Status matchImages(); Status estimateCameraParams(); @@ -283,13 +298,12 @@ class CV_EXPORTS_W Stitcher double seam_est_resol_; double compose_resol_; double conf_thresh_; - Ptr features_finder_; + InterpolationFlags interp_flags_; + Ptr features_finder_; Ptr features_matcher_; cv::UMat matching_mask_; Ptr bundle_adjuster_; - /* TODO OpenCV ABI 4.x Ptr estimator_; - */ bool do_wave_correct_; detail::WaveCorrectKind wave_correct_kind_; Ptr warper_; @@ -298,20 +312,29 @@ class CV_EXPORTS_W Stitcher Ptr blender_; std::vector imgs_; - std::vector > rois_; + std::vector masks_; std::vector full_img_sizes_; std::vector features_; std::vector pairwise_matches_; std::vector seam_est_imgs_; std::vector indices_; std::vector cameras_; + UMat result_mask_; double work_scale_; double seam_scale_; double seam_work_aspect_; double warped_image_scale_; }; -CV_EXPORTS_W Ptr createStitcher(bool try_use_gpu = false); +/** + * @deprecated use Stitcher::create + */ +CV_DEPRECATED Ptr createStitcher(bool try_use_gpu = false); + +/** + * @deprecated use Stitcher::create + */ +CV_DEPRECATED Ptr createStitcherScans(bool try_use_gpu = false); //! @} stitching diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/autocalib.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/autocalib.hpp similarity index 94% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/autocalib.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/autocalib.hpp index 19705e27a..8eb6212c6 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/autocalib.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/autocalib.hpp @@ -64,7 +64,7 @@ undergoes rotations around its centre only. See "Construction of Panoramic Image Mosaics with Global and Local Alignment" by Heung-Yeung Shum and Richard Szeliski. */ -void CV_EXPORTS focalsFromHomography(const Mat &H, double &f0, double &f1, bool &f0_ok, bool &f1_ok); +void CV_EXPORTS_W focalsFromHomography(const Mat &H, double &f0, double &f1, bool &f0_ok, bool &f1_ok); /** @brief Estimates focal lengths for each given camera. @@ -76,7 +76,7 @@ void CV_EXPORTS estimateFocal(const std::vector &features, const std::vector &pairwise_matches, std::vector &focals); -bool CV_EXPORTS calibrateRotatingCamera(const std::vector &Hs, Mat &K); +bool CV_EXPORTS_W calibrateRotatingCamera(const std::vector &Hs,CV_OUT Mat &K); //! @} stitching_autocalib diff --git a/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/blenders.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/blenders.hpp new file mode 100644 index 000000000..ec35aa7cb --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/blenders.hpp @@ -0,0 +1,184 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_STITCHING_BLENDERS_HPP +#define OPENCV_STITCHING_BLENDERS_HPP + +#if defined(NO) +# warning Detected Apple 'NO' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. +#endif + +#include "opencv2/core.hpp" +#include "opencv2/core/cuda.hpp" + +namespace cv { +namespace detail { + +//! @addtogroup stitching_blend +//! @{ + +/** @brief Base class for all blenders. + +Simple blender which puts one image over another +*/ +class CV_EXPORTS_W Blender +{ +public: + virtual ~Blender() {} + + enum { NO, FEATHER, MULTI_BAND }; + CV_WRAP static Ptr createDefault(int type, bool try_gpu = false); + + /** @brief Prepares the blender for blending. + + @param corners Source images top-left corners + @param sizes Source image sizes + */ + CV_WRAP virtual void prepare(const std::vector &corners, const std::vector &sizes); + /** @overload */ + CV_WRAP virtual void prepare(Rect dst_roi); + /** @brief Processes the image. + + @param img Source image + @param mask Source image mask + @param tl Source image top-left corners + */ + CV_WRAP virtual void feed(InputArray img, InputArray mask, Point tl); + /** @brief Blends and returns the final pano. + + @param dst Final pano + @param dst_mask Final pano mask + */ + CV_WRAP virtual void blend(CV_IN_OUT InputOutputArray dst,CV_IN_OUT InputOutputArray dst_mask); + +protected: + UMat dst_, dst_mask_; + Rect dst_roi_; +}; + +/** @brief Simple blender which mixes images at its borders. + */ +class CV_EXPORTS_W FeatherBlender : public Blender +{ +public: + CV_WRAP FeatherBlender(float sharpness = 0.02f); + + CV_WRAP float sharpness() const { return sharpness_; } + CV_WRAP void setSharpness(float val) { sharpness_ = val; } + + CV_WRAP void prepare(Rect dst_roi) CV_OVERRIDE; + CV_WRAP void feed(InputArray img, InputArray mask, Point tl) CV_OVERRIDE; + CV_WRAP void blend(InputOutputArray dst, InputOutputArray dst_mask) CV_OVERRIDE; + + //! Creates weight maps for fixed set of source images by their masks and top-left corners. + //! Final image can be obtained by simple weighting of the source images. + CV_WRAP Rect createWeightMaps(const std::vector &masks, const std::vector &corners, + CV_IN_OUT std::vector &weight_maps); + +private: + float sharpness_; + UMat weight_map_; + UMat dst_weight_map_; +}; + +inline FeatherBlender::FeatherBlender(float _sharpness) { setSharpness(_sharpness); } + +/** @brief Blender which uses multi-band blending algorithm (see @cite BA83). + */ +class CV_EXPORTS_W MultiBandBlender : public Blender +{ +public: + CV_WRAP MultiBandBlender(int try_gpu = false, int num_bands = 5, int weight_type = CV_32F); + + CV_WRAP int numBands() const { return actual_num_bands_; } + CV_WRAP void setNumBands(int val) { actual_num_bands_ = val; } + + CV_WRAP void prepare(Rect dst_roi) CV_OVERRIDE; + CV_WRAP void feed(InputArray img, InputArray mask, Point tl) CV_OVERRIDE; + CV_WRAP void blend(CV_IN_OUT InputOutputArray dst, CV_IN_OUT InputOutputArray dst_mask) CV_OVERRIDE; + +private: + int actual_num_bands_, num_bands_; + std::vector dst_pyr_laplace_; + std::vector dst_band_weights_; + Rect dst_roi_final_; + bool can_use_gpu_; + int weight_type_; //CV_32F or CV_16S +#if defined(HAVE_OPENCV_CUDAARITHM) && defined(HAVE_OPENCV_CUDAWARPING) + std::vector gpu_dst_pyr_laplace_; + std::vector gpu_dst_band_weights_; + std::vector gpu_tl_points_; + std::vector gpu_imgs_with_border_; + std::vector > gpu_weight_pyr_gauss_vec_; + std::vector > gpu_src_pyr_laplace_vec_; + std::vector > gpu_ups_; + cuda::GpuMat gpu_dst_mask_; + cuda::GpuMat gpu_mask_; + cuda::GpuMat gpu_img_; + cuda::GpuMat gpu_weight_map_; + cuda::GpuMat gpu_add_mask_; + int gpu_feed_idx_; + bool gpu_initialized_; +#endif +}; + + +////////////////////////////////////////////////////////////////////////////// +// Auxiliary functions + +void CV_EXPORTS_W normalizeUsingWeightMap(InputArray weight, CV_IN_OUT InputOutputArray src); + +void CV_EXPORTS_W createWeightMap(InputArray mask, float sharpness, CV_IN_OUT InputOutputArray weight); + +void CV_EXPORTS_W createLaplacePyr(InputArray img, int num_levels, CV_IN_OUT std::vector& pyr); +void CV_EXPORTS_W createLaplacePyrGpu(InputArray img, int num_levels, CV_IN_OUT std::vector& pyr); + +// Restores source image +void CV_EXPORTS_W restoreImageFromLaplacePyr(CV_IN_OUT std::vector& pyr); +void CV_EXPORTS_W restoreImageFromLaplacePyrGpu(CV_IN_OUT std::vector& pyr); + +//! @} + +} // namespace detail +} // namespace cv + +#endif // OPENCV_STITCHING_BLENDERS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/camera.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/camera.hpp similarity index 89% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/camera.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/camera.hpp index 07c6b5b00..14ecf60f3 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/camera.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/camera.hpp @@ -55,19 +55,19 @@ namespace detail { @note Translation is assumed to be zero during the whole stitching pipeline. : */ -struct CV_EXPORTS CameraParams +struct CV_EXPORTS_W_SIMPLE CameraParams { CameraParams(); CameraParams(const CameraParams& other); CameraParams& operator =(const CameraParams& other); - Mat K() const; + CV_WRAP Mat K() const; - double focal; // Focal length - double aspect; // Aspect ratio - double ppx; // Principal point X - double ppy; // Principal point Y - Mat R; // Rotation - Mat t; // Translation + CV_PROP_RW double focal; // Focal length + CV_PROP_RW double aspect; // Aspect ratio + CV_PROP_RW double ppx; // Principal point X + CV_PROP_RW double ppy; // Principal point Y + CV_PROP_RW Mat R; // Rotation + CV_PROP_RW Mat t; // Translation }; //! @} diff --git a/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/exposure_compensate.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/exposure_compensate.hpp new file mode 100644 index 000000000..2b76d0923 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/exposure_compensate.hpp @@ -0,0 +1,230 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP +#define OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP + +#if defined(NO) +# warning Detected Apple 'NO' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. +#endif + +#include "opencv2/core.hpp" + +namespace cv { +namespace detail { + +//! @addtogroup stitching_exposure +//! @{ + +/** @brief Base class for all exposure compensators. + */ +class CV_EXPORTS_W ExposureCompensator +{ +public: + ExposureCompensator(): updateGain(true) {} + virtual ~ExposureCompensator() {} + + enum { NO, GAIN, GAIN_BLOCKS, CHANNELS, CHANNELS_BLOCKS }; + CV_WRAP static Ptr createDefault(int type); + + /** + @param corners Source image top-left corners + @param images Source images + @param masks Image masks to update (second value in pair specifies the value which should be used + to detect where image is) + */ + CV_WRAP void feed(const std::vector &corners, const std::vector &images, + const std::vector &masks); + /** @overload */ + virtual void feed(const std::vector &corners, const std::vector &images, + const std::vector > &masks) = 0; + /** @brief Compensate exposure in the specified image. + + @param index Image index + @param corner Image top-left corner + @param image Image to process + @param mask Image mask + */ + CV_WRAP virtual void apply(int index, Point corner, InputOutputArray image, InputArray mask) = 0; + CV_WRAP virtual void getMatGains(CV_OUT std::vector& ) {CV_Error(Error::StsInternal, "");}; + CV_WRAP virtual void setMatGains(std::vector& ) { CV_Error(Error::StsInternal, ""); }; + CV_WRAP void setUpdateGain(bool b) { updateGain = b; }; + CV_WRAP bool getUpdateGain() { return updateGain; }; +protected : + bool updateGain; +}; + +/** @brief Stub exposure compensator which does nothing. + */ +class CV_EXPORTS_W NoExposureCompensator : public ExposureCompensator +{ +public: + void feed(const std::vector &/*corners*/, const std::vector &/*images*/, + const std::vector > &/*masks*/) CV_OVERRIDE { } + CV_WRAP void apply(int /*index*/, Point /*corner*/, InputOutputArray /*image*/, InputArray /*mask*/) CV_OVERRIDE { } + CV_WRAP void getMatGains(CV_OUT std::vector& umv) CV_OVERRIDE { umv.clear(); return; }; + CV_WRAP void setMatGains(std::vector& umv) CV_OVERRIDE { umv.clear(); return; }; +}; + +/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image +intensities, see @cite BL07 and @cite WJ10 for details. + */ +class CV_EXPORTS_W GainCompensator : public ExposureCompensator +{ +public: + // This Constructor only exists to make source level compatibility detector happy + CV_WRAP GainCompensator() + : GainCompensator(1) {} + CV_WRAP GainCompensator(int nr_feeds) + : nr_feeds_(nr_feeds) {} + void feed(const std::vector &corners, const std::vector &images, + const std::vector > &masks) CV_OVERRIDE; + void singleFeed(const std::vector &corners, const std::vector &images, + const std::vector > &masks); + CV_WRAP void apply(int index, Point corner, InputOutputArray image, InputArray mask) CV_OVERRIDE; + CV_WRAP void getMatGains(CV_OUT std::vector& umv) CV_OVERRIDE ; + CV_WRAP void setMatGains(std::vector& umv) CV_OVERRIDE ; + CV_WRAP void setNrFeeds(int nr_feeds) { nr_feeds_ = nr_feeds; } + CV_WRAP int getNrFeeds() { return nr_feeds_; } + std::vector gains() const; + +private: + Mat_ gains_; + int nr_feeds_; +}; + +/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image +intensities on each channel independently. + */ +class CV_EXPORTS_W ChannelsCompensator : public ExposureCompensator +{ +public: + CV_WRAP ChannelsCompensator(int nr_feeds=1) : nr_feeds_(nr_feeds) {} + void feed(const std::vector &corners, const std::vector &images, + const std::vector > &masks) CV_OVERRIDE; + CV_WRAP void apply(int index, Point corner, InputOutputArray image, InputArray mask) CV_OVERRIDE; + CV_WRAP void getMatGains(CV_OUT std::vector& umv) CV_OVERRIDE; + CV_WRAP void setMatGains(std::vector& umv) CV_OVERRIDE; + CV_WRAP void setNrFeeds(int nr_feeds) { nr_feeds_ = nr_feeds; } + CV_WRAP int getNrFeeds() { return nr_feeds_; } + std::vector gains() const { return gains_; } + +private: + std::vector gains_; + int nr_feeds_; +}; + +/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image blocks. + */ +class CV_EXPORTS_W BlocksCompensator : public ExposureCompensator +{ +public: + BlocksCompensator(int bl_width=32, int bl_height=32, int nr_feeds=1) + : bl_width_(bl_width), bl_height_(bl_height), nr_feeds_(nr_feeds), nr_gain_filtering_iterations_(2) {} + CV_WRAP void apply(int index, Point corner, InputOutputArray image, InputArray mask) CV_OVERRIDE; + CV_WRAP void getMatGains(CV_OUT std::vector& umv) CV_OVERRIDE; + CV_WRAP void setMatGains(std::vector& umv) CV_OVERRIDE; + CV_WRAP void setNrFeeds(int nr_feeds) { nr_feeds_ = nr_feeds; } + CV_WRAP int getNrFeeds() { return nr_feeds_; } + CV_WRAP void setBlockSize(int width, int height) { bl_width_ = width; bl_height_ = height; } + CV_WRAP void setBlockSize(Size size) { setBlockSize(size.width, size.height); } + CV_WRAP Size getBlockSize() const { return Size(bl_width_, bl_height_); } + CV_WRAP void setNrGainsFilteringIterations(int nr_iterations) { nr_gain_filtering_iterations_ = nr_iterations; } + CV_WRAP int getNrGainsFilteringIterations() const { return nr_gain_filtering_iterations_; } + +protected: + template + void feed(const std::vector &corners, const std::vector &images, + const std::vector > &masks); + +private: + UMat getGainMap(const GainCompensator& compensator, int bl_idx, Size bl_per_img); + UMat getGainMap(const ChannelsCompensator& compensator, int bl_idx, Size bl_per_img); + + int bl_width_, bl_height_; + std::vector gain_maps_; + int nr_feeds_; + int nr_gain_filtering_iterations_; +}; + +/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image block +intensities, see @cite UES01 for details. + */ +class CV_EXPORTS_W BlocksGainCompensator : public BlocksCompensator +{ +public: + // This Constructor only exists to make source level compatibility detector happy + CV_WRAP BlocksGainCompensator(int bl_width = 32, int bl_height = 32) + : BlocksGainCompensator(bl_width, bl_height, 1) {} + CV_WRAP BlocksGainCompensator(int bl_width, int bl_height, int nr_feeds) + : BlocksCompensator(bl_width, bl_height, nr_feeds) {} + + void feed(const std::vector &corners, const std::vector &images, + const std::vector > &masks) CV_OVERRIDE; + + // This function only exists to make source level compatibility detector happy + CV_WRAP void apply(int index, Point corner, InputOutputArray image, InputArray mask) CV_OVERRIDE { + BlocksCompensator::apply(index, corner, image, mask); } + // This function only exists to make source level compatibility detector happy + CV_WRAP void getMatGains(CV_OUT std::vector& umv) CV_OVERRIDE { BlocksCompensator::getMatGains(umv); } + // This function only exists to make source level compatibility detector happy + CV_WRAP void setMatGains(std::vector& umv) CV_OVERRIDE { BlocksCompensator::setMatGains(umv); } +}; + +/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image block +on each channel. + */ +class CV_EXPORTS_W BlocksChannelsCompensator : public BlocksCompensator +{ +public: + CV_WRAP BlocksChannelsCompensator(int bl_width=32, int bl_height=32, int nr_feeds=1) + : BlocksCompensator(bl_width, bl_height, nr_feeds) {} + + void feed(const std::vector &corners, const std::vector &images, + const std::vector > &masks) CV_OVERRIDE; +}; +//! @} + +} // namespace detail +} // namespace cv + +#endif // OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP diff --git a/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/matchers.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/matchers.hpp new file mode 100644 index 000000000..c933a36d0 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/matchers.hpp @@ -0,0 +1,253 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_STITCHING_MATCHERS_HPP +#define OPENCV_STITCHING_MATCHERS_HPP + +#include "opencv2/core.hpp" +#include "opencv2/features2d.hpp" + +#include "opencv2/opencv_modules.hpp" + +namespace cv { +namespace detail { + +//! @addtogroup stitching_match +//! @{ + +/** @brief Structure containing image keypoints and descriptors. */ +struct CV_EXPORTS_W_SIMPLE ImageFeatures +{ + CV_PROP_RW int img_idx; + CV_PROP_RW Size img_size; + std::vector keypoints; + CV_PROP_RW UMat descriptors; + CV_WRAP std::vector getKeypoints() { return keypoints; }; +}; +/** @brief + +@param featuresFinder +@param images +@param features +@param masks +*/ +CV_EXPORTS_W void computeImageFeatures( + const Ptr &featuresFinder, + InputArrayOfArrays images, + CV_OUT std::vector &features, + InputArrayOfArrays masks = noArray()); + +/** @brief + +@param featuresFinder +@param image +@param features +@param mask +*/ +CV_EXPORTS_AS(computeImageFeatures2) void computeImageFeatures( + const Ptr &featuresFinder, + InputArray image, + CV_OUT ImageFeatures &features, + InputArray mask = noArray()); + +/** @brief Structure containing information about matches between two images. + +It's assumed that there is a transformation between those images. Transformation may be +homography or affine transformation based on selected matcher. + +@sa detail::FeaturesMatcher +*/ +struct CV_EXPORTS_W_SIMPLE MatchesInfo +{ + MatchesInfo(); + MatchesInfo(const MatchesInfo &other); + MatchesInfo& operator =(const MatchesInfo &other); + + CV_PROP_RW int src_img_idx; + CV_PROP_RW int dst_img_idx; //!< Images indices (optional) + std::vector matches; + std::vector inliers_mask; //!< Geometrically consistent matches mask + CV_PROP_RW int num_inliers; //!< Number of geometrically consistent matches + CV_PROP_RW Mat H; //!< Estimated transformation + CV_PROP_RW double confidence; //!< Confidence two images are from the same panorama + CV_WRAP std::vector getMatches() { return matches; }; + CV_WRAP std::vector getInliers() { return inliers_mask; }; +}; + +/** @brief Feature matchers base class. */ +class CV_EXPORTS_W FeaturesMatcher +{ +public: + CV_WRAP virtual ~FeaturesMatcher() {} + + /** @overload + @param features1 First image features + @param features2 Second image features + @param matches_info Found matches + */ + CV_WRAP_AS(apply) void operator ()(const ImageFeatures &features1, const ImageFeatures &features2, + CV_OUT MatchesInfo& matches_info) { match(features1, features2, matches_info); } + + /** @brief Performs images matching. + + @param features Features of the source images + @param pairwise_matches Found pairwise matches + @param mask Mask indicating which image pairs must be matched + + The function is parallelized with the TBB library. + + @sa detail::MatchesInfo + */ + CV_WRAP_AS(apply2) void operator ()(const std::vector &features, CV_OUT std::vector &pairwise_matches, + const cv::UMat &mask = cv::UMat()); + + /** @return True, if it's possible to use the same matcher instance in parallel, false otherwise + */ + CV_WRAP bool isThreadSafe() const { return is_thread_safe_; } + + /** @brief Frees unused memory allocated before if there is any. + */ + CV_WRAP virtual void collectGarbage() {} + +protected: + FeaturesMatcher(bool is_thread_safe = false) : is_thread_safe_(is_thread_safe) {} + + /** @brief This method must implement matching logic in order to make the wrappers + detail::FeaturesMatcher::operator()_ work. + + @param features1 first image features + @param features2 second image features + @param matches_info found matches + */ + virtual void match(const ImageFeatures &features1, const ImageFeatures &features2, + MatchesInfo& matches_info) = 0; + + bool is_thread_safe_; +}; + +/** @brief Features matcher which finds two best matches for each feature and leaves the best one only if the +ratio between descriptor distances is greater than the threshold match_conf + +@sa detail::FeaturesMatcher + */ +class CV_EXPORTS_W BestOf2NearestMatcher : public FeaturesMatcher +{ +public: + /** @brief Constructs a "best of 2 nearest" matcher. + + @param try_use_gpu Should try to use GPU or not + @param match_conf Match distances ration threshold + @param num_matches_thresh1 Minimum number of matches required for the 2D projective transform + estimation used in the inliers classification step + @param num_matches_thresh2 Minimum number of matches required for the 2D projective transform + re-estimation on inliers + */ + CV_WRAP BestOf2NearestMatcher(bool try_use_gpu = false, float match_conf = 0.3f, int num_matches_thresh1 = 6, + int num_matches_thresh2 = 6); + + CV_WRAP void collectGarbage() CV_OVERRIDE; + CV_WRAP static Ptr create(bool try_use_gpu = false, float match_conf = 0.3f, int num_matches_thresh1 = 6, + int num_matches_thresh2 = 6); + +protected: + + void match(const ImageFeatures &features1, const ImageFeatures &features2, MatchesInfo &matches_info) CV_OVERRIDE; + int num_matches_thresh1_; + int num_matches_thresh2_; + Ptr impl_; +}; + +class CV_EXPORTS_W BestOf2NearestRangeMatcher : public BestOf2NearestMatcher +{ +public: + CV_WRAP BestOf2NearestRangeMatcher(int range_width = 5, bool try_use_gpu = false, float match_conf = 0.3f, + int num_matches_thresh1 = 6, int num_matches_thresh2 = 6); + + void operator ()(const std::vector &features, std::vector &pairwise_matches, + const cv::UMat &mask = cv::UMat()); + + +protected: + int range_width_; +}; + +/** @brief Features matcher similar to cv::detail::BestOf2NearestMatcher which +finds two best matches for each feature and leaves the best one only if the +ratio between descriptor distances is greater than the threshold match_conf. + +Unlike cv::detail::BestOf2NearestMatcher this matcher uses affine +transformation (affine trasformation estimate will be placed in matches_info). + +@sa cv::detail::FeaturesMatcher cv::detail::BestOf2NearestMatcher + */ +class CV_EXPORTS_W AffineBestOf2NearestMatcher : public BestOf2NearestMatcher +{ +public: + /** @brief Constructs a "best of 2 nearest" matcher that expects affine trasformation + between images + + @param full_affine whether to use full affine transformation with 6 degress of freedom or reduced + transformation with 4 degrees of freedom using only rotation, translation and uniform scaling + @param try_use_gpu Should try to use GPU or not + @param match_conf Match distances ration threshold + @param num_matches_thresh1 Minimum number of matches required for the 2D affine transform + estimation used in the inliers classification step + + @sa cv::estimateAffine2D cv::estimateAffinePartial2D + */ + CV_WRAP AffineBestOf2NearestMatcher(bool full_affine = false, bool try_use_gpu = false, + float match_conf = 0.3f, int num_matches_thresh1 = 6) : + BestOf2NearestMatcher(try_use_gpu, match_conf, num_matches_thresh1, num_matches_thresh1), + full_affine_(full_affine) {} + +protected: + void match(const ImageFeatures &features1, const ImageFeatures &features2, MatchesInfo &matches_info) CV_OVERRIDE; + + bool full_affine_; +}; + +//! @} stitching_match + +} // namespace detail +} // namespace cv + +#endif // OPENCV_STITCHING_MATCHERS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/motion_estimators.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/motion_estimators.hpp similarity index 76% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/motion_estimators.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/motion_estimators.hpp index a0e690083..ff05af181 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/motion_estimators.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/motion_estimators.hpp @@ -62,7 +62,7 @@ cameras. @note The coordinate system origin is implementation-dependent, but you can always normalize the rotations in respect to the first camera, for instance. : */ -class CV_EXPORTS Estimator +class CV_EXPORTS_W Estimator { public: virtual ~Estimator() {} @@ -74,10 +74,12 @@ class CV_EXPORTS Estimator @param cameras Estimated camera parameters @return True in case of success, false otherwise */ - bool operator ()(const std::vector &features, - const std::vector &pairwise_matches, - std::vector &cameras) - { return estimate(features, pairwise_matches, cameras); } + CV_WRAP_AS(apply) bool operator ()(const std::vector &features, + const std::vector &pairwise_matches, + CV_OUT CV_IN_OUT std::vector &cameras) + { + return estimate(features, pairwise_matches, cameras); + } protected: /** @brief This method must implement camera parameters estimation logic in order to make the wrapper @@ -90,57 +92,59 @@ class CV_EXPORTS Estimator */ virtual bool estimate(const std::vector &features, const std::vector &pairwise_matches, - std::vector &cameras) = 0; + CV_OUT std::vector &cameras) = 0; }; /** @brief Homography based rotation estimator. */ -class CV_EXPORTS HomographyBasedEstimator : public Estimator +class CV_EXPORTS_W HomographyBasedEstimator : public Estimator { public: - HomographyBasedEstimator(bool is_focals_estimated = false) + CV_WRAP HomographyBasedEstimator(bool is_focals_estimated = false) : is_focals_estimated_(is_focals_estimated) {} private: virtual bool estimate(const std::vector &features, const std::vector &pairwise_matches, - std::vector &cameras); + std::vector &cameras) CV_OVERRIDE; bool is_focals_estimated_; }; /** @brief Affine transformation based estimator. -This estimator uses pairwise tranformations estimated by matcher to estimate +This estimator uses pairwise transformations estimated by matcher to estimate final transformation for each camera. @sa cv::detail::HomographyBasedEstimator */ -class CV_EXPORTS AffineBasedEstimator : public Estimator +class CV_EXPORTS_W AffineBasedEstimator : public Estimator { +public: + CV_WRAP AffineBasedEstimator(){} private: virtual bool estimate(const std::vector &features, const std::vector &pairwise_matches, - std::vector &cameras); + std::vector &cameras) CV_OVERRIDE; }; /** @brief Base class for all camera parameters refinement methods. */ -class CV_EXPORTS BundleAdjusterBase : public Estimator +class CV_EXPORTS_W BundleAdjusterBase : public Estimator { public: - const Mat refinementMask() const { return refinement_mask_.clone(); } - void setRefinementMask(const Mat &mask) + CV_WRAP const Mat refinementMask() const { return refinement_mask_.clone(); } + CV_WRAP void setRefinementMask(const Mat &mask) { CV_Assert(mask.type() == CV_8U && mask.size() == Size(3, 3)); refinement_mask_ = mask.clone(); } - double confThresh() const { return conf_thresh_; } - void setConfThresh(double conf_thresh) { conf_thresh_ = conf_thresh; } + CV_WRAP double confThresh() const { return conf_thresh_; } + CV_WRAP void setConfThresh(double conf_thresh) { conf_thresh_ = conf_thresh; } - TermCriteria termCriteria() { return term_criteria_; } - void setTermCriteria(const TermCriteria& term_criteria) { term_criteria_ = term_criteria; } + CV_WRAP TermCriteria termCriteria() { return term_criteria_; } + CV_WRAP void setTermCriteria(const TermCriteria& term_criteria) { term_criteria_ = term_criteria; } protected: /** @brief Construct a bundle adjuster base instance. @@ -162,7 +166,7 @@ class CV_EXPORTS BundleAdjusterBase : public Estimator // Runs bundle adjustment virtual bool estimate(const std::vector &features, const std::vector &pairwise_matches, - std::vector &cameras); + std::vector &cameras) CV_OVERRIDE; /** @brief Sets initial camera parameter to refine. @@ -214,21 +218,21 @@ class CV_EXPORTS BundleAdjusterBase : public Estimator /** @brief Stub bundle adjuster that does nothing. */ -class CV_EXPORTS NoBundleAdjuster : public BundleAdjusterBase +class CV_EXPORTS_W NoBundleAdjuster : public BundleAdjusterBase { public: - NoBundleAdjuster() : BundleAdjusterBase(0, 0) {} + CV_WRAP NoBundleAdjuster() : BundleAdjusterBase(0, 0) {} private: bool estimate(const std::vector &, const std::vector &, - std::vector &) + std::vector &) CV_OVERRIDE { return true; } - void setUpInitialCameraParams(const std::vector &) {} - void obtainRefinedCameraParams(std::vector &) const {} - void calcError(Mat &) {} - void calcJacobian(Mat &) {} + void setUpInitialCameraParams(const std::vector &) CV_OVERRIDE {} + void obtainRefinedCameraParams(std::vector &) const CV_OVERRIDE {} + void calcError(Mat &) CV_OVERRIDE {} + void calcJacobian(Mat &) CV_OVERRIDE {} }; @@ -238,16 +242,16 @@ error squares It can estimate focal length, aspect ratio, principal point. You can affect only on them via the refinement mask. */ -class CV_EXPORTS BundleAdjusterReproj : public BundleAdjusterBase +class CV_EXPORTS_W BundleAdjusterReproj : public BundleAdjusterBase { public: - BundleAdjusterReproj() : BundleAdjusterBase(7, 2) {} + CV_WRAP BundleAdjusterReproj() : BundleAdjusterBase(7, 2) {} private: - void setUpInitialCameraParams(const std::vector &cameras); - void obtainRefinedCameraParams(std::vector &cameras) const; - void calcError(Mat &err); - void calcJacobian(Mat &jac); + void setUpInitialCameraParams(const std::vector &cameras) CV_OVERRIDE; + void obtainRefinedCameraParams(std::vector &cameras) const CV_OVERRIDE; + void calcError(Mat &err) CV_OVERRIDE; + void calcJacobian(Mat &jac) CV_OVERRIDE; Mat err1_, err2_; }; @@ -258,16 +262,16 @@ between the rays passing through the camera center and a feature. : It can estimate focal length. It ignores the refinement mask for now. */ -class CV_EXPORTS BundleAdjusterRay : public BundleAdjusterBase +class CV_EXPORTS_W BundleAdjusterRay : public BundleAdjusterBase { public: - BundleAdjusterRay() : BundleAdjusterBase(4, 3) {} + CV_WRAP BundleAdjusterRay() : BundleAdjusterBase(4, 3) {} private: - void setUpInitialCameraParams(const std::vector &cameras); - void obtainRefinedCameraParams(std::vector &cameras) const; - void calcError(Mat &err); - void calcJacobian(Mat &jac); + void setUpInitialCameraParams(const std::vector &cameras) CV_OVERRIDE; + void obtainRefinedCameraParams(std::vector &cameras) const CV_OVERRIDE; + void calcError(Mat &err) CV_OVERRIDE; + void calcJacobian(Mat &jac) CV_OVERRIDE; Mat err1_, err2_; }; @@ -282,16 +286,16 @@ It estimates all transformation parameters. Refinement mask is ignored. @sa AffineBasedEstimator AffineBestOf2NearestMatcher BundleAdjusterAffinePartial */ -class CV_EXPORTS BundleAdjusterAffine : public BundleAdjusterBase +class CV_EXPORTS_W BundleAdjusterAffine : public BundleAdjusterBase { public: - BundleAdjusterAffine() : BundleAdjusterBase(6, 2) {} + CV_WRAP BundleAdjusterAffine() : BundleAdjusterBase(6, 2) {} private: - void setUpInitialCameraParams(const std::vector &cameras); - void obtainRefinedCameraParams(std::vector &cameras) const; - void calcError(Mat &err); - void calcJacobian(Mat &jac); + void setUpInitialCameraParams(const std::vector &cameras) CV_OVERRIDE; + void obtainRefinedCameraParams(std::vector &cameras) const CV_OVERRIDE; + void calcError(Mat &err) CV_OVERRIDE; + void calcJacobian(Mat &jac) CV_OVERRIDE; Mat err1_, err2_; }; @@ -306,16 +310,16 @@ It estimates all transformation parameters. Refinement mask is ignored. @sa AffineBasedEstimator AffineBestOf2NearestMatcher BundleAdjusterAffine */ -class CV_EXPORTS BundleAdjusterAffinePartial : public BundleAdjusterBase +class CV_EXPORTS_W BundleAdjusterAffinePartial : public BundleAdjusterBase { public: - BundleAdjusterAffinePartial() : BundleAdjusterBase(4, 2) {} + CV_WRAP BundleAdjusterAffinePartial() : BundleAdjusterBase(4, 2) {} private: - void setUpInitialCameraParams(const std::vector &cameras); - void obtainRefinedCameraParams(std::vector &cameras) const; - void calcError(Mat &err); - void calcJacobian(Mat &jac); + void setUpInitialCameraParams(const std::vector &cameras) CV_OVERRIDE; + void obtainRefinedCameraParams(std::vector &cameras) const CV_OVERRIDE; + void calcError(Mat &err) CV_OVERRIDE; + void calcJacobian(Mat &jac) CV_OVERRIDE; Mat err1_, err2_; }; @@ -332,17 +336,17 @@ enum WaveCorrectKind @param rmats Camera rotation matrices. @param kind Correction kind, see detail::WaveCorrectKind. */ -void CV_EXPORTS waveCorrect(std::vector &rmats, WaveCorrectKind kind); +void CV_EXPORTS_W waveCorrect(CV_IN_OUT std::vector &rmats, WaveCorrectKind kind); ////////////////////////////////////////////////////////////////////////////// // Auxiliary functions // Returns matches graph representation in DOT language -String CV_EXPORTS matchesGraphAsString(std::vector &pathes, std::vector &pairwise_matches, +String CV_EXPORTS_W matchesGraphAsString(std::vector &pathes, std::vector &pairwise_matches, float conf_threshold); -std::vector CV_EXPORTS leaveBiggestComponent( +CV_EXPORTS_W std::vector leaveBiggestComponent( std::vector &features, std::vector &pairwise_matches, float conf_threshold); diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/seam_finders.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/seam_finders.hpp similarity index 83% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/seam_finders.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/seam_finders.hpp index a251f4835..71dae7fdf 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/seam_finders.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/seam_finders.hpp @@ -55,35 +55,37 @@ namespace detail { /** @brief Base class for a seam estimator. */ -class CV_EXPORTS SeamFinder +class CV_EXPORTS_W SeamFinder { public: - virtual ~SeamFinder() {} + CV_WRAP virtual ~SeamFinder() {} + enum { NO, VORONOI_SEAM, DP_SEAM }; /** @brief Estimates seams. @param src Source images @param corners Source image top-left corners @param masks Source image masks to update */ - virtual void find(const std::vector &src, const std::vector &corners, - std::vector &masks) = 0; + CV_WRAP virtual void find(const std::vector &src, const std::vector &corners, + CV_IN_OUT std::vector &masks) = 0; + CV_WRAP static Ptr createDefault(int type); }; /** @brief Stub seam estimator which does nothing. */ -class CV_EXPORTS NoSeamFinder : public SeamFinder +class CV_EXPORTS_W NoSeamFinder : public SeamFinder { public: - void find(const std::vector&, const std::vector&, std::vector&) {} + CV_WRAP void find(const std::vector&, const std::vector&, CV_IN_OUT std::vector&) CV_OVERRIDE {} }; /** @brief Base class for all pairwise seam estimators. */ -class CV_EXPORTS PairwiseSeamFinder : public SeamFinder +class CV_EXPORTS_W PairwiseSeamFinder : public SeamFinder { public: - virtual void find(const std::vector &src, const std::vector &corners, - std::vector &masks); + CV_WRAP virtual void find(const std::vector &src, const std::vector &corners, + CV_IN_OUT std::vector &masks) CV_OVERRIDE; protected: void run(); @@ -103,30 +105,32 @@ class CV_EXPORTS PairwiseSeamFinder : public SeamFinder /** @brief Voronoi diagram-based seam estimator. */ -class CV_EXPORTS VoronoiSeamFinder : public PairwiseSeamFinder +class CV_EXPORTS_W VoronoiSeamFinder : public PairwiseSeamFinder { public: - virtual void find(const std::vector &src, const std::vector &corners, - std::vector &masks); + CV_WRAP virtual void find(const std::vector &src, const std::vector &corners, + CV_IN_OUT std::vector &masks) CV_OVERRIDE; virtual void find(const std::vector &size, const std::vector &corners, std::vector &masks); private: - void findInPair(size_t first, size_t second, Rect roi); + void findInPair(size_t first, size_t second, Rect roi) CV_OVERRIDE; }; -class CV_EXPORTS DpSeamFinder : public SeamFinder +class CV_EXPORTS_W DpSeamFinder : public SeamFinder { public: enum CostFunction { COLOR, COLOR_GRAD }; DpSeamFinder(CostFunction costFunc = COLOR); + CV_WRAP DpSeamFinder(String costFunc ); CostFunction costFunction() const { return costFunc_; } void setCostFunction(CostFunction val) { costFunc_ = val; } + CV_WRAP void setCostFunction(String val); virtual void find(const std::vector &src, const std::vector &corners, - std::vector &masks); + std::vector &masks) CV_OVERRIDE; private: enum ComponentState @@ -233,16 +237,18 @@ class CV_EXPORTS GraphCutSeamFinderBase /** @brief Minimum graph cut-based seam estimator. See details in @cite V03 . */ -class CV_EXPORTS GraphCutSeamFinder : public GraphCutSeamFinderBase, public SeamFinder +class CV_EXPORTS_W GraphCutSeamFinder : public GraphCutSeamFinderBase, public SeamFinder { public: GraphCutSeamFinder(int cost_type = COST_COLOR_GRAD, float terminal_cost = 10000.f, float bad_region_penalty = 1000.f); + CV_WRAP GraphCutSeamFinder(String cost_type,float terminal_cost = 10000.f, + float bad_region_penalty = 1000.f); ~GraphCutSeamFinder(); - void find(const std::vector &src, const std::vector &corners, - std::vector &masks); + CV_WRAP void find(const std::vector &src, const std::vector &corners, + std::vector &masks) CV_OVERRIDE; private: // To avoid GCGraph dependency @@ -261,8 +267,8 @@ class CV_EXPORTS GraphCutSeamFinderGpu : public GraphCutSeamFinderBase, public P bad_region_penalty_(bad_region_penalty) {} void find(const std::vector &src, const std::vector &corners, - std::vector &masks); - void findInPair(size_t first, size_t second, Rect roi); + std::vector &masks) CV_OVERRIDE; + void findInPair(size_t first, size_t second, Rect roi) CV_OVERRIDE; private: void setGraphWeightsColor(const cv::Mat &img1, const cv::Mat &img2, const cv::Mat &mask1, const cv::Mat &mask2, diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/timelapsers.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/timelapsers.hpp similarity index 86% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/timelapsers.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/timelapsers.hpp index ae37b03b7..f6f3da8a8 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/timelapsers.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/timelapsers.hpp @@ -54,7 +54,7 @@ namespace detail { // Base Timelapser class, takes a sequence of images, applies appropriate shift, stores result in dst_. -class CV_EXPORTS Timelapser +class CV_EXPORTS_W Timelapser { public: @@ -62,11 +62,11 @@ class CV_EXPORTS Timelapser virtual ~Timelapser() {} - static Ptr createDefault(int type); + CV_WRAP static Ptr createDefault(int type); - virtual void initialize(const std::vector &corners, const std::vector &sizes); - virtual void process(InputArray img, InputArray mask, Point tl); - virtual const UMat& getDst() {return dst_;} + CV_WRAP virtual void initialize(const std::vector &corners, const std::vector &sizes); + CV_WRAP virtual void process(InputArray img, InputArray mask, Point tl); + CV_WRAP virtual const UMat& getDst() {return dst_;} protected: @@ -77,10 +77,10 @@ class CV_EXPORTS Timelapser }; -class CV_EXPORTS TimelapserCrop : public Timelapser +class CV_EXPORTS_W TimelapserCrop : public Timelapser { public: - virtual void initialize(const std::vector &corners, const std::vector &sizes); + virtual void initialize(const std::vector &corners, const std::vector &sizes) CV_OVERRIDE; }; //! @} diff --git a/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/util.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/util.hpp new file mode 100644 index 000000000..bf7a39098 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/util.hpp @@ -0,0 +1,121 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_STITCHING_UTIL_HPP +#define OPENCV_STITCHING_UTIL_HPP + +#include +#include "opencv2/core.hpp" + +namespace cv { +namespace detail { + +//! @addtogroup stitching +//! @{ + +class CV_EXPORTS DisjointSets +{ +public: + DisjointSets(int elem_count = 0) { createOneElemSets(elem_count); } + + void createOneElemSets(int elem_count); + int findSetByElem(int elem); + int mergeSets(int set1, int set2); + + std::vector parent; + std::vector size; + +private: + std::vector rank_; +}; + + +struct CV_EXPORTS GraphEdge +{ + GraphEdge(int from, int to, float weight); + bool operator <(const GraphEdge& other) const { return weight < other.weight; } + bool operator >(const GraphEdge& other) const { return weight > other.weight; } + + int from, to; + float weight; +}; + +inline GraphEdge::GraphEdge(int _from, int _to, float _weight) : from(_from), to(_to), weight(_weight) {} + + +class CV_EXPORTS Graph +{ +public: + Graph(int num_vertices = 0) { create(num_vertices); } + void create(int num_vertices) { edges_.assign(num_vertices, std::list()); } + int numVertices() const { return static_cast(edges_.size()); } + void addEdge(int from, int to, float weight); + template B forEach(B body) const; + template B walkBreadthFirst(int from, B body) const; + +private: + std::vector< std::list > edges_; +}; + + +////////////////////////////////////////////////////////////////////////////// +// Auxiliary functions + +CV_EXPORTS_W bool overlapRoi(Point tl1, Point tl2, Size sz1, Size sz2, Rect &roi); +CV_EXPORTS_W Rect resultRoi(const std::vector &corners, const std::vector &images); +CV_EXPORTS_W Rect resultRoi(const std::vector &corners, const std::vector &sizes); +CV_EXPORTS_W Rect resultRoiIntersection(const std::vector &corners, const std::vector &sizes); +CV_EXPORTS_W Point resultTl(const std::vector &corners); + +// Returns random 'count' element subset of the {0,1,...,size-1} set +CV_EXPORTS_W void selectRandomSubset(int count, int size, std::vector &subset); + +CV_EXPORTS_W int& stitchingLogLevel(); + +//! @} + +} // namespace detail +} // namespace cv + +#include "util_inl.hpp" + +#endif // OPENCV_STITCHING_UTIL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/util_inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/util_inl.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/util_inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/util_inl.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/warpers.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/warpers.hpp new file mode 100644 index 000000000..47d170162 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/warpers.hpp @@ -0,0 +1,616 @@ + /*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_STITCHING_WARPERS_HPP +#define OPENCV_STITCHING_WARPERS_HPP + +#include "opencv2/core.hpp" +#include "opencv2/core/cuda.hpp" +#include "opencv2/imgproc.hpp" +#include "opencv2/opencv_modules.hpp" + +namespace cv { +namespace detail { + +//! @addtogroup stitching_warp +//! @{ + +/** @brief Rotation-only model image warper interface. + */ +class CV_EXPORTS RotationWarper +{ +public: + virtual ~RotationWarper() {} + + /** @brief Projects the image point. + + @param pt Source point + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @return Projected point + */ + virtual Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R) = 0; + + /** @brief Builds the projection maps according to the given camera data. + + @param src_size Source image size + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @param xmap Projection map for the x axis + @param ymap Projection map for the y axis + @return Projected image minimum bounding box + */ + virtual Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) = 0; + + /** @brief Projects the image. + + @param src Source image + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @param interp_mode Interpolation mode + @param border_mode Border extrapolation mode + @param dst Projected image + @return Project image top-left corner + */ + virtual Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + CV_OUT OutputArray dst) = 0; + + /** @brief Projects the image backward. + + @param src Projected image + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @param interp_mode Interpolation mode + @param border_mode Border extrapolation mode + @param dst_size Backward-projected image size + @param dst Backward-projected image + */ + virtual void warpBackward(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + Size dst_size, CV_OUT OutputArray dst) = 0; + + /** + @param src_size Source image bounding box + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @return Projected image minimum bounding box + */ + virtual Rect warpRoi(Size src_size, InputArray K, InputArray R) = 0; + + virtual float getScale() const { return 1.f; } + virtual void setScale(float) {} +}; + +/** @brief Base class for warping logic implementation. + */ +struct CV_EXPORTS_W_SIMPLE ProjectorBase +{ + void setCameraParams(InputArray K = Mat::eye(3, 3, CV_32F), + InputArray R = Mat::eye(3, 3, CV_32F), + InputArray T = Mat::zeros(3, 1, CV_32F)); + + float scale; + float k[9]; + float rinv[9]; + float r_kinv[9]; + float k_rinv[9]; + float t[3]; +}; + +/** @brief Base class for rotation-based warper using a detail::ProjectorBase_ derived class. + */ +template +class CV_EXPORTS_TEMPLATE RotationWarperBase : public RotationWarper +{ +public: + Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R) CV_OVERRIDE; + + Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) CV_OVERRIDE; + + Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + OutputArray dst) CV_OVERRIDE; + + void warpBackward(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + Size dst_size, OutputArray dst) CV_OVERRIDE; + + Rect warpRoi(Size src_size, InputArray K, InputArray R) CV_OVERRIDE; + + float getScale() const CV_OVERRIDE{ return projector_.scale; } + void setScale(float val) CV_OVERRIDE { projector_.scale = val; } + +protected: + + // Detects ROI of the destination image. It's correct for any projection. + virtual void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br); + + // Detects ROI of the destination image by walking over image border. + // Correctness for any projection isn't guaranteed. + void detectResultRoiByBorder(Size src_size, Point &dst_tl, Point &dst_br); + + P projector_; +}; + + +struct CV_EXPORTS PlaneProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + +/** @brief Warper that maps an image onto the z = 1 plane. + */ +class CV_EXPORTS PlaneWarper : public RotationWarperBase +{ +public: + /** @brief Construct an instance of the plane warper class. + + @param scale Projected image scale multiplier + */ + PlaneWarper(float scale = 1.f) { projector_.scale = scale; } + + Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R) CV_OVERRIDE; + Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R, InputArray T); + + virtual Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, CV_OUT OutputArray xmap, CV_OUT OutputArray ymap); + Rect buildMaps(Size src_size, InputArray K, InputArray R, CV_OUT OutputArray xmap, CV_OUT OutputArray ymap) CV_OVERRIDE; + + Point warp(InputArray src, InputArray K, InputArray R, + int interp_mode, int border_mode, CV_OUT OutputArray dst) CV_OVERRIDE; + virtual Point warp(InputArray src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode, + CV_OUT OutputArray dst); + + Rect warpRoi(Size src_size, InputArray K, InputArray R) CV_OVERRIDE; + Rect warpRoi(Size src_size, InputArray K, InputArray R, InputArray T); + +protected: + void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) CV_OVERRIDE; +}; + + +/** @brief Affine warper that uses rotations and translations + + Uses affine transformation in homogeneous coordinates to represent both rotation and + translation in camera rotation matrix. + */ +class CV_EXPORTS AffineWarper : public PlaneWarper +{ +public: + /** @brief Construct an instance of the affine warper class. + + @param scale Projected image scale multiplier + */ + AffineWarper(float scale = 1.f) : PlaneWarper(scale) {} + + Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R) CV_OVERRIDE; + Rect buildMaps(Size src_size, InputArray K, InputArray R, CV_OUT OutputArray xmap, CV_OUT OutputArray ymap) CV_OVERRIDE; + Point warp(InputArray src, InputArray K, InputArray R, + int interp_mode, int border_mode, CV_OUT OutputArray dst) CV_OVERRIDE; + Rect warpRoi(Size src_size, InputArray K, InputArray R) CV_OVERRIDE; + +protected: + /** @brief Extracts rotation and translation matrices from matrix H representing + affine transformation in homogeneous coordinates + */ + void getRTfromHomogeneous(InputArray H, Mat &R, Mat &T); +}; + + +struct CV_EXPORTS_W_SIMPLE SphericalProjector : ProjectorBase +{ + CV_WRAP void mapForward(float x, float y, float &u, float &v); + CV_WRAP void mapBackward(float u, float v, float &x, float &y); +}; + + +/** @brief Warper that maps an image onto the unit sphere located at the origin. + + Projects image onto unit sphere with origin at (0, 0, 0) and radius scale, measured in pixels. + A 360 panorama would therefore have a resulting width of 2 * scale * PI pixels. + Poles are located at (0, -1, 0) and (0, 1, 0) points. +*/ +class CV_EXPORTS SphericalWarper : public RotationWarperBase +{ +public: + /** @brief Construct an instance of the spherical warper class. + + @param scale Radius of the projected sphere, in pixels. An image spanning the + whole sphere will have a width of 2 * scale * PI pixels. + */ + SphericalWarper(float scale) { projector_.scale = scale; } + + Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) CV_OVERRIDE; + Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, OutputArray dst) CV_OVERRIDE; +protected: + void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) CV_OVERRIDE; +}; + + +struct CV_EXPORTS CylindricalProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +/** @brief Warper that maps an image onto the x\*x + z\*z = 1 cylinder. + */ +class CV_EXPORTS CylindricalWarper : public RotationWarperBase +{ +public: + /** @brief Construct an instance of the cylindrical warper class. + + @param scale Projected image scale multiplier + */ + CylindricalWarper(float scale) { projector_.scale = scale; } + + Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) CV_OVERRIDE; + Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, OutputArray dst) CV_OVERRIDE; +protected: + void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) CV_OVERRIDE + { + RotationWarperBase::detectResultRoiByBorder(src_size, dst_tl, dst_br); + } +}; + + +struct CV_EXPORTS FisheyeProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS FisheyeWarper : public RotationWarperBase +{ +public: + FisheyeWarper(float scale) { projector_.scale = scale; } +}; + + +struct CV_EXPORTS StereographicProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS StereographicWarper : public RotationWarperBase +{ +public: + StereographicWarper(float scale) { projector_.scale = scale; } +}; + + +struct CV_EXPORTS CompressedRectilinearProjector : ProjectorBase +{ + float a, b; + + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS CompressedRectilinearWarper : public RotationWarperBase +{ +public: + CompressedRectilinearWarper(float scale, float A = 1, float B = 1) + { + projector_.a = A; + projector_.b = B; + projector_.scale = scale; + } +}; + + +struct CV_EXPORTS CompressedRectilinearPortraitProjector : ProjectorBase +{ + float a, b; + + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS CompressedRectilinearPortraitWarper : public RotationWarperBase +{ +public: + CompressedRectilinearPortraitWarper(float scale, float A = 1, float B = 1) + { + projector_.a = A; + projector_.b = B; + projector_.scale = scale; + } +}; + + +struct CV_EXPORTS PaniniProjector : ProjectorBase +{ + float a, b; + + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS PaniniWarper : public RotationWarperBase +{ +public: + PaniniWarper(float scale, float A = 1, float B = 1) + { + projector_.a = A; + projector_.b = B; + projector_.scale = scale; + } +}; + + +struct CV_EXPORTS PaniniPortraitProjector : ProjectorBase +{ + float a, b; + + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS PaniniPortraitWarper : public RotationWarperBase +{ +public: + PaniniPortraitWarper(float scale, float A = 1, float B = 1) + { + projector_.a = A; + projector_.b = B; + projector_.scale = scale; + } + +}; + + +struct CV_EXPORTS MercatorProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS MercatorWarper : public RotationWarperBase +{ +public: + MercatorWarper(float scale) { projector_.scale = scale; } +}; + + +struct CV_EXPORTS TransverseMercatorProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS TransverseMercatorWarper : public RotationWarperBase +{ +public: + TransverseMercatorWarper(float scale) { projector_.scale = scale; } +}; + + +class CV_EXPORTS PlaneWarperGpu : public PlaneWarper +{ +public: + PlaneWarperGpu(float scale = 1.f) : PlaneWarper(scale) {} + + Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) CV_OVERRIDE + { + Rect result = buildMaps(src_size, K, R, d_xmap_, d_ymap_); + d_xmap_.download(xmap); + d_ymap_.download(ymap); + return result; + } + + Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray xmap, OutputArray ymap) CV_OVERRIDE + { + Rect result = buildMaps(src_size, K, R, T, d_xmap_, d_ymap_); + d_xmap_.download(xmap); + d_ymap_.download(ymap); + return result; + } + + Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + OutputArray dst) CV_OVERRIDE + { + d_src_.upload(src); + Point result = warp(d_src_, K, R, interp_mode, border_mode, d_dst_); + d_dst_.download(dst); + return result; + } + + Point warp(InputArray src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode, + OutputArray dst) CV_OVERRIDE + { + d_src_.upload(src); + Point result = warp(d_src_, K, R, T, interp_mode, border_mode, d_dst_); + d_dst_.download(dst); + return result; + } + + Rect buildMaps(Size src_size, InputArray K, InputArray R, cuda::GpuMat & xmap, cuda::GpuMat & ymap); + + Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, cuda::GpuMat & xmap, cuda::GpuMat & ymap); + + Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, int interp_mode, int border_mode, + cuda::GpuMat & dst); + + Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode, + cuda::GpuMat & dst); + +private: + cuda::GpuMat d_xmap_, d_ymap_, d_src_, d_dst_; +}; + + +class CV_EXPORTS SphericalWarperGpu : public SphericalWarper +{ +public: + SphericalWarperGpu(float scale) : SphericalWarper(scale) {} + + Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) CV_OVERRIDE + { + Rect result = buildMaps(src_size, K, R, d_xmap_, d_ymap_); + d_xmap_.download(xmap); + d_ymap_.download(ymap); + return result; + } + + Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + OutputArray dst) CV_OVERRIDE + { + d_src_.upload(src); + Point result = warp(d_src_, K, R, interp_mode, border_mode, d_dst_); + d_dst_.download(dst); + return result; + } + + Rect buildMaps(Size src_size, InputArray K, InputArray R, cuda::GpuMat & xmap, cuda::GpuMat & ymap); + + Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, int interp_mode, int border_mode, + cuda::GpuMat & dst); + +private: + cuda::GpuMat d_xmap_, d_ymap_, d_src_, d_dst_; +}; + + +class CV_EXPORTS CylindricalWarperGpu : public CylindricalWarper +{ +public: + CylindricalWarperGpu(float scale) : CylindricalWarper(scale) {} + + Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) CV_OVERRIDE + { + Rect result = buildMaps(src_size, K, R, d_xmap_, d_ymap_); + d_xmap_.download(xmap); + d_ymap_.download(ymap); + return result; + } + + Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + OutputArray dst) CV_OVERRIDE + { + d_src_.upload(src); + Point result = warp(d_src_, K, R, interp_mode, border_mode, d_dst_); + d_dst_.download(dst); + return result; + } + + Rect buildMaps(Size src_size, InputArray K, InputArray R, cuda::GpuMat & xmap, cuda::GpuMat & ymap); + + Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, int interp_mode, int border_mode, + cuda::GpuMat & dst); + +private: + cuda::GpuMat d_xmap_, d_ymap_, d_src_, d_dst_; +}; + + +struct CV_EXPORTS SphericalPortraitProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +// Projects image onto unit sphere with origin at (0, 0, 0). +// Poles are located NOT at (0, -1, 0) and (0, 1, 0) points, BUT at (1, 0, 0) and (-1, 0, 0) points. +class CV_EXPORTS SphericalPortraitWarper : public RotationWarperBase +{ +public: + SphericalPortraitWarper(float scale) { projector_.scale = scale; } + +protected: + void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) CV_OVERRIDE; +}; + +struct CV_EXPORTS CylindricalPortraitProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS CylindricalPortraitWarper : public RotationWarperBase +{ +public: + CylindricalPortraitWarper(float scale) { projector_.scale = scale; } + +protected: + void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) CV_OVERRIDE + { + RotationWarperBase::detectResultRoiByBorder(src_size, dst_tl, dst_br); + } +}; + +struct CV_EXPORTS PlanePortraitProjector : ProjectorBase +{ + void mapForward(float x, float y, float &u, float &v); + void mapBackward(float u, float v, float &x, float &y); +}; + + +class CV_EXPORTS PlanePortraitWarper : public RotationWarperBase +{ +public: + PlanePortraitWarper(float scale) { projector_.scale = scale; } + +protected: + void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) CV_OVERRIDE + { + RotationWarperBase::detectResultRoiByBorder(src_size, dst_tl, dst_br); + } +}; + +//! @} stitching_warp + +} // namespace detail +} // namespace cv + +#include "warpers_inl.hpp" + +#endif // OPENCV_STITCHING_WARPERS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/warpers_inl.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/detail/warpers_inl.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/warpers_inl.hpp rename to lib/3rdParty/OpenCV/include/opencv2/stitching/detail/warpers_inl.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/stitching/warpers.hpp b/lib/3rdParty/OpenCV/include/opencv2/stitching/warpers.hpp new file mode 100644 index 000000000..ff4338610 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/stitching/warpers.hpp @@ -0,0 +1,261 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_STITCHING_WARPER_CREATORS_HPP +#define OPENCV_STITCHING_WARPER_CREATORS_HPP + +#include "opencv2/stitching/detail/warpers.hpp" +#include + +namespace cv { + class CV_EXPORTS_W PyRotationWarper + { + Ptr rw; + + public: + CV_WRAP PyRotationWarper(String type, float scale); + CV_WRAP PyRotationWarper() {}; + ~PyRotationWarper() {} + + /** @brief Projects the image point. + + @param pt Source point + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @return Projected point + */ + CV_WRAP Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R); + + /** @brief Builds the projection maps according to the given camera data. + + @param src_size Source image size + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @param xmap Projection map for the x axis + @param ymap Projection map for the y axis + @return Projected image minimum bounding box + */ + CV_WRAP Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap); + + /** @brief Projects the image. + + @param src Source image + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @param interp_mode Interpolation mode + @param border_mode Border extrapolation mode + @param dst Projected image + @return Project image top-left corner + */ + CV_WRAP Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + CV_OUT OutputArray dst); + + /** @brief Projects the image backward. + + @param src Projected image + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @param interp_mode Interpolation mode + @param border_mode Border extrapolation mode + @param dst_size Backward-projected image size + @param dst Backward-projected image + */ + CV_WRAP void warpBackward(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, + Size dst_size, CV_OUT OutputArray dst); + + /** + @param src_size Source image bounding box + @param K Camera intrinsic parameters + @param R Camera rotation matrix + @return Projected image minimum bounding box + */ + CV_WRAP Rect warpRoi(Size src_size, InputArray K, InputArray R); + + CV_WRAP float getScale() const { return 1.f; } + CV_WRAP void setScale(float) {} + }; + +//! @addtogroup stitching_warp +//! @{ + +/** @brief Image warper factories base class. + */ + +class CV_EXPORTS_W WarperCreator +{ +public: + CV_WRAP virtual ~WarperCreator() {} + virtual Ptr create(float scale) const = 0; +}; + + +/** @brief Plane warper factory class. + @sa detail::PlaneWarper + */ +class CV_EXPORTS PlaneWarper : public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +/** @brief Affine warper factory class. + @sa detail::AffineWarper + */ +class CV_EXPORTS AffineWarper : public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +/** @brief Cylindrical warper factory class. +@sa detail::CylindricalWarper +*/ +class CV_EXPORTS CylindricalWarper: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +/** @brief Spherical warper factory class */ +class CV_EXPORTS SphericalWarper: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +class CV_EXPORTS FisheyeWarper : public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +class CV_EXPORTS StereographicWarper: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +class CV_EXPORTS CompressedRectilinearWarper: public WarperCreator +{ + float a, b; +public: + CompressedRectilinearWarper(float A = 1, float B = 1) + { + a = A; b = B; + } + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale, a, b); } +}; + +class CV_EXPORTS CompressedRectilinearPortraitWarper: public WarperCreator +{ + float a, b; +public: + CompressedRectilinearPortraitWarper(float A = 1, float B = 1) + { + a = A; b = B; + } + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale, a, b); } +}; + +class CV_EXPORTS PaniniWarper: public WarperCreator +{ + float a, b; +public: + PaniniWarper(float A = 1, float B = 1) + { + a = A; b = B; + } + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale, a, b); } +}; + +class CV_EXPORTS PaniniPortraitWarper: public WarperCreator +{ + float a, b; +public: + PaniniPortraitWarper(float A = 1, float B = 1) + { + a = A; b = B; + } + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale, a, b); } +}; + +class CV_EXPORTS MercatorWarper: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + +class CV_EXPORTS TransverseMercatorWarper: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + + + +#ifdef HAVE_OPENCV_CUDAWARPING +class PlaneWarperGpu: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + + +class CylindricalWarperGpu: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; + + +class SphericalWarperGpu: public WarperCreator +{ +public: + Ptr create(float scale) const CV_OVERRIDE { return makePtr(scale); } +}; +#endif + +//! @} stitching_warp + +} // namespace cv + +#endif // OPENCV_STITCHING_WARPER_CREATORS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/video.hpp b/lib/3rdParty/OpenCV/include/opencv2/video.hpp similarity index 96% rename from lib/3rdParty/OpenCV3.4/include/opencv2/video.hpp rename to lib/3rdParty/OpenCV/include/opencv2/video.hpp index aa644a937..a3dde6039 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/video.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/video.hpp @@ -56,8 +56,4 @@ #include "opencv2/video/tracking.hpp" #include "opencv2/video/background_segm.hpp" -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/video/tracking_c.h" -#endif - #endif //OPENCV_VIDEO_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/video/background_segm.hpp b/lib/3rdParty/OpenCV/include/opencv2/video/background_segm.hpp similarity index 97% rename from lib/3rdParty/OpenCV3.4/include/opencv2/video/background_segm.hpp rename to lib/3rdParty/OpenCV/include/opencv2/video/background_segm.hpp index 8a2d40b1a..e1dfa15a9 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/video/background_segm.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/video/background_segm.hpp @@ -205,7 +205,7 @@ class CV_EXPORTS_W BackgroundSubtractorMOG2 : public BackgroundSubtractor rate. 0 means that the background model is not updated at all, 1 means that the background model is completely reinitialized from the last frame. */ - CV_WRAP virtual void apply(InputArray image, OutputArray fgmask, double learningRate=-1) = 0; + CV_WRAP virtual void apply(InputArray image, OutputArray fgmask, double learningRate=-1) CV_OVERRIDE = 0; }; /** @brief Creates MOG2 Background Subtractor @@ -221,9 +221,9 @@ CV_EXPORTS_W Ptr createBackgroundSubtractorMOG2(int history=500, double varThreshold=16, bool detectShadows=true); -/** @brief K-nearest neigbours - based Background/Foreground Segmentation Algorithm. +/** @brief K-nearest neighbours - based Background/Foreground Segmentation Algorithm. -The class implements the K-nearest neigbours background subtraction described in @cite Zivkovic2006 . +The class implements the K-nearest neighbours background subtraction described in @cite Zivkovic2006 . Very efficient if number of foreground pixels is low. */ class CV_EXPORTS_W BackgroundSubtractorKNN : public BackgroundSubtractor @@ -261,7 +261,7 @@ class CV_EXPORTS_W BackgroundSubtractorKNN : public BackgroundSubtractor pixel is matching the kNN background model. */ CV_WRAP virtual int getkNNSamples() const = 0; - /** @brief Sets the k in the kNN. How many nearest neigbours need to match. + /** @brief Sets the k in the kNN. How many nearest neighbours need to match. */ CV_WRAP virtual void setkNNSamples(int _nkNN) = 0; diff --git a/lib/3rdParty/OpenCV/include/opencv2/video/legacy/constants_c.h b/lib/3rdParty/OpenCV/include/opencv2/video/legacy/constants_c.h new file mode 100644 index 000000000..1a98f5296 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/video/legacy/constants_c.h @@ -0,0 +1,16 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_VIDEO_LEGACY_CONSTANTS_H +#define OPENCV_VIDEO_LEGACY_CONSTANTS_H + +enum +{ + CV_LKFLOW_PYR_A_READY = 1, + CV_LKFLOW_PYR_B_READY = 2, + CV_LKFLOW_INITIAL_GUESSES = 4, + CV_LKFLOW_GET_MIN_EIGENVALS = 8 +}; + +#endif // OPENCV_VIDEO_LEGACY_CONSTANTS_H diff --git a/lib/3rdParty/OpenCV/include/opencv2/video/tracking.hpp b/lib/3rdParty/OpenCV/include/opencv2/video/tracking.hpp new file mode 100644 index 000000000..e9788863a --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/video/tracking.hpp @@ -0,0 +1,712 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. +// Copyright (C) 2009, Willow Garage Inc., all rights reserved. +// Copyright (C) 2013, OpenCV Foundation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of the copyright holders may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_TRACKING_HPP +#define OPENCV_TRACKING_HPP + +#include "opencv2/core.hpp" +#include "opencv2/imgproc.hpp" + +namespace cv +{ + +//! @addtogroup video_track +//! @{ + +enum { OPTFLOW_USE_INITIAL_FLOW = 4, + OPTFLOW_LK_GET_MIN_EIGENVALS = 8, + OPTFLOW_FARNEBACK_GAUSSIAN = 256 + }; + +/** @brief Finds an object center, size, and orientation. + +@param probImage Back projection of the object histogram. See calcBackProject. +@param window Initial search window. +@param criteria Stop criteria for the underlying meanShift. +returns +(in old interfaces) Number of iterations CAMSHIFT took to converge +The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an +object center using meanShift and then adjusts the window size and finds the optimal rotation. The +function returns the rotated rectangle structure that includes the object position, size, and +orientation. The next position of the search window can be obtained with RotatedRect::boundingRect() + +See the OpenCV sample camshiftdemo.c that tracks colored objects. + +@note +- (Python) A sample explaining the camshift tracking algorithm can be found at + opencv_source_code/samples/python/camshift.py + */ +CV_EXPORTS_W RotatedRect CamShift( InputArray probImage, CV_IN_OUT Rect& window, + TermCriteria criteria ); +/** @example samples/cpp/camshiftdemo.cpp +An example using the mean-shift tracking algorithm +*/ + +/** @brief Finds an object on a back projection image. + +@param probImage Back projection of the object histogram. See calcBackProject for details. +@param window Initial search window. +@param criteria Stop criteria for the iterative search algorithm. +returns +: Number of iterations CAMSHIFT took to converge. +The function implements the iterative object search algorithm. It takes the input back projection of +an object and the initial position. The mass center in window of the back projection image is +computed and the search window center shifts to the mass center. The procedure is repeated until the +specified number of iterations criteria.maxCount is done or until the window center shifts by less +than criteria.epsilon. The algorithm is used inside CamShift and, unlike CamShift , the search +window size or orientation do not change during the search. You can simply pass the output of +calcBackProject to this function. But better results can be obtained if you pre-filter the back +projection and remove the noise. For example, you can do this by retrieving connected components +with findContours , throwing away contours with small area ( contourArea ), and rendering the +remaining contours with drawContours. + + */ +CV_EXPORTS_W int meanShift( InputArray probImage, CV_IN_OUT Rect& window, TermCriteria criteria ); + +/** @brief Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK. + +@param img 8-bit input image. +@param pyramid output pyramid. +@param winSize window size of optical flow algorithm. Must be not less than winSize argument of +calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels. +@param maxLevel 0-based maximal pyramid level number. +@param withDerivatives set to precompute gradients for the every pyramid level. If pyramid is +constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally. +@param pyrBorder the border mode for pyramid layers. +@param derivBorder the border mode for gradients. +@param tryReuseInputImage put ROI of input image into the pyramid if possible. You can pass false +to force data copying. +@return number of levels in constructed pyramid. Can be less than maxLevel. + */ +CV_EXPORTS_W int buildOpticalFlowPyramid( InputArray img, OutputArrayOfArrays pyramid, + Size winSize, int maxLevel, bool withDerivatives = true, + int pyrBorder = BORDER_REFLECT_101, + int derivBorder = BORDER_CONSTANT, + bool tryReuseInputImage = true ); + +/** @example samples/cpp/lkdemo.cpp +An example using the Lucas-Kanade optical flow algorithm +*/ + +/** @brief Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with +pyramids. + +@param prevImg first 8-bit input image or pyramid constructed by buildOpticalFlowPyramid. +@param nextImg second input image or pyramid of the same size and the same type as prevImg. +@param prevPts vector of 2D points for which the flow needs to be found; point coordinates must be +single-precision floating-point numbers. +@param nextPts output vector of 2D points (with single-precision floating-point coordinates) +containing the calculated new positions of input features in the second image; when +OPTFLOW_USE_INITIAL_FLOW flag is passed, the vector must have the same size as in the input. +@param status output status vector (of unsigned chars); each element of the vector is set to 1 if +the flow for the corresponding features has been found, otherwise, it is set to 0. +@param err output vector of errors; each element of the vector is set to an error for the +corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't +found then the error is not defined (use the status parameter to find such cases). +@param winSize size of the search window at each pyramid level. +@param maxLevel 0-based maximal pyramid level number; if set to 0, pyramids are not used (single +level), if set to 1, two levels are used, and so on; if pyramids are passed to input then +algorithm will use as many levels as pyramids have but no more than maxLevel. +@param criteria parameter, specifying the termination criteria of the iterative search algorithm +(after the specified maximum number of iterations criteria.maxCount or when the search window +moves by less than criteria.epsilon. +@param flags operation flags: + - **OPTFLOW_USE_INITIAL_FLOW** uses initial estimations, stored in nextPts; if the flag is + not set, then prevPts is copied to nextPts and is considered the initial estimate. + - **OPTFLOW_LK_GET_MIN_EIGENVALS** use minimum eigen values as an error measure (see + minEigThreshold description); if the flag is not set, then L1 distance between patches + around the original and a moved point, divided by number of pixels in a window, is used as a + error measure. +@param minEigThreshold the algorithm calculates the minimum eigen value of a 2x2 normal matrix of +optical flow equations (this matrix is called a spatial gradient matrix in @cite Bouguet00), divided +by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding +feature is filtered out and its flow is not processed, so it allows to remove bad points and get a +performance boost. + +The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See +@cite Bouguet00 . The function is parallelized with the TBB library. + +@note + +- An example using the Lucas-Kanade optical flow algorithm can be found at + opencv_source_code/samples/cpp/lkdemo.cpp +- (Python) An example using the Lucas-Kanade optical flow algorithm can be found at + opencv_source_code/samples/python/lk_track.py +- (Python) An example using the Lucas-Kanade tracker for homography matching can be found at + opencv_source_code/samples/python/lk_homography.py + */ +CV_EXPORTS_W void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, + InputArray prevPts, InputOutputArray nextPts, + OutputArray status, OutputArray err, + Size winSize = Size(21,21), int maxLevel = 3, + TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01), + int flags = 0, double minEigThreshold = 1e-4 ); + +/** @brief Computes a dense optical flow using the Gunnar Farneback's algorithm. + +@param prev first 8-bit single-channel input image. +@param next second input image of the same size and the same type as prev. +@param flow computed flow image that has the same size as prev and type CV_32FC2. +@param pyr_scale parameter, specifying the image scale (\<1) to build pyramids for each image; +pyr_scale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous +one. +@param levels number of pyramid layers including the initial image; levels=1 means that no extra +layers are created and only the original images are used. +@param winsize averaging window size; larger values increase the algorithm robustness to image +noise and give more chances for fast motion detection, but yield more blurred motion field. +@param iterations number of iterations the algorithm does at each pyramid level. +@param poly_n size of the pixel neighborhood used to find polynomial expansion in each pixel; +larger values mean that the image will be approximated with smoother surfaces, yielding more +robust algorithm and more blurred motion field, typically poly_n =5 or 7. +@param poly_sigma standard deviation of the Gaussian that is used to smooth derivatives used as a +basis for the polynomial expansion; for poly_n=5, you can set poly_sigma=1.1, for poly_n=7, a +good value would be poly_sigma=1.5. +@param flags operation flags that can be a combination of the following: + - **OPTFLOW_USE_INITIAL_FLOW** uses the input flow as an initial flow approximation. + - **OPTFLOW_FARNEBACK_GAUSSIAN** uses the Gaussian \f$\texttt{winsize}\times\texttt{winsize}\f$ + filter instead of a box filter of the same size for optical flow estimation; usually, this + option gives z more accurate flow than with a box filter, at the cost of lower speed; + normally, winsize for a Gaussian window should be set to a larger value to achieve the same + level of robustness. + +The function finds an optical flow for each prev pixel using the @cite Farneback2003 algorithm so that + +\f[\texttt{prev} (y,x) \sim \texttt{next} ( y + \texttt{flow} (y,x)[1], x + \texttt{flow} (y,x)[0])\f] + +@note + +- An example using the optical flow algorithm described by Gunnar Farneback can be found at + opencv_source_code/samples/cpp/fback.cpp +- (Python) An example using the optical flow algorithm described by Gunnar Farneback can be + found at opencv_source_code/samples/python/opt_flow.py + */ +CV_EXPORTS_W void calcOpticalFlowFarneback( InputArray prev, InputArray next, InputOutputArray flow, + double pyr_scale, int levels, int winsize, + int iterations, int poly_n, double poly_sigma, + int flags ); + +/** @brief Computes an optimal affine transformation between two 2D point sets. + +@param src First input 2D point set stored in std::vector or Mat, or an image stored in Mat. +@param dst Second input 2D point set of the same size and the same type as A, or another image. +@param fullAffine If true, the function finds an optimal affine transformation with no additional +restrictions (6 degrees of freedom). Otherwise, the class of transformations to choose from is +limited to combinations of translation, rotation, and uniform scaling (4 degrees of freedom). + +The function finds an optimal affine transform *[A|b]* (a 2 x 3 floating-point matrix) that +approximates best the affine transformation between: + +* Two point sets +* Two raster images. In this case, the function first finds some features in the src image and + finds the corresponding features in dst image. After that, the problem is reduced to the first + case. +In case of point sets, the problem is formulated as follows: you need to find a 2x2 matrix *A* and +2x1 vector *b* so that: + +\f[[A^*|b^*] = arg \min _{[A|b]} \sum _i \| \texttt{dst}[i] - A { \texttt{src}[i]}^T - b \| ^2\f] +where src[i] and dst[i] are the i-th points in src and dst, respectively +\f$[A|b]\f$ can be either arbitrary (when fullAffine=true ) or have a form of +\f[\begin{bmatrix} a_{11} & a_{12} & b_1 \\ -a_{12} & a_{11} & b_2 \end{bmatrix}\f] +when fullAffine=false. + +@deprecated Use cv::estimateAffine2D, cv::estimateAffinePartial2D instead. If you are using this function +with images, extract points using cv::calcOpticalFlowPyrLK and then use the estimation functions. + +@sa +estimateAffine2D, estimateAffinePartial2D, getAffineTransform, getPerspectiveTransform, findHomography + */ +CV_DEPRECATED CV_EXPORTS Mat estimateRigidTransform( InputArray src, InputArray dst, bool fullAffine ); + +enum +{ + MOTION_TRANSLATION = 0, + MOTION_EUCLIDEAN = 1, + MOTION_AFFINE = 2, + MOTION_HOMOGRAPHY = 3 +}; + +/** @brief Computes the Enhanced Correlation Coefficient value between two images @cite EP08 . + +@param templateImage single-channel template image; CV_8U or CV_32F array. +@param inputImage single-channel input image to be warped to provide an image similar to + templateImage, same type as templateImage. +@param inputMask An optional mask to indicate valid values of inputImage. + +@sa +findTransformECC + */ + +CV_EXPORTS_W double computeECC(InputArray templateImage, InputArray inputImage, InputArray inputMask = noArray()); + +/** @example samples/cpp/image_alignment.cpp +An example using the image alignment ECC algorithm +*/ + +/** @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 . + +@param templateImage single-channel template image; CV_8U or CV_32F array. +@param inputImage single-channel input image which should be warped with the final warpMatrix in +order to provide an image similar to templateImage, same type as templateImage. +@param warpMatrix floating-point \f$2\times 3\f$ or \f$3\times 3\f$ mapping matrix (warp). +@param motionType parameter, specifying the type of motion: + - **MOTION_TRANSLATION** sets a translational motion model; warpMatrix is \f$2\times 3\f$ with + the first \f$2\times 2\f$ part being the unity matrix and the rest two parameters being + estimated. + - **MOTION_EUCLIDEAN** sets a Euclidean (rigid) transformation as motion model; three + parameters are estimated; warpMatrix is \f$2\times 3\f$. + - **MOTION_AFFINE** sets an affine motion model (DEFAULT); six parameters are estimated; + warpMatrix is \f$2\times 3\f$. + - **MOTION_HOMOGRAPHY** sets a homography as a motion model; eight parameters are + estimated;\`warpMatrix\` is \f$3\times 3\f$. +@param criteria parameter, specifying the termination criteria of the ECC algorithm; +criteria.epsilon defines the threshold of the increment in the correlation coefficient between two +iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion). +Default values are shown in the declaration above. +@param inputMask An optional mask to indicate valid values of inputImage. +@param gaussFiltSize An optional value indicating size of gaussian blur filter; (DEFAULT: 5) + +The function estimates the optimum transformation (warpMatrix) with respect to ECC criterion +(@cite EP08), that is + +\f[\texttt{warpMatrix} = \texttt{warpMatrix} = \arg\max_{W} \texttt{ECC}(\texttt{templateImage}(x,y),\texttt{inputImage}(x',y'))\f] + +where + +\f[\begin{bmatrix} x' \\ y' \end{bmatrix} = W \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}\f] + +(the equation holds with homogeneous coordinates for homography). It returns the final enhanced +correlation coefficient, that is the correlation coefficient between the template image and the +final warped input image. When a \f$3\times 3\f$ matrix is given with motionType =0, 1 or 2, the third +row is ignored. + +Unlike findHomography and estimateRigidTransform, the function findTransformECC implements an +area-based alignment that builds on intensity similarities. In essence, the function updates the +initial transformation that roughly aligns the images. If this information is missing, the identity +warp (unity matrix) is used as an initialization. Note that if images undergo strong +displacements/rotations, an initial transformation that roughly aligns the images is necessary +(e.g., a simple euclidean/similarity transform that allows for the images showing the same image +content approximately). Use inverse warping in the second image to take an image close to the first +one, i.e. use the flag WARP_INVERSE_MAP with warpAffine or warpPerspective. See also the OpenCV +sample image_alignment.cpp that demonstrates the use of the function. Note that the function throws +an exception if algorithm does not converges. + +@sa +computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography + */ +CV_EXPORTS_W double findTransformECC( InputArray templateImage, InputArray inputImage, + InputOutputArray warpMatrix, int motionType, + TermCriteria criteria, + InputArray inputMask, int gaussFiltSize); + +/** @overload */ +CV_EXPORTS +double findTransformECC(InputArray templateImage, InputArray inputImage, + InputOutputArray warpMatrix, int motionType = MOTION_AFFINE, + TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 50, 0.001), + InputArray inputMask = noArray()); + +/** @example samples/cpp/kalman.cpp +An example using the standard Kalman filter +*/ + +/** @brief Kalman filter class. + +The class implements a standard Kalman filter , +@cite Welch95 . However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get +an extended Kalman filter functionality. +@note In C API when CvKalman\* kalmanFilter structure is not needed anymore, it should be released +with cvReleaseKalman(&kalmanFilter) + */ +class CV_EXPORTS_W KalmanFilter +{ +public: + CV_WRAP KalmanFilter(); + /** @overload + @param dynamParams Dimensionality of the state. + @param measureParams Dimensionality of the measurement. + @param controlParams Dimensionality of the control vector. + @param type Type of the created matrices that should be CV_32F or CV_64F. + */ + CV_WRAP KalmanFilter( int dynamParams, int measureParams, int controlParams = 0, int type = CV_32F ); + + /** @brief Re-initializes Kalman filter. The previous content is destroyed. + + @param dynamParams Dimensionality of the state. + @param measureParams Dimensionality of the measurement. + @param controlParams Dimensionality of the control vector. + @param type Type of the created matrices that should be CV_32F or CV_64F. + */ + void init( int dynamParams, int measureParams, int controlParams = 0, int type = CV_32F ); + + /** @brief Computes a predicted state. + + @param control The optional input control + */ + CV_WRAP const Mat& predict( const Mat& control = Mat() ); + + /** @brief Updates the predicted state from the measurement. + + @param measurement The measured system parameters + */ + CV_WRAP const Mat& correct( const Mat& measurement ); + + CV_PROP_RW Mat statePre; //!< predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k) + CV_PROP_RW Mat statePost; //!< corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) + CV_PROP_RW Mat transitionMatrix; //!< state transition matrix (A) + CV_PROP_RW Mat controlMatrix; //!< control matrix (B) (not used if there is no control) + CV_PROP_RW Mat measurementMatrix; //!< measurement matrix (H) + CV_PROP_RW Mat processNoiseCov; //!< process noise covariance matrix (Q) + CV_PROP_RW Mat measurementNoiseCov;//!< measurement noise covariance matrix (R) + CV_PROP_RW Mat errorCovPre; //!< priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q)*/ + CV_PROP_RW Mat gain; //!< Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R) + CV_PROP_RW Mat errorCovPost; //!< posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k) + + // temporary matrices + Mat temp1; + Mat temp2; + Mat temp3; + Mat temp4; + Mat temp5; +}; + + +/** @brief Read a .flo file + + @param path Path to the file to be loaded + + The function readOpticalFlow loads a flow field from a file and returns it as a single matrix. + Resulting Mat has a type CV_32FC2 - floating-point, 2-channel. First channel corresponds to the + flow in the horizontal direction (u), second - vertical (v). + */ +CV_EXPORTS_W Mat readOpticalFlow( const String& path ); +/** @brief Write a .flo to disk + + @param path Path to the file to be written + @param flow Flow field to be stored + + The function stores a flow field in a file, returns true on success, false otherwise. + The flow field must be a 2-channel, floating-point matrix (CV_32FC2). First channel corresponds + to the flow in the horizontal direction (u), second - vertical (v). + */ +CV_EXPORTS_W bool writeOpticalFlow( const String& path, InputArray flow ); + +/** + Base class for dense optical flow algorithms +*/ +class CV_EXPORTS_W DenseOpticalFlow : public Algorithm +{ +public: + /** @brief Calculates an optical flow. + + @param I0 first 8-bit single-channel input image. + @param I1 second input image of the same size and the same type as prev. + @param flow computed flow image that has the same size as prev and type CV_32FC2. + */ + CV_WRAP virtual void calc( InputArray I0, InputArray I1, InputOutputArray flow ) = 0; + /** @brief Releases all inner buffers. + */ + CV_WRAP virtual void collectGarbage() = 0; +}; + +/** @brief Base interface for sparse optical flow algorithms. + */ +class CV_EXPORTS_W SparseOpticalFlow : public Algorithm +{ +public: + /** @brief Calculates a sparse optical flow. + + @param prevImg First input image. + @param nextImg Second input image of the same size and the same type as prevImg. + @param prevPts Vector of 2D points for which the flow needs to be found. + @param nextPts Output vector of 2D points containing the calculated new positions of input features in the second image. + @param status Output status vector. Each element of the vector is set to 1 if the + flow for the corresponding features has been found. Otherwise, it is set to 0. + @param err Optional output vector that contains error response for each point (inverse confidence). + */ + CV_WRAP virtual void calc(InputArray prevImg, InputArray nextImg, + InputArray prevPts, InputOutputArray nextPts, + OutputArray status, + OutputArray err = cv::noArray()) = 0; +}; + + +/** @brief Class computing a dense optical flow using the Gunnar Farneback's algorithm. + */ +class CV_EXPORTS_W FarnebackOpticalFlow : public DenseOpticalFlow +{ +public: + CV_WRAP virtual int getNumLevels() const = 0; + CV_WRAP virtual void setNumLevels(int numLevels) = 0; + + CV_WRAP virtual double getPyrScale() const = 0; + CV_WRAP virtual void setPyrScale(double pyrScale) = 0; + + CV_WRAP virtual bool getFastPyramids() const = 0; + CV_WRAP virtual void setFastPyramids(bool fastPyramids) = 0; + + CV_WRAP virtual int getWinSize() const = 0; + CV_WRAP virtual void setWinSize(int winSize) = 0; + + CV_WRAP virtual int getNumIters() const = 0; + CV_WRAP virtual void setNumIters(int numIters) = 0; + + CV_WRAP virtual int getPolyN() const = 0; + CV_WRAP virtual void setPolyN(int polyN) = 0; + + CV_WRAP virtual double getPolySigma() const = 0; + CV_WRAP virtual void setPolySigma(double polySigma) = 0; + + CV_WRAP virtual int getFlags() const = 0; + CV_WRAP virtual void setFlags(int flags) = 0; + + CV_WRAP static Ptr create( + int numLevels = 5, + double pyrScale = 0.5, + bool fastPyramids = false, + int winSize = 13, + int numIters = 10, + int polyN = 5, + double polySigma = 1.1, + int flags = 0); +}; + +/** @brief Variational optical flow refinement + +This class implements variational refinement of the input flow field, i.e. +it uses input flow to initialize the minimization of the following functional: +\f$E(U) = \int_{\Omega} \delta \Psi(E_I) + \gamma \Psi(E_G) + \alpha \Psi(E_S) \f$, +where \f$E_I,E_G,E_S\f$ are color constancy, gradient constancy and smoothness terms +respectively. \f$\Psi(s^2)=\sqrt{s^2+\epsilon^2}\f$ is a robust penalizer to limit the +influence of outliers. A complete formulation and a description of the minimization +procedure can be found in @cite Brox2004 +*/ +class CV_EXPORTS_W VariationalRefinement : public DenseOpticalFlow +{ +public: + /** @brief @ref calc function overload to handle separate horizontal (u) and vertical (v) flow components + (to avoid extra splits/merges) */ + CV_WRAP virtual void calcUV(InputArray I0, InputArray I1, InputOutputArray flow_u, InputOutputArray flow_v) = 0; + + /** @brief Number of outer (fixed-point) iterations in the minimization procedure. + @see setFixedPointIterations */ + CV_WRAP virtual int getFixedPointIterations() const = 0; + /** @copybrief getFixedPointIterations @see getFixedPointIterations */ + CV_WRAP virtual void setFixedPointIterations(int val) = 0; + + /** @brief Number of inner successive over-relaxation (SOR) iterations + in the minimization procedure to solve the respective linear system. + @see setSorIterations */ + CV_WRAP virtual int getSorIterations() const = 0; + /** @copybrief getSorIterations @see getSorIterations */ + CV_WRAP virtual void setSorIterations(int val) = 0; + + /** @brief Relaxation factor in SOR + @see setOmega */ + CV_WRAP virtual float getOmega() const = 0; + /** @copybrief getOmega @see getOmega */ + CV_WRAP virtual void setOmega(float val) = 0; + + /** @brief Weight of the smoothness term + @see setAlpha */ + CV_WRAP virtual float getAlpha() const = 0; + /** @copybrief getAlpha @see getAlpha */ + CV_WRAP virtual void setAlpha(float val) = 0; + + /** @brief Weight of the color constancy term + @see setDelta */ + CV_WRAP virtual float getDelta() const = 0; + /** @copybrief getDelta @see getDelta */ + CV_WRAP virtual void setDelta(float val) = 0; + + /** @brief Weight of the gradient constancy term + @see setGamma */ + CV_WRAP virtual float getGamma() const = 0; + /** @copybrief getGamma @see getGamma */ + CV_WRAP virtual void setGamma(float val) = 0; + + /** @brief Creates an instance of VariationalRefinement + */ + CV_WRAP static Ptr create(); +}; + +/** @brief DIS optical flow algorithm. + +This class implements the Dense Inverse Search (DIS) optical flow algorithm. More +details about the algorithm can be found at @cite Kroeger2016 . Includes three presets with preselected +parameters to provide reasonable trade-off between speed and quality. However, even the slowest preset is +still relatively fast, use DeepFlow if you need better quality and don't care about speed. + +This implementation includes several additional features compared to the algorithm described in the paper, +including spatial propagation of flow vectors (@ref getUseSpatialPropagation), as well as an option to +utilize an initial flow approximation passed to @ref calc (which is, essentially, temporal propagation, +if the previous frame's flow field is passed). +*/ +class CV_EXPORTS_W DISOpticalFlow : public DenseOpticalFlow +{ +public: + enum + { + PRESET_ULTRAFAST = 0, + PRESET_FAST = 1, + PRESET_MEDIUM = 2 + }; + + /** @brief Finest level of the Gaussian pyramid on which the flow is computed (zero level + corresponds to the original image resolution). The final flow is obtained by bilinear upscaling. + @see setFinestScale */ + CV_WRAP virtual int getFinestScale() const = 0; + /** @copybrief getFinestScale @see getFinestScale */ + CV_WRAP virtual void setFinestScale(int val) = 0; + + /** @brief Size of an image patch for matching (in pixels). Normally, default 8x8 patches work well + enough in most cases. + @see setPatchSize */ + CV_WRAP virtual int getPatchSize() const = 0; + /** @copybrief getPatchSize @see getPatchSize */ + CV_WRAP virtual void setPatchSize(int val) = 0; + + /** @brief Stride between neighbor patches. Must be less than patch size. Lower values correspond + to higher flow quality. + @see setPatchStride */ + CV_WRAP virtual int getPatchStride() const = 0; + /** @copybrief getPatchStride @see getPatchStride */ + CV_WRAP virtual void setPatchStride(int val) = 0; + + /** @brief Maximum number of gradient descent iterations in the patch inverse search stage. Higher values + may improve quality in some cases. + @see setGradientDescentIterations */ + CV_WRAP virtual int getGradientDescentIterations() const = 0; + /** @copybrief getGradientDescentIterations @see getGradientDescentIterations */ + CV_WRAP virtual void setGradientDescentIterations(int val) = 0; + + /** @brief Number of fixed point iterations of variational refinement per scale. Set to zero to + disable variational refinement completely. Higher values will typically result in more smooth and + high-quality flow. + @see setGradientDescentIterations */ + CV_WRAP virtual int getVariationalRefinementIterations() const = 0; + /** @copybrief getGradientDescentIterations @see getGradientDescentIterations */ + CV_WRAP virtual void setVariationalRefinementIterations(int val) = 0; + + /** @brief Weight of the smoothness term + @see setVariationalRefinementAlpha */ + CV_WRAP virtual float getVariationalRefinementAlpha() const = 0; + /** @copybrief getVariationalRefinementAlpha @see getVariationalRefinementAlpha */ + CV_WRAP virtual void setVariationalRefinementAlpha(float val) = 0; + + /** @brief Weight of the color constancy term + @see setVariationalRefinementDelta */ + CV_WRAP virtual float getVariationalRefinementDelta() const = 0; + /** @copybrief getVariationalRefinementDelta @see getVariationalRefinementDelta */ + CV_WRAP virtual void setVariationalRefinementDelta(float val) = 0; + + /** @brief Weight of the gradient constancy term + @see setVariationalRefinementGamma */ + CV_WRAP virtual float getVariationalRefinementGamma() const = 0; + /** @copybrief getVariationalRefinementGamma @see getVariationalRefinementGamma */ + CV_WRAP virtual void setVariationalRefinementGamma(float val) = 0; + + + /** @brief Whether to use mean-normalization of patches when computing patch distance. It is turned on + by default as it typically provides a noticeable quality boost because of increased robustness to + illumination variations. Turn it off if you are certain that your sequence doesn't contain any changes + in illumination. + @see setUseMeanNormalization */ + CV_WRAP virtual bool getUseMeanNormalization() const = 0; + /** @copybrief getUseMeanNormalization @see getUseMeanNormalization */ + CV_WRAP virtual void setUseMeanNormalization(bool val) = 0; + + /** @brief Whether to use spatial propagation of good optical flow vectors. This option is turned on by + default, as it tends to work better on average and can sometimes help recover from major errors + introduced by the coarse-to-fine scheme employed by the DIS optical flow algorithm. Turning this + option off can make the output flow field a bit smoother, however. + @see setUseSpatialPropagation */ + CV_WRAP virtual bool getUseSpatialPropagation() const = 0; + /** @copybrief getUseSpatialPropagation @see getUseSpatialPropagation */ + CV_WRAP virtual void setUseSpatialPropagation(bool val) = 0; + + /** @brief Creates an instance of DISOpticalFlow + + @param preset one of PRESET_ULTRAFAST, PRESET_FAST and PRESET_MEDIUM + */ + CV_WRAP static Ptr create(int preset = DISOpticalFlow::PRESET_FAST); +}; + +/** @brief Class used for calculating a sparse optical flow. + +The class can calculate an optical flow for a sparse feature set using the +iterative Lucas-Kanade method with pyramids. + +@sa calcOpticalFlowPyrLK + +*/ +class CV_EXPORTS_W SparsePyrLKOpticalFlow : public SparseOpticalFlow +{ +public: + CV_WRAP virtual Size getWinSize() const = 0; + CV_WRAP virtual void setWinSize(Size winSize) = 0; + + CV_WRAP virtual int getMaxLevel() const = 0; + CV_WRAP virtual void setMaxLevel(int maxLevel) = 0; + + CV_WRAP virtual TermCriteria getTermCriteria() const = 0; + CV_WRAP virtual void setTermCriteria(TermCriteria& crit) = 0; + + CV_WRAP virtual int getFlags() const = 0; + CV_WRAP virtual void setFlags(int flags) = 0; + + CV_WRAP virtual double getMinEigThreshold() const = 0; + CV_WRAP virtual void setMinEigThreshold(double minEigThreshold) = 0; + + CV_WRAP static Ptr create( + Size winSize = Size(21, 21), + int maxLevel = 3, TermCriteria crit = + TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01), + int flags = 0, + double minEigThreshold = 1e-4); +}; + +//! @} video_track + +} // cv + +#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/video/video.hpp b/lib/3rdParty/OpenCV/include/opencv2/video/video.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/video/video.hpp rename to lib/3rdParty/OpenCV/include/opencv2/video/video.hpp diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio.hpp b/lib/3rdParty/OpenCV/include/opencv2/videoio.hpp similarity index 93% rename from lib/3rdParty/OpenCV3.4/include/opencv2/videoio.hpp rename to lib/3rdParty/OpenCV/include/opencv2/videoio.hpp index 96d8df61e..d31985b56 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio.hpp +++ b/lib/3rdParty/OpenCV/include/opencv2/videoio.hpp @@ -59,6 +59,7 @@ @defgroup videoio_c C API for video I/O @defgroup videoio_ios iOS glue for video I/O @defgroup videoio_winrt WinRT glue for video I/O + @defgroup videoio_registry Query I/O API backends registry @} */ @@ -87,16 +88,16 @@ See @ref videoio_overview for more information. */ enum VideoCaptureAPIs { CAP_ANY = 0, //!< Auto detect == 0 - CAP_VFW = 200, //!< Video For Windows (platform native) - CAP_V4L = 200, //!< V4L/V4L2 capturing support via libv4l + CAP_VFW = 200, //!< Video For Windows (obsolete, removed) + CAP_V4L = 200, //!< V4L/V4L2 capturing support CAP_V4L2 = CAP_V4L, //!< Same as CAP_V4L CAP_FIREWIRE = 300, //!< IEEE 1394 drivers - CAP_FIREWARE = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE - CAP_IEEE1394 = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE - CAP_DC1394 = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE - CAP_CMU1394 = CAP_FIREWIRE, //!< Same as CAP_FIREWIRE - CAP_QT = 500, //!< QuickTime - CAP_UNICAP = 600, //!< Unicap drivers + CAP_FIREWARE = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE + CAP_IEEE1394 = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE + CAP_DC1394 = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE + CAP_CMU1394 = CAP_FIREWIRE, //!< Same value as CAP_FIREWIRE + CAP_QT = 500, //!< QuickTime (obsolete, removed) + CAP_UNICAP = 600, //!< Unicap drivers (obsolete, removed) CAP_DSHOW = 700, //!< DirectShow (via videoInput) CAP_PVAPI = 800, //!< PvAPI, Prosilica GigE SDK CAP_OPENNI = 900, //!< OpenNI (for Kinect) @@ -107,7 +108,8 @@ enum VideoCaptureAPIs { CAP_GIGANETIX = 1300, //!< Smartek Giganetix GigEVisionSDK CAP_MSMF = 1400, //!< Microsoft Media Foundation (via videoInput) CAP_WINRT = 1410, //!< Microsoft Windows Runtime using Media Foundation - CAP_INTELPERC = 1500, //!< Intel Perceptual Computing SDK + CAP_INTELPERC = 1500, //!< RealSense (former Intel Perceptual Computing SDK) + CAP_REALSENSE = 1500, //!< Synonym for CAP_INTELPERC CAP_OPENNI2 = 1600, //!< OpenNI2 (for Kinect) CAP_OPENNI2_ASUS = 1610, //!< OpenNI2 (for Asus Xtion and Occipital Structure sensors) CAP_GPHOTO2 = 1700, //!< gPhoto2 connection @@ -116,7 +118,8 @@ enum VideoCaptureAPIs { CAP_IMAGES = 2000, //!< OpenCV Image Sequence (e.g. img_%02d.jpg) CAP_ARAVIS = 2100, //!< Aravis SDK CAP_OPENCV_MJPEG = 2200, //!< Built-in OpenCV MotionJPEG codec - CAP_INTEL_MFX = 2300 //!< Intel MediaSDK + CAP_INTEL_MFX = 2300, //!< Intel MediaSDK + CAP_XINE = 2400, //!< XINE engine (Linux) }; /** @brief %VideoCapture generic properties identifier. @@ -164,18 +167,16 @@ enum VideoCaptureProperties { CAP_PROP_IRIS =36, CAP_PROP_SETTINGS =37, //!< Pop up video/camera filter dialog (note: only supported by DSHOW backend currently. The property value is ignored) CAP_PROP_BUFFERSIZE =38, - CAP_PROP_AUTOFOCUS =39 - }; - - -/** @brief Generic camera output modes identifier. -@note Currently, these are supported through the libv4l backend only. -*/ -enum VideoCaptureModes { - CAP_MODE_BGR = 0, //!< BGR24 (default) - CAP_MODE_RGB = 1, //!< RGB24 - CAP_MODE_GRAY = 2, //!< Y8 - CAP_MODE_YUYV = 3 //!< YUYV + CAP_PROP_AUTOFOCUS =39, + CAP_PROP_SAR_NUM =40, //!< Sample aspect ratio: num/den (num) + CAP_PROP_SAR_DEN =41, //!< Sample aspect ratio: num/den (den) + CAP_PROP_BACKEND =42, //!< Current backend (enum VideoCaptureAPIs). Read-only property + CAP_PROP_CHANNEL =43, //!< Video input or Channel Number (only for those cameras that support) + CAP_PROP_AUTO_WB =44, //!< enable/ disable auto white-balance + CAP_PROP_WB_TEMPERATURE=45, //!< white-balance color temperature +#ifndef CV_DOXYGEN + CV__CAP_PROP_LATEST +#endif }; /** @brief %VideoWriter generic properties identifier. @@ -526,7 +527,8 @@ enum { CAP_PROP_INTELPERC_PROFILE_COUNT = 11001, //! Intel Perceptual Streams enum { CAP_INTELPERC_DEPTH_GENERATOR = 1 << 29, CAP_INTELPERC_IMAGE_GENERATOR = 1 << 28, - CAP_INTELPERC_GENERATORS_MASK = CAP_INTELPERC_DEPTH_GENERATOR + CAP_INTELPERC_IMAGE_GENERATOR + CAP_INTELPERC_IR_GENERATOR = 1 << 27, + CAP_INTELPERC_GENERATORS_MASK = CAP_INTELPERC_DEPTH_GENERATOR + CAP_INTELPERC_IMAGE_GENERATOR + CAP_INTELPERC_IR_GENERATOR }; enum { CAP_INTELPERC_DEPTH_MAP = 0, //!< Each pixel is a 16-bit integer. The value indicates the distance from an object to the camera's XY plane or the Cartesian depth. @@ -609,14 +611,7 @@ class CV_EXPORTS_W VideoCapture CV_WRAP VideoCapture(); /** @overload - @brief Open video file or a capturing device or a IP video stream for video capturing - - Same as VideoCapture(const String& filename, int apiPreference) but using default Capture API backends - */ - CV_WRAP VideoCapture(const String& filename); - - /** @overload - @brief Open video file or a capturing device or a IP video stream for video capturing with API Preference + @brief Opens a video file or a capturing device or an IP video stream for video capturing with API Preference @param filename it can be: - name of video file (eg. `video.avi`) @@ -628,18 +623,19 @@ class CV_EXPORTS_W VideoCapture implementation if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW. @sa The list of supported API backends cv::VideoCaptureAPIs */ - CV_WRAP VideoCapture(const String& filename, int apiPreference); + CV_WRAP VideoCapture(const String& filename, int apiPreference = CAP_ANY); /** @overload - @brief Open a camera for video capturing + @brief Opens a camera for video capturing - @param index camera_id + domain_offset (CAP_*) id of the video capturing device to open. To open default camera using default backend just pass 0. - Use a `domain_offset` to enforce a specific reader implementation if multiple are available like cv::CAP_FFMPEG or cv::CAP_IMAGES or cv::CAP_DSHOW. - e.g. to open Camera 1 using the MS Media Foundation API use `index = 1 + cv::CAP_MSMF` + @param index id of the video capturing device to open. To open default camera using default backend just pass 0. + (to backward compatibility usage of camera_id + domain_offset (CAP_*) is valid when apiPreference is CAP_ANY) + @param apiPreference preferred Capture API backends to use. Can be used to enforce a specific reader + implementation if multiple are available: e.g. cv::CAP_DSHOW or cv::CAP_MSMF or cv::CAP_V4L. @sa The list of supported API backends cv::VideoCaptureAPIs */ - CV_WRAP VideoCapture(int index); + CV_WRAP VideoCapture(int index, int apiPreference = CAP_ANY); /** @brief Default destructor @@ -647,37 +643,27 @@ class CV_EXPORTS_W VideoCapture */ virtual ~VideoCapture(); - /** @brief Open video file or a capturing device or a IP video stream for video capturing + /** @brief Opens a video file or a capturing device or an IP video stream for video capturing. @overload - Parameters are same as the constructor VideoCapture(const String& filename) + Parameters are same as the constructor VideoCapture(const String& filename, int apiPreference = CAP_ANY) @return `true` if the file has been successfully opened The method first calls VideoCapture::release to close the already opened file or camera. */ - CV_WRAP virtual bool open(const String& filename); + CV_WRAP virtual bool open(const String& filename, int apiPreference = CAP_ANY); - /** @brief Open a camera for video capturing + /** @brief Opens a camera for video capturing @overload - Parameters are same as the constructor VideoCapture(int index) + Parameters are same as the constructor VideoCapture(int index, int apiPreference = CAP_ANY) @return `true` if the camera has been successfully opened. The method first calls VideoCapture::release to close the already opened file or camera. */ - CV_WRAP virtual bool open(int index); - - /** @brief Open a camera for video capturing - - @overload - - Parameters are similar as the constructor VideoCapture(int index),except it takes an additional argument apiPreference. - Definitely, is same as open(int index) where `index=cameraNum + apiPreference` - @return `true` if the camera has been successfully opened. - */ - CV_WRAP bool open(int cameraNum, int apiPreference); + CV_WRAP virtual bool open(int index, int apiPreference = CAP_ANY); /** @brief Returns true if video capturing has been initialized already. @@ -730,7 +716,7 @@ class CV_EXPORTS_W VideoCapture @note In @ref videoio_c "C API", functions cvRetrieveFrame() and cv.RetrieveFrame() return image stored inside the video capturing structure. It is not allowed to modify or release the image! You can copy the frame using - :ocvcvCloneImage and then do whatever you want with the copy. + cvCloneImage and then do whatever you want with the copy. */ CV_WRAP virtual bool retrieve(OutputArray image, int flag = 0); @@ -756,7 +742,7 @@ class CV_EXPORTS_W VideoCapture @note In @ref videoio_c "C API", functions cvRetrieveFrame() and cv.RetrieveFrame() return image stored inside the video capturing structure. It is not allowed to modify or release the image! You can copy the frame using - :ocvcvCloneImage and then do whatever you want with the copy. + cvCloneImage and then do whatever you want with the copy. */ CV_WRAP virtual bool read(OutputArray image); @@ -784,22 +770,17 @@ class CV_EXPORTS_W VideoCapture `VideoCapture -> API Backend -> Operating System -> Device Driver -> Device Hardware` @endcode The returned value might be different from what really used by the device or it could be encoded - using device dependant rules (eg. steps or percentage). Effective behaviour depends from device + using device dependent rules (eg. steps or percentage). Effective behaviour depends from device driver and API Backend */ CV_WRAP virtual double get(int propId) const; - /** @brief Open video file or a capturing device or a IP video stream for video capturing with API Preference - - @overload - - Parameters are same as the constructor VideoCapture(const String& filename, int apiPreference) - @return `true` if the file has been successfully opened + /** @brief Returns used backend API name - The method first calls VideoCapture::release to close the already opened file or camera. - */ - CV_WRAP virtual bool open(const String& filename, int apiPreference); + @note Stream should be opened. + */ + CV_WRAP String getBackendName() const; protected: Ptr cap; @@ -808,13 +789,18 @@ class CV_EXPORTS_W VideoCapture class IVideoWriter; -/** @example videowriter_basic.cpp +/** @example samples/cpp/tutorial_code/videoio/video-write/video-write.cpp +Check @ref tutorial_video_write "the corresponding tutorial" for more details +*/ + +/** @example samples/cpp/videowriter_basic.cpp An example using VideoCapture and VideoWriter class - */ +*/ + /** @brief Video writer class. The class provides C++ API for writing video files or image sequences. - */ +*/ class CV_EXPORTS_W VideoWriter { public: @@ -822,8 +808,8 @@ class CV_EXPORTS_W VideoWriter The constructors/functions initialize video writers. - On Linux FFMPEG is used to write videos; - - On Windows FFMPEG or VFW is used; - - On MacOSX QTKit is used. + - On Windows FFMPEG or MSWF or DSHOW is used; + - On MacOSX AVFoundation is used. */ CV_WRAP VideoWriter(); @@ -896,14 +882,19 @@ class CV_EXPORTS_W VideoWriter */ virtual VideoWriter& operator << (const Mat& image); + /** @overload + @sa write + */ + virtual VideoWriter& operator << (const UMat& image); + /** @brief Writes the next video frame - @param image The written frame + @param image The written frame. In general, color images are expected in BGR format. The function/method writes the specified image to video file. It must have the same size as has been specified when opening the video writer. */ - CV_WRAP virtual void write(const Mat& image); + CV_WRAP virtual void write(InputArray image); /** @brief Sets a property in the VideoWriter. @@ -934,6 +925,12 @@ class CV_EXPORTS_W VideoWriter */ CV_WRAP static int fourcc(char c1, char c2, char c3, char c4); + /** @brief Returns used backend API name + + @note Stream should be opened. + */ + CV_WRAP String getBackendName() const; + protected: Ptr writer; Ptr iwriter; @@ -942,8 +939,8 @@ class CV_EXPORTS_W VideoWriter Size frameSize, bool isColor = true); }; -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvCapture* obj) const; -template<> CV_EXPORTS void DefaultDeleter::operator ()(CvVideoWriter* obj) const; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvCapture* obj) const; }; +template<> struct DefaultDeleter{ CV_EXPORTS void operator ()(CvVideoWriter* obj) const; }; //! @} videoio diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio/cap_ios.h b/lib/3rdParty/OpenCV/include/opencv2/videoio/cap_ios.h similarity index 91% rename from lib/3rdParty/OpenCV3.4/include/opencv2/videoio/cap_ios.h rename to lib/3rdParty/OpenCV/include/opencv2/videoio/cap_ios.h index 0691420cf..207ad46ce 100644 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio/cap_ios.h +++ b/lib/3rdParty/OpenCV/include/opencv2/videoio/cap_ios.h @@ -64,22 +64,22 @@ CV_EXPORTS @interface CvAbstractCamera : NSObject @property (nonatomic, strong) UIView* parentView; -- (void)start; -- (void)stop; -- (void)switchCameras; +- CV_UNUSED(start); +- CV_UNUSED(stop); +- CV_UNUSED(switchCameras); - (id)initWithParentView:(UIView*)parent; -- (void)createCaptureOutput; -- (void)createVideoPreviewLayer; -- (void)updateOrientation; +- CV_UNUSED(createCaptureOutput); +- CV_UNUSED(createVideoPreviewLayer); +- CV_UNUSED(updateOrientation); -- (void)lockFocus; -- (void)unlockFocus; -- (void)lockExposure; -- (void)unlockExposure; -- (void)lockBalance; -- (void)unlockBalance; +- CV_UNUSED(lockFocus); +- CV_UNUSED(unlockFocus); +- CV_UNUSED(lockExposure); +- CV_UNUSED(unlockExposure); +- CV_UNUSED(lockBalance); +- CV_UNUSED(unlockBalance); @end @@ -117,8 +117,8 @@ CV_EXPORTS @interface CvVideoCamera : CvAbstractCamera delegate; -- (void)takePicture; +- CV_UNUSED(takePicture); @end diff --git a/lib/3rdParty/OpenCV/include/opencv2/videoio/legacy/constants_c.h b/lib/3rdParty/OpenCV/include/opencv2/videoio/legacy/constants_c.h new file mode 100644 index 000000000..44450027d --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/videoio/legacy/constants_c.h @@ -0,0 +1,434 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_VIDEOIO_LEGACY_CONSTANTS_H +#define OPENCV_VIDEOIO_LEGACY_CONSTANTS_H + +enum +{ + CV_CAP_ANY =0, // autodetect + + CV_CAP_MIL =100, // MIL proprietary drivers + + CV_CAP_VFW =200, // platform native + CV_CAP_V4L =200, + CV_CAP_V4L2 =200, + + CV_CAP_FIREWARE =300, // IEEE 1394 drivers + CV_CAP_FIREWIRE =300, + CV_CAP_IEEE1394 =300, + CV_CAP_DC1394 =300, + CV_CAP_CMU1394 =300, + + CV_CAP_STEREO =400, // TYZX proprietary drivers + CV_CAP_TYZX =400, + CV_TYZX_LEFT =400, + CV_TYZX_RIGHT =401, + CV_TYZX_COLOR =402, + CV_TYZX_Z =403, + + CV_CAP_QT =500, // QuickTime + + CV_CAP_UNICAP =600, // Unicap drivers + + CV_CAP_DSHOW =700, // DirectShow (via videoInput) + CV_CAP_MSMF =1400, // Microsoft Media Foundation (via videoInput) + + CV_CAP_PVAPI =800, // PvAPI, Prosilica GigE SDK + + CV_CAP_OPENNI =900, // OpenNI (for Kinect) + CV_CAP_OPENNI_ASUS =910, // OpenNI (for Asus Xtion) + + CV_CAP_ANDROID =1000, // Android - not used + CV_CAP_ANDROID_BACK =CV_CAP_ANDROID+99, // Android back camera - not used + CV_CAP_ANDROID_FRONT =CV_CAP_ANDROID+98, // Android front camera - not used + + CV_CAP_XIAPI =1100, // XIMEA Camera API + + CV_CAP_AVFOUNDATION = 1200, // AVFoundation framework for iOS (OS X Lion will have the same API) + + CV_CAP_GIGANETIX = 1300, // Smartek Giganetix GigEVisionSDK + + CV_CAP_INTELPERC = 1500, // Intel Perceptual Computing + + CV_CAP_OPENNI2 = 1600, // OpenNI2 (for Kinect) + CV_CAP_GPHOTO2 = 1700, + CV_CAP_GSTREAMER = 1800, // GStreamer + CV_CAP_FFMPEG = 1900, // FFMPEG + CV_CAP_IMAGES = 2000, // OpenCV Image Sequence (e.g. img_%02d.jpg) + + CV_CAP_ARAVIS = 2100 // Aravis GigE SDK +}; + +enum +{ + // modes of the controlling registers (can be: auto, manual, auto single push, absolute Latter allowed with any other mode) + // every feature can have only one mode turned on at a time + CV_CAP_PROP_DC1394_OFF = -4, //turn the feature off (not controlled manually nor automatically) + CV_CAP_PROP_DC1394_MODE_MANUAL = -3, //set automatically when a value of the feature is set by the user + CV_CAP_PROP_DC1394_MODE_AUTO = -2, + CV_CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO = -1, + CV_CAP_PROP_POS_MSEC =0, + CV_CAP_PROP_POS_FRAMES =1, + CV_CAP_PROP_POS_AVI_RATIO =2, + CV_CAP_PROP_FRAME_WIDTH =3, + CV_CAP_PROP_FRAME_HEIGHT =4, + CV_CAP_PROP_FPS =5, + CV_CAP_PROP_FOURCC =6, + CV_CAP_PROP_FRAME_COUNT =7, + CV_CAP_PROP_FORMAT =8, + CV_CAP_PROP_MODE =9, + CV_CAP_PROP_BRIGHTNESS =10, + CV_CAP_PROP_CONTRAST =11, + CV_CAP_PROP_SATURATION =12, + CV_CAP_PROP_HUE =13, + CV_CAP_PROP_GAIN =14, + CV_CAP_PROP_EXPOSURE =15, + CV_CAP_PROP_CONVERT_RGB =16, + CV_CAP_PROP_WHITE_BALANCE_BLUE_U =17, + CV_CAP_PROP_RECTIFICATION =18, + CV_CAP_PROP_MONOCHROME =19, + CV_CAP_PROP_SHARPNESS =20, + CV_CAP_PROP_AUTO_EXPOSURE =21, // exposure control done by camera, + // user can adjust reference level + // using this feature + CV_CAP_PROP_GAMMA =22, + CV_CAP_PROP_TEMPERATURE =23, + CV_CAP_PROP_TRIGGER =24, + CV_CAP_PROP_TRIGGER_DELAY =25, + CV_CAP_PROP_WHITE_BALANCE_RED_V =26, + CV_CAP_PROP_ZOOM =27, + CV_CAP_PROP_FOCUS =28, + CV_CAP_PROP_GUID =29, + CV_CAP_PROP_ISO_SPEED =30, + CV_CAP_PROP_MAX_DC1394 =31, + CV_CAP_PROP_BACKLIGHT =32, + CV_CAP_PROP_PAN =33, + CV_CAP_PROP_TILT =34, + CV_CAP_PROP_ROLL =35, + CV_CAP_PROP_IRIS =36, + CV_CAP_PROP_SETTINGS =37, + CV_CAP_PROP_BUFFERSIZE =38, + CV_CAP_PROP_AUTOFOCUS =39, + CV_CAP_PROP_SAR_NUM =40, + CV_CAP_PROP_SAR_DEN =41, + + CV_CAP_PROP_AUTOGRAB =1024, // property for videoio class CvCapture_Android only + CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING=1025, // readonly, tricky property, returns cpnst char* indeed + CV_CAP_PROP_PREVIEW_FORMAT=1026, // readonly, tricky property, returns cpnst char* indeed + + // OpenNI map generators + CV_CAP_OPENNI_DEPTH_GENERATOR = 1 << 31, + CV_CAP_OPENNI_IMAGE_GENERATOR = 1 << 30, + CV_CAP_OPENNI_IR_GENERATOR = 1 << 29, + CV_CAP_OPENNI_GENERATORS_MASK = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_OPENNI_IR_GENERATOR, + + // Properties of cameras available through OpenNI interfaces + CV_CAP_PROP_OPENNI_OUTPUT_MODE = 100, + CV_CAP_PROP_OPENNI_FRAME_MAX_DEPTH = 101, // in mm + CV_CAP_PROP_OPENNI_BASELINE = 102, // in mm + CV_CAP_PROP_OPENNI_FOCAL_LENGTH = 103, // in pixels + CV_CAP_PROP_OPENNI_REGISTRATION = 104, // flag + CV_CAP_PROP_OPENNI_REGISTRATION_ON = CV_CAP_PROP_OPENNI_REGISTRATION, // flag that synchronizes the remapping depth map to image map + // by changing depth generator's view point (if the flag is "on") or + // sets this view point to its normal one (if the flag is "off"). + CV_CAP_PROP_OPENNI_APPROX_FRAME_SYNC = 105, + CV_CAP_PROP_OPENNI_MAX_BUFFER_SIZE = 106, + CV_CAP_PROP_OPENNI_CIRCLE_BUFFER = 107, + CV_CAP_PROP_OPENNI_MAX_TIME_DURATION = 108, + + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT = 109, + CV_CAP_PROP_OPENNI2_SYNC = 110, + CV_CAP_PROP_OPENNI2_MIRROR = 111, + + CV_CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, + CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_OUTPUT_MODE, + CV_CAP_OPENNI_DEPTH_GENERATOR_PRESENT = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, + CV_CAP_OPENNI_DEPTH_GENERATOR_BASELINE = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_BASELINE, + CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_FOCAL_LENGTH, + CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_REGISTRATION, + CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON = CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION, + CV_CAP_OPENNI_IR_GENERATOR_PRESENT = CV_CAP_OPENNI_IR_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, + + // Properties of cameras available through GStreamer interface + CV_CAP_GSTREAMER_QUEUE_LENGTH = 200, // default is 1 + + // PVAPI + CV_CAP_PROP_PVAPI_MULTICASTIP = 300, // ip for anable multicast master mode. 0 for disable multicast + CV_CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE = 301, // FrameStartTriggerMode: Determines how a frame is initiated + CV_CAP_PROP_PVAPI_DECIMATIONHORIZONTAL = 302, // Horizontal sub-sampling of the image + CV_CAP_PROP_PVAPI_DECIMATIONVERTICAL = 303, // Vertical sub-sampling of the image + CV_CAP_PROP_PVAPI_BINNINGX = 304, // Horizontal binning factor + CV_CAP_PROP_PVAPI_BINNINGY = 305, // Vertical binning factor + CV_CAP_PROP_PVAPI_PIXELFORMAT = 306, // Pixel format + + // Properties of cameras available through XIMEA SDK interface + CV_CAP_PROP_XI_DOWNSAMPLING = 400, // Change image resolution by binning or skipping. + CV_CAP_PROP_XI_DATA_FORMAT = 401, // Output data format. + CV_CAP_PROP_XI_OFFSET_X = 402, // Horizontal offset from the origin to the area of interest (in pixels). + CV_CAP_PROP_XI_OFFSET_Y = 403, // Vertical offset from the origin to the area of interest (in pixels). + CV_CAP_PROP_XI_TRG_SOURCE = 404, // Defines source of trigger. + CV_CAP_PROP_XI_TRG_SOFTWARE = 405, // Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE. + CV_CAP_PROP_XI_GPI_SELECTOR = 406, // Selects general purpose input + CV_CAP_PROP_XI_GPI_MODE = 407, // Set general purpose input mode + CV_CAP_PROP_XI_GPI_LEVEL = 408, // Get general purpose level + CV_CAP_PROP_XI_GPO_SELECTOR = 409, // Selects general purpose output + CV_CAP_PROP_XI_GPO_MODE = 410, // Set general purpose output mode + CV_CAP_PROP_XI_LED_SELECTOR = 411, // Selects camera signalling LED + CV_CAP_PROP_XI_LED_MODE = 412, // Define camera signalling LED functionality + CV_CAP_PROP_XI_MANUAL_WB = 413, // Calculates White Balance(must be called during acquisition) + CV_CAP_PROP_XI_AUTO_WB = 414, // Automatic white balance + CV_CAP_PROP_XI_AEAG = 415, // Automatic exposure/gain + CV_CAP_PROP_XI_EXP_PRIORITY = 416, // Exposure priority (0.5 - exposure 50%, gain 50%). + CV_CAP_PROP_XI_AE_MAX_LIMIT = 417, // Maximum limit of exposure in AEAG procedure + CV_CAP_PROP_XI_AG_MAX_LIMIT = 418, // Maximum limit of gain in AEAG procedure + CV_CAP_PROP_XI_AEAG_LEVEL = 419, // Average intensity of output signal AEAG should achieve(in %) + CV_CAP_PROP_XI_TIMEOUT = 420, // Image capture timeout in milliseconds + CV_CAP_PROP_XI_EXPOSURE = 421, // Exposure time in microseconds + CV_CAP_PROP_XI_EXPOSURE_BURST_COUNT = 422, // Sets the number of times of exposure in one frame. + CV_CAP_PROP_XI_GAIN_SELECTOR = 423, // Gain selector for parameter Gain allows to select different type of gains. + CV_CAP_PROP_XI_GAIN = 424, // Gain in dB + CV_CAP_PROP_XI_DOWNSAMPLING_TYPE = 426, // Change image downsampling type. + CV_CAP_PROP_XI_BINNING_SELECTOR = 427, // Binning engine selector. + CV_CAP_PROP_XI_BINNING_VERTICAL = 428, // Vertical Binning - number of vertical photo-sensitive cells to combine together. + CV_CAP_PROP_XI_BINNING_HORIZONTAL = 429, // Horizontal Binning - number of horizontal photo-sensitive cells to combine together. + CV_CAP_PROP_XI_BINNING_PATTERN = 430, // Binning pattern type. + CV_CAP_PROP_XI_DECIMATION_SELECTOR = 431, // Decimation engine selector. + CV_CAP_PROP_XI_DECIMATION_VERTICAL = 432, // Vertical Decimation - vertical sub-sampling of the image - reduces the vertical resolution of the image by the specified vertical decimation factor. + CV_CAP_PROP_XI_DECIMATION_HORIZONTAL = 433, // Horizontal Decimation - horizontal sub-sampling of the image - reduces the horizontal resolution of the image by the specified vertical decimation factor. + CV_CAP_PROP_XI_DECIMATION_PATTERN = 434, // Decimation pattern type. + CV_CAP_PROP_XI_TEST_PATTERN_GENERATOR_SELECTOR = 587, // Selects which test pattern generator is controlled by the TestPattern feature. + CV_CAP_PROP_XI_TEST_PATTERN = 588, // Selects which test pattern type is generated by the selected generator. + CV_CAP_PROP_XI_IMAGE_DATA_FORMAT = 435, // Output data format. + CV_CAP_PROP_XI_SHUTTER_TYPE = 436, // Change sensor shutter type(CMOS sensor). + CV_CAP_PROP_XI_SENSOR_TAPS = 437, // Number of taps + CV_CAP_PROP_XI_AEAG_ROI_OFFSET_X = 439, // Automatic exposure/gain ROI offset X + CV_CAP_PROP_XI_AEAG_ROI_OFFSET_Y = 440, // Automatic exposure/gain ROI offset Y + CV_CAP_PROP_XI_AEAG_ROI_WIDTH = 441, // Automatic exposure/gain ROI Width + CV_CAP_PROP_XI_AEAG_ROI_HEIGHT = 442, // Automatic exposure/gain ROI Height + CV_CAP_PROP_XI_BPC = 445, // Correction of bad pixels + CV_CAP_PROP_XI_WB_KR = 448, // White balance red coefficient + CV_CAP_PROP_XI_WB_KG = 449, // White balance green coefficient + CV_CAP_PROP_XI_WB_KB = 450, // White balance blue coefficient + CV_CAP_PROP_XI_WIDTH = 451, // Width of the Image provided by the device (in pixels). + CV_CAP_PROP_XI_HEIGHT = 452, // Height of the Image provided by the device (in pixels). + CV_CAP_PROP_XI_REGION_SELECTOR = 589, // Selects Region in Multiple ROI which parameters are set by width, height, ... ,region mode + CV_CAP_PROP_XI_REGION_MODE = 595, // Activates/deactivates Region selected by Region Selector + CV_CAP_PROP_XI_LIMIT_BANDWIDTH = 459, // Set/get bandwidth(datarate)(in Megabits) + CV_CAP_PROP_XI_SENSOR_DATA_BIT_DEPTH = 460, // Sensor output data bit depth. + CV_CAP_PROP_XI_OUTPUT_DATA_BIT_DEPTH = 461, // Device output data bit depth. + CV_CAP_PROP_XI_IMAGE_DATA_BIT_DEPTH = 462, // bitdepth of data returned by function xiGetImage + CV_CAP_PROP_XI_OUTPUT_DATA_PACKING = 463, // Device output data packing (or grouping) enabled. Packing could be enabled if output_data_bit_depth > 8 and packing capability is available. + CV_CAP_PROP_XI_OUTPUT_DATA_PACKING_TYPE = 464, // Data packing type. Some cameras supports only specific packing type. + CV_CAP_PROP_XI_IS_COOLED = 465, // Returns 1 for cameras that support cooling. + CV_CAP_PROP_XI_COOLING = 466, // Start camera cooling. + CV_CAP_PROP_XI_TARGET_TEMP = 467, // Set sensor target temperature for cooling. + CV_CAP_PROP_XI_CHIP_TEMP = 468, // Camera sensor temperature + CV_CAP_PROP_XI_HOUS_TEMP = 469, // Camera housing tepmerature + CV_CAP_PROP_XI_HOUS_BACK_SIDE_TEMP = 590, // Camera housing back side tepmerature + CV_CAP_PROP_XI_SENSOR_BOARD_TEMP = 596, // Camera sensor board temperature + CV_CAP_PROP_XI_CMS = 470, // Mode of color management system. + CV_CAP_PROP_XI_APPLY_CMS = 471, // Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE). + CV_CAP_PROP_XI_IMAGE_IS_COLOR = 474, // Returns 1 for color cameras. + CV_CAP_PROP_XI_COLOR_FILTER_ARRAY = 475, // Returns color filter array type of RAW data. + CV_CAP_PROP_XI_GAMMAY = 476, // Luminosity gamma + CV_CAP_PROP_XI_GAMMAC = 477, // Chromaticity gamma + CV_CAP_PROP_XI_SHARPNESS = 478, // Sharpness Strength + CV_CAP_PROP_XI_CC_MATRIX_00 = 479, // Color Correction Matrix element [0][0] + CV_CAP_PROP_XI_CC_MATRIX_01 = 480, // Color Correction Matrix element [0][1] + CV_CAP_PROP_XI_CC_MATRIX_02 = 481, // Color Correction Matrix element [0][2] + CV_CAP_PROP_XI_CC_MATRIX_03 = 482, // Color Correction Matrix element [0][3] + CV_CAP_PROP_XI_CC_MATRIX_10 = 483, // Color Correction Matrix element [1][0] + CV_CAP_PROP_XI_CC_MATRIX_11 = 484, // Color Correction Matrix element [1][1] + CV_CAP_PROP_XI_CC_MATRIX_12 = 485, // Color Correction Matrix element [1][2] + CV_CAP_PROP_XI_CC_MATRIX_13 = 486, // Color Correction Matrix element [1][3] + CV_CAP_PROP_XI_CC_MATRIX_20 = 487, // Color Correction Matrix element [2][0] + CV_CAP_PROP_XI_CC_MATRIX_21 = 488, // Color Correction Matrix element [2][1] + CV_CAP_PROP_XI_CC_MATRIX_22 = 489, // Color Correction Matrix element [2][2] + CV_CAP_PROP_XI_CC_MATRIX_23 = 490, // Color Correction Matrix element [2][3] + CV_CAP_PROP_XI_CC_MATRIX_30 = 491, // Color Correction Matrix element [3][0] + CV_CAP_PROP_XI_CC_MATRIX_31 = 492, // Color Correction Matrix element [3][1] + CV_CAP_PROP_XI_CC_MATRIX_32 = 493, // Color Correction Matrix element [3][2] + CV_CAP_PROP_XI_CC_MATRIX_33 = 494, // Color Correction Matrix element [3][3] + CV_CAP_PROP_XI_DEFAULT_CC_MATRIX = 495, // Set default Color Correction Matrix + CV_CAP_PROP_XI_TRG_SELECTOR = 498, // Selects the type of trigger. + CV_CAP_PROP_XI_ACQ_FRAME_BURST_COUNT = 499, // Sets number of frames acquired by burst. This burst is used only if trigger is set to FrameBurstStart + CV_CAP_PROP_XI_DEBOUNCE_EN = 507, // Enable/Disable debounce to selected GPI + CV_CAP_PROP_XI_DEBOUNCE_T0 = 508, // Debounce time (x * 10us) + CV_CAP_PROP_XI_DEBOUNCE_T1 = 509, // Debounce time (x * 10us) + CV_CAP_PROP_XI_DEBOUNCE_POL = 510, // Debounce polarity (pol = 1 t0 - falling edge, t1 - rising edge) + CV_CAP_PROP_XI_LENS_MODE = 511, // Status of lens control interface. This shall be set to XI_ON before any Lens operations. + CV_CAP_PROP_XI_LENS_APERTURE_VALUE = 512, // Current lens aperture value in stops. Examples: 2.8, 4, 5.6, 8, 11 + CV_CAP_PROP_XI_LENS_FOCUS_MOVEMENT_VALUE = 513, // Lens current focus movement value to be used by XI_PRM_LENS_FOCUS_MOVE in motor steps. + CV_CAP_PROP_XI_LENS_FOCUS_MOVE = 514, // Moves lens focus motor by steps set in XI_PRM_LENS_FOCUS_MOVEMENT_VALUE. + CV_CAP_PROP_XI_LENS_FOCUS_DISTANCE = 515, // Lens focus distance in cm. + CV_CAP_PROP_XI_LENS_FOCAL_LENGTH = 516, // Lens focal distance in mm. + CV_CAP_PROP_XI_LENS_FEATURE_SELECTOR = 517, // Selects the current feature which is accessible by XI_PRM_LENS_FEATURE. + CV_CAP_PROP_XI_LENS_FEATURE = 518, // Allows access to lens feature value currently selected by XI_PRM_LENS_FEATURE_SELECTOR. + CV_CAP_PROP_XI_DEVICE_MODEL_ID = 521, // Return device model id + CV_CAP_PROP_XI_DEVICE_SN = 522, // Return device serial number + CV_CAP_PROP_XI_IMAGE_DATA_FORMAT_RGB32_ALPHA = 529, // The alpha channel of RGB32 output image format. + CV_CAP_PROP_XI_IMAGE_PAYLOAD_SIZE = 530, // Buffer size in bytes sufficient for output image returned by xiGetImage + CV_CAP_PROP_XI_TRANSPORT_PIXEL_FORMAT = 531, // Current format of pixels on transport layer. + CV_CAP_PROP_XI_SENSOR_CLOCK_FREQ_HZ = 532, // Sensor clock frequency in Hz. + CV_CAP_PROP_XI_SENSOR_CLOCK_FREQ_INDEX = 533, // Sensor clock frequency index. Sensor with selected frequencies have possibility to set the frequency only by this index. + CV_CAP_PROP_XI_SENSOR_OUTPUT_CHANNEL_COUNT = 534, // Number of output channels from sensor used for data transfer. + CV_CAP_PROP_XI_FRAMERATE = 535, // Define framerate in Hz + CV_CAP_PROP_XI_COUNTER_SELECTOR = 536, // Select counter + CV_CAP_PROP_XI_COUNTER_VALUE = 537, // Counter status + CV_CAP_PROP_XI_ACQ_TIMING_MODE = 538, // Type of sensor frames timing. + CV_CAP_PROP_XI_AVAILABLE_BANDWIDTH = 539, // Calculate and return available interface bandwidth(int Megabits) + CV_CAP_PROP_XI_BUFFER_POLICY = 540, // Data move policy + CV_CAP_PROP_XI_LUT_EN = 541, // Activates LUT. + CV_CAP_PROP_XI_LUT_INDEX = 542, // Control the index (offset) of the coefficient to access in the LUT. + CV_CAP_PROP_XI_LUT_VALUE = 543, // Value at entry LUTIndex of the LUT + CV_CAP_PROP_XI_TRG_DELAY = 544, // Specifies the delay in microseconds (us) to apply after the trigger reception before activating it. + CV_CAP_PROP_XI_TS_RST_MODE = 545, // Defines how time stamp reset engine will be armed + CV_CAP_PROP_XI_TS_RST_SOURCE = 546, // Defines which source will be used for timestamp reset. Writing this parameter will trigger settings of engine (arming) + CV_CAP_PROP_XI_IS_DEVICE_EXIST = 547, // Returns 1 if camera connected and works properly. + CV_CAP_PROP_XI_ACQ_BUFFER_SIZE = 548, // Acquisition buffer size in buffer_size_unit. Default bytes. + CV_CAP_PROP_XI_ACQ_BUFFER_SIZE_UNIT = 549, // Acquisition buffer size unit in bytes. Default 1. E.g. Value 1024 means that buffer_size is in KiBytes + CV_CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_SIZE = 550, // Acquisition transport buffer size in bytes + CV_CAP_PROP_XI_BUFFERS_QUEUE_SIZE = 551, // Queue of field/frame buffers + CV_CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_COMMIT = 552, // Number of buffers to commit to low level + CV_CAP_PROP_XI_RECENT_FRAME = 553, // GetImage returns most recent frame + CV_CAP_PROP_XI_DEVICE_RESET = 554, // Resets the camera to default state. + CV_CAP_PROP_XI_COLUMN_FPN_CORRECTION = 555, // Correction of column FPN + CV_CAP_PROP_XI_ROW_FPN_CORRECTION = 591, // Correction of row FPN + CV_CAP_PROP_XI_SENSOR_MODE = 558, // Current sensor mode. Allows to select sensor mode by one integer. Setting of this parameter affects: image dimensions and downsampling. + CV_CAP_PROP_XI_HDR = 559, // Enable High Dynamic Range feature. + CV_CAP_PROP_XI_HDR_KNEEPOINT_COUNT = 560, // The number of kneepoints in the PWLR. + CV_CAP_PROP_XI_HDR_T1 = 561, // position of first kneepoint(in % of XI_PRM_EXPOSURE) + CV_CAP_PROP_XI_HDR_T2 = 562, // position of second kneepoint (in % of XI_PRM_EXPOSURE) + CV_CAP_PROP_XI_KNEEPOINT1 = 563, // value of first kneepoint (% of sensor saturation) + CV_CAP_PROP_XI_KNEEPOINT2 = 564, // value of second kneepoint (% of sensor saturation) + CV_CAP_PROP_XI_IMAGE_BLACK_LEVEL = 565, // Last image black level counts. Can be used for Offline processing to recall it. + CV_CAP_PROP_XI_HW_REVISION = 571, // Returns hardware revision number. + CV_CAP_PROP_XI_DEBUG_LEVEL = 572, // Set debug level + CV_CAP_PROP_XI_AUTO_BANDWIDTH_CALCULATION = 573, // Automatic bandwidth calculation, + CV_CAP_PROP_XI_FFS_FILE_ID = 594, // File number. + CV_CAP_PROP_XI_FFS_FILE_SIZE = 580, // Size of file. + CV_CAP_PROP_XI_FREE_FFS_SIZE = 581, // Size of free camera FFS. + CV_CAP_PROP_XI_USED_FFS_SIZE = 582, // Size of used camera FFS. + CV_CAP_PROP_XI_FFS_ACCESS_KEY = 583, // Setting of key enables file operations on some cameras. + CV_CAP_PROP_XI_SENSOR_FEATURE_SELECTOR = 585, // Selects the current feature which is accessible by XI_PRM_SENSOR_FEATURE_VALUE. + CV_CAP_PROP_XI_SENSOR_FEATURE_VALUE = 586, // Allows access to sensor feature value currently selected by XI_PRM_SENSOR_FEATURE_SELECTOR. + + + // Properties for Android cameras + CV_CAP_PROP_ANDROID_FLASH_MODE = 8001, + CV_CAP_PROP_ANDROID_FOCUS_MODE = 8002, + CV_CAP_PROP_ANDROID_WHITE_BALANCE = 8003, + CV_CAP_PROP_ANDROID_ANTIBANDING = 8004, + CV_CAP_PROP_ANDROID_FOCAL_LENGTH = 8005, + CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_NEAR = 8006, + CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_OPTIMAL = 8007, + CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_FAR = 8008, + CV_CAP_PROP_ANDROID_EXPOSE_LOCK = 8009, + CV_CAP_PROP_ANDROID_WHITEBALANCE_LOCK = 8010, + + // Properties of cameras available through AVFOUNDATION interface + CV_CAP_PROP_IOS_DEVICE_FOCUS = 9001, + CV_CAP_PROP_IOS_DEVICE_EXPOSURE = 9002, + CV_CAP_PROP_IOS_DEVICE_FLASH = 9003, + CV_CAP_PROP_IOS_DEVICE_WHITEBALANCE = 9004, + CV_CAP_PROP_IOS_DEVICE_TORCH = 9005, + + // Properties of cameras available through Smartek Giganetix Ethernet Vision interface + /* --- Vladimir Litvinenko (litvinenko.vladimir@gmail.com) --- */ + CV_CAP_PROP_GIGA_FRAME_OFFSET_X = 10001, + CV_CAP_PROP_GIGA_FRAME_OFFSET_Y = 10002, + CV_CAP_PROP_GIGA_FRAME_WIDTH_MAX = 10003, + CV_CAP_PROP_GIGA_FRAME_HEIGH_MAX = 10004, + CV_CAP_PROP_GIGA_FRAME_SENS_WIDTH = 10005, + CV_CAP_PROP_GIGA_FRAME_SENS_HEIGH = 10006, + + CV_CAP_PROP_INTELPERC_PROFILE_COUNT = 11001, + CV_CAP_PROP_INTELPERC_PROFILE_IDX = 11002, + CV_CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE = 11003, + CV_CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE = 11004, + CV_CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD = 11005, + CV_CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ = 11006, + CV_CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT = 11007, + + // Intel PerC streams + CV_CAP_INTELPERC_DEPTH_GENERATOR = 1 << 29, + CV_CAP_INTELPERC_IMAGE_GENERATOR = 1 << 28, + CV_CAP_INTELPERC_GENERATORS_MASK = CV_CAP_INTELPERC_DEPTH_GENERATOR + CV_CAP_INTELPERC_IMAGE_GENERATOR +}; + +enum +{ + // Data given from depth generator. + CV_CAP_OPENNI_DEPTH_MAP = 0, // Depth values in mm (CV_16UC1) + CV_CAP_OPENNI_POINT_CLOUD_MAP = 1, // XYZ in meters (CV_32FC3) + CV_CAP_OPENNI_DISPARITY_MAP = 2, // Disparity in pixels (CV_8UC1) + CV_CAP_OPENNI_DISPARITY_MAP_32F = 3, // Disparity in pixels (CV_32FC1) + CV_CAP_OPENNI_VALID_DEPTH_MASK = 4, // CV_8UC1 + + // Data given from RGB image generator. + CV_CAP_OPENNI_BGR_IMAGE = 5, + CV_CAP_OPENNI_GRAY_IMAGE = 6, + + // Data given from IR image generator. + CV_CAP_OPENNI_IR_IMAGE = 7 +}; + +// Supported output modes of OpenNI image generator +enum +{ + CV_CAP_OPENNI_VGA_30HZ = 0, + CV_CAP_OPENNI_SXGA_15HZ = 1, + CV_CAP_OPENNI_SXGA_30HZ = 2, + CV_CAP_OPENNI_QVGA_30HZ = 3, + CV_CAP_OPENNI_QVGA_60HZ = 4 +}; + +enum +{ + CV_CAP_INTELPERC_DEPTH_MAP = 0, // Each pixel is a 16-bit integer. The value indicates the distance from an object to the camera's XY plane or the Cartesian depth. + CV_CAP_INTELPERC_UVDEPTH_MAP = 1, // Each pixel contains two 32-bit floating point values in the range of 0-1, representing the mapping of depth coordinates to the color coordinates. + CV_CAP_INTELPERC_IR_MAP = 2, // Each pixel is a 16-bit integer. The value indicates the intensity of the reflected laser beam. + CV_CAP_INTELPERC_IMAGE = 3 +}; + +// gPhoto2 properties, if propertyId is less than 0 then work on widget with that __additive inversed__ camera setting ID +// Get IDs by using CAP_PROP_GPHOTO2_WIDGET_ENUMERATE. +// @see CvCaptureCAM_GPHOTO2 for more info +enum +{ + CV_CAP_PROP_GPHOTO2_PREVIEW = 17001, // Capture only preview from liveview mode. + CV_CAP_PROP_GPHOTO2_WIDGET_ENUMERATE = 17002, // Readonly, returns (const char *). + CV_CAP_PROP_GPHOTO2_RELOAD_CONFIG = 17003, // Trigger, only by set. Reload camera settings. + CV_CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE = 17004, // Reload all settings on set. + CV_CAP_PROP_GPHOTO2_COLLECT_MSGS = 17005, // Collect messages with details. + CV_CAP_PROP_GPHOTO2_FLUSH_MSGS = 17006, // Readonly, returns (const char *). + CV_CAP_PROP_SPEED = 17007, // Exposure speed. Can be readonly, depends on camera program. + CV_CAP_PROP_APERTURE = 17008, // Aperture. Can be readonly, depends on camera program. + CV_CAP_PROP_EXPOSUREPROGRAM = 17009, // Camera exposure program. + CV_CAP_PROP_VIEWFINDER = 17010 // Enter liveview mode. +}; + +//! Macro to construct the fourcc code of the codec. Same as CV_FOURCC() +#define CV_FOURCC_MACRO(c1, c2, c3, c4) (((c1) & 255) + (((c2) & 255) << 8) + (((c3) & 255) << 16) + (((c4) & 255) << 24)) + +/** @brief Constructs the fourcc code of the codec function + +Simply call it with 4 chars fourcc code like `CV_FOURCC('I', 'Y', 'U', 'V')` + +List of codes can be obtained at [Video Codecs by FOURCC](http://www.fourcc.org/codecs.php) page. +FFMPEG backend with MP4 container natively uses other values as fourcc code: +see [ObjectType](http://www.mp4ra.org/codecs.html). +*/ +CV_INLINE int CV_FOURCC(char c1, char c2, char c3, char c4) +{ + return CV_FOURCC_MACRO(c1, c2, c3, c4); +} + +//! (Windows only) Open Codec Selection Dialog +#define CV_FOURCC_PROMPT -1 +//! (Linux only) Use default codec for specified filename +#define CV_FOURCC_DEFAULT CV_FOURCC('I', 'Y', 'U', 'V') + +#endif // OPENCV_VIDEOIO_LEGACY_CONSTANTS_H diff --git a/lib/3rdParty/OpenCV/include/opencv2/videoio/registry.hpp b/lib/3rdParty/OpenCV/include/opencv2/videoio/registry.hpp new file mode 100644 index 000000000..19a91003d --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/videoio/registry.hpp @@ -0,0 +1,47 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +#ifndef OPENCV_VIDEOIO_REGISTRY_HPP +#define OPENCV_VIDEOIO_REGISTRY_HPP + +#include + +namespace cv { namespace videoio_registry { +/** @addtogroup videoio_registry +This section contains API description how to query/configure available Video I/O backends. + +Runtime configuration options: +- enable debug mode: `OPENCV_VIDEOIO_DEBUG=1` +- change backend priority: `OPENCV_VIDEOIO_PRIORITY_=9999` +- disable backend: `OPENCV_VIDEOIO_PRIORITY_=0` +- specify list of backends with high priority (>100000): `OPENCV_VIDEOIO_PRIORITY_LIST=FFMPEG,GSTREAMER` + +@{ + */ + + +/** @brief Returns backend API name or "unknown" +@param api backend ID (#VideoCaptureAPIs) +*/ +CV_EXPORTS_W cv::String getBackendName(VideoCaptureAPIs api); + +/** @brief Returns list of all builtin backends */ +CV_EXPORTS_W std::vector getBackends(); + +/** @brief Returns list of available backends which works via `cv::VideoCapture(int index)` */ +CV_EXPORTS_W std::vector getCameraBackends(); + +/** @brief Returns list of available backends which works via `cv::VideoCapture(filename)` */ +CV_EXPORTS_W std::vector getStreamBackends(); + +/** @brief Returns list of available backends which works via `cv::VideoWriter()` */ +CV_EXPORTS_W std::vector getWriterBackends(); + +/** @brief Returns true if backend is available */ +CV_EXPORTS bool hasBackend(VideoCaptureAPIs api); + +//! @} +}} // namespace + +#endif // OPENCV_VIDEOIO_REGISTRY_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio/videoio.hpp b/lib/3rdParty/OpenCV/include/opencv2/videoio/videoio.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/videoio/videoio.hpp rename to lib/3rdParty/OpenCV/include/opencv2/videoio/videoio.hpp diff --git a/lib/3rdParty/OpenCV/include/opencv2/videoio/videoio_c.h b/lib/3rdParty/OpenCV/include/opencv2/videoio/videoio_c.h new file mode 100644 index 000000000..cf1a6d041 --- /dev/null +++ b/lib/3rdParty/OpenCV/include/opencv2/videoio/videoio_c.h @@ -0,0 +1,153 @@ +/*M/////////////////////////////////////////////////////////////////////////////////////// +// +// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. +// +// By downloading, copying, installing or using the software you agree to this license. +// If you do not agree to this license, do not download, install, +// copy or use the software. +// +// +// Intel License Agreement +// For Open Source Computer Vision Library +// +// Copyright (C) 2000, Intel Corporation, all rights reserved. +// Third party copyrights are property of their respective owners. +// +// Redistribution and use in source and binary forms, with or without modification, +// are permitted provided that the following conditions are met: +// +// * Redistribution's of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution's in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * The name of Intel Corporation may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// This software is provided by the copyright holders and contributors "as is" and +// any express or implied warranties, including, but not limited to, the implied +// warranties of merchantability and fitness for a particular purpose are disclaimed. +// In no event shall the Intel Corporation or contributors be liable for any direct, +// indirect, incidental, special, exemplary, or consequential damages +// (including, but not limited to, procurement of substitute goods or services; +// loss of use, data, or profits; or business interruption) however caused +// and on any theory of liability, whether in contract, strict liability, +// or tort (including negligence or otherwise) arising in any way out of +// the use of this software, even if advised of the possibility of such damage. +// +//M*/ + +#ifndef OPENCV_VIDEOIO_H +#define OPENCV_VIDEOIO_H + +#include "opencv2/core/core_c.h" + +#include "opencv2/videoio/legacy/constants_c.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + @addtogroup videoio_c + @{ +*/ + +/****************************************************************************************\ +* Working with Video Files and Cameras * +\****************************************************************************************/ + +/** @brief "black box" capture structure + +In C++ use cv::VideoCapture +*/ +typedef struct CvCapture CvCapture; + +/** @brief start capturing frames from video file +*/ +CVAPI(CvCapture*) cvCreateFileCapture( const char* filename ); + +/** @brief start capturing frames from video file. allows specifying a preferred API to use +*/ +CVAPI(CvCapture*) cvCreateFileCaptureWithPreference( const char* filename , int apiPreference); + +/** @brief start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*) +*/ +CVAPI(CvCapture*) cvCreateCameraCapture( int index ); + +/** @brief grab a frame, return 1 on success, 0 on fail. + + this function is thought to be fast +*/ +CVAPI(int) cvGrabFrame( CvCapture* capture ); + +/** @brief get the frame grabbed with cvGrabFrame(..) + + This function may apply some frame processing like + frame decompression, flipping etc. + @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!! +*/ +CVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture, int streamIdx CV_DEFAULT(0) ); + +/** @brief Just a combination of cvGrabFrame and cvRetrieveFrame + + @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!! +*/ +CVAPI(IplImage*) cvQueryFrame( CvCapture* capture ); + +/** @brief stop capturing/reading and free resources +*/ +CVAPI(void) cvReleaseCapture( CvCapture** capture ); + +/** @brief retrieve capture properties +*/ +CVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id ); +/** @brief set capture properties +*/ +CVAPI(int) cvSetCaptureProperty( CvCapture* capture, int property_id, double value ); + +/** @brief Return the type of the capturer (eg, ::CV_CAP_VFW, ::CV_CAP_UNICAP) + +It is unknown if created with ::CV_CAP_ANY +*/ +CVAPI(int) cvGetCaptureDomain( CvCapture* capture); + +/** @brief "black box" video file writer structure + +In C++ use cv::VideoWriter +*/ +typedef struct CvVideoWriter CvVideoWriter; + +/** @brief initialize video file writer +*/ +CVAPI(CvVideoWriter*) cvCreateVideoWriter( const char* filename, int fourcc, + double fps, CvSize frame_size, + int is_color CV_DEFAULT(1)); + +/** @brief write frame to video file +*/ +CVAPI(int) cvWriteFrame( CvVideoWriter* writer, const IplImage* image ); + +/** @brief close video file writer +*/ +CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer ); + +// *************************************************************************************** +//! @name Obsolete functions/synonyms +//! @{ +#define cvCaptureFromCAM cvCreateCameraCapture //!< @deprecated use cvCreateCameraCapture() instead +#define cvCaptureFromFile cvCreateFileCapture //!< @deprecated use cvCreateFileCapture() instead +#define cvCaptureFromAVI cvCaptureFromFile //!< @deprecated use cvCreateFileCapture() instead +#define cvCreateAVIWriter cvCreateVideoWriter //!< @deprecated use cvCreateVideoWriter() instead +#define cvWriteToAVI cvWriteFrame //!< @deprecated use cvWriteFrame() instead +//! @} Obsolete... + +//! @} videoio_c + +#ifdef __cplusplus +} +#endif + +#endif //OPENCV_VIDEOIO_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/world.hpp b/lib/3rdParty/OpenCV/include/opencv2/world.hpp similarity index 100% rename from lib/3rdParty/OpenCV3.4/include/opencv2/world.hpp rename to lib/3rdParty/OpenCV/include/opencv2/world.hpp diff --git a/lib/3rdParty/OpenCV/openCV.props b/lib/3rdParty/OpenCV/openCV.props new file mode 100644 index 000000000..0197dcb65 --- /dev/null +++ b/lib/3rdParty/OpenCV/openCV.props @@ -0,0 +1,22 @@ + + + + + + + + $(SolutionDir)lib\3rdParty\OpenCV\include\opencv;$(SolutionDir)lib\3rdParty\OpenCV\include;%(AdditionalIncludeDirectories) + + + $(SolutionDir)lib\3rdParty\OpenCV\$(PlatformTarget)\$(PlatformToolset)\lib\$(Configuration);%(AdditionalLibraryDirectories) + opencv_world410.lib;%(AdditionalDependencies) + + + xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV\$(PlatformTarget)\$(PlatformToolset)\bin\$(Configuration)" "$(OutDir)" +xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV\bin\opencv_ffmpeg410.dll" "$(OutDir)" +xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV\bin\opencv_ffmpeg410_64.dll" "$(OutDir)" +xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV\classifiers" "$(OutDir)classifiers" + + + + \ No newline at end of file diff --git a/lib/3rdParty/OpenCV/x64/v141/lib/Debug/opencv_world410.lib b/lib/3rdParty/OpenCV/x64/v141/lib/Debug/opencv_world410.lib new file mode 100644 index 000000000..4b43f9d38 Binary files /dev/null and b/lib/3rdParty/OpenCV/x64/v141/lib/Debug/opencv_world410.lib differ diff --git a/lib/3rdParty/OpenCV/x64/v141/lib/Release/opencv_world410.lib b/lib/3rdParty/OpenCV/x64/v141/lib/Release/opencv_world410.lib new file mode 100644 index 000000000..085fab8a8 Binary files /dev/null and b/lib/3rdParty/OpenCV/x64/v141/lib/Release/opencv_world410.lib differ diff --git a/lib/3rdParty/OpenCV/x86/v141/lib/Debug/opencv_world410.lib b/lib/3rdParty/OpenCV/x86/v141/lib/Debug/opencv_world410.lib new file mode 100644 index 000000000..9a9cd89fd Binary files /dev/null and b/lib/3rdParty/OpenCV/x86/v141/lib/Debug/opencv_world410.lib differ diff --git a/lib/3rdParty/OpenCV/x86/v141/lib/Release/opencv_world410.lib b/lib/3rdParty/OpenCV/x86/v141/lib/Release/opencv_world410.lib new file mode 100644 index 000000000..d6c9fb121 Binary files /dev/null and b/lib/3rdParty/OpenCV/x86/v141/lib/Release/opencv_world410.lib differ diff --git a/lib/3rdParty/OpenCV3.4/bin/opencv_ffmpeg340.dll b/lib/3rdParty/OpenCV3.4/bin/opencv_ffmpeg340.dll deleted file mode 100644 index 2a9b7aa9e..000000000 Binary files a/lib/3rdParty/OpenCV3.4/bin/opencv_ffmpeg340.dll and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/bin/opencv_ffmpeg340_64.dll b/lib/3rdParty/OpenCV3.4/bin/opencv_ffmpeg340_64.dll deleted file mode 100644 index 45dc83911..000000000 Binary files a/lib/3rdParty/OpenCV3.4/bin/opencv_ffmpeg340_64.dll and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cv.h b/lib/3rdParty/OpenCV3.4/include/opencv/cv.h deleted file mode 100644 index 19a74e297..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cv.h +++ /dev/null @@ -1,73 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_CV_H -#define OPENCV_OLD_CV_H - -#if defined(_MSC_VER) - #define CV_DO_PRAGMA(x) __pragma(x) - #define __CVSTR2__(x) #x - #define __CVSTR1__(x) __CVSTR2__(x) - #define __CVMSVCLOC__ __FILE__ "("__CVSTR1__(__LINE__)") : " - #define CV_MSG_PRAGMA(_msg) CV_DO_PRAGMA(message (__CVMSVCLOC__ _msg)) -#elif defined(__GNUC__) - #define CV_DO_PRAGMA(x) _Pragma (#x) - #define CV_MSG_PRAGMA(_msg) CV_DO_PRAGMA(message (_msg)) -#else - #define CV_DO_PRAGMA(x) - #define CV_MSG_PRAGMA(_msg) -#endif -#define CV_WARNING(x) CV_MSG_PRAGMA("Warning: " #x) - -//CV_WARNING("This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module") - -#include "opencv2/core/core_c.h" -#include "opencv2/imgproc/imgproc_c.h" -#include "opencv2/photo/photo_c.h" -#include "opencv2/video/tracking_c.h" -#include "opencv2/objdetect/objdetect_c.h" - -#if !defined(CV_IMPL) -#define CV_IMPL extern "C" -#endif //CV_IMPL - -#endif // __OPENCV_OLD_CV_H_ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cv.hpp b/lib/3rdParty/OpenCV3.4/include/opencv/cv.hpp deleted file mode 100644 index 867395644..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cv.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_CV_HPP -#define OPENCV_OLD_CV_HPP - -//#if defined(__GNUC__) -//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module" -//#endif - -#include "cv.h" -#include "opencv2/core.hpp" -#include "opencv2/imgproc.hpp" -#include "opencv2/photo.hpp" -#include "opencv2/video.hpp" -#include "opencv2/highgui.hpp" -#include "opencv2/features2d.hpp" -#include "opencv2/calib3d.hpp" -#include "opencv2/objdetect.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cvaux.h b/lib/3rdParty/OpenCV3.4/include/opencv/cvaux.h deleted file mode 100644 index c0367cc25..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cvaux.h +++ /dev/null @@ -1,57 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_AUX_H -#define OPENCV_OLD_AUX_H - -//#if defined(__GNUC__) -//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module" -//#endif - -#include "opencv2/core/core_c.h" -#include "opencv2/imgproc/imgproc_c.h" -#include "opencv2/photo/photo_c.h" -#include "opencv2/video/tracking_c.h" -#include "opencv2/objdetect/objdetect_c.h" - -#endif - -/* End of file. */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cvaux.hpp b/lib/3rdParty/OpenCV3.4/include/opencv/cvaux.hpp deleted file mode 100644 index 4888eef28..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cvaux.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_AUX_HPP -#define OPENCV_OLD_AUX_HPP - -//#if defined(__GNUC__) -//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module" -//#endif - -#include "cvaux.h" -#include "opencv2/core/utility.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cvwimage.h b/lib/3rdParty/OpenCV3.4/include/opencv/cvwimage.h deleted file mode 100644 index ec0ab141d..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cvwimage.h +++ /dev/null @@ -1,46 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to -// this license. If you do not agree to this license, do not download, -// install, copy or use the software. -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2008, Google, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation or contributors may not be used to endorse -// or promote products derived from this software without specific -// prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" -// and any express or implied warranties, including, but not limited to, the -// implied warranties of merchantability and fitness for a particular purpose -// are disclaimed. In no event shall the Intel Corporation or contributors be -// liable for any direct, indirect, incidental, special, exemplary, or -// consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. - - -#ifndef OPENCV_OLD_WIMAGE_HPP -#define OPENCV_OLD_WIMAGE_HPP - -#include "opencv2/core/wimage.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cxcore.h b/lib/3rdParty/OpenCV3.4/include/opencv/cxcore.h deleted file mode 100644 index dc070c77d..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cxcore.h +++ /dev/null @@ -1,52 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_CXCORE_H -#define OPENCV_OLD_CXCORE_H - -//#if defined(__GNUC__) -//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module" -//#endif - -#include "opencv2/core/core_c.h" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cxcore.hpp b/lib/3rdParty/OpenCV3.4/include/opencv/cxcore.hpp deleted file mode 100644 index c371677c9..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cxcore.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_CXCORE_HPP -#define OPENCV_OLD_CXCORE_HPP - -//#if defined(__GNUC__) -//#warning "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module" -//#endif - -#include "cxcore.h" -#include "opencv2/core.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cxeigen.hpp b/lib/3rdParty/OpenCV3.4/include/opencv/cxeigen.hpp deleted file mode 100644 index 1d3df914a..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cxeigen.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_EIGEN_HPP -#define OPENCV_OLD_EIGEN_HPP - -#include "opencv2/core/eigen.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/cxmisc.h b/lib/3rdParty/OpenCV3.4/include/opencv/cxmisc.h deleted file mode 100644 index 9b9bc8204..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/cxmisc.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef OPENCV_OLD_CXMISC_H -#define OPENCV_OLD_CXMISC_H - -#ifdef __cplusplus -# include "opencv2/core/utility.hpp" -#endif - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/highgui.h b/lib/3rdParty/OpenCV3.4/include/opencv/highgui.h deleted file mode 100644 index 69b394e08..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/highgui.h +++ /dev/null @@ -1,48 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_HIGHGUI_H -#define OPENCV_OLD_HIGHGUI_H - -#include "opencv2/core/core_c.h" -#include "opencv2/highgui/highgui_c.h" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv/ml.h b/lib/3rdParty/OpenCV3.4/include/opencv/ml.h deleted file mode 100644 index 0c376bacb..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv/ml.h +++ /dev/null @@ -1,47 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OLD_ML_H -#define OPENCV_OLD_ML_H - -#include "opencv2/core/core_c.h" -#include "opencv2/ml.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/calib3d/calib3d_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/calib3d/calib3d_c.h deleted file mode 100644 index 8ec6390d7..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/calib3d/calib3d_c.h +++ /dev/null @@ -1,427 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CALIB3D_C_H -#define OPENCV_CALIB3D_C_H - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** @addtogroup calib3d_c - @{ - */ - -/****************************************************************************************\ -* Camera Calibration, Pose Estimation and Stereo * -\****************************************************************************************/ - -typedef struct CvPOSITObject CvPOSITObject; - -/* Allocates and initializes CvPOSITObject structure before doing cvPOSIT */ -CVAPI(CvPOSITObject*) cvCreatePOSITObject( CvPoint3D32f* points, int point_count ); - - -/* Runs POSIT (POSe from ITeration) algorithm for determining 3d position of - an object given its model and projection in a weak-perspective case */ -CVAPI(void) cvPOSIT( CvPOSITObject* posit_object, CvPoint2D32f* image_points, - double focal_length, CvTermCriteria criteria, - float* rotation_matrix, float* translation_vector); - -/* Releases CvPOSITObject structure */ -CVAPI(void) cvReleasePOSITObject( CvPOSITObject** posit_object ); - -/* updates the number of RANSAC iterations */ -CVAPI(int) cvRANSACUpdateNumIters( double p, double err_prob, - int model_points, int max_iters ); - -CVAPI(void) cvConvertPointsHomogeneous( const CvMat* src, CvMat* dst ); - -/* Calculates fundamental matrix given a set of corresponding points */ -#define CV_FM_7POINT 1 -#define CV_FM_8POINT 2 - -#define CV_LMEDS 4 -#define CV_RANSAC 8 - -#define CV_FM_LMEDS_ONLY CV_LMEDS -#define CV_FM_RANSAC_ONLY CV_RANSAC -#define CV_FM_LMEDS CV_LMEDS -#define CV_FM_RANSAC CV_RANSAC - -enum -{ - CV_ITERATIVE = 0, - CV_EPNP = 1, // F.Moreno-Noguer, V.Lepetit and P.Fua "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" - CV_P3P = 2, // X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang; "Complete Solution Classification for the Perspective-Three-Point Problem" - CV_DLS = 3 // Joel A. Hesch and Stergios I. Roumeliotis. "A Direct Least-Squares (DLS) Method for PnP" -}; - -CVAPI(int) cvFindFundamentalMat( const CvMat* points1, const CvMat* points2, - CvMat* fundamental_matrix, - int method CV_DEFAULT(CV_FM_RANSAC), - double param1 CV_DEFAULT(3.), double param2 CV_DEFAULT(0.99), - CvMat* status CV_DEFAULT(NULL) ); - -/* For each input point on one of images - computes parameters of the corresponding - epipolar line on the other image */ -CVAPI(void) cvComputeCorrespondEpilines( const CvMat* points, - int which_image, - const CvMat* fundamental_matrix, - CvMat* correspondent_lines ); - -/* Triangulation functions */ - -CVAPI(void) cvTriangulatePoints(CvMat* projMatr1, CvMat* projMatr2, - CvMat* projPoints1, CvMat* projPoints2, - CvMat* points4D); - -CVAPI(void) cvCorrectMatches(CvMat* F, CvMat* points1, CvMat* points2, - CvMat* new_points1, CvMat* new_points2); - - -/* Computes the optimal new camera matrix according to the free scaling parameter alpha: - alpha=0 - only valid pixels will be retained in the undistorted image - alpha=1 - all the source image pixels will be retained in the undistorted image -*/ -CVAPI(void) cvGetOptimalNewCameraMatrix( const CvMat* camera_matrix, - const CvMat* dist_coeffs, - CvSize image_size, double alpha, - CvMat* new_camera_matrix, - CvSize new_imag_size CV_DEFAULT(cvSize(0,0)), - CvRect* valid_pixel_ROI CV_DEFAULT(0), - int center_principal_point CV_DEFAULT(0)); - -/* Converts rotation vector to rotation matrix or vice versa */ -CVAPI(int) cvRodrigues2( const CvMat* src, CvMat* dst, - CvMat* jacobian CV_DEFAULT(0) ); - -/* Finds perspective transformation between the object plane and image (view) plane */ -CVAPI(int) cvFindHomography( const CvMat* src_points, - const CvMat* dst_points, - CvMat* homography, - int method CV_DEFAULT(0), - double ransacReprojThreshold CV_DEFAULT(3), - CvMat* mask CV_DEFAULT(0), - int maxIters CV_DEFAULT(2000), - double confidence CV_DEFAULT(0.995)); - -/* Computes RQ decomposition for 3x3 matrices */ -CVAPI(void) cvRQDecomp3x3( const CvMat *matrixM, CvMat *matrixR, CvMat *matrixQ, - CvMat *matrixQx CV_DEFAULT(NULL), - CvMat *matrixQy CV_DEFAULT(NULL), - CvMat *matrixQz CV_DEFAULT(NULL), - CvPoint3D64f *eulerAngles CV_DEFAULT(NULL)); - -/* Computes projection matrix decomposition */ -CVAPI(void) cvDecomposeProjectionMatrix( const CvMat *projMatr, CvMat *calibMatr, - CvMat *rotMatr, CvMat *posVect, - CvMat *rotMatrX CV_DEFAULT(NULL), - CvMat *rotMatrY CV_DEFAULT(NULL), - CvMat *rotMatrZ CV_DEFAULT(NULL), - CvPoint3D64f *eulerAngles CV_DEFAULT(NULL)); - -/* Computes d(AB)/dA and d(AB)/dB */ -CVAPI(void) cvCalcMatMulDeriv( const CvMat* A, const CvMat* B, CvMat* dABdA, CvMat* dABdB ); - -/* Computes r3 = rodrigues(rodrigues(r2)*rodrigues(r1)), - t3 = rodrigues(r2)*t1 + t2 and the respective derivatives */ -CVAPI(void) cvComposeRT( const CvMat* _rvec1, const CvMat* _tvec1, - const CvMat* _rvec2, const CvMat* _tvec2, - CvMat* _rvec3, CvMat* _tvec3, - CvMat* dr3dr1 CV_DEFAULT(0), CvMat* dr3dt1 CV_DEFAULT(0), - CvMat* dr3dr2 CV_DEFAULT(0), CvMat* dr3dt2 CV_DEFAULT(0), - CvMat* dt3dr1 CV_DEFAULT(0), CvMat* dt3dt1 CV_DEFAULT(0), - CvMat* dt3dr2 CV_DEFAULT(0), CvMat* dt3dt2 CV_DEFAULT(0) ); - -/* Projects object points to the view plane using - the specified extrinsic and intrinsic camera parameters */ -CVAPI(void) cvProjectPoints2( const CvMat* object_points, const CvMat* rotation_vector, - const CvMat* translation_vector, const CvMat* camera_matrix, - const CvMat* distortion_coeffs, CvMat* image_points, - CvMat* dpdrot CV_DEFAULT(NULL), CvMat* dpdt CV_DEFAULT(NULL), - CvMat* dpdf CV_DEFAULT(NULL), CvMat* dpdc CV_DEFAULT(NULL), - CvMat* dpddist CV_DEFAULT(NULL), - double aspect_ratio CV_DEFAULT(0)); - -/* Finds extrinsic camera parameters from - a few known corresponding point pairs and intrinsic parameters */ -CVAPI(void) cvFindExtrinsicCameraParams2( const CvMat* object_points, - const CvMat* image_points, - const CvMat* camera_matrix, - const CvMat* distortion_coeffs, - CvMat* rotation_vector, - CvMat* translation_vector, - int use_extrinsic_guess CV_DEFAULT(0) ); - -/* Computes initial estimate of the intrinsic camera parameters - in case of planar calibration target (e.g. chessboard) */ -CVAPI(void) cvInitIntrinsicParams2D( const CvMat* object_points, - const CvMat* image_points, - const CvMat* npoints, CvSize image_size, - CvMat* camera_matrix, - double aspect_ratio CV_DEFAULT(1.) ); - -#define CV_CALIB_CB_ADAPTIVE_THRESH 1 -#define CV_CALIB_CB_NORMALIZE_IMAGE 2 -#define CV_CALIB_CB_FILTER_QUADS 4 -#define CV_CALIB_CB_FAST_CHECK 8 - -// Performs a fast check if a chessboard is in the input image. This is a workaround to -// a problem of cvFindChessboardCorners being slow on images with no chessboard -// - src: input image -// - size: chessboard size -// Returns 1 if a chessboard can be in this image and findChessboardCorners should be called, -// 0 if there is no chessboard, -1 in case of error -CVAPI(int) cvCheckChessboard(IplImage* src, CvSize size); - - /* Detects corners on a chessboard calibration pattern */ -CVAPI(int) cvFindChessboardCorners( const void* image, CvSize pattern_size, - CvPoint2D32f* corners, - int* corner_count CV_DEFAULT(NULL), - int flags CV_DEFAULT(CV_CALIB_CB_ADAPTIVE_THRESH+CV_CALIB_CB_NORMALIZE_IMAGE) ); - -/* Draws individual chessboard corners or the whole chessboard detected */ -CVAPI(void) cvDrawChessboardCorners( CvArr* image, CvSize pattern_size, - CvPoint2D32f* corners, - int count, int pattern_was_found ); - -#define CV_CALIB_USE_INTRINSIC_GUESS 1 -#define CV_CALIB_FIX_ASPECT_RATIO 2 -#define CV_CALIB_FIX_PRINCIPAL_POINT 4 -#define CV_CALIB_ZERO_TANGENT_DIST 8 -#define CV_CALIB_FIX_FOCAL_LENGTH 16 -#define CV_CALIB_FIX_K1 32 -#define CV_CALIB_FIX_K2 64 -#define CV_CALIB_FIX_K3 128 -#define CV_CALIB_FIX_K4 2048 -#define CV_CALIB_FIX_K5 4096 -#define CV_CALIB_FIX_K6 8192 -#define CV_CALIB_RATIONAL_MODEL 16384 -#define CV_CALIB_THIN_PRISM_MODEL 32768 -#define CV_CALIB_FIX_S1_S2_S3_S4 65536 -#define CV_CALIB_TILTED_MODEL 262144 -#define CV_CALIB_FIX_TAUX_TAUY 524288 -#define CV_CALIB_FIX_TANGENT_DIST 2097152 - -#define CV_CALIB_NINTRINSIC 18 - -/* Finds intrinsic and extrinsic camera parameters - from a few views of known calibration pattern */ -CVAPI(double) cvCalibrateCamera2( const CvMat* object_points, - const CvMat* image_points, - const CvMat* point_counts, - CvSize image_size, - CvMat* camera_matrix, - CvMat* distortion_coeffs, - CvMat* rotation_vectors CV_DEFAULT(NULL), - CvMat* translation_vectors CV_DEFAULT(NULL), - int flags CV_DEFAULT(0), - CvTermCriteria term_crit CV_DEFAULT(cvTermCriteria( - CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,DBL_EPSILON)) ); - -/* Computes various useful characteristics of the camera from the data computed by - cvCalibrateCamera2 */ -CVAPI(void) cvCalibrationMatrixValues( const CvMat *camera_matrix, - CvSize image_size, - double aperture_width CV_DEFAULT(0), - double aperture_height CV_DEFAULT(0), - double *fovx CV_DEFAULT(NULL), - double *fovy CV_DEFAULT(NULL), - double *focal_length CV_DEFAULT(NULL), - CvPoint2D64f *principal_point CV_DEFAULT(NULL), - double *pixel_aspect_ratio CV_DEFAULT(NULL)); - -#define CV_CALIB_FIX_INTRINSIC 256 -#define CV_CALIB_SAME_FOCAL_LENGTH 512 - -/* Computes the transformation from one camera coordinate system to another one - from a few correspondent views of the same calibration target. Optionally, calibrates - both cameras */ -CVAPI(double) cvStereoCalibrate( const CvMat* object_points, const CvMat* image_points1, - const CvMat* image_points2, const CvMat* npoints, - CvMat* camera_matrix1, CvMat* dist_coeffs1, - CvMat* camera_matrix2, CvMat* dist_coeffs2, - CvSize image_size, CvMat* R, CvMat* T, - CvMat* E CV_DEFAULT(0), CvMat* F CV_DEFAULT(0), - int flags CV_DEFAULT(CV_CALIB_FIX_INTRINSIC), - CvTermCriteria term_crit CV_DEFAULT(cvTermCriteria( - CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,1e-6)) ); - -#define CV_CALIB_ZERO_DISPARITY 1024 - -/* Computes 3D rotations (+ optional shift) for each camera coordinate system to make both - views parallel (=> to make all the epipolar lines horizontal or vertical) */ -CVAPI(void) cvStereoRectify( const CvMat* camera_matrix1, const CvMat* camera_matrix2, - const CvMat* dist_coeffs1, const CvMat* dist_coeffs2, - CvSize image_size, const CvMat* R, const CvMat* T, - CvMat* R1, CvMat* R2, CvMat* P1, CvMat* P2, - CvMat* Q CV_DEFAULT(0), - int flags CV_DEFAULT(CV_CALIB_ZERO_DISPARITY), - double alpha CV_DEFAULT(-1), - CvSize new_image_size CV_DEFAULT(cvSize(0,0)), - CvRect* valid_pix_ROI1 CV_DEFAULT(0), - CvRect* valid_pix_ROI2 CV_DEFAULT(0)); - -/* Computes rectification transformations for uncalibrated pair of images using a set - of point correspondences */ -CVAPI(int) cvStereoRectifyUncalibrated( const CvMat* points1, const CvMat* points2, - const CvMat* F, CvSize img_size, - CvMat* H1, CvMat* H2, - double threshold CV_DEFAULT(5)); - - - -/* stereo correspondence parameters and functions */ - -#define CV_STEREO_BM_NORMALIZED_RESPONSE 0 -#define CV_STEREO_BM_XSOBEL 1 - -/* Block matching algorithm structure */ -typedef struct CvStereoBMState -{ - // pre-filtering (normalization of input images) - int preFilterType; // =CV_STEREO_BM_NORMALIZED_RESPONSE now - int preFilterSize; // averaging window size: ~5x5..21x21 - int preFilterCap; // the output of pre-filtering is clipped by [-preFilterCap,preFilterCap] - - // correspondence using Sum of Absolute Difference (SAD) - int SADWindowSize; // ~5x5..21x21 - int minDisparity; // minimum disparity (can be negative) - int numberOfDisparities; // maximum disparity - minimum disparity (> 0) - - // post-filtering - int textureThreshold; // the disparity is only computed for pixels - // with textured enough neighborhood - int uniquenessRatio; // accept the computed disparity d* only if - // SAD(d) >= SAD(d*)*(1 + uniquenessRatio/100.) - // for any d != d*+/-1 within the search range. - int speckleWindowSize; // disparity variation window - int speckleRange; // acceptable range of variation in window - - int trySmallerWindows; // if 1, the results may be more accurate, - // at the expense of slower processing - CvRect roi1, roi2; - int disp12MaxDiff; - - // temporary buffers - CvMat* preFilteredImg0; - CvMat* preFilteredImg1; - CvMat* slidingSumBuf; - CvMat* cost; - CvMat* disp; -} CvStereoBMState; - -#define CV_STEREO_BM_BASIC 0 -#define CV_STEREO_BM_FISH_EYE 1 -#define CV_STEREO_BM_NARROW 2 - -CVAPI(CvStereoBMState*) cvCreateStereoBMState(int preset CV_DEFAULT(CV_STEREO_BM_BASIC), - int numberOfDisparities CV_DEFAULT(0)); - -CVAPI(void) cvReleaseStereoBMState( CvStereoBMState** state ); - -CVAPI(void) cvFindStereoCorrespondenceBM( const CvArr* left, const CvArr* right, - CvArr* disparity, CvStereoBMState* state ); - -CVAPI(CvRect) cvGetValidDisparityROI( CvRect roi1, CvRect roi2, int minDisparity, - int numberOfDisparities, int SADWindowSize ); - -CVAPI(void) cvValidateDisparity( CvArr* disparity, const CvArr* cost, - int minDisparity, int numberOfDisparities, - int disp12MaxDiff CV_DEFAULT(1) ); - -/* Reprojects the computed disparity image to the 3D space using the specified 4x4 matrix */ -CVAPI(void) cvReprojectImageTo3D( const CvArr* disparityImage, - CvArr* _3dImage, const CvMat* Q, - int handleMissingValues CV_DEFAULT(0) ); - -/** @} calib3d_c */ - -#ifdef __cplusplus -} // extern "C" - -////////////////////////////////////////////////////////////////////////////////////////// -class CV_EXPORTS CvLevMarq -{ -public: - CvLevMarq(); - CvLevMarq( int nparams, int nerrs, CvTermCriteria criteria= - cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,DBL_EPSILON), - bool completeSymmFlag=false ); - ~CvLevMarq(); - void init( int nparams, int nerrs, CvTermCriteria criteria= - cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,DBL_EPSILON), - bool completeSymmFlag=false ); - bool update( const CvMat*& param, CvMat*& J, CvMat*& err ); - bool updateAlt( const CvMat*& param, CvMat*& JtJ, CvMat*& JtErr, double*& errNorm ); - - void clear(); - void step(); - enum { DONE=0, STARTED=1, CALC_J=2, CHECK_ERR=3 }; - - cv::Ptr mask; - cv::Ptr prevParam; - cv::Ptr param; - cv::Ptr J; - cv::Ptr err; - cv::Ptr JtJ; - cv::Ptr JtJN; - cv::Ptr JtErr; - cv::Ptr JtJV; - cv::Ptr JtJW; - double prevErrNorm, errNorm; - int lambdaLg10; - CvTermCriteria criteria; - int state; - int iters; - bool completeSymmFlag; - int solveMethod; -}; - -#endif - -#endif /* OPENCV_CALIB3D_C_H */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core.hpp deleted file mode 100644 index fe3af3936..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core.hpp +++ /dev/null @@ -1,3286 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2015, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Copyright (C) 2015, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_HPP -#define OPENCV_CORE_HPP - -#ifndef __cplusplus -# error core.hpp header must be compiled as C++ -#endif - -#include "opencv2/core/cvdef.h" -#include "opencv2/core/version.hpp" -#include "opencv2/core/base.hpp" -#include "opencv2/core/cvstd.hpp" -#include "opencv2/core/traits.hpp" -#include "opencv2/core/matx.hpp" -#include "opencv2/core/types.hpp" -#include "opencv2/core/mat.hpp" -#include "opencv2/core/persistence.hpp" - -/** -@defgroup core Core functionality -@{ - @defgroup core_basic Basic structures - @defgroup core_c C structures and operations - @{ - @defgroup core_c_glue Connections with C++ - @} - @defgroup core_array Operations on arrays - @defgroup core_xml XML/YAML Persistence - @defgroup core_cluster Clustering - @defgroup core_utils Utility and system functions and macros - @{ - @defgroup core_utils_sse SSE utilities - @defgroup core_utils_neon NEON utilities - @defgroup core_utils_softfloat Softfloat support - @} - @defgroup core_opengl OpenGL interoperability - @defgroup core_ipp Intel IPP Asynchronous C/C++ Converters - @defgroup core_optim Optimization Algorithms - @defgroup core_directx DirectX interoperability - @defgroup core_eigen Eigen support - @defgroup core_opencl OpenCL support - @defgroup core_va_intel Intel VA-API/OpenCL (CL-VA) interoperability - @defgroup core_hal Hardware Acceleration Layer - @{ - @defgroup core_hal_functions Functions - @defgroup core_hal_interface Interface - @defgroup core_hal_intrin Universal intrinsics - @{ - @defgroup core_hal_intrin_impl Private implementation helpers - @} - @} -@} - */ - -namespace cv { - -//! @addtogroup core_utils -//! @{ - -/*! @brief Class passed to an error. - -This class encapsulates all or almost all necessary -information about the error happened in the program. The exception is -usually constructed and thrown implicitly via CV_Error and CV_Error_ macros. -@see error - */ -class CV_EXPORTS Exception : public std::exception -{ -public: - /*! - Default constructor - */ - Exception(); - /*! - Full constructor. Normally the constructor is not called explicitly. - Instead, the macros CV_Error(), CV_Error_() and CV_Assert() are used. - */ - Exception(int _code, const String& _err, const String& _func, const String& _file, int _line); - virtual ~Exception() throw(); - - /*! - \return the error description and the context as a text string. - */ - virtual const char *what() const throw(); - void formatMessage(); - - String msg; ///< the formatted error message - - int code; ///< error code @see CVStatus - String err; ///< error description - String func; ///< function name. Available only when the compiler supports getting it - String file; ///< source file name where the error has occurred - int line; ///< line number in the source file where the error has occurred -}; - -/*! @brief Signals an error and raises the exception. - -By default the function prints information about the error to stderr, -then it either stops if cv::setBreakOnError() had been called before or raises the exception. -It is possible to alternate error processing by using cv::redirectError(). -@param exc the exception raisen. -@deprecated drop this version - */ -CV_EXPORTS void error( const Exception& exc ); - -enum SortFlags { SORT_EVERY_ROW = 0, //!< each matrix row is sorted independently - SORT_EVERY_COLUMN = 1, //!< each matrix column is sorted - //!< independently; this flag and the previous one are - //!< mutually exclusive. - SORT_ASCENDING = 0, //!< each matrix row is sorted in the ascending - //!< order. - SORT_DESCENDING = 16 //!< each matrix row is sorted in the - //!< descending order; this flag and the previous one are also - //!< mutually exclusive. - }; - -//! @} core_utils - -//! @addtogroup core -//! @{ - -//! Covariation flags -enum CovarFlags { - /** The output covariance matrix is calculated as: - \f[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...],\f] - The covariance matrix will be nsamples x nsamples. Such an unusual covariance matrix is used - for fast PCA of a set of very large vectors (see, for example, the EigenFaces technique for - face recognition). Eigenvalues of this "scrambled" matrix match the eigenvalues of the true - covariance matrix. The "true" eigenvectors can be easily calculated from the eigenvectors of - the "scrambled" covariance matrix. */ - COVAR_SCRAMBLED = 0, - /**The output covariance matrix is calculated as: - \f[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...] \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T,\f] - covar will be a square matrix of the same size as the total number of elements in each input - vector. One and only one of COVAR_SCRAMBLED and COVAR_NORMAL must be specified.*/ - COVAR_NORMAL = 1, - /** If the flag is specified, the function does not calculate mean from - the input vectors but, instead, uses the passed mean vector. This is useful if mean has been - pre-calculated or known in advance, or if the covariance matrix is calculated by parts. In - this case, mean is not a mean vector of the input sub-set of vectors but rather the mean - vector of the whole set.*/ - COVAR_USE_AVG = 2, - /** If the flag is specified, the covariance matrix is scaled. In the - "normal" mode, scale is 1./nsamples . In the "scrambled" mode, scale is the reciprocal of the - total number of elements in each input vector. By default (if the flag is not specified), the - covariance matrix is not scaled ( scale=1 ).*/ - COVAR_SCALE = 4, - /** If the flag is - specified, all the input vectors are stored as rows of the samples matrix. mean should be a - single-row vector in this case.*/ - COVAR_ROWS = 8, - /** If the flag is - specified, all the input vectors are stored as columns of the samples matrix. mean should be a - single-column vector in this case.*/ - COVAR_COLS = 16 -}; - -//! k-Means flags -enum KmeansFlags { - /** Select random initial centers in each attempt.*/ - KMEANS_RANDOM_CENTERS = 0, - /** Use kmeans++ center initialization by Arthur and Vassilvitskii [Arthur2007].*/ - KMEANS_PP_CENTERS = 2, - /** During the first (and possibly the only) attempt, use the - user-supplied labels instead of computing them from the initial centers. For the second and - further attempts, use the random or semi-random centers. Use one of KMEANS_\*_CENTERS flag - to specify the exact method.*/ - KMEANS_USE_INITIAL_LABELS = 1 -}; - -//! type of line -enum LineTypes { - FILLED = -1, - LINE_4 = 4, //!< 4-connected line - LINE_8 = 8, //!< 8-connected line - LINE_AA = 16 //!< antialiased line -}; - -//! Only a subset of Hershey fonts -//! are supported -enum HersheyFonts { - FONT_HERSHEY_SIMPLEX = 0, //!< normal size sans-serif font - FONT_HERSHEY_PLAIN = 1, //!< small size sans-serif font - FONT_HERSHEY_DUPLEX = 2, //!< normal size sans-serif font (more complex than FONT_HERSHEY_SIMPLEX) - FONT_HERSHEY_COMPLEX = 3, //!< normal size serif font - FONT_HERSHEY_TRIPLEX = 4, //!< normal size serif font (more complex than FONT_HERSHEY_COMPLEX) - FONT_HERSHEY_COMPLEX_SMALL = 5, //!< smaller version of FONT_HERSHEY_COMPLEX - FONT_HERSHEY_SCRIPT_SIMPLEX = 6, //!< hand-writing style font - FONT_HERSHEY_SCRIPT_COMPLEX = 7, //!< more complex variant of FONT_HERSHEY_SCRIPT_SIMPLEX - FONT_ITALIC = 16 //!< flag for italic font -}; - -enum ReduceTypes { REDUCE_SUM = 0, //!< the output is the sum of all rows/columns of the matrix. - REDUCE_AVG = 1, //!< the output is the mean vector of all rows/columns of the matrix. - REDUCE_MAX = 2, //!< the output is the maximum (column/row-wise) of all rows/columns of the matrix. - REDUCE_MIN = 3 //!< the output is the minimum (column/row-wise) of all rows/columns of the matrix. - }; - - -/** @brief Swaps two matrices -*/ -CV_EXPORTS void swap(Mat& a, Mat& b); -/** @overload */ -CV_EXPORTS void swap( UMat& a, UMat& b ); - -//! @} core - -//! @addtogroup core_array -//! @{ - -/** @brief Computes the source location of an extrapolated pixel. - -The function computes and returns the coordinate of a donor pixel corresponding to the specified -extrapolated pixel when using the specified extrapolation border mode. For example, if you use -cv::BORDER_WRAP mode in the horizontal direction, cv::BORDER_REFLECT_101 in the vertical direction and -want to compute value of the "virtual" pixel Point(-5, 100) in a floating-point image img , it -looks like: -@code{.cpp} - float val = img.at(borderInterpolate(100, img.rows, cv::BORDER_REFLECT_101), - borderInterpolate(-5, img.cols, cv::BORDER_WRAP)); -@endcode -Normally, the function is not called directly. It is used inside filtering functions and also in -copyMakeBorder. -@param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \<0 or \>= len -@param len Length of the array along the corresponding axis. -@param borderType Border type, one of the cv::BorderTypes, except for cv::BORDER_TRANSPARENT and -cv::BORDER_ISOLATED . When borderType==cv::BORDER_CONSTANT , the function always returns -1, regardless -of p and len. - -@sa copyMakeBorder -*/ -CV_EXPORTS_W int borderInterpolate(int p, int len, int borderType); - -/** @example copyMakeBorder_demo.cpp -An example using copyMakeBorder function - */ -/** @brief Forms a border around an image. - -The function copies the source image into the middle of the destination image. The areas to the -left, to the right, above and below the copied source image will be filled with extrapolated -pixels. This is not what filtering functions based on it do (they extrapolate pixels on-fly), but -what other more complex functions, including your own, may do to simplify image boundary handling. - -The function supports the mode when src is already in the middle of dst . In this case, the -function does not copy src itself but simply constructs the border, for example: - -@code{.cpp} - // let border be the same in all directions - int border=2; - // constructs a larger image to fit both the image and the border - Mat gray_buf(rgb.rows + border*2, rgb.cols + border*2, rgb.depth()); - // select the middle part of it w/o copying data - Mat gray(gray_canvas, Rect(border, border, rgb.cols, rgb.rows)); - // convert image from RGB to grayscale - cvtColor(rgb, gray, COLOR_RGB2GRAY); - // form a border in-place - copyMakeBorder(gray, gray_buf, border, border, - border, border, BORDER_REPLICATE); - // now do some custom filtering ... - ... -@endcode -@note When the source image is a part (ROI) of a bigger image, the function will try to use the -pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as -if src was not a ROI, use borderType | BORDER_ISOLATED. - -@param src Source image. -@param dst Destination image of the same type as src and the size Size(src.cols+left+right, -src.rows+top+bottom) . -@param top -@param bottom -@param left -@param right Parameter specifying how many pixels in each direction from the source image rectangle -to extrapolate. For example, top=1, bottom=1, left=1, right=1 mean that 1 pixel-wide border needs -to be built. -@param borderType Border type. See borderInterpolate for details. -@param value Border value if borderType==BORDER_CONSTANT . - -@sa borderInterpolate -*/ -CV_EXPORTS_W void copyMakeBorder(InputArray src, OutputArray dst, - int top, int bottom, int left, int right, - int borderType, const Scalar& value = Scalar() ); - -/** @brief Calculates the per-element sum of two arrays or an array and a scalar. - -The function add calculates: -- Sum of two arrays when both input arrays have the same size and the same number of channels: -\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) + \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0\f] -- Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of -elements as `src1.channels()`: -\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) + \texttt{src2} ) \quad \texttt{if mask}(I) \ne0\f] -- Sum of a scalar and an array when src1 is constructed from Scalar or has the same number of -elements as `src2.channels()`: -\f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1} + \texttt{src2}(I) ) \quad \texttt{if mask}(I) \ne0\f] -where `I` is a multi-dimensional index of array elements. In case of multi-channel arrays, each -channel is processed independently. - -The first function in the list above can be replaced with matrix expressions: -@code{.cpp} - dst = src1 + src2; - dst += src1; // equivalent to add(dst, src1, dst); -@endcode -The input arrays and the output array can all have the same or different depths. For example, you -can add a 16-bit unsigned array to a 8-bit signed array and store the sum as a 32-bit -floating-point array. Depth of the output array is determined by the dtype parameter. In the second -and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can -be set to the default -1. In this case, the output array will have the same depth as the input -array, be it src1, src2 or both. -@note Saturation is not applied when the output array has the depth CV_32S. You may even get -result of an incorrect sign in the case of overflow. -@param src1 first input array or a scalar. -@param src2 second input array or a scalar. -@param dst output array that has the same size and number of channels as the input array(s); the -depth is defined by dtype or src1/src2. -@param mask optional operation mask - 8-bit single channel array, that specifies elements of the -output array to be changed. -@param dtype optional depth of the output array (see the discussion below). -@sa subtract, addWeighted, scaleAdd, Mat::convertTo -*/ -CV_EXPORTS_W void add(InputArray src1, InputArray src2, OutputArray dst, - InputArray mask = noArray(), int dtype = -1); - -/** @brief Calculates the per-element difference between two arrays or array and a scalar. - -The function subtract calculates: -- Difference between two arrays, when both input arrays have the same size and the same number of -channels: - \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) - \texttt{src2}(I)) \quad \texttt{if mask}(I) \ne0\f] -- Difference between an array and a scalar, when src2 is constructed from Scalar or has the same -number of elements as `src1.channels()`: - \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1}(I) - \texttt{src2} ) \quad \texttt{if mask}(I) \ne0\f] -- Difference between a scalar and an array, when src1 is constructed from Scalar or has the same -number of elements as `src2.channels()`: - \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src1} - \texttt{src2}(I) ) \quad \texttt{if mask}(I) \ne0\f] -- The reverse difference between a scalar and an array in the case of `SubRS`: - \f[\texttt{dst}(I) = \texttt{saturate} ( \texttt{src2} - \texttt{src1}(I) ) \quad \texttt{if mask}(I) \ne0\f] -where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each -channel is processed independently. - -The first function in the list above can be replaced with matrix expressions: -@code{.cpp} - dst = src1 - src2; - dst -= src1; // equivalent to subtract(dst, src1, dst); -@endcode -The input arrays and the output array can all have the same or different depths. For example, you -can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of -the output array is determined by dtype parameter. In the second and third cases above, as well as -in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this -case the output array will have the same depth as the input array, be it src1, src2 or both. -@note Saturation is not applied when the output array has the depth CV_32S. You may even get -result of an incorrect sign in the case of overflow. -@param src1 first input array or a scalar. -@param src2 second input array or a scalar. -@param dst output array of the same size and the same number of channels as the input array. -@param mask optional operation mask; this is an 8-bit single channel array that specifies elements -of the output array to be changed. -@param dtype optional depth of the output array -@sa add, addWeighted, scaleAdd, Mat::convertTo - */ -CV_EXPORTS_W void subtract(InputArray src1, InputArray src2, OutputArray dst, - InputArray mask = noArray(), int dtype = -1); - - -/** @brief Calculates the per-element scaled product of two arrays. - -The function multiply calculates the per-element product of two arrays: - -\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{scale} \cdot \texttt{src1} (I) \cdot \texttt{src2} (I))\f] - -There is also a @ref MatrixExpressions -friendly variant of the first function. See Mat::mul . - -For a not-per-element matrix product, see gemm . - -@note Saturation is not applied when the output array has the depth -CV_32S. You may even get result of an incorrect sign in the case of -overflow. -@param src1 first input array. -@param src2 second input array of the same size and the same type as src1. -@param dst output array of the same size and type as src1. -@param scale optional scale factor. -@param dtype optional depth of the output array -@sa add, subtract, divide, scaleAdd, addWeighted, accumulate, accumulateProduct, accumulateSquare, -Mat::convertTo -*/ -CV_EXPORTS_W void multiply(InputArray src1, InputArray src2, - OutputArray dst, double scale = 1, int dtype = -1); - -/** @brief Performs per-element division of two arrays or a scalar by an array. - -The function cv::divide divides one array by another: -\f[\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\f] -or a scalar by an array when there is no src1 : -\f[\texttt{dst(I) = saturate(scale/src2(I))}\f] - -When src2(I) is zero, dst(I) will also be zero. Different channels of -multi-channel arrays are processed independently. - -@note Saturation is not applied when the output array has the depth CV_32S. You may even get -result of an incorrect sign in the case of overflow. -@param src1 first input array. -@param src2 second input array of the same size and type as src1. -@param scale scalar factor. -@param dst output array of the same size and type as src2. -@param dtype optional depth of the output array; if -1, dst will have depth src2.depth(), but in -case of an array-by-array division, you can only pass -1 when src1.depth()==src2.depth(). -@sa multiply, add, subtract -*/ -CV_EXPORTS_W void divide(InputArray src1, InputArray src2, OutputArray dst, - double scale = 1, int dtype = -1); - -/** @overload */ -CV_EXPORTS_W void divide(double scale, InputArray src2, - OutputArray dst, int dtype = -1); - -/** @brief Calculates the sum of a scaled array and another array. - -The function scaleAdd is one of the classical primitive linear algebra operations, known as DAXPY -or SAXPY in [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms). It calculates -the sum of a scaled array and another array: -\f[\texttt{dst} (I)= \texttt{scale} \cdot \texttt{src1} (I) + \texttt{src2} (I)\f] -The function can also be emulated with a matrix expression, for example: -@code{.cpp} - Mat A(3, 3, CV_64F); - ... - A.row(0) = A.row(1)*2 + A.row(2); -@endcode -@param src1 first input array. -@param alpha scale factor for the first array. -@param src2 second input array of the same size and type as src1. -@param dst output array of the same size and type as src1. -@sa add, addWeighted, subtract, Mat::dot, Mat::convertTo -*/ -CV_EXPORTS_W void scaleAdd(InputArray src1, double alpha, InputArray src2, OutputArray dst); - -/** @example AddingImagesTrackbar.cpp - - */ -/** @brief Calculates the weighted sum of two arrays. - -The function addWeighted calculates the weighted sum of two arrays as follows: -\f[\texttt{dst} (I)= \texttt{saturate} ( \texttt{src1} (I)* \texttt{alpha} + \texttt{src2} (I)* \texttt{beta} + \texttt{gamma} )\f] -where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each -channel is processed independently. -The function can be replaced with a matrix expression: -@code{.cpp} - dst = src1*alpha + src2*beta + gamma; -@endcode -@note Saturation is not applied when the output array has the depth CV_32S. You may even get -result of an incorrect sign in the case of overflow. -@param src1 first input array. -@param alpha weight of the first array elements. -@param src2 second input array of the same size and channel number as src1. -@param beta weight of the second array elements. -@param gamma scalar added to each sum. -@param dst output array that has the same size and number of channels as the input arrays. -@param dtype optional depth of the output array; when both input arrays have the same depth, dtype -can be set to -1, which will be equivalent to src1.depth(). -@sa add, subtract, scaleAdd, Mat::convertTo -*/ -CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, - double beta, double gamma, OutputArray dst, int dtype = -1); - -/** @brief Scales, calculates absolute values, and converts the result to 8-bit. - -On each element of the input array, the function convertScaleAbs -performs three operations sequentially: scaling, taking an absolute -value, conversion to an unsigned 8-bit type: -\f[\texttt{dst} (I)= \texttt{saturate\_cast} (| \texttt{src} (I)* \texttt{alpha} + \texttt{beta} |)\f] -In case of multi-channel arrays, the function processes each channel -independently. When the output is not 8-bit, the operation can be -emulated by calling the Mat::convertTo method (or by using matrix -expressions) and then by calculating an absolute value of the result. -For example: -@code{.cpp} - Mat_ A(30,30); - randu(A, Scalar(-100), Scalar(100)); - Mat_ B = A*5 + 3; - B = abs(B); - // Mat_ B = abs(A*5+3) will also do the job, - // but it will allocate a temporary matrix -@endcode -@param src input array. -@param dst output array. -@param alpha optional scale factor. -@param beta optional delta added to the scaled values. -@sa Mat::convertTo, cv::abs(const Mat&) -*/ -CV_EXPORTS_W void convertScaleAbs(InputArray src, OutputArray dst, - double alpha = 1, double beta = 0); - -/** @brief Converts an array to half precision floating number. - -This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). The input array has to have type of CV_32F or -CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error. -The format of half precision floating point is defined in IEEE 754-2008. - -@param src input array. -@param dst output array. -*/ -CV_EXPORTS_W void convertFp16(InputArray src, OutputArray dst); - -/** @brief Performs a look-up table transform of an array. - -The function LUT fills the output array with values from the look-up table. Indices of the entries -are taken from the input array. That is, the function processes each element of src as follows: -\f[\texttt{dst} (I) \leftarrow \texttt{lut(src(I) + d)}\f] -where -\f[d = \fork{0}{if \(\texttt{src}\) has depth \(\texttt{CV_8U}\)}{128}{if \(\texttt{src}\) has depth \(\texttt{CV_8S}\)}\f] -@param src input array of 8-bit elements. -@param lut look-up table of 256 elements; in case of multi-channel input array, the table should -either have a single channel (in this case the same table is used for all channels) or the same -number of channels as in the input array. -@param dst output array of the same size and number of channels as src, and the same depth as lut. -@sa convertScaleAbs, Mat::convertTo -*/ -CV_EXPORTS_W void LUT(InputArray src, InputArray lut, OutputArray dst); - -/** @brief Calculates the sum of array elements. - -The function cv::sum calculates and returns the sum of array elements, -independently for each channel. -@param src input array that must have from 1 to 4 channels. -@sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce -*/ -CV_EXPORTS_AS(sumElems) Scalar sum(InputArray src); - -/** @brief Counts non-zero array elements. - -The function returns the number of non-zero elements in src : -\f[\sum _{I: \; \texttt{src} (I) \ne0 } 1\f] -@param src single-channel array. -@sa mean, meanStdDev, norm, minMaxLoc, calcCovarMatrix -*/ -CV_EXPORTS_W int countNonZero( InputArray src ); - -/** @brief Returns the list of locations of non-zero pixels - -Given a binary matrix (likely returned from an operation such -as threshold(), compare(), >, ==, etc, return all of -the non-zero indices as a cv::Mat or std::vector (x,y) -For example: -@code{.cpp} - cv::Mat binaryImage; // input, binary image - cv::Mat locations; // output, locations of non-zero pixels - cv::findNonZero(binaryImage, locations); - - // access pixel coordinates - Point pnt = locations.at(i); -@endcode -or -@code{.cpp} - cv::Mat binaryImage; // input, binary image - vector locations; // output, locations of non-zero pixels - cv::findNonZero(binaryImage, locations); - - // access pixel coordinates - Point pnt = locations[i]; -@endcode -@param src single-channel array (type CV_8UC1) -@param idx the output array, type of cv::Mat or std::vector, corresponding to non-zero indices in the input -*/ -CV_EXPORTS_W void findNonZero( InputArray src, OutputArray idx ); - -/** @brief Calculates an average (mean) of array elements. - -The function cv::mean calculates the mean value M of array elements, -independently for each channel, and return it: -\f[\begin{array}{l} N = \sum _{I: \; \texttt{mask} (I) \ne 0} 1 \\ M_c = \left ( \sum _{I: \; \texttt{mask} (I) \ne 0}{ \texttt{mtx} (I)_c} \right )/N \end{array}\f] -When all the mask elements are 0's, the function returns Scalar::all(0) -@param src input array that should have from 1 to 4 channels so that the result can be stored in -Scalar_ . -@param mask optional operation mask. -@sa countNonZero, meanStdDev, norm, minMaxLoc -*/ -CV_EXPORTS_W Scalar mean(InputArray src, InputArray mask = noArray()); - -/** Calculates a mean and standard deviation of array elements. - -The function cv::meanStdDev calculates the mean and the standard deviation M -of array elements independently for each channel and returns it via the -output parameters: -\f[\begin{array}{l} N = \sum _{I, \texttt{mask} (I) \ne 0} 1 \\ \texttt{mean} _c = \frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \texttt{src} (I)_c}{N} \\ \texttt{stddev} _c = \sqrt{\frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \left ( \texttt{src} (I)_c - \texttt{mean} _c \right )^2}{N}} \end{array}\f] -When all the mask elements are 0's, the function returns -mean=stddev=Scalar::all(0). -@note The calculated standard deviation is only the diagonal of the -complete normalized covariance matrix. If the full matrix is needed, you -can reshape the multi-channel array M x N to the single-channel array -M\*N x mtx.channels() (only possible when the matrix is continuous) and -then pass the matrix to calcCovarMatrix . -@param src input array that should have from 1 to 4 channels so that the results can be stored in -Scalar_ 's. -@param mean output parameter: calculated mean value. -@param stddev output parameter: calculated standard deviation. -@param mask optional operation mask. -@sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix -*/ -CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, - InputArray mask=noArray()); - -/** @brief Calculates the absolute norm of an array. - -This version of cv::norm calculates the absolute norm of src1. The type of norm to calculate is specified using cv::NormTypes. - -As example for one array consider the function \f$r(x)= \begin{pmatrix} x \\ 1-x \end{pmatrix}, x \in [-1;1]\f$. -The \f$ L_{1}, L_{2} \f$ and \f$ L_{\infty} \f$ norm for the sample value \f$r(-1) = \begin{pmatrix} -1 \\ 2 \end{pmatrix}\f$ -is calculated as follows -\f{align*} - \| r(-1) \|_{L_1} &= |-1| + |2| = 3 \\ - \| r(-1) \|_{L_2} &= \sqrt{(-1)^{2} + (2)^{2}} = \sqrt{5} \\ - \| r(-1) \|_{L_\infty} &= \max(|-1|,|2|) = 2 -\f} -and for \f$r(0.5) = \begin{pmatrix} 0.5 \\ 0.5 \end{pmatrix}\f$ the calculation is -\f{align*} - \| r(0.5) \|_{L_1} &= |0.5| + |0.5| = 1 \\ - \| r(0.5) \|_{L_2} &= \sqrt{(0.5)^{2} + (0.5)^{2}} = \sqrt{0.5} \\ - \| r(0.5) \|_{L_\infty} &= \max(|0.5|,|0.5|) = 0.5. -\f} -The following graphic shows all values for the three norm functions \f$\| r(x) \|_{L_1}, \| r(x) \|_{L_2}\f$ and \f$\| r(x) \|_{L_\infty}\f$. -It is notable that the \f$ L_{1} \f$ norm forms the upper and the \f$ L_{\infty} \f$ norm forms the lower border for the example function \f$ r(x) \f$. -![Graphs for the different norm functions from the above example](pics/NormTypes_OneArray_1-2-INF.png) - -When the mask parameter is specified and it is not empty, the norm is - -If normType is not specified, NORM_L2 is used. -calculated only over the region specified by the mask. - -Multi-channel input arrays are treated as single-channel arrays, that is, -the results for all channels are combined. - -Hamming norms can only be calculated with CV_8U depth arrays. - -@param src1 first input array. -@param normType type of the norm (see cv::NormTypes). -@param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type. -*/ -CV_EXPORTS_W double norm(InputArray src1, int normType = NORM_L2, InputArray mask = noArray()); - -/** @brief Calculates an absolute difference norm or a relative difference norm. - -This version of cv::norm calculates the absolute difference norm -or the relative difference norm of arrays src1 and src2. -The type of norm to calculate is specified using cv::NormTypes. - -@param src1 first input array. -@param src2 second input array of the same size and the same type as src1. -@param normType type of the norm (cv::NormTypes). -@param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type. -*/ -CV_EXPORTS_W double norm(InputArray src1, InputArray src2, - int normType = NORM_L2, InputArray mask = noArray()); -/** @overload -@param src first input array. -@param normType type of the norm (see cv::NormTypes). -*/ -CV_EXPORTS double norm( const SparseMat& src, int normType ); - -/** @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric. - -This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB), between two input arrays src1 and src2. Arrays must have depth CV_8U. - -The PSNR is calculated as follows: - -\f[ -\texttt{PSNR} = 10 \cdot \log_{10}{\left( \frac{R^2}{MSE} \right) } -\f] - -where R is the maximum integer value of depth CV_8U (255) and MSE is the mean squared error between the two arrays. - -@param src1 first input array. -@param src2 second input array of the same size as src1. - - */ -CV_EXPORTS_W double PSNR(InputArray src1, InputArray src2); - -/** @brief naive nearest neighbor finder - -see http://en.wikipedia.org/wiki/Nearest_neighbor_search -@todo document - */ -CV_EXPORTS_W void batchDistance(InputArray src1, InputArray src2, - OutputArray dist, int dtype, OutputArray nidx, - int normType = NORM_L2, int K = 0, - InputArray mask = noArray(), int update = 0, - bool crosscheck = false); - -/** @brief Normalizes the norm or value range of an array. - -The function cv::normalize normalizes scale and shift the input array elements so that -\f[\| \texttt{dst} \| _{L_p}= \texttt{alpha}\f] -(where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that -\f[\min _I \texttt{dst} (I)= \texttt{alpha} , \, \, \max _I \texttt{dst} (I)= \texttt{beta}\f] - -when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be -normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this -sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or -min-max but modify the whole array, you can use norm and Mat::convertTo. - -In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this, -the range transformation for sparse matrices is not allowed since it can shift the zero level. - -Possible usage with some positive example data: -@code{.cpp} - vector positiveData = { 2.0, 8.0, 10.0 }; - vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax; - - // Norm to probability (total count) - // sum(numbers) = 20.0 - // 2.0 0.1 (2.0/20.0) - // 8.0 0.4 (8.0/20.0) - // 10.0 0.5 (10.0/20.0) - normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1); - - // Norm to unit vector: ||positiveData|| = 1.0 - // 2.0 0.15 - // 8.0 0.62 - // 10.0 0.77 - normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2); - - // Norm to max element - // 2.0 0.2 (2.0/10.0) - // 8.0 0.8 (8.0/10.0) - // 10.0 1.0 (10.0/10.0) - normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF); - - // Norm to range [0.0;1.0] - // 2.0 0.0 (shift to left border) - // 8.0 0.75 (6.0/8.0) - // 10.0 1.0 (shift to right border) - normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX); -@endcode - -@param src input array. -@param dst output array of the same size as src . -@param alpha norm value to normalize to or the lower range boundary in case of the range -normalization. -@param beta upper range boundary in case of the range normalization; it is not used for the norm -normalization. -@param norm_type normalization type (see cv::NormTypes). -@param dtype when negative, the output array has the same type as src; otherwise, it has the same -number of channels as src and the depth =CV_MAT_DEPTH(dtype). -@param mask optional operation mask. -@sa norm, Mat::convertTo, SparseMat::convertTo -*/ -CV_EXPORTS_W void normalize( InputArray src, InputOutputArray dst, double alpha = 1, double beta = 0, - int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray()); - -/** @overload -@param src input array. -@param dst output array of the same size as src . -@param alpha norm value to normalize to or the lower range boundary in case of the range -normalization. -@param normType normalization type (see cv::NormTypes). -*/ -CV_EXPORTS void normalize( const SparseMat& src, SparseMat& dst, double alpha, int normType ); - -/** @brief Finds the global minimum and maximum in an array. - -The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The -extremums are searched across the whole array or, if mask is not an empty array, in the specified -array region. - -The function do not work with multi-channel arrays. If you need to find minimum or maximum -elements across all the channels, use Mat::reshape first to reinterpret the array as -single-channel. Or you may extract the particular channel using either extractImageCOI , or -mixChannels , or split . -@param src input single-channel array. -@param minVal pointer to the returned minimum value; NULL is used if not required. -@param maxVal pointer to the returned maximum value; NULL is used if not required. -@param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required. -@param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required. -@param mask optional mask used to select a sub-array. -@sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape -*/ -CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal, - CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0, - CV_OUT Point* maxLoc = 0, InputArray mask = noArray()); - - -/** @brief Finds the global minimum and maximum in an array - -The function cv::minMaxIdx finds the minimum and maximum element values and their positions. The -extremums are searched across the whole array or, if mask is not an empty array, in the specified -array region. The function does not work with multi-channel arrays. If you need to find minimum or -maximum elements across all the channels, use Mat::reshape first to reinterpret the array as -single-channel. Or you may extract the particular channel using either extractImageCOI , or -mixChannels , or split . In case of a sparse matrix, the minimum is found among non-zero elements -only. -@note When minIdx is not NULL, it must have at least 2 elements (as well as maxIdx), even if src is -a single-row or single-column matrix. In OpenCV (following MATLAB) each array has at least 2 -dimensions, i.e. single-column matrix is Mx1 matrix (and therefore minIdx/maxIdx will be -(i1,0)/(i2,0)) and single-row matrix is 1xN matrix (and therefore minIdx/maxIdx will be -(0,j1)/(0,j2)). -@param src input single-channel array. -@param minVal pointer to the returned minimum value; NULL is used if not required. -@param maxVal pointer to the returned maximum value; NULL is used if not required. -@param minIdx pointer to the returned minimum location (in nD case); NULL is used if not required; -Otherwise, it must point to an array of src.dims elements, the coordinates of the minimum element -in each dimension are stored there sequentially. -@param maxIdx pointer to the returned maximum location (in nD case). NULL is used if not required. -@param mask specified array region -*/ -CV_EXPORTS void minMaxIdx(InputArray src, double* minVal, double* maxVal = 0, - int* minIdx = 0, int* maxIdx = 0, InputArray mask = noArray()); - -/** @overload -@param a input single-channel array. -@param minVal pointer to the returned minimum value; NULL is used if not required. -@param maxVal pointer to the returned maximum value; NULL is used if not required. -@param minIdx pointer to the returned minimum location (in nD case); NULL is used if not required; -Otherwise, it must point to an array of src.dims elements, the coordinates of the minimum element -in each dimension are stored there sequentially. -@param maxIdx pointer to the returned maximum location (in nD case). NULL is used if not required. -*/ -CV_EXPORTS void minMaxLoc(const SparseMat& a, double* minVal, - double* maxVal, int* minIdx = 0, int* maxIdx = 0); - -/** @brief Reduces a matrix to a vector. - -The function cv::reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of -1D vectors and performing the specified operation on the vectors until a single row/column is -obtained. For example, the function can be used to compute horizontal and vertical projections of a -raster image. In case of REDUCE_MAX and REDUCE_MIN , the output image should have the same type as the source one. -In case of REDUCE_SUM and REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy. -And multi-channel arrays are also supported in these two reduction modes. - -The following code demonstrates its usage for a single channel matrix. -@snippet snippets/core_reduce.cpp example - -And the following code demonstrates its usage for a two-channel matrix. -@snippet snippets/core_reduce.cpp example2 - -@param src input 2D matrix. -@param dst output vector. Its size and type is defined by dim and dtype parameters. -@param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to -a single row. 1 means that the matrix is reduced to a single column. -@param rtype reduction operation that could be one of cv::ReduceTypes -@param dtype when negative, the output vector will have the same type as the input matrix, -otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()). -@sa repeat -*/ -CV_EXPORTS_W void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype = -1); - -/** @brief Creates one multi-channel array out of several single-channel ones. - -The function cv::merge merges several arrays to make a single multi-channel array. That is, each -element of the output array will be a concatenation of the elements of the input arrays, where -elements of i-th input array are treated as mv[i].channels()-element vectors. - -The function cv::split does the reverse operation. If you need to shuffle channels in some other -advanced way, use cv::mixChannels. - -The following example shows how to merge 3 single channel matrices into a single 3-channel matrix. -@snippet snippets/core_merge.cpp example - -@param mv input array of matrices to be merged; all the matrices in mv must have the same -size and the same depth. -@param count number of input matrices when mv is a plain C array; it must be greater than zero. -@param dst output array of the same size and the same depth as mv[0]; The number of channels will -be equal to the parameter count. -@sa mixChannels, split, Mat::reshape -*/ -CV_EXPORTS void merge(const Mat* mv, size_t count, OutputArray dst); - -/** @overload -@param mv input vector of matrices to be merged; all the matrices in mv must have the same -size and the same depth. -@param dst output array of the same size and the same depth as mv[0]; The number of channels will -be the total number of channels in the matrix array. - */ -CV_EXPORTS_W void merge(InputArrayOfArrays mv, OutputArray dst); - -/** @brief Divides a multi-channel array into several single-channel arrays. - -The function cv::split splits a multi-channel array into separate single-channel arrays: -\f[\texttt{mv} [c](I) = \texttt{src} (I)_c\f] -If you need to extract a single channel or do some other sophisticated channel permutation, use -mixChannels . - -The following example demonstrates how to split a 3-channel matrix into 3 single channel matrices. -@snippet snippets/core_split.cpp example - -@param src input multi-channel array. -@param mvbegin output array; the number of arrays must match src.channels(); the arrays themselves are -reallocated, if needed. -@sa merge, mixChannels, cvtColor -*/ -CV_EXPORTS void split(const Mat& src, Mat* mvbegin); - -/** @overload -@param m input multi-channel array. -@param mv output vector of arrays; the arrays themselves are reallocated, if needed. -*/ -CV_EXPORTS_W void split(InputArray m, OutputArrayOfArrays mv); - -/** @brief Copies specified channels from input arrays to the specified channels of -output arrays. - -The function cv::mixChannels provides an advanced mechanism for shuffling image channels. - -cv::split,cv::merge,cv::extractChannel,cv::insertChannel and some forms of cv::cvtColor are partial cases of cv::mixChannels. - -In the example below, the code splits a 4-channel BGRA image into a 3-channel BGR (with B and R -channels swapped) and a separate alpha-channel image: -@code{.cpp} - Mat bgra( 100, 100, CV_8UC4, Scalar(255,0,0,255) ); - Mat bgr( bgra.rows, bgra.cols, CV_8UC3 ); - Mat alpha( bgra.rows, bgra.cols, CV_8UC1 ); - - // forming an array of matrices is a quite efficient operation, - // because the matrix data is not copied, only the headers - Mat out[] = { bgr, alpha }; - // bgra[0] -> bgr[2], bgra[1] -> bgr[1], - // bgra[2] -> bgr[0], bgra[3] -> alpha[0] - int from_to[] = { 0,2, 1,1, 2,0, 3,3 }; - mixChannels( &bgra, 1, out, 2, from_to, 4 ); -@endcode -@note Unlike many other new-style C++ functions in OpenCV (see the introduction section and -Mat::create ), cv::mixChannels requires the output arrays to be pre-allocated before calling the -function. -@param src input array or vector of matrices; all of the matrices must have the same size and the -same depth. -@param nsrcs number of matrices in `src`. -@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and -depth must be the same as in `src[0]`. -@param ndsts number of matrices in `dst`. -@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is -a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in -dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to -src[0].channels()-1, the second input image channels are indexed from src[0].channels() to -src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image -channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is -filled with zero . -@param npairs number of index pairs in `fromTo`. -@sa split, merge, extractChannel, insertChannel, cvtColor -*/ -CV_EXPORTS void mixChannels(const Mat* src, size_t nsrcs, Mat* dst, size_t ndsts, - const int* fromTo, size_t npairs); - -/** @overload -@param src input array or vector of matrices; all of the matrices must have the same size and the -same depth. -@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and -depth must be the same as in src[0]. -@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is -a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in -dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to -src[0].channels()-1, the second input image channels are indexed from src[0].channels() to -src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image -channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is -filled with zero . -@param npairs number of index pairs in fromTo. -*/ -CV_EXPORTS void mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst, - const int* fromTo, size_t npairs); - -/** @overload -@param src input array or vector of matrices; all of the matrices must have the same size and the -same depth. -@param dst output array or vector of matrices; all the matrices **must be allocated**; their size and -depth must be the same as in src[0]. -@param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\*2] is -a 0-based index of the input channel in src, fromTo[k\*2+1] is an index of the output channel in -dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to -src[0].channels()-1, the second input image channels are indexed from src[0].channels() to -src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image -channels; as a special case, when fromTo[k\*2] is negative, the corresponding output channel is -filled with zero . -*/ -CV_EXPORTS_W void mixChannels(InputArrayOfArrays src, InputOutputArrayOfArrays dst, - const std::vector& fromTo); - -/** @brief Extracts a single channel from src (coi is 0-based index) -@param src input array -@param dst output array -@param coi index of channel to extract -@sa mixChannels, split -*/ -CV_EXPORTS_W void extractChannel(InputArray src, OutputArray dst, int coi); - -/** @brief Inserts a single channel to dst (coi is 0-based index) -@param src input array -@param dst output array -@param coi index of channel for insertion -@sa mixChannels, merge -*/ -CV_EXPORTS_W void insertChannel(InputArray src, InputOutputArray dst, int coi); - -/** @brief Flips a 2D array around vertical, horizontal, or both axes. - -The function cv::flip flips the array in one of three different ways (row -and column indices are 0-based): -\f[\texttt{dst} _{ij} = -\left\{ -\begin{array}{l l} -\texttt{src} _{\texttt{src.rows}-i-1,j} & if\; \texttt{flipCode} = 0 \\ -\texttt{src} _{i, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} > 0 \\ -\texttt{src} _{ \texttt{src.rows} -i-1, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} < 0 \\ -\end{array} -\right.\f] -The example scenarios of using the function are the following: -* Vertical flipping of the image (flipCode == 0) to switch between - top-left and bottom-left image origin. This is a typical operation - in video processing on Microsoft Windows\* OS. -* Horizontal flipping of the image with the subsequent horizontal - shift and absolute difference calculation to check for a - vertical-axis symmetry (flipCode \> 0). -* Simultaneous horizontal and vertical flipping of the image with - the subsequent shift and absolute difference calculation to check - for a central symmetry (flipCode \< 0). -* Reversing the order of point arrays (flipCode \> 0 or - flipCode == 0). -@param src input array. -@param dst output array of the same size and type as src. -@param flipCode a flag to specify how to flip the array; 0 means -flipping around the x-axis and positive value (for example, 1) means -flipping around y-axis. Negative value (for example, -1) means flipping -around both axes. -@sa transpose , repeat , completeSymm -*/ -CV_EXPORTS_W void flip(InputArray src, OutputArray dst, int flipCode); - -enum RotateFlags { - ROTATE_90_CLOCKWISE = 0, //Rotate 90 degrees clockwise - ROTATE_180 = 1, //Rotate 180 degrees clockwise - ROTATE_90_COUNTERCLOCKWISE = 2, //Rotate 270 degrees clockwise -}; -/** @brief Rotates a 2D array in multiples of 90 degrees. -The function rotate rotates the array in one of three different ways: -* Rotate by 90 degrees clockwise (rotateCode = ROTATE_90). -* Rotate by 180 degrees clockwise (rotateCode = ROTATE_180). -* Rotate by 270 degrees clockwise (rotateCode = ROTATE_270). -@param src input array. -@param dst output array of the same type as src. The size is the same with ROTATE_180, -and the rows and cols are switched for ROTATE_90 and ROTATE_270. -@param rotateCode an enum to specify how to rotate the array; see the enum RotateFlags -@sa transpose , repeat , completeSymm, flip, RotateFlags -*/ -CV_EXPORTS_W void rotate(InputArray src, OutputArray dst, int rotateCode); - -/** @brief Fills the output array with repeated copies of the input array. - -The function cv::repeat duplicates the input array one or more times along each of the two axes: -\f[\texttt{dst} _{ij}= \texttt{src} _{i\mod src.rows, \; j\mod src.cols }\f] -The second variant of the function is more convenient to use with @ref MatrixExpressions. -@param src input array to replicate. -@param ny Flag to specify how many times the `src` is repeated along the -vertical axis. -@param nx Flag to specify how many times the `src` is repeated along the -horizontal axis. -@param dst output array of the same type as `src`. -@sa cv::reduce -*/ -CV_EXPORTS_W void repeat(InputArray src, int ny, int nx, OutputArray dst); - -/** @overload -@param src input array to replicate. -@param ny Flag to specify how many times the `src` is repeated along the -vertical axis. -@param nx Flag to specify how many times the `src` is repeated along the -horizontal axis. - */ -CV_EXPORTS Mat repeat(const Mat& src, int ny, int nx); - -/** @brief Applies horizontal concatenation to given matrices. - -The function horizontally concatenates two or more cv::Mat matrices (with the same number of rows). -@code{.cpp} - cv::Mat matArray[] = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)), - cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)), - cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),}; - - cv::Mat out; - cv::hconcat( matArray, 3, out ); - //out: - //[1, 2, 3; - // 1, 2, 3; - // 1, 2, 3; - // 1, 2, 3] -@endcode -@param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth. -@param nsrc number of matrices in src. -@param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src. -@sa cv::vconcat(const Mat*, size_t, OutputArray), @sa cv::vconcat(InputArrayOfArrays, OutputArray) and @sa cv::vconcat(InputArray, InputArray, OutputArray) -*/ -CV_EXPORTS void hconcat(const Mat* src, size_t nsrc, OutputArray dst); -/** @overload - @code{.cpp} - cv::Mat_ A = (cv::Mat_(3, 2) << 1, 4, - 2, 5, - 3, 6); - cv::Mat_ B = (cv::Mat_(3, 2) << 7, 10, - 8, 11, - 9, 12); - - cv::Mat C; - cv::hconcat(A, B, C); - //C: - //[1, 4, 7, 10; - // 2, 5, 8, 11; - // 3, 6, 9, 12] - @endcode - @param src1 first input array to be considered for horizontal concatenation. - @param src2 second input array to be considered for horizontal concatenation. - @param dst output array. It has the same number of rows and depth as the src1 and src2, and the sum of cols of the src1 and src2. - */ -CV_EXPORTS void hconcat(InputArray src1, InputArray src2, OutputArray dst); -/** @overload - @code{.cpp} - std::vector matrices = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)), - cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)), - cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),}; - - cv::Mat out; - cv::hconcat( matrices, out ); - //out: - //[1, 2, 3; - // 1, 2, 3; - // 1, 2, 3; - // 1, 2, 3] - @endcode - @param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth. - @param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src. -same depth. - */ -CV_EXPORTS_W void hconcat(InputArrayOfArrays src, OutputArray dst); - -/** @brief Applies vertical concatenation to given matrices. - -The function vertically concatenates two or more cv::Mat matrices (with the same number of cols). -@code{.cpp} - cv::Mat matArray[] = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)), - cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)), - cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),}; - - cv::Mat out; - cv::vconcat( matArray, 3, out ); - //out: - //[1, 1, 1, 1; - // 2, 2, 2, 2; - // 3, 3, 3, 3] -@endcode -@param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth. -@param nsrc number of matrices in src. -@param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src. -@sa cv::hconcat(const Mat*, size_t, OutputArray), @sa cv::hconcat(InputArrayOfArrays, OutputArray) and @sa cv::hconcat(InputArray, InputArray, OutputArray) -*/ -CV_EXPORTS void vconcat(const Mat* src, size_t nsrc, OutputArray dst); -/** @overload - @code{.cpp} - cv::Mat_ A = (cv::Mat_(3, 2) << 1, 7, - 2, 8, - 3, 9); - cv::Mat_ B = (cv::Mat_(3, 2) << 4, 10, - 5, 11, - 6, 12); - - cv::Mat C; - cv::vconcat(A, B, C); - //C: - //[1, 7; - // 2, 8; - // 3, 9; - // 4, 10; - // 5, 11; - // 6, 12] - @endcode - @param src1 first input array to be considered for vertical concatenation. - @param src2 second input array to be considered for vertical concatenation. - @param dst output array. It has the same number of cols and depth as the src1 and src2, and the sum of rows of the src1 and src2. - */ -CV_EXPORTS void vconcat(InputArray src1, InputArray src2, OutputArray dst); -/** @overload - @code{.cpp} - std::vector matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)), - cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)), - cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),}; - - cv::Mat out; - cv::vconcat( matrices, out ); - //out: - //[1, 1, 1, 1; - // 2, 2, 2, 2; - // 3, 3, 3, 3] - @endcode - @param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth - @param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src. -same depth. - */ -CV_EXPORTS_W void vconcat(InputArrayOfArrays src, OutputArray dst); - -/** @brief computes bitwise conjunction of the two arrays (dst = src1 & src2) -Calculates the per-element bit-wise conjunction of two arrays or an -array and a scalar. - -The function cv::bitwise_and calculates the per-element bit-wise logical conjunction for: -* Two arrays when src1 and src2 have the same size: - \f[\texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] -* An array and a scalar when src2 is constructed from Scalar or has - the same number of elements as `src1.channels()`: - \f[\texttt{dst} (I) = \texttt{src1} (I) \wedge \texttt{src2} \quad \texttt{if mask} (I) \ne0\f] -* A scalar and an array when src1 is constructed from Scalar or has - the same number of elements as `src2.channels()`: - \f[\texttt{dst} (I) = \texttt{src1} \wedge \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] -In case of floating-point arrays, their machine-specific bit -representations (usually IEEE754-compliant) are used for the operation. -In case of multi-channel arrays, each channel is processed -independently. In the second and third cases above, the scalar is first -converted to the array type. -@param src1 first input array or a scalar. -@param src2 second input array or a scalar. -@param dst output array that has the same size and type as the input -arrays. -@param mask optional operation mask, 8-bit single channel array, that -specifies elements of the output array to be changed. -*/ -CV_EXPORTS_W void bitwise_and(InputArray src1, InputArray src2, - OutputArray dst, InputArray mask = noArray()); - -/** @brief Calculates the per-element bit-wise disjunction of two arrays or an -array and a scalar. - -The function cv::bitwise_or calculates the per-element bit-wise logical disjunction for: -* Two arrays when src1 and src2 have the same size: - \f[\texttt{dst} (I) = \texttt{src1} (I) \vee \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] -* An array and a scalar when src2 is constructed from Scalar or has - the same number of elements as `src1.channels()`: - \f[\texttt{dst} (I) = \texttt{src1} (I) \vee \texttt{src2} \quad \texttt{if mask} (I) \ne0\f] -* A scalar and an array when src1 is constructed from Scalar or has - the same number of elements as `src2.channels()`: - \f[\texttt{dst} (I) = \texttt{src1} \vee \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] -In case of floating-point arrays, their machine-specific bit -representations (usually IEEE754-compliant) are used for the operation. -In case of multi-channel arrays, each channel is processed -independently. In the second and third cases above, the scalar is first -converted to the array type. -@param src1 first input array or a scalar. -@param src2 second input array or a scalar. -@param dst output array that has the same size and type as the input -arrays. -@param mask optional operation mask, 8-bit single channel array, that -specifies elements of the output array to be changed. -*/ -CV_EXPORTS_W void bitwise_or(InputArray src1, InputArray src2, - OutputArray dst, InputArray mask = noArray()); - -/** @brief Calculates the per-element bit-wise "exclusive or" operation on two -arrays or an array and a scalar. - -The function cv::bitwise_xor calculates the per-element bit-wise logical "exclusive-or" -operation for: -* Two arrays when src1 and src2 have the same size: - \f[\texttt{dst} (I) = \texttt{src1} (I) \oplus \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] -* An array and a scalar when src2 is constructed from Scalar or has - the same number of elements as `src1.channels()`: - \f[\texttt{dst} (I) = \texttt{src1} (I) \oplus \texttt{src2} \quad \texttt{if mask} (I) \ne0\f] -* A scalar and an array when src1 is constructed from Scalar or has - the same number of elements as `src2.channels()`: - \f[\texttt{dst} (I) = \texttt{src1} \oplus \texttt{src2} (I) \quad \texttt{if mask} (I) \ne0\f] -In case of floating-point arrays, their machine-specific bit -representations (usually IEEE754-compliant) are used for the operation. -In case of multi-channel arrays, each channel is processed -independently. In the 2nd and 3rd cases above, the scalar is first -converted to the array type. -@param src1 first input array or a scalar. -@param src2 second input array or a scalar. -@param dst output array that has the same size and type as the input -arrays. -@param mask optional operation mask, 8-bit single channel array, that -specifies elements of the output array to be changed. -*/ -CV_EXPORTS_W void bitwise_xor(InputArray src1, InputArray src2, - OutputArray dst, InputArray mask = noArray()); - -/** @brief Inverts every bit of an array. - -The function cv::bitwise_not calculates per-element bit-wise inversion of the input -array: -\f[\texttt{dst} (I) = \neg \texttt{src} (I)\f] -In case of a floating-point input array, its machine-specific bit -representation (usually IEEE754-compliant) is used for the operation. In -case of multi-channel arrays, each channel is processed independently. -@param src input array. -@param dst output array that has the same size and type as the input -array. -@param mask optional operation mask, 8-bit single channel array, that -specifies elements of the output array to be changed. -*/ -CV_EXPORTS_W void bitwise_not(InputArray src, OutputArray dst, - InputArray mask = noArray()); - -/** @brief Calculates the per-element absolute difference between two arrays or between an array and a scalar. - -The function cv::absdiff calculates: -* Absolute difference between two arrays when they have the same - size and type: - \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{src2}(I)|)\f] -* Absolute difference between an array and a scalar when the second - array is constructed from Scalar or has as many elements as the - number of channels in `src1`: - \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1}(I) - \texttt{src2} |)\f] -* Absolute difference between a scalar and an array when the first - array is constructed from Scalar or has as many elements as the - number of channels in `src2`: - \f[\texttt{dst}(I) = \texttt{saturate} (| \texttt{src1} - \texttt{src2}(I) |)\f] - where I is a multi-dimensional index of array elements. In case of - multi-channel arrays, each channel is processed independently. -@note Saturation is not applied when the arrays have the depth CV_32S. -You may even get a negative value in the case of overflow. -@param src1 first input array or a scalar. -@param src2 second input array or a scalar. -@param dst output array that has the same size and type as input arrays. -@sa cv::abs(const Mat&) -*/ -CV_EXPORTS_W void absdiff(InputArray src1, InputArray src2, OutputArray dst); - -/** @brief Checks if array elements lie between the elements of two other arrays. - -The function checks the range as follows: -- For every element of a single-channel input array: - \f[\texttt{dst} (I)= \texttt{lowerb} (I)_0 \leq \texttt{src} (I)_0 \leq \texttt{upperb} (I)_0\f] -- For two-channel arrays: - \f[\texttt{dst} (I)= \texttt{lowerb} (I)_0 \leq \texttt{src} (I)_0 \leq \texttt{upperb} (I)_0 \land \texttt{lowerb} (I)_1 \leq \texttt{src} (I)_1 \leq \texttt{upperb} (I)_1\f] -- and so forth. - -That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the -specified 1D, 2D, 3D, ... box and 0 otherwise. - -When the lower and/or upper boundary parameters are scalars, the indexes -(I) at lowerb and upperb in the above formulas should be omitted. -@param src first input array. -@param lowerb inclusive lower boundary array or a scalar. -@param upperb inclusive upper boundary array or a scalar. -@param dst output array of the same size as src and CV_8U type. -*/ -CV_EXPORTS_W void inRange(InputArray src, InputArray lowerb, - InputArray upperb, OutputArray dst); - -/** @brief Performs the per-element comparison of two arrays or an array and scalar value. - -The function compares: -* Elements of two arrays when src1 and src2 have the same size: - \f[\texttt{dst} (I) = \texttt{src1} (I) \,\texttt{cmpop}\, \texttt{src2} (I)\f] -* Elements of src1 with a scalar src2 when src2 is constructed from - Scalar or has a single element: - \f[\texttt{dst} (I) = \texttt{src1}(I) \,\texttt{cmpop}\, \texttt{src2}\f] -* src1 with elements of src2 when src1 is constructed from Scalar or - has a single element: - \f[\texttt{dst} (I) = \texttt{src1} \,\texttt{cmpop}\, \texttt{src2} (I)\f] -When the comparison result is true, the corresponding element of output -array is set to 255. The comparison operations can be replaced with the -equivalent matrix expressions: -@code{.cpp} - Mat dst1 = src1 >= src2; - Mat dst2 = src1 < 8; - ... -@endcode -@param src1 first input array or a scalar; when it is an array, it must have a single channel. -@param src2 second input array or a scalar; when it is an array, it must have a single channel. -@param dst output array of type ref CV_8U that has the same size and the same number of channels as - the input arrays. -@param cmpop a flag, that specifies correspondence between the arrays (cv::CmpTypes) -@sa checkRange, min, max, threshold -*/ -CV_EXPORTS_W void compare(InputArray src1, InputArray src2, OutputArray dst, int cmpop); - -/** @brief Calculates per-element minimum of two arrays or an array and a scalar. - -The function cv::min calculates the per-element minimum of two arrays: -\f[\texttt{dst} (I)= \min ( \texttt{src1} (I), \texttt{src2} (I))\f] -or array and a scalar: -\f[\texttt{dst} (I)= \min ( \texttt{src1} (I), \texttt{value} )\f] -@param src1 first input array. -@param src2 second input array of the same size and type as src1. -@param dst output array of the same size and type as src1. -@sa max, compare, inRange, minMaxLoc -*/ -CV_EXPORTS_W void min(InputArray src1, InputArray src2, OutputArray dst); -/** @overload -needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) -*/ -CV_EXPORTS void min(const Mat& src1, const Mat& src2, Mat& dst); -/** @overload -needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) -*/ -CV_EXPORTS void min(const UMat& src1, const UMat& src2, UMat& dst); - -/** @brief Calculates per-element maximum of two arrays or an array and a scalar. - -The function cv::max calculates the per-element maximum of two arrays: -\f[\texttt{dst} (I)= \max ( \texttt{src1} (I), \texttt{src2} (I))\f] -or array and a scalar: -\f[\texttt{dst} (I)= \max ( \texttt{src1} (I), \texttt{value} )\f] -@param src1 first input array. -@param src2 second input array of the same size and type as src1 . -@param dst output array of the same size and type as src1. -@sa min, compare, inRange, minMaxLoc, @ref MatrixExpressions -*/ -CV_EXPORTS_W void max(InputArray src1, InputArray src2, OutputArray dst); -/** @overload -needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) -*/ -CV_EXPORTS void max(const Mat& src1, const Mat& src2, Mat& dst); -/** @overload -needed to avoid conflicts with const _Tp& std::min(const _Tp&, const _Tp&, _Compare) -*/ -CV_EXPORTS void max(const UMat& src1, const UMat& src2, UMat& dst); - -/** @brief Calculates a square root of array elements. - -The function cv::sqrt calculates a square root of each input array element. -In case of multi-channel arrays, each channel is processed -independently. The accuracy is approximately the same as of the built-in -std::sqrt . -@param src input floating-point array. -@param dst output array of the same size and type as src. -*/ -CV_EXPORTS_W void sqrt(InputArray src, OutputArray dst); - -/** @brief Raises every array element to a power. - -The function cv::pow raises every element of the input array to power : -\f[\texttt{dst} (I) = \fork{\texttt{src}(I)^{power}}{if \(\texttt{power}\) is integer}{|\texttt{src}(I)|^{power}}{otherwise}\f] - -So, for a non-integer power exponent, the absolute values of input array -elements are used. However, it is possible to get true values for -negative values using some extra operations. In the example below, -computing the 5th root of array src shows: -@code{.cpp} - Mat mask = src < 0; - pow(src, 1./5, dst); - subtract(Scalar::all(0), dst, dst, mask); -@endcode -For some values of power, such as integer values, 0.5 and -0.5, -specialized faster algorithms are used. - -Special values (NaN, Inf) are not handled. -@param src input array. -@param power exponent of power. -@param dst output array of the same size and type as src. -@sa sqrt, exp, log, cartToPolar, polarToCart -*/ -CV_EXPORTS_W void pow(InputArray src, double power, OutputArray dst); - -/** @brief Calculates the exponent of every array element. - -The function cv::exp calculates the exponent of every element of the input -array: -\f[\texttt{dst} [I] = e^{ src(I) }\f] - -The maximum relative error is about 7e-6 for single-precision input and -less than 1e-10 for double-precision input. Currently, the function -converts denormalized values to zeros on output. Special values (NaN, -Inf) are not handled. -@param src input array. -@param dst output array of the same size and type as src. -@sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude -*/ -CV_EXPORTS_W void exp(InputArray src, OutputArray dst); - -/** @brief Calculates the natural logarithm of every array element. - -The function cv::log calculates the natural logarithm of every element of the input array: -\f[\texttt{dst} (I) = \log (\texttt{src}(I)) \f] - -Output on zero, negative and special (NaN, Inf) values is undefined. - -@param src input array. -@param dst output array of the same size and type as src . -@sa exp, cartToPolar, polarToCart, phase, pow, sqrt, magnitude -*/ -CV_EXPORTS_W void log(InputArray src, OutputArray dst); - -/** @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle. - -The function cv::polarToCart calculates the Cartesian coordinates of each 2D -vector represented by the corresponding elements of magnitude and angle: -\f[\begin{array}{l} \texttt{x} (I) = \texttt{magnitude} (I) \cos ( \texttt{angle} (I)) \\ \texttt{y} (I) = \texttt{magnitude} (I) \sin ( \texttt{angle} (I)) \\ \end{array}\f] - -The relative accuracy of the estimated coordinates is about 1e-6. -@param magnitude input floating-point array of magnitudes of 2D vectors; -it can be an empty matrix (=Mat()), in this case, the function assumes -that all the magnitudes are =1; if it is not empty, it must have the -same size and type as angle. -@param angle input floating-point array of angles of 2D vectors. -@param x output array of x-coordinates of 2D vectors; it has the same -size and type as angle. -@param y output array of y-coordinates of 2D vectors; it has the same -size and type as angle. -@param angleInDegrees when true, the input angles are measured in -degrees, otherwise, they are measured in radians. -@sa cartToPolar, magnitude, phase, exp, log, pow, sqrt -*/ -CV_EXPORTS_W void polarToCart(InputArray magnitude, InputArray angle, - OutputArray x, OutputArray y, bool angleInDegrees = false); - -/** @brief Calculates the magnitude and angle of 2D vectors. - -The function cv::cartToPolar calculates either the magnitude, angle, or both -for every 2D vector (x(I),y(I)): -\f[\begin{array}{l} \texttt{magnitude} (I)= \sqrt{\texttt{x}(I)^2+\texttt{y}(I)^2} , \\ \texttt{angle} (I)= \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))[ \cdot180 / \pi ] \end{array}\f] - -The angles are calculated with accuracy about 0.3 degrees. For the point -(0,0), the angle is set to 0. -@param x array of x-coordinates; this must be a single-precision or -double-precision floating-point array. -@param y array of y-coordinates, that must have the same size and same type as x. -@param magnitude output array of magnitudes of the same size and type as x. -@param angle output array of angles that has the same size and type as -x; the angles are measured in radians (from 0 to 2\*Pi) or in degrees (0 to 360 degrees). -@param angleInDegrees a flag, indicating whether the angles are measured -in radians (which is by default), or in degrees. -@sa Sobel, Scharr -*/ -CV_EXPORTS_W void cartToPolar(InputArray x, InputArray y, - OutputArray magnitude, OutputArray angle, - bool angleInDegrees = false); - -/** @brief Calculates the rotation angle of 2D vectors. - -The function cv::phase calculates the rotation angle of each 2D vector that -is formed from the corresponding elements of x and y : -\f[\texttt{angle} (I) = \texttt{atan2} ( \texttt{y} (I), \texttt{x} (I))\f] - -The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 , -the corresponding angle(I) is set to 0. -@param x input floating-point array of x-coordinates of 2D vectors. -@param y input array of y-coordinates of 2D vectors; it must have the -same size and the same type as x. -@param angle output array of vector angles; it has the same size and -same type as x . -@param angleInDegrees when true, the function calculates the angle in -degrees, otherwise, they are measured in radians. -*/ -CV_EXPORTS_W void phase(InputArray x, InputArray y, OutputArray angle, - bool angleInDegrees = false); - -/** @brief Calculates the magnitude of 2D vectors. - -The function cv::magnitude calculates the magnitude of 2D vectors formed -from the corresponding elements of x and y arrays: -\f[\texttt{dst} (I) = \sqrt{\texttt{x}(I)^2 + \texttt{y}(I)^2}\f] -@param x floating-point array of x-coordinates of the vectors. -@param y floating-point array of y-coordinates of the vectors; it must -have the same size as x. -@param magnitude output array of the same size and type as x. -@sa cartToPolar, polarToCart, phase, sqrt -*/ -CV_EXPORTS_W void magnitude(InputArray x, InputArray y, OutputArray magnitude); - -/** @brief Checks every element of an input array for invalid values. - -The function cv::checkRange checks that every array element is neither NaN nor infinite. When minVal \> --DBL_MAX and maxVal \< DBL_MAX, the function also checks that each value is between minVal and -maxVal. In case of multi-channel arrays, each channel is processed independently. If some values -are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the -function either returns false (when quiet=true) or throws an exception. -@param a input array. -@param quiet a flag, indicating whether the functions quietly return false when the array elements -are out of range or they throw an exception. -@param pos optional output parameter, when not NULL, must be a pointer to array of src.dims -elements. -@param minVal inclusive lower boundary of valid values range. -@param maxVal exclusive upper boundary of valid values range. -*/ -CV_EXPORTS_W bool checkRange(InputArray a, bool quiet = true, CV_OUT Point* pos = 0, - double minVal = -DBL_MAX, double maxVal = DBL_MAX); - -/** @brief converts NaN's to the given number -*/ -CV_EXPORTS_W void patchNaNs(InputOutputArray a, double val = 0); - -/** @brief Performs generalized matrix multiplication. - -The function cv::gemm performs generalized matrix multiplication similar to the -gemm functions in BLAS level 3. For example, -`gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)` -corresponds to -\f[\texttt{dst} = \texttt{alpha} \cdot \texttt{src1} ^T \cdot \texttt{src2} + \texttt{beta} \cdot \texttt{src3} ^T\f] - -In case of complex (two-channel) data, performed a complex matrix -multiplication. - -The function can be replaced with a matrix expression. For example, the -above call can be replaced with: -@code{.cpp} - dst = alpha*src1.t()*src2 + beta*src3.t(); -@endcode -@param src1 first multiplied input matrix that could be real(CV_32FC1, -CV_64FC1) or complex(CV_32FC2, CV_64FC2). -@param src2 second multiplied input matrix of the same type as src1. -@param alpha weight of the matrix product. -@param src3 third optional delta matrix added to the matrix product; it -should have the same type as src1 and src2. -@param beta weight of src3. -@param dst output matrix; it has the proper size and the same type as -input matrices. -@param flags operation flags (cv::GemmFlags) -@sa mulTransposed , transform -*/ -CV_EXPORTS_W void gemm(InputArray src1, InputArray src2, double alpha, - InputArray src3, double beta, OutputArray dst, int flags = 0); - -/** @brief Calculates the product of a matrix and its transposition. - -The function cv::mulTransposed calculates the product of src and its -transposition: -\f[\texttt{dst} = \texttt{scale} ( \texttt{src} - \texttt{delta} )^T ( \texttt{src} - \texttt{delta} )\f] -if aTa=true , and -\f[\texttt{dst} = \texttt{scale} ( \texttt{src} - \texttt{delta} ) ( \texttt{src} - \texttt{delta} )^T\f] -otherwise. The function is used to calculate the covariance matrix. With -zero delta, it can be used as a faster substitute for general matrix -product A\*B when B=A' -@param src input single-channel matrix. Note that unlike gemm, the -function can multiply not only floating-point matrices. -@param dst output square matrix. -@param aTa Flag specifying the multiplication ordering. See the -description below. -@param delta Optional delta matrix subtracted from src before the -multiplication. When the matrix is empty ( delta=noArray() ), it is -assumed to be zero, that is, nothing is subtracted. If it has the same -size as src , it is simply subtracted. Otherwise, it is "repeated" (see -repeat ) to cover the full src and then subtracted. Type of the delta -matrix, when it is not empty, must be the same as the type of created -output matrix. See the dtype parameter description below. -@param scale Optional scale factor for the matrix product. -@param dtype Optional type of the output matrix. When it is negative, -the output matrix will have the same type as src . Otherwise, it will be -type=CV_MAT_DEPTH(dtype) that should be either CV_32F or CV_64F . -@sa calcCovarMatrix, gemm, repeat, reduce -*/ -CV_EXPORTS_W void mulTransposed( InputArray src, OutputArray dst, bool aTa, - InputArray delta = noArray(), - double scale = 1, int dtype = -1 ); - -/** @brief Transposes a matrix. - -The function cv::transpose transposes the matrix src : -\f[\texttt{dst} (i,j) = \texttt{src} (j,i)\f] -@note No complex conjugation is done in case of a complex matrix. It -should be done separately if needed. -@param src input array. -@param dst output array of the same type as src. -*/ -CV_EXPORTS_W void transpose(InputArray src, OutputArray dst); - -/** @brief Performs the matrix transformation of every array element. - -The function cv::transform performs the matrix transformation of every -element of the array src and stores the results in dst : -\f[\texttt{dst} (I) = \texttt{m} \cdot \texttt{src} (I)\f] -(when m.cols=src.channels() ), or -\f[\texttt{dst} (I) = \texttt{m} \cdot [ \texttt{src} (I); 1]\f] -(when m.cols=src.channels()+1 ) - -Every element of the N -channel array src is interpreted as N -element -vector that is transformed using the M x N or M x (N+1) matrix m to -M-element vector - the corresponding element of the output array dst . - -The function may be used for geometrical transformation of -N -dimensional points, arbitrary linear color space transformation (such -as various kinds of RGB to YUV transforms), shuffling the image -channels, and so forth. -@param src input array that must have as many channels (1 to 4) as -m.cols or m.cols-1. -@param dst output array of the same size and depth as src; it has as -many channels as m.rows. -@param m transformation 2x2 or 2x3 floating-point matrix. -@sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective -*/ -CV_EXPORTS_W void transform(InputArray src, OutputArray dst, InputArray m ); - -/** @brief Performs the perspective matrix transformation of vectors. - -The function cv::perspectiveTransform transforms every element of src by -treating it as a 2D or 3D vector, in the following way: -\f[(x, y, z) \rightarrow (x'/w, y'/w, z'/w)\f] -where -\f[(x', y', z', w') = \texttt{mat} \cdot \begin{bmatrix} x & y & z & 1 \end{bmatrix}\f] -and -\f[w = \fork{w'}{if \(w' \ne 0\)}{\infty}{otherwise}\f] - -Here a 3D vector transformation is shown. In case of a 2D vector -transformation, the z component is omitted. - -@note The function transforms a sparse set of 2D or 3D vectors. If you -want to transform an image using perspective transformation, use -warpPerspective . If you have an inverse problem, that is, you want to -compute the most probable perspective transformation out of several -pairs of corresponding points, you can use getPerspectiveTransform or -findHomography . -@param src input two-channel or three-channel floating-point array; each -element is a 2D/3D vector to be transformed. -@param dst output array of the same size and type as src. -@param m 3x3 or 4x4 floating-point transformation matrix. -@sa transform, warpPerspective, getPerspectiveTransform, findHomography -*/ -CV_EXPORTS_W void perspectiveTransform(InputArray src, OutputArray dst, InputArray m ); - -/** @brief Copies the lower or the upper half of a square matrix to another half. - -The function cv::completeSymm copies the lower half of a square matrix to -its another half. The matrix diagonal remains unchanged: -* \f$\texttt{mtx}_{ij}=\texttt{mtx}_{ji}\f$ for \f$i > j\f$ if - lowerToUpper=false -* \f$\texttt{mtx}_{ij}=\texttt{mtx}_{ji}\f$ for \f$i < j\f$ if - lowerToUpper=true -@param mtx input-output floating-point square matrix. -@param lowerToUpper operation flag; if true, the lower half is copied to -the upper half. Otherwise, the upper half is copied to the lower half. -@sa flip, transpose -*/ -CV_EXPORTS_W void completeSymm(InputOutputArray mtx, bool lowerToUpper = false); - -/** @brief Initializes a scaled identity matrix. - -The function cv::setIdentity initializes a scaled identity matrix: -\f[\texttt{mtx} (i,j)= \fork{\texttt{value}}{ if \(i=j\)}{0}{otherwise}\f] - -The function can also be emulated using the matrix initializers and the -matrix expressions: -@code - Mat A = Mat::eye(4, 3, CV_32F)*5; - // A will be set to [[5, 0, 0], [0, 5, 0], [0, 0, 5], [0, 0, 0]] -@endcode -@param mtx matrix to initialize (not necessarily square). -@param s value to assign to diagonal elements. -@sa Mat::zeros, Mat::ones, Mat::setTo, Mat::operator= -*/ -CV_EXPORTS_W void setIdentity(InputOutputArray mtx, const Scalar& s = Scalar(1)); - -/** @brief Returns the determinant of a square floating-point matrix. - -The function cv::determinant calculates and returns the determinant of the -specified matrix. For small matrices ( mtx.cols=mtx.rows\<=3 ), the -direct method is used. For larger matrices, the function uses LU -factorization with partial pivoting. - -For symmetric positively-determined matrices, it is also possible to use -eigen decomposition to calculate the determinant. -@param mtx input matrix that must have CV_32FC1 or CV_64FC1 type and -square size. -@sa trace, invert, solve, eigen, @ref MatrixExpressions -*/ -CV_EXPORTS_W double determinant(InputArray mtx); - -/** @brief Returns the trace of a matrix. - -The function cv::trace returns the sum of the diagonal elements of the -matrix mtx . -\f[\mathrm{tr} ( \texttt{mtx} ) = \sum _i \texttt{mtx} (i,i)\f] -@param mtx input matrix. -*/ -CV_EXPORTS_W Scalar trace(InputArray mtx); - -/** @brief Finds the inverse or pseudo-inverse of a matrix. - -The function cv::invert inverts the matrix src and stores the result in dst -. When the matrix src is singular or non-square, the function calculates -the pseudo-inverse matrix (the dst matrix) so that norm(src\*dst - I) is -minimal, where I is an identity matrix. - -In case of the DECOMP_LU method, the function returns non-zero value if -the inverse has been successfully calculated and 0 if src is singular. - -In case of the DECOMP_SVD method, the function returns the inverse -condition number of src (the ratio of the smallest singular value to the -largest singular value) and 0 if src is singular. The SVD method -calculates a pseudo-inverse matrix if src is singular. - -Similarly to DECOMP_LU, the method DECOMP_CHOLESKY works only with -non-singular square matrices that should also be symmetrical and -positively defined. In this case, the function stores the inverted -matrix in dst and returns non-zero. Otherwise, it returns 0. - -@param src input floating-point M x N matrix. -@param dst output matrix of N x M size and the same type as src. -@param flags inversion method (cv::DecompTypes) -@sa solve, SVD -*/ -CV_EXPORTS_W double invert(InputArray src, OutputArray dst, int flags = DECOMP_LU); - -/** @brief Solves one or more linear systems or least-squares problems. - -The function cv::solve solves a linear system or least-squares problem (the -latter is possible with SVD or QR methods, or by specifying the flag -DECOMP_NORMAL ): -\f[\texttt{dst} = \arg \min _X \| \texttt{src1} \cdot \texttt{X} - \texttt{src2} \|\f] - -If DECOMP_LU or DECOMP_CHOLESKY method is used, the function returns 1 -if src1 (or \f$\texttt{src1}^T\texttt{src1}\f$ ) is non-singular. Otherwise, -it returns 0. In the latter case, dst is not valid. Other methods find a -pseudo-solution in case of a singular left-hand side part. - -@note If you want to find a unity-norm solution of an under-defined -singular system \f$\texttt{src1}\cdot\texttt{dst}=0\f$ , the function solve -will not do the work. Use SVD::solveZ instead. - -@param src1 input matrix on the left-hand side of the system. -@param src2 input matrix on the right-hand side of the system. -@param dst output solution. -@param flags solution (matrix inversion) method (cv::DecompTypes) -@sa invert, SVD, eigen -*/ -CV_EXPORTS_W bool solve(InputArray src1, InputArray src2, - OutputArray dst, int flags = DECOMP_LU); - -/** @brief Sorts each row or each column of a matrix. - -The function cv::sort sorts each matrix row or each matrix column in -ascending or descending order. So you should pass two operation flags to -get desired behaviour. If you want to sort matrix rows or columns -lexicographically, you can use STL std::sort generic function with the -proper comparison predicate. - -@param src input single-channel array. -@param dst output array of the same size and type as src. -@param flags operation flags, a combination of cv::SortFlags -@sa sortIdx, randShuffle -*/ -CV_EXPORTS_W void sort(InputArray src, OutputArray dst, int flags); - -/** @brief Sorts each row or each column of a matrix. - -The function cv::sortIdx sorts each matrix row or each matrix column in the -ascending or descending order. So you should pass two operation flags to -get desired behaviour. Instead of reordering the elements themselves, it -stores the indices of sorted elements in the output array. For example: -@code - Mat A = Mat::eye(3,3,CV_32F), B; - sortIdx(A, B, SORT_EVERY_ROW + SORT_ASCENDING); - // B will probably contain - // (because of equal elements in A some permutations are possible): - // [[1, 2, 0], [0, 2, 1], [0, 1, 2]] -@endcode -@param src input single-channel array. -@param dst output integer array of the same size as src. -@param flags operation flags that could be a combination of cv::SortFlags -@sa sort, randShuffle -*/ -CV_EXPORTS_W void sortIdx(InputArray src, OutputArray dst, int flags); - -/** @brief Finds the real roots of a cubic equation. - -The function solveCubic finds the real roots of a cubic equation: -- if coeffs is a 4-element vector: -\f[\texttt{coeffs} [0] x^3 + \texttt{coeffs} [1] x^2 + \texttt{coeffs} [2] x + \texttt{coeffs} [3] = 0\f] -- if coeffs is a 3-element vector: -\f[x^3 + \texttt{coeffs} [0] x^2 + \texttt{coeffs} [1] x + \texttt{coeffs} [2] = 0\f] - -The roots are stored in the roots array. -@param coeffs equation coefficients, an array of 3 or 4 elements. -@param roots output array of real roots that has 1 or 3 elements. -*/ -CV_EXPORTS_W int solveCubic(InputArray coeffs, OutputArray roots); - -/** @brief Finds the real or complex roots of a polynomial equation. - -The function cv::solvePoly finds real and complex roots of a polynomial equation: -\f[\texttt{coeffs} [n] x^{n} + \texttt{coeffs} [n-1] x^{n-1} + ... + \texttt{coeffs} [1] x + \texttt{coeffs} [0] = 0\f] -@param coeffs array of polynomial coefficients. -@param roots output (complex) array of roots. -@param maxIters maximum number of iterations the algorithm does. -*/ -CV_EXPORTS_W double solvePoly(InputArray coeffs, OutputArray roots, int maxIters = 300); - -/** @brief Calculates eigenvalues and eigenvectors of a symmetric matrix. - -The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric -matrix src: -@code - src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t() -@endcode - -@note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix. - -@param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical -(src ^T^ == src). -@param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored -in the descending order. -@param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the -eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding -eigenvalues. -@sa eigenNonSymmetric, completeSymm , PCA -*/ -CV_EXPORTS_W bool eigen(InputArray src, OutputArray eigenvalues, - OutputArray eigenvectors = noArray()); - -/** @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only). - -@note Assumes real eigenvalues. - -The function calculates eigenvalues and eigenvectors (optional) of the square matrix src: -@code - src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t() -@endcode - -@param src input matrix (CV_32FC1 or CV_64FC1 type). -@param eigenvalues output vector of eigenvalues (type is the same type as src). -@param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues. -@sa eigen -*/ -CV_EXPORTS_W void eigenNonSymmetric(InputArray src, OutputArray eigenvalues, - OutputArray eigenvectors); - -/** @brief Calculates the covariance matrix of a set of vectors. - -The function cv::calcCovarMatrix calculates the covariance matrix and, optionally, the mean vector of -the set of input vectors. -@param samples samples stored as separate matrices -@param nsamples number of samples -@param covar output covariance matrix of the type ctype and square size. -@param mean input or output (depending on the flags) array as the average value of the input vectors. -@param flags operation flags as a combination of cv::CovarFlags -@param ctype type of the matrixl; it equals 'CV_64F' by default. -@sa PCA, mulTransposed, Mahalanobis -@todo InputArrayOfArrays -*/ -CV_EXPORTS void calcCovarMatrix( const Mat* samples, int nsamples, Mat& covar, Mat& mean, - int flags, int ctype = CV_64F); - -/** @overload -@note use cv::COVAR_ROWS or cv::COVAR_COLS flag -@param samples samples stored as rows/columns of a single matrix. -@param covar output covariance matrix of the type ctype and square size. -@param mean input or output (depending on the flags) array as the average value of the input vectors. -@param flags operation flags as a combination of cv::CovarFlags -@param ctype type of the matrixl; it equals 'CV_64F' by default. -*/ -CV_EXPORTS_W void calcCovarMatrix( InputArray samples, OutputArray covar, - InputOutputArray mean, int flags, int ctype = CV_64F); - -/** wrap PCA::operator() */ -CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean, - OutputArray eigenvectors, int maxComponents = 0); - -/** wrap PCA::operator() */ -CV_EXPORTS_W void PCACompute(InputArray data, InputOutputArray mean, - OutputArray eigenvectors, double retainedVariance); - -/** wrap PCA::project */ -CV_EXPORTS_W void PCAProject(InputArray data, InputArray mean, - InputArray eigenvectors, OutputArray result); - -/** wrap PCA::backProject */ -CV_EXPORTS_W void PCABackProject(InputArray data, InputArray mean, - InputArray eigenvectors, OutputArray result); - -/** wrap SVD::compute */ -CV_EXPORTS_W void SVDecomp( InputArray src, OutputArray w, OutputArray u, OutputArray vt, int flags = 0 ); - -/** wrap SVD::backSubst */ -CV_EXPORTS_W void SVBackSubst( InputArray w, InputArray u, InputArray vt, - InputArray rhs, OutputArray dst ); - -/** @brief Calculates the Mahalanobis distance between two vectors. - -The function cv::Mahalanobis calculates and returns the weighted distance between two vectors: -\f[d( \texttt{vec1} , \texttt{vec2} )= \sqrt{\sum_{i,j}{\texttt{icovar(i,j)}\cdot(\texttt{vec1}(I)-\texttt{vec2}(I))\cdot(\texttt{vec1(j)}-\texttt{vec2(j)})} }\f] -The covariance matrix may be calculated using the cv::calcCovarMatrix function and then inverted using -the invert function (preferably using the cv::DECOMP_SVD method, as the most accurate). -@param v1 first 1D input vector. -@param v2 second 1D input vector. -@param icovar inverse covariance matrix. -*/ -CV_EXPORTS_W double Mahalanobis(InputArray v1, InputArray v2, InputArray icovar); - -/** @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array. - -The function cv::dft performs one of the following: -- Forward the Fourier transform of a 1D vector of N elements: - \f[Y = F^{(N)} \cdot X,\f] - where \f$F^{(N)}_{jk}=\exp(-2\pi i j k/N)\f$ and \f$i=\sqrt{-1}\f$ -- Inverse the Fourier transform of a 1D vector of N elements: - \f[\begin{array}{l} X'= \left (F^{(N)} \right )^{-1} \cdot Y = \left (F^{(N)} \right )^* \cdot y \\ X = (1/N) \cdot X, \end{array}\f] - where \f$F^*=\left(\textrm{Re}(F^{(N)})-\textrm{Im}(F^{(N)})\right)^T\f$ -- Forward the 2D Fourier transform of a M x N matrix: - \f[Y = F^{(M)} \cdot X \cdot F^{(N)}\f] -- Inverse the 2D Fourier transform of a M x N matrix: - \f[\begin{array}{l} X'= \left (F^{(M)} \right )^* \cdot Y \cdot \left (F^{(N)} \right )^* \\ X = \frac{1}{M \cdot N} \cdot X' \end{array}\f] - -In case of real (single-channel) data, the output spectrum of the forward Fourier transform or input -spectrum of the inverse Fourier transform can be represented in a packed format called *CCS* -(complex-conjugate-symmetrical). It was borrowed from IPL (Intel\* Image Processing Library). Here -is how 2D *CCS* spectrum looks: -\f[\begin{bmatrix} Re Y_{0,0} & Re Y_{0,1} & Im Y_{0,1} & Re Y_{0,2} & Im Y_{0,2} & \cdots & Re Y_{0,N/2-1} & Im Y_{0,N/2-1} & Re Y_{0,N/2} \\ Re Y_{1,0} & Re Y_{1,1} & Im Y_{1,1} & Re Y_{1,2} & Im Y_{1,2} & \cdots & Re Y_{1,N/2-1} & Im Y_{1,N/2-1} & Re Y_{1,N/2} \\ Im Y_{1,0} & Re Y_{2,1} & Im Y_{2,1} & Re Y_{2,2} & Im Y_{2,2} & \cdots & Re Y_{2,N/2-1} & Im Y_{2,N/2-1} & Im Y_{1,N/2} \\ \hdotsfor{9} \\ Re Y_{M/2-1,0} & Re Y_{M-3,1} & Im Y_{M-3,1} & \hdotsfor{3} & Re Y_{M-3,N/2-1} & Im Y_{M-3,N/2-1}& Re Y_{M/2-1,N/2} \\ Im Y_{M/2-1,0} & Re Y_{M-2,1} & Im Y_{M-2,1} & \hdotsfor{3} & Re Y_{M-2,N/2-1} & Im Y_{M-2,N/2-1}& Im Y_{M/2-1,N/2} \\ Re Y_{M/2,0} & Re Y_{M-1,1} & Im Y_{M-1,1} & \hdotsfor{3} & Re Y_{M-1,N/2-1} & Im Y_{M-1,N/2-1}& Re Y_{M/2,N/2} \end{bmatrix}\f] - -In case of 1D transform of a real vector, the output looks like the first row of the matrix above. - -So, the function chooses an operation mode depending on the flags and size of the input array: -- If DFT_ROWS is set or the input array has a single row or single column, the function - performs a 1D forward or inverse transform of each row of a matrix when DFT_ROWS is set. - Otherwise, it performs a 2D transform. -- If the input array is real and DFT_INVERSE is not set, the function performs a forward 1D or - 2D transform: - - When DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as - input. - - When DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as - input. In case of 2D transform, it uses the packed format as shown above. In case of a - single 1D transform, it looks like the first row of the matrix above. In case of - multiple 1D transforms (when using the DFT_ROWS flag), each row of the output matrix - looks like the first row of the matrix above. -- If the input array is complex and either DFT_INVERSE or DFT_REAL_OUTPUT are not set, the - output is a complex array of the same size as input. The function performs a forward or - inverse 1D or 2D transform of the whole input array or each row of the input array - independently, depending on the flags DFT_INVERSE and DFT_ROWS. -- When DFT_INVERSE is set and the input array is real, or it is complex but DFT_REAL_OUTPUT - is set, the output is a real array of the same size as input. The function performs a 1D or 2D - inverse transformation of the whole input array or each individual row, depending on the flags - DFT_INVERSE and DFT_ROWS. - -If DFT_SCALE is set, the scaling is done after the transformation. - -Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed -efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the -current implementation). Such an efficient DFT size can be calculated using the getOptimalDFTSize -method. - -The sample below illustrates how to calculate a DFT-based convolution of two 2D real arrays: -@code - void convolveDFT(InputArray A, InputArray B, OutputArray C) - { - // reallocate the output array if needed - C.create(abs(A.rows - B.rows)+1, abs(A.cols - B.cols)+1, A.type()); - Size dftSize; - // calculate the size of DFT transform - dftSize.width = getOptimalDFTSize(A.cols + B.cols - 1); - dftSize.height = getOptimalDFTSize(A.rows + B.rows - 1); - - // allocate temporary buffers and initialize them with 0's - Mat tempA(dftSize, A.type(), Scalar::all(0)); - Mat tempB(dftSize, B.type(), Scalar::all(0)); - - // copy A and B to the top-left corners of tempA and tempB, respectively - Mat roiA(tempA, Rect(0,0,A.cols,A.rows)); - A.copyTo(roiA); - Mat roiB(tempB, Rect(0,0,B.cols,B.rows)); - B.copyTo(roiB); - - // now transform the padded A & B in-place; - // use "nonzeroRows" hint for faster processing - dft(tempA, tempA, 0, A.rows); - dft(tempB, tempB, 0, B.rows); - - // multiply the spectrums; - // the function handles packed spectrum representations well - mulSpectrums(tempA, tempB, tempA); - - // transform the product back from the frequency domain. - // Even though all the result rows will be non-zero, - // you need only the first C.rows of them, and thus you - // pass nonzeroRows == C.rows - dft(tempA, tempA, DFT_INVERSE + DFT_SCALE, C.rows); - - // now copy the result back to C. - tempA(Rect(0, 0, C.cols, C.rows)).copyTo(C); - - // all the temporary buffers will be deallocated automatically - } -@endcode -To optimize this sample, consider the following approaches: -- Since nonzeroRows != 0 is passed to the forward transform calls and since A and B are copied to - the top-left corners of tempA and tempB, respectively, it is not necessary to clear the whole - tempA and tempB. It is only necessary to clear the tempA.cols - A.cols ( tempB.cols - B.cols) - rightmost columns of the matrices. -- This DFT-based convolution does not have to be applied to the whole big arrays, especially if B - is significantly smaller than A or vice versa. Instead, you can calculate convolution by parts. - To do this, you need to split the output array C into multiple tiles. For each tile, estimate - which parts of A and B are required to calculate convolution in this tile. If the tiles in C are - too small, the speed will decrease a lot because of repeated work. In the ultimate case, when - each tile in C is a single pixel, the algorithm becomes equivalent to the naive convolution - algorithm. If the tiles are too big, the temporary arrays tempA and tempB become too big and - there is also a slowdown because of bad cache locality. So, there is an optimal tile size - somewhere in the middle. -- If different tiles in C can be calculated in parallel and, thus, the convolution is done by - parts, the loop can be threaded. - -All of the above improvements have been implemented in matchTemplate and filter2D . Therefore, by -using them, you can get the performance even better than with the above theoretically optimal -implementation. Though, those two functions actually calculate cross-correlation, not convolution, -so you need to "flip" the second convolution operand B vertically and horizontally using flip . -@note -- An example using the discrete fourier transform can be found at - opencv_source_code/samples/cpp/dft.cpp -- (Python) An example using the dft functionality to perform Wiener deconvolution can be found - at opencv_source/samples/python/deconvolution.py -- (Python) An example rearranging the quadrants of a Fourier image can be found at - opencv_source/samples/python/dft.py -@param src input array that could be real or complex. -@param dst output array whose size and type depends on the flags . -@param flags transformation flags, representing a combination of the cv::DftFlags -@param nonzeroRows when the parameter is not zero, the function assumes that only the first -nonzeroRows rows of the input array (DFT_INVERSE is not set) or only the first nonzeroRows of the -output array (DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the -rows more efficiently and save some time; this technique is very useful for calculating array -cross-correlation or convolution using DFT. -@sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar , -magnitude , phase -*/ -CV_EXPORTS_W void dft(InputArray src, OutputArray dst, int flags = 0, int nonzeroRows = 0); - -/** @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array. - -idft(src, dst, flags) is equivalent to dft(src, dst, flags | DFT_INVERSE) . -@note None of dft and idft scales the result by default. So, you should pass DFT_SCALE to one of -dft or idft explicitly to make these transforms mutually inverse. -@sa dft, dct, idct, mulSpectrums, getOptimalDFTSize -@param src input floating-point real or complex array. -@param dst output array whose size and type depend on the flags. -@param flags operation flags (see dft and cv::DftFlags). -@param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see -the convolution sample in dft description. -*/ -CV_EXPORTS_W void idft(InputArray src, OutputArray dst, int flags = 0, int nonzeroRows = 0); - -/** @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array. - -The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D -floating-point array: -- Forward Cosine transform of a 1D vector of N elements: - \f[Y = C^{(N)} \cdot X\f] - where - \f[C^{(N)}_{jk}= \sqrt{\alpha_j/N} \cos \left ( \frac{\pi(2k+1)j}{2N} \right )\f] - and - \f$\alpha_0=1\f$, \f$\alpha_j=2\f$ for *j \> 0*. -- Inverse Cosine transform of a 1D vector of N elements: - \f[X = \left (C^{(N)} \right )^{-1} \cdot Y = \left (C^{(N)} \right )^T \cdot Y\f] - (since \f$C^{(N)}\f$ is an orthogonal matrix, \f$C^{(N)} \cdot \left(C^{(N)}\right)^T = I\f$ ) -- Forward 2D Cosine transform of M x N matrix: - \f[Y = C^{(N)} \cdot X \cdot \left (C^{(N)} \right )^T\f] -- Inverse 2D Cosine transform of M x N matrix: - \f[X = \left (C^{(N)} \right )^T \cdot X \cdot C^{(N)}\f] - -The function chooses the mode of operation by looking at the flags and size of the input array: -- If (flags & DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it - is an inverse 1D or 2D transform. -- If (flags & DCT_ROWS) != 0 , the function performs a 1D transform of each row. -- If the array is a single column or a single row, the function performs a 1D transform. -- If none of the above is true, the function performs a 2D transform. - -@note Currently dct supports even-size arrays (2, 4, 6 ...). For data analysis and approximation, you -can pad the array when necessary. -Also, the function performance depends very much, and not monotonically, on the array size (see -getOptimalDFTSize ). In the current implementation DCT of a vector of size N is calculated via DFT -of a vector of size N/2 . Thus, the optimal DCT size N1 \>= N can be calculated as: -@code - size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); } - N1 = getOptimalDCTSize(N); -@endcode -@param src input floating-point array. -@param dst output array of the same size and type as src . -@param flags transformation flags as a combination of cv::DftFlags (DCT_*) -@sa dft , getOptimalDFTSize , idct -*/ -CV_EXPORTS_W void dct(InputArray src, OutputArray dst, int flags = 0); - -/** @brief Calculates the inverse Discrete Cosine Transform of a 1D or 2D array. - -idct(src, dst, flags) is equivalent to dct(src, dst, flags | DCT_INVERSE). -@param src input floating-point single-channel array. -@param dst output array of the same size and type as src. -@param flags operation flags. -@sa dct, dft, idft, getOptimalDFTSize -*/ -CV_EXPORTS_W void idct(InputArray src, OutputArray dst, int flags = 0); - -/** @brief Performs the per-element multiplication of two Fourier spectrums. - -The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex -matrices that are results of a real or complex Fourier transform. - -The function, together with dft and idft , may be used to calculate convolution (pass conjB=false ) -or correlation (pass conjB=true ) of two arrays rapidly. When the arrays are complex, they are -simply multiplied (per element) with an optional conjugation of the second-array elements. When the -arrays are real, they are assumed to be CCS-packed (see dft for details). -@param a first input array. -@param b second input array of the same size and type as src1 . -@param c output array of the same size and type as src1 . -@param flags operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that -each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value. -@param conjB optional flag that conjugates the second input array before the multiplication (true) -or not (false). -*/ -CV_EXPORTS_W void mulSpectrums(InputArray a, InputArray b, OutputArray c, - int flags, bool conjB = false); - -/** @brief Returns the optimal DFT size for a given vector size. - -DFT performance is not a monotonic function of a vector size. Therefore, when you calculate -convolution of two arrays or perform the spectral analysis of an array, it usually makes sense to -pad the input data with zeros to get a bit larger array that can be transformed much faster than the -original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the fastest to process. -Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\*5\*3\*2\*2) -are also processed quite efficiently. - -The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize -so that the DFT of a vector of size N can be processed efficiently. In the current implementation N -= 2 ^p^ \* 3 ^q^ \* 5 ^r^ for some integer p, q, r. - -The function returns a negative number if vecsize is too large (very close to INT_MAX ). - -While the function cannot be used directly to estimate the optimal vector size for DCT transform -(since the current DCT implementation supports only even-size vectors), it can be easily processed -as getOptimalDFTSize((vecsize+1)/2)\*2. -@param vecsize vector size. -@sa dft , dct , idft , idct , mulSpectrums -*/ -CV_EXPORTS_W int getOptimalDFTSize(int vecsize); - -/** @brief Returns the default random number generator. - -The function cv::theRNG returns the default random number generator. For each thread, there is a -separate random number generator, so you can use the function safely in multi-thread environments. -If you just need to get a single random number using this generator or initialize an array, you can -use randu or randn instead. But if you are going to generate many random numbers inside a loop, it -is much faster to use this function to retrieve the generator and then use RNG::operator _Tp() . -@sa RNG, randu, randn -*/ -CV_EXPORTS RNG& theRNG(); - -/** @brief Sets state of default random number generator. - -The function cv::setRNGSeed sets state of default random number generator to custom value. -@param seed new state for default random number generator -@sa RNG, randu, randn -*/ -CV_EXPORTS_W void setRNGSeed(int seed); - -/** @brief Generates a single uniformly-distributed random number or an array of random numbers. - -Non-template variant of the function fills the matrix dst with uniformly-distributed -random numbers from the specified range: -\f[\texttt{low} _c \leq \texttt{dst} (I)_c < \texttt{high} _c\f] -@param dst output array of random numbers; the array must be pre-allocated. -@param low inclusive lower boundary of the generated random numbers. -@param high exclusive upper boundary of the generated random numbers. -@sa RNG, randn, theRNG -*/ -CV_EXPORTS_W void randu(InputOutputArray dst, InputArray low, InputArray high); - -/** @brief Fills the array with normally distributed random numbers. - -The function cv::randn fills the matrix dst with normally distributed random numbers with the specified -mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the -value range of the output array data type. -@param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels. -@param mean mean value (expectation) of the generated random numbers. -@param stddev standard deviation of the generated random numbers; it can be either a vector (in -which case a diagonal standard deviation matrix is assumed) or a square matrix. -@sa RNG, randu -*/ -CV_EXPORTS_W void randn(InputOutputArray dst, InputArray mean, InputArray stddev); - -/** @brief Shuffles the array elements randomly. - -The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and -swapping them. The number of such swap operations will be dst.rows\*dst.cols\*iterFactor . -@param dst input/output numerical 1D array. -@param iterFactor scale factor that determines the number of random swap operations (see the details -below). -@param rng optional random number generator used for shuffling; if it is zero, theRNG () is used -instead. -@sa RNG, sort -*/ -CV_EXPORTS_W void randShuffle(InputOutputArray dst, double iterFactor = 1., RNG* rng = 0); - -/** @brief Principal Component Analysis - -The class is used to calculate a special basis for a set of vectors. The -basis will consist of eigenvectors of the covariance matrix calculated -from the input set of vectors. The class %PCA can also transform -vectors to/from the new coordinate space defined by the basis. Usually, -in this new coordinate system, each vector from the original set (and -any linear combination of such vectors) can be quite accurately -approximated by taking its first few components, corresponding to the -eigenvectors of the largest eigenvalues of the covariance matrix. -Geometrically it means that you calculate a projection of the vector to -a subspace formed by a few eigenvectors corresponding to the dominant -eigenvalues of the covariance matrix. And usually such a projection is -very close to the original vector. So, you can represent the original -vector from a high-dimensional space with a much shorter vector -consisting of the projected vector's coordinates in the subspace. Such a -transformation is also known as Karhunen-Loeve Transform, or KLT. -See http://en.wikipedia.org/wiki/Principal_component_analysis - -The sample below is the function that takes two matrices. The first -function stores a set of vectors (a row per vector) that is used to -calculate PCA. The second function stores another "test" set of vectors -(a row per vector). First, these vectors are compressed with PCA, then -reconstructed back, and then the reconstruction error norm is computed -and printed for each vector. : - -@code{.cpp} -using namespace cv; - -PCA compressPCA(const Mat& pcaset, int maxComponents, - const Mat& testset, Mat& compressed) -{ - PCA pca(pcaset, // pass the data - Mat(), // we do not have a pre-computed mean vector, - // so let the PCA engine to compute it - PCA::DATA_AS_ROW, // indicate that the vectors - // are stored as matrix rows - // (use PCA::DATA_AS_COL if the vectors are - // the matrix columns) - maxComponents // specify, how many principal components to retain - ); - // if there is no test data, just return the computed basis, ready-to-use - if( !testset.data ) - return pca; - CV_Assert( testset.cols == pcaset.cols ); - - compressed.create(testset.rows, maxComponents, testset.type()); - - Mat reconstructed; - for( int i = 0; i < testset.rows; i++ ) - { - Mat vec = testset.row(i), coeffs = compressed.row(i), reconstructed; - // compress the vector, the result will be stored - // in the i-th row of the output matrix - pca.project(vec, coeffs); - // and then reconstruct it - pca.backProject(coeffs, reconstructed); - // and measure the error - printf("%d. diff = %g\n", i, norm(vec, reconstructed, NORM_L2)); - } - return pca; -} -@endcode -@sa calcCovarMatrix, mulTransposed, SVD, dft, dct -*/ -class CV_EXPORTS PCA -{ -public: - enum Flags { DATA_AS_ROW = 0, //!< indicates that the input samples are stored as matrix rows - DATA_AS_COL = 1, //!< indicates that the input samples are stored as matrix columns - USE_AVG = 2 //! - }; - - /** @brief default constructor - - The default constructor initializes an empty %PCA structure. The other - constructors initialize the structure and call PCA::operator()(). - */ - PCA(); - - /** @overload - @param data input samples stored as matrix rows or matrix columns. - @param mean optional mean value; if the matrix is empty (@c noArray()), - the mean is computed from the data. - @param flags operation flags; currently the parameter is only used to - specify the data layout (PCA::Flags) - @param maxComponents maximum number of components that %PCA should - retain; by default, all the components are retained. - */ - PCA(InputArray data, InputArray mean, int flags, int maxComponents = 0); - - /** @overload - @param data input samples stored as matrix rows or matrix columns. - @param mean optional mean value; if the matrix is empty (noArray()), - the mean is computed from the data. - @param flags operation flags; currently the parameter is only used to - specify the data layout (PCA::Flags) - @param retainedVariance Percentage of variance that PCA should retain. - Using this parameter will let the PCA decided how many components to - retain but it will always keep at least 2. - */ - PCA(InputArray data, InputArray mean, int flags, double retainedVariance); - - /** @brief performs %PCA - - The operator performs %PCA of the supplied dataset. It is safe to reuse - the same PCA structure for multiple datasets. That is, if the structure - has been previously used with another dataset, the existing internal - data is reclaimed and the new @ref eigenvalues, @ref eigenvectors and @ref - mean are allocated and computed. - - The computed @ref eigenvalues are sorted from the largest to the smallest and - the corresponding @ref eigenvectors are stored as eigenvectors rows. - - @param data input samples stored as the matrix rows or as the matrix - columns. - @param mean optional mean value; if the matrix is empty (noArray()), - the mean is computed from the data. - @param flags operation flags; currently the parameter is only used to - specify the data layout. (Flags) - @param maxComponents maximum number of components that PCA should - retain; by default, all the components are retained. - */ - PCA& operator()(InputArray data, InputArray mean, int flags, int maxComponents = 0); - - /** @overload - @param data input samples stored as the matrix rows or as the matrix - columns. - @param mean optional mean value; if the matrix is empty (noArray()), - the mean is computed from the data. - @param flags operation flags; currently the parameter is only used to - specify the data layout. (PCA::Flags) - @param retainedVariance Percentage of variance that %PCA should retain. - Using this parameter will let the %PCA decided how many components to - retain but it will always keep at least 2. - */ - PCA& operator()(InputArray data, InputArray mean, int flags, double retainedVariance); - - /** @brief Projects vector(s) to the principal component subspace. - - The methods project one or more vectors to the principal component - subspace, where each vector projection is represented by coefficients in - the principal component basis. The first form of the method returns the - matrix that the second form writes to the result. So the first form can - be used as a part of expression while the second form can be more - efficient in a processing loop. - @param vec input vector(s); must have the same dimensionality and the - same layout as the input data used at %PCA phase, that is, if - DATA_AS_ROW are specified, then `vec.cols==data.cols` - (vector dimensionality) and `vec.rows` is the number of vectors to - project, and the same is true for the PCA::DATA_AS_COL case. - */ - Mat project(InputArray vec) const; - - /** @overload - @param vec input vector(s); must have the same dimensionality and the - same layout as the input data used at PCA phase, that is, if - DATA_AS_ROW are specified, then `vec.cols==data.cols` - (vector dimensionality) and `vec.rows` is the number of vectors to - project, and the same is true for the PCA::DATA_AS_COL case. - @param result output vectors; in case of PCA::DATA_AS_COL, the - output matrix has as many columns as the number of input vectors, this - means that `result.cols==vec.cols` and the number of rows match the - number of principal components (for example, `maxComponents` parameter - passed to the constructor). - */ - void project(InputArray vec, OutputArray result) const; - - /** @brief Reconstructs vectors from their PC projections. - - The methods are inverse operations to PCA::project. They take PC - coordinates of projected vectors and reconstruct the original vectors. - Unless all the principal components have been retained, the - reconstructed vectors are different from the originals. But typically, - the difference is small if the number of components is large enough (but - still much smaller than the original vector dimensionality). As a - result, PCA is used. - @param vec coordinates of the vectors in the principal component - subspace, the layout and size are the same as of PCA::project output - vectors. - */ - Mat backProject(InputArray vec) const; - - /** @overload - @param vec coordinates of the vectors in the principal component - subspace, the layout and size are the same as of PCA::project output - vectors. - @param result reconstructed vectors; the layout and size are the same as - of PCA::project input vectors. - */ - void backProject(InputArray vec, OutputArray result) const; - - /** @brief write PCA objects - - Writes @ref eigenvalues @ref eigenvectors and @ref mean to specified FileStorage - */ - void write(FileStorage& fs) const; - - /** @brief load PCA objects - - Loads @ref eigenvalues @ref eigenvectors and @ref mean from specified FileNode - */ - void read(const FileNode& fn); - - Mat eigenvectors; //!< eigenvectors of the covariation matrix - Mat eigenvalues; //!< eigenvalues of the covariation matrix - Mat mean; //!< mean value subtracted before the projection and added after the back projection -}; - -/** @example pca.cpp - An example using %PCA for dimensionality reduction while maintaining an amount of variance - */ - -/** - @brief Linear Discriminant Analysis - @todo document this class - */ -class CV_EXPORTS LDA -{ -public: - /** @brief constructor - Initializes a LDA with num_components (default 0). - */ - explicit LDA(int num_components = 0); - - /** Initializes and performs a Discriminant Analysis with Fisher's - Optimization Criterion on given data in src and corresponding labels - in labels. If 0 (or less) number of components are given, they are - automatically determined for given data in computation. - */ - LDA(InputArrayOfArrays src, InputArray labels, int num_components = 0); - - /** Serializes this object to a given filename. - */ - void save(const String& filename) const; - - /** Deserializes this object from a given filename. - */ - void load(const String& filename); - - /** Serializes this object to a given cv::FileStorage. - */ - void save(FileStorage& fs) const; - - /** Deserializes this object from a given cv::FileStorage. - */ - void load(const FileStorage& node); - - /** destructor - */ - ~LDA(); - - /** Compute the discriminants for data in src (row aligned) and labels. - */ - void compute(InputArrayOfArrays src, InputArray labels); - - /** Projects samples into the LDA subspace. - src may be one or more row aligned samples. - */ - Mat project(InputArray src); - - /** Reconstructs projections from the LDA subspace. - src may be one or more row aligned projections. - */ - Mat reconstruct(InputArray src); - - /** Returns the eigenvectors of this LDA. - */ - Mat eigenvectors() const { return _eigenvectors; } - - /** Returns the eigenvalues of this LDA. - */ - Mat eigenvalues() const { return _eigenvalues; } - - static Mat subspaceProject(InputArray W, InputArray mean, InputArray src); - static Mat subspaceReconstruct(InputArray W, InputArray mean, InputArray src); - -protected: - bool _dataAsRow; // unused, but needed for 3.0 ABI compatibility. - int _num_components; - Mat _eigenvectors; - Mat _eigenvalues; - void lda(InputArrayOfArrays src, InputArray labels); -}; - -/** @brief Singular Value Decomposition - -Class for computing Singular Value Decomposition of a floating-point -matrix. The Singular Value Decomposition is used to solve least-square -problems, under-determined linear systems, invert matrices, compute -condition numbers, and so on. - -If you want to compute a condition number of a matrix or an absolute value of -its determinant, you do not need `u` and `vt`. You can pass -flags=SVD::NO_UV|... . Another flag SVD::FULL_UV indicates that full-size u -and vt must be computed, which is not necessary most of the time. - -@sa invert, solve, eigen, determinant -*/ -class CV_EXPORTS SVD -{ -public: - enum Flags { - /** allow the algorithm to modify the decomposed matrix; it can save space and speed up - processing. currently ignored. */ - MODIFY_A = 1, - /** indicates that only a vector of singular values `w` is to be processed, while u and vt - will be set to empty matrices */ - NO_UV = 2, - /** when the matrix is not square, by default the algorithm produces u and vt matrices of - sufficiently large size for the further A reconstruction; if, however, FULL_UV flag is - specified, u and vt will be full-size square orthogonal matrices.*/ - FULL_UV = 4 - }; - - /** @brief the default constructor - - initializes an empty SVD structure - */ - SVD(); - - /** @overload - initializes an empty SVD structure and then calls SVD::operator() - @param src decomposed matrix. - @param flags operation flags (SVD::Flags) - */ - SVD( InputArray src, int flags = 0 ); - - /** @brief the operator that performs SVD. The previously allocated u, w and vt are released. - - The operator performs the singular value decomposition of the supplied - matrix. The u,`vt` , and the vector of singular values w are stored in - the structure. The same SVD structure can be reused many times with - different matrices. Each time, if needed, the previous u,`vt` , and w - are reclaimed and the new matrices are created, which is all handled by - Mat::create. - @param src decomposed matrix. - @param flags operation flags (SVD::Flags) - */ - SVD& operator ()( InputArray src, int flags = 0 ); - - /** @brief decomposes matrix and stores the results to user-provided matrices - - The methods/functions perform SVD of matrix. Unlike SVD::SVD constructor - and SVD::operator(), they store the results to the user-provided - matrices: - - @code{.cpp} - Mat A, w, u, vt; - SVD::compute(A, w, u, vt); - @endcode - - @param src decomposed matrix - @param w calculated singular values - @param u calculated left singular vectors - @param vt transposed matrix of right singular values - @param flags operation flags - see SVD::SVD. - */ - static void compute( InputArray src, OutputArray w, - OutputArray u, OutputArray vt, int flags = 0 ); - - /** @overload - computes singular values of a matrix - @param src decomposed matrix - @param w calculated singular values - @param flags operation flags - see SVD::Flags. - */ - static void compute( InputArray src, OutputArray w, int flags = 0 ); - - /** @brief performs back substitution - */ - static void backSubst( InputArray w, InputArray u, - InputArray vt, InputArray rhs, - OutputArray dst ); - - /** @brief solves an under-determined singular linear system - - The method finds a unit-length solution x of a singular linear system - A\*x = 0. Depending on the rank of A, there can be no solutions, a - single solution or an infinite number of solutions. In general, the - algorithm solves the following problem: - \f[dst = \arg \min _{x: \| x \| =1} \| src \cdot x \|\f] - @param src left-hand-side matrix. - @param dst found solution. - */ - static void solveZ( InputArray src, OutputArray dst ); - - /** @brief performs a singular value back substitution. - - The method calculates a back substitution for the specified right-hand - side: - - \f[\texttt{x} = \texttt{vt} ^T \cdot diag( \texttt{w} )^{-1} \cdot \texttt{u} ^T \cdot \texttt{rhs} \sim \texttt{A} ^{-1} \cdot \texttt{rhs}\f] - - Using this technique you can either get a very accurate solution of the - convenient linear system, or the best (in the least-squares terms) - pseudo-solution of an overdetermined linear system. - - @param rhs right-hand side of a linear system (u\*w\*v')\*dst = rhs to - be solved, where A has been previously decomposed. - - @param dst found solution of the system. - - @note Explicit SVD with the further back substitution only makes sense - if you need to solve many linear systems with the same left-hand side - (for example, src ). If all you need is to solve a single system - (possibly with multiple rhs immediately available), simply call solve - add pass DECOMP_SVD there. It does absolutely the same thing. - */ - void backSubst( InputArray rhs, OutputArray dst ) const; - - /** @todo document */ - template static - void compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w, Matx<_Tp, m, nm>& u, Matx<_Tp, n, nm>& vt ); - - /** @todo document */ - template static - void compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w ); - - /** @todo document */ - template static - void backSubst( const Matx<_Tp, nm, 1>& w, const Matx<_Tp, m, nm>& u, const Matx<_Tp, n, nm>& vt, const Matx<_Tp, m, nb>& rhs, Matx<_Tp, n, nb>& dst ); - - Mat u, w, vt; -}; - -/** @brief Random Number Generator - -Random number generator. It encapsulates the state (currently, a 64-bit -integer) and has methods to return scalar random values and to fill -arrays with random values. Currently it supports uniform and Gaussian -(normal) distributions. The generator uses Multiply-With-Carry -algorithm, introduced by G. Marsaglia ( - ). -Gaussian-distribution random numbers are generated using the Ziggurat -algorithm ( ), -introduced by G. Marsaglia and W. W. Tsang. -*/ -class CV_EXPORTS RNG -{ -public: - enum { UNIFORM = 0, - NORMAL = 1 - }; - - /** @brief constructor - - These are the RNG constructors. The first form sets the state to some - pre-defined value, equal to 2\*\*32-1 in the current implementation. The - second form sets the state to the specified value. If you passed state=0 - , the constructor uses the above default value instead to avoid the - singular random number sequence, consisting of all zeros. - */ - RNG(); - /** @overload - @param state 64-bit value used to initialize the RNG. - */ - RNG(uint64 state); - /**The method updates the state using the MWC algorithm and returns the - next 32-bit random number.*/ - unsigned next(); - - /**Each of the methods updates the state using the MWC algorithm and - returns the next random number of the specified type. In case of integer - types, the returned number is from the available value range for the - specified type. In case of floating-point types, the returned value is - from [0,1) range. - */ - operator uchar(); - /** @overload */ - operator schar(); - /** @overload */ - operator ushort(); - /** @overload */ - operator short(); - /** @overload */ - operator unsigned(); - /** @overload */ - operator int(); - /** @overload */ - operator float(); - /** @overload */ - operator double(); - - /** @brief returns a random integer sampled uniformly from [0, N). - - The methods transform the state using the MWC algorithm and return the - next random number. The first form is equivalent to RNG::next . The - second form returns the random number modulo N , which means that the - result is in the range [0, N) . - */ - unsigned operator ()(); - /** @overload - @param N upper non-inclusive boundary of the returned random number. - */ - unsigned operator ()(unsigned N); - - /** @brief returns uniformly distributed integer random number from [a,b) range - - The methods transform the state using the MWC algorithm and return the - next uniformly-distributed random number of the specified type, deduced - from the input parameter type, from the range [a, b) . There is a nuance - illustrated by the following sample: - - @code{.cpp} - RNG rng; - - // always produces 0 - double a = rng.uniform(0, 1); - - // produces double from [0, 1) - double a1 = rng.uniform((double)0, (double)1); - - // produces float from [0, 1) - float b = rng.uniform(0.f, 1.f); - - // produces double from [0, 1) - double c = rng.uniform(0., 1.); - - // may cause compiler error because of ambiguity: - // RNG::uniform(0, (int)0.999999)? or RNG::uniform((double)0, 0.99999)? - double d = rng.uniform(0, 0.999999); - @endcode - - The compiler does not take into account the type of the variable to - which you assign the result of RNG::uniform . The only thing that - matters to the compiler is the type of a and b parameters. So, if you - want a floating-point random number, but the range boundaries are - integer numbers, either put dots in the end, if they are constants, or - use explicit type cast operators, as in the a1 initialization above. - @param a lower inclusive boundary of the returned random number. - @param b upper non-inclusive boundary of the returned random number. - */ - int uniform(int a, int b); - /** @overload */ - float uniform(float a, float b); - /** @overload */ - double uniform(double a, double b); - - /** @brief Fills arrays with random numbers. - - @param mat 2D or N-dimensional matrix; currently matrices with more than - 4 channels are not supported by the methods, use Mat::reshape as a - possible workaround. - @param distType distribution type, RNG::UNIFORM or RNG::NORMAL. - @param a first distribution parameter; in case of the uniform - distribution, this is an inclusive lower boundary, in case of the normal - distribution, this is a mean value. - @param b second distribution parameter; in case of the uniform - distribution, this is a non-inclusive upper boundary, in case of the - normal distribution, this is a standard deviation (diagonal of the - standard deviation matrix or the full standard deviation matrix). - @param saturateRange pre-saturation flag; for uniform distribution only; - if true, the method will first convert a and b to the acceptable value - range (according to the mat datatype) and then will generate uniformly - distributed random numbers within the range [saturate(a), saturate(b)), - if saturateRange=false, the method will generate uniformly distributed - random numbers in the original range [a, b) and then will saturate them, - it means, for example, that - theRNG().fill(mat_8u, RNG::UNIFORM, -DBL_MAX, DBL_MAX) will likely - produce array mostly filled with 0's and 255's, since the range (0, 255) - is significantly smaller than [-DBL_MAX, DBL_MAX). - - Each of the methods fills the matrix with the random values from the - specified distribution. As the new numbers are generated, the RNG state - is updated accordingly. In case of multiple-channel images, every - channel is filled independently, which means that RNG cannot generate - samples from the multi-dimensional Gaussian distribution with - non-diagonal covariance matrix directly. To do that, the method - generates samples from multi-dimensional standard Gaussian distribution - with zero mean and identity covariation matrix, and then transforms them - using transform to get samples from the specified Gaussian distribution. - */ - void fill( InputOutputArray mat, int distType, InputArray a, InputArray b, bool saturateRange = false ); - - /** @brief Returns the next random number sampled from the Gaussian distribution - @param sigma standard deviation of the distribution. - - The method transforms the state using the MWC algorithm and returns the - next random number from the Gaussian distribution N(0,sigma) . That is, - the mean value of the returned random numbers is zero and the standard - deviation is the specified sigma . - */ - double gaussian(double sigma); - - uint64 state; - - bool operator ==(const RNG& other) const; -}; - -/** @brief Mersenne Twister random number generator - -Inspired by http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c -@todo document - */ -class CV_EXPORTS RNG_MT19937 -{ -public: - RNG_MT19937(); - RNG_MT19937(unsigned s); - void seed(unsigned s); - - unsigned next(); - - operator int(); - operator unsigned(); - operator float(); - operator double(); - - unsigned operator ()(unsigned N); - unsigned operator ()(); - - /** @brief returns uniformly distributed integer random number from [a,b) range - -*/ - int uniform(int a, int b); - /** @brief returns uniformly distributed floating-point random number from [a,b) range - -*/ - float uniform(float a, float b); - /** @brief returns uniformly distributed double-precision floating-point random number from [a,b) range - -*/ - double uniform(double a, double b); - -private: - enum PeriodParameters {N = 624, M = 397}; - unsigned state[N]; - int mti; -}; - -//! @} core_array - -//! @addtogroup core_cluster -//! @{ - -/** @example kmeans.cpp - An example on K-means clustering -*/ - -/** @brief Finds centers of clusters and groups input samples around the clusters. - -The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters -and groups the input samples around the clusters. As an output, \f$\texttt{labels}_i\f$ contains a -0-based cluster index for the sample stored in the \f$i^{th}\f$ row of the samples matrix. - -@note -- (Python) An example on K-means clustering can be found at - opencv_source_code/samples/python/kmeans.py -@param data Data for clustering. An array of N-Dimensional points with float coordinates is needed. -Examples of this array can be: -- Mat points(count, 2, CV_32F); -- Mat points(count, 1, CV_32FC2); -- Mat points(1, count, CV_32FC2); -- std::vector\ points(sampleCount); -@param K Number of clusters to split the set by. -@param bestLabels Input/output integer array that stores the cluster indices for every sample. -@param criteria The algorithm termination criteria, that is, the maximum number of iterations and/or -the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster -centers moves by less than criteria.epsilon on some iteration, the algorithm stops. -@param attempts Flag to specify the number of times the algorithm is executed using different -initial labellings. The algorithm returns the labels that yield the best compactness (see the last -function parameter). -@param flags Flag that can take values of cv::KmeansFlags -@param centers Output matrix of the cluster centers, one row per each cluster center. -@return The function returns the compactness measure that is computed as -\f[\sum _i \| \texttt{samples} _i - \texttt{centers} _{ \texttt{labels} _i} \| ^2\f] -after every attempt. The best (minimum) value is chosen and the corresponding labels and the -compactness value are returned by the function. Basically, you can use only the core of the -function, set the number of attempts to 1, initialize labels each time using a custom algorithm, -pass them with the ( flags = KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best -(most-compact) clustering. -*/ -CV_EXPORTS_W double kmeans( InputArray data, int K, InputOutputArray bestLabels, - TermCriteria criteria, int attempts, - int flags, OutputArray centers = noArray() ); - -//! @} core_cluster - -//! @addtogroup core_basic -//! @{ - -/////////////////////////////// Formatted output of cv::Mat /////////////////////////// - -/** @todo document */ -class CV_EXPORTS Formatted -{ -public: - virtual const char* next() = 0; - virtual void reset() = 0; - virtual ~Formatted(); -}; - -/** @todo document */ -class CV_EXPORTS Formatter -{ -public: - enum { FMT_DEFAULT = 0, - FMT_MATLAB = 1, - FMT_CSV = 2, - FMT_PYTHON = 3, - FMT_NUMPY = 4, - FMT_C = 5 - }; - - virtual ~Formatter(); - - virtual Ptr format(const Mat& mtx) const = 0; - - virtual void set32fPrecision(int p = 8) = 0; - virtual void set64fPrecision(int p = 16) = 0; - virtual void setMultiline(bool ml = true) = 0; - - static Ptr get(int fmt = FMT_DEFAULT); - -}; - -static inline -String& operator << (String& out, Ptr fmtd) -{ - fmtd->reset(); - for(const char* str = fmtd->next(); str; str = fmtd->next()) - out += cv::String(str); - return out; -} - -static inline -String& operator << (String& out, const Mat& mtx) -{ - return out << Formatter::get()->format(mtx); -} - -//////////////////////////////////////// Algorithm //////////////////////////////////// - -class CV_EXPORTS Algorithm; - -template struct ParamType {}; - - -/** @brief This is a base class for all more or less complex algorithms in OpenCV - -especially for classes of algorithms, for which there can be multiple implementations. The examples -are stereo correspondence (for which there are algorithms like block matching, semi-global block -matching, graph-cut etc.), background subtraction (which can be done using mixture-of-gaussians -models, codebook-based algorithm etc.), optical flow (block matching, Lucas-Kanade, Horn-Schunck -etc.). - -Here is example of SIFT use in your application via Algorithm interface: -@code - #include "opencv2/opencv.hpp" - #include "opencv2/xfeatures2d.hpp" - using namespace cv::xfeatures2d; - - Ptr sift = SIFT::create(); - FileStorage fs("sift_params.xml", FileStorage::READ); - if( fs.isOpened() ) // if we have file with parameters, read them - { - sift->read(fs["sift_params"]); - fs.release(); - } - else // else modify the parameters and store them; user can later edit the file to use different parameters - { - sift->setContrastThreshold(0.01f); // lower the contrast threshold, compared to the default value - { - WriteStructContext ws(fs, "sift_params", CV_NODE_MAP); - sift->write(fs); - } - } - Mat image = imread("myimage.png", 0), descriptors; - vector keypoints; - sift->detectAndCompute(image, noArray(), keypoints, descriptors); -@endcode - */ -class CV_EXPORTS_W Algorithm -{ -public: - Algorithm(); - virtual ~Algorithm(); - - /** @brief Clears the algorithm state - */ - CV_WRAP virtual void clear() {} - - /** @brief Stores algorithm parameters in a file storage - */ - virtual void write(FileStorage& fs) const { (void)fs; } - - /** @brief simplified API for language bindings - * @overload - */ - CV_WRAP void write(const Ptr& fs, const String& name = String()) const; - - /** @brief Reads algorithm parameters from a file storage - */ - CV_WRAP virtual void read(const FileNode& fn) { (void)fn; } - - /** @brief Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read - */ - CV_WRAP virtual bool empty() const { return false; } - - /** @brief Reads algorithm from the file node - - This is static template method of Algorithm. It's usage is following (in the case of SVM): - @code - cv::FileStorage fsRead("example.xml", FileStorage::READ); - Ptr svm = Algorithm::read(fsRead.root()); - @endcode - In order to make this method work, the derived class must overwrite Algorithm::read(const - FileNode& fn) and also have static create() method without parameters - (or with all the optional parameters) - */ - template static Ptr<_Tp> read(const FileNode& fn) - { - Ptr<_Tp> obj = _Tp::create(); - obj->read(fn); - return !obj->empty() ? obj : Ptr<_Tp>(); - } - - /** @brief Loads algorithm from the file - - @param filename Name of the file to read. - @param objname The optional name of the node to read (if empty, the first top-level node will be used) - - This is static template method of Algorithm. It's usage is following (in the case of SVM): - @code - Ptr svm = Algorithm::load("my_svm_model.xml"); - @endcode - In order to make this method work, the derived class must overwrite Algorithm::read(const - FileNode& fn). - */ - template static Ptr<_Tp> load(const String& filename, const String& objname=String()) - { - FileStorage fs(filename, FileStorage::READ); - CV_Assert(fs.isOpened()); - FileNode fn = objname.empty() ? fs.getFirstTopLevelNode() : fs[objname]; - if (fn.empty()) return Ptr<_Tp>(); - Ptr<_Tp> obj = _Tp::create(); - obj->read(fn); - return !obj->empty() ? obj : Ptr<_Tp>(); - } - - /** @brief Loads algorithm from a String - - @param strModel The string variable containing the model you want to load. - @param objname The optional name of the node to read (if empty, the first top-level node will be used) - - This is static template method of Algorithm. It's usage is following (in the case of SVM): - @code - Ptr svm = Algorithm::loadFromString(myStringModel); - @endcode - */ - template static Ptr<_Tp> loadFromString(const String& strModel, const String& objname=String()) - { - FileStorage fs(strModel, FileStorage::READ + FileStorage::MEMORY); - FileNode fn = objname.empty() ? fs.getFirstTopLevelNode() : fs[objname]; - Ptr<_Tp> obj = _Tp::create(); - obj->read(fn); - return !obj->empty() ? obj : Ptr<_Tp>(); - } - - /** Saves the algorithm to a file. - In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs). */ - CV_WRAP virtual void save(const String& filename) const; - - /** Returns the algorithm string identifier. - This string is used as top level xml/yml node tag when the object is saved to a file or string. */ - CV_WRAP virtual String getDefaultName() const; - -protected: - void writeFormat(FileStorage& fs) const; -}; - -struct Param { - enum { INT=0, BOOLEAN=1, REAL=2, STRING=3, MAT=4, MAT_VECTOR=5, ALGORITHM=6, FLOAT=7, - UNSIGNED_INT=8, UINT64=9, UCHAR=11 }; -}; - - - -template<> struct ParamType -{ - typedef bool const_param_type; - typedef bool member_type; - - enum { type = Param::BOOLEAN }; -}; - -template<> struct ParamType -{ - typedef int const_param_type; - typedef int member_type; - - enum { type = Param::INT }; -}; - -template<> struct ParamType -{ - typedef double const_param_type; - typedef double member_type; - - enum { type = Param::REAL }; -}; - -template<> struct ParamType -{ - typedef const String& const_param_type; - typedef String member_type; - - enum { type = Param::STRING }; -}; - -template<> struct ParamType -{ - typedef const Mat& const_param_type; - typedef Mat member_type; - - enum { type = Param::MAT }; -}; - -template<> struct ParamType > -{ - typedef const std::vector& const_param_type; - typedef std::vector member_type; - - enum { type = Param::MAT_VECTOR }; -}; - -template<> struct ParamType -{ - typedef const Ptr& const_param_type; - typedef Ptr member_type; - - enum { type = Param::ALGORITHM }; -}; - -template<> struct ParamType -{ - typedef float const_param_type; - typedef float member_type; - - enum { type = Param::FLOAT }; -}; - -template<> struct ParamType -{ - typedef unsigned const_param_type; - typedef unsigned member_type; - - enum { type = Param::UNSIGNED_INT }; -}; - -template<> struct ParamType -{ - typedef uint64 const_param_type; - typedef uint64 member_type; - - enum { type = Param::UINT64 }; -}; - -template<> struct ParamType -{ - typedef uchar const_param_type; - typedef uchar member_type; - - enum { type = Param::UCHAR }; -}; - -//! @} core_basic - -} //namespace cv - -#include "opencv2/core/operations.hpp" -#include "opencv2/core/cvstd.inl.hpp" -#include "opencv2/core/utility.hpp" -#include "opencv2/core/optim.hpp" -#include "opencv2/core/ovx.hpp" - -#endif /*OPENCV_CORE_HPP*/ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/affine.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/affine.hpp deleted file mode 100644 index 443097a52..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/affine.hpp +++ /dev/null @@ -1,528 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_AFFINE3_HPP -#define OPENCV_CORE_AFFINE3_HPP - -#ifdef __cplusplus - -#include - -namespace cv -{ - -//! @addtogroup core -//! @{ - - /** @brief Affine transform - @todo document - */ - template - class Affine3 - { - public: - typedef T float_type; - typedef Matx Mat3; - typedef Matx Mat4; - typedef Vec Vec3; - - Affine3(); - - //! Augmented affine matrix - Affine3(const Mat4& affine); - - //! Rotation matrix - Affine3(const Mat3& R, const Vec3& t = Vec3::all(0)); - - //! Rodrigues vector - Affine3(const Vec3& rvec, const Vec3& t = Vec3::all(0)); - - //! Combines all contructors above. Supports 4x4, 4x3, 3x3, 1x3, 3x1 sizes of data matrix - explicit Affine3(const Mat& data, const Vec3& t = Vec3::all(0)); - - //! From 16th element array - explicit Affine3(const float_type* vals); - - //! Create identity transform - static Affine3 Identity(); - - //! Rotation matrix - void rotation(const Mat3& R); - - //! Rodrigues vector - void rotation(const Vec3& rvec); - - //! Combines rotation methods above. Suports 3x3, 1x3, 3x1 sizes of data matrix; - void rotation(const Mat& data); - - void linear(const Mat3& L); - void translation(const Vec3& t); - - Mat3 rotation() const; - Mat3 linear() const; - Vec3 translation() const; - - //! Rodrigues vector - Vec3 rvec() const; - - Affine3 inv(int method = cv::DECOMP_SVD) const; - - //! a.rotate(R) is equivalent to Affine(R, 0) * a; - Affine3 rotate(const Mat3& R) const; - - //! a.rotate(rvec) is equivalent to Affine(rvec, 0) * a; - Affine3 rotate(const Vec3& rvec) const; - - //! a.translate(t) is equivalent to Affine(E, t) * a; - Affine3 translate(const Vec3& t) const; - - //! a.concatenate(affine) is equivalent to affine * a; - Affine3 concatenate(const Affine3& affine) const; - - template operator Affine3() const; - - template Affine3 cast() const; - - Mat4 matrix; - -#if defined EIGEN_WORLD_VERSION && defined EIGEN_GEOMETRY_MODULE_H - Affine3(const Eigen::Transform& affine); - Affine3(const Eigen::Transform& affine); - operator Eigen::Transform() const; - operator Eigen::Transform() const; -#endif - }; - - template static - Affine3 operator*(const Affine3& affine1, const Affine3& affine2); - - template static - V operator*(const Affine3& affine, const V& vector); - - typedef Affine3 Affine3f; - typedef Affine3 Affine3d; - - static Vec3f operator*(const Affine3f& affine, const Vec3f& vector); - static Vec3d operator*(const Affine3d& affine, const Vec3d& vector); - - template class DataType< Affine3<_Tp> > - { - public: - typedef Affine3<_Tp> value_type; - typedef Affine3::work_type> work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 16, - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; - }; - - namespace traits { - template - struct Depth< Affine3<_Tp> > { enum { value = Depth<_Tp>::value }; }; - template - struct Type< Affine3<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 16) }; }; - } // namespace - -//! @} core - -} - -//! @cond IGNORED - -/////////////////////////////////////////////////////////////////////////////////// -// Implementaiton - -template inline -cv::Affine3::Affine3() - : matrix(Mat4::eye()) -{} - -template inline -cv::Affine3::Affine3(const Mat4& affine) - : matrix(affine) -{} - -template inline -cv::Affine3::Affine3(const Mat3& R, const Vec3& t) -{ - rotation(R); - translation(t); - matrix.val[12] = matrix.val[13] = matrix.val[14] = 0; - matrix.val[15] = 1; -} - -template inline -cv::Affine3::Affine3(const Vec3& _rvec, const Vec3& t) -{ - rotation(_rvec); - translation(t); - matrix.val[12] = matrix.val[13] = matrix.val[14] = 0; - matrix.val[15] = 1; -} - -template inline -cv::Affine3::Affine3(const cv::Mat& data, const Vec3& t) -{ - CV_Assert(data.type() == cv::traits::Type::value); - - if (data.cols == 4 && data.rows == 4) - { - data.copyTo(matrix); - return; - } - else if (data.cols == 4 && data.rows == 3) - { - rotation(data(Rect(0, 0, 3, 3))); - translation(data(Rect(3, 0, 1, 3))); - } - else - { - rotation(data); - translation(t); - } - - matrix.val[12] = matrix.val[13] = matrix.val[14] = 0; - matrix.val[15] = 1; -} - -template inline -cv::Affine3::Affine3(const float_type* vals) : matrix(vals) -{} - -template inline -cv::Affine3 cv::Affine3::Identity() -{ - return Affine3(cv::Affine3::Mat4::eye()); -} - -template inline -void cv::Affine3::rotation(const Mat3& R) -{ - linear(R); -} - -template inline -void cv::Affine3::rotation(const Vec3& _rvec) -{ - double theta = norm(_rvec); - - if (theta < DBL_EPSILON) - rotation(Mat3::eye()); - else - { - double c = std::cos(theta); - double s = std::sin(theta); - double c1 = 1. - c; - double itheta = (theta != 0) ? 1./theta : 0.; - - Point3_ r = _rvec*itheta; - - Mat3 rrt( r.x*r.x, r.x*r.y, r.x*r.z, r.x*r.y, r.y*r.y, r.y*r.z, r.x*r.z, r.y*r.z, r.z*r.z ); - Mat3 r_x( 0, -r.z, r.y, r.z, 0, -r.x, -r.y, r.x, 0 ); - - // R = cos(theta)*I + (1 - cos(theta))*r*rT + sin(theta)*[r_x] - // where [r_x] is [0 -rz ry; rz 0 -rx; -ry rx 0] - Mat3 R = c*Mat3::eye() + c1*rrt + s*r_x; - - rotation(R); - } -} - -//Combines rotation methods above. Suports 3x3, 1x3, 3x1 sizes of data matrix; -template inline -void cv::Affine3::rotation(const cv::Mat& data) -{ - CV_Assert(data.type() == cv::traits::Type::value); - - if (data.cols == 3 && data.rows == 3) - { - Mat3 R; - data.copyTo(R); - rotation(R); - } - else if ((data.cols == 3 && data.rows == 1) || (data.cols == 1 && data.rows == 3)) - { - Vec3 _rvec; - data.reshape(1, 3).copyTo(_rvec); - rotation(_rvec); - } - else - CV_Assert(!"Input marix can be 3x3, 1x3 or 3x1"); -} - -template inline -void cv::Affine3::linear(const Mat3& L) -{ - matrix.val[0] = L.val[0]; matrix.val[1] = L.val[1]; matrix.val[ 2] = L.val[2]; - matrix.val[4] = L.val[3]; matrix.val[5] = L.val[4]; matrix.val[ 6] = L.val[5]; - matrix.val[8] = L.val[6]; matrix.val[9] = L.val[7]; matrix.val[10] = L.val[8]; -} - -template inline -void cv::Affine3::translation(const Vec3& t) -{ - matrix.val[3] = t[0]; matrix.val[7] = t[1]; matrix.val[11] = t[2]; -} - -template inline -typename cv::Affine3::Mat3 cv::Affine3::rotation() const -{ - return linear(); -} - -template inline -typename cv::Affine3::Mat3 cv::Affine3::linear() const -{ - typename cv::Affine3::Mat3 R; - R.val[0] = matrix.val[0]; R.val[1] = matrix.val[1]; R.val[2] = matrix.val[ 2]; - R.val[3] = matrix.val[4]; R.val[4] = matrix.val[5]; R.val[5] = matrix.val[ 6]; - R.val[6] = matrix.val[8]; R.val[7] = matrix.val[9]; R.val[8] = matrix.val[10]; - return R; -} - -template inline -typename cv::Affine3::Vec3 cv::Affine3::translation() const -{ - return Vec3(matrix.val[3], matrix.val[7], matrix.val[11]); -} - -template inline -typename cv::Affine3::Vec3 cv::Affine3::rvec() const -{ - cv::Vec3d w; - cv::Matx33d u, vt, R = rotation(); - cv::SVD::compute(R, w, u, vt, cv::SVD::FULL_UV + cv::SVD::MODIFY_A); - R = u * vt; - - double rx = R.val[7] - R.val[5]; - double ry = R.val[2] - R.val[6]; - double rz = R.val[3] - R.val[1]; - - double s = std::sqrt((rx*rx + ry*ry + rz*rz)*0.25); - double c = (R.val[0] + R.val[4] + R.val[8] - 1) * 0.5; - c = c > 1.0 ? 1.0 : c < -1.0 ? -1.0 : c; - double theta = acos(c); - - if( s < 1e-5 ) - { - if( c > 0 ) - rx = ry = rz = 0; - else - { - double t; - t = (R.val[0] + 1) * 0.5; - rx = std::sqrt(std::max(t, 0.0)); - t = (R.val[4] + 1) * 0.5; - ry = std::sqrt(std::max(t, 0.0)) * (R.val[1] < 0 ? -1.0 : 1.0); - t = (R.val[8] + 1) * 0.5; - rz = std::sqrt(std::max(t, 0.0)) * (R.val[2] < 0 ? -1.0 : 1.0); - - if( fabs(rx) < fabs(ry) && fabs(rx) < fabs(rz) && (R.val[5] > 0) != (ry*rz > 0) ) - rz = -rz; - theta /= std::sqrt(rx*rx + ry*ry + rz*rz); - rx *= theta; - ry *= theta; - rz *= theta; - } - } - else - { - double vth = 1/(2*s); - vth *= theta; - rx *= vth; ry *= vth; rz *= vth; - } - - return cv::Vec3d(rx, ry, rz); -} - -template inline -cv::Affine3 cv::Affine3::inv(int method) const -{ - return matrix.inv(method); -} - -template inline -cv::Affine3 cv::Affine3::rotate(const Mat3& R) const -{ - Mat3 Lc = linear(); - Vec3 tc = translation(); - Mat4 result; - result.val[12] = result.val[13] = result.val[14] = 0; - result.val[15] = 1; - - for(int j = 0; j < 3; ++j) - { - for(int i = 0; i < 3; ++i) - { - float_type value = 0; - for(int k = 0; k < 3; ++k) - value += R(j, k) * Lc(k, i); - result(j, i) = value; - } - - result(j, 3) = R.row(j).dot(tc.t()); - } - return result; -} - -template inline -cv::Affine3 cv::Affine3::rotate(const Vec3& _rvec) const -{ - return rotate(Affine3f(_rvec).rotation()); -} - -template inline -cv::Affine3 cv::Affine3::translate(const Vec3& t) const -{ - Mat4 m = matrix; - m.val[ 3] += t[0]; - m.val[ 7] += t[1]; - m.val[11] += t[2]; - return m; -} - -template inline -cv::Affine3 cv::Affine3::concatenate(const Affine3& affine) const -{ - return (*this).rotate(affine.rotation()).translate(affine.translation()); -} - -template template inline -cv::Affine3::operator Affine3() const -{ - return Affine3(matrix); -} - -template template inline -cv::Affine3 cv::Affine3::cast() const -{ - return Affine3(matrix); -} - -template inline -cv::Affine3 cv::operator*(const cv::Affine3& affine1, const cv::Affine3& affine2) -{ - return affine2.concatenate(affine1); -} - -template inline -V cv::operator*(const cv::Affine3& affine, const V& v) -{ - const typename Affine3::Mat4& m = affine.matrix; - - V r; - r.x = m.val[0] * v.x + m.val[1] * v.y + m.val[ 2] * v.z + m.val[ 3]; - r.y = m.val[4] * v.x + m.val[5] * v.y + m.val[ 6] * v.z + m.val[ 7]; - r.z = m.val[8] * v.x + m.val[9] * v.y + m.val[10] * v.z + m.val[11]; - return r; -} - -static inline -cv::Vec3f cv::operator*(const cv::Affine3f& affine, const cv::Vec3f& v) -{ - const cv::Matx44f& m = affine.matrix; - cv::Vec3f r; - r.val[0] = m.val[0] * v[0] + m.val[1] * v[1] + m.val[ 2] * v[2] + m.val[ 3]; - r.val[1] = m.val[4] * v[0] + m.val[5] * v[1] + m.val[ 6] * v[2] + m.val[ 7]; - r.val[2] = m.val[8] * v[0] + m.val[9] * v[1] + m.val[10] * v[2] + m.val[11]; - return r; -} - -static inline -cv::Vec3d cv::operator*(const cv::Affine3d& affine, const cv::Vec3d& v) -{ - const cv::Matx44d& m = affine.matrix; - cv::Vec3d r; - r.val[0] = m.val[0] * v[0] + m.val[1] * v[1] + m.val[ 2] * v[2] + m.val[ 3]; - r.val[1] = m.val[4] * v[0] + m.val[5] * v[1] + m.val[ 6] * v[2] + m.val[ 7]; - r.val[2] = m.val[8] * v[0] + m.val[9] * v[1] + m.val[10] * v[2] + m.val[11]; - return r; -} - - - -#if defined EIGEN_WORLD_VERSION && defined EIGEN_GEOMETRY_MODULE_H - -template inline -cv::Affine3::Affine3(const Eigen::Transform& affine) -{ - cv::Mat(4, 4, cv::traits::Type::value, affine.matrix().data()).copyTo(matrix); -} - -template inline -cv::Affine3::Affine3(const Eigen::Transform& affine) -{ - Eigen::Transform a = affine; - cv::Mat(4, 4, cv::traits::Type::value, a.matrix().data()).copyTo(matrix); -} - -template inline -cv::Affine3::operator Eigen::Transform() const -{ - Eigen::Transform r; - cv::Mat hdr(4, 4, cv::traits::Type::value, r.matrix().data()); - cv::Mat(matrix, false).copyTo(hdr); - return r; -} - -template inline -cv::Affine3::operator Eigen::Transform() const -{ - return this->operator Eigen::Transform(); -} - -#endif /* defined EIGEN_WORLD_VERSION && defined EIGEN_GEOMETRY_MODULE_H */ - -//! @endcond - -#endif /* __cplusplus */ - -#endif /* OPENCV_CORE_AFFINE3_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/base.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/base.hpp deleted file mode 100644 index 05190927e..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/base.hpp +++ /dev/null @@ -1,761 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2014, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_BASE_HPP -#define OPENCV_CORE_BASE_HPP - -#ifndef __cplusplus -# error base.hpp header must be compiled as C++ -#endif - -#include "opencv2/opencv_modules.hpp" - -#include -#include - -#include "opencv2/core/cvdef.h" -#include "opencv2/core/cvstd.hpp" - -namespace cv -{ - -//! @addtogroup core_utils -//! @{ - -namespace Error { -//! error codes -enum Code { - StsOk= 0, //!< everything is ok - StsBackTrace= -1, //!< pseudo error for back trace - StsError= -2, //!< unknown /unspecified error - StsInternal= -3, //!< internal error (bad state) - StsNoMem= -4, //!< insufficient memory - StsBadArg= -5, //!< function arg/param is bad - StsBadFunc= -6, //!< unsupported function - StsNoConv= -7, //!< iteration didn't converge - StsAutoTrace= -8, //!< tracing - HeaderIsNull= -9, //!< image header is NULL - BadImageSize= -10, //!< image size is invalid - BadOffset= -11, //!< offset is invalid - BadDataPtr= -12, //!< - BadStep= -13, //!< image step is wrong, this may happen for a non-continuous matrix. - BadModelOrChSeq= -14, //!< - BadNumChannels= -15, //!< bad number of channels, for example, some functions accept only single channel matrices. - BadNumChannel1U= -16, //!< - BadDepth= -17, //!< input image depth is not supported by the function - BadAlphaChannel= -18, //!< - BadOrder= -19, //!< number of dimensions is out of range - BadOrigin= -20, //!< incorrect input origin - BadAlign= -21, //!< incorrect input align - BadCallBack= -22, //!< - BadTileSize= -23, //!< - BadCOI= -24, //!< input COI is not supported - BadROISize= -25, //!< incorrect input roi - MaskIsTiled= -26, //!< - StsNullPtr= -27, //!< null pointer - StsVecLengthErr= -28, //!< incorrect vector length - StsFilterStructContentErr= -29, //!< incorrect filter structure content - StsKernelStructContentErr= -30, //!< incorrect transform kernel content - StsFilterOffsetErr= -31, //!< incorrect filter offset value - StsBadSize= -201, //!< the input/output structure size is incorrect - StsDivByZero= -202, //!< division by zero - StsInplaceNotSupported= -203, //!< in-place operation is not supported - StsObjectNotFound= -204, //!< request can't be completed - StsUnmatchedFormats= -205, //!< formats of input/output arrays differ - StsBadFlag= -206, //!< flag is wrong or not supported - StsBadPoint= -207, //!< bad CvPoint - StsBadMask= -208, //!< bad format of mask (neither 8uC1 nor 8sC1) - StsUnmatchedSizes= -209, //!< sizes of input/output structures do not match - StsUnsupportedFormat= -210, //!< the data format/type is not supported by the function - StsOutOfRange= -211, //!< some of parameters are out of range - StsParseError= -212, //!< invalid syntax/structure of the parsed file - StsNotImplemented= -213, //!< the requested function/feature is not implemented - StsBadMemBlock= -214, //!< an allocated block has been corrupted - StsAssert= -215, //!< assertion failed - GpuNotSupported= -216, //!< no CUDA support - GpuApiCallError= -217, //!< GPU API call error - OpenGlNotSupported= -218, //!< no OpenGL support - OpenGlApiCallError= -219, //!< OpenGL API call error - OpenCLApiCallError= -220, //!< OpenCL API call error - OpenCLDoubleNotSupported= -221, - OpenCLInitError= -222, //!< OpenCL initialization error - OpenCLNoAMDBlasFft= -223 -}; -} //Error - -//! @} core_utils - -//! @addtogroup core_array -//! @{ - -//! matrix decomposition types -enum DecompTypes { - /** Gaussian elimination with the optimal pivot element chosen. */ - DECOMP_LU = 0, - /** singular value decomposition (SVD) method; the system can be over-defined and/or the matrix - src1 can be singular */ - DECOMP_SVD = 1, - /** eigenvalue decomposition; the matrix src1 must be symmetrical */ - DECOMP_EIG = 2, - /** Cholesky \f$LL^T\f$ factorization; the matrix src1 must be symmetrical and positively - defined */ - DECOMP_CHOLESKY = 3, - /** QR factorization; the system can be over-defined and/or the matrix src1 can be singular */ - DECOMP_QR = 4, - /** while all the previous flags are mutually exclusive, this flag can be used together with - any of the previous; it means that the normal equations - \f$\texttt{src1}^T\cdot\texttt{src1}\cdot\texttt{dst}=\texttt{src1}^T\texttt{src2}\f$ are - solved instead of the original system - \f$\texttt{src1}\cdot\texttt{dst}=\texttt{src2}\f$ */ - DECOMP_NORMAL = 16 -}; - -/** norm types - -src1 and src2 denote input arrays. -*/ - -enum NormTypes { - /** - \f[ - norm = \forkthree - {\|\texttt{src1}\|_{L_{\infty}} = \max _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) } - {\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} = \max _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_INF}\) } - {\frac{\|\texttt{src1}-\texttt{src2}\|_{L_{\infty}} }{\|\texttt{src2}\|_{L_{\infty}} }}{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_INF}\) } - \f] - */ - NORM_INF = 1, - /** - \f[ - norm = \forkthree - {\| \texttt{src1} \| _{L_1} = \sum _I | \texttt{src1} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\)} - { \| \texttt{src1} - \texttt{src2} \| _{L_1} = \sum _I | \texttt{src1} (I) - \texttt{src2} (I)|}{if \(\texttt{normType} = \texttt{NORM_L1}\) } - { \frac{\|\texttt{src1}-\texttt{src2}\|_{L_1} }{\|\texttt{src2}\|_{L_1}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L1}\) } - \f]*/ - NORM_L1 = 2, - /** - \f[ - norm = \forkthree - { \| \texttt{src1} \| _{L_2} = \sqrt{\sum_I \texttt{src1}(I)^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) } - { \| \texttt{src1} - \texttt{src2} \| _{L_2} = \sqrt{\sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2} }{if \(\texttt{normType} = \texttt{NORM_L2}\) } - { \frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}} }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) } - \f] - */ - NORM_L2 = 4, - /** - \f[ - norm = \forkthree - { \| \texttt{src1} \| _{L_2} ^{2} = \sum_I \texttt{src1}(I)^2} {if \(\texttt{normType} = \texttt{NORM_L2SQR}\)} - { \| \texttt{src1} - \texttt{src2} \| _{L_2} ^{2} = \sum_I (\texttt{src1}(I) - \texttt{src2}(I))^2 }{if \(\texttt{normType} = \texttt{NORM_L2SQR}\) } - { \left(\frac{\|\texttt{src1}-\texttt{src2}\|_{L_2} }{\|\texttt{src2}\|_{L_2}}\right)^2 }{if \(\texttt{normType} = \texttt{NORM_RELATIVE | NORM_L2}\) } - \f] - */ - NORM_L2SQR = 5, - /** - In the case of one input array, calculates the Hamming distance of the array from zero, - In the case of two input arrays, calculates the Hamming distance between the arrays. - */ - NORM_HAMMING = 6, - /** - Similar to NORM_HAMMING, but in the calculation, each two bits of the input sequence will - be added and treated as a single bit to be used in the same calculation as NORM_HAMMING. - */ - NORM_HAMMING2 = 7, - NORM_TYPE_MASK = 7, //!< bit-mask which can be used to separate norm type from norm flags - NORM_RELATIVE = 8, //!< flag - NORM_MINMAX = 32 //!< flag - }; - -//! comparison types -enum CmpTypes { CMP_EQ = 0, //!< src1 is equal to src2. - CMP_GT = 1, //!< src1 is greater than src2. - CMP_GE = 2, //!< src1 is greater than or equal to src2. - CMP_LT = 3, //!< src1 is less than src2. - CMP_LE = 4, //!< src1 is less than or equal to src2. - CMP_NE = 5 //!< src1 is unequal to src2. - }; - -//! generalized matrix multiplication flags -enum GemmFlags { GEMM_1_T = 1, //!< transposes src1 - GEMM_2_T = 2, //!< transposes src2 - GEMM_3_T = 4 //!< transposes src3 - }; - -enum DftFlags { - /** performs an inverse 1D or 2D transform instead of the default forward - transform. */ - DFT_INVERSE = 1, - /** scales the result: divide it by the number of array elements. Normally, it is - combined with DFT_INVERSE. */ - DFT_SCALE = 2, - /** performs a forward or inverse transform of every individual row of the input - matrix; this flag enables you to transform multiple vectors simultaneously and can be used to - decrease the overhead (which is sometimes several times larger than the processing itself) to - perform 3D and higher-dimensional transformations and so forth.*/ - DFT_ROWS = 4, - /** performs a forward transformation of 1D or 2D real array; the result, - though being a complex array, has complex-conjugate symmetry (*CCS*, see the function - description below for details), and such an array can be packed into a real array of the same - size as input, which is the fastest option and which is what the function does by default; - however, you may wish to get a full complex array (for simpler spectrum analysis, and so on) - - pass the flag to enable the function to produce a full-size complex output array. */ - DFT_COMPLEX_OUTPUT = 16, - /** performs an inverse transformation of a 1D or 2D complex array; the - result is normally a complex array of the same size, however, if the input array has - conjugate-complex symmetry (for example, it is a result of forward transformation with - DFT_COMPLEX_OUTPUT flag), the output is a real array; while the function itself does not - check whether the input is symmetrical or not, you can pass the flag and then the function - will assume the symmetry and produce the real output array (note that when the input is packed - into a real array and inverse transformation is executed, the function treats the input as a - packed complex-conjugate symmetrical array, and the output will also be a real array). */ - DFT_REAL_OUTPUT = 32, - /** specifies that input is complex input. If this flag is set, the input must have 2 channels. - On the other hand, for backwards compatibility reason, if input has 2 channels, input is - already considered complex. */ - DFT_COMPLEX_INPUT = 64, - /** performs an inverse 1D or 2D transform instead of the default forward transform. */ - DCT_INVERSE = DFT_INVERSE, - /** performs a forward or inverse transform of every individual row of the input - matrix. This flag enables you to transform multiple vectors simultaneously and can be used to - decrease the overhead (which is sometimes several times larger than the processing itself) to - perform 3D and higher-dimensional transforms and so forth.*/ - DCT_ROWS = DFT_ROWS -}; - -//! Various border types, image boundaries are denoted with `|` -//! @see borderInterpolate, copyMakeBorder -enum BorderTypes { - BORDER_CONSTANT = 0, //!< `iiiiii|abcdefgh|iiiiiii` with some specified `i` - BORDER_REPLICATE = 1, //!< `aaaaaa|abcdefgh|hhhhhhh` - BORDER_REFLECT = 2, //!< `fedcba|abcdefgh|hgfedcb` - BORDER_WRAP = 3, //!< `cdefgh|abcdefgh|abcdefg` - BORDER_REFLECT_101 = 4, //!< `gfedcb|abcdefgh|gfedcba` - BORDER_TRANSPARENT = 5, //!< `uvwxyz|absdefgh|ijklmno` - - BORDER_REFLECT101 = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101 - BORDER_DEFAULT = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101 - BORDER_ISOLATED = 16 //!< do not look outside of ROI -}; - -//! @} core_array - -//! @addtogroup core_utils -//! @{ - -//! @cond IGNORED - -//////////////// static assert ///////////////// -#define CVAUX_CONCAT_EXP(a, b) a##b -#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b) - -#if defined(__clang__) -# ifndef __has_extension -# define __has_extension __has_feature /* compatibility, for older versions of clang */ -# endif -# if __has_extension(cxx_static_assert) -# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition) -# elif __has_extension(c_static_assert) -# define CV_StaticAssert(condition, reason) _Static_assert((condition), reason " " #condition) -# endif -#elif defined(__GNUC__) -# if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) -# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition) -# endif -#elif defined(_MSC_VER) -# if _MSC_VER >= 1600 /* MSVC 10 */ -# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition) -# endif -#endif -#ifndef CV_StaticAssert -# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302) -# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); }) -# else - template struct CV_StaticAssert_failed; - template <> struct CV_StaticAssert_failed { enum { val = 1 }; }; - template struct CV_StaticAssert_test {}; -# define CV_StaticAssert(condition, reason)\ - typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__) -# endif -#endif - -// Suppress warning "-Wdeprecated-declarations" / C4996 -#if defined(_MSC_VER) - #define CV_DO_PRAGMA(x) __pragma(x) -#elif defined(__GNUC__) - #define CV_DO_PRAGMA(x) _Pragma (#x) -#else - #define CV_DO_PRAGMA(x) -#endif - -#ifdef _MSC_VER -#define CV_SUPPRESS_DEPRECATED_START \ - CV_DO_PRAGMA(warning(push)) \ - CV_DO_PRAGMA(warning(disable: 4996)) -#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop)) -#elif defined (__clang__) || ((__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 405)) -#define CV_SUPPRESS_DEPRECATED_START \ - CV_DO_PRAGMA(GCC diagnostic push) \ - CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations") -#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(GCC diagnostic pop) -#else -#define CV_SUPPRESS_DEPRECATED_START -#define CV_SUPPRESS_DEPRECATED_END -#endif - -#define CV_UNUSED(name) (void)name - -#if defined __GNUC__ && !defined __EXCEPTIONS -#define CV_TRY -#define CV_CATCH(A, B) for (A B; false; ) -#define CV_CATCH_ALL if (false) -#define CV_THROW(A) abort() -#define CV_RETHROW() abort() -#else -#define CV_TRY try -#define CV_CATCH(A, B) catch(const A & B) -#define CV_CATCH_ALL catch(...) -#define CV_THROW(A) throw A -#define CV_RETHROW() throw -#endif - -//! @endcond - -/*! @brief Signals an error and raises the exception. - -By default the function prints information about the error to stderr, -then it either stops if setBreakOnError() had been called before or raises the exception. -It is possible to alternate error processing by using redirectError(). -@param _code - error code (Error::Code) -@param _err - error description -@param _func - function name. Available only when the compiler supports getting it -@param _file - source file name where the error has occurred -@param _line - line number in the source file where the error has occurred -@see CV_Error, CV_Error_, CV_ErrorNoReturn, CV_ErrorNoReturn_, CV_Assert, CV_DbgAssert - */ -CV_EXPORTS void error(int _code, const String& _err, const char* _func, const char* _file, int _line); - -#ifdef __GNUC__ -# if defined __clang__ || defined __APPLE__ -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Winvalid-noreturn" -# endif -#endif - -/** same as cv::error, but does not return */ -CV_INLINE CV_NORETURN void errorNoReturn(int _code, const String& _err, const char* _func, const char* _file, int _line) -{ - error(_code, _err, _func, _file, _line); -#ifdef __GNUC__ -# if !defined __clang__ && !defined __APPLE__ - // this suppresses this warning: "noreturn" function does return [enabled by default] - __builtin_trap(); - // or use infinite loop: for (;;) {} -# endif -#endif -} -#ifdef __GNUC__ -# if defined __clang__ || defined __APPLE__ -# pragma GCC diagnostic pop -# endif -#endif - -#if defined __GNUC__ -#define CV_Func __func__ -#elif defined _MSC_VER -#define CV_Func __FUNCTION__ -#else -#define CV_Func "" -#endif - -#ifdef CV_STATIC_ANALYSIS -// In practice, some macro are not processed correctly (noreturn is not detected). -// We need to use simplified definition for them. -#define CV_Error(...) do { abort(); } while (0) -#define CV_Error_(...) do { abort(); } while (0) -#define CV_Assert(cond) do { if (!(cond)) abort(); } while (0) -#define CV_ErrorNoReturn(...) do { abort(); } while (0) -#define CV_ErrorNoReturn_(...) do { abort(); } while (0) - -#else // CV_STATIC_ANALYSIS - -/** @brief Call the error handler. - -Currently, the error handler prints the error code and the error message to the standard -error stream `stderr`. In the Debug configuration, it then provokes memory access violation, so that -the execution stack and all the parameters can be analyzed by the debugger. In the Release -configuration, the exception is thrown. - -@param code one of Error::Code -@param msg error message -*/ -#define CV_Error( code, msg ) cv::error( code, msg, CV_Func, __FILE__, __LINE__ ) - -/** @brief Call the error handler. - -This macro can be used to construct an error message on-fly to include some dynamic information, -for example: -@code - // note the extra parentheses around the formatted text message - CV_Error_( CV_StsOutOfRange, - ("the value at (%d, %d)=%g is out of range", badPt.x, badPt.y, badValue)); -@endcode -@param code one of Error::Code -@param args printf-like formatted error message in parentheses -*/ -#define CV_Error_( code, args ) cv::error( code, cv::format args, CV_Func, __FILE__, __LINE__ ) - -/** @brief Checks a condition at runtime and throws exception if it fails - -The macros CV_Assert (and CV_DbgAssert(expr)) evaluate the specified expression. If it is 0, the macros -raise an error (see cv::error). The macro CV_Assert checks the condition in both Debug and Release -configurations while CV_DbgAssert is only retained in the Debug configuration. -*/ - -#define CV_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N -#define CV_VA_NUM_ARGS(...) CV_VA_NUM_ARGS_HELPER(__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) - -#define CV_Assert_1( expr ) if(!!(expr)) ; else cv::error( cv::Error::StsAssert, #expr, CV_Func, __FILE__, __LINE__ ) -#define CV_Assert_2( expr1, expr2 ) CV_Assert_1(expr1); CV_Assert_1(expr2) -#define CV_Assert_3( expr1, expr2, expr3 ) CV_Assert_2(expr1, expr2); CV_Assert_1(expr3) -#define CV_Assert_4( expr1, expr2, expr3, expr4 ) CV_Assert_3(expr1, expr2, expr3); CV_Assert_1(expr4) -#define CV_Assert_5( expr1, expr2, expr3, expr4, expr5 ) CV_Assert_4(expr1, expr2, expr3, expr4); CV_Assert_1(expr5) -#define CV_Assert_6( expr1, expr2, expr3, expr4, expr5, expr6 ) CV_Assert_5(expr1, expr2, expr3, expr4, expr5); CV_Assert_1(expr6) -#define CV_Assert_7( expr1, expr2, expr3, expr4, expr5, expr6, expr7 ) CV_Assert_6(expr1, expr2, expr3, expr4, expr5, expr6 ); CV_Assert_1(expr7) -#define CV_Assert_8( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8 ) CV_Assert_7(expr1, expr2, expr3, expr4, expr5, expr6, expr7 ); CV_Assert_1(expr8) -#define CV_Assert_9( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9 ) CV_Assert_8(expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8 ); CV_Assert_1(expr9) -#define CV_Assert_10( expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9, expr10 ) CV_Assert_9(expr1, expr2, expr3, expr4, expr5, expr6, expr7, expr8, expr9 ); CV_Assert_1(expr10) - -#define CV_Assert(...) CVAUX_CONCAT(CV_Assert_, CV_VA_NUM_ARGS(__VA_ARGS__)) (__VA_ARGS__) - -/** same as CV_Error(code,msg), but does not return */ -#define CV_ErrorNoReturn( code, msg ) cv::errorNoReturn( code, msg, CV_Func, __FILE__, __LINE__ ) - -/** same as CV_Error_(code,args), but does not return */ -#define CV_ErrorNoReturn_( code, args ) cv::errorNoReturn( code, cv::format args, CV_Func, __FILE__, __LINE__ ) - -#endif // CV_STATIC_ANALYSIS - -/** replaced with CV_Assert(expr) in Debug configuration */ -#ifdef _DEBUG -# define CV_DbgAssert(expr) CV_Assert(expr) -#else -# define CV_DbgAssert(expr) -#endif - -/* - * Hamming distance functor - counts the bit differences between two strings - useful for the Brief descriptor - * bit count of A exclusive XOR'ed with B - */ -struct CV_EXPORTS Hamming -{ - enum { normType = NORM_HAMMING }; - typedef unsigned char ValueType; - typedef int ResultType; - - /** this will count the bits in a ^ b - */ - ResultType operator()( const unsigned char* a, const unsigned char* b, int size ) const; -}; - -typedef Hamming HammingLUT; - -/////////////////////////////////// inline norms //////////////////////////////////// - -template inline _Tp cv_abs(_Tp x) { return std::abs(x); } -inline int cv_abs(uchar x) { return x; } -inline int cv_abs(schar x) { return std::abs(x); } -inline int cv_abs(ushort x) { return x; } -inline int cv_abs(short x) { return std::abs(x); } - -template static inline -_AccTp normL2Sqr(const _Tp* a, int n) -{ - _AccTp s = 0; - int i=0; -#if CV_ENABLE_UNROLLED - for( ; i <= n - 4; i += 4 ) - { - _AccTp v0 = a[i], v1 = a[i+1], v2 = a[i+2], v3 = a[i+3]; - s += v0*v0 + v1*v1 + v2*v2 + v3*v3; - } -#endif - for( ; i < n; i++ ) - { - _AccTp v = a[i]; - s += v*v; - } - return s; -} - -template static inline -_AccTp normL1(const _Tp* a, int n) -{ - _AccTp s = 0; - int i = 0; -#if CV_ENABLE_UNROLLED - for(; i <= n - 4; i += 4 ) - { - s += (_AccTp)cv_abs(a[i]) + (_AccTp)cv_abs(a[i+1]) + - (_AccTp)cv_abs(a[i+2]) + (_AccTp)cv_abs(a[i+3]); - } -#endif - for( ; i < n; i++ ) - s += cv_abs(a[i]); - return s; -} - -template static inline -_AccTp normInf(const _Tp* a, int n) -{ - _AccTp s = 0; - for( int i = 0; i < n; i++ ) - s = std::max(s, (_AccTp)cv_abs(a[i])); - return s; -} - -template static inline -_AccTp normL2Sqr(const _Tp* a, const _Tp* b, int n) -{ - _AccTp s = 0; - int i= 0; -#if CV_ENABLE_UNROLLED - for(; i <= n - 4; i += 4 ) - { - _AccTp v0 = _AccTp(a[i] - b[i]), v1 = _AccTp(a[i+1] - b[i+1]), v2 = _AccTp(a[i+2] - b[i+2]), v3 = _AccTp(a[i+3] - b[i+3]); - s += v0*v0 + v1*v1 + v2*v2 + v3*v3; - } -#endif - for( ; i < n; i++ ) - { - _AccTp v = _AccTp(a[i] - b[i]); - s += v*v; - } - return s; -} - -static inline float normL2Sqr(const float* a, const float* b, int n) -{ - float s = 0.f; - for( int i = 0; i < n; i++ ) - { - float v = a[i] - b[i]; - s += v*v; - } - return s; -} - -template static inline -_AccTp normL1(const _Tp* a, const _Tp* b, int n) -{ - _AccTp s = 0; - int i= 0; -#if CV_ENABLE_UNROLLED - for(; i <= n - 4; i += 4 ) - { - _AccTp v0 = _AccTp(a[i] - b[i]), v1 = _AccTp(a[i+1] - b[i+1]), v2 = _AccTp(a[i+2] - b[i+2]), v3 = _AccTp(a[i+3] - b[i+3]); - s += std::abs(v0) + std::abs(v1) + std::abs(v2) + std::abs(v3); - } -#endif - for( ; i < n; i++ ) - { - _AccTp v = _AccTp(a[i] - b[i]); - s += std::abs(v); - } - return s; -} - -inline float normL1(const float* a, const float* b, int n) -{ - float s = 0.f; - for( int i = 0; i < n; i++ ) - { - s += std::abs(a[i] - b[i]); - } - return s; -} - -inline int normL1(const uchar* a, const uchar* b, int n) -{ - int s = 0; - for( int i = 0; i < n; i++ ) - { - s += std::abs(a[i] - b[i]); - } - return s; -} - -template static inline -_AccTp normInf(const _Tp* a, const _Tp* b, int n) -{ - _AccTp s = 0; - for( int i = 0; i < n; i++ ) - { - _AccTp v0 = a[i] - b[i]; - s = std::max(s, std::abs(v0)); - } - return s; -} - -/** @brief Computes the cube root of an argument. - - The function cubeRoot computes \f$\sqrt[3]{\texttt{val}}\f$. Negative arguments are handled correctly. - NaN and Inf are not handled. The accuracy approaches the maximum possible accuracy for - single-precision data. - @param val A function argument. - */ -CV_EXPORTS_W float cubeRoot(float val); - -/** @brief Calculates the angle of a 2D vector in degrees. - - The function fastAtan2 calculates the full-range angle of an input 2D vector. The angle is measured - in degrees and varies from 0 to 360 degrees. The accuracy is about 0.3 degrees. - @param x x-coordinate of the vector. - @param y y-coordinate of the vector. - */ -CV_EXPORTS_W float fastAtan2(float y, float x); - -/** proxy for hal::LU */ -CV_EXPORTS int LU(float* A, size_t astep, int m, float* b, size_t bstep, int n); -/** proxy for hal::LU */ -CV_EXPORTS int LU(double* A, size_t astep, int m, double* b, size_t bstep, int n); -/** proxy for hal::Cholesky */ -CV_EXPORTS bool Cholesky(float* A, size_t astep, int m, float* b, size_t bstep, int n); -/** proxy for hal::Cholesky */ -CV_EXPORTS bool Cholesky(double* A, size_t astep, int m, double* b, size_t bstep, int n); - -////////////////// forward declarations for important OpenCV types ////////////////// - -//! @cond IGNORED - -template class Vec; -template class Matx; - -template class Complex; -template class Point_; -template class Point3_; -template class Size_; -template class Rect_; -template class Scalar_; - -class CV_EXPORTS RotatedRect; -class CV_EXPORTS Range; -class CV_EXPORTS TermCriteria; -class CV_EXPORTS KeyPoint; -class CV_EXPORTS DMatch; -class CV_EXPORTS RNG; - -class CV_EXPORTS Mat; -class CV_EXPORTS MatExpr; - -class CV_EXPORTS UMat; - -class CV_EXPORTS SparseMat; -typedef Mat MatND; - -template class Mat_; -template class SparseMat_; - -class CV_EXPORTS MatConstIterator; -class CV_EXPORTS SparseMatIterator; -class CV_EXPORTS SparseMatConstIterator; -template class MatIterator_; -template class MatConstIterator_; -template class SparseMatIterator_; -template class SparseMatConstIterator_; - -namespace ogl -{ - class CV_EXPORTS Buffer; - class CV_EXPORTS Texture2D; - class CV_EXPORTS Arrays; -} - -namespace cuda -{ - class CV_EXPORTS GpuMat; - class CV_EXPORTS HostMem; - class CV_EXPORTS Stream; - class CV_EXPORTS Event; -} - -namespace cudev -{ - template class GpuMat_; -} - -namespace ipp -{ -#if OPENCV_ABI_COMPATIBILITY > 300 -CV_EXPORTS unsigned long long getIppFeatures(); -#else -CV_EXPORTS int getIppFeatures(); -#endif -CV_EXPORTS void setIppStatus(int status, const char * const funcname = NULL, const char * const filename = NULL, - int line = 0); -CV_EXPORTS int getIppStatus(); -CV_EXPORTS String getIppErrorLocation(); -CV_EXPORTS_W bool useIPP(); -CV_EXPORTS_W void setUseIPP(bool flag); -CV_EXPORTS_W String getIppVersion(); - -// IPP Not-Exact mode. This function may force use of IPP then both IPP and OpenCV provide proper results -// but have internal accuracy differences which have to much direct or indirect impact on accuracy tests. -CV_EXPORTS_W bool useIPP_NE(); -CV_EXPORTS_W void setUseIPP_NE(bool flag); - -} // ipp - -//! @endcond - -//! @} core_utils - - - - -} // cv - -#include "opencv2/core/neon_utils.hpp" -#include "opencv2/core/vsx_utils.hpp" - -#endif //OPENCV_CORE_BASE_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda.hpp deleted file mode 100644 index 6dca27236..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cuda.hpp +++ /dev/null @@ -1,906 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_CUDA_HPP -#define OPENCV_CORE_CUDA_HPP - -#ifndef __cplusplus -# error cuda.hpp header must be compiled as C++ -#endif - -#include "opencv2/core.hpp" -#include "opencv2/core/cuda_types.hpp" - -/** - @defgroup cuda CUDA-accelerated Computer Vision - @{ - @defgroup cudacore Core part - @{ - @defgroup cudacore_init Initalization and Information - @defgroup cudacore_struct Data Structures - @} - @} - */ - -namespace cv { namespace cuda { - -//! @addtogroup cudacore_struct -//! @{ - -//=================================================================================== -// GpuMat -//=================================================================================== - -/** @brief Base storage class for GPU memory with reference counting. - -Its interface matches the Mat interface with the following limitations: - -- no arbitrary dimensions support (only 2D) -- no functions that return references to their data (because references on GPU are not valid for - CPU) -- no expression templates technique support - -Beware that the latter limitation may lead to overloaded matrix operators that cause memory -allocations. The GpuMat class is convertible to cuda::PtrStepSz and cuda::PtrStep so it can be -passed directly to the kernel. - -@note In contrast with Mat, in most cases GpuMat::isContinuous() == false . This means that rows are -aligned to a size depending on the hardware. Single-row GpuMat is always a continuous matrix. - -@note You are not recommended to leave static or global GpuMat variables allocated, that is, to rely -on its destructor. The destruction order of such variables and CUDA context is undefined. GPU memory -release function returns error if the CUDA context has been destroyed before. - -@sa Mat - */ -class CV_EXPORTS GpuMat -{ -public: - class CV_EXPORTS Allocator - { - public: - virtual ~Allocator() {} - - // allocator must fill data, step and refcount fields - virtual bool allocate(GpuMat* mat, int rows, int cols, size_t elemSize) = 0; - virtual void free(GpuMat* mat) = 0; - }; - - //! default allocator - static Allocator* defaultAllocator(); - static void setDefaultAllocator(Allocator* allocator); - - //! default constructor - explicit GpuMat(Allocator* allocator = defaultAllocator()); - - //! constructs GpuMat of the specified size and type - GpuMat(int rows, int cols, int type, Allocator* allocator = defaultAllocator()); - GpuMat(Size size, int type, Allocator* allocator = defaultAllocator()); - - //! constucts GpuMat and fills it with the specified value _s - GpuMat(int rows, int cols, int type, Scalar s, Allocator* allocator = defaultAllocator()); - GpuMat(Size size, int type, Scalar s, Allocator* allocator = defaultAllocator()); - - //! copy constructor - GpuMat(const GpuMat& m); - - //! constructor for GpuMat headers pointing to user-allocated data - GpuMat(int rows, int cols, int type, void* data, size_t step = Mat::AUTO_STEP); - GpuMat(Size size, int type, void* data, size_t step = Mat::AUTO_STEP); - - //! creates a GpuMat header for a part of the bigger matrix - GpuMat(const GpuMat& m, Range rowRange, Range colRange); - GpuMat(const GpuMat& m, Rect roi); - - //! builds GpuMat from host memory (Blocking call) - explicit GpuMat(InputArray arr, Allocator* allocator = defaultAllocator()); - - //! destructor - calls release() - ~GpuMat(); - - //! assignment operators - GpuMat& operator =(const GpuMat& m); - - //! allocates new GpuMat data unless the GpuMat already has specified size and type - void create(int rows, int cols, int type); - void create(Size size, int type); - - //! decreases reference counter, deallocate the data when reference counter reaches 0 - void release(); - - //! swaps with other smart pointer - void swap(GpuMat& mat); - - //! pefroms upload data to GpuMat (Blocking call) - void upload(InputArray arr); - - //! pefroms upload data to GpuMat (Non-Blocking call) - void upload(InputArray arr, Stream& stream); - - //! pefroms download data from device to host memory (Blocking call) - void download(OutputArray dst) const; - - //! pefroms download data from device to host memory (Non-Blocking call) - void download(OutputArray dst, Stream& stream) const; - - //! returns deep copy of the GpuMat, i.e. the data is copied - GpuMat clone() const; - - //! copies the GpuMat content to device memory (Blocking call) - void copyTo(OutputArray dst) const; - - //! copies the GpuMat content to device memory (Non-Blocking call) - void copyTo(OutputArray dst, Stream& stream) const; - - //! copies those GpuMat elements to "m" that are marked with non-zero mask elements (Blocking call) - void copyTo(OutputArray dst, InputArray mask) const; - - //! copies those GpuMat elements to "m" that are marked with non-zero mask elements (Non-Blocking call) - void copyTo(OutputArray dst, InputArray mask, Stream& stream) const; - - //! sets some of the GpuMat elements to s (Blocking call) - GpuMat& setTo(Scalar s); - - //! sets some of the GpuMat elements to s (Non-Blocking call) - GpuMat& setTo(Scalar s, Stream& stream); - - //! sets some of the GpuMat elements to s, according to the mask (Blocking call) - GpuMat& setTo(Scalar s, InputArray mask); - - //! sets some of the GpuMat elements to s, according to the mask (Non-Blocking call) - GpuMat& setTo(Scalar s, InputArray mask, Stream& stream); - - //! converts GpuMat to another datatype (Blocking call) - void convertTo(OutputArray dst, int rtype) const; - - //! converts GpuMat to another datatype (Non-Blocking call) - void convertTo(OutputArray dst, int rtype, Stream& stream) const; - - //! converts GpuMat to another datatype with scaling (Blocking call) - void convertTo(OutputArray dst, int rtype, double alpha, double beta = 0.0) const; - - //! converts GpuMat to another datatype with scaling (Non-Blocking call) - void convertTo(OutputArray dst, int rtype, double alpha, Stream& stream) const; - - //! converts GpuMat to another datatype with scaling (Non-Blocking call) - void convertTo(OutputArray dst, int rtype, double alpha, double beta, Stream& stream) const; - - void assignTo(GpuMat& m, int type=-1) const; - - //! returns pointer to y-th row - uchar* ptr(int y = 0); - const uchar* ptr(int y = 0) const; - - //! template version of the above method - template _Tp* ptr(int y = 0); - template const _Tp* ptr(int y = 0) const; - - template operator PtrStepSz<_Tp>() const; - template operator PtrStep<_Tp>() const; - - //! returns a new GpuMat header for the specified row - GpuMat row(int y) const; - - //! returns a new GpuMat header for the specified column - GpuMat col(int x) const; - - //! ... for the specified row span - GpuMat rowRange(int startrow, int endrow) const; - GpuMat rowRange(Range r) const; - - //! ... for the specified column span - GpuMat colRange(int startcol, int endcol) const; - GpuMat colRange(Range r) const; - - //! extracts a rectangular sub-GpuMat (this is a generalized form of row, rowRange etc.) - GpuMat operator ()(Range rowRange, Range colRange) const; - GpuMat operator ()(Rect roi) const; - - //! creates alternative GpuMat header for the same data, with different - //! number of channels and/or different number of rows - GpuMat reshape(int cn, int rows = 0) const; - - //! locates GpuMat header within a parent GpuMat - void locateROI(Size& wholeSize, Point& ofs) const; - - //! moves/resizes the current GpuMat ROI inside the parent GpuMat - GpuMat& adjustROI(int dtop, int dbottom, int dleft, int dright); - - //! returns true iff the GpuMat data is continuous - //! (i.e. when there are no gaps between successive rows) - bool isContinuous() const; - - //! returns element size in bytes - size_t elemSize() const; - - //! returns the size of element channel in bytes - size_t elemSize1() const; - - //! returns element type - int type() const; - - //! returns element type - int depth() const; - - //! returns number of channels - int channels() const; - - //! returns step/elemSize1() - size_t step1() const; - - //! returns GpuMat size : width == number of columns, height == number of rows - Size size() const; - - //! returns true if GpuMat data is NULL - bool empty() const; - - /*! includes several bit-fields: - - the magic signature - - continuity flag - - depth - - number of channels - */ - int flags; - - //! the number of rows and columns - int rows, cols; - - //! a distance between successive rows in bytes; includes the gap if any - size_t step; - - //! pointer to the data - uchar* data; - - //! pointer to the reference counter; - //! when GpuMat points to user-allocated data, the pointer is NULL - int* refcount; - - //! helper fields used in locateROI and adjustROI - uchar* datastart; - const uchar* dataend; - - //! allocator - Allocator* allocator; -}; - -/** @brief Creates a continuous matrix. - -@param rows Row count. -@param cols Column count. -@param type Type of the matrix. -@param arr Destination matrix. This parameter changes only if it has a proper type and area ( -\f$\texttt{rows} \times \texttt{cols}\f$ ). - -Matrix is called continuous if its elements are stored continuously, that is, without gaps at the -end of each row. - */ -CV_EXPORTS void createContinuous(int rows, int cols, int type, OutputArray arr); - -/** @brief Ensures that the size of a matrix is big enough and the matrix has a proper type. - -@param rows Minimum desired number of rows. -@param cols Minimum desired number of columns. -@param type Desired matrix type. -@param arr Destination matrix. - -The function does not reallocate memory if the matrix has proper attributes already. - */ -CV_EXPORTS void ensureSizeIsEnough(int rows, int cols, int type, OutputArray arr); - -/** @brief BufferPool for use with CUDA streams - - * BufferPool utilizes cuda::Stream's allocator to create new buffers. It is - * particularly useful when BufferPoolUsage is set to true, or a custom - * allocator is specified for the cuda::Stream, and you want to implement your - * own stream based functions utilizing the same underlying GPU memory - * management. - */ -class CV_EXPORTS BufferPool -{ -public: - - //! Gets the BufferPool for the given stream. - explicit BufferPool(Stream& stream); - - //! Allocates a new GpuMat of given size and type. - GpuMat getBuffer(int rows, int cols, int type); - - //! Allocates a new GpuMat of given size and type. - GpuMat getBuffer(Size size, int type) { return getBuffer(size.height, size.width, type); } - - //! Returns the allocator associated with the stream. - Ptr getAllocator() const { return allocator_; } - -private: - Ptr allocator_; -}; - -//! BufferPool management (must be called before Stream creation) -CV_EXPORTS void setBufferPoolUsage(bool on); -CV_EXPORTS void setBufferPoolConfig(int deviceId, size_t stackSize, int stackCount); - -//=================================================================================== -// HostMem -//=================================================================================== - -/** @brief Class with reference counting wrapping special memory type allocation functions from CUDA. - -Its interface is also Mat-like but with additional memory type parameters. - -- **PAGE_LOCKED** sets a page locked memory type used commonly for fast and asynchronous - uploading/downloading data from/to GPU. -- **SHARED** specifies a zero copy memory allocation that enables mapping the host memory to GPU - address space, if supported. -- **WRITE_COMBINED** sets the write combined buffer that is not cached by CPU. Such buffers are - used to supply GPU with data when GPU only reads it. The advantage is a better CPU cache - utilization. - -@note Allocation size of such memory types is usually limited. For more details, see *CUDA 2.2 -Pinned Memory APIs* document or *CUDA C Programming Guide*. - */ -class CV_EXPORTS HostMem -{ -public: - enum AllocType { PAGE_LOCKED = 1, SHARED = 2, WRITE_COMBINED = 4 }; - - static MatAllocator* getAllocator(AllocType alloc_type = PAGE_LOCKED); - - explicit HostMem(AllocType alloc_type = PAGE_LOCKED); - - HostMem(const HostMem& m); - - HostMem(int rows, int cols, int type, AllocType alloc_type = PAGE_LOCKED); - HostMem(Size size, int type, AllocType alloc_type = PAGE_LOCKED); - - //! creates from host memory with coping data - explicit HostMem(InputArray arr, AllocType alloc_type = PAGE_LOCKED); - - ~HostMem(); - - HostMem& operator =(const HostMem& m); - - //! swaps with other smart pointer - void swap(HostMem& b); - - //! returns deep copy of the matrix, i.e. the data is copied - HostMem clone() const; - - //! allocates new matrix data unless the matrix already has specified size and type. - void create(int rows, int cols, int type); - void create(Size size, int type); - - //! creates alternative HostMem header for the same data, with different - //! number of channels and/or different number of rows - HostMem reshape(int cn, int rows = 0) const; - - //! decrements reference counter and released memory if needed. - void release(); - - //! returns matrix header with disabled reference counting for HostMem data. - Mat createMatHeader() const; - - /** @brief Maps CPU memory to GPU address space and creates the cuda::GpuMat header without reference counting - for it. - - This can be done only if memory was allocated with the SHARED flag and if it is supported by the - hardware. Laptops often share video and CPU memory, so address spaces can be mapped, which - eliminates an extra copy. - */ - GpuMat createGpuMatHeader() const; - - // Please see cv::Mat for descriptions - bool isContinuous() const; - size_t elemSize() const; - size_t elemSize1() const; - int type() const; - int depth() const; - int channels() const; - size_t step1() const; - Size size() const; - bool empty() const; - - // Please see cv::Mat for descriptions - int flags; - int rows, cols; - size_t step; - - uchar* data; - int* refcount; - - uchar* datastart; - const uchar* dataend; - - AllocType alloc_type; -}; - -/** @brief Page-locks the memory of matrix and maps it for the device(s). - -@param m Input matrix. - */ -CV_EXPORTS void registerPageLocked(Mat& m); - -/** @brief Unmaps the memory of matrix and makes it pageable again. - -@param m Input matrix. - */ -CV_EXPORTS void unregisterPageLocked(Mat& m); - -//=================================================================================== -// Stream -//=================================================================================== - -/** @brief This class encapsulates a queue of asynchronous calls. - -@note Currently, you may face problems if an operation is enqueued twice with different data. Some -functions use the constant GPU memory, and next call may update the memory before the previous one -has been finished. But calling different operations asynchronously is safe because each operation -has its own constant buffer. Memory copy/upload/download/set operations to the buffers you hold are -also safe. - -@note The Stream class is not thread-safe. Please use different Stream objects for different CPU threads. - -@code -void thread1() -{ - cv::cuda::Stream stream1; - cv::cuda::func1(..., stream1); -} - -void thread2() -{ - cv::cuda::Stream stream2; - cv::cuda::func2(..., stream2); -} -@endcode - -@note By default all CUDA routines are launched in Stream::Null() object, if the stream is not specified by user. -In multi-threading environment the stream objects must be passed explicitly (see previous note). - */ -class CV_EXPORTS Stream -{ - typedef void (Stream::*bool_type)() const; - void this_type_does_not_support_comparisons() const {} - -public: - typedef void (*StreamCallback)(int status, void* userData); - - //! creates a new asynchronous stream - Stream(); - - //! creates a new asynchronous stream with custom allocator - Stream(const Ptr& allocator); - - /** @brief Returns true if the current stream queue is finished. Otherwise, it returns false. - */ - bool queryIfComplete() const; - - /** @brief Blocks the current CPU thread until all operations in the stream are complete. - */ - void waitForCompletion(); - - /** @brief Makes a compute stream wait on an event. - */ - void waitEvent(const Event& event); - - /** @brief Adds a callback to be called on the host after all currently enqueued items in the stream have - completed. - - @note Callbacks must not make any CUDA API calls. Callbacks must not perform any synchronization - that may depend on outstanding device work or other callbacks that are not mandated to run earlier. - Callbacks without a mandated order (in independent streams) execute in undefined order and may be - serialized. - */ - void enqueueHostCallback(StreamCallback callback, void* userData); - - //! return Stream object for default CUDA stream - static Stream& Null(); - - //! returns true if stream object is not default (!= 0) - operator bool_type() const; - - class Impl; - -private: - Ptr impl_; - Stream(const Ptr& impl); - - friend struct StreamAccessor; - friend class BufferPool; - friend class DefaultDeviceInitializer; -}; - -class CV_EXPORTS Event -{ -public: - enum CreateFlags - { - DEFAULT = 0x00, /**< Default event flag */ - BLOCKING_SYNC = 0x01, /**< Event uses blocking synchronization */ - DISABLE_TIMING = 0x02, /**< Event will not record timing data */ - INTERPROCESS = 0x04 /**< Event is suitable for interprocess use. DisableTiming must be set */ - }; - - explicit Event(CreateFlags flags = DEFAULT); - - //! records an event - void record(Stream& stream = Stream::Null()); - - //! queries an event's status - bool queryIfComplete() const; - - //! waits for an event to complete - void waitForCompletion(); - - //! computes the elapsed time between events - static float elapsedTime(const Event& start, const Event& end); - - class Impl; - -private: - Ptr impl_; - Event(const Ptr& impl); - - friend struct EventAccessor; -}; - -//! @} cudacore_struct - -//=================================================================================== -// Initialization & Info -//=================================================================================== - -//! @addtogroup cudacore_init -//! @{ - -/** @brief Returns the number of installed CUDA-enabled devices. - -Use this function before any other CUDA functions calls. If OpenCV is compiled without CUDA support, -this function returns 0. If the CUDA driver is not installed, or is incompatible, this function -returns -1. - */ -CV_EXPORTS int getCudaEnabledDeviceCount(); - -/** @brief Sets a device and initializes it for the current thread. - -@param device System index of a CUDA device starting with 0. - -If the call of this function is omitted, a default device is initialized at the fist CUDA usage. - */ -CV_EXPORTS void setDevice(int device); - -/** @brief Returns the current device index set by cuda::setDevice or initialized by default. - */ -CV_EXPORTS int getDevice(); - -/** @brief Explicitly destroys and cleans up all resources associated with the current device in the current -process. - -Any subsequent API call to this device will reinitialize the device. - */ -CV_EXPORTS void resetDevice(); - -/** @brief Enumeration providing CUDA computing features. - */ -enum FeatureSet -{ - FEATURE_SET_COMPUTE_10 = 10, - FEATURE_SET_COMPUTE_11 = 11, - FEATURE_SET_COMPUTE_12 = 12, - FEATURE_SET_COMPUTE_13 = 13, - FEATURE_SET_COMPUTE_20 = 20, - FEATURE_SET_COMPUTE_21 = 21, - FEATURE_SET_COMPUTE_30 = 30, - FEATURE_SET_COMPUTE_32 = 32, - FEATURE_SET_COMPUTE_35 = 35, - FEATURE_SET_COMPUTE_50 = 50, - - GLOBAL_ATOMICS = FEATURE_SET_COMPUTE_11, - SHARED_ATOMICS = FEATURE_SET_COMPUTE_12, - NATIVE_DOUBLE = FEATURE_SET_COMPUTE_13, - WARP_SHUFFLE_FUNCTIONS = FEATURE_SET_COMPUTE_30, - DYNAMIC_PARALLELISM = FEATURE_SET_COMPUTE_35 -}; - -//! checks whether current device supports the given feature -CV_EXPORTS bool deviceSupports(FeatureSet feature_set); - -/** @brief Class providing a set of static methods to check what NVIDIA\* card architecture the CUDA module was -built for. - -According to the CUDA C Programming Guide Version 3.2: "PTX code produced for some specific compute -capability can always be compiled to binary code of greater or equal compute capability". - */ -class CV_EXPORTS TargetArchs -{ -public: - /** @brief The following method checks whether the module was built with the support of the given feature: - - @param feature_set Features to be checked. See :ocvcuda::FeatureSet. - */ - static bool builtWith(FeatureSet feature_set); - - /** @brief There is a set of methods to check whether the module contains intermediate (PTX) or binary CUDA - code for the given architecture(s): - - @param major Major compute capability version. - @param minor Minor compute capability version. - */ - static bool has(int major, int minor); - static bool hasPtx(int major, int minor); - static bool hasBin(int major, int minor); - - static bool hasEqualOrLessPtx(int major, int minor); - static bool hasEqualOrGreater(int major, int minor); - static bool hasEqualOrGreaterPtx(int major, int minor); - static bool hasEqualOrGreaterBin(int major, int minor); -}; - -/** @brief Class providing functionality for querying the specified GPU properties. - */ -class CV_EXPORTS DeviceInfo -{ -public: - //! creates DeviceInfo object for the current GPU - DeviceInfo(); - - /** @brief The constructors. - - @param device_id System index of the CUDA device starting with 0. - - Constructs the DeviceInfo object for the specified device. If device_id parameter is missed, it - constructs an object for the current device. - */ - DeviceInfo(int device_id); - - /** @brief Returns system index of the CUDA device starting with 0. - */ - int deviceID() const; - - //! ASCII string identifying device - const char* name() const; - - //! global memory available on device in bytes - size_t totalGlobalMem() const; - - //! shared memory available per block in bytes - size_t sharedMemPerBlock() const; - - //! 32-bit registers available per block - int regsPerBlock() const; - - //! warp size in threads - int warpSize() const; - - //! maximum pitch in bytes allowed by memory copies - size_t memPitch() const; - - //! maximum number of threads per block - int maxThreadsPerBlock() const; - - //! maximum size of each dimension of a block - Vec3i maxThreadsDim() const; - - //! maximum size of each dimension of a grid - Vec3i maxGridSize() const; - - //! clock frequency in kilohertz - int clockRate() const; - - //! constant memory available on device in bytes - size_t totalConstMem() const; - - //! major compute capability - int majorVersion() const; - - //! minor compute capability - int minorVersion() const; - - //! alignment requirement for textures - size_t textureAlignment() const; - - //! pitch alignment requirement for texture references bound to pitched memory - size_t texturePitchAlignment() const; - - //! number of multiprocessors on device - int multiProcessorCount() const; - - //! specified whether there is a run time limit on kernels - bool kernelExecTimeoutEnabled() const; - - //! device is integrated as opposed to discrete - bool integrated() const; - - //! device can map host memory with cudaHostAlloc/cudaHostGetDevicePointer - bool canMapHostMemory() const; - - enum ComputeMode - { - ComputeModeDefault, /**< default compute mode (Multiple threads can use cudaSetDevice with this device) */ - ComputeModeExclusive, /**< compute-exclusive-thread mode (Only one thread in one process will be able to use cudaSetDevice with this device) */ - ComputeModeProhibited, /**< compute-prohibited mode (No threads can use cudaSetDevice with this device) */ - ComputeModeExclusiveProcess /**< compute-exclusive-process mode (Many threads in one process will be able to use cudaSetDevice with this device) */ - }; - - //! compute mode - ComputeMode computeMode() const; - - //! maximum 1D texture size - int maxTexture1D() const; - - //! maximum 1D mipmapped texture size - int maxTexture1DMipmap() const; - - //! maximum size for 1D textures bound to linear memory - int maxTexture1DLinear() const; - - //! maximum 2D texture dimensions - Vec2i maxTexture2D() const; - - //! maximum 2D mipmapped texture dimensions - Vec2i maxTexture2DMipmap() const; - - //! maximum dimensions (width, height, pitch) for 2D textures bound to pitched memory - Vec3i maxTexture2DLinear() const; - - //! maximum 2D texture dimensions if texture gather operations have to be performed - Vec2i maxTexture2DGather() const; - - //! maximum 3D texture dimensions - Vec3i maxTexture3D() const; - - //! maximum Cubemap texture dimensions - int maxTextureCubemap() const; - - //! maximum 1D layered texture dimensions - Vec2i maxTexture1DLayered() const; - - //! maximum 2D layered texture dimensions - Vec3i maxTexture2DLayered() const; - - //! maximum Cubemap layered texture dimensions - Vec2i maxTextureCubemapLayered() const; - - //! maximum 1D surface size - int maxSurface1D() const; - - //! maximum 2D surface dimensions - Vec2i maxSurface2D() const; - - //! maximum 3D surface dimensions - Vec3i maxSurface3D() const; - - //! maximum 1D layered surface dimensions - Vec2i maxSurface1DLayered() const; - - //! maximum 2D layered surface dimensions - Vec3i maxSurface2DLayered() const; - - //! maximum Cubemap surface dimensions - int maxSurfaceCubemap() const; - - //! maximum Cubemap layered surface dimensions - Vec2i maxSurfaceCubemapLayered() const; - - //! alignment requirements for surfaces - size_t surfaceAlignment() const; - - //! device can possibly execute multiple kernels concurrently - bool concurrentKernels() const; - - //! device has ECC support enabled - bool ECCEnabled() const; - - //! PCI bus ID of the device - int pciBusID() const; - - //! PCI device ID of the device - int pciDeviceID() const; - - //! PCI domain ID of the device - int pciDomainID() const; - - //! true if device is a Tesla device using TCC driver, false otherwise - bool tccDriver() const; - - //! number of asynchronous engines - int asyncEngineCount() const; - - //! device shares a unified address space with the host - bool unifiedAddressing() const; - - //! peak memory clock frequency in kilohertz - int memoryClockRate() const; - - //! global memory bus width in bits - int memoryBusWidth() const; - - //! size of L2 cache in bytes - int l2CacheSize() const; - - //! maximum resident threads per multiprocessor - int maxThreadsPerMultiProcessor() const; - - //! gets free and total device memory - void queryMemory(size_t& totalMemory, size_t& freeMemory) const; - size_t freeMemory() const; - size_t totalMemory() const; - - /** @brief Provides information on CUDA feature support. - - @param feature_set Features to be checked. See cuda::FeatureSet. - - This function returns true if the device has the specified CUDA feature. Otherwise, it returns false - */ - bool supports(FeatureSet feature_set) const; - - /** @brief Checks the CUDA module and device compatibility. - - This function returns true if the CUDA module can be run on the specified device. Otherwise, it - returns false . - */ - bool isCompatible() const; - -private: - int device_id_; -}; - -CV_EXPORTS void printCudaDeviceInfo(int device); -CV_EXPORTS void printShortCudaDeviceInfo(int device); - -/** @brief Converts an array to half precision floating number. - -@param _src input array. -@param _dst output array. -@param stream Stream for the asynchronous version. -@sa convertFp16 -*/ -CV_EXPORTS void convertFp16(InputArray _src, OutputArray _dst, Stream& stream = Stream::Null()); - -//! @} cudacore_init - -}} // namespace cv { namespace cuda { - - -#include "opencv2/core/cuda.inl.hpp" - -#endif /* OPENCV_CORE_CUDA_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cv_cpu_helper.h b/lib/3rdParty/OpenCV3.4/include/opencv2/core/cv_cpu_helper.h deleted file mode 100644 index 66a473f1e..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cv_cpu_helper.h +++ /dev/null @@ -1,199 +0,0 @@ -// AUTOGENERATED, DO NOT EDIT - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE -# define CV_TRY_SSE 1 -# define CV_CPU_HAS_SUPPORT_SSE 1 -# define CV_CPU_CALL_SSE(fn, args) return (opt_SSE::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE -# define CV_TRY_SSE 1 -# define CV_CPU_HAS_SUPPORT_SSE (cv::checkHardwareSupport(CV_CPU_SSE)) -# define CV_CPU_CALL_SSE(fn, args) if (CV_CPU_HAS_SUPPORT_SSE) return (opt_SSE::fn args) -#else -# define CV_TRY_SSE 0 -# define CV_CPU_HAS_SUPPORT_SSE 0 -# define CV_CPU_CALL_SSE(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_SSE(fn, args, mode, ...) CV_CPU_CALL_SSE(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE2 -# define CV_TRY_SSE2 1 -# define CV_CPU_HAS_SUPPORT_SSE2 1 -# define CV_CPU_CALL_SSE2(fn, args) return (opt_SSE2::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE2 -# define CV_TRY_SSE2 1 -# define CV_CPU_HAS_SUPPORT_SSE2 (cv::checkHardwareSupport(CV_CPU_SSE2)) -# define CV_CPU_CALL_SSE2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE2) return (opt_SSE2::fn args) -#else -# define CV_TRY_SSE2 0 -# define CV_CPU_HAS_SUPPORT_SSE2 0 -# define CV_CPU_CALL_SSE2(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_SSE2(fn, args, mode, ...) CV_CPU_CALL_SSE2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE3 -# define CV_TRY_SSE3 1 -# define CV_CPU_HAS_SUPPORT_SSE3 1 -# define CV_CPU_CALL_SSE3(fn, args) return (opt_SSE3::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE3 -# define CV_TRY_SSE3 1 -# define CV_CPU_HAS_SUPPORT_SSE3 (cv::checkHardwareSupport(CV_CPU_SSE3)) -# define CV_CPU_CALL_SSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSE3) return (opt_SSE3::fn args) -#else -# define CV_TRY_SSE3 0 -# define CV_CPU_HAS_SUPPORT_SSE3 0 -# define CV_CPU_CALL_SSE3(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_SSE3(fn, args, mode, ...) CV_CPU_CALL_SSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSSE3 -# define CV_TRY_SSSE3 1 -# define CV_CPU_HAS_SUPPORT_SSSE3 1 -# define CV_CPU_CALL_SSSE3(fn, args) return (opt_SSSE3::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSSE3 -# define CV_TRY_SSSE3 1 -# define CV_CPU_HAS_SUPPORT_SSSE3 (cv::checkHardwareSupport(CV_CPU_SSSE3)) -# define CV_CPU_CALL_SSSE3(fn, args) if (CV_CPU_HAS_SUPPORT_SSSE3) return (opt_SSSE3::fn args) -#else -# define CV_TRY_SSSE3 0 -# define CV_CPU_HAS_SUPPORT_SSSE3 0 -# define CV_CPU_CALL_SSSE3(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_SSSE3(fn, args, mode, ...) CV_CPU_CALL_SSSE3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_1 -# define CV_TRY_SSE4_1 1 -# define CV_CPU_HAS_SUPPORT_SSE4_1 1 -# define CV_CPU_CALL_SSE4_1(fn, args) return (opt_SSE4_1::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_1 -# define CV_TRY_SSE4_1 1 -# define CV_CPU_HAS_SUPPORT_SSE4_1 (cv::checkHardwareSupport(CV_CPU_SSE4_1)) -# define CV_CPU_CALL_SSE4_1(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_1) return (opt_SSE4_1::fn args) -#else -# define CV_TRY_SSE4_1 0 -# define CV_CPU_HAS_SUPPORT_SSE4_1 0 -# define CV_CPU_CALL_SSE4_1(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_SSE4_1(fn, args, mode, ...) CV_CPU_CALL_SSE4_1(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_SSE4_2 -# define CV_TRY_SSE4_2 1 -# define CV_CPU_HAS_SUPPORT_SSE4_2 1 -# define CV_CPU_CALL_SSE4_2(fn, args) return (opt_SSE4_2::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_SSE4_2 -# define CV_TRY_SSE4_2 1 -# define CV_CPU_HAS_SUPPORT_SSE4_2 (cv::checkHardwareSupport(CV_CPU_SSE4_2)) -# define CV_CPU_CALL_SSE4_2(fn, args) if (CV_CPU_HAS_SUPPORT_SSE4_2) return (opt_SSE4_2::fn args) -#else -# define CV_TRY_SSE4_2 0 -# define CV_CPU_HAS_SUPPORT_SSE4_2 0 -# define CV_CPU_CALL_SSE4_2(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_SSE4_2(fn, args, mode, ...) CV_CPU_CALL_SSE4_2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_POPCNT -# define CV_TRY_POPCNT 1 -# define CV_CPU_HAS_SUPPORT_POPCNT 1 -# define CV_CPU_CALL_POPCNT(fn, args) return (opt_POPCNT::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_POPCNT -# define CV_TRY_POPCNT 1 -# define CV_CPU_HAS_SUPPORT_POPCNT (cv::checkHardwareSupport(CV_CPU_POPCNT)) -# define CV_CPU_CALL_POPCNT(fn, args) if (CV_CPU_HAS_SUPPORT_POPCNT) return (opt_POPCNT::fn args) -#else -# define CV_TRY_POPCNT 0 -# define CV_CPU_HAS_SUPPORT_POPCNT 0 -# define CV_CPU_CALL_POPCNT(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_POPCNT(fn, args, mode, ...) CV_CPU_CALL_POPCNT(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX -# define CV_TRY_AVX 1 -# define CV_CPU_HAS_SUPPORT_AVX 1 -# define CV_CPU_CALL_AVX(fn, args) return (opt_AVX::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX -# define CV_TRY_AVX 1 -# define CV_CPU_HAS_SUPPORT_AVX (cv::checkHardwareSupport(CV_CPU_AVX)) -# define CV_CPU_CALL_AVX(fn, args) if (CV_CPU_HAS_SUPPORT_AVX) return (opt_AVX::fn args) -#else -# define CV_TRY_AVX 0 -# define CV_CPU_HAS_SUPPORT_AVX 0 -# define CV_CPU_CALL_AVX(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_AVX(fn, args, mode, ...) CV_CPU_CALL_AVX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FP16 -# define CV_TRY_FP16 1 -# define CV_CPU_HAS_SUPPORT_FP16 1 -# define CV_CPU_CALL_FP16(fn, args) return (opt_FP16::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FP16 -# define CV_TRY_FP16 1 -# define CV_CPU_HAS_SUPPORT_FP16 (cv::checkHardwareSupport(CV_CPU_FP16)) -# define CV_CPU_CALL_FP16(fn, args) if (CV_CPU_HAS_SUPPORT_FP16) return (opt_FP16::fn args) -#else -# define CV_TRY_FP16 0 -# define CV_CPU_HAS_SUPPORT_FP16 0 -# define CV_CPU_CALL_FP16(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_FP16(fn, args, mode, ...) CV_CPU_CALL_FP16(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_AVX2 -# define CV_TRY_AVX2 1 -# define CV_CPU_HAS_SUPPORT_AVX2 1 -# define CV_CPU_CALL_AVX2(fn, args) return (opt_AVX2::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_AVX2 -# define CV_TRY_AVX2 1 -# define CV_CPU_HAS_SUPPORT_AVX2 (cv::checkHardwareSupport(CV_CPU_AVX2)) -# define CV_CPU_CALL_AVX2(fn, args) if (CV_CPU_HAS_SUPPORT_AVX2) return (opt_AVX2::fn args) -#else -# define CV_TRY_AVX2 0 -# define CV_CPU_HAS_SUPPORT_AVX2 0 -# define CV_CPU_CALL_AVX2(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_AVX2(fn, args, mode, ...) CV_CPU_CALL_AVX2(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_FMA3 -# define CV_TRY_FMA3 1 -# define CV_CPU_HAS_SUPPORT_FMA3 1 -# define CV_CPU_CALL_FMA3(fn, args) return (opt_FMA3::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_FMA3 -# define CV_TRY_FMA3 1 -# define CV_CPU_HAS_SUPPORT_FMA3 (cv::checkHardwareSupport(CV_CPU_FMA3)) -# define CV_CPU_CALL_FMA3(fn, args) if (CV_CPU_HAS_SUPPORT_FMA3) return (opt_FMA3::fn args) -#else -# define CV_TRY_FMA3 0 -# define CV_CPU_HAS_SUPPORT_FMA3 0 -# define CV_CPU_CALL_FMA3(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_FMA3(fn, args, mode, ...) CV_CPU_CALL_FMA3(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_NEON -# define CV_TRY_NEON 1 -# define CV_CPU_HAS_SUPPORT_NEON 1 -# define CV_CPU_CALL_NEON(fn, args) return (opt_NEON::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_NEON -# define CV_TRY_NEON 1 -# define CV_CPU_HAS_SUPPORT_NEON (cv::checkHardwareSupport(CV_CPU_NEON)) -# define CV_CPU_CALL_NEON(fn, args) if (CV_CPU_HAS_SUPPORT_NEON) return (opt_NEON::fn args) -#else -# define CV_TRY_NEON 0 -# define CV_CPU_HAS_SUPPORT_NEON 0 -# define CV_CPU_CALL_NEON(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_NEON(fn, args, mode, ...) CV_CPU_CALL_NEON(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#if !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_COMPILE_VSX -# define CV_TRY_VSX 1 -# define CV_CPU_HAS_SUPPORT_VSX 1 -# define CV_CPU_CALL_VSX(fn, args) return (opt_VSX::fn args) -#elif !defined CV_DISABLE_OPTIMIZATION && defined CV_ENABLE_INTRINSICS && defined CV_CPU_DISPATCH_COMPILE_VSX -# define CV_TRY_VSX 1 -# define CV_CPU_HAS_SUPPORT_VSX (cv::checkHardwareSupport(CV_CPU_VSX)) -# define CV_CPU_CALL_VSX(fn, args) if (CV_CPU_HAS_SUPPORT_VSX) return (opt_VSX::fn args) -#else -# define CV_TRY_VSX 0 -# define CV_CPU_HAS_SUPPORT_VSX 0 -# define CV_CPU_CALL_VSX(fn, args) -#endif -#define __CV_CPU_DISPATCH_CHAIN_VSX(fn, args, mode, ...) CV_CPU_CALL_VSX(fn, args); __CV_EXPAND(__CV_CPU_DISPATCH_CHAIN_ ## mode(fn, args, __VA_ARGS__)) - -#define CV_CPU_CALL_BASELINE(fn, args) return (cpu_baseline::fn args) -#define __CV_CPU_DISPATCH_CHAIN_BASELINE(fn, args, mode, ...) CV_CPU_CALL_BASELINE(fn, args) /* last in sequence */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvdef.h b/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvdef.h deleted file mode 100644 index c1fcc6a17..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvdef.h +++ /dev/null @@ -1,448 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_CVDEF_H -#define OPENCV_CORE_CVDEF_H - -//! @addtogroup core_utils -//! @{ - -#if !defined CV_DOXYGEN && !defined CV_IGNORE_DEBUG_BUILD_GUARD -#if (defined(_MSC_VER) && (defined(DEBUG) || defined(_DEBUG))) || \ - (defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_DEBUG_PEDANTIC)) -// Guard to prevent using of binary incompatible binaries / runtimes -// https://github.com/opencv/opencv/pull/9161 -#define CV__DEBUG_NS_BEGIN namespace debug_build_guard { -#define CV__DEBUG_NS_END } -namespace cv { namespace debug_build_guard { } using namespace debug_build_guard; } -#endif -#endif - -#ifndef CV__DEBUG_NS_BEGIN -#define CV__DEBUG_NS_BEGIN -#define CV__DEBUG_NS_END -#endif - - -#ifdef __OPENCV_BUILD -#include "cvconfig.h" -#endif - -#ifndef __CV_EXPAND -#define __CV_EXPAND(x) x -#endif - -#ifndef __CV_CAT -#define __CV_CAT__(x, y) x ## y -#define __CV_CAT_(x, y) __CV_CAT__(x, y) -#define __CV_CAT(x, y) __CV_CAT_(x, y) -#endif - - -// undef problematic defines sometimes defined by system headers (windows.h in particular) -#undef small -#undef min -#undef max -#undef abs -#undef Complex - -#include -#include "opencv2/core/hal/interface.h" - -#if defined __ICL -# define CV_ICC __ICL -#elif defined __ICC -# define CV_ICC __ICC -#elif defined __ECL -# define CV_ICC __ECL -#elif defined __ECC -# define CV_ICC __ECC -#elif defined __INTEL_COMPILER -# define CV_ICC __INTEL_COMPILER -#endif - -#ifndef CV_INLINE -# if defined __cplusplus -# define CV_INLINE static inline -# elif defined _MSC_VER -# define CV_INLINE __inline -# else -# define CV_INLINE static -# endif -#endif - -#if defined CV_DISABLE_OPTIMIZATION || (defined CV_ICC && !defined CV_ENABLE_UNROLLED) -# define CV_ENABLE_UNROLLED 0 -#else -# define CV_ENABLE_UNROLLED 1 -#endif - -#ifdef __GNUC__ -# define CV_DECL_ALIGNED(x) __attribute__ ((aligned (x))) -#elif defined _MSC_VER -# define CV_DECL_ALIGNED(x) __declspec(align(x)) -#else -# define CV_DECL_ALIGNED(x) -#endif - -/* CPU features and intrinsics support */ -#define CV_CPU_NONE 0 -#define CV_CPU_MMX 1 -#define CV_CPU_SSE 2 -#define CV_CPU_SSE2 3 -#define CV_CPU_SSE3 4 -#define CV_CPU_SSSE3 5 -#define CV_CPU_SSE4_1 6 -#define CV_CPU_SSE4_2 7 -#define CV_CPU_POPCNT 8 -#define CV_CPU_FP16 9 -#define CV_CPU_AVX 10 -#define CV_CPU_AVX2 11 -#define CV_CPU_FMA3 12 - -#define CV_CPU_AVX_512F 13 -#define CV_CPU_AVX_512BW 14 -#define CV_CPU_AVX_512CD 15 -#define CV_CPU_AVX_512DQ 16 -#define CV_CPU_AVX_512ER 17 -#define CV_CPU_AVX_512IFMA512 18 -#define CV_CPU_AVX_512PF 19 -#define CV_CPU_AVX_512VBMI 20 -#define CV_CPU_AVX_512VL 21 - -#define CV_CPU_NEON 100 - -#define CV_CPU_VSX 200 - -// when adding to this list remember to update the following enum -#define CV_HARDWARE_MAX_FEATURE 255 - -/** @brief Available CPU features. -*/ -enum CpuFeatures { - CPU_MMX = 1, - CPU_SSE = 2, - CPU_SSE2 = 3, - CPU_SSE3 = 4, - CPU_SSSE3 = 5, - CPU_SSE4_1 = 6, - CPU_SSE4_2 = 7, - CPU_POPCNT = 8, - CPU_FP16 = 9, - CPU_AVX = 10, - CPU_AVX2 = 11, - CPU_FMA3 = 12, - - CPU_AVX_512F = 13, - CPU_AVX_512BW = 14, - CPU_AVX_512CD = 15, - CPU_AVX_512DQ = 16, - CPU_AVX_512ER = 17, - CPU_AVX_512IFMA512 = 18, - CPU_AVX_512PF = 19, - CPU_AVX_512VBMI = 20, - CPU_AVX_512VL = 21, - - CPU_NEON = 100, - - CPU_VSX = 200 -}; - - -#include "cv_cpu_dispatch.h" - - -/* fundamental constants */ -#define CV_PI 3.1415926535897932384626433832795 -#define CV_2PI 6.283185307179586476925286766559 -#define CV_LOG2 0.69314718055994530941723212145818 - -#if defined __ARM_FP16_FORMAT_IEEE \ - && !defined __CUDACC__ -# define CV_FP16_TYPE 1 -#else -# define CV_FP16_TYPE 0 -#endif - -typedef union Cv16suf -{ - short i; -#if CV_FP16_TYPE - __fp16 h; -#endif - struct _fp16Format - { - unsigned int significand : 10; - unsigned int exponent : 5; - unsigned int sign : 1; - } fmt; -} -Cv16suf; - -typedef union Cv32suf -{ - int i; - unsigned u; - float f; - struct _fp32Format - { - unsigned int significand : 23; - unsigned int exponent : 8; - unsigned int sign : 1; - } fmt; -} -Cv32suf; - -typedef union Cv64suf -{ - int64 i; - uint64 u; - double f; -} -Cv64suf; - -#define OPENCV_ABI_COMPATIBILITY 300 - -#ifdef __OPENCV_BUILD -# define DISABLE_OPENCV_24_COMPATIBILITY -#endif - -#ifdef CVAPI_EXPORTS -# if (defined _WIN32 || defined WINCE || defined __CYGWIN__) -# define CV_EXPORTS __declspec(dllexport) -# elif defined __GNUC__ && __GNUC__ >= 4 -# define CV_EXPORTS __attribute__ ((visibility ("default"))) -# endif -#endif - -#ifndef CV_EXPORTS -# define CV_EXPORTS -#endif - -#ifdef _MSC_VER -# define CV_EXPORTS_TEMPLATE -#else -# define CV_EXPORTS_TEMPLATE CV_EXPORTS -#endif - -#ifndef CV_DEPRECATED -# if defined(__GNUC__) -# define CV_DEPRECATED __attribute__ ((deprecated)) -# elif defined(_MSC_VER) -# define CV_DEPRECATED __declspec(deprecated) -# else -# define CV_DEPRECATED -# endif -#endif - -#ifndef CV_EXTERN_C -# ifdef __cplusplus -# define CV_EXTERN_C extern "C" -# else -# define CV_EXTERN_C -# endif -#endif - -/* special informative macros for wrapper generators */ -#define CV_EXPORTS_W CV_EXPORTS -#define CV_EXPORTS_W_SIMPLE CV_EXPORTS -#define CV_EXPORTS_AS(synonym) CV_EXPORTS -#define CV_EXPORTS_W_MAP CV_EXPORTS -#define CV_IN_OUT -#define CV_OUT -#define CV_PROP -#define CV_PROP_RW -#define CV_WRAP -#define CV_WRAP_AS(synonym) - -/****************************************************************************************\ -* Matrix type (Mat) * -\****************************************************************************************/ - -#define CV_MAT_CN_MASK ((CV_CN_MAX - 1) << CV_CN_SHIFT) -#define CV_MAT_CN(flags) ((((flags) & CV_MAT_CN_MASK) >> CV_CN_SHIFT) + 1) -#define CV_MAT_TYPE_MASK (CV_DEPTH_MAX*CV_CN_MAX - 1) -#define CV_MAT_TYPE(flags) ((flags) & CV_MAT_TYPE_MASK) -#define CV_MAT_CONT_FLAG_SHIFT 14 -#define CV_MAT_CONT_FLAG (1 << CV_MAT_CONT_FLAG_SHIFT) -#define CV_IS_MAT_CONT(flags) ((flags) & CV_MAT_CONT_FLAG) -#define CV_IS_CONT_MAT CV_IS_MAT_CONT -#define CV_SUBMAT_FLAG_SHIFT 15 -#define CV_SUBMAT_FLAG (1 << CV_SUBMAT_FLAG_SHIFT) -#define CV_IS_SUBMAT(flags) ((flags) & CV_MAT_SUBMAT_FLAG) - -/** Size of each channel item, - 0x8442211 = 1000 0100 0100 0010 0010 0001 0001 ~ array of sizeof(arr_type_elem) */ -#define CV_ELEM_SIZE1(type) \ - ((((sizeof(size_t)<<28)|0x8442211) >> CV_MAT_DEPTH(type)*4) & 15) - -/** 0x3a50 = 11 10 10 01 01 00 00 ~ array of log2(sizeof(arr_type_elem)) */ -#define CV_ELEM_SIZE(type) \ - (CV_MAT_CN(type) << ((((sizeof(size_t)/4+1)*16384|0x3a50) >> CV_MAT_DEPTH(type)*2) & 3)) - -#ifndef MIN -# define MIN(a,b) ((a) > (b) ? (b) : (a)) -#endif - -#ifndef MAX -# define MAX(a,b) ((a) < (b) ? (b) : (a)) -#endif - -/****************************************************************************************\ -* static analysys * -\****************************************************************************************/ - -// In practice, some macro are not processed correctly (noreturn is not detected). -// We need to use simplified definition for them. -#ifndef CV_STATIC_ANALYSIS -# if defined(__KLOCWORK__) || defined(__clang_analyzer__) || defined(__COVERITY__) -# define CV_STATIC_ANALYSIS -# endif -#endif - -/****************************************************************************************\ -* Thread sanitizer * -\****************************************************************************************/ -#ifndef CV_THREAD_SANITIZER -# if defined(__has_feature) -# if __has_feature(thread_sanitizer) -# define CV_THREAD_SANITIZER -# endif -# endif -#endif - -/****************************************************************************************\ -* exchange-add operation for atomic operations on reference counters * -\****************************************************************************************/ - -#ifdef CV_XADD - // allow to use user-defined macro -#elif defined __GNUC__ || defined __clang__ -# if defined __clang__ && __clang_major__ >= 3 && !defined __ANDROID__ && !defined __EMSCRIPTEN__ && !defined(__CUDACC__) -# ifdef __ATOMIC_ACQ_REL -# define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), delta, __ATOMIC_ACQ_REL) -# else -# define CV_XADD(addr, delta) __atomic_fetch_add((_Atomic(int)*)(addr), delta, 4) -# endif -# else -# if defined __ATOMIC_ACQ_REL && !defined __clang__ - // version for gcc >= 4.7 -# define CV_XADD(addr, delta) (int)__atomic_fetch_add((unsigned*)(addr), (unsigned)(delta), __ATOMIC_ACQ_REL) -# else -# define CV_XADD(addr, delta) (int)__sync_fetch_and_add((unsigned*)(addr), (unsigned)(delta)) -# endif -# endif -#elif defined _MSC_VER && !defined RC_INVOKED -# include -# define CV_XADD(addr, delta) (int)_InterlockedExchangeAdd((long volatile*)addr, delta) -#else - CV_INLINE CV_XADD(int* addr, int delta) { int tmp = *addr; *addr += delta; return tmp; } -#endif - - -/****************************************************************************************\ -* CV_NORETURN attribute * -\****************************************************************************************/ - -#ifndef CV_NORETURN -# if defined(__GNUC__) -# define CV_NORETURN __attribute__((__noreturn__)) -# elif defined(_MSC_VER) && (_MSC_VER >= 1300) -# define CV_NORETURN __declspec(noreturn) -# else -# define CV_NORETURN /* nothing by default */ -# endif -#endif - - -/****************************************************************************************\ -* C++ 11 * -\****************************************************************************************/ -#ifndef CV_CXX11 -# if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800) -# define CV_CXX11 1 -# endif -#else -# if CV_CXX11 == 0 -# undef CV_CXX11 -# endif -#endif - - -/****************************************************************************************\ -* C++ Move semantics * -\****************************************************************************************/ - -#ifndef CV_CXX_MOVE_SEMANTICS -# if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(_MSC_VER) && _MSC_VER >= 1600) -# define CV_CXX_MOVE_SEMANTICS 1 -# elif defined(__clang) -# if __has_feature(cxx_rvalue_references) -# define CV_CXX_MOVE_SEMANTICS 1 -# endif -# endif -#else -# if CV_CXX_MOVE_SEMANTICS == 0 -# undef CV_CXX_MOVE_SEMANTICS -# endif -#endif - -/****************************************************************************************\ -* C++11 std::array * -\****************************************************************************************/ - -#ifndef CV_CXX_STD_ARRAY -# if __cplusplus >= 201103L -# define CV_CXX_STD_ARRAY 1 -# include -# endif -#else -# if CV_CXX_STD_ARRAY == 0 -# undef CV_CXX_STD_ARRAY -# endif -#endif - -//! @} - -#endif // OPENCV_CORE_CVDEF_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvstd.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvstd.hpp deleted file mode 100644 index 0a3f553ab..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/cvstd.hpp +++ /dev/null @@ -1,1040 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_CVSTD_HPP -#define OPENCV_CORE_CVSTD_HPP - -#ifndef __cplusplus -# error cvstd.hpp header must be compiled as C++ -#endif - -#include "opencv2/core/cvdef.h" -#include -#include -#include - -#include - -// import useful primitives from stl -# include -# include -# include //for abs(int) -# include - -namespace cv -{ - static inline uchar abs(uchar a) { return a; } - static inline ushort abs(ushort a) { return a; } - static inline unsigned abs(unsigned a) { return a; } - static inline uint64 abs(uint64 a) { return a; } - - using std::min; - using std::max; - using std::abs; - using std::swap; - using std::sqrt; - using std::exp; - using std::pow; - using std::log; -} - -namespace cv { - -//! @addtogroup core_utils -//! @{ - -//////////////////////////// memory management functions //////////////////////////// - -/** @brief Allocates an aligned memory buffer. - -The function allocates the buffer of the specified size and returns it. When the buffer size is 16 -bytes or more, the returned buffer is aligned to 16 bytes. -@param bufSize Allocated buffer size. - */ -CV_EXPORTS void* fastMalloc(size_t bufSize); - -/** @brief Deallocates a memory buffer. - -The function deallocates the buffer allocated with fastMalloc . If NULL pointer is passed, the -function does nothing. C version of the function clears the pointer *pptr* to avoid problems with -double memory deallocation. -@param ptr Pointer to the allocated buffer. - */ -CV_EXPORTS void fastFree(void* ptr); - -/*! - The STL-compilant memory Allocator based on cv::fastMalloc() and cv::fastFree() -*/ -template class Allocator -{ -public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - template class rebind { typedef Allocator other; }; - - explicit Allocator() {} - ~Allocator() {} - explicit Allocator(Allocator const&) {} - template - explicit Allocator(Allocator const&) {} - - // address - pointer address(reference r) { return &r; } - const_pointer address(const_reference r) { return &r; } - - pointer allocate(size_type count, const void* =0) { return reinterpret_cast(fastMalloc(count * sizeof (_Tp))); } - void deallocate(pointer p, size_type) { fastFree(p); } - - void construct(pointer p, const _Tp& v) { new(static_cast(p)) _Tp(v); } - void destroy(pointer p) { p->~_Tp(); } - - size_type max_size() const { return cv::max(static_cast<_Tp>(-1)/sizeof(_Tp), 1); } -}; - -//! @} core_utils - -//! @cond IGNORED - -namespace detail -{ - -// Metafunction to avoid taking a reference to void. -template -struct RefOrVoid { typedef T& type; }; - -template<> -struct RefOrVoid{ typedef void type; }; - -template<> -struct RefOrVoid{ typedef const void type; }; - -template<> -struct RefOrVoid{ typedef volatile void type; }; - -template<> -struct RefOrVoid{ typedef const volatile void type; }; - -// This class would be private to Ptr, if it didn't have to be a non-template. -struct PtrOwner; - -} - -template -struct DefaultDeleter -{ - void operator () (Y* p) const; -}; - -//! @endcond - -//! @addtogroup core_basic -//! @{ - -/** @brief Template class for smart pointers with shared ownership - -A Ptr\ pretends to be a pointer to an object of type T. Unlike an ordinary pointer, however, the -object will be automatically cleaned up once all Ptr instances pointing to it are destroyed. - -Ptr is similar to boost::shared_ptr that is part of the Boost library -() and std::shared_ptr from -the [C++11](http://en.wikipedia.org/wiki/C++11) standard. - -This class provides the following advantages: -- Default constructor, copy constructor, and assignment operator for an arbitrary C++ class or C - structure. For some objects, like files, windows, mutexes, sockets, and others, a copy - constructor or an assignment operator are difficult to define. For some other objects, like - complex classifiers in OpenCV, copy constructors are absent and not easy to implement. Finally, - some of complex OpenCV and your own data structures may be written in C. However, copy - constructors and default constructors can simplify programming a lot. Besides, they are often - required (for example, by STL containers). By using a Ptr to such an object instead of the - object itself, you automatically get all of the necessary constructors and the assignment - operator. -- *O(1)* complexity of the above-mentioned operations. While some structures, like std::vector, - provide a copy constructor and an assignment operator, the operations may take a considerable - amount of time if the data structures are large. But if the structures are put into a Ptr, the - overhead is small and independent of the data size. -- Automatic and customizable cleanup, even for C structures. See the example below with FILE\*. -- Heterogeneous collections of objects. The standard STL and most other C++ and OpenCV containers - can store only objects of the same type and the same size. The classical solution to store - objects of different types in the same container is to store pointers to the base class (Base\*) - instead but then you lose the automatic memory management. Again, by using Ptr\ instead - of raw pointers, you can solve the problem. - -A Ptr is said to *own* a pointer - that is, for each Ptr there is a pointer that will be deleted -once all Ptr instances that own it are destroyed. The owned pointer may be null, in which case -nothing is deleted. Each Ptr also *stores* a pointer. The stored pointer is the pointer the Ptr -pretends to be; that is, the one you get when you use Ptr::get or the conversion to T\*. It's -usually the same as the owned pointer, but if you use casts or the general shared-ownership -constructor, the two may diverge: the Ptr will still own the original pointer, but will itself point -to something else. - -The owned pointer is treated as a black box. The only thing Ptr needs to know about it is how to -delete it. This knowledge is encapsulated in the *deleter* - an auxiliary object that is associated -with the owned pointer and shared between all Ptr instances that own it. The default deleter is an -instance of DefaultDeleter, which uses the standard C++ delete operator; as such it will work with -any pointer allocated with the standard new operator. - -However, if the pointer must be deleted in a different way, you must specify a custom deleter upon -Ptr construction. A deleter is simply a callable object that accepts the pointer as its sole -argument. For example, if you want to wrap FILE, you may do so as follows: -@code - Ptr f(fopen("myfile.txt", "w"), fclose); - if(!f) throw ...; - fprintf(f, ....); - ... - // the file will be closed automatically by f's destructor. -@endcode -Alternatively, if you want all pointers of a particular type to be deleted the same way, you can -specialize DefaultDeleter::operator() for that type, like this: -@code - namespace cv { - template<> void DefaultDeleter::operator ()(FILE * obj) const - { - fclose(obj); - } - } -@endcode -For convenience, the following types from the OpenCV C API already have such a specialization that -calls the appropriate release function: -- CvCapture -- CvFileStorage -- CvHaarClassifierCascade -- CvMat -- CvMatND -- CvMemStorage -- CvSparseMat -- CvVideoWriter -- IplImage -@note The shared ownership mechanism is implemented with reference counting. As such, cyclic -ownership (e.g. when object a contains a Ptr to object b, which contains a Ptr to object a) will -lead to all involved objects never being cleaned up. Avoid such situations. -@note It is safe to concurrently read (but not write) a Ptr instance from multiple threads and -therefore it is normally safe to use it in multi-threaded applications. The same is true for Mat and -other C++ OpenCV classes that use internal reference counts. -*/ -template -struct Ptr -{ - /** Generic programming support. */ - typedef T element_type; - - /** The default constructor creates a null Ptr - one that owns and stores a null pointer. - */ - Ptr(); - - /** - If p is null, these are equivalent to the default constructor. - Otherwise, these constructors assume ownership of p - that is, the created Ptr owns and stores p - and assumes it is the sole owner of it. Don't use them if p is already owned by another Ptr, or - else p will get deleted twice. - With the first constructor, DefaultDeleter\() becomes the associated deleter (so p will - eventually be deleted with the standard delete operator). Y must be a complete type at the point - of invocation. - With the second constructor, d becomes the associated deleter. - Y\* must be convertible to T\*. - @param p Pointer to own. - @note It is often easier to use makePtr instead. - */ - template -#ifdef DISABLE_OPENCV_24_COMPATIBILITY - explicit -#endif - Ptr(Y* p); - - /** @overload - @param d Deleter to use for the owned pointer. - @param p Pointer to own. - */ - template - Ptr(Y* p, D d); - - /** - These constructors create a Ptr that shares ownership with another Ptr - that is, own the same - pointer as o. - With the first two, the same pointer is stored, as well; for the second, Y\* must be convertible - to T\*. - With the third, p is stored, and Y may be any type. This constructor allows to have completely - unrelated owned and stored pointers, and should be used with care to avoid confusion. A relatively - benign use is to create a non-owning Ptr, like this: - @code - ptr = Ptr(Ptr(), dont_delete_me); // owns nothing; will not delete the pointer. - @endcode - @param o Ptr to share ownership with. - */ - Ptr(const Ptr& o); - - /** @overload - @param o Ptr to share ownership with. - */ - template - Ptr(const Ptr& o); - - /** @overload - @param o Ptr to share ownership with. - @param p Pointer to store. - */ - template - Ptr(const Ptr& o, T* p); - - /** The destructor is equivalent to calling Ptr::release. */ - ~Ptr(); - - /** - Assignment replaces the current Ptr instance with one that owns and stores same pointers as o and - then destroys the old instance. - @param o Ptr to share ownership with. - */ - Ptr& operator = (const Ptr& o); - - /** @overload */ - template - Ptr& operator = (const Ptr& o); - - /** If no other Ptr instance owns the owned pointer, deletes it with the associated deleter. Then sets - both the owned and the stored pointers to NULL. - */ - void release(); - - /** - `ptr.reset(...)` is equivalent to `ptr = Ptr(...)`. - @param p Pointer to own. - */ - template - void reset(Y* p); - - /** @overload - @param d Deleter to use for the owned pointer. - @param p Pointer to own. - */ - template - void reset(Y* p, D d); - - /** - Swaps the owned and stored pointers (and deleters, if any) of this and o. - @param o Ptr to swap with. - */ - void swap(Ptr& o); - - /** Returns the stored pointer. */ - T* get() const; - - /** Ordinary pointer emulation. */ - typename detail::RefOrVoid::type operator * () const; - - /** Ordinary pointer emulation. */ - T* operator -> () const; - - /** Equivalent to get(). */ - operator T* () const; - - /** ptr.empty() is equivalent to `!ptr.get()`. */ - bool empty() const; - - /** Returns a Ptr that owns the same pointer as this, and stores the same - pointer as this, except converted via static_cast to Y*. - */ - template - Ptr staticCast() const; - - /** Ditto for const_cast. */ - template - Ptr constCast() const; - - /** Ditto for dynamic_cast. */ - template - Ptr dynamicCast() const; - -#ifdef CV_CXX_MOVE_SEMANTICS - Ptr(Ptr&& o); - Ptr& operator = (Ptr&& o); -#endif - -private: - detail::PtrOwner* owner; - T* stored; - - template - friend struct Ptr; // have to do this for the cross-type copy constructor -}; - -/** Equivalent to ptr1.swap(ptr2). Provided to help write generic algorithms. */ -template -void swap(Ptr& ptr1, Ptr& ptr2); - -/** Return whether ptr1.get() and ptr2.get() are equal and not equal, respectively. */ -template -bool operator == (const Ptr& ptr1, const Ptr& ptr2); -template -bool operator != (const Ptr& ptr1, const Ptr& ptr2); - -/** `makePtr(...)` is equivalent to `Ptr(new T(...))`. It is shorter than the latter, and it's -marginally safer than using a constructor or Ptr::reset, since it ensures that the owned pointer -is new and thus not owned by any other Ptr instance. -Unfortunately, perfect forwarding is impossible to implement in C++03, and so makePtr is limited -to constructors of T that have up to 10 arguments, none of which are non-const references. - */ -template -Ptr makePtr(); -/** @overload */ -template -Ptr makePtr(const A1& a1); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8, const A9& a9); -/** @overload */ -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8, const A9& a9, const A10& a10); - -//////////////////////////////// string class //////////////////////////////// - -class CV_EXPORTS FileNode; //for string constructor from FileNode - -class CV_EXPORTS String -{ -public: - typedef char value_type; - typedef char& reference; - typedef const char& const_reference; - typedef char* pointer; - typedef const char* const_pointer; - typedef ptrdiff_t difference_type; - typedef size_t size_type; - typedef char* iterator; - typedef const char* const_iterator; - - static const size_t npos = size_t(-1); - - String(); - String(const String& str); - String(const String& str, size_t pos, size_t len = npos); - String(const char* s); - String(const char* s, size_t n); - String(size_t n, char c); - String(const char* first, const char* last); - template String(Iterator first, Iterator last); - explicit String(const FileNode& fn); - ~String(); - - String& operator=(const String& str); - String& operator=(const char* s); - String& operator=(char c); - - String& operator+=(const String& str); - String& operator+=(const char* s); - String& operator+=(char c); - - size_t size() const; - size_t length() const; - - char operator[](size_t idx) const; - char operator[](int idx) const; - - const char* begin() const; - const char* end() const; - - const char* c_str() const; - - bool empty() const; - void clear(); - - int compare(const char* s) const; - int compare(const String& str) const; - - void swap(String& str); - String substr(size_t pos = 0, size_t len = npos) const; - - size_t find(const char* s, size_t pos, size_t n) const; - size_t find(char c, size_t pos = 0) const; - size_t find(const String& str, size_t pos = 0) const; - size_t find(const char* s, size_t pos = 0) const; - - size_t rfind(const char* s, size_t pos, size_t n) const; - size_t rfind(char c, size_t pos = npos) const; - size_t rfind(const String& str, size_t pos = npos) const; - size_t rfind(const char* s, size_t pos = npos) const; - - size_t find_first_of(const char* s, size_t pos, size_t n) const; - size_t find_first_of(char c, size_t pos = 0) const; - size_t find_first_of(const String& str, size_t pos = 0) const; - size_t find_first_of(const char* s, size_t pos = 0) const; - - size_t find_last_of(const char* s, size_t pos, size_t n) const; - size_t find_last_of(char c, size_t pos = npos) const; - size_t find_last_of(const String& str, size_t pos = npos) const; - size_t find_last_of(const char* s, size_t pos = npos) const; - - friend String operator+ (const String& lhs, const String& rhs); - friend String operator+ (const String& lhs, const char* rhs); - friend String operator+ (const char* lhs, const String& rhs); - friend String operator+ (const String& lhs, char rhs); - friend String operator+ (char lhs, const String& rhs); - - String toLowerCase() const; - - String(const std::string& str); - String(const std::string& str, size_t pos, size_t len = npos); - String& operator=(const std::string& str); - String& operator+=(const std::string& str); - operator std::string() const; - - friend String operator+ (const String& lhs, const std::string& rhs); - friend String operator+ (const std::string& lhs, const String& rhs); - -private: - char* cstr_; - size_t len_; - - char* allocate(size_t len); // len without trailing 0 - void deallocate(); - - String(int); // disabled and invalid. Catch invalid usages like, commandLineParser.has(0) problem -}; - -//! @} core_basic - -////////////////////////// cv::String implementation ///////////////////////// - -//! @cond IGNORED - -inline -String::String() - : cstr_(0), len_(0) -{} - -inline -String::String(const String& str) - : cstr_(str.cstr_), len_(str.len_) -{ - if (cstr_) - CV_XADD(((int*)cstr_)-1, 1); -} - -inline -String::String(const String& str, size_t pos, size_t len) - : cstr_(0), len_(0) -{ - pos = min(pos, str.len_); - len = min(str.len_ - pos, len); - if (!len) return; - if (len == str.len_) - { - CV_XADD(((int*)str.cstr_)-1, 1); - cstr_ = str.cstr_; - len_ = str.len_; - return; - } - memcpy(allocate(len), str.cstr_ + pos, len); -} - -inline -String::String(const char* s) - : cstr_(0), len_(0) -{ - if (!s) return; - size_t len = strlen(s); - if (!len) return; - memcpy(allocate(len), s, len); -} - -inline -String::String(const char* s, size_t n) - : cstr_(0), len_(0) -{ - if (!n) return; - if (!s) return; - memcpy(allocate(n), s, n); -} - -inline -String::String(size_t n, char c) - : cstr_(0), len_(0) -{ - if (!n) return; - memset(allocate(n), c, n); -} - -inline -String::String(const char* first, const char* last) - : cstr_(0), len_(0) -{ - size_t len = (size_t)(last - first); - if (!len) return; - memcpy(allocate(len), first, len); -} - -template inline -String::String(Iterator first, Iterator last) - : cstr_(0), len_(0) -{ - size_t len = (size_t)(last - first); - if (!len) return; - char* str = allocate(len); - while (first != last) - { - *str++ = *first; - ++first; - } -} - -inline -String::~String() -{ - deallocate(); -} - -inline -String& String::operator=(const String& str) -{ - if (&str == this) return *this; - - deallocate(); - if (str.cstr_) CV_XADD(((int*)str.cstr_)-1, 1); - cstr_ = str.cstr_; - len_ = str.len_; - return *this; -} - -inline -String& String::operator=(const char* s) -{ - deallocate(); - if (!s) return *this; - size_t len = strlen(s); - if (len) memcpy(allocate(len), s, len); - return *this; -} - -inline -String& String::operator=(char c) -{ - deallocate(); - allocate(1)[0] = c; - return *this; -} - -inline -String& String::operator+=(const String& str) -{ - *this = *this + str; - return *this; -} - -inline -String& String::operator+=(const char* s) -{ - *this = *this + s; - return *this; -} - -inline -String& String::operator+=(char c) -{ - *this = *this + c; - return *this; -} - -inline -size_t String::size() const -{ - return len_; -} - -inline -size_t String::length() const -{ - return len_; -} - -inline -char String::operator[](size_t idx) const -{ - return cstr_[idx]; -} - -inline -char String::operator[](int idx) const -{ - return cstr_[idx]; -} - -inline -const char* String::begin() const -{ - return cstr_; -} - -inline -const char* String::end() const -{ - return len_ ? cstr_ + len_ : NULL; -} - -inline -bool String::empty() const -{ - return len_ == 0; -} - -inline -const char* String::c_str() const -{ - return cstr_ ? cstr_ : ""; -} - -inline -void String::swap(String& str) -{ - cv::swap(cstr_, str.cstr_); - cv::swap(len_, str.len_); -} - -inline -void String::clear() -{ - deallocate(); -} - -inline -int String::compare(const char* s) const -{ - if (cstr_ == s) return 0; - return strcmp(c_str(), s); -} - -inline -int String::compare(const String& str) const -{ - if (cstr_ == str.cstr_) return 0; - return strcmp(c_str(), str.c_str()); -} - -inline -String String::substr(size_t pos, size_t len) const -{ - return String(*this, pos, len); -} - -inline -size_t String::find(const char* s, size_t pos, size_t n) const -{ - if (n == 0 || pos + n > len_) return npos; - const char* lmax = cstr_ + len_ - n; - for (const char* i = cstr_ + pos; i <= lmax; ++i) - { - size_t j = 0; - while (j < n && s[j] == i[j]) ++j; - if (j == n) return (size_t)(i - cstr_); - } - return npos; -} - -inline -size_t String::find(char c, size_t pos) const -{ - return find(&c, pos, 1); -} - -inline -size_t String::find(const String& str, size_t pos) const -{ - return find(str.c_str(), pos, str.len_); -} - -inline -size_t String::find(const char* s, size_t pos) const -{ - if (pos >= len_ || !s[0]) return npos; - const char* lmax = cstr_ + len_; - for (const char* i = cstr_ + pos; i < lmax; ++i) - { - size_t j = 0; - while (s[j] && s[j] == i[j]) - { if(i + j >= lmax) return npos; - ++j; - } - if (!s[j]) return (size_t)(i - cstr_); - } - return npos; -} - -inline -size_t String::rfind(const char* s, size_t pos, size_t n) const -{ - if (n > len_) return npos; - if (pos > len_ - n) pos = len_ - n; - for (const char* i = cstr_ + pos; i >= cstr_; --i) - { - size_t j = 0; - while (j < n && s[j] == i[j]) ++j; - if (j == n) return (size_t)(i - cstr_); - } - return npos; -} - -inline -size_t String::rfind(char c, size_t pos) const -{ - return rfind(&c, pos, 1); -} - -inline -size_t String::rfind(const String& str, size_t pos) const -{ - return rfind(str.c_str(), pos, str.len_); -} - -inline -size_t String::rfind(const char* s, size_t pos) const -{ - return rfind(s, pos, strlen(s)); -} - -inline -size_t String::find_first_of(const char* s, size_t pos, size_t n) const -{ - if (n == 0 || pos + n > len_) return npos; - const char* lmax = cstr_ + len_; - for (const char* i = cstr_ + pos; i < lmax; ++i) - { - for (size_t j = 0; j < n; ++j) - if (s[j] == *i) - return (size_t)(i - cstr_); - } - return npos; -} - -inline -size_t String::find_first_of(char c, size_t pos) const -{ - return find_first_of(&c, pos, 1); -} - -inline -size_t String::find_first_of(const String& str, size_t pos) const -{ - return find_first_of(str.c_str(), pos, str.len_); -} - -inline -size_t String::find_first_of(const char* s, size_t pos) const -{ - if (len_ == 0) return npos; - if (pos >= len_ || !s[0]) return npos; - const char* lmax = cstr_ + len_; - for (const char* i = cstr_ + pos; i < lmax; ++i) - { - for (size_t j = 0; s[j]; ++j) - if (s[j] == *i) - return (size_t)(i - cstr_); - } - return npos; -} - -inline -size_t String::find_last_of(const char* s, size_t pos, size_t n) const -{ - if (len_ == 0) return npos; - if (pos >= len_) pos = len_ - 1; - for (const char* i = cstr_ + pos; i >= cstr_; --i) - { - for (size_t j = 0; j < n; ++j) - if (s[j] == *i) - return (size_t)(i - cstr_); - } - return npos; -} - -inline -size_t String::find_last_of(char c, size_t pos) const -{ - return find_last_of(&c, pos, 1); -} - -inline -size_t String::find_last_of(const String& str, size_t pos) const -{ - return find_last_of(str.c_str(), pos, str.len_); -} - -inline -size_t String::find_last_of(const char* s, size_t pos) const -{ - if (len_ == 0) return npos; - if (pos >= len_) pos = len_ - 1; - for (const char* i = cstr_ + pos; i >= cstr_; --i) - { - for (size_t j = 0; s[j]; ++j) - if (s[j] == *i) - return (size_t)(i - cstr_); - } - return npos; -} - -inline -String String::toLowerCase() const -{ - if (!cstr_) - return String(); - String res(cstr_, len_); - for (size_t i = 0; i < len_; ++i) - res.cstr_[i] = (char) ::tolower(cstr_[i]); - - return res; -} - -//! @endcond - -// ************************* cv::String non-member functions ************************* - -//! @relates cv::String -//! @{ - -inline -String operator + (const String& lhs, const String& rhs) -{ - String s; - s.allocate(lhs.len_ + rhs.len_); - if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_); - if (rhs.len_) memcpy(s.cstr_ + lhs.len_, rhs.cstr_, rhs.len_); - return s; -} - -inline -String operator + (const String& lhs, const char* rhs) -{ - String s; - size_t rhslen = strlen(rhs); - s.allocate(lhs.len_ + rhslen); - if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_); - if (rhslen) memcpy(s.cstr_ + lhs.len_, rhs, rhslen); - return s; -} - -inline -String operator + (const char* lhs, const String& rhs) -{ - String s; - size_t lhslen = strlen(lhs); - s.allocate(lhslen + rhs.len_); - if (lhslen) memcpy(s.cstr_, lhs, lhslen); - if (rhs.len_) memcpy(s.cstr_ + lhslen, rhs.cstr_, rhs.len_); - return s; -} - -inline -String operator + (const String& lhs, char rhs) -{ - String s; - s.allocate(lhs.len_ + 1); - if (lhs.len_) memcpy(s.cstr_, lhs.cstr_, lhs.len_); - s.cstr_[lhs.len_] = rhs; - return s; -} - -inline -String operator + (char lhs, const String& rhs) -{ - String s; - s.allocate(rhs.len_ + 1); - s.cstr_[0] = lhs; - if (rhs.len_) memcpy(s.cstr_ + 1, rhs.cstr_, rhs.len_); - return s; -} - -static inline bool operator== (const String& lhs, const String& rhs) { return 0 == lhs.compare(rhs); } -static inline bool operator== (const char* lhs, const String& rhs) { return 0 == rhs.compare(lhs); } -static inline bool operator== (const String& lhs, const char* rhs) { return 0 == lhs.compare(rhs); } -static inline bool operator!= (const String& lhs, const String& rhs) { return 0 != lhs.compare(rhs); } -static inline bool operator!= (const char* lhs, const String& rhs) { return 0 != rhs.compare(lhs); } -static inline bool operator!= (const String& lhs, const char* rhs) { return 0 != lhs.compare(rhs); } -static inline bool operator< (const String& lhs, const String& rhs) { return lhs.compare(rhs) < 0; } -static inline bool operator< (const char* lhs, const String& rhs) { return rhs.compare(lhs) > 0; } -static inline bool operator< (const String& lhs, const char* rhs) { return lhs.compare(rhs) < 0; } -static inline bool operator<= (const String& lhs, const String& rhs) { return lhs.compare(rhs) <= 0; } -static inline bool operator<= (const char* lhs, const String& rhs) { return rhs.compare(lhs) >= 0; } -static inline bool operator<= (const String& lhs, const char* rhs) { return lhs.compare(rhs) <= 0; } -static inline bool operator> (const String& lhs, const String& rhs) { return lhs.compare(rhs) > 0; } -static inline bool operator> (const char* lhs, const String& rhs) { return rhs.compare(lhs) < 0; } -static inline bool operator> (const String& lhs, const char* rhs) { return lhs.compare(rhs) > 0; } -static inline bool operator>= (const String& lhs, const String& rhs) { return lhs.compare(rhs) >= 0; } -static inline bool operator>= (const char* lhs, const String& rhs) { return rhs.compare(lhs) <= 0; } -static inline bool operator>= (const String& lhs, const char* rhs) { return lhs.compare(rhs) >= 0; } - -//! @} relates cv::String - -} // cv - -namespace std -{ - static inline void swap(cv::String& a, cv::String& b) { a.swap(b); } -} - -#include "opencv2/core/ptr.inl.hpp" - -#endif //OPENCV_CORE_CVSTD_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/hal.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/hal.hpp deleted file mode 100644 index 68900ec42..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/hal.hpp +++ /dev/null @@ -1,250 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_HAL_HPP -#define OPENCV_HAL_HPP - -#include "opencv2/core/cvdef.h" -#include "opencv2/core/cvstd.hpp" -#include "opencv2/core/hal/interface.h" - -namespace cv { namespace hal { - -//! @addtogroup core_hal_functions -//! @{ - -CV_EXPORTS int normHamming(const uchar* a, int n); -CV_EXPORTS int normHamming(const uchar* a, const uchar* b, int n); - -CV_EXPORTS int normHamming(const uchar* a, int n, int cellSize); -CV_EXPORTS int normHamming(const uchar* a, const uchar* b, int n, int cellSize); - -CV_EXPORTS int LU32f(float* A, size_t astep, int m, float* b, size_t bstep, int n); -CV_EXPORTS int LU64f(double* A, size_t astep, int m, double* b, size_t bstep, int n); -CV_EXPORTS bool Cholesky32f(float* A, size_t astep, int m, float* b, size_t bstep, int n); -CV_EXPORTS bool Cholesky64f(double* A, size_t astep, int m, double* b, size_t bstep, int n); -CV_EXPORTS void SVD32f(float* At, size_t astep, float* W, float* U, size_t ustep, float* Vt, size_t vstep, int m, int n, int flags); -CV_EXPORTS void SVD64f(double* At, size_t astep, double* W, double* U, size_t ustep, double* Vt, size_t vstep, int m, int n, int flags); -CV_EXPORTS int QR32f(float* A, size_t astep, int m, int n, int k, float* b, size_t bstep, float* hFactors); -CV_EXPORTS int QR64f(double* A, size_t astep, int m, int n, int k, double* b, size_t bstep, double* hFactors); - -CV_EXPORTS void gemm32f(const float* src1, size_t src1_step, const float* src2, size_t src2_step, - float alpha, const float* src3, size_t src3_step, float beta, float* dst, size_t dst_step, - int m_a, int n_a, int n_d, int flags); -CV_EXPORTS void gemm64f(const double* src1, size_t src1_step, const double* src2, size_t src2_step, - double alpha, const double* src3, size_t src3_step, double beta, double* dst, size_t dst_step, - int m_a, int n_a, int n_d, int flags); -CV_EXPORTS void gemm32fc(const float* src1, size_t src1_step, const float* src2, size_t src2_step, - float alpha, const float* src3, size_t src3_step, float beta, float* dst, size_t dst_step, - int m_a, int n_a, int n_d, int flags); -CV_EXPORTS void gemm64fc(const double* src1, size_t src1_step, const double* src2, size_t src2_step, - double alpha, const double* src3, size_t src3_step, double beta, double* dst, size_t dst_step, - int m_a, int n_a, int n_d, int flags); - -CV_EXPORTS int normL1_(const uchar* a, const uchar* b, int n); -CV_EXPORTS float normL1_(const float* a, const float* b, int n); -CV_EXPORTS float normL2Sqr_(const float* a, const float* b, int n); - -CV_EXPORTS void exp32f(const float* src, float* dst, int n); -CV_EXPORTS void exp64f(const double* src, double* dst, int n); -CV_EXPORTS void log32f(const float* src, float* dst, int n); -CV_EXPORTS void log64f(const double* src, double* dst, int n); - -CV_EXPORTS void fastAtan32f(const float* y, const float* x, float* dst, int n, bool angleInDegrees); -CV_EXPORTS void fastAtan64f(const double* y, const double* x, double* dst, int n, bool angleInDegrees); -CV_EXPORTS void magnitude32f(const float* x, const float* y, float* dst, int n); -CV_EXPORTS void magnitude64f(const double* x, const double* y, double* dst, int n); -CV_EXPORTS void sqrt32f(const float* src, float* dst, int len); -CV_EXPORTS void sqrt64f(const double* src, double* dst, int len); -CV_EXPORTS void invSqrt32f(const float* src, float* dst, int len); -CV_EXPORTS void invSqrt64f(const double* src, double* dst, int len); - -CV_EXPORTS void split8u(const uchar* src, uchar** dst, int len, int cn ); -CV_EXPORTS void split16u(const ushort* src, ushort** dst, int len, int cn ); -CV_EXPORTS void split32s(const int* src, int** dst, int len, int cn ); -CV_EXPORTS void split64s(const int64* src, int64** dst, int len, int cn ); - -CV_EXPORTS void merge8u(const uchar** src, uchar* dst, int len, int cn ); -CV_EXPORTS void merge16u(const ushort** src, ushort* dst, int len, int cn ); -CV_EXPORTS void merge32s(const int** src, int* dst, int len, int cn ); -CV_EXPORTS void merge64s(const int64** src, int64* dst, int len, int cn ); - -CV_EXPORTS void add8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void add8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void add16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void add16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void add32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void add32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void add64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); - -CV_EXPORTS void sub8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void sub8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void sub16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void sub16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void sub32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void sub32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void sub64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); - -CV_EXPORTS void max8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void max8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void max16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void max16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void max32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void max32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void max64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); - -CV_EXPORTS void min8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void min8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void min16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void min16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void min32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void min32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void min64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); - -CV_EXPORTS void absdiff8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void absdiff8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void absdiff16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void absdiff16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void absdiff32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void absdiff32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void absdiff64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* ); - -CV_EXPORTS void and8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void or8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void xor8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); -CV_EXPORTS void not8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* ); - -CV_EXPORTS void cmp8u(const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); -CV_EXPORTS void cmp8s(const schar* src1, size_t step1, const schar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); -CV_EXPORTS void cmp16u(const ushort* src1, size_t step1, const ushort* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); -CV_EXPORTS void cmp16s(const short* src1, size_t step1, const short* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); -CV_EXPORTS void cmp32s(const int* src1, size_t step1, const int* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); -CV_EXPORTS void cmp32f(const float* src1, size_t step1, const float* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); -CV_EXPORTS void cmp64f(const double* src1, size_t step1, const double* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _cmpop); - -CV_EXPORTS void mul8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void mul8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void mul16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void mul16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void mul32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void mul32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void mul64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scale); - -CV_EXPORTS void div8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void div8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void div16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void div16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void div32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void div32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void div64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scale); - -CV_EXPORTS void recip8u( const uchar *, size_t, const uchar * src2, size_t step2, uchar* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void recip8s( const schar *, size_t, const schar * src2, size_t step2, schar* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void recip16u( const ushort *, size_t, const ushort * src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void recip16s( const short *, size_t, const short * src2, size_t step2, short* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void recip32s( const int *, size_t, const int * src2, size_t step2, int* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void recip32f( const float *, size_t, const float * src2, size_t step2, float* dst, size_t step, int width, int height, void* scale); -CV_EXPORTS void recip64f( const double *, size_t, const double * src2, size_t step2, double* dst, size_t step, int width, int height, void* scale); - -CV_EXPORTS void addWeighted8u( const uchar* src1, size_t step1, const uchar* src2, size_t step2, uchar* dst, size_t step, int width, int height, void* _scalars ); -CV_EXPORTS void addWeighted8s( const schar* src1, size_t step1, const schar* src2, size_t step2, schar* dst, size_t step, int width, int height, void* scalars ); -CV_EXPORTS void addWeighted16u( const ushort* src1, size_t step1, const ushort* src2, size_t step2, ushort* dst, size_t step, int width, int height, void* scalars ); -CV_EXPORTS void addWeighted16s( const short* src1, size_t step1, const short* src2, size_t step2, short* dst, size_t step, int width, int height, void* scalars ); -CV_EXPORTS void addWeighted32s( const int* src1, size_t step1, const int* src2, size_t step2, int* dst, size_t step, int width, int height, void* scalars ); -CV_EXPORTS void addWeighted32f( const float* src1, size_t step1, const float* src2, size_t step2, float* dst, size_t step, int width, int height, void* scalars ); -CV_EXPORTS void addWeighted64f( const double* src1, size_t step1, const double* src2, size_t step2, double* dst, size_t step, int width, int height, void* scalars ); - -struct CV_EXPORTS DFT1D -{ - static Ptr create(int len, int count, int depth, int flags, bool * useBuffer = 0); - virtual void apply(const uchar *src, uchar *dst) = 0; - virtual ~DFT1D() {} -}; - -struct CV_EXPORTS DFT2D -{ - static Ptr create(int width, int height, int depth, - int src_channels, int dst_channels, - int flags, int nonzero_rows = 0); - virtual void apply(const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step) = 0; - virtual ~DFT2D() {} -}; - -struct CV_EXPORTS DCT2D -{ - static Ptr create(int width, int height, int depth, int flags); - virtual void apply(const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step) = 0; - virtual ~DCT2D() {} -}; - -//! @} core_hal - -//============================================================================= -// for binary compatibility with 3.0 - -//! @cond IGNORED - -CV_EXPORTS int LU(float* A, size_t astep, int m, float* b, size_t bstep, int n); -CV_EXPORTS int LU(double* A, size_t astep, int m, double* b, size_t bstep, int n); -CV_EXPORTS bool Cholesky(float* A, size_t astep, int m, float* b, size_t bstep, int n); -CV_EXPORTS bool Cholesky(double* A, size_t astep, int m, double* b, size_t bstep, int n); - -CV_EXPORTS void exp(const float* src, float* dst, int n); -CV_EXPORTS void exp(const double* src, double* dst, int n); -CV_EXPORTS void log(const float* src, float* dst, int n); -CV_EXPORTS void log(const double* src, double* dst, int n); - -CV_EXPORTS void fastAtan2(const float* y, const float* x, float* dst, int n, bool angleInDegrees); -CV_EXPORTS void magnitude(const float* x, const float* y, float* dst, int n); -CV_EXPORTS void magnitude(const double* x, const double* y, double* dst, int n); -CV_EXPORTS void sqrt(const float* src, float* dst, int len); -CV_EXPORTS void sqrt(const double* src, double* dst, int len); -CV_EXPORTS void invSqrt(const float* src, float* dst, int len); -CV_EXPORTS void invSqrt(const double* src, double* dst, int len); - -//! @endcond - -}} //cv::hal - -#endif //OPENCV_HAL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/interface.h b/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/interface.h deleted file mode 100644 index 8f640254c..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/interface.h +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef OPENCV_CORE_HAL_INTERFACE_H -#define OPENCV_CORE_HAL_INTERFACE_H - -//! @addtogroup core_hal_interface -//! @{ - -//! @name Return codes -//! @{ -#define CV_HAL_ERROR_OK 0 -#define CV_HAL_ERROR_NOT_IMPLEMENTED 1 -#define CV_HAL_ERROR_UNKNOWN -1 -//! @} - -#ifdef __cplusplus -#include -#else -#include -#include -#endif - -//! @name Data types -//! primitive types -//! - schar - signed 1 byte integer -//! - uchar - unsigned 1 byte integer -//! - short - signed 2 byte integer -//! - ushort - unsigned 2 byte integer -//! - int - signed 4 byte integer -//! - uint - unsigned 4 byte integer -//! - int64 - signed 8 byte integer -//! - uint64 - unsigned 8 byte integer -//! @{ -#if !defined _MSC_VER && !defined __BORLANDC__ -# if defined __cplusplus && __cplusplus >= 201103L && !defined __APPLE__ -# include -# ifdef __NEWLIB__ - typedef unsigned int uint; -# else - typedef std::uint32_t uint; -# endif -# else -# include - typedef uint32_t uint; -# endif -#else - typedef unsigned uint; -#endif - -typedef signed char schar; - -#ifndef __IPL_H__ - typedef unsigned char uchar; - typedef unsigned short ushort; -#endif - -#if defined _MSC_VER || defined __BORLANDC__ - typedef __int64 int64; - typedef unsigned __int64 uint64; -# define CV_BIG_INT(n) n##I64 -# define CV_BIG_UINT(n) n##UI64 -#else - typedef int64_t int64; - typedef uint64_t uint64; -# define CV_BIG_INT(n) n##LL -# define CV_BIG_UINT(n) n##ULL -#endif - -#define CV_CN_MAX 512 -#define CV_CN_SHIFT 3 -#define CV_DEPTH_MAX (1 << CV_CN_SHIFT) - -#define CV_8U 0 -#define CV_8S 1 -#define CV_16U 2 -#define CV_16S 3 -#define CV_32S 4 -#define CV_32F 5 -#define CV_64F 6 -#define CV_USRTYPE1 7 - -#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1) -#define CV_MAT_DEPTH(flags) ((flags) & CV_MAT_DEPTH_MASK) - -#define CV_MAKETYPE(depth,cn) (CV_MAT_DEPTH(depth) + (((cn)-1) << CV_CN_SHIFT)) -#define CV_MAKE_TYPE CV_MAKETYPE - -#define CV_8UC1 CV_MAKETYPE(CV_8U,1) -#define CV_8UC2 CV_MAKETYPE(CV_8U,2) -#define CV_8UC3 CV_MAKETYPE(CV_8U,3) -#define CV_8UC4 CV_MAKETYPE(CV_8U,4) -#define CV_8UC(n) CV_MAKETYPE(CV_8U,(n)) - -#define CV_8SC1 CV_MAKETYPE(CV_8S,1) -#define CV_8SC2 CV_MAKETYPE(CV_8S,2) -#define CV_8SC3 CV_MAKETYPE(CV_8S,3) -#define CV_8SC4 CV_MAKETYPE(CV_8S,4) -#define CV_8SC(n) CV_MAKETYPE(CV_8S,(n)) - -#define CV_16UC1 CV_MAKETYPE(CV_16U,1) -#define CV_16UC2 CV_MAKETYPE(CV_16U,2) -#define CV_16UC3 CV_MAKETYPE(CV_16U,3) -#define CV_16UC4 CV_MAKETYPE(CV_16U,4) -#define CV_16UC(n) CV_MAKETYPE(CV_16U,(n)) - -#define CV_16SC1 CV_MAKETYPE(CV_16S,1) -#define CV_16SC2 CV_MAKETYPE(CV_16S,2) -#define CV_16SC3 CV_MAKETYPE(CV_16S,3) -#define CV_16SC4 CV_MAKETYPE(CV_16S,4) -#define CV_16SC(n) CV_MAKETYPE(CV_16S,(n)) - -#define CV_32SC1 CV_MAKETYPE(CV_32S,1) -#define CV_32SC2 CV_MAKETYPE(CV_32S,2) -#define CV_32SC3 CV_MAKETYPE(CV_32S,3) -#define CV_32SC4 CV_MAKETYPE(CV_32S,4) -#define CV_32SC(n) CV_MAKETYPE(CV_32S,(n)) - -#define CV_32FC1 CV_MAKETYPE(CV_32F,1) -#define CV_32FC2 CV_MAKETYPE(CV_32F,2) -#define CV_32FC3 CV_MAKETYPE(CV_32F,3) -#define CV_32FC4 CV_MAKETYPE(CV_32F,4) -#define CV_32FC(n) CV_MAKETYPE(CV_32F,(n)) - -#define CV_64FC1 CV_MAKETYPE(CV_64F,1) -#define CV_64FC2 CV_MAKETYPE(CV_64F,2) -#define CV_64FC3 CV_MAKETYPE(CV_64F,3) -#define CV_64FC4 CV_MAKETYPE(CV_64F,4) -#define CV_64FC(n) CV_MAKETYPE(CV_64F,(n)) -//! @} - -//! @name Comparison operation -//! @sa cv::CmpTypes -//! @{ -#define CV_HAL_CMP_EQ 0 -#define CV_HAL_CMP_GT 1 -#define CV_HAL_CMP_GE 2 -#define CV_HAL_CMP_LT 3 -#define CV_HAL_CMP_LE 4 -#define CV_HAL_CMP_NE 5 -//! @} - -//! @name Border processing modes -//! @sa cv::BorderTypes -//! @{ -#define CV_HAL_BORDER_CONSTANT 0 -#define CV_HAL_BORDER_REPLICATE 1 -#define CV_HAL_BORDER_REFLECT 2 -#define CV_HAL_BORDER_WRAP 3 -#define CV_HAL_BORDER_REFLECT_101 4 -#define CV_HAL_BORDER_TRANSPARENT 5 -#define CV_HAL_BORDER_ISOLATED 16 -//! @} - -//! @name DFT flags -//! @{ -#define CV_HAL_DFT_INVERSE 1 -#define CV_HAL_DFT_SCALE 2 -#define CV_HAL_DFT_ROWS 4 -#define CV_HAL_DFT_COMPLEX_OUTPUT 16 -#define CV_HAL_DFT_REAL_OUTPUT 32 -#define CV_HAL_DFT_TWO_STAGE 64 -#define CV_HAL_DFT_STAGE_COLS 128 -#define CV_HAL_DFT_IS_CONTINUOUS 512 -#define CV_HAL_DFT_IS_INPLACE 1024 -//! @} - -//! @name SVD flags -//! @{ -#define CV_HAL_SVD_NO_UV 1 -#define CV_HAL_SVD_SHORT_UV 2 -#define CV_HAL_SVD_MODIFY_A 4 -#define CV_HAL_SVD_FULL_UV 8 -//! @} - -//! @name Gemm flags -//! @{ -#define CV_HAL_GEMM_1_T 1 -#define CV_HAL_GEMM_2_T 2 -#define CV_HAL_GEMM_3_T 4 -//! @} - -//! @} - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin.hpp deleted file mode 100644 index 9dcfc5623..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin.hpp +++ /dev/null @@ -1,472 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_HAL_INTRIN_HPP -#define OPENCV_HAL_INTRIN_HPP - -#include -#include -#include -#include "opencv2/core/cvdef.h" - -#define OPENCV_HAL_ADD(a, b) ((a) + (b)) -#define OPENCV_HAL_AND(a, b) ((a) & (b)) -#define OPENCV_HAL_NOP(a) (a) -#define OPENCV_HAL_1ST(a, b) (a) - -// unlike HAL API, which is in cv::hal, -// we put intrinsics into cv namespace to make its -// access from within opencv code more accessible -namespace cv { - -#ifndef CV_DOXYGEN - -#ifdef CV_CPU_DISPATCH_MODE -#define CV_CPU_OPTIMIZATION_HAL_NAMESPACE __CV_CAT(hal_, CV_CPU_DISPATCH_MODE) -#define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN namespace __CV_CAT(hal_, CV_CPU_DISPATCH_MODE) { -#define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END } -#else -#define CV_CPU_OPTIMIZATION_HAL_NAMESPACE hal_baseline -#define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN namespace hal_baseline { -#define CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END } -#endif - - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END -using namespace CV_CPU_OPTIMIZATION_HAL_NAMESPACE; -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN -#endif - -//! @addtogroup core_hal_intrin -//! @{ - -//! @cond IGNORED -template struct V_TypeTraits -{ - typedef _Tp int_type; - typedef _Tp uint_type; - typedef _Tp abs_type; - typedef _Tp sum_type; - - enum { delta = 0, shift = 0 }; - - static int_type reinterpret_int(_Tp x) { return x; } - static uint_type reinterpet_uint(_Tp x) { return x; } - static _Tp reinterpret_from_int(int_type x) { return (_Tp)x; } -}; - -template<> struct V_TypeTraits -{ - typedef uchar value_type; - typedef schar int_type; - typedef uchar uint_type; - typedef uchar abs_type; - typedef int sum_type; - - typedef ushort w_type; - typedef unsigned q_type; - - enum { delta = 128, shift = 8 }; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef schar value_type; - typedef schar int_type; - typedef uchar uint_type; - typedef uchar abs_type; - typedef int sum_type; - - typedef short w_type; - typedef int q_type; - - enum { delta = 128, shift = 8 }; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef ushort value_type; - typedef short int_type; - typedef ushort uint_type; - typedef ushort abs_type; - typedef int sum_type; - - typedef unsigned w_type; - typedef uchar nu_type; - - enum { delta = 32768, shift = 16 }; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef short value_type; - typedef short int_type; - typedef ushort uint_type; - typedef ushort abs_type; - typedef int sum_type; - - typedef int w_type; - typedef uchar nu_type; - typedef schar n_type; - - enum { delta = 128, shift = 8 }; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef unsigned value_type; - typedef int int_type; - typedef unsigned uint_type; - typedef unsigned abs_type; - typedef unsigned sum_type; - - typedef uint64 w_type; - typedef ushort nu_type; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef int value_type; - typedef int int_type; - typedef unsigned uint_type; - typedef unsigned abs_type; - typedef int sum_type; - - typedef int64 w_type; - typedef short n_type; - typedef ushort nu_type; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef uint64 value_type; - typedef int64 int_type; - typedef uint64 uint_type; - typedef uint64 abs_type; - typedef uint64 sum_type; - - typedef unsigned nu_type; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - -template<> struct V_TypeTraits -{ - typedef int64 value_type; - typedef int64 int_type; - typedef uint64 uint_type; - typedef uint64 abs_type; - typedef int64 sum_type; - - typedef int nu_type; - - static int_type reinterpret_int(value_type x) { return (int_type)x; } - static uint_type reinterpret_uint(value_type x) { return (uint_type)x; } - static value_type reinterpret_from_int(int_type x) { return (value_type)x; } -}; - - -template<> struct V_TypeTraits -{ - typedef float value_type; - typedef int int_type; - typedef unsigned uint_type; - typedef float abs_type; - typedef float sum_type; - - typedef double w_type; - - static int_type reinterpret_int(value_type x) - { - Cv32suf u; - u.f = x; - return u.i; - } - static uint_type reinterpet_uint(value_type x) - { - Cv32suf u; - u.f = x; - return u.u; - } - static value_type reinterpret_from_int(int_type x) - { - Cv32suf u; - u.i = x; - return u.f; - } -}; - -template<> struct V_TypeTraits -{ - typedef double value_type; - typedef int64 int_type; - typedef uint64 uint_type; - typedef double abs_type; - typedef double sum_type; - static int_type reinterpret_int(value_type x) - { - Cv64suf u; - u.f = x; - return u.i; - } - static uint_type reinterpet_uint(value_type x) - { - Cv64suf u; - u.f = x; - return u.u; - } - static value_type reinterpret_from_int(int_type x) - { - Cv64suf u; - u.i = x; - return u.f; - } -}; - -template struct V_SIMD128Traits -{ - enum { nlanes = 16 / sizeof(T) }; -}; - -//! @endcond - -//! @} - -#ifndef CV_DOXYGEN -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END -#endif -} - -#ifdef CV_DOXYGEN -# undef CV_SSE2 -# undef CV_NEON -# undef CV_VSX -#endif - -#if CV_SSE2 - -#include "opencv2/core/hal/intrin_sse.hpp" - -#elif CV_NEON - -#include "opencv2/core/hal/intrin_neon.hpp" - -#elif CV_VSX - -#include "opencv2/core/hal/intrin_vsx.hpp" - -#else - -#include "opencv2/core/hal/intrin_cpp.hpp" - -#endif - -//! @addtogroup core_hal_intrin -//! @{ - -#ifndef CV_SIMD128 -//! Set to 1 if current compiler supports vector extensions (NEON or SSE is enabled) -#define CV_SIMD128 0 -#endif - -#ifndef CV_SIMD128_64F -//! Set to 1 if current intrinsics implementation supports 64-bit float vectors -#define CV_SIMD128_64F 0 -#endif - -//! @} - -//================================================================================================== - -//! @cond IGNORED - -namespace cv { - -#ifndef CV_DOXYGEN -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN -#endif - -template struct V_RegTrait128; - -template <> struct V_RegTrait128 { - typedef v_uint8x16 reg; - typedef v_uint16x8 w_reg; - typedef v_uint32x4 q_reg; - typedef v_uint8x16 u_reg; - static v_uint8x16 zero() { return v_setzero_u8(); } - static v_uint8x16 all(uchar val) { return v_setall_u8(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_int8x16 reg; - typedef v_int16x8 w_reg; - typedef v_int32x4 q_reg; - typedef v_uint8x16 u_reg; - static v_int8x16 zero() { return v_setzero_s8(); } - static v_int8x16 all(schar val) { return v_setall_s8(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_uint16x8 reg; - typedef v_uint32x4 w_reg; - typedef v_int16x8 int_reg; - typedef v_uint16x8 u_reg; - static v_uint16x8 zero() { return v_setzero_u16(); } - static v_uint16x8 all(ushort val) { return v_setall_u16(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_int16x8 reg; - typedef v_int32x4 w_reg; - typedef v_uint16x8 u_reg; - static v_int16x8 zero() { return v_setzero_s16(); } - static v_int16x8 all(short val) { return v_setall_s16(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_uint32x4 reg; - typedef v_uint64x2 w_reg; - typedef v_int32x4 int_reg; - typedef v_uint32x4 u_reg; - static v_uint32x4 zero() { return v_setzero_u32(); } - static v_uint32x4 all(unsigned val) { return v_setall_u32(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_int32x4 reg; - typedef v_int64x2 w_reg; - typedef v_uint32x4 u_reg; - static v_int32x4 zero() { return v_setzero_s32(); } - static v_int32x4 all(int val) { return v_setall_s32(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_uint64x2 reg; - static v_uint64x2 zero() { return v_setzero_u64(); } - static v_uint64x2 all(uint64 val) { return v_setall_u64(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_int64x2 reg; - static v_int64x2 zero() { return v_setzero_s64(); } - static v_int64x2 all(int64 val) { return v_setall_s64(val); } -}; - -template <> struct V_RegTrait128 { - typedef v_float32x4 reg; - typedef v_int32x4 int_reg; - typedef v_float32x4 u_reg; - static v_float32x4 zero() { return v_setzero_f32(); } - static v_float32x4 all(float val) { return v_setall_f32(val); } -}; - -#if CV_SIMD128_64F -template <> struct V_RegTrait128 { - typedef v_float64x2 reg; - typedef v_int32x4 int_reg; - typedef v_float64x2 u_reg; - static v_float64x2 zero() { return v_setzero_f64(); } - static v_float64x2 all(double val) { return v_setall_f64(val); } -}; -#endif - -inline unsigned int trailingZeros32(unsigned int value) { -#if defined(_MSC_VER) -#if (_MSC_VER < 1700) || defined(_M_ARM) - unsigned long index = 0; - _BitScanForward(&index, value); - return (unsigned int)index; -#else - return _tzcnt_u32(value); -#endif -#elif defined(__GNUC__) || defined(__GNUG__) - return __builtin_ctz(value); -#elif defined(__ICC) || defined(__INTEL_COMPILER) - return _bit_scan_forward(value); -#elif defined(__clang__) - return llvm.cttz.i32(value, true); -#else - static const int MultiplyDeBruijnBitPosition[32] = { - 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, - 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 }; - return MultiplyDeBruijnBitPosition[((uint32_t)((value & -value) * 0x077CB531U)) >> 27]; -#endif -} - -#ifndef CV_DOXYGEN -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END -#endif - -} // cv:: - -//! @endcond - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_neon.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_neon.hpp deleted file mode 100644 index c3c49c902..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_neon.hpp +++ /dev/null @@ -1,1303 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_HAL_INTRIN_NEON_HPP -#define OPENCV_HAL_INTRIN_NEON_HPP - -#include -#include "opencv2/core/utility.hpp" - -namespace cv -{ - -//! @cond IGNORED - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN - -#define CV_SIMD128 1 -#if defined(__aarch64__) -#define CV_SIMD128_64F 1 -#else -#define CV_SIMD128_64F 0 -#endif - -#if CV_SIMD128_64F -#define OPENCV_HAL_IMPL_NEON_REINTERPRET(_Tpv, suffix) \ -template static inline \ -_Tpv vreinterpretq_##suffix##_f64(T a) { return (_Tpv) a; } \ -template static inline \ -float64x2_t vreinterpretq_f64_##suffix(T a) { return (float64x2_t) a; } -OPENCV_HAL_IMPL_NEON_REINTERPRET(uint8x16_t, u8) -OPENCV_HAL_IMPL_NEON_REINTERPRET(int8x16_t, s8) -OPENCV_HAL_IMPL_NEON_REINTERPRET(uint16x8_t, u16) -OPENCV_HAL_IMPL_NEON_REINTERPRET(int16x8_t, s16) -OPENCV_HAL_IMPL_NEON_REINTERPRET(uint32x4_t, u32) -OPENCV_HAL_IMPL_NEON_REINTERPRET(int32x4_t, s32) -OPENCV_HAL_IMPL_NEON_REINTERPRET(uint64x2_t, u64) -OPENCV_HAL_IMPL_NEON_REINTERPRET(int64x2_t, s64) -OPENCV_HAL_IMPL_NEON_REINTERPRET(float32x4_t, f32) -#endif - -struct v_uint8x16 -{ - typedef uchar lane_type; - enum { nlanes = 16 }; - - v_uint8x16() {} - explicit v_uint8x16(uint8x16_t v) : val(v) {} - v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, - uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) - { - uchar v[] = {v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15}; - val = vld1q_u8(v); - } - uchar get0() const - { - return vgetq_lane_u8(val, 0); - } - - uint8x16_t val; -}; - -struct v_int8x16 -{ - typedef schar lane_type; - enum { nlanes = 16 }; - - v_int8x16() {} - explicit v_int8x16(int8x16_t v) : val(v) {} - v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, - schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) - { - schar v[] = {v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15}; - val = vld1q_s8(v); - } - schar get0() const - { - return vgetq_lane_s8(val, 0); - } - - int8x16_t val; -}; - -struct v_uint16x8 -{ - typedef ushort lane_type; - enum { nlanes = 8 }; - - v_uint16x8() {} - explicit v_uint16x8(uint16x8_t v) : val(v) {} - v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) - { - ushort v[] = {v0, v1, v2, v3, v4, v5, v6, v7}; - val = vld1q_u16(v); - } - ushort get0() const - { - return vgetq_lane_u16(val, 0); - } - - uint16x8_t val; -}; - -struct v_int16x8 -{ - typedef short lane_type; - enum { nlanes = 8 }; - - v_int16x8() {} - explicit v_int16x8(int16x8_t v) : val(v) {} - v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) - { - short v[] = {v0, v1, v2, v3, v4, v5, v6, v7}; - val = vld1q_s16(v); - } - short get0() const - { - return vgetq_lane_s16(val, 0); - } - - int16x8_t val; -}; - -struct v_uint32x4 -{ - typedef unsigned lane_type; - enum { nlanes = 4 }; - - v_uint32x4() {} - explicit v_uint32x4(uint32x4_t v) : val(v) {} - v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) - { - unsigned v[] = {v0, v1, v2, v3}; - val = vld1q_u32(v); - } - unsigned get0() const - { - return vgetq_lane_u32(val, 0); - } - - uint32x4_t val; -}; - -struct v_int32x4 -{ - typedef int lane_type; - enum { nlanes = 4 }; - - v_int32x4() {} - explicit v_int32x4(int32x4_t v) : val(v) {} - v_int32x4(int v0, int v1, int v2, int v3) - { - int v[] = {v0, v1, v2, v3}; - val = vld1q_s32(v); - } - int get0() const - { - return vgetq_lane_s32(val, 0); - } - int32x4_t val; -}; - -struct v_float32x4 -{ - typedef float lane_type; - enum { nlanes = 4 }; - - v_float32x4() {} - explicit v_float32x4(float32x4_t v) : val(v) {} - v_float32x4(float v0, float v1, float v2, float v3) - { - float v[] = {v0, v1, v2, v3}; - val = vld1q_f32(v); - } - float get0() const - { - return vgetq_lane_f32(val, 0); - } - float32x4_t val; -}; - -struct v_uint64x2 -{ - typedef uint64 lane_type; - enum { nlanes = 2 }; - - v_uint64x2() {} - explicit v_uint64x2(uint64x2_t v) : val(v) {} - v_uint64x2(uint64 v0, uint64 v1) - { - uint64 v[] = {v0, v1}; - val = vld1q_u64(v); - } - uint64 get0() const - { - return vgetq_lane_u64(val, 0); - } - uint64x2_t val; -}; - -struct v_int64x2 -{ - typedef int64 lane_type; - enum { nlanes = 2 }; - - v_int64x2() {} - explicit v_int64x2(int64x2_t v) : val(v) {} - v_int64x2(int64 v0, int64 v1) - { - int64 v[] = {v0, v1}; - val = vld1q_s64(v); - } - int64 get0() const - { - return vgetq_lane_s64(val, 0); - } - int64x2_t val; -}; - -#if CV_SIMD128_64F -struct v_float64x2 -{ - typedef double lane_type; - enum { nlanes = 2 }; - - v_float64x2() {} - explicit v_float64x2(float64x2_t v) : val(v) {} - v_float64x2(double v0, double v1) - { - double v[] = {v0, v1}; - val = vld1q_f64(v); - } - double get0() const - { - return vgetq_lane_f64(val, 0); - } - float64x2_t val; -}; -#endif - -#if CV_FP16 -// Workaround for old compilers -template static inline int16x4_t vreinterpret_s16_f16(T a) -{ return (int16x4_t)a; } -template static inline float16x4_t vreinterpret_f16_s16(T a) -{ return (float16x4_t)a; } -template static inline float16x4_t cv_vld1_f16(const T* ptr) -{ -#ifndef vld1_f16 // APPLE compiler defines vld1_f16 as macro - return vreinterpret_f16_s16(vld1_s16((const short*)ptr)); -#else - return vld1_f16((const __fp16*)ptr); -#endif -} -template static inline void cv_vst1_f16(T* ptr, float16x4_t a) -{ -#ifndef vst1_f16 // APPLE compiler defines vst1_f16 as macro - vst1_s16((short*)ptr, vreinterpret_s16_f16(a)); -#else - vst1_f16((__fp16*)ptr, a); -#endif -} - -struct v_float16x4 -{ - typedef short lane_type; - enum { nlanes = 4 }; - - v_float16x4() {} - explicit v_float16x4(float16x4_t v) : val(v) {} - v_float16x4(short v0, short v1, short v2, short v3) - { - short v[] = {v0, v1, v2, v3}; - val = cv_vld1_f16(v); - } - short get0() const - { - return vget_lane_s16(vreinterpret_s16_f16(val), 0); - } - float16x4_t val; -}; -#endif - -#define OPENCV_HAL_IMPL_NEON_INIT(_Tpv, _Tp, suffix) \ -inline v_##_Tpv v_setzero_##suffix() { return v_##_Tpv(vdupq_n_##suffix((_Tp)0)); } \ -inline v_##_Tpv v_setall_##suffix(_Tp v) { return v_##_Tpv(vdupq_n_##suffix(v)); } \ -inline _Tpv##_t vreinterpretq_##suffix##_##suffix(_Tpv##_t v) { return v; } \ -inline v_uint8x16 v_reinterpret_as_u8(const v_##_Tpv& v) { return v_uint8x16(vreinterpretq_u8_##suffix(v.val)); } \ -inline v_int8x16 v_reinterpret_as_s8(const v_##_Tpv& v) { return v_int8x16(vreinterpretq_s8_##suffix(v.val)); } \ -inline v_uint16x8 v_reinterpret_as_u16(const v_##_Tpv& v) { return v_uint16x8(vreinterpretq_u16_##suffix(v.val)); } \ -inline v_int16x8 v_reinterpret_as_s16(const v_##_Tpv& v) { return v_int16x8(vreinterpretq_s16_##suffix(v.val)); } \ -inline v_uint32x4 v_reinterpret_as_u32(const v_##_Tpv& v) { return v_uint32x4(vreinterpretq_u32_##suffix(v.val)); } \ -inline v_int32x4 v_reinterpret_as_s32(const v_##_Tpv& v) { return v_int32x4(vreinterpretq_s32_##suffix(v.val)); } \ -inline v_uint64x2 v_reinterpret_as_u64(const v_##_Tpv& v) { return v_uint64x2(vreinterpretq_u64_##suffix(v.val)); } \ -inline v_int64x2 v_reinterpret_as_s64(const v_##_Tpv& v) { return v_int64x2(vreinterpretq_s64_##suffix(v.val)); } \ -inline v_float32x4 v_reinterpret_as_f32(const v_##_Tpv& v) { return v_float32x4(vreinterpretq_f32_##suffix(v.val)); } - -OPENCV_HAL_IMPL_NEON_INIT(uint8x16, uchar, u8) -OPENCV_HAL_IMPL_NEON_INIT(int8x16, schar, s8) -OPENCV_HAL_IMPL_NEON_INIT(uint16x8, ushort, u16) -OPENCV_HAL_IMPL_NEON_INIT(int16x8, short, s16) -OPENCV_HAL_IMPL_NEON_INIT(uint32x4, unsigned, u32) -OPENCV_HAL_IMPL_NEON_INIT(int32x4, int, s32) -OPENCV_HAL_IMPL_NEON_INIT(uint64x2, uint64, u64) -OPENCV_HAL_IMPL_NEON_INIT(int64x2, int64, s64) -OPENCV_HAL_IMPL_NEON_INIT(float32x4, float, f32) -#if CV_SIMD128_64F -#define OPENCV_HAL_IMPL_NEON_INIT_64(_Tpv, suffix) \ -inline v_float64x2 v_reinterpret_as_f64(const v_##_Tpv& v) { return v_float64x2(vreinterpretq_f64_##suffix(v.val)); } -OPENCV_HAL_IMPL_NEON_INIT(float64x2, double, f64) -OPENCV_HAL_IMPL_NEON_INIT_64(uint8x16, u8) -OPENCV_HAL_IMPL_NEON_INIT_64(int8x16, s8) -OPENCV_HAL_IMPL_NEON_INIT_64(uint16x8, u16) -OPENCV_HAL_IMPL_NEON_INIT_64(int16x8, s16) -OPENCV_HAL_IMPL_NEON_INIT_64(uint32x4, u32) -OPENCV_HAL_IMPL_NEON_INIT_64(int32x4, s32) -OPENCV_HAL_IMPL_NEON_INIT_64(uint64x2, u64) -OPENCV_HAL_IMPL_NEON_INIT_64(int64x2, s64) -OPENCV_HAL_IMPL_NEON_INIT_64(float32x4, f32) -OPENCV_HAL_IMPL_NEON_INIT_64(float64x2, f64) -#endif - -#define OPENCV_HAL_IMPL_NEON_PACK(_Tpvec, _Tp, hreg, suffix, _Tpwvec, pack, mov, rshr) \ -inline _Tpvec v_##pack(const _Tpwvec& a, const _Tpwvec& b) \ -{ \ - hreg a1 = mov(a.val), b1 = mov(b.val); \ - return _Tpvec(vcombine_##suffix(a1, b1)); \ -} \ -inline void v_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ -{ \ - hreg a1 = mov(a.val); \ - vst1_##suffix(ptr, a1); \ -} \ -template inline \ -_Tpvec v_rshr_##pack(const _Tpwvec& a, const _Tpwvec& b) \ -{ \ - hreg a1 = rshr(a.val, n); \ - hreg b1 = rshr(b.val, n); \ - return _Tpvec(vcombine_##suffix(a1, b1)); \ -} \ -template inline \ -void v_rshr_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ -{ \ - hreg a1 = rshr(a.val, n); \ - vst1_##suffix(ptr, a1); \ -} - -OPENCV_HAL_IMPL_NEON_PACK(v_uint8x16, uchar, uint8x8_t, u8, v_uint16x8, pack, vqmovn_u16, vqrshrn_n_u16) -OPENCV_HAL_IMPL_NEON_PACK(v_int8x16, schar, int8x8_t, s8, v_int16x8, pack, vqmovn_s16, vqrshrn_n_s16) -OPENCV_HAL_IMPL_NEON_PACK(v_uint16x8, ushort, uint16x4_t, u16, v_uint32x4, pack, vqmovn_u32, vqrshrn_n_u32) -OPENCV_HAL_IMPL_NEON_PACK(v_int16x8, short, int16x4_t, s16, v_int32x4, pack, vqmovn_s32, vqrshrn_n_s32) -OPENCV_HAL_IMPL_NEON_PACK(v_uint32x4, unsigned, uint32x2_t, u32, v_uint64x2, pack, vmovn_u64, vrshrn_n_u64) -OPENCV_HAL_IMPL_NEON_PACK(v_int32x4, int, int32x2_t, s32, v_int64x2, pack, vmovn_s64, vrshrn_n_s64) - -OPENCV_HAL_IMPL_NEON_PACK(v_uint8x16, uchar, uint8x8_t, u8, v_int16x8, pack_u, vqmovun_s16, vqrshrun_n_s16) -OPENCV_HAL_IMPL_NEON_PACK(v_uint16x8, ushort, uint16x4_t, u16, v_int32x4, pack_u, vqmovun_s32, vqrshrun_n_s32) - -inline v_float32x4 v_matmul(const v_float32x4& v, const v_float32x4& m0, - const v_float32x4& m1, const v_float32x4& m2, - const v_float32x4& m3) -{ - float32x2_t vl = vget_low_f32(v.val), vh = vget_high_f32(v.val); - float32x4_t res = vmulq_lane_f32(m0.val, vl, 0); - res = vmlaq_lane_f32(res, m1.val, vl, 1); - res = vmlaq_lane_f32(res, m2.val, vh, 0); - res = vmlaq_lane_f32(res, m3.val, vh, 1); - return v_float32x4(res); -} - -inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, - const v_float32x4& m1, const v_float32x4& m2, - const v_float32x4& a) -{ - float32x2_t vl = vget_low_f32(v.val), vh = vget_high_f32(v.val); - float32x4_t res = vmulq_lane_f32(m0.val, vl, 0); - res = vmlaq_lane_f32(res, m1.val, vl, 1); - res = vmlaq_lane_f32(res, m2.val, vh, 0); - res = vaddq_f32(res, a.val); - return v_float32x4(res); -} - -#define OPENCV_HAL_IMPL_NEON_BIN_OP(bin_op, _Tpvec, intrin) \ -inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ -{ \ - return _Tpvec(intrin(a.val, b.val)); \ -} \ -inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ -{ \ - a.val = intrin(a.val, b.val); \ - return a; \ -} - -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint8x16, vqaddq_u8) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint8x16, vqsubq_u8) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int8x16, vqaddq_s8) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int8x16, vqsubq_s8) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint16x8, vqaddq_u16) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint16x8, vqsubq_u16) -OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_uint16x8, vmulq_u16) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int16x8, vqaddq_s16) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int16x8, vqsubq_s16) -OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_int16x8, vmulq_s16) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int32x4, vaddq_s32) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int32x4, vsubq_s32) -OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_int32x4, vmulq_s32) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint32x4, vaddq_u32) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint32x4, vsubq_u32) -OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_uint32x4, vmulq_u32) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_float32x4, vaddq_f32) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_float32x4, vsubq_f32) -OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_float32x4, vmulq_f32) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_int64x2, vaddq_s64) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_int64x2, vsubq_s64) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_uint64x2, vaddq_u64) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_uint64x2, vsubq_u64) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_BIN_OP(/, v_float32x4, vdivq_f32) -OPENCV_HAL_IMPL_NEON_BIN_OP(+, v_float64x2, vaddq_f64) -OPENCV_HAL_IMPL_NEON_BIN_OP(-, v_float64x2, vsubq_f64) -OPENCV_HAL_IMPL_NEON_BIN_OP(*, v_float64x2, vmulq_f64) -OPENCV_HAL_IMPL_NEON_BIN_OP(/, v_float64x2, vdivq_f64) -#else -inline v_float32x4 operator / (const v_float32x4& a, const v_float32x4& b) -{ - float32x4_t reciprocal = vrecpeq_f32(b.val); - reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); - reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); - return v_float32x4(vmulq_f32(a.val, reciprocal)); -} -inline v_float32x4& operator /= (v_float32x4& a, const v_float32x4& b) -{ - float32x4_t reciprocal = vrecpeq_f32(b.val); - reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); - reciprocal = vmulq_f32(vrecpsq_f32(b.val, reciprocal), reciprocal); - a.val = vmulq_f32(a.val, reciprocal); - return a; -} -#endif - -inline void v_mul_expand(const v_int16x8& a, const v_int16x8& b, - v_int32x4& c, v_int32x4& d) -{ - c.val = vmull_s16(vget_low_s16(a.val), vget_low_s16(b.val)); - d.val = vmull_s16(vget_high_s16(a.val), vget_high_s16(b.val)); -} - -inline void v_mul_expand(const v_uint16x8& a, const v_uint16x8& b, - v_uint32x4& c, v_uint32x4& d) -{ - c.val = vmull_u16(vget_low_u16(a.val), vget_low_u16(b.val)); - d.val = vmull_u16(vget_high_u16(a.val), vget_high_u16(b.val)); -} - -inline void v_mul_expand(const v_uint32x4& a, const v_uint32x4& b, - v_uint64x2& c, v_uint64x2& d) -{ - c.val = vmull_u32(vget_low_u32(a.val), vget_low_u32(b.val)); - d.val = vmull_u32(vget_high_u32(a.val), vget_high_u32(b.val)); -} - -inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b) -{ - int32x4_t c = vmull_s16(vget_low_s16(a.val), vget_low_s16(b.val)); - int32x4_t d = vmull_s16(vget_high_s16(a.val), vget_high_s16(b.val)); - int32x4x2_t cd = vuzpq_s32(c, d); - return v_int32x4(vaddq_s32(cd.val[0], cd.val[1])); -} - -#define OPENCV_HAL_IMPL_NEON_LOGIC_OP(_Tpvec, suffix) \ - OPENCV_HAL_IMPL_NEON_BIN_OP(&, _Tpvec, vandq_##suffix) \ - OPENCV_HAL_IMPL_NEON_BIN_OP(|, _Tpvec, vorrq_##suffix) \ - OPENCV_HAL_IMPL_NEON_BIN_OP(^, _Tpvec, veorq_##suffix) \ - inline _Tpvec operator ~ (const _Tpvec& a) \ - { \ - return _Tpvec(vreinterpretq_##suffix##_u8(vmvnq_u8(vreinterpretq_u8_##suffix(a.val)))); \ - } - -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint8x16, u8) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int8x16, s8) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint16x8, u16) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int16x8, s16) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint32x4, u32) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int32x4, s32) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_uint64x2, u64) -OPENCV_HAL_IMPL_NEON_LOGIC_OP(v_int64x2, s64) - -#define OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(bin_op, intrin) \ -inline v_float32x4 operator bin_op (const v_float32x4& a, const v_float32x4& b) \ -{ \ - return v_float32x4(vreinterpretq_f32_s32(intrin(vreinterpretq_s32_f32(a.val), vreinterpretq_s32_f32(b.val)))); \ -} \ -inline v_float32x4& operator bin_op##= (v_float32x4& a, const v_float32x4& b) \ -{ \ - a.val = vreinterpretq_f32_s32(intrin(vreinterpretq_s32_f32(a.val), vreinterpretq_s32_f32(b.val))); \ - return a; \ -} - -OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(&, vandq_s32) -OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(|, vorrq_s32) -OPENCV_HAL_IMPL_NEON_FLT_BIT_OP(^, veorq_s32) - -inline v_float32x4 operator ~ (const v_float32x4& a) -{ - return v_float32x4(vreinterpretq_f32_s32(vmvnq_s32(vreinterpretq_s32_f32(a.val)))); -} - -#if CV_SIMD128_64F -inline v_float32x4 v_sqrt(const v_float32x4& x) -{ - return v_float32x4(vsqrtq_f32(x.val)); -} - -inline v_float32x4 v_invsqrt(const v_float32x4& x) -{ - v_float32x4 one = v_setall_f32(1.0f); - return one / v_sqrt(x); -} -#else -inline v_float32x4 v_sqrt(const v_float32x4& x) -{ - float32x4_t x1 = vmaxq_f32(x.val, vdupq_n_f32(FLT_MIN)); - float32x4_t e = vrsqrteq_f32(x1); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x1, e), e), e); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x1, e), e), e); - return v_float32x4(vmulq_f32(x.val, e)); -} - -inline v_float32x4 v_invsqrt(const v_float32x4& x) -{ - float32x4_t e = vrsqrteq_f32(x.val); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); - return v_float32x4(e); -} -#endif - -#define OPENCV_HAL_IMPL_NEON_ABS(_Tpuvec, _Tpsvec, usuffix, ssuffix) \ -inline _Tpuvec v_abs(const _Tpsvec& a) { return v_reinterpret_as_##usuffix(_Tpsvec(vabsq_##ssuffix(a.val))); } - -OPENCV_HAL_IMPL_NEON_ABS(v_uint8x16, v_int8x16, u8, s8) -OPENCV_HAL_IMPL_NEON_ABS(v_uint16x8, v_int16x8, u16, s16) -OPENCV_HAL_IMPL_NEON_ABS(v_uint32x4, v_int32x4, u32, s32) - -inline v_float32x4 v_abs(v_float32x4 x) -{ return v_float32x4(vabsq_f32(x.val)); } - -#if CV_SIMD128_64F -#define OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(bin_op, intrin) \ -inline v_float64x2 operator bin_op (const v_float64x2& a, const v_float64x2& b) \ -{ \ - return v_float64x2(vreinterpretq_f64_s64(intrin(vreinterpretq_s64_f64(a.val), vreinterpretq_s64_f64(b.val)))); \ -} \ -inline v_float64x2& operator bin_op##= (v_float64x2& a, const v_float64x2& b) \ -{ \ - a.val = vreinterpretq_f64_s64(intrin(vreinterpretq_s64_f64(a.val), vreinterpretq_s64_f64(b.val))); \ - return a; \ -} - -OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(&, vandq_s64) -OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(|, vorrq_s64) -OPENCV_HAL_IMPL_NEON_DBL_BIT_OP(^, veorq_s64) - -inline v_float64x2 operator ~ (const v_float64x2& a) -{ - return v_float64x2(vreinterpretq_f64_s32(vmvnq_s32(vreinterpretq_s32_f64(a.val)))); -} - -inline v_float64x2 v_sqrt(const v_float64x2& x) -{ - return v_float64x2(vsqrtq_f64(x.val)); -} - -inline v_float64x2 v_invsqrt(const v_float64x2& x) -{ - v_float64x2 one = v_setall_f64(1.0f); - return one / v_sqrt(x); -} - -inline v_float64x2 v_abs(v_float64x2 x) -{ return v_float64x2(vabsq_f64(x.val)); } -#endif - -// TODO: exp, log, sin, cos - -#define OPENCV_HAL_IMPL_NEON_BIN_FUNC(_Tpvec, func, intrin) \ -inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ -{ \ - return _Tpvec(intrin(a.val, b.val)); \ -} - -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_min, vminq_u8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_max, vmaxq_u8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_min, vminq_s8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_max, vmaxq_s8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_min, vminq_u16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_max, vmaxq_u16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_min, vminq_s16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_max, vmaxq_s16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint32x4, v_min, vminq_u32) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint32x4, v_max, vmaxq_u32) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int32x4, v_min, vminq_s32) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int32x4, v_max, vmaxq_s32) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float32x4, v_min, vminq_f32) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float32x4, v_max, vmaxq_f32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float64x2, v_min, vminq_f64) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float64x2, v_max, vmaxq_f64) -#endif - -#if CV_SIMD128_64F -inline int64x2_t vmvnq_s64(int64x2_t a) -{ - int64x2_t vx = vreinterpretq_s64_u32(vdupq_n_u32(0xFFFFFFFF)); - return veorq_s64(a, vx); -} -inline uint64x2_t vmvnq_u64(uint64x2_t a) -{ - uint64x2_t vx = vreinterpretq_u64_u32(vdupq_n_u32(0xFFFFFFFF)); - return veorq_u64(a, vx); -} -#endif -#define OPENCV_HAL_IMPL_NEON_INT_CMP_OP(_Tpvec, cast, suffix, not_suffix) \ -inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(cast(vceqq_##suffix(a.val, b.val))); } \ -inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(cast(vmvnq_##not_suffix(vceqq_##suffix(a.val, b.val)))); } \ -inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(cast(vcltq_##suffix(a.val, b.val))); } \ -inline _Tpvec operator > (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(cast(vcgtq_##suffix(a.val, b.val))); } \ -inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(cast(vcleq_##suffix(a.val, b.val))); } \ -inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(cast(vcgeq_##suffix(a.val, b.val))); } - -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint8x16, OPENCV_HAL_NOP, u8, u8) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int8x16, vreinterpretq_s8_u8, s8, u8) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint16x8, OPENCV_HAL_NOP, u16, u16) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int16x8, vreinterpretq_s16_u16, s16, u16) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint32x4, OPENCV_HAL_NOP, u32, u32) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int32x4, vreinterpretq_s32_u32, s32, u32) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_float32x4, vreinterpretq_f32_u32, f32, u32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_uint64x2, OPENCV_HAL_NOP, u64, u64) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_int64x2, vreinterpretq_s64_u64, s64, u64) -OPENCV_HAL_IMPL_NEON_INT_CMP_OP(v_float64x2, vreinterpretq_f64_u64, f64, u64) -#endif - -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_add_wrap, vaddq_u8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_add_wrap, vaddq_s8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_add_wrap, vaddq_u16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_add_wrap, vaddq_s16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_sub_wrap, vsubq_u8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int8x16, v_sub_wrap, vsubq_s8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_sub_wrap, vsubq_u16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_int16x8, v_sub_wrap, vsubq_s16) - -// TODO: absdiff for signed integers -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint8x16, v_absdiff, vabdq_u8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint16x8, v_absdiff, vabdq_u16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_uint32x4, v_absdiff, vabdq_u32) -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float32x4, v_absdiff, vabdq_f32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_BIN_FUNC(v_float64x2, v_absdiff, vabdq_f64) -#endif - -#define OPENCV_HAL_IMPL_NEON_BIN_FUNC2(_Tpvec, _Tpvec2, cast, func, intrin) \ -inline _Tpvec2 func(const _Tpvec& a, const _Tpvec& b) \ -{ \ - return _Tpvec2(cast(intrin(a.val, b.val))); \ -} - -OPENCV_HAL_IMPL_NEON_BIN_FUNC2(v_int8x16, v_uint8x16, vreinterpretq_u8_s8, v_absdiff, vabdq_s8) -OPENCV_HAL_IMPL_NEON_BIN_FUNC2(v_int16x8, v_uint16x8, vreinterpretq_u16_s16, v_absdiff, vabdq_s16) -OPENCV_HAL_IMPL_NEON_BIN_FUNC2(v_int32x4, v_uint32x4, vreinterpretq_u32_s32, v_absdiff, vabdq_s32) - -inline v_float32x4 v_magnitude(const v_float32x4& a, const v_float32x4& b) -{ - v_float32x4 x(vmlaq_f32(vmulq_f32(a.val, a.val), b.val, b.val)); - return v_sqrt(x); -} - -inline v_float32x4 v_sqr_magnitude(const v_float32x4& a, const v_float32x4& b) -{ - return v_float32x4(vmlaq_f32(vmulq_f32(a.val, a.val), b.val, b.val)); -} - -inline v_float32x4 v_muladd(const v_float32x4& a, const v_float32x4& b, const v_float32x4& c) -{ - return v_float32x4(vmlaq_f32(c.val, a.val, b.val)); -} - -#if CV_SIMD128_64F -inline v_float64x2 v_magnitude(const v_float64x2& a, const v_float64x2& b) -{ - v_float64x2 x(vaddq_f64(vmulq_f64(a.val, a.val), vmulq_f64(b.val, b.val))); - return v_sqrt(x); -} - -inline v_float64x2 v_sqr_magnitude(const v_float64x2& a, const v_float64x2& b) -{ - return v_float64x2(vaddq_f64(vmulq_f64(a.val, a.val), vmulq_f64(b.val, b.val))); -} - -inline v_float64x2 v_muladd(const v_float64x2& a, const v_float64x2& b, const v_float64x2& c) -{ - return v_float64x2(vaddq_f64(c.val, vmulq_f64(a.val, b.val))); -} -#endif - -// trade efficiency for convenience -#define OPENCV_HAL_IMPL_NEON_SHIFT_OP(_Tpvec, suffix, _Tps, ssuffix) \ -inline _Tpvec operator << (const _Tpvec& a, int n) \ -{ return _Tpvec(vshlq_##suffix(a.val, vdupq_n_##ssuffix((_Tps)n))); } \ -inline _Tpvec operator >> (const _Tpvec& a, int n) \ -{ return _Tpvec(vshlq_##suffix(a.val, vdupq_n_##ssuffix((_Tps)-n))); } \ -template inline _Tpvec v_shl(const _Tpvec& a) \ -{ return _Tpvec(vshlq_n_##suffix(a.val, n)); } \ -template inline _Tpvec v_shr(const _Tpvec& a) \ -{ return _Tpvec(vshrq_n_##suffix(a.val, n)); } \ -template inline _Tpvec v_rshr(const _Tpvec& a) \ -{ return _Tpvec(vrshrq_n_##suffix(a.val, n)); } \ -template inline _Tpvec v_rotate_right(const _Tpvec& a) \ -{ return _Tpvec(vextq_##suffix(a.val, vdupq_n_##suffix(0), n)); } \ -template inline _Tpvec v_rotate_left(const _Tpvec& a) \ -{ return _Tpvec(vextq_##suffix(vdupq_n_##suffix(0), a.val, _Tpvec::nlanes - n)); } \ -template inline _Tpvec v_rotate_right(const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vextq_##suffix(a.val, b.val, n)); } \ -template inline _Tpvec v_rotate_left(const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vextq_##suffix(b.val, a.val, _Tpvec::nlanes - n)); } - -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint8x16, u8, schar, s8) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int8x16, s8, schar, s8) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint16x8, u16, short, s16) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int16x8, s16, short, s16) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint32x4, u32, int, s32) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int32x4, s32, int, s32) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_uint64x2, u64, int64, s64) -OPENCV_HAL_IMPL_NEON_SHIFT_OP(v_int64x2, s64, int64, s64) - -#define OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(_Tpvec, _Tp, suffix) \ -inline _Tpvec v_load(const _Tp* ptr) \ -{ return _Tpvec(vld1q_##suffix(ptr)); } \ -inline _Tpvec v_load_aligned(const _Tp* ptr) \ -{ return _Tpvec(vld1q_##suffix(ptr)); } \ -inline _Tpvec v_load_low(const _Tp* ptr) \ -{ return _Tpvec(vcombine_##suffix(vld1_##suffix(ptr), vdup_n_##suffix((_Tp)0))); } \ -inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ -{ return _Tpvec(vcombine_##suffix(vld1_##suffix(ptr0), vld1_##suffix(ptr1))); } \ -inline void v_store(_Tp* ptr, const _Tpvec& a) \ -{ vst1q_##suffix(ptr, a.val); } \ -inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ -{ vst1q_##suffix(ptr, a.val); } \ -inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ -{ vst1_##suffix(ptr, vget_low_##suffix(a.val)); } \ -inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ -{ vst1_##suffix(ptr, vget_high_##suffix(a.val)); } - -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint8x16, uchar, u8) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int8x16, schar, s8) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint16x8, ushort, u16) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int16x8, short, s16) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint32x4, unsigned, u32) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int32x4, int, s32) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_uint64x2, uint64, u64) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_int64x2, int64, s64) -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_float32x4, float, f32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_LOADSTORE_OP(v_float64x2, double, f64) -#endif - -#if CV_FP16 -// Workaround for old comiplers -inline v_float16x4 v_load_f16(const short* ptr) -{ return v_float16x4(cv_vld1_f16(ptr)); } -inline void v_store_f16(short* ptr, v_float16x4& a) -{ cv_vst1_f16(ptr, a.val); } -#endif - -#define OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(_Tpvec, _Tpnvec, scalartype, func, vectorfunc, suffix) \ -inline scalartype v_reduce_##func(const _Tpvec& a) \ -{ \ - _Tpnvec##_t a0 = vp##vectorfunc##_##suffix(vget_low_##suffix(a.val), vget_high_##suffix(a.val)); \ - a0 = vp##vectorfunc##_##suffix(a0, a0); \ - return (scalartype)vget_lane_##suffix(vp##vectorfunc##_##suffix(a0, a0),0); \ -} - -OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_uint16x8, uint16x4, unsigned short, sum, add, u16) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_uint16x8, uint16x4, unsigned short, max, max, u16) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_uint16x8, uint16x4, unsigned short, min, min, u16) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_int16x8, int16x4, short, sum, add, s16) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_int16x8, int16x4, short, max, max, s16) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_8(v_int16x8, int16x4, short, min, min, s16) - -#define OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(_Tpvec, _Tpnvec, scalartype, func, vectorfunc, suffix) \ -inline scalartype v_reduce_##func(const _Tpvec& a) \ -{ \ - _Tpnvec##_t a0 = vp##vectorfunc##_##suffix(vget_low_##suffix(a.val), vget_high_##suffix(a.val)); \ - return (scalartype)vget_lane_##suffix(vp##vectorfunc##_##suffix(a0, vget_high_##suffix(a.val)),0); \ -} - -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_uint32x4, uint32x2, unsigned, sum, add, u32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_uint32x4, uint32x2, unsigned, max, max, u32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_uint32x4, uint32x2, unsigned, min, min, u32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_int32x4, int32x2, int, sum, add, s32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_int32x4, int32x2, int, max, max, s32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_int32x4, int32x2, int, min, min, s32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_float32x4, float32x2, float, sum, add, f32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_float32x4, float32x2, float, max, max, f32) -OPENCV_HAL_IMPL_NEON_REDUCE_OP_4(v_float32x4, float32x2, float, min, min, f32) - -inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, - const v_float32x4& c, const v_float32x4& d) -{ - float32x4x2_t ab = vtrnq_f32(a.val, b.val); - float32x4x2_t cd = vtrnq_f32(c.val, d.val); - - float32x4_t u0 = vaddq_f32(ab.val[0], ab.val[1]); // a0+a1 b0+b1 a2+a3 b2+b3 - float32x4_t u1 = vaddq_f32(cd.val[0], cd.val[1]); // c0+c1 d0+d1 c2+c3 d2+d3 - - float32x4_t v0 = vcombine_f32(vget_low_f32(u0), vget_low_f32(u1)); - float32x4_t v1 = vcombine_f32(vget_high_f32(u0), vget_high_f32(u1)); - - return v_float32x4(vaddq_f32(v0, v1)); -} - -#define OPENCV_HAL_IMPL_NEON_POPCOUNT(_Tpvec, cast) \ -inline v_uint32x4 v_popcount(const _Tpvec& a) \ -{ \ - uint8x16_t t = vcntq_u8(cast(a.val)); \ - uint16x8_t t0 = vpaddlq_u8(t); /* 16 -> 8 */ \ - uint32x4_t t1 = vpaddlq_u16(t0); /* 8 -> 4 */ \ - return v_uint32x4(t1); \ -} - -OPENCV_HAL_IMPL_NEON_POPCOUNT(v_uint8x16, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_NEON_POPCOUNT(v_uint16x8, vreinterpretq_u8_u16) -OPENCV_HAL_IMPL_NEON_POPCOUNT(v_uint32x4, vreinterpretq_u8_u32) -OPENCV_HAL_IMPL_NEON_POPCOUNT(v_int8x16, vreinterpretq_u8_s8) -OPENCV_HAL_IMPL_NEON_POPCOUNT(v_int16x8, vreinterpretq_u8_s16) -OPENCV_HAL_IMPL_NEON_POPCOUNT(v_int32x4, vreinterpretq_u8_s32) - -inline int v_signmask(const v_uint8x16& a) -{ - int8x8_t m0 = vcreate_s8(CV_BIG_UINT(0x0706050403020100)); - uint8x16_t v0 = vshlq_u8(vshrq_n_u8(a.val, 7), vcombine_s8(m0, m0)); - uint64x2_t v1 = vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(v0))); - return (int)vgetq_lane_u64(v1, 0) + ((int)vgetq_lane_u64(v1, 1) << 8); -} -inline int v_signmask(const v_int8x16& a) -{ return v_signmask(v_reinterpret_as_u8(a)); } - -inline int v_signmask(const v_uint16x8& a) -{ - int16x4_t m0 = vcreate_s16(CV_BIG_UINT(0x0003000200010000)); - uint16x8_t v0 = vshlq_u16(vshrq_n_u16(a.val, 15), vcombine_s16(m0, m0)); - uint64x2_t v1 = vpaddlq_u32(vpaddlq_u16(v0)); - return (int)vgetq_lane_u64(v1, 0) + ((int)vgetq_lane_u64(v1, 1) << 4); -} -inline int v_signmask(const v_int16x8& a) -{ return v_signmask(v_reinterpret_as_u16(a)); } - -inline int v_signmask(const v_uint32x4& a) -{ - int32x2_t m0 = vcreate_s32(CV_BIG_UINT(0x0000000100000000)); - uint32x4_t v0 = vshlq_u32(vshrq_n_u32(a.val, 31), vcombine_s32(m0, m0)); - uint64x2_t v1 = vpaddlq_u32(v0); - return (int)vgetq_lane_u64(v1, 0) + ((int)vgetq_lane_u64(v1, 1) << 2); -} -inline int v_signmask(const v_int32x4& a) -{ return v_signmask(v_reinterpret_as_u32(a)); } -inline int v_signmask(const v_float32x4& a) -{ return v_signmask(v_reinterpret_as_u32(a)); } -#if CV_SIMD128_64F -inline int v_signmask(const v_uint64x2& a) -{ - int64x1_t m0 = vdup_n_s64(0); - uint64x2_t v0 = vshlq_u64(vshrq_n_u64(a.val, 63), vcombine_s64(m0, m0)); - return (int)vgetq_lane_u64(v0, 0) + ((int)vgetq_lane_u64(v0, 1) << 1); -} -inline int v_signmask(const v_float64x2& a) -{ return v_signmask(v_reinterpret_as_u64(a)); } -#endif - -#define OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(_Tpvec, suffix, shift) \ -inline bool v_check_all(const v_##_Tpvec& a) \ -{ \ - _Tpvec##_t v0 = vshrq_n_##suffix(vmvnq_##suffix(a.val), shift); \ - uint64x2_t v1 = vreinterpretq_u64_##suffix(v0); \ - return (vgetq_lane_u64(v1, 0) | vgetq_lane_u64(v1, 1)) == 0; \ -} \ -inline bool v_check_any(const v_##_Tpvec& a) \ -{ \ - _Tpvec##_t v0 = vshrq_n_##suffix(a.val, shift); \ - uint64x2_t v1 = vreinterpretq_u64_##suffix(v0); \ - return (vgetq_lane_u64(v1, 0) | vgetq_lane_u64(v1, 1)) != 0; \ -} - -OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint8x16, u8, 7) -OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint16x8, u16, 15) -OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint32x4, u32, 31) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_CHECK_ALLANY(uint64x2, u64, 63) -#endif - -inline bool v_check_all(const v_int8x16& a) -{ return v_check_all(v_reinterpret_as_u8(a)); } -inline bool v_check_all(const v_int16x8& a) -{ return v_check_all(v_reinterpret_as_u16(a)); } -inline bool v_check_all(const v_int32x4& a) -{ return v_check_all(v_reinterpret_as_u32(a)); } -inline bool v_check_all(const v_float32x4& a) -{ return v_check_all(v_reinterpret_as_u32(a)); } - -inline bool v_check_any(const v_int8x16& a) -{ return v_check_any(v_reinterpret_as_u8(a)); } -inline bool v_check_any(const v_int16x8& a) -{ return v_check_any(v_reinterpret_as_u16(a)); } -inline bool v_check_any(const v_int32x4& a) -{ return v_check_any(v_reinterpret_as_u32(a)); } -inline bool v_check_any(const v_float32x4& a) -{ return v_check_any(v_reinterpret_as_u32(a)); } - -#if CV_SIMD128_64F -inline bool v_check_all(const v_int64x2& a) -{ return v_check_all(v_reinterpret_as_u64(a)); } -inline bool v_check_all(const v_float64x2& a) -{ return v_check_all(v_reinterpret_as_u64(a)); } -inline bool v_check_any(const v_int64x2& a) -{ return v_check_any(v_reinterpret_as_u64(a)); } -inline bool v_check_any(const v_float64x2& a) -{ return v_check_any(v_reinterpret_as_u64(a)); } -#endif - -#define OPENCV_HAL_IMPL_NEON_SELECT(_Tpvec, suffix, usuffix) \ -inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ -{ \ - return _Tpvec(vbslq_##suffix(vreinterpretq_##usuffix##_##suffix(mask.val), a.val, b.val)); \ -} - -OPENCV_HAL_IMPL_NEON_SELECT(v_uint8x16, u8, u8) -OPENCV_HAL_IMPL_NEON_SELECT(v_int8x16, s8, u8) -OPENCV_HAL_IMPL_NEON_SELECT(v_uint16x8, u16, u16) -OPENCV_HAL_IMPL_NEON_SELECT(v_int16x8, s16, u16) -OPENCV_HAL_IMPL_NEON_SELECT(v_uint32x4, u32, u32) -OPENCV_HAL_IMPL_NEON_SELECT(v_int32x4, s32, u32) -OPENCV_HAL_IMPL_NEON_SELECT(v_float32x4, f32, u32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_SELECT(v_float64x2, f64, u64) -#endif - -#define OPENCV_HAL_IMPL_NEON_EXPAND(_Tpvec, _Tpwvec, _Tp, suffix) \ -inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ -{ \ - b0.val = vmovl_##suffix(vget_low_##suffix(a.val)); \ - b1.val = vmovl_##suffix(vget_high_##suffix(a.val)); \ -} \ -inline _Tpwvec v_load_expand(const _Tp* ptr) \ -{ \ - return _Tpwvec(vmovl_##suffix(vld1_##suffix(ptr))); \ -} - -OPENCV_HAL_IMPL_NEON_EXPAND(v_uint8x16, v_uint16x8, uchar, u8) -OPENCV_HAL_IMPL_NEON_EXPAND(v_int8x16, v_int16x8, schar, s8) -OPENCV_HAL_IMPL_NEON_EXPAND(v_uint16x8, v_uint32x4, ushort, u16) -OPENCV_HAL_IMPL_NEON_EXPAND(v_int16x8, v_int32x4, short, s16) -OPENCV_HAL_IMPL_NEON_EXPAND(v_uint32x4, v_uint64x2, uint, u32) -OPENCV_HAL_IMPL_NEON_EXPAND(v_int32x4, v_int64x2, int, s32) - -inline v_uint32x4 v_load_expand_q(const uchar* ptr) -{ - uint8x8_t v0 = vcreate_u8(*(unsigned*)ptr); - uint16x4_t v1 = vget_low_u16(vmovl_u8(v0)); - return v_uint32x4(vmovl_u16(v1)); -} - -inline v_int32x4 v_load_expand_q(const schar* ptr) -{ - int8x8_t v0 = vcreate_s8(*(unsigned*)ptr); - int16x4_t v1 = vget_low_s16(vmovl_s8(v0)); - return v_int32x4(vmovl_s16(v1)); -} - -#if defined(__aarch64__) -#define OPENCV_HAL_IMPL_NEON_UNPACKS(_Tpvec, suffix) \ -inline void v_zip(const v_##_Tpvec& a0, const v_##_Tpvec& a1, v_##_Tpvec& b0, v_##_Tpvec& b1) \ -{ \ - b0.val = vzip1q_##suffix(a0.val, a1.val); \ - b1.val = vzip2q_##suffix(a0.val, a1.val); \ -} \ -inline v_##_Tpvec v_combine_low(const v_##_Tpvec& a, const v_##_Tpvec& b) \ -{ \ - return v_##_Tpvec(vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val))); \ -} \ -inline v_##_Tpvec v_combine_high(const v_##_Tpvec& a, const v_##_Tpvec& b) \ -{ \ - return v_##_Tpvec(vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val))); \ -} \ -inline void v_recombine(const v_##_Tpvec& a, const v_##_Tpvec& b, v_##_Tpvec& c, v_##_Tpvec& d) \ -{ \ - c.val = vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val)); \ - d.val = vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val)); \ -} -#else -#define OPENCV_HAL_IMPL_NEON_UNPACKS(_Tpvec, suffix) \ -inline void v_zip(const v_##_Tpvec& a0, const v_##_Tpvec& a1, v_##_Tpvec& b0, v_##_Tpvec& b1) \ -{ \ - _Tpvec##x2_t p = vzipq_##suffix(a0.val, a1.val); \ - b0.val = p.val[0]; \ - b1.val = p.val[1]; \ -} \ -inline v_##_Tpvec v_combine_low(const v_##_Tpvec& a, const v_##_Tpvec& b) \ -{ \ - return v_##_Tpvec(vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val))); \ -} \ -inline v_##_Tpvec v_combine_high(const v_##_Tpvec& a, const v_##_Tpvec& b) \ -{ \ - return v_##_Tpvec(vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val))); \ -} \ -inline void v_recombine(const v_##_Tpvec& a, const v_##_Tpvec& b, v_##_Tpvec& c, v_##_Tpvec& d) \ -{ \ - c.val = vcombine_##suffix(vget_low_##suffix(a.val), vget_low_##suffix(b.val)); \ - d.val = vcombine_##suffix(vget_high_##suffix(a.val), vget_high_##suffix(b.val)); \ -} -#endif - -OPENCV_HAL_IMPL_NEON_UNPACKS(uint8x16, u8) -OPENCV_HAL_IMPL_NEON_UNPACKS(int8x16, s8) -OPENCV_HAL_IMPL_NEON_UNPACKS(uint16x8, u16) -OPENCV_HAL_IMPL_NEON_UNPACKS(int16x8, s16) -OPENCV_HAL_IMPL_NEON_UNPACKS(uint32x4, u32) -OPENCV_HAL_IMPL_NEON_UNPACKS(int32x4, s32) -OPENCV_HAL_IMPL_NEON_UNPACKS(float32x4, f32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_UNPACKS(float64x2, f64) -#endif - -#define OPENCV_HAL_IMPL_NEON_EXTRACT(_Tpvec, suffix) \ -template \ -inline v_##_Tpvec v_extract(const v_##_Tpvec& a, const v_##_Tpvec& b) \ -{ \ - return v_##_Tpvec(vextq_##suffix(a.val, b.val, s)); \ -} - -OPENCV_HAL_IMPL_NEON_EXTRACT(uint8x16, u8) -OPENCV_HAL_IMPL_NEON_EXTRACT(int8x16, s8) -OPENCV_HAL_IMPL_NEON_EXTRACT(uint16x8, u16) -OPENCV_HAL_IMPL_NEON_EXTRACT(int16x8, s16) -OPENCV_HAL_IMPL_NEON_EXTRACT(uint32x4, u32) -OPENCV_HAL_IMPL_NEON_EXTRACT(int32x4, s32) -OPENCV_HAL_IMPL_NEON_EXTRACT(uint64x2, u64) -OPENCV_HAL_IMPL_NEON_EXTRACT(int64x2, s64) -OPENCV_HAL_IMPL_NEON_EXTRACT(float32x4, f32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_EXTRACT(float64x2, f64) -#endif - -inline v_int32x4 v_round(const v_float32x4& a) -{ - static const int32x4_t v_sign = vdupq_n_s32(1 << 31), - v_05 = vreinterpretq_s32_f32(vdupq_n_f32(0.5f)); - - int32x4_t v_addition = vorrq_s32(v_05, vandq_s32(v_sign, vreinterpretq_s32_f32(a.val))); - return v_int32x4(vcvtq_s32_f32(vaddq_f32(a.val, vreinterpretq_f32_s32(v_addition)))); -} - -inline v_int32x4 v_floor(const v_float32x4& a) -{ - int32x4_t a1 = vcvtq_s32_f32(a.val); - uint32x4_t mask = vcgtq_f32(vcvtq_f32_s32(a1), a.val); - return v_int32x4(vaddq_s32(a1, vreinterpretq_s32_u32(mask))); -} - -inline v_int32x4 v_ceil(const v_float32x4& a) -{ - int32x4_t a1 = vcvtq_s32_f32(a.val); - uint32x4_t mask = vcgtq_f32(a.val, vcvtq_f32_s32(a1)); - return v_int32x4(vsubq_s32(a1, vreinterpretq_s32_u32(mask))); -} - -inline v_int32x4 v_trunc(const v_float32x4& a) -{ return v_int32x4(vcvtq_s32_f32(a.val)); } - -#if CV_SIMD128_64F -inline v_int32x4 v_round(const v_float64x2& a) -{ - static const int32x2_t zero = vdup_n_s32(0); - return v_int32x4(vcombine_s32(vmovn_s64(vcvtaq_s64_f64(a.val)), zero)); -} - -inline v_int32x4 v_floor(const v_float64x2& a) -{ - static const int32x2_t zero = vdup_n_s32(0); - int64x2_t a1 = vcvtq_s64_f64(a.val); - uint64x2_t mask = vcgtq_f64(vcvtq_f64_s64(a1), a.val); - a1 = vaddq_s64(a1, vreinterpretq_s64_u64(mask)); - return v_int32x4(vcombine_s32(vmovn_s64(a1), zero)); -} - -inline v_int32x4 v_ceil(const v_float64x2& a) -{ - static const int32x2_t zero = vdup_n_s32(0); - int64x2_t a1 = vcvtq_s64_f64(a.val); - uint64x2_t mask = vcgtq_f64(a.val, vcvtq_f64_s64(a1)); - a1 = vsubq_s64(a1, vreinterpretq_s64_u64(mask)); - return v_int32x4(vcombine_s32(vmovn_s64(a1), zero)); -} - -inline v_int32x4 v_trunc(const v_float64x2& a) -{ - static const int32x2_t zero = vdup_n_s32(0); - return v_int32x4(vcombine_s32(vmovn_s64(vcvtaq_s64_f64(a.val)), zero)); -} -#endif - -#define OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(_Tpvec, suffix) \ -inline void v_transpose4x4(const v_##_Tpvec& a0, const v_##_Tpvec& a1, \ - const v_##_Tpvec& a2, const v_##_Tpvec& a3, \ - v_##_Tpvec& b0, v_##_Tpvec& b1, \ - v_##_Tpvec& b2, v_##_Tpvec& b3) \ -{ \ - /* m00 m01 m02 m03 */ \ - /* m10 m11 m12 m13 */ \ - /* m20 m21 m22 m23 */ \ - /* m30 m31 m32 m33 */ \ - _Tpvec##x2_t t0 = vtrnq_##suffix(a0.val, a1.val); \ - _Tpvec##x2_t t1 = vtrnq_##suffix(a2.val, a3.val); \ - /* m00 m10 m02 m12 */ \ - /* m01 m11 m03 m13 */ \ - /* m20 m30 m22 m32 */ \ - /* m21 m31 m23 m33 */ \ - b0.val = vcombine_##suffix(vget_low_##suffix(t0.val[0]), vget_low_##suffix(t1.val[0])); \ - b1.val = vcombine_##suffix(vget_low_##suffix(t0.val[1]), vget_low_##suffix(t1.val[1])); \ - b2.val = vcombine_##suffix(vget_high_##suffix(t0.val[0]), vget_high_##suffix(t1.val[0])); \ - b3.val = vcombine_##suffix(vget_high_##suffix(t0.val[1]), vget_high_##suffix(t1.val[1])); \ -} - -OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(uint32x4, u32) -OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(int32x4, s32) -OPENCV_HAL_IMPL_NEON_TRANSPOSE4x4(float32x4, f32) - -#define OPENCV_HAL_IMPL_NEON_INTERLEAVED(_Tpvec, _Tp, suffix) \ -inline void v_load_deinterleave(const _Tp* ptr, v_##_Tpvec& a, v_##_Tpvec& b) \ -{ \ - _Tpvec##x2_t v = vld2q_##suffix(ptr); \ - a.val = v.val[0]; \ - b.val = v.val[1]; \ -} \ -inline void v_load_deinterleave(const _Tp* ptr, v_##_Tpvec& a, v_##_Tpvec& b, v_##_Tpvec& c) \ -{ \ - _Tpvec##x3_t v = vld3q_##suffix(ptr); \ - a.val = v.val[0]; \ - b.val = v.val[1]; \ - c.val = v.val[2]; \ -} \ -inline void v_load_deinterleave(const _Tp* ptr, v_##_Tpvec& a, v_##_Tpvec& b, \ - v_##_Tpvec& c, v_##_Tpvec& d) \ -{ \ - _Tpvec##x4_t v = vld4q_##suffix(ptr); \ - a.val = v.val[0]; \ - b.val = v.val[1]; \ - c.val = v.val[2]; \ - d.val = v.val[3]; \ -} \ -inline void v_store_interleave( _Tp* ptr, const v_##_Tpvec& a, const v_##_Tpvec& b) \ -{ \ - _Tpvec##x2_t v; \ - v.val[0] = a.val; \ - v.val[1] = b.val; \ - vst2q_##suffix(ptr, v); \ -} \ -inline void v_store_interleave( _Tp* ptr, const v_##_Tpvec& a, const v_##_Tpvec& b, const v_##_Tpvec& c) \ -{ \ - _Tpvec##x3_t v; \ - v.val[0] = a.val; \ - v.val[1] = b.val; \ - v.val[2] = c.val; \ - vst3q_##suffix(ptr, v); \ -} \ -inline void v_store_interleave( _Tp* ptr, const v_##_Tpvec& a, const v_##_Tpvec& b, \ - const v_##_Tpvec& c, const v_##_Tpvec& d) \ -{ \ - _Tpvec##x4_t v; \ - v.val[0] = a.val; \ - v.val[1] = b.val; \ - v.val[2] = c.val; \ - v.val[3] = d.val; \ - vst4q_##suffix(ptr, v); \ -} - -OPENCV_HAL_IMPL_NEON_INTERLEAVED(uint8x16, uchar, u8) -OPENCV_HAL_IMPL_NEON_INTERLEAVED(int8x16, schar, s8) -OPENCV_HAL_IMPL_NEON_INTERLEAVED(uint16x8, ushort, u16) -OPENCV_HAL_IMPL_NEON_INTERLEAVED(int16x8, short, s16) -OPENCV_HAL_IMPL_NEON_INTERLEAVED(uint32x4, unsigned, u32) -OPENCV_HAL_IMPL_NEON_INTERLEAVED(int32x4, int, s32) -OPENCV_HAL_IMPL_NEON_INTERLEAVED(float32x4, float, f32) -#if CV_SIMD128_64F -OPENCV_HAL_IMPL_NEON_INTERLEAVED(float64x2, double, f64) -#endif - -inline v_float32x4 v_cvt_f32(const v_int32x4& a) -{ - return v_float32x4(vcvtq_f32_s32(a.val)); -} - -#if CV_SIMD128_64F -inline v_float32x4 v_cvt_f32(const v_float64x2& a) -{ - float32x2_t zero = vdup_n_f32(0.0f); - return v_float32x4(vcombine_f32(vcvt_f32_f64(a.val), zero)); -} - -inline v_float64x2 v_cvt_f64(const v_int32x4& a) -{ - return v_float64x2(vcvt_f64_f32(vcvt_f32_s32(vget_low_s32(a.val)))); -} - -inline v_float64x2 v_cvt_f64_high(const v_int32x4& a) -{ - return v_float64x2(vcvt_f64_f32(vcvt_f32_s32(vget_high_s32(a.val)))); -} - -inline v_float64x2 v_cvt_f64(const v_float32x4& a) -{ - return v_float64x2(vcvt_f64_f32(vget_low_f32(a.val))); -} - -inline v_float64x2 v_cvt_f64_high(const v_float32x4& a) -{ - return v_float64x2(vcvt_f64_f32(vget_high_f32(a.val))); -} -#endif - -#if CV_FP16 -inline v_float32x4 v_cvt_f32(const v_float16x4& a) -{ - return v_float32x4(vcvt_f32_f16(a.val)); -} - -inline v_float16x4 v_cvt_f16(const v_float32x4& a) -{ - return v_float16x4(vcvt_f16_f32(a.val)); -} -#endif - -//! @name Check SIMD support -//! @{ -//! @brief Check CPU capability of SIMD operation -static inline bool hasSIMD128() -{ - return (CV_CPU_HAS_SUPPORT_NEON) ? true : false; -} - -//! @} - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END - -//! @endcond - -} - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_sse.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_sse.hpp deleted file mode 100644 index 0e740f641..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_sse.hpp +++ /dev/null @@ -1,1921 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_HAL_SSE_HPP -#define OPENCV_HAL_SSE_HPP - -#include -#include "opencv2/core/utility.hpp" - -#define CV_SIMD128 1 -#define CV_SIMD128_64F 1 - -namespace cv -{ - -//! @cond IGNORED - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN - -struct v_uint8x16 -{ - typedef uchar lane_type; - enum { nlanes = 16 }; - - v_uint8x16() : val(_mm_setzero_si128()) {} - explicit v_uint8x16(__m128i v) : val(v) {} - v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, - uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) - { - val = _mm_setr_epi8((char)v0, (char)v1, (char)v2, (char)v3, - (char)v4, (char)v5, (char)v6, (char)v7, - (char)v8, (char)v9, (char)v10, (char)v11, - (char)v12, (char)v13, (char)v14, (char)v15); - } - uchar get0() const - { - return (uchar)_mm_cvtsi128_si32(val); - } - - __m128i val; -}; - -struct v_int8x16 -{ - typedef schar lane_type; - enum { nlanes = 16 }; - - v_int8x16() : val(_mm_setzero_si128()) {} - explicit v_int8x16(__m128i v) : val(v) {} - v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, - schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) - { - val = _mm_setr_epi8((char)v0, (char)v1, (char)v2, (char)v3, - (char)v4, (char)v5, (char)v6, (char)v7, - (char)v8, (char)v9, (char)v10, (char)v11, - (char)v12, (char)v13, (char)v14, (char)v15); - } - schar get0() const - { - return (schar)_mm_cvtsi128_si32(val); - } - - __m128i val; -}; - -struct v_uint16x8 -{ - typedef ushort lane_type; - enum { nlanes = 8 }; - - v_uint16x8() : val(_mm_setzero_si128()) {} - explicit v_uint16x8(__m128i v) : val(v) {} - v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) - { - val = _mm_setr_epi16((short)v0, (short)v1, (short)v2, (short)v3, - (short)v4, (short)v5, (short)v6, (short)v7); - } - ushort get0() const - { - return (ushort)_mm_cvtsi128_si32(val); - } - - __m128i val; -}; - -struct v_int16x8 -{ - typedef short lane_type; - enum { nlanes = 8 }; - - v_int16x8() : val(_mm_setzero_si128()) {} - explicit v_int16x8(__m128i v) : val(v) {} - v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) - { - val = _mm_setr_epi16((short)v0, (short)v1, (short)v2, (short)v3, - (short)v4, (short)v5, (short)v6, (short)v7); - } - short get0() const - { - return (short)_mm_cvtsi128_si32(val); - } - __m128i val; -}; - -struct v_uint32x4 -{ - typedef unsigned lane_type; - enum { nlanes = 4 }; - - v_uint32x4() : val(_mm_setzero_si128()) {} - explicit v_uint32x4(__m128i v) : val(v) {} - v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) - { - val = _mm_setr_epi32((int)v0, (int)v1, (int)v2, (int)v3); - } - unsigned get0() const - { - return (unsigned)_mm_cvtsi128_si32(val); - } - __m128i val; -}; - -struct v_int32x4 -{ - typedef int lane_type; - enum { nlanes = 4 }; - - v_int32x4() : val(_mm_setzero_si128()) {} - explicit v_int32x4(__m128i v) : val(v) {} - v_int32x4(int v0, int v1, int v2, int v3) - { - val = _mm_setr_epi32(v0, v1, v2, v3); - } - int get0() const - { - return _mm_cvtsi128_si32(val); - } - __m128i val; -}; - -struct v_float32x4 -{ - typedef float lane_type; - enum { nlanes = 4 }; - - v_float32x4() : val(_mm_setzero_ps()) {} - explicit v_float32x4(__m128 v) : val(v) {} - v_float32x4(float v0, float v1, float v2, float v3) - { - val = _mm_setr_ps(v0, v1, v2, v3); - } - float get0() const - { - return _mm_cvtss_f32(val); - } - __m128 val; -}; - -struct v_uint64x2 -{ - typedef uint64 lane_type; - enum { nlanes = 2 }; - - v_uint64x2() : val(_mm_setzero_si128()) {} - explicit v_uint64x2(__m128i v) : val(v) {} - v_uint64x2(uint64 v0, uint64 v1) - { - val = _mm_setr_epi32((int)v0, (int)(v0 >> 32), (int)v1, (int)(v1 >> 32)); - } - uint64 get0() const - { - int a = _mm_cvtsi128_si32(val); - int b = _mm_cvtsi128_si32(_mm_srli_epi64(val, 32)); - return (unsigned)a | ((uint64)(unsigned)b << 32); - } - __m128i val; -}; - -struct v_int64x2 -{ - typedef int64 lane_type; - enum { nlanes = 2 }; - - v_int64x2() : val(_mm_setzero_si128()) {} - explicit v_int64x2(__m128i v) : val(v) {} - v_int64x2(int64 v0, int64 v1) - { - val = _mm_setr_epi32((int)v0, (int)(v0 >> 32), (int)v1, (int)(v1 >> 32)); - } - int64 get0() const - { - int a = _mm_cvtsi128_si32(val); - int b = _mm_cvtsi128_si32(_mm_srli_epi64(val, 32)); - return (int64)((unsigned)a | ((uint64)(unsigned)b << 32)); - } - __m128i val; -}; - -struct v_float64x2 -{ - typedef double lane_type; - enum { nlanes = 2 }; - - v_float64x2() : val(_mm_setzero_pd()) {} - explicit v_float64x2(__m128d v) : val(v) {} - v_float64x2(double v0, double v1) - { - val = _mm_setr_pd(v0, v1); - } - double get0() const - { - return _mm_cvtsd_f64(val); - } - __m128d val; -}; - -#if CV_FP16 -struct v_float16x4 -{ - typedef short lane_type; - enum { nlanes = 4 }; - - v_float16x4() : val(_mm_setzero_si128()) {} - explicit v_float16x4(__m128i v) : val(v) {} - v_float16x4(short v0, short v1, short v2, short v3) - { - val = _mm_setr_epi16(v0, v1, v2, v3, 0, 0, 0, 0); - } - short get0() const - { - return (short)_mm_cvtsi128_si32(val); - } - __m128i val; -}; -#endif - -#define OPENCV_HAL_IMPL_SSE_INITVEC(_Tpvec, _Tp, suffix, zsuffix, ssuffix, _Tps, cast) \ -inline _Tpvec v_setzero_##suffix() { return _Tpvec(_mm_setzero_##zsuffix()); } \ -inline _Tpvec v_setall_##suffix(_Tp v) { return _Tpvec(_mm_set1_##ssuffix((_Tps)v)); } \ -template inline _Tpvec v_reinterpret_as_##suffix(const _Tpvec0& a) \ -{ return _Tpvec(cast(a.val)); } - -OPENCV_HAL_IMPL_SSE_INITVEC(v_uint8x16, uchar, u8, si128, epi8, char, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_INITVEC(v_int8x16, schar, s8, si128, epi8, char, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_INITVEC(v_uint16x8, ushort, u16, si128, epi16, short, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_INITVEC(v_int16x8, short, s16, si128, epi16, short, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_INITVEC(v_uint32x4, unsigned, u32, si128, epi32, int, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_INITVEC(v_int32x4, int, s32, si128, epi32, int, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_INITVEC(v_float32x4, float, f32, ps, ps, float, _mm_castsi128_ps) -OPENCV_HAL_IMPL_SSE_INITVEC(v_float64x2, double, f64, pd, pd, double, _mm_castsi128_pd) - -inline v_uint64x2 v_setzero_u64() { return v_uint64x2(_mm_setzero_si128()); } -inline v_int64x2 v_setzero_s64() { return v_int64x2(_mm_setzero_si128()); } -inline v_uint64x2 v_setall_u64(uint64 val) { return v_uint64x2(val, val); } -inline v_int64x2 v_setall_s64(int64 val) { return v_int64x2(val, val); } - -template inline -v_uint64x2 v_reinterpret_as_u64(const _Tpvec& a) { return v_uint64x2(a.val); } -template inline -v_int64x2 v_reinterpret_as_s64(const _Tpvec& a) { return v_int64x2(a.val); } -inline v_float32x4 v_reinterpret_as_f32(const v_uint64x2& a) -{ return v_float32x4(_mm_castsi128_ps(a.val)); } -inline v_float32x4 v_reinterpret_as_f32(const v_int64x2& a) -{ return v_float32x4(_mm_castsi128_ps(a.val)); } -inline v_float64x2 v_reinterpret_as_f64(const v_uint64x2& a) -{ return v_float64x2(_mm_castsi128_pd(a.val)); } -inline v_float64x2 v_reinterpret_as_f64(const v_int64x2& a) -{ return v_float64x2(_mm_castsi128_pd(a.val)); } - -#define OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(_Tpvec, suffix) \ -inline _Tpvec v_reinterpret_as_##suffix(const v_float32x4& a) \ -{ return _Tpvec(_mm_castps_si128(a.val)); } \ -inline _Tpvec v_reinterpret_as_##suffix(const v_float64x2& a) \ -{ return _Tpvec(_mm_castpd_si128(a.val)); } - -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint8x16, u8) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int8x16, s8) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint16x8, u16) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int16x8, s16) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint32x4, u32) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int32x4, s32) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_uint64x2, u64) -OPENCV_HAL_IMPL_SSE_INIT_FROM_FLT(v_int64x2, s64) - -inline v_float32x4 v_reinterpret_as_f32(const v_float32x4& a) {return a; } -inline v_float64x2 v_reinterpret_as_f64(const v_float64x2& a) {return a; } -inline v_float32x4 v_reinterpret_as_f32(const v_float64x2& a) {return v_float32x4(_mm_castpd_ps(a.val)); } -inline v_float64x2 v_reinterpret_as_f64(const v_float32x4& a) {return v_float64x2(_mm_castps_pd(a.val)); } - -//////////////// PACK /////////////// -inline v_uint8x16 v_pack(const v_uint16x8& a, const v_uint16x8& b) -{ - __m128i delta = _mm_set1_epi16(255); - return v_uint8x16(_mm_packus_epi16(_mm_subs_epu16(a.val, _mm_subs_epu16(a.val, delta)), - _mm_subs_epu16(b.val, _mm_subs_epu16(b.val, delta)))); -} - -inline void v_pack_store(uchar* ptr, const v_uint16x8& a) -{ - __m128i delta = _mm_set1_epi16(255); - __m128i a1 = _mm_subs_epu16(a.val, _mm_subs_epu16(a.val, delta)); - _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a1, a1)); -} - -inline v_uint8x16 v_pack_u(const v_int16x8& a, const v_int16x8& b) -{ return v_uint8x16(_mm_packus_epi16(a.val, b.val)); } - -inline void v_pack_u_store(uchar* ptr, const v_int16x8& a) -{ _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a.val, a.val)); } - -template inline -v_uint8x16 v_rshr_pack(const v_uint16x8& a, const v_uint16x8& b) -{ - // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. - __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); - return v_uint8x16(_mm_packus_epi16(_mm_srli_epi16(_mm_adds_epu16(a.val, delta), n), - _mm_srli_epi16(_mm_adds_epu16(b.val, delta), n))); -} - -template inline -void v_rshr_pack_store(uchar* ptr, const v_uint16x8& a) -{ - __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); - __m128i a1 = _mm_srli_epi16(_mm_adds_epu16(a.val, delta), n); - _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a1, a1)); -} - -template inline -v_uint8x16 v_rshr_pack_u(const v_int16x8& a, const v_int16x8& b) -{ - __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); - return v_uint8x16(_mm_packus_epi16(_mm_srai_epi16(_mm_adds_epi16(a.val, delta), n), - _mm_srai_epi16(_mm_adds_epi16(b.val, delta), n))); -} - -template inline -void v_rshr_pack_u_store(uchar* ptr, const v_int16x8& a) -{ - __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); - __m128i a1 = _mm_srai_epi16(_mm_adds_epi16(a.val, delta), n); - _mm_storel_epi64((__m128i*)ptr, _mm_packus_epi16(a1, a1)); -} - -inline v_int8x16 v_pack(const v_int16x8& a, const v_int16x8& b) -{ return v_int8x16(_mm_packs_epi16(a.val, b.val)); } - -inline void v_pack_store(schar* ptr, v_int16x8& a) -{ _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi16(a.val, a.val)); } - -template inline -v_int8x16 v_rshr_pack(const v_int16x8& a, const v_int16x8& b) -{ - // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. - __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); - return v_int8x16(_mm_packs_epi16(_mm_srai_epi16(_mm_adds_epi16(a.val, delta), n), - _mm_srai_epi16(_mm_adds_epi16(b.val, delta), n))); -} -template inline -void v_rshr_pack_store(schar* ptr, const v_int16x8& a) -{ - // we assume that n > 0, and so the shifted 16-bit values can be treated as signed numbers. - __m128i delta = _mm_set1_epi16((short)(1 << (n-1))); - __m128i a1 = _mm_srai_epi16(_mm_adds_epi16(a.val, delta), n); - _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi16(a1, a1)); -} - - -// bit-wise "mask ? a : b" -inline __m128i v_select_si128(__m128i mask, __m128i a, __m128i b) -{ - return _mm_xor_si128(b, _mm_and_si128(_mm_xor_si128(a, b), mask)); -} - -inline v_uint16x8 v_pack(const v_uint32x4& a, const v_uint32x4& b) -{ - __m128i z = _mm_setzero_si128(), maxval32 = _mm_set1_epi32(65535), delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(v_select_si128(_mm_cmpgt_epi32(z, a.val), maxval32, a.val), delta32); - __m128i b1 = _mm_sub_epi32(v_select_si128(_mm_cmpgt_epi32(z, b.val), maxval32, b.val), delta32); - __m128i r = _mm_packs_epi32(a1, b1); - return v_uint16x8(_mm_sub_epi16(r, _mm_set1_epi16(-32768))); -} - -inline void v_pack_store(ushort* ptr, const v_uint32x4& a) -{ - __m128i z = _mm_setzero_si128(), maxval32 = _mm_set1_epi32(65535), delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(v_select_si128(_mm_cmpgt_epi32(z, a.val), maxval32, a.val), delta32); - __m128i r = _mm_packs_epi32(a1, a1); - _mm_storel_epi64((__m128i*)ptr, _mm_sub_epi16(r, _mm_set1_epi16(-32768))); -} - -template inline -v_uint16x8 v_rshr_pack(const v_uint32x4& a, const v_uint32x4& b) -{ - __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(_mm_srli_epi32(_mm_add_epi32(a.val, delta), n), delta32); - __m128i b1 = _mm_sub_epi32(_mm_srli_epi32(_mm_add_epi32(b.val, delta), n), delta32); - return v_uint16x8(_mm_sub_epi16(_mm_packs_epi32(a1, b1), _mm_set1_epi16(-32768))); -} - -template inline -void v_rshr_pack_store(ushort* ptr, const v_uint32x4& a) -{ - __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(_mm_srli_epi32(_mm_add_epi32(a.val, delta), n), delta32); - __m128i a2 = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); - _mm_storel_epi64((__m128i*)ptr, a2); -} - -inline v_uint16x8 v_pack_u(const v_int32x4& a, const v_int32x4& b) -{ - __m128i delta32 = _mm_set1_epi32(32768); - __m128i r = _mm_packs_epi32(_mm_sub_epi32(a.val, delta32), _mm_sub_epi32(b.val, delta32)); - return v_uint16x8(_mm_sub_epi16(r, _mm_set1_epi16(-32768))); -} - -inline void v_pack_u_store(ushort* ptr, const v_int32x4& a) -{ - __m128i delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(a.val, delta32); - __m128i r = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); - _mm_storel_epi64((__m128i*)ptr, r); -} - -template inline -v_uint16x8 v_rshr_pack_u(const v_int32x4& a, const v_int32x4& b) -{ - __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), delta32); - __m128i a2 = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); - __m128i b1 = _mm_sub_epi32(_mm_srai_epi32(_mm_add_epi32(b.val, delta), n), delta32); - __m128i b2 = _mm_sub_epi16(_mm_packs_epi32(b1, b1), _mm_set1_epi16(-32768)); - return v_uint16x8(_mm_unpacklo_epi64(a2, b2)); -} - -template inline -void v_rshr_pack_u_store(ushort* ptr, const v_int32x4& a) -{ - __m128i delta = _mm_set1_epi32(1 << (n-1)), delta32 = _mm_set1_epi32(32768); - __m128i a1 = _mm_sub_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), delta32); - __m128i a2 = _mm_sub_epi16(_mm_packs_epi32(a1, a1), _mm_set1_epi16(-32768)); - _mm_storel_epi64((__m128i*)ptr, a2); -} - -inline v_int16x8 v_pack(const v_int32x4& a, const v_int32x4& b) -{ return v_int16x8(_mm_packs_epi32(a.val, b.val)); } - -inline void v_pack_store(short* ptr, const v_int32x4& a) -{ - _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi32(a.val, a.val)); -} - -template inline -v_int16x8 v_rshr_pack(const v_int32x4& a, const v_int32x4& b) -{ - __m128i delta = _mm_set1_epi32(1 << (n-1)); - return v_int16x8(_mm_packs_epi32(_mm_srai_epi32(_mm_add_epi32(a.val, delta), n), - _mm_srai_epi32(_mm_add_epi32(b.val, delta), n))); -} - -template inline -void v_rshr_pack_store(short* ptr, const v_int32x4& a) -{ - __m128i delta = _mm_set1_epi32(1 << (n-1)); - __m128i a1 = _mm_srai_epi32(_mm_add_epi32(a.val, delta), n); - _mm_storel_epi64((__m128i*)ptr, _mm_packs_epi32(a1, a1)); -} - - -// [a0 0 | b0 0] [a1 0 | b1 0] -inline v_uint32x4 v_pack(const v_uint64x2& a, const v_uint64x2& b) -{ - __m128i v0 = _mm_unpacklo_epi32(a.val, b.val); // a0 a1 0 0 - __m128i v1 = _mm_unpackhi_epi32(a.val, b.val); // b0 b1 0 0 - return v_uint32x4(_mm_unpacklo_epi32(v0, v1)); -} - -inline void v_pack_store(unsigned* ptr, const v_uint64x2& a) -{ - __m128i a1 = _mm_shuffle_epi32(a.val, _MM_SHUFFLE(0, 2, 2, 0)); - _mm_storel_epi64((__m128i*)ptr, a1); -} - -// [a0 0 | b0 0] [a1 0 | b1 0] -inline v_int32x4 v_pack(const v_int64x2& a, const v_int64x2& b) -{ - __m128i v0 = _mm_unpacklo_epi32(a.val, b.val); // a0 a1 0 0 - __m128i v1 = _mm_unpackhi_epi32(a.val, b.val); // b0 b1 0 0 - return v_int32x4(_mm_unpacklo_epi32(v0, v1)); -} - -inline void v_pack_store(int* ptr, const v_int64x2& a) -{ - __m128i a1 = _mm_shuffle_epi32(a.val, _MM_SHUFFLE(0, 2, 2, 0)); - _mm_storel_epi64((__m128i*)ptr, a1); -} - -template inline -v_uint32x4 v_rshr_pack(const v_uint64x2& a, const v_uint64x2& b) -{ - uint64 delta = (uint64)1 << (n-1); - v_uint64x2 delta2(delta, delta); - __m128i a1 = _mm_srli_epi64(_mm_add_epi64(a.val, delta2.val), n); - __m128i b1 = _mm_srli_epi64(_mm_add_epi64(b.val, delta2.val), n); - __m128i v0 = _mm_unpacklo_epi32(a1, b1); // a0 a1 0 0 - __m128i v1 = _mm_unpackhi_epi32(a1, b1); // b0 b1 0 0 - return v_uint32x4(_mm_unpacklo_epi32(v0, v1)); -} - -template inline -void v_rshr_pack_store(unsigned* ptr, const v_uint64x2& a) -{ - uint64 delta = (uint64)1 << (n-1); - v_uint64x2 delta2(delta, delta); - __m128i a1 = _mm_srli_epi64(_mm_add_epi64(a.val, delta2.val), n); - __m128i a2 = _mm_shuffle_epi32(a1, _MM_SHUFFLE(0, 2, 2, 0)); - _mm_storel_epi64((__m128i*)ptr, a2); -} - -inline __m128i v_sign_epi64(__m128i a) -{ - return _mm_shuffle_epi32(_mm_srai_epi32(a, 31), _MM_SHUFFLE(3, 3, 1, 1)); // x m0 | x m1 -} - -inline __m128i v_srai_epi64(__m128i a, int imm) -{ - __m128i smask = v_sign_epi64(a); - return _mm_xor_si128(_mm_srli_epi64(_mm_xor_si128(a, smask), imm), smask); -} - -template inline -v_int32x4 v_rshr_pack(const v_int64x2& a, const v_int64x2& b) -{ - int64 delta = (int64)1 << (n-1); - v_int64x2 delta2(delta, delta); - __m128i a1 = v_srai_epi64(_mm_add_epi64(a.val, delta2.val), n); - __m128i b1 = v_srai_epi64(_mm_add_epi64(b.val, delta2.val), n); - __m128i v0 = _mm_unpacklo_epi32(a1, b1); // a0 a1 0 0 - __m128i v1 = _mm_unpackhi_epi32(a1, b1); // b0 b1 0 0 - return v_int32x4(_mm_unpacklo_epi32(v0, v1)); -} - -template inline -void v_rshr_pack_store(int* ptr, const v_int64x2& a) -{ - int64 delta = (int64)1 << (n-1); - v_int64x2 delta2(delta, delta); - __m128i a1 = v_srai_epi64(_mm_add_epi64(a.val, delta2.val), n); - __m128i a2 = _mm_shuffle_epi32(a1, _MM_SHUFFLE(0, 2, 2, 0)); - _mm_storel_epi64((__m128i*)ptr, a2); -} - -inline v_float32x4 v_matmul(const v_float32x4& v, const v_float32x4& m0, - const v_float32x4& m1, const v_float32x4& m2, - const v_float32x4& m3) -{ - __m128 v0 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(0, 0, 0, 0)), m0.val); - __m128 v1 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(1, 1, 1, 1)), m1.val); - __m128 v2 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(2, 2, 2, 2)), m2.val); - __m128 v3 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(3, 3, 3, 3)), m3.val); - - return v_float32x4(_mm_add_ps(_mm_add_ps(v0, v1), _mm_add_ps(v2, v3))); -} - -inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, - const v_float32x4& m1, const v_float32x4& m2, - const v_float32x4& a) -{ - __m128 v0 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(0, 0, 0, 0)), m0.val); - __m128 v1 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(1, 1, 1, 1)), m1.val); - __m128 v2 = _mm_mul_ps(_mm_shuffle_ps(v.val, v.val, _MM_SHUFFLE(2, 2, 2, 2)), m2.val); - - return v_float32x4(_mm_add_ps(_mm_add_ps(v0, v1), _mm_add_ps(v2, a.val))); -} - -#define OPENCV_HAL_IMPL_SSE_BIN_OP(bin_op, _Tpvec, intrin) \ - inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ - { \ - return _Tpvec(intrin(a.val, b.val)); \ - } \ - inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ - { \ - a.val = intrin(a.val, b.val); \ - return a; \ - } - -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint8x16, _mm_adds_epu8) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint8x16, _mm_subs_epu8) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int8x16, _mm_adds_epi8) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int8x16, _mm_subs_epi8) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint16x8, _mm_adds_epu16) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint16x8, _mm_subs_epu16) -OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_uint16x8, _mm_mullo_epi16) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int16x8, _mm_adds_epi16) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int16x8, _mm_subs_epi16) -OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_int16x8, _mm_mullo_epi16) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint32x4, _mm_add_epi32) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint32x4, _mm_sub_epi32) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int32x4, _mm_add_epi32) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int32x4, _mm_sub_epi32) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_float32x4, _mm_add_ps) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_float32x4, _mm_sub_ps) -OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_float32x4, _mm_mul_ps) -OPENCV_HAL_IMPL_SSE_BIN_OP(/, v_float32x4, _mm_div_ps) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_float64x2, _mm_add_pd) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_float64x2, _mm_sub_pd) -OPENCV_HAL_IMPL_SSE_BIN_OP(*, v_float64x2, _mm_mul_pd) -OPENCV_HAL_IMPL_SSE_BIN_OP(/, v_float64x2, _mm_div_pd) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_uint64x2, _mm_add_epi64) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_uint64x2, _mm_sub_epi64) -OPENCV_HAL_IMPL_SSE_BIN_OP(+, v_int64x2, _mm_add_epi64) -OPENCV_HAL_IMPL_SSE_BIN_OP(-, v_int64x2, _mm_sub_epi64) - -inline v_uint32x4 operator * (const v_uint32x4& a, const v_uint32x4& b) -{ - __m128i c0 = _mm_mul_epu32(a.val, b.val); - __m128i c1 = _mm_mul_epu32(_mm_srli_epi64(a.val, 32), _mm_srli_epi64(b.val, 32)); - __m128i d0 = _mm_unpacklo_epi32(c0, c1); - __m128i d1 = _mm_unpackhi_epi32(c0, c1); - return v_uint32x4(_mm_unpacklo_epi64(d0, d1)); -} -inline v_int32x4 operator * (const v_int32x4& a, const v_int32x4& b) -{ - __m128i c0 = _mm_mul_epu32(a.val, b.val); - __m128i c1 = _mm_mul_epu32(_mm_srli_epi64(a.val, 32), _mm_srli_epi64(b.val, 32)); - __m128i d0 = _mm_unpacklo_epi32(c0, c1); - __m128i d1 = _mm_unpackhi_epi32(c0, c1); - return v_int32x4(_mm_unpacklo_epi64(d0, d1)); -} -inline v_uint32x4& operator *= (v_uint32x4& a, const v_uint32x4& b) -{ - a = a * b; - return a; -} -inline v_int32x4& operator *= (v_int32x4& a, const v_int32x4& b) -{ - a = a * b; - return a; -} - -inline void v_mul_expand(const v_int16x8& a, const v_int16x8& b, - v_int32x4& c, v_int32x4& d) -{ - __m128i v0 = _mm_mullo_epi16(a.val, b.val); - __m128i v1 = _mm_mulhi_epi16(a.val, b.val); - c.val = _mm_unpacklo_epi16(v0, v1); - d.val = _mm_unpackhi_epi16(v0, v1); -} - -inline void v_mul_expand(const v_uint16x8& a, const v_uint16x8& b, - v_uint32x4& c, v_uint32x4& d) -{ - __m128i v0 = _mm_mullo_epi16(a.val, b.val); - __m128i v1 = _mm_mulhi_epu16(a.val, b.val); - c.val = _mm_unpacklo_epi16(v0, v1); - d.val = _mm_unpackhi_epi16(v0, v1); -} - -inline void v_mul_expand(const v_uint32x4& a, const v_uint32x4& b, - v_uint64x2& c, v_uint64x2& d) -{ - __m128i c0 = _mm_mul_epu32(a.val, b.val); - __m128i c1 = _mm_mul_epu32(_mm_srli_epi64(a.val, 32), _mm_srli_epi64(b.val, 32)); - c.val = _mm_unpacklo_epi64(c0, c1); - d.val = _mm_unpackhi_epi64(c0, c1); -} - -inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b) -{ - return v_int32x4(_mm_madd_epi16(a.val, b.val)); -} - -#define OPENCV_HAL_IMPL_SSE_LOGIC_OP(_Tpvec, suffix, not_const) \ - OPENCV_HAL_IMPL_SSE_BIN_OP(&, _Tpvec, _mm_and_##suffix) \ - OPENCV_HAL_IMPL_SSE_BIN_OP(|, _Tpvec, _mm_or_##suffix) \ - OPENCV_HAL_IMPL_SSE_BIN_OP(^, _Tpvec, _mm_xor_##suffix) \ - inline _Tpvec operator ~ (const _Tpvec& a) \ - { \ - return _Tpvec(_mm_xor_##suffix(a.val, not_const)); \ - } - -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint8x16, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int8x16, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint16x8, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int16x8, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint32x4, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int32x4, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_uint64x2, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_int64x2, si128, _mm_set1_epi32(-1)) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_float32x4, ps, _mm_castsi128_ps(_mm_set1_epi32(-1))) -OPENCV_HAL_IMPL_SSE_LOGIC_OP(v_float64x2, pd, _mm_castsi128_pd(_mm_set1_epi32(-1))) - -inline v_float32x4 v_sqrt(const v_float32x4& x) -{ return v_float32x4(_mm_sqrt_ps(x.val)); } - -inline v_float32x4 v_invsqrt(const v_float32x4& x) -{ - static const __m128 _0_5 = _mm_set1_ps(0.5f), _1_5 = _mm_set1_ps(1.5f); - __m128 t = x.val; - __m128 h = _mm_mul_ps(t, _0_5); - t = _mm_rsqrt_ps(t); - t = _mm_mul_ps(t, _mm_sub_ps(_1_5, _mm_mul_ps(_mm_mul_ps(t, t), h))); - return v_float32x4(t); -} - -inline v_float64x2 v_sqrt(const v_float64x2& x) -{ return v_float64x2(_mm_sqrt_pd(x.val)); } - -inline v_float64x2 v_invsqrt(const v_float64x2& x) -{ - static const __m128d v_1 = _mm_set1_pd(1.); - return v_float64x2(_mm_div_pd(v_1, _mm_sqrt_pd(x.val))); -} - -#define OPENCV_HAL_IMPL_SSE_ABS_INT_FUNC(_Tpuvec, _Tpsvec, func, suffix, subWidth) \ -inline _Tpuvec v_abs(const _Tpsvec& x) \ -{ return _Tpuvec(_mm_##func##_ep##suffix(x.val, _mm_sub_ep##subWidth(_mm_setzero_si128(), x.val))); } - -OPENCV_HAL_IMPL_SSE_ABS_INT_FUNC(v_uint8x16, v_int8x16, min, u8, i8) -OPENCV_HAL_IMPL_SSE_ABS_INT_FUNC(v_uint16x8, v_int16x8, max, i16, i16) -inline v_uint32x4 v_abs(const v_int32x4& x) -{ - __m128i s = _mm_srli_epi32(x.val, 31); - __m128i f = _mm_srai_epi32(x.val, 31); - return v_uint32x4(_mm_add_epi32(_mm_xor_si128(x.val, f), s)); -} -inline v_float32x4 v_abs(const v_float32x4& x) -{ return v_float32x4(_mm_and_ps(x.val, _mm_castsi128_ps(_mm_set1_epi32(0x7fffffff)))); } -inline v_float64x2 v_abs(const v_float64x2& x) -{ - return v_float64x2(_mm_and_pd(x.val, - _mm_castsi128_pd(_mm_srli_epi64(_mm_set1_epi32(-1), 1)))); -} - -// TODO: exp, log, sin, cos - -#define OPENCV_HAL_IMPL_SSE_BIN_FUNC(_Tpvec, func, intrin) \ -inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ -{ \ - return _Tpvec(intrin(a.val, b.val)); \ -} - -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_min, _mm_min_epu8) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_max, _mm_max_epu8) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_min, _mm_min_epi16) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_max, _mm_max_epi16) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float32x4, v_min, _mm_min_ps) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float32x4, v_max, _mm_max_ps) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float64x2, v_min, _mm_min_pd) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_float64x2, v_max, _mm_max_pd) - -inline v_int8x16 v_min(const v_int8x16& a, const v_int8x16& b) -{ - __m128i delta = _mm_set1_epi8((char)-128); - return v_int8x16(_mm_xor_si128(delta, _mm_min_epu8(_mm_xor_si128(a.val, delta), - _mm_xor_si128(b.val, delta)))); -} -inline v_int8x16 v_max(const v_int8x16& a, const v_int8x16& b) -{ - __m128i delta = _mm_set1_epi8((char)-128); - return v_int8x16(_mm_xor_si128(delta, _mm_max_epu8(_mm_xor_si128(a.val, delta), - _mm_xor_si128(b.val, delta)))); -} -inline v_uint16x8 v_min(const v_uint16x8& a, const v_uint16x8& b) -{ - return v_uint16x8(_mm_subs_epu16(a.val, _mm_subs_epu16(a.val, b.val))); -} -inline v_uint16x8 v_max(const v_uint16x8& a, const v_uint16x8& b) -{ - return v_uint16x8(_mm_adds_epu16(_mm_subs_epu16(a.val, b.val), b.val)); -} -inline v_uint32x4 v_min(const v_uint32x4& a, const v_uint32x4& b) -{ - __m128i delta = _mm_set1_epi32((int)0x80000000); - __m128i mask = _mm_cmpgt_epi32(_mm_xor_si128(a.val, delta), _mm_xor_si128(b.val, delta)); - return v_uint32x4(v_select_si128(mask, b.val, a.val)); -} -inline v_uint32x4 v_max(const v_uint32x4& a, const v_uint32x4& b) -{ - __m128i delta = _mm_set1_epi32((int)0x80000000); - __m128i mask = _mm_cmpgt_epi32(_mm_xor_si128(a.val, delta), _mm_xor_si128(b.val, delta)); - return v_uint32x4(v_select_si128(mask, a.val, b.val)); -} -inline v_int32x4 v_min(const v_int32x4& a, const v_int32x4& b) -{ - return v_int32x4(v_select_si128(_mm_cmpgt_epi32(a.val, b.val), b.val, a.val)); -} -inline v_int32x4 v_max(const v_int32x4& a, const v_int32x4& b) -{ - return v_int32x4(v_select_si128(_mm_cmpgt_epi32(a.val, b.val), a.val, b.val)); -} - -#define OPENCV_HAL_IMPL_SSE_INT_CMP_OP(_Tpuvec, _Tpsvec, suffix, sbit) \ -inline _Tpuvec operator == (const _Tpuvec& a, const _Tpuvec& b) \ -{ return _Tpuvec(_mm_cmpeq_##suffix(a.val, b.val)); } \ -inline _Tpuvec operator != (const _Tpuvec& a, const _Tpuvec& b) \ -{ \ - __m128i not_mask = _mm_set1_epi32(-1); \ - return _Tpuvec(_mm_xor_si128(_mm_cmpeq_##suffix(a.val, b.val), not_mask)); \ -} \ -inline _Tpsvec operator == (const _Tpsvec& a, const _Tpsvec& b) \ -{ return _Tpsvec(_mm_cmpeq_##suffix(a.val, b.val)); } \ -inline _Tpsvec operator != (const _Tpsvec& a, const _Tpsvec& b) \ -{ \ - __m128i not_mask = _mm_set1_epi32(-1); \ - return _Tpsvec(_mm_xor_si128(_mm_cmpeq_##suffix(a.val, b.val), not_mask)); \ -} \ -inline _Tpuvec operator < (const _Tpuvec& a, const _Tpuvec& b) \ -{ \ - __m128i smask = _mm_set1_##suffix(sbit); \ - return _Tpuvec(_mm_cmpgt_##suffix(_mm_xor_si128(b.val, smask), _mm_xor_si128(a.val, smask))); \ -} \ -inline _Tpuvec operator > (const _Tpuvec& a, const _Tpuvec& b) \ -{ \ - __m128i smask = _mm_set1_##suffix(sbit); \ - return _Tpuvec(_mm_cmpgt_##suffix(_mm_xor_si128(a.val, smask), _mm_xor_si128(b.val, smask))); \ -} \ -inline _Tpuvec operator <= (const _Tpuvec& a, const _Tpuvec& b) \ -{ \ - __m128i smask = _mm_set1_##suffix(sbit); \ - __m128i not_mask = _mm_set1_epi32(-1); \ - __m128i res = _mm_cmpgt_##suffix(_mm_xor_si128(a.val, smask), _mm_xor_si128(b.val, smask)); \ - return _Tpuvec(_mm_xor_si128(res, not_mask)); \ -} \ -inline _Tpuvec operator >= (const _Tpuvec& a, const _Tpuvec& b) \ -{ \ - __m128i smask = _mm_set1_##suffix(sbit); \ - __m128i not_mask = _mm_set1_epi32(-1); \ - __m128i res = _mm_cmpgt_##suffix(_mm_xor_si128(b.val, smask), _mm_xor_si128(a.val, smask)); \ - return _Tpuvec(_mm_xor_si128(res, not_mask)); \ -} \ -inline _Tpsvec operator < (const _Tpsvec& a, const _Tpsvec& b) \ -{ \ - return _Tpsvec(_mm_cmpgt_##suffix(b.val, a.val)); \ -} \ -inline _Tpsvec operator > (const _Tpsvec& a, const _Tpsvec& b) \ -{ \ - return _Tpsvec(_mm_cmpgt_##suffix(a.val, b.val)); \ -} \ -inline _Tpsvec operator <= (const _Tpsvec& a, const _Tpsvec& b) \ -{ \ - __m128i not_mask = _mm_set1_epi32(-1); \ - return _Tpsvec(_mm_xor_si128(_mm_cmpgt_##suffix(a.val, b.val), not_mask)); \ -} \ -inline _Tpsvec operator >= (const _Tpsvec& a, const _Tpsvec& b) \ -{ \ - __m128i not_mask = _mm_set1_epi32(-1); \ - return _Tpsvec(_mm_xor_si128(_mm_cmpgt_##suffix(b.val, a.val), not_mask)); \ -} - -OPENCV_HAL_IMPL_SSE_INT_CMP_OP(v_uint8x16, v_int8x16, epi8, (char)-128) -OPENCV_HAL_IMPL_SSE_INT_CMP_OP(v_uint16x8, v_int16x8, epi16, (short)-32768) -OPENCV_HAL_IMPL_SSE_INT_CMP_OP(v_uint32x4, v_int32x4, epi32, (int)0x80000000) - -#define OPENCV_HAL_IMPL_SSE_FLT_CMP_OP(_Tpvec, suffix) \ -inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(_mm_cmpeq_##suffix(a.val, b.val)); } \ -inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(_mm_cmpneq_##suffix(a.val, b.val)); } \ -inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(_mm_cmplt_##suffix(a.val, b.val)); } \ -inline _Tpvec operator > (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(_mm_cmpgt_##suffix(a.val, b.val)); } \ -inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(_mm_cmple_##suffix(a.val, b.val)); } \ -inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(_mm_cmpge_##suffix(a.val, b.val)); } - -OPENCV_HAL_IMPL_SSE_FLT_CMP_OP(v_float32x4, ps) -OPENCV_HAL_IMPL_SSE_FLT_CMP_OP(v_float64x2, pd) - -#define OPENCV_HAL_IMPL_SSE_64BIT_CMP_OP(_Tpvec, cast) \ -inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ -{ return cast(v_reinterpret_as_f64(a) == v_reinterpret_as_f64(b)); } \ -inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ -{ return cast(v_reinterpret_as_f64(a) != v_reinterpret_as_f64(b)); } - -OPENCV_HAL_IMPL_SSE_64BIT_CMP_OP(v_uint64x2, v_reinterpret_as_u64); -OPENCV_HAL_IMPL_SSE_64BIT_CMP_OP(v_int64x2, v_reinterpret_as_s64); - -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_add_wrap, _mm_add_epi8) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int8x16, v_add_wrap, _mm_add_epi8) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint16x8, v_add_wrap, _mm_add_epi16) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_add_wrap, _mm_add_epi16) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint8x16, v_sub_wrap, _mm_sub_epi8) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int8x16, v_sub_wrap, _mm_sub_epi8) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_uint16x8, v_sub_wrap, _mm_sub_epi16) -OPENCV_HAL_IMPL_SSE_BIN_FUNC(v_int16x8, v_sub_wrap, _mm_sub_epi16) - -#define OPENCV_HAL_IMPL_SSE_ABSDIFF_8_16(_Tpuvec, _Tpsvec, bits, smask32) \ -inline _Tpuvec v_absdiff(const _Tpuvec& a, const _Tpuvec& b) \ -{ \ - return _Tpuvec(_mm_add_epi##bits(_mm_subs_epu##bits(a.val, b.val), _mm_subs_epu##bits(b.val, a.val))); \ -} \ -inline _Tpuvec v_absdiff(const _Tpsvec& a, const _Tpsvec& b) \ -{ \ - __m128i smask = _mm_set1_epi32(smask32); \ - __m128i a1 = _mm_xor_si128(a.val, smask); \ - __m128i b1 = _mm_xor_si128(b.val, smask); \ - return _Tpuvec(_mm_add_epi##bits(_mm_subs_epu##bits(a1, b1), _mm_subs_epu##bits(b1, a1))); \ -} - -OPENCV_HAL_IMPL_SSE_ABSDIFF_8_16(v_uint8x16, v_int8x16, 8, (int)0x80808080) -OPENCV_HAL_IMPL_SSE_ABSDIFF_8_16(v_uint16x8, v_int16x8, 16, (int)0x80008000) - -inline v_uint32x4 v_absdiff(const v_uint32x4& a, const v_uint32x4& b) -{ - return v_max(a, b) - v_min(a, b); -} - -inline v_uint32x4 v_absdiff(const v_int32x4& a, const v_int32x4& b) -{ - __m128i d = _mm_sub_epi32(a.val, b.val); - __m128i m = _mm_cmpgt_epi32(b.val, a.val); - return v_uint32x4(_mm_sub_epi32(_mm_xor_si128(d, m), m)); -} - -#define OPENCV_HAL_IMPL_SSE_MISC_FLT_OP(_Tpvec, _Tp, _Tpreg, suffix, absmask_vec) \ -inline _Tpvec v_absdiff(const _Tpvec& a, const _Tpvec& b) \ -{ \ - _Tpreg absmask = _mm_castsi128_##suffix(absmask_vec); \ - return _Tpvec(_mm_and_##suffix(_mm_sub_##suffix(a.val, b.val), absmask)); \ -} \ -inline _Tpvec v_magnitude(const _Tpvec& a, const _Tpvec& b) \ -{ \ - _Tpreg res = _mm_add_##suffix(_mm_mul_##suffix(a.val, a.val), _mm_mul_##suffix(b.val, b.val)); \ - return _Tpvec(_mm_sqrt_##suffix(res)); \ -} \ -inline _Tpvec v_sqr_magnitude(const _Tpvec& a, const _Tpvec& b) \ -{ \ - _Tpreg res = _mm_add_##suffix(_mm_mul_##suffix(a.val, a.val), _mm_mul_##suffix(b.val, b.val)); \ - return _Tpvec(res); \ -} \ -inline _Tpvec v_muladd(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ -{ \ - return _Tpvec(_mm_add_##suffix(_mm_mul_##suffix(a.val, b.val), c.val)); \ -} - -OPENCV_HAL_IMPL_SSE_MISC_FLT_OP(v_float32x4, float, __m128, ps, _mm_set1_epi32((int)0x7fffffff)) -OPENCV_HAL_IMPL_SSE_MISC_FLT_OP(v_float64x2, double, __m128d, pd, _mm_srli_epi64(_mm_set1_epi32(-1), 1)) - -#define OPENCV_HAL_IMPL_SSE_SHIFT_OP(_Tpuvec, _Tpsvec, suffix, srai) \ -inline _Tpuvec operator << (const _Tpuvec& a, int imm) \ -{ \ - return _Tpuvec(_mm_slli_##suffix(a.val, imm)); \ -} \ -inline _Tpsvec operator << (const _Tpsvec& a, int imm) \ -{ \ - return _Tpsvec(_mm_slli_##suffix(a.val, imm)); \ -} \ -inline _Tpuvec operator >> (const _Tpuvec& a, int imm) \ -{ \ - return _Tpuvec(_mm_srli_##suffix(a.val, imm)); \ -} \ -inline _Tpsvec operator >> (const _Tpsvec& a, int imm) \ -{ \ - return _Tpsvec(srai(a.val, imm)); \ -} \ -template \ -inline _Tpuvec v_shl(const _Tpuvec& a) \ -{ \ - return _Tpuvec(_mm_slli_##suffix(a.val, imm)); \ -} \ -template \ -inline _Tpsvec v_shl(const _Tpsvec& a) \ -{ \ - return _Tpsvec(_mm_slli_##suffix(a.val, imm)); \ -} \ -template \ -inline _Tpuvec v_shr(const _Tpuvec& a) \ -{ \ - return _Tpuvec(_mm_srli_##suffix(a.val, imm)); \ -} \ -template \ -inline _Tpsvec v_shr(const _Tpsvec& a) \ -{ \ - return _Tpsvec(srai(a.val, imm)); \ -} - -OPENCV_HAL_IMPL_SSE_SHIFT_OP(v_uint16x8, v_int16x8, epi16, _mm_srai_epi16) -OPENCV_HAL_IMPL_SSE_SHIFT_OP(v_uint32x4, v_int32x4, epi32, _mm_srai_epi32) -OPENCV_HAL_IMPL_SSE_SHIFT_OP(v_uint64x2, v_int64x2, epi64, v_srai_epi64) - -template -inline _Tpvec v_rotate_right(const _Tpvec &a) -{ - enum { CV_SHIFT = imm*(sizeof(typename _Tpvec::lane_type)) }; - return _Tpvec(_mm_srli_si128(a.val, CV_SHIFT)); -} -template -inline _Tpvec v_rotate_left(const _Tpvec &a) -{ - enum { CV_SHIFT = imm*(sizeof(typename _Tpvec::lane_type)) }; - return _Tpvec(_mm_slli_si128(a.val, CV_SHIFT)); -} -template -inline _Tpvec v_rotate_right(const _Tpvec &a, const _Tpvec &b) -{ - enum { CV_SHIFT1 = imm*(sizeof(typename _Tpvec::lane_type)) }; - enum { CV_SHIFT2 = 16 - imm*(sizeof(typename _Tpvec::lane_type)) }; - return _Tpvec(_mm_or_si128(_mm_srli_si128(a.val, CV_SHIFT1), _mm_slli_si128(b.val, CV_SHIFT2))); -} -template -inline _Tpvec v_rotate_left(const _Tpvec &a, const _Tpvec &b) -{ - enum { CV_SHIFT1 = imm*(sizeof(typename _Tpvec::lane_type)) }; - enum { CV_SHIFT2 = 16 - imm*(sizeof(typename _Tpvec::lane_type)) }; - return _Tpvec(_mm_or_si128(_mm_slli_si128(a.val, CV_SHIFT1), _mm_srli_si128(b.val, CV_SHIFT2))); -} - -#define OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(_Tpvec, _Tp) \ -inline _Tpvec v_load(const _Tp* ptr) \ -{ return _Tpvec(_mm_loadu_si128((const __m128i*)ptr)); } \ -inline _Tpvec v_load_aligned(const _Tp* ptr) \ -{ return _Tpvec(_mm_load_si128((const __m128i*)ptr)); } \ -inline _Tpvec v_load_low(const _Tp* ptr) \ -{ return _Tpvec(_mm_loadl_epi64((const __m128i*)ptr)); } \ -inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ -{ \ - return _Tpvec(_mm_unpacklo_epi64(_mm_loadl_epi64((const __m128i*)ptr0), \ - _mm_loadl_epi64((const __m128i*)ptr1))); \ -} \ -inline void v_store(_Tp* ptr, const _Tpvec& a) \ -{ _mm_storeu_si128((__m128i*)ptr, a.val); } \ -inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ -{ _mm_store_si128((__m128i*)ptr, a.val); } \ -inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ -{ _mm_storel_epi64((__m128i*)ptr, a.val); } \ -inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ -{ _mm_storel_epi64((__m128i*)ptr, _mm_unpackhi_epi64(a.val, a.val)); } - -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint8x16, uchar) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int8x16, schar) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint16x8, ushort) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int16x8, short) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint32x4, unsigned) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int32x4, int) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_uint64x2, uint64) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INT_OP(v_int64x2, int64) - -#define OPENCV_HAL_IMPL_SSE_LOADSTORE_FLT_OP(_Tpvec, _Tp, suffix) \ -inline _Tpvec v_load(const _Tp* ptr) \ -{ return _Tpvec(_mm_loadu_##suffix(ptr)); } \ -inline _Tpvec v_load_aligned(const _Tp* ptr) \ -{ return _Tpvec(_mm_load_##suffix(ptr)); } \ -inline _Tpvec v_load_low(const _Tp* ptr) \ -{ return _Tpvec(_mm_castsi128_##suffix(_mm_loadl_epi64((const __m128i*)ptr))); } \ -inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ -{ \ - return _Tpvec(_mm_castsi128_##suffix( \ - _mm_unpacklo_epi64(_mm_loadl_epi64((const __m128i*)ptr0), \ - _mm_loadl_epi64((const __m128i*)ptr1)))); \ -} \ -inline void v_store(_Tp* ptr, const _Tpvec& a) \ -{ _mm_storeu_##suffix(ptr, a.val); } \ -inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ -{ _mm_store_##suffix(ptr, a.val); } \ -inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ -{ _mm_storel_epi64((__m128i*)ptr, _mm_cast##suffix##_si128(a.val)); } \ -inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ -{ \ - __m128i a1 = _mm_cast##suffix##_si128(a.val); \ - _mm_storel_epi64((__m128i*)ptr, _mm_unpackhi_epi64(a1, a1)); \ -} - -OPENCV_HAL_IMPL_SSE_LOADSTORE_FLT_OP(v_float32x4, float, ps) -OPENCV_HAL_IMPL_SSE_LOADSTORE_FLT_OP(v_float64x2, double, pd) - -#if CV_FP16 -inline v_float16x4 v_load_f16(const short* ptr) -{ return v_float16x4(_mm_loadl_epi64((const __m128i*)ptr)); } -inline void v_store_f16(short* ptr, v_float16x4& a) -{ _mm_storel_epi64((__m128i*)ptr, a.val); } -#endif - -#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_8(_Tpvec, scalartype, func, suffix, sbit) \ -inline scalartype v_reduce_##func(const v_##_Tpvec& a) \ -{ \ - __m128i val = a.val; \ - val = _mm_##func##_##suffix(val, _mm_srli_si128(val,8)); \ - val = _mm_##func##_##suffix(val, _mm_srli_si128(val,4)); \ - val = _mm_##func##_##suffix(val, _mm_srli_si128(val,2)); \ - return (scalartype)_mm_cvtsi128_si32(val); \ -} \ -inline unsigned scalartype v_reduce_##func(const v_u##_Tpvec& a) \ -{ \ - __m128i val = a.val; \ - __m128i smask = _mm_set1_epi16(sbit); \ - val = _mm_xor_si128(val, smask); \ - val = _mm_##func##_##suffix(val, _mm_srli_si128(val,8)); \ - val = _mm_##func##_##suffix(val, _mm_srli_si128(val,4)); \ - val = _mm_##func##_##suffix(val, _mm_srli_si128(val,2)); \ - return (unsigned scalartype)(_mm_cvtsi128_si32(val) ^ sbit); \ -} -#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_8_SUM(_Tpvec, scalartype, suffix) \ -inline scalartype v_reduce_sum(const v_##_Tpvec& a) \ -{ \ - __m128i val = a.val; \ - val = _mm_adds_epi##suffix(val, _mm_srli_si128(val, 8)); \ - val = _mm_adds_epi##suffix(val, _mm_srli_si128(val, 4)); \ - val = _mm_adds_epi##suffix(val, _mm_srli_si128(val, 2)); \ - return (scalartype)_mm_cvtsi128_si32(val); \ -} \ -inline unsigned scalartype v_reduce_sum(const v_u##_Tpvec& a) \ -{ \ - __m128i val = a.val; \ - val = _mm_adds_epu##suffix(val, _mm_srli_si128(val, 8)); \ - val = _mm_adds_epu##suffix(val, _mm_srli_si128(val, 4)); \ - val = _mm_adds_epu##suffix(val, _mm_srli_si128(val, 2)); \ - return (unsigned scalartype)_mm_cvtsi128_si32(val); \ -} -OPENCV_HAL_IMPL_SSE_REDUCE_OP_8(int16x8, short, max, epi16, (short)-32768) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_8(int16x8, short, min, epi16, (short)-32768) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_8_SUM(int16x8, short, 16) - -#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(_Tpvec, scalartype, regtype, suffix, cast_from, cast_to, extract) \ -inline scalartype v_reduce_sum(const _Tpvec& a) \ -{ \ - regtype val = a.val; \ - val = _mm_add_##suffix(val, cast_to(_mm_srli_si128(cast_from(val), 8))); \ - val = _mm_add_##suffix(val, cast_to(_mm_srli_si128(cast_from(val), 4))); \ - return (scalartype)_mm_cvt##extract(val); \ -} - -#define OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(_Tpvec, scalartype, func, scalar_func) \ -inline scalartype v_reduce_##func(const _Tpvec& a) \ -{ \ - scalartype CV_DECL_ALIGNED(16) buf[4]; \ - v_store_aligned(buf, a); \ - scalartype s0 = scalar_func(buf[0], buf[1]); \ - scalartype s1 = scalar_func(buf[2], buf[3]); \ - return scalar_func(s0, s1); \ -} - -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(v_uint32x4, unsigned, __m128i, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP, si128_si32) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(v_int32x4, int, __m128i, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP, si128_si32) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4_SUM(v_float32x4, float, __m128, ps, _mm_castps_si128, _mm_castsi128_ps, ss_f32) - -inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, - const v_float32x4& c, const v_float32x4& d) -{ -#if CV_SSE3 - __m128 ab = _mm_hadd_ps(a.val, b.val); - __m128 cd = _mm_hadd_ps(c.val, d.val); - return v_float32x4(_mm_hadd_ps(ab, cd)); -#else - __m128 ac = _mm_add_ps(_mm_unpacklo_ps(a.val, c.val), _mm_unpackhi_ps(a.val, c.val)); - __m128 bd = _mm_add_ps(_mm_unpacklo_ps(b.val, d.val), _mm_unpackhi_ps(b.val, d.val)); - return v_float32x4(_mm_add_ps(_mm_unpacklo_ps(ac, bd), _mm_unpackhi_ps(ac, bd))); -#endif -} - -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_uint32x4, unsigned, max, std::max) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_uint32x4, unsigned, min, std::min) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_int32x4, int, max, std::max) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_int32x4, int, min, std::min) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_float32x4, float, max, std::max) -OPENCV_HAL_IMPL_SSE_REDUCE_OP_4(v_float32x4, float, min, std::min) - -#define OPENCV_HAL_IMPL_SSE_POPCOUNT(_Tpvec) \ -inline v_uint32x4 v_popcount(const _Tpvec& a) \ -{ \ - __m128i m1 = _mm_set1_epi32(0x55555555); \ - __m128i m2 = _mm_set1_epi32(0x33333333); \ - __m128i m4 = _mm_set1_epi32(0x0f0f0f0f); \ - __m128i p = a.val; \ - p = _mm_add_epi32(_mm_and_si128(_mm_srli_epi32(p, 1), m1), _mm_and_si128(p, m1)); \ - p = _mm_add_epi32(_mm_and_si128(_mm_srli_epi32(p, 2), m2), _mm_and_si128(p, m2)); \ - p = _mm_add_epi32(_mm_and_si128(_mm_srli_epi32(p, 4), m4), _mm_and_si128(p, m4)); \ - p = _mm_adds_epi8(p, _mm_srli_si128(p, 1)); \ - p = _mm_adds_epi8(p, _mm_srli_si128(p, 2)); \ - return v_uint32x4(_mm_and_si128(p, _mm_set1_epi32(0x000000ff))); \ -} - -OPENCV_HAL_IMPL_SSE_POPCOUNT(v_uint8x16) -OPENCV_HAL_IMPL_SSE_POPCOUNT(v_uint16x8) -OPENCV_HAL_IMPL_SSE_POPCOUNT(v_uint32x4) -OPENCV_HAL_IMPL_SSE_POPCOUNT(v_int8x16) -OPENCV_HAL_IMPL_SSE_POPCOUNT(v_int16x8) -OPENCV_HAL_IMPL_SSE_POPCOUNT(v_int32x4) - -#define OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(_Tpvec, suffix, pack_op, and_op, signmask, allmask) \ -inline int v_signmask(const _Tpvec& a) \ -{ \ - return and_op(_mm_movemask_##suffix(pack_op(a.val)), signmask); \ -} \ -inline bool v_check_all(const _Tpvec& a) \ -{ return and_op(_mm_movemask_##suffix(a.val), allmask) == allmask; } \ -inline bool v_check_any(const _Tpvec& a) \ -{ return and_op(_mm_movemask_##suffix(a.val), allmask) != 0; } - -#define OPENCV_HAL_PACKS(a) _mm_packs_epi16(a, a) -inline __m128i v_packq_epi32(__m128i a) -{ - __m128i b = _mm_packs_epi32(a, a); - return _mm_packs_epi16(b, b); -} - -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_uint8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 65535, 65535) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_int8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 65535, 65535) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_uint16x8, epi8, OPENCV_HAL_PACKS, OPENCV_HAL_AND, 255, (int)0xaaaa) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_int16x8, epi8, OPENCV_HAL_PACKS, OPENCV_HAL_AND, 255, (int)0xaaaa) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_uint32x4, epi8, v_packq_epi32, OPENCV_HAL_AND, 15, (int)0x8888) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_int32x4, epi8, v_packq_epi32, OPENCV_HAL_AND, 15, (int)0x8888) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_float32x4, ps, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 15, 15) -OPENCV_HAL_IMPL_SSE_CHECK_SIGNS(v_float64x2, pd, OPENCV_HAL_NOP, OPENCV_HAL_1ST, 3, 3) - -#define OPENCV_HAL_IMPL_SSE_SELECT(_Tpvec, suffix) \ -inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ -{ \ - return _Tpvec(_mm_xor_##suffix(b.val, _mm_and_##suffix(_mm_xor_##suffix(b.val, a.val), mask.val))); \ -} - -OPENCV_HAL_IMPL_SSE_SELECT(v_uint8x16, si128) -OPENCV_HAL_IMPL_SSE_SELECT(v_int8x16, si128) -OPENCV_HAL_IMPL_SSE_SELECT(v_uint16x8, si128) -OPENCV_HAL_IMPL_SSE_SELECT(v_int16x8, si128) -OPENCV_HAL_IMPL_SSE_SELECT(v_uint32x4, si128) -OPENCV_HAL_IMPL_SSE_SELECT(v_int32x4, si128) -// OPENCV_HAL_IMPL_SSE_SELECT(v_uint64x2, si128) -// OPENCV_HAL_IMPL_SSE_SELECT(v_int64x2, si128) -OPENCV_HAL_IMPL_SSE_SELECT(v_float32x4, ps) -OPENCV_HAL_IMPL_SSE_SELECT(v_float64x2, pd) - -#define OPENCV_HAL_IMPL_SSE_EXPAND(_Tpuvec, _Tpwuvec, _Tpu, _Tpsvec, _Tpwsvec, _Tps, suffix, wsuffix, shift) \ -inline void v_expand(const _Tpuvec& a, _Tpwuvec& b0, _Tpwuvec& b1) \ -{ \ - __m128i z = _mm_setzero_si128(); \ - b0.val = _mm_unpacklo_##suffix(a.val, z); \ - b1.val = _mm_unpackhi_##suffix(a.val, z); \ -} \ -inline _Tpwuvec v_load_expand(const _Tpu* ptr) \ -{ \ - __m128i z = _mm_setzero_si128(); \ - return _Tpwuvec(_mm_unpacklo_##suffix(_mm_loadl_epi64((const __m128i*)ptr), z)); \ -} \ -inline void v_expand(const _Tpsvec& a, _Tpwsvec& b0, _Tpwsvec& b1) \ -{ \ - b0.val = _mm_srai_##wsuffix(_mm_unpacklo_##suffix(a.val, a.val), shift); \ - b1.val = _mm_srai_##wsuffix(_mm_unpackhi_##suffix(a.val, a.val), shift); \ -} \ -inline _Tpwsvec v_load_expand(const _Tps* ptr) \ -{ \ - __m128i a = _mm_loadl_epi64((const __m128i*)ptr); \ - return _Tpwsvec(_mm_srai_##wsuffix(_mm_unpacklo_##suffix(a, a), shift)); \ -} - -OPENCV_HAL_IMPL_SSE_EXPAND(v_uint8x16, v_uint16x8, uchar, v_int8x16, v_int16x8, schar, epi8, epi16, 8) -OPENCV_HAL_IMPL_SSE_EXPAND(v_uint16x8, v_uint32x4, ushort, v_int16x8, v_int32x4, short, epi16, epi32, 16) - -inline void v_expand(const v_uint32x4& a, v_uint64x2& b0, v_uint64x2& b1) -{ - __m128i z = _mm_setzero_si128(); - b0.val = _mm_unpacklo_epi32(a.val, z); - b1.val = _mm_unpackhi_epi32(a.val, z); -} -inline v_uint64x2 v_load_expand(const unsigned* ptr) -{ - __m128i z = _mm_setzero_si128(); - return v_uint64x2(_mm_unpacklo_epi32(_mm_loadl_epi64((const __m128i*)ptr), z)); -} -inline void v_expand(const v_int32x4& a, v_int64x2& b0, v_int64x2& b1) -{ - __m128i s = _mm_srai_epi32(a.val, 31); - b0.val = _mm_unpacklo_epi32(a.val, s); - b1.val = _mm_unpackhi_epi32(a.val, s); -} -inline v_int64x2 v_load_expand(const int* ptr) -{ - __m128i a = _mm_loadl_epi64((const __m128i*)ptr); - __m128i s = _mm_srai_epi32(a, 31); - return v_int64x2(_mm_unpacklo_epi32(a, s)); -} - -inline v_uint32x4 v_load_expand_q(const uchar* ptr) -{ - __m128i z = _mm_setzero_si128(); - __m128i a = _mm_cvtsi32_si128(*(const int*)ptr); - return v_uint32x4(_mm_unpacklo_epi16(_mm_unpacklo_epi8(a, z), z)); -} - -inline v_int32x4 v_load_expand_q(const schar* ptr) -{ - __m128i a = _mm_cvtsi32_si128(*(const int*)ptr); - a = _mm_unpacklo_epi8(a, a); - a = _mm_unpacklo_epi8(a, a); - return v_int32x4(_mm_srai_epi32(a, 24)); -} - -#define OPENCV_HAL_IMPL_SSE_UNPACKS(_Tpvec, suffix, cast_from, cast_to) \ -inline void v_zip(const _Tpvec& a0, const _Tpvec& a1, _Tpvec& b0, _Tpvec& b1) \ -{ \ - b0.val = _mm_unpacklo_##suffix(a0.val, a1.val); \ - b1.val = _mm_unpackhi_##suffix(a0.val, a1.val); \ -} \ -inline _Tpvec v_combine_low(const _Tpvec& a, const _Tpvec& b) \ -{ \ - __m128i a1 = cast_from(a.val), b1 = cast_from(b.val); \ - return _Tpvec(cast_to(_mm_unpacklo_epi64(a1, b1))); \ -} \ -inline _Tpvec v_combine_high(const _Tpvec& a, const _Tpvec& b) \ -{ \ - __m128i a1 = cast_from(a.val), b1 = cast_from(b.val); \ - return _Tpvec(cast_to(_mm_unpackhi_epi64(a1, b1))); \ -} \ -inline void v_recombine(const _Tpvec& a, const _Tpvec& b, _Tpvec& c, _Tpvec& d) \ -{ \ - __m128i a1 = cast_from(a.val), b1 = cast_from(b.val); \ - c.val = cast_to(_mm_unpacklo_epi64(a1, b1)); \ - d.val = cast_to(_mm_unpackhi_epi64(a1, b1)); \ -} - -OPENCV_HAL_IMPL_SSE_UNPACKS(v_uint8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_int8x16, epi8, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_uint16x8, epi16, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_int16x8, epi16, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_uint32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_int32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_float32x4, ps, _mm_castps_si128, _mm_castsi128_ps) -OPENCV_HAL_IMPL_SSE_UNPACKS(v_float64x2, pd, _mm_castpd_si128, _mm_castsi128_pd) - -template -inline _Tpvec v_extract(const _Tpvec& a, const _Tpvec& b) -{ - const int w = sizeof(typename _Tpvec::lane_type); - const int n = _Tpvec::nlanes; - __m128i ra, rb; - ra = _mm_srli_si128(a.val, s*w); - rb = _mm_slli_si128(b.val, (n-s)*w); - return _Tpvec(_mm_or_si128(ra, rb)); -} - -inline v_int32x4 v_round(const v_float32x4& a) -{ return v_int32x4(_mm_cvtps_epi32(a.val)); } - -inline v_int32x4 v_floor(const v_float32x4& a) -{ - __m128i a1 = _mm_cvtps_epi32(a.val); - __m128i mask = _mm_castps_si128(_mm_cmpgt_ps(_mm_cvtepi32_ps(a1), a.val)); - return v_int32x4(_mm_add_epi32(a1, mask)); -} - -inline v_int32x4 v_ceil(const v_float32x4& a) -{ - __m128i a1 = _mm_cvtps_epi32(a.val); - __m128i mask = _mm_castps_si128(_mm_cmpgt_ps(a.val, _mm_cvtepi32_ps(a1))); - return v_int32x4(_mm_sub_epi32(a1, mask)); -} - -inline v_int32x4 v_trunc(const v_float32x4& a) -{ return v_int32x4(_mm_cvttps_epi32(a.val)); } - -inline v_int32x4 v_round(const v_float64x2& a) -{ return v_int32x4(_mm_cvtpd_epi32(a.val)); } - -inline v_int32x4 v_floor(const v_float64x2& a) -{ - __m128i a1 = _mm_cvtpd_epi32(a.val); - __m128i mask = _mm_castpd_si128(_mm_cmpgt_pd(_mm_cvtepi32_pd(a1), a.val)); - mask = _mm_srli_si128(_mm_slli_si128(mask, 4), 8); // m0 m0 m1 m1 => m0 m1 0 0 - return v_int32x4(_mm_add_epi32(a1, mask)); -} - -inline v_int32x4 v_ceil(const v_float64x2& a) -{ - __m128i a1 = _mm_cvtpd_epi32(a.val); - __m128i mask = _mm_castpd_si128(_mm_cmpgt_pd(a.val, _mm_cvtepi32_pd(a1))); - mask = _mm_srli_si128(_mm_slli_si128(mask, 4), 8); // m0 m0 m1 m1 => m0 m1 0 0 - return v_int32x4(_mm_sub_epi32(a1, mask)); -} - -inline v_int32x4 v_trunc(const v_float64x2& a) -{ return v_int32x4(_mm_cvttpd_epi32(a.val)); } - -#define OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(_Tpvec, suffix, cast_from, cast_to) \ -inline void v_transpose4x4(const _Tpvec& a0, const _Tpvec& a1, \ - const _Tpvec& a2, const _Tpvec& a3, \ - _Tpvec& b0, _Tpvec& b1, \ - _Tpvec& b2, _Tpvec& b3) \ -{ \ - __m128i t0 = cast_from(_mm_unpacklo_##suffix(a0.val, a1.val)); \ - __m128i t1 = cast_from(_mm_unpacklo_##suffix(a2.val, a3.val)); \ - __m128i t2 = cast_from(_mm_unpackhi_##suffix(a0.val, a1.val)); \ - __m128i t3 = cast_from(_mm_unpackhi_##suffix(a2.val, a3.val)); \ -\ - b0.val = cast_to(_mm_unpacklo_epi64(t0, t1)); \ - b1.val = cast_to(_mm_unpackhi_epi64(t0, t1)); \ - b2.val = cast_to(_mm_unpacklo_epi64(t2, t3)); \ - b3.val = cast_to(_mm_unpackhi_epi64(t2, t3)); \ -} - -OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(v_uint32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(v_int32x4, epi32, OPENCV_HAL_NOP, OPENCV_HAL_NOP) -OPENCV_HAL_IMPL_SSE_TRANSPOSE4x4(v_float32x4, ps, _mm_castps_si128, _mm_castsi128_ps) - -// adopted from sse_utils.hpp -inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b) -{ - __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); - __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 16)); - - __m128i t10 = _mm_unpacklo_epi8(t00, t01); - __m128i t11 = _mm_unpackhi_epi8(t00, t01); - - __m128i t20 = _mm_unpacklo_epi8(t10, t11); - __m128i t21 = _mm_unpackhi_epi8(t10, t11); - - __m128i t30 = _mm_unpacklo_epi8(t20, t21); - __m128i t31 = _mm_unpackhi_epi8(t20, t21); - - a.val = _mm_unpacklo_epi8(t30, t31); - b.val = _mm_unpackhi_epi8(t30, t31); -} - -inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b, v_uint8x16& c) -{ - __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); - __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 16)); - __m128i t02 = _mm_loadu_si128((const __m128i*)(ptr + 32)); - - __m128i t10 = _mm_unpacklo_epi8(t00, _mm_unpackhi_epi64(t01, t01)); - __m128i t11 = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t00, t00), t02); - __m128i t12 = _mm_unpacklo_epi8(t01, _mm_unpackhi_epi64(t02, t02)); - - __m128i t20 = _mm_unpacklo_epi8(t10, _mm_unpackhi_epi64(t11, t11)); - __m128i t21 = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t10, t10), t12); - __m128i t22 = _mm_unpacklo_epi8(t11, _mm_unpackhi_epi64(t12, t12)); - - __m128i t30 = _mm_unpacklo_epi8(t20, _mm_unpackhi_epi64(t21, t21)); - __m128i t31 = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t20, t20), t22); - __m128i t32 = _mm_unpacklo_epi8(t21, _mm_unpackhi_epi64(t22, t22)); - - a.val = _mm_unpacklo_epi8(t30, _mm_unpackhi_epi64(t31, t31)); - b.val = _mm_unpacklo_epi8(_mm_unpackhi_epi64(t30, t30), t32); - c.val = _mm_unpacklo_epi8(t31, _mm_unpackhi_epi64(t32, t32)); -} - -inline void v_load_deinterleave(const uchar* ptr, v_uint8x16& a, v_uint8x16& b, v_uint8x16& c, v_uint8x16& d) -{ - __m128i u0 = _mm_loadu_si128((const __m128i*)ptr); // a0 b0 c0 d0 a1 b1 c1 d1 ... - __m128i u1 = _mm_loadu_si128((const __m128i*)(ptr + 16)); // a4 b4 c4 d4 ... - __m128i u2 = _mm_loadu_si128((const __m128i*)(ptr + 32)); // a8 b8 c8 d8 ... - __m128i u3 = _mm_loadu_si128((const __m128i*)(ptr + 48)); // a12 b12 c12 d12 ... - - __m128i v0 = _mm_unpacklo_epi8(u0, u2); // a0 a8 b0 b8 ... - __m128i v1 = _mm_unpackhi_epi8(u0, u2); // a2 a10 b2 b10 ... - __m128i v2 = _mm_unpacklo_epi8(u1, u3); // a4 a12 b4 b12 ... - __m128i v3 = _mm_unpackhi_epi8(u1, u3); // a6 a14 b6 b14 ... - - u0 = _mm_unpacklo_epi8(v0, v2); // a0 a4 a8 a12 ... - u1 = _mm_unpacklo_epi8(v1, v3); // a2 a6 a10 a14 ... - u2 = _mm_unpackhi_epi8(v0, v2); // a1 a5 a9 a13 ... - u3 = _mm_unpackhi_epi8(v1, v3); // a3 a7 a11 a15 ... - - v0 = _mm_unpacklo_epi8(u0, u1); // a0 a2 a4 a6 ... - v1 = _mm_unpacklo_epi8(u2, u3); // a1 a3 a5 a7 ... - v2 = _mm_unpackhi_epi8(u0, u1); // c0 c2 c4 c6 ... - v3 = _mm_unpackhi_epi8(u2, u3); // c1 c3 c5 c7 ... - - a.val = _mm_unpacklo_epi8(v0, v1); - b.val = _mm_unpackhi_epi8(v0, v1); - c.val = _mm_unpacklo_epi8(v2, v3); - d.val = _mm_unpackhi_epi8(v2, v3); -} - -inline void v_load_deinterleave(const ushort* ptr, v_uint16x8& a, v_uint16x8& b, v_uint16x8& c) -{ - __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); - __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 8)); - __m128i t02 = _mm_loadu_si128((const __m128i*)(ptr + 16)); - - __m128i t10 = _mm_unpacklo_epi16(t00, _mm_unpackhi_epi64(t01, t01)); - __m128i t11 = _mm_unpacklo_epi16(_mm_unpackhi_epi64(t00, t00), t02); - __m128i t12 = _mm_unpacklo_epi16(t01, _mm_unpackhi_epi64(t02, t02)); - - __m128i t20 = _mm_unpacklo_epi16(t10, _mm_unpackhi_epi64(t11, t11)); - __m128i t21 = _mm_unpacklo_epi16(_mm_unpackhi_epi64(t10, t10), t12); - __m128i t22 = _mm_unpacklo_epi16(t11, _mm_unpackhi_epi64(t12, t12)); - - a.val = _mm_unpacklo_epi16(t20, _mm_unpackhi_epi64(t21, t21)); - b.val = _mm_unpacklo_epi16(_mm_unpackhi_epi64(t20, t20), t22); - c.val = _mm_unpacklo_epi16(t21, _mm_unpackhi_epi64(t22, t22)); -} - -inline void v_load_deinterleave(const ushort* ptr, v_uint16x8& a, v_uint16x8& b, v_uint16x8& c, v_uint16x8& d) -{ - __m128i u0 = _mm_loadu_si128((const __m128i*)ptr); // a0 b0 c0 d0 a1 b1 c1 d1 - __m128i u1 = _mm_loadu_si128((const __m128i*)(ptr + 8)); // a2 b2 c2 d2 ... - __m128i u2 = _mm_loadu_si128((const __m128i*)(ptr + 16)); // a4 b4 c4 d4 ... - __m128i u3 = _mm_loadu_si128((const __m128i*)(ptr + 24)); // a6 b6 c6 d6 ... - - __m128i v0 = _mm_unpacklo_epi16(u0, u2); // a0 a4 b0 b4 ... - __m128i v1 = _mm_unpackhi_epi16(u0, u2); // a1 a5 b1 b5 ... - __m128i v2 = _mm_unpacklo_epi16(u1, u3); // a2 a6 b2 b6 ... - __m128i v3 = _mm_unpackhi_epi16(u1, u3); // a3 a7 b3 b7 ... - - u0 = _mm_unpacklo_epi16(v0, v2); // a0 a2 a4 a6 ... - u1 = _mm_unpacklo_epi16(v1, v3); // a1 a3 a5 a7 ... - u2 = _mm_unpackhi_epi16(v0, v2); // c0 c2 c4 c6 ... - u3 = _mm_unpackhi_epi16(v1, v3); // c1 c3 c5 c7 ... - - a.val = _mm_unpacklo_epi16(u0, u1); - b.val = _mm_unpackhi_epi16(u0, u1); - c.val = _mm_unpacklo_epi16(u2, u3); - d.val = _mm_unpackhi_epi16(u2, u3); -} - -inline void v_load_deinterleave(const unsigned* ptr, v_uint32x4& a, v_uint32x4& b, v_uint32x4& c) -{ - __m128i t00 = _mm_loadu_si128((const __m128i*)ptr); - __m128i t01 = _mm_loadu_si128((const __m128i*)(ptr + 4)); - __m128i t02 = _mm_loadu_si128((const __m128i*)(ptr + 8)); - - __m128i t10 = _mm_unpacklo_epi32(t00, _mm_unpackhi_epi64(t01, t01)); - __m128i t11 = _mm_unpacklo_epi32(_mm_unpackhi_epi64(t00, t00), t02); - __m128i t12 = _mm_unpacklo_epi32(t01, _mm_unpackhi_epi64(t02, t02)); - - a.val = _mm_unpacklo_epi32(t10, _mm_unpackhi_epi64(t11, t11)); - b.val = _mm_unpacklo_epi32(_mm_unpackhi_epi64(t10, t10), t12); - c.val = _mm_unpacklo_epi32(t11, _mm_unpackhi_epi64(t12, t12)); -} - -inline void v_load_deinterleave(const unsigned* ptr, v_uint32x4& a, v_uint32x4& b, v_uint32x4& c, v_uint32x4& d) -{ - v_uint32x4 u0(_mm_loadu_si128((const __m128i*)ptr)); // a0 b0 c0 d0 - v_uint32x4 u1(_mm_loadu_si128((const __m128i*)(ptr + 4))); // a1 b1 c1 d1 - v_uint32x4 u2(_mm_loadu_si128((const __m128i*)(ptr + 8))); // a2 b2 c2 d2 - v_uint32x4 u3(_mm_loadu_si128((const __m128i*)(ptr + 12))); // a3 b3 c3 d3 - - v_transpose4x4(u0, u1, u2, u3, a, b, c, d); -} - -inline void v_load_deinterleave(const uint64 *ptr, v_uint64x2& a, v_uint64x2& b, v_uint64x2& c) -{ - __m128i t0 = _mm_loadu_si128((const __m128i*)ptr); - __m128i t1 = _mm_loadu_si128((const __m128i*)(ptr + 2)); - __m128i t2 = _mm_loadu_si128((const __m128i*)(ptr + 4)); - - a = v_uint64x2(_mm_unpacklo_epi64(t0, _mm_unpackhi_epi64(t1, t1))); - b = v_uint64x2(_mm_unpacklo_epi64(_mm_unpackhi_epi64(t0, t0), t2)); - c = v_uint64x2(_mm_unpacklo_epi64(t1, _mm_unpackhi_epi64(t2, t2))); -} - -inline void v_load_deinterleave(const int64 *ptr, v_int64x2& a, v_int64x2& b, v_int64x2& c) -{ - v_uint64x2 t0, t1, t2; - v_load_deinterleave((const uint64*)ptr, t0, t1, t2); - a = v_reinterpret_as_s64(t0); - b = v_reinterpret_as_s64(t1); - c = v_reinterpret_as_s64(t2); -} - -inline void v_load_deinterleave(const double *ptr, v_float64x2& a, v_float64x2& b, v_float64x2& c) -{ - v_uint64x2 t0, t1, t2; - v_load_deinterleave((const uint64*)ptr, t0, t1, t2); - a = v_reinterpret_as_f64(t0); - b = v_reinterpret_as_f64(t1); - c = v_reinterpret_as_f64(t2); -} - -// 2-channel, float only -inline void v_load_deinterleave(const float* ptr, v_float32x4& a, v_float32x4& b) -{ - const int mask_lo = _MM_SHUFFLE(2, 0, 2, 0), mask_hi = _MM_SHUFFLE(3, 1, 3, 1); - - __m128 u0 = _mm_loadu_ps(ptr); // a0 b0 a1 b1 - __m128 u1 = _mm_loadu_ps((ptr + 4)); // a2 b2 a3 b3 - - a.val = _mm_shuffle_ps(u0, u1, mask_lo); // a0 a1 a2 a3 - b.val = _mm_shuffle_ps(u0, u1, mask_hi); // b0 b1 ab b3 -} - -inline void v_store_interleave( short* ptr, const v_int16x8& a, const v_int16x8& b ) -{ - __m128i t0, t1; - t0 = _mm_unpacklo_epi16(a.val, b.val); - t1 = _mm_unpackhi_epi16(a.val, b.val); - _mm_storeu_si128((__m128i*)(ptr), t0); - _mm_storeu_si128((__m128i*)(ptr + 8), t1); -} - -inline void v_store_interleave( uchar* ptr, const v_uint8x16& a, const v_uint8x16& b) -{ - __m128i v0 = _mm_unpacklo_epi8(a.val, b.val); - __m128i v1 = _mm_unpackhi_epi8(a.val, b.val); - - _mm_storeu_si128((__m128i*)(ptr), v0); - _mm_storeu_si128((__m128i*)(ptr + 16), v1); -} - -inline void v_store_interleave( uchar* ptr, const v_uint8x16& a, const v_uint8x16& b, - const v_uint8x16& c ) -{ - __m128i z = _mm_setzero_si128(); - __m128i ab0 = _mm_unpacklo_epi8(a.val, b.val); - __m128i ab1 = _mm_unpackhi_epi8(a.val, b.val); - __m128i c0 = _mm_unpacklo_epi8(c.val, z); - __m128i c1 = _mm_unpackhi_epi8(c.val, z); - - __m128i p00 = _mm_unpacklo_epi16(ab0, c0); - __m128i p01 = _mm_unpackhi_epi16(ab0, c0); - __m128i p02 = _mm_unpacklo_epi16(ab1, c1); - __m128i p03 = _mm_unpackhi_epi16(ab1, c1); - - __m128i p10 = _mm_unpacklo_epi32(p00, p01); - __m128i p11 = _mm_unpackhi_epi32(p00, p01); - __m128i p12 = _mm_unpacklo_epi32(p02, p03); - __m128i p13 = _mm_unpackhi_epi32(p02, p03); - - __m128i p20 = _mm_unpacklo_epi64(p10, p11); - __m128i p21 = _mm_unpackhi_epi64(p10, p11); - __m128i p22 = _mm_unpacklo_epi64(p12, p13); - __m128i p23 = _mm_unpackhi_epi64(p12, p13); - - p20 = _mm_slli_si128(p20, 1); - p22 = _mm_slli_si128(p22, 1); - - __m128i p30 = _mm_slli_epi64(_mm_unpacklo_epi32(p20, p21), 8); - __m128i p31 = _mm_srli_epi64(_mm_unpackhi_epi32(p20, p21), 8); - __m128i p32 = _mm_slli_epi64(_mm_unpacklo_epi32(p22, p23), 8); - __m128i p33 = _mm_srli_epi64(_mm_unpackhi_epi32(p22, p23), 8); - - __m128i p40 = _mm_unpacklo_epi64(p30, p31); - __m128i p41 = _mm_unpackhi_epi64(p30, p31); - __m128i p42 = _mm_unpacklo_epi64(p32, p33); - __m128i p43 = _mm_unpackhi_epi64(p32, p33); - - __m128i v0 = _mm_or_si128(_mm_srli_si128(p40, 2), _mm_slli_si128(p41, 10)); - __m128i v1 = _mm_or_si128(_mm_srli_si128(p41, 6), _mm_slli_si128(p42, 6)); - __m128i v2 = _mm_or_si128(_mm_srli_si128(p42, 10), _mm_slli_si128(p43, 2)); - - _mm_storeu_si128((__m128i*)(ptr), v0); - _mm_storeu_si128((__m128i*)(ptr + 16), v1); - _mm_storeu_si128((__m128i*)(ptr + 32), v2); -} - -inline void v_store_interleave( uchar* ptr, const v_uint8x16& a, const v_uint8x16& b, - const v_uint8x16& c, const v_uint8x16& d) -{ - // a0 a1 a2 a3 .... - // b0 b1 b2 b3 .... - // c0 c1 c2 c3 .... - // d0 d1 d2 d3 .... - __m128i u0 = _mm_unpacklo_epi8(a.val, c.val); // a0 c0 a1 c1 ... - __m128i u1 = _mm_unpackhi_epi8(a.val, c.val); // a8 c8 a9 c9 ... - __m128i u2 = _mm_unpacklo_epi8(b.val, d.val); // b0 d0 b1 d1 ... - __m128i u3 = _mm_unpackhi_epi8(b.val, d.val); // b8 d8 b9 d9 ... - - __m128i v0 = _mm_unpacklo_epi8(u0, u2); // a0 b0 c0 d0 ... - __m128i v1 = _mm_unpacklo_epi8(u1, u3); // a8 b8 c8 d8 ... - __m128i v2 = _mm_unpackhi_epi8(u0, u2); // a4 b4 c4 d4 ... - __m128i v3 = _mm_unpackhi_epi8(u1, u3); // a12 b12 c12 d12 ... - - _mm_storeu_si128((__m128i*)ptr, v0); - _mm_storeu_si128((__m128i*)(ptr + 16), v2); - _mm_storeu_si128((__m128i*)(ptr + 32), v1); - _mm_storeu_si128((__m128i*)(ptr + 48), v3); -} - -inline void v_store_interleave( ushort* ptr, const v_uint16x8& a, - const v_uint16x8& b, - const v_uint16x8& c ) -{ - __m128i z = _mm_setzero_si128(); - __m128i ab0 = _mm_unpacklo_epi16(a.val, b.val); - __m128i ab1 = _mm_unpackhi_epi16(a.val, b.val); - __m128i c0 = _mm_unpacklo_epi16(c.val, z); - __m128i c1 = _mm_unpackhi_epi16(c.val, z); - - __m128i p10 = _mm_unpacklo_epi32(ab0, c0); - __m128i p11 = _mm_unpackhi_epi32(ab0, c0); - __m128i p12 = _mm_unpacklo_epi32(ab1, c1); - __m128i p13 = _mm_unpackhi_epi32(ab1, c1); - - __m128i p20 = _mm_unpacklo_epi64(p10, p11); - __m128i p21 = _mm_unpackhi_epi64(p10, p11); - __m128i p22 = _mm_unpacklo_epi64(p12, p13); - __m128i p23 = _mm_unpackhi_epi64(p12, p13); - - p20 = _mm_slli_si128(p20, 2); - p22 = _mm_slli_si128(p22, 2); - - __m128i p30 = _mm_unpacklo_epi64(p20, p21); - __m128i p31 = _mm_unpackhi_epi64(p20, p21); - __m128i p32 = _mm_unpacklo_epi64(p22, p23); - __m128i p33 = _mm_unpackhi_epi64(p22, p23); - - __m128i v0 = _mm_or_si128(_mm_srli_si128(p30, 2), _mm_slli_si128(p31, 10)); - __m128i v1 = _mm_or_si128(_mm_srli_si128(p31, 6), _mm_slli_si128(p32, 6)); - __m128i v2 = _mm_or_si128(_mm_srli_si128(p32, 10), _mm_slli_si128(p33, 2)); - - _mm_storeu_si128((__m128i*)(ptr), v0); - _mm_storeu_si128((__m128i*)(ptr + 8), v1); - _mm_storeu_si128((__m128i*)(ptr + 16), v2); -} - -inline void v_store_interleave( ushort* ptr, const v_uint16x8& a, const v_uint16x8& b, - const v_uint16x8& c, const v_uint16x8& d) -{ - // a0 a1 a2 a3 .... - // b0 b1 b2 b3 .... - // c0 c1 c2 c3 .... - // d0 d1 d2 d3 .... - __m128i u0 = _mm_unpacklo_epi16(a.val, c.val); // a0 c0 a1 c1 ... - __m128i u1 = _mm_unpackhi_epi16(a.val, c.val); // a4 c4 a5 c5 ... - __m128i u2 = _mm_unpacklo_epi16(b.val, d.val); // b0 d0 b1 d1 ... - __m128i u3 = _mm_unpackhi_epi16(b.val, d.val); // b4 d4 b5 d5 ... - - __m128i v0 = _mm_unpacklo_epi16(u0, u2); // a0 b0 c0 d0 ... - __m128i v1 = _mm_unpacklo_epi16(u1, u3); // a4 b4 c4 d4 ... - __m128i v2 = _mm_unpackhi_epi16(u0, u2); // a2 b2 c2 d2 ... - __m128i v3 = _mm_unpackhi_epi16(u1, u3); // a6 b6 c6 d6 ... - - _mm_storeu_si128((__m128i*)ptr, v0); - _mm_storeu_si128((__m128i*)(ptr + 8), v2); - _mm_storeu_si128((__m128i*)(ptr + 16), v1); - _mm_storeu_si128((__m128i*)(ptr + 24), v3); -} - -inline void v_store_interleave( unsigned* ptr, const v_uint32x4& a, const v_uint32x4& b, - const v_uint32x4& c ) -{ - v_uint32x4 z = v_setzero_u32(), u0, u1, u2, u3; - v_transpose4x4(a, b, c, z, u0, u1, u2, u3); - - __m128i v0 = _mm_or_si128(u0.val, _mm_slli_si128(u1.val, 12)); - __m128i v1 = _mm_or_si128(_mm_srli_si128(u1.val, 4), _mm_slli_si128(u2.val, 8)); - __m128i v2 = _mm_or_si128(_mm_srli_si128(u2.val, 8), _mm_slli_si128(u3.val, 4)); - - _mm_storeu_si128((__m128i*)ptr, v0); - _mm_storeu_si128((__m128i*)(ptr + 4), v1); - _mm_storeu_si128((__m128i*)(ptr + 8), v2); -} - -inline void v_store_interleave(unsigned* ptr, const v_uint32x4& a, const v_uint32x4& b, - const v_uint32x4& c, const v_uint32x4& d) -{ - v_uint32x4 t0, t1, t2, t3; - v_transpose4x4(a, b, c, d, t0, t1, t2, t3); - v_store(ptr, t0); - v_store(ptr + 4, t1); - v_store(ptr + 8, t2); - v_store(ptr + 12, t3); -} - -// 2-channel, float only -inline void v_store_interleave(float* ptr, const v_float32x4& a, const v_float32x4& b) -{ - // a0 a1 a2 a3 ... - // b0 b1 b2 b3 ... - __m128 u0 = _mm_unpacklo_ps(a.val, b.val); // a0 b0 a1 b1 - __m128 u1 = _mm_unpackhi_ps(a.val, b.val); // a2 b2 a3 b3 - - _mm_storeu_ps(ptr, u0); - _mm_storeu_ps((ptr + 4), u1); -} - -inline void v_store_interleave(uint64 *ptr, const v_uint64x2& a, const v_uint64x2& b, const v_uint64x2& c) -{ - __m128i t0 = _mm_unpacklo_epi64(a.val, b.val); - __m128i t1 = _mm_unpacklo_epi64(c.val, _mm_unpackhi_epi64(a.val, a.val)); - __m128i t2 = _mm_unpackhi_epi64(b.val, c.val); - - _mm_storeu_si128((__m128i*)ptr, t0); - _mm_storeu_si128((__m128i*)(ptr + 2), t1); - _mm_storeu_si128((__m128i*)(ptr + 4), t2); -} - -inline void v_store_interleave(int64 *ptr, const v_int64x2& a, const v_int64x2& b, const v_int64x2& c) -{ - v_store_interleave((uint64*)ptr, v_reinterpret_as_u64(a), v_reinterpret_as_u64(b), v_reinterpret_as_u64(c)); -} - -inline void v_store_interleave(double *ptr, const v_float64x2& a, const v_float64x2& b, const v_float64x2& c) -{ - v_store_interleave((uint64*)ptr, v_reinterpret_as_u64(a), v_reinterpret_as_u64(b), v_reinterpret_as_u64(c)); -} - -#define OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(_Tpvec, _Tp, suffix, _Tpuvec, _Tpu, usuffix) \ -inline void v_load_deinterleave( const _Tp* ptr, _Tpvec& a0, \ - _Tpvec& b0, _Tpvec& c0 ) \ -{ \ - _Tpuvec a1, b1, c1; \ - v_load_deinterleave((const _Tpu*)ptr, a1, b1, c1); \ - a0 = v_reinterpret_as_##suffix(a1); \ - b0 = v_reinterpret_as_##suffix(b1); \ - c0 = v_reinterpret_as_##suffix(c1); \ -} \ -inline void v_load_deinterleave( const _Tp* ptr, _Tpvec& a0, \ - _Tpvec& b0, _Tpvec& c0, _Tpvec& d0 ) \ -{ \ - _Tpuvec a1, b1, c1, d1; \ - v_load_deinterleave((const _Tpu*)ptr, a1, b1, c1, d1); \ - a0 = v_reinterpret_as_##suffix(a1); \ - b0 = v_reinterpret_as_##suffix(b1); \ - c0 = v_reinterpret_as_##suffix(c1); \ - d0 = v_reinterpret_as_##suffix(d1); \ -} \ -inline void v_store_interleave( _Tp* ptr, const _Tpvec& a0, \ - const _Tpvec& b0, const _Tpvec& c0 ) \ -{ \ - _Tpuvec a1 = v_reinterpret_as_##usuffix(a0); \ - _Tpuvec b1 = v_reinterpret_as_##usuffix(b0); \ - _Tpuvec c1 = v_reinterpret_as_##usuffix(c0); \ - v_store_interleave((_Tpu*)ptr, a1, b1, c1); \ -} \ -inline void v_store_interleave( _Tp* ptr, const _Tpvec& a0, const _Tpvec& b0, \ - const _Tpvec& c0, const _Tpvec& d0 ) \ -{ \ - _Tpuvec a1 = v_reinterpret_as_##usuffix(a0); \ - _Tpuvec b1 = v_reinterpret_as_##usuffix(b0); \ - _Tpuvec c1 = v_reinterpret_as_##usuffix(c0); \ - _Tpuvec d1 = v_reinterpret_as_##usuffix(d0); \ - v_store_interleave((_Tpu*)ptr, a1, b1, c1, d1); \ -} - -OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int8x16, schar, s8, v_uint8x16, uchar, u8) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int16x8, short, s16, v_uint16x8, ushort, u16) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_int32x4, int, s32, v_uint32x4, unsigned, u32) -OPENCV_HAL_IMPL_SSE_LOADSTORE_INTERLEAVE(v_float32x4, float, f32, v_uint32x4, unsigned, u32) - -inline v_float32x4 v_cvt_f32(const v_int32x4& a) -{ - return v_float32x4(_mm_cvtepi32_ps(a.val)); -} - -inline v_float32x4 v_cvt_f32(const v_float64x2& a) -{ - return v_float32x4(_mm_cvtpd_ps(a.val)); -} - -inline v_float64x2 v_cvt_f64(const v_int32x4& a) -{ - return v_float64x2(_mm_cvtepi32_pd(a.val)); -} - -inline v_float64x2 v_cvt_f64_high(const v_int32x4& a) -{ - return v_float64x2(_mm_cvtepi32_pd(_mm_srli_si128(a.val,8))); -} - -inline v_float64x2 v_cvt_f64(const v_float32x4& a) -{ - return v_float64x2(_mm_cvtps_pd(a.val)); -} - -inline v_float64x2 v_cvt_f64_high(const v_float32x4& a) -{ - return v_float64x2(_mm_cvtps_pd(_mm_castsi128_ps(_mm_srli_si128(_mm_castps_si128(a.val),8)))); -} - -#if CV_FP16 -inline v_float32x4 v_cvt_f32(const v_float16x4& a) -{ - return v_float32x4(_mm_cvtph_ps(a.val)); -} - -inline v_float16x4 v_cvt_f16(const v_float32x4& a) -{ - return v_float16x4(_mm_cvtps_ph(a.val, 0)); -} -#endif - -//! @name Check SIMD support -//! @{ -//! @brief Check CPU capability of SIMD operation -static inline bool hasSIMD128() -{ - return (CV_CPU_HAS_SUPPORT_SSE2) ? true : false; -} - -//! @} - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END - -//! @endcond - -} - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_vsx.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_vsx.hpp deleted file mode 100644 index 9f050f7c2..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/hal/intrin_vsx.hpp +++ /dev/null @@ -1,962 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_HAL_VSX_HPP -#define OPENCV_HAL_VSX_HPP - -#include -#include "opencv2/core/utility.hpp" - -#define CV_SIMD128 1 -#define CV_SIMD128_64F 1 - -/** - * todo: supporting half precision for power9 - * convert instractions xvcvhpsp, xvcvsphp -**/ - -namespace cv -{ - -//! @cond IGNORED - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_BEGIN - -///////// Types //////////// - -struct v_uint8x16 -{ - typedef uchar lane_type; - enum { nlanes = 16 }; - vec_uchar16 val; - - explicit v_uint8x16(const vec_uchar16& v) : val(v) - {} - v_uint8x16() : val(vec_uchar16_z) - {} - v_uint8x16(vec_bchar16 v) : val(vec_uchar16_c(v)) - {} - v_uint8x16(uchar v0, uchar v1, uchar v2, uchar v3, uchar v4, uchar v5, uchar v6, uchar v7, - uchar v8, uchar v9, uchar v10, uchar v11, uchar v12, uchar v13, uchar v14, uchar v15) - : val(vec_uchar16_set(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)) - {} - uchar get0() const - { return vec_extract(val, 0); } -}; - -struct v_int8x16 -{ - typedef schar lane_type; - enum { nlanes = 16 }; - vec_char16 val; - - explicit v_int8x16(const vec_char16& v) : val(v) - {} - v_int8x16() : val(vec_char16_z) - {} - v_int8x16(vec_bchar16 v) : val(vec_char16_c(v)) - {} - v_int8x16(schar v0, schar v1, schar v2, schar v3, schar v4, schar v5, schar v6, schar v7, - schar v8, schar v9, schar v10, schar v11, schar v12, schar v13, schar v14, schar v15) - : val(vec_char16_set(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)) - {} - schar get0() const - { return vec_extract(val, 0); } -}; - -struct v_uint16x8 -{ - typedef ushort lane_type; - enum { nlanes = 8 }; - vec_ushort8 val; - - explicit v_uint16x8(const vec_ushort8& v) : val(v) - {} - v_uint16x8() : val(vec_ushort8_z) - {} - v_uint16x8(vec_bshort8 v) : val(vec_ushort8_c(v)) - {} - v_uint16x8(ushort v0, ushort v1, ushort v2, ushort v3, ushort v4, ushort v5, ushort v6, ushort v7) - : val(vec_ushort8_set(v0, v1, v2, v3, v4, v5, v6, v7)) - {} - ushort get0() const - { return vec_extract(val, 0); } -}; - -struct v_int16x8 -{ - typedef short lane_type; - enum { nlanes = 8 }; - vec_short8 val; - - explicit v_int16x8(const vec_short8& v) : val(v) - {} - v_int16x8() : val(vec_short8_z) - {} - v_int16x8(vec_bshort8 v) : val(vec_short8_c(v)) - {} - v_int16x8(short v0, short v1, short v2, short v3, short v4, short v5, short v6, short v7) - : val(vec_short8_set(v0, v1, v2, v3, v4, v5, v6, v7)) - {} - short get0() const - { return vec_extract(val, 0); } -}; - -struct v_uint32x4 -{ - typedef unsigned lane_type; - enum { nlanes = 4 }; - vec_uint4 val; - - explicit v_uint32x4(const vec_uint4& v) : val(v) - {} - v_uint32x4() : val(vec_uint4_z) - {} - v_uint32x4(vec_bint4 v) : val(vec_uint4_c(v)) - {} - v_uint32x4(unsigned v0, unsigned v1, unsigned v2, unsigned v3) : val(vec_uint4_set(v0, v1, v2, v3)) - {} - uint get0() const - { return vec_extract(val, 0); } -}; - -struct v_int32x4 -{ - typedef int lane_type; - enum { nlanes = 4 }; - vec_int4 val; - - explicit v_int32x4(const vec_int4& v) : val(v) - {} - v_int32x4() : val(vec_int4_z) - {} - v_int32x4(vec_bint4 v) : val(vec_int4_c(v)) - {} - v_int32x4(int v0, int v1, int v2, int v3) : val(vec_int4_set(v0, v1, v2, v3)) - {} - int get0() const - { return vec_extract(val, 0); } -}; - -struct v_float32x4 -{ - typedef float lane_type; - enum { nlanes = 4 }; - vec_float4 val; - - explicit v_float32x4(const vec_float4& v) : val(v) - {} - v_float32x4() : val(vec_float4_z) - {} - v_float32x4(vec_bint4 v) : val(vec_float4_c(v)) - {} - v_float32x4(float v0, float v1, float v2, float v3) : val(vec_float4_set(v0, v1, v2, v3)) - {} - float get0() const - { return vec_extract(val, 0); } -}; - -struct v_uint64x2 -{ - typedef uint64 lane_type; - enum { nlanes = 2 }; - vec_udword2 val; - - explicit v_uint64x2(const vec_udword2& v) : val(v) - {} - v_uint64x2() : val(vec_udword2_z) - {} - v_uint64x2(vec_bdword2 v) : val(vec_udword2_c(v)) - {} - v_uint64x2(uint64 v0, uint64 v1) : val(vec_udword2_set(v0, v1)) - {} - uint64 get0() const - { return vec_extract(val, 0); } -}; - -struct v_int64x2 -{ - typedef int64 lane_type; - enum { nlanes = 2 }; - vec_dword2 val; - - explicit v_int64x2(const vec_dword2& v) : val(v) - {} - v_int64x2() : val(vec_dword2_z) - {} - v_int64x2(vec_bdword2 v) : val(vec_dword2_c(v)) - {} - v_int64x2(int64 v0, int64 v1) : val(vec_dword2_set(v0, v1)) - {} - int64 get0() const - { return vec_extract(val, 0); } -}; - -struct v_float64x2 -{ - typedef double lane_type; - enum { nlanes = 2 }; - vec_double2 val; - - explicit v_float64x2(const vec_double2& v) : val(v) - {} - v_float64x2() : val(vec_double2_z) - {} - v_float64x2(vec_bdword2 v) : val(vec_double2_c(v)) - {} - v_float64x2(double v0, double v1) : val(vec_double2_set(v0, v1)) - {} - double get0() const - { return vec_extract(val, 0); } -}; - -//////////////// Load and store operations /////////////// - -/* - * clang-5 aborted during parse "vec_xxx_c" only if it's - * inside a function template which is defined by preprocessor macro. - * - * if vec_xxx_c defined as C++ cast, clang-5 will pass it -*/ -#define OPENCV_HAL_IMPL_VSX_INITVEC(_Tpvec, _Tp, suffix, cast) \ -inline _Tpvec v_setzero_##suffix() { return _Tpvec(); } \ -inline _Tpvec v_setall_##suffix(_Tp v) { return _Tpvec(vec_splats((_Tp)v));} \ -template inline _Tpvec v_reinterpret_as_##suffix(const _Tpvec0 &a) \ -{ return _Tpvec((cast)a.val); } - -OPENCV_HAL_IMPL_VSX_INITVEC(v_uint8x16, uchar, u8, vec_uchar16) -OPENCV_HAL_IMPL_VSX_INITVEC(v_int8x16, schar, s8, vec_char16) -OPENCV_HAL_IMPL_VSX_INITVEC(v_uint16x8, ushort, u16, vec_ushort8) -OPENCV_HAL_IMPL_VSX_INITVEC(v_int16x8, short, s16, vec_short8) -OPENCV_HAL_IMPL_VSX_INITVEC(v_uint32x4, uint, u32, vec_uint4) -OPENCV_HAL_IMPL_VSX_INITVEC(v_int32x4, int, s32, vec_int4) -OPENCV_HAL_IMPL_VSX_INITVEC(v_uint64x2, uint64, u64, vec_udword2) -OPENCV_HAL_IMPL_VSX_INITVEC(v_int64x2, int64, s64, vec_dword2) -OPENCV_HAL_IMPL_VSX_INITVEC(v_float32x4, float, f32, vec_float4) -OPENCV_HAL_IMPL_VSX_INITVEC(v_float64x2, double, f64, vec_double2) - -#define OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(_Tpvec, _Tp, ld_func, st_func) \ -inline _Tpvec v_load(const _Tp* ptr) \ -{ return _Tpvec(ld_func(0, ptr)); } \ -inline _Tpvec v_load_aligned(const _Tp* ptr) \ -{ return _Tpvec(ld_func(0, ptr)); } \ -inline _Tpvec v_load_low(const _Tp* ptr) \ -{ return _Tpvec(vec_ld_l8(ptr)); } \ -inline _Tpvec v_load_halves(const _Tp* ptr0, const _Tp* ptr1) \ -{ return _Tpvec(vec_mergesqh(vec_ld_l8(ptr0), vec_ld_l8(ptr1))); } \ -inline void v_store(_Tp* ptr, const _Tpvec& a) \ -{ st_func(a.val, 0, ptr); } \ -inline void v_store_aligned(_Tp* ptr, const _Tpvec& a) \ -{ st_func(a.val, 0, ptr); } \ -inline void v_store_low(_Tp* ptr, const _Tpvec& a) \ -{ vec_st_l8(a.val, ptr); } \ -inline void v_store_high(_Tp* ptr, const _Tpvec& a) \ -{ vec_st_h8(a.val, ptr); } - -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_uint8x16, uchar, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_int8x16, schar, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_uint16x8, ushort, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_int16x8, short, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_uint32x4, uint, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_int32x4, int, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_float32x4, float, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_float64x2, double, vsx_ld, vsx_st) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_uint64x2, uint64, vsx_ld2, vsx_st2) -OPENCV_HAL_IMPL_VSX_LOADSTORE_INT_OP(v_int64x2, int64, vsx_ld2, vsx_st2) - -//////////////// Value reordering /////////////// - -/* de&interleave */ -#define OPENCV_HAL_IMPL_VSX_INTERLEAVE(_Tp, _Tpvec) \ -inline void v_load_deinterleave(const _Tp* ptr, _Tpvec& a, _Tpvec& b) \ -{ vec_ld_deinterleave(ptr, a.val, b.val);} \ -inline void v_load_deinterleave(const _Tp* ptr, _Tpvec& a, \ - _Tpvec& b, _Tpvec& c) \ -{ vec_ld_deinterleave(ptr, a.val, b.val, c.val); } \ -inline void v_load_deinterleave(const _Tp* ptr, _Tpvec& a, _Tpvec& b, \ - _Tpvec& c, _Tpvec& d) \ -{ vec_ld_deinterleave(ptr, a.val, b.val, c.val, d.val); } \ -inline void v_store_interleave(_Tp* ptr, const _Tpvec& a, const _Tpvec& b) \ -{ vec_st_interleave(a.val, b.val, ptr); } \ -inline void v_store_interleave(_Tp* ptr, const _Tpvec& a, \ - const _Tpvec& b, const _Tpvec& c) \ -{ vec_st_interleave(a.val, b.val, c.val, ptr); } \ -inline void v_store_interleave(_Tp* ptr, const _Tpvec& a, const _Tpvec& b, \ - const _Tpvec& c, const _Tpvec& d) \ -{ vec_st_interleave(a.val, b.val, c.val, d.val, ptr); } - -OPENCV_HAL_IMPL_VSX_INTERLEAVE(uchar, v_uint8x16) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(schar, v_int8x16) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(ushort, v_uint16x8) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(short, v_int16x8) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(uint, v_uint32x4) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(int, v_int32x4) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(float, v_float32x4) -OPENCV_HAL_IMPL_VSX_INTERLEAVE(double, v_float64x2) - -/* Expand */ -#define OPENCV_HAL_IMPL_VSX_EXPAND(_Tpvec, _Tpwvec, _Tp, fl, fh) \ -inline void v_expand(const _Tpvec& a, _Tpwvec& b0, _Tpwvec& b1) \ -{ \ - b0.val = fh(a.val); \ - b1.val = fl(a.val); \ -} \ -inline _Tpwvec v_load_expand(const _Tp* ptr) \ -{ return _Tpwvec(fh(vsx_ld(0, ptr))); } - -OPENCV_HAL_IMPL_VSX_EXPAND(v_uint8x16, v_uint16x8, uchar, vec_unpacklu, vec_unpackhu) -OPENCV_HAL_IMPL_VSX_EXPAND(v_int8x16, v_int16x8, schar, vec_unpackl, vec_unpackh) -OPENCV_HAL_IMPL_VSX_EXPAND(v_uint16x8, v_uint32x4, ushort, vec_unpacklu, vec_unpackhu) -OPENCV_HAL_IMPL_VSX_EXPAND(v_int16x8, v_int32x4, short, vec_unpackl, vec_unpackh) -OPENCV_HAL_IMPL_VSX_EXPAND(v_uint32x4, v_uint64x2, uint, vec_unpacklu, vec_unpackhu) -OPENCV_HAL_IMPL_VSX_EXPAND(v_int32x4, v_int64x2, int, vec_unpackl, vec_unpackh) - -inline v_uint32x4 v_load_expand_q(const uchar* ptr) -{ return v_uint32x4(vec_ld_buw(ptr)); } - -inline v_int32x4 v_load_expand_q(const schar* ptr) -{ return v_int32x4(vec_ld_bsw(ptr)); } - -/* pack */ -#define OPENCV_HAL_IMPL_VSX_PACK(_Tpvec, _Tp, _Tpwvec, _Tpvn, _Tpdel, sfnc, pkfnc, addfnc, pack) \ -inline _Tpvec v_##pack(const _Tpwvec& a, const _Tpwvec& b) \ -{ \ - return _Tpvec(pkfnc(a.val, b.val)); \ -} \ -inline void v_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ -{ \ - vec_st_l8(pkfnc(a.val, a.val), ptr); \ -} \ -template \ -inline _Tpvec v_rshr_##pack(const _Tpwvec& a, const _Tpwvec& b) \ -{ \ - const __vector _Tpvn vn = vec_splats((_Tpvn)n); \ - const __vector _Tpdel delta = vec_splats((_Tpdel)((_Tpdel)1 << (n-1))); \ - return _Tpvec(pkfnc(sfnc(addfnc(a.val, delta), vn), sfnc(addfnc(b.val, delta), vn))); \ -} \ -template \ -inline void v_rshr_##pack##_store(_Tp* ptr, const _Tpwvec& a) \ -{ \ - const __vector _Tpvn vn = vec_splats((_Tpvn)n); \ - const __vector _Tpdel delta = vec_splats((_Tpdel)((_Tpdel)1 << (n-1))); \ - vec_st_l8(pkfnc(sfnc(addfnc(a.val, delta), vn), delta), ptr); \ -} - -OPENCV_HAL_IMPL_VSX_PACK(v_uint8x16, uchar, v_uint16x8, unsigned short, unsigned short, - vec_sr, vec_packs, vec_adds, pack) -OPENCV_HAL_IMPL_VSX_PACK(v_int8x16, schar, v_int16x8, unsigned short, short, - vec_sra, vec_packs, vec_adds, pack) - -OPENCV_HAL_IMPL_VSX_PACK(v_uint16x8, ushort, v_uint32x4, unsigned int, unsigned int, - vec_sr, vec_packs, vec_add, pack) -OPENCV_HAL_IMPL_VSX_PACK(v_int16x8, short, v_int32x4, unsigned int, int, - vec_sra, vec_packs, vec_add, pack) - -OPENCV_HAL_IMPL_VSX_PACK(v_uint32x4, uint, v_uint64x2, unsigned long long, unsigned long long, - vec_sr, vec_pack, vec_add, pack) -OPENCV_HAL_IMPL_VSX_PACK(v_int32x4, int, v_int64x2, unsigned long long, long long, - vec_sra, vec_pack, vec_add, pack) - -OPENCV_HAL_IMPL_VSX_PACK(v_uint8x16, uchar, v_int16x8, unsigned short, short, - vec_sra, vec_packsu, vec_adds, pack_u) -OPENCV_HAL_IMPL_VSX_PACK(v_uint16x8, ushort, v_int32x4, unsigned int, int, - vec_sra, vec_packsu, vec_add, pack_u) -// Following variant is not implemented on other platforms: -//OPENCV_HAL_IMPL_VSX_PACK(v_uint32x4, uint, v_int64x2, unsigned long long, long long, -// vec_sra, vec_packsu, vec_add, pack_u) - -/* Recombine */ -template -inline void v_zip(const _Tpvec& a0, const _Tpvec& a1, _Tpvec& b0, _Tpvec& b1) -{ - b0.val = vec_mergeh(a0.val, a1.val); - b1.val = vec_mergel(a0.val, a1.val); -} - -template -inline _Tpvec v_combine_high(const _Tpvec& a, const _Tpvec& b) -{ return _Tpvec(vec_mergesql(a.val, b.val)); } - -template -inline _Tpvec v_combine_low(const _Tpvec& a, const _Tpvec& b) -{ return _Tpvec(vec_mergesqh(a.val, b.val)); } - -template -inline void v_recombine(const _Tpvec& a, const _Tpvec& b, _Tpvec& c, _Tpvec& d) -{ - c.val = vec_mergesqh(a.val, b.val); - d.val = vec_mergesql(a.val, b.val); -} - -/* Extract */ -template -inline _Tpvec v_extract(const _Tpvec& a, const _Tpvec& b) -{ - const int w = sizeof(typename _Tpvec::lane_type); - const int n = _Tpvec::nlanes; - const unsigned int sf = ((w * n) - (s * w)); - if (s == 0) - return _Tpvec(a.val); - else if (sf > 15) - return _Tpvec(); - // bitwise it just to make xlc happy - return _Tpvec(vec_sld(b.val, a.val, sf & 15)); -} - -#define OPENCV_HAL_IMPL_VSX_EXTRACT_2(_Tpvec) \ -template \ -inline _Tpvec v_extract(const _Tpvec& a, const _Tpvec& b) \ -{ \ - switch(s) { \ - case 0: return _Tpvec(a.val); \ - case 2: return _Tpvec(b.val); \ - case 1: return _Tpvec(vec_sldw(b.val, a.val, 2)); \ - default: return _Tpvec(); \ - } \ -} -OPENCV_HAL_IMPL_VSX_EXTRACT_2(v_uint64x2) -OPENCV_HAL_IMPL_VSX_EXTRACT_2(v_int64x2) - - -////////// Arithmetic, bitwise and comparison operations ///////// - -/* Element-wise binary and unary operations */ -/** Arithmetics **/ -#define OPENCV_HAL_IMPL_VSX_BIN_OP(bin_op, _Tpvec, intrin) \ -inline _Tpvec operator bin_op (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(intrin(a.val, b.val)); } \ -inline _Tpvec& operator bin_op##= (_Tpvec& a, const _Tpvec& b) \ -{ a.val = intrin(a.val, b.val); return a; } - -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint8x16, vec_adds) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint8x16, vec_subs) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int8x16, vec_adds) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int8x16, vec_subs) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint16x8, vec_adds) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint16x8, vec_subs) -OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_uint16x8, vec_mul) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int16x8, vec_adds) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int16x8, vec_subs) -OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_int16x8, vec_mul) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint32x4, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint32x4, vec_sub) -OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_uint32x4, vec_mul) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int32x4, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int32x4, vec_sub) -OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_int32x4, vec_mul) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_float32x4, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_float32x4, vec_sub) -OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_float32x4, vec_mul) -OPENCV_HAL_IMPL_VSX_BIN_OP(/, v_float32x4, vec_div) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_float64x2, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_float64x2, vec_sub) -OPENCV_HAL_IMPL_VSX_BIN_OP(*, v_float64x2, vec_mul) -OPENCV_HAL_IMPL_VSX_BIN_OP(/, v_float64x2, vec_div) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_uint64x2, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_uint64x2, vec_sub) -OPENCV_HAL_IMPL_VSX_BIN_OP(+, v_int64x2, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_OP(-, v_int64x2, vec_sub) - -inline void v_mul_expand(const v_int16x8& a, const v_int16x8& b, v_int32x4& c, v_int32x4& d) -{ - c.val = vec_mul(vec_unpackh(a.val), vec_unpackh(b.val)); - d.val = vec_mul(vec_unpackl(a.val), vec_unpackl(b.val)); -} -inline void v_mul_expand(const v_uint16x8& a, const v_uint16x8& b, v_uint32x4& c, v_uint32x4& d) -{ - c.val = vec_mul(vec_unpackhu(a.val), vec_unpackhu(b.val)); - d.val = vec_mul(vec_unpacklu(a.val), vec_unpacklu(b.val)); -} -inline void v_mul_expand(const v_uint32x4& a, const v_uint32x4& b, v_uint64x2& c, v_uint64x2& d) -{ - c.val = vec_mul(vec_unpackhu(a.val), vec_unpackhu(b.val)); - d.val = vec_mul(vec_unpacklu(a.val), vec_unpacklu(b.val)); -} - -/** Non-saturating arithmetics **/ -#define OPENCV_HAL_IMPL_VSX_BIN_FUNC(func, intrin) \ -template \ -inline _Tpvec func(const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(intrin(a.val, b.val)); } - -OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_add_wrap, vec_add) -OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_sub_wrap, vec_sub) - -/** Bitwise shifts **/ -#define OPENCV_HAL_IMPL_VSX_SHIFT_OP(_Tpvec, shr, splfunc) \ -inline _Tpvec operator << (const _Tpvec& a, int imm) \ -{ return _Tpvec(vec_sl(a.val, splfunc(imm))); } \ -inline _Tpvec operator >> (const _Tpvec& a, int imm) \ -{ return _Tpvec(shr(a.val, splfunc(imm))); } \ -template inline _Tpvec v_shl(const _Tpvec& a) \ -{ return _Tpvec(vec_sl(a.val, splfunc(imm))); } \ -template inline _Tpvec v_shr(const _Tpvec& a) \ -{ return _Tpvec(shr(a.val, splfunc(imm))); } - -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint8x16, vec_sr, vec_uchar16_sp) -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint16x8, vec_sr, vec_ushort8_sp) -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint32x4, vec_sr, vec_uint4_sp) -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_uint64x2, vec_sr, vec_udword2_sp) -// algebraic right shift -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int8x16, vec_sra, vec_uchar16_sp) -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int16x8, vec_sra, vec_ushort8_sp) -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int32x4, vec_sra, vec_uint4_sp) -OPENCV_HAL_IMPL_VSX_SHIFT_OP(v_int64x2, vec_sra, vec_udword2_sp) - -/** Bitwise logic **/ -#define OPENCV_HAL_IMPL_VSX_LOGIC_OP(_Tpvec) \ -OPENCV_HAL_IMPL_VSX_BIN_OP(&, _Tpvec, vec_and) \ -OPENCV_HAL_IMPL_VSX_BIN_OP(|, _Tpvec, vec_or) \ -OPENCV_HAL_IMPL_VSX_BIN_OP(^, _Tpvec, vec_xor) \ -inline _Tpvec operator ~ (const _Tpvec& a) \ -{ return _Tpvec(vec_not(a.val)); } - -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint8x16) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int8x16) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint16x8) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int16x8) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint32x4) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int32x4) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_uint64x2) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_int64x2) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_float32x4) -OPENCV_HAL_IMPL_VSX_LOGIC_OP(v_float64x2) - -/** Bitwise select **/ -#define OPENCV_HAL_IMPL_VSX_SELECT(_Tpvec, cast) \ -inline _Tpvec v_select(const _Tpvec& mask, const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_sel(b.val, a.val, cast(mask.val))); } - -OPENCV_HAL_IMPL_VSX_SELECT(v_uint8x16, vec_bchar16_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_int8x16, vec_bchar16_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_uint16x8, vec_bshort8_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_int16x8, vec_bshort8_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_uint32x4, vec_bint4_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_int32x4, vec_bint4_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_float32x4, vec_bint4_c) -OPENCV_HAL_IMPL_VSX_SELECT(v_float64x2, vec_bdword2_c) - -/** Comparison **/ -#define OPENCV_HAL_IMPL_VSX_INT_CMP_OP(_Tpvec) \ -inline _Tpvec operator == (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_cmpeq(a.val, b.val)); } \ -inline _Tpvec operator != (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_cmpne(a.val, b.val)); } \ -inline _Tpvec operator < (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_cmplt(a.val, b.val)); } \ -inline _Tpvec operator > (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_cmpgt(a.val, b.val)); } \ -inline _Tpvec operator <= (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_cmple(a.val, b.val)); } \ -inline _Tpvec operator >= (const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_cmpge(a.val, b.val)); } - -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint8x16) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int8x16) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint16x8) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int16x8) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint32x4) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int32x4) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_float32x4) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_float64x2) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_uint64x2) -OPENCV_HAL_IMPL_VSX_INT_CMP_OP(v_int64x2) - -/** min/max **/ -OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_min, vec_min) -OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_max, vec_max) - -/** Rotate **/ -#define OPENCV_IMPL_VSX_ROTATE(_Tpvec, suffix, shf, cast) \ -template \ -inline _Tpvec v_rotate_##suffix(const _Tpvec& a) \ -{ \ - const int wd = imm * sizeof(typename _Tpvec::lane_type); \ - if (wd > 15) \ - return _Tpvec(); \ - return _Tpvec((cast)shf(vec_uchar16_c(a.val), vec_uchar16_sp(wd << 3))); \ -} - -#define OPENCV_IMPL_VSX_ROTATE_LR(_Tpvec, cast) \ -OPENCV_IMPL_VSX_ROTATE(_Tpvec, left, vec_slo, cast) \ -OPENCV_IMPL_VSX_ROTATE(_Tpvec, right, vec_sro, cast) - -OPENCV_IMPL_VSX_ROTATE_LR(v_uint8x16, vec_uchar16) -OPENCV_IMPL_VSX_ROTATE_LR(v_int8x16, vec_char16) -OPENCV_IMPL_VSX_ROTATE_LR(v_uint16x8, vec_ushort8) -OPENCV_IMPL_VSX_ROTATE_LR(v_int16x8, vec_short8) -OPENCV_IMPL_VSX_ROTATE_LR(v_uint32x4, vec_uint4) -OPENCV_IMPL_VSX_ROTATE_LR(v_int32x4, vec_int4) -OPENCV_IMPL_VSX_ROTATE_LR(v_uint64x2, vec_udword2) -OPENCV_IMPL_VSX_ROTATE_LR(v_int64x2, vec_dword2) - - -template -inline _Tpvec v_rotate_right(const _Tpvec& a, const _Tpvec& b) -{ - enum { CV_SHIFT = 16 - imm * (sizeof(typename _Tpvec::lane_type)) }; - if (CV_SHIFT == 16) - return a; -#ifdef __IBMCPP__ - return _Tpvec(vec_sld(b.val, a.val, CV_SHIFT & 15)); -#else - return _Tpvec(vec_sld(b.val, a.val, CV_SHIFT)); -#endif -} - -template -inline _Tpvec v_rotate_left(const _Tpvec& a, const _Tpvec& b) -{ - enum { CV_SHIFT = imm * (sizeof(typename _Tpvec::lane_type)) }; - if (CV_SHIFT == 16) - return b; - return _Tpvec(vec_sld(a.val, b.val, CV_SHIFT)); -} - -#define OPENCV_IMPL_VSX_ROTATE_64(_Tpvec, suffix, rg1, rg2) \ -template \ -inline _Tpvec v_rotate_##suffix(const _Tpvec& a, const _Tpvec& b) \ -{ \ - if (imm == 1) \ - return _Tpvec(vec_permi(rg1.val, rg2.val, 2)); \ - return imm ? b : a; \ -} - -OPENCV_IMPL_VSX_ROTATE_64(v_int64x2, right, a, b) -OPENCV_IMPL_VSX_ROTATE_64(v_uint64x2, right, a, b) - -OPENCV_IMPL_VSX_ROTATE_64(v_int64x2, left, b, a) -OPENCV_IMPL_VSX_ROTATE_64(v_uint64x2, left, b, a) - -////////// Reduce and mask ///////// - -/** Reduce **/ -inline short v_reduce_sum(const v_int16x8& a) -{ - const vec_int4 zero = vec_int4_z; - return saturate_cast(vec_extract(vec_sums(vec_sum4s(a.val, zero), zero), 3)); -} -inline ushort v_reduce_sum(const v_uint16x8& a) -{ - const vec_int4 v4 = vec_int4_c(vec_unpackhu(vec_adds(a.val, vec_sld(a.val, a.val, 8)))); - return saturate_cast(vec_extract(vec_sums(v4, vec_int4_z), 3)); -} - -#define OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(_Tpvec, _Tpvec2, scalartype, suffix, func) \ -inline scalartype v_reduce_##suffix(const _Tpvec& a) \ -{ \ - const _Tpvec2 rs = func(a.val, vec_sld(a.val, a.val, 8)); \ - return vec_extract(func(rs, vec_sld(rs, rs, 4)), 0); \ -} -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_uint32x4, vec_uint4, uint, sum, vec_add) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_uint32x4, vec_uint4, uint, max, vec_max) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_uint32x4, vec_uint4, uint, min, vec_min) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_int32x4, vec_int4, int, sum, vec_add) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_int32x4, vec_int4, int, max, vec_max) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_int32x4, vec_int4, int, min, vec_min) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_float32x4, vec_float4, float, sum, vec_add) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_float32x4, vec_float4, float, max, vec_max) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_4(v_float32x4, vec_float4, float, min, vec_min) - -#define OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(_Tpvec, _Tpvec2, scalartype, suffix, func) \ -inline scalartype v_reduce_##suffix(const _Tpvec& a) \ -{ \ - _Tpvec2 rs = func(a.val, vec_sld(a.val, a.val, 8)); \ - rs = func(rs, vec_sld(rs, rs, 4)); \ - return vec_extract(func(rs, vec_sld(rs, rs, 2)), 0); \ -} -OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_uint16x8, vec_ushort8, ushort, max, vec_max) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_uint16x8, vec_ushort8, ushort, min, vec_min) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_int16x8, vec_short8, short, max, vec_max) -OPENCV_HAL_IMPL_VSX_REDUCE_OP_8(v_int16x8, vec_short8, short, min, vec_min) - -inline v_float32x4 v_reduce_sum4(const v_float32x4& a, const v_float32x4& b, - const v_float32x4& c, const v_float32x4& d) -{ - vec_float4 ac = vec_add(vec_mergel(a.val, c.val), vec_mergeh(a.val, c.val)); - ac = vec_add(ac, vec_sld(ac, ac, 8)); - - vec_float4 bd = vec_add(vec_mergel(b.val, d.val), vec_mergeh(b.val, d.val)); - bd = vec_add(bd, vec_sld(bd, bd, 8)); - return v_float32x4(vec_mergeh(ac, bd)); -} - -/** Popcount **/ -template -inline v_uint32x4 v_popcount(const _Tpvec& a) -{ return v_uint32x4(vec_popcntu(vec_uint4_c(a.val))); } - -/** Mask **/ -inline int v_signmask(const v_uint8x16& a) -{ - vec_uchar16 sv = vec_sr(a.val, vec_uchar16_sp(7)); - static const vec_uchar16 slm = {0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7}; - sv = vec_sl(sv, slm); - vec_uint4 sv4 = vec_sum4s(sv, vec_uint4_z); - static const vec_uint4 slm4 = {0, 0, 8, 8}; - sv4 = vec_sl(sv4, slm4); - return vec_extract(vec_sums((vec_int4) sv4, vec_int4_z), 3); -} -inline int v_signmask(const v_int8x16& a) -{ return v_signmask(v_reinterpret_as_u8(a)); } - -inline int v_signmask(const v_int16x8& a) -{ - static const vec_ushort8 slm = {0, 1, 2, 3, 4, 5, 6, 7}; - vec_short8 sv = vec_sr(a.val, vec_ushort8_sp(15)); - sv = vec_sl(sv, slm); - vec_int4 svi = vec_int4_z; - svi = vec_sums(vec_sum4s(sv, svi), svi); - return vec_extract(svi, 3); -} -inline int v_signmask(const v_uint16x8& a) -{ return v_signmask(v_reinterpret_as_s16(a)); } - -inline int v_signmask(const v_int32x4& a) -{ - static const vec_uint4 slm = {0, 1, 2, 3}; - vec_int4 sv = vec_sr(a.val, vec_uint4_sp(31)); - sv = vec_sl(sv, slm); - sv = vec_sums(sv, vec_int4_z); - return vec_extract(sv, 3); -} -inline int v_signmask(const v_uint32x4& a) -{ return v_signmask(v_reinterpret_as_s32(a)); } -inline int v_signmask(const v_float32x4& a) -{ return v_signmask(v_reinterpret_as_s32(a)); } - -inline int v_signmask(const v_int64x2& a) -{ - VSX_UNUSED(const vec_dword2) sv = vec_sr(a.val, vec_udword2_sp(63)); - return (int)vec_extract(sv, 0) | (int)vec_extract(sv, 1) << 1; -} -inline int v_signmask(const v_uint64x2& a) -{ return v_signmask(v_reinterpret_as_s64(a)); } -inline int v_signmask(const v_float64x2& a) -{ return v_signmask(v_reinterpret_as_s64(a)); } - - -template -inline bool v_check_all(const _Tpvec& a) -{ return vec_all_lt(a.val, _Tpvec().val);} -inline bool v_check_all(const v_uint8x16 &a) -{ return v_check_all(v_reinterpret_as_s8(a)); } -inline bool v_check_all(const v_uint16x8 &a) -{ return v_check_all(v_reinterpret_as_s16(a)); } -inline bool v_check_all(const v_uint32x4 &a) -{ return v_check_all(v_reinterpret_as_s32(a)); } - -template -inline bool v_check_any(const _Tpvec& a) -{ return vec_any_lt(a.val, _Tpvec().val);} -inline bool v_check_any(const v_uint8x16 &a) -{ return v_check_any(v_reinterpret_as_s8(a)); } -inline bool v_check_any(const v_uint16x8 &a) -{ return v_check_any(v_reinterpret_as_s16(a)); } -inline bool v_check_any(const v_uint32x4 &a) -{ return v_check_any(v_reinterpret_as_s32(a)); } - -////////// Other math ///////// - -/** Some frequent operations **/ -inline v_float32x4 v_sqrt(const v_float32x4& x) -{ return v_float32x4(vec_sqrt(x.val)); } -inline v_float64x2 v_sqrt(const v_float64x2& x) -{ return v_float64x2(vec_sqrt(x.val)); } - -inline v_float32x4 v_invsqrt(const v_float32x4& x) -{ return v_float32x4(vec_rsqrt(x.val)); } -inline v_float64x2 v_invsqrt(const v_float64x2& x) -{ return v_float64x2(vec_rsqrt(x.val)); } - -#define OPENCV_HAL_IMPL_VSX_MULADD(_Tpvec) \ -inline _Tpvec v_magnitude(const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_sqrt(vec_madd(a.val, a.val, vec_mul(b.val, b.val)))); } \ -inline _Tpvec v_sqr_magnitude(const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec(vec_madd(a.val, a.val, vec_mul(b.val, b.val))); } \ -inline _Tpvec v_muladd(const _Tpvec& a, const _Tpvec& b, const _Tpvec& c) \ -{ return _Tpvec(vec_madd(a.val, b.val, c.val)); } - -OPENCV_HAL_IMPL_VSX_MULADD(v_float32x4) -OPENCV_HAL_IMPL_VSX_MULADD(v_float64x2) - -// TODO: exp, log, sin, cos - -/** Absolute values **/ -inline v_uint8x16 v_abs(const v_int8x16& x) -{ return v_uint8x16(vec_uchar16_c(vec_abs(x.val))); } - -inline v_uint16x8 v_abs(const v_int16x8& x) -{ return v_uint16x8(vec_ushort8_c(vec_abs(x.val))); } - -inline v_uint32x4 v_abs(const v_int32x4& x) -{ return v_uint32x4(vec_uint4_c(vec_abs(x.val))); } - -inline v_float32x4 v_abs(const v_float32x4& x) -{ return v_float32x4(vec_abs(x.val)); } - -inline v_float64x2 v_abs(const v_float64x2& x) -{ return v_float64x2(vec_abs(x.val)); } - -OPENCV_HAL_IMPL_VSX_BIN_FUNC(v_absdiff, vec_absd) - -#define OPENCV_HAL_IMPL_VSX_BIN_FUNC2(_Tpvec, _Tpvec2, cast, func, intrin) \ -inline _Tpvec2 func(const _Tpvec& a, const _Tpvec& b) \ -{ return _Tpvec2(cast(intrin(a.val, b.val))); } - -OPENCV_HAL_IMPL_VSX_BIN_FUNC2(v_int8x16, v_uint8x16, vec_uchar16_c, v_absdiff, vec_absd) -OPENCV_HAL_IMPL_VSX_BIN_FUNC2(v_int16x8, v_uint16x8, vec_ushort8_c, v_absdiff, vec_absd) -OPENCV_HAL_IMPL_VSX_BIN_FUNC2(v_int32x4, v_uint32x4, vec_uint4_c, v_absdiff, vec_absd) -OPENCV_HAL_IMPL_VSX_BIN_FUNC2(v_int64x2, v_uint64x2, vec_udword2_c, v_absdiff, vec_absd) - -////////// Conversions ///////// - -/** Rounding **/ -inline v_int32x4 v_round(const v_float32x4& a) -{ return v_int32x4(vec_cts(vec_round(a.val))); } - -inline v_int32x4 v_round(const v_float64x2& a) -{ return v_int32x4(vec_mergesqo(vec_ctso(vec_round(a.val)), vec_int4_z)); } - -inline v_int32x4 v_floor(const v_float32x4& a) -{ return v_int32x4(vec_cts(vec_floor(a.val))); } - -inline v_int32x4 v_floor(const v_float64x2& a) -{ return v_int32x4(vec_mergesqo(vec_ctso(vec_floor(a.val)), vec_int4_z)); } - -inline v_int32x4 v_ceil(const v_float32x4& a) -{ return v_int32x4(vec_cts(vec_ceil(a.val))); } - -inline v_int32x4 v_ceil(const v_float64x2& a) -{ return v_int32x4(vec_mergesqo(vec_ctso(vec_ceil(a.val)), vec_int4_z)); } - -inline v_int32x4 v_trunc(const v_float32x4& a) -{ return v_int32x4(vec_cts(a.val)); } - -inline v_int32x4 v_trunc(const v_float64x2& a) -{ return v_int32x4(vec_mergesqo(vec_ctso(a.val), vec_int4_z)); } - -/** To float **/ -inline v_float32x4 v_cvt_f32(const v_int32x4& a) -{ return v_float32x4(vec_ctf(a.val)); } - -inline v_float32x4 v_cvt_f32(const v_float64x2& a) -{ return v_float32x4(vec_mergesqo(vec_cvfo(a.val), vec_float4_z)); } - -inline v_float64x2 v_cvt_f64(const v_int32x4& a) -{ return v_float64x2(vec_ctdo(vec_mergeh(a.val, a.val))); } - -inline v_float64x2 v_cvt_f64_high(const v_int32x4& a) -{ return v_float64x2(vec_ctdo(vec_mergel(a.val, a.val))); } - -inline v_float64x2 v_cvt_f64(const v_float32x4& a) -{ return v_float64x2(vec_cvfo(vec_mergeh(a.val, a.val))); } - -inline v_float64x2 v_cvt_f64_high(const v_float32x4& a) -{ return v_float64x2(vec_cvfo(vec_mergel(a.val, a.val))); } - -/** Reinterpret **/ -/** its up there with load and store operations **/ - -////////// Matrix operations ///////// - -inline v_int32x4 v_dotprod(const v_int16x8& a, const v_int16x8& b) -{ return v_int32x4(vec_msum(a.val, b.val, vec_int4_z)); } - -inline v_float32x4 v_matmul(const v_float32x4& v, const v_float32x4& m0, - const v_float32x4& m1, const v_float32x4& m2, - const v_float32x4& m3) -{ - const vec_float4 v0 = vec_splat(v.val, 0); - const vec_float4 v1 = vec_splat(v.val, 1); - const vec_float4 v2 = vec_splat(v.val, 2); - VSX_UNUSED(const vec_float4) v3 = vec_splat(v.val, 3); - return v_float32x4(vec_madd(v0, m0.val, vec_madd(v1, m1.val, vec_madd(v2, m2.val, vec_mul(v3, m3.val))))); -} - -inline v_float32x4 v_matmuladd(const v_float32x4& v, const v_float32x4& m0, - const v_float32x4& m1, const v_float32x4& m2, - const v_float32x4& a) -{ - const vec_float4 v0 = vec_splat(v.val, 0); - const vec_float4 v1 = vec_splat(v.val, 1); - const vec_float4 v2 = vec_splat(v.val, 2); - return v_float32x4(vec_madd(v0, m0.val, vec_madd(v1, m1.val, vec_madd(v2, m2.val, a.val)))); -} - -#define OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(_Tpvec, _Tpvec2) \ -inline void v_transpose4x4(const _Tpvec& a0, const _Tpvec& a1, \ - const _Tpvec& a2, const _Tpvec& a3, \ - _Tpvec& b0, _Tpvec& b1, _Tpvec& b2, _Tpvec& b3) \ -{ \ - _Tpvec2 a02 = vec_mergeh(a0.val, a2.val); \ - _Tpvec2 a13 = vec_mergeh(a1.val, a3.val); \ - b0.val = vec_mergeh(a02, a13); \ - b1.val = vec_mergel(a02, a13); \ - a02 = vec_mergel(a0.val, a2.val); \ - a13 = vec_mergel(a1.val, a3.val); \ - b2.val = vec_mergeh(a02, a13); \ - b3.val = vec_mergel(a02, a13); \ -} -OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(v_uint32x4, vec_uint4) -OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(v_int32x4, vec_int4) -OPENCV_HAL_IMPL_VSX_TRANSPOSE4x4(v_float32x4, vec_float4) - -//! @name Check SIMD support -//! @{ -//! @brief Check CPU capability of SIMD operation -static inline bool hasSIMD128() -{ - return (CV_CPU_HAS_SUPPORT_VSX) ? true : false; -} - -//! @} - -CV_CPU_OPTIMIZATION_HAL_NAMESPACE_END - -//! @endcond - -} - -#endif // OPENCV_HAL_VSX_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ippasync.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/ippasync.hpp deleted file mode 100644 index 0ed8264e1..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ippasync.hpp +++ /dev/null @@ -1,195 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2015, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_IPPASYNC_HPP -#define OPENCV_CORE_IPPASYNC_HPP - -#ifdef HAVE_IPP_A - -#include "opencv2/core.hpp" -#include -#include - -namespace cv -{ - -namespace hpp -{ - -/** @addtogroup core_ipp -This section describes conversion between OpenCV and [Intel® IPP Asynchronous -C/C++](http://software.intel.com/en-us/intel-ipp-preview) library. [Getting Started -Guide](http://registrationcenter.intel.com/irc_nas/3727/ipp_async_get_started.htm) help you to -install the library, configure header and library build paths. - */ -//! @{ - - //! convert OpenCV data type to hppDataType - inline int toHppType(const int cvType) - { - int depth = CV_MAT_DEPTH(cvType); - int hppType = depth == CV_8U ? HPP_DATA_TYPE_8U : - depth == CV_16U ? HPP_DATA_TYPE_16U : - depth == CV_16S ? HPP_DATA_TYPE_16S : - depth == CV_32S ? HPP_DATA_TYPE_32S : - depth == CV_32F ? HPP_DATA_TYPE_32F : - depth == CV_64F ? HPP_DATA_TYPE_64F : -1; - CV_Assert( hppType >= 0 ); - return hppType; - } - - //! convert hppDataType to OpenCV data type - inline int toCvType(const int hppType) - { - int cvType = hppType == HPP_DATA_TYPE_8U ? CV_8U : - hppType == HPP_DATA_TYPE_16U ? CV_16U : - hppType == HPP_DATA_TYPE_16S ? CV_16S : - hppType == HPP_DATA_TYPE_32S ? CV_32S : - hppType == HPP_DATA_TYPE_32F ? CV_32F : - hppType == HPP_DATA_TYPE_64F ? CV_64F : -1; - CV_Assert( cvType >= 0 ); - return cvType; - } - - /** @brief Convert hppiMatrix to Mat. - - This function allocates and initializes new matrix (if needed) that has the same size and type as - input matrix. Supports CV_8U, CV_16U, CV_16S, CV_32S, CV_32F, CV_64F. - @param src input hppiMatrix. - @param dst output matrix. - @param accel accelerator instance (see hpp::getHpp for the list of acceleration framework types). - @param cn number of channels. - */ - inline void copyHppToMat(hppiMatrix* src, Mat& dst, hppAccel accel, int cn) - { - hppDataType type; - hpp32u width, height; - hppStatus sts; - - if (src == NULL) - return dst.release(); - - sts = hppiInquireMatrix(src, &type, &width, &height); - - CV_Assert( sts == HPP_STATUS_NO_ERROR); - - int matType = CV_MAKETYPE(toCvType(type), cn); - - CV_Assert(width%cn == 0); - - width /= cn; - - dst.create((int)height, (int)width, (int)matType); - - size_t newSize = (size_t)(height*(hpp32u)(dst.step)); - - sts = hppiGetMatrixData(accel,src,(hpp32u)(dst.step),dst.data,&newSize); - - CV_Assert( sts == HPP_STATUS_NO_ERROR); - } - - /** @brief Create Mat from hppiMatrix. - - This function allocates and initializes the Mat that has the same size and type as input matrix. - Supports CV_8U, CV_16U, CV_16S, CV_32S, CV_32F, CV_64F. - @param src input hppiMatrix. - @param accel accelerator instance (see hpp::getHpp for the list of acceleration framework types). - @param cn number of channels. - @sa howToUseIPPAconversion, hpp::copyHppToMat, hpp::getHpp. - */ - inline Mat getMat(hppiMatrix* src, hppAccel accel, int cn) - { - Mat dst; - copyHppToMat(src, dst, accel, cn); - return dst; - } - - /** @brief Create hppiMatrix from Mat. - - This function allocates and initializes the hppiMatrix that has the same size and type as input - matrix, returns the hppiMatrix*. - - If you want to use zero-copy for GPU you should to have 4KB aligned matrix data. See details - [hppiCreateSharedMatrix](http://software.intel.com/ru-ru/node/501697). - - Supports CV_8U, CV_16U, CV_16S, CV_32S, CV_32F, CV_64F. - - @note The hppiMatrix pointer to the image buffer in system memory refers to the src.data. Control - the lifetime of the matrix and don't change its data, if there is no special need. - @param src input matrix. - @param accel accelerator instance. Supports type: - - **HPP_ACCEL_TYPE_CPU** - accelerated by optimized CPU instructions. - - **HPP_ACCEL_TYPE_GPU** - accelerated by GPU programmable units or fixed-function - accelerators. - - **HPP_ACCEL_TYPE_ANY** - any acceleration or no acceleration available. - @sa howToUseIPPAconversion, hpp::getMat - */ - inline hppiMatrix* getHpp(const Mat& src, hppAccel accel) - { - int htype = toHppType(src.type()); - int cn = src.channels(); - - CV_Assert(src.data); - hppAccelType accelType = hppQueryAccelType(accel); - - if (accelType!=HPP_ACCEL_TYPE_CPU) - { - hpp32u pitch, size; - hppQueryMatrixAllocParams(accel, src.cols*cn, src.rows, htype, &pitch, &size); - if (pitch!=0 && size!=0) - if ((int)(src.data)%4096==0 && pitch==(hpp32u)(src.step)) - { - return hppiCreateSharedMatrix(htype, src.cols*cn, src.rows, src.data, pitch, size); - } - } - - return hppiCreateMatrix(htype, src.cols*cn, src.rows, src.data, (hpp32s)(src.step));; - } - -//! @} -}} - -#endif - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/mat.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/mat.hpp deleted file mode 100644 index 65408d5e7..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/mat.hpp +++ /dev/null @@ -1,3644 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_MAT_HPP -#define OPENCV_CORE_MAT_HPP - -#ifndef __cplusplus -# error mat.hpp header must be compiled as C++ -#endif - -#include "opencv2/core/matx.hpp" -#include "opencv2/core/types.hpp" - -#include "opencv2/core/bufferpool.hpp" - -#ifdef CV_CXX11 -#include -#endif - -namespace cv -{ - -//! @addtogroup core_basic -//! @{ - -enum { ACCESS_READ=1<<24, ACCESS_WRITE=1<<25, - ACCESS_RW=3<<24, ACCESS_MASK=ACCESS_RW, ACCESS_FAST=1<<26 }; - -CV__DEBUG_NS_BEGIN - -class CV_EXPORTS _OutputArray; - -//////////////////////// Input/Output Array Arguments ///////////////////////////////// - -/** @brief This is the proxy class for passing read-only input arrays into OpenCV functions. - -It is defined as: -@code - typedef const _InputArray& InputArray; -@endcode -where _InputArray is a class that can be constructed from `Mat`, `Mat_`, `Matx`, -`std::vector`, `std::vector >`, `std::vector`, `std::vector >`, -`UMat`, `std::vector` or `double`. It can also be constructed from a matrix expression. - -Since this is mostly implementation-level class, and its interface may change in future versions, we -do not describe it in details. There are a few key things, though, that should be kept in mind: - -- When you see in the reference manual or in OpenCV source code a function that takes - InputArray, it means that you can actually pass `Mat`, `Matx`, `vector` etc. (see above the - complete list). -- Optional input arguments: If some of the input arrays may be empty, pass cv::noArray() (or - simply cv::Mat() as you probably did before). -- The class is designed solely for passing parameters. That is, normally you *should not* - declare class members, local and global variables of this type. -- If you want to design your own function or a class method that can operate of arrays of - multiple types, you can use InputArray (or OutputArray) for the respective parameters. Inside - a function you should use _InputArray::getMat() method to construct a matrix header for the - array (without copying data). _InputArray::kind() can be used to distinguish Mat from - `vector<>` etc., but normally it is not needed. - -Here is how you can use a function that takes InputArray : -@code - std::vector vec; - // points or a circle - for( int i = 0; i < 30; i++ ) - vec.push_back(Point2f((float)(100 + 30*cos(i*CV_PI*2/5)), - (float)(100 - 30*sin(i*CV_PI*2/5)))); - cv::transform(vec, vec, cv::Matx23f(0.707, -0.707, 10, 0.707, 0.707, 20)); -@endcode -That is, we form an STL vector containing points, and apply in-place affine transformation to the -vector using the 2x3 matrix created inline as `Matx` instance. - -Here is how such a function can be implemented (for simplicity, we implement a very specific case of -it, according to the assertion statement inside) : -@code - void myAffineTransform(InputArray _src, OutputArray _dst, InputArray _m) - { - // get Mat headers for input arrays. This is O(1) operation, - // unless _src and/or _m are matrix expressions. - Mat src = _src.getMat(), m = _m.getMat(); - CV_Assert( src.type() == CV_32FC2 && m.type() == CV_32F && m.size() == Size(3, 2) ); - - // [re]create the output array so that it has the proper size and type. - // In case of Mat it calls Mat::create, in case of STL vector it calls vector::resize. - _dst.create(src.size(), src.type()); - Mat dst = _dst.getMat(); - - for( int i = 0; i < src.rows; i++ ) - for( int j = 0; j < src.cols; j++ ) - { - Point2f pt = src.at(i, j); - dst.at(i, j) = Point2f(m.at(0, 0)*pt.x + - m.at(0, 1)*pt.y + - m.at(0, 2), - m.at(1, 0)*pt.x + - m.at(1, 1)*pt.y + - m.at(1, 2)); - } - } -@endcode -There is another related type, InputArrayOfArrays, which is currently defined as a synonym for -InputArray: -@code - typedef InputArray InputArrayOfArrays; -@endcode -It denotes function arguments that are either vectors of vectors or vectors of matrices. A separate -synonym is needed to generate Python/Java etc. wrappers properly. At the function implementation -level their use is similar, but _InputArray::getMat(idx) should be used to get header for the -idx-th component of the outer vector and _InputArray::size().area() should be used to find the -number of components (vectors/matrices) of the outer vector. - */ -class CV_EXPORTS _InputArray -{ -public: - enum { - KIND_SHIFT = 16, - FIXED_TYPE = 0x8000 << KIND_SHIFT, - FIXED_SIZE = 0x4000 << KIND_SHIFT, - KIND_MASK = 31 << KIND_SHIFT, - - NONE = 0 << KIND_SHIFT, - MAT = 1 << KIND_SHIFT, - MATX = 2 << KIND_SHIFT, - STD_VECTOR = 3 << KIND_SHIFT, - STD_VECTOR_VECTOR = 4 << KIND_SHIFT, - STD_VECTOR_MAT = 5 << KIND_SHIFT, - EXPR = 6 << KIND_SHIFT, - OPENGL_BUFFER = 7 << KIND_SHIFT, - CUDA_HOST_MEM = 8 << KIND_SHIFT, - CUDA_GPU_MAT = 9 << KIND_SHIFT, - UMAT =10 << KIND_SHIFT, - STD_VECTOR_UMAT =11 << KIND_SHIFT, - STD_BOOL_VECTOR =12 << KIND_SHIFT, - STD_VECTOR_CUDA_GPU_MAT = 13 << KIND_SHIFT, - STD_ARRAY =14 << KIND_SHIFT, - STD_ARRAY_MAT =15 << KIND_SHIFT - }; - - _InputArray(); - _InputArray(int _flags, void* _obj); - _InputArray(const Mat& m); - _InputArray(const MatExpr& expr); - _InputArray(const std::vector& vec); - template _InputArray(const Mat_<_Tp>& m); - template _InputArray(const std::vector<_Tp>& vec); - _InputArray(const std::vector& vec); - template _InputArray(const std::vector >& vec); - _InputArray(const std::vector >&); - template _InputArray(const std::vector >& vec); - template _InputArray(const _Tp* vec, int n); - template _InputArray(const Matx<_Tp, m, n>& matx); - _InputArray(const double& val); - _InputArray(const cuda::GpuMat& d_mat); - _InputArray(const std::vector& d_mat_array); - _InputArray(const ogl::Buffer& buf); - _InputArray(const cuda::HostMem& cuda_mem); - template _InputArray(const cudev::GpuMat_<_Tp>& m); - _InputArray(const UMat& um); - _InputArray(const std::vector& umv); - -#ifdef CV_CXX_STD_ARRAY - template _InputArray(const std::array<_Tp, _Nm>& arr); - template _InputArray(const std::array& arr); -#endif - - Mat getMat(int idx=-1) const; - Mat getMat_(int idx=-1) const; - UMat getUMat(int idx=-1) const; - void getMatVector(std::vector& mv) const; - void getUMatVector(std::vector& umv) const; - void getGpuMatVector(std::vector& gpumv) const; - cuda::GpuMat getGpuMat() const; - ogl::Buffer getOGlBuffer() const; - - int getFlags() const; - void* getObj() const; - Size getSz() const; - - int kind() const; - int dims(int i=-1) const; - int cols(int i=-1) const; - int rows(int i=-1) const; - Size size(int i=-1) const; - int sizend(int* sz, int i=-1) const; - bool sameSize(const _InputArray& arr) const; - size_t total(int i=-1) const; - int type(int i=-1) const; - int depth(int i=-1) const; - int channels(int i=-1) const; - bool isContinuous(int i=-1) const; - bool isSubmatrix(int i=-1) const; - bool empty() const; - void copyTo(const _OutputArray& arr) const; - void copyTo(const _OutputArray& arr, const _InputArray & mask) const; - size_t offset(int i=-1) const; - size_t step(int i=-1) const; - bool isMat() const; - bool isUMat() const; - bool isMatVector() const; - bool isUMatVector() const; - bool isMatx() const; - bool isVector() const; - bool isGpuMatVector() const; - ~_InputArray(); - -protected: - int flags; - void* obj; - Size sz; - - void init(int _flags, const void* _obj); - void init(int _flags, const void* _obj, Size _sz); -}; - - -/** @brief This type is very similar to InputArray except that it is used for input/output and output function -parameters. - -Just like with InputArray, OpenCV users should not care about OutputArray, they just pass `Mat`, -`vector` etc. to the functions. The same limitation as for `InputArray`: *Do not explicitly -create OutputArray instances* applies here too. - -If you want to make your function polymorphic (i.e. accept different arrays as output parameters), -it is also not very difficult. Take the sample above as the reference. Note that -_OutputArray::create() needs to be called before _OutputArray::getMat(). This way you guarantee -that the output array is properly allocated. - -Optional output parameters. If you do not need certain output array to be computed and returned to -you, pass cv::noArray(), just like you would in the case of optional input array. At the -implementation level, use _OutputArray::needed() to check if certain output array needs to be -computed or not. - -There are several synonyms for OutputArray that are used to assist automatic Python/Java/... wrapper -generators: -@code - typedef OutputArray OutputArrayOfArrays; - typedef OutputArray InputOutputArray; - typedef OutputArray InputOutputArrayOfArrays; -@endcode - */ -class CV_EXPORTS _OutputArray : public _InputArray -{ -public: - enum - { - DEPTH_MASK_8U = 1 << CV_8U, - DEPTH_MASK_8S = 1 << CV_8S, - DEPTH_MASK_16U = 1 << CV_16U, - DEPTH_MASK_16S = 1 << CV_16S, - DEPTH_MASK_32S = 1 << CV_32S, - DEPTH_MASK_32F = 1 << CV_32F, - DEPTH_MASK_64F = 1 << CV_64F, - DEPTH_MASK_ALL = (DEPTH_MASK_64F<<1)-1, - DEPTH_MASK_ALL_BUT_8S = DEPTH_MASK_ALL & ~DEPTH_MASK_8S, - DEPTH_MASK_FLT = DEPTH_MASK_32F + DEPTH_MASK_64F - }; - - _OutputArray(); - _OutputArray(int _flags, void* _obj); - _OutputArray(Mat& m); - _OutputArray(std::vector& vec); - _OutputArray(cuda::GpuMat& d_mat); - _OutputArray(std::vector& d_mat); - _OutputArray(ogl::Buffer& buf); - _OutputArray(cuda::HostMem& cuda_mem); - template _OutputArray(cudev::GpuMat_<_Tp>& m); - template _OutputArray(std::vector<_Tp>& vec); - _OutputArray(std::vector& vec); - template _OutputArray(std::vector >& vec); - _OutputArray(std::vector >&); - template _OutputArray(std::vector >& vec); - template _OutputArray(Mat_<_Tp>& m); - template _OutputArray(_Tp* vec, int n); - template _OutputArray(Matx<_Tp, m, n>& matx); - _OutputArray(UMat& m); - _OutputArray(std::vector& vec); - - _OutputArray(const Mat& m); - _OutputArray(const std::vector& vec); - _OutputArray(const cuda::GpuMat& d_mat); - _OutputArray(const std::vector& d_mat); - _OutputArray(const ogl::Buffer& buf); - _OutputArray(const cuda::HostMem& cuda_mem); - template _OutputArray(const cudev::GpuMat_<_Tp>& m); - template _OutputArray(const std::vector<_Tp>& vec); - template _OutputArray(const std::vector >& vec); - template _OutputArray(const std::vector >& vec); - template _OutputArray(const Mat_<_Tp>& m); - template _OutputArray(const _Tp* vec, int n); - template _OutputArray(const Matx<_Tp, m, n>& matx); - _OutputArray(const UMat& m); - _OutputArray(const std::vector& vec); - -#ifdef CV_CXX_STD_ARRAY - template _OutputArray(std::array<_Tp, _Nm>& arr); - template _OutputArray(const std::array<_Tp, _Nm>& arr); - template _OutputArray(std::array& arr); - template _OutputArray(const std::array& arr); -#endif - - bool fixedSize() const; - bool fixedType() const; - bool needed() const; - Mat& getMatRef(int i=-1) const; - UMat& getUMatRef(int i=-1) const; - cuda::GpuMat& getGpuMatRef() const; - std::vector& getGpuMatVecRef() const; - ogl::Buffer& getOGlBufferRef() const; - cuda::HostMem& getHostMemRef() const; - void create(Size sz, int type, int i=-1, bool allowTransposed=false, int fixedDepthMask=0) const; - void create(int rows, int cols, int type, int i=-1, bool allowTransposed=false, int fixedDepthMask=0) const; - void create(int dims, const int* size, int type, int i=-1, bool allowTransposed=false, int fixedDepthMask=0) const; - void createSameSize(const _InputArray& arr, int mtype) const; - void release() const; - void clear() const; - void setTo(const _InputArray& value, const _InputArray & mask = _InputArray()) const; - - void assign(const UMat& u) const; - void assign(const Mat& m) const; - - void assign(const std::vector& v) const; - void assign(const std::vector& v) const; -}; - - -class CV_EXPORTS _InputOutputArray : public _OutputArray -{ -public: - _InputOutputArray(); - _InputOutputArray(int _flags, void* _obj); - _InputOutputArray(Mat& m); - _InputOutputArray(std::vector& vec); - _InputOutputArray(cuda::GpuMat& d_mat); - _InputOutputArray(ogl::Buffer& buf); - _InputOutputArray(cuda::HostMem& cuda_mem); - template _InputOutputArray(cudev::GpuMat_<_Tp>& m); - template _InputOutputArray(std::vector<_Tp>& vec); - _InputOutputArray(std::vector& vec); - template _InputOutputArray(std::vector >& vec); - template _InputOutputArray(std::vector >& vec); - template _InputOutputArray(Mat_<_Tp>& m); - template _InputOutputArray(_Tp* vec, int n); - template _InputOutputArray(Matx<_Tp, m, n>& matx); - _InputOutputArray(UMat& m); - _InputOutputArray(std::vector& vec); - - _InputOutputArray(const Mat& m); - _InputOutputArray(const std::vector& vec); - _InputOutputArray(const cuda::GpuMat& d_mat); - _InputOutputArray(const std::vector& d_mat); - _InputOutputArray(const ogl::Buffer& buf); - _InputOutputArray(const cuda::HostMem& cuda_mem); - template _InputOutputArray(const cudev::GpuMat_<_Tp>& m); - template _InputOutputArray(const std::vector<_Tp>& vec); - template _InputOutputArray(const std::vector >& vec); - template _InputOutputArray(const std::vector >& vec); - template _InputOutputArray(const Mat_<_Tp>& m); - template _InputOutputArray(const _Tp* vec, int n); - template _InputOutputArray(const Matx<_Tp, m, n>& matx); - _InputOutputArray(const UMat& m); - _InputOutputArray(const std::vector& vec); - -#ifdef CV_CXX_STD_ARRAY - template _InputOutputArray(std::array<_Tp, _Nm>& arr); - template _InputOutputArray(const std::array<_Tp, _Nm>& arr); - template _InputOutputArray(std::array& arr); - template _InputOutputArray(const std::array& arr); -#endif - -}; - -CV__DEBUG_NS_END - -typedef const _InputArray& InputArray; -typedef InputArray InputArrayOfArrays; -typedef const _OutputArray& OutputArray; -typedef OutputArray OutputArrayOfArrays; -typedef const _InputOutputArray& InputOutputArray; -typedef InputOutputArray InputOutputArrayOfArrays; - -CV_EXPORTS InputOutputArray noArray(); - -/////////////////////////////////// MatAllocator ////////////////////////////////////// - -//! Usage flags for allocator -enum UMatUsageFlags -{ - USAGE_DEFAULT = 0, - - // buffer allocation policy is platform and usage specific - USAGE_ALLOCATE_HOST_MEMORY = 1 << 0, - USAGE_ALLOCATE_DEVICE_MEMORY = 1 << 1, - USAGE_ALLOCATE_SHARED_MEMORY = 1 << 2, // It is not equal to: USAGE_ALLOCATE_HOST_MEMORY | USAGE_ALLOCATE_DEVICE_MEMORY - - __UMAT_USAGE_FLAGS_32BIT = 0x7fffffff // Binary compatibility hint -}; - -struct CV_EXPORTS UMatData; - -/** @brief Custom array allocator -*/ -class CV_EXPORTS MatAllocator -{ -public: - MatAllocator() {} - virtual ~MatAllocator() {} - - // let's comment it off for now to detect and fix all the uses of allocator - //virtual void allocate(int dims, const int* sizes, int type, int*& refcount, - // uchar*& datastart, uchar*& data, size_t* step) = 0; - //virtual void deallocate(int* refcount, uchar* datastart, uchar* data) = 0; - virtual UMatData* allocate(int dims, const int* sizes, int type, - void* data, size_t* step, int flags, UMatUsageFlags usageFlags) const = 0; - virtual bool allocate(UMatData* data, int accessflags, UMatUsageFlags usageFlags) const = 0; - virtual void deallocate(UMatData* data) const = 0; - virtual void map(UMatData* data, int accessflags) const; - virtual void unmap(UMatData* data) const; - virtual void download(UMatData* data, void* dst, int dims, const size_t sz[], - const size_t srcofs[], const size_t srcstep[], - const size_t dststep[]) const; - virtual void upload(UMatData* data, const void* src, int dims, const size_t sz[], - const size_t dstofs[], const size_t dststep[], - const size_t srcstep[]) const; - virtual void copy(UMatData* srcdata, UMatData* dstdata, int dims, const size_t sz[], - const size_t srcofs[], const size_t srcstep[], - const size_t dstofs[], const size_t dststep[], bool sync) const; - - // default implementation returns DummyBufferPoolController - virtual BufferPoolController* getBufferPoolController(const char* id = NULL) const; -}; - - -//////////////////////////////// MatCommaInitializer ////////////////////////////////// - -/** @brief Comma-separated Matrix Initializer - - The class instances are usually not created explicitly. - Instead, they are created on "matrix << firstValue" operator. - - The sample below initializes 2x2 rotation matrix: - - \code - double angle = 30, a = cos(angle*CV_PI/180), b = sin(angle*CV_PI/180); - Mat R = (Mat_(2,2) << a, -b, b, a); - \endcode -*/ -template class MatCommaInitializer_ -{ -public: - //! the constructor, created by "matrix << firstValue" operator, where matrix is cv::Mat - MatCommaInitializer_(Mat_<_Tp>* _m); - //! the operator that takes the next value and put it to the matrix - template MatCommaInitializer_<_Tp>& operator , (T2 v); - //! another form of conversion operator - operator Mat_<_Tp>() const; -protected: - MatIterator_<_Tp> it; -}; - - -/////////////////////////////////////// Mat /////////////////////////////////////////// - -// note that umatdata might be allocated together -// with the matrix data, not as a separate object. -// therefore, it does not have constructor or destructor; -// it should be explicitly initialized using init(). -struct CV_EXPORTS UMatData -{ - enum { COPY_ON_MAP=1, HOST_COPY_OBSOLETE=2, - DEVICE_COPY_OBSOLETE=4, TEMP_UMAT=8, TEMP_COPIED_UMAT=24, - USER_ALLOCATED=32, DEVICE_MEM_MAPPED=64, - ASYNC_CLEANUP=128 - }; - UMatData(const MatAllocator* allocator); - ~UMatData(); - - // provide atomic access to the structure - void lock(); - void unlock(); - - bool hostCopyObsolete() const; - bool deviceCopyObsolete() const; - bool deviceMemMapped() const; - bool copyOnMap() const; - bool tempUMat() const; - bool tempCopiedUMat() const; - void markHostCopyObsolete(bool flag); - void markDeviceCopyObsolete(bool flag); - void markDeviceMemMapped(bool flag); - - const MatAllocator* prevAllocator; - const MatAllocator* currAllocator; - int urefcount; - int refcount; - uchar* data; - uchar* origdata; - size_t size; - - int flags; - void* handle; - void* userdata; - int allocatorFlags_; - int mapcount; - UMatData* originalUMatData; -}; - - -struct CV_EXPORTS UMatDataAutoLock -{ - explicit UMatDataAutoLock(UMatData* u); - ~UMatDataAutoLock(); - UMatData* u; -}; - - -struct CV_EXPORTS MatSize -{ - explicit MatSize(int* _p); - Size operator()() const; - const int& operator[](int i) const; - int& operator[](int i); - operator const int*() const; - bool operator == (const MatSize& sz) const; - bool operator != (const MatSize& sz) const; - - int* p; -}; - -struct CV_EXPORTS MatStep -{ - MatStep(); - explicit MatStep(size_t s); - const size_t& operator[](int i) const; - size_t& operator[](int i); - operator size_t() const; - MatStep& operator = (size_t s); - - size_t* p; - size_t buf[2]; -protected: - MatStep& operator = (const MatStep&); -}; - -/** @example cout_mat.cpp -An example demonstrating the serial out capabilities of cv::Mat -*/ - - /** @brief n-dimensional dense array class \anchor CVMat_Details - -The class Mat represents an n-dimensional dense numerical single-channel or multi-channel array. It -can be used to store real or complex-valued vectors and matrices, grayscale or color images, voxel -volumes, vector fields, point clouds, tensors, histograms (though, very high-dimensional histograms -may be better stored in a SparseMat ). The data layout of the array `M` is defined by the array -`M.step[]`, so that the address of element \f$(i_0,...,i_{M.dims-1})\f$, where \f$0\leq i_k= M.step[i+1]` (in fact, `M.step[i] >= M.step[i+1]*M.size[i+1]` ). This means -that 2-dimensional matrices are stored row-by-row, 3-dimensional matrices are stored plane-by-plane, -and so on. M.step[M.dims-1] is minimal and always equal to the element size M.elemSize() . - -So, the data layout in Mat is fully compatible with CvMat, IplImage, and CvMatND types from OpenCV -1.x. It is also compatible with the majority of dense array types from the standard toolkits and -SDKs, such as Numpy (ndarray), Win32 (independent device bitmaps), and others, that is, with any -array that uses *steps* (or *strides*) to compute the position of a pixel. Due to this -compatibility, it is possible to make a Mat header for user-allocated data and process it in-place -using OpenCV functions. - -There are many different ways to create a Mat object. The most popular options are listed below: - -- Use the create(nrows, ncols, type) method or the similar Mat(nrows, ncols, type[, fillValue]) -constructor. A new array of the specified size and type is allocated. type has the same meaning as -in the cvCreateMat method. For example, CV_8UC1 means a 8-bit single-channel array, CV_32FC2 -means a 2-channel (complex) floating-point array, and so on. -@code - // make a 7x7 complex matrix filled with 1+3j. - Mat M(7,7,CV_32FC2,Scalar(1,3)); - // and now turn M to a 100x60 15-channel 8-bit matrix. - // The old content will be deallocated - M.create(100,60,CV_8UC(15)); -@endcode -As noted in the introduction to this chapter, create() allocates only a new array when the shape -or type of the current array are different from the specified ones. - -- Create a multi-dimensional array: -@code - // create a 100x100x100 8-bit array - int sz[] = {100, 100, 100}; - Mat bigCube(3, sz, CV_8U, Scalar::all(0)); -@endcode -It passes the number of dimensions =1 to the Mat constructor but the created array will be -2-dimensional with the number of columns set to 1. So, Mat::dims is always \>= 2 (can also be 0 -when the array is empty). - -- Use a copy constructor or assignment operator where there can be an array or expression on the -right side (see below). As noted in the introduction, the array assignment is an O(1) operation -because it only copies the header and increases the reference counter. The Mat::clone() method can -be used to get a full (deep) copy of the array when you need it. - -- Construct a header for a part of another array. It can be a single row, single column, several -rows, several columns, rectangular region in the array (called a *minor* in algebra) or a -diagonal. Such operations are also O(1) because the new header references the same data. You can -actually modify a part of the array using this feature, for example: -@code - // add the 5-th row, multiplied by 3 to the 3rd row - M.row(3) = M.row(3) + M.row(5)*3; - // now copy the 7-th column to the 1-st column - // M.col(1) = M.col(7); // this will not work - Mat M1 = M.col(1); - M.col(7).copyTo(M1); - // create a new 320x240 image - Mat img(Size(320,240),CV_8UC3); - // select a ROI - Mat roi(img, Rect(10,10,100,100)); - // fill the ROI with (0,255,0) (which is green in RGB space); - // the original 320x240 image will be modified - roi = Scalar(0,255,0); -@endcode -Due to the additional datastart and dataend members, it is possible to compute a relative -sub-array position in the main *container* array using locateROI(): -@code - Mat A = Mat::eye(10, 10, CV_32S); - // extracts A columns, 1 (inclusive) to 3 (exclusive). - Mat B = A(Range::all(), Range(1, 3)); - // extracts B rows, 5 (inclusive) to 9 (exclusive). - // that is, C \~ A(Range(5, 9), Range(1, 3)) - Mat C = B(Range(5, 9), Range::all()); - Size size; Point ofs; - C.locateROI(size, ofs); - // size will be (width=10,height=10) and the ofs will be (x=1, y=5) -@endcode -As in case of whole matrices, if you need a deep copy, use the `clone()` method of the extracted -sub-matrices. - -- Make a header for user-allocated data. It can be useful to do the following: - -# Process "foreign" data using OpenCV (for example, when you implement a DirectShow\* filter or - a processing module for gstreamer, and so on). For example: - @code - void process_video_frame(const unsigned char* pixels, - int width, int height, int step) - { - Mat img(height, width, CV_8UC3, pixels, step); - GaussianBlur(img, img, Size(7,7), 1.5, 1.5); - } - @endcode - -# Quickly initialize small matrices and/or get a super-fast element access. - @code - double m[3][3] = {{a, b, c}, {d, e, f}, {g, h, i}}; - Mat M = Mat(3, 3, CV_64F, m).inv(); - @endcode - . - Partial yet very common cases of this *user-allocated data* case are conversions from CvMat and - IplImage to Mat. For this purpose, there is function cv::cvarrToMat taking pointers to CvMat or - IplImage and the optional flag indicating whether to copy the data or not. - @snippet samples/cpp/image.cpp iplimage - -- Use MATLAB-style array initializers, zeros(), ones(), eye(), for example: -@code - // create a double-precision identity matrix and add it to M. - M += Mat::eye(M.rows, M.cols, CV_64F); -@endcode - -- Use a comma-separated initializer: -@code - // create a 3x3 double-precision identity matrix - Mat M = (Mat_(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1); -@endcode -With this approach, you first call a constructor of the Mat class with the proper parameters, and -then you just put `<< operator` followed by comma-separated values that can be constants, -variables, expressions, and so on. Also, note the extra parentheses required to avoid compilation -errors. - -Once the array is created, it is automatically managed via a reference-counting mechanism. If the -array header is built on top of user-allocated data, you should handle the data by yourself. The -array data is deallocated when no one points to it. If you want to release the data pointed by a -array header before the array destructor is called, use Mat::release(). - -The next important thing to learn about the array class is element access. This manual already -described how to compute an address of each array element. Normally, you are not required to use the -formula directly in the code. If you know the array element type (which can be retrieved using the -method Mat::type() ), you can access the element \f$M_{ij}\f$ of a 2-dimensional array as: -@code - M.at(i,j) += 1.f; -@endcode -assuming that `M` is a double-precision floating-point array. There are several variants of the method -at for a different number of dimensions. - -If you need to process a whole row of a 2D array, the most efficient way is to get the pointer to -the row first, and then just use the plain C operator [] : -@code - // compute sum of positive matrix elements - // (assuming that M is a double-precision matrix) - double sum=0; - for(int i = 0; i < M.rows; i++) - { - const double* Mi = M.ptr(i); - for(int j = 0; j < M.cols; j++) - sum += std::max(Mi[j], 0.); - } -@endcode -Some operations, like the one above, do not actually depend on the array shape. They just process -elements of an array one by one (or elements from multiple arrays that have the same coordinates, -for example, array addition). Such operations are called *element-wise*. It makes sense to check -whether all the input/output arrays are continuous, namely, have no gaps at the end of each row. If -yes, process them as a long single row: -@code - // compute the sum of positive matrix elements, optimized variant - double sum=0; - int cols = M.cols, rows = M.rows; - if(M.isContinuous()) - { - cols *= rows; - rows = 1; - } - for(int i = 0; i < rows; i++) - { - const double* Mi = M.ptr(i); - for(int j = 0; j < cols; j++) - sum += std::max(Mi[j], 0.); - } -@endcode -In case of the continuous matrix, the outer loop body is executed just once. So, the overhead is -smaller, which is especially noticeable in case of small matrices. - -Finally, there are STL-style iterators that are smart enough to skip gaps between successive rows: -@code - // compute sum of positive matrix elements, iterator-based variant - double sum=0; - MatConstIterator_ it = M.begin(), it_end = M.end(); - for(; it != it_end; ++it) - sum += std::max(*it, 0.); -@endcode -The matrix iterators are random-access iterators, so they can be passed to any STL algorithm, -including std::sort(). - -@note Matrix Expressions and arithmetic see MatExpr -*/ -class CV_EXPORTS Mat -{ -public: - /** - These are various constructors that form a matrix. As noted in the AutomaticAllocation, often - the default constructor is enough, and the proper matrix will be allocated by an OpenCV function. - The constructed matrix can further be assigned to another matrix or matrix expression or can be - allocated with Mat::create . In the former case, the old content is de-referenced. - */ - Mat(); - - /** @overload - @param rows Number of rows in a 2D array. - @param cols Number of columns in a 2D array. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - */ - Mat(int rows, int cols, int type); - - /** @overload - @param size 2D array size: Size(cols, rows) . In the Size() constructor, the number of rows and the - number of columns go in the reverse order. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - */ - Mat(Size size, int type); - - /** @overload - @param rows Number of rows in a 2D array. - @param cols Number of columns in a 2D array. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param s An optional value to initialize each matrix element with. To set all the matrix elements to - the particular value after the construction, use the assignment operator - Mat::operator=(const Scalar& value) . - */ - Mat(int rows, int cols, int type, const Scalar& s); - - /** @overload - @param size 2D array size: Size(cols, rows) . In the Size() constructor, the number of rows and the - number of columns go in the reverse order. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param s An optional value to initialize each matrix element with. To set all the matrix elements to - the particular value after the construction, use the assignment operator - Mat::operator=(const Scalar& value) . - */ - Mat(Size size, int type, const Scalar& s); - - /** @overload - @param ndims Array dimensionality. - @param sizes Array of integers specifying an n-dimensional array shape. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - */ - Mat(int ndims, const int* sizes, int type); - - /** @overload - @param sizes Array of integers specifying an n-dimensional array shape. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - */ - Mat(const std::vector& sizes, int type); - - /** @overload - @param ndims Array dimensionality. - @param sizes Array of integers specifying an n-dimensional array shape. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param s An optional value to initialize each matrix element with. To set all the matrix elements to - the particular value after the construction, use the assignment operator - Mat::operator=(const Scalar& value) . - */ - Mat(int ndims, const int* sizes, int type, const Scalar& s); - - /** @overload - @param sizes Array of integers specifying an n-dimensional array shape. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param s An optional value to initialize each matrix element with. To set all the matrix elements to - the particular value after the construction, use the assignment operator - Mat::operator=(const Scalar& value) . - */ - Mat(const std::vector& sizes, int type, const Scalar& s); - - - /** @overload - @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied - by these constructors. Instead, the header pointing to m data or its sub-array is constructed and - associated with it. The reference counter, if any, is incremented. So, when you modify the matrix - formed using such a constructor, you also modify the corresponding elements of m . If you want to - have an independent copy of the sub-array, use Mat::clone() . - */ - Mat(const Mat& m); - - /** @overload - @param rows Number of rows in a 2D array. - @param cols Number of columns in a 2D array. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param data Pointer to the user data. Matrix constructors that take data and step parameters do not - allocate matrix data. Instead, they just initialize the matrix header that points to the specified - data, which means that no data is copied. This operation is very efficient and can be used to - process external data using OpenCV functions. The external data is not automatically deallocated, so - you should take care of it. - @param step Number of bytes each matrix row occupies. The value should include the padding bytes at - the end of each row, if any. If the parameter is missing (set to AUTO_STEP ), no padding is assumed - and the actual step is calculated as cols*elemSize(). See Mat::elemSize. - */ - Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP); - - /** @overload - @param size 2D array size: Size(cols, rows) . In the Size() constructor, the number of rows and the - number of columns go in the reverse order. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param data Pointer to the user data. Matrix constructors that take data and step parameters do not - allocate matrix data. Instead, they just initialize the matrix header that points to the specified - data, which means that no data is copied. This operation is very efficient and can be used to - process external data using OpenCV functions. The external data is not automatically deallocated, so - you should take care of it. - @param step Number of bytes each matrix row occupies. The value should include the padding bytes at - the end of each row, if any. If the parameter is missing (set to AUTO_STEP ), no padding is assumed - and the actual step is calculated as cols*elemSize(). See Mat::elemSize. - */ - Mat(Size size, int type, void* data, size_t step=AUTO_STEP); - - /** @overload - @param ndims Array dimensionality. - @param sizes Array of integers specifying an n-dimensional array shape. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param data Pointer to the user data. Matrix constructors that take data and step parameters do not - allocate matrix data. Instead, they just initialize the matrix header that points to the specified - data, which means that no data is copied. This operation is very efficient and can be used to - process external data using OpenCV functions. The external data is not automatically deallocated, so - you should take care of it. - @param steps Array of ndims-1 steps in case of a multi-dimensional array (the last step is always - set to the element size). If not specified, the matrix is assumed to be continuous. - */ - Mat(int ndims, const int* sizes, int type, void* data, const size_t* steps=0); - - /** @overload - @param sizes Array of integers specifying an n-dimensional array shape. - @param type Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or - CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices. - @param data Pointer to the user data. Matrix constructors that take data and step parameters do not - allocate matrix data. Instead, they just initialize the matrix header that points to the specified - data, which means that no data is copied. This operation is very efficient and can be used to - process external data using OpenCV functions. The external data is not automatically deallocated, so - you should take care of it. - @param steps Array of ndims-1 steps in case of a multi-dimensional array (the last step is always - set to the element size). If not specified, the matrix is assumed to be continuous. - */ - Mat(const std::vector& sizes, int type, void* data, const size_t* steps=0); - - /** @overload - @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied - by these constructors. Instead, the header pointing to m data or its sub-array is constructed and - associated with it. The reference counter, if any, is incremented. So, when you modify the matrix - formed using such a constructor, you also modify the corresponding elements of m . If you want to - have an independent copy of the sub-array, use Mat::clone() . - @param rowRange Range of the m rows to take. As usual, the range start is inclusive and the range - end is exclusive. Use Range::all() to take all the rows. - @param colRange Range of the m columns to take. Use Range::all() to take all the columns. - */ - Mat(const Mat& m, const Range& rowRange, const Range& colRange=Range::all()); - - /** @overload - @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied - by these constructors. Instead, the header pointing to m data or its sub-array is constructed and - associated with it. The reference counter, if any, is incremented. So, when you modify the matrix - formed using such a constructor, you also modify the corresponding elements of m . If you want to - have an independent copy of the sub-array, use Mat::clone() . - @param roi Region of interest. - */ - Mat(const Mat& m, const Rect& roi); - - /** @overload - @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied - by these constructors. Instead, the header pointing to m data or its sub-array is constructed and - associated with it. The reference counter, if any, is incremented. So, when you modify the matrix - formed using such a constructor, you also modify the corresponding elements of m . If you want to - have an independent copy of the sub-array, use Mat::clone() . - @param ranges Array of selected ranges of m along each dimensionality. - */ - Mat(const Mat& m, const Range* ranges); - - /** @overload - @param m Array that (as a whole or partly) is assigned to the constructed matrix. No data is copied - by these constructors. Instead, the header pointing to m data or its sub-array is constructed and - associated with it. The reference counter, if any, is incremented. So, when you modify the matrix - formed using such a constructor, you also modify the corresponding elements of m . If you want to - have an independent copy of the sub-array, use Mat::clone() . - @param ranges Array of selected ranges of m along each dimensionality. - */ - Mat(const Mat& m, const std::vector& ranges); - - /** @overload - @param vec STL vector whose elements form the matrix. The matrix has a single column and the number - of rows equal to the number of vector elements. Type of the matrix matches the type of vector - elements. The constructor can handle arbitrary types, for which there is a properly declared - DataType . This means that the vector elements must be primitive numbers or uni-type numerical - tuples of numbers. Mixed-type structures are not supported. The corresponding constructor is - explicit. Since STL vectors are not automatically converted to Mat instances, you should write - Mat(vec) explicitly. Unless you copy the data into the matrix ( copyData=true ), no new elements - will be added to the vector because it can potentially yield vector data reallocation, and, thus, - the matrix data pointer will be invalid. - @param copyData Flag to specify whether the underlying data of the STL vector should be copied - to (true) or shared with (false) the newly constructed matrix. When the data is copied, the - allocated buffer is managed using Mat reference counting mechanism. While the data is shared, - the reference counter is NULL, and you should not deallocate the data until the matrix is not - destructed. - */ - template explicit Mat(const std::vector<_Tp>& vec, bool copyData=false); - -#ifdef CV_CXX11 - /** @overload - */ - template::value>::type> - explicit Mat(const std::initializer_list<_Tp> list); -#endif - -#ifdef CV_CXX_STD_ARRAY - /** @overload - */ - template explicit Mat(const std::array<_Tp, _Nm>& arr, bool copyData=false); -#endif - - /** @overload - */ - template explicit Mat(const Vec<_Tp, n>& vec, bool copyData=true); - - /** @overload - */ - template explicit Mat(const Matx<_Tp, m, n>& mtx, bool copyData=true); - - /** @overload - */ - template explicit Mat(const Point_<_Tp>& pt, bool copyData=true); - - /** @overload - */ - template explicit Mat(const Point3_<_Tp>& pt, bool copyData=true); - - /** @overload - */ - template explicit Mat(const MatCommaInitializer_<_Tp>& commaInitializer); - - //! download data from GpuMat - explicit Mat(const cuda::GpuMat& m); - - //! destructor - calls release() - ~Mat(); - - /** @brief assignment operators - - These are available assignment operators. Since they all are very different, make sure to read the - operator parameters description. - @param m Assigned, right-hand-side matrix. Matrix assignment is an O(1) operation. This means that - no data is copied but the data is shared and the reference counter, if any, is incremented. Before - assigning new data, the old data is de-referenced via Mat::release . - */ - Mat& operator = (const Mat& m); - - /** @overload - @param expr Assigned matrix expression object. As opposite to the first form of the assignment - operation, the second form can reuse already allocated matrix if it has the right size and type to - fit the matrix expression result. It is automatically handled by the real function that the matrix - expressions is expanded to. For example, C=A+B is expanded to add(A, B, C), and add takes care of - automatic C reallocation. - */ - Mat& operator = (const MatExpr& expr); - - //! retrieve UMat from Mat - UMat getUMat(int accessFlags, UMatUsageFlags usageFlags = USAGE_DEFAULT) const; - - /** @brief Creates a matrix header for the specified matrix row. - - The method makes a new header for the specified matrix row and returns it. This is an O(1) - operation, regardless of the matrix size. The underlying data of the new matrix is shared with the - original matrix. Here is the example of one of the classical basic matrix processing operations, - axpy, used by LU and many other algorithms: - @code - inline void matrix_axpy(Mat& A, int i, int j, double alpha) - { - A.row(i) += A.row(j)*alpha; - } - @endcode - @note In the current implementation, the following code does not work as expected: - @code - Mat A; - ... - A.row(i) = A.row(j); // will not work - @endcode - This happens because A.row(i) forms a temporary header that is further assigned to another header. - Remember that each of these operations is O(1), that is, no data is copied. Thus, the above - assignment is not true if you may have expected the j-th row to be copied to the i-th row. To - achieve that, you should either turn this simple assignment into an expression or use the - Mat::copyTo method: - @code - Mat A; - ... - // works, but looks a bit obscure. - A.row(i) = A.row(j) + 0; - // this is a bit longer, but the recommended method. - A.row(j).copyTo(A.row(i)); - @endcode - @param y A 0-based row index. - */ - Mat row(int y) const; - - /** @brief Creates a matrix header for the specified matrix column. - - The method makes a new header for the specified matrix column and returns it. This is an O(1) - operation, regardless of the matrix size. The underlying data of the new matrix is shared with the - original matrix. See also the Mat::row description. - @param x A 0-based column index. - */ - Mat col(int x) const; - - /** @brief Creates a matrix header for the specified row span. - - The method makes a new header for the specified row span of the matrix. Similarly to Mat::row and - Mat::col , this is an O(1) operation. - @param startrow An inclusive 0-based start index of the row span. - @param endrow An exclusive 0-based ending index of the row span. - */ - Mat rowRange(int startrow, int endrow) const; - - /** @overload - @param r Range structure containing both the start and the end indices. - */ - Mat rowRange(const Range& r) const; - - /** @brief Creates a matrix header for the specified column span. - - The method makes a new header for the specified column span of the matrix. Similarly to Mat::row and - Mat::col , this is an O(1) operation. - @param startcol An inclusive 0-based start index of the column span. - @param endcol An exclusive 0-based ending index of the column span. - */ - Mat colRange(int startcol, int endcol) const; - - /** @overload - @param r Range structure containing both the start and the end indices. - */ - Mat colRange(const Range& r) const; - - /** @brief Extracts a diagonal from a matrix - - The method makes a new header for the specified matrix diagonal. The new matrix is represented as a - single-column matrix. Similarly to Mat::row and Mat::col, this is an O(1) operation. - @param d index of the diagonal, with the following values: - - `d=0` is the main diagonal. - - `d<0` is a diagonal from the lower half. For example, d=-1 means the diagonal is set - immediately below the main one. - - `d>0` is a diagonal from the upper half. For example, d=1 means the diagonal is set - immediately above the main one. - For example: - @code - Mat m = (Mat_(3,3) << - 1,2,3, - 4,5,6, - 7,8,9); - Mat d0 = m.diag(0); - Mat d1 = m.diag(1); - Mat d_1 = m.diag(-1); - @endcode - The resulting matrices are - @code - d0 = - [1; - 5; - 9] - d1 = - [2; - 6] - d_1 = - [4; - 8] - @endcode - */ - Mat diag(int d=0) const; - - /** @brief creates a diagonal matrix - - The method creates a square diagonal matrix from specified main diagonal. - @param d One-dimensional matrix that represents the main diagonal. - */ - static Mat diag(const Mat& d); - - /** @brief Creates a full copy of the array and the underlying data. - - The method creates a full copy of the array. The original step[] is not taken into account. So, the - array copy is a continuous array occupying total()*elemSize() bytes. - */ - Mat clone() const; - - /** @brief Copies the matrix to another one. - - The method copies the matrix data to another matrix. Before copying the data, the method invokes : - @code - m.create(this->size(), this->type()); - @endcode - so that the destination matrix is reallocated if needed. While m.copyTo(m); works flawlessly, the - function does not handle the case of a partial overlap between the source and the destination - matrices. - - When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, - the newly allocated matrix is initialized with all zeros before copying the data. - @param m Destination matrix. If it does not have a proper size or type before the operation, it is - reallocated. - */ - void copyTo( OutputArray m ) const; - - /** @overload - @param m Destination matrix. If it does not have a proper size or type before the operation, it is - reallocated. - @param mask Operation mask of the same size as \*this. Its non-zero elements indicate which matrix - elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels. - */ - void copyTo( OutputArray m, InputArray mask ) const; - - /** @brief Converts an array to another data type with optional scaling. - - The method converts source pixel values to the target data type. saturate_cast\<\> is applied at - the end to avoid possible overflows: - - \f[m(x,y) = saturate \_ cast( \alpha (*this)(x,y) + \beta )\f] - @param m output matrix; if it does not have a proper size or type before the operation, it is - reallocated. - @param rtype desired output matrix type or, rather, the depth since the number of channels are the - same as the input has; if rtype is negative, the output matrix will have the same type as the input. - @param alpha optional scale factor. - @param beta optional delta added to the scaled values. - */ - void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const; - - /** @brief Provides a functional form of convertTo. - - This is an internally used method called by the @ref MatrixExpressions engine. - @param m Destination array. - @param type Desired destination array depth (or -1 if it should be the same as the source type). - */ - void assignTo( Mat& m, int type=-1 ) const; - - /** @brief Sets all or some of the array elements to the specified value. - @param s Assigned scalar converted to the actual array type. - */ - Mat& operator = (const Scalar& s); - - /** @brief Sets all or some of the array elements to the specified value. - - This is an advanced variant of the Mat::operator=(const Scalar& s) operator. - @param value Assigned scalar converted to the actual array type. - @param mask Operation mask of the same size as \*this. Its non-zero elements indicate which matrix - elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels - */ - Mat& setTo(InputArray value, InputArray mask=noArray()); - - /** @brief Changes the shape and/or the number of channels of a 2D matrix without copying the data. - - The method makes a new matrix header for \*this elements. The new matrix may have a different size - and/or different number of channels. Any combination is possible if: - - No extra elements are included into the new matrix and no elements are excluded. Consequently, - the product rows\*cols\*channels() must stay the same after the transformation. - - No data is copied. That is, this is an O(1) operation. Consequently, if you change the number of - rows, or the operation changes the indices of elements row in some other way, the matrix must be - continuous. See Mat::isContinuous . - - For example, if there is a set of 3D points stored as an STL vector, and you want to represent the - points as a 3xN matrix, do the following: - @code - std::vector vec; - ... - Mat pointMat = Mat(vec). // convert vector to Mat, O(1) operation - reshape(1). // make Nx3 1-channel matrix out of Nx1 3-channel. - // Also, an O(1) operation - t(); // finally, transpose the Nx3 matrix. - // This involves copying all the elements - @endcode - @param cn New number of channels. If the parameter is 0, the number of channels remains the same. - @param rows New number of rows. If the parameter is 0, the number of rows remains the same. - */ - Mat reshape(int cn, int rows=0) const; - - /** @overload */ - Mat reshape(int cn, int newndims, const int* newsz) const; - - /** @overload */ - Mat reshape(int cn, const std::vector& newshape) const; - - /** @brief Transposes a matrix. - - The method performs matrix transposition by means of matrix expressions. It does not perform the - actual transposition but returns a temporary matrix transposition object that can be further used as - a part of more complex matrix expressions or can be assigned to a matrix: - @code - Mat A1 = A + Mat::eye(A.size(), A.type())*lambda; - Mat C = A1.t()*A1; // compute (A + lambda*I)^t * (A + lamda*I) - @endcode - */ - MatExpr t() const; - - /** @brief Inverses a matrix. - - The method performs a matrix inversion by means of matrix expressions. This means that a temporary - matrix inversion object is returned by the method and can be used further as a part of more complex - matrix expressions or can be assigned to a matrix. - @param method Matrix inversion method. One of cv::DecompTypes - */ - MatExpr inv(int method=DECOMP_LU) const; - - /** @brief Performs an element-wise multiplication or division of the two matrices. - - The method returns a temporary object encoding per-element array multiplication, with optional - scale. Note that this is not a matrix multiplication that corresponds to a simpler "\*" operator. - - Example: - @code - Mat C = A.mul(5/B); // equivalent to divide(A, B, C, 5) - @endcode - @param m Another array of the same type and the same size as \*this, or a matrix expression. - @param scale Optional scale factor. - */ - MatExpr mul(InputArray m, double scale=1) const; - - /** @brief Computes a cross-product of two 3-element vectors. - - The method computes a cross-product of two 3-element vectors. The vectors must be 3-element - floating-point vectors of the same shape and size. The result is another 3-element vector of the - same shape and type as operands. - @param m Another cross-product operand. - */ - Mat cross(InputArray m) const; - - /** @brief Computes a dot-product of two vectors. - - The method computes a dot-product of two matrices. If the matrices are not single-column or - single-row vectors, the top-to-bottom left-to-right scan ordering is used to treat them as 1D - vectors. The vectors must have the same size and type. If the matrices have more than one channel, - the dot products from all the channels are summed together. - @param m another dot-product operand. - */ - double dot(InputArray m) const; - - /** @brief Returns a zero array of the specified size and type. - - The method returns a Matlab-style zero array initializer. It can be used to quickly form a constant - array as a function parameter, part of a matrix expression, or as a matrix initializer. : - @code - Mat A; - A = Mat::zeros(3, 3, CV_32F); - @endcode - In the example above, a new matrix is allocated only if A is not a 3x3 floating-point matrix. - Otherwise, the existing matrix A is filled with zeros. - @param rows Number of rows. - @param cols Number of columns. - @param type Created matrix type. - */ - static MatExpr zeros(int rows, int cols, int type); - - /** @overload - @param size Alternative to the matrix size specification Size(cols, rows) . - @param type Created matrix type. - */ - static MatExpr zeros(Size size, int type); - - /** @overload - @param ndims Array dimensionality. - @param sz Array of integers specifying the array shape. - @param type Created matrix type. - */ - static MatExpr zeros(int ndims, const int* sz, int type); - - /** @brief Returns an array of all 1's of the specified size and type. - - The method returns a Matlab-style 1's array initializer, similarly to Mat::zeros. Note that using - this method you can initialize an array with an arbitrary value, using the following Matlab idiom: - @code - Mat A = Mat::ones(100, 100, CV_8U)*3; // make 100x100 matrix filled with 3. - @endcode - The above operation does not form a 100x100 matrix of 1's and then multiply it by 3. Instead, it - just remembers the scale factor (3 in this case) and use it when actually invoking the matrix - initializer. - @param rows Number of rows. - @param cols Number of columns. - @param type Created matrix type. - */ - static MatExpr ones(int rows, int cols, int type); - - /** @overload - @param size Alternative to the matrix size specification Size(cols, rows) . - @param type Created matrix type. - */ - static MatExpr ones(Size size, int type); - - /** @overload - @param ndims Array dimensionality. - @param sz Array of integers specifying the array shape. - @param type Created matrix type. - */ - static MatExpr ones(int ndims, const int* sz, int type); - - /** @brief Returns an identity matrix of the specified size and type. - - The method returns a Matlab-style identity matrix initializer, similarly to Mat::zeros. Similarly to - Mat::ones, you can use a scale operation to create a scaled identity matrix efficiently: - @code - // make a 4x4 diagonal matrix with 0.1's on the diagonal. - Mat A = Mat::eye(4, 4, CV_32F)*0.1; - @endcode - @param rows Number of rows. - @param cols Number of columns. - @param type Created matrix type. - */ - static MatExpr eye(int rows, int cols, int type); - - /** @overload - @param size Alternative matrix size specification as Size(cols, rows) . - @param type Created matrix type. - */ - static MatExpr eye(Size size, int type); - - /** @brief Allocates new array data if needed. - - This is one of the key Mat methods. Most new-style OpenCV functions and methods that produce arrays - call this method for each output array. The method uses the following algorithm: - - -# If the current array shape and the type match the new ones, return immediately. Otherwise, - de-reference the previous data by calling Mat::release. - -# Initialize the new header. - -# Allocate the new data of total()\*elemSize() bytes. - -# Allocate the new, associated with the data, reference counter and set it to 1. - - Such a scheme makes the memory management robust and efficient at the same time and helps avoid - extra typing for you. This means that usually there is no need to explicitly allocate output arrays. - That is, instead of writing: - @code - Mat color; - ... - Mat gray(color.rows, color.cols, color.depth()); - cvtColor(color, gray, COLOR_BGR2GRAY); - @endcode - you can simply write: - @code - Mat color; - ... - Mat gray; - cvtColor(color, gray, COLOR_BGR2GRAY); - @endcode - because cvtColor, as well as the most of OpenCV functions, calls Mat::create() for the output array - internally. - @param rows New number of rows. - @param cols New number of columns. - @param type New matrix type. - */ - void create(int rows, int cols, int type); - - /** @overload - @param size Alternative new matrix size specification: Size(cols, rows) - @param type New matrix type. - */ - void create(Size size, int type); - - /** @overload - @param ndims New array dimensionality. - @param sizes Array of integers specifying a new array shape. - @param type New matrix type. - */ - void create(int ndims, const int* sizes, int type); - - /** @overload - @param sizes Array of integers specifying a new array shape. - @param type New matrix type. - */ - void create(const std::vector& sizes, int type); - - /** @brief Increments the reference counter. - - The method increments the reference counter associated with the matrix data. If the matrix header - points to an external data set (see Mat::Mat ), the reference counter is NULL, and the method has no - effect in this case. Normally, to avoid memory leaks, the method should not be called explicitly. It - is called implicitly by the matrix assignment operator. The reference counter increment is an atomic - operation on the platforms that support it. Thus, it is safe to operate on the same matrices - asynchronously in different threads. - */ - void addref(); - - /** @brief Decrements the reference counter and deallocates the matrix if needed. - - The method decrements the reference counter associated with the matrix data. When the reference - counter reaches 0, the matrix data is deallocated and the data and the reference counter pointers - are set to NULL's. If the matrix header points to an external data set (see Mat::Mat ), the - reference counter is NULL, and the method has no effect in this case. - - This method can be called manually to force the matrix data deallocation. But since this method is - automatically called in the destructor, or by any other method that changes the data pointer, it is - usually not needed. The reference counter decrement and check for 0 is an atomic operation on the - platforms that support it. Thus, it is safe to operate on the same matrices asynchronously in - different threads. - */ - void release(); - - //! internal use function, consider to use 'release' method instead; deallocates the matrix data - void deallocate(); - //! internal use function; properly re-allocates _size, _step arrays - void copySize(const Mat& m); - - /** @brief Reserves space for the certain number of rows. - - The method reserves space for sz rows. If the matrix already has enough space to store sz rows, - nothing happens. If the matrix is reallocated, the first Mat::rows rows are preserved. The method - emulates the corresponding method of the STL vector class. - @param sz Number of rows. - */ - void reserve(size_t sz); - - /** @brief Reserves space for the certain number of bytes. - - The method reserves space for sz bytes. If the matrix already has enough space to store sz bytes, - nothing happens. If matrix has to be reallocated its previous content could be lost. - @param sz Number of bytes. - */ - void reserveBuffer(size_t sz); - - /** @brief Changes the number of matrix rows. - - The methods change the number of matrix rows. If the matrix is reallocated, the first - min(Mat::rows, sz) rows are preserved. The methods emulate the corresponding methods of the STL - vector class. - @param sz New number of rows. - */ - void resize(size_t sz); - - /** @overload - @param sz New number of rows. - @param s Value assigned to the newly added elements. - */ - void resize(size_t sz, const Scalar& s); - - //! internal function - void push_back_(const void* elem); - - /** @brief Adds elements to the bottom of the matrix. - - The methods add one or more elements to the bottom of the matrix. They emulate the corresponding - method of the STL vector class. When elem is Mat , its type and the number of columns must be the - same as in the container matrix. - @param elem Added element(s). - */ - template void push_back(const _Tp& elem); - - /** @overload - @param elem Added element(s). - */ - template void push_back(const Mat_<_Tp>& elem); - - /** @overload - @param elem Added element(s). - */ - template void push_back(const std::vector<_Tp>& elem); - - /** @overload - @param m Added line(s). - */ - void push_back(const Mat& m); - - /** @brief Removes elements from the bottom of the matrix. - - The method removes one or more rows from the bottom of the matrix. - @param nelems Number of removed rows. If it is greater than the total number of rows, an exception - is thrown. - */ - void pop_back(size_t nelems=1); - - /** @brief Locates the matrix header within a parent matrix. - - After you extracted a submatrix from a matrix using Mat::row, Mat::col, Mat::rowRange, - Mat::colRange, and others, the resultant submatrix points just to the part of the original big - matrix. However, each submatrix contains information (represented by datastart and dataend - fields) that helps reconstruct the original matrix size and the position of the extracted - submatrix within the original matrix. The method locateROI does exactly that. - @param wholeSize Output parameter that contains the size of the whole matrix containing *this* - as a part. - @param ofs Output parameter that contains an offset of *this* inside the whole matrix. - */ - void locateROI( Size& wholeSize, Point& ofs ) const; - - /** @brief Adjusts a submatrix size and position within the parent matrix. - - The method is complimentary to Mat::locateROI . The typical use of these functions is to determine - the submatrix position within the parent matrix and then shift the position somehow. Typically, it - can be required for filtering operations when pixels outside of the ROI should be taken into - account. When all the method parameters are positive, the ROI needs to grow in all directions by the - specified amount, for example: - @code - A.adjustROI(2, 2, 2, 2); - @endcode - In this example, the matrix size is increased by 4 elements in each direction. The matrix is shifted - by 2 elements to the left and 2 elements up, which brings in all the necessary pixels for the - filtering with the 5x5 kernel. - - adjustROI forces the adjusted ROI to be inside of the parent matrix that is boundaries of the - adjusted ROI are constrained by boundaries of the parent matrix. For example, if the submatrix A is - located in the first row of a parent matrix and you called A.adjustROI(2, 2, 2, 2) then A will not - be increased in the upward direction. - - The function is used internally by the OpenCV filtering functions, like filter2D , morphological - operations, and so on. - @param dtop Shift of the top submatrix boundary upwards. - @param dbottom Shift of the bottom submatrix boundary downwards. - @param dleft Shift of the left submatrix boundary to the left. - @param dright Shift of the right submatrix boundary to the right. - @sa copyMakeBorder - */ - Mat& adjustROI( int dtop, int dbottom, int dleft, int dright ); - - /** @brief Extracts a rectangular submatrix. - - The operators make a new header for the specified sub-array of \*this . They are the most - generalized forms of Mat::row, Mat::col, Mat::rowRange, and Mat::colRange . For example, - `A(Range(0, 10), Range::all())` is equivalent to `A.rowRange(0, 10)`. Similarly to all of the above, - the operators are O(1) operations, that is, no matrix data is copied. - @param rowRange Start and end row of the extracted submatrix. The upper boundary is not included. To - select all the rows, use Range::all(). - @param colRange Start and end column of the extracted submatrix. The upper boundary is not included. - To select all the columns, use Range::all(). - */ - Mat operator()( Range rowRange, Range colRange ) const; - - /** @overload - @param roi Extracted submatrix specified as a rectangle. - */ - Mat operator()( const Rect& roi ) const; - - /** @overload - @param ranges Array of selected ranges along each array dimension. - */ - Mat operator()( const Range* ranges ) const; - - /** @overload - @param ranges Array of selected ranges along each array dimension. - */ - Mat operator()(const std::vector& ranges) const; - - // //! converts header to CvMat; no data is copied - // operator CvMat() const; - // //! converts header to CvMatND; no data is copied - // operator CvMatND() const; - // //! converts header to IplImage; no data is copied - // operator IplImage() const; - - template operator std::vector<_Tp>() const; - template operator Vec<_Tp, n>() const; - template operator Matx<_Tp, m, n>() const; - -#ifdef CV_CXX_STD_ARRAY - template operator std::array<_Tp, _Nm>() const; -#endif - - /** @brief Reports whether the matrix is continuous or not. - - The method returns true if the matrix elements are stored continuously without gaps at the end of - each row. Otherwise, it returns false. Obviously, 1x1 or 1xN matrices are always continuous. - Matrices created with Mat::create are always continuous. But if you extract a part of the matrix - using Mat::col, Mat::diag, and so on, or constructed a matrix header for externally allocated data, - such matrices may no longer have this property. - - The continuity flag is stored as a bit in the Mat::flags field and is computed automatically when - you construct a matrix header. Thus, the continuity check is a very fast operation, though - theoretically it could be done as follows: - @code - // alternative implementation of Mat::isContinuous() - bool myCheckMatContinuity(const Mat& m) - { - //return (m.flags & Mat::CONTINUOUS_FLAG) != 0; - return m.rows == 1 || m.step == m.cols*m.elemSize(); - } - @endcode - The method is used in quite a few of OpenCV functions. The point is that element-wise operations - (such as arithmetic and logical operations, math functions, alpha blending, color space - transformations, and others) do not depend on the image geometry. Thus, if all the input and output - arrays are continuous, the functions can process them as very long single-row vectors. The example - below illustrates how an alpha-blending function can be implemented: - @code - template - void alphaBlendRGBA(const Mat& src1, const Mat& src2, Mat& dst) - { - const float alpha_scale = (float)std::numeric_limits::max(), - inv_scale = 1.f/alpha_scale; - - CV_Assert( src1.type() == src2.type() && - src1.type() == CV_MAKETYPE(traits::Depth::value, 4) && - src1.size() == src2.size()); - Size size = src1.size(); - dst.create(size, src1.type()); - - // here is the idiom: check the arrays for continuity and, - // if this is the case, - // treat the arrays as 1D vectors - if( src1.isContinuous() && src2.isContinuous() && dst.isContinuous() ) - { - size.width *= size.height; - size.height = 1; - } - size.width *= 4; - - for( int i = 0; i < size.height; i++ ) - { - // when the arrays are continuous, - // the outer loop is executed only once - const T* ptr1 = src1.ptr(i); - const T* ptr2 = src2.ptr(i); - T* dptr = dst.ptr(i); - - for( int j = 0; j < size.width; j += 4 ) - { - float alpha = ptr1[j+3]*inv_scale, beta = ptr2[j+3]*inv_scale; - dptr[j] = saturate_cast(ptr1[j]*alpha + ptr2[j]*beta); - dptr[j+1] = saturate_cast(ptr1[j+1]*alpha + ptr2[j+1]*beta); - dptr[j+2] = saturate_cast(ptr1[j+2]*alpha + ptr2[j+2]*beta); - dptr[j+3] = saturate_cast((1 - (1-alpha)*(1-beta))*alpha_scale); - } - } - } - @endcode - This approach, while being very simple, can boost the performance of a simple element-operation by - 10-20 percents, especially if the image is rather small and the operation is quite simple. - - Another OpenCV idiom in this function, a call of Mat::create for the destination array, that - allocates the destination array unless it already has the proper size and type. And while the newly - allocated arrays are always continuous, you still need to check the destination array because - Mat::create does not always allocate a new matrix. - */ - bool isContinuous() const; - - //! returns true if the matrix is a submatrix of another matrix - bool isSubmatrix() const; - - /** @brief Returns the matrix element size in bytes. - - The method returns the matrix element size in bytes. For example, if the matrix type is CV_16SC3 , - the method returns 3\*sizeof(short) or 6. - */ - size_t elemSize() const; - - /** @brief Returns the size of each matrix element channel in bytes. - - The method returns the matrix element channel size in bytes, that is, it ignores the number of - channels. For example, if the matrix type is CV_16SC3 , the method returns sizeof(short) or 2. - */ - size_t elemSize1() const; - - /** @brief Returns the type of a matrix element. - - The method returns a matrix element type. This is an identifier compatible with the CvMat type - system, like CV_16SC3 or 16-bit signed 3-channel array, and so on. - */ - int type() const; - - /** @brief Returns the depth of a matrix element. - - The method returns the identifier of the matrix element depth (the type of each individual channel). - For example, for a 16-bit signed element array, the method returns CV_16S . A complete list of - matrix types contains the following values: - - CV_8U - 8-bit unsigned integers ( 0..255 ) - - CV_8S - 8-bit signed integers ( -128..127 ) - - CV_16U - 16-bit unsigned integers ( 0..65535 ) - - CV_16S - 16-bit signed integers ( -32768..32767 ) - - CV_32S - 32-bit signed integers ( -2147483648..2147483647 ) - - CV_32F - 32-bit floating-point numbers ( -FLT_MAX..FLT_MAX, INF, NAN ) - - CV_64F - 64-bit floating-point numbers ( -DBL_MAX..DBL_MAX, INF, NAN ) - */ - int depth() const; - - /** @brief Returns the number of matrix channels. - - The method returns the number of matrix channels. - */ - int channels() const; - - /** @brief Returns a normalized step. - - The method returns a matrix step divided by Mat::elemSize1() . It can be useful to quickly access an - arbitrary matrix element. - */ - size_t step1(int i=0) const; - - /** @brief Returns true if the array has no elements. - - The method returns true if Mat::total() is 0 or if Mat::data is NULL. Because of pop_back() and - resize() methods `M.total() == 0` does not imply that `M.data == NULL`. - */ - bool empty() const; - - /** @brief Returns the total number of array elements. - - The method returns the number of array elements (a number of pixels if the array represents an - image). - */ - size_t total() const; - - /** @brief Returns the total number of array elements. - - The method returns the number of elements within a certain sub-array slice with startDim <= dim < endDim - */ - size_t total(int startDim, int endDim=INT_MAX) const; - - //! returns N if the matrix is 1-channel (N x ptdim) or ptdim-channel (1 x N) or (N x 1); negative number otherwise - int checkVector(int elemChannels, int depth=-1, bool requireContinuous=true) const; - - /** @brief Returns a pointer to the specified matrix row. - - The methods return `uchar*` or typed pointer to the specified matrix row. See the sample in - Mat::isContinuous to know how to use these methods. - @param i0 A 0-based row index. - */ - uchar* ptr(int i0=0); - /** @overload */ - const uchar* ptr(int i0=0) const; - - /** @overload - @param row Index along the dimension 0 - @param col Index along the dimension 1 - */ - uchar* ptr(int row, int col); - /** @overload - @param row Index along the dimension 0 - @param col Index along the dimension 1 - */ - const uchar* ptr(int row, int col) const; - - /** @overload */ - uchar* ptr(int i0, int i1, int i2); - /** @overload */ - const uchar* ptr(int i0, int i1, int i2) const; - - /** @overload */ - uchar* ptr(const int* idx); - /** @overload */ - const uchar* ptr(const int* idx) const; - /** @overload */ - template uchar* ptr(const Vec& idx); - /** @overload */ - template const uchar* ptr(const Vec& idx) const; - - /** @overload */ - template _Tp* ptr(int i0=0); - /** @overload */ - template const _Tp* ptr(int i0=0) const; - /** @overload - @param row Index along the dimension 0 - @param col Index along the dimension 1 - */ - template _Tp* ptr(int row, int col); - /** @overload - @param row Index along the dimension 0 - @param col Index along the dimension 1 - */ - template const _Tp* ptr(int row, int col) const; - /** @overload */ - template _Tp* ptr(int i0, int i1, int i2); - /** @overload */ - template const _Tp* ptr(int i0, int i1, int i2) const; - /** @overload */ - template _Tp* ptr(const int* idx); - /** @overload */ - template const _Tp* ptr(const int* idx) const; - /** @overload */ - template _Tp* ptr(const Vec& idx); - /** @overload */ - template const _Tp* ptr(const Vec& idx) const; - - /** @brief Returns a reference to the specified array element. - - The template methods return a reference to the specified array element. For the sake of higher - performance, the index range checks are only performed in the Debug configuration. - - Note that the variants with a single index (i) can be used to access elements of single-row or - single-column 2-dimensional arrays. That is, if, for example, A is a 1 x N floating-point matrix and - B is an M x 1 integer matrix, you can simply write `A.at(k+4)` and `B.at(2*i+1)` - instead of `A.at(0,k+4)` and `B.at(2*i+1,0)`, respectively. - - The example below initializes a Hilbert matrix: - @code - Mat H(100, 100, CV_64F); - for(int i = 0; i < H.rows; i++) - for(int j = 0; j < H.cols; j++) - H.at(i,j)=1./(i+j+1); - @endcode - - Keep in mind that the size identifier used in the at operator cannot be chosen at random. It depends - on the image from which you are trying to retrieve the data. The table below gives a better insight in this: - - If matrix is of type `CV_8U` then use `Mat.at(y,x)`. - - If matrix is of type `CV_8S` then use `Mat.at(y,x)`. - - If matrix is of type `CV_16U` then use `Mat.at(y,x)`. - - If matrix is of type `CV_16S` then use `Mat.at(y,x)`. - - If matrix is of type `CV_32S` then use `Mat.at(y,x)`. - - If matrix is of type `CV_32F` then use `Mat.at(y,x)`. - - If matrix is of type `CV_64F` then use `Mat.at(y,x)`. - - @param i0 Index along the dimension 0 - */ - template _Tp& at(int i0=0); - /** @overload - @param i0 Index along the dimension 0 - */ - template const _Tp& at(int i0=0) const; - /** @overload - @param row Index along the dimension 0 - @param col Index along the dimension 1 - */ - template _Tp& at(int row, int col); - /** @overload - @param row Index along the dimension 0 - @param col Index along the dimension 1 - */ - template const _Tp& at(int row, int col) const; - - /** @overload - @param i0 Index along the dimension 0 - @param i1 Index along the dimension 1 - @param i2 Index along the dimension 2 - */ - template _Tp& at(int i0, int i1, int i2); - /** @overload - @param i0 Index along the dimension 0 - @param i1 Index along the dimension 1 - @param i2 Index along the dimension 2 - */ - template const _Tp& at(int i0, int i1, int i2) const; - - /** @overload - @param idx Array of Mat::dims indices. - */ - template _Tp& at(const int* idx); - /** @overload - @param idx Array of Mat::dims indices. - */ - template const _Tp& at(const int* idx) const; - - /** @overload */ - template _Tp& at(const Vec& idx); - /** @overload */ - template const _Tp& at(const Vec& idx) const; - - /** @overload - special versions for 2D arrays (especially convenient for referencing image pixels) - @param pt Element position specified as Point(j,i) . - */ - template _Tp& at(Point pt); - /** @overload - special versions for 2D arrays (especially convenient for referencing image pixels) - @param pt Element position specified as Point(j,i) . - */ - template const _Tp& at(Point pt) const; - - /** @brief Returns the matrix iterator and sets it to the first matrix element. - - The methods return the matrix read-only or read-write iterators. The use of matrix iterators is very - similar to the use of bi-directional STL iterators. In the example below, the alpha blending - function is rewritten using the matrix iterators: - @code - template - void alphaBlendRGBA(const Mat& src1, const Mat& src2, Mat& dst) - { - typedef Vec VT; - - const float alpha_scale = (float)std::numeric_limits::max(), - inv_scale = 1.f/alpha_scale; - - CV_Assert( src1.type() == src2.type() && - src1.type() == traits::Type::value && - src1.size() == src2.size()); - Size size = src1.size(); - dst.create(size, src1.type()); - - MatConstIterator_ it1 = src1.begin(), it1_end = src1.end(); - MatConstIterator_ it2 = src2.begin(); - MatIterator_ dst_it = dst.begin(); - - for( ; it1 != it1_end; ++it1, ++it2, ++dst_it ) - { - VT pix1 = *it1, pix2 = *it2; - float alpha = pix1[3]*inv_scale, beta = pix2[3]*inv_scale; - *dst_it = VT(saturate_cast(pix1[0]*alpha + pix2[0]*beta), - saturate_cast(pix1[1]*alpha + pix2[1]*beta), - saturate_cast(pix1[2]*alpha + pix2[2]*beta), - saturate_cast((1 - (1-alpha)*(1-beta))*alpha_scale)); - } - } - @endcode - */ - template MatIterator_<_Tp> begin(); - template MatConstIterator_<_Tp> begin() const; - - /** @brief Returns the matrix iterator and sets it to the after-last matrix element. - - The methods return the matrix read-only or read-write iterators, set to the point following the last - matrix element. - */ - template MatIterator_<_Tp> end(); - template MatConstIterator_<_Tp> end() const; - - /** @brief Runs the given functor over all matrix elements in parallel. - - The operation passed as argument has to be a function pointer, a function object or a lambda(C++11). - - Example 1. All of the operations below put 0xFF the first channel of all matrix elements: - @code - Mat image(1920, 1080, CV_8UC3); - typedef cv::Point3_ Pixel; - - // first. raw pointer access. - for (int r = 0; r < image.rows; ++r) { - Pixel* ptr = image.ptr(r, 0); - const Pixel* ptr_end = ptr + image.cols; - for (; ptr != ptr_end; ++ptr) { - ptr->x = 255; - } - } - - // Using MatIterator. (Simple but there are a Iterator's overhead) - for (Pixel &p : cv::Mat_(image)) { - p.x = 255; - } - - // Parallel execution with function object. - struct Operator { - void operator ()(Pixel &pixel, const int * position) { - pixel.x = 255; - } - }; - image.forEach(Operator()); - - // Parallel execution using C++11 lambda. - image.forEach([](Pixel &p, const int * position) -> void { - p.x = 255; - }); - @endcode - Example 2. Using the pixel's position: - @code - // Creating 3D matrix (255 x 255 x 255) typed uint8_t - // and initialize all elements by the value which equals elements position. - // i.e. pixels (x,y,z) = (1,2,3) is (b,g,r) = (1,2,3). - - int sizes[] = { 255, 255, 255 }; - typedef cv::Point3_ Pixel; - - Mat_ image = Mat::zeros(3, sizes, CV_8UC3); - - image.forEach([&](Pixel& pixel, const int position[]) -> void { - pixel.x = position[0]; - pixel.y = position[1]; - pixel.z = position[2]; - }); - @endcode - */ - template void forEach(const Functor& operation); - /** @overload */ - template void forEach(const Functor& operation) const; - -#ifdef CV_CXX_MOVE_SEMANTICS - Mat(Mat&& m); - Mat& operator = (Mat&& m); -#endif - - enum { MAGIC_VAL = 0x42FF0000, AUTO_STEP = 0, CONTINUOUS_FLAG = CV_MAT_CONT_FLAG, SUBMATRIX_FLAG = CV_SUBMAT_FLAG }; - enum { MAGIC_MASK = 0xFFFF0000, TYPE_MASK = 0x00000FFF, DEPTH_MASK = 7 }; - - /*! includes several bit-fields: - - the magic signature - - continuity flag - - depth - - number of channels - */ - int flags; - //! the matrix dimensionality, >= 2 - int dims; - //! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions - int rows, cols; - //! pointer to the data - uchar* data; - - //! helper fields used in locateROI and adjustROI - const uchar* datastart; - const uchar* dataend; - const uchar* datalimit; - - //! custom allocator - MatAllocator* allocator; - //! and the standard allocator - static MatAllocator* getStdAllocator(); - static MatAllocator* getDefaultAllocator(); - static void setDefaultAllocator(MatAllocator* allocator); - - //! interaction with UMat - UMatData* u; - - MatSize size; - MatStep step; - -protected: - template void forEach_impl(const Functor& operation); -}; - - -///////////////////////////////// Mat_<_Tp> //////////////////////////////////// - -/** @brief Template matrix class derived from Mat - -@code{.cpp} - template class Mat_ : public Mat - { - public: - // ... some specific methods - // and - // no new extra fields - }; -@endcode -The class `Mat_<_Tp>` is a *thin* template wrapper on top of the Mat class. It does not have any -extra data fields. Nor this class nor Mat has any virtual methods. Thus, references or pointers to -these two classes can be freely but carefully converted one to another. For example: -@code{.cpp} - // create a 100x100 8-bit matrix - Mat M(100,100,CV_8U); - // this will be compiled fine. no any data conversion will be done. - Mat_& M1 = (Mat_&)M; - // the program is likely to crash at the statement below - M1(99,99) = 1.f; -@endcode -While Mat is sufficient in most cases, Mat_ can be more convenient if you use a lot of element -access operations and if you know matrix type at the compilation time. Note that -`Mat::at(int y,int x)` and `Mat_::operator()(int y,int x)` do absolutely the same -and run at the same speed, but the latter is certainly shorter: -@code{.cpp} - Mat_ M(20,20); - for(int i = 0; i < M.rows; i++) - for(int j = 0; j < M.cols; j++) - M(i,j) = 1./(i+j+1); - Mat E, V; - eigen(M,E,V); - cout << E.at(0,0)/E.at(M.rows-1,0); -@endcode -To use Mat_ for multi-channel images/matrices, pass Vec as a Mat_ parameter: -@code{.cpp} - // allocate a 320x240 color image and fill it with green (in RGB space) - Mat_ img(240, 320, Vec3b(0,255,0)); - // now draw a diagonal white line - for(int i = 0; i < 100; i++) - img(i,i)=Vec3b(255,255,255); - // and now scramble the 2nd (red) channel of each pixel - for(int i = 0; i < img.rows; i++) - for(int j = 0; j < img.cols; j++) - img(i,j)[2] ^= (uchar)(i ^ j); -@endcode -Mat_ is fully compatible with C++11 range-based for loop. For example such loop -can be used to safely apply look-up table: -@code{.cpp} -void applyTable(Mat_& I, const uchar* const table) -{ - for(auto& pixel : I) - { - pixel = table[pixel]; - } -} -@endcode - */ -template class Mat_ : public Mat -{ -public: - typedef _Tp value_type; - typedef typename DataType<_Tp>::channel_type channel_type; - typedef MatIterator_<_Tp> iterator; - typedef MatConstIterator_<_Tp> const_iterator; - - //! default constructor - Mat_(); - //! equivalent to Mat(_rows, _cols, DataType<_Tp>::type) - Mat_(int _rows, int _cols); - //! constructor that sets each matrix element to specified value - Mat_(int _rows, int _cols, const _Tp& value); - //! equivalent to Mat(_size, DataType<_Tp>::type) - explicit Mat_(Size _size); - //! constructor that sets each matrix element to specified value - Mat_(Size _size, const _Tp& value); - //! n-dim array constructor - Mat_(int _ndims, const int* _sizes); - //! n-dim array constructor that sets each matrix element to specified value - Mat_(int _ndims, const int* _sizes, const _Tp& value); - //! copy/conversion contructor. If m is of different type, it's converted - Mat_(const Mat& m); - //! copy constructor - Mat_(const Mat_& m); - //! constructs a matrix on top of user-allocated data. step is in bytes(!!!), regardless of the type - Mat_(int _rows, int _cols, _Tp* _data, size_t _step=AUTO_STEP); - //! constructs n-dim matrix on top of user-allocated data. steps are in bytes(!!!), regardless of the type - Mat_(int _ndims, const int* _sizes, _Tp* _data, const size_t* _steps=0); - //! selects a submatrix - Mat_(const Mat_& m, const Range& rowRange, const Range& colRange=Range::all()); - //! selects a submatrix - Mat_(const Mat_& m, const Rect& roi); - //! selects a submatrix, n-dim version - Mat_(const Mat_& m, const Range* ranges); - //! selects a submatrix, n-dim version - Mat_(const Mat_& m, const std::vector& ranges); - //! from a matrix expression - explicit Mat_(const MatExpr& e); - //! makes a matrix out of Vec, std::vector, Point_ or Point3_. The matrix will have a single column - explicit Mat_(const std::vector<_Tp>& vec, bool copyData=false); - template explicit Mat_(const Vec::channel_type, n>& vec, bool copyData=true); - template explicit Mat_(const Matx::channel_type, m, n>& mtx, bool copyData=true); - explicit Mat_(const Point_::channel_type>& pt, bool copyData=true); - explicit Mat_(const Point3_::channel_type>& pt, bool copyData=true); - explicit Mat_(const MatCommaInitializer_<_Tp>& commaInitializer); - -#ifdef CV_CXX11 - Mat_(std::initializer_list<_Tp> values); -#endif - -#ifdef CV_CXX_STD_ARRAY - template explicit Mat_(const std::array<_Tp, _Nm>& arr, bool copyData=false); -#endif - - Mat_& operator = (const Mat& m); - Mat_& operator = (const Mat_& m); - //! set all the elements to s. - Mat_& operator = (const _Tp& s); - //! assign a matrix expression - Mat_& operator = (const MatExpr& e); - - //! iterators; they are smart enough to skip gaps in the end of rows - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - - //! template methods for for operation over all matrix elements. - // the operations take care of skipping gaps in the end of rows (if any) - template void forEach(const Functor& operation); - template void forEach(const Functor& operation) const; - - //! equivalent to Mat::create(_rows, _cols, DataType<_Tp>::type) - void create(int _rows, int _cols); - //! equivalent to Mat::create(_size, DataType<_Tp>::type) - void create(Size _size); - //! equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type) - void create(int _ndims, const int* _sizes); - //! equivalent to Mat::release() - void release(); - //! cross-product - Mat_ cross(const Mat_& m) const; - //! data type conversion - template operator Mat_() const; - //! overridden forms of Mat::row() etc. - Mat_ row(int y) const; - Mat_ col(int x) const; - Mat_ diag(int d=0) const; - Mat_ clone() const; - - //! overridden forms of Mat::elemSize() etc. - size_t elemSize() const; - size_t elemSize1() const; - int type() const; - int depth() const; - int channels() const; - size_t step1(int i=0) const; - //! returns step()/sizeof(_Tp) - size_t stepT(int i=0) const; - - //! overridden forms of Mat::zeros() etc. Data type is omitted, of course - static MatExpr zeros(int rows, int cols); - static MatExpr zeros(Size size); - static MatExpr zeros(int _ndims, const int* _sizes); - static MatExpr ones(int rows, int cols); - static MatExpr ones(Size size); - static MatExpr ones(int _ndims, const int* _sizes); - static MatExpr eye(int rows, int cols); - static MatExpr eye(Size size); - - //! some more overriden methods - Mat_& adjustROI( int dtop, int dbottom, int dleft, int dright ); - Mat_ operator()( const Range& rowRange, const Range& colRange ) const; - Mat_ operator()( const Rect& roi ) const; - Mat_ operator()( const Range* ranges ) const; - Mat_ operator()(const std::vector& ranges) const; - - //! more convenient forms of row and element access operators - _Tp* operator [](int y); - const _Tp* operator [](int y) const; - - //! returns reference to the specified element - _Tp& operator ()(const int* idx); - //! returns read-only reference to the specified element - const _Tp& operator ()(const int* idx) const; - - //! returns reference to the specified element - template _Tp& operator ()(const Vec& idx); - //! returns read-only reference to the specified element - template const _Tp& operator ()(const Vec& idx) const; - - //! returns reference to the specified element (1D case) - _Tp& operator ()(int idx0); - //! returns read-only reference to the specified element (1D case) - const _Tp& operator ()(int idx0) const; - //! returns reference to the specified element (2D case) - _Tp& operator ()(int row, int col); - //! returns read-only reference to the specified element (2D case) - const _Tp& operator ()(int row, int col) const; - //! returns reference to the specified element (3D case) - _Tp& operator ()(int idx0, int idx1, int idx2); - //! returns read-only reference to the specified element (3D case) - const _Tp& operator ()(int idx0, int idx1, int idx2) const; - - _Tp& operator ()(Point pt); - const _Tp& operator ()(Point pt) const; - - //! conversion to vector. - operator std::vector<_Tp>() const; - -#ifdef CV_CXX_STD_ARRAY - //! conversion to array. - template operator std::array<_Tp, _Nm>() const; -#endif - - //! conversion to Vec - template operator Vec::channel_type, n>() const; - //! conversion to Matx - template operator Matx::channel_type, m, n>() const; - -#ifdef CV_CXX_MOVE_SEMANTICS - Mat_(Mat_&& m); - Mat_& operator = (Mat_&& m); - - Mat_(Mat&& m); - Mat_& operator = (Mat&& m); - - Mat_(MatExpr&& e); -#endif -}; - -typedef Mat_ Mat1b; -typedef Mat_ Mat2b; -typedef Mat_ Mat3b; -typedef Mat_ Mat4b; - -typedef Mat_ Mat1s; -typedef Mat_ Mat2s; -typedef Mat_ Mat3s; -typedef Mat_ Mat4s; - -typedef Mat_ Mat1w; -typedef Mat_ Mat2w; -typedef Mat_ Mat3w; -typedef Mat_ Mat4w; - -typedef Mat_ Mat1i; -typedef Mat_ Mat2i; -typedef Mat_ Mat3i; -typedef Mat_ Mat4i; - -typedef Mat_ Mat1f; -typedef Mat_ Mat2f; -typedef Mat_ Mat3f; -typedef Mat_ Mat4f; - -typedef Mat_ Mat1d; -typedef Mat_ Mat2d; -typedef Mat_ Mat3d; -typedef Mat_ Mat4d; - -/** @todo document */ -class CV_EXPORTS UMat -{ -public: - //! default constructor - UMat(UMatUsageFlags usageFlags = USAGE_DEFAULT); - //! constructs 2D matrix of the specified size and type - // (_type is CV_8UC1, CV_64FC3, CV_32SC(12) etc.) - UMat(int rows, int cols, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - UMat(Size size, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - //! constucts 2D matrix and fills it with the specified value _s. - UMat(int rows, int cols, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); - UMat(Size size, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); - - //! constructs n-dimensional matrix - UMat(int ndims, const int* sizes, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - UMat(int ndims, const int* sizes, int type, const Scalar& s, UMatUsageFlags usageFlags = USAGE_DEFAULT); - - //! copy constructor - UMat(const UMat& m); - - //! creates a matrix header for a part of the bigger matrix - UMat(const UMat& m, const Range& rowRange, const Range& colRange=Range::all()); - UMat(const UMat& m, const Rect& roi); - UMat(const UMat& m, const Range* ranges); - UMat(const UMat& m, const std::vector& ranges); - //! builds matrix from std::vector with or without copying the data - template explicit UMat(const std::vector<_Tp>& vec, bool copyData=false); - - //! builds matrix from cv::Vec; the data is copied by default - template explicit UMat(const Vec<_Tp, n>& vec, bool copyData=true); - //! builds matrix from cv::Matx; the data is copied by default - template explicit UMat(const Matx<_Tp, m, n>& mtx, bool copyData=true); - //! builds matrix from a 2D point - template explicit UMat(const Point_<_Tp>& pt, bool copyData=true); - //! builds matrix from a 3D point - template explicit UMat(const Point3_<_Tp>& pt, bool copyData=true); - //! builds matrix from comma initializer - template explicit UMat(const MatCommaInitializer_<_Tp>& commaInitializer); - - //! destructor - calls release() - ~UMat(); - //! assignment operators - UMat& operator = (const UMat& m); - - Mat getMat(int flags) const; - - //! returns a new matrix header for the specified row - UMat row(int y) const; - //! returns a new matrix header for the specified column - UMat col(int x) const; - //! ... for the specified row span - UMat rowRange(int startrow, int endrow) const; - UMat rowRange(const Range& r) const; - //! ... for the specified column span - UMat colRange(int startcol, int endcol) const; - UMat colRange(const Range& r) const; - //! ... for the specified diagonal - //! (d=0 - the main diagonal, - //! >0 - a diagonal from the upper half, - //! <0 - a diagonal from the lower half) - UMat diag(int d=0) const; - //! constructs a square diagonal matrix which main diagonal is vector "d" - static UMat diag(const UMat& d); - - //! returns deep copy of the matrix, i.e. the data is copied - UMat clone() const; - //! copies the matrix content to "m". - // It calls m.create(this->size(), this->type()). - void copyTo( OutputArray m ) const; - //! copies those matrix elements to "m" that are marked with non-zero mask elements. - void copyTo( OutputArray m, InputArray mask ) const; - //! converts matrix to another datatype with optional scaling. See cvConvertScale. - void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const; - - void assignTo( UMat& m, int type=-1 ) const; - - //! sets every matrix element to s - UMat& operator = (const Scalar& s); - //! sets some of the matrix elements to s, according to the mask - UMat& setTo(InputArray value, InputArray mask=noArray()); - //! creates alternative matrix header for the same data, with different - // number of channels and/or different number of rows. see cvReshape. - UMat reshape(int cn, int rows=0) const; - UMat reshape(int cn, int newndims, const int* newsz) const; - - //! matrix transposition by means of matrix expressions - UMat t() const; - //! matrix inversion by means of matrix expressions - UMat inv(int method=DECOMP_LU) const; - //! per-element matrix multiplication by means of matrix expressions - UMat mul(InputArray m, double scale=1) const; - - //! computes dot-product - double dot(InputArray m) const; - - //! Matlab-style matrix initialization - static UMat zeros(int rows, int cols, int type); - static UMat zeros(Size size, int type); - static UMat zeros(int ndims, const int* sz, int type); - static UMat ones(int rows, int cols, int type); - static UMat ones(Size size, int type); - static UMat ones(int ndims, const int* sz, int type); - static UMat eye(int rows, int cols, int type); - static UMat eye(Size size, int type); - - //! allocates new matrix data unless the matrix already has specified size and type. - // previous data is unreferenced if needed. - void create(int rows, int cols, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - void create(Size size, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - void create(int ndims, const int* sizes, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - void create(const std::vector& sizes, int type, UMatUsageFlags usageFlags = USAGE_DEFAULT); - - //! increases the reference counter; use with care to avoid memleaks - void addref(); - //! decreases reference counter; - // deallocates the data when reference counter reaches 0. - void release(); - - //! deallocates the matrix data - void deallocate(); - //! internal use function; properly re-allocates _size, _step arrays - void copySize(const UMat& m); - - //! locates matrix header within a parent matrix. See below - void locateROI( Size& wholeSize, Point& ofs ) const; - //! moves/resizes the current matrix ROI inside the parent matrix. - UMat& adjustROI( int dtop, int dbottom, int dleft, int dright ); - //! extracts a rectangular sub-matrix - // (this is a generalized form of row, rowRange etc.) - UMat operator()( Range rowRange, Range colRange ) const; - UMat operator()( const Rect& roi ) const; - UMat operator()( const Range* ranges ) const; - UMat operator()(const std::vector& ranges) const; - - //! returns true iff the matrix data is continuous - // (i.e. when there are no gaps between successive rows). - // similar to CV_IS_MAT_CONT(cvmat->type) - bool isContinuous() const; - - //! returns true if the matrix is a submatrix of another matrix - bool isSubmatrix() const; - - //! returns element size in bytes, - // similar to CV_ELEM_SIZE(cvmat->type) - size_t elemSize() const; - //! returns the size of element channel in bytes. - size_t elemSize1() const; - //! returns element type, similar to CV_MAT_TYPE(cvmat->type) - int type() const; - //! returns element type, similar to CV_MAT_DEPTH(cvmat->type) - int depth() const; - //! returns element type, similar to CV_MAT_CN(cvmat->type) - int channels() const; - //! returns step/elemSize1() - size_t step1(int i=0) const; - //! returns true if matrix data is NULL - bool empty() const; - //! returns the total number of matrix elements - size_t total() const; - - //! returns N if the matrix is 1-channel (N x ptdim) or ptdim-channel (1 x N) or (N x 1); negative number otherwise - int checkVector(int elemChannels, int depth=-1, bool requireContinuous=true) const; - -#ifdef CV_CXX_MOVE_SEMANTICS - UMat(UMat&& m); - UMat& operator = (UMat&& m); -#endif - - /*! Returns the OpenCL buffer handle on which UMat operates on. - The UMat instance should be kept alive during the use of the handle to prevent the buffer to be - returned to the OpenCV buffer pool. - */ - void* handle(int accessFlags) const; - void ndoffset(size_t* ofs) const; - - enum { MAGIC_VAL = 0x42FF0000, AUTO_STEP = 0, CONTINUOUS_FLAG = CV_MAT_CONT_FLAG, SUBMATRIX_FLAG = CV_SUBMAT_FLAG }; - enum { MAGIC_MASK = 0xFFFF0000, TYPE_MASK = 0x00000FFF, DEPTH_MASK = 7 }; - - /*! includes several bit-fields: - - the magic signature - - continuity flag - - depth - - number of channels - */ - int flags; - //! the matrix dimensionality, >= 2 - int dims; - //! the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions - int rows, cols; - - //! custom allocator - MatAllocator* allocator; - UMatUsageFlags usageFlags; // usage flags for allocator - //! and the standard allocator - static MatAllocator* getStdAllocator(); - - // black-box container of UMat data - UMatData* u; - - // offset of the submatrix (or 0) - size_t offset; - - MatSize size; - MatStep step; - -protected: -}; - - -/////////////////////////// multi-dimensional sparse matrix ////////////////////////// - -/** @brief The class SparseMat represents multi-dimensional sparse numerical arrays. - -Such a sparse array can store elements of any type that Mat can store. *Sparse* means that only -non-zero elements are stored (though, as a result of operations on a sparse matrix, some of its -stored elements can actually become 0. It is up to you to detect such elements and delete them -using SparseMat::erase ). The non-zero elements are stored in a hash table that grows when it is -filled so that the search time is O(1) in average (regardless of whether element is there or not). -Elements can be accessed using the following methods: -- Query operations (SparseMat::ptr and the higher-level SparseMat::ref, SparseMat::value and - SparseMat::find), for example: - @code - const int dims = 5; - int size[5] = {10, 10, 10, 10, 10}; - SparseMat sparse_mat(dims, size, CV_32F); - for(int i = 0; i < 1000; i++) - { - int idx[dims]; - for(int k = 0; k < dims; k++) - idx[k] = rand() % size[k]; - sparse_mat.ref(idx) += 1.f; - } - cout << "nnz = " << sparse_mat.nzcount() << endl; - @endcode -- Sparse matrix iterators. They are similar to MatIterator but different from NAryMatIterator. - That is, the iteration loop is familiar to STL users: - @code - // prints elements of a sparse floating-point matrix - // and the sum of elements. - SparseMatConstIterator_ - it = sparse_mat.begin(), - it_end = sparse_mat.end(); - double s = 0; - int dims = sparse_mat.dims(); - for(; it != it_end; ++it) - { - // print element indices and the element value - const SparseMat::Node* n = it.node(); - printf("("); - for(int i = 0; i < dims; i++) - printf("%d%s", n->idx[i], i < dims-1 ? ", " : ")"); - printf(": %g\n", it.value()); - s += *it; - } - printf("Element sum is %g\n", s); - @endcode - If you run this loop, you will notice that elements are not enumerated in a logical order - (lexicographical, and so on). They come in the same order as they are stored in the hash table - (semi-randomly). You may collect pointers to the nodes and sort them to get the proper ordering. - Note, however, that pointers to the nodes may become invalid when you add more elements to the - matrix. This may happen due to possible buffer reallocation. -- Combination of the above 2 methods when you need to process 2 or more sparse matrices - simultaneously. For example, this is how you can compute unnormalized cross-correlation of the 2 - floating-point sparse matrices: - @code - double cross_corr(const SparseMat& a, const SparseMat& b) - { - const SparseMat *_a = &a, *_b = &b; - // if b contains less elements than a, - // it is faster to iterate through b - if(_a->nzcount() > _b->nzcount()) - std::swap(_a, _b); - SparseMatConstIterator_ it = _a->begin(), - it_end = _a->end(); - double ccorr = 0; - for(; it != it_end; ++it) - { - // take the next element from the first matrix - float avalue = *it; - const Node* anode = it.node(); - // and try to find an element with the same index in the second matrix. - // since the hash value depends only on the element index, - // reuse the hash value stored in the node - float bvalue = _b->value(anode->idx,&anode->hashval); - ccorr += avalue*bvalue; - } - return ccorr; - } - @endcode - */ -class CV_EXPORTS SparseMat -{ -public: - typedef SparseMatIterator iterator; - typedef SparseMatConstIterator const_iterator; - - enum { MAGIC_VAL=0x42FD0000, MAX_DIM=32, HASH_SCALE=0x5bd1e995, HASH_BIT=0x80000000 }; - - //! the sparse matrix header - struct CV_EXPORTS Hdr - { - Hdr(int _dims, const int* _sizes, int _type); - void clear(); - int refcount; - int dims; - int valueOffset; - size_t nodeSize; - size_t nodeCount; - size_t freeList; - std::vector pool; - std::vector hashtab; - int size[MAX_DIM]; - }; - - //! sparse matrix node - element of a hash table - struct CV_EXPORTS Node - { - //! hash value - size_t hashval; - //! index of the next node in the same hash table entry - size_t next; - //! index of the matrix element - int idx[MAX_DIM]; - }; - - /** @brief Various SparseMat constructors. - */ - SparseMat(); - - /** @overload - @param dims Array dimensionality. - @param _sizes Sparce matrix size on all dementions. - @param _type Sparse matrix data type. - */ - SparseMat(int dims, const int* _sizes, int _type); - - /** @overload - @param m Source matrix for copy constructor. If m is dense matrix (ocvMat) then it will be converted - to sparse representation. - */ - SparseMat(const SparseMat& m); - - /** @overload - @param m Source matrix for copy constructor. If m is dense matrix (ocvMat) then it will be converted - to sparse representation. - */ - explicit SparseMat(const Mat& m); - - //! the destructor - ~SparseMat(); - - //! assignment operator. This is O(1) operation, i.e. no data is copied - SparseMat& operator = (const SparseMat& m); - //! equivalent to the corresponding constructor - SparseMat& operator = (const Mat& m); - - //! creates full copy of the matrix - SparseMat clone() const; - - //! copies all the data to the destination matrix. All the previous content of m is erased - void copyTo( SparseMat& m ) const; - //! converts sparse matrix to dense matrix. - void copyTo( Mat& m ) const; - //! multiplies all the matrix elements by the specified scale factor alpha and converts the results to the specified data type - void convertTo( SparseMat& m, int rtype, double alpha=1 ) const; - //! converts sparse matrix to dense n-dim matrix with optional type conversion and scaling. - /*! - @param [out] m - output matrix; if it does not have a proper size or type before the operation, - it is reallocated - @param [in] rtype - desired output matrix type or, rather, the depth since the number of channels - are the same as the input has; if rtype is negative, the output matrix will have the - same type as the input. - @param [in] alpha - optional scale factor - @param [in] beta - optional delta added to the scaled values - */ - void convertTo( Mat& m, int rtype, double alpha=1, double beta=0 ) const; - - // not used now - void assignTo( SparseMat& m, int type=-1 ) const; - - //! reallocates sparse matrix. - /*! - If the matrix already had the proper size and type, - it is simply cleared with clear(), otherwise, - the old matrix is released (using release()) and the new one is allocated. - */ - void create(int dims, const int* _sizes, int _type); - //! sets all the sparse matrix elements to 0, which means clearing the hash table. - void clear(); - //! manually increments the reference counter to the header. - void addref(); - // decrements the header reference counter. When the counter reaches 0, the header and all the underlying data are deallocated. - void release(); - - //! converts sparse matrix to the old-style representation; all the elements are copied. - //operator CvSparseMat*() const; - //! returns the size of each element in bytes (not including the overhead - the space occupied by SparseMat::Node elements) - size_t elemSize() const; - //! returns elemSize()/channels() - size_t elemSize1() const; - - //! returns type of sparse matrix elements - int type() const; - //! returns the depth of sparse matrix elements - int depth() const; - //! returns the number of channels - int channels() const; - - //! returns the array of sizes, or NULL if the matrix is not allocated - const int* size() const; - //! returns the size of i-th matrix dimension (or 0) - int size(int i) const; - //! returns the matrix dimensionality - int dims() const; - //! returns the number of non-zero elements (=the number of hash table nodes) - size_t nzcount() const; - - //! computes the element hash value (1D case) - size_t hash(int i0) const; - //! computes the element hash value (2D case) - size_t hash(int i0, int i1) const; - //! computes the element hash value (3D case) - size_t hash(int i0, int i1, int i2) const; - //! computes the element hash value (nD case) - size_t hash(const int* idx) const; - - //!@{ - /*! - specialized variants for 1D, 2D, 3D cases and the generic_type one for n-D case. - return pointer to the matrix element. - - if the element is there (it's non-zero), the pointer to it is returned - - if it's not there and createMissing=false, NULL pointer is returned - - if it's not there and createMissing=true, then the new element - is created and initialized with 0. Pointer to it is returned - - if the optional hashval pointer is not NULL, the element hash value is - not computed, but *hashval is taken instead. - */ - //! returns pointer to the specified element (1D case) - uchar* ptr(int i0, bool createMissing, size_t* hashval=0); - //! returns pointer to the specified element (2D case) - uchar* ptr(int i0, int i1, bool createMissing, size_t* hashval=0); - //! returns pointer to the specified element (3D case) - uchar* ptr(int i0, int i1, int i2, bool createMissing, size_t* hashval=0); - //! returns pointer to the specified element (nD case) - uchar* ptr(const int* idx, bool createMissing, size_t* hashval=0); - //!@} - - //!@{ - /*! - return read-write reference to the specified sparse matrix element. - - `ref<_Tp>(i0,...[,hashval])` is equivalent to `*(_Tp*)ptr(i0,...,true[,hashval])`. - The methods always return a valid reference. - If the element did not exist, it is created and initialiazed with 0. - */ - //! returns reference to the specified element (1D case) - template _Tp& ref(int i0, size_t* hashval=0); - //! returns reference to the specified element (2D case) - template _Tp& ref(int i0, int i1, size_t* hashval=0); - //! returns reference to the specified element (3D case) - template _Tp& ref(int i0, int i1, int i2, size_t* hashval=0); - //! returns reference to the specified element (nD case) - template _Tp& ref(const int* idx, size_t* hashval=0); - //!@} - - //!@{ - /*! - return value of the specified sparse matrix element. - - `value<_Tp>(i0,...[,hashval])` is equivalent to - @code - { const _Tp* p = find<_Tp>(i0,...[,hashval]); return p ? *p : _Tp(); } - @endcode - - That is, if the element did not exist, the methods return 0. - */ - //! returns value of the specified element (1D case) - template _Tp value(int i0, size_t* hashval=0) const; - //! returns value of the specified element (2D case) - template _Tp value(int i0, int i1, size_t* hashval=0) const; - //! returns value of the specified element (3D case) - template _Tp value(int i0, int i1, int i2, size_t* hashval=0) const; - //! returns value of the specified element (nD case) - template _Tp value(const int* idx, size_t* hashval=0) const; - //!@} - - //!@{ - /*! - Return pointer to the specified sparse matrix element if it exists - - `find<_Tp>(i0,...[,hashval])` is equivalent to `(_const Tp*)ptr(i0,...false[,hashval])`. - - If the specified element does not exist, the methods return NULL. - */ - //! returns pointer to the specified element (1D case) - template const _Tp* find(int i0, size_t* hashval=0) const; - //! returns pointer to the specified element (2D case) - template const _Tp* find(int i0, int i1, size_t* hashval=0) const; - //! returns pointer to the specified element (3D case) - template const _Tp* find(int i0, int i1, int i2, size_t* hashval=0) const; - //! returns pointer to the specified element (nD case) - template const _Tp* find(const int* idx, size_t* hashval=0) const; - //!@} - - //! erases the specified element (2D case) - void erase(int i0, int i1, size_t* hashval=0); - //! erases the specified element (3D case) - void erase(int i0, int i1, int i2, size_t* hashval=0); - //! erases the specified element (nD case) - void erase(const int* idx, size_t* hashval=0); - - //!@{ - /*! - return the sparse matrix iterator pointing to the first sparse matrix element - */ - //! returns the sparse matrix iterator at the matrix beginning - SparseMatIterator begin(); - //! returns the sparse matrix iterator at the matrix beginning - template SparseMatIterator_<_Tp> begin(); - //! returns the read-only sparse matrix iterator at the matrix beginning - SparseMatConstIterator begin() const; - //! returns the read-only sparse matrix iterator at the matrix beginning - template SparseMatConstIterator_<_Tp> begin() const; - //!@} - /*! - return the sparse matrix iterator pointing to the element following the last sparse matrix element - */ - //! returns the sparse matrix iterator at the matrix end - SparseMatIterator end(); - //! returns the read-only sparse matrix iterator at the matrix end - SparseMatConstIterator end() const; - //! returns the typed sparse matrix iterator at the matrix end - template SparseMatIterator_<_Tp> end(); - //! returns the typed read-only sparse matrix iterator at the matrix end - template SparseMatConstIterator_<_Tp> end() const; - - //! returns the value stored in the sparse martix node - template _Tp& value(Node* n); - //! returns the value stored in the sparse martix node - template const _Tp& value(const Node* n) const; - - ////////////// some internal-use methods /////////////// - Node* node(size_t nidx); - const Node* node(size_t nidx) const; - - uchar* newNode(const int* idx, size_t hashval); - void removeNode(size_t hidx, size_t nidx, size_t previdx); - void resizeHashTab(size_t newsize); - - int flags; - Hdr* hdr; -}; - - - -///////////////////////////////// SparseMat_<_Tp> //////////////////////////////////// - -/** @brief Template sparse n-dimensional array class derived from SparseMat - -SparseMat_ is a thin wrapper on top of SparseMat created in the same way as Mat_ . It simplifies -notation of some operations: -@code - int sz[] = {10, 20, 30}; - SparseMat_ M(3, sz); - ... - M.ref(1, 2, 3) = M(4, 5, 6) + M(7, 8, 9); -@endcode - */ -template class SparseMat_ : public SparseMat -{ -public: - typedef SparseMatIterator_<_Tp> iterator; - typedef SparseMatConstIterator_<_Tp> const_iterator; - - //! the default constructor - SparseMat_(); - //! the full constructor equivelent to SparseMat(dims, _sizes, DataType<_Tp>::type) - SparseMat_(int dims, const int* _sizes); - //! the copy constructor. If DataType<_Tp>.type != m.type(), the m elements are converted - SparseMat_(const SparseMat& m); - //! the copy constructor. This is O(1) operation - no data is copied - SparseMat_(const SparseMat_& m); - //! converts dense matrix to the sparse form - SparseMat_(const Mat& m); - //! converts the old-style sparse matrix to the C++ class. All the elements are copied - //SparseMat_(const CvSparseMat* m); - //! the assignment operator. If DataType<_Tp>.type != m.type(), the m elements are converted - SparseMat_& operator = (const SparseMat& m); - //! the assignment operator. This is O(1) operation - no data is copied - SparseMat_& operator = (const SparseMat_& m); - //! converts dense matrix to the sparse form - SparseMat_& operator = (const Mat& m); - - //! makes full copy of the matrix. All the elements are duplicated - SparseMat_ clone() const; - //! equivalent to cv::SparseMat::create(dims, _sizes, DataType<_Tp>::type) - void create(int dims, const int* _sizes); - //! converts sparse matrix to the old-style CvSparseMat. All the elements are copied - //operator CvSparseMat*() const; - - //! returns type of the matrix elements - int type() const; - //! returns depth of the matrix elements - int depth() const; - //! returns the number of channels in each matrix element - int channels() const; - - //! equivalent to SparseMat::ref<_Tp>(i0, hashval) - _Tp& ref(int i0, size_t* hashval=0); - //! equivalent to SparseMat::ref<_Tp>(i0, i1, hashval) - _Tp& ref(int i0, int i1, size_t* hashval=0); - //! equivalent to SparseMat::ref<_Tp>(i0, i1, i2, hashval) - _Tp& ref(int i0, int i1, int i2, size_t* hashval=0); - //! equivalent to SparseMat::ref<_Tp>(idx, hashval) - _Tp& ref(const int* idx, size_t* hashval=0); - - //! equivalent to SparseMat::value<_Tp>(i0, hashval) - _Tp operator()(int i0, size_t* hashval=0) const; - //! equivalent to SparseMat::value<_Tp>(i0, i1, hashval) - _Tp operator()(int i0, int i1, size_t* hashval=0) const; - //! equivalent to SparseMat::value<_Tp>(i0, i1, i2, hashval) - _Tp operator()(int i0, int i1, int i2, size_t* hashval=0) const; - //! equivalent to SparseMat::value<_Tp>(idx, hashval) - _Tp operator()(const int* idx, size_t* hashval=0) const; - - //! returns sparse matrix iterator pointing to the first sparse matrix element - SparseMatIterator_<_Tp> begin(); - //! returns read-only sparse matrix iterator pointing to the first sparse matrix element - SparseMatConstIterator_<_Tp> begin() const; - //! returns sparse matrix iterator pointing to the element following the last sparse matrix element - SparseMatIterator_<_Tp> end(); - //! returns read-only sparse matrix iterator pointing to the element following the last sparse matrix element - SparseMatConstIterator_<_Tp> end() const; -}; - - - -////////////////////////////////// MatConstIterator ////////////////////////////////// - -class CV_EXPORTS MatConstIterator -{ -public: - typedef uchar* value_type; - typedef ptrdiff_t difference_type; - typedef const uchar** pointer; - typedef uchar* reference; - - typedef std::random_access_iterator_tag iterator_category; - - //! default constructor - MatConstIterator(); - //! constructor that sets the iterator to the beginning of the matrix - MatConstIterator(const Mat* _m); - //! constructor that sets the iterator to the specified element of the matrix - MatConstIterator(const Mat* _m, int _row, int _col=0); - //! constructor that sets the iterator to the specified element of the matrix - MatConstIterator(const Mat* _m, Point _pt); - //! constructor that sets the iterator to the specified element of the matrix - MatConstIterator(const Mat* _m, const int* _idx); - //! copy constructor - MatConstIterator(const MatConstIterator& it); - - //! copy operator - MatConstIterator& operator = (const MatConstIterator& it); - //! returns the current matrix element - const uchar* operator *() const; - //! returns the i-th matrix element, relative to the current - const uchar* operator [](ptrdiff_t i) const; - - //! shifts the iterator forward by the specified number of elements - MatConstIterator& operator += (ptrdiff_t ofs); - //! shifts the iterator backward by the specified number of elements - MatConstIterator& operator -= (ptrdiff_t ofs); - //! decrements the iterator - MatConstIterator& operator --(); - //! decrements the iterator - MatConstIterator operator --(int); - //! increments the iterator - MatConstIterator& operator ++(); - //! increments the iterator - MatConstIterator operator ++(int); - //! returns the current iterator position - Point pos() const; - //! returns the current iterator position - void pos(int* _idx) const; - - ptrdiff_t lpos() const; - void seek(ptrdiff_t ofs, bool relative = false); - void seek(const int* _idx, bool relative = false); - - const Mat* m; - size_t elemSize; - const uchar* ptr; - const uchar* sliceStart; - const uchar* sliceEnd; -}; - - - -////////////////////////////////// MatConstIterator_ ///////////////////////////////// - -/** @brief Matrix read-only iterator - */ -template -class MatConstIterator_ : public MatConstIterator -{ -public: - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; - - typedef std::random_access_iterator_tag iterator_category; - - //! default constructor - MatConstIterator_(); - //! constructor that sets the iterator to the beginning of the matrix - MatConstIterator_(const Mat_<_Tp>* _m); - //! constructor that sets the iterator to the specified element of the matrix - MatConstIterator_(const Mat_<_Tp>* _m, int _row, int _col=0); - //! constructor that sets the iterator to the specified element of the matrix - MatConstIterator_(const Mat_<_Tp>* _m, Point _pt); - //! constructor that sets the iterator to the specified element of the matrix - MatConstIterator_(const Mat_<_Tp>* _m, const int* _idx); - //! copy constructor - MatConstIterator_(const MatConstIterator_& it); - - //! copy operator - MatConstIterator_& operator = (const MatConstIterator_& it); - //! returns the current matrix element - const _Tp& operator *() const; - //! returns the i-th matrix element, relative to the current - const _Tp& operator [](ptrdiff_t i) const; - - //! shifts the iterator forward by the specified number of elements - MatConstIterator_& operator += (ptrdiff_t ofs); - //! shifts the iterator backward by the specified number of elements - MatConstIterator_& operator -= (ptrdiff_t ofs); - //! decrements the iterator - MatConstIterator_& operator --(); - //! decrements the iterator - MatConstIterator_ operator --(int); - //! increments the iterator - MatConstIterator_& operator ++(); - //! increments the iterator - MatConstIterator_ operator ++(int); - //! returns the current iterator position - Point pos() const; -}; - - - -//////////////////////////////////// MatIterator_ //////////////////////////////////// - -/** @brief Matrix read-write iterator -*/ -template -class MatIterator_ : public MatConstIterator_<_Tp> -{ -public: - typedef _Tp* pointer; - typedef _Tp& reference; - - typedef std::random_access_iterator_tag iterator_category; - - //! the default constructor - MatIterator_(); - //! constructor that sets the iterator to the beginning of the matrix - MatIterator_(Mat_<_Tp>* _m); - //! constructor that sets the iterator to the specified element of the matrix - MatIterator_(Mat_<_Tp>* _m, int _row, int _col=0); - //! constructor that sets the iterator to the specified element of the matrix - MatIterator_(Mat_<_Tp>* _m, Point _pt); - //! constructor that sets the iterator to the specified element of the matrix - MatIterator_(Mat_<_Tp>* _m, const int* _idx); - //! copy constructor - MatIterator_(const MatIterator_& it); - //! copy operator - MatIterator_& operator = (const MatIterator_<_Tp>& it ); - - //! returns the current matrix element - _Tp& operator *() const; - //! returns the i-th matrix element, relative to the current - _Tp& operator [](ptrdiff_t i) const; - - //! shifts the iterator forward by the specified number of elements - MatIterator_& operator += (ptrdiff_t ofs); - //! shifts the iterator backward by the specified number of elements - MatIterator_& operator -= (ptrdiff_t ofs); - //! decrements the iterator - MatIterator_& operator --(); - //! decrements the iterator - MatIterator_ operator --(int); - //! increments the iterator - MatIterator_& operator ++(); - //! increments the iterator - MatIterator_ operator ++(int); -}; - - - -/////////////////////////////// SparseMatConstIterator /////////////////////////////// - -/** @brief Read-Only Sparse Matrix Iterator. - - Here is how to use the iterator to compute the sum of floating-point sparse matrix elements: - - \code - SparseMatConstIterator it = m.begin(), it_end = m.end(); - double s = 0; - CV_Assert( m.type() == CV_32F ); - for( ; it != it_end; ++it ) - s += it.value(); - \endcode -*/ -class CV_EXPORTS SparseMatConstIterator -{ -public: - //! the default constructor - SparseMatConstIterator(); - //! the full constructor setting the iterator to the first sparse matrix element - SparseMatConstIterator(const SparseMat* _m); - //! the copy constructor - SparseMatConstIterator(const SparseMatConstIterator& it); - - //! the assignment operator - SparseMatConstIterator& operator = (const SparseMatConstIterator& it); - - //! template method returning the current matrix element - template const _Tp& value() const; - //! returns the current node of the sparse matrix. it.node->idx is the current element index - const SparseMat::Node* node() const; - - //! moves iterator to the previous element - SparseMatConstIterator& operator --(); - //! moves iterator to the previous element - SparseMatConstIterator operator --(int); - //! moves iterator to the next element - SparseMatConstIterator& operator ++(); - //! moves iterator to the next element - SparseMatConstIterator operator ++(int); - - //! moves iterator to the element after the last element - void seekEnd(); - - const SparseMat* m; - size_t hashidx; - uchar* ptr; -}; - - - -////////////////////////////////// SparseMatIterator ///////////////////////////////// - -/** @brief Read-write Sparse Matrix Iterator - - The class is similar to cv::SparseMatConstIterator, - but can be used for in-place modification of the matrix elements. -*/ -class CV_EXPORTS SparseMatIterator : public SparseMatConstIterator -{ -public: - //! the default constructor - SparseMatIterator(); - //! the full constructor setting the iterator to the first sparse matrix element - SparseMatIterator(SparseMat* _m); - //! the full constructor setting the iterator to the specified sparse matrix element - SparseMatIterator(SparseMat* _m, const int* idx); - //! the copy constructor - SparseMatIterator(const SparseMatIterator& it); - - //! the assignment operator - SparseMatIterator& operator = (const SparseMatIterator& it); - //! returns read-write reference to the current sparse matrix element - template _Tp& value() const; - //! returns pointer to the current sparse matrix node. it.node->idx is the index of the current element (do not modify it!) - SparseMat::Node* node() const; - - //! moves iterator to the next element - SparseMatIterator& operator ++(); - //! moves iterator to the next element - SparseMatIterator operator ++(int); -}; - - - -/////////////////////////////// SparseMatConstIterator_ ////////////////////////////// - -/** @brief Template Read-Only Sparse Matrix Iterator Class. - - This is the derived from SparseMatConstIterator class that - introduces more convenient operator *() for accessing the current element. -*/ -template class SparseMatConstIterator_ : public SparseMatConstIterator -{ -public: - - typedef std::forward_iterator_tag iterator_category; - - //! the default constructor - SparseMatConstIterator_(); - //! the full constructor setting the iterator to the first sparse matrix element - SparseMatConstIterator_(const SparseMat_<_Tp>* _m); - SparseMatConstIterator_(const SparseMat* _m); - //! the copy constructor - SparseMatConstIterator_(const SparseMatConstIterator_& it); - - //! the assignment operator - SparseMatConstIterator_& operator = (const SparseMatConstIterator_& it); - //! the element access operator - const _Tp& operator *() const; - - //! moves iterator to the next element - SparseMatConstIterator_& operator ++(); - //! moves iterator to the next element - SparseMatConstIterator_ operator ++(int); -}; - - - -///////////////////////////////// SparseMatIterator_ ///////////////////////////////// - -/** @brief Template Read-Write Sparse Matrix Iterator Class. - - This is the derived from cv::SparseMatConstIterator_ class that - introduces more convenient operator *() for accessing the current element. -*/ -template class SparseMatIterator_ : public SparseMatConstIterator_<_Tp> -{ -public: - - typedef std::forward_iterator_tag iterator_category; - - //! the default constructor - SparseMatIterator_(); - //! the full constructor setting the iterator to the first sparse matrix element - SparseMatIterator_(SparseMat_<_Tp>* _m); - SparseMatIterator_(SparseMat* _m); - //! the copy constructor - SparseMatIterator_(const SparseMatIterator_& it); - - //! the assignment operator - SparseMatIterator_& operator = (const SparseMatIterator_& it); - //! returns the reference to the current element - _Tp& operator *() const; - - //! moves the iterator to the next element - SparseMatIterator_& operator ++(); - //! moves the iterator to the next element - SparseMatIterator_ operator ++(int); -}; - - - -/////////////////////////////////// NAryMatIterator ////////////////////////////////// - -/** @brief n-ary multi-dimensional array iterator. - -Use the class to implement unary, binary, and, generally, n-ary element-wise operations on -multi-dimensional arrays. Some of the arguments of an n-ary function may be continuous arrays, some -may be not. It is possible to use conventional MatIterator 's for each array but incrementing all of -the iterators after each small operations may be a big overhead. In this case consider using -NAryMatIterator to iterate through several matrices simultaneously as long as they have the same -geometry (dimensionality and all the dimension sizes are the same). On each iteration `it.planes[0]`, -`it.planes[1]`,... will be the slices of the corresponding matrices. - -The example below illustrates how you can compute a normalized and threshold 3D color histogram: -@code - void computeNormalizedColorHist(const Mat& image, Mat& hist, int N, double minProb) - { - const int histSize[] = {N, N, N}; - - // make sure that the histogram has a proper size and type - hist.create(3, histSize, CV_32F); - - // and clear it - hist = Scalar(0); - - // the loop below assumes that the image - // is a 8-bit 3-channel. check it. - CV_Assert(image.type() == CV_8UC3); - MatConstIterator_ it = image.begin(), - it_end = image.end(); - for( ; it != it_end; ++it ) - { - const Vec3b& pix = *it; - hist.at(pix[0]*N/256, pix[1]*N/256, pix[2]*N/256) += 1.f; - } - - minProb *= image.rows*image.cols; - - // initialize iterator (the style is different from STL). - // after initialization the iterator will contain - // the number of slices or planes the iterator will go through. - // it simultaneously increments iterators for several matrices - // supplied as a null terminated list of pointers - const Mat* arrays[] = {&hist, 0}; - Mat planes[1]; - NAryMatIterator itNAry(arrays, planes, 1); - double s = 0; - // iterate through the matrix. on each iteration - // itNAry.planes[i] (of type Mat) will be set to the current plane - // of the i-th n-dim matrix passed to the iterator constructor. - for(int p = 0; p < itNAry.nplanes; p++, ++itNAry) - { - threshold(itNAry.planes[0], itNAry.planes[0], minProb, 0, THRESH_TOZERO); - s += sum(itNAry.planes[0])[0]; - } - - s = 1./s; - itNAry = NAryMatIterator(arrays, planes, 1); - for(int p = 0; p < itNAry.nplanes; p++, ++itNAry) - itNAry.planes[0] *= s; - } -@endcode - */ -class CV_EXPORTS NAryMatIterator -{ -public: - //! the default constructor - NAryMatIterator(); - //! the full constructor taking arbitrary number of n-dim matrices - NAryMatIterator(const Mat** arrays, uchar** ptrs, int narrays=-1); - //! the full constructor taking arbitrary number of n-dim matrices - NAryMatIterator(const Mat** arrays, Mat* planes, int narrays=-1); - //! the separate iterator initialization method - void init(const Mat** arrays, Mat* planes, uchar** ptrs, int narrays=-1); - - //! proceeds to the next plane of every iterated matrix - NAryMatIterator& operator ++(); - //! proceeds to the next plane of every iterated matrix (postfix increment operator) - NAryMatIterator operator ++(int); - - //! the iterated arrays - const Mat** arrays; - //! the current planes - Mat* planes; - //! data pointers - uchar** ptrs; - //! the number of arrays - int narrays; - //! the number of hyper-planes that the iterator steps through - size_t nplanes; - //! the size of each segment (in elements) - size_t size; -protected: - int iterdepth; - size_t idx; -}; - - - -///////////////////////////////// Matrix Expressions ///////////////////////////////// - -class CV_EXPORTS MatOp -{ -public: - MatOp(); - virtual ~MatOp(); - - virtual bool elementWise(const MatExpr& expr) const; - virtual void assign(const MatExpr& expr, Mat& m, int type=-1) const = 0; - virtual void roi(const MatExpr& expr, const Range& rowRange, - const Range& colRange, MatExpr& res) const; - virtual void diag(const MatExpr& expr, int d, MatExpr& res) const; - virtual void augAssignAdd(const MatExpr& expr, Mat& m) const; - virtual void augAssignSubtract(const MatExpr& expr, Mat& m) const; - virtual void augAssignMultiply(const MatExpr& expr, Mat& m) const; - virtual void augAssignDivide(const MatExpr& expr, Mat& m) const; - virtual void augAssignAnd(const MatExpr& expr, Mat& m) const; - virtual void augAssignOr(const MatExpr& expr, Mat& m) const; - virtual void augAssignXor(const MatExpr& expr, Mat& m) const; - - virtual void add(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res) const; - virtual void add(const MatExpr& expr1, const Scalar& s, MatExpr& res) const; - - virtual void subtract(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res) const; - virtual void subtract(const Scalar& s, const MatExpr& expr, MatExpr& res) const; - - virtual void multiply(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res, double scale=1) const; - virtual void multiply(const MatExpr& expr1, double s, MatExpr& res) const; - - virtual void divide(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res, double scale=1) const; - virtual void divide(double s, const MatExpr& expr, MatExpr& res) const; - - virtual void abs(const MatExpr& expr, MatExpr& res) const; - - virtual void transpose(const MatExpr& expr, MatExpr& res) const; - virtual void matmul(const MatExpr& expr1, const MatExpr& expr2, MatExpr& res) const; - virtual void invert(const MatExpr& expr, int method, MatExpr& res) const; - - virtual Size size(const MatExpr& expr) const; - virtual int type(const MatExpr& expr) const; -}; - -/** @brief Matrix expression representation -@anchor MatrixExpressions -This is a list of implemented matrix operations that can be combined in arbitrary complex -expressions (here A, B stand for matrices ( Mat ), s for a scalar ( Scalar ), alpha for a -real-valued scalar ( double )): -- Addition, subtraction, negation: `A+B`, `A-B`, `A+s`, `A-s`, `s+A`, `s-A`, `-A` -- Scaling: `A*alpha` -- Per-element multiplication and division: `A.mul(B)`, `A/B`, `alpha/A` -- Matrix multiplication: `A*B` -- Transposition: `A.t()` (means AT) -- Matrix inversion and pseudo-inversion, solving linear systems and least-squares problems: - `A.inv([method]) (~ A-1)`, `A.inv([method])*B (~ X: AX=B)` -- Comparison: `A cmpop B`, `A cmpop alpha`, `alpha cmpop A`, where *cmpop* is one of - `>`, `>=`, `==`, `!=`, `<=`, `<`. The result of comparison is an 8-bit single channel mask whose - elements are set to 255 (if the particular element or pair of elements satisfy the condition) or - 0. -- Bitwise logical operations: `A logicop B`, `A logicop s`, `s logicop A`, `~A`, where *logicop* is one of - `&`, `|`, `^`. -- Element-wise minimum and maximum: `min(A, B)`, `min(A, alpha)`, `max(A, B)`, `max(A, alpha)` -- Element-wise absolute value: `abs(A)` -- Cross-product, dot-product: `A.cross(B)`, `A.dot(B)` -- Any function of matrix or matrices and scalars that returns a matrix or a scalar, such as norm, - mean, sum, countNonZero, trace, determinant, repeat, and others. -- Matrix initializers ( Mat::eye(), Mat::zeros(), Mat::ones() ), matrix comma-separated - initializers, matrix constructors and operators that extract sub-matrices (see Mat description). -- Mat_() constructors to cast the result to the proper type. -@note Comma-separated initializers and probably some other operations may require additional -explicit Mat() or Mat_() constructor calls to resolve a possible ambiguity. - -Here are examples of matrix expressions: -@code - // compute pseudo-inverse of A, equivalent to A.inv(DECOMP_SVD) - SVD svd(A); - Mat pinvA = svd.vt.t()*Mat::diag(1./svd.w)*svd.u.t(); - - // compute the new vector of parameters in the Levenberg-Marquardt algorithm - x -= (A.t()*A + lambda*Mat::eye(A.cols,A.cols,A.type())).inv(DECOMP_CHOLESKY)*(A.t()*err); - - // sharpen image using "unsharp mask" algorithm - Mat blurred; double sigma = 1, threshold = 5, amount = 1; - GaussianBlur(img, blurred, Size(), sigma, sigma); - Mat lowContrastMask = abs(img - blurred) < threshold; - Mat sharpened = img*(1+amount) + blurred*(-amount); - img.copyTo(sharpened, lowContrastMask); -@endcode -*/ -class CV_EXPORTS MatExpr -{ -public: - MatExpr(); - explicit MatExpr(const Mat& m); - - MatExpr(const MatOp* _op, int _flags, const Mat& _a = Mat(), const Mat& _b = Mat(), - const Mat& _c = Mat(), double _alpha = 1, double _beta = 1, const Scalar& _s = Scalar()); - - operator Mat() const; - template operator Mat_<_Tp>() const; - - Size size() const; - int type() const; - - MatExpr row(int y) const; - MatExpr col(int x) const; - MatExpr diag(int d = 0) const; - MatExpr operator()( const Range& rowRange, const Range& colRange ) const; - MatExpr operator()( const Rect& roi ) const; - - MatExpr t() const; - MatExpr inv(int method = DECOMP_LU) const; - MatExpr mul(const MatExpr& e, double scale=1) const; - MatExpr mul(const Mat& m, double scale=1) const; - - Mat cross(const Mat& m) const; - double dot(const Mat& m) const; - - const MatOp* op; - int flags; - - Mat a, b, c; - double alpha, beta; - Scalar s; -}; - -//! @} core_basic - -//! @relates cv::MatExpr -//! @{ -CV_EXPORTS MatExpr operator + (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator + (const Mat& a, const Scalar& s); -CV_EXPORTS MatExpr operator + (const Scalar& s, const Mat& a); -CV_EXPORTS MatExpr operator + (const MatExpr& e, const Mat& m); -CV_EXPORTS MatExpr operator + (const Mat& m, const MatExpr& e); -CV_EXPORTS MatExpr operator + (const MatExpr& e, const Scalar& s); -CV_EXPORTS MatExpr operator + (const Scalar& s, const MatExpr& e); -CV_EXPORTS MatExpr operator + (const MatExpr& e1, const MatExpr& e2); - -CV_EXPORTS MatExpr operator - (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator - (const Mat& a, const Scalar& s); -CV_EXPORTS MatExpr operator - (const Scalar& s, const Mat& a); -CV_EXPORTS MatExpr operator - (const MatExpr& e, const Mat& m); -CV_EXPORTS MatExpr operator - (const Mat& m, const MatExpr& e); -CV_EXPORTS MatExpr operator - (const MatExpr& e, const Scalar& s); -CV_EXPORTS MatExpr operator - (const Scalar& s, const MatExpr& e); -CV_EXPORTS MatExpr operator - (const MatExpr& e1, const MatExpr& e2); - -CV_EXPORTS MatExpr operator - (const Mat& m); -CV_EXPORTS MatExpr operator - (const MatExpr& e); - -CV_EXPORTS MatExpr operator * (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator * (const Mat& a, double s); -CV_EXPORTS MatExpr operator * (double s, const Mat& a); -CV_EXPORTS MatExpr operator * (const MatExpr& e, const Mat& m); -CV_EXPORTS MatExpr operator * (const Mat& m, const MatExpr& e); -CV_EXPORTS MatExpr operator * (const MatExpr& e, double s); -CV_EXPORTS MatExpr operator * (double s, const MatExpr& e); -CV_EXPORTS MatExpr operator * (const MatExpr& e1, const MatExpr& e2); - -CV_EXPORTS MatExpr operator / (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator / (const Mat& a, double s); -CV_EXPORTS MatExpr operator / (double s, const Mat& a); -CV_EXPORTS MatExpr operator / (const MatExpr& e, const Mat& m); -CV_EXPORTS MatExpr operator / (const Mat& m, const MatExpr& e); -CV_EXPORTS MatExpr operator / (const MatExpr& e, double s); -CV_EXPORTS MatExpr operator / (double s, const MatExpr& e); -CV_EXPORTS MatExpr operator / (const MatExpr& e1, const MatExpr& e2); - -CV_EXPORTS MatExpr operator < (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator < (const Mat& a, double s); -CV_EXPORTS MatExpr operator < (double s, const Mat& a); - -CV_EXPORTS MatExpr operator <= (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator <= (const Mat& a, double s); -CV_EXPORTS MatExpr operator <= (double s, const Mat& a); - -CV_EXPORTS MatExpr operator == (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator == (const Mat& a, double s); -CV_EXPORTS MatExpr operator == (double s, const Mat& a); - -CV_EXPORTS MatExpr operator != (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator != (const Mat& a, double s); -CV_EXPORTS MatExpr operator != (double s, const Mat& a); - -CV_EXPORTS MatExpr operator >= (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator >= (const Mat& a, double s); -CV_EXPORTS MatExpr operator >= (double s, const Mat& a); - -CV_EXPORTS MatExpr operator > (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator > (const Mat& a, double s); -CV_EXPORTS MatExpr operator > (double s, const Mat& a); - -CV_EXPORTS MatExpr operator & (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator & (const Mat& a, const Scalar& s); -CV_EXPORTS MatExpr operator & (const Scalar& s, const Mat& a); - -CV_EXPORTS MatExpr operator | (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator | (const Mat& a, const Scalar& s); -CV_EXPORTS MatExpr operator | (const Scalar& s, const Mat& a); - -CV_EXPORTS MatExpr operator ^ (const Mat& a, const Mat& b); -CV_EXPORTS MatExpr operator ^ (const Mat& a, const Scalar& s); -CV_EXPORTS MatExpr operator ^ (const Scalar& s, const Mat& a); - -CV_EXPORTS MatExpr operator ~(const Mat& m); - -CV_EXPORTS MatExpr min(const Mat& a, const Mat& b); -CV_EXPORTS MatExpr min(const Mat& a, double s); -CV_EXPORTS MatExpr min(double s, const Mat& a); - -CV_EXPORTS MatExpr max(const Mat& a, const Mat& b); -CV_EXPORTS MatExpr max(const Mat& a, double s); -CV_EXPORTS MatExpr max(double s, const Mat& a); - -/** @brief Calculates an absolute value of each matrix element. - -abs is a meta-function that is expanded to one of absdiff or convertScaleAbs forms: -- C = abs(A-B) is equivalent to `absdiff(A, B, C)` -- C = abs(A) is equivalent to `absdiff(A, Scalar::all(0), C)` -- C = `Mat_ >(abs(A*alpha + beta))` is equivalent to `convertScaleAbs(A, C, alpha, -beta)` - -The output matrix has the same size and the same type as the input one except for the last case, -where C is depth=CV_8U . -@param m matrix. -@sa @ref MatrixExpressions, absdiff, convertScaleAbs - */ -CV_EXPORTS MatExpr abs(const Mat& m); -/** @overload -@param e matrix expression. -*/ -CV_EXPORTS MatExpr abs(const MatExpr& e); -//! @} relates cv::MatExpr - -} // cv - -#include "opencv2/core/mat.inl.hpp" - -#endif // OPENCV_CORE_MAT_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/operations.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/operations.hpp deleted file mode 100644 index 9858d067f..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/operations.hpp +++ /dev/null @@ -1,532 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_OPERATIONS_HPP -#define OPENCV_CORE_OPERATIONS_HPP - -#ifndef __cplusplus -# error operations.hpp header must be compiled as C++ -#endif - -#include - -//! @cond IGNORED - -namespace cv -{ - -////////////////////////////// Matx methods depending on core API ///////////////////////////// - -namespace internal -{ - -template struct Matx_FastInvOp -{ - bool operator()(const Matx<_Tp, m, m>& a, Matx<_Tp, m, m>& b, int method) const - { - Matx<_Tp, m, m> temp = a; - - // assume that b is all 0's on input => make it a unity matrix - for( int i = 0; i < m; i++ ) - b(i, i) = (_Tp)1; - - if( method == DECOMP_CHOLESKY ) - return Cholesky(temp.val, m*sizeof(_Tp), m, b.val, m*sizeof(_Tp), m); - - return LU(temp.val, m*sizeof(_Tp), m, b.val, m*sizeof(_Tp), m) != 0; - } -}; - -template struct Matx_FastInvOp<_Tp, 2> -{ - bool operator()(const Matx<_Tp, 2, 2>& a, Matx<_Tp, 2, 2>& b, int) const - { - _Tp d = (_Tp)determinant(a); - if( d == 0 ) - return false; - d = 1/d; - b(1,1) = a(0,0)*d; - b(0,0) = a(1,1)*d; - b(0,1) = -a(0,1)*d; - b(1,0) = -a(1,0)*d; - return true; - } -}; - -template struct Matx_FastInvOp<_Tp, 3> -{ - bool operator()(const Matx<_Tp, 3, 3>& a, Matx<_Tp, 3, 3>& b, int) const - { - _Tp d = (_Tp)determinant(a); - if( d == 0 ) - return false; - d = 1/d; - b(0,0) = (a(1,1) * a(2,2) - a(1,2) * a(2,1)) * d; - b(0,1) = (a(0,2) * a(2,1) - a(0,1) * a(2,2)) * d; - b(0,2) = (a(0,1) * a(1,2) - a(0,2) * a(1,1)) * d; - - b(1,0) = (a(1,2) * a(2,0) - a(1,0) * a(2,2)) * d; - b(1,1) = (a(0,0) * a(2,2) - a(0,2) * a(2,0)) * d; - b(1,2) = (a(0,2) * a(1,0) - a(0,0) * a(1,2)) * d; - - b(2,0) = (a(1,0) * a(2,1) - a(1,1) * a(2,0)) * d; - b(2,1) = (a(0,1) * a(2,0) - a(0,0) * a(2,1)) * d; - b(2,2) = (a(0,0) * a(1,1) - a(0,1) * a(1,0)) * d; - return true; - } -}; - - -template struct Matx_FastSolveOp -{ - bool operator()(const Matx<_Tp, m, m>& a, const Matx<_Tp, m, n>& b, - Matx<_Tp, m, n>& x, int method) const - { - Matx<_Tp, m, m> temp = a; - x = b; - if( method == DECOMP_CHOLESKY ) - return Cholesky(temp.val, m*sizeof(_Tp), m, x.val, n*sizeof(_Tp), n); - - return LU(temp.val, m*sizeof(_Tp), m, x.val, n*sizeof(_Tp), n) != 0; - } -}; - -template struct Matx_FastSolveOp<_Tp, 2, 1> -{ - bool operator()(const Matx<_Tp, 2, 2>& a, const Matx<_Tp, 2, 1>& b, - Matx<_Tp, 2, 1>& x, int) const - { - _Tp d = (_Tp)determinant(a); - if( d == 0 ) - return false; - d = 1/d; - x(0) = (b(0)*a(1,1) - b(1)*a(0,1))*d; - x(1) = (b(1)*a(0,0) - b(0)*a(1,0))*d; - return true; - } -}; - -template struct Matx_FastSolveOp<_Tp, 3, 1> -{ - bool operator()(const Matx<_Tp, 3, 3>& a, const Matx<_Tp, 3, 1>& b, - Matx<_Tp, 3, 1>& x, int) const - { - _Tp d = (_Tp)determinant(a); - if( d == 0 ) - return false; - d = 1/d; - x(0) = d*(b(0)*(a(1,1)*a(2,2) - a(1,2)*a(2,1)) - - a(0,1)*(b(1)*a(2,2) - a(1,2)*b(2)) + - a(0,2)*(b(1)*a(2,1) - a(1,1)*b(2))); - - x(1) = d*(a(0,0)*(b(1)*a(2,2) - a(1,2)*b(2)) - - b(0)*(a(1,0)*a(2,2) - a(1,2)*a(2,0)) + - a(0,2)*(a(1,0)*b(2) - b(1)*a(2,0))); - - x(2) = d*(a(0,0)*(a(1,1)*b(2) - b(1)*a(2,1)) - - a(0,1)*(a(1,0)*b(2) - b(1)*a(2,0)) + - b(0)*(a(1,0)*a(2,1) - a(1,1)*a(2,0))); - return true; - } -}; - -} // internal - -template inline -Matx<_Tp,m,n> Matx<_Tp,m,n>::randu(_Tp a, _Tp b) -{ - Matx<_Tp,m,n> M; - cv::randu(M, Scalar(a), Scalar(b)); - return M; -} - -template inline -Matx<_Tp,m,n> Matx<_Tp,m,n>::randn(_Tp a, _Tp b) -{ - Matx<_Tp,m,n> M; - cv::randn(M, Scalar(a), Scalar(b)); - return M; -} - -template inline -Matx<_Tp, n, m> Matx<_Tp, m, n>::inv(int method, bool *p_is_ok /*= NULL*/) const -{ - Matx<_Tp, n, m> b; - bool ok; - if( method == DECOMP_LU || method == DECOMP_CHOLESKY ) - ok = cv::internal::Matx_FastInvOp<_Tp, m>()(*this, b, method); - else - { - Mat A(*this, false), B(b, false); - ok = (invert(A, B, method) != 0); - } - if( NULL != p_is_ok ) { *p_is_ok = ok; } - return ok ? b : Matx<_Tp, n, m>::zeros(); -} - -template template inline -Matx<_Tp, n, l> Matx<_Tp, m, n>::solve(const Matx<_Tp, m, l>& rhs, int method) const -{ - Matx<_Tp, n, l> x; - bool ok; - if( method == DECOMP_LU || method == DECOMP_CHOLESKY ) - ok = cv::internal::Matx_FastSolveOp<_Tp, m, l>()(*this, rhs, x, method); - else - { - Mat A(*this, false), B(rhs, false), X(x, false); - ok = cv::solve(A, B, X, method); - } - - return ok ? x : Matx<_Tp, n, l>::zeros(); -} - - - -////////////////////////// Augmenting algebraic & logical operations ////////////////////////// - -#define CV_MAT_AUG_OPERATOR1(op, cvop, A, B) \ - static inline A& operator op (A& a, const B& b) { cvop; return a; } - -#define CV_MAT_AUG_OPERATOR(op, cvop, A, B) \ - CV_MAT_AUG_OPERATOR1(op, cvop, A, B) \ - CV_MAT_AUG_OPERATOR1(op, cvop, const A, B) - -#define CV_MAT_AUG_OPERATOR_T(op, cvop, A, B) \ - template CV_MAT_AUG_OPERATOR1(op, cvop, A, B) \ - template CV_MAT_AUG_OPERATOR1(op, cvop, const A, B) - -CV_MAT_AUG_OPERATOR (+=, cv::add(a,b,a), Mat, Mat) -CV_MAT_AUG_OPERATOR (+=, cv::add(a,b,a), Mat, Scalar) -CV_MAT_AUG_OPERATOR_T(+=, cv::add(a,b,a), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(+=, cv::add(a,b,a), Mat_<_Tp>, Scalar) -CV_MAT_AUG_OPERATOR_T(+=, cv::add(a,b,a), Mat_<_Tp>, Mat_<_Tp>) - -CV_MAT_AUG_OPERATOR (-=, cv::subtract(a,b,a), Mat, Mat) -CV_MAT_AUG_OPERATOR (-=, cv::subtract(a,b,a), Mat, Scalar) -CV_MAT_AUG_OPERATOR_T(-=, cv::subtract(a,b,a), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(-=, cv::subtract(a,b,a), Mat_<_Tp>, Scalar) -CV_MAT_AUG_OPERATOR_T(-=, cv::subtract(a,b,a), Mat_<_Tp>, Mat_<_Tp>) - -CV_MAT_AUG_OPERATOR (*=, cv::gemm(a, b, 1, Mat(), 0, a, 0), Mat, Mat) -CV_MAT_AUG_OPERATOR_T(*=, cv::gemm(a, b, 1, Mat(), 0, a, 0), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(*=, cv::gemm(a, b, 1, Mat(), 0, a, 0), Mat_<_Tp>, Mat_<_Tp>) -CV_MAT_AUG_OPERATOR (*=, a.convertTo(a, -1, b), Mat, double) -CV_MAT_AUG_OPERATOR_T(*=, a.convertTo(a, -1, b), Mat_<_Tp>, double) - -CV_MAT_AUG_OPERATOR (/=, cv::divide(a,b,a), Mat, Mat) -CV_MAT_AUG_OPERATOR_T(/=, cv::divide(a,b,a), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(/=, cv::divide(a,b,a), Mat_<_Tp>, Mat_<_Tp>) -CV_MAT_AUG_OPERATOR (/=, a.convertTo((Mat&)a, -1, 1./b), Mat, double) -CV_MAT_AUG_OPERATOR_T(/=, a.convertTo((Mat&)a, -1, 1./b), Mat_<_Tp>, double) - -CV_MAT_AUG_OPERATOR (&=, cv::bitwise_and(a,b,a), Mat, Mat) -CV_MAT_AUG_OPERATOR (&=, cv::bitwise_and(a,b,a), Mat, Scalar) -CV_MAT_AUG_OPERATOR_T(&=, cv::bitwise_and(a,b,a), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(&=, cv::bitwise_and(a,b,a), Mat_<_Tp>, Scalar) -CV_MAT_AUG_OPERATOR_T(&=, cv::bitwise_and(a,b,a), Mat_<_Tp>, Mat_<_Tp>) - -CV_MAT_AUG_OPERATOR (|=, cv::bitwise_or(a,b,a), Mat, Mat) -CV_MAT_AUG_OPERATOR (|=, cv::bitwise_or(a,b,a), Mat, Scalar) -CV_MAT_AUG_OPERATOR_T(|=, cv::bitwise_or(a,b,a), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(|=, cv::bitwise_or(a,b,a), Mat_<_Tp>, Scalar) -CV_MAT_AUG_OPERATOR_T(|=, cv::bitwise_or(a,b,a), Mat_<_Tp>, Mat_<_Tp>) - -CV_MAT_AUG_OPERATOR (^=, cv::bitwise_xor(a,b,a), Mat, Mat) -CV_MAT_AUG_OPERATOR (^=, cv::bitwise_xor(a,b,a), Mat, Scalar) -CV_MAT_AUG_OPERATOR_T(^=, cv::bitwise_xor(a,b,a), Mat_<_Tp>, Mat) -CV_MAT_AUG_OPERATOR_T(^=, cv::bitwise_xor(a,b,a), Mat_<_Tp>, Scalar) -CV_MAT_AUG_OPERATOR_T(^=, cv::bitwise_xor(a,b,a), Mat_<_Tp>, Mat_<_Tp>) - -#undef CV_MAT_AUG_OPERATOR_T -#undef CV_MAT_AUG_OPERATOR -#undef CV_MAT_AUG_OPERATOR1 - - - -///////////////////////////////////////////// SVD ///////////////////////////////////////////// - -inline SVD::SVD() {} -inline SVD::SVD( InputArray m, int flags ) { operator ()(m, flags); } -inline void SVD::solveZ( InputArray m, OutputArray _dst ) -{ - Mat mtx = m.getMat(); - SVD svd(mtx, (mtx.rows >= mtx.cols ? 0 : SVD::FULL_UV)); - _dst.create(svd.vt.cols, 1, svd.vt.type()); - Mat dst = _dst.getMat(); - svd.vt.row(svd.vt.rows-1).reshape(1,svd.vt.cols).copyTo(dst); -} - -template inline void - SVD::compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w, Matx<_Tp, m, nm>& u, Matx<_Tp, n, nm>& vt ) -{ - CV_StaticAssert( nm == MIN(m, n), "Invalid size of output vector."); - Mat _a(a, false), _u(u, false), _w(w, false), _vt(vt, false); - SVD::compute(_a, _w, _u, _vt); - CV_Assert(_w.data == (uchar*)&w.val[0] && _u.data == (uchar*)&u.val[0] && _vt.data == (uchar*)&vt.val[0]); -} - -template inline void -SVD::compute( const Matx<_Tp, m, n>& a, Matx<_Tp, nm, 1>& w ) -{ - CV_StaticAssert( nm == MIN(m, n), "Invalid size of output vector."); - Mat _a(a, false), _w(w, false); - SVD::compute(_a, _w); - CV_Assert(_w.data == (uchar*)&w.val[0]); -} - -template inline void -SVD::backSubst( const Matx<_Tp, nm, 1>& w, const Matx<_Tp, m, nm>& u, - const Matx<_Tp, n, nm>& vt, const Matx<_Tp, m, nb>& rhs, - Matx<_Tp, n, nb>& dst ) -{ - CV_StaticAssert( nm == MIN(m, n), "Invalid size of output vector."); - Mat _u(u, false), _w(w, false), _vt(vt, false), _rhs(rhs, false), _dst(dst, false); - SVD::backSubst(_w, _u, _vt, _rhs, _dst); - CV_Assert(_dst.data == (uchar*)&dst.val[0]); -} - - - -/////////////////////////////////// Multiply-with-Carry RNG /////////////////////////////////// - -inline RNG::RNG() { state = 0xffffffff; } -inline RNG::RNG(uint64 _state) { state = _state ? _state : 0xffffffff; } - -inline RNG::operator uchar() { return (uchar)next(); } -inline RNG::operator schar() { return (schar)next(); } -inline RNG::operator ushort() { return (ushort)next(); } -inline RNG::operator short() { return (short)next(); } -inline RNG::operator int() { return (int)next(); } -inline RNG::operator unsigned() { return next(); } -inline RNG::operator float() { return next()*2.3283064365386962890625e-10f; } -inline RNG::operator double() { unsigned t = next(); return (((uint64)t << 32) | next()) * 5.4210108624275221700372640043497e-20; } - -inline unsigned RNG::operator ()(unsigned N) { return (unsigned)uniform(0,N); } -inline unsigned RNG::operator ()() { return next(); } - -inline int RNG::uniform(int a, int b) { return a == b ? a : (int)(next() % (b - a) + a); } -inline float RNG::uniform(float a, float b) { return ((float)*this)*(b - a) + a; } -inline double RNG::uniform(double a, double b) { return ((double)*this)*(b - a) + a; } - -inline bool RNG::operator ==(const RNG& other) const { return state == other.state; } - -inline unsigned RNG::next() -{ - state = (uint64)(unsigned)state* /*CV_RNG_COEFF*/ 4164903690U + (unsigned)(state >> 32); - return (unsigned)state; -} - -//! returns the next unifomly-distributed random number of the specified type -template static inline _Tp randu() -{ - return (_Tp)theRNG(); -} - -///////////////////////////////// Formatted string generation ///////////////////////////////// - -CV_EXPORTS String format( const char* fmt, ... ); - -///////////////////////////////// Formatted output of cv::Mat ///////////////////////////////// - -static inline -Ptr format(InputArray mtx, int fmt) -{ - return Formatter::get(fmt)->format(mtx.getMat()); -} - -static inline -int print(Ptr fmtd, FILE* stream = stdout) -{ - int written = 0; - fmtd->reset(); - for(const char* str = fmtd->next(); str; str = fmtd->next()) - written += fputs(str, stream); - - return written; -} - -static inline -int print(const Mat& mtx, FILE* stream = stdout) -{ - return print(Formatter::get()->format(mtx), stream); -} - -static inline -int print(const UMat& mtx, FILE* stream = stdout) -{ - return print(Formatter::get()->format(mtx.getMat(ACCESS_READ)), stream); -} - -template static inline -int print(const std::vector >& vec, FILE* stream = stdout) -{ - return print(Formatter::get()->format(Mat(vec)), stream); -} - -template static inline -int print(const std::vector >& vec, FILE* stream = stdout) -{ - return print(Formatter::get()->format(Mat(vec)), stream); -} - -template static inline -int print(const Matx<_Tp, m, n>& matx, FILE* stream = stdout) -{ - return print(Formatter::get()->format(cv::Mat(matx)), stream); -} - -//! @endcond - -/****************************************************************************************\ -* Auxiliary algorithms * -\****************************************************************************************/ - -/** @brief Splits an element set into equivalency classes. - -The generic function partition implements an \f$O(N^2)\f$ algorithm for splitting a set of \f$N\f$ elements -into one or more equivalency classes, as described in - . The function returns the number of -equivalency classes. -@param _vec Set of elements stored as a vector. -@param labels Output vector of labels. It contains as many elements as vec. Each label labels[i] is -a 0-based cluster index of `vec[i]`. -@param predicate Equivalence predicate (pointer to a boolean function of two arguments or an -instance of the class that has the method bool operator()(const _Tp& a, const _Tp& b) ). The -predicate returns true when the elements are certainly in the same class, and returns false if they -may or may not be in the same class. -@ingroup core_cluster -*/ -template int -partition( const std::vector<_Tp>& _vec, std::vector& labels, - _EqPredicate predicate=_EqPredicate()) -{ - int i, j, N = (int)_vec.size(); - const _Tp* vec = &_vec[0]; - - const int PARENT=0; - const int RANK=1; - - std::vector _nodes(N*2); - int (*nodes)[2] = (int(*)[2])&_nodes[0]; - - // The first O(N) pass: create N single-vertex trees - for(i = 0; i < N; i++) - { - nodes[i][PARENT]=-1; - nodes[i][RANK] = 0; - } - - // The main O(N^2) pass: merge connected components - for( i = 0; i < N; i++ ) - { - int root = i; - - // find root - while( nodes[root][PARENT] >= 0 ) - root = nodes[root][PARENT]; - - for( j = 0; j < N; j++ ) - { - if( i == j || !predicate(vec[i], vec[j])) - continue; - int root2 = j; - - while( nodes[root2][PARENT] >= 0 ) - root2 = nodes[root2][PARENT]; - - if( root2 != root ) - { - // unite both trees - int rank = nodes[root][RANK], rank2 = nodes[root2][RANK]; - if( rank > rank2 ) - nodes[root2][PARENT] = root; - else - { - nodes[root][PARENT] = root2; - nodes[root2][RANK] += rank == rank2; - root = root2; - } - CV_Assert( nodes[root][PARENT] < 0 ); - - int k = j, parent; - - // compress the path from node2 to root - while( (parent = nodes[k][PARENT]) >= 0 ) - { - nodes[k][PARENT] = root; - k = parent; - } - - // compress the path from node to root - k = i; - while( (parent = nodes[k][PARENT]) >= 0 ) - { - nodes[k][PARENT] = root; - k = parent; - } - } - } - } - - // Final O(N) pass: enumerate classes - labels.resize(N); - int nclasses = 0; - - for( i = 0; i < N; i++ ) - { - int root = i; - while( nodes[root][PARENT] >= 0 ) - root = nodes[root][PARENT]; - // re-use the rank as the class label - if( nodes[root][RANK] >= 0 ) - nodes[root][RANK] = ~nclasses++; - labels[i] = ~nodes[root][RANK]; - } - - return nclasses; -} - -} // cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ptr.inl.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/ptr.inl.hpp deleted file mode 100644 index 3c095a1f5..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/ptr.inl.hpp +++ /dev/null @@ -1,379 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2013, NVIDIA Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the copyright holders or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_PTR_INL_HPP -#define OPENCV_CORE_PTR_INL_HPP - -#include - -//! @cond IGNORED - -namespace cv { - -template -void DefaultDeleter::operator () (Y* p) const -{ - delete p; -} - -namespace detail -{ - -struct PtrOwner -{ - PtrOwner() : refCount(1) - {} - - void incRef() - { - CV_XADD(&refCount, 1); - } - - void decRef() - { - if (CV_XADD(&refCount, -1) == 1) deleteSelf(); - } - -protected: - /* This doesn't really need to be virtual, since PtrOwner is never deleted - directly, but it doesn't hurt and it helps avoid warnings. */ - virtual ~PtrOwner() - {} - - virtual void deleteSelf() = 0; - -private: - unsigned int refCount; - - // noncopyable - PtrOwner(const PtrOwner&); - PtrOwner& operator = (const PtrOwner&); -}; - -template -struct PtrOwnerImpl : PtrOwner -{ - PtrOwnerImpl(Y* p, D d) : owned(p), deleter(d) - {} - - void deleteSelf() - { - deleter(owned); - delete this; - } - -private: - Y* owned; - D deleter; -}; - - -} - -template -Ptr::Ptr() : owner(NULL), stored(NULL) -{} - -template -template -Ptr::Ptr(Y* p) - : owner(p - ? new detail::PtrOwnerImpl >(p, DefaultDeleter()) - : NULL), - stored(p) -{} - -template -template -Ptr::Ptr(Y* p, D d) - : owner(p - ? new detail::PtrOwnerImpl(p, d) - : NULL), - stored(p) -{} - -template -Ptr::Ptr(const Ptr& o) : owner(o.owner), stored(o.stored) -{ - if (owner) owner->incRef(); -} - -template -template -Ptr::Ptr(const Ptr& o) : owner(o.owner), stored(o.stored) -{ - if (owner) owner->incRef(); -} - -template -template -Ptr::Ptr(const Ptr& o, T* p) : owner(o.owner), stored(p) -{ - if (owner) owner->incRef(); -} - -template -Ptr::~Ptr() -{ - release(); -} - -template -Ptr& Ptr::operator = (const Ptr& o) -{ - Ptr(o).swap(*this); - return *this; -} - -template -template -Ptr& Ptr::operator = (const Ptr& o) -{ - Ptr(o).swap(*this); - return *this; -} - -template -void Ptr::release() -{ - if (owner) owner->decRef(); - owner = NULL; - stored = NULL; -} - -template -template -void Ptr::reset(Y* p) -{ - Ptr(p).swap(*this); -} - -template -template -void Ptr::reset(Y* p, D d) -{ - Ptr(p, d).swap(*this); -} - -template -void Ptr::swap(Ptr& o) -{ - std::swap(owner, o.owner); - std::swap(stored, o.stored); -} - -template -T* Ptr::get() const -{ - return stored; -} - -template -typename detail::RefOrVoid::type Ptr::operator * () const -{ - return *stored; -} - -template -T* Ptr::operator -> () const -{ - return stored; -} - -template -Ptr::operator T* () const -{ - return stored; -} - - -template -bool Ptr::empty() const -{ - return !stored; -} - -template -template -Ptr Ptr::staticCast() const -{ - return Ptr(*this, static_cast(stored)); -} - -template -template -Ptr Ptr::constCast() const -{ - return Ptr(*this, const_cast(stored)); -} - -template -template -Ptr Ptr::dynamicCast() const -{ - return Ptr(*this, dynamic_cast(stored)); -} - -#ifdef CV_CXX_MOVE_SEMANTICS - -template -Ptr::Ptr(Ptr&& o) : owner(o.owner), stored(o.stored) -{ - o.owner = NULL; - o.stored = NULL; -} - -template -Ptr& Ptr::operator = (Ptr&& o) -{ - if (this == &o) - return *this; - - release(); - owner = o.owner; - stored = o.stored; - o.owner = NULL; - o.stored = NULL; - return *this; -} - -#endif - - -template -void swap(Ptr& ptr1, Ptr& ptr2){ - ptr1.swap(ptr2); -} - -template -bool operator == (const Ptr& ptr1, const Ptr& ptr2) -{ - return ptr1.get() == ptr2.get(); -} - -template -bool operator != (const Ptr& ptr1, const Ptr& ptr2) -{ - return ptr1.get() != ptr2.get(); -} - -template -Ptr makePtr() -{ - return Ptr(new T()); -} - -template -Ptr makePtr(const A1& a1) -{ - return Ptr(new T(a1)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2) -{ - return Ptr(new T(a1, a2)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3) -{ - return Ptr(new T(a1, a2, a3)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4) -{ - return Ptr(new T(a1, a2, a3, a4)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5) -{ - return Ptr(new T(a1, a2, a3, a4, a5)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6, a7)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8, const A9& a9) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8, const A9& a9, const A10& a10) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8, const A9& a9, const A10& a10, const A11& a11) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)); -} - -template -Ptr makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5& a5, const A6& a6, const A7& a7, const A8& a8, const A9& a9, const A10& a10, const A11& a11, const A12& a12) -{ - return Ptr(new T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)); -} -} // namespace cv - -//! @endcond - -#endif // OPENCV_CORE_PTR_INL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/saturate.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/saturate.hpp deleted file mode 100644 index 118599f8f..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/saturate.hpp +++ /dev/null @@ -1,165 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2014, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_SATURATE_HPP -#define OPENCV_CORE_SATURATE_HPP - -#include "opencv2/core/cvdef.h" -#include "opencv2/core/fast_math.hpp" - -namespace cv -{ - -//! @addtogroup core_utils -//! @{ - -/////////////// saturate_cast (used in image & signal processing) /////////////////// - -/** @brief Template function for accurate conversion from one primitive type to another. - - The function saturate_cast resembles the standard C++ cast operations, such as static_cast\() - and others. It perform an efficient and accurate conversion from one primitive type to another - (see the introduction chapter). saturate in the name means that when the input value v is out of the - range of the target type, the result is not formed just by taking low bits of the input, but instead - the value is clipped. For example: - @code - uchar a = saturate_cast(-100); // a = 0 (UCHAR_MIN) - short b = saturate_cast(33333.33333); // b = 32767 (SHRT_MAX) - @endcode - Such clipping is done when the target type is unsigned char , signed char , unsigned short or - signed short . For 32-bit integers, no clipping is done. - - When the parameter is a floating-point value and the target type is an integer (8-, 16- or 32-bit), - the floating-point value is first rounded to the nearest integer and then clipped if needed (when - the target type is 8- or 16-bit). - - This operation is used in the simplest or most complex image processing functions in OpenCV. - - @param v Function parameter. - @sa add, subtract, multiply, divide, Mat::convertTo - */ -template static inline _Tp saturate_cast(uchar v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(schar v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(ushort v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(short v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(unsigned v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(int v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(float v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(double v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(int64 v) { return _Tp(v); } -/** @overload */ -template static inline _Tp saturate_cast(uint64 v) { return _Tp(v); } - -template<> inline uchar saturate_cast(schar v) { return (uchar)std::max((int)v, 0); } -template<> inline uchar saturate_cast(ushort v) { return (uchar)std::min((unsigned)v, (unsigned)UCHAR_MAX); } -template<> inline uchar saturate_cast(int v) { return (uchar)((unsigned)v <= UCHAR_MAX ? v : v > 0 ? UCHAR_MAX : 0); } -template<> inline uchar saturate_cast(short v) { return saturate_cast((int)v); } -template<> inline uchar saturate_cast(unsigned v) { return (uchar)std::min(v, (unsigned)UCHAR_MAX); } -template<> inline uchar saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline uchar saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline uchar saturate_cast(int64 v) { return (uchar)((uint64)v <= (uint64)UCHAR_MAX ? v : v > 0 ? UCHAR_MAX : 0); } -template<> inline uchar saturate_cast(uint64 v) { return (uchar)std::min(v, (uint64)UCHAR_MAX); } - -template<> inline schar saturate_cast(uchar v) { return (schar)std::min((int)v, SCHAR_MAX); } -template<> inline schar saturate_cast(ushort v) { return (schar)std::min((unsigned)v, (unsigned)SCHAR_MAX); } -template<> inline schar saturate_cast(int v) { return (schar)((unsigned)(v-SCHAR_MIN) <= (unsigned)UCHAR_MAX ? v : v > 0 ? SCHAR_MAX : SCHAR_MIN); } -template<> inline schar saturate_cast(short v) { return saturate_cast((int)v); } -template<> inline schar saturate_cast(unsigned v) { return (schar)std::min(v, (unsigned)SCHAR_MAX); } -template<> inline schar saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline schar saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline schar saturate_cast(int64 v) { return (schar)((uint64)((int64)v-SCHAR_MIN) <= (uint64)UCHAR_MAX ? v : v > 0 ? SCHAR_MAX : SCHAR_MIN); } -template<> inline schar saturate_cast(uint64 v) { return (schar)std::min(v, (uint64)SCHAR_MAX); } - -template<> inline ushort saturate_cast(schar v) { return (ushort)std::max((int)v, 0); } -template<> inline ushort saturate_cast(short v) { return (ushort)std::max((int)v, 0); } -template<> inline ushort saturate_cast(int v) { return (ushort)((unsigned)v <= (unsigned)USHRT_MAX ? v : v > 0 ? USHRT_MAX : 0); } -template<> inline ushort saturate_cast(unsigned v) { return (ushort)std::min(v, (unsigned)USHRT_MAX); } -template<> inline ushort saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline ushort saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline ushort saturate_cast(int64 v) { return (ushort)((uint64)v <= (uint64)USHRT_MAX ? v : v > 0 ? USHRT_MAX : 0); } -template<> inline ushort saturate_cast(uint64 v) { return (ushort)std::min(v, (uint64)USHRT_MAX); } - -template<> inline short saturate_cast(ushort v) { return (short)std::min((int)v, SHRT_MAX); } -template<> inline short saturate_cast(int v) { return (short)((unsigned)(v - SHRT_MIN) <= (unsigned)USHRT_MAX ? v : v > 0 ? SHRT_MAX : SHRT_MIN); } -template<> inline short saturate_cast(unsigned v) { return (short)std::min(v, (unsigned)SHRT_MAX); } -template<> inline short saturate_cast(float v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline short saturate_cast(double v) { int iv = cvRound(v); return saturate_cast(iv); } -template<> inline short saturate_cast(int64 v) { return (short)((uint64)((int64)v - SHRT_MIN) <= (uint64)USHRT_MAX ? v : v > 0 ? SHRT_MAX : SHRT_MIN); } -template<> inline short saturate_cast(uint64 v) { return (short)std::min(v, (uint64)SHRT_MAX); } - -template<> inline int saturate_cast(unsigned v) { return (int)std::min(v, (unsigned)INT_MAX); } -template<> inline int saturate_cast(int64 v) { return (int)((uint64)(v - INT_MIN) <= (uint64)UINT_MAX ? v : v > 0 ? INT_MAX : INT_MIN); } -template<> inline int saturate_cast(uint64 v) { return (int)std::min(v, (uint64)INT_MAX); } -template<> inline int saturate_cast(float v) { return cvRound(v); } -template<> inline int saturate_cast(double v) { return cvRound(v); } - -template<> inline unsigned saturate_cast(schar v) { return (unsigned)std::max(v, (schar)0); } -template<> inline unsigned saturate_cast(short v) { return (unsigned)std::max(v, (short)0); } -template<> inline unsigned saturate_cast(int v) { return (unsigned)std::max(v, (int)0); } -template<> inline unsigned saturate_cast(int64 v) { return (unsigned)((uint64)v <= (uint64)UINT_MAX ? v : v > 0 ? UINT_MAX : 0); } -template<> inline unsigned saturate_cast(uint64 v) { return (unsigned)std::min(v, (uint64)UINT_MAX); } -// we intentionally do not clip negative numbers, to make -1 become 0xffffffff etc. -template<> inline unsigned saturate_cast(float v) { return static_cast(cvRound(v)); } -template<> inline unsigned saturate_cast(double v) { return static_cast(cvRound(v)); } - -template<> inline uint64 saturate_cast(schar v) { return (uint64)std::max(v, (schar)0); } -template<> inline uint64 saturate_cast(short v) { return (uint64)std::max(v, (short)0); } -template<> inline uint64 saturate_cast(int v) { return (uint64)std::max(v, (int)0); } -template<> inline uint64 saturate_cast(int64 v) { return (uint64)std::max(v, (int64)0); } - -template<> inline int64 saturate_cast(uint64 v) { return (int64)std::min(v, (uint64)LLONG_MAX); } - -//! @} - -} // cv - -#endif // OPENCV_CORE_SATURATE_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/traits.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/traits.hpp deleted file mode 100644 index 6cb10f44c..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/traits.hpp +++ /dev/null @@ -1,397 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_TRAITS_HPP -#define OPENCV_CORE_TRAITS_HPP - -#include "opencv2/core/cvdef.h" - -namespace cv -{ - -//#define OPENCV_TRAITS_ENABLE_DEPRECATED - -//! @addtogroup core_basic -//! @{ - -/** @brief Template "trait" class for OpenCV primitive data types. - -@note Deprecated. This is replaced by "single purpose" traits: traits::Type and traits::Depth - -A primitive OpenCV data type is one of unsigned char, bool, signed char, unsigned short, signed -short, int, float, double, or a tuple of values of one of these types, where all the values in the -tuple have the same type. Any primitive type from the list can be defined by an identifier in the -form CV_\{U|S|F}C(\), for example: uchar \~ CV_8UC1, 3-element -floating-point tuple \~ CV_32FC3, and so on. A universal OpenCV structure that is able to store a -single instance of such a primitive data type is Vec. Multiple instances of such a type can be -stored in a std::vector, Mat, Mat_, SparseMat, SparseMat_, or any other container that is able to -store Vec instances. - -The DataType class is basically used to provide a description of such primitive data types without -adding any fields or methods to the corresponding classes (and it is actually impossible to add -anything to primitive C/C++ data types). This technique is known in C++ as class traits. It is not -DataType itself that is used but its specialized versions, such as: -@code - template<> class DataType - { - typedef uchar value_type; - typedef int work_type; - typedef uchar channel_type; - enum { channel_type = CV_8U, channels = 1, fmt='u', type = CV_8U }; - }; - ... - template DataType > - { - typedef std::complex<_Tp> value_type; - typedef std::complex<_Tp> work_type; - typedef _Tp channel_type; - // DataDepth is another helper trait class - enum { depth = DataDepth<_Tp>::value, channels=2, - fmt=(channels-1)*256+DataDepth<_Tp>::fmt, - type=CV_MAKETYPE(depth, channels) }; - }; - ... -@endcode -The main purpose of this class is to convert compilation-time type information to an -OpenCV-compatible data type identifier, for example: -@code - // allocates a 30x40 floating-point matrix - Mat A(30, 40, DataType::type); - - Mat B = Mat_ >(3, 3); - // the statement below will print 6, 2 , that is depth == CV_64F, channels == 2 - cout << B.depth() << ", " << B.channels() << endl; -@endcode -So, such traits are used to tell OpenCV which data type you are working with, even if such a type is -not native to OpenCV. For example, the matrix B initialization above is compiled because OpenCV -defines the proper specialized template class DataType\ \> . This mechanism is also -useful (and used in OpenCV this way) for generic algorithms implementations. - -@note Default values were dropped to stop confusing developers about using of unsupported types (see #7599) -*/ -template class DataType -{ -public: -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - typedef _Tp value_type; - typedef value_type work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 1, - depth = -1, - channels = 1, - fmt = 0, - type = CV_MAKETYPE(depth, channels) - }; -#endif -}; - -template<> class DataType -{ -public: - typedef bool value_type; - typedef int work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_8U, - channels = 1, - fmt = (int)'u', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef uchar value_type; - typedef int work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_8U, - channels = 1, - fmt = (int)'u', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef schar value_type; - typedef int work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_8S, - channels = 1, - fmt = (int)'c', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef schar value_type; - typedef int work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_8S, - channels = 1, - fmt = (int)'c', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef ushort value_type; - typedef int work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_16U, - channels = 1, - fmt = (int)'w', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef short value_type; - typedef int work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_16S, - channels = 1, - fmt = (int)'s', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef int value_type; - typedef value_type work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_32S, - channels = 1, - fmt = (int)'i', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef float value_type; - typedef value_type work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_32F, - channels = 1, - fmt = (int)'f', - type = CV_MAKETYPE(depth, channels) - }; -}; - -template<> class DataType -{ -public: - typedef double value_type; - typedef value_type work_type; - typedef value_type channel_type; - typedef value_type vec_type; - enum { generic_type = 0, - depth = CV_64F, - channels = 1, - fmt = (int)'d', - type = CV_MAKETYPE(depth, channels) - }; -}; - - -/** @brief A helper class for cv::DataType - -The class is specialized for each fundamental numerical data type supported by OpenCV. It provides -DataDepth::value constant. -*/ -template class DataDepth -{ -public: - enum - { - value = DataType<_Tp>::depth, - fmt = DataType<_Tp>::fmt - }; -}; - - -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - -template class TypeDepth -{ -#ifdef OPENCV_TRAITS_ENABLE_LEGACY_DEFAULTS - enum { depth = CV_USRTYPE1 }; - typedef void value_type; -#endif -}; - -template<> class TypeDepth -{ - enum { depth = CV_8U }; - typedef uchar value_type; -}; - -template<> class TypeDepth -{ - enum { depth = CV_8S }; - typedef schar value_type; -}; - -template<> class TypeDepth -{ - enum { depth = CV_16U }; - typedef ushort value_type; -}; - -template<> class TypeDepth -{ - enum { depth = CV_16S }; - typedef short value_type; -}; - -template<> class TypeDepth -{ - enum { depth = CV_32S }; - typedef int value_type; -}; - -template<> class TypeDepth -{ - enum { depth = CV_32F }; - typedef float value_type; -}; - -template<> class TypeDepth -{ - enum { depth = CV_64F }; - typedef double value_type; -}; - -#endif - -//! @} - -namespace traits { - -namespace internal { -#define CV_CREATE_MEMBER_CHECK(X) \ -template class CheckMember_##X { \ - struct Fallback { int X; }; \ - struct Derived : T, Fallback { }; \ - template struct Check; \ - typedef char CV_NO[1]; \ - typedef char CV_YES[2]; \ - template static CV_NO & func(Check *); \ - template static CV_YES & func(...); \ -public: \ - typedef CheckMember_##X type; \ - enum { value = sizeof(func(0)) == sizeof(CV_YES) }; \ -}; - -CV_CREATE_MEMBER_CHECK(fmt) -CV_CREATE_MEMBER_CHECK(type) - -} // namespace internal - - -template -struct Depth -{ enum { value = DataType::depth }; }; - -template -struct Type -{ enum { value = DataType::type }; }; - -/** Similar to traits::Type but has value = -1 in case of unknown type (instead of compiler error) */ -template >::value > -struct SafeType {}; - -template -struct SafeType -{ enum { value = -1 }; }; - -template -struct SafeType -{ enum { value = Type::value }; }; - - -template >::value > -struct SafeFmt {}; - -template -struct SafeFmt -{ enum { fmt = 0 }; }; - -template -struct SafeFmt -{ enum { fmt = DataType::fmt }; }; - - -} // namespace - -} // cv - -#endif // OPENCV_CORE_TRAITS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/types.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/types.hpp deleted file mode 100644 index f3a7b518b..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/types.hpp +++ /dev/null @@ -1,2366 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_TYPES_HPP -#define OPENCV_CORE_TYPES_HPP - -#ifndef __cplusplus -# error types.hpp header must be compiled as C++ -#endif - -#include -#include -#include -#include - -#include "opencv2/core/cvdef.h" -#include "opencv2/core/cvstd.hpp" -#include "opencv2/core/matx.hpp" - -namespace cv -{ - -//! @addtogroup core_basic -//! @{ - -//////////////////////////////// Complex ////////////////////////////// - -/** @brief A complex number class. - - The template class is similar and compatible with std::complex, however it provides slightly - more convenient access to the real and imaginary parts using through the simple field access, as opposite - to std::complex::real() and std::complex::imag(). -*/ -template class Complex -{ -public: - - //! constructors - Complex(); - Complex( _Tp _re, _Tp _im = 0 ); - - //! conversion to another data type - template operator Complex() const; - //! conjugation - Complex conj() const; - - _Tp re, im; //< the real and the imaginary parts -}; - -typedef Complex Complexf; -typedef Complex Complexd; - -template class DataType< Complex<_Tp> > -{ -public: - typedef Complex<_Tp> value_type; - typedef value_type work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 2, - fmt = DataType::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template -struct Depth< Complex<_Tp> > { enum { value = Depth<_Tp>::value }; }; -template -struct Type< Complex<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 2) }; }; -} // namespace - - -//////////////////////////////// Point_ //////////////////////////////// - -/** @brief Template class for 2D points specified by its coordinates `x` and `y`. - -An instance of the class is interchangeable with C structures, CvPoint and CvPoint2D32f . There is -also a cast operator to convert point coordinates to the specified type. The conversion from -floating-point coordinates to integer coordinates is done by rounding. Commonly, the conversion -uses this operation for each of the coordinates. Besides the class members listed in the -declaration above, the following operations on points are implemented: -@code - pt1 = pt2 + pt3; - pt1 = pt2 - pt3; - pt1 = pt2 * a; - pt1 = a * pt2; - pt1 = pt2 / a; - pt1 += pt2; - pt1 -= pt2; - pt1 *= a; - pt1 /= a; - double value = norm(pt); // L2 norm - pt1 == pt2; - pt1 != pt2; -@endcode -For your convenience, the following type aliases are defined: -@code - typedef Point_ Point2i; - typedef Point2i Point; - typedef Point_ Point2f; - typedef Point_ Point2d; -@endcode -Example: -@code - Point2f a(0.3f, 0.f), b(0.f, 0.4f); - Point pt = (a + b)*10.f; - cout << pt.x << ", " << pt.y << endl; -@endcode -*/ -template class Point_ -{ -public: - typedef _Tp value_type; - - // various constructors - Point_(); - Point_(_Tp _x, _Tp _y); - Point_(const Point_& pt); - Point_(const Size_<_Tp>& sz); - Point_(const Vec<_Tp, 2>& v); - - Point_& operator = (const Point_& pt); - //! conversion to another data type - template operator Point_<_Tp2>() const; - - //! conversion to the old-style C structures - operator Vec<_Tp, 2>() const; - - //! dot product - _Tp dot(const Point_& pt) const; - //! dot product computed in double-precision arithmetics - double ddot(const Point_& pt) const; - //! cross-product - double cross(const Point_& pt) const; - //! checks whether the point is inside the specified rectangle - bool inside(const Rect_<_Tp>& r) const; - - _Tp x, y; //< the point coordinates -}; - -typedef Point_ Point2i; -typedef Point_ Point2l; -typedef Point_ Point2f; -typedef Point_ Point2d; -typedef Point2i Point; - -template class DataType< Point_<_Tp> > -{ -public: - typedef Point_<_Tp> value_type; - typedef Point_::work_type> work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 2, - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template -struct Depth< Point_<_Tp> > { enum { value = Depth<_Tp>::value }; }; -template -struct Type< Point_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 2) }; }; -} // namespace - - -//////////////////////////////// Point3_ //////////////////////////////// - -/** @brief Template class for 3D points specified by its coordinates `x`, `y` and `z`. - -An instance of the class is interchangeable with the C structure CvPoint2D32f . Similarly to -Point_ , the coordinates of 3D points can be converted to another type. The vector arithmetic and -comparison operations are also supported. - -The following Point3_\<\> aliases are available: -@code - typedef Point3_ Point3i; - typedef Point3_ Point3f; - typedef Point3_ Point3d; -@endcode -@see cv::Point3i, cv::Point3f and cv::Point3d -*/ -template class Point3_ -{ -public: - typedef _Tp value_type; - - // various constructors - Point3_(); - Point3_(_Tp _x, _Tp _y, _Tp _z); - Point3_(const Point3_& pt); - explicit Point3_(const Point_<_Tp>& pt); - Point3_(const Vec<_Tp, 3>& v); - - Point3_& operator = (const Point3_& pt); - //! conversion to another data type - template operator Point3_<_Tp2>() const; - //! conversion to cv::Vec<> -#if OPENCV_ABI_COMPATIBILITY > 300 - template operator Vec<_Tp2, 3>() const; -#else - operator Vec<_Tp, 3>() const; -#endif - - //! dot product - _Tp dot(const Point3_& pt) const; - //! dot product computed in double-precision arithmetics - double ddot(const Point3_& pt) const; - //! cross product of the 2 3D points - Point3_ cross(const Point3_& pt) const; - - _Tp x, y, z; //< the point coordinates -}; - -typedef Point3_ Point3i; -typedef Point3_ Point3f; -typedef Point3_ Point3d; - -template class DataType< Point3_<_Tp> > -{ -public: - typedef Point3_<_Tp> value_type; - typedef Point3_::work_type> work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 3, - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template -struct Depth< Point3_<_Tp> > { enum { value = Depth<_Tp>::value }; }; -template -struct Type< Point3_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 3) }; }; -} // namespace - -//////////////////////////////// Size_ //////////////////////////////// - -/** @brief Template class for specifying the size of an image or rectangle. - -The class includes two members called width and height. The structure can be converted to and from -the old OpenCV structures CvSize and CvSize2D32f . The same set of arithmetic and comparison -operations as for Point_ is available. - -OpenCV defines the following Size_\<\> aliases: -@code - typedef Size_ Size2i; - typedef Size2i Size; - typedef Size_ Size2f; -@endcode -*/ -template class Size_ -{ -public: - typedef _Tp value_type; - - //! various constructors - Size_(); - Size_(_Tp _width, _Tp _height); - Size_(const Size_& sz); - Size_(const Point_<_Tp>& pt); - - Size_& operator = (const Size_& sz); - //! the area (width*height) - _Tp area() const; - //! true if empty - bool empty() const; - - //! conversion of another data type. - template operator Size_<_Tp2>() const; - - _Tp width, height; // the width and the height -}; - -typedef Size_ Size2i; -typedef Size_ Size2l; -typedef Size_ Size2f; -typedef Size_ Size2d; -typedef Size2i Size; - -template class DataType< Size_<_Tp> > -{ -public: - typedef Size_<_Tp> value_type; - typedef Size_::work_type> work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 2, - fmt = DataType::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template -struct Depth< Size_<_Tp> > { enum { value = Depth<_Tp>::value }; }; -template -struct Type< Size_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 2) }; }; -} // namespace - -//////////////////////////////// Rect_ //////////////////////////////// - -/** @brief Template class for 2D rectangles - -described by the following parameters: -- Coordinates of the top-left corner. This is a default interpretation of Rect_::x and Rect_::y - in OpenCV. Though, in your algorithms you may count x and y from the bottom-left corner. -- Rectangle width and height. - -OpenCV typically assumes that the top and left boundary of the rectangle are inclusive, while the -right and bottom boundaries are not. For example, the method Rect_::contains returns true if - -\f[x \leq pt.x < x+width, - y \leq pt.y < y+height\f] - -Virtually every loop over an image ROI in OpenCV (where ROI is specified by Rect_\ ) is -implemented as: -@code - for(int y = roi.y; y < roi.y + roi.height; y++) - for(int x = roi.x; x < roi.x + roi.width; x++) - { - // ... - } -@endcode -In addition to the class members, the following operations on rectangles are implemented: -- \f$\texttt{rect} = \texttt{rect} \pm \texttt{point}\f$ (shifting a rectangle by a certain offset) -- \f$\texttt{rect} = \texttt{rect} \pm \texttt{size}\f$ (expanding or shrinking a rectangle by a - certain amount) -- rect += point, rect -= point, rect += size, rect -= size (augmenting operations) -- rect = rect1 & rect2 (rectangle intersection) -- rect = rect1 | rect2 (minimum area rectangle containing rect1 and rect2 ) -- rect &= rect1, rect |= rect1 (and the corresponding augmenting operations) -- rect == rect1, rect != rect1 (rectangle comparison) - -This is an example how the partial ordering on rectangles can be established (rect1 \f$\subseteq\f$ -rect2): -@code - template inline bool - operator <= (const Rect_<_Tp>& r1, const Rect_<_Tp>& r2) - { - return (r1 & r2) == r1; - } -@endcode -For your convenience, the Rect_\<\> alias is available: cv::Rect -*/ -template class Rect_ -{ -public: - typedef _Tp value_type; - - //! various constructors - Rect_(); - Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height); - Rect_(const Rect_& r); - Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz); - Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2); - - Rect_& operator = ( const Rect_& r ); - //! the top-left corner - Point_<_Tp> tl() const; - //! the bottom-right corner - Point_<_Tp> br() const; - - //! size (width, height) of the rectangle - Size_<_Tp> size() const; - //! area (width*height) of the rectangle - _Tp area() const; - //! true if empty - bool empty() const; - - //! conversion to another data type - template operator Rect_<_Tp2>() const; - - //! checks whether the rectangle contains the point - bool contains(const Point_<_Tp>& pt) const; - - _Tp x, y, width, height; //< the top-left corner, as well as width and height of the rectangle -}; - -typedef Rect_ Rect2i; -typedef Rect_ Rect2f; -typedef Rect_ Rect2d; -typedef Rect2i Rect; - -template class DataType< Rect_<_Tp> > -{ -public: - typedef Rect_<_Tp> value_type; - typedef Rect_::work_type> work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 4, - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template -struct Depth< Rect_<_Tp> > { enum { value = Depth<_Tp>::value }; }; -template -struct Type< Rect_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 4) }; }; -} // namespace - -///////////////////////////// RotatedRect ///////////////////////////// - -/** @brief The class represents rotated (i.e. not up-right) rectangles on a plane. - -Each rectangle is specified by the center point (mass center), length of each side (represented by -cv::Size2f structure) and the rotation angle in degrees. - -The sample below demonstrates how to use RotatedRect: -@code - Mat image(200, 200, CV_8UC3, Scalar(0)); - RotatedRect rRect = RotatedRect(Point2f(100,100), Size2f(100,50), 30); - - Point2f vertices[4]; - rRect.points(vertices); - for (int i = 0; i < 4; i++) - line(image, vertices[i], vertices[(i+1)%4], Scalar(0,255,0)); - - Rect brect = rRect.boundingRect(); - rectangle(image, brect, Scalar(255,0,0)); - - imshow("rectangles", image); - waitKey(0); -@endcode -![image](pics/rotatedrect.png) - -@sa CamShift, fitEllipse, minAreaRect, CvBox2D -*/ -class CV_EXPORTS RotatedRect -{ -public: - //! various constructors - RotatedRect(); - /** - @param center The rectangle mass center. - @param size Width and height of the rectangle. - @param angle The rotation angle in a clockwise direction. When the angle is 0, 90, 180, 270 etc., - the rectangle becomes an up-right rectangle. - */ - RotatedRect(const Point2f& center, const Size2f& size, float angle); - /** - Any 3 end points of the RotatedRect. They must be given in order (either clockwise or - anticlockwise). - */ - RotatedRect(const Point2f& point1, const Point2f& point2, const Point2f& point3); - - /** returns 4 vertices of the rectangle - @param pts The points array for storing rectangle vertices. The order is bottomLeft, topLeft, topRight, bottomRight. - */ - void points(Point2f pts[]) const; - //! returns the minimal up-right integer rectangle containing the rotated rectangle - Rect boundingRect() const; - //! returns the minimal (exact) floating point rectangle containing the rotated rectangle, not intended for use with images - Rect_ boundingRect2f() const; - - Point2f center; //< the rectangle mass center - Size2f size; //< width and height of the rectangle - float angle; //< the rotation angle. When the angle is 0, 90, 180, 270 etc., the rectangle becomes an up-right rectangle. -}; - -template<> class DataType< RotatedRect > -{ -public: - typedef RotatedRect value_type; - typedef value_type work_type; - typedef float channel_type; - - enum { generic_type = 0, - channels = (int)sizeof(value_type)/sizeof(channel_type), // 5 - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template<> -struct Depth< RotatedRect > { enum { value = Depth::value }; }; -template<> -struct Type< RotatedRect > { enum { value = CV_MAKETYPE(Depth::value, (int)sizeof(RotatedRect)/sizeof(float)) }; }; -} // namespace - - -//////////////////////////////// Range ///////////////////////////////// - -/** @brief Template class specifying a continuous subsequence (slice) of a sequence. - -The class is used to specify a row or a column span in a matrix ( Mat ) and for many other purposes. -Range(a,b) is basically the same as a:b in Matlab or a..b in Python. As in Python, start is an -inclusive left boundary of the range and end is an exclusive right boundary of the range. Such a -half-opened interval is usually denoted as \f$[start,end)\f$ . - -The static method Range::all() returns a special variable that means "the whole sequence" or "the -whole range", just like " : " in Matlab or " ... " in Python. All the methods and functions in -OpenCV that take Range support this special Range::all() value. But, of course, in case of your own -custom processing, you will probably have to check and handle it explicitly: -@code - void my_function(..., const Range& r, ....) - { - if(r == Range::all()) { - // process all the data - } - else { - // process [r.start, r.end) - } - } -@endcode -*/ -class CV_EXPORTS Range -{ -public: - Range(); - Range(int _start, int _end); - int size() const; - bool empty() const; - static Range all(); - - int start, end; -}; - -template<> class DataType -{ -public: - typedef Range value_type; - typedef value_type work_type; - typedef int channel_type; - - enum { generic_type = 0, - channels = 2, - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template<> -struct Depth< Range > { enum { value = Depth::value }; }; -template<> -struct Type< Range > { enum { value = CV_MAKETYPE(Depth::value, 2) }; }; -} // namespace - - -//////////////////////////////// Scalar_ /////////////////////////////// - -/** @brief Template class for a 4-element vector derived from Vec. - -Being derived from Vec\<_Tp, 4\> , Scalar\_ and Scalar can be used just as typical 4-element -vectors. In addition, they can be converted to/from CvScalar . The type Scalar is widely used in -OpenCV to pass pixel values. -*/ -template class Scalar_ : public Vec<_Tp, 4> -{ -public: - //! various constructors - Scalar_(); - Scalar_(_Tp v0, _Tp v1, _Tp v2=0, _Tp v3=0); - Scalar_(_Tp v0); - - template - Scalar_(const Vec<_Tp2, cn>& v); - - //! returns a scalar with all elements set to v0 - static Scalar_<_Tp> all(_Tp v0); - - //! conversion to another data type - template operator Scalar_() const; - - //! per-element product - Scalar_<_Tp> mul(const Scalar_<_Tp>& a, double scale=1 ) const; - - // returns (v0, -v1, -v2, -v3) - Scalar_<_Tp> conj() const; - - // returns true iff v1 == v2 == v3 == 0 - bool isReal() const; -}; - -typedef Scalar_ Scalar; - -template class DataType< Scalar_<_Tp> > -{ -public: - typedef Scalar_<_Tp> value_type; - typedef Scalar_::work_type> work_type; - typedef _Tp channel_type; - - enum { generic_type = 0, - channels = 4, - fmt = traits::SafeFmt::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template -struct Depth< Scalar_<_Tp> > { enum { value = Depth<_Tp>::value }; }; -template -struct Type< Scalar_<_Tp> > { enum { value = CV_MAKETYPE(Depth<_Tp>::value, 4) }; }; -} // namespace - - -/////////////////////////////// KeyPoint //////////////////////////////// - -/** @brief Data structure for salient point detectors. - -The class instance stores a keypoint, i.e. a point feature found by one of many available keypoint -detectors, such as Harris corner detector, cv::FAST, cv::StarDetector, cv::SURF, cv::SIFT, -cv::LDetector etc. - -The keypoint is characterized by the 2D position, scale (proportional to the diameter of the -neighborhood that needs to be taken into account), orientation and some other parameters. The -keypoint neighborhood is then analyzed by another algorithm that builds a descriptor (usually -represented as a feature vector). The keypoints representing the same object in different images -can then be matched using cv::KDTree or another method. -*/ -class CV_EXPORTS_W_SIMPLE KeyPoint -{ -public: - //! the default constructor - CV_WRAP KeyPoint(); - /** - @param _pt x & y coordinates of the keypoint - @param _size keypoint diameter - @param _angle keypoint orientation - @param _response keypoint detector response on the keypoint (that is, strength of the keypoint) - @param _octave pyramid octave in which the keypoint has been detected - @param _class_id object id - */ - KeyPoint(Point2f _pt, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1); - /** - @param x x-coordinate of the keypoint - @param y y-coordinate of the keypoint - @param _size keypoint diameter - @param _angle keypoint orientation - @param _response keypoint detector response on the keypoint (that is, strength of the keypoint) - @param _octave pyramid octave in which the keypoint has been detected - @param _class_id object id - */ - CV_WRAP KeyPoint(float x, float y, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1); - - size_t hash() const; - - /** - This method converts vector of keypoints to vector of points or the reverse, where each keypoint is - assigned the same size and the same orientation. - - @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB - @param points2f Array of (x,y) coordinates of each keypoint - @param keypointIndexes Array of indexes of keypoints to be converted to points. (Acts like a mask to - convert only specified keypoints) - */ - CV_WRAP static void convert(const std::vector& keypoints, - CV_OUT std::vector& points2f, - const std::vector& keypointIndexes=std::vector()); - /** @overload - @param points2f Array of (x,y) coordinates of each keypoint - @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB - @param size keypoint diameter - @param response keypoint detector response on the keypoint (that is, strength of the keypoint) - @param octave pyramid octave in which the keypoint has been detected - @param class_id object id - */ - CV_WRAP static void convert(const std::vector& points2f, - CV_OUT std::vector& keypoints, - float size=1, float response=1, int octave=0, int class_id=-1); - - /** - This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint - regions' intersection and area of keypoint regions' union (considering keypoint region as circle). - If they don't overlap, we get zero. If they coincide at same location with same size, we get 1. - @param kp1 First keypoint - @param kp2 Second keypoint - */ - CV_WRAP static float overlap(const KeyPoint& kp1, const KeyPoint& kp2); - - CV_PROP_RW Point2f pt; //!< coordinates of the keypoints - CV_PROP_RW float size; //!< diameter of the meaningful keypoint neighborhood - CV_PROP_RW float angle; //!< computed orientation of the keypoint (-1 if not applicable); - //!< it's in [0,360) degrees and measured relative to - //!< image coordinate system, ie in clockwise. - CV_PROP_RW float response; //!< the response by which the most strong keypoints have been selected. Can be used for the further sorting or subsampling - CV_PROP_RW int octave; //!< octave (pyramid layer) from which the keypoint has been extracted - CV_PROP_RW int class_id; //!< object class (if the keypoints need to be clustered by an object they belong to) -}; - -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED -template<> class DataType -{ -public: - typedef KeyPoint value_type; - typedef float work_type; - typedef float channel_type; - - enum { generic_type = 0, - depth = DataType::depth, - channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 7 - fmt = DataType::fmt + ((channels - 1) << 8), - type = CV_MAKETYPE(depth, channels) - }; - - typedef Vec vec_type; -}; -#endif - - -//////////////////////////////// DMatch ///////////////////////////////// - -/** @brief Class for matching keypoint descriptors - -query descriptor index, train descriptor index, train image index, and distance between -descriptors. -*/ -class CV_EXPORTS_W_SIMPLE DMatch -{ -public: - CV_WRAP DMatch(); - CV_WRAP DMatch(int _queryIdx, int _trainIdx, float _distance); - CV_WRAP DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance); - - CV_PROP_RW int queryIdx; // query descriptor index - CV_PROP_RW int trainIdx; // train descriptor index - CV_PROP_RW int imgIdx; // train image index - - CV_PROP_RW float distance; - - // less is better - bool operator<(const DMatch &m) const; -}; - -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED -template<> class DataType -{ -public: - typedef DMatch value_type; - typedef int work_type; - typedef int channel_type; - - enum { generic_type = 0, - depth = DataType::depth, - channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 4 - fmt = DataType::fmt + ((channels - 1) << 8), - type = CV_MAKETYPE(depth, channels) - }; - - typedef Vec vec_type; -}; -#endif - - -///////////////////////////// TermCriteria ////////////////////////////// - -/** @brief The class defining termination criteria for iterative algorithms. - -You can initialize it by default constructor and then override any parameters, or the structure may -be fully initialized using the advanced variant of the constructor. -*/ -class CV_EXPORTS TermCriteria -{ -public: - /** - Criteria type, can be one of: COUNT, EPS or COUNT + EPS - */ - enum Type - { - COUNT=1, //!< the maximum number of iterations or elements to compute - MAX_ITER=COUNT, //!< ditto - EPS=2 //!< the desired accuracy or change in parameters at which the iterative algorithm stops - }; - - //! default constructor - TermCriteria(); - /** - @param type The type of termination criteria, one of TermCriteria::Type - @param maxCount The maximum number of iterations or elements to compute. - @param epsilon The desired accuracy or change in parameters at which the iterative algorithm stops. - */ - TermCriteria(int type, int maxCount, double epsilon); - - int type; //!< the type of termination criteria: COUNT, EPS or COUNT + EPS - int maxCount; // the maximum number of iterations/elements - double epsilon; // the desired accuracy -}; - - -//! @} core_basic - -///////////////////////// raster image moments ////////////////////////// - -//! @addtogroup imgproc_shape -//! @{ - -/** @brief struct returned by cv::moments - -The spatial moments \f$\texttt{Moments::m}_{ji}\f$ are computed as: - -\f[\texttt{m} _{ji}= \sum _{x,y} \left ( \texttt{array} (x,y) \cdot x^j \cdot y^i \right )\f] - -The central moments \f$\texttt{Moments::mu}_{ji}\f$ are computed as: - -\f[\texttt{mu} _{ji}= \sum _{x,y} \left ( \texttt{array} (x,y) \cdot (x - \bar{x} )^j \cdot (y - \bar{y} )^i \right )\f] - -where \f$(\bar{x}, \bar{y})\f$ is the mass center: - -\f[\bar{x} = \frac{\texttt{m}_{10}}{\texttt{m}_{00}} , \; \bar{y} = \frac{\texttt{m}_{01}}{\texttt{m}_{00}}\f] - -The normalized central moments \f$\texttt{Moments::nu}_{ij}\f$ are computed as: - -\f[\texttt{nu} _{ji}= \frac{\texttt{mu}_{ji}}{\texttt{m}_{00}^{(i+j)/2+1}} .\f] - -@note -\f$\texttt{mu}_{00}=\texttt{m}_{00}\f$, \f$\texttt{nu}_{00}=1\f$ -\f$\texttt{nu}_{10}=\texttt{mu}_{10}=\texttt{mu}_{01}=\texttt{mu}_{10}=0\f$ , hence the values are not -stored. - -The moments of a contour are defined in the same way but computed using the Green's formula (see -). So, due to a limited raster resolution, the moments -computed for a contour are slightly different from the moments computed for the same rasterized -contour. - -@note -Since the contour moments are computed using Green formula, you may get seemingly odd results for -contours with self-intersections, e.g. a zero area (m00) for butterfly-shaped contours. - */ -class CV_EXPORTS_W_MAP Moments -{ -public: - //! the default constructor - Moments(); - //! the full constructor - Moments(double m00, double m10, double m01, double m20, double m11, - double m02, double m30, double m21, double m12, double m03 ); - ////! the conversion from CvMoments - //Moments( const CvMoments& moments ); - ////! the conversion to CvMoments - //operator CvMoments() const; - - //! @name spatial moments - //! @{ - CV_PROP_RW double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; - //! @} - - //! @name central moments - //! @{ - CV_PROP_RW double mu20, mu11, mu02, mu30, mu21, mu12, mu03; - //! @} - - //! @name central normalized moments - //! @{ - CV_PROP_RW double nu20, nu11, nu02, nu30, nu21, nu12, nu03; - //! @} -}; - -template<> class DataType -{ -public: - typedef Moments value_type; - typedef double work_type; - typedef double channel_type; - - enum { generic_type = 0, - channels = (int)(sizeof(value_type)/sizeof(channel_type)), // 24 - fmt = DataType::fmt + ((channels - 1) << 8) -#ifdef OPENCV_TRAITS_ENABLE_DEPRECATED - ,depth = DataType::depth - ,type = CV_MAKETYPE(depth, channels) -#endif - }; - - typedef Vec vec_type; -}; - -namespace traits { -template<> -struct Depth< Moments > { enum { value = Depth::value }; }; -template<> -struct Type< Moments > { enum { value = CV_MAKETYPE(Depth::value, (int)(sizeof(Moments)/sizeof(double))) }; }; -} // namespace - -//! @} imgproc_shape - -//! @cond IGNORED - -///////////////////////////////////////////////////////////////////////// -///////////////////////////// Implementation //////////////////////////// -///////////////////////////////////////////////////////////////////////// - -//////////////////////////////// Complex //////////////////////////////// - -template inline -Complex<_Tp>::Complex() - : re(0), im(0) {} - -template inline -Complex<_Tp>::Complex( _Tp _re, _Tp _im ) - : re(_re), im(_im) {} - -template template inline -Complex<_Tp>::operator Complex() const -{ - return Complex(saturate_cast(re), saturate_cast(im)); -} - -template inline -Complex<_Tp> Complex<_Tp>::conj() const -{ - return Complex<_Tp>(re, -im); -} - - -template static inline -bool operator == (const Complex<_Tp>& a, const Complex<_Tp>& b) -{ - return a.re == b.re && a.im == b.im; -} - -template static inline -bool operator != (const Complex<_Tp>& a, const Complex<_Tp>& b) -{ - return a.re != b.re || a.im != b.im; -} - -template static inline -Complex<_Tp> operator + (const Complex<_Tp>& a, const Complex<_Tp>& b) -{ - return Complex<_Tp>( a.re + b.re, a.im + b.im ); -} - -template static inline -Complex<_Tp>& operator += (Complex<_Tp>& a, const Complex<_Tp>& b) -{ - a.re += b.re; a.im += b.im; - return a; -} - -template static inline -Complex<_Tp> operator - (const Complex<_Tp>& a, const Complex<_Tp>& b) -{ - return Complex<_Tp>( a.re - b.re, a.im - b.im ); -} - -template static inline -Complex<_Tp>& operator -= (Complex<_Tp>& a, const Complex<_Tp>& b) -{ - a.re -= b.re; a.im -= b.im; - return a; -} - -template static inline -Complex<_Tp> operator - (const Complex<_Tp>& a) -{ - return Complex<_Tp>(-a.re, -a.im); -} - -template static inline -Complex<_Tp> operator * (const Complex<_Tp>& a, const Complex<_Tp>& b) -{ - return Complex<_Tp>( a.re*b.re - a.im*b.im, a.re*b.im + a.im*b.re ); -} - -template static inline -Complex<_Tp> operator * (const Complex<_Tp>& a, _Tp b) -{ - return Complex<_Tp>( a.re*b, a.im*b ); -} - -template static inline -Complex<_Tp> operator * (_Tp b, const Complex<_Tp>& a) -{ - return Complex<_Tp>( a.re*b, a.im*b ); -} - -template static inline -Complex<_Tp> operator + (const Complex<_Tp>& a, _Tp b) -{ - return Complex<_Tp>( a.re + b, a.im ); -} - -template static inline -Complex<_Tp> operator - (const Complex<_Tp>& a, _Tp b) -{ return Complex<_Tp>( a.re - b, a.im ); } - -template static inline -Complex<_Tp> operator + (_Tp b, const Complex<_Tp>& a) -{ - return Complex<_Tp>( a.re + b, a.im ); -} - -template static inline -Complex<_Tp> operator - (_Tp b, const Complex<_Tp>& a) -{ - return Complex<_Tp>( b - a.re, -a.im ); -} - -template static inline -Complex<_Tp>& operator += (Complex<_Tp>& a, _Tp b) -{ - a.re += b; return a; -} - -template static inline -Complex<_Tp>& operator -= (Complex<_Tp>& a, _Tp b) -{ - a.re -= b; return a; -} - -template static inline -Complex<_Tp>& operator *= (Complex<_Tp>& a, _Tp b) -{ - a.re *= b; a.im *= b; return a; -} - -template static inline -double abs(const Complex<_Tp>& a) -{ - return std::sqrt( (double)a.re*a.re + (double)a.im*a.im); -} - -template static inline -Complex<_Tp> operator / (const Complex<_Tp>& a, const Complex<_Tp>& b) -{ - double t = 1./((double)b.re*b.re + (double)b.im*b.im); - return Complex<_Tp>( (_Tp)((a.re*b.re + a.im*b.im)*t), - (_Tp)((-a.re*b.im + a.im*b.re)*t) ); -} - -template static inline -Complex<_Tp>& operator /= (Complex<_Tp>& a, const Complex<_Tp>& b) -{ - a = a / b; - return a; -} - -template static inline -Complex<_Tp> operator / (const Complex<_Tp>& a, _Tp b) -{ - _Tp t = (_Tp)1/b; - return Complex<_Tp>( a.re*t, a.im*t ); -} - -template static inline -Complex<_Tp> operator / (_Tp b, const Complex<_Tp>& a) -{ - return Complex<_Tp>(b)/a; -} - -template static inline -Complex<_Tp> operator /= (const Complex<_Tp>& a, _Tp b) -{ - _Tp t = (_Tp)1/b; - a.re *= t; a.im *= t; return a; -} - - - -//////////////////////////////// 2D Point /////////////////////////////// - -template inline -Point_<_Tp>::Point_() - : x(0), y(0) {} - -template inline -Point_<_Tp>::Point_(_Tp _x, _Tp _y) - : x(_x), y(_y) {} - -template inline -Point_<_Tp>::Point_(const Point_& pt) - : x(pt.x), y(pt.y) {} - -template inline -Point_<_Tp>::Point_(const Size_<_Tp>& sz) - : x(sz.width), y(sz.height) {} - -template inline -Point_<_Tp>::Point_(const Vec<_Tp,2>& v) - : x(v[0]), y(v[1]) {} - -template inline -Point_<_Tp>& Point_<_Tp>::operator = (const Point_& pt) -{ - x = pt.x; y = pt.y; - return *this; -} - -template template inline -Point_<_Tp>::operator Point_<_Tp2>() const -{ - return Point_<_Tp2>(saturate_cast<_Tp2>(x), saturate_cast<_Tp2>(y)); -} - -template inline -Point_<_Tp>::operator Vec<_Tp, 2>() const -{ - return Vec<_Tp, 2>(x, y); -} - -template inline -_Tp Point_<_Tp>::dot(const Point_& pt) const -{ - return saturate_cast<_Tp>(x*pt.x + y*pt.y); -} - -template inline -double Point_<_Tp>::ddot(const Point_& pt) const -{ - return (double)x*pt.x + (double)y*pt.y; -} - -template inline -double Point_<_Tp>::cross(const Point_& pt) const -{ - return (double)x*pt.y - (double)y*pt.x; -} - -template inline bool -Point_<_Tp>::inside( const Rect_<_Tp>& r ) const -{ - return r.contains(*this); -} - - -template static inline -Point_<_Tp>& operator += (Point_<_Tp>& a, const Point_<_Tp>& b) -{ - a.x += b.x; - a.y += b.y; - return a; -} - -template static inline -Point_<_Tp>& operator -= (Point_<_Tp>& a, const Point_<_Tp>& b) -{ - a.x -= b.x; - a.y -= b.y; - return a; -} - -template static inline -Point_<_Tp>& operator *= (Point_<_Tp>& a, int b) -{ - a.x = saturate_cast<_Tp>(a.x * b); - a.y = saturate_cast<_Tp>(a.y * b); - return a; -} - -template static inline -Point_<_Tp>& operator *= (Point_<_Tp>& a, float b) -{ - a.x = saturate_cast<_Tp>(a.x * b); - a.y = saturate_cast<_Tp>(a.y * b); - return a; -} - -template static inline -Point_<_Tp>& operator *= (Point_<_Tp>& a, double b) -{ - a.x = saturate_cast<_Tp>(a.x * b); - a.y = saturate_cast<_Tp>(a.y * b); - return a; -} - -template static inline -Point_<_Tp>& operator /= (Point_<_Tp>& a, int b) -{ - a.x = saturate_cast<_Tp>(a.x / b); - a.y = saturate_cast<_Tp>(a.y / b); - return a; -} - -template static inline -Point_<_Tp>& operator /= (Point_<_Tp>& a, float b) -{ - a.x = saturate_cast<_Tp>(a.x / b); - a.y = saturate_cast<_Tp>(a.y / b); - return a; -} - -template static inline -Point_<_Tp>& operator /= (Point_<_Tp>& a, double b) -{ - a.x = saturate_cast<_Tp>(a.x / b); - a.y = saturate_cast<_Tp>(a.y / b); - return a; -} - -template static inline -double norm(const Point_<_Tp>& pt) -{ - return std::sqrt((double)pt.x*pt.x + (double)pt.y*pt.y); -} - -template static inline -bool operator == (const Point_<_Tp>& a, const Point_<_Tp>& b) -{ - return a.x == b.x && a.y == b.y; -} - -template static inline -bool operator != (const Point_<_Tp>& a, const Point_<_Tp>& b) -{ - return a.x != b.x || a.y != b.y; -} - -template static inline -Point_<_Tp> operator + (const Point_<_Tp>& a, const Point_<_Tp>& b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(a.x + b.x), saturate_cast<_Tp>(a.y + b.y) ); -} - -template static inline -Point_<_Tp> operator - (const Point_<_Tp>& a, const Point_<_Tp>& b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(a.x - b.x), saturate_cast<_Tp>(a.y - b.y) ); -} - -template static inline -Point_<_Tp> operator - (const Point_<_Tp>& a) -{ - return Point_<_Tp>( saturate_cast<_Tp>(-a.x), saturate_cast<_Tp>(-a.y) ); -} - -template static inline -Point_<_Tp> operator * (const Point_<_Tp>& a, int b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b) ); -} - -template static inline -Point_<_Tp> operator * (int a, const Point_<_Tp>& b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(b.x*a), saturate_cast<_Tp>(b.y*a) ); -} - -template static inline -Point_<_Tp> operator * (const Point_<_Tp>& a, float b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b) ); -} - -template static inline -Point_<_Tp> operator * (float a, const Point_<_Tp>& b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(b.x*a), saturate_cast<_Tp>(b.y*a) ); -} - -template static inline -Point_<_Tp> operator * (const Point_<_Tp>& a, double b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b) ); -} - -template static inline -Point_<_Tp> operator * (double a, const Point_<_Tp>& b) -{ - return Point_<_Tp>( saturate_cast<_Tp>(b.x*a), saturate_cast<_Tp>(b.y*a) ); -} - -template static inline -Point_<_Tp> operator * (const Matx<_Tp, 2, 2>& a, const Point_<_Tp>& b) -{ - Matx<_Tp, 2, 1> tmp = a * Vec<_Tp,2>(b.x, b.y); - return Point_<_Tp>(tmp.val[0], tmp.val[1]); -} - -template static inline -Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point_<_Tp>& b) -{ - Matx<_Tp, 3, 1> tmp = a * Vec<_Tp,3>(b.x, b.y, 1); - return Point3_<_Tp>(tmp.val[0], tmp.val[1], tmp.val[2]); -} - -template static inline -Point_<_Tp> operator / (const Point_<_Tp>& a, int b) -{ - Point_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - -template static inline -Point_<_Tp> operator / (const Point_<_Tp>& a, float b) -{ - Point_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - -template static inline -Point_<_Tp> operator / (const Point_<_Tp>& a, double b) -{ - Point_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - - - -//////////////////////////////// 3D Point /////////////////////////////// - -template inline -Point3_<_Tp>::Point3_() - : x(0), y(0), z(0) {} - -template inline -Point3_<_Tp>::Point3_(_Tp _x, _Tp _y, _Tp _z) - : x(_x), y(_y), z(_z) {} - -template inline -Point3_<_Tp>::Point3_(const Point3_& pt) - : x(pt.x), y(pt.y), z(pt.z) {} - -template inline -Point3_<_Tp>::Point3_(const Point_<_Tp>& pt) - : x(pt.x), y(pt.y), z(_Tp()) {} - -template inline -Point3_<_Tp>::Point3_(const Vec<_Tp, 3>& v) - : x(v[0]), y(v[1]), z(v[2]) {} - -template template inline -Point3_<_Tp>::operator Point3_<_Tp2>() const -{ - return Point3_<_Tp2>(saturate_cast<_Tp2>(x), saturate_cast<_Tp2>(y), saturate_cast<_Tp2>(z)); -} - -#if OPENCV_ABI_COMPATIBILITY > 300 -template template inline -Point3_<_Tp>::operator Vec<_Tp2, 3>() const -{ - return Vec<_Tp2, 3>(x, y, z); -} -#else -template inline -Point3_<_Tp>::operator Vec<_Tp, 3>() const -{ - return Vec<_Tp, 3>(x, y, z); -} -#endif - -template inline -Point3_<_Tp>& Point3_<_Tp>::operator = (const Point3_& pt) -{ - x = pt.x; y = pt.y; z = pt.z; - return *this; -} - -template inline -_Tp Point3_<_Tp>::dot(const Point3_& pt) const -{ - return saturate_cast<_Tp>(x*pt.x + y*pt.y + z*pt.z); -} - -template inline -double Point3_<_Tp>::ddot(const Point3_& pt) const -{ - return (double)x*pt.x + (double)y*pt.y + (double)z*pt.z; -} - -template inline -Point3_<_Tp> Point3_<_Tp>::cross(const Point3_<_Tp>& pt) const -{ - return Point3_<_Tp>(y*pt.z - z*pt.y, z*pt.x - x*pt.z, x*pt.y - y*pt.x); -} - - -template static inline -Point3_<_Tp>& operator += (Point3_<_Tp>& a, const Point3_<_Tp>& b) -{ - a.x += b.x; - a.y += b.y; - a.z += b.z; - return a; -} - -template static inline -Point3_<_Tp>& operator -= (Point3_<_Tp>& a, const Point3_<_Tp>& b) -{ - a.x -= b.x; - a.y -= b.y; - a.z -= b.z; - return a; -} - -template static inline -Point3_<_Tp>& operator *= (Point3_<_Tp>& a, int b) -{ - a.x = saturate_cast<_Tp>(a.x * b); - a.y = saturate_cast<_Tp>(a.y * b); - a.z = saturate_cast<_Tp>(a.z * b); - return a; -} - -template static inline -Point3_<_Tp>& operator *= (Point3_<_Tp>& a, float b) -{ - a.x = saturate_cast<_Tp>(a.x * b); - a.y = saturate_cast<_Tp>(a.y * b); - a.z = saturate_cast<_Tp>(a.z * b); - return a; -} - -template static inline -Point3_<_Tp>& operator *= (Point3_<_Tp>& a, double b) -{ - a.x = saturate_cast<_Tp>(a.x * b); - a.y = saturate_cast<_Tp>(a.y * b); - a.z = saturate_cast<_Tp>(a.z * b); - return a; -} - -template static inline -Point3_<_Tp>& operator /= (Point3_<_Tp>& a, int b) -{ - a.x = saturate_cast<_Tp>(a.x / b); - a.y = saturate_cast<_Tp>(a.y / b); - a.z = saturate_cast<_Tp>(a.z / b); - return a; -} - -template static inline -Point3_<_Tp>& operator /= (Point3_<_Tp>& a, float b) -{ - a.x = saturate_cast<_Tp>(a.x / b); - a.y = saturate_cast<_Tp>(a.y / b); - a.z = saturate_cast<_Tp>(a.z / b); - return a; -} - -template static inline -Point3_<_Tp>& operator /= (Point3_<_Tp>& a, double b) -{ - a.x = saturate_cast<_Tp>(a.x / b); - a.y = saturate_cast<_Tp>(a.y / b); - a.z = saturate_cast<_Tp>(a.z / b); - return a; -} - -template static inline -double norm(const Point3_<_Tp>& pt) -{ - return std::sqrt((double)pt.x*pt.x + (double)pt.y*pt.y + (double)pt.z*pt.z); -} - -template static inline -bool operator == (const Point3_<_Tp>& a, const Point3_<_Tp>& b) -{ - return a.x == b.x && a.y == b.y && a.z == b.z; -} - -template static inline -bool operator != (const Point3_<_Tp>& a, const Point3_<_Tp>& b) -{ - return a.x != b.x || a.y != b.y || a.z != b.z; -} - -template static inline -Point3_<_Tp> operator + (const Point3_<_Tp>& a, const Point3_<_Tp>& b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(a.x + b.x), saturate_cast<_Tp>(a.y + b.y), saturate_cast<_Tp>(a.z + b.z)); -} - -template static inline -Point3_<_Tp> operator - (const Point3_<_Tp>& a, const Point3_<_Tp>& b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(a.x - b.x), saturate_cast<_Tp>(a.y - b.y), saturate_cast<_Tp>(a.z - b.z)); -} - -template static inline -Point3_<_Tp> operator - (const Point3_<_Tp>& a) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(-a.x), saturate_cast<_Tp>(-a.y), saturate_cast<_Tp>(-a.z) ); -} - -template static inline -Point3_<_Tp> operator * (const Point3_<_Tp>& a, int b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(a.x*b), saturate_cast<_Tp>(a.y*b), saturate_cast<_Tp>(a.z*b) ); -} - -template static inline -Point3_<_Tp> operator * (int a, const Point3_<_Tp>& b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(b.x * a), saturate_cast<_Tp>(b.y * a), saturate_cast<_Tp>(b.z * a) ); -} - -template static inline -Point3_<_Tp> operator * (const Point3_<_Tp>& a, float b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(a.x * b), saturate_cast<_Tp>(a.y * b), saturate_cast<_Tp>(a.z * b) ); -} - -template static inline -Point3_<_Tp> operator * (float a, const Point3_<_Tp>& b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(b.x * a), saturate_cast<_Tp>(b.y * a), saturate_cast<_Tp>(b.z * a) ); -} - -template static inline -Point3_<_Tp> operator * (const Point3_<_Tp>& a, double b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(a.x * b), saturate_cast<_Tp>(a.y * b), saturate_cast<_Tp>(a.z * b) ); -} - -template static inline -Point3_<_Tp> operator * (double a, const Point3_<_Tp>& b) -{ - return Point3_<_Tp>( saturate_cast<_Tp>(b.x * a), saturate_cast<_Tp>(b.y * a), saturate_cast<_Tp>(b.z * a) ); -} - -template static inline -Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point3_<_Tp>& b) -{ - Matx<_Tp, 3, 1> tmp = a * Vec<_Tp,3>(b.x, b.y, b.z); - return Point3_<_Tp>(tmp.val[0], tmp.val[1], tmp.val[2]); -} - -template static inline -Matx<_Tp, 4, 1> operator * (const Matx<_Tp, 4, 4>& a, const Point3_<_Tp>& b) -{ - return a * Matx<_Tp, 4, 1>(b.x, b.y, b.z, 1); -} - -template static inline -Point3_<_Tp> operator / (const Point3_<_Tp>& a, int b) -{ - Point3_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - -template static inline -Point3_<_Tp> operator / (const Point3_<_Tp>& a, float b) -{ - Point3_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - -template static inline -Point3_<_Tp> operator / (const Point3_<_Tp>& a, double b) -{ - Point3_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - - - -////////////////////////////////// Size ///////////////////////////////// - -template inline -Size_<_Tp>::Size_() - : width(0), height(0) {} - -template inline -Size_<_Tp>::Size_(_Tp _width, _Tp _height) - : width(_width), height(_height) {} - -template inline -Size_<_Tp>::Size_(const Size_& sz) - : width(sz.width), height(sz.height) {} - -template inline -Size_<_Tp>::Size_(const Point_<_Tp>& pt) - : width(pt.x), height(pt.y) {} - -template template inline -Size_<_Tp>::operator Size_<_Tp2>() const -{ - return Size_<_Tp2>(saturate_cast<_Tp2>(width), saturate_cast<_Tp2>(height)); -} - -template inline -Size_<_Tp>& Size_<_Tp>::operator = (const Size_<_Tp>& sz) -{ - width = sz.width; height = sz.height; - return *this; -} - -template inline -_Tp Size_<_Tp>::area() const -{ - const _Tp result = width * height; - CV_DbgAssert(!std::numeric_limits<_Tp>::is_integer - || width == 0 || result / width == height); // make sure the result fits in the return value - return result; -} - -template inline -bool Size_<_Tp>::empty() const -{ - return width <= 0 || height <= 0; -} - - -template static inline -Size_<_Tp>& operator *= (Size_<_Tp>& a, _Tp b) -{ - a.width *= b; - a.height *= b; - return a; -} - -template static inline -Size_<_Tp> operator * (const Size_<_Tp>& a, _Tp b) -{ - Size_<_Tp> tmp(a); - tmp *= b; - return tmp; -} - -template static inline -Size_<_Tp>& operator /= (Size_<_Tp>& a, _Tp b) -{ - a.width /= b; - a.height /= b; - return a; -} - -template static inline -Size_<_Tp> operator / (const Size_<_Tp>& a, _Tp b) -{ - Size_<_Tp> tmp(a); - tmp /= b; - return tmp; -} - -template static inline -Size_<_Tp>& operator += (Size_<_Tp>& a, const Size_<_Tp>& b) -{ - a.width += b.width; - a.height += b.height; - return a; -} - -template static inline -Size_<_Tp> operator + (const Size_<_Tp>& a, const Size_<_Tp>& b) -{ - Size_<_Tp> tmp(a); - tmp += b; - return tmp; -} - -template static inline -Size_<_Tp>& operator -= (Size_<_Tp>& a, const Size_<_Tp>& b) -{ - a.width -= b.width; - a.height -= b.height; - return a; -} - -template static inline -Size_<_Tp> operator - (const Size_<_Tp>& a, const Size_<_Tp>& b) -{ - Size_<_Tp> tmp(a); - tmp -= b; - return tmp; -} - -template static inline -bool operator == (const Size_<_Tp>& a, const Size_<_Tp>& b) -{ - return a.width == b.width && a.height == b.height; -} - -template static inline -bool operator != (const Size_<_Tp>& a, const Size_<_Tp>& b) -{ - return !(a == b); -} - - - -////////////////////////////////// Rect ///////////////////////////////// - -template inline -Rect_<_Tp>::Rect_() - : x(0), y(0), width(0), height(0) {} - -template inline -Rect_<_Tp>::Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height) - : x(_x), y(_y), width(_width), height(_height) {} - -template inline -Rect_<_Tp>::Rect_(const Rect_<_Tp>& r) - : x(r.x), y(r.y), width(r.width), height(r.height) {} - -template inline -Rect_<_Tp>::Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz) - : x(org.x), y(org.y), width(sz.width), height(sz.height) {} - -template inline -Rect_<_Tp>::Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2) -{ - x = std::min(pt1.x, pt2.x); - y = std::min(pt1.y, pt2.y); - width = std::max(pt1.x, pt2.x) - x; - height = std::max(pt1.y, pt2.y) - y; -} - -template inline -Rect_<_Tp>& Rect_<_Tp>::operator = ( const Rect_<_Tp>& r ) -{ - x = r.x; - y = r.y; - width = r.width; - height = r.height; - return *this; -} - -template inline -Point_<_Tp> Rect_<_Tp>::tl() const -{ - return Point_<_Tp>(x,y); -} - -template inline -Point_<_Tp> Rect_<_Tp>::br() const -{ - return Point_<_Tp>(x + width, y + height); -} - -template inline -Size_<_Tp> Rect_<_Tp>::size() const -{ - return Size_<_Tp>(width, height); -} - -template inline -_Tp Rect_<_Tp>::area() const -{ - const _Tp result = width * height; - CV_DbgAssert(!std::numeric_limits<_Tp>::is_integer - || width == 0 || result / width == height); // make sure the result fits in the return value - return result; -} - -template inline -bool Rect_<_Tp>::empty() const -{ - return width <= 0 || height <= 0; -} - -template template inline -Rect_<_Tp>::operator Rect_<_Tp2>() const -{ - return Rect_<_Tp2>(saturate_cast<_Tp2>(x), saturate_cast<_Tp2>(y), saturate_cast<_Tp2>(width), saturate_cast<_Tp2>(height)); -} - -template inline -bool Rect_<_Tp>::contains(const Point_<_Tp>& pt) const -{ - return x <= pt.x && pt.x < x + width && y <= pt.y && pt.y < y + height; -} - - -template static inline -Rect_<_Tp>& operator += ( Rect_<_Tp>& a, const Point_<_Tp>& b ) -{ - a.x += b.x; - a.y += b.y; - return a; -} - -template static inline -Rect_<_Tp>& operator -= ( Rect_<_Tp>& a, const Point_<_Tp>& b ) -{ - a.x -= b.x; - a.y -= b.y; - return a; -} - -template static inline -Rect_<_Tp>& operator += ( Rect_<_Tp>& a, const Size_<_Tp>& b ) -{ - a.width += b.width; - a.height += b.height; - return a; -} - -template static inline -Rect_<_Tp>& operator -= ( Rect_<_Tp>& a, const Size_<_Tp>& b ) -{ - a.width -= b.width; - a.height -= b.height; - return a; -} - -template static inline -Rect_<_Tp>& operator &= ( Rect_<_Tp>& a, const Rect_<_Tp>& b ) -{ - _Tp x1 = std::max(a.x, b.x); - _Tp y1 = std::max(a.y, b.y); - a.width = std::min(a.x + a.width, b.x + b.width) - x1; - a.height = std::min(a.y + a.height, b.y + b.height) - y1; - a.x = x1; - a.y = y1; - if( a.width <= 0 || a.height <= 0 ) - a = Rect(); - return a; -} - -template static inline -Rect_<_Tp>& operator |= ( Rect_<_Tp>& a, const Rect_<_Tp>& b ) -{ - if (a.empty()) { - a = b; - } - else if (!b.empty()) { - _Tp x1 = std::min(a.x, b.x); - _Tp y1 = std::min(a.y, b.y); - a.width = std::max(a.x + a.width, b.x + b.width) - x1; - a.height = std::max(a.y + a.height, b.y + b.height) - y1; - a.x = x1; - a.y = y1; - } - return a; -} - -template static inline -bool operator == (const Rect_<_Tp>& a, const Rect_<_Tp>& b) -{ - return a.x == b.x && a.y == b.y && a.width == b.width && a.height == b.height; -} - -template static inline -bool operator != (const Rect_<_Tp>& a, const Rect_<_Tp>& b) -{ - return a.x != b.x || a.y != b.y || a.width != b.width || a.height != b.height; -} - -template static inline -Rect_<_Tp> operator + (const Rect_<_Tp>& a, const Point_<_Tp>& b) -{ - return Rect_<_Tp>( a.x + b.x, a.y + b.y, a.width, a.height ); -} - -template static inline -Rect_<_Tp> operator - (const Rect_<_Tp>& a, const Point_<_Tp>& b) -{ - return Rect_<_Tp>( a.x - b.x, a.y - b.y, a.width, a.height ); -} - -template static inline -Rect_<_Tp> operator + (const Rect_<_Tp>& a, const Size_<_Tp>& b) -{ - return Rect_<_Tp>( a.x, a.y, a.width + b.width, a.height + b.height ); -} - -template static inline -Rect_<_Tp> operator & (const Rect_<_Tp>& a, const Rect_<_Tp>& b) -{ - Rect_<_Tp> c = a; - return c &= b; -} - -template static inline -Rect_<_Tp> operator | (const Rect_<_Tp>& a, const Rect_<_Tp>& b) -{ - Rect_<_Tp> c = a; - return c |= b; -} - -/** - * @brief measure dissimilarity between two sample sets - * - * computes the complement of the Jaccard Index as described in . - * For rectangles this reduces to computing the intersection over the union. - */ -template static inline -double jaccardDistance(const Rect_<_Tp>& a, const Rect_<_Tp>& b) { - _Tp Aa = a.area(); - _Tp Ab = b.area(); - - if ((Aa + Ab) <= std::numeric_limits<_Tp>::epsilon()) { - // jaccard_index = 1 -> distance = 0 - return 0.0; - } - - double Aab = (a & b).area(); - // distance = 1 - jaccard_index - return 1.0 - Aab / (Aa + Ab - Aab); -} - -////////////////////////////// RotatedRect ////////////////////////////// - -inline -RotatedRect::RotatedRect() - : center(), size(), angle(0) {} - -inline -RotatedRect::RotatedRect(const Point2f& _center, const Size2f& _size, float _angle) - : center(_center), size(_size), angle(_angle) {} - - - -///////////////////////////////// Range ///////////////////////////////// - -inline -Range::Range() - : start(0), end(0) {} - -inline -Range::Range(int _start, int _end) - : start(_start), end(_end) {} - -inline -int Range::size() const -{ - return end - start; -} - -inline -bool Range::empty() const -{ - return start == end; -} - -inline -Range Range::all() -{ - return Range(INT_MIN, INT_MAX); -} - - -static inline -bool operator == (const Range& r1, const Range& r2) -{ - return r1.start == r2.start && r1.end == r2.end; -} - -static inline -bool operator != (const Range& r1, const Range& r2) -{ - return !(r1 == r2); -} - -static inline -bool operator !(const Range& r) -{ - return r.start == r.end; -} - -static inline -Range operator & (const Range& r1, const Range& r2) -{ - Range r(std::max(r1.start, r2.start), std::min(r1.end, r2.end)); - r.end = std::max(r.end, r.start); - return r; -} - -static inline -Range& operator &= (Range& r1, const Range& r2) -{ - r1 = r1 & r2; - return r1; -} - -static inline -Range operator + (const Range& r1, int delta) -{ - return Range(r1.start + delta, r1.end + delta); -} - -static inline -Range operator + (int delta, const Range& r1) -{ - return Range(r1.start + delta, r1.end + delta); -} - -static inline -Range operator - (const Range& r1, int delta) -{ - return r1 + (-delta); -} - - - -///////////////////////////////// Scalar //////////////////////////////// - -template inline -Scalar_<_Tp>::Scalar_() -{ - this->val[0] = this->val[1] = this->val[2] = this->val[3] = 0; -} - -template inline -Scalar_<_Tp>::Scalar_(_Tp v0, _Tp v1, _Tp v2, _Tp v3) -{ - this->val[0] = v0; - this->val[1] = v1; - this->val[2] = v2; - this->val[3] = v3; -} - -template template inline -Scalar_<_Tp>::Scalar_(const Vec<_Tp2, cn>& v) -{ - int i; - for( i = 0; i < (cn < 4 ? cn : 4); i++ ) - this->val[i] = cv::saturate_cast<_Tp>(v.val[i]); - for( ; i < 4; i++ ) - this->val[i] = 0; -} - -template inline -Scalar_<_Tp>::Scalar_(_Tp v0) -{ - this->val[0] = v0; - this->val[1] = this->val[2] = this->val[3] = 0; -} - -template inline -Scalar_<_Tp> Scalar_<_Tp>::all(_Tp v0) -{ - return Scalar_<_Tp>(v0, v0, v0, v0); -} - - -template inline -Scalar_<_Tp> Scalar_<_Tp>::mul(const Scalar_<_Tp>& a, double scale ) const -{ - return Scalar_<_Tp>(saturate_cast<_Tp>(this->val[0] * a.val[0] * scale), - saturate_cast<_Tp>(this->val[1] * a.val[1] * scale), - saturate_cast<_Tp>(this->val[2] * a.val[2] * scale), - saturate_cast<_Tp>(this->val[3] * a.val[3] * scale)); -} - -template inline -Scalar_<_Tp> Scalar_<_Tp>::conj() const -{ - return Scalar_<_Tp>(saturate_cast<_Tp>( this->val[0]), - saturate_cast<_Tp>(-this->val[1]), - saturate_cast<_Tp>(-this->val[2]), - saturate_cast<_Tp>(-this->val[3])); -} - -template inline -bool Scalar_<_Tp>::isReal() const -{ - return this->val[1] == 0 && this->val[2] == 0 && this->val[3] == 0; -} - - -template template inline -Scalar_<_Tp>::operator Scalar_() const -{ - return Scalar_(saturate_cast(this->val[0]), - saturate_cast(this->val[1]), - saturate_cast(this->val[2]), - saturate_cast(this->val[3])); -} - - -template static inline -Scalar_<_Tp>& operator += (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - a.val[0] += b.val[0]; - a.val[1] += b.val[1]; - a.val[2] += b.val[2]; - a.val[3] += b.val[3]; - return a; -} - -template static inline -Scalar_<_Tp>& operator -= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - a.val[0] -= b.val[0]; - a.val[1] -= b.val[1]; - a.val[2] -= b.val[2]; - a.val[3] -= b.val[3]; - return a; -} - -template static inline -Scalar_<_Tp>& operator *= ( Scalar_<_Tp>& a, _Tp v ) -{ - a.val[0] *= v; - a.val[1] *= v; - a.val[2] *= v; - a.val[3] *= v; - return a; -} - -template static inline -bool operator == ( const Scalar_<_Tp>& a, const Scalar_<_Tp>& b ) -{ - return a.val[0] == b.val[0] && a.val[1] == b.val[1] && - a.val[2] == b.val[2] && a.val[3] == b.val[3]; -} - -template static inline -bool operator != ( const Scalar_<_Tp>& a, const Scalar_<_Tp>& b ) -{ - return a.val[0] != b.val[0] || a.val[1] != b.val[1] || - a.val[2] != b.val[2] || a.val[3] != b.val[3]; -} - -template static inline -Scalar_<_Tp> operator + (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - return Scalar_<_Tp>(a.val[0] + b.val[0], - a.val[1] + b.val[1], - a.val[2] + b.val[2], - a.val[3] + b.val[3]); -} - -template static inline -Scalar_<_Tp> operator - (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - return Scalar_<_Tp>(saturate_cast<_Tp>(a.val[0] - b.val[0]), - saturate_cast<_Tp>(a.val[1] - b.val[1]), - saturate_cast<_Tp>(a.val[2] - b.val[2]), - saturate_cast<_Tp>(a.val[3] - b.val[3])); -} - -template static inline -Scalar_<_Tp> operator * (const Scalar_<_Tp>& a, _Tp alpha) -{ - return Scalar_<_Tp>(a.val[0] * alpha, - a.val[1] * alpha, - a.val[2] * alpha, - a.val[3] * alpha); -} - -template static inline -Scalar_<_Tp> operator * (_Tp alpha, const Scalar_<_Tp>& a) -{ - return a*alpha; -} - -template static inline -Scalar_<_Tp> operator - (const Scalar_<_Tp>& a) -{ - return Scalar_<_Tp>(saturate_cast<_Tp>(-a.val[0]), - saturate_cast<_Tp>(-a.val[1]), - saturate_cast<_Tp>(-a.val[2]), - saturate_cast<_Tp>(-a.val[3])); -} - - -template static inline -Scalar_<_Tp> operator * (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - return Scalar_<_Tp>(saturate_cast<_Tp>(a[0]*b[0] - a[1]*b[1] - a[2]*b[2] - a[3]*b[3]), - saturate_cast<_Tp>(a[0]*b[1] + a[1]*b[0] + a[2]*b[3] - a[3]*b[2]), - saturate_cast<_Tp>(a[0]*b[2] - a[1]*b[3] + a[2]*b[0] + a[3]*b[1]), - saturate_cast<_Tp>(a[0]*b[3] + a[1]*b[2] - a[2]*b[1] + a[3]*b[0])); -} - -template static inline -Scalar_<_Tp>& operator *= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - a = a * b; - return a; -} - -template static inline -Scalar_<_Tp> operator / (const Scalar_<_Tp>& a, _Tp alpha) -{ - return Scalar_<_Tp>(a.val[0] / alpha, - a.val[1] / alpha, - a.val[2] / alpha, - a.val[3] / alpha); -} - -template static inline -Scalar_ operator / (const Scalar_& a, float alpha) -{ - float s = 1 / alpha; - return Scalar_(a.val[0] * s, a.val[1] * s, a.val[2] * s, a.val[3] * s); -} - -template static inline -Scalar_ operator / (const Scalar_& a, double alpha) -{ - double s = 1 / alpha; - return Scalar_(a.val[0] * s, a.val[1] * s, a.val[2] * s, a.val[3] * s); -} - -template static inline -Scalar_<_Tp>& operator /= (Scalar_<_Tp>& a, _Tp alpha) -{ - a = a / alpha; - return a; -} - -template static inline -Scalar_<_Tp> operator / (_Tp a, const Scalar_<_Tp>& b) -{ - _Tp s = a / (b[0]*b[0] + b[1]*b[1] + b[2]*b[2] + b[3]*b[3]); - return b.conj() * s; -} - -template static inline -Scalar_<_Tp> operator / (const Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - return a * ((_Tp)1 / b); -} - -template static inline -Scalar_<_Tp>& operator /= (Scalar_<_Tp>& a, const Scalar_<_Tp>& b) -{ - a = a / b; - return a; -} - -template static inline -Scalar operator * (const Matx<_Tp, 4, 4>& a, const Scalar& b) -{ - Matx c((Matx)a, b, Matx_MatMulOp()); - return reinterpret_cast(c); -} - -template<> inline -Scalar operator * (const Matx& a, const Scalar& b) -{ - Matx c(a, b, Matx_MatMulOp()); - return reinterpret_cast(c); -} - - - -//////////////////////////////// KeyPoint /////////////////////////////// - -inline -KeyPoint::KeyPoint() - : pt(0,0), size(0), angle(-1), response(0), octave(0), class_id(-1) {} - -inline -KeyPoint::KeyPoint(Point2f _pt, float _size, float _angle, float _response, int _octave, int _class_id) - : pt(_pt), size(_size), angle(_angle), response(_response), octave(_octave), class_id(_class_id) {} - -inline -KeyPoint::KeyPoint(float x, float y, float _size, float _angle, float _response, int _octave, int _class_id) - : pt(x, y), size(_size), angle(_angle), response(_response), octave(_octave), class_id(_class_id) {} - - - -///////////////////////////////// DMatch //////////////////////////////// - -inline -DMatch::DMatch() - : queryIdx(-1), trainIdx(-1), imgIdx(-1), distance(FLT_MAX) {} - -inline -DMatch::DMatch(int _queryIdx, int _trainIdx, float _distance) - : queryIdx(_queryIdx), trainIdx(_trainIdx), imgIdx(-1), distance(_distance) {} - -inline -DMatch::DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance) - : queryIdx(_queryIdx), trainIdx(_trainIdx), imgIdx(_imgIdx), distance(_distance) {} - -inline -bool DMatch::operator < (const DMatch &m) const -{ - return distance < m.distance; -} - - - -////////////////////////////// TermCriteria ///////////////////////////// - -inline -TermCriteria::TermCriteria() - : type(0), maxCount(0), epsilon(0) {} - -inline -TermCriteria::TermCriteria(int _type, int _maxCount, double _epsilon) - : type(_type), maxCount(_maxCount), epsilon(_epsilon) {} - -//! @endcond - -} // cv - -#endif //OPENCV_CORE_TYPES_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/types_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/core/types_c.h deleted file mode 100644 index 4f04d0c06..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/types_c.h +++ /dev/null @@ -1,1837 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_TYPES_H -#define OPENCV_CORE_TYPES_H - -#ifdef HAVE_IPL -# ifndef __IPL_H__ -# if defined _WIN32 -# include -# else -# include -# endif -# endif -#elif defined __IPL_H__ -# define HAVE_IPL -#endif - -#include "opencv2/core/cvdef.h" - -#ifndef SKIP_INCLUDES -#include -#include -#include -#include -#endif // SKIP_INCLUDES - -#if defined _WIN32 -# define CV_CDECL __cdecl -# define CV_STDCALL __stdcall -#else -# define CV_CDECL -# define CV_STDCALL -#endif - -#ifndef CV_DEFAULT -# ifdef __cplusplus -# define CV_DEFAULT(val) = val -# else -# define CV_DEFAULT(val) -# endif -#endif - -#ifndef CV_EXTERN_C_FUNCPTR -# ifdef __cplusplus -# define CV_EXTERN_C_FUNCPTR(x) extern "C" { typedef x; } -# else -# define CV_EXTERN_C_FUNCPTR(x) typedef x -# endif -#endif - -#ifndef CVAPI -# define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL -#endif - -#ifndef CV_IMPL -# define CV_IMPL CV_EXTERN_C -#endif - -#ifdef __cplusplus -# include "opencv2/core.hpp" -#endif - -/** @addtogroup core_c - @{ -*/ - -/** @brief This is the "metatype" used *only* as a function parameter. - -It denotes that the function accepts arrays of multiple types, such as IplImage*, CvMat* or even -CvSeq* sometimes. The particular array type is determined at runtime by analyzing the first 4 -bytes of the header. In C++ interface the role of CvArr is played by InputArray and OutputArray. - */ -typedef void CvArr; - -typedef int CVStatus; - -/** @see cv::Error::Code */ -enum { - CV_StsOk= 0, /**< everything is ok */ - CV_StsBackTrace= -1, /**< pseudo error for back trace */ - CV_StsError= -2, /**< unknown /unspecified error */ - CV_StsInternal= -3, /**< internal error (bad state) */ - CV_StsNoMem= -4, /**< insufficient memory */ - CV_StsBadArg= -5, /**< function arg/param is bad */ - CV_StsBadFunc= -6, /**< unsupported function */ - CV_StsNoConv= -7, /**< iter. didn't converge */ - CV_StsAutoTrace= -8, /**< tracing */ - CV_HeaderIsNull= -9, /**< image header is NULL */ - CV_BadImageSize= -10, /**< image size is invalid */ - CV_BadOffset= -11, /**< offset is invalid */ - CV_BadDataPtr= -12, /**/ - CV_BadStep= -13, /**< image step is wrong, this may happen for a non-continuous matrix */ - CV_BadModelOrChSeq= -14, /**/ - CV_BadNumChannels= -15, /**< bad number of channels, for example, some functions accept only single channel matrices */ - CV_BadNumChannel1U= -16, /**/ - CV_BadDepth= -17, /**< input image depth is not supported by the function */ - CV_BadAlphaChannel= -18, /**/ - CV_BadOrder= -19, /**< number of dimensions is out of range */ - CV_BadOrigin= -20, /**< incorrect input origin */ - CV_BadAlign= -21, /**< incorrect input align */ - CV_BadCallBack= -22, /**/ - CV_BadTileSize= -23, /**/ - CV_BadCOI= -24, /**< input COI is not supported */ - CV_BadROISize= -25, /**< incorrect input roi */ - CV_MaskIsTiled= -26, /**/ - CV_StsNullPtr= -27, /**< null pointer */ - CV_StsVecLengthErr= -28, /**< incorrect vector length */ - CV_StsFilterStructContentErr= -29, /**< incorrect filter structure content */ - CV_StsKernelStructContentErr= -30, /**< incorrect transform kernel content */ - CV_StsFilterOffsetErr= -31, /**< incorrect filter offset value */ - CV_StsBadSize= -201, /**< the input/output structure size is incorrect */ - CV_StsDivByZero= -202, /**< division by zero */ - CV_StsInplaceNotSupported= -203, /**< in-place operation is not supported */ - CV_StsObjectNotFound= -204, /**< request can't be completed */ - CV_StsUnmatchedFormats= -205, /**< formats of input/output arrays differ */ - CV_StsBadFlag= -206, /**< flag is wrong or not supported */ - CV_StsBadPoint= -207, /**< bad CvPoint */ - CV_StsBadMask= -208, /**< bad format of mask (neither 8uC1 nor 8sC1)*/ - CV_StsUnmatchedSizes= -209, /**< sizes of input/output structures do not match */ - CV_StsUnsupportedFormat= -210, /**< the data format/type is not supported by the function*/ - CV_StsOutOfRange= -211, /**< some of parameters are out of range */ - CV_StsParseError= -212, /**< invalid syntax/structure of the parsed file */ - CV_StsNotImplemented= -213, /**< the requested function/feature is not implemented */ - CV_StsBadMemBlock= -214, /**< an allocated block has been corrupted */ - CV_StsAssert= -215, /**< assertion failed */ - CV_GpuNotSupported= -216, /**< no CUDA support */ - CV_GpuApiCallError= -217, /**< GPU API call error */ - CV_OpenGlNotSupported= -218, /**< no OpenGL support */ - CV_OpenGlApiCallError= -219, /**< OpenGL API call error */ - CV_OpenCLApiCallError= -220, /**< OpenCL API call error */ - CV_OpenCLDoubleNotSupported= -221, - CV_OpenCLInitError= -222, /**< OpenCL initialization error */ - CV_OpenCLNoAMDBlasFft= -223 -}; - -/****************************************************************************************\ -* Common macros and inline functions * -\****************************************************************************************/ - -#define CV_SWAP(a,b,t) ((t) = (a), (a) = (b), (b) = (t)) - -/** min & max without jumps */ -#define CV_IMIN(a, b) ((a) ^ (((a)^(b)) & (((a) < (b)) - 1))) - -#define CV_IMAX(a, b) ((a) ^ (((a)^(b)) & (((a) > (b)) - 1))) - -/** absolute value without jumps */ -#ifndef __cplusplus -# define CV_IABS(a) (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0)) -#else -# define CV_IABS(a) abs(a) -#endif -#define CV_CMP(a,b) (((a) > (b)) - ((a) < (b))) -#define CV_SIGN(a) CV_CMP((a),0) - -#define cvInvSqrt(value) ((float)(1./sqrt(value))) -#define cvSqrt(value) ((float)sqrt(value)) - - -/*************** Random number generation *******************/ - -typedef uint64 CvRNG; - -#define CV_RNG_COEFF 4164903690U - -/** @brief Initializes a random number generator state. - -The function initializes a random number generator and returns the state. The pointer to the state -can be then passed to the cvRandInt, cvRandReal and cvRandArr functions. In the current -implementation a multiply-with-carry generator is used. -@param seed 64-bit value used to initiate a random sequence -@sa the C++ class RNG replaced CvRNG. - */ -CV_INLINE CvRNG cvRNG( int64 seed CV_DEFAULT(-1)) -{ - CvRNG rng = seed ? (uint64)seed : (uint64)(int64)-1; - return rng; -} - -/** @brief Returns a 32-bit unsigned integer and updates RNG. - -The function returns a uniformly-distributed random 32-bit unsigned integer and updates the RNG -state. It is similar to the rand() function from the C runtime library, except that OpenCV functions -always generates a 32-bit random number, regardless of the platform. -@param rng CvRNG state initialized by cvRNG. - */ -CV_INLINE unsigned cvRandInt( CvRNG* rng ) -{ - uint64 temp = *rng; - temp = (uint64)(unsigned)temp*CV_RNG_COEFF + (temp >> 32); - *rng = temp; - return (unsigned)temp; -} - -/** @brief Returns a floating-point random number and updates RNG. - -The function returns a uniformly-distributed random floating-point number between 0 and 1 (1 is not -included). -@param rng RNG state initialized by cvRNG - */ -CV_INLINE double cvRandReal( CvRNG* rng ) -{ - return cvRandInt(rng)*2.3283064365386962890625e-10 /* 2^-32 */; -} - -/****************************************************************************************\ -* Image type (IplImage) * -\****************************************************************************************/ - -#ifndef HAVE_IPL - -/* - * The following definitions (until #endif) - * is an extract from IPL headers. - * Copyright (c) 1995 Intel Corporation. - */ -#define IPL_DEPTH_SIGN 0x80000000 - -#define IPL_DEPTH_1U 1 -#define IPL_DEPTH_8U 8 -#define IPL_DEPTH_16U 16 -#define IPL_DEPTH_32F 32 - -#define IPL_DEPTH_8S (IPL_DEPTH_SIGN| 8) -#define IPL_DEPTH_16S (IPL_DEPTH_SIGN|16) -#define IPL_DEPTH_32S (IPL_DEPTH_SIGN|32) - -#define IPL_DATA_ORDER_PIXEL 0 -#define IPL_DATA_ORDER_PLANE 1 - -#define IPL_ORIGIN_TL 0 -#define IPL_ORIGIN_BL 1 - -#define IPL_ALIGN_4BYTES 4 -#define IPL_ALIGN_8BYTES 8 -#define IPL_ALIGN_16BYTES 16 -#define IPL_ALIGN_32BYTES 32 - -#define IPL_ALIGN_DWORD IPL_ALIGN_4BYTES -#define IPL_ALIGN_QWORD IPL_ALIGN_8BYTES - -#define IPL_BORDER_CONSTANT 0 -#define IPL_BORDER_REPLICATE 1 -#define IPL_BORDER_REFLECT 2 -#define IPL_BORDER_WRAP 3 - -/** The IplImage is taken from the Intel Image Processing Library, in which the format is native. OpenCV -only supports a subset of possible IplImage formats, as outlined in the parameter list above. - -In addition to the above restrictions, OpenCV handles ROIs differently. OpenCV functions require -that the image size or ROI size of all source and destination images match exactly. On the other -hand, the Intel Image Processing Library processes the area of intersection between the source and -destination images (or ROIs), allowing them to vary independently. -*/ -typedef struct -#ifdef __cplusplus - CV_EXPORTS -#endif -_IplImage -{ - int nSize; /**< sizeof(IplImage) */ - int ID; /**< version (=0)*/ - int nChannels; /**< Most of OpenCV functions support 1,2,3 or 4 channels */ - int alphaChannel; /**< Ignored by OpenCV */ - int depth; /**< Pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S, - IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported. */ - char colorModel[4]; /**< Ignored by OpenCV */ - char channelSeq[4]; /**< ditto */ - int dataOrder; /**< 0 - interleaved color channels, 1 - separate color channels. - cvCreateImage can only create interleaved images */ - int origin; /**< 0 - top-left origin, - 1 - bottom-left origin (Windows bitmaps style). */ - int align; /**< Alignment of image rows (4 or 8). - OpenCV ignores it and uses widthStep instead. */ - int width; /**< Image width in pixels. */ - int height; /**< Image height in pixels. */ - struct _IplROI *roi; /**< Image ROI. If NULL, the whole image is selected. */ - struct _IplImage *maskROI; /**< Must be NULL. */ - void *imageId; /**< " " */ - struct _IplTileInfo *tileInfo; /**< " " */ - int imageSize; /**< Image data size in bytes - (==image->height*image->widthStep - in case of interleaved data)*/ - char *imageData; /**< Pointer to aligned image data. */ - int widthStep; /**< Size of aligned image row in bytes. */ - int BorderMode[4]; /**< Ignored by OpenCV. */ - int BorderConst[4]; /**< Ditto. */ - char *imageDataOrigin; /**< Pointer to very origin of image data - (not necessarily aligned) - - needed for correct deallocation */ - -#ifdef __cplusplus - _IplImage() {} - _IplImage(const cv::Mat& m); -#endif -} -IplImage; - -typedef struct _IplTileInfo IplTileInfo; - -typedef struct _IplROI -{ - int coi; /**< 0 - no COI (all channels are selected), 1 - 0th channel is selected ...*/ - int xOffset; - int yOffset; - int width; - int height; -} -IplROI; - -typedef struct _IplConvKernel -{ - int nCols; - int nRows; - int anchorX; - int anchorY; - int *values; - int nShiftR; -} -IplConvKernel; - -typedef struct _IplConvKernelFP -{ - int nCols; - int nRows; - int anchorX; - int anchorY; - float *values; -} -IplConvKernelFP; - -#define IPL_IMAGE_HEADER 1 -#define IPL_IMAGE_DATA 2 -#define IPL_IMAGE_ROI 4 - -#endif/*HAVE_IPL*/ - -/** extra border mode */ -#define IPL_BORDER_REFLECT_101 4 -#define IPL_BORDER_TRANSPARENT 5 - -#define IPL_IMAGE_MAGIC_VAL ((int)sizeof(IplImage)) -#define CV_TYPE_NAME_IMAGE "opencv-image" - -#define CV_IS_IMAGE_HDR(img) \ - ((img) != NULL && ((const IplImage*)(img))->nSize == sizeof(IplImage)) - -#define CV_IS_IMAGE(img) \ - (CV_IS_IMAGE_HDR(img) && ((IplImage*)img)->imageData != NULL) - -/** for storing double-precision - floating point data in IplImage's */ -#define IPL_DEPTH_64F 64 - -/** get reference to pixel at (col,row), - for multi-channel images (col) should be multiplied by number of channels */ -#define CV_IMAGE_ELEM( image, elemtype, row, col ) \ - (((elemtype*)((image)->imageData + (image)->widthStep*(row)))[(col)]) - -/****************************************************************************************\ -* Matrix type (CvMat) * -\****************************************************************************************/ - -#define CV_AUTO_STEP 0x7fffffff -#define CV_WHOLE_ARR cvSlice( 0, 0x3fffffff ) - -#define CV_MAGIC_MASK 0xFFFF0000 -#define CV_MAT_MAGIC_VAL 0x42420000 -#define CV_TYPE_NAME_MAT "opencv-matrix" - -/** Matrix elements are stored row by row. Element (i, j) (i - 0-based row index, j - 0-based column -index) of a matrix can be retrieved or modified using CV_MAT_ELEM macro: - - uchar pixval = CV_MAT_ELEM(grayimg, uchar, i, j) - CV_MAT_ELEM(cameraMatrix, float, 0, 2) = image.width*0.5f; - -To access multiple-channel matrices, you can use -CV_MAT_ELEM(matrix, type, i, j\*nchannels + channel_idx). - -@deprecated CvMat is now obsolete; consider using Mat instead. - */ -typedef struct CvMat -{ - int type; - int step; - - /* for internal use only */ - int* refcount; - int hdr_refcount; - - union - { - uchar* ptr; - short* s; - int* i; - float* fl; - double* db; - } data; - -#ifdef __cplusplus - union - { - int rows; - int height; - }; - - union - { - int cols; - int width; - }; -#else - int rows; - int cols; -#endif - - -#ifdef __cplusplus - CvMat() {} - CvMat(const CvMat& m) { memcpy(this, &m, sizeof(CvMat));} - CvMat(const cv::Mat& m); -#endif - -} -CvMat; - - -#define CV_IS_MAT_HDR(mat) \ - ((mat) != NULL && \ - (((const CvMat*)(mat))->type & CV_MAGIC_MASK) == CV_MAT_MAGIC_VAL && \ - ((const CvMat*)(mat))->cols > 0 && ((const CvMat*)(mat))->rows > 0) - -#define CV_IS_MAT_HDR_Z(mat) \ - ((mat) != NULL && \ - (((const CvMat*)(mat))->type & CV_MAGIC_MASK) == CV_MAT_MAGIC_VAL && \ - ((const CvMat*)(mat))->cols >= 0 && ((const CvMat*)(mat))->rows >= 0) - -#define CV_IS_MAT(mat) \ - (CV_IS_MAT_HDR(mat) && ((const CvMat*)(mat))->data.ptr != NULL) - -#define CV_IS_MASK_ARR(mat) \ - (((mat)->type & (CV_MAT_TYPE_MASK & ~CV_8SC1)) == 0) - -#define CV_ARE_TYPES_EQ(mat1, mat2) \ - ((((mat1)->type ^ (mat2)->type) & CV_MAT_TYPE_MASK) == 0) - -#define CV_ARE_CNS_EQ(mat1, mat2) \ - ((((mat1)->type ^ (mat2)->type) & CV_MAT_CN_MASK) == 0) - -#define CV_ARE_DEPTHS_EQ(mat1, mat2) \ - ((((mat1)->type ^ (mat2)->type) & CV_MAT_DEPTH_MASK) == 0) - -#define CV_ARE_SIZES_EQ(mat1, mat2) \ - ((mat1)->rows == (mat2)->rows && (mat1)->cols == (mat2)->cols) - -#define CV_IS_MAT_CONST(mat) \ - (((mat)->rows|(mat)->cols) == 1) - -#define IPL2CV_DEPTH(depth) \ - ((((CV_8U)+(CV_16U<<4)+(CV_32F<<8)+(CV_64F<<16)+(CV_8S<<20)+ \ - (CV_16S<<24)+(CV_32S<<28)) >> ((((depth) & 0xF0) >> 2) + \ - (((depth) & IPL_DEPTH_SIGN) ? 20 : 0))) & 15) - -/** Inline constructor. No data is allocated internally!!! - * (Use together with cvCreateData, or use cvCreateMat instead to - * get a matrix with allocated data): - */ -CV_INLINE CvMat cvMat( int rows, int cols, int type, void* data CV_DEFAULT(NULL)) -{ - CvMat m; - - assert( (unsigned)CV_MAT_DEPTH(type) <= CV_64F ); - type = CV_MAT_TYPE(type); - m.type = CV_MAT_MAGIC_VAL | CV_MAT_CONT_FLAG | type; - m.cols = cols; - m.rows = rows; - m.step = m.cols*CV_ELEM_SIZE(type); - m.data.ptr = (uchar*)data; - m.refcount = NULL; - m.hdr_refcount = 0; - - return m; -} - -#ifdef __cplusplus -inline CvMat::CvMat(const cv::Mat& m) -{ - CV_DbgAssert(m.dims <= 2); - *this = cvMat(m.rows, m.dims == 1 ? 1 : m.cols, m.type(), m.data); - step = (int)m.step[0]; - type = (type & ~cv::Mat::CONTINUOUS_FLAG) | (m.flags & cv::Mat::CONTINUOUS_FLAG); -} -#endif - - -#define CV_MAT_ELEM_PTR_FAST( mat, row, col, pix_size ) \ - (assert( (unsigned)(row) < (unsigned)(mat).rows && \ - (unsigned)(col) < (unsigned)(mat).cols ), \ - (mat).data.ptr + (size_t)(mat).step*(row) + (pix_size)*(col)) - -#define CV_MAT_ELEM_PTR( mat, row, col ) \ - CV_MAT_ELEM_PTR_FAST( mat, row, col, CV_ELEM_SIZE((mat).type) ) - -#define CV_MAT_ELEM( mat, elemtype, row, col ) \ - (*(elemtype*)CV_MAT_ELEM_PTR_FAST( mat, row, col, sizeof(elemtype))) - -/** @brief Returns the particular element of single-channel floating-point matrix. - -The function is a fast replacement for cvGetReal2D in the case of single-channel floating-point -matrices. It is faster because it is inline, it does fewer checks for array type and array element -type, and it checks for the row and column ranges only in debug mode. -@param mat Input matrix -@param row The zero-based index of row -@param col The zero-based index of column - */ -CV_INLINE double cvmGet( const CvMat* mat, int row, int col ) -{ - int type; - - type = CV_MAT_TYPE(mat->type); - assert( (unsigned)row < (unsigned)mat->rows && - (unsigned)col < (unsigned)mat->cols ); - - if( type == CV_32FC1 ) - return ((float*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col]; - else - { - assert( type == CV_64FC1 ); - return ((double*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col]; - } -} - -/** @brief Sets a specific element of a single-channel floating-point matrix. - -The function is a fast replacement for cvSetReal2D in the case of single-channel floating-point -matrices. It is faster because it is inline, it does fewer checks for array type and array element -type, and it checks for the row and column ranges only in debug mode. -@param mat The matrix -@param row The zero-based index of row -@param col The zero-based index of column -@param value The new value of the matrix element - */ -CV_INLINE void cvmSet( CvMat* mat, int row, int col, double value ) -{ - int type; - type = CV_MAT_TYPE(mat->type); - assert( (unsigned)row < (unsigned)mat->rows && - (unsigned)col < (unsigned)mat->cols ); - - if( type == CV_32FC1 ) - ((float*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col] = (float)value; - else - { - assert( type == CV_64FC1 ); - ((double*)(void*)(mat->data.ptr + (size_t)mat->step*row))[col] = value; - } -} - - -CV_INLINE int cvIplDepth( int type ) -{ - int depth = CV_MAT_DEPTH(type); - return CV_ELEM_SIZE1(depth)*8 | (depth == CV_8S || depth == CV_16S || - depth == CV_32S ? IPL_DEPTH_SIGN : 0); -} - - -/****************************************************************************************\ -* Multi-dimensional dense array (CvMatND) * -\****************************************************************************************/ - -#define CV_MATND_MAGIC_VAL 0x42430000 -#define CV_TYPE_NAME_MATND "opencv-nd-matrix" - -#define CV_MAX_DIM 32 -#define CV_MAX_DIM_HEAP 1024 - -/** - @deprecated consider using cv::Mat instead - */ -typedef struct -#ifdef __cplusplus - CV_EXPORTS -#endif -CvMatND -{ - int type; - int dims; - - int* refcount; - int hdr_refcount; - - union - { - uchar* ptr; - float* fl; - double* db; - int* i; - short* s; - } data; - - struct - { - int size; - int step; - } - dim[CV_MAX_DIM]; - -#ifdef __cplusplus - CvMatND() {} - CvMatND(const cv::Mat& m); -#endif -} -CvMatND; - -#define CV_IS_MATND_HDR(mat) \ - ((mat) != NULL && (((const CvMatND*)(mat))->type & CV_MAGIC_MASK) == CV_MATND_MAGIC_VAL) - -#define CV_IS_MATND(mat) \ - (CV_IS_MATND_HDR(mat) && ((const CvMatND*)(mat))->data.ptr != NULL) - - -/****************************************************************************************\ -* Multi-dimensional sparse array (CvSparseMat) * -\****************************************************************************************/ - -#define CV_SPARSE_MAT_MAGIC_VAL 0x42440000 -#define CV_TYPE_NAME_SPARSE_MAT "opencv-sparse-matrix" - -struct CvSet; - -typedef struct -#ifdef __cplusplus - CV_EXPORTS -#endif -CvSparseMat -{ - int type; - int dims; - int* refcount; - int hdr_refcount; - - struct CvSet* heap; - void** hashtable; - int hashsize; - int valoffset; - int idxoffset; - int size[CV_MAX_DIM]; - -#ifdef __cplusplus - void copyToSparseMat(cv::SparseMat& m) const; -#endif -} -CvSparseMat; - -#ifdef __cplusplus - CV_EXPORTS CvSparseMat* cvCreateSparseMat(const cv::SparseMat& m); -#endif - -#define CV_IS_SPARSE_MAT_HDR(mat) \ - ((mat) != NULL && \ - (((const CvSparseMat*)(mat))->type & CV_MAGIC_MASK) == CV_SPARSE_MAT_MAGIC_VAL) - -#define CV_IS_SPARSE_MAT(mat) \ - CV_IS_SPARSE_MAT_HDR(mat) - -/**************** iteration through a sparse array *****************/ - -typedef struct CvSparseNode -{ - unsigned hashval; - struct CvSparseNode* next; -} -CvSparseNode; - -typedef struct CvSparseMatIterator -{ - CvSparseMat* mat; - CvSparseNode* node; - int curidx; -} -CvSparseMatIterator; - -#define CV_NODE_VAL(mat,node) ((void*)((uchar*)(node) + (mat)->valoffset)) -#define CV_NODE_IDX(mat,node) ((int*)((uchar*)(node) + (mat)->idxoffset)) - -/****************************************************************************************\ -* Histogram * -\****************************************************************************************/ - -typedef int CvHistType; - -#define CV_HIST_MAGIC_VAL 0x42450000 -#define CV_HIST_UNIFORM_FLAG (1 << 10) - -/** indicates whether bin ranges are set already or not */ -#define CV_HIST_RANGES_FLAG (1 << 11) - -#define CV_HIST_ARRAY 0 -#define CV_HIST_SPARSE 1 -#define CV_HIST_TREE CV_HIST_SPARSE - -/** should be used as a parameter only, - it turns to CV_HIST_UNIFORM_FLAG of hist->type */ -#define CV_HIST_UNIFORM 1 - -typedef struct CvHistogram -{ - int type; - CvArr* bins; - float thresh[CV_MAX_DIM][2]; /**< For uniform histograms. */ - float** thresh2; /**< For non-uniform histograms. */ - CvMatND mat; /**< Embedded matrix header for array histograms. */ -} -CvHistogram; - -#define CV_IS_HIST( hist ) \ - ((hist) != NULL && \ - (((CvHistogram*)(hist))->type & CV_MAGIC_MASK) == CV_HIST_MAGIC_VAL && \ - (hist)->bins != NULL) - -#define CV_IS_UNIFORM_HIST( hist ) \ - (((hist)->type & CV_HIST_UNIFORM_FLAG) != 0) - -#define CV_IS_SPARSE_HIST( hist ) \ - CV_IS_SPARSE_MAT((hist)->bins) - -#define CV_HIST_HAS_RANGES( hist ) \ - (((hist)->type & CV_HIST_RANGES_FLAG) != 0) - -/****************************************************************************************\ -* Other supplementary data type definitions * -\****************************************************************************************/ - -/*************************************** CvRect *****************************************/ -/** @sa Rect_ */ -typedef struct CvRect -{ - int x; - int y; - int width; - int height; - -#ifdef __cplusplus - CvRect(int _x = 0, int _y = 0, int w = 0, int h = 0): x(_x), y(_y), width(w), height(h) {} - template - CvRect(const cv::Rect_<_Tp>& r): x(cv::saturate_cast(r.x)), y(cv::saturate_cast(r.y)), width(cv::saturate_cast(r.width)), height(cv::saturate_cast(r.height)) {} - template - operator cv::Rect_<_Tp>() const { return cv::Rect_<_Tp>((_Tp)x, (_Tp)y, (_Tp)width, (_Tp)height); } -#endif -} -CvRect; - -/** constructs CvRect structure. */ -CV_INLINE CvRect cvRect( int x, int y, int width, int height ) -{ - CvRect r; - - r.x = x; - r.y = y; - r.width = width; - r.height = height; - - return r; -} - - -CV_INLINE IplROI cvRectToROI( CvRect rect, int coi ) -{ - IplROI roi; - roi.xOffset = rect.x; - roi.yOffset = rect.y; - roi.width = rect.width; - roi.height = rect.height; - roi.coi = coi; - - return roi; -} - - -CV_INLINE CvRect cvROIToRect( IplROI roi ) -{ - return cvRect( roi.xOffset, roi.yOffset, roi.width, roi.height ); -} - -/*********************************** CvTermCriteria *************************************/ - -#define CV_TERMCRIT_ITER 1 -#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER -#define CV_TERMCRIT_EPS 2 - -/** @sa TermCriteria - */ -typedef struct CvTermCriteria -{ - int type; /**< may be combination of - CV_TERMCRIT_ITER - CV_TERMCRIT_EPS */ - int max_iter; - double epsilon; - -#ifdef __cplusplus - CvTermCriteria(int _type = 0, int _iter = 0, double _eps = 0) : type(_type), max_iter(_iter), epsilon(_eps) {} - CvTermCriteria(const cv::TermCriteria& t) : type(t.type), max_iter(t.maxCount), epsilon(t.epsilon) {} - operator cv::TermCriteria() const { return cv::TermCriteria(type, max_iter, epsilon); } -#endif - -} -CvTermCriteria; - -CV_INLINE CvTermCriteria cvTermCriteria( int type, int max_iter, double epsilon ) -{ - CvTermCriteria t; - - t.type = type; - t.max_iter = max_iter; - t.epsilon = (float)epsilon; - - return t; -} - - -/******************************* CvPoint and variants ***********************************/ - -typedef struct CvPoint -{ - int x; - int y; - -#ifdef __cplusplus - CvPoint(int _x = 0, int _y = 0): x(_x), y(_y) {} - template - CvPoint(const cv::Point_<_Tp>& pt): x((int)pt.x), y((int)pt.y) {} - template - operator cv::Point_<_Tp>() const { return cv::Point_<_Tp>(cv::saturate_cast<_Tp>(x), cv::saturate_cast<_Tp>(y)); } -#endif -} -CvPoint; - -/** constructs CvPoint structure. */ -CV_INLINE CvPoint cvPoint( int x, int y ) -{ - CvPoint p; - - p.x = x; - p.y = y; - - return p; -} - - -typedef struct CvPoint2D32f -{ - float x; - float y; - -#ifdef __cplusplus - CvPoint2D32f(float _x = 0, float _y = 0): x(_x), y(_y) {} - template - CvPoint2D32f(const cv::Point_<_Tp>& pt): x((float)pt.x), y((float)pt.y) {} - template - operator cv::Point_<_Tp>() const { return cv::Point_<_Tp>(cv::saturate_cast<_Tp>(x), cv::saturate_cast<_Tp>(y)); } -#endif -} -CvPoint2D32f; - -/** constructs CvPoint2D32f structure. */ -CV_INLINE CvPoint2D32f cvPoint2D32f( double x, double y ) -{ - CvPoint2D32f p; - - p.x = (float)x; - p.y = (float)y; - - return p; -} - -/** converts CvPoint to CvPoint2D32f. */ -CV_INLINE CvPoint2D32f cvPointTo32f( CvPoint point ) -{ - return cvPoint2D32f( (float)point.x, (float)point.y ); -} - -/** converts CvPoint2D32f to CvPoint. */ -CV_INLINE CvPoint cvPointFrom32f( CvPoint2D32f point ) -{ - CvPoint ipt; - ipt.x = cvRound(point.x); - ipt.y = cvRound(point.y); - - return ipt; -} - - -typedef struct CvPoint3D32f -{ - float x; - float y; - float z; - -#ifdef __cplusplus - CvPoint3D32f(float _x = 0, float _y = 0, float _z = 0): x(_x), y(_y), z(_z) {} - template - CvPoint3D32f(const cv::Point3_<_Tp>& pt): x((float)pt.x), y((float)pt.y), z((float)pt.z) {} - template - operator cv::Point3_<_Tp>() const { return cv::Point3_<_Tp>(cv::saturate_cast<_Tp>(x), cv::saturate_cast<_Tp>(y), cv::saturate_cast<_Tp>(z)); } -#endif -} -CvPoint3D32f; - -/** constructs CvPoint3D32f structure. */ -CV_INLINE CvPoint3D32f cvPoint3D32f( double x, double y, double z ) -{ - CvPoint3D32f p; - - p.x = (float)x; - p.y = (float)y; - p.z = (float)z; - - return p; -} - - -typedef struct CvPoint2D64f -{ - double x; - double y; -} -CvPoint2D64f; - -/** constructs CvPoint2D64f structure.*/ -CV_INLINE CvPoint2D64f cvPoint2D64f( double x, double y ) -{ - CvPoint2D64f p; - - p.x = x; - p.y = y; - - return p; -} - - -typedef struct CvPoint3D64f -{ - double x; - double y; - double z; -} -CvPoint3D64f; - -/** constructs CvPoint3D64f structure. */ -CV_INLINE CvPoint3D64f cvPoint3D64f( double x, double y, double z ) -{ - CvPoint3D64f p; - - p.x = x; - p.y = y; - p.z = z; - - return p; -} - - -/******************************** CvSize's & CvBox **************************************/ - -typedef struct CvSize -{ - int width; - int height; - -#ifdef __cplusplus - CvSize(int w = 0, int h = 0): width(w), height(h) {} - template - CvSize(const cv::Size_<_Tp>& sz): width(cv::saturate_cast(sz.width)), height(cv::saturate_cast(sz.height)) {} - template - operator cv::Size_<_Tp>() const { return cv::Size_<_Tp>(cv::saturate_cast<_Tp>(width), cv::saturate_cast<_Tp>(height)); } -#endif -} -CvSize; - -/** constructs CvSize structure. */ -CV_INLINE CvSize cvSize( int width, int height ) -{ - CvSize s; - - s.width = width; - s.height = height; - - return s; -} - -typedef struct CvSize2D32f -{ - float width; - float height; - -#ifdef __cplusplus - CvSize2D32f(float w = 0, float h = 0): width(w), height(h) {} - template - CvSize2D32f(const cv::Size_<_Tp>& sz): width(cv::saturate_cast(sz.width)), height(cv::saturate_cast(sz.height)) {} - template - operator cv::Size_<_Tp>() const { return cv::Size_<_Tp>(cv::saturate_cast<_Tp>(width), cv::saturate_cast<_Tp>(height)); } -#endif -} -CvSize2D32f; - -/** constructs CvSize2D32f structure. */ -CV_INLINE CvSize2D32f cvSize2D32f( double width, double height ) -{ - CvSize2D32f s; - - s.width = (float)width; - s.height = (float)height; - - return s; -} - -/** @sa RotatedRect - */ -typedef struct CvBox2D -{ - CvPoint2D32f center; /**< Center of the box. */ - CvSize2D32f size; /**< Box width and length. */ - float angle; /**< Angle between the horizontal axis */ - /**< and the first side (i.e. length) in degrees */ - -#ifdef __cplusplus - CvBox2D(CvPoint2D32f c = CvPoint2D32f(), CvSize2D32f s = CvSize2D32f(), float a = 0) : center(c), size(s), angle(a) {} - CvBox2D(const cv::RotatedRect& rr) : center(rr.center), size(rr.size), angle(rr.angle) {} - operator cv::RotatedRect() const { return cv::RotatedRect(center, size, angle); } -#endif -} -CvBox2D; - - -/** Line iterator state: */ -typedef struct CvLineIterator -{ - /** Pointer to the current point: */ - uchar* ptr; - - /* Bresenham algorithm state: */ - int err; - int plus_delta; - int minus_delta; - int plus_step; - int minus_step; -} -CvLineIterator; - - - -/************************************* CvSlice ******************************************/ -#define CV_WHOLE_SEQ_END_INDEX 0x3fffffff -#define CV_WHOLE_SEQ cvSlice(0, CV_WHOLE_SEQ_END_INDEX) - -typedef struct CvSlice -{ - int start_index, end_index; - -#if defined(__cplusplus) && !defined(__CUDACC__) - CvSlice(int start = 0, int end = 0) : start_index(start), end_index(end) {} - CvSlice(const cv::Range& r) { *this = (r.start != INT_MIN && r.end != INT_MAX) ? CvSlice(r.start, r.end) : CvSlice(0, CV_WHOLE_SEQ_END_INDEX); } - operator cv::Range() const { return (start_index == 0 && end_index == CV_WHOLE_SEQ_END_INDEX ) ? cv::Range::all() : cv::Range(start_index, end_index); } -#endif -} -CvSlice; - -CV_INLINE CvSlice cvSlice( int start, int end ) -{ - CvSlice slice; - slice.start_index = start; - slice.end_index = end; - - return slice; -} - - - -/************************************* CvScalar *****************************************/ -/** @sa Scalar_ - */ -typedef struct CvScalar -{ - double val[4]; - -#ifdef __cplusplus - CvScalar() {} - CvScalar(double d0, double d1 = 0, double d2 = 0, double d3 = 0) { val[0] = d0; val[1] = d1; val[2] = d2; val[3] = d3; } - template - CvScalar(const cv::Scalar_<_Tp>& s) { val[0] = s.val[0]; val[1] = s.val[1]; val[2] = s.val[2]; val[3] = s.val[3]; } - template - operator cv::Scalar_<_Tp>() const { return cv::Scalar_<_Tp>(cv::saturate_cast<_Tp>(val[0]), cv::saturate_cast<_Tp>(val[1]), cv::saturate_cast<_Tp>(val[2]), cv::saturate_cast<_Tp>(val[3])); } - template - CvScalar(const cv::Vec<_Tp, cn>& v) - { - int i; - for( i = 0; i < (cn < 4 ? cn : 4); i++ ) val[i] = v.val[i]; - for( ; i < 4; i++ ) val[i] = 0; - } -#endif -} -CvScalar; - -CV_INLINE CvScalar cvScalar( double val0, double val1 CV_DEFAULT(0), - double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0)) -{ - CvScalar scalar; - scalar.val[0] = val0; scalar.val[1] = val1; - scalar.val[2] = val2; scalar.val[3] = val3; - return scalar; -} - - -CV_INLINE CvScalar cvRealScalar( double val0 ) -{ - CvScalar scalar; - scalar.val[0] = val0; - scalar.val[1] = scalar.val[2] = scalar.val[3] = 0; - return scalar; -} - -CV_INLINE CvScalar cvScalarAll( double val0123 ) -{ - CvScalar scalar; - scalar.val[0] = val0123; - scalar.val[1] = val0123; - scalar.val[2] = val0123; - scalar.val[3] = val0123; - return scalar; -} - -/****************************************************************************************\ -* Dynamic Data structures * -\****************************************************************************************/ - -/******************************** Memory storage ****************************************/ - -typedef struct CvMemBlock -{ - struct CvMemBlock* prev; - struct CvMemBlock* next; -} -CvMemBlock; - -#define CV_STORAGE_MAGIC_VAL 0x42890000 - -typedef struct CvMemStorage -{ - int signature; - CvMemBlock* bottom; /**< First allocated block. */ - CvMemBlock* top; /**< Current memory block - top of the stack. */ - struct CvMemStorage* parent; /**< We get new blocks from parent as needed. */ - int block_size; /**< Block size. */ - int free_space; /**< Remaining free space in current block. */ -} -CvMemStorage; - -#define CV_IS_STORAGE(storage) \ - ((storage) != NULL && \ - (((CvMemStorage*)(storage))->signature & CV_MAGIC_MASK) == CV_STORAGE_MAGIC_VAL) - - -typedef struct CvMemStoragePos -{ - CvMemBlock* top; - int free_space; -} -CvMemStoragePos; - - -/*********************************** Sequence *******************************************/ - -typedef struct CvSeqBlock -{ - struct CvSeqBlock* prev; /**< Previous sequence block. */ - struct CvSeqBlock* next; /**< Next sequence block. */ - int start_index; /**< Index of the first element in the block + */ - /**< sequence->first->start_index. */ - int count; /**< Number of elements in the block. */ - schar* data; /**< Pointer to the first element of the block. */ -} -CvSeqBlock; - - -#define CV_TREE_NODE_FIELDS(node_type) \ - int flags; /**< Miscellaneous flags. */ \ - int header_size; /**< Size of sequence header. */ \ - struct node_type* h_prev; /**< Previous sequence. */ \ - struct node_type* h_next; /**< Next sequence. */ \ - struct node_type* v_prev; /**< 2nd previous sequence. */ \ - struct node_type* v_next /**< 2nd next sequence. */ - -/** - Read/Write sequence. - Elements can be dynamically inserted to or deleted from the sequence. -*/ -#define CV_SEQUENCE_FIELDS() \ - CV_TREE_NODE_FIELDS(CvSeq); \ - int total; /**< Total number of elements. */ \ - int elem_size; /**< Size of sequence element in bytes. */ \ - schar* block_max; /**< Maximal bound of the last block. */ \ - schar* ptr; /**< Current write pointer. */ \ - int delta_elems; /**< Grow seq this many at a time. */ \ - CvMemStorage* storage; /**< Where the seq is stored. */ \ - CvSeqBlock* free_blocks; /**< Free blocks list. */ \ - CvSeqBlock* first; /**< Pointer to the first sequence block. */ - -typedef struct CvSeq -{ - CV_SEQUENCE_FIELDS() -} -CvSeq; - -#define CV_TYPE_NAME_SEQ "opencv-sequence" -#define CV_TYPE_NAME_SEQ_TREE "opencv-sequence-tree" - -/*************************************** Set ********************************************/ -/** @brief Set - Order is not preserved. There can be gaps between sequence elements. - After the element has been inserted it stays in the same place all the time. - The MSB(most-significant or sign bit) of the first field (flags) is 0 iff the element exists. -*/ -#define CV_SET_ELEM_FIELDS(elem_type) \ - int flags; \ - struct elem_type* next_free; - -typedef struct CvSetElem -{ - CV_SET_ELEM_FIELDS(CvSetElem) -} -CvSetElem; - -#define CV_SET_FIELDS() \ - CV_SEQUENCE_FIELDS() \ - CvSetElem* free_elems; \ - int active_count; - -typedef struct CvSet -{ - CV_SET_FIELDS() -} -CvSet; - - -#define CV_SET_ELEM_IDX_MASK ((1 << 26) - 1) -#define CV_SET_ELEM_FREE_FLAG (1 << (sizeof(int)*8-1)) - -/** Checks whether the element pointed by ptr belongs to a set or not */ -#define CV_IS_SET_ELEM( ptr ) (((CvSetElem*)(ptr))->flags >= 0) - -/************************************* Graph ********************************************/ - -/** @name Graph - -We represent a graph as a set of vertices. Vertices contain their adjacency lists (more exactly, -pointers to first incoming or outcoming edge (or 0 if isolated vertex)). Edges are stored in -another set. There is a singly-linked list of incoming/outcoming edges for each vertex. - -Each edge consists of: - -- Two pointers to the starting and ending vertices (vtx[0] and vtx[1] respectively). - - A graph may be oriented or not. In the latter case, edges between vertex i to vertex j are not -distinguished during search operations. - -- Two pointers to next edges for the starting and ending vertices, where next[0] points to the -next edge in the vtx[0] adjacency list and next[1] points to the next edge in the vtx[1] -adjacency list. - -@see CvGraphEdge, CvGraphVtx, CvGraphVtx2D, CvGraph -@{ -*/ -#define CV_GRAPH_EDGE_FIELDS() \ - int flags; \ - float weight; \ - struct CvGraphEdge* next[2]; \ - struct CvGraphVtx* vtx[2]; - - -#define CV_GRAPH_VERTEX_FIELDS() \ - int flags; \ - struct CvGraphEdge* first; - - -typedef struct CvGraphEdge -{ - CV_GRAPH_EDGE_FIELDS() -} -CvGraphEdge; - -typedef struct CvGraphVtx -{ - CV_GRAPH_VERTEX_FIELDS() -} -CvGraphVtx; - -typedef struct CvGraphVtx2D -{ - CV_GRAPH_VERTEX_FIELDS() - CvPoint2D32f* ptr; -} -CvGraphVtx2D; - -/** - Graph is "derived" from the set (this is set a of vertices) - and includes another set (edges) -*/ -#define CV_GRAPH_FIELDS() \ - CV_SET_FIELDS() \ - CvSet* edges; - -typedef struct CvGraph -{ - CV_GRAPH_FIELDS() -} -CvGraph; - -#define CV_TYPE_NAME_GRAPH "opencv-graph" - -/** @} */ - -/*********************************** Chain/Countour *************************************/ - -typedef struct CvChain -{ - CV_SEQUENCE_FIELDS() - CvPoint origin; -} -CvChain; - -#define CV_CONTOUR_FIELDS() \ - CV_SEQUENCE_FIELDS() \ - CvRect rect; \ - int color; \ - int reserved[3]; - -typedef struct CvContour -{ - CV_CONTOUR_FIELDS() -} -CvContour; - -typedef CvContour CvPoint2DSeq; - -/****************************************************************************************\ -* Sequence types * -\****************************************************************************************/ - -#define CV_SEQ_MAGIC_VAL 0x42990000 - -#define CV_IS_SEQ(seq) \ - ((seq) != NULL && (((CvSeq*)(seq))->flags & CV_MAGIC_MASK) == CV_SEQ_MAGIC_VAL) - -#define CV_SET_MAGIC_VAL 0x42980000 -#define CV_IS_SET(set) \ - ((set) != NULL && (((CvSeq*)(set))->flags & CV_MAGIC_MASK) == CV_SET_MAGIC_VAL) - -#define CV_SEQ_ELTYPE_BITS 12 -#define CV_SEQ_ELTYPE_MASK ((1 << CV_SEQ_ELTYPE_BITS) - 1) - -#define CV_SEQ_ELTYPE_POINT CV_32SC2 /**< (x,y) */ -#define CV_SEQ_ELTYPE_CODE CV_8UC1 /**< freeman code: 0..7 */ -#define CV_SEQ_ELTYPE_GENERIC 0 -#define CV_SEQ_ELTYPE_PTR CV_USRTYPE1 -#define CV_SEQ_ELTYPE_PPOINT CV_SEQ_ELTYPE_PTR /**< &(x,y) */ -#define CV_SEQ_ELTYPE_INDEX CV_32SC1 /**< #(x,y) */ -#define CV_SEQ_ELTYPE_GRAPH_EDGE 0 /**< &next_o, &next_d, &vtx_o, &vtx_d */ -#define CV_SEQ_ELTYPE_GRAPH_VERTEX 0 /**< first_edge, &(x,y) */ -#define CV_SEQ_ELTYPE_TRIAN_ATR 0 /**< vertex of the binary tree */ -#define CV_SEQ_ELTYPE_CONNECTED_COMP 0 /**< connected component */ -#define CV_SEQ_ELTYPE_POINT3D CV_32FC3 /**< (x,y,z) */ - -#define CV_SEQ_KIND_BITS 2 -#define CV_SEQ_KIND_MASK (((1 << CV_SEQ_KIND_BITS) - 1)<flags & CV_SEQ_ELTYPE_MASK) -#define CV_SEQ_KIND( seq ) ((seq)->flags & CV_SEQ_KIND_MASK ) - -/** flag checking */ -#define CV_IS_SEQ_INDEX( seq ) ((CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_INDEX) && \ - (CV_SEQ_KIND(seq) == CV_SEQ_KIND_GENERIC)) - -#define CV_IS_SEQ_CURVE( seq ) (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE) -#define CV_IS_SEQ_CLOSED( seq ) (((seq)->flags & CV_SEQ_FLAG_CLOSED) != 0) -#define CV_IS_SEQ_CONVEX( seq ) 0 -#define CV_IS_SEQ_HOLE( seq ) (((seq)->flags & CV_SEQ_FLAG_HOLE) != 0) -#define CV_IS_SEQ_SIMPLE( seq ) 1 - -/** type checking macros */ -#define CV_IS_SEQ_POINT_SET( seq ) \ - ((CV_SEQ_ELTYPE(seq) == CV_32SC2 || CV_SEQ_ELTYPE(seq) == CV_32FC2)) - -#define CV_IS_SEQ_POINT_SUBSET( seq ) \ - (CV_IS_SEQ_INDEX( seq ) || CV_SEQ_ELTYPE(seq) == CV_SEQ_ELTYPE_PPOINT) - -#define CV_IS_SEQ_POLYLINE( seq ) \ - (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && CV_IS_SEQ_POINT_SET(seq)) - -#define CV_IS_SEQ_POLYGON( seq ) \ - (CV_IS_SEQ_POLYLINE(seq) && CV_IS_SEQ_CLOSED(seq)) - -#define CV_IS_SEQ_CHAIN( seq ) \ - (CV_SEQ_KIND(seq) == CV_SEQ_KIND_CURVE && (seq)->elem_size == 1) - -#define CV_IS_SEQ_CONTOUR( seq ) \ - (CV_IS_SEQ_CLOSED(seq) && (CV_IS_SEQ_POLYLINE(seq) || CV_IS_SEQ_CHAIN(seq))) - -#define CV_IS_SEQ_CHAIN_CONTOUR( seq ) \ - (CV_IS_SEQ_CHAIN( seq ) && CV_IS_SEQ_CLOSED( seq )) - -#define CV_IS_SEQ_POLYGON_TREE( seq ) \ - (CV_SEQ_ELTYPE (seq) == CV_SEQ_ELTYPE_TRIAN_ATR && \ - CV_SEQ_KIND( seq ) == CV_SEQ_KIND_BIN_TREE ) - -#define CV_IS_GRAPH( seq ) \ - (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_GRAPH) - -#define CV_IS_GRAPH_ORIENTED( seq ) \ - (((seq)->flags & CV_GRAPH_FLAG_ORIENTED) != 0) - -#define CV_IS_SUBDIV2D( seq ) \ - (CV_IS_SET(seq) && CV_SEQ_KIND((CvSet*)(seq)) == CV_SEQ_KIND_SUBDIV2D) - -/****************************************************************************************/ -/* Sequence writer & reader */ -/****************************************************************************************/ - -#define CV_SEQ_WRITER_FIELDS() \ - int header_size; \ - CvSeq* seq; /**< the sequence written */ \ - CvSeqBlock* block; /**< current block */ \ - schar* ptr; /**< pointer to free space */ \ - schar* block_min; /**< pointer to the beginning of block*/\ - schar* block_max; /**< pointer to the end of block */ - -typedef struct CvSeqWriter -{ - CV_SEQ_WRITER_FIELDS() -} -CvSeqWriter; - - -#define CV_SEQ_READER_FIELDS() \ - int header_size; \ - CvSeq* seq; /**< sequence, beign read */ \ - CvSeqBlock* block; /**< current block */ \ - schar* ptr; /**< pointer to element be read next */ \ - schar* block_min; /**< pointer to the beginning of block */\ - schar* block_max; /**< pointer to the end of block */ \ - int delta_index;/**< = seq->first->start_index */ \ - schar* prev_elem; /**< pointer to previous element */ - -typedef struct CvSeqReader -{ - CV_SEQ_READER_FIELDS() -} -CvSeqReader; - -/****************************************************************************************/ -/* Operations on sequences */ -/****************************************************************************************/ - -#define CV_SEQ_ELEM( seq, elem_type, index ) \ -/** assert gives some guarantee that parameter is valid */ \ -( assert(sizeof((seq)->first[0]) == sizeof(CvSeqBlock) && \ - (seq)->elem_size == sizeof(elem_type)), \ - (elem_type*)((seq)->first && (unsigned)index < \ - (unsigned)((seq)->first->count) ? \ - (seq)->first->data + (index) * sizeof(elem_type) : \ - cvGetSeqElem( (CvSeq*)(seq), (index) ))) -#define CV_GET_SEQ_ELEM( elem_type, seq, index ) CV_SEQ_ELEM( (seq), elem_type, (index) ) - -/** Add element to sequence: */ -#define CV_WRITE_SEQ_ELEM_VAR( elem_ptr, writer ) \ -{ \ - if( (writer).ptr >= (writer).block_max ) \ - { \ - cvCreateSeqBlock( &writer); \ - } \ - memcpy((writer).ptr, elem_ptr, (writer).seq->elem_size);\ - (writer).ptr += (writer).seq->elem_size; \ -} - -#define CV_WRITE_SEQ_ELEM( elem, writer ) \ -{ \ - assert( (writer).seq->elem_size == sizeof(elem)); \ - if( (writer).ptr >= (writer).block_max ) \ - { \ - cvCreateSeqBlock( &writer); \ - } \ - assert( (writer).ptr <= (writer).block_max - sizeof(elem));\ - memcpy((writer).ptr, &(elem), sizeof(elem)); \ - (writer).ptr += sizeof(elem); \ -} - - -/** Move reader position forward: */ -#define CV_NEXT_SEQ_ELEM( elem_size, reader ) \ -{ \ - if( ((reader).ptr += (elem_size)) >= (reader).block_max ) \ - { \ - cvChangeSeqBlock( &(reader), 1 ); \ - } \ -} - - -/** Move reader position backward: */ -#define CV_PREV_SEQ_ELEM( elem_size, reader ) \ -{ \ - if( ((reader).ptr -= (elem_size)) < (reader).block_min ) \ - { \ - cvChangeSeqBlock( &(reader), -1 ); \ - } \ -} - -/** Read element and move read position forward: */ -#define CV_READ_SEQ_ELEM( elem, reader ) \ -{ \ - assert( (reader).seq->elem_size == sizeof(elem)); \ - memcpy( &(elem), (reader).ptr, sizeof((elem))); \ - CV_NEXT_SEQ_ELEM( sizeof(elem), reader ) \ -} - -/** Read element and move read position backward: */ -#define CV_REV_READ_SEQ_ELEM( elem, reader ) \ -{ \ - assert( (reader).seq->elem_size == sizeof(elem)); \ - memcpy(&(elem), (reader).ptr, sizeof((elem))); \ - CV_PREV_SEQ_ELEM( sizeof(elem), reader ) \ -} - - -#define CV_READ_CHAIN_POINT( _pt, reader ) \ -{ \ - (_pt) = (reader).pt; \ - if( (reader).ptr ) \ - { \ - CV_READ_SEQ_ELEM( (reader).code, (reader)); \ - assert( ((reader).code & ~7) == 0 ); \ - (reader).pt.x += (reader).deltas[(int)(reader).code][0]; \ - (reader).pt.y += (reader).deltas[(int)(reader).code][1]; \ - } \ -} - -#define CV_CURRENT_POINT( reader ) (*((CvPoint*)((reader).ptr))) -#define CV_PREV_POINT( reader ) (*((CvPoint*)((reader).prev_elem))) - -#define CV_READ_EDGE( pt1, pt2, reader ) \ -{ \ - assert( sizeof(pt1) == sizeof(CvPoint) && \ - sizeof(pt2) == sizeof(CvPoint) && \ - reader.seq->elem_size == sizeof(CvPoint)); \ - (pt1) = CV_PREV_POINT( reader ); \ - (pt2) = CV_CURRENT_POINT( reader ); \ - (reader).prev_elem = (reader).ptr; \ - CV_NEXT_SEQ_ELEM( sizeof(CvPoint), (reader)); \ -} - -/************ Graph macros ************/ - -/** Return next graph edge for given vertex: */ -#define CV_NEXT_GRAPH_EDGE( edge, vertex ) \ - (assert((edge)->vtx[0] == (vertex) || (edge)->vtx[1] == (vertex)), \ - (edge)->next[(edge)->vtx[1] == (vertex)]) - - - -/****************************************************************************************\ -* Data structures for persistence (a.k.a serialization) functionality * -\****************************************************************************************/ - -/** "black box" file storage */ -typedef struct CvFileStorage CvFileStorage; - -/** Storage flags: */ -#define CV_STORAGE_READ 0 -#define CV_STORAGE_WRITE 1 -#define CV_STORAGE_WRITE_TEXT CV_STORAGE_WRITE -#define CV_STORAGE_WRITE_BINARY CV_STORAGE_WRITE -#define CV_STORAGE_APPEND 2 -#define CV_STORAGE_MEMORY 4 -#define CV_STORAGE_FORMAT_MASK (7<<3) -#define CV_STORAGE_FORMAT_AUTO 0 -#define CV_STORAGE_FORMAT_XML 8 -#define CV_STORAGE_FORMAT_YAML 16 -#define CV_STORAGE_FORMAT_JSON 24 -#define CV_STORAGE_BASE64 64 -#define CV_STORAGE_WRITE_BASE64 (CV_STORAGE_BASE64 | CV_STORAGE_WRITE) - -/** @brief List of attributes. : - -In the current implementation, attributes are used to pass extra parameters when writing user -objects (see cvWrite). XML attributes inside tags are not supported, aside from the object type -specification (type_id attribute). -@see cvAttrList, cvAttrValue - */ -typedef struct CvAttrList -{ - const char** attr; /**< NULL-terminated array of (attribute_name,attribute_value) pairs. */ - struct CvAttrList* next; /**< Pointer to next chunk of the attributes list. */ -} -CvAttrList; - -/** initializes CvAttrList structure */ -CV_INLINE CvAttrList cvAttrList( const char** attr CV_DEFAULT(NULL), - CvAttrList* next CV_DEFAULT(NULL) ) -{ - CvAttrList l; - l.attr = attr; - l.next = next; - - return l; -} - -struct CvTypeInfo; - -#define CV_NODE_NONE 0 -#define CV_NODE_INT 1 -#define CV_NODE_INTEGER CV_NODE_INT -#define CV_NODE_REAL 2 -#define CV_NODE_FLOAT CV_NODE_REAL -#define CV_NODE_STR 3 -#define CV_NODE_STRING CV_NODE_STR -#define CV_NODE_REF 4 /**< not used */ -#define CV_NODE_SEQ 5 -#define CV_NODE_MAP 6 -#define CV_NODE_TYPE_MASK 7 - -#define CV_NODE_TYPE(flags) ((flags) & CV_NODE_TYPE_MASK) - -/** file node flags */ -#define CV_NODE_FLOW 8 /**= CV_NODE_SEQ) -#define CV_NODE_IS_FLOW(flags) (((flags) & CV_NODE_FLOW) != 0) -#define CV_NODE_IS_EMPTY(flags) (((flags) & CV_NODE_EMPTY) != 0) -#define CV_NODE_IS_USER(flags) (((flags) & CV_NODE_USER) != 0) -#define CV_NODE_HAS_NAME(flags) (((flags) & CV_NODE_NAMED) != 0) - -#define CV_NODE_SEQ_SIMPLE 256 -#define CV_NODE_SEQ_IS_SIMPLE(seq) (((seq)->flags & CV_NODE_SEQ_SIMPLE) != 0) - -typedef struct CvString -{ - int len; - char* ptr; -} -CvString; - -/** All the keys (names) of elements in the readed file storage - are stored in the hash to speed up the lookup operations: */ -typedef struct CvStringHashNode -{ - unsigned hashval; - CvString str; - struct CvStringHashNode* next; -} -CvStringHashNode; - -typedef struct CvGenericHash CvFileNodeHash; - -/** Basic element of the file storage - scalar or collection: */ -typedef struct CvFileNode -{ - int tag; - struct CvTypeInfo* info; /**< type information - (only for user-defined object, for others it is 0) */ - union - { - double f; /**< scalar floating-point number */ - int i; /**< scalar integer number */ - CvString str; /**< text string */ - CvSeq* seq; /**< sequence (ordered collection of file nodes) */ - CvFileNodeHash* map; /**< map (collection of named file nodes) */ - } data; -} -CvFileNode; - -#ifdef __cplusplus -extern "C" { -#endif -typedef int (CV_CDECL *CvIsInstanceFunc)( const void* struct_ptr ); -typedef void (CV_CDECL *CvReleaseFunc)( void** struct_dblptr ); -typedef void* (CV_CDECL *CvReadFunc)( CvFileStorage* storage, CvFileNode* node ); -typedef void (CV_CDECL *CvWriteFunc)( CvFileStorage* storage, const char* name, - const void* struct_ptr, CvAttrList attributes ); -typedef void* (CV_CDECL *CvCloneFunc)( const void* struct_ptr ); -#ifdef __cplusplus -} -#endif - -/** @brief Type information - -The structure contains information about one of the standard or user-defined types. Instances of the -type may or may not contain a pointer to the corresponding CvTypeInfo structure. In any case, there -is a way to find the type info structure for a given object using the cvTypeOf function. -Alternatively, type info can be found by type name using cvFindType, which is used when an object -is read from file storage. The user can register a new type with cvRegisterType that adds the type -information structure into the beginning of the type list. Thus, it is possible to create -specialized types from generic standard types and override the basic methods. - */ -typedef struct CvTypeInfo -{ - int flags; /**< not used */ - int header_size; /**< sizeof(CvTypeInfo) */ - struct CvTypeInfo* prev; /**< previous registered type in the list */ - struct CvTypeInfo* next; /**< next registered type in the list */ - const char* type_name; /**< type name, written to file storage */ - CvIsInstanceFunc is_instance; /**< checks if the passed object belongs to the type */ - CvReleaseFunc release; /**< releases object (memory etc.) */ - CvReadFunc read; /**< reads object from file storage */ - CvWriteFunc write; /**< writes object to file storage */ - CvCloneFunc clone; /**< creates a copy of the object */ -} -CvTypeInfo; - - -/**** System data types ******/ - -typedef struct CvPluginFuncInfo -{ - void** func_addr; - void* default_func_addr; - const char* func_names; - int search_modules; - int loaded_from; -} -CvPluginFuncInfo; - -typedef struct CvModuleInfo -{ - struct CvModuleInfo* next; - const char* name; - const char* version; - CvPluginFuncInfo* func_tab; -} -CvModuleInfo; - -/** @} */ - -#endif /*OPENCV_CORE_TYPES_H*/ - -/* End of file. */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utility.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/utility.hpp deleted file mode 100644 index 69d114e15..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utility.hpp +++ /dev/null @@ -1,1239 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_CORE_UTILITY_H -#define OPENCV_CORE_UTILITY_H - -#ifndef __cplusplus -# error utility.hpp header must be compiled as C++ -#endif - -#if defined(check) -# warning Detected Apple 'check' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. -#endif - -#include "opencv2/core.hpp" -#include - -#ifdef CV_CXX11 -#include -#endif - -namespace cv -{ - -#ifdef CV_COLLECT_IMPL_DATA -CV_EXPORTS void setImpl(int flags); // set implementation flags and reset storage arrays -CV_EXPORTS void addImpl(int flag, const char* func = 0); // add implementation and function name to storage arrays -// Get stored implementation flags and functions names arrays -// Each implementation entry correspond to function name entry, so you can find which implementation was executed in which function -CV_EXPORTS int getImpl(std::vector &impl, std::vector &funName); - -CV_EXPORTS bool useCollection(); // return implementation collection state -CV_EXPORTS void setUseCollection(bool flag); // set implementation collection state - -#define CV_IMPL_PLAIN 0x01 // native CPU OpenCV implementation -#define CV_IMPL_OCL 0x02 // OpenCL implementation -#define CV_IMPL_IPP 0x04 // IPP implementation -#define CV_IMPL_MT 0x10 // multithreaded implementation - -#define CV_IMPL_ADD(impl) \ - if(cv::useCollection()) \ - { \ - cv::addImpl(impl, CV_Func); \ - } -#else -#define CV_IMPL_ADD(impl) -#endif - -//! @addtogroup core_utils -//! @{ - -/** @brief Automatically Allocated Buffer Class - - The class is used for temporary buffers in functions and methods. - If a temporary buffer is usually small (a few K's of memory), - but its size depends on the parameters, it makes sense to create a small - fixed-size array on stack and use it if it's large enough. If the required buffer size - is larger than the fixed size, another buffer of sufficient size is allocated dynamically - and released after the processing. Therefore, in typical cases, when the buffer size is small, - there is no overhead associated with malloc()/free(). - At the same time, there is no limit on the size of processed data. - - This is what AutoBuffer does. The template takes 2 parameters - type of the buffer elements and - the number of stack-allocated elements. Here is how the class is used: - - \code - void my_func(const cv::Mat& m) - { - cv::AutoBuffer buf(1000); // create automatic buffer containing 1000 floats - - buf.allocate(m.rows); // if m.rows <= 1000, the pre-allocated buffer is used, - // otherwise the buffer of "m.rows" floats will be allocated - // dynamically and deallocated in cv::AutoBuffer destructor - ... - } - \endcode -*/ -template class AutoBuffer -{ -public: - typedef _Tp value_type; - - //! the default constructor - AutoBuffer(); - //! constructor taking the real buffer size - AutoBuffer(size_t _size); - - //! the copy constructor - AutoBuffer(const AutoBuffer<_Tp, fixed_size>& buf); - //! the assignment operator - AutoBuffer<_Tp, fixed_size>& operator = (const AutoBuffer<_Tp, fixed_size>& buf); - - //! destructor. calls deallocate() - ~AutoBuffer(); - - //! allocates the new buffer of size _size. if the _size is small enough, stack-allocated buffer is used - void allocate(size_t _size); - //! deallocates the buffer if it was dynamically allocated - void deallocate(); - //! resizes the buffer and preserves the content - void resize(size_t _size); - //! returns the current buffer size - size_t size() const; - //! returns pointer to the real buffer, stack-allocated or heap-allocated - operator _Tp* (); - //! returns read-only pointer to the real buffer, stack-allocated or heap-allocated - operator const _Tp* () const; - -protected: - //! pointer to the real buffer, can point to buf if the buffer is small enough - _Tp* ptr; - //! size of the real buffer - size_t sz; - //! pre-allocated buffer. At least 1 element to confirm C++ standard requirements - _Tp buf[(fixed_size > 0) ? fixed_size : 1]; -}; - -/** @brief Sets/resets the break-on-error mode. - -When the break-on-error mode is set, the default error handler issues a hardware exception, which -can make debugging more convenient. - -\return the previous state - */ -CV_EXPORTS bool setBreakOnError(bool flag); - -extern "C" typedef int (*ErrorCallback)( int status, const char* func_name, - const char* err_msg, const char* file_name, - int line, void* userdata ); - - -/** @brief Sets the new error handler and the optional user data. - - The function sets the new error handler, called from cv::error(). - - \param errCallback the new error handler. If NULL, the default error handler is used. - \param userdata the optional user data pointer, passed to the callback. - \param prevUserdata the optional output parameter where the previous user data pointer is stored - - \return the previous error handler -*/ -CV_EXPORTS ErrorCallback redirectError( ErrorCallback errCallback, void* userdata=0, void** prevUserdata=0); - -/** @brief Returns a text string formatted using the printf-like expression. - -The function acts like sprintf but forms and returns an STL string. It can be used to form an error -message in the Exception constructor. -@param fmt printf-compatible formatting specifiers. - */ -CV_EXPORTS String format( const char* fmt, ... ); -CV_EXPORTS String tempfile( const char* suffix = 0); -CV_EXPORTS void glob(String pattern, std::vector& result, bool recursive = false); - -/** @brief OpenCV will try to set the number of threads for the next parallel region. - -If threads == 0, OpenCV will disable threading optimizations and run all it's functions -sequentially. Passing threads \< 0 will reset threads number to system default. This function must -be called outside of parallel region. - -OpenCV will try to run its functions with specified threads number, but some behaviour differs from -framework: -- `TBB` - User-defined parallel constructions will run with the same threads number, if - another is not specified. If later on user creates his own scheduler, OpenCV will use it. -- `OpenMP` - No special defined behaviour. -- `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its - functions sequentially. -- `GCD` - Supports only values \<= 0. -- `C=` - No special defined behaviour. -@param nthreads Number of threads used by OpenCV. -@sa getNumThreads, getThreadNum - */ -CV_EXPORTS_W void setNumThreads(int nthreads); - -/** @brief Returns the number of threads used by OpenCV for parallel regions. - -Always returns 1 if OpenCV is built without threading support. - -The exact meaning of return value depends on the threading framework used by OpenCV library: -- `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is - any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns - default number of threads used by TBB library. -- `OpenMP` - An upper bound on the number of threads that could be used to form a new team. -- `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions. -- `GCD` - Unsupported; returns the GCD thread pool limit (512) for compatibility. -- `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before - called setNumThreads with threads \> 0, otherwise returns the number of logical CPUs, - available for the process. -@sa setNumThreads, getThreadNum - */ -CV_EXPORTS_W int getNumThreads(); - -/** @brief Returns the index of the currently executed thread within the current parallel region. Always -returns 0 if called outside of parallel region. - -The exact meaning of the return value depends on the threading framework used by OpenCV library: -- `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future. -- `OpenMP` - The thread number, within the current team, of the calling thread. -- `Concurrency` - An ID for the virtual processor that the current context is executing on (0 - for master thread and unique number for others, but not necessary 1,2,3,...). -- `GCD` - System calling thread's ID. Never returns 0 inside parallel region. -- `C=` - The index of the current parallel task. -@sa setNumThreads, getNumThreads - */ -CV_EXPORTS_W int getThreadNum(); - -/** @brief Returns full configuration time cmake output. - -Returned value is raw cmake output including version control system revision, compiler version, -compiler flags, enabled modules and third party libraries, etc. Output format depends on target -architecture. - */ -CV_EXPORTS_W const String& getBuildInformation(); - -/** @brief Returns the number of ticks. - -The function returns the number of ticks after the certain event (for example, when the machine was -turned on). It can be used to initialize RNG or to measure a function execution time by reading the -tick count before and after the function call. -@sa getTickFrequency, TickMeter - */ -CV_EXPORTS_W int64 getTickCount(); - -/** @brief Returns the number of ticks per second. - -The function returns the number of ticks per second. That is, the following code computes the -execution time in seconds: -@code - double t = (double)getTickCount(); - // do something ... - t = ((double)getTickCount() - t)/getTickFrequency(); -@endcode -@sa getTickCount, TickMeter - */ -CV_EXPORTS_W double getTickFrequency(); - -/** @brief a Class to measure passing time. - -The class computes passing time by counting the number of ticks per second. That is, the following code computes the -execution time in seconds: -@code -TickMeter tm; -tm.start(); -// do something ... -tm.stop(); -std::cout << tm.getTimeSec(); -@endcode - -It is also possible to compute the average time over multiple runs: -@code -TickMeter tm; -for (int i = 0; i < 100; i++) -{ - tm.start(); - // do something ... - tm.stop(); -} -double average_time = tm.getTimeSec() / tm.getCounter(); -std::cout << "Average time in second per iteration is: " << average_time << std::endl; -@endcode -@sa getTickCount, getTickFrequency -*/ - -class CV_EXPORTS_W TickMeter -{ -public: - //! the default constructor - CV_WRAP TickMeter() - { - reset(); - } - - /** - starts counting ticks. - */ - CV_WRAP void start() - { - startTime = cv::getTickCount(); - } - - /** - stops counting ticks. - */ - CV_WRAP void stop() - { - int64 time = cv::getTickCount(); - if (startTime == 0) - return; - ++counter; - sumTime += (time - startTime); - startTime = 0; - } - - /** - returns counted ticks. - */ - CV_WRAP int64 getTimeTicks() const - { - return sumTime; - } - - /** - returns passed time in microseconds. - */ - CV_WRAP double getTimeMicro() const - { - return getTimeMilli()*1e3; - } - - /** - returns passed time in milliseconds. - */ - CV_WRAP double getTimeMilli() const - { - return getTimeSec()*1e3; - } - - /** - returns passed time in seconds. - */ - CV_WRAP double getTimeSec() const - { - return (double)getTimeTicks() / getTickFrequency(); - } - - /** - returns internal counter value. - */ - CV_WRAP int64 getCounter() const - { - return counter; - } - - /** - resets internal values. - */ - CV_WRAP void reset() - { - startTime = 0; - sumTime = 0; - counter = 0; - } - -private: - int64 counter; - int64 sumTime; - int64 startTime; -}; - -/** @brief output operator -@code -TickMeter tm; -tm.start(); -// do something ... -tm.stop(); -std::cout << tm; -@endcode -*/ - -static inline -std::ostream& operator << (std::ostream& out, const TickMeter& tm) -{ - return out << tm.getTimeSec() << "sec"; -} - -/** @brief Returns the number of CPU ticks. - -The function returns the current number of CPU ticks on some architectures (such as x86, x64, -PowerPC). On other platforms the function is equivalent to getTickCount. It can also be used for -very accurate time measurements, as well as for RNG initialization. Note that in case of multi-CPU -systems a thread, from which getCPUTickCount is called, can be suspended and resumed at another CPU -with its own counter. So, theoretically (and practically) the subsequent calls to the function do -not necessary return the monotonously increasing values. Also, since a modern CPU varies the CPU -frequency depending on the load, the number of CPU clocks spent in some code cannot be directly -converted to time units. Therefore, getTickCount is generally a preferable solution for measuring -execution time. - */ -CV_EXPORTS_W int64 getCPUTickCount(); - -/** @brief Returns true if the specified feature is supported by the host hardware. - -The function returns true if the host hardware supports the specified feature. When user calls -setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until -setUseOptimized(true) is called. This way user can dynamically switch on and off the optimized code -in OpenCV. -@param feature The feature of interest, one of cv::CpuFeatures - */ -CV_EXPORTS_W bool checkHardwareSupport(int feature); - -/** @brief Returns the number of logical CPUs available for the process. - */ -CV_EXPORTS_W int getNumberOfCPUs(); - - -/** @brief Aligns a pointer to the specified number of bytes. - -The function returns the aligned pointer of the same type as the input pointer: -\f[\texttt{(_Tp*)(((size_t)ptr + n-1) & -n)}\f] -@param ptr Aligned pointer. -@param n Alignment size that must be a power of two. - */ -template static inline _Tp* alignPtr(_Tp* ptr, int n=(int)sizeof(_Tp)) -{ - CV_DbgAssert((n & (n - 1)) == 0); // n is a power of 2 - return (_Tp*)(((size_t)ptr + n-1) & -n); -} - -/** @brief Aligns a buffer size to the specified number of bytes. - -The function returns the minimum number that is greater than or equal to sz and is divisible by n : -\f[\texttt{(sz + n-1) & -n}\f] -@param sz Buffer size to align. -@param n Alignment size that must be a power of two. - */ -static inline size_t alignSize(size_t sz, int n) -{ - CV_DbgAssert((n & (n - 1)) == 0); // n is a power of 2 - return (sz + n-1) & -n; -} - -/** @brief Integer division with result round up. - -Use this function instead of `ceil((float)a / b)` expressions. - -@sa alignSize -*/ -static inline int divUp(int a, unsigned int b) -{ - CV_DbgAssert(a >= 0); - return (a + b - 1) / b; -} -/** @overload */ -static inline size_t divUp(size_t a, unsigned int b) -{ - return (a + b - 1) / b; -} - -/** @brief Enables or disables the optimized code. - -The function can be used to dynamically turn on and off optimized code (code that uses SSE2, AVX, -and other instructions on the platforms that support it). It sets a global flag that is further -checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only -safe to call the function on the very top level in your application where you can be sure that no -other OpenCV function is currently executed. - -By default, the optimized code is enabled unless you disable it in CMake. The current status can be -retrieved using useOptimized. -@param onoff The boolean flag specifying whether the optimized code should be used (onoff=true) -or not (onoff=false). - */ -CV_EXPORTS_W void setUseOptimized(bool onoff); - -/** @brief Returns the status of optimized code usage. - -The function returns true if the optimized code is enabled. Otherwise, it returns false. - */ -CV_EXPORTS_W bool useOptimized(); - -static inline size_t getElemSize(int type) { return (size_t)CV_ELEM_SIZE(type); } - -/////////////////////////////// Parallel Primitives ////////////////////////////////// - -/** @brief Base class for parallel data processors -*/ -class CV_EXPORTS ParallelLoopBody -{ -public: - virtual ~ParallelLoopBody(); - virtual void operator() (const Range& range) const = 0; -}; - -/** @brief Parallel data processor -*/ -CV_EXPORTS void parallel_for_(const Range& range, const ParallelLoopBody& body, double nstripes=-1.); - -#ifdef CV_CXX11 -class ParallelLoopBodyLambdaWrapper : public ParallelLoopBody -{ -private: - std::function m_functor; -public: - ParallelLoopBodyLambdaWrapper(std::function functor) : - m_functor(functor) - { } - - virtual void operator() (const cv::Range& range) const - { - m_functor(range); - } -}; - -inline void parallel_for_(const Range& range, std::function functor, double nstripes=-1.) -{ - parallel_for_(range, ParallelLoopBodyLambdaWrapper(functor), nstripes); -} -#endif - -/////////////////////////////// forEach method of cv::Mat //////////////////////////// -template inline -void Mat::forEach_impl(const Functor& operation) { - if (false) { - operation(*reinterpret_cast<_Tp*>(0), reinterpret_cast(0)); - // If your compiler fails in this line. - // Please check that your functor signature is - // (_Tp&, const int*) <- multi-dimensional - // or (_Tp&, void*) <- in case you don't need current idx. - } - - CV_Assert(this->total() / this->size[this->dims - 1] <= INT_MAX); - const int LINES = static_cast(this->total() / this->size[this->dims - 1]); - - class PixelOperationWrapper :public ParallelLoopBody - { - public: - PixelOperationWrapper(Mat_<_Tp>* const frame, const Functor& _operation) - : mat(frame), op(_operation) {} - virtual ~PixelOperationWrapper(){} - // ! Overloaded virtual operator - // convert range call to row call. - virtual void operator()(const Range &range) const { - const int DIMS = mat->dims; - const int COLS = mat->size[DIMS - 1]; - if (DIMS <= 2) { - for (int row = range.start; row < range.end; ++row) { - this->rowCall2(row, COLS); - } - } else { - std::vector idx(DIMS); /// idx is modified in this->rowCall - idx[DIMS - 2] = range.start - 1; - - for (int line_num = range.start; line_num < range.end; ++line_num) { - idx[DIMS - 2]++; - for (int i = DIMS - 2; i >= 0; --i) { - if (idx[i] >= mat->size[i]) { - idx[i - 1] += idx[i] / mat->size[i]; - idx[i] %= mat->size[i]; - continue; // carry-over; - } - else { - break; - } - } - this->rowCall(&idx[0], COLS, DIMS); - } - } - } - private: - Mat_<_Tp>* const mat; - const Functor op; - // ! Call operator for each elements in this row. - inline void rowCall(int* const idx, const int COLS, const int DIMS) const { - int &col = idx[DIMS - 1]; - col = 0; - _Tp* pixel = &(mat->template at<_Tp>(idx)); - - while (col < COLS) { - op(*pixel, const_cast(idx)); - pixel++; col++; - } - col = 0; - } - // ! Call operator for each elements in this row. 2d mat special version. - inline void rowCall2(const int row, const int COLS) const { - union Index{ - int body[2]; - operator const int*() const { - return reinterpret_cast(this); - } - int& operator[](const int i) { - return body[i]; - } - } idx = {{row, 0}}; - // Special union is needed to avoid - // "error: array subscript is above array bounds [-Werror=array-bounds]" - // when call the functor `op` such that access idx[3]. - - _Tp* pixel = &(mat->template at<_Tp>(idx)); - const _Tp* const pixel_end = pixel + COLS; - while(pixel < pixel_end) { - op(*pixel++, static_cast(idx)); - idx[1]++; - } - } - PixelOperationWrapper& operator=(const PixelOperationWrapper &) { - CV_Assert(false); - // We can not remove this implementation because Visual Studio warning C4822. - return *this; - } - }; - - parallel_for_(cv::Range(0, LINES), PixelOperationWrapper(reinterpret_cast*>(this), operation)); -} - -/////////////////////////// Synchronization Primitives /////////////////////////////// - -class CV_EXPORTS Mutex -{ -public: - Mutex(); - ~Mutex(); - Mutex(const Mutex& m); - Mutex& operator = (const Mutex& m); - - void lock(); - bool trylock(); - void unlock(); - - struct Impl; -protected: - Impl* impl; -}; - -class CV_EXPORTS AutoLock -{ -public: - AutoLock(Mutex& m) : mutex(&m) { mutex->lock(); } - ~AutoLock() { mutex->unlock(); } -protected: - Mutex* mutex; -private: - AutoLock(const AutoLock&); - AutoLock& operator = (const AutoLock&); -}; - -// TLS interface -class CV_EXPORTS TLSDataContainer -{ -protected: - TLSDataContainer(); - virtual ~TLSDataContainer(); - - void gatherData(std::vector &data) const; -#if OPENCV_ABI_COMPATIBILITY > 300 - void* getData() const; - void release(); - -private: -#else - void release(); - -public: - void* getData() const; -#endif - virtual void* createDataInstance() const = 0; - virtual void deleteDataInstance(void* pData) const = 0; - - int key_; - -public: - void cleanup(); //! Release created TLS data container objects. It is similar to release() call, but it keeps TLS container valid. -}; - -// Main TLS data class -template -class TLSData : protected TLSDataContainer -{ -public: - inline TLSData() {} - inline ~TLSData() { release(); } // Release key and delete associated data - inline T* get() const { return (T*)getData(); } // Get data associated with key - inline T& getRef() const { T* ptr = (T*)getData(); CV_Assert(ptr); return *ptr; } // Get data associated with key - - // Get data from all threads - inline void gather(std::vector &data) const - { - std::vector &dataVoid = reinterpret_cast&>(data); - gatherData(dataVoid); - } - - inline void cleanup() { TLSDataContainer::cleanup(); } - -private: - virtual void* createDataInstance() const {return new T;} // Wrapper to allocate data by template - virtual void deleteDataInstance(void* pData) const {delete (T*)pData;} // Wrapper to release data by template - - // Disable TLS copy operations - TLSData(TLSData &) {} - TLSData& operator =(const TLSData &) {return *this;} -}; - -/** @brief Designed for command line parsing - -The sample below demonstrates how to use CommandLineParser: -@code - CommandLineParser parser(argc, argv, keys); - parser.about("Application name v1.0.0"); - - if (parser.has("help")) - { - parser.printMessage(); - return 0; - } - - int N = parser.get("N"); - double fps = parser.get("fps"); - String path = parser.get("path"); - - use_time_stamp = parser.has("timestamp"); - - String img1 = parser.get(0); - String img2 = parser.get(1); - - int repeat = parser.get(2); - - if (!parser.check()) - { - parser.printErrors(); - return 0; - } -@endcode - -### Keys syntax - -The keys parameter is a string containing several blocks, each one is enclosed in curly braces and -describes one argument. Each argument contains three parts separated by the `|` symbol: - --# argument names is a space-separated list of option synonyms (to mark argument as positional, prefix it with the `@` symbol) --# default value will be used if the argument was not provided (can be empty) --# help message (can be empty) - -For example: - -@code{.cpp} - const String keys = - "{help h usage ? | | print this message }" - "{@image1 | | image1 for compare }" - "{@image2 || image2 for compare }" - "{@repeat |1 | number }" - "{path |. | path to file }" - "{fps | -1.0 | fps for output video }" - "{N count |100 | count of objects }" - "{ts timestamp | | use time stamp }" - ; -} -@endcode - -Note that there are no default values for `help` and `timestamp` so we can check their presence using the `has()` method. -Arguments with default values are considered to be always present. Use the `get()` method in these cases to check their -actual value instead. - -String keys like `get("@image1")` return the empty string `""` by default - even with an empty default value. -Use the special `` default value to enforce that the returned string must not be empty. (like in `get("@image2")`) - -### Usage - -For the described keys: - -@code{.sh} - # Good call (3 positional parameters: image1, image2 and repeat; N is 200, ts is true) - $ ./app -N=200 1.png 2.jpg 19 -ts - - # Bad call - $ ./app -fps=aaa - ERRORS: - Parameter 'fps': can not convert: [aaa] to [double] -@endcode - */ -class CV_EXPORTS CommandLineParser -{ -public: - - /** @brief Constructor - - Initializes command line parser object - - @param argc number of command line arguments (from main()) - @param argv array of command line arguments (from main()) - @param keys string describing acceptable command line parameters (see class description for syntax) - */ - CommandLineParser(int argc, const char* const argv[], const String& keys); - - /** @brief Copy constructor */ - CommandLineParser(const CommandLineParser& parser); - - /** @brief Assignment operator */ - CommandLineParser& operator = (const CommandLineParser& parser); - - /** @brief Destructor */ - ~CommandLineParser(); - - /** @brief Returns application path - - This method returns the path to the executable from the command line (`argv[0]`). - - For example, if the application has been started with such a command: - @code{.sh} - $ ./bin/my-executable - @endcode - this method will return `./bin`. - */ - String getPathToApplication() const; - - /** @brief Access arguments by name - - Returns argument converted to selected type. If the argument is not known or can not be - converted to selected type, the error flag is set (can be checked with @ref check). - - For example, define: - @code{.cpp} - String keys = "{N count||}"; - @endcode - - Call: - @code{.sh} - $ ./my-app -N=20 - # or - $ ./my-app --count=20 - @endcode - - Access: - @code{.cpp} - int N = parser.get("N"); - @endcode - - @param name name of the argument - @param space_delete remove spaces from the left and right of the string - @tparam T the argument will be converted to this type if possible - - @note You can access positional arguments by their `@`-prefixed name: - @code{.cpp} - parser.get("@image"); - @endcode - */ - template - T get(const String& name, bool space_delete = true) const - { - T val = T(); - getByName(name, space_delete, ParamType::type, (void*)&val); - return val; - } - - /** @brief Access positional arguments by index - - Returns argument converted to selected type. Indexes are counted from zero. - - For example, define: - @code{.cpp} - String keys = "{@arg1||}{@arg2||}" - @endcode - - Call: - @code{.sh} - ./my-app abc qwe - @endcode - - Access arguments: - @code{.cpp} - String val_1 = parser.get(0); // returns "abc", arg1 - String val_2 = parser.get(1); // returns "qwe", arg2 - @endcode - - @param index index of the argument - @param space_delete remove spaces from the left and right of the string - @tparam T the argument will be converted to this type if possible - */ - template - T get(int index, bool space_delete = true) const - { - T val = T(); - getByIndex(index, space_delete, ParamType::type, (void*)&val); - return val; - } - - /** @brief Check if field was provided in the command line - - @param name argument name to check - */ - bool has(const String& name) const; - - /** @brief Check for parsing errors - - Returns true if error occurred while accessing the parameters (bad conversion, missing arguments, - etc.). Call @ref printErrors to print error messages list. - */ - bool check() const; - - /** @brief Set the about message - - The about message will be shown when @ref printMessage is called, right before arguments table. - */ - void about(const String& message); - - /** @brief Print help message - - This method will print standard help message containing the about message and arguments description. - - @sa about - */ - void printMessage() const; - - /** @brief Print list of errors occurred - - @sa check - */ - void printErrors() const; - -protected: - void getByName(const String& name, bool space_delete, int type, void* dst) const; - void getByIndex(int index, bool space_delete, int type, void* dst) const; - - struct Impl; - Impl* impl; -}; - -//! @} core_utils - -//! @cond IGNORED - -/////////////////////////////// AutoBuffer implementation //////////////////////////////////////// - -template inline -AutoBuffer<_Tp, fixed_size>::AutoBuffer() -{ - ptr = buf; - sz = fixed_size; -} - -template inline -AutoBuffer<_Tp, fixed_size>::AutoBuffer(size_t _size) -{ - ptr = buf; - sz = fixed_size; - allocate(_size); -} - -template inline -AutoBuffer<_Tp, fixed_size>::AutoBuffer(const AutoBuffer<_Tp, fixed_size>& abuf ) -{ - ptr = buf; - sz = fixed_size; - allocate(abuf.size()); - for( size_t i = 0; i < sz; i++ ) - ptr[i] = abuf.ptr[i]; -} - -template inline AutoBuffer<_Tp, fixed_size>& -AutoBuffer<_Tp, fixed_size>::operator = (const AutoBuffer<_Tp, fixed_size>& abuf) -{ - if( this != &abuf ) - { - deallocate(); - allocate(abuf.size()); - for( size_t i = 0; i < sz; i++ ) - ptr[i] = abuf.ptr[i]; - } - return *this; -} - -template inline -AutoBuffer<_Tp, fixed_size>::~AutoBuffer() -{ deallocate(); } - -template inline void -AutoBuffer<_Tp, fixed_size>::allocate(size_t _size) -{ - if(_size <= sz) - { - sz = _size; - return; - } - deallocate(); - sz = _size; - if(_size > fixed_size) - { - ptr = new _Tp[_size]; - } -} - -template inline void -AutoBuffer<_Tp, fixed_size>::deallocate() -{ - if( ptr != buf ) - { - delete[] ptr; - ptr = buf; - sz = fixed_size; - } -} - -template inline void -AutoBuffer<_Tp, fixed_size>::resize(size_t _size) -{ - if(_size <= sz) - { - sz = _size; - return; - } - size_t i, prevsize = sz, minsize = MIN(prevsize, _size); - _Tp* prevptr = ptr; - - ptr = _size > fixed_size ? new _Tp[_size] : buf; - sz = _size; - - if( ptr != prevptr ) - for( i = 0; i < minsize; i++ ) - ptr[i] = prevptr[i]; - for( i = prevsize; i < _size; i++ ) - ptr[i] = _Tp(); - - if( prevptr != buf ) - delete[] prevptr; -} - -template inline size_t -AutoBuffer<_Tp, fixed_size>::size() const -{ return sz; } - -template inline -AutoBuffer<_Tp, fixed_size>::operator _Tp* () -{ return ptr; } - -template inline -AutoBuffer<_Tp, fixed_size>::operator const _Tp* () const -{ return ptr; } - -template<> inline std::string CommandLineParser::get(int index, bool space_delete) const -{ - return get(index, space_delete); -} -template<> inline std::string CommandLineParser::get(const String& name, bool space_delete) const -{ - return get(name, space_delete); -} - -//! @endcond - - -// Basic Node class for tree building -template -class CV_EXPORTS Node -{ -public: - Node() - { - m_pParent = 0; - } - Node(OBJECT& payload) : m_payload(payload) - { - m_pParent = 0; - } - ~Node() - { - removeChilds(); - if (m_pParent) - { - int idx = m_pParent->findChild(this); - if (idx >= 0) - m_pParent->m_childs.erase(m_pParent->m_childs.begin() + idx); - } - } - - Node* findChild(OBJECT& payload) const - { - for(size_t i = 0; i < this->m_childs.size(); i++) - { - if(this->m_childs[i]->m_payload == payload) - return this->m_childs[i]; - } - return NULL; - } - - int findChild(Node *pNode) const - { - for (size_t i = 0; i < this->m_childs.size(); i++) - { - if(this->m_childs[i] == pNode) - return (int)i; - } - return -1; - } - - void addChild(Node *pNode) - { - if(!pNode) - return; - - CV_Assert(pNode->m_pParent == 0); - pNode->m_pParent = this; - this->m_childs.push_back(pNode); - } - - void removeChilds() - { - for(size_t i = 0; i < m_childs.size(); i++) - { - m_childs[i]->m_pParent = 0; // avoid excessive parent vector trimming - delete m_childs[i]; - } - m_childs.clear(); - } - - int getDepth() - { - int count = 0; - Node *pParent = m_pParent; - while(pParent) count++, pParent = pParent->m_pParent; - return count; - } - -public: - OBJECT m_payload; - Node* m_pParent; - std::vector*> m_childs; -}; - -// Instrumentation external interface -namespace instr -{ - -#if !defined OPENCV_ABI_CHECK - -enum TYPE -{ - TYPE_GENERAL = 0, // OpenCV API function, e.g. exported function - TYPE_MARKER, // Information marker - TYPE_WRAPPER, // Wrapper function for implementation - TYPE_FUN, // Simple function call -}; - -enum IMPL -{ - IMPL_PLAIN = 0, - IMPL_IPP, - IMPL_OPENCL, -}; - -struct NodeDataTls -{ - NodeDataTls() - { - m_ticksTotal = 0; - } - uint64 m_ticksTotal; -}; - -class CV_EXPORTS NodeData -{ -public: - NodeData(const char* funName = 0, const char* fileName = NULL, int lineNum = 0, void* retAddress = NULL, bool alwaysExpand = false, cv::instr::TYPE instrType = TYPE_GENERAL, cv::instr::IMPL implType = IMPL_PLAIN); - NodeData(NodeData &ref); - ~NodeData(); - NodeData& operator=(const NodeData&); - - cv::String m_funName; - cv::instr::TYPE m_instrType; - cv::instr::IMPL m_implType; - const char* m_fileName; - int m_lineNum; - void* m_retAddress; - bool m_alwaysExpand; - bool m_funError; - - volatile int m_counter; - volatile uint64 m_ticksTotal; - TLSData m_tls; - int m_threads; - - // No synchronization - double getTotalMs() const { return ((double)m_ticksTotal / cv::getTickFrequency()) * 1000; } - double getMeanMs() const { return (((double)m_ticksTotal/m_counter) / cv::getTickFrequency()) * 1000; } -}; -bool operator==(const NodeData& lhs, const NodeData& rhs); - -typedef Node InstrNode; - -CV_EXPORTS InstrNode* getTrace(); - -#endif // !defined OPENCV_ABI_CHECK - - -CV_EXPORTS bool useInstrumentation(); -CV_EXPORTS void setUseInstrumentation(bool flag); -CV_EXPORTS void resetTrace(); - -enum FLAGS -{ - FLAGS_NONE = 0, - FLAGS_MAPPING = 0x01, - FLAGS_EXPAND_SAME_NAMES = 0x02, -}; - -CV_EXPORTS void setFlags(FLAGS modeFlags); -static inline void setFlags(int modeFlags) { setFlags((FLAGS)modeFlags); } -CV_EXPORTS FLAGS getFlags(); -} - -namespace utils { - -CV_EXPORTS int getThreadID(); - -} // namespace - -} //namespace cv - -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/core/core_c.h" -#endif - -#endif //OPENCV_CORE_UTILITY_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/filesystem.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/filesystem.hpp deleted file mode 100644 index 12b10a76a..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/utils/filesystem.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// This file is part of OpenCV project. -// It is subject to the license terms in the LICENSE file found in the top-level directory -// of this distribution and at http://opencv.org/license.html. - -#ifndef OPENCV_UTILS_FILESYSTEM_HPP -#define OPENCV_UTILS_FILESYSTEM_HPP - -namespace cv { namespace utils { namespace fs { - - -CV_EXPORTS bool exists(const cv::String& path); -CV_EXPORTS bool isDirectory(const cv::String& path); - -CV_EXPORTS void remove_all(const cv::String& path); - - -CV_EXPORTS cv::String getcwd(); - -/** Join path components */ -CV_EXPORTS cv::String join(const cv::String& base, const cv::String& path); - -/** - * Generate a list of all files that match the globbing pattern. - * - * Result entries are prefixed by base directory path. - * - * @param directory base directory - * @param pattern filter pattern (based on '*'/'?' symbols). Use empty string to disable filtering and return all results - * @param[out] result result of globing. - * @param recursive scan nested directories too - * @param includeDirectories include directories into results list - */ -CV_EXPORTS void glob(const cv::String& directory, const cv::String& pattern, - CV_OUT std::vector& result, - bool recursive = false, bool includeDirectories = false); - -/** - * Generate a list of all files that match the globbing pattern. - * - * @param directory base directory - * @param pattern filter pattern (based on '*'/'?' symbols). Use empty string to disable filtering and return all results - * @param[out] result globbing result with relative paths from base directory - * @param recursive scan nested directories too - * @param includeDirectories include directories into results list - */ -CV_EXPORTS void glob_relative(const cv::String& directory, const cv::String& pattern, - CV_OUT std::vector& result, - bool recursive = false, bool includeDirectories = false); - - -CV_EXPORTS bool createDirectory(const cv::String& path); -CV_EXPORTS bool createDirectories(const cv::String& path); - -#ifdef __OPENCV_BUILD -// TODO -//CV_EXPORTS cv::String getTempDirectory(); - -/** - * @brief Returns directory to store OpenCV cache files - * Create sub-directory in common OpenCV cache directory if it doesn't exist. - * @param sub_directory_name name of sub-directory. NULL or "" value asks to return root cache directory. - * @param configuration_name optional name of configuration parameter name which overrides default behavior. - * @return Path to cache directory. Returns empty string if cache directories support is not available. Returns "disabled" if cache disabled by user. - */ -CV_EXPORTS cv::String getCacheDirectory(const char* sub_directory_name, const char* configuration_name = NULL); - -#endif - -}}} // namespace - -#endif // OPENCV_UTILS_FILESYSTEM_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/version.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/version.hpp deleted file mode 100644 index 308389ce9..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/version.hpp +++ /dev/null @@ -1,71 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright( C) 2000-2015, Intel Corporation, all rights reserved. -// Copyright (C) 2011-2013, NVIDIA Corporation, all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Copyright (C) 2015, Itseez Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -//(including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort(including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -/* - definition of the current version of OpenCV - Usefull to test in user programs -*/ - -#ifndef OPENCV_VERSION_HPP -#define OPENCV_VERSION_HPP - -#define CV_VERSION_MAJOR 3 -#define CV_VERSION_MINOR 4 -#define CV_VERSION_REVISION 0 -#define CV_VERSION_STATUS "" - -#define CVAUX_STR_EXP(__A) #__A -#define CVAUX_STR(__A) CVAUX_STR_EXP(__A) - -#define CVAUX_STRW_EXP(__A) L ## #__A -#define CVAUX_STRW(__A) CVAUX_STRW_EXP(__A) - -#define CV_VERSION CVAUX_STR(CV_VERSION_MAJOR) "." CVAUX_STR(CV_VERSION_MINOR) "." CVAUX_STR(CV_VERSION_REVISION) CV_VERSION_STATUS - -/* old style version constants*/ -#define CV_MAJOR_VERSION CV_VERSION_MAJOR -#define CV_MINOR_VERSION CV_VERSION_MINOR -#define CV_SUBMINOR_VERSION CV_VERSION_REVISION - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/core/wimage.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/core/wimage.hpp deleted file mode 100644 index b246c89d3..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/core/wimage.hpp +++ /dev/null @@ -1,603 +0,0 @@ -/*M////////////////////////////////////////////////////////////////////////////// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to -// this license. If you do not agree to this license, do not download, -// install, copy or use the software. -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2008, Google, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation or contributors may not be used to endorse -// or promote products derived from this software without specific -// prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" -// and any express or implied warranties, including, but not limited to, the -// implied warranties of merchantability and fitness for a particular purpose -// are disclaimed. In no event shall the Intel Corporation or contributors be -// liable for any direct, indirect, incidental, special, exemplary, or -// consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -///////////////////////////////////////////////////////////////////////////////// -//M*/ - -#ifndef OPENCV_CORE_WIMAGE_HPP -#define OPENCV_CORE_WIMAGE_HPP - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus - -namespace cv { - -//! @addtogroup core -//! @{ - -template class WImage; -template class WImageBuffer; -template class WImageView; - -template class WImageC; -template class WImageBufferC; -template class WImageViewC; - -// Commonly used typedefs. -typedef WImage WImage_b; -typedef WImageView WImageView_b; -typedef WImageBuffer WImageBuffer_b; - -typedef WImageC WImage1_b; -typedef WImageViewC WImageView1_b; -typedef WImageBufferC WImageBuffer1_b; - -typedef WImageC WImage3_b; -typedef WImageViewC WImageView3_b; -typedef WImageBufferC WImageBuffer3_b; - -typedef WImage WImage_f; -typedef WImageView WImageView_f; -typedef WImageBuffer WImageBuffer_f; - -typedef WImageC WImage1_f; -typedef WImageViewC WImageView1_f; -typedef WImageBufferC WImageBuffer1_f; - -typedef WImageC WImage3_f; -typedef WImageViewC WImageView3_f; -typedef WImageBufferC WImageBuffer3_f; - -// There isn't a standard for signed and unsigned short so be more -// explicit in the typename for these cases. -typedef WImage WImage_16s; -typedef WImageView WImageView_16s; -typedef WImageBuffer WImageBuffer_16s; - -typedef WImageC WImage1_16s; -typedef WImageViewC WImageView1_16s; -typedef WImageBufferC WImageBuffer1_16s; - -typedef WImageC WImage3_16s; -typedef WImageViewC WImageView3_16s; -typedef WImageBufferC WImageBuffer3_16s; - -typedef WImage WImage_16u; -typedef WImageView WImageView_16u; -typedef WImageBuffer WImageBuffer_16u; - -typedef WImageC WImage1_16u; -typedef WImageViewC WImageView1_16u; -typedef WImageBufferC WImageBuffer1_16u; - -typedef WImageC WImage3_16u; -typedef WImageViewC WImageView3_16u; -typedef WImageBufferC WImageBuffer3_16u; - -/** @brief Image class which provides a thin layer around an IplImage. - -The goals of the class design are: - - -# All the data has explicit ownership to avoid memory leaks - -# No hidden allocations or copies for performance. - -# Easy access to OpenCV methods (which will access IPP if available) - -# Can easily treat external data as an image - -# Easy to create images which are subsets of other images - -# Fast pixel access which can take advantage of number of channels if known at compile time. - -The WImage class is the image class which provides the data accessors. The 'W' comes from the fact -that it is also a wrapper around the popular but inconvenient IplImage class. A WImage can be -constructed either using a WImageBuffer class which allocates and frees the data, or using a -WImageView class which constructs a subimage or a view into external data. The view class does no -memory management. Each class actually has two versions, one when the number of channels is known -at compile time and one when it isn't. Using the one with the number of channels specified can -provide some compile time optimizations by using the fact that the number of channels is a -constant. - -We use the convention (c,r) to refer to column c and row r with (0,0) being the upper left corner. -This is similar to standard Euclidean coordinates with the first coordinate varying in the -horizontal direction and the second coordinate varying in the vertical direction. Thus (c,r) is -usually in the domain [0, width) X [0, height) - -Example usage: -@code -WImageBuffer3_b im(5,7); // Make a 5X7 3 channel image of type uchar -WImageView3_b sub_im(im, 2,2, 3,3); // 3X3 submatrix -vector vec(10, 3.0f); -WImageView1_f user_im(&vec[0], 2, 5); // 2X5 image w/ supplied data - -im.SetZero(); // same as cvSetZero(im.Ipl()) -*im(2, 3) = 15; // Modify the element at column 2, row 3 -MySetRand(&sub_im); - -// Copy the second row into the first. This can be done with no memory -// allocation and will use SSE if IPP is available. -int w = im.Width(); -im.View(0,0, w,1).CopyFrom(im.View(0,1, w,1)); - -// Doesn't care about source of data since using WImage -void MySetRand(WImage_b* im) { // Works with any number of channels -for (int r = 0; r < im->Height(); ++r) { - float* row = im->Row(r); - for (int c = 0; c < im->Width(); ++c) { - for (int ch = 0; ch < im->Channels(); ++ch, ++row) { - *row = uchar(rand() & 255); - } - } -} -} -@endcode - -Functions that are not part of the basic image allocation, viewing, and access should come from -OpenCV, except some useful functions that are not part of OpenCV can be found in wimage_util.h -*/ -template -class WImage -{ -public: - typedef T BaseType; - - // WImage is an abstract class with no other virtual methods so make the - // destructor virtual. - virtual ~WImage() = 0; - - // Accessors - IplImage* Ipl() {return image_; } - const IplImage* Ipl() const {return image_; } - T* ImageData() { return reinterpret_cast(image_->imageData); } - const T* ImageData() const { - return reinterpret_cast(image_->imageData); - } - - int Width() const {return image_->width; } - int Height() const {return image_->height; } - - // WidthStep is the number of bytes to go to the pixel with the next y coord - int WidthStep() const {return image_->widthStep; } - - int Channels() const {return image_->nChannels; } - int ChannelSize() const {return sizeof(T); } // number of bytes per channel - - // Number of bytes per pixel - int PixelSize() const {return Channels() * ChannelSize(); } - - // Return depth type (e.g. IPL_DEPTH_8U, IPL_DEPTH_32F) which is the number - // of bits per channel and with the signed bit set. - // This is known at compile time using specializations. - int Depth() const; - - inline const T* Row(int r) const { - return reinterpret_cast(image_->imageData + r*image_->widthStep); - } - - inline T* Row(int r) { - return reinterpret_cast(image_->imageData + r*image_->widthStep); - } - - // Pixel accessors which returns a pointer to the start of the channel - inline T* operator() (int c, int r) { - return reinterpret_cast(image_->imageData + r*image_->widthStep) + - c*Channels(); - } - - inline const T* operator() (int c, int r) const { - return reinterpret_cast(image_->imageData + r*image_->widthStep) + - c*Channels(); - } - - // Copy the contents from another image which is just a convenience to cvCopy - void CopyFrom(const WImage& src) { cvCopy(src.Ipl(), image_); } - - // Set contents to zero which is just a convenient to cvSetZero - void SetZero() { cvSetZero(image_); } - - // Construct a view into a region of this image - WImageView View(int c, int r, int width, int height); - -protected: - // Disallow copy and assignment - WImage(const WImage&); - void operator=(const WImage&); - - explicit WImage(IplImage* img) : image_(img) { - assert(!img || img->depth == Depth()); - } - - void SetIpl(IplImage* image) { - assert(!image || image->depth == Depth()); - image_ = image; - } - - IplImage* image_; -}; - - -/** Image class when both the pixel type and number of channels -are known at compile time. This wrapper will speed up some of the operations -like accessing individual pixels using the () operator. -*/ -template -class WImageC : public WImage -{ -public: - typedef typename WImage::BaseType BaseType; - enum { kChannels = C }; - - explicit WImageC(IplImage* img) : WImage(img) { - assert(!img || img->nChannels == Channels()); - } - - // Construct a view into a region of this image - WImageViewC View(int c, int r, int width, int height); - - // Copy the contents from another image which is just a convenience to cvCopy - void CopyFrom(const WImageC& src) { - cvCopy(src.Ipl(), WImage::image_); - } - - // WImageC is an abstract class with no other virtual methods so make the - // destructor virtual. - virtual ~WImageC() = 0; - - int Channels() const {return C; } - -protected: - // Disallow copy and assignment - WImageC(const WImageC&); - void operator=(const WImageC&); - - void SetIpl(IplImage* image) { - assert(!image || image->depth == WImage::Depth()); - WImage::SetIpl(image); - } -}; - -/** Image class which owns the data, so it can be allocated and is always -freed. It cannot be copied but can be explicity cloned. -*/ -template -class WImageBuffer : public WImage -{ -public: - typedef typename WImage::BaseType BaseType; - - // Default constructor which creates an object that can be - WImageBuffer() : WImage(0) {} - - WImageBuffer(int width, int height, int nchannels) : WImage(0) { - Allocate(width, height, nchannels); - } - - // Constructor which takes ownership of a given IplImage so releases - // the image on destruction. - explicit WImageBuffer(IplImage* img) : WImage(img) {} - - // Allocate an image. Does nothing if current size is the same as - // the new size. - void Allocate(int width, int height, int nchannels); - - // Set the data to point to an image, releasing the old data - void SetIpl(IplImage* img) { - ReleaseImage(); - WImage::SetIpl(img); - } - - // Clone an image which reallocates the image if of a different dimension. - void CloneFrom(const WImage& src) { - Allocate(src.Width(), src.Height(), src.Channels()); - CopyFrom(src); - } - - ~WImageBuffer() { - ReleaseImage(); - } - - // Release the image if it isn't null. - void ReleaseImage() { - if (WImage::image_) { - IplImage* image = WImage::image_; - cvReleaseImage(&image); - WImage::SetIpl(0); - } - } - - bool IsNull() const {return WImage::image_ == NULL; } - -private: - // Disallow copy and assignment - WImageBuffer(const WImageBuffer&); - void operator=(const WImageBuffer&); -}; - -/** Like a WImageBuffer class but when the number of channels is known at compile time. -*/ -template -class WImageBufferC : public WImageC -{ -public: - typedef typename WImage::BaseType BaseType; - enum { kChannels = C }; - - // Default constructor which creates an object that can be - WImageBufferC() : WImageC(0) {} - - WImageBufferC(int width, int height) : WImageC(0) { - Allocate(width, height); - } - - // Constructor which takes ownership of a given IplImage so releases - // the image on destruction. - explicit WImageBufferC(IplImage* img) : WImageC(img) {} - - // Allocate an image. Does nothing if current size is the same as - // the new size. - void Allocate(int width, int height); - - // Set the data to point to an image, releasing the old data - void SetIpl(IplImage* img) { - ReleaseImage(); - WImageC::SetIpl(img); - } - - // Clone an image which reallocates the image if of a different dimension. - void CloneFrom(const WImageC& src) { - Allocate(src.Width(), src.Height()); - CopyFrom(src); - } - - ~WImageBufferC() { - ReleaseImage(); - } - - // Release the image if it isn't null. - void ReleaseImage() { - if (WImage::image_) { - IplImage* image = WImage::image_; - cvReleaseImage(&image); - WImageC::SetIpl(0); - } - } - - bool IsNull() const {return WImage::image_ == NULL; } - -private: - // Disallow copy and assignment - WImageBufferC(const WImageBufferC&); - void operator=(const WImageBufferC&); -}; - -/** View into an image class which allows treating a subimage as an image or treating external data -as an image -*/ -template class WImageView : public WImage -{ -public: - typedef typename WImage::BaseType BaseType; - - // Construct a subimage. No checks are done that the subimage lies - // completely inside the original image. - WImageView(WImage* img, int c, int r, int width, int height); - - // Refer to external data. - // If not given width_step assumed to be same as width. - WImageView(T* data, int width, int height, int channels, int width_step = -1); - - // Refer to external data. This does NOT take ownership - // of the supplied IplImage. - WImageView(IplImage* img) : WImage(img) {} - - // Copy constructor - WImageView(const WImage& img) : WImage(0) { - header_ = *(img.Ipl()); - WImage::SetIpl(&header_); - } - - WImageView& operator=(const WImage& img) { - header_ = *(img.Ipl()); - WImage::SetIpl(&header_); - return *this; - } - -protected: - IplImage header_; -}; - - -template -class WImageViewC : public WImageC -{ -public: - typedef typename WImage::BaseType BaseType; - enum { kChannels = C }; - - // Default constructor needed for vectors of views. - WImageViewC(); - - virtual ~WImageViewC() {} - - // Construct a subimage. No checks are done that the subimage lies - // completely inside the original image. - WImageViewC(WImageC* img, - int c, int r, int width, int height); - - // Refer to external data - WImageViewC(T* data, int width, int height, int width_step = -1); - - // Refer to external data. This does NOT take ownership - // of the supplied IplImage. - WImageViewC(IplImage* img) : WImageC(img) {} - - // Copy constructor which does a shallow copy to allow multiple views - // of same data. gcc-4.1.1 gets confused if both versions of - // the constructor and assignment operator are not provided. - WImageViewC(const WImageC& img) : WImageC(0) { - header_ = *(img.Ipl()); - WImageC::SetIpl(&header_); - } - WImageViewC(const WImageViewC& img) : WImageC(0) { - header_ = *(img.Ipl()); - WImageC::SetIpl(&header_); - } - - WImageViewC& operator=(const WImageC& img) { - header_ = *(img.Ipl()); - WImageC::SetIpl(&header_); - return *this; - } - WImageViewC& operator=(const WImageViewC& img) { - header_ = *(img.Ipl()); - WImageC::SetIpl(&header_); - return *this; - } - -protected: - IplImage header_; -}; - - -// Specializations for depth -template<> -inline int WImage::Depth() const {return IPL_DEPTH_8U; } -template<> -inline int WImage::Depth() const {return IPL_DEPTH_8S; } -template<> -inline int WImage::Depth() const {return IPL_DEPTH_16S; } -template<> -inline int WImage::Depth() const {return IPL_DEPTH_16U; } -template<> -inline int WImage::Depth() const {return IPL_DEPTH_32S; } -template<> -inline int WImage::Depth() const {return IPL_DEPTH_32F; } -template<> -inline int WImage::Depth() const {return IPL_DEPTH_64F; } - -template inline WImage::~WImage() {} -template inline WImageC::~WImageC() {} - -template -inline void WImageBuffer::Allocate(int width, int height, int nchannels) -{ - if (IsNull() || WImage::Width() != width || - WImage::Height() != height || WImage::Channels() != nchannels) { - ReleaseImage(); - WImage::image_ = cvCreateImage(cvSize(width, height), - WImage::Depth(), nchannels); - } -} - -template -inline void WImageBufferC::Allocate(int width, int height) -{ - if (IsNull() || WImage::Width() != width || WImage::Height() != height) { - ReleaseImage(); - WImageC::SetIpl(cvCreateImage(cvSize(width, height),WImage::Depth(), C)); - } -} - -template -WImageView::WImageView(WImage* img, int c, int r, int width, int height) - : WImage(0) -{ - header_ = *(img->Ipl()); - header_.imageData = reinterpret_cast((*img)(c, r)); - header_.width = width; - header_.height = height; - WImage::SetIpl(&header_); -} - -template -WImageView::WImageView(T* data, int width, int height, int nchannels, int width_step) - : WImage(0) -{ - cvInitImageHeader(&header_, cvSize(width, height), WImage::Depth(), nchannels); - header_.imageData = reinterpret_cast(data); - if (width_step > 0) { - header_.widthStep = width_step; - } - WImage::SetIpl(&header_); -} - -template -WImageViewC::WImageViewC(WImageC* img, int c, int r, int width, int height) - : WImageC(0) -{ - header_ = *(img->Ipl()); - header_.imageData = reinterpret_cast((*img)(c, r)); - header_.width = width; - header_.height = height; - WImageC::SetIpl(&header_); -} - -template -WImageViewC::WImageViewC() : WImageC(0) { - cvInitImageHeader(&header_, cvSize(0, 0), WImage::Depth(), C); - header_.imageData = reinterpret_cast(0); - WImageC::SetIpl(&header_); -} - -template -WImageViewC::WImageViewC(T* data, int width, int height, int width_step) - : WImageC(0) -{ - cvInitImageHeader(&header_, cvSize(width, height), WImage::Depth(), C); - header_.imageData = reinterpret_cast(data); - if (width_step > 0) { - header_.widthStep = width_step; - } - WImageC::SetIpl(&header_); -} - -// Construct a view into a region of an image -template -WImageView WImage::View(int c, int r, int width, int height) { - return WImageView(this, c, r, width, height); -} - -template -WImageViewC WImageC::View(int c, int r, int width, int height) { - return WImageViewC(this, c, r, width, height); -} - -//! @} core - -} // end of namespace - -#endif // __cplusplus - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/cvconfig.h b/lib/3rdParty/OpenCV3.4/include/opencv2/cvconfig.h deleted file mode 100644 index cdf2cdbc5..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/cvconfig.h +++ /dev/null @@ -1,248 +0,0 @@ -#ifndef OPENCV_CVCONFIG_H_INCLUDED -#define OPENCV_CVCONFIG_H_INCLUDED - -/* OpenCV compiled as static or dynamic libs */ -#define BUILD_SHARED_LIBS - -/* OpenCV intrinsics optimized code */ -#define CV_ENABLE_INTRINSICS - -/* OpenCV additional optimized code */ -/* #undef CV_DISABLE_OPTIMIZATION */ - -/* Compile for 'real' NVIDIA GPU architectures */ -#define CUDA_ARCH_BIN "" - -/* Create PTX or BIN for 1.0 compute capability */ -/* #undef CUDA_ARCH_BIN_OR_PTX_10 */ - -/* NVIDIA GPU features are used */ -#define CUDA_ARCH_FEATURES "" - -/* Compile for 'virtual' NVIDIA PTX architectures */ -#define CUDA_ARCH_PTX "" - -/* AVFoundation video libraries */ -/* #undef HAVE_AVFOUNDATION */ - -/* V4L capturing support */ -/* #undef HAVE_CAMV4L */ - -/* V4L2 capturing support */ -/* #undef HAVE_CAMV4L2 */ - -/* Carbon windowing environment */ -/* #undef HAVE_CARBON */ - -/* AMD's Basic Linear Algebra Subprograms Library*/ -/* #undef HAVE_CLAMDBLAS */ - -/* AMD's OpenCL Fast Fourier Transform Library*/ -/* #undef HAVE_CLAMDFFT */ - -/* Clp support */ -/* #undef HAVE_CLP */ - -/* Cocoa API */ -/* #undef HAVE_COCOA */ - -/* C= */ -/* #undef HAVE_CSTRIPES */ - -/* NVidia Cuda Basic Linear Algebra Subprograms (BLAS) API*/ -/* #undef HAVE_CUBLAS */ - -/* NVidia Cuda Runtime API*/ -/* #undef HAVE_CUDA */ - -/* NVidia Cuda Fast Fourier Transform (FFT) API*/ -/* #undef HAVE_CUFFT */ - -/* IEEE1394 capturing support */ -/* #undef HAVE_DC1394 */ - -/* IEEE1394 capturing support - libdc1394 v2.x */ -/* #undef HAVE_DC1394_2 */ - -/* DirectX */ -#define HAVE_DIRECTX -#define HAVE_DIRECTX_NV12 -#define HAVE_D3D11 -#define HAVE_D3D10 -#define HAVE_D3D9 - -/* DirectShow Video Capture library */ -#define HAVE_DSHOW - -/* Eigen Matrix & Linear Algebra Library */ -/* #undef HAVE_EIGEN */ - -/* FFMpeg video library */ -#define HAVE_FFMPEG - -/* Geospatial Data Abstraction Library */ -/* #undef HAVE_GDAL */ - -/* GStreamer multimedia framework */ -/* #undef HAVE_GSTREAMER */ - -/* GTK+ 2.0 Thread support */ -/* #undef HAVE_GTHREAD */ - -/* GTK+ 2.x toolkit */ -/* #undef HAVE_GTK */ - -/* Halide support */ -/* #undef HAVE_HALIDE */ - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Intel Perceptual Computing SDK library */ -/* #undef HAVE_INTELPERC */ - -/* Intel Integrated Performance Primitives */ -#define HAVE_IPP -#define HAVE_IPP_ICV -#define HAVE_IPP_IW - -/* Intel IPP Async */ -/* #undef HAVE_IPP_A */ - -/* JPEG-2000 codec */ -#define HAVE_JASPER - -/* IJG JPEG codec */ -#define HAVE_JPEG - -/* libpng/png.h needs to be included */ -/* #undef HAVE_LIBPNG_PNG_H */ - -/* GDCM DICOM codec */ -/* #undef HAVE_GDCM */ - -/* V4L/V4L2 capturing support via libv4l */ -/* #undef HAVE_LIBV4L */ - -/* Microsoft Media Foundation Capture library */ -/* #undef HAVE_MSMF */ - -/* NVidia Video Decoding API*/ -/* #undef HAVE_NVCUVID */ - -/* NVidia Video Encoding API*/ -/* #undef HAVE_NVCUVENC */ - -/* OpenCL Support */ -#define HAVE_OPENCL -/* #undef HAVE_OPENCL_STATIC */ -/* #undef HAVE_OPENCL_SVM */ - -/* OpenEXR codec */ -#define HAVE_OPENEXR - -/* OpenGL support*/ -/* #undef HAVE_OPENGL */ - -/* OpenNI library */ -/* #undef HAVE_OPENNI */ - -/* OpenNI library */ -/* #undef HAVE_OPENNI2 */ - -/* PNG codec */ -#define HAVE_PNG - -/* Posix threads (pthreads) */ -/* #undef HAVE_PTHREAD */ - -/* parallel_for with pthreads */ -/* #undef HAVE_PTHREADS_PF */ - -/* Qt support */ -/* #undef HAVE_QT */ - -/* Qt OpenGL support */ -/* #undef HAVE_QT_OPENGL */ - -/* QuickTime video libraries */ -/* #undef HAVE_QUICKTIME */ - -/* QTKit video libraries */ -/* #undef HAVE_QTKIT */ - -/* Intel Threading Building Blocks */ -/* #undef HAVE_TBB */ - -/* TIFF codec */ -#define HAVE_TIFF - -/* Unicap video capture library */ -/* #undef HAVE_UNICAP */ - -/* Video for Windows support */ -#define HAVE_VFW - -/* V4L2 capturing support in videoio.h */ -/* #undef HAVE_VIDEOIO */ - -/* Win32 UI */ -#define HAVE_WIN32UI - -/* XIMEA camera support */ -/* #undef HAVE_XIMEA */ - -/* Xine video library */ -/* #undef HAVE_XINE */ - -/* Define if your processor stores words with the most significant byte - first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef WORDS_BIGENDIAN */ - -/* gPhoto2 library */ -/* #undef HAVE_GPHOTO2 */ - -/* VA library (libva) */ -/* #undef HAVE_VA */ - -/* Intel VA-API/OpenCL */ -/* #undef HAVE_VA_INTEL */ - -/* Intel Media SDK */ -/* #undef HAVE_MFX */ - -/* Lapack */ -/* #undef HAVE_LAPACK */ - -/* Library was compiled with functions instrumentation */ -/* #undef ENABLE_INSTRUMENTATION */ - -/* OpenVX */ -/* #undef HAVE_OPENVX */ - -#if defined(HAVE_XINE) || \ - defined(HAVE_GSTREAMER) || \ - defined(HAVE_QUICKTIME) || \ - defined(HAVE_QTKIT) || \ - defined(HAVE_AVFOUNDATION) || \ - /*defined(HAVE_OPENNI) || too specialized */ \ - defined(HAVE_FFMPEG) || \ - defined(HAVE_MSMF) -#define HAVE_VIDEO_INPUT -#endif - -#if /*defined(HAVE_XINE) || */\ - defined(HAVE_GSTREAMER) || \ - defined(HAVE_QUICKTIME) || \ - defined(HAVE_QTKIT) || \ - defined(HAVE_AVFOUNDATION) || \ - defined(HAVE_FFMPEG) || \ - defined(HAVE_MSMF) -#define HAVE_VIDEO_OUTPUT -#endif - -/* OpenCV trace utilities */ -#define OPENCV_TRACE - - -#endif // OPENCV_CVCONFIG_H_INCLUDED diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/dnn.hpp deleted file mode 100644 index 690a82ab8..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn.hpp +++ /dev/null @@ -1,64 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_DNN_HPP -#define OPENCV_DNN_HPP - -// This is an umbrealla header to include into you project. -// We are free to change headers layout in dnn subfolder, so please include -// this header for future compatibility - - -/** @defgroup dnn Deep Neural Network module - @{ - This module contains: - - API for new layers creation, layers are building bricks of neural networks; - - set of built-in most-useful Layers; - - API to constuct and modify comprehensive neural networks from layers; - - functionality for loading serialized networks models from differnet frameworks. - - Functionality of this module is designed only for forward pass computations (i. e. network testing). - A network training is in principle not supported. - @} -*/ -#include - -#endif /* OPENCV_DNN_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dnn.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dnn.hpp deleted file mode 100644 index 748835145..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/dnn/dnn.hpp +++ /dev/null @@ -1,757 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_DNN_DNN_HPP -#define OPENCV_DNN_DNN_HPP - -#include -#include - -#if !defined CV_DOXYGEN && !defined CV_DNN_DONT_ADD_EXPERIMENTAL_NS -#define CV__DNN_EXPERIMENTAL_NS_BEGIN namespace experimental_dnn_v3 { -#define CV__DNN_EXPERIMENTAL_NS_END } -namespace cv { namespace dnn { namespace experimental_dnn_v3 { } using namespace experimental_dnn_v3; }} -#else -#define CV__DNN_EXPERIMENTAL_NS_BEGIN -#define CV__DNN_EXPERIMENTAL_NS_END -#endif - -#include - -namespace cv { -namespace dnn { -CV__DNN_EXPERIMENTAL_NS_BEGIN -//! @addtogroup dnn -//! @{ - - typedef std::vector MatShape; - - /** - * @brief Enum of computation backends supported by layers. - */ - enum Backend - { - DNN_BACKEND_DEFAULT, - DNN_BACKEND_HALIDE - }; - - /** - * @brief Enum of target devices for computations. - */ - enum Target - { - DNN_TARGET_CPU, - DNN_TARGET_OPENCL - }; - - /** @brief This class provides all data needed to initialize layer. - * - * It includes dictionary with scalar params (which can be readed by using Dict interface), - * blob params #blobs and optional meta information: #name and #type of layer instance. - */ - class CV_EXPORTS LayerParams : public Dict - { - public: - //TODO: Add ability to name blob params - std::vector blobs; //!< List of learned parameters stored as blobs. - - String name; //!< Name of the layer instance (optional, can be used internal purposes). - String type; //!< Type name which was used for creating layer by layer factory (optional). - }; - - /** - * @brief Derivatives of this class encapsulates functions of certain backends. - */ - class BackendNode - { - public: - BackendNode(int backendId); - - virtual ~BackendNode(); //!< Virtual destructor to make polymorphism. - - int backendId; //!< Backend identifier. - }; - - /** - * @brief Derivatives of this class wraps cv::Mat for different backends and targets. - */ - class BackendWrapper - { - public: - BackendWrapper(int backendId, int targetId); - - /** - * @brief Wrap cv::Mat for specific backend and target. - * @param[in] targetId Target identifier. - * @param[in] m cv::Mat for wrapping. - * - * Make CPU->GPU data transfer if it's require for the target. - */ - BackendWrapper(int targetId, const cv::Mat& m); - - /** - * @brief Make wrapper for reused cv::Mat. - * @param[in] base Wrapper of cv::Mat that will be reused. - * @param[in] shape Specific shape. - * - * Initialize wrapper from another one. It'll wrap the same host CPU - * memory and mustn't allocate memory on device(i.e. GPU). It might - * has different shape. Use in case of CPU memory reusing for reuse - * associented memory on device too. - */ - BackendWrapper(const Ptr& base, const MatShape& shape); - - virtual ~BackendWrapper(); //!< Virtual destructor to make polymorphism. - - /** - * @brief Transfer data to CPU host memory. - */ - virtual void copyToHost() = 0; - - /** - * @brief Indicate that an actual data is on CPU. - */ - virtual void setHostDirty() = 0; - - int backendId; //!< Backend identifier. - int targetId; //!< Target identifier. - }; - - class CV_EXPORTS ActivationLayer; - class CV_EXPORTS BatchNormLayer; - class CV_EXPORTS ScaleLayer; - - /** @brief This interface class allows to build new Layers - are building blocks of networks. - * - * Each class, derived from Layer, must implement allocate() methods to declare own outputs and forward() to compute outputs. - * Also before using the new layer into networks you must register your layer by using one of @ref dnnLayerFactory "LayerFactory" macros. - */ - class CV_EXPORTS_W Layer : public Algorithm - { - public: - - //! List of learned parameters must be stored here to allow read them by using Net::getParam(). - CV_PROP_RW std::vector blobs; - - /** @brief Computes and sets internal parameters according to inputs, outputs and blobs. - * @param[in] input vector of already allocated input blobs - * @param[out] output vector of already allocated output blobs - * - * If this method is called after network has allocated all memory for input and output blobs - * and before inferencing. - */ - virtual void finalize(const std::vector &input, std::vector &output); - - /** @brief Given the @p input blobs, computes the output @p blobs. - * @param[in] input the input blobs. - * @param[out] output allocated output blobs, which will store results of the computation. - * @param[out] internals allocated internal blobs - */ - virtual void forward(std::vector &input, std::vector &output, std::vector &internals) = 0; - - /** @brief Given the @p input blobs, computes the output @p blobs. - * @param[in] inputs the input blobs. - * @param[out] outputs allocated output blobs, which will store results of the computation. - * @param[out] internals allocated internal blobs - */ - virtual void forward(InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals) = 0; - - /** @brief Given the @p input blobs, computes the output @p blobs. - * @param[in] inputs the input blobs. - * @param[out] outputs allocated output blobs, which will store results of the computation. - * @param[out] internals allocated internal blobs - */ - void forward_fallback(InputArrayOfArrays inputs, OutputArrayOfArrays outputs, OutputArrayOfArrays internals); - - /** @brief @overload */ - CV_WRAP void finalize(const std::vector &inputs, CV_OUT std::vector &outputs); - - /** @brief @overload */ - CV_WRAP std::vector finalize(const std::vector &inputs); - - /** @brief Allocates layer and computes output. */ - CV_WRAP void run(const std::vector &inputs, CV_OUT std::vector &outputs, - CV_IN_OUT std::vector &internals); - - /** @brief Returns index of input blob into the input array. - * @param inputName label of input blob - * - * Each layer input and output can be labeled to easily identify them using "%[.output_name]" notation. - * This method maps label of input blob to its index into input vector. - */ - virtual int inputNameToIndex(String inputName); - /** @brief Returns index of output blob in output array. - * @see inputNameToIndex() - */ - virtual int outputNameToIndex(String outputName); - - /** - * @brief Ask layer if it support specific backend for doing computations. - * @param[in] backendId computation backend identifier. - * @see Backend - */ - virtual bool supportBackend(int backendId); - - /** - * @brief Returns Halide backend node. - * @param[in] inputs Input Halide buffers. - * @see BackendNode, BackendWrapper - * - * Input buffers should be exactly the same that will be used in forward invocations. - * Despite we can use Halide::ImageParam based on input shape only, - * it helps prevent some memory management issues (if something wrong, - * Halide tests will be failed). - */ - virtual Ptr initHalide(const std::vector > &inputs); - - /** - * @brief Automatic Halide scheduling based on layer hyper-parameters. - * @param[in] node Backend node with Halide functions. - * @param[in] inputs Blobs that will be used in forward invocations. - * @param[in] outputs Blobs that will be used in forward invocations. - * @param[in] targetId Target identifier - * @see BackendNode, Target - * - * Layer don't use own Halide::Func members because we can have applied - * layers fusing. In this way the fused function should be scheduled. - */ - virtual void applyHalideScheduler(Ptr& node, - const std::vector &inputs, - const std::vector &outputs, - int targetId) const; - - /** - * @brief Implement layers fusing. - * @param[in] node Backend node of bottom layer. - * @see BackendNode - * - * Actual for graph-based backends. If layer attached successfully, - * returns non-empty cv::Ptr to node of the same backend. - * Fuse only over the last function. - */ - virtual Ptr tryAttach(const Ptr& node); - - /** - * @brief Tries to attach to the layer the subsequent activation layer, i.e. do the layer fusion in a partial case. - * @param[in] layer The subsequent activation layer. - * - * Returns true if the activation layer has been attached successfully. - */ - virtual bool setActivation(const Ptr& layer); - - /** - * @brief Tries to attach to the layer the subsequent batch normalization layer, i.e. do the layer fusion in a partial case. - * @param[in] layer The subsequent batch normalization layer. - * - * Returns true if the batch normalization layer has been attached successfully. - */ - virtual bool setBatchNorm(const Ptr& layer); - - /** - * @brief Tries to attach to the layer the subsequent scaling layer, i.e. do the layer fusion in a partial case. - * @param[in] layer The subsequent scaling layer. - * - * Returns true if the scaling layer has been attached successfully. - */ - virtual bool setScale(const Ptr& layer); - - /** - * @brief "Deattaches" all the layers, attached to particular layer. - */ - virtual void unsetAttached(); - - virtual bool getMemoryShapes(const std::vector &inputs, - const int requiredOutputs, - std::vector &outputs, - std::vector &internals) const; - virtual int64 getFLOPS(const std::vector &inputs, - const std::vector &outputs) const {(void)inputs; (void)outputs; return 0;} - - CV_PROP String name; //!< Name of the layer instance, can be used for logging or other internal purposes. - CV_PROP String type; //!< Type name which was used for creating layer by layer factory. - CV_PROP int preferableTarget; //!< prefer target for layer forwarding - - Layer(); - explicit Layer(const LayerParams ¶ms); //!< Initializes only #name, #type and #blobs fields. - void setParamsFrom(const LayerParams ¶ms); //!< Initializes only #name, #type and #blobs fields. - virtual ~Layer(); - }; - - /** @brief This class allows to create and manipulate comprehensive artificial neural networks. - * - * Neural network is presented as directed acyclic graph (DAG), where vertices are Layer instances, - * and edges specify relationships between layers inputs and outputs. - * - * Each network layer has unique integer id and unique string name inside its network. - * LayerId can store either layer name or layer id. - * - * This class supports reference counting of its instances, i. e. copies point to the same instance. - */ - class CV_EXPORTS_W_SIMPLE Net - { - public: - - CV_WRAP Net(); //!< Default constructor. - CV_WRAP ~Net(); //!< Destructor frees the net only if there aren't references to the net anymore. - - /** Returns true if there are no layers in the network. */ - CV_WRAP bool empty() const; - - /** @brief Adds new layer to the net. - * @param name unique name of the adding layer. - * @param type typename of the adding layer (type must be registered in LayerRegister). - * @param params parameters which will be used to initialize the creating layer. - * @returns unique identifier of created layer, or -1 if a failure will happen. - */ - int addLayer(const String &name, const String &type, LayerParams ¶ms); - /** @brief Adds new layer and connects its first input to the first output of previously added layer. - * @see addLayer() - */ - int addLayerToPrev(const String &name, const String &type, LayerParams ¶ms); - - /** @brief Converts string name of the layer to the integer identifier. - * @returns id of the layer, or -1 if the layer wasn't found. - */ - CV_WRAP int getLayerId(const String &layer); - - CV_WRAP std::vector getLayerNames() const; - - /** @brief Container for strings and integers. */ - typedef DictValue LayerId; - - /** @brief Returns pointer to layer with specified id or name which the network use. */ - CV_WRAP Ptr getLayer(LayerId layerId); - - /** @brief Returns pointers to input layers of specific layer. */ - std::vector > getLayerInputs(LayerId layerId); // FIXIT: CV_WRAP - - /** @brief Delete layer for the network (not implemented yet) */ - CV_WRAP void deleteLayer(LayerId layer); - - /** @brief Connects output of the first layer to input of the second layer. - * @param outPin descriptor of the first layer output. - * @param inpPin descriptor of the second layer input. - * - * Descriptors have the following template <layer_name>[.input_number]: - * - the first part of the template layer_name is sting name of the added layer. - * If this part is empty then the network input pseudo layer will be used; - * - the second optional part of the template input_number - * is either number of the layer input, either label one. - * If this part is omitted then the first layer input will be used. - * - * @see setNetInputs(), Layer::inputNameToIndex(), Layer::outputNameToIndex() - */ - CV_WRAP void connect(String outPin, String inpPin); - - /** @brief Connects #@p outNum output of the first layer to #@p inNum input of the second layer. - * @param outLayerId identifier of the first layer - * @param inpLayerId identifier of the second layer - * @param outNum number of the first layer output - * @param inpNum number of the second layer input - */ - void connect(int outLayerId, int outNum, int inpLayerId, int inpNum); - - /** @brief Sets outputs names of the network input pseudo layer. - * - * Each net always has special own the network input pseudo layer with id=0. - * This layer stores the user blobs only and don't make any computations. - * In fact, this layer provides the only way to pass user data into the network. - * As any other layer, this layer can label its outputs and this function provides an easy way to do this. - */ - CV_WRAP void setInputsNames(const std::vector &inputBlobNames); - - /** @brief Runs forward pass to compute output of layer with name @p outputName. - * @param outputName name for layer which output is needed to get - * @return blob for first output of specified layer. - * @details By default runs forward pass for the whole network. - */ - CV_WRAP Mat forward(const String& outputName = String()); - - /** @brief Runs forward pass to compute output of layer with name @p outputName. - * @param outputBlobs contains all output blobs for specified layer. - * @param outputName name for layer which output is needed to get - * @details If @p outputName is empty, runs forward pass for the whole network. - */ - CV_WRAP void forward(OutputArrayOfArrays outputBlobs, const String& outputName = String()); - - /** @brief Runs forward pass to compute outputs of layers listed in @p outBlobNames. - * @param outputBlobs contains blobs for first outputs of specified layers. - * @param outBlobNames names for layers which outputs are needed to get - */ - CV_WRAP void forward(OutputArrayOfArrays outputBlobs, - const std::vector& outBlobNames); - - /** @brief Runs forward pass to compute outputs of layers listed in @p outBlobNames. - * @param outputBlobs contains all output blobs for each layer specified in @p outBlobNames. - * @param outBlobNames names for layers which outputs are needed to get - */ - CV_WRAP_AS(forwardAndRetrieve) void forward(CV_OUT std::vector >& outputBlobs, - const std::vector& outBlobNames); - - /** - * @brief Compile Halide layers. - * @param[in] scheduler Path to YAML file with scheduling directives. - * @see setPreferableBackend - * - * Schedule layers that support Halide backend. Then compile them for - * specific target. For layers that not represented in scheduling file - * or if no manual scheduling used at all, automatic scheduling will be applied. - */ - CV_WRAP void setHalideScheduler(const String& scheduler); - - /** - * @brief Ask network to use specific computation backend where it supported. - * @param[in] backendId backend identifier. - * @see Backend - */ - CV_WRAP void setPreferableBackend(int backendId); - - /** - * @brief Ask network to make computations on specific target device. - * @param[in] targetId target identifier. - * @see Target - */ - CV_WRAP void setPreferableTarget(int targetId); - - /** @brief Sets the new value for the layer output blob - * @param name descriptor of the updating layer output blob. - * @param blob new blob. - * @see connect(String, String) to know format of the descriptor. - * @note If updating blob is not empty then @p blob must have the same shape, - * because network reshaping is not implemented yet. - */ - CV_WRAP void setInput(InputArray blob, const String& name = ""); - - /** @brief Sets the new value for the learned param of the layer. - * @param layer name or id of the layer. - * @param numParam index of the layer parameter in the Layer::blobs array. - * @param blob the new value. - * @see Layer::blobs - * @note If shape of the new blob differs from the previous shape, - * then the following forward pass may fail. - */ - CV_WRAP void setParam(LayerId layer, int numParam, const Mat &blob); - - /** @brief Returns parameter blob of the layer. - * @param layer name or id of the layer. - * @param numParam index of the layer parameter in the Layer::blobs array. - * @see Layer::blobs - */ - CV_WRAP Mat getParam(LayerId layer, int numParam = 0); - - /** @brief Returns indexes of layers with unconnected outputs. - */ - CV_WRAP std::vector getUnconnectedOutLayers() const; - /** @brief Returns input and output shapes for all layers in loaded model; - * preliminary inferencing isn't necessary. - * @param netInputShapes shapes for all input blobs in net input layer. - * @param layersIds output parameter for layer IDs. - * @param inLayersShapes output parameter for input layers shapes; - * order is the same as in layersIds - * @param outLayersShapes output parameter for output layers shapes; - * order is the same as in layersIds - */ - CV_WRAP void getLayersShapes(const std::vector& netInputShapes, - CV_OUT std::vector& layersIds, - CV_OUT std::vector >& inLayersShapes, - CV_OUT std::vector >& outLayersShapes) const; - - /** @overload */ - CV_WRAP void getLayersShapes(const MatShape& netInputShape, - CV_OUT std::vector& layersIds, - CV_OUT std::vector >& inLayersShapes, - CV_OUT std::vector >& outLayersShapes) const; - - /** @brief Returns input and output shapes for layer with specified - * id in loaded model; preliminary inferencing isn't necessary. - * @param netInputShape shape input blob in net input layer. - * @param layerId id for layer. - * @param inLayerShapes output parameter for input layers shapes; - * order is the same as in layersIds - * @param outLayerShapes output parameter for output layers shapes; - * order is the same as in layersIds - */ - void getLayerShapes(const MatShape& netInputShape, - const int layerId, - CV_OUT std::vector& inLayerShapes, - CV_OUT std::vector& outLayerShapes) const; // FIXIT: CV_WRAP - - /** @overload */ - void getLayerShapes(const std::vector& netInputShapes, - const int layerId, - CV_OUT std::vector& inLayerShapes, - CV_OUT std::vector& outLayerShapes) const; // FIXIT: CV_WRAP - - /** @brief Computes FLOP for whole loaded model with specified input shapes. - * @param netInputShapes vector of shapes for all net inputs. - * @returns computed FLOP. - */ - CV_WRAP int64 getFLOPS(const std::vector& netInputShapes) const; - /** @overload */ - CV_WRAP int64 getFLOPS(const MatShape& netInputShape) const; - /** @overload */ - CV_WRAP int64 getFLOPS(const int layerId, - const std::vector& netInputShapes) const; - /** @overload */ - CV_WRAP int64 getFLOPS(const int layerId, - const MatShape& netInputShape) const; - - /** @brief Returns list of types for layer used in model. - * @param layersTypes output parameter for returning types. - */ - CV_WRAP void getLayerTypes(CV_OUT std::vector& layersTypes) const; - - /** @brief Returns count of layers of specified type. - * @param layerType type. - * @returns count of layers - */ - CV_WRAP int getLayersCount(const String& layerType) const; - - /** @brief Computes bytes number which are requered to store - * all weights and intermediate blobs for model. - * @param netInputShapes vector of shapes for all net inputs. - * @param weights output parameter to store resulting bytes for weights. - * @param blobs output parameter to store resulting bytes for intermediate blobs. - */ - void getMemoryConsumption(const std::vector& netInputShapes, - CV_OUT size_t& weights, CV_OUT size_t& blobs) const; // FIXIT: CV_WRAP - /** @overload */ - CV_WRAP void getMemoryConsumption(const MatShape& netInputShape, - CV_OUT size_t& weights, CV_OUT size_t& blobs) const; - /** @overload */ - CV_WRAP void getMemoryConsumption(const int layerId, - const std::vector& netInputShapes, - CV_OUT size_t& weights, CV_OUT size_t& blobs) const; - /** @overload */ - CV_WRAP void getMemoryConsumption(const int layerId, - const MatShape& netInputShape, - CV_OUT size_t& weights, CV_OUT size_t& blobs) const; - - /** @brief Computes bytes number which are requered to store - * all weights and intermediate blobs for each layer. - * @param netInputShapes vector of shapes for all net inputs. - * @param layerIds output vector to save layer IDs. - * @param weights output parameter to store resulting bytes for weights. - * @param blobs output parameter to store resulting bytes for intermediate blobs. - */ - void getMemoryConsumption(const std::vector& netInputShapes, - CV_OUT std::vector& layerIds, - CV_OUT std::vector& weights, - CV_OUT std::vector& blobs) const; // FIXIT: CV_WRAP - /** @overload */ - void getMemoryConsumption(const MatShape& netInputShape, - CV_OUT std::vector& layerIds, - CV_OUT std::vector& weights, - CV_OUT std::vector& blobs) const; // FIXIT: CV_WRAP - - /** @brief Enables or disables layer fusion in the network. - * @param fusion true to enable the fusion, false to disable. The fusion is enabled by default. - */ - CV_WRAP void enableFusion(bool fusion); - - /** @brief Returns overall time for inference and timings (in ticks) for layers. - * Indexes in returned vector correspond to layers ids. Some layers can be fused with others, - * in this case zero ticks count will be return for that skipped layers. - * @param timings vector for tick timings for all layers. - * @return overall ticks for model inference. - */ - CV_WRAP int64 getPerfProfile(CV_OUT std::vector& timings); - - private: - struct Impl; - Ptr impl; - }; - - /** @brief Reads a network model stored in Darknet model files. - * @param cfgFile path to the .cfg file with text description of the network architecture. - * @param darknetModel path to the .weights file with learned network. - * @returns Network object that ready to do forward, throw an exception in failure cases. - * @returns Net object. - */ - CV_EXPORTS_W Net readNetFromDarknet(const String &cfgFile, const String &darknetModel = String()); - - /** @brief Reads a network model stored in Caffe framework's format. - * @param prototxt path to the .prototxt file with text description of the network architecture. - * @param caffeModel path to the .caffemodel file with learned network. - * @returns Net object. - */ - CV_EXPORTS_W Net readNetFromCaffe(const String &prototxt, const String &caffeModel = String()); - - /** @brief Reads a network model stored in Caffe model in memory. - * @details This is an overloaded member function, provided for convenience. - * It differs from the above function only in what argument(s) it accepts. - * @param bufferProto buffer containing the content of the .prototxt file - * @param lenProto length of bufferProto - * @param bufferModel buffer containing the content of the .caffemodel file - * @param lenModel length of bufferModel - * @returns Net object. - */ - CV_EXPORTS Net readNetFromCaffe(const char *bufferProto, size_t lenProto, - const char *bufferModel = NULL, size_t lenModel = 0); - - /** @brief Reads a network model stored in TensorFlow framework's format. - * @param model path to the .pb file with binary protobuf description of the network architecture - * @param config path to the .pbtxt file that contains text graph definition in protobuf format. - * Resulting Net object is built by text graph using weights from a binary one that - * let us make it more flexible. - * @returns Net object. - */ - CV_EXPORTS_W Net readNetFromTensorflow(const String &model, const String &config = String()); - - /** @brief Reads a network model stored in TensorFlow framework's format. - * @details This is an overloaded member function, provided for convenience. - * It differs from the above function only in what argument(s) it accepts. - * @param bufferModel buffer containing the content of the pb file - * @param lenModel length of bufferModel - * @param bufferConfig buffer containing the content of the pbtxt file - * @param lenConfig length of bufferConfig - */ - CV_EXPORTS Net readNetFromTensorflow(const char *bufferModel, size_t lenModel, - const char *bufferConfig = NULL, size_t lenConfig = 0); - - /** - * @brief Reads a network model stored in Torch7 framework's format. - * @param model path to the file, dumped from Torch by using torch.save() function. - * @param isBinary specifies whether the network was serialized in ascii mode or binary. - * @returns Net object. - * - * @note Ascii mode of Torch serializer is more preferable, because binary mode extensively use `long` type of C language, - * which has various bit-length on different systems. - * - * The loading file must contain serialized nn.Module object - * with importing network. Try to eliminate a custom objects from serialazing data to avoid importing errors. - * - * List of supported layers (i.e. object instances derived from Torch nn.Module class): - * - nn.Sequential - * - nn.Parallel - * - nn.Concat - * - nn.Linear - * - nn.SpatialConvolution - * - nn.SpatialMaxPooling, nn.SpatialAveragePooling - * - nn.ReLU, nn.TanH, nn.Sigmoid - * - nn.Reshape - * - nn.SoftMax, nn.LogSoftMax - * - * Also some equivalents of these classes from cunn, cudnn, and fbcunn may be successfully imported. - */ - CV_EXPORTS_W Net readNetFromTorch(const String &model, bool isBinary = true); - - /** @brief Loads blob which was serialized as torch.Tensor object of Torch7 framework. - * @warning This function has the same limitations as readNetFromTorch(). - */ - CV_EXPORTS_W Mat readTorchBlob(const String &filename, bool isBinary = true); - /** @brief Creates 4-dimensional blob from image. Optionally resizes and crops @p image from center, - * subtract @p mean values, scales values by @p scalefactor, swap Blue and Red channels. - * @param image input image (with 1-, 3- or 4-channels). - * @param size spatial size for output image - * @param mean scalar with mean values which are subtracted from channels. Values are intended - * to be in (mean-R, mean-G, mean-B) order if @p image has BGR ordering and @p swapRB is true. - * @param scalefactor multiplier for @p image values. - * @param swapRB flag which indicates that swap first and last channels - * in 3-channel image is necessary. - * @param crop flag which indicates whether image will be cropped after resize or not - * @details if @p crop is true, input image is resized so one side after resize is equal to corresponing - * dimension in @p size and another one is equal or larger. Then, crop from the center is performed. - * If @p crop is false, direct resize without cropping and preserving aspect ratio is performed. - * @returns 4-dimansional Mat with NCHW dimensions order. - */ - CV_EXPORTS_W Mat blobFromImage(InputArray image, double scalefactor=1.0, const Size& size = Size(), - const Scalar& mean = Scalar(), bool swapRB=true, bool crop=true); - /** @brief Creates 4-dimensional blob from series of images. Optionally resizes and - * crops @p images from center, subtract @p mean values, scales values by @p scalefactor, - * swap Blue and Red channels. - * @param images input images (all with 1-, 3- or 4-channels). - * @param size spatial size for output image - * @param mean scalar with mean values which are subtracted from channels. Values are intended - * to be in (mean-R, mean-G, mean-B) order if @p image has BGR ordering and @p swapRB is true. - * @param scalefactor multiplier for @p images values. - * @param swapRB flag which indicates that swap first and last channels - * in 3-channel image is necessary. - * @param crop flag which indicates whether image will be cropped after resize or not - * @details if @p crop is true, input image is resized so one side after resize is equal to corresponing - * dimension in @p size and another one is equal or larger. Then, crop from the center is performed. - * If @p crop is false, direct resize without cropping and preserving aspect ratio is performed. - * @returns 4-dimansional Mat with NCHW dimensions order. - */ - CV_EXPORTS_W Mat blobFromImages(const std::vector& images, double scalefactor=1.0, - Size size = Size(), const Scalar& mean = Scalar(), bool swapRB=true, bool crop=true); - - /** @brief Convert all weights of Caffe network to half precision floating point. - * @param src Path to origin model from Caffe framework contains single - * precision floating point weights (usually has `.caffemodel` extension). - * @param dst Path to destination model with updated weights. - * @param layersTypes Set of layers types which parameters will be converted. - * By default, converts only Convolutional and Fully-Connected layers' - * weights. - * - * @note Shrinked model has no origin float32 weights so it can't be used - * in origin Caffe framework anymore. However the structure of data - * is taken from NVidia's Caffe fork: https://github.com/NVIDIA/caffe. - * So the resulting model may be used there. - */ - CV_EXPORTS_W void shrinkCaffeModel(const String& src, const String& dst, - const std::vector& layersTypes = std::vector()); - - /** @brief Performs non maximum suppression given boxes and corresponding scores. - - * @param bboxes a set of bounding boxes to apply NMS. - * @param scores a set of corresponding confidences. - * @param score_threshold a threshold used to filter boxes by score. - * @param nms_threshold a threshold used in non maximum suppression. - * @param indices the kept indices of bboxes after NMS. - * @param eta a coefficient in adaptive threshold formula: \f$nms\_threshold_{i+1}=eta\cdot nms\_threshold_i\f$. - * @param top_k if `>0`, keep at most @p top_k picked indices. - */ - CV_EXPORTS_W void NMSBoxes(const std::vector& bboxes, const std::vector& scores, - const float score_threshold, const float nms_threshold, - CV_OUT std::vector& indices, - const float eta = 1.f, const int top_k = 0); - - -//! @} -CV__DNN_EXPERIMENTAL_NS_END -} -} - -#include -#include - -#endif /* OPENCV_DNN_DNN_HPP */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/hdf5.h b/lib/3rdParty/OpenCV3.4/include/opencv2/flann/hdf5.h deleted file mode 100644 index 80d23b977..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/flann/hdf5.h +++ /dev/null @@ -1,231 +0,0 @@ -/*********************************************************************** - * Software License Agreement (BSD License) - * - * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved. - * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *************************************************************************/ - - -#ifndef OPENCV_FLANN_HDF5_H_ -#define OPENCV_FLANN_HDF5_H_ - -#include - -#include "matrix.h" - - -namespace cvflann -{ - -namespace -{ - -template -hid_t get_hdf5_type() -{ - throw FLANNException("Unsupported type for IO operations"); -} - -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_CHAR; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_UCHAR; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_SHORT; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_USHORT; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_INT; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_UINT; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_LONG; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_ULONG; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_FLOAT; } -template<> -hid_t get_hdf5_type() { return H5T_NATIVE_DOUBLE; } -} - - -#define CHECK_ERROR(x,y) if ((x)<0) throw FLANNException((y)); - -template -void save_to_file(const cvflann::Matrix& dataset, const String& filename, const String& name) -{ - -#if H5Eset_auto_vers == 2 - H5Eset_auto( H5E_DEFAULT, NULL, NULL ); -#else - H5Eset_auto( NULL, NULL ); -#endif - - herr_t status; - hid_t file_id; - file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, H5P_DEFAULT); - if (file_id < 0) { - file_id = H5Fcreate(filename.c_str(), H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT); - } - CHECK_ERROR(file_id,"Error creating hdf5 file."); - - hsize_t dimsf[2]; // dataset dimensions - dimsf[0] = dataset.rows; - dimsf[1] = dataset.cols; - - hid_t space_id = H5Screate_simple(2, dimsf, NULL); - hid_t memspace_id = H5Screate_simple(2, dimsf, NULL); - - hid_t dataset_id; -#if H5Dcreate_vers == 2 - dataset_id = H5Dcreate2(file_id, name.c_str(), get_hdf5_type(), space_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); -#else - dataset_id = H5Dcreate(file_id, name.c_str(), get_hdf5_type(), space_id, H5P_DEFAULT); -#endif - - if (dataset_id<0) { -#if H5Dopen_vers == 2 - dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT); -#else - dataset_id = H5Dopen(file_id, name.c_str()); -#endif - } - CHECK_ERROR(dataset_id,"Error creating or opening dataset in file."); - - status = H5Dwrite(dataset_id, get_hdf5_type(), memspace_id, space_id, H5P_DEFAULT, dataset.data ); - CHECK_ERROR(status, "Error writing to dataset"); - - H5Sclose(memspace_id); - H5Sclose(space_id); - H5Dclose(dataset_id); - H5Fclose(file_id); - -} - - -template -void load_from_file(cvflann::Matrix& dataset, const String& filename, const String& name) -{ - herr_t status; - hid_t file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, H5P_DEFAULT); - CHECK_ERROR(file_id,"Error opening hdf5 file."); - - hid_t dataset_id; -#if H5Dopen_vers == 2 - dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT); -#else - dataset_id = H5Dopen(file_id, name.c_str()); -#endif - CHECK_ERROR(dataset_id,"Error opening dataset in file."); - - hid_t space_id = H5Dget_space(dataset_id); - - hsize_t dims_out[2]; - H5Sget_simple_extent_dims(space_id, dims_out, NULL); - - dataset = cvflann::Matrix(new T[dims_out[0]*dims_out[1]], dims_out[0], dims_out[1]); - - status = H5Dread(dataset_id, get_hdf5_type(), H5S_ALL, H5S_ALL, H5P_DEFAULT, dataset[0]); - CHECK_ERROR(status, "Error reading dataset"); - - H5Sclose(space_id); - H5Dclose(dataset_id); - H5Fclose(file_id); -} - - -#ifdef HAVE_MPI - -namespace mpi -{ -/** - * Loads a the hyperslice corresponding to this processor from a hdf5 file. - * @param flann_dataset Dataset where the data is loaded - * @param filename HDF5 file name - * @param name Name of dataset inside file - */ -template -void load_from_file(cvflann::Matrix& dataset, const String& filename, const String& name) -{ - MPI_Comm comm = MPI_COMM_WORLD; - MPI_Info info = MPI_INFO_NULL; - - int mpi_size, mpi_rank; - MPI_Comm_size(comm, &mpi_size); - MPI_Comm_rank(comm, &mpi_rank); - - herr_t status; - - hid_t plist_id = H5Pcreate(H5P_FILE_ACCESS); - H5Pset_fapl_mpio(plist_id, comm, info); - hid_t file_id = H5Fopen(filename.c_str(), H5F_ACC_RDWR, plist_id); - CHECK_ERROR(file_id,"Error opening hdf5 file."); - H5Pclose(plist_id); - hid_t dataset_id; -#if H5Dopen_vers == 2 - dataset_id = H5Dopen2(file_id, name.c_str(), H5P_DEFAULT); -#else - dataset_id = H5Dopen(file_id, name.c_str()); -#endif - CHECK_ERROR(dataset_id,"Error opening dataset in file."); - - hid_t space_id = H5Dget_space(dataset_id); - hsize_t dims[2]; - H5Sget_simple_extent_dims(space_id, dims, NULL); - - hsize_t count[2]; - hsize_t offset[2]; - - hsize_t item_cnt = dims[0]/mpi_size+(dims[0]%mpi_size==0 ? 0 : 1); - hsize_t cnt = (mpi_rank(), memspace_id, space_id, plist_id, dataset.data); - CHECK_ERROR(status, "Error reading dataset"); - - H5Pclose(plist_id); - H5Sclose(space_id); - H5Sclose(memspace_id); - H5Dclose(dataset_id); - H5Fclose(file_id); -} -} -#endif // HAVE_MPI -} // namespace cvflann::mpi - -#endif /* OPENCV_FLANN_HDF5_H_ */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/imgcodecs_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/imgcodecs_c.h deleted file mode 100644 index c36dac334..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/imgcodecs_c.h +++ /dev/null @@ -1,149 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_IMGCODECS_H -#define OPENCV_IMGCODECS_H - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** @addtogroup imgcodecs_c - @{ - */ - -enum -{ -/* 8bit, color or not */ - CV_LOAD_IMAGE_UNCHANGED =-1, -/* 8bit, gray */ - CV_LOAD_IMAGE_GRAYSCALE =0, -/* ?, color */ - CV_LOAD_IMAGE_COLOR =1, -/* any depth, ? */ - CV_LOAD_IMAGE_ANYDEPTH =2, -/* ?, any color */ - CV_LOAD_IMAGE_ANYCOLOR =4, -/* ?, no rotate */ - CV_LOAD_IMAGE_IGNORE_ORIENTATION =128 -}; - -/* load image from file - iscolor can be a combination of above flags where CV_LOAD_IMAGE_UNCHANGED - overrides the other flags - using CV_LOAD_IMAGE_ANYCOLOR alone is equivalent to CV_LOAD_IMAGE_UNCHANGED - unless CV_LOAD_IMAGE_ANYDEPTH is specified images are converted to 8bit -*/ -CVAPI(IplImage*) cvLoadImage( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); -CVAPI(CvMat*) cvLoadImageM( const char* filename, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); - -enum -{ - CV_IMWRITE_JPEG_QUALITY =1, - CV_IMWRITE_JPEG_PROGRESSIVE =2, - CV_IMWRITE_JPEG_OPTIMIZE =3, - CV_IMWRITE_JPEG_RST_INTERVAL =4, - CV_IMWRITE_JPEG_LUMA_QUALITY =5, - CV_IMWRITE_JPEG_CHROMA_QUALITY =6, - CV_IMWRITE_PNG_COMPRESSION =16, - CV_IMWRITE_PNG_STRATEGY =17, - CV_IMWRITE_PNG_BILEVEL =18, - CV_IMWRITE_PNG_STRATEGY_DEFAULT =0, - CV_IMWRITE_PNG_STRATEGY_FILTERED =1, - CV_IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY =2, - CV_IMWRITE_PNG_STRATEGY_RLE =3, - CV_IMWRITE_PNG_STRATEGY_FIXED =4, - CV_IMWRITE_PXM_BINARY =32, - CV_IMWRITE_EXR_TYPE = 48, - CV_IMWRITE_WEBP_QUALITY =64, - CV_IMWRITE_PAM_TUPLETYPE = 128, - CV_IMWRITE_PAM_FORMAT_NULL = 0, - CV_IMWRITE_PAM_FORMAT_BLACKANDWHITE = 1, - CV_IMWRITE_PAM_FORMAT_GRAYSCALE = 2, - CV_IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA = 3, - CV_IMWRITE_PAM_FORMAT_RGB = 4, - CV_IMWRITE_PAM_FORMAT_RGB_ALPHA = 5, -}; - - - -/* save image to file */ -CVAPI(int) cvSaveImage( const char* filename, const CvArr* image, - const int* params CV_DEFAULT(0) ); - -/* decode image stored in the buffer */ -CVAPI(IplImage*) cvDecodeImage( const CvMat* buf, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); -CVAPI(CvMat*) cvDecodeImageM( const CvMat* buf, int iscolor CV_DEFAULT(CV_LOAD_IMAGE_COLOR)); - -/* encode image and store the result as a byte vector (single-row 8uC1 matrix) */ -CVAPI(CvMat*) cvEncodeImage( const char* ext, const CvArr* image, - const int* params CV_DEFAULT(0) ); - -enum -{ - CV_CVTIMG_FLIP =1, - CV_CVTIMG_SWAP_RB =2 -}; - -/* utility function: convert one image to another with optional vertical flip */ -CVAPI(void) cvConvertImage( const CvArr* src, CvArr* dst, int flags CV_DEFAULT(0)); - -CVAPI(int) cvHaveImageReader(const char* filename); -CVAPI(int) cvHaveImageWriter(const char* filename); - - -/****************************************************************************************\ -* Obsolete functions/synonyms * -\****************************************************************************************/ - -#define cvvLoadImage(name) cvLoadImage((name),1) -#define cvvSaveImage cvSaveImage -#define cvvConvertImage cvConvertImage - -/** @} imgcodecs_c */ - -#ifdef __cplusplus -} -#endif - -#endif // OPENCV_IMGCODECS_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/ios.h b/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/ios.h deleted file mode 100644 index fbd6371e5..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgcodecs/ios.h +++ /dev/null @@ -1,57 +0,0 @@ - -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#import -#import -#import -#import -#include "opencv2/core/core.hpp" - -//! @addtogroup imgcodecs_ios -//! @{ - -UIImage* MatToUIImage(const cv::Mat& image); -void UIImageToMat(const UIImage* image, - cv::Mat& m, bool alphaExist = false); - -//! @} diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc.hpp deleted file mode 100644 index 109b547fd..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc.hpp +++ /dev/null @@ -1,4847 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_IMGPROC_HPP -#define OPENCV_IMGPROC_HPP - -#include "opencv2/core.hpp" - -/** - @defgroup imgproc Image processing - @{ - @defgroup imgproc_filter Image Filtering - -Functions and classes described in this section are used to perform various linear or non-linear -filtering operations on 2D images (represented as Mat's). It means that for each pixel location -\f$(x,y)\f$ in the source image (normally, rectangular), its neighborhood is considered and used to -compute the response. In case of a linear filter, it is a weighted sum of pixel values. In case of -morphological operations, it is the minimum or maximum values, and so on. The computed response is -stored in the destination image at the same location \f$(x,y)\f$. It means that the output image -will be of the same size as the input image. Normally, the functions support multi-channel arrays, -in which case every channel is processed independently. Therefore, the output image will also have -the same number of channels as the input one. - -Another common feature of the functions and classes described in this section is that, unlike -simple arithmetic functions, they need to extrapolate values of some non-existing pixels. For -example, if you want to smooth an image using a Gaussian \f$3 \times 3\f$ filter, then, when -processing the left-most pixels in each row, you need pixels to the left of them, that is, outside -of the image. You can let these pixels be the same as the left-most image pixels ("replicated -border" extrapolation method), or assume that all the non-existing pixels are zeros ("constant -border" extrapolation method), and so on. OpenCV enables you to specify the extrapolation method. -For details, see cv::BorderTypes - -@anchor filter_depths -### Depth combinations -Input depth (src.depth()) | Output depth (ddepth) ---------------------------|---------------------- -CV_8U | -1/CV_16S/CV_32F/CV_64F -CV_16U/CV_16S | -1/CV_32F/CV_64F -CV_32F | -1/CV_32F/CV_64F -CV_64F | -1/CV_64F - -@note when ddepth=-1, the output image will have the same depth as the source. - - @defgroup imgproc_transform Geometric Image Transformations - -The functions in this section perform various geometrical transformations of 2D images. They do not -change the image content but deform the pixel grid and map this deformed grid to the destination -image. In fact, to avoid sampling artifacts, the mapping is done in the reverse order, from -destination to the source. That is, for each pixel \f$(x, y)\f$ of the destination image, the -functions compute coordinates of the corresponding "donor" pixel in the source image and copy the -pixel value: - -\f[\texttt{dst} (x,y)= \texttt{src} (f_x(x,y), f_y(x,y))\f] - -In case when you specify the forward mapping \f$\left: \texttt{src} \rightarrow -\texttt{dst}\f$, the OpenCV functions first compute the corresponding inverse mapping -\f$\left: \texttt{dst} \rightarrow \texttt{src}\f$ and then use the above formula. - -The actual implementations of the geometrical transformations, from the most generic remap and to -the simplest and the fastest resize, need to solve two main problems with the above formula: - -- Extrapolation of non-existing pixels. Similarly to the filtering functions described in the -previous section, for some \f$(x,y)\f$, either one of \f$f_x(x,y)\f$, or \f$f_y(x,y)\f$, or both -of them may fall outside of the image. In this case, an extrapolation method needs to be used. -OpenCV provides the same selection of extrapolation methods as in the filtering functions. In -addition, it provides the method BORDER_TRANSPARENT. This means that the corresponding pixels in -the destination image will not be modified at all. - -- Interpolation of pixel values. Usually \f$f_x(x,y)\f$ and \f$f_y(x,y)\f$ are floating-point -numbers. This means that \f$\left\f$ can be either an affine or perspective -transformation, or radial lens distortion correction, and so on. So, a pixel value at fractional -coordinates needs to be retrieved. In the simplest case, the coordinates can be just rounded to the -nearest integer coordinates and the corresponding pixel can be used. This is called a -nearest-neighbor interpolation. However, a better result can be achieved by using more -sophisticated [interpolation methods](http://en.wikipedia.org/wiki/Multivariate_interpolation) , -where a polynomial function is fit into some neighborhood of the computed pixel \f$(f_x(x,y), -f_y(x,y))\f$, and then the value of the polynomial at \f$(f_x(x,y), f_y(x,y))\f$ is taken as the -interpolated pixel value. In OpenCV, you can choose between several interpolation methods. See -resize for details. - -@note The geometrical transformations do not work with `CV_8S` or `CV_32S` images. - - @defgroup imgproc_misc Miscellaneous Image Transformations - @defgroup imgproc_draw Drawing Functions - -Drawing functions work with matrices/images of arbitrary depth. The boundaries of the shapes can be -rendered with antialiasing (implemented only for 8-bit images for now). All the functions include -the parameter color that uses an RGB value (that may be constructed with the Scalar constructor ) -for color images and brightness for grayscale images. For color images, the channel ordering is -normally *Blue, Green, Red*. This is what imshow, imread, and imwrite expect. So, if you form a -color using the Scalar constructor, it should look like: - -\f[\texttt{Scalar} (blue \_ component, green \_ component, red \_ component[, alpha \_ component])\f] - -If you are using your own image rendering and I/O functions, you can use any channel ordering. The -drawing functions process each channel independently and do not depend on the channel order or even -on the used color space. The whole image can be converted from BGR to RGB or to a different color -space using cvtColor . - -If a drawn figure is partially or completely outside the image, the drawing functions clip it. Also, -many drawing functions can handle pixel coordinates specified with sub-pixel accuracy. This means -that the coordinates can be passed as fixed-point numbers encoded as integers. The number of -fractional bits is specified by the shift parameter and the real point coordinates are calculated as -\f$\texttt{Point}(x,y)\rightarrow\texttt{Point2f}(x*2^{-shift},y*2^{-shift})\f$ . This feature is -especially effective when rendering antialiased shapes. - -@note The functions do not support alpha-transparency when the target image is 4-channel. In this -case, the color[3] is simply copied to the repainted pixels. Thus, if you want to paint -semi-transparent shapes, you can paint them in a separate buffer and then blend it with the main -image. - - @defgroup imgproc_colormap ColorMaps in OpenCV - -The human perception isn't built for observing fine changes in grayscale images. Human eyes are more -sensitive to observing changes between colors, so you often need to recolor your grayscale images to -get a clue about them. OpenCV now comes with various colormaps to enhance the visualization in your -computer vision application. - -In OpenCV you only need applyColorMap to apply a colormap on a given image. The following sample -code reads the path to an image from command line, applies a Jet colormap on it and shows the -result: - -@code -#include -#include -#include -#include -using namespace cv; - -#include -using namespace std; - -int main(int argc, const char *argv[]) -{ - // We need an input image. (can be grayscale or color) - if (argc < 2) - { - cerr << "We need an image to process here. Please run: colorMap [path_to_image]" << endl; - return -1; - } - Mat img_in = imread(argv[1]); - if(img_in.empty()) - { - cerr << "Sample image (" << argv[1] << ") is empty. Please adjust your path, so it points to a valid input image!" << endl; - return -1; - } - // Holds the colormap version of the image: - Mat img_color; - // Apply the colormap: - applyColorMap(img_in, img_color, COLORMAP_JET); - // Show the result: - imshow("colorMap", img_color); - waitKey(0); - return 0; -} -@endcode - -@see cv::ColormapTypes - - @defgroup imgproc_subdiv2d Planar Subdivision - -The Subdiv2D class described in this section is used to perform various planar subdivision on -a set of 2D points (represented as vector of Point2f). OpenCV subdivides a plane into triangles -using the Delaunay's algorithm, which corresponds to the dual graph of the Voronoi diagram. -In the figure below, the Delaunay's triangulation is marked with black lines and the Voronoi -diagram with red lines. - -![Delaunay triangulation (black) and Voronoi (red)](pics/delaunay_voronoi.png) - -The subdivisions can be used for the 3D piece-wise transformation of a plane, morphing, fast -location of points on the plane, building special graphs (such as NNG,RNG), and so forth. - - @defgroup imgproc_hist Histograms - @defgroup imgproc_shape Structural Analysis and Shape Descriptors - @defgroup imgproc_motion Motion Analysis and Object Tracking - @defgroup imgproc_feature Feature Detection - @defgroup imgproc_object Object Detection - @defgroup imgproc_c C API - @defgroup imgproc_hal Hardware Acceleration Layer - @{ - @defgroup imgproc_hal_functions Functions - @defgroup imgproc_hal_interface Interface - @} - @} -*/ - -namespace cv -{ - -/** @addtogroup imgproc -@{ -*/ - -//! @addtogroup imgproc_filter -//! @{ - -//! type of morphological operation -enum MorphTypes{ - MORPH_ERODE = 0, //!< see cv::erode - MORPH_DILATE = 1, //!< see cv::dilate - MORPH_OPEN = 2, //!< an opening operation - //!< \f[\texttt{dst} = \mathrm{open} ( \texttt{src} , \texttt{element} )= \mathrm{dilate} ( \mathrm{erode} ( \texttt{src} , \texttt{element} ))\f] - MORPH_CLOSE = 3, //!< a closing operation - //!< \f[\texttt{dst} = \mathrm{close} ( \texttt{src} , \texttt{element} )= \mathrm{erode} ( \mathrm{dilate} ( \texttt{src} , \texttt{element} ))\f] - MORPH_GRADIENT = 4, //!< a morphological gradient - //!< \f[\texttt{dst} = \mathrm{morph\_grad} ( \texttt{src} , \texttt{element} )= \mathrm{dilate} ( \texttt{src} , \texttt{element} )- \mathrm{erode} ( \texttt{src} , \texttt{element} )\f] - MORPH_TOPHAT = 5, //!< "top hat" - //!< \f[\texttt{dst} = \mathrm{tophat} ( \texttt{src} , \texttt{element} )= \texttt{src} - \mathrm{open} ( \texttt{src} , \texttt{element} )\f] - MORPH_BLACKHAT = 6, //!< "black hat" - //!< \f[\texttt{dst} = \mathrm{blackhat} ( \texttt{src} , \texttt{element} )= \mathrm{close} ( \texttt{src} , \texttt{element} )- \texttt{src}\f] - MORPH_HITMISS = 7 //!< "hit or miss" - //!< .- Only supported for CV_8UC1 binary images. A tutorial can be found in the documentation -}; - -//! shape of the structuring element -enum MorphShapes { - MORPH_RECT = 0, //!< a rectangular structuring element: \f[E_{ij}=1\f] - MORPH_CROSS = 1, //!< a cross-shaped structuring element: - //!< \f[E_{ij} = \fork{1}{if i=\texttt{anchor.y} or j=\texttt{anchor.x}}{0}{otherwise}\f] - MORPH_ELLIPSE = 2 //!< an elliptic structuring element, that is, a filled ellipse inscribed - //!< into the rectangle Rect(0, 0, esize.width, 0.esize.height) -}; - -//! @} imgproc_filter - -//! @addtogroup imgproc_transform -//! @{ - -//! interpolation algorithm -enum InterpolationFlags{ - /** nearest neighbor interpolation */ - INTER_NEAREST = 0, - /** bilinear interpolation */ - INTER_LINEAR = 1, - /** bicubic interpolation */ - INTER_CUBIC = 2, - /** resampling using pixel area relation. It may be a preferred method for image decimation, as - it gives moire'-free results. But when the image is zoomed, it is similar to the INTER_NEAREST - method. */ - INTER_AREA = 3, - /** Lanczos interpolation over 8x8 neighborhood */ - INTER_LANCZOS4 = 4, - /** Bit exact bilinear interpolation */ - INTER_LINEAR_EXACT = 5, - /** mask for interpolation codes */ - INTER_MAX = 7, - /** flag, fills all of the destination image pixels. If some of them correspond to outliers in the - source image, they are set to zero */ - WARP_FILL_OUTLIERS = 8, - /** flag, inverse transformation - - For example, @ref cv::linearPolar or @ref cv::logPolar transforms: - - flag is __not__ set: \f$dst( \rho , \phi ) = src(x,y)\f$ - - flag is set: \f$dst(x,y) = src( \rho , \phi )\f$ - */ - WARP_INVERSE_MAP = 16 -}; - -enum InterpolationMasks { - INTER_BITS = 5, - INTER_BITS2 = INTER_BITS * 2, - INTER_TAB_SIZE = 1 << INTER_BITS, - INTER_TAB_SIZE2 = INTER_TAB_SIZE * INTER_TAB_SIZE - }; - -//! @} imgproc_transform - -//! @addtogroup imgproc_misc -//! @{ - -//! Distance types for Distance Transform and M-estimators -//! @see cv::distanceTransform, cv::fitLine -enum DistanceTypes { - DIST_USER = -1, //!< User defined distance - DIST_L1 = 1, //!< distance = |x1-x2| + |y1-y2| - DIST_L2 = 2, //!< the simple euclidean distance - DIST_C = 3, //!< distance = max(|x1-x2|,|y1-y2|) - DIST_L12 = 4, //!< L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) - DIST_FAIR = 5, //!< distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 - DIST_WELSCH = 6, //!< distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 - DIST_HUBER = 7 //!< distance = |x| \texttt{thresh}\)}{0}{otherwise}\f] - THRESH_BINARY_INV = 1, //!< \f[\texttt{dst} (x,y) = \fork{0}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{maxval}}{otherwise}\f] - THRESH_TRUNC = 2, //!< \f[\texttt{dst} (x,y) = \fork{\texttt{threshold}}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{src}(x,y)}{otherwise}\f] - THRESH_TOZERO = 3, //!< \f[\texttt{dst} (x,y) = \fork{\texttt{src}(x,y)}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{0}{otherwise}\f] - THRESH_TOZERO_INV = 4, //!< \f[\texttt{dst} (x,y) = \fork{0}{if \(\texttt{src}(x,y) > \texttt{thresh}\)}{\texttt{src}(x,y)}{otherwise}\f] - THRESH_MASK = 7, - THRESH_OTSU = 8, //!< flag, use Otsu algorithm to choose the optimal threshold value - THRESH_TRIANGLE = 16 //!< flag, use Triangle algorithm to choose the optimal threshold value -}; - -//! adaptive threshold algorithm -//! see cv::adaptiveThreshold -enum AdaptiveThresholdTypes { - /** the threshold value \f$T(x,y)\f$ is a mean of the \f$\texttt{blockSize} \times - \texttt{blockSize}\f$ neighborhood of \f$(x, y)\f$ minus C */ - ADAPTIVE_THRESH_MEAN_C = 0, - /** the threshold value \f$T(x, y)\f$ is a weighted sum (cross-correlation with a Gaussian - window) of the \f$\texttt{blockSize} \times \texttt{blockSize}\f$ neighborhood of \f$(x, y)\f$ - minus C . The default sigma (standard deviation) is used for the specified blockSize . See - cv::getGaussianKernel*/ - ADAPTIVE_THRESH_GAUSSIAN_C = 1 -}; - -//! cv::undistort mode -enum UndistortTypes { - PROJ_SPHERICAL_ORTHO = 0, - PROJ_SPHERICAL_EQRECT = 1 - }; - -//! class of the pixel in GrabCut algorithm -enum GrabCutClasses { - GC_BGD = 0, //!< an obvious background pixels - GC_FGD = 1, //!< an obvious foreground (object) pixel - GC_PR_BGD = 2, //!< a possible background pixel - GC_PR_FGD = 3 //!< a possible foreground pixel -}; - -//! GrabCut algorithm flags -enum GrabCutModes { - /** The function initializes the state and the mask using the provided rectangle. After that it - runs iterCount iterations of the algorithm. */ - GC_INIT_WITH_RECT = 0, - /** The function initializes the state using the provided mask. Note that GC_INIT_WITH_RECT - and GC_INIT_WITH_MASK can be combined. Then, all the pixels outside of the ROI are - automatically initialized with GC_BGD .*/ - GC_INIT_WITH_MASK = 1, - /** The value means that the algorithm should just resume. */ - GC_EVAL = 2 -}; - -//! distanceTransform algorithm flags -enum DistanceTransformLabelTypes { - /** each connected component of zeros in src (as well as all the non-zero pixels closest to the - connected component) will be assigned the same label */ - DIST_LABEL_CCOMP = 0, - /** each zero pixel (and all the non-zero pixels closest to it) gets its own label. */ - DIST_LABEL_PIXEL = 1 -}; - -//! floodfill algorithm flags -enum FloodFillFlags { - /** If set, the difference between the current pixel and seed pixel is considered. Otherwise, - the difference between neighbor pixels is considered (that is, the range is floating). */ - FLOODFILL_FIXED_RANGE = 1 << 16, - /** If set, the function does not change the image ( newVal is ignored), and only fills the - mask with the value specified in bits 8-16 of flags as described above. This option only make - sense in function variants that have the mask parameter. */ - FLOODFILL_MASK_ONLY = 1 << 17 -}; - -//! @} imgproc_misc - -//! @addtogroup imgproc_shape -//! @{ - -//! connected components algorithm output formats -enum ConnectedComponentsTypes { - CC_STAT_LEFT = 0, //!< The leftmost (x) coordinate which is the inclusive start of the bounding - //!< box in the horizontal direction. - CC_STAT_TOP = 1, //!< The topmost (y) coordinate which is the inclusive start of the bounding - //!< box in the vertical direction. - CC_STAT_WIDTH = 2, //!< The horizontal size of the bounding box - CC_STAT_HEIGHT = 3, //!< The vertical size of the bounding box - CC_STAT_AREA = 4, //!< The total area (in pixels) of the connected component - CC_STAT_MAX = 5 -}; - -//! connected components algorithm -enum ConnectedComponentsAlgorithmsTypes { - CCL_WU = 0, //!< SAUF algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity - CCL_DEFAULT = -1, //!< BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity - CCL_GRANA = 1 //!< BBDT algorithm for 8-way connectivity, SAUF algorithm for 4-way connectivity -}; - -//! mode of the contour retrieval algorithm -enum RetrievalModes { - /** retrieves only the extreme outer contours. It sets `hierarchy[i][2]=hierarchy[i][3]=-1` for - all the contours. */ - RETR_EXTERNAL = 0, - /** retrieves all of the contours without establishing any hierarchical relationships. */ - RETR_LIST = 1, - /** retrieves all of the contours and organizes them into a two-level hierarchy. At the top - level, there are external boundaries of the components. At the second level, there are - boundaries of the holes. If there is another contour inside a hole of a connected component, it - is still put at the top level. */ - RETR_CCOMP = 2, - /** retrieves all of the contours and reconstructs a full hierarchy of nested contours.*/ - RETR_TREE = 3, - RETR_FLOODFILL = 4 //!< -}; - -//! the contour approximation algorithm -enum ContourApproximationModes { - /** stores absolutely all the contour points. That is, any 2 subsequent points (x1,y1) and - (x2,y2) of the contour will be either horizontal, vertical or diagonal neighbors, that is, - max(abs(x1-x2),abs(y2-y1))==1. */ - CHAIN_APPROX_NONE = 1, - /** compresses horizontal, vertical, and diagonal segments and leaves only their end points. - For example, an up-right rectangular contour is encoded with 4 points. */ - CHAIN_APPROX_SIMPLE = 2, - /** applies one of the flavors of the Teh-Chin chain approximation algorithm @cite TehChin89 */ - CHAIN_APPROX_TC89_L1 = 3, - /** applies one of the flavors of the Teh-Chin chain approximation algorithm @cite TehChin89 */ - CHAIN_APPROX_TC89_KCOS = 4 -}; - -/** @brief Shape matching methods - -\f$A\f$ denotes object1,\f$B\f$ denotes object2 - -\f$\begin{array}{l} m^A_i = \mathrm{sign} (h^A_i) \cdot \log{h^A_i} \\ m^B_i = \mathrm{sign} (h^B_i) \cdot \log{h^B_i} \end{array}\f$ - -and \f$h^A_i, h^B_i\f$ are the Hu moments of \f$A\f$ and \f$B\f$ , respectively. -*/ -enum ShapeMatchModes { - CONTOURS_MATCH_I1 =1, //!< \f[I_1(A,B) = \sum _{i=1...7} \left | \frac{1}{m^A_i} - \frac{1}{m^B_i} \right |\f] - CONTOURS_MATCH_I2 =2, //!< \f[I_2(A,B) = \sum _{i=1...7} \left | m^A_i - m^B_i \right |\f] - CONTOURS_MATCH_I3 =3 //!< \f[I_3(A,B) = \max _{i=1...7} \frac{ \left| m^A_i - m^B_i \right| }{ \left| m^A_i \right| }\f] -}; - -//! @} imgproc_shape - -//! Variants of a Hough transform -enum HoughModes { - - /** classical or standard Hough transform. Every line is represented by two floating-point - numbers \f$(\rho, \theta)\f$ , where \f$\rho\f$ is a distance between (0,0) point and the line, - and \f$\theta\f$ is the angle between x-axis and the normal to the line. Thus, the matrix must - be (the created sequence will be) of CV_32FC2 type */ - HOUGH_STANDARD = 0, - /** probabilistic Hough transform (more efficient in case if the picture contains a few long - linear segments). It returns line segments rather than the whole line. Each segment is - represented by starting and ending points, and the matrix must be (the created sequence will - be) of the CV_32SC4 type. */ - HOUGH_PROBABILISTIC = 1, - /** multi-scale variant of the classical Hough transform. The lines are encoded the same way as - HOUGH_STANDARD. */ - HOUGH_MULTI_SCALE = 2, - HOUGH_GRADIENT = 3 //!< basically *21HT*, described in @cite Yuen90 -}; - -//! Variants of Line Segment %Detector -//! @ingroup imgproc_feature -enum LineSegmentDetectorModes { - LSD_REFINE_NONE = 0, //!< No refinement applied - LSD_REFINE_STD = 1, //!< Standard refinement is applied. E.g. breaking arches into smaller straighter line approximations. - LSD_REFINE_ADV = 2 //!< Advanced refinement. Number of false alarms is calculated, lines are - //!< refined through increase of precision, decrement in size, etc. -}; - -/** Histogram comparison methods - @ingroup imgproc_hist -*/ -enum HistCompMethods { - /** Correlation - \f[d(H_1,H_2) = \frac{\sum_I (H_1(I) - \bar{H_1}) (H_2(I) - \bar{H_2})}{\sqrt{\sum_I(H_1(I) - \bar{H_1})^2 \sum_I(H_2(I) - \bar{H_2})^2}}\f] - where - \f[\bar{H_k} = \frac{1}{N} \sum _J H_k(J)\f] - and \f$N\f$ is a total number of histogram bins. */ - HISTCMP_CORREL = 0, - /** Chi-Square - \f[d(H_1,H_2) = \sum _I \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)}\f] */ - HISTCMP_CHISQR = 1, - /** Intersection - \f[d(H_1,H_2) = \sum _I \min (H_1(I), H_2(I))\f] */ - HISTCMP_INTERSECT = 2, - /** Bhattacharyya distance - (In fact, OpenCV computes Hellinger distance, which is related to Bhattacharyya coefficient.) - \f[d(H_1,H_2) = \sqrt{1 - \frac{1}{\sqrt{\bar{H_1} \bar{H_2} N^2}} \sum_I \sqrt{H_1(I) \cdot H_2(I)}}\f] */ - HISTCMP_BHATTACHARYYA = 3, - HISTCMP_HELLINGER = HISTCMP_BHATTACHARYYA, //!< Synonym for HISTCMP_BHATTACHARYYA - /** Alternative Chi-Square - \f[d(H_1,H_2) = 2 * \sum _I \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)+H_2(I)}\f] - This alternative formula is regularly used for texture comparison. See e.g. @cite Puzicha1997 */ - HISTCMP_CHISQR_ALT = 4, - /** Kullback-Leibler divergence - \f[d(H_1,H_2) = \sum _I H_1(I) \log \left(\frac{H_1(I)}{H_2(I)}\right)\f] */ - HISTCMP_KL_DIV = 5 -}; - -/** the color conversion code -@see @ref imgproc_color_conversions -@ingroup imgproc_misc - */ -enum ColorConversionCodes { - COLOR_BGR2BGRA = 0, //!< add alpha channel to RGB or BGR image - COLOR_RGB2RGBA = COLOR_BGR2BGRA, - - COLOR_BGRA2BGR = 1, //!< remove alpha channel from RGB or BGR image - COLOR_RGBA2RGB = COLOR_BGRA2BGR, - - COLOR_BGR2RGBA = 2, //!< convert between RGB and BGR color spaces (with or without alpha channel) - COLOR_RGB2BGRA = COLOR_BGR2RGBA, - - COLOR_RGBA2BGR = 3, - COLOR_BGRA2RGB = COLOR_RGBA2BGR, - - COLOR_BGR2RGB = 4, - COLOR_RGB2BGR = COLOR_BGR2RGB, - - COLOR_BGRA2RGBA = 5, - COLOR_RGBA2BGRA = COLOR_BGRA2RGBA, - - COLOR_BGR2GRAY = 6, //!< convert between RGB/BGR and grayscale, @ref color_convert_rgb_gray "color conversions" - COLOR_RGB2GRAY = 7, - COLOR_GRAY2BGR = 8, - COLOR_GRAY2RGB = COLOR_GRAY2BGR, - COLOR_GRAY2BGRA = 9, - COLOR_GRAY2RGBA = COLOR_GRAY2BGRA, - COLOR_BGRA2GRAY = 10, - COLOR_RGBA2GRAY = 11, - - COLOR_BGR2BGR565 = 12, //!< convert between RGB/BGR and BGR565 (16-bit images) - COLOR_RGB2BGR565 = 13, - COLOR_BGR5652BGR = 14, - COLOR_BGR5652RGB = 15, - COLOR_BGRA2BGR565 = 16, - COLOR_RGBA2BGR565 = 17, - COLOR_BGR5652BGRA = 18, - COLOR_BGR5652RGBA = 19, - - COLOR_GRAY2BGR565 = 20, //!< convert between grayscale to BGR565 (16-bit images) - COLOR_BGR5652GRAY = 21, - - COLOR_BGR2BGR555 = 22, //!< convert between RGB/BGR and BGR555 (16-bit images) - COLOR_RGB2BGR555 = 23, - COLOR_BGR5552BGR = 24, - COLOR_BGR5552RGB = 25, - COLOR_BGRA2BGR555 = 26, - COLOR_RGBA2BGR555 = 27, - COLOR_BGR5552BGRA = 28, - COLOR_BGR5552RGBA = 29, - - COLOR_GRAY2BGR555 = 30, //!< convert between grayscale and BGR555 (16-bit images) - COLOR_BGR5552GRAY = 31, - - COLOR_BGR2XYZ = 32, //!< convert RGB/BGR to CIE XYZ, @ref color_convert_rgb_xyz "color conversions" - COLOR_RGB2XYZ = 33, - COLOR_XYZ2BGR = 34, - COLOR_XYZ2RGB = 35, - - COLOR_BGR2YCrCb = 36, //!< convert RGB/BGR to luma-chroma (aka YCC), @ref color_convert_rgb_ycrcb "color conversions" - COLOR_RGB2YCrCb = 37, - COLOR_YCrCb2BGR = 38, - COLOR_YCrCb2RGB = 39, - - COLOR_BGR2HSV = 40, //!< convert RGB/BGR to HSV (hue saturation value), @ref color_convert_rgb_hsv "color conversions" - COLOR_RGB2HSV = 41, - - COLOR_BGR2Lab = 44, //!< convert RGB/BGR to CIE Lab, @ref color_convert_rgb_lab "color conversions" - COLOR_RGB2Lab = 45, - - COLOR_BGR2Luv = 50, //!< convert RGB/BGR to CIE Luv, @ref color_convert_rgb_luv "color conversions" - COLOR_RGB2Luv = 51, - COLOR_BGR2HLS = 52, //!< convert RGB/BGR to HLS (hue lightness saturation), @ref color_convert_rgb_hls "color conversions" - COLOR_RGB2HLS = 53, - - COLOR_HSV2BGR = 54, //!< backward conversions to RGB/BGR - COLOR_HSV2RGB = 55, - - COLOR_Lab2BGR = 56, - COLOR_Lab2RGB = 57, - COLOR_Luv2BGR = 58, - COLOR_Luv2RGB = 59, - COLOR_HLS2BGR = 60, - COLOR_HLS2RGB = 61, - - COLOR_BGR2HSV_FULL = 66, //!< - COLOR_RGB2HSV_FULL = 67, - COLOR_BGR2HLS_FULL = 68, - COLOR_RGB2HLS_FULL = 69, - - COLOR_HSV2BGR_FULL = 70, - COLOR_HSV2RGB_FULL = 71, - COLOR_HLS2BGR_FULL = 72, - COLOR_HLS2RGB_FULL = 73, - - COLOR_LBGR2Lab = 74, - COLOR_LRGB2Lab = 75, - COLOR_LBGR2Luv = 76, - COLOR_LRGB2Luv = 77, - - COLOR_Lab2LBGR = 78, - COLOR_Lab2LRGB = 79, - COLOR_Luv2LBGR = 80, - COLOR_Luv2LRGB = 81, - - COLOR_BGR2YUV = 82, //!< convert between RGB/BGR and YUV - COLOR_RGB2YUV = 83, - COLOR_YUV2BGR = 84, - COLOR_YUV2RGB = 85, - - //! YUV 4:2:0 family to RGB - COLOR_YUV2RGB_NV12 = 90, - COLOR_YUV2BGR_NV12 = 91, - COLOR_YUV2RGB_NV21 = 92, - COLOR_YUV2BGR_NV21 = 93, - COLOR_YUV420sp2RGB = COLOR_YUV2RGB_NV21, - COLOR_YUV420sp2BGR = COLOR_YUV2BGR_NV21, - - COLOR_YUV2RGBA_NV12 = 94, - COLOR_YUV2BGRA_NV12 = 95, - COLOR_YUV2RGBA_NV21 = 96, - COLOR_YUV2BGRA_NV21 = 97, - COLOR_YUV420sp2RGBA = COLOR_YUV2RGBA_NV21, - COLOR_YUV420sp2BGRA = COLOR_YUV2BGRA_NV21, - - COLOR_YUV2RGB_YV12 = 98, - COLOR_YUV2BGR_YV12 = 99, - COLOR_YUV2RGB_IYUV = 100, - COLOR_YUV2BGR_IYUV = 101, - COLOR_YUV2RGB_I420 = COLOR_YUV2RGB_IYUV, - COLOR_YUV2BGR_I420 = COLOR_YUV2BGR_IYUV, - COLOR_YUV420p2RGB = COLOR_YUV2RGB_YV12, - COLOR_YUV420p2BGR = COLOR_YUV2BGR_YV12, - - COLOR_YUV2RGBA_YV12 = 102, - COLOR_YUV2BGRA_YV12 = 103, - COLOR_YUV2RGBA_IYUV = 104, - COLOR_YUV2BGRA_IYUV = 105, - COLOR_YUV2RGBA_I420 = COLOR_YUV2RGBA_IYUV, - COLOR_YUV2BGRA_I420 = COLOR_YUV2BGRA_IYUV, - COLOR_YUV420p2RGBA = COLOR_YUV2RGBA_YV12, - COLOR_YUV420p2BGRA = COLOR_YUV2BGRA_YV12, - - COLOR_YUV2GRAY_420 = 106, - COLOR_YUV2GRAY_NV21 = COLOR_YUV2GRAY_420, - COLOR_YUV2GRAY_NV12 = COLOR_YUV2GRAY_420, - COLOR_YUV2GRAY_YV12 = COLOR_YUV2GRAY_420, - COLOR_YUV2GRAY_IYUV = COLOR_YUV2GRAY_420, - COLOR_YUV2GRAY_I420 = COLOR_YUV2GRAY_420, - COLOR_YUV420sp2GRAY = COLOR_YUV2GRAY_420, - COLOR_YUV420p2GRAY = COLOR_YUV2GRAY_420, - - //! YUV 4:2:2 family to RGB - COLOR_YUV2RGB_UYVY = 107, - COLOR_YUV2BGR_UYVY = 108, - //COLOR_YUV2RGB_VYUY = 109, - //COLOR_YUV2BGR_VYUY = 110, - COLOR_YUV2RGB_Y422 = COLOR_YUV2RGB_UYVY, - COLOR_YUV2BGR_Y422 = COLOR_YUV2BGR_UYVY, - COLOR_YUV2RGB_UYNV = COLOR_YUV2RGB_UYVY, - COLOR_YUV2BGR_UYNV = COLOR_YUV2BGR_UYVY, - - COLOR_YUV2RGBA_UYVY = 111, - COLOR_YUV2BGRA_UYVY = 112, - //COLOR_YUV2RGBA_VYUY = 113, - //COLOR_YUV2BGRA_VYUY = 114, - COLOR_YUV2RGBA_Y422 = COLOR_YUV2RGBA_UYVY, - COLOR_YUV2BGRA_Y422 = COLOR_YUV2BGRA_UYVY, - COLOR_YUV2RGBA_UYNV = COLOR_YUV2RGBA_UYVY, - COLOR_YUV2BGRA_UYNV = COLOR_YUV2BGRA_UYVY, - - COLOR_YUV2RGB_YUY2 = 115, - COLOR_YUV2BGR_YUY2 = 116, - COLOR_YUV2RGB_YVYU = 117, - COLOR_YUV2BGR_YVYU = 118, - COLOR_YUV2RGB_YUYV = COLOR_YUV2RGB_YUY2, - COLOR_YUV2BGR_YUYV = COLOR_YUV2BGR_YUY2, - COLOR_YUV2RGB_YUNV = COLOR_YUV2RGB_YUY2, - COLOR_YUV2BGR_YUNV = COLOR_YUV2BGR_YUY2, - - COLOR_YUV2RGBA_YUY2 = 119, - COLOR_YUV2BGRA_YUY2 = 120, - COLOR_YUV2RGBA_YVYU = 121, - COLOR_YUV2BGRA_YVYU = 122, - COLOR_YUV2RGBA_YUYV = COLOR_YUV2RGBA_YUY2, - COLOR_YUV2BGRA_YUYV = COLOR_YUV2BGRA_YUY2, - COLOR_YUV2RGBA_YUNV = COLOR_YUV2RGBA_YUY2, - COLOR_YUV2BGRA_YUNV = COLOR_YUV2BGRA_YUY2, - - COLOR_YUV2GRAY_UYVY = 123, - COLOR_YUV2GRAY_YUY2 = 124, - //CV_YUV2GRAY_VYUY = CV_YUV2GRAY_UYVY, - COLOR_YUV2GRAY_Y422 = COLOR_YUV2GRAY_UYVY, - COLOR_YUV2GRAY_UYNV = COLOR_YUV2GRAY_UYVY, - COLOR_YUV2GRAY_YVYU = COLOR_YUV2GRAY_YUY2, - COLOR_YUV2GRAY_YUYV = COLOR_YUV2GRAY_YUY2, - COLOR_YUV2GRAY_YUNV = COLOR_YUV2GRAY_YUY2, - - //! alpha premultiplication - COLOR_RGBA2mRGBA = 125, - COLOR_mRGBA2RGBA = 126, - - //! RGB to YUV 4:2:0 family - COLOR_RGB2YUV_I420 = 127, - COLOR_BGR2YUV_I420 = 128, - COLOR_RGB2YUV_IYUV = COLOR_RGB2YUV_I420, - COLOR_BGR2YUV_IYUV = COLOR_BGR2YUV_I420, - - COLOR_RGBA2YUV_I420 = 129, - COLOR_BGRA2YUV_I420 = 130, - COLOR_RGBA2YUV_IYUV = COLOR_RGBA2YUV_I420, - COLOR_BGRA2YUV_IYUV = COLOR_BGRA2YUV_I420, - COLOR_RGB2YUV_YV12 = 131, - COLOR_BGR2YUV_YV12 = 132, - COLOR_RGBA2YUV_YV12 = 133, - COLOR_BGRA2YUV_YV12 = 134, - - //! Demosaicing - COLOR_BayerBG2BGR = 46, - COLOR_BayerGB2BGR = 47, - COLOR_BayerRG2BGR = 48, - COLOR_BayerGR2BGR = 49, - - COLOR_BayerBG2RGB = COLOR_BayerRG2BGR, - COLOR_BayerGB2RGB = COLOR_BayerGR2BGR, - COLOR_BayerRG2RGB = COLOR_BayerBG2BGR, - COLOR_BayerGR2RGB = COLOR_BayerGB2BGR, - - COLOR_BayerBG2GRAY = 86, - COLOR_BayerGB2GRAY = 87, - COLOR_BayerRG2GRAY = 88, - COLOR_BayerGR2GRAY = 89, - - //! Demosaicing using Variable Number of Gradients - COLOR_BayerBG2BGR_VNG = 62, - COLOR_BayerGB2BGR_VNG = 63, - COLOR_BayerRG2BGR_VNG = 64, - COLOR_BayerGR2BGR_VNG = 65, - - COLOR_BayerBG2RGB_VNG = COLOR_BayerRG2BGR_VNG, - COLOR_BayerGB2RGB_VNG = COLOR_BayerGR2BGR_VNG, - COLOR_BayerRG2RGB_VNG = COLOR_BayerBG2BGR_VNG, - COLOR_BayerGR2RGB_VNG = COLOR_BayerGB2BGR_VNG, - - //! Edge-Aware Demosaicing - COLOR_BayerBG2BGR_EA = 135, - COLOR_BayerGB2BGR_EA = 136, - COLOR_BayerRG2BGR_EA = 137, - COLOR_BayerGR2BGR_EA = 138, - - COLOR_BayerBG2RGB_EA = COLOR_BayerRG2BGR_EA, - COLOR_BayerGB2RGB_EA = COLOR_BayerGR2BGR_EA, - COLOR_BayerRG2RGB_EA = COLOR_BayerBG2BGR_EA, - COLOR_BayerGR2RGB_EA = COLOR_BayerGB2BGR_EA, - - //! Demosaicing with alpha channel - COLOR_BayerBG2BGRA = 139, - COLOR_BayerGB2BGRA = 140, - COLOR_BayerRG2BGRA = 141, - COLOR_BayerGR2BGRA = 142, - - COLOR_BayerBG2RGBA = COLOR_BayerRG2BGRA, - COLOR_BayerGB2RGBA = COLOR_BayerGR2BGRA, - COLOR_BayerRG2RGBA = COLOR_BayerBG2BGRA, - COLOR_BayerGR2RGBA = COLOR_BayerGB2BGRA, - - COLOR_COLORCVT_MAX = 143 -}; - -/** types of intersection between rectangles -@ingroup imgproc_shape -*/ -enum RectanglesIntersectTypes { - INTERSECT_NONE = 0, //!< No intersection - INTERSECT_PARTIAL = 1, //!< There is a partial intersection - INTERSECT_FULL = 2 //!< One of the rectangle is fully enclosed in the other -}; - -//! finds arbitrary template in the grayscale image using Generalized Hough Transform -class CV_EXPORTS GeneralizedHough : public Algorithm -{ -public: - //! set template to search - virtual void setTemplate(InputArray templ, Point templCenter = Point(-1, -1)) = 0; - virtual void setTemplate(InputArray edges, InputArray dx, InputArray dy, Point templCenter = Point(-1, -1)) = 0; - - //! find template on image - virtual void detect(InputArray image, OutputArray positions, OutputArray votes = noArray()) = 0; - virtual void detect(InputArray edges, InputArray dx, InputArray dy, OutputArray positions, OutputArray votes = noArray()) = 0; - - //! Canny low threshold. - virtual void setCannyLowThresh(int cannyLowThresh) = 0; - virtual int getCannyLowThresh() const = 0; - - //! Canny high threshold. - virtual void setCannyHighThresh(int cannyHighThresh) = 0; - virtual int getCannyHighThresh() const = 0; - - //! Minimum distance between the centers of the detected objects. - virtual void setMinDist(double minDist) = 0; - virtual double getMinDist() const = 0; - - //! Inverse ratio of the accumulator resolution to the image resolution. - virtual void setDp(double dp) = 0; - virtual double getDp() const = 0; - - //! Maximal size of inner buffers. - virtual void setMaxBufferSize(int maxBufferSize) = 0; - virtual int getMaxBufferSize() const = 0; -}; - -//! Ballard, D.H. (1981). Generalizing the Hough transform to detect arbitrary shapes. Pattern Recognition 13 (2): 111-122. -//! Detects position only without translation and rotation -class CV_EXPORTS GeneralizedHoughBallard : public GeneralizedHough -{ -public: - //! R-Table levels. - virtual void setLevels(int levels) = 0; - virtual int getLevels() const = 0; - - //! The accumulator threshold for the template centers at the detection stage. The smaller it is, the more false positions may be detected. - virtual void setVotesThreshold(int votesThreshold) = 0; - virtual int getVotesThreshold() const = 0; -}; - -//! Guil, N., González-Linares, J.M. and Zapata, E.L. (1999). Bidimensional shape detection using an invariant approach. Pattern Recognition 32 (6): 1025-1038. -//! Detects position, translation and rotation -class CV_EXPORTS GeneralizedHoughGuil : public GeneralizedHough -{ -public: - //! Angle difference in degrees between two points in feature. - virtual void setXi(double xi) = 0; - virtual double getXi() const = 0; - - //! Feature table levels. - virtual void setLevels(int levels) = 0; - virtual int getLevels() const = 0; - - //! Maximal difference between angles that treated as equal. - virtual void setAngleEpsilon(double angleEpsilon) = 0; - virtual double getAngleEpsilon() const = 0; - - //! Minimal rotation angle to detect in degrees. - virtual void setMinAngle(double minAngle) = 0; - virtual double getMinAngle() const = 0; - - //! Maximal rotation angle to detect in degrees. - virtual void setMaxAngle(double maxAngle) = 0; - virtual double getMaxAngle() const = 0; - - //! Angle step in degrees. - virtual void setAngleStep(double angleStep) = 0; - virtual double getAngleStep() const = 0; - - //! Angle votes threshold. - virtual void setAngleThresh(int angleThresh) = 0; - virtual int getAngleThresh() const = 0; - - //! Minimal scale to detect. - virtual void setMinScale(double minScale) = 0; - virtual double getMinScale() const = 0; - - //! Maximal scale to detect. - virtual void setMaxScale(double maxScale) = 0; - virtual double getMaxScale() const = 0; - - //! Scale step. - virtual void setScaleStep(double scaleStep) = 0; - virtual double getScaleStep() const = 0; - - //! Scale votes threshold. - virtual void setScaleThresh(int scaleThresh) = 0; - virtual int getScaleThresh() const = 0; - - //! Position votes threshold. - virtual void setPosThresh(int posThresh) = 0; - virtual int getPosThresh() const = 0; -}; - - -class CV_EXPORTS_W CLAHE : public Algorithm -{ -public: - CV_WRAP virtual void apply(InputArray src, OutputArray dst) = 0; - - CV_WRAP virtual void setClipLimit(double clipLimit) = 0; - CV_WRAP virtual double getClipLimit() const = 0; - - CV_WRAP virtual void setTilesGridSize(Size tileGridSize) = 0; - CV_WRAP virtual Size getTilesGridSize() const = 0; - - CV_WRAP virtual void collectGarbage() = 0; -}; - - -//! @addtogroup imgproc_subdiv2d -//! @{ - -class CV_EXPORTS_W Subdiv2D -{ -public: - /** Subdiv2D point location cases */ - enum { PTLOC_ERROR = -2, //!< Point location error - PTLOC_OUTSIDE_RECT = -1, //!< Point outside the subdivision bounding rect - PTLOC_INSIDE = 0, //!< Point inside some facet - PTLOC_VERTEX = 1, //!< Point coincides with one of the subdivision vertices - PTLOC_ON_EDGE = 2 //!< Point on some edge - }; - - /** Subdiv2D edge type navigation (see: getEdge()) */ - enum { NEXT_AROUND_ORG = 0x00, - NEXT_AROUND_DST = 0x22, - PREV_AROUND_ORG = 0x11, - PREV_AROUND_DST = 0x33, - NEXT_AROUND_LEFT = 0x13, - NEXT_AROUND_RIGHT = 0x31, - PREV_AROUND_LEFT = 0x20, - PREV_AROUND_RIGHT = 0x02 - }; - - /** creates an empty Subdiv2D object. - To create a new empty Delaunay subdivision you need to use the initDelaunay() function. - */ - CV_WRAP Subdiv2D(); - - /** @overload - - @param rect Rectangle that includes all of the 2D points that are to be added to the subdivision. - - The function creates an empty Delaunay subdivision where 2D points can be added using the function - insert() . All of the points to be added must be within the specified rectangle, otherwise a runtime - error is raised. - */ - CV_WRAP Subdiv2D(Rect rect); - - /** @brief Creates a new empty Delaunay subdivision - - @param rect Rectangle that includes all of the 2D points that are to be added to the subdivision. - - */ - CV_WRAP void initDelaunay(Rect rect); - - /** @brief Insert a single point into a Delaunay triangulation. - - @param pt Point to insert. - - The function inserts a single point into a subdivision and modifies the subdivision topology - appropriately. If a point with the same coordinates exists already, no new point is added. - @returns the ID of the point. - - @note If the point is outside of the triangulation specified rect a runtime error is raised. - */ - CV_WRAP int insert(Point2f pt); - - /** @brief Insert multiple points into a Delaunay triangulation. - - @param ptvec Points to insert. - - The function inserts a vector of points into a subdivision and modifies the subdivision topology - appropriately. - */ - CV_WRAP void insert(const std::vector& ptvec); - - /** @brief Returns the location of a point within a Delaunay triangulation. - - @param pt Point to locate. - @param edge Output edge that the point belongs to or is located to the right of it. - @param vertex Optional output vertex the input point coincides with. - - The function locates the input point within the subdivision and gives one of the triangle edges - or vertices. - - @returns an integer which specify one of the following five cases for point location: - - The point falls into some facet. The function returns PTLOC_INSIDE and edge will contain one of - edges of the facet. - - The point falls onto the edge. The function returns PTLOC_ON_EDGE and edge will contain this edge. - - The point coincides with one of the subdivision vertices. The function returns PTLOC_VERTEX and - vertex will contain a pointer to the vertex. - - The point is outside the subdivision reference rectangle. The function returns PTLOC_OUTSIDE_RECT - and no pointers are filled. - - One of input arguments is invalid. A runtime error is raised or, if silent or "parent" error - processing mode is selected, CV_PTLOC_ERROR is returned. - */ - CV_WRAP int locate(Point2f pt, CV_OUT int& edge, CV_OUT int& vertex); - - /** @brief Finds the subdivision vertex closest to the given point. - - @param pt Input point. - @param nearestPt Output subdivision vertex point. - - The function is another function that locates the input point within the subdivision. It finds the - subdivision vertex that is the closest to the input point. It is not necessarily one of vertices - of the facet containing the input point, though the facet (located using locate() ) is used as a - starting point. - - @returns vertex ID. - */ - CV_WRAP int findNearest(Point2f pt, CV_OUT Point2f* nearestPt = 0); - - /** @brief Returns a list of all edges. - - @param edgeList Output vector. - - The function gives each edge as a 4 numbers vector, where each two are one of the edge - vertices. i.e. org_x = v[0], org_y = v[1], dst_x = v[2], dst_y = v[3]. - */ - CV_WRAP void getEdgeList(CV_OUT std::vector& edgeList) const; - - /** @brief Returns a list of the leading edge ID connected to each triangle. - - @param leadingEdgeList Output vector. - - The function gives one edge ID for each triangle. - */ - CV_WRAP void getLeadingEdgeList(CV_OUT std::vector& leadingEdgeList) const; - - /** @brief Returns a list of all triangles. - - @param triangleList Output vector. - - The function gives each triangle as a 6 numbers vector, where each two are one of the triangle - vertices. i.e. p1_x = v[0], p1_y = v[1], p2_x = v[2], p2_y = v[3], p3_x = v[4], p3_y = v[5]. - */ - CV_WRAP void getTriangleList(CV_OUT std::vector& triangleList) const; - - /** @brief Returns a list of all Voroni facets. - - @param idx Vector of vertices IDs to consider. For all vertices you can pass empty vector. - @param facetList Output vector of the Voroni facets. - @param facetCenters Output vector of the Voroni facets center points. - - */ - CV_WRAP void getVoronoiFacetList(const std::vector& idx, CV_OUT std::vector >& facetList, - CV_OUT std::vector& facetCenters); - - /** @brief Returns vertex location from vertex ID. - - @param vertex vertex ID. - @param firstEdge Optional. The first edge ID which is connected to the vertex. - @returns vertex (x,y) - - */ - CV_WRAP Point2f getVertex(int vertex, CV_OUT int* firstEdge = 0) const; - - /** @brief Returns one of the edges related to the given edge. - - @param edge Subdivision edge ID. - @param nextEdgeType Parameter specifying which of the related edges to return. - The following values are possible: - - NEXT_AROUND_ORG next around the edge origin ( eOnext on the picture below if e is the input edge) - - NEXT_AROUND_DST next around the edge vertex ( eDnext ) - - PREV_AROUND_ORG previous around the edge origin (reversed eRnext ) - - PREV_AROUND_DST previous around the edge destination (reversed eLnext ) - - NEXT_AROUND_LEFT next around the left facet ( eLnext ) - - NEXT_AROUND_RIGHT next around the right facet ( eRnext ) - - PREV_AROUND_LEFT previous around the left facet (reversed eOnext ) - - PREV_AROUND_RIGHT previous around the right facet (reversed eDnext ) - - ![sample output](pics/quadedge.png) - - @returns edge ID related to the input edge. - */ - CV_WRAP int getEdge( int edge, int nextEdgeType ) const; - - /** @brief Returns next edge around the edge origin. - - @param edge Subdivision edge ID. - - @returns an integer which is next edge ID around the edge origin: eOnext on the - picture above if e is the input edge). - */ - CV_WRAP int nextEdge(int edge) const; - - /** @brief Returns another edge of the same quad-edge. - - @param edge Subdivision edge ID. - @param rotate Parameter specifying which of the edges of the same quad-edge as the input - one to return. The following values are possible: - - 0 - the input edge ( e on the picture below if e is the input edge) - - 1 - the rotated edge ( eRot ) - - 2 - the reversed edge (reversed e (in green)) - - 3 - the reversed rotated edge (reversed eRot (in green)) - - @returns one of the edges ID of the same quad-edge as the input edge. - */ - CV_WRAP int rotateEdge(int edge, int rotate) const; - CV_WRAP int symEdge(int edge) const; - - /** @brief Returns the edge origin. - - @param edge Subdivision edge ID. - @param orgpt Output vertex location. - - @returns vertex ID. - */ - CV_WRAP int edgeOrg(int edge, CV_OUT Point2f* orgpt = 0) const; - - /** @brief Returns the edge destination. - - @param edge Subdivision edge ID. - @param dstpt Output vertex location. - - @returns vertex ID. - */ - CV_WRAP int edgeDst(int edge, CV_OUT Point2f* dstpt = 0) const; - -protected: - int newEdge(); - void deleteEdge(int edge); - int newPoint(Point2f pt, bool isvirtual, int firstEdge = 0); - void deletePoint(int vtx); - void setEdgePoints( int edge, int orgPt, int dstPt ); - void splice( int edgeA, int edgeB ); - int connectEdges( int edgeA, int edgeB ); - void swapEdges( int edge ); - int isRightOf(Point2f pt, int edge) const; - void calcVoronoi(); - void clearVoronoi(); - void checkSubdiv() const; - - struct CV_EXPORTS Vertex - { - Vertex(); - Vertex(Point2f pt, bool _isvirtual, int _firstEdge=0); - bool isvirtual() const; - bool isfree() const; - - int firstEdge; - int type; - Point2f pt; - }; - - struct CV_EXPORTS QuadEdge - { - QuadEdge(); - QuadEdge(int edgeidx); - bool isfree() const; - - int next[4]; - int pt[4]; - }; - - //! All of the vertices - std::vector vtx; - //! All of the edges - std::vector qedges; - int freeQEdge; - int freePoint; - bool validGeometry; - - int recentEdge; - //! Top left corner of the bounding rect - Point2f topLeft; - //! Bottom right corner of the bounding rect - Point2f bottomRight; -}; - -//! @} imgproc_subdiv2d - -//! @addtogroup imgproc_feature -//! @{ - -/** @example lsd_lines.cpp -An example using the LineSegmentDetector -\image html building_lsd.png "Sample output image" width=434 height=300 -*/ - -/** @brief Line segment detector class - -following the algorithm described at @cite Rafael12 . -*/ -class CV_EXPORTS_W LineSegmentDetector : public Algorithm -{ -public: - - /** @brief Finds lines in the input image. - - This is the output of the default parameters of the algorithm on the above shown image. - - ![image](pics/building_lsd.png) - - @param _image A grayscale (CV_8UC1) input image. If only a roi needs to be selected, use: - `lsd_ptr-\>detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);` - @param _lines A vector of Vec4i or Vec4f elements specifying the beginning and ending point of a line. Where - Vec4i/Vec4f is (x1, y1, x2, y2), point 1 is the start, point 2 - end. Returned lines are strictly - oriented depending on the gradient. - @param width Vector of widths of the regions, where the lines are found. E.g. Width of line. - @param prec Vector of precisions with which the lines are found. - @param nfa Vector containing number of false alarms in the line region, with precision of 10%. The - bigger the value, logarithmically better the detection. - - -1 corresponds to 10 mean false alarms - - 0 corresponds to 1 mean false alarm - - 1 corresponds to 0.1 mean false alarms - This vector will be calculated only when the objects type is LSD_REFINE_ADV. - */ - CV_WRAP virtual void detect(InputArray _image, OutputArray _lines, - OutputArray width = noArray(), OutputArray prec = noArray(), - OutputArray nfa = noArray()) = 0; - - /** @brief Draws the line segments on a given image. - @param _image The image, where the lines will be drawn. Should be bigger or equal to the image, - where the lines were found. - @param lines A vector of the lines that needed to be drawn. - */ - CV_WRAP virtual void drawSegments(InputOutputArray _image, InputArray lines) = 0; - - /** @brief Draws two groups of lines in blue and red, counting the non overlapping (mismatching) pixels. - - @param size The size of the image, where lines1 and lines2 were found. - @param lines1 The first group of lines that needs to be drawn. It is visualized in blue color. - @param lines2 The second group of lines. They visualized in red color. - @param _image Optional image, where the lines will be drawn. The image should be color(3-channel) - in order for lines1 and lines2 to be drawn in the above mentioned colors. - */ - CV_WRAP virtual int compareSegments(const Size& size, InputArray lines1, InputArray lines2, InputOutputArray _image = noArray()) = 0; - - virtual ~LineSegmentDetector() { } -}; - -/** @brief Creates a smart pointer to a LineSegmentDetector object and initializes it. - -The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want -to edit those, as to tailor it for their own application. - -@param _refine The way found lines will be refined, see cv::LineSegmentDetectorModes -@param _scale The scale of the image that will be used to find the lines. Range (0..1]. -@param _sigma_scale Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale. -@param _quant Bound to the quantization error on the gradient norm. -@param _ang_th Gradient angle tolerance in degrees. -@param _log_eps Detection threshold: -log10(NFA) \> log_eps. Used only when advance refinement -is chosen. -@param _density_th Minimal density of aligned region points in the enclosing rectangle. -@param _n_bins Number of bins in pseudo-ordering of gradient modulus. - */ -CV_EXPORTS_W Ptr createLineSegmentDetector( - int _refine = LSD_REFINE_STD, double _scale = 0.8, - double _sigma_scale = 0.6, double _quant = 2.0, double _ang_th = 22.5, - double _log_eps = 0, double _density_th = 0.7, int _n_bins = 1024); - -//! @} imgproc_feature - -//! @addtogroup imgproc_filter -//! @{ - -/** @brief Returns Gaussian filter coefficients. - -The function computes and returns the \f$\texttt{ksize} \times 1\f$ matrix of Gaussian filter -coefficients: - -\f[G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)},\f] - -where \f$i=0..\texttt{ksize}-1\f$ and \f$\alpha\f$ is the scale factor chosen so that \f$\sum_i G_i=1\f$. - -Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize -smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly. -You may also use the higher-level GaussianBlur. -@param ksize Aperture size. It should be odd ( \f$\texttt{ksize} \mod 2 = 1\f$ ) and positive. -@param sigma Gaussian standard deviation. If it is non-positive, it is computed from ksize as -`sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`. -@param ktype Type of filter coefficients. It can be CV_32F or CV_64F . -@sa sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur - */ -CV_EXPORTS_W Mat getGaussianKernel( int ksize, double sigma, int ktype = CV_64F ); - -/** @brief Returns filter coefficients for computing spatial image derivatives. - -The function computes and returns the filter coefficients for spatial image derivatives. When -`ksize=CV_SCHARR`, the Scharr \f$3 \times 3\f$ kernels are generated (see cv::Scharr). Otherwise, Sobel -kernels are generated (see cv::Sobel). The filters are normally passed to sepFilter2D or to - -@param kx Output matrix of row filter coefficients. It has the type ktype . -@param ky Output matrix of column filter coefficients. It has the type ktype . -@param dx Derivative order in respect of x. -@param dy Derivative order in respect of y. -@param ksize Aperture size. It can be CV_SCHARR, 1, 3, 5, or 7. -@param normalize Flag indicating whether to normalize (scale down) the filter coefficients or not. -Theoretically, the coefficients should have the denominator \f$=2^{ksize*2-dx-dy-2}\f$. If you are -going to filter floating-point images, you are likely to use the normalized kernels. But if you -compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve -all the fractional bits, you may want to set normalize=false . -@param ktype Type of filter coefficients. It can be CV_32f or CV_64F . - */ -CV_EXPORTS_W void getDerivKernels( OutputArray kx, OutputArray ky, - int dx, int dy, int ksize, - bool normalize = false, int ktype = CV_32F ); - -/** @brief Returns Gabor filter coefficients. - -For more details about gabor filter equations and parameters, see: [Gabor -Filter](http://en.wikipedia.org/wiki/Gabor_filter). - -@param ksize Size of the filter returned. -@param sigma Standard deviation of the gaussian envelope. -@param theta Orientation of the normal to the parallel stripes of a Gabor function. -@param lambd Wavelength of the sinusoidal factor. -@param gamma Spatial aspect ratio. -@param psi Phase offset. -@param ktype Type of filter coefficients. It can be CV_32F or CV_64F . - */ -CV_EXPORTS_W Mat getGaborKernel( Size ksize, double sigma, double theta, double lambd, - double gamma, double psi = CV_PI*0.5, int ktype = CV_64F ); - -//! returns "magic" border value for erosion and dilation. It is automatically transformed to Scalar::all(-DBL_MAX) for dilation. -static inline Scalar morphologyDefaultBorderValue() { return Scalar::all(DBL_MAX); } - -/** @brief Returns a structuring element of the specified size and shape for morphological operations. - -The function constructs and returns the structuring element that can be further passed to cv::erode, -cv::dilate or cv::morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as -the structuring element. - -@param shape Element shape that could be one of cv::MorphShapes -@param ksize Size of the structuring element. -@param anchor Anchor position within the element. The default value \f$(-1, -1)\f$ means that the -anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor -position. In other cases the anchor just regulates how much the result of the morphological -operation is shifted. - */ -CV_EXPORTS_W Mat getStructuringElement(int shape, Size ksize, Point anchor = Point(-1,-1)); - -/** @example Smoothing.cpp -Sample code for simple filters -![Sample screenshot](Smoothing_Tutorial_Result_Median_Filter.jpg) -Check @ref tutorial_gausian_median_blur_bilateral_filter "the corresponding tutorial" for more details - */ -/** @brief Blurs an image using the median filter. - -The function smoothes an image using the median filter with the \f$\texttt{ksize} \times -\texttt{ksize}\f$ aperture. Each channel of a multi-channel image is processed independently. -In-place operation is supported. - -@note The median filter uses BORDER_REPLICATE internally to cope with border pixels, see cv::BorderTypes - -@param src input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be -CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U. -@param dst destination array of the same size and type as src. -@param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... -@sa bilateralFilter, blur, boxFilter, GaussianBlur - */ -CV_EXPORTS_W void medianBlur( InputArray src, OutputArray dst, int ksize ); - -/** @brief Blurs an image using a Gaussian filter. - -The function convolves the source image with the specified Gaussian kernel. In-place filtering is -supported. - -@param src input image; the image can have any number of channels, which are processed -independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -@param dst output image of the same size and type as src. -@param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be -positive and odd. Or, they can be zero's and then they are computed from sigma. -@param sigmaX Gaussian kernel standard deviation in X direction. -@param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be -equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, -respectively (see cv::getGaussianKernel for details); to fully control the result regardless of -possible future modifications of all this semantics, it is recommended to specify all of ksize, -sigmaX, and sigmaY. -@param borderType pixel extrapolation method, see cv::BorderTypes - -@sa sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur - */ -CV_EXPORTS_W void GaussianBlur( InputArray src, OutputArray dst, Size ksize, - double sigmaX, double sigmaY = 0, - int borderType = BORDER_DEFAULT ); - -/** @brief Applies the bilateral filter to an image. - -The function applies bilateral filtering to the input image, as described in -http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html -bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is -very slow compared to most filters. - -_Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (\< -10), the filter will not have much effect, whereas if they are large (\> 150), they will have a very -strong effect, making the image look "cartoonish". - -_Filter size_: Large filters (d \> 5) are very slow, so it is recommended to use d=5 for real-time -applications, and perhaps d=9 for offline applications that need heavy noise filtering. - -This filter does not work inplace. -@param src Source 8-bit or floating-point, 1-channel or 3-channel image. -@param dst Destination image of the same size and type as src . -@param d Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, -it is computed from sigmaSpace. -@param sigmaColor Filter sigma in the color space. A larger value of the parameter means that -farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting -in larger areas of semi-equal color. -@param sigmaSpace Filter sigma in the coordinate space. A larger value of the parameter means that -farther pixels will influence each other as long as their colors are close enough (see sigmaColor -). When d\>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is -proportional to sigmaSpace. -@param borderType border mode used to extrapolate pixels outside of the image, see cv::BorderTypes - */ -CV_EXPORTS_W void bilateralFilter( InputArray src, OutputArray dst, int d, - double sigmaColor, double sigmaSpace, - int borderType = BORDER_DEFAULT ); - -/** @brief Blurs an image using the box filter. - -The function smooths an image using the kernel: - -\f[\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\f] - -where - -\f[\alpha = \fork{\frac{1}{\texttt{ksize.width*ksize.height}}}{when \texttt{normalize=true}}{1}{otherwise}\f] - -Unnormalized box filter is useful for computing various integral characteristics over each pixel -neighborhood, such as covariance matrices of image derivatives (used in dense optical flow -algorithms, and so on). If you need to compute pixel sums over variable-size windows, use cv::integral. - -@param src input image. -@param dst output image of the same size and type as src. -@param ddepth the output image depth (-1 to use src.depth()). -@param ksize blurring kernel size. -@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel -center. -@param normalize flag, specifying whether the kernel is normalized by its area or not. -@param borderType border mode used to extrapolate pixels outside of the image, see cv::BorderTypes -@sa blur, bilateralFilter, GaussianBlur, medianBlur, integral - */ -CV_EXPORTS_W void boxFilter( InputArray src, OutputArray dst, int ddepth, - Size ksize, Point anchor = Point(-1,-1), - bool normalize = true, - int borderType = BORDER_DEFAULT ); - -/** @brief Calculates the normalized sum of squares of the pixel values overlapping the filter. - -For every pixel \f$ (x, y) \f$ in the source image, the function calculates the sum of squares of those neighboring -pixel values which overlap the filter placed over the pixel \f$ (x, y) \f$. - -The unnormalized square box filter can be useful in computing local image statistics such as the the local -variance and standard deviation around the neighborhood of a pixel. - -@param _src input image -@param _dst output image of the same size and type as _src -@param ddepth the output image depth (-1 to use src.depth()) -@param ksize kernel size -@param anchor kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel -center. -@param normalize flag, specifying whether the kernel is to be normalized by it's area or not. -@param borderType border mode used to extrapolate pixels outside of the image, see cv::BorderTypes -@sa boxFilter -*/ -CV_EXPORTS_W void sqrBoxFilter( InputArray _src, OutputArray _dst, int ddepth, - Size ksize, Point anchor = Point(-1, -1), - bool normalize = true, - int borderType = BORDER_DEFAULT ); - -/** @brief Blurs an image using the normalized box filter. - -The function smooths an image using the kernel: - -\f[\texttt{K} = \frac{1}{\texttt{ksize.width*ksize.height}} \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \end{bmatrix}\f] - -The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), -anchor, true, borderType)`. - -@param src input image; it can have any number of channels, which are processed independently, but -the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -@param dst output image of the same size and type as src. -@param ksize blurring kernel size. -@param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel -center. -@param borderType border mode used to extrapolate pixels outside of the image, see cv::BorderTypes -@sa boxFilter, bilateralFilter, GaussianBlur, medianBlur - */ -CV_EXPORTS_W void blur( InputArray src, OutputArray dst, - Size ksize, Point anchor = Point(-1,-1), - int borderType = BORDER_DEFAULT ); - -/** @brief Convolves an image with the kernel. - -The function applies an arbitrary linear filter to an image. In-place operation is supported. When -the aperture is partially outside the image, the function interpolates outlier pixel values -according to the specified border mode. - -The function does actually compute correlation, not the convolution: - -\f[\texttt{dst} (x,y) = \sum _{ \stackrel{0\leq x' < \texttt{kernel.cols},}{0\leq y' < \texttt{kernel.rows}} } \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\f] - -That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip -the kernel using cv::flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows - -anchor.y - 1)`. - -The function uses the DFT-based algorithm in case of sufficiently large kernels (~`11 x 11` or -larger) and the direct algorithm for small kernels. - -@param src input image. -@param dst output image of the same size and the same number of channels as src. -@param ddepth desired depth of the destination image, see @ref filter_depths "combinations" -@param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point -matrix; if you want to apply different kernels to different channels, split the image into -separate color planes using split and process them individually. -@param anchor anchor of the kernel that indicates the relative position of a filtered point within -the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor -is at the kernel center. -@param delta optional value added to the filtered pixels before storing them in dst. -@param borderType pixel extrapolation method, see cv::BorderTypes -@sa sepFilter2D, dft, matchTemplate - */ -CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth, - InputArray kernel, Point anchor = Point(-1,-1), - double delta = 0, int borderType = BORDER_DEFAULT ); - -/** @brief Applies a separable linear filter to an image. - -The function applies a separable linear filter to the image. That is, first, every row of src is -filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D -kernel kernelY. The final result shifted by delta is stored in dst . - -@param src Source image. -@param dst Destination image of the same size and the same number of channels as src . -@param ddepth Destination image depth, see @ref filter_depths "combinations" -@param kernelX Coefficients for filtering each row. -@param kernelY Coefficients for filtering each column. -@param anchor Anchor position within the kernel. The default value \f$(-1,-1)\f$ means that the anchor -is at the kernel center. -@param delta Value added to the filtered results before storing them. -@param borderType Pixel extrapolation method, see cv::BorderTypes -@sa filter2D, Sobel, GaussianBlur, boxFilter, blur - */ -CV_EXPORTS_W void sepFilter2D( InputArray src, OutputArray dst, int ddepth, - InputArray kernelX, InputArray kernelY, - Point anchor = Point(-1,-1), - double delta = 0, int borderType = BORDER_DEFAULT ); - -/** @example Sobel_Demo.cpp -Sample code using Sobel and/or Scharr OpenCV functions to make a simple Edge Detector -![Sample screenshot](Sobel_Derivatives_Tutorial_Result.jpg) -Check @ref tutorial_sobel_derivatives "the corresponding tutorial" for more details - */ -/** @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator. - -In all cases except one, the \f$\texttt{ksize} \times \texttt{ksize}\f$ separable kernel is used to -calculate the derivative. When \f$\texttt{ksize = 1}\f$, the \f$3 \times 1\f$ or \f$1 \times 3\f$ -kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first -or the second x- or y- derivatives. - -There is also the special value `ksize = CV_SCHARR (-1)` that corresponds to the \f$3\times3\f$ Scharr -filter that may give more accurate results than the \f$3\times3\f$ Sobel. The Scharr aperture is - -\f[\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\f] - -for the x-derivative, or transposed for the y-derivative. - -The function calculates an image derivative by convolving the image with the appropriate kernel: - -\f[\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\f] - -The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less -resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3) -or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first -case corresponds to a kernel of: - -\f[\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\f] - -The second case corresponds to a kernel of: - -\f[\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\f] - -@param src input image. -@param dst output image of the same size and the same number of channels as src . -@param ddepth output image depth, see @ref filter_depths "combinations"; in the case of - 8-bit input images it will result in truncated derivatives. -@param dx order of the derivative x. -@param dy order of the derivative y. -@param ksize size of the extended Sobel kernel; it must be 1, 3, 5, or 7. -@param scale optional scale factor for the computed derivative values; by default, no scaling is -applied (see cv::getDerivKernels for details). -@param delta optional delta value that is added to the results prior to storing them in dst. -@param borderType pixel extrapolation method, see cv::BorderTypes -@sa Scharr, Laplacian, sepFilter2D, filter2D, GaussianBlur, cartToPolar - */ -CV_EXPORTS_W void Sobel( InputArray src, OutputArray dst, int ddepth, - int dx, int dy, int ksize = 3, - double scale = 1, double delta = 0, - int borderType = BORDER_DEFAULT ); - -/** @brief Calculates the first order image derivative in both x and y using a Sobel operator - -Equivalent to calling: - -@code -Sobel( src, dx, CV_16SC1, 1, 0, 3 ); -Sobel( src, dy, CV_16SC1, 0, 1, 3 ); -@endcode - -@param src input image. -@param dx output image with first-order derivative in x. -@param dy output image with first-order derivative in y. -@param ksize size of Sobel kernel. It must be 3. -@param borderType pixel extrapolation method, see cv::BorderTypes - -@sa Sobel - */ - -CV_EXPORTS_W void spatialGradient( InputArray src, OutputArray dx, - OutputArray dy, int ksize = 3, - int borderType = BORDER_DEFAULT ); - -/** @brief Calculates the first x- or y- image derivative using Scharr operator. - -The function computes the first x- or y- spatial image derivative using the Scharr operator. The -call - -\f[\texttt{Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)}\f] - -is equivalent to - -\f[\texttt{Sobel(src, dst, ddepth, dx, dy, CV\_SCHARR, scale, delta, borderType)} .\f] - -@param src input image. -@param dst output image of the same size and the same number of channels as src. -@param ddepth output image depth, see @ref filter_depths "combinations" -@param dx order of the derivative x. -@param dy order of the derivative y. -@param scale optional scale factor for the computed derivative values; by default, no scaling is -applied (see getDerivKernels for details). -@param delta optional delta value that is added to the results prior to storing them in dst. -@param borderType pixel extrapolation method, see cv::BorderTypes -@sa cartToPolar - */ -CV_EXPORTS_W void Scharr( InputArray src, OutputArray dst, int ddepth, - int dx, int dy, double scale = 1, double delta = 0, - int borderType = BORDER_DEFAULT ); - -/** @example laplace.cpp - An example using Laplace transformations for edge detection -*/ - -/** @brief Calculates the Laplacian of an image. - -The function calculates the Laplacian of the source image by adding up the second x and y -derivatives calculated using the Sobel operator: - -\f[\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\f] - -This is done when `ksize > 1`. When `ksize == 1`, the Laplacian is computed by filtering the image -with the following \f$3 \times 3\f$ aperture: - -\f[\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\f] - -@param src Source image. -@param dst Destination image of the same size and the same number of channels as src . -@param ddepth Desired depth of the destination image. -@param ksize Aperture size used to compute the second-derivative filters. See getDerivKernels for -details. The size must be positive and odd. -@param scale Optional scale factor for the computed Laplacian values. By default, no scaling is -applied. See getDerivKernels for details. -@param delta Optional delta value that is added to the results prior to storing them in dst . -@param borderType Pixel extrapolation method, see cv::BorderTypes -@sa Sobel, Scharr - */ -CV_EXPORTS_W void Laplacian( InputArray src, OutputArray dst, int ddepth, - int ksize = 1, double scale = 1, double delta = 0, - int borderType = BORDER_DEFAULT ); - -//! @} imgproc_filter - -//! @addtogroup imgproc_feature -//! @{ - -/** @example edge.cpp - This program demonstrates usage of the Canny edge detector - - Check @ref tutorial_canny_detector "the corresponding tutorial" for more details -*/ - -/** @brief Finds edges in an image using the Canny algorithm @cite Canny86 . - -The function finds edges in the input image and marks them in the output map edges using the -Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The -largest value is used to find initial segments of strong edges. See - - -@param image 8-bit input image. -@param edges output edge map; single channels 8-bit image, which has the same size as image . -@param threshold1 first threshold for the hysteresis procedure. -@param threshold2 second threshold for the hysteresis procedure. -@param apertureSize aperture size for the Sobel operator. -@param L2gradient a flag, indicating whether a more accurate \f$L_2\f$ norm -\f$=\sqrt{(dI/dx)^2 + (dI/dy)^2}\f$ should be used to calculate the image gradient magnitude ( -L2gradient=true ), or whether the default \f$L_1\f$ norm \f$=|dI/dx|+|dI/dy|\f$ is enough ( -L2gradient=false ). - */ -CV_EXPORTS_W void Canny( InputArray image, OutputArray edges, - double threshold1, double threshold2, - int apertureSize = 3, bool L2gradient = false ); - -/** \overload - -Finds edges in an image using the Canny algorithm with custom image gradient. - -@param dx 16-bit x derivative of input image (CV_16SC1 or CV_16SC3). -@param dy 16-bit y derivative of input image (same type as dx). -@param edges,threshold1,threshold2,L2gradient See cv::Canny - */ -CV_EXPORTS_W void Canny( InputArray dx, InputArray dy, - OutputArray edges, - double threshold1, double threshold2, - bool L2gradient = false ); - -/** @brief Calculates the minimal eigenvalue of gradient matrices for corner detection. - -The function is similar to cornerEigenValsAndVecs but it calculates and stores only the minimal -eigenvalue of the covariance matrix of derivatives, that is, \f$\min(\lambda_1, \lambda_2)\f$ in terms -of the formulae in the cornerEigenValsAndVecs description. - -@param src Input single-channel 8-bit or floating-point image. -@param dst Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as -src . -@param blockSize Neighborhood size (see the details on cornerEigenValsAndVecs ). -@param ksize Aperture parameter for the Sobel operator. -@param borderType Pixel extrapolation method. See cv::BorderTypes. - */ -CV_EXPORTS_W void cornerMinEigenVal( InputArray src, OutputArray dst, - int blockSize, int ksize = 3, - int borderType = BORDER_DEFAULT ); - -/** @brief Harris corner detector. - -The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and -cornerEigenValsAndVecs , for each pixel \f$(x, y)\f$ it calculates a \f$2\times2\f$ gradient covariance -matrix \f$M^{(x,y)}\f$ over a \f$\texttt{blockSize} \times \texttt{blockSize}\f$ neighborhood. Then, it -computes the following characteristic: - -\f[\texttt{dst} (x,y) = \mathrm{det} M^{(x,y)} - k \cdot \left ( \mathrm{tr} M^{(x,y)} \right )^2\f] - -Corners in the image can be found as the local maxima of this response map. - -@param src Input single-channel 8-bit or floating-point image. -@param dst Image to store the Harris detector responses. It has the type CV_32FC1 and the same -size as src . -@param blockSize Neighborhood size (see the details on cornerEigenValsAndVecs ). -@param ksize Aperture parameter for the Sobel operator. -@param k Harris detector free parameter. See the formula below. -@param borderType Pixel extrapolation method. See cv::BorderTypes. - */ -CV_EXPORTS_W void cornerHarris( InputArray src, OutputArray dst, int blockSize, - int ksize, double k, - int borderType = BORDER_DEFAULT ); - -/** @brief Calculates eigenvalues and eigenvectors of image blocks for corner detection. - -For every pixel \f$p\f$ , the function cornerEigenValsAndVecs considers a blockSize \f$\times\f$ blockSize -neighborhood \f$S(p)\f$ . It calculates the covariation matrix of derivatives over the neighborhood as: - -\f[M = \begin{bmatrix} \sum _{S(p)}(dI/dx)^2 & \sum _{S(p)}dI/dx dI/dy \\ \sum _{S(p)}dI/dx dI/dy & \sum _{S(p)}(dI/dy)^2 \end{bmatrix}\f] - -where the derivatives are computed using the Sobel operator. - -After that, it finds eigenvectors and eigenvalues of \f$M\f$ and stores them in the destination image as -\f$(\lambda_1, \lambda_2, x_1, y_1, x_2, y_2)\f$ where - -- \f$\lambda_1, \lambda_2\f$ are the non-sorted eigenvalues of \f$M\f$ -- \f$x_1, y_1\f$ are the eigenvectors corresponding to \f$\lambda_1\f$ -- \f$x_2, y_2\f$ are the eigenvectors corresponding to \f$\lambda_2\f$ - -The output of the function can be used for robust edge or corner detection. - -@param src Input single-channel 8-bit or floating-point image. -@param dst Image to store the results. It has the same size as src and the type CV_32FC(6) . -@param blockSize Neighborhood size (see details below). -@param ksize Aperture parameter for the Sobel operator. -@param borderType Pixel extrapolation method. See cv::BorderTypes. - -@sa cornerMinEigenVal, cornerHarris, preCornerDetect - */ -CV_EXPORTS_W void cornerEigenValsAndVecs( InputArray src, OutputArray dst, - int blockSize, int ksize, - int borderType = BORDER_DEFAULT ); - -/** @brief Calculates a feature map for corner detection. - -The function calculates the complex spatial derivative-based function of the source image - -\f[\texttt{dst} = (D_x \texttt{src} )^2 \cdot D_{yy} \texttt{src} + (D_y \texttt{src} )^2 \cdot D_{xx} \texttt{src} - 2 D_x \texttt{src} \cdot D_y \texttt{src} \cdot D_{xy} \texttt{src}\f] - -where \f$D_x\f$,\f$D_y\f$ are the first image derivatives, \f$D_{xx}\f$,\f$D_{yy}\f$ are the second image -derivatives, and \f$D_{xy}\f$ is the mixed derivative. - -The corners can be found as local maximums of the functions, as shown below: -@code - Mat corners, dilated_corners; - preCornerDetect(image, corners, 3); - // dilation with 3x3 rectangular structuring element - dilate(corners, dilated_corners, Mat(), 1); - Mat corner_mask = corners == dilated_corners; -@endcode - -@param src Source single-channel 8-bit of floating-point image. -@param dst Output image that has the type CV_32F and the same size as src . -@param ksize %Aperture size of the Sobel . -@param borderType Pixel extrapolation method. See cv::BorderTypes. - */ -CV_EXPORTS_W void preCornerDetect( InputArray src, OutputArray dst, int ksize, - int borderType = BORDER_DEFAULT ); - -/** @brief Refines the corner locations. - -The function iterates to find the sub-pixel accurate location of corners or radial saddle points, as -shown on the figure below. - -![image](pics/cornersubpix.png) - -Sub-pixel accurate corner locator is based on the observation that every vector from the center \f$q\f$ -to a point \f$p\f$ located within a neighborhood of \f$q\f$ is orthogonal to the image gradient at \f$p\f$ -subject to image and measurement noise. Consider the expression: - -\f[\epsilon _i = {DI_{p_i}}^T \cdot (q - p_i)\f] - -where \f${DI_{p_i}}\f$ is an image gradient at one of the points \f$p_i\f$ in a neighborhood of \f$q\f$ . The -value of \f$q\f$ is to be found so that \f$\epsilon_i\f$ is minimized. A system of equations may be set up -with \f$\epsilon_i\f$ set to zero: - -\f[\sum _i(DI_{p_i} \cdot {DI_{p_i}}^T) - \sum _i(DI_{p_i} \cdot {DI_{p_i}}^T \cdot p_i)\f] - -where the gradients are summed within a neighborhood ("search window") of \f$q\f$ . Calling the first -gradient term \f$G\f$ and the second gradient term \f$b\f$ gives: - -\f[q = G^{-1} \cdot b\f] - -The algorithm sets the center of the neighborhood window at this new center \f$q\f$ and then iterates -until the center stays within a set threshold. - -@param image Input image. -@param corners Initial coordinates of the input corners and refined coordinates provided for -output. -@param winSize Half of the side length of the search window. For example, if winSize=Size(5,5) , -then a \f$5*2+1 \times 5*2+1 = 11 \times 11\f$ search window is used. -@param zeroZone Half of the size of the dead region in the middle of the search zone over which -the summation in the formula below is not done. It is used sometimes to avoid possible -singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such -a size. -@param criteria Criteria for termination of the iterative process of corner refinement. That is, -the process of corner position refinement stops either after criteria.maxCount iterations or when -the corner position moves by less than criteria.epsilon on some iteration. - */ -CV_EXPORTS_W void cornerSubPix( InputArray image, InputOutputArray corners, - Size winSize, Size zeroZone, - TermCriteria criteria ); - -/** @brief Determines strong corners on an image. - -The function finds the most prominent corners in the image or in the specified image region, as -described in @cite Shi94 - -- Function calculates the corner quality measure at every source image pixel using the - cornerMinEigenVal or cornerHarris . -- Function performs a non-maximum suppression (the local maximums in *3 x 3* neighborhood are - retained). -- The corners with the minimal eigenvalue less than - \f$\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\f$ are rejected. -- The remaining corners are sorted by the quality measure in the descending order. -- Function throws away each corner for which there is a stronger corner at a distance less than - maxDistance. - -The function can be used to initialize a point-based tracker of an object. - -@note If the function is called with different values A and B of the parameter qualityLevel , and -A \> B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector -with qualityLevel=B . - -@param image Input 8-bit or floating-point 32-bit, single-channel image. -@param corners Output vector of detected corners. -@param maxCorners Maximum number of corners to return. If there are more corners than are found, -the strongest of them is returned. `maxCorners <= 0` implies that no limit on the maximum is set -and all detected corners are returned. -@param qualityLevel Parameter characterizing the minimal accepted quality of image corners. The -parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue -(see cornerMinEigenVal ) or the Harris function response (see cornerHarris ). The corners with the -quality measure less than the product are rejected. For example, if the best corner has the -quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure -less than 15 are rejected. -@param minDistance Minimum possible Euclidean distance between the returned corners. -@param mask Optional region of interest. If the image is not empty (it needs to have the type -CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected. -@param blockSize Size of an average block for computing a derivative covariation matrix over each -pixel neighborhood. See cornerEigenValsAndVecs . -@param useHarrisDetector Parameter indicating whether to use a Harris detector (see cornerHarris) -or cornerMinEigenVal. -@param k Free parameter of the Harris detector. - -@sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform, - */ - -CV_EXPORTS_W void goodFeaturesToTrack( InputArray image, OutputArray corners, - int maxCorners, double qualityLevel, double minDistance, - InputArray mask = noArray(), int blockSize = 3, - bool useHarrisDetector = false, double k = 0.04 ); - -CV_EXPORTS_W void goodFeaturesToTrack( InputArray image, OutputArray corners, - int maxCorners, double qualityLevel, double minDistance, - InputArray mask, int blockSize, - int gradientSize, bool useHarrisDetector = false, - double k = 0.04 ); -/** @example houghlines.cpp -An example using the Hough line detector -![Sample input image](Hough_Lines_Tutorial_Original_Image.jpg) ![Output image](Hough_Lines_Tutorial_Result.jpg) -*/ - -/** @brief Finds lines in a binary image using the standard Hough transform. - -The function implements the standard or standard multi-scale Hough transform algorithm for line -detection. See for a good explanation of Hough -transform. - -@param image 8-bit, single-channel binary source image. The image may be modified by the function. -@param lines Output vector of lines. Each line is represented by a two-element vector -\f$(\rho, \theta)\f$ . \f$\rho\f$ is the distance from the coordinate origin \f$(0,0)\f$ (top-left corner of -the image). \f$\theta\f$ is the line rotation angle in radians ( -\f$0 \sim \textrm{vertical line}, \pi/2 \sim \textrm{horizontal line}\f$ ). -@param rho Distance resolution of the accumulator in pixels. -@param theta Angle resolution of the accumulator in radians. -@param threshold Accumulator threshold parameter. Only those lines are returned that get enough -votes ( \f$>\texttt{threshold}\f$ ). -@param srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho . -The coarse accumulator distance resolution is rho and the accurate accumulator resolution is -rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these -parameters should be positive. -@param stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta. -@param min_theta For standard and multi-scale Hough transform, minimum angle to check for lines. -Must fall between 0 and max_theta. -@param max_theta For standard and multi-scale Hough transform, maximum angle to check for lines. -Must fall between min_theta and CV_PI. - */ -CV_EXPORTS_W void HoughLines( InputArray image, OutputArray lines, - double rho, double theta, int threshold, - double srn = 0, double stn = 0, - double min_theta = 0, double max_theta = CV_PI ); - -/** @brief Finds line segments in a binary image using the probabilistic Hough transform. - -The function implements the probabilistic Hough transform algorithm for line detection, described -in @cite Matas00 - -See the line detection example below: - -@code - #include - #include - - using namespace cv; - using namespace std; - - int main(int argc, char** argv) - { - Mat src, dst, color_dst; - if( argc != 2 || !(src=imread(argv[1], 0)).data) - return -1; - - Canny( src, dst, 50, 200, 3 ); - cvtColor( dst, color_dst, COLOR_GRAY2BGR ); - - #if 0 - vector lines; - HoughLines( dst, lines, 1, CV_PI/180, 100 ); - - for( size_t i = 0; i < lines.size(); i++ ) - { - float rho = lines[i][0]; - float theta = lines[i][1]; - double a = cos(theta), b = sin(theta); - double x0 = a*rho, y0 = b*rho; - Point pt1(cvRound(x0 + 1000*(-b)), - cvRound(y0 + 1000*(a))); - Point pt2(cvRound(x0 - 1000*(-b)), - cvRound(y0 - 1000*(a))); - line( color_dst, pt1, pt2, Scalar(0,0,255), 3, 8 ); - } - #else - vector lines; - HoughLinesP( dst, lines, 1, CV_PI/180, 80, 30, 10 ); - for( size_t i = 0; i < lines.size(); i++ ) - { - line( color_dst, Point(lines[i][0], lines[i][1]), - Point(lines[i][2], lines[i][3]), Scalar(0,0,255), 3, 8 ); - } - #endif - namedWindow( "Source", 1 ); - imshow( "Source", src ); - - namedWindow( "Detected Lines", 1 ); - imshow( "Detected Lines", color_dst ); - - waitKey(0); - return 0; - } -@endcode -This is a sample picture the function parameters have been tuned for: - -![image](pics/building.jpg) - -And this is the output of the above program in case of the probabilistic Hough transform: - -![image](pics/houghp.png) - -@param image 8-bit, single-channel binary source image. The image may be modified by the function. -@param lines Output vector of lines. Each line is represented by a 4-element vector -\f$(x_1, y_1, x_2, y_2)\f$ , where \f$(x_1,y_1)\f$ and \f$(x_2, y_2)\f$ are the ending points of each detected -line segment. -@param rho Distance resolution of the accumulator in pixels. -@param theta Angle resolution of the accumulator in radians. -@param threshold Accumulator threshold parameter. Only those lines are returned that get enough -votes ( \f$>\texttt{threshold}\f$ ). -@param minLineLength Minimum line length. Line segments shorter than that are rejected. -@param maxLineGap Maximum allowed gap between points on the same line to link them. - -@sa LineSegmentDetector - */ -CV_EXPORTS_W void HoughLinesP( InputArray image, OutputArray lines, - double rho, double theta, int threshold, - double minLineLength = 0, double maxLineGap = 0 ); - -/** @example houghcircles.cpp -An example using the Hough circle detector -*/ - -/** @brief Finds circles in a grayscale image using the Hough transform. - -The function finds circles in a grayscale image using a modification of the Hough transform. - -Example: : -@code - #include - #include - #include - - using namespace cv; - using namespace std; - - int main(int argc, char** argv) - { - Mat img, gray; - if( argc != 2 || !(img=imread(argv[1], 1)).data) - return -1; - cvtColor(img, gray, COLOR_BGR2GRAY); - // smooth it, otherwise a lot of false circles may be detected - GaussianBlur( gray, gray, Size(9, 9), 2, 2 ); - vector circles; - HoughCircles(gray, circles, HOUGH_GRADIENT, - 2, gray.rows/4, 200, 100 ); - for( size_t i = 0; i < circles.size(); i++ ) - { - Point center(cvRound(circles[i][0]), cvRound(circles[i][1])); - int radius = cvRound(circles[i][2]); - // draw the circle center - circle( img, center, 3, Scalar(0,255,0), -1, 8, 0 ); - // draw the circle outline - circle( img, center, radius, Scalar(0,0,255), 3, 8, 0 ); - } - namedWindow( "circles", 1 ); - imshow( "circles", img ); - - waitKey(0); - return 0; - } -@endcode - -@note Usually the function detects the centers of circles well. However, it may fail to find correct -radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if -you know it. Or, you may set maxRadius to 0 to return centers only without radius search, and find the correct -radius using an additional procedure. - -@param image 8-bit, single-channel, grayscale input image. -@param circles Output vector of found circles. Each vector is encoded as a 3-element -floating-point vector \f$(x, y, radius)\f$ . -@param method Detection method, see cv::HoughModes. Currently, the only implemented method is HOUGH_GRADIENT -@param dp Inverse ratio of the accumulator resolution to the image resolution. For example, if -dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has -half as big width and height. -@param minDist Minimum distance between the centers of the detected circles. If the parameter is -too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is -too large, some circles may be missed. -@param param1 First method-specific parameter. In case of CV_HOUGH_GRADIENT , it is the higher -threshold of the two passed to the Canny edge detector (the lower one is twice smaller). -@param param2 Second method-specific parameter. In case of CV_HOUGH_GRADIENT , it is the -accumulator threshold for the circle centers at the detection stage. The smaller it is, the more -false circles may be detected. Circles, corresponding to the larger accumulator values, will be -returned first. -@param minRadius Minimum circle radius. -@param maxRadius Maximum circle radius. - -@sa fitEllipse, minEnclosingCircle - */ -CV_EXPORTS_W void HoughCircles( InputArray image, OutputArray circles, - int method, double dp, double minDist, - double param1 = 100, double param2 = 100, - int minRadius = 0, int maxRadius = 0 ); - -//! @} imgproc_feature - -//! @addtogroup imgproc_filter -//! @{ - -/** @example morphology2.cpp -Advanced morphology Transformations sample code -![Sample screenshot](Morphology_2_Tutorial_Result.jpg) -Check @ref tutorial_opening_closing_hats "the corresponding tutorial" for more details -*/ - -/** @brief Erodes an image by using a specific structuring element. - -The function erodes the source image using the specified structuring element that determines the -shape of a pixel neighborhood over which the minimum is taken: - -\f[\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] - -The function supports the in-place mode. Erosion can be applied several ( iterations ) times. In -case of multi-channel images, each channel is processed independently. - -@param src input image; the number of channels can be arbitrary, but the depth should be one of -CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -@param dst output image of the same size and type as src. -@param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular -structuring element is used. Kernel can be created using getStructuringElement. -@param anchor position of the anchor within the element; default value (-1, -1) means that the -anchor is at the element center. -@param iterations number of times erosion is applied. -@param borderType pixel extrapolation method, see cv::BorderTypes -@param borderValue border value in case of a constant border -@sa dilate, morphologyEx, getStructuringElement - */ -CV_EXPORTS_W void erode( InputArray src, OutputArray dst, InputArray kernel, - Point anchor = Point(-1,-1), int iterations = 1, - int borderType = BORDER_CONSTANT, - const Scalar& borderValue = morphologyDefaultBorderValue() ); - -/** @example Morphology_1.cpp -Erosion and Dilation sample code -![Sample Screenshot-Erosion](Morphology_1_Tutorial_Erosion_Result.jpg)![Sample Screenshot-Dilation](Morphology_1_Tutorial_Dilation_Result.jpg) -Check @ref tutorial_erosion_dilatation "the corresponding tutorial" for more details - */ -/** @brief Dilates an image by using a specific structuring element. - -The function dilates the source image using the specified structuring element that determines the -shape of a pixel neighborhood over which the maximum is taken: -\f[\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\f] - -The function supports the in-place mode. Dilation can be applied several ( iterations ) times. In -case of multi-channel images, each channel is processed independently. - -@param src input image; the number of channels can be arbitrary, but the depth should be one of -CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -@param dst output image of the same size and type as src\`. -@param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular -structuring element is used. Kernel can be created using getStructuringElement -@param anchor position of the anchor within the element; default value (-1, -1) means that the -anchor is at the element center. -@param iterations number of times dilation is applied. -@param borderType pixel extrapolation method, see cv::BorderTypes -@param borderValue border value in case of a constant border -@sa erode, morphologyEx, getStructuringElement - */ -CV_EXPORTS_W void dilate( InputArray src, OutputArray dst, InputArray kernel, - Point anchor = Point(-1,-1), int iterations = 1, - int borderType = BORDER_CONSTANT, - const Scalar& borderValue = morphologyDefaultBorderValue() ); - -/** @brief Performs advanced morphological transformations. - -The function morphologyEx can perform advanced morphological transformations using an erosion and dilation as -basic operations. - -Any of the operations can be done in-place. In case of multi-channel images, each channel is -processed independently. - -@param src Source image. The number of channels can be arbitrary. The depth should be one of -CV_8U, CV_16U, CV_16S, CV_32F or CV_64F. -@param dst Destination image of the same size and type as source image. -@param op Type of a morphological operation, see cv::MorphTypes -@param kernel Structuring element. It can be created using cv::getStructuringElement. -@param anchor Anchor position with the kernel. Negative values mean that the anchor is at the -kernel center. -@param iterations Number of times erosion and dilation are applied. -@param borderType Pixel extrapolation method, see cv::BorderTypes -@param borderValue Border value in case of a constant border. The default value has a special -meaning. -@sa dilate, erode, getStructuringElement -@note The number of iterations is the number of times erosion or dilatation operation will be applied. -For instance, an opening operation (#MORPH_OPEN) with two iterations is equivalent to apply -successively: erode -> erode -> dilate -> dilate (and not erode -> dilate -> erode -> dilate). - */ -CV_EXPORTS_W void morphologyEx( InputArray src, OutputArray dst, - int op, InputArray kernel, - Point anchor = Point(-1,-1), int iterations = 1, - int borderType = BORDER_CONSTANT, - const Scalar& borderValue = morphologyDefaultBorderValue() ); - -//! @} imgproc_filter - -//! @addtogroup imgproc_transform -//! @{ - -/** @brief Resizes an image. - -The function resize resizes the image src down to or up to the specified size. Note that the -initial dst type or size are not taken into account. Instead, the size and type are derived from -the `src`,`dsize`,`fx`, and `fy`. If you want to resize src so that it fits the pre-created dst, -you may call the function as follows: -@code - // explicitly specify dsize=dst.size(); fx and fy will be computed from that. - resize(src, dst, dst.size(), 0, 0, interpolation); -@endcode -If you want to decimate the image by factor of 2 in each direction, you can call the function this -way: -@code - // specify fx and fy and let the function compute the destination image size. - resize(src, dst, Size(), 0.5, 0.5, interpolation); -@endcode -To shrink an image, it will generally look best with cv::INTER_AREA interpolation, whereas to -enlarge an image, it will generally look best with cv::INTER_CUBIC (slow) or cv::INTER_LINEAR -(faster but still looks OK). - -@param src input image. -@param dst output image; it has the size dsize (when it is non-zero) or the size computed from -src.size(), fx, and fy; the type of dst is the same as of src. -@param dsize output image size; if it equals zero, it is computed as: - \f[\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\f] - Either dsize or both fx and fy must be non-zero. -@param fx scale factor along the horizontal axis; when it equals 0, it is computed as -\f[\texttt{(double)dsize.width/src.cols}\f] -@param fy scale factor along the vertical axis; when it equals 0, it is computed as -\f[\texttt{(double)dsize.height/src.rows}\f] -@param interpolation interpolation method, see cv::InterpolationFlags - -@sa warpAffine, warpPerspective, remap - */ -CV_EXPORTS_W void resize( InputArray src, OutputArray dst, - Size dsize, double fx = 0, double fy = 0, - int interpolation = INTER_LINEAR ); - -/** @brief Applies an affine transformation to an image. - -The function warpAffine transforms the source image using the specified matrix: - -\f[\texttt{dst} (x,y) = \texttt{src} ( \texttt{M} _{11} x + \texttt{M} _{12} y + \texttt{M} _{13}, \texttt{M} _{21} x + \texttt{M} _{22} y + \texttt{M} _{23})\f] - -when the flag WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted -with cv::invertAffineTransform and then put in the formula above instead of M. The function cannot -operate in-place. - -@param src input image. -@param dst output image that has the size dsize and the same type as src . -@param M \f$2\times 3\f$ transformation matrix. -@param dsize size of the output image. -@param flags combination of interpolation methods (see cv::InterpolationFlags) and the optional -flag WARP_INVERSE_MAP that means that M is the inverse transformation ( -\f$\texttt{dst}\rightarrow\texttt{src}\f$ ). -@param borderMode pixel extrapolation method (see cv::BorderTypes); when -borderMode=BORDER_TRANSPARENT, it means that the pixels in the destination image corresponding to -the "outliers" in the source image are not modified by the function. -@param borderValue value used in case of a constant border; by default, it is 0. - -@sa warpPerspective, resize, remap, getRectSubPix, transform - */ -CV_EXPORTS_W void warpAffine( InputArray src, OutputArray dst, - InputArray M, Size dsize, - int flags = INTER_LINEAR, - int borderMode = BORDER_CONSTANT, - const Scalar& borderValue = Scalar()); - -/** @example warpPerspective_demo.cpp -An example program shows using cv::findHomography and cv::warpPerspective for image warping - */ -/** @brief Applies a perspective transformation to an image. - -The function warpPerspective transforms the source image using the specified matrix: - -\f[\texttt{dst} (x,y) = \texttt{src} \left ( \frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} , - \frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \right )\f] - -when the flag WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted with invert -and then put in the formula above instead of M. The function cannot operate in-place. - -@param src input image. -@param dst output image that has the size dsize and the same type as src . -@param M \f$3\times 3\f$ transformation matrix. -@param dsize size of the output image. -@param flags combination of interpolation methods (INTER_LINEAR or INTER_NEAREST) and the -optional flag WARP_INVERSE_MAP, that sets M as the inverse transformation ( -\f$\texttt{dst}\rightarrow\texttt{src}\f$ ). -@param borderMode pixel extrapolation method (BORDER_CONSTANT or BORDER_REPLICATE). -@param borderValue value used in case of a constant border; by default, it equals 0. - -@sa warpAffine, resize, remap, getRectSubPix, perspectiveTransform - */ -CV_EXPORTS_W void warpPerspective( InputArray src, OutputArray dst, - InputArray M, Size dsize, - int flags = INTER_LINEAR, - int borderMode = BORDER_CONSTANT, - const Scalar& borderValue = Scalar()); - -/** @brief Applies a generic geometrical transformation to an image. - -The function remap transforms the source image using the specified map: - -\f[\texttt{dst} (x,y) = \texttt{src} (map_x(x,y),map_y(x,y))\f] - -where values of pixels with non-integer coordinates are computed using one of available -interpolation methods. \f$map_x\f$ and \f$map_y\f$ can be encoded as separate floating-point maps -in \f$map_1\f$ and \f$map_2\f$ respectively, or interleaved floating-point maps of \f$(x,y)\f$ in -\f$map_1\f$, or fixed-point maps created by using convertMaps. The reason you might want to -convert from floating to fixed-point representations of a map is that they can yield much faster -(\~2x) remapping operations. In the converted case, \f$map_1\f$ contains pairs (cvFloor(x), -cvFloor(y)) and \f$map_2\f$ contains indices in a table of interpolation coefficients. - -This function cannot operate in-place. - -@param src Source image. -@param dst Destination image. It has the same size as map1 and the same type as src . -@param map1 The first map of either (x,y) points or just x values having the type CV_16SC2 , -CV_32FC1, or CV_32FC2. See convertMaps for details on converting a floating point -representation to fixed-point for speed. -@param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map -if map1 is (x,y) points), respectively. -@param interpolation Interpolation method (see cv::InterpolationFlags). The method INTER_AREA is -not supported by this function. -@param borderMode Pixel extrapolation method (see cv::BorderTypes). When -borderMode=BORDER_TRANSPARENT, it means that the pixels in the destination image that -corresponds to the "outliers" in the source image are not modified by the function. -@param borderValue Value used in case of a constant border. By default, it is 0. -@note -Due to current implementation limitations the size of an input and output images should be less than 32767x32767. - */ -CV_EXPORTS_W void remap( InputArray src, OutputArray dst, - InputArray map1, InputArray map2, - int interpolation, int borderMode = BORDER_CONSTANT, - const Scalar& borderValue = Scalar()); - -/** @brief Converts image transformation maps from one representation to another. - -The function converts a pair of maps for remap from one representation to another. The following -options ( (map1.type(), map2.type()) \f$\rightarrow\f$ (dstmap1.type(), dstmap2.type()) ) are -supported: - -- \f$\texttt{(CV_32FC1, CV_32FC1)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\f$. This is the -most frequently used conversion operation, in which the original floating-point maps (see remap ) -are converted to a more compact and much faster fixed-point representation. The first output array -contains the rounded coordinates and the second array (created only when nninterpolation=false ) -contains indices in the interpolation tables. - -- \f$\texttt{(CV_32FC2)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\f$. The same as above but -the original maps are stored in one 2-channel matrix. - -- Reverse conversion. Obviously, the reconstructed floating-point maps will not be exactly the same -as the originals. - -@param map1 The first input map of type CV_16SC2, CV_32FC1, or CV_32FC2 . -@param map2 The second input map of type CV_16UC1, CV_32FC1, or none (empty matrix), -respectively. -@param dstmap1 The first output map that has the type dstmap1type and the same size as src . -@param dstmap2 The second output map. -@param dstmap1type Type of the first output map that should be CV_16SC2, CV_32FC1, or -CV_32FC2 . -@param nninterpolation Flag indicating whether the fixed-point maps are used for the -nearest-neighbor or for a more complex interpolation. - -@sa remap, undistort, initUndistortRectifyMap - */ -CV_EXPORTS_W void convertMaps( InputArray map1, InputArray map2, - OutputArray dstmap1, OutputArray dstmap2, - int dstmap1type, bool nninterpolation = false ); - -/** @brief Calculates an affine matrix of 2D rotation. - -The function calculates the following matrix: - -\f[\begin{bmatrix} \alpha & \beta & (1- \alpha ) \cdot \texttt{center.x} - \beta \cdot \texttt{center.y} \\ - \beta & \alpha & \beta \cdot \texttt{center.x} + (1- \alpha ) \cdot \texttt{center.y} \end{bmatrix}\f] - -where - -\f[\begin{array}{l} \alpha = \texttt{scale} \cdot \cos \texttt{angle} , \\ \beta = \texttt{scale} \cdot \sin \texttt{angle} \end{array}\f] - -The transformation maps the rotation center to itself. If this is not the target, adjust the shift. - -@param center Center of the rotation in the source image. -@param angle Rotation angle in degrees. Positive values mean counter-clockwise rotation (the -coordinate origin is assumed to be the top-left corner). -@param scale Isotropic scale factor. - -@sa getAffineTransform, warpAffine, transform - */ -CV_EXPORTS_W Mat getRotationMatrix2D( Point2f center, double angle, double scale ); - -//! returns 3x3 perspective transformation for the corresponding 4 point pairs. -CV_EXPORTS Mat getPerspectiveTransform( const Point2f src[], const Point2f dst[] ); - -/** @brief Calculates an affine transform from three pairs of the corresponding points. - -The function calculates the \f$2 \times 3\f$ matrix of an affine transform so that: - -\f[\begin{bmatrix} x'_i \\ y'_i \end{bmatrix} = \texttt{map_matrix} \cdot \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}\f] - -where - -\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2\f] - -@param src Coordinates of triangle vertices in the source image. -@param dst Coordinates of the corresponding triangle vertices in the destination image. - -@sa warpAffine, transform - */ -CV_EXPORTS Mat getAffineTransform( const Point2f src[], const Point2f dst[] ); - -/** @brief Inverts an affine transformation. - -The function computes an inverse affine transformation represented by \f$2 \times 3\f$ matrix M: - -\f[\begin{bmatrix} a_{11} & a_{12} & b_1 \\ a_{21} & a_{22} & b_2 \end{bmatrix}\f] - -The result is also a \f$2 \times 3\f$ matrix of the same type as M. - -@param M Original affine transformation. -@param iM Output reverse affine transformation. - */ -CV_EXPORTS_W void invertAffineTransform( InputArray M, OutputArray iM ); - -/** @brief Calculates a perspective transform from four pairs of the corresponding points. - -The function calculates the \f$3 \times 3\f$ matrix of a perspective transform so that: - -\f[\begin{bmatrix} t_i x'_i \\ t_i y'_i \\ t_i \end{bmatrix} = \texttt{map_matrix} \cdot \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}\f] - -where - -\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\f] - -@param src Coordinates of quadrangle vertices in the source image. -@param dst Coordinates of the corresponding quadrangle vertices in the destination image. - -@sa findHomography, warpPerspective, perspectiveTransform - */ -CV_EXPORTS_W Mat getPerspectiveTransform( InputArray src, InputArray dst ); - -CV_EXPORTS_W Mat getAffineTransform( InputArray src, InputArray dst ); - -/** @brief Retrieves a pixel rectangle from an image with sub-pixel accuracy. - -The function getRectSubPix extracts pixels from src: - -\f[patch(x, y) = src(x + \texttt{center.x} - ( \texttt{dst.cols} -1)*0.5, y + \texttt{center.y} - ( \texttt{dst.rows} -1)*0.5)\f] - -where the values of the pixels at non-integer coordinates are retrieved using bilinear -interpolation. Every channel of multi-channel images is processed independently. Also -the image should be a single channel or three channel image. While the center of the -rectangle must be inside the image, parts of the rectangle may be outside. - -@param image Source image. -@param patchSize Size of the extracted patch. -@param center Floating point coordinates of the center of the extracted rectangle within the -source image. The center must be inside the image. -@param patch Extracted patch that has the size patchSize and the same number of channels as src . -@param patchType Depth of the extracted pixels. By default, they have the same depth as src . - -@sa warpAffine, warpPerspective - */ -CV_EXPORTS_W void getRectSubPix( InputArray image, Size patchSize, - Point2f center, OutputArray patch, int patchType = -1 ); - -/** @example polar_transforms.cpp -An example using the cv::linearPolar and cv::logPolar operations -*/ - -/** @brief Remaps an image to semilog-polar coordinates space. - -Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image"): -\f[\begin{array}{l} - dst( \rho , \phi ) = src(x,y) \\ - dst.size() \leftarrow src.size() -\end{array}\f] - -where -\f[\begin{array}{l} - I = (dx,dy) = (x - center.x,y - center.y) \\ - \rho = M \cdot log_e(\texttt{magnitude} (I)) ,\\ - \phi = Ky \cdot \texttt{angle} (I)_{0..360 deg} \\ -\end{array}\f] - -and -\f[\begin{array}{l} - M = src.cols / log_e(maxRadius) \\ - Ky = src.rows / 360 \\ -\end{array}\f] - -The function emulates the human "foveal" vision and can be used for fast scale and -rotation-invariant template matching, for object tracking and so forth. -@param src Source image -@param dst Destination image. It will have same size and type as src. -@param center The transformation center; where the output precision is maximal -@param M Magnitude scale parameter. It determines the radius of the bounding circle to transform too. -@param flags A combination of interpolation methods, see cv::InterpolationFlags - -@note -- The function can not operate in-place. -- To calculate magnitude and angle in degrees @ref cv::cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees. -*/ -CV_EXPORTS_W void logPolar( InputArray src, OutputArray dst, - Point2f center, double M, int flags ); - -/** @brief Remaps an image to polar coordinates space. - -@anchor polar_remaps_reference_image -![Polar remaps reference](pics/polar_remap_doc.png) - -Transform the source image using the following transformation: -\f[\begin{array}{l} - dst( \rho , \phi ) = src(x,y) \\ - dst.size() \leftarrow src.size() -\end{array}\f] - -where -\f[\begin{array}{l} - I = (dx,dy) = (x - center.x,y - center.y) \\ - \rho = Kx \cdot \texttt{magnitude} (I) ,\\ - \phi = Ky \cdot \texttt{angle} (I)_{0..360 deg} -\end{array}\f] - -and -\f[\begin{array}{l} - Kx = src.cols / maxRadius \\ - Ky = src.rows / 360 -\end{array}\f] - - -@param src Source image -@param dst Destination image. It will have same size and type as src. -@param center The transformation center; -@param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too. -@param flags A combination of interpolation methods, see cv::InterpolationFlags - -@note -- The function can not operate in-place. -- To calculate magnitude and angle in degrees @ref cv::cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees. - -*/ -CV_EXPORTS_W void linearPolar( InputArray src, OutputArray dst, - Point2f center, double maxRadius, int flags ); - -//! @} imgproc_transform - -//! @addtogroup imgproc_misc -//! @{ - -/** @overload */ -CV_EXPORTS_W void integral( InputArray src, OutputArray sum, int sdepth = -1 ); - -/** @overload */ -CV_EXPORTS_AS(integral2) void integral( InputArray src, OutputArray sum, - OutputArray sqsum, int sdepth = -1, int sqdepth = -1 ); - -/** @brief Calculates the integral of an image. - -The function calculates one or more integral images for the source image as follows: - -\f[\texttt{sum} (X,Y) = \sum _{x - -Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed -with getOptimalDFTSize. - -The function performs the following equations: -- First it applies a Hanning window (see ) to each -image to remove possible edge effects. This window is cached until the array size changes to speed -up processing time. -- Next it computes the forward DFTs of each source array: -\f[\mathbf{G}_a = \mathcal{F}\{src_1\}, \; \mathbf{G}_b = \mathcal{F}\{src_2\}\f] -where \f$\mathcal{F}\f$ is the forward DFT. -- It then computes the cross-power spectrum of each frequency domain array: -\f[R = \frac{ \mathbf{G}_a \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^*|}\f] -- Next the cross-correlation is converted back into the time domain via the inverse DFT: -\f[r = \mathcal{F}^{-1}\{R\}\f] -- Finally, it computes the peak location and computes a 5x5 weighted centroid around the peak to -achieve sub-pixel accuracy. -\f[(\Delta x, \Delta y) = \texttt{weightedCentroid} \{\arg \max_{(x, y)}\{r\}\}\f] -- If non-zero, the response parameter is computed as the sum of the elements of r within the 5x5 -centroid around the peak location. It is normalized to a maximum of 1 (meaning there is a single -peak) and will be smaller when there are multiple peaks. - -@param src1 Source floating point array (CV_32FC1 or CV_64FC1) -@param src2 Source floating point array (CV_32FC1 or CV_64FC1) -@param window Floating point array with windowing coefficients to reduce edge effects (optional). -@param response Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional). -@returns detected phase shift (sub-pixel) between the two arrays. - -@sa dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow - */ -CV_EXPORTS_W Point2d phaseCorrelate(InputArray src1, InputArray src2, - InputArray window = noArray(), CV_OUT double* response = 0); - -/** @brief This function computes a Hanning window coefficients in two dimensions. - -See (http://en.wikipedia.org/wiki/Hann_function) and (http://en.wikipedia.org/wiki/Window_function) -for more information. - -An example is shown below: -@code - // create hanning window of size 100x100 and type CV_32F - Mat hann; - createHanningWindow(hann, Size(100, 100), CV_32F); -@endcode -@param dst Destination array to place Hann coefficients in -@param winSize The window size specifications (both width and height must be > 1) -@param type Created array type - */ -CV_EXPORTS_W void createHanningWindow(OutputArray dst, Size winSize, int type); - -//! @} imgproc_motion - -//! @addtogroup imgproc_misc -//! @{ - -/** @brief Applies a fixed-level threshold to each array element. - -The function applies fixed-level thresholding to a multiple-channel array. The function is typically -used to get a bi-level (binary) image out of a grayscale image ( cv::compare could be also used for -this purpose) or for removing a noise, that is, filtering out pixels with too small or too large -values. There are several types of thresholding supported by the function. They are determined by -type parameter. - -Also, the special values cv::THRESH_OTSU or cv::THRESH_TRIANGLE may be combined with one of the -above values. In these cases, the function determines the optimal threshold value using the Otsu's -or Triangle algorithm and uses it instead of the specified thresh . The function returns the -computed threshold value. Currently, the Otsu's and Triangle methods are implemented only for 8-bit -images. - -@note Input image should be single channel only in case of CV_THRESH_OTSU or CV_THRESH_TRIANGLE flags - -@param src input array (multiple-channel, 8-bit or 32-bit floating point). -@param dst output array of the same size and type and the same number of channels as src. -@param thresh threshold value. -@param maxval maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding -types. -@param type thresholding type (see the cv::ThresholdTypes). - -@sa adaptiveThreshold, findContours, compare, min, max - */ -CV_EXPORTS_W double threshold( InputArray src, OutputArray dst, - double thresh, double maxval, int type ); - - -/** @brief Applies an adaptive threshold to an array. - -The function transforms a grayscale image to a binary image according to the formulae: -- **THRESH_BINARY** - \f[dst(x,y) = \fork{\texttt{maxValue}}{if \(src(x,y) > T(x,y)\)}{0}{otherwise}\f] -- **THRESH_BINARY_INV** - \f[dst(x,y) = \fork{0}{if \(src(x,y) > T(x,y)\)}{\texttt{maxValue}}{otherwise}\f] -where \f$T(x,y)\f$ is a threshold calculated individually for each pixel (see adaptiveMethod parameter). - -The function can process the image in-place. - -@param src Source 8-bit single-channel image. -@param dst Destination image of the same size and the same type as src. -@param maxValue Non-zero value assigned to the pixels for which the condition is satisfied -@param adaptiveMethod Adaptive thresholding algorithm to use, see cv::AdaptiveThresholdTypes. -The BORDER_REPLICATE | BORDER_ISOLATED is used to process boundaries. -@param thresholdType Thresholding type that must be either THRESH_BINARY or THRESH_BINARY_INV, -see cv::ThresholdTypes. -@param blockSize Size of a pixel neighborhood that is used to calculate a threshold value for the -pixel: 3, 5, 7, and so on. -@param C Constant subtracted from the mean or weighted mean (see the details below). Normally, it -is positive but may be zero or negative as well. - -@sa threshold, blur, GaussianBlur - */ -CV_EXPORTS_W void adaptiveThreshold( InputArray src, OutputArray dst, - double maxValue, int adaptiveMethod, - int thresholdType, int blockSize, double C ); - -//! @} imgproc_misc - -//! @addtogroup imgproc_filter -//! @{ - -/** @example Pyramids.cpp -An example using pyrDown and pyrUp functions - */ -/** @brief Blurs an image and downsamples it. - -By default, size of the output image is computed as `Size((src.cols+1)/2, (src.rows+1)/2)`, but in -any case, the following conditions should be satisfied: - -\f[\begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array}\f] - -The function performs the downsampling step of the Gaussian pyramid construction. First, it -convolves the source image with the kernel: - -\f[\frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix}\f] - -Then, it downsamples the image by rejecting even rows and columns. - -@param src input image. -@param dst output image; it has the specified size and the same type as src. -@param dstsize size of the output image. -@param borderType Pixel extrapolation method, see cv::BorderTypes (BORDER_CONSTANT isn't supported) - */ -CV_EXPORTS_W void pyrDown( InputArray src, OutputArray dst, - const Size& dstsize = Size(), int borderType = BORDER_DEFAULT ); - -/** @brief Upsamples an image and then blurs it. - -By default, size of the output image is computed as `Size(src.cols\*2, (src.rows\*2)`, but in any -case, the following conditions should be satisfied: - -\f[\begin{array}{l} | \texttt{dstsize.width} -src.cols*2| \leq ( \texttt{dstsize.width} \mod 2) \\ | \texttt{dstsize.height} -src.rows*2| \leq ( \texttt{dstsize.height} \mod 2) \end{array}\f] - -The function performs the upsampling step of the Gaussian pyramid construction, though it can -actually be used to construct the Laplacian pyramid. First, it upsamples the source image by -injecting even zero rows and columns and then convolves the result with the same kernel as in -pyrDown multiplied by 4. - -@param src input image. -@param dst output image. It has the specified size and the same type as src . -@param dstsize size of the output image. -@param borderType Pixel extrapolation method, see cv::BorderTypes (only BORDER_DEFAULT is supported) - */ -CV_EXPORTS_W void pyrUp( InputArray src, OutputArray dst, - const Size& dstsize = Size(), int borderType = BORDER_DEFAULT ); - -/** @brief Constructs the Gaussian pyramid for an image. - -The function constructs a vector of images and builds the Gaussian pyramid by recursively applying -pyrDown to the previously built pyramid layers, starting from `dst[0]==src`. - -@param src Source image. Check pyrDown for the list of supported types. -@param dst Destination vector of maxlevel+1 images of the same type as src. dst[0] will be the -same as src. dst[1] is the next pyramid layer, a smoothed and down-sized src, and so on. -@param maxlevel 0-based index of the last (the smallest) pyramid layer. It must be non-negative. -@param borderType Pixel extrapolation method, see cv::BorderTypes (BORDER_CONSTANT isn't supported) - */ -CV_EXPORTS void buildPyramid( InputArray src, OutputArrayOfArrays dst, - int maxlevel, int borderType = BORDER_DEFAULT ); - -//! @} imgproc_filter - -//! @addtogroup imgproc_transform -//! @{ - -/** @brief Transforms an image to compensate for lens distortion. - -The function transforms an image to compensate radial and tangential lens distortion. - -The function is simply a combination of cv::initUndistortRectifyMap (with unity R ) and cv::remap -(with bilinear interpolation). See the former function for details of the transformation being -performed. - -Those pixels in the destination image, for which there is no correspondent pixels in the source -image, are filled with zeros (black color). - -A particular subset of the source image that will be visible in the corrected image can be regulated -by newCameraMatrix. You can use cv::getOptimalNewCameraMatrix to compute the appropriate -newCameraMatrix depending on your requirements. - -The camera matrix and the distortion parameters can be determined using cv::calibrateCamera. If -the resolution of images is different from the resolution used at the calibration stage, \f$f_x, -f_y, c_x\f$ and \f$c_y\f$ need to be scaled accordingly, while the distortion coefficients remain -the same. - -@param src Input (distorted) image. -@param dst Output (corrected) image that has the same size and type as src . -@param cameraMatrix Input camera matrix \f$A = \vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . -@param distCoeffs Input vector of distortion coefficients -\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ -of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. -@param newCameraMatrix Camera matrix of the distorted image. By default, it is the same as -cameraMatrix but you may additionally scale and shift the result by using a different matrix. - */ -CV_EXPORTS_W void undistort( InputArray src, OutputArray dst, - InputArray cameraMatrix, - InputArray distCoeffs, - InputArray newCameraMatrix = noArray() ); - -/** @brief Computes the undistortion and rectification transformation map. - -The function computes the joint undistortion and rectification transformation and represents the -result in the form of maps for remap. The undistorted image looks like original, as if it is -captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a -monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by -cv::getOptimalNewCameraMatrix for a better control over scaling. In case of a stereo camera, -newCameraMatrix is normally set to P1 or P2 computed by cv::stereoRectify . - -Also, this new camera is oriented differently in the coordinate space, according to R. That, for -example, helps to align two heads of a stereo camera so that the epipolar lines on both images -become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera). - -The function actually builds the maps for the inverse mapping algorithm that is used by remap. That -is, for each pixel \f$(u, v)\f$ in the destination (corrected and rectified) image, the function -computes the corresponding coordinates in the source image (that is, in the original image from -camera). The following process is applied: -\f[ -\begin{array}{l} -x \leftarrow (u - {c'}_x)/{f'}_x \\ -y \leftarrow (v - {c'}_y)/{f'}_y \\ -{[X\,Y\,W]} ^T \leftarrow R^{-1}*[x \, y \, 1]^T \\ -x' \leftarrow X/W \\ -y' \leftarrow Y/W \\ -r^2 \leftarrow x'^2 + y'^2 \\ -x'' \leftarrow x' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} -+ 2p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4\\ -y'' \leftarrow y' \frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6} -+ p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\ -s\vecthree{x'''}{y'''}{1} = -\vecthreethree{R_{33}(\tau_x, \tau_y)}{0}{-R_{13}((\tau_x, \tau_y)} -{0}{R_{33}(\tau_x, \tau_y)}{-R_{23}(\tau_x, \tau_y)} -{0}{0}{1} R(\tau_x, \tau_y) \vecthree{x''}{y''}{1}\\ -map_x(u,v) \leftarrow x''' f_x + c_x \\ -map_y(u,v) \leftarrow y''' f_y + c_y -\end{array} -\f] -where \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ -are the distortion coefficients. - -In case of a stereo camera, this function is called twice: once for each camera head, after -stereoRectify, which in its turn is called after cv::stereoCalibrate. But if the stereo camera -was not calibrated, it is still possible to compute the rectification transformations directly from -the fundamental matrix using cv::stereoRectifyUncalibrated. For each camera, the function computes -homography H as the rectification transformation in a pixel domain, not a rotation matrix R in 3D -space. R can be computed from H as -\f[\texttt{R} = \texttt{cameraMatrix} ^{-1} \cdot \texttt{H} \cdot \texttt{cameraMatrix}\f] -where cameraMatrix can be chosen arbitrarily. - -@param cameraMatrix Input camera matrix \f$A=\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . -@param distCoeffs Input vector of distortion coefficients -\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ -of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. -@param R Optional rectification transformation in the object space (3x3 matrix). R1 or R2 , -computed by stereoRectify can be passed here. If the matrix is empty, the identity transformation -is assumed. In cvInitUndistortMap R assumed to be an identity matrix. -@param newCameraMatrix New camera matrix \f$A'=\vecthreethree{f_x'}{0}{c_x'}{0}{f_y'}{c_y'}{0}{0}{1}\f$. -@param size Undistorted image size. -@param m1type Type of the first output map that can be CV_32FC1, CV_32FC2 or CV_16SC2, see cv::convertMaps -@param map1 The first output map. -@param map2 The second output map. - */ -CV_EXPORTS_W void initUndistortRectifyMap( InputArray cameraMatrix, InputArray distCoeffs, - InputArray R, InputArray newCameraMatrix, - Size size, int m1type, OutputArray map1, OutputArray map2 ); - -//! initializes maps for cv::remap() for wide-angle -CV_EXPORTS_W float initWideAngleProjMap( InputArray cameraMatrix, InputArray distCoeffs, - Size imageSize, int destImageWidth, - int m1type, OutputArray map1, OutputArray map2, - int projType = PROJ_SPHERICAL_EQRECT, double alpha = 0); - -/** @brief Returns the default new camera matrix. - -The function returns the camera matrix that is either an exact copy of the input cameraMatrix (when -centerPrinicipalPoint=false ), or the modified one (when centerPrincipalPoint=true). - -In the latter case, the new camera matrix will be: - -\f[\begin{bmatrix} f_x && 0 && ( \texttt{imgSize.width} -1)*0.5 \\ 0 && f_y && ( \texttt{imgSize.height} -1)*0.5 \\ 0 && 0 && 1 \end{bmatrix} ,\f] - -where \f$f_x\f$ and \f$f_y\f$ are \f$(0,0)\f$ and \f$(1,1)\f$ elements of cameraMatrix, respectively. - -By default, the undistortion functions in OpenCV (see initUndistortRectifyMap, undistort) do not -move the principal point. However, when you work with stereo, it is important to move the principal -points in both views to the same y-coordinate (which is required by most of stereo correspondence -algorithms), and may be to the same x-coordinate too. So, you can form the new camera matrix for -each view where the principal points are located at the center. - -@param cameraMatrix Input camera matrix. -@param imgsize Camera view image size in pixels. -@param centerPrincipalPoint Location of the principal point in the new camera matrix. The -parameter indicates whether this location should be at the image center or not. - */ -CV_EXPORTS_W Mat getDefaultNewCameraMatrix( InputArray cameraMatrix, Size imgsize = Size(), - bool centerPrincipalPoint = false ); - -/** @brief Computes the ideal point coordinates from the observed point coordinates. - -The function is similar to cv::undistort and cv::initUndistortRectifyMap but it operates on a -sparse set of points instead of a raster image. Also the function performs a reverse transformation -to projectPoints. In case of a 3D object, it does not reconstruct its 3D coordinates, but for a -planar object, it does, up to a translation vector, if the proper R is specified. - -For each observed point coordinate \f$(u, v)\f$ the function computes: -\f[ -\begin{array}{l} -x^{"} \leftarrow (u - c_x)/f_x \\ -y^{"} \leftarrow (v - c_y)/f_y \\ -(x',y') = undistort(x^{"},y^{"}, \texttt{distCoeffs}) \\ -{[X\,Y\,W]} ^T \leftarrow R*[x' \, y' \, 1]^T \\ -x \leftarrow X/W \\ -y \leftarrow Y/W \\ -\text{only performed if P is specified:} \\ -u' \leftarrow x {f'}_x + {c'}_x \\ -v' \leftarrow y {f'}_y + {c'}_y -\end{array} -\f] - -where *undistort* is an approximate iterative algorithm that estimates the normalized original -point coordinates out of the normalized distorted point coordinates ("normalized" means that the -coordinates do not depend on the camera matrix). - -The function can be used for both a stereo camera head or a monocular camera (when R is empty). - -@param src Observed point coordinates, 1xN or Nx1 2-channel (CV_32FC2 or CV_64FC2). -@param dst Output ideal point coordinates after undistortion and reverse perspective -transformation. If matrix P is identity or omitted, dst will contain normalized point coordinates. -@param cameraMatrix Camera matrix \f$\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\f$ . -@param distCoeffs Input vector of distortion coefficients -\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \tau_x, \tau_y]]]])\f$ -of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. -@param R Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by -cv::stereoRectify can be passed here. If the matrix is empty, the identity transformation is used. -@param P New camera matrix (3x3) or new projection matrix (3x4) \f$\begin{bmatrix} {f'}_x & 0 & {c'}_x & t_x \\ 0 & {f'}_y & {c'}_y & t_y \\ 0 & 0 & 1 & t_z \end{bmatrix}\f$. P1 or P2 computed by -cv::stereoRectify can be passed here. If the matrix is empty, the identity new camera matrix is used. - */ -CV_EXPORTS_W void undistortPoints( InputArray src, OutputArray dst, - InputArray cameraMatrix, InputArray distCoeffs, - InputArray R = noArray(), InputArray P = noArray()); -/** @overload - @note Default version of cv::undistortPoints does 5 iterations to compute undistorted points. - - */ -CV_EXPORTS_AS(undistortPointsIter) void undistortPoints( InputArray src, OutputArray dst, - InputArray cameraMatrix, InputArray distCoeffs, - InputArray R, InputArray P, TermCriteria criteria); - -//! @} imgproc_transform - -//! @addtogroup imgproc_hist -//! @{ - -/** @example demhist.cpp -An example for creating histograms of an image -*/ - -/** @brief Calculates a histogram of a set of arrays. - -The function cv::calcHist calculates the histogram of one or more arrays. The elements of a tuple used -to increment a histogram bin are taken from the corresponding input arrays at the same location. The -sample below shows how to compute a 2D Hue-Saturation histogram for a color image. : -@code - #include - #include - - using namespace cv; - - int main( int argc, char** argv ) - { - Mat src, hsv; - if( argc != 2 || !(src=imread(argv[1], 1)).data ) - return -1; - - cvtColor(src, hsv, COLOR_BGR2HSV); - - // Quantize the hue to 30 levels - // and the saturation to 32 levels - int hbins = 30, sbins = 32; - int histSize[] = {hbins, sbins}; - // hue varies from 0 to 179, see cvtColor - float hranges[] = { 0, 180 }; - // saturation varies from 0 (black-gray-white) to - // 255 (pure spectrum color) - float sranges[] = { 0, 256 }; - const float* ranges[] = { hranges, sranges }; - MatND hist; - // we compute the histogram from the 0-th and 1-st channels - int channels[] = {0, 1}; - - calcHist( &hsv, 1, channels, Mat(), // do not use mask - hist, 2, histSize, ranges, - true, // the histogram is uniform - false ); - double maxVal=0; - minMaxLoc(hist, 0, &maxVal, 0, 0); - - int scale = 10; - Mat histImg = Mat::zeros(sbins*scale, hbins*10, CV_8UC3); - - for( int h = 0; h < hbins; h++ ) - for( int s = 0; s < sbins; s++ ) - { - float binVal = hist.at(h, s); - int intensity = cvRound(binVal*255/maxVal); - rectangle( histImg, Point(h*scale, s*scale), - Point( (h+1)*scale - 1, (s+1)*scale - 1), - Scalar::all(intensity), - CV_FILLED ); - } - - namedWindow( "Source", 1 ); - imshow( "Source", src ); - - namedWindow( "H-S Histogram", 1 ); - imshow( "H-S Histogram", histImg ); - waitKey(); - } -@endcode - -@param images Source arrays. They all should have the same depth, CV_8U, CV_16U or CV_32F , and the same -size. Each of them can have an arbitrary number of channels. -@param nimages Number of source images. -@param channels List of the dims channels used to compute the histogram. The first array channels -are numerated from 0 to images[0].channels()-1 , the second array channels are counted from -images[0].channels() to images[0].channels() + images[1].channels()-1, and so on. -@param mask Optional mask. If the matrix is not empty, it must be an 8-bit array of the same size -as images[i] . The non-zero mask elements mark the array elements counted in the histogram. -@param hist Output histogram, which is a dense or sparse dims -dimensional array. -@param dims Histogram dimensionality that must be positive and not greater than CV_MAX_DIMS -(equal to 32 in the current OpenCV version). -@param histSize Array of histogram sizes in each dimension. -@param ranges Array of the dims arrays of the histogram bin boundaries in each dimension. When the -histogram is uniform ( uniform =true), then for each dimension i it is enough to specify the lower -(inclusive) boundary \f$L_0\f$ of the 0-th histogram bin and the upper (exclusive) boundary -\f$U_{\texttt{histSize}[i]-1}\f$ for the last histogram bin histSize[i]-1 . That is, in case of a -uniform histogram each of ranges[i] is an array of 2 elements. When the histogram is not uniform ( -uniform=false ), then each of ranges[i] contains histSize[i]+1 elements: -\f$L_0, U_0=L_1, U_1=L_2, ..., U_{\texttt{histSize[i]}-2}=L_{\texttt{histSize[i]}-1}, U_{\texttt{histSize[i]}-1}\f$ -. The array elements, that are not between \f$L_0\f$ and \f$U_{\texttt{histSize[i]}-1}\f$ , are not -counted in the histogram. -@param uniform Flag indicating whether the histogram is uniform or not (see above). -@param accumulate Accumulation flag. If it is set, the histogram is not cleared in the beginning -when it is allocated. This feature enables you to compute a single histogram from several sets of -arrays, or to update the histogram in time. -*/ -CV_EXPORTS void calcHist( const Mat* images, int nimages, - const int* channels, InputArray mask, - OutputArray hist, int dims, const int* histSize, - const float** ranges, bool uniform = true, bool accumulate = false ); - -/** @overload - -this variant uses cv::SparseMat for output -*/ -CV_EXPORTS void calcHist( const Mat* images, int nimages, - const int* channels, InputArray mask, - SparseMat& hist, int dims, - const int* histSize, const float** ranges, - bool uniform = true, bool accumulate = false ); - -/** @overload */ -CV_EXPORTS_W void calcHist( InputArrayOfArrays images, - const std::vector& channels, - InputArray mask, OutputArray hist, - const std::vector& histSize, - const std::vector& ranges, - bool accumulate = false ); - -/** @brief Calculates the back projection of a histogram. - -The function cv::calcBackProject calculates the back project of the histogram. That is, similarly to -cv::calcHist , at each location (x, y) the function collects the values from the selected channels -in the input images and finds the corresponding histogram bin. But instead of incrementing it, the -function reads the bin value, scales it by scale , and stores in backProject(x,y) . In terms of -statistics, the function computes probability of each element value in respect with the empirical -probability distribution represented by the histogram. See how, for example, you can find and track -a bright-colored object in a scene: - -- Before tracking, show the object to the camera so that it covers almost the whole frame. -Calculate a hue histogram. The histogram may have strong maximums, corresponding to the dominant -colors in the object. - -- When tracking, calculate a back projection of a hue plane of each input video frame using that -pre-computed histogram. Threshold the back projection to suppress weak colors. It may also make -sense to suppress pixels with non-sufficient color saturation and too dark or too bright pixels. - -- Find connected components in the resulting picture and choose, for example, the largest -component. - -This is an approximate algorithm of the CamShift color object tracker. - -@param images Source arrays. They all should have the same depth, CV_8U, CV_16U or CV_32F , and the same -size. Each of them can have an arbitrary number of channels. -@param nimages Number of source images. -@param channels The list of channels used to compute the back projection. The number of channels -must match the histogram dimensionality. The first array channels are numerated from 0 to -images[0].channels()-1 , the second array channels are counted from images[0].channels() to -images[0].channels() + images[1].channels()-1, and so on. -@param hist Input histogram that can be dense or sparse. -@param backProject Destination back projection array that is a single-channel array of the same -size and depth as images[0] . -@param ranges Array of arrays of the histogram bin boundaries in each dimension. See cv::calcHist . -@param scale Optional scale factor for the output back projection. -@param uniform Flag indicating whether the histogram is uniform or not (see above). - -@sa cv::calcHist, cv::compareHist - */ -CV_EXPORTS void calcBackProject( const Mat* images, int nimages, - const int* channels, InputArray hist, - OutputArray backProject, const float** ranges, - double scale = 1, bool uniform = true ); - -/** @overload */ -CV_EXPORTS void calcBackProject( const Mat* images, int nimages, - const int* channels, const SparseMat& hist, - OutputArray backProject, const float** ranges, - double scale = 1, bool uniform = true ); - -/** @overload */ -CV_EXPORTS_W void calcBackProject( InputArrayOfArrays images, const std::vector& channels, - InputArray hist, OutputArray dst, - const std::vector& ranges, - double scale ); - -/** @brief Compares two histograms. - -The function cv::compareHist compares two dense or two sparse histograms using the specified method. - -The function returns \f$d(H_1, H_2)\f$ . - -While the function works well with 1-, 2-, 3-dimensional dense histograms, it may not be suitable -for high-dimensional sparse histograms. In such histograms, because of aliasing and sampling -problems, the coordinates of non-zero histogram bins can slightly shift. To compare such histograms -or more general sparse configurations of weighted points, consider using the cv::EMD function. - -@param H1 First compared histogram. -@param H2 Second compared histogram of the same size as H1 . -@param method Comparison method, see cv::HistCompMethods - */ -CV_EXPORTS_W double compareHist( InputArray H1, InputArray H2, int method ); - -/** @overload */ -CV_EXPORTS double compareHist( const SparseMat& H1, const SparseMat& H2, int method ); - -/** @brief Equalizes the histogram of a grayscale image. - -The function equalizes the histogram of the input image using the following algorithm: - -- Calculate the histogram \f$H\f$ for src . -- Normalize the histogram so that the sum of histogram bins is 255. -- Compute the integral of the histogram: -\f[H'_i = \sum _{0 \le j < i} H(j)\f] -- Transform the image using \f$H'\f$ as a look-up table: \f$\texttt{dst}(x,y) = H'(\texttt{src}(x,y))\f$ - -The algorithm normalizes the brightness and increases the contrast of the image. - -@param src Source 8-bit single channel image. -@param dst Destination image of the same size and type as src . - */ -CV_EXPORTS_W void equalizeHist( InputArray src, OutputArray dst ); - -/** @brief Computes the "minimal work" distance between two weighted point configurations. - -The function computes the earth mover distance and/or a lower boundary of the distance between the -two weighted point configurations. One of the applications described in @cite RubnerSept98, -@cite Rubner2000 is multi-dimensional histogram comparison for image retrieval. EMD is a transportation -problem that is solved using some modification of a simplex algorithm, thus the complexity is -exponential in the worst case, though, on average it is much faster. In the case of a real metric -the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used -to determine roughly whether the two signatures are far enough so that they cannot relate to the -same object. - -@param signature1 First signature, a \f$\texttt{size1}\times \texttt{dims}+1\f$ floating-point matrix. -Each row stores the point weight followed by the point coordinates. The matrix is allowed to have -a single column (weights only) if the user-defined cost matrix is used. The weights must be -non-negative and have at least one non-zero value. -@param signature2 Second signature of the same format as signature1 , though the number of rows -may be different. The total weights may be different. In this case an extra "dummy" point is added -to either signature1 or signature2. The weights must be non-negative and have at least one non-zero -value. -@param distType Used metric. See cv::DistanceTypes. -@param cost User-defined \f$\texttt{size1}\times \texttt{size2}\f$ cost matrix. Also, if a cost matrix -is used, lower boundary lowerBound cannot be calculated because it needs a metric function. -@param lowerBound Optional input/output parameter: lower boundary of a distance between the two -signatures that is a distance between mass centers. The lower boundary may not be calculated if -the user-defined cost matrix is used, the total weights of point configurations are not equal, or -if the signatures consist of weights only (the signature matrices have a single column). You -**must** initialize \*lowerBound . If the calculated distance between mass centers is greater or -equal to \*lowerBound (it means that the signatures are far enough), the function does not -calculate EMD. In any case \*lowerBound is set to the calculated distance between mass centers on -return. Thus, if you want to calculate both distance between mass centers and EMD, \*lowerBound -should be set to 0. -@param flow Resultant \f$\texttt{size1} \times \texttt{size2}\f$ flow matrix: \f$\texttt{flow}_{i,j}\f$ is -a flow from \f$i\f$ -th point of signature1 to \f$j\f$ -th point of signature2 . - */ -CV_EXPORTS float EMD( InputArray signature1, InputArray signature2, - int distType, InputArray cost=noArray(), - float* lowerBound = 0, OutputArray flow = noArray() ); - -CV_EXPORTS_AS(EMD) float wrapperEMD( InputArray signature1, InputArray signature2, - int distType, InputArray cost=noArray(), - CV_IN_OUT Ptr lowerBound = Ptr(), OutputArray flow = noArray() ); - -//! @} imgproc_hist - -/** @example watershed.cpp -An example using the watershed algorithm - */ - -/** @brief Performs a marker-based image segmentation using the watershed algorithm. - -The function implements one of the variants of watershed, non-parametric marker-based segmentation -algorithm, described in @cite Meyer92 . - -Before passing the image to the function, you have to roughly outline the desired regions in the -image markers with positive (\>0) indices. So, every region is represented as one or more connected -components with the pixel values 1, 2, 3, and so on. Such markers can be retrieved from a binary -mask using findContours and drawContours (see the watershed.cpp demo). The markers are "seeds" of -the future image regions. All the other pixels in markers , whose relation to the outlined regions -is not known and should be defined by the algorithm, should be set to 0's. In the function output, -each pixel in markers is set to a value of the "seed" components or to -1 at boundaries between the -regions. - -@note Any two neighbor connected components are not necessarily separated by a watershed boundary -(-1's pixels); for example, they can touch each other in the initial marker image passed to the -function. - -@param image Input 8-bit 3-channel image. -@param markers Input/output 32-bit single-channel image (map) of markers. It should have the same -size as image . - -@sa findContours - -@ingroup imgproc_misc - */ -CV_EXPORTS_W void watershed( InputArray image, InputOutputArray markers ); - -//! @addtogroup imgproc_filter -//! @{ - -/** @brief Performs initial step of meanshift segmentation of an image. - -The function implements the filtering stage of meanshift segmentation, that is, the output of the -function is the filtered "posterized" image with color gradients and fine-grain texture flattened. -At every pixel (X,Y) of the input image (or down-sized input image, see below) the function executes -meanshift iterations, that is, the pixel (X,Y) neighborhood in the joint space-color hyperspace is -considered: - -\f[(x,y): X- \texttt{sp} \le x \le X+ \texttt{sp} , Y- \texttt{sp} \le y \le Y+ \texttt{sp} , ||(R,G,B)-(r,g,b)|| \le \texttt{sr}\f] - -where (R,G,B) and (r,g,b) are the vectors of color components at (X,Y) and (x,y), respectively -(though, the algorithm does not depend on the color space used, so any 3-component color space can -be used instead). Over the neighborhood the average spatial value (X',Y') and average color vector -(R',G',B') are found and they act as the neighborhood center on the next iteration: - -\f[(X,Y)~(X',Y'), (R,G,B)~(R',G',B').\f] - -After the iterations over, the color components of the initial pixel (that is, the pixel from where -the iterations started) are set to the final value (average color at the last iteration): - -\f[I(X,Y) <- (R*,G*,B*)\f] - -When maxLevel \> 0, the gaussian pyramid of maxLevel+1 levels is built, and the above procedure is -run on the smallest layer first. After that, the results are propagated to the larger layer and the -iterations are run again only on those pixels where the layer colors differ by more than sr from the -lower-resolution layer of the pyramid. That makes boundaries of color regions sharper. Note that the -results will be actually different from the ones obtained by running the meanshift procedure on the -whole original image (i.e. when maxLevel==0). - -@param src The source 8-bit, 3-channel image. -@param dst The destination image of the same format and the same size as the source. -@param sp The spatial window radius. -@param sr The color window radius. -@param maxLevel Maximum level of the pyramid for the segmentation. -@param termcrit Termination criteria: when to stop meanshift iterations. - */ -CV_EXPORTS_W void pyrMeanShiftFiltering( InputArray src, OutputArray dst, - double sp, double sr, int maxLevel = 1, - TermCriteria termcrit=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) ); - -//! @} - -//! @addtogroup imgproc_misc -//! @{ - -/** @example grabcut.cpp -An example using the GrabCut algorithm -![Sample Screenshot](grabcut_output1.jpg) - */ - -/** @brief Runs the GrabCut algorithm. - -The function implements the [GrabCut image segmentation algorithm](http://en.wikipedia.org/wiki/GrabCut). - -@param img Input 8-bit 3-channel image. -@param mask Input/output 8-bit single-channel mask. The mask is initialized by the function when -mode is set to GC_INIT_WITH_RECT. Its elements may have one of the cv::GrabCutClasses. -@param rect ROI containing a segmented object. The pixels outside of the ROI are marked as -"obvious background". The parameter is only used when mode==GC_INIT_WITH_RECT . -@param bgdModel Temporary array for the background model. Do not modify it while you are -processing the same image. -@param fgdModel Temporary arrays for the foreground model. Do not modify it while you are -processing the same image. -@param iterCount Number of iterations the algorithm should make before returning the result. Note -that the result can be refined with further calls with mode==GC_INIT_WITH_MASK or -mode==GC_EVAL . -@param mode Operation mode that could be one of the cv::GrabCutModes - */ -CV_EXPORTS_W void grabCut( InputArray img, InputOutputArray mask, Rect rect, - InputOutputArray bgdModel, InputOutputArray fgdModel, - int iterCount, int mode = GC_EVAL ); - -/** @example distrans.cpp -An example on using the distance transform\ -*/ - - -/** @brief Calculates the distance to the closest zero pixel for each pixel of the source image. - -The function cv::distanceTransform calculates the approximate or precise distance from every binary -image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero. - -When maskSize == DIST_MASK_PRECISE and distanceType == DIST_L2 , the function runs the -algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library. - -In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function -finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical, -diagonal, or knight's move (the latest is available for a \f$5\times 5\f$ mask). The overall -distance is calculated as a sum of these basic distances. Since the distance function should be -symmetric, all of the horizontal and vertical shifts must have the same cost (denoted as a ), all -the diagonal shifts must have the same cost (denoted as `b`), and all knight's moves must have the -same cost (denoted as `c`). For the cv::DIST_C and cv::DIST_L1 types, the distance is calculated -precisely, whereas for cv::DIST_L2 (Euclidean distance) the distance can be calculated only with a -relative error (a \f$5\times 5\f$ mask gives more accurate results). For `a`,`b`, and `c`, OpenCV -uses the values suggested in the original paper: -- DIST_L1: `a = 1, b = 2` -- DIST_L2: - - `3 x 3`: `a=0.955, b=1.3693` - - `5 x 5`: `a=1, b=1.4, c=2.1969` -- DIST_C: `a = 1, b = 1` - -Typically, for a fast, coarse distance estimation DIST_L2, a \f$3\times 3\f$ mask is used. For a -more accurate distance estimation DIST_L2, a \f$5\times 5\f$ mask or the precise algorithm is used. -Note that both the precise and the approximate algorithms are linear on the number of pixels. - -This variant of the function does not only compute the minimum distance for each pixel \f$(x, y)\f$ -but also identifies the nearest connected component consisting of zero pixels -(labelType==DIST_LABEL_CCOMP) or the nearest zero pixel (labelType==DIST_LABEL_PIXEL). Index of the -component/pixel is stored in `labels(x, y)`. When labelType==DIST_LABEL_CCOMP, the function -automatically finds connected components of zero pixels in the input image and marks them with -distinct labels. When labelType==DIST_LABEL_CCOMP, the function scans through the input image and -marks all the zero pixels with distinct labels. - -In this mode, the complexity is still linear. That is, the function provides a very fast way to -compute the Voronoi diagram for a binary image. Currently, the second variant can use only the -approximate distance transform algorithm, i.e. maskSize=DIST_MASK_PRECISE is not supported -yet. - -@param src 8-bit, single-channel (binary) source image. -@param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point, -single-channel image of the same size as src. -@param labels Output 2D array of labels (the discrete Voronoi diagram). It has the type -CV_32SC1 and the same size as src. -@param distanceType Type of distance, see cv::DistanceTypes -@param maskSize Size of the distance transform mask, see cv::DistanceTransformMasks. -DIST_MASK_PRECISE is not supported by this variant. In case of the DIST_L1 or DIST_C distance type, -the parameter is forced to 3 because a \f$3\times 3\f$ mask gives the same result as \f$5\times -5\f$ or any larger aperture. -@param labelType Type of the label array to build, see cv::DistanceTransformLabelTypes. - */ -CV_EXPORTS_AS(distanceTransformWithLabels) void distanceTransform( InputArray src, OutputArray dst, - OutputArray labels, int distanceType, int maskSize, - int labelType = DIST_LABEL_CCOMP ); - -/** @overload -@param src 8-bit, single-channel (binary) source image. -@param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point, -single-channel image of the same size as src . -@param distanceType Type of distance, see cv::DistanceTypes -@param maskSize Size of the distance transform mask, see cv::DistanceTransformMasks. In case of the -DIST_L1 or DIST_C distance type, the parameter is forced to 3 because a \f$3\times 3\f$ mask gives -the same result as \f$5\times 5\f$ or any larger aperture. -@param dstType Type of output image. It can be CV_8U or CV_32F. Type CV_8U can be used only for -the first variant of the function and distanceType == DIST_L1. -*/ -CV_EXPORTS_W void distanceTransform( InputArray src, OutputArray dst, - int distanceType, int maskSize, int dstType=CV_32F); - -/** @example ffilldemo.cpp - An example using the FloodFill technique -*/ - -/** @overload - -variant without `mask` parameter -*/ -CV_EXPORTS int floodFill( InputOutputArray image, - Point seedPoint, Scalar newVal, CV_OUT Rect* rect = 0, - Scalar loDiff = Scalar(), Scalar upDiff = Scalar(), - int flags = 4 ); - -/** @brief Fills a connected component with the given color. - -The function cv::floodFill fills a connected component starting from the seed point with the specified -color. The connectivity is determined by the color/brightness closeness of the neighbor pixels. The -pixel at \f$(x,y)\f$ is considered to belong to the repainted domain if: - -- in case of a grayscale image and floating range -\f[\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\f] - - -- in case of a grayscale image and fixed range -\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\f] - - -- in case of a color image and floating range -\f[\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\f] -\f[\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\f] -and -\f[\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\f] - - -- in case of a color image and fixed range -\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\f] -\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\f] -and -\f[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\f] - - -where \f$src(x',y')\f$ is the value of one of pixel neighbors that is already known to belong to the -component. That is, to be added to the connected component, a color/brightness of the pixel should -be close enough to: -- Color/brightness of one of its neighbors that already belong to the connected component in case -of a floating range. -- Color/brightness of the seed point in case of a fixed range. - -Use these functions to either mark a connected component with the specified color in-place, or build -a mask and then extract the contour, or copy the region to another image, and so on. - -@param image Input/output 1- or 3-channel, 8-bit, or floating-point image. It is modified by the -function unless the FLOODFILL_MASK_ONLY flag is set in the second variant of the function. See -the details below. -@param mask Operation mask that should be a single-channel 8-bit image, 2 pixels wider and 2 pixels -taller than image. Since this is both an input and output parameter, you must take responsibility -of initializing it. Flood-filling cannot go across non-zero pixels in the input mask. For example, -an edge detector output can be used as a mask to stop filling at edges. On output, pixels in the -mask corresponding to filled pixels in the image are set to 1 or to the a value specified in flags -as described below. Additionally, the function fills the border of the mask with ones to simplify -internal processing. It is therefore possible to use the same mask in multiple calls to the function -to make sure the filled areas do not overlap. -@param seedPoint Starting point. -@param newVal New value of the repainted domain pixels. -@param loDiff Maximal lower brightness/color difference between the currently observed pixel and -one of its neighbors belonging to the component, or a seed pixel being added to the component. -@param upDiff Maximal upper brightness/color difference between the currently observed pixel and -one of its neighbors belonging to the component, or a seed pixel being added to the component. -@param rect Optional output parameter set by the function to the minimum bounding rectangle of the -repainted domain. -@param flags Operation flags. The first 8 bits contain a connectivity value. The default value of -4 means that only the four nearest neighbor pixels (those that share an edge) are considered. A -connectivity value of 8 means that the eight nearest neighbor pixels (those that share a corner) -will be considered. The next 8 bits (8-16) contain a value between 1 and 255 with which to fill -the mask (the default value is 1). For example, 4 | ( 255 \<\< 8 ) will consider 4 nearest -neighbours and fill the mask with a value of 255. The following additional options occupy higher -bits and therefore may be further combined with the connectivity and mask fill values using -bit-wise or (|), see cv::FloodFillFlags. - -@note Since the mask is larger than the filled image, a pixel \f$(x, y)\f$ in image corresponds to the -pixel \f$(x+1, y+1)\f$ in the mask . - -@sa findContours - */ -CV_EXPORTS_W int floodFill( InputOutputArray image, InputOutputArray mask, - Point seedPoint, Scalar newVal, CV_OUT Rect* rect=0, - Scalar loDiff = Scalar(), Scalar upDiff = Scalar(), - int flags = 4 ); - -/** @brief Converts an image from one color space to another. - -The function converts an input image from one color space to another. In case of a transformation -to-from RGB color space, the order of the channels should be specified explicitly (RGB or BGR). Note -that the default color format in OpenCV is often referred to as RGB but it is actually BGR (the -bytes are reversed). So the first byte in a standard (24-bit) color image will be an 8-bit Blue -component, the second byte will be Green, and the third byte will be Red. The fourth, fifth, and -sixth bytes would then be the second pixel (Blue, then Green, then Red), and so on. - -The conventional ranges for R, G, and B channel values are: -- 0 to 255 for CV_8U images -- 0 to 65535 for CV_16U images -- 0 to 1 for CV_32F images - -In case of linear transformations, the range does not matter. But in case of a non-linear -transformation, an input RGB image should be normalized to the proper value range to get the correct -results, for example, for RGB \f$\rightarrow\f$ L\*u\*v\* transformation. For example, if you have a -32-bit floating-point image directly converted from an 8-bit image without any scaling, then it will -have the 0..255 value range instead of 0..1 assumed by the function. So, before calling cvtColor , -you need first to scale the image down: -@code - img *= 1./255; - cvtColor(img, img, COLOR_BGR2Luv); -@endcode -If you use cvtColor with 8-bit images, the conversion will have some information lost. For many -applications, this will not be noticeable but it is recommended to use 32-bit images in applications -that need the full range of colors or that convert an image before an operation and then convert -back. - -If conversion adds the alpha channel, its value will set to the maximum of corresponding channel -range: 255 for CV_8U, 65535 for CV_16U, 1 for CV_32F. - -@param src input image: 8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision -floating-point. -@param dst output image of the same size and depth as src. -@param code color space conversion code (see cv::ColorConversionCodes). -@param dstCn number of channels in the destination image; if the parameter is 0, the number of the -channels is derived automatically from src and code. - -@see @ref imgproc_color_conversions - */ -CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 ); - -//! @} imgproc_misc - -// main function for all demosaicing processes -CV_EXPORTS_W void demosaicing(InputArray _src, OutputArray _dst, int code, int dcn = 0); - -//! @addtogroup imgproc_shape -//! @{ - -/** @brief Calculates all of the moments up to the third order of a polygon or rasterized shape. - -The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The -results are returned in the structure cv::Moments. - -@param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array ( -\f$1 \times N\f$ or \f$N \times 1\f$ ) of 2D points (Point or Point2f ). -@param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is -used for images only. -@returns moments. - -@note Only applicable to contour moments calculations from Python bindings: Note that the numpy -type for the input array should be either np.int32 or np.float32. - -@sa contourArea, arcLength - */ -CV_EXPORTS_W Moments moments( InputArray array, bool binaryImage = false ); - -/** @brief Calculates seven Hu invariants. - -The function calculates seven Hu invariants (introduced in @cite Hu62; see also -) defined as: - -\f[\begin{array}{l} hu[0]= \eta _{20}+ \eta _{02} \\ hu[1]=( \eta _{20}- \eta _{02})^{2}+4 \eta _{11}^{2} \\ hu[2]=( \eta _{30}-3 \eta _{12})^{2}+ (3 \eta _{21}- \eta _{03})^{2} \\ hu[3]=( \eta _{30}+ \eta _{12})^{2}+ ( \eta _{21}+ \eta _{03})^{2} \\ hu[4]=( \eta _{30}-3 \eta _{12})( \eta _{30}+ \eta _{12})[( \eta _{30}+ \eta _{12})^{2}-3( \eta _{21}+ \eta _{03})^{2}]+(3 \eta _{21}- \eta _{03})( \eta _{21}+ \eta _{03})[3( \eta _{30}+ \eta _{12})^{2}-( \eta _{21}+ \eta _{03})^{2}] \\ hu[5]=( \eta _{20}- \eta _{02})[( \eta _{30}+ \eta _{12})^{2}- ( \eta _{21}+ \eta _{03})^{2}]+4 \eta _{11}( \eta _{30}+ \eta _{12})( \eta _{21}+ \eta _{03}) \\ hu[6]=(3 \eta _{21}- \eta _{03})( \eta _{21}+ \eta _{03})[3( \eta _{30}+ \eta _{12})^{2}-( \eta _{21}+ \eta _{03})^{2}]-( \eta _{30}-3 \eta _{12})( \eta _{21}+ \eta _{03})[3( \eta _{30}+ \eta _{12})^{2}-( \eta _{21}+ \eta _{03})^{2}] \\ \end{array}\f] - -where \f$\eta_{ji}\f$ stands for \f$\texttt{Moments::nu}_{ji}\f$ . - -These values are proved to be invariants to the image scale, rotation, and reflection except the -seventh one, whose sign is changed by reflection. This invariance is proved with the assumption of -infinite image resolution. In case of raster images, the computed Hu invariants for the original and -transformed images are a bit different. - -@param moments Input moments computed with moments . -@param hu Output Hu invariants. - -@sa matchShapes - */ -CV_EXPORTS void HuMoments( const Moments& moments, double hu[7] ); - -/** @overload */ -CV_EXPORTS_W void HuMoments( const Moments& m, OutputArray hu ); - -//! @} imgproc_shape - -//! @addtogroup imgproc_object -//! @{ - -//! type of the template matching operation -enum TemplateMatchModes { - TM_SQDIFF = 0, //!< \f[R(x,y)= \sum _{x',y'} (T(x',y')-I(x+x',y+y'))^2\f] - TM_SQDIFF_NORMED = 1, //!< \f[R(x,y)= \frac{\sum_{x',y'} (T(x',y')-I(x+x',y+y'))^2}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}}\f] - TM_CCORR = 2, //!< \f[R(x,y)= \sum _{x',y'} (T(x',y') \cdot I(x+x',y+y'))\f] - TM_CCORR_NORMED = 3, //!< \f[R(x,y)= \frac{\sum_{x',y'} (T(x',y') \cdot I(x+x',y+y'))}{\sqrt{\sum_{x',y'}T(x',y')^2 \cdot \sum_{x',y'} I(x+x',y+y')^2}}\f] - TM_CCOEFF = 4, //!< \f[R(x,y)= \sum _{x',y'} (T'(x',y') \cdot I'(x+x',y+y'))\f] - //!< where - //!< \f[\begin{array}{l} T'(x',y')=T(x',y') - 1/(w \cdot h) \cdot \sum _{x'',y''} T(x'',y'') \\ I'(x+x',y+y')=I(x+x',y+y') - 1/(w \cdot h) \cdot \sum _{x'',y''} I(x+x'',y+y'') \end{array}\f] - TM_CCOEFF_NORMED = 5 //!< \f[R(x,y)= \frac{ \sum_{x',y'} (T'(x',y') \cdot I'(x+x',y+y')) }{ \sqrt{\sum_{x',y'}T'(x',y')^2 \cdot \sum_{x',y'} I'(x+x',y+y')^2} }\f] -}; - -/** @example MatchTemplate_Demo.cpp -An example using Template Matching algorithm - */ -/** @brief Compares a template against overlapped image regions. - -The function slides through image , compares the overlapped patches of size \f$w \times h\f$ against -templ using the specified method and stores the comparison results in result . Here are the formulae -for the available comparison methods ( \f$I\f$ denotes image, \f$T\f$ template, \f$R\f$ result ). The summation -is done over template and/or the image patch: \f$x' = 0...w-1, y' = 0...h-1\f$ - -After the function finishes the comparison, the best matches can be found as global minimums (when -TM_SQDIFF was used) or maximums (when TM_CCORR or TM_CCOEFF was used) using the -minMaxLoc function. In case of a color image, template summation in the numerator and each sum in -the denominator is done over all of the channels and separate mean values are used for each channel. -That is, the function can take a color template and a color image. The result will still be a -single-channel image, which is easier to analyze. - -@param image Image where the search is running. It must be 8-bit or 32-bit floating-point. -@param templ Searched template. It must be not greater than the source image and have the same -data type. -@param result Map of comparison results. It must be single-channel 32-bit floating-point. If image -is \f$W \times H\f$ and templ is \f$w \times h\f$ , then result is \f$(W-w+1) \times (H-h+1)\f$ . -@param method Parameter specifying the comparison method, see cv::TemplateMatchModes -@param mask Mask of searched template. It must have the same datatype and size with templ. It is -not set by default. Currently, only the TM_SQDIFF and TM_CCORR_NORMED methods are supported. - */ -CV_EXPORTS_W void matchTemplate( InputArray image, InputArray templ, - OutputArray result, int method, InputArray mask = noArray() ); - -//! @} - -//! @addtogroup imgproc_shape -//! @{ - -/** @brief computes the connected components labeled image of boolean image - -image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0 -represents the background label. ltype specifies the output label image type, an important -consideration based on the total number of labels or alternatively the total number of pixels in -the source image. ccltype specifies the connected components labeling algorithm to use, currently -Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the cv::ConnectedComponentsAlgorithmsTypes -for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not. -This function uses parallel version of both Grana and Wu's algorithms if at least one allowed -parallel framework is enabled and if the rows of the image are at least twice the number returned by getNumberOfCPUs. - -@param image the 8-bit single-channel image to be labeled -@param labels destination labeled image -@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively -@param ltype output image label type. Currently CV_32S and CV_16U are supported. -@param ccltype connected components algorithm type (see the cv::ConnectedComponentsAlgorithmsTypes). -*/ -CV_EXPORTS_AS(connectedComponentsWithAlgorithm) int connectedComponents(InputArray image, OutputArray labels, - int connectivity, int ltype, int ccltype); - - -/** @overload - -@param image the 8-bit single-channel image to be labeled -@param labels destination labeled image -@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively -@param ltype output image label type. Currently CV_32S and CV_16U are supported. -*/ -CV_EXPORTS_W int connectedComponents(InputArray image, OutputArray labels, - int connectivity = 8, int ltype = CV_32S); - - -/** @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label - -image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0 -represents the background label. ltype specifies the output label image type, an important -consideration based on the total number of labels or alternatively the total number of pixels in -the source image. ccltype specifies the connected components labeling algorithm to use, currently -Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the cv::ConnectedComponentsAlgorithmsTypes -for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not. -This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed -parallel framework is enabled and if the rows of the image are at least twice the number returned by getNumberOfCPUs. - -@param image the 8-bit single-channel image to be labeled -@param labels destination labeled image -@param stats statistics output for each label, including the background label, see below for -available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of -cv::ConnectedComponentsTypes. The data type is CV_32S. -@param centroids centroid output for each label, including the background label. Centroids are -accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F. -@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively -@param ltype output image label type. Currently CV_32S and CV_16U are supported. -@param ccltype connected components algorithm type (see the cv::ConnectedComponentsAlgorithmsTypes). -*/ -CV_EXPORTS_AS(connectedComponentsWithStatsWithAlgorithm) int connectedComponentsWithStats(InputArray image, OutputArray labels, - OutputArray stats, OutputArray centroids, - int connectivity, int ltype, int ccltype); - -/** @overload -@param image the 8-bit single-channel image to be labeled -@param labels destination labeled image -@param stats statistics output for each label, including the background label, see below for -available statistics. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of -cv::ConnectedComponentsTypes. The data type is CV_32S. -@param centroids centroid output for each label, including the background label. Centroids are -accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F. -@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively -@param ltype output image label type. Currently CV_32S and CV_16U are supported. -*/ -CV_EXPORTS_W int connectedComponentsWithStats(InputArray image, OutputArray labels, - OutputArray stats, OutputArray centroids, - int connectivity = 8, int ltype = CV_32S); - - -/** @brief Finds contours in a binary image. - -The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours -are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the -OpenCV sample directory. -@note Since opencv 3.2 source image is not modified by this function. - -@param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero -pixels remain 0's, so the image is treated as binary . You can use cv::compare, cv::inRange, cv::threshold , -cv::adaptiveThreshold, cv::Canny, and others to create a binary image out of a grayscale or color one. -If mode equals to cv::RETR_CCOMP or cv::RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1). -@param contours Detected contours. Each contour is stored as a vector of points (e.g. -std::vector >). -@param hierarchy Optional output vector (e.g. std::vector), containing information about the image topology. It has -as many elements as the number of contours. For each i-th contour contours[i], the elements -hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices -in contours of the next and previous contours at the same hierarchical level, the first child -contour and the parent contour, respectively. If for the contour i there are no next, previous, -parent, or nested contours, the corresponding elements of hierarchy[i] will be negative. -@param mode Contour retrieval mode, see cv::RetrievalModes -@param method Contour approximation method, see cv::ContourApproximationModes -@param offset Optional offset by which every contour point is shifted. This is useful if the -contours are extracted from the image ROI and then they should be analyzed in the whole image -context. - */ -CV_EXPORTS_W void findContours( InputOutputArray image, OutputArrayOfArrays contours, - OutputArray hierarchy, int mode, - int method, Point offset = Point()); - -/** @overload */ -CV_EXPORTS void findContours( InputOutputArray image, OutputArrayOfArrays contours, - int mode, int method, Point offset = Point()); - -/** @brief Approximates a polygonal curve(s) with the specified precision. - -The function cv::approxPolyDP approximates a curve or a polygon with another curve/polygon with less -vertices so that the distance between them is less or equal to the specified precision. It uses the -Douglas-Peucker algorithm - -@param curve Input vector of a 2D point stored in std::vector or Mat -@param approxCurve Result of the approximation. The type should match the type of the input curve. -@param epsilon Parameter specifying the approximation accuracy. This is the maximum distance -between the original curve and its approximation. -@param closed If true, the approximated curve is closed (its first and last vertices are -connected). Otherwise, it is not closed. - */ -CV_EXPORTS_W void approxPolyDP( InputArray curve, - OutputArray approxCurve, - double epsilon, bool closed ); - -/** @brief Calculates a contour perimeter or a curve length. - -The function computes a curve length or a closed contour perimeter. - -@param curve Input vector of 2D points, stored in std::vector or Mat. -@param closed Flag indicating whether the curve is closed or not. - */ -CV_EXPORTS_W double arcLength( InputArray curve, bool closed ); - -/** @brief Calculates the up-right bounding rectangle of a point set. - -The function calculates and returns the minimal up-right bounding rectangle for the specified point set. - -@param points Input 2D point set, stored in std::vector or Mat. - */ -CV_EXPORTS_W Rect boundingRect( InputArray points ); - -/** @brief Calculates a contour area. - -The function computes a contour area. Similarly to moments , the area is computed using the Green -formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using -drawContours or fillPoly , can be different. Also, the function will most certainly give a wrong -results for contours with self-intersections. - -Example: -@code - vector contour; - contour.push_back(Point2f(0, 0)); - contour.push_back(Point2f(10, 0)); - contour.push_back(Point2f(10, 10)); - contour.push_back(Point2f(5, 4)); - - double area0 = contourArea(contour); - vector approx; - approxPolyDP(contour, approx, 5, true); - double area1 = contourArea(approx); - - cout << "area0 =" << area0 << endl << - "area1 =" << area1 << endl << - "approx poly vertices" << approx.size() << endl; -@endcode -@param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat. -@param oriented Oriented area flag. If it is true, the function returns a signed area value, -depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can -determine orientation of a contour by taking the sign of an area. By default, the parameter is -false, which means that the absolute value is returned. - */ -CV_EXPORTS_W double contourArea( InputArray contour, bool oriented = false ); - -/** @brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set. - -The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a -specified point set. Developer should keep in mind that the returned RotatedRect can contain negative -indices when data is close to the containing Mat element boundary. - -@param points Input vector of 2D points, stored in std::vector\<\> or Mat - */ -CV_EXPORTS_W RotatedRect minAreaRect( InputArray points ); - -/** @brief Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle. - -The function finds the four vertices of a rotated rectangle. This function is useful to draw the -rectangle. In C++, instead of using this function, you can directly use box.points() method. Please -visit the [tutorial on bounding -rectangle](http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/bounding_rects_circles/bounding_rects_circles.html#bounding-rects-circles) -for more information. - -@param box The input rotated rectangle. It may be the output of -@param points The output array of four vertices of rectangles. - */ -CV_EXPORTS_W void boxPoints(RotatedRect box, OutputArray points); - -/** @brief Finds a circle of the minimum area enclosing a 2D point set. - -The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm. - -@param points Input vector of 2D points, stored in std::vector\<\> or Mat -@param center Output center of the circle. -@param radius Output radius of the circle. - */ -CV_EXPORTS_W void minEnclosingCircle( InputArray points, - CV_OUT Point2f& center, CV_OUT float& radius ); - -/** @example minarea.cpp - */ - -/** @brief Finds a triangle of minimum area enclosing a 2D point set and returns its area. - -The function finds a triangle of minimum area enclosing the given set of 2D points and returns its -area. The output for a given 2D point set is shown in the image below. 2D points are depicted in -*red* and the enclosing triangle in *yellow*. - -![Sample output of the minimum enclosing triangle function](pics/minenclosingtriangle.png) - -The implementation of the algorithm is based on O'Rourke's @cite ORourke86 and Klee and Laskowski's -@cite KleeLaskowski85 papers. O'Rourke provides a \f$\theta(n)\f$ algorithm for finding the minimal -enclosing triangle of a 2D convex polygon with n vertices. Since the minEnclosingTriangle function -takes a 2D point set as input an additional preprocessing step of computing the convex hull of the -2D point set is required. The complexity of the convexHull function is \f$O(n log(n))\f$ which is higher -than \f$\theta(n)\f$. Thus the overall complexity of the function is \f$O(n log(n))\f$. - -@param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector\<\> or Mat -@param triangle Output vector of three 2D points defining the vertices of the triangle. The depth -of the OutputArray must be CV_32F. - */ -CV_EXPORTS_W double minEnclosingTriangle( InputArray points, CV_OUT OutputArray triangle ); - -/** @brief Compares two shapes. - -The function compares two shapes. All three implemented methods use the Hu invariants (see cv::HuMoments) - -@param contour1 First contour or grayscale image. -@param contour2 Second contour or grayscale image. -@param method Comparison method, see cv::ShapeMatchModes -@param parameter Method-specific parameter (not supported now). - */ -CV_EXPORTS_W double matchShapes( InputArray contour1, InputArray contour2, - int method, double parameter ); - -/** @example convexhull.cpp -An example using the convexHull functionality -*/ - -/** @brief Finds the convex hull of a point set. - -The function cv::convexHull finds the convex hull of a 2D point set using the Sklansky's algorithm @cite Sklansky82 -that has *O(N logN)* complexity in the current implementation. See the OpenCV sample convexhull.cpp -that demonstrates the usage of different function variants. - -@param points Input 2D point set, stored in std::vector or Mat. -@param hull Output convex hull. It is either an integer vector of indices or vector of points. In -the first case, the hull elements are 0-based indices of the convex hull points in the original -array (since the set of convex hull points is a subset of the original point set). In the second -case, hull elements are the convex hull points themselves. -@param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise. -Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing -to the right, and its Y axis pointing upwards. -@param returnPoints Operation flag. In case of a matrix, when the flag is true, the function -returns convex hull points. Otherwise, it returns indices of the convex hull points. When the -output array is std::vector, the flag is ignored, and the output depends on the type of the -vector: std::vector\ implies returnPoints=false, std::vector\ implies -returnPoints=true. - -@note `points` and `hull` should be different arrays, inplace processing isn't supported. - */ -CV_EXPORTS_W void convexHull( InputArray points, OutputArray hull, - bool clockwise = false, bool returnPoints = true ); - -/** @brief Finds the convexity defects of a contour. - -The figure below displays convexity defects of a hand contour: - -![image](pics/defects.png) - -@param contour Input contour. -@param convexhull Convex hull obtained using convexHull that should contain indices of the contour -points that make the hull. -@param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java -interface each convexity defect is represented as 4-element integer vector (a.k.a. cv::Vec4i): -(start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices -in the original contour of the convexity defect beginning, end and the farthest point, and -fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the -farthest contour point and the hull. That is, to get the floating-point value of the depth will be -fixpt_depth/256.0. - */ -CV_EXPORTS_W void convexityDefects( InputArray contour, InputArray convexhull, OutputArray convexityDefects ); - -/** @brief Tests a contour convexity. - -The function tests whether the input contour is convex or not. The contour must be simple, that is, -without self-intersections. Otherwise, the function output is undefined. - -@param contour Input vector of 2D points, stored in std::vector\<\> or Mat - */ -CV_EXPORTS_W bool isContourConvex( InputArray contour ); - -//! finds intersection of two convex polygons -CV_EXPORTS_W float intersectConvexConvex( InputArray _p1, InputArray _p2, - OutputArray _p12, bool handleNested = true ); - -/** @example fitellipse.cpp - An example using the fitEllipse technique -*/ - -/** @brief Fits an ellipse around a set of 2D points. - -The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of -all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm described by @cite Fitzgibbon95 -is used. Developer should keep in mind that it is possible that the returned -ellipse/rotatedRect data contains negative indices, due to the data points being close to the -border of the containing Mat element. - -@param points Input 2D point set, stored in std::vector\<\> or Mat - */ -CV_EXPORTS_W RotatedRect fitEllipse( InputArray points ); - -/** @brief Fits an ellipse around a set of 2D points. - - The function calculates the ellipse that fits a set of 2D points. - It returns the rotated rectangle in which the ellipse is inscribed. - The Approximate Mean Square (AMS) proposed by @cite Taubin1991 is used. - - For an ellipse, this basis set is \f$ \chi= \left(x^2, x y, y^2, x, y, 1\right) \f$, - which is a set of six free coefficients \f$ A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} \f$. - However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \f$ (a,b) \f$, - the position \f$ (x_0,y_0) \f$, and the orientation \f$ \theta \f$. This is because the basis set includes lines, - quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits. - If the fit is found to be a parabolic or hyperbolic function then the standard fitEllipse method is used. - The AMS method restricts the fit to parabolic, hyperbolic and elliptical curves - by imposing the condition that \f$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 \f$ where - the matrices \f$ Dx \f$ and \f$ Dy \f$ are the partial derivatives of the design matrix \f$ D \f$ with - respect to x and y. The matrices are formed row by row applying the following to - each of the points in the set: - \f{align*}{ - D(i,:)&=\left\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\right\} & - D_x(i,:)&=\left\{2 x_i,y_i,0,1,0,0\right\} & - D_y(i,:)&=\left\{0,x_i,2 y_i,0,1,0\right\} - \f} - The AMS method minimizes the cost function - \f{equation*}{ - \epsilon ^2=\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T } - \f} - - The minimum cost is found by solving the generalized eigenvalue problem. - - \f{equation*}{ - D^T D A = \lambda \left( D_x^T D_x + D_y^T D_y\right) A - \f} - - @param points Input 2D point set, stored in std::vector\<\> or Mat - */ -CV_EXPORTS_W RotatedRect fitEllipseAMS( InputArray points ); - - -/** @brief Fits an ellipse around a set of 2D points. - - The function calculates the ellipse that fits a set of 2D points. - It returns the rotated rectangle in which the ellipse is inscribed. - The Direct least square (Direct) method by @cite Fitzgibbon1999 is used. - - For an ellipse, this basis set is \f$ \chi= \left(x^2, x y, y^2, x, y, 1\right) \f$, - which is a set of six free coefficients \f$ A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} \f$. - However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \f$ (a,b) \f$, - the position \f$ (x_0,y_0) \f$, and the orientation \f$ \theta \f$. This is because the basis set includes lines, - quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits. - The Direct method confines the fit to ellipses by ensuring that \f$ 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \f$. - The condition imposed is that \f$ 4 A_{xx} A_{yy}- A_{xy}^2=1 \f$ which satisfies the inequality - and as the coefficients can be arbitrarily scaled is not overly restrictive. - - \f{equation*}{ - \epsilon ^2= A^T D^T D A \quad \text{with} \quad A^T C A =1 \quad \text{and} \quad C=\left(\begin{matrix} - 0 & 0 & 2 & 0 & 0 & 0 \\ - 0 & -1 & 0 & 0 & 0 & 0 \\ - 2 & 0 & 0 & 0 & 0 & 0 \\ - 0 & 0 & 0 & 0 & 0 & 0 \\ - 0 & 0 & 0 & 0 & 0 & 0 \\ - 0 & 0 & 0 & 0 & 0 & 0 - \end{matrix} \right) - \f} - - The minimum cost is found by solving the generalized eigenvalue problem. - - \f{equation*}{ - D^T D A = \lambda \left( C\right) A - \f} - - The system produces only one positive eigenvalue \f$ \lambda\f$ which is chosen as the solution - with its eigenvector \f$\mathbf{u}\f$. These are used to find the coefficients - - \f{equation*}{ - A = \sqrt{\frac{1}{\mathbf{u}^T C \mathbf{u}}} \mathbf{u} - \f} - The scaling factor guarantees that \f$A^T C A =1\f$. - - @param points Input 2D point set, stored in std::vector\<\> or Mat - */ -CV_EXPORTS_W RotatedRect fitEllipseDirect( InputArray points ); - -/** @brief Fits a line to a 2D or 3D point set. - -The function fitLine fits a line to a 2D or 3D point set by minimizing \f$\sum_i \rho(r_i)\f$ where -\f$r_i\f$ is a distance between the \f$i^{th}\f$ point, the line and \f$\rho(r)\f$ is a distance function, one -of the following: -- DIST_L2 -\f[\rho (r) = r^2/2 \quad \text{(the simplest and the fastest least-squares method)}\f] -- DIST_L1 -\f[\rho (r) = r\f] -- DIST_L12 -\f[\rho (r) = 2 \cdot ( \sqrt{1 + \frac{r^2}{2}} - 1)\f] -- DIST_FAIR -\f[\rho \left (r \right ) = C^2 \cdot \left ( \frac{r}{C} - \log{\left(1 + \frac{r}{C}\right)} \right ) \quad \text{where} \quad C=1.3998\f] -- DIST_WELSCH -\f[\rho \left (r \right ) = \frac{C^2}{2} \cdot \left ( 1 - \exp{\left(-\left(\frac{r}{C}\right)^2\right)} \right ) \quad \text{where} \quad C=2.9846\f] -- DIST_HUBER -\f[\rho (r) = \fork{r^2/2}{if \(r < C\)}{C \cdot (r-C/2)}{otherwise} \quad \text{where} \quad C=1.345\f] - -The algorithm is based on the M-estimator ( ) technique -that iteratively fits the line using the weighted least-squares algorithm. After each iteration the -weights \f$w_i\f$ are adjusted to be inversely proportional to \f$\rho(r_i)\f$ . - -@param points Input vector of 2D or 3D points, stored in std::vector\<\> or Mat. -@param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements -(like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and -(x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like -Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line -and (x0, y0, z0) is a point on the line. -@param distType Distance used by the M-estimator, see cv::DistanceTypes -@param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value -is chosen. -@param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line). -@param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps. - */ -CV_EXPORTS_W void fitLine( InputArray points, OutputArray line, int distType, - double param, double reps, double aeps ); - -/** @brief Performs a point-in-contour test. - -The function determines whether the point is inside a contour, outside, or lies on an edge (or -coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge) -value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively. -Otherwise, the return value is a signed distance between the point and the nearest contour edge. - -See below a sample output of the function where each image pixel is tested against the contour: - -![sample output](pics/pointpolygon.png) - -@param contour Input contour. -@param pt Point tested against the contour. -@param measureDist If true, the function estimates the signed distance from the point to the -nearest contour edge. Otherwise, the function only checks if the point is inside a contour or not. - */ -CV_EXPORTS_W double pointPolygonTest( InputArray contour, Point2f pt, bool measureDist ); - -/** @brief Finds out if there is any intersection between two rotated rectangles. - -If there is then the vertices of the intersecting region are returned as well. - -Below are some examples of intersection configurations. The hatched pattern indicates the -intersecting region and the red vertices are returned by the function. - -![intersection examples](pics/intersection.png) - -@param rect1 First rectangle -@param rect2 Second rectangle -@param intersectingRegion The output array of the vertices of the intersecting region. It returns -at most 8 vertices. Stored as std::vector\ or cv::Mat as Mx1 of type CV_32FC2. -@returns One of cv::RectanglesIntersectTypes - */ -CV_EXPORTS_W int rotatedRectangleIntersection( const RotatedRect& rect1, const RotatedRect& rect2, OutputArray intersectingRegion ); - -//! @} imgproc_shape - -CV_EXPORTS_W Ptr createCLAHE(double clipLimit = 40.0, Size tileGridSize = Size(8, 8)); - -//! Ballard, D.H. (1981). Generalizing the Hough transform to detect arbitrary shapes. Pattern Recognition 13 (2): 111-122. -//! Detects position only without translation and rotation -CV_EXPORTS Ptr createGeneralizedHoughBallard(); - -//! Guil, N., González-Linares, J.M. and Zapata, E.L. (1999). Bidimensional shape detection using an invariant approach. Pattern Recognition 32 (6): 1025-1038. -//! Detects position, translation and rotation -CV_EXPORTS Ptr createGeneralizedHoughGuil(); - -//! Performs linear blending of two images: -//! \f[ \texttt{dst}(i,j) = \texttt{weights1}(i,j)*\texttt{src1}(i,j) + \texttt{weights2}(i,j)*\texttt{src2}(i,j) \f] -//! @param src1 It has a type of CV_8UC(n) or CV_32FC(n), where n is a positive integer. -//! @param src2 It has the same type and size as src1. -//! @param weights1 It has a type of CV_32FC1 and the same size with src1. -//! @param weights2 It has a type of CV_32FC1 and the same size with src1. -//! @param dst It is created if it does not have the same size and type with src1. -CV_EXPORTS void blendLinear(InputArray src1, InputArray src2, InputArray weights1, InputArray weights2, OutputArray dst); - -//! @addtogroup imgproc_colormap -//! @{ - -//! GNU Octave/MATLAB equivalent colormaps -enum ColormapTypes -{ - COLORMAP_AUTUMN = 0, //!< ![autumn](pics/colormaps/colorscale_autumn.jpg) - COLORMAP_BONE = 1, //!< ![bone](pics/colormaps/colorscale_bone.jpg) - COLORMAP_JET = 2, //!< ![jet](pics/colormaps/colorscale_jet.jpg) - COLORMAP_WINTER = 3, //!< ![winter](pics/colormaps/colorscale_winter.jpg) - COLORMAP_RAINBOW = 4, //!< ![rainbow](pics/colormaps/colorscale_rainbow.jpg) - COLORMAP_OCEAN = 5, //!< ![ocean](pics/colormaps/colorscale_ocean.jpg) - COLORMAP_SUMMER = 6, //!< ![summer](pics/colormaps/colorscale_summer.jpg) - COLORMAP_SPRING = 7, //!< ![spring](pics/colormaps/colorscale_spring.jpg) - COLORMAP_COOL = 8, //!< ![cool](pics/colormaps/colorscale_cool.jpg) - COLORMAP_HSV = 9, //!< ![HSV](pics/colormaps/colorscale_hsv.jpg) - COLORMAP_PINK = 10, //!< ![pink](pics/colormaps/colorscale_pink.jpg) - COLORMAP_HOT = 11, //!< ![hot](pics/colormaps/colorscale_hot.jpg) - COLORMAP_PARULA = 12 //!< ![parula](pics/colormaps/colorscale_parula.jpg) -}; - -/** @example falsecolor.cpp -An example using applyColorMap function -*/ -/** @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image. - -@param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3. -@param dst The result is the colormapped source image. Note: Mat::create is called on dst. -@param colormap The colormap to apply, see cv::ColormapTypes -*/ -CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, int colormap); - -/** @brief Applies a user colormap on a given image. - -@param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3. -@param dst The result is the colormapped source image. Note: Mat::create is called on dst. -@param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256 -*/ -CV_EXPORTS_W void applyColorMap(InputArray src, OutputArray dst, InputArray userColor); - -//! @} imgproc_colormap - -//! @addtogroup imgproc_draw -//! @{ - -/** @brief Draws a line segment connecting two points. - -The function line draws the line segment between pt1 and pt2 points in the image. The line is -clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected -or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased -lines are drawn using Gaussian filtering. - -@param img Image. -@param pt1 First point of the line segment. -@param pt2 Second point of the line segment. -@param color Line color. -@param thickness Line thickness. -@param lineType Type of the line, see cv::LineTypes. -@param shift Number of fractional bits in the point coordinates. - */ -CV_EXPORTS_W void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, - int thickness = 1, int lineType = LINE_8, int shift = 0); - -/** @brief Draws a arrow segment pointing from the first point to the second one. - -The function arrowedLine draws an arrow between pt1 and pt2 points in the image. See also cv::line. - -@param img Image. -@param pt1 The point the arrow starts from. -@param pt2 The point the arrow points to. -@param color Line color. -@param thickness Line thickness. -@param line_type Type of the line, see cv::LineTypes -@param shift Number of fractional bits in the point coordinates. -@param tipLength The length of the arrow tip in relation to the arrow length - */ -CV_EXPORTS_W void arrowedLine(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, - int thickness=1, int line_type=8, int shift=0, double tipLength=0.1); - -/** @brief Draws a simple, thick, or filled up-right rectangle. - -The function rectangle draws a rectangle outline or a filled rectangle whose two opposite corners -are pt1 and pt2. - -@param img Image. -@param pt1 Vertex of the rectangle. -@param pt2 Vertex of the rectangle opposite to pt1 . -@param color Rectangle color or brightness (grayscale image). -@param thickness Thickness of lines that make up the rectangle. Negative values, like CV_FILLED , -mean that the function has to draw a filled rectangle. -@param lineType Type of the line. See the line description. -@param shift Number of fractional bits in the point coordinates. - */ -CV_EXPORTS_W void rectangle(InputOutputArray img, Point pt1, Point pt2, - const Scalar& color, int thickness = 1, - int lineType = LINE_8, int shift = 0); - -/** @overload - -use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and -r.br()-Point(1,1)` are opposite corners -*/ -CV_EXPORTS void rectangle(CV_IN_OUT Mat& img, Rect rec, - const Scalar& color, int thickness = 1, - int lineType = LINE_8, int shift = 0); - -/** @example Drawing_2.cpp -An example using drawing functions - */ -/** @brief Draws a circle. - -The function circle draws a simple or filled circle with a given center and radius. -@param img Image where the circle is drawn. -@param center Center of the circle. -@param radius Radius of the circle. -@param color Circle color. -@param thickness Thickness of the circle outline, if positive. Negative thickness means that a -filled circle is to be drawn. -@param lineType Type of the circle boundary. See the line description. -@param shift Number of fractional bits in the coordinates of the center and in the radius value. - */ -CV_EXPORTS_W void circle(InputOutputArray img, Point center, int radius, - const Scalar& color, int thickness = 1, - int lineType = LINE_8, int shift = 0); - -/** @brief Draws a simple or thick elliptic arc or fills an ellipse sector. - -The function cv::ellipse with more parameters draws an ellipse outline, a filled ellipse, an elliptic -arc, or a filled ellipse sector. The drawing code uses general parametric form. -A piecewise-linear curve is used to approximate the elliptic arc -boundary. If you need more control of the ellipse rendering, you can retrieve the curve using -cv::ellipse2Poly and then render it with polylines or fill it with cv::fillPoly. If you use the first -variant of the function and want to draw the whole ellipse, not an arc, pass `startAngle=0` and -`endAngle=360`. If `startAngle` is greater than `endAngle`, they are swapped. The figure below explains -the meaning of the parameters to draw the blue arc. - -![Parameters of Elliptic Arc](pics/ellipse.svg) - -@param img Image. -@param center Center of the ellipse. -@param axes Half of the size of the ellipse main axes. -@param angle Ellipse rotation angle in degrees. -@param startAngle Starting angle of the elliptic arc in degrees. -@param endAngle Ending angle of the elliptic arc in degrees. -@param color Ellipse color. -@param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that -a filled ellipse sector is to be drawn. -@param lineType Type of the ellipse boundary. See the line description. -@param shift Number of fractional bits in the coordinates of the center and values of axes. - */ -CV_EXPORTS_W void ellipse(InputOutputArray img, Point center, Size axes, - double angle, double startAngle, double endAngle, - const Scalar& color, int thickness = 1, - int lineType = LINE_8, int shift = 0); - -/** @overload -@param img Image. -@param box Alternative ellipse representation via RotatedRect. This means that the function draws -an ellipse inscribed in the rotated rectangle. -@param color Ellipse color. -@param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that -a filled ellipse sector is to be drawn. -@param lineType Type of the ellipse boundary. See the line description. -*/ -CV_EXPORTS_W void ellipse(InputOutputArray img, const RotatedRect& box, const Scalar& color, - int thickness = 1, int lineType = LINE_8); - -/* ----------------------------------------------------------------------------------------- */ -/* ADDING A SET OF PREDEFINED MARKERS WHICH COULD BE USED TO HIGHLIGHT POSITIONS IN AN IMAGE */ -/* ----------------------------------------------------------------------------------------- */ - -//! Possible set of marker types used for the cv::drawMarker function -enum MarkerTypes -{ - MARKER_CROSS = 0, //!< A crosshair marker shape - MARKER_TILTED_CROSS = 1, //!< A 45 degree tilted crosshair marker shape - MARKER_STAR = 2, //!< A star marker shape, combination of cross and tilted cross - MARKER_DIAMOND = 3, //!< A diamond marker shape - MARKER_SQUARE = 4, //!< A square marker shape - MARKER_TRIANGLE_UP = 5, //!< An upwards pointing triangle marker shape - MARKER_TRIANGLE_DOWN = 6 //!< A downwards pointing triangle marker shape -}; - -/** @brief Draws a marker on a predefined position in an image. - -The function drawMarker draws a marker on a given position in the image. For the moment several -marker types are supported, see cv::MarkerTypes for more information. - -@param img Image. -@param position The point where the crosshair is positioned. -@param color Line color. -@param markerType The specific type of marker you want to use, see cv::MarkerTypes -@param thickness Line thickness. -@param line_type Type of the line, see cv::LineTypes -@param markerSize The length of the marker axis [default = 20 pixels] - */ -CV_EXPORTS_W void drawMarker(CV_IN_OUT Mat& img, Point position, const Scalar& color, - int markerType = MARKER_CROSS, int markerSize=20, int thickness=1, - int line_type=8); - -/* ----------------------------------------------------------------------------------------- */ -/* END OF MARKER SECTION */ -/* ----------------------------------------------------------------------------------------- */ - -/** @overload */ -CV_EXPORTS void fillConvexPoly(Mat& img, const Point* pts, int npts, - const Scalar& color, int lineType = LINE_8, - int shift = 0); - -/** @brief Fills a convex polygon. - -The function fillConvexPoly draws a filled convex polygon. This function is much faster than the -function cv::fillPoly . It can fill not only convex polygons but any monotonic polygon without -self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line) -twice at the most (though, its top-most and/or the bottom edge could be horizontal). - -@param img Image. -@param points Polygon vertices. -@param color Polygon color. -@param lineType Type of the polygon boundaries. See the line description. -@param shift Number of fractional bits in the vertex coordinates. - */ -CV_EXPORTS_W void fillConvexPoly(InputOutputArray img, InputArray points, - const Scalar& color, int lineType = LINE_8, - int shift = 0); - -/** @overload */ -CV_EXPORTS void fillPoly(Mat& img, const Point** pts, - const int* npts, int ncontours, - const Scalar& color, int lineType = LINE_8, int shift = 0, - Point offset = Point() ); - -/** @example Drawing_1.cpp -An example using drawing functions - */ -/** @brief Fills the area bounded by one or more polygons. - -The function fillPoly fills an area bounded by several polygonal contours. The function can fill -complex areas, for example, areas with holes, contours with self-intersections (some of their -parts), and so forth. - -@param img Image. -@param pts Array of polygons where each polygon is represented as an array of points. -@param color Polygon color. -@param lineType Type of the polygon boundaries. See the line description. -@param shift Number of fractional bits in the vertex coordinates. -@param offset Optional offset of all points of the contours. - */ -CV_EXPORTS_W void fillPoly(InputOutputArray img, InputArrayOfArrays pts, - const Scalar& color, int lineType = LINE_8, int shift = 0, - Point offset = Point() ); - -/** @overload */ -CV_EXPORTS void polylines(Mat& img, const Point* const* pts, const int* npts, - int ncontours, bool isClosed, const Scalar& color, - int thickness = 1, int lineType = LINE_8, int shift = 0 ); - -/** @brief Draws several polygonal curves. - -@param img Image. -@param pts Array of polygonal curves. -@param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed, -the function draws a line from the last vertex of each curve to its first vertex. -@param color Polyline color. -@param thickness Thickness of the polyline edges. -@param lineType Type of the line segments. See the line description. -@param shift Number of fractional bits in the vertex coordinates. - -The function polylines draws one or more polygonal curves. - */ -CV_EXPORTS_W void polylines(InputOutputArray img, InputArrayOfArrays pts, - bool isClosed, const Scalar& color, - int thickness = 1, int lineType = LINE_8, int shift = 0 ); - -/** @example contours2.cpp - An example program illustrates the use of cv::findContours and cv::drawContours - \image html WindowsQtContoursOutput.png "Screenshot of the program" -*/ - -/** @example segment_objects.cpp -An example using drawContours to clean up a background segmentation result - */ - -/** @brief Draws contours outlines or filled contours. - -The function draws contour outlines in the image if \f$\texttt{thickness} \ge 0\f$ or fills the area -bounded by the contours if \f$\texttt{thickness}<0\f$ . The example below shows how to retrieve -connected components from the binary image and label them: : -@code - #include "opencv2/imgproc.hpp" - #include "opencv2/highgui.hpp" - - using namespace cv; - using namespace std; - - int main( int argc, char** argv ) - { - Mat src; - // the first command-line parameter must be a filename of the binary - // (black-n-white) image - if( argc != 2 || !(src=imread(argv[1], 0)).data) - return -1; - - Mat dst = Mat::zeros(src.rows, src.cols, CV_8UC3); - - src = src > 1; - namedWindow( "Source", 1 ); - imshow( "Source", src ); - - vector > contours; - vector hierarchy; - - findContours( src, contours, hierarchy, - RETR_CCOMP, CHAIN_APPROX_SIMPLE ); - - // iterate through all the top-level contours, - // draw each connected component with its own random color - int idx = 0; - for( ; idx >= 0; idx = hierarchy[idx][0] ) - { - Scalar color( rand()&255, rand()&255, rand()&255 ); - drawContours( dst, contours, idx, color, FILLED, 8, hierarchy ); - } - - namedWindow( "Components", 1 ); - imshow( "Components", dst ); - waitKey(0); - } -@endcode - -@param image Destination image. -@param contours All the input contours. Each contour is stored as a point vector. -@param contourIdx Parameter indicating a contour to draw. If it is negative, all the contours are drawn. -@param color Color of the contours. -@param thickness Thickness of lines the contours are drawn with. If it is negative (for example, -thickness=CV_FILLED ), the contour interiors are drawn. -@param lineType Line connectivity. See cv::LineTypes. -@param hierarchy Optional information about hierarchy. It is only needed if you want to draw only -some of the contours (see maxLevel ). -@param maxLevel Maximal level for drawn contours. If it is 0, only the specified contour is drawn. -If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function -draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This -parameter is only taken into account when there is hierarchy available. -@param offset Optional contour shift parameter. Shift all the drawn contours by the specified -\f$\texttt{offset}=(dx,dy)\f$ . -@note When thickness=CV_FILLED, the function is designed to handle connected components with holes correctly -even when no hierarchy date is provided. This is done by analyzing all the outlines together -using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved -contours. In order to solve this problem, you need to call drawContours separately for each sub-group -of contours, or iterate over the collection using contourIdx parameter. - */ -CV_EXPORTS_W void drawContours( InputOutputArray image, InputArrayOfArrays contours, - int contourIdx, const Scalar& color, - int thickness = 1, int lineType = LINE_8, - InputArray hierarchy = noArray(), - int maxLevel = INT_MAX, Point offset = Point() ); - -/** @brief Clips the line against the image rectangle. - -The function cv::clipLine calculates a part of the line segment that is entirely within the specified -rectangle. it returns false if the line segment is completely outside the rectangle. Otherwise, -it returns true . -@param imgSize Image size. The image rectangle is Rect(0, 0, imgSize.width, imgSize.height) . -@param pt1 First line point. -@param pt2 Second line point. - */ -CV_EXPORTS bool clipLine(Size imgSize, CV_IN_OUT Point& pt1, CV_IN_OUT Point& pt2); - -/** @overload -@param imgSize Image size. The image rectangle is Rect(0, 0, imgSize.width, imgSize.height) . -@param pt1 First line point. -@param pt2 Second line point. -*/ -CV_EXPORTS bool clipLine(Size2l imgSize, CV_IN_OUT Point2l& pt1, CV_IN_OUT Point2l& pt2); - -/** @overload -@param imgRect Image rectangle. -@param pt1 First line point. -@param pt2 Second line point. -*/ -CV_EXPORTS_W bool clipLine(Rect imgRect, CV_OUT CV_IN_OUT Point& pt1, CV_OUT CV_IN_OUT Point& pt2); - -/** @brief Approximates an elliptic arc with a polyline. - -The function ellipse2Poly computes the vertices of a polyline that approximates the specified -elliptic arc. It is used by cv::ellipse. If `arcStart` is greater than `arcEnd`, they are swapped. - -@param center Center of the arc. -@param axes Half of the size of the ellipse main axes. See the ellipse for details. -@param angle Rotation angle of the ellipse in degrees. See the ellipse for details. -@param arcStart Starting angle of the elliptic arc in degrees. -@param arcEnd Ending angle of the elliptic arc in degrees. -@param delta Angle between the subsequent polyline vertices. It defines the approximation -accuracy. -@param pts Output vector of polyline vertices. - */ -CV_EXPORTS_W void ellipse2Poly( Point center, Size axes, int angle, - int arcStart, int arcEnd, int delta, - CV_OUT std::vector& pts ); - -/** @overload -@param center Center of the arc. -@param axes Half of the size of the ellipse main axes. See the ellipse for details. -@param angle Rotation angle of the ellipse in degrees. See the ellipse for details. -@param arcStart Starting angle of the elliptic arc in degrees. -@param arcEnd Ending angle of the elliptic arc in degrees. -@param delta Angle between the subsequent polyline vertices. It defines the approximation -accuracy. -@param pts Output vector of polyline vertices. -*/ -CV_EXPORTS void ellipse2Poly(Point2d center, Size2d axes, int angle, - int arcStart, int arcEnd, int delta, - CV_OUT std::vector& pts); - -/** @brief Draws a text string. - -The function putText renders the specified text string in the image. Symbols that cannot be rendered -using the specified font are replaced by question marks. See getTextSize for a text rendering code -example. - -@param img Image. -@param text Text string to be drawn. -@param org Bottom-left corner of the text string in the image. -@param fontFace Font type, see cv::HersheyFonts. -@param fontScale Font scale factor that is multiplied by the font-specific base size. -@param color Text color. -@param thickness Thickness of the lines used to draw a text. -@param lineType Line type. See the line for details. -@param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise, -it is at the top-left corner. - */ -CV_EXPORTS_W void putText( InputOutputArray img, const String& text, Point org, - int fontFace, double fontScale, Scalar color, - int thickness = 1, int lineType = LINE_8, - bool bottomLeftOrigin = false ); - -/** @brief Calculates the width and height of a text string. - -The function getTextSize calculates and returns the size of a box that contains the specified text. -That is, the following code renders some text, the tight box surrounding it, and the baseline: : -@code - String text = "Funny text inside the box"; - int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX; - double fontScale = 2; - int thickness = 3; - - Mat img(600, 800, CV_8UC3, Scalar::all(0)); - - int baseline=0; - Size textSize = getTextSize(text, fontFace, - fontScale, thickness, &baseline); - baseline += thickness; - - // center the text - Point textOrg((img.cols - textSize.width)/2, - (img.rows + textSize.height)/2); - - // draw the box - rectangle(img, textOrg + Point(0, baseline), - textOrg + Point(textSize.width, -textSize.height), - Scalar(0,0,255)); - // ... and the baseline first - line(img, textOrg + Point(0, thickness), - textOrg + Point(textSize.width, thickness), - Scalar(0, 0, 255)); - - // then put the text itself - putText(img, text, textOrg, fontFace, fontScale, - Scalar::all(255), thickness, 8); -@endcode - -@param text Input text string. -@param fontFace Font to use, see cv::HersheyFonts. -@param fontScale Font scale factor that is multiplied by the font-specific base size. -@param thickness Thickness of lines used to render the text. See putText for details. -@param[out] baseLine y-coordinate of the baseline relative to the bottom-most text -point. -@return The size of a box that contains the specified text. - -@see cv::putText - */ -CV_EXPORTS_W Size getTextSize(const String& text, int fontFace, - double fontScale, int thickness, - CV_OUT int* baseLine); - -/** @brief Line iterator - -The class is used to iterate over all the pixels on the raster line -segment connecting two specified points. - -The class LineIterator is used to get each pixel of a raster line. It -can be treated as versatile implementation of the Bresenham algorithm -where you can stop at each pixel and do some extra processing, for -example, grab pixel values along the line or draw a line with an effect -(for example, with XOR operation). - -The number of pixels along the line is stored in LineIterator::count. -The method LineIterator::pos returns the current position in the image: - -@code{.cpp} -// grabs pixels along the line (pt1, pt2) -// from 8-bit 3-channel image to the buffer -LineIterator it(img, pt1, pt2, 8); -LineIterator it2 = it; -vector buf(it.count); - -for(int i = 0; i < it.count; i++, ++it) - buf[i] = *(const Vec3b)*it; - -// alternative way of iterating through the line -for(int i = 0; i < it2.count; i++, ++it2) -{ - Vec3b val = img.at(it2.pos()); - CV_Assert(buf[i] == val); -} -@endcode -*/ -class CV_EXPORTS LineIterator -{ -public: - /** @brief intializes the iterator - - creates iterators for the line connecting pt1 and pt2 - the line will be clipped on the image boundaries - the line is 8-connected or 4-connected - If leftToRight=true, then the iteration is always done - from the left-most point to the right most, - not to depend on the ordering of pt1 and pt2 parameters - */ - LineIterator( const Mat& img, Point pt1, Point pt2, - int connectivity = 8, bool leftToRight = false ); - /** @brief returns pointer to the current pixel - */ - uchar* operator *(); - /** @brief prefix increment operator (++it). shifts iterator to the next pixel - */ - LineIterator& operator ++(); - /** @brief postfix increment operator (it++). shifts iterator to the next pixel - */ - LineIterator operator ++(int); - /** @brief returns coordinates of the current pixel - */ - Point pos() const; - - uchar* ptr; - const uchar* ptr0; - int step, elemSize; - int err, count; - int minusDelta, plusDelta; - int minusStep, plusStep; -}; - -//! @cond IGNORED - -// === LineIterator implementation === - -inline -uchar* LineIterator::operator *() -{ - return ptr; -} - -inline -LineIterator& LineIterator::operator ++() -{ - int mask = err < 0 ? -1 : 0; - err += minusDelta + (plusDelta & mask); - ptr += minusStep + (plusStep & mask); - return *this; -} - -inline -LineIterator LineIterator::operator ++(int) -{ - LineIterator it = *this; - ++(*this); - return it; -} - -inline -Point LineIterator::pos() const -{ - Point p; - p.y = (int)((ptr - ptr0)/step); - p.x = (int)(((ptr - ptr0) - p.y*step)/elemSize); - return p; -} - -//! @endcond - -//! @} imgproc_draw - -//! @} imgproc - -} // cv - -#ifndef DISABLE_OPENCV_24_COMPATIBILITY -#include "opencv2/imgproc/imgproc_c.h" -#endif - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/detail/distortion_model.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/detail/distortion_model.hpp deleted file mode 100644 index a9c3ddec8..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/detail/distortion_model.hpp +++ /dev/null @@ -1,123 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_IMGPROC_DETAIL_DISTORTION_MODEL_HPP -#define OPENCV_IMGPROC_DETAIL_DISTORTION_MODEL_HPP - -//! @cond IGNORED - -namespace cv { namespace detail { -/** -Computes the matrix for the projection onto a tilted image sensor -\param tauX angular parameter rotation around x-axis -\param tauY angular parameter rotation around y-axis -\param matTilt if not NULL returns the matrix -\f[ -\vecthreethree{R_{33}(\tau_x, \tau_y)}{0}{-R_{13}((\tau_x, \tau_y)} -{0}{R_{33}(\tau_x, \tau_y)}{-R_{23}(\tau_x, \tau_y)} -{0}{0}{1} R(\tau_x, \tau_y) -\f] -where -\f[ -R(\tau_x, \tau_y) = -\vecthreethree{\cos(\tau_y)}{0}{-\sin(\tau_y)}{0}{1}{0}{\sin(\tau_y)}{0}{\cos(\tau_y)} -\vecthreethree{1}{0}{0}{0}{\cos(\tau_x)}{\sin(\tau_x)}{0}{-\sin(\tau_x)}{\cos(\tau_x)} = -\vecthreethree{\cos(\tau_y)}{\sin(\tau_y)\sin(\tau_x)}{-\sin(\tau_y)\cos(\tau_x)} -{0}{\cos(\tau_x)}{\sin(\tau_x)} -{\sin(\tau_y)}{-\cos(\tau_y)\sin(\tau_x)}{\cos(\tau_y)\cos(\tau_x)}. -\f] -\param dMatTiltdTauX if not NULL it returns the derivative of matTilt with -respect to \f$\tau_x\f$. -\param dMatTiltdTauY if not NULL it returns the derivative of matTilt with -respect to \f$\tau_y\f$. -\param invMatTilt if not NULL it returns the inverse of matTilt -**/ -template -void computeTiltProjectionMatrix(FLOAT tauX, - FLOAT tauY, - Matx* matTilt = 0, - Matx* dMatTiltdTauX = 0, - Matx* dMatTiltdTauY = 0, - Matx* invMatTilt = 0) -{ - FLOAT cTauX = cos(tauX); - FLOAT sTauX = sin(tauX); - FLOAT cTauY = cos(tauY); - FLOAT sTauY = sin(tauY); - Matx matRotX = Matx(1,0,0,0,cTauX,sTauX,0,-sTauX,cTauX); - Matx matRotY = Matx(cTauY,0,-sTauY,0,1,0,sTauY,0,cTauY); - Matx matRotXY = matRotY * matRotX; - Matx matProjZ = Matx(matRotXY(2,2),0,-matRotXY(0,2),0,matRotXY(2,2),-matRotXY(1,2),0,0,1); - if (matTilt) - { - // Matrix for trapezoidal distortion of tilted image sensor - *matTilt = matProjZ * matRotXY; - } - if (dMatTiltdTauX) - { - // Derivative with respect to tauX - Matx dMatRotXYdTauX = matRotY * Matx(0,0,0,0,-sTauX,cTauX,0,-cTauX,-sTauX); - Matx dMatProjZdTauX = Matx(dMatRotXYdTauX(2,2),0,-dMatRotXYdTauX(0,2), - 0,dMatRotXYdTauX(2,2),-dMatRotXYdTauX(1,2),0,0,0); - *dMatTiltdTauX = (matProjZ * dMatRotXYdTauX) + (dMatProjZdTauX * matRotXY); - } - if (dMatTiltdTauY) - { - // Derivative with respect to tauY - Matx dMatRotXYdTauY = Matx(-sTauY,0,-cTauY,0,0,0,cTauY,0,-sTauY) * matRotX; - Matx dMatProjZdTauY = Matx(dMatRotXYdTauY(2,2),0,-dMatRotXYdTauY(0,2), - 0,dMatRotXYdTauY(2,2),-dMatRotXYdTauY(1,2),0,0,0); - *dMatTiltdTauY = (matProjZ * dMatRotXYdTauY) + (dMatProjZdTauY * matRotXY); - } - if (invMatTilt) - { - FLOAT inv = 1./matRotXY(2,2); - Matx invMatProjZ = Matx(inv,0,inv*matRotXY(0,2),0,inv,inv*matRotXY(1,2),0,0,1); - *invMatTilt = matRotXY.t()*invMatProjZ; - } -} -}} // namespace detail, cv - - -//! @endcond - -#endif // OPENCV_IMGPROC_DETAIL_DISTORTION_MODEL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/hal/hal.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/hal/hal.hpp deleted file mode 100644 index a435fd6b8..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/hal/hal.hpp +++ /dev/null @@ -1,241 +0,0 @@ -#ifndef CV_IMGPROC_HAL_HPP -#define CV_IMGPROC_HAL_HPP - -#include "opencv2/core/cvdef.h" -#include "opencv2/core/cvstd.hpp" -#include "opencv2/core/hal/interface.h" - -namespace cv { namespace hal { - -//! @addtogroup imgproc_hal_functions -//! @{ - -//--------------------------- -//! @cond IGNORED - -struct CV_EXPORTS Filter2D -{ - CV_DEPRECATED static Ptr create(uchar * , size_t , int , - int , int , - int , int , - int , int , - int , double , - int , int , - bool , bool ); - virtual void apply(uchar * , size_t , - uchar * , size_t , - int , int , - int , int , - int , int ) = 0; - virtual ~Filter2D() {} -}; - -struct CV_EXPORTS SepFilter2D -{ - CV_DEPRECATED static Ptr create(int , int , int , - uchar * , int , - uchar * , int , - int , int , - double , int ); - virtual void apply(uchar * , size_t , - uchar * , size_t , - int , int , - int , int , - int , int ) = 0; - virtual ~SepFilter2D() {} -}; - - -struct CV_EXPORTS Morph -{ - CV_DEPRECATED static Ptr create(int , int , int , int , int , - int , uchar * , size_t , - int , int , - int , int , - int , const double *, - int , bool , bool ); - virtual void apply(uchar * , size_t , uchar * , size_t , int , int , - int , int , int , int , - int , int , int , int ) = 0; - virtual ~Morph() {} -}; - -//! @endcond -//--------------------------- - -CV_EXPORTS void filter2D(int stype, int dtype, int kernel_type, - uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int full_width, int full_height, - int offset_x, int offset_y, - uchar * kernel_data, size_t kernel_step, - int kernel_width, int kernel_height, - int anchor_x, int anchor_y, - double delta, int borderType, - bool isSubmatrix); - -CV_EXPORTS void sepFilter2D(int stype, int dtype, int ktype, - uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int full_width, int full_height, - int offset_x, int offset_y, - uchar * kernelx_data, int kernelx_len, - uchar * kernely_data, int kernely_len, - int anchor_x, int anchor_y, - double delta, int borderType); - -CV_EXPORTS void morph(int op, int src_type, int dst_type, - uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int roi_width, int roi_height, int roi_x, int roi_y, - int roi_width2, int roi_height2, int roi_x2, int roi_y2, - int kernel_type, uchar * kernel_data, size_t kernel_step, - int kernel_width, int kernel_height, int anchor_x, int anchor_y, - int borderType, const double borderValue[4], - int iterations, bool isSubmatrix); - - -CV_EXPORTS void resize(int src_type, - const uchar * src_data, size_t src_step, int src_width, int src_height, - uchar * dst_data, size_t dst_step, int dst_width, int dst_height, - double inv_scale_x, double inv_scale_y, int interpolation); - -CV_EXPORTS void warpAffine(int src_type, - const uchar * src_data, size_t src_step, int src_width, int src_height, - uchar * dst_data, size_t dst_step, int dst_width, int dst_height, - const double M[6], int interpolation, int borderType, const double borderValue[4]); - -CV_EXPORTS void warpPerspectve(int src_type, - const uchar * src_data, size_t src_step, int src_width, int src_height, - uchar * dst_data, size_t dst_step, int dst_width, int dst_height, - const double M[9], int interpolation, int borderType, const double borderValue[4]); - -CV_EXPORTS void cvtBGRtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int scn, int dcn, bool swapBlue); - -CV_EXPORTS void cvtBGRtoBGR5x5(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int scn, bool swapBlue, int greenBits); - -CV_EXPORTS void cvtBGR5x5toBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int dcn, bool swapBlue, int greenBits); - -CV_EXPORTS void cvtBGRtoGray(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int scn, bool swapBlue); - -CV_EXPORTS void cvtGraytoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int dcn); - -CV_EXPORTS void cvtBGR5x5toGray(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int greenBits); - -CV_EXPORTS void cvtGraytoBGR5x5(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int greenBits); -CV_EXPORTS void cvtBGRtoYUV(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int scn, bool swapBlue, bool isCbCr); - -CV_EXPORTS void cvtYUVtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int dcn, bool swapBlue, bool isCbCr); - -CV_EXPORTS void cvtBGRtoXYZ(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int scn, bool swapBlue); - -CV_EXPORTS void cvtXYZtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int dcn, bool swapBlue); - -CV_EXPORTS void cvtBGRtoHSV(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int scn, bool swapBlue, bool isFullRange, bool isHSV); - -CV_EXPORTS void cvtHSVtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int dcn, bool swapBlue, bool isFullRange, bool isHSV); - -CV_EXPORTS void cvtBGRtoLab(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int scn, bool swapBlue, bool isLab, bool srgb); - -CV_EXPORTS void cvtLabtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int depth, int dcn, bool swapBlue, bool isLab, bool srgb); - -CV_EXPORTS void cvtTwoPlaneYUVtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int dst_width, int dst_height, - int dcn, bool swapBlue, int uIdx); - -//! Separate Y and UV planes -CV_EXPORTS void cvtTwoPlaneYUVtoBGR(const uchar * y_data, const uchar * uv_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int dst_width, int dst_height, - int dcn, bool swapBlue, int uIdx); - -CV_EXPORTS void cvtThreePlaneYUVtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int dst_width, int dst_height, - int dcn, bool swapBlue, int uIdx); - -CV_EXPORTS void cvtBGRtoThreePlaneYUV(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int scn, bool swapBlue, int uIdx); - -//! Separate Y and UV planes -CV_EXPORTS void cvtBGRtoTwoPlaneYUV(const uchar * src_data, size_t src_step, - uchar * y_data, uchar * uv_data, size_t dst_step, - int width, int height, - int scn, bool swapBlue, int uIdx); - -CV_EXPORTS void cvtOnePlaneYUVtoBGR(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height, - int dcn, bool swapBlue, int uIdx, int ycn); - -CV_EXPORTS void cvtRGBAtoMultipliedRGBA(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height); - -CV_EXPORTS void cvtMultipliedRGBAtoRGBA(const uchar * src_data, size_t src_step, - uchar * dst_data, size_t dst_step, - int width, int height); - -CV_EXPORTS void integral(int depth, int sdepth, int sqdepth, - const uchar* src, size_t srcstep, - uchar* sum, size_t sumstep, - uchar* sqsum, size_t sqsumstep, - uchar* tilted, size_t tstep, - int width, int height, int cn); - -//! @} - -}} - -#endif // CV_IMGPROC_HAL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/types_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/types_c.h deleted file mode 100644 index 13ffe1b1a..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/imgproc/types_c.h +++ /dev/null @@ -1,629 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_IMGPROC_TYPES_C_H -#define OPENCV_IMGPROC_TYPES_C_H - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** @addtogroup imgproc_c - @{ -*/ - -/** Connected component structure */ -typedef struct CvConnectedComp -{ - double area; /** DBL_EPSILON ? 1./std::sqrt(am00) : 0; - } - operator cv::Moments() const - { - return cv::Moments(m00, m10, m01, m20, m11, m02, m30, m21, m12, m03); - } -#endif -} -CvMoments; - -/** Hu invariants */ -typedef struct CvHuMoments -{ - double hu1, hu2, hu3, hu4, hu5, hu6, hu7; /**< Hu invariants */ -} -CvHuMoments; - -/** Template matching methods */ -enum -{ - CV_TM_SQDIFF =0, - CV_TM_SQDIFF_NORMED =1, - CV_TM_CCORR =2, - CV_TM_CCORR_NORMED =3, - CV_TM_CCOEFF =4, - CV_TM_CCOEFF_NORMED =5 -}; - -typedef float (CV_CDECL * CvDistanceFunction)( const float* a, const float* b, void* user_param ); - -/** Contour retrieval modes */ -enum -{ - CV_RETR_EXTERNAL=0, - CV_RETR_LIST=1, - CV_RETR_CCOMP=2, - CV_RETR_TREE=3, - CV_RETR_FLOODFILL=4 -}; - -/** Contour approximation methods */ -enum -{ - CV_CHAIN_CODE=0, - CV_CHAIN_APPROX_NONE=1, - CV_CHAIN_APPROX_SIMPLE=2, - CV_CHAIN_APPROX_TC89_L1=3, - CV_CHAIN_APPROX_TC89_KCOS=4, - CV_LINK_RUNS=5 -}; - -/* -Internal structure that is used for sequential retrieving contours from the image. -It supports both hierarchical and plane variants of Suzuki algorithm. -*/ -typedef struct _CvContourScanner* CvContourScanner; - -/** Freeman chain reader state */ -typedef struct CvChainPtReader -{ - CV_SEQ_READER_FIELDS() - char code; - CvPoint pt; - schar deltas[8][2]; -} -CvChainPtReader; - -/** initializes 8-element array for fast access to 3x3 neighborhood of a pixel */ -#define CV_INIT_3X3_DELTAS( deltas, step, nch ) \ - ((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \ - (deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \ - (deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \ - (deltas)[6] = (step), (deltas)[7] = (step) + (nch)) - - -/** Contour approximation algorithms */ -enum -{ - CV_POLY_APPROX_DP = 0 -}; - -/** Shape matching methods */ -enum -{ - CV_CONTOURS_MATCH_I1 =1, //!< \f[I_1(A,B) = \sum _{i=1...7} \left | \frac{1}{m^A_i} - \frac{1}{m^B_i} \right |\f] - CV_CONTOURS_MATCH_I2 =2, //!< \f[I_2(A,B) = \sum _{i=1...7} \left | m^A_i - m^B_i \right |\f] - CV_CONTOURS_MATCH_I3 =3 //!< \f[I_3(A,B) = \max _{i=1...7} \frac{ \left| m^A_i - m^B_i \right| }{ \left| m^A_i \right| }\f] -}; - -/** Shape orientation */ -enum -{ - CV_CLOCKWISE =1, - CV_COUNTER_CLOCKWISE =2 -}; - - -/** Convexity defect */ -typedef struct CvConvexityDefect -{ - CvPoint* start; /**< point of the contour where the defect begins */ - CvPoint* end; /**< point of the contour where the defect ends */ - CvPoint* depth_point; /**< the farthest from the convex hull point within the defect */ - float depth; /**< distance between the farthest point and the convex hull */ -} CvConvexityDefect; - - -/** Histogram comparison methods */ -enum -{ - CV_COMP_CORREL =0, - CV_COMP_CHISQR =1, - CV_COMP_INTERSECT =2, - CV_COMP_BHATTACHARYYA =3, - CV_COMP_HELLINGER =CV_COMP_BHATTACHARYYA, - CV_COMP_CHISQR_ALT =4, - CV_COMP_KL_DIV =5 -}; - -/** Mask size for distance transform */ -enum -{ - CV_DIST_MASK_3 =3, - CV_DIST_MASK_5 =5, - CV_DIST_MASK_PRECISE =0 -}; - -/** Content of output label array: connected components or pixels */ -enum -{ - CV_DIST_LABEL_CCOMP = 0, - CV_DIST_LABEL_PIXEL = 1 -}; - -/** Distance types for Distance Transform and M-estimators */ -enum -{ - CV_DIST_USER =-1, /**< User defined distance */ - CV_DIST_L1 =1, /**< distance = |x1-x2| + |y1-y2| */ - CV_DIST_L2 =2, /**< the simple euclidean distance */ - CV_DIST_C =3, /**< distance = max(|x1-x2|,|y1-y2|) */ - CV_DIST_L12 =4, /**< L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) */ - CV_DIST_FAIR =5, /**< distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 */ - CV_DIST_WELSCH =6, /**< distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 */ - CV_DIST_HUBER =7 /**< distance = |x| threshold ? max_value : 0 */ - CV_THRESH_BINARY_INV =1, /**< value = value > threshold ? 0 : max_value */ - CV_THRESH_TRUNC =2, /**< value = value > threshold ? threshold : value */ - CV_THRESH_TOZERO =3, /**< value = value > threshold ? value : 0 */ - CV_THRESH_TOZERO_INV =4, /**< value = value > threshold ? 0 : value */ - CV_THRESH_MASK =7, - CV_THRESH_OTSU =8, /**< use Otsu algorithm to choose the optimal threshold value; - combine the flag with one of the above CV_THRESH_* values */ - CV_THRESH_TRIANGLE =16 /**< use Triangle algorithm to choose the optimal threshold value; - combine the flag with one of the above CV_THRESH_* values, but not - with CV_THRESH_OTSU */ -}; - -/** Adaptive threshold methods */ -enum -{ - CV_ADAPTIVE_THRESH_MEAN_C =0, - CV_ADAPTIVE_THRESH_GAUSSIAN_C =1 -}; - -/** FloodFill flags */ -enum -{ - CV_FLOODFILL_FIXED_RANGE =(1 << 16), - CV_FLOODFILL_MASK_ONLY =(1 << 17) -}; - - -/** Canny edge detector flags */ -enum -{ - CV_CANNY_L2_GRADIENT =(1 << 31) -}; - -/** Variants of a Hough transform */ -enum -{ - CV_HOUGH_STANDARD =0, - CV_HOUGH_PROBABILISTIC =1, - CV_HOUGH_MULTI_SCALE =2, - CV_HOUGH_GRADIENT =3 -}; - - -/* Fast search data structures */ -struct CvFeatureTree; -struct CvLSH; -struct CvLSHOperations; - -/** @} */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/objdetect_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/objdetect_c.h deleted file mode 100644 index 67dc2f4e6..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/objdetect/objdetect_c.h +++ /dev/null @@ -1,166 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_OBJDETECT_C_H -#define OPENCV_OBJDETECT_C_H - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus -#include -#include - -extern "C" { -#endif - -/** @addtogroup objdetect_c - @{ - */ - -/****************************************************************************************\ -* Haar-like Object Detection functions * -\****************************************************************************************/ - -#define CV_HAAR_MAGIC_VAL 0x42500000 -#define CV_TYPE_NAME_HAAR "opencv-haar-classifier" - -#define CV_IS_HAAR_CLASSIFIER( haar ) \ - ((haar) != NULL && \ - (((const CvHaarClassifierCascade*)(haar))->flags & CV_MAGIC_MASK)==CV_HAAR_MAGIC_VAL) - -#define CV_HAAR_FEATURE_MAX 3 -#define CV_HAAR_STAGE_MAX 1000 - -typedef struct CvHaarFeature -{ - int tilted; - struct - { - CvRect r; - float weight; - } rect[CV_HAAR_FEATURE_MAX]; -} CvHaarFeature; - -typedef struct CvHaarClassifier -{ - int count; - CvHaarFeature* haar_feature; - float* threshold; - int* left; - int* right; - float* alpha; -} CvHaarClassifier; - -typedef struct CvHaarStageClassifier -{ - int count; - float threshold; - CvHaarClassifier* classifier; - - int next; - int child; - int parent; -} CvHaarStageClassifier; - -typedef struct CvHidHaarClassifierCascade CvHidHaarClassifierCascade; - -typedef struct CvHaarClassifierCascade -{ - int flags; - int count; - CvSize orig_window_size; - CvSize real_window_size; - double scale; - CvHaarStageClassifier* stage_classifier; - CvHidHaarClassifierCascade* hid_cascade; -} CvHaarClassifierCascade; - -typedef struct CvAvgComp -{ - CvRect rect; - int neighbors; -} CvAvgComp; - -/* Loads haar classifier cascade from a directory. - It is obsolete: convert your cascade to xml and use cvLoad instead */ -CVAPI(CvHaarClassifierCascade*) cvLoadHaarClassifierCascade( - const char* directory, CvSize orig_window_size); - -CVAPI(void) cvReleaseHaarClassifierCascade( CvHaarClassifierCascade** cascade ); - -#define CV_HAAR_DO_CANNY_PRUNING 1 -#define CV_HAAR_SCALE_IMAGE 2 -#define CV_HAAR_FIND_BIGGEST_OBJECT 4 -#define CV_HAAR_DO_ROUGH_SEARCH 8 - -CVAPI(CvSeq*) cvHaarDetectObjects( const CvArr* image, - CvHaarClassifierCascade* cascade, CvMemStorage* storage, - double scale_factor CV_DEFAULT(1.1), - int min_neighbors CV_DEFAULT(3), int flags CV_DEFAULT(0), - CvSize min_size CV_DEFAULT(cvSize(0,0)), CvSize max_size CV_DEFAULT(cvSize(0,0))); - -/* sets images for haar classifier cascade */ -CVAPI(void) cvSetImagesForHaarClassifierCascade( CvHaarClassifierCascade* cascade, - const CvArr* sum, const CvArr* sqsum, - const CvArr* tilted_sum, double scale ); - -/* runs the cascade on the specified window */ -CVAPI(int) cvRunHaarClassifierCascade( const CvHaarClassifierCascade* cascade, - CvPoint pt, int start_stage CV_DEFAULT(0)); - -/** @} objdetect_c */ - -#ifdef __cplusplus -} - -CV_EXPORTS CvSeq* cvHaarDetectObjectsForROC( const CvArr* image, - CvHaarClassifierCascade* cascade, CvMemStorage* storage, - std::vector& rejectLevels, std::vector& levelWeightds, - double scale_factor = 1.1, - int min_neighbors = 3, int flags = 0, - CvSize min_size = cvSize(0, 0), CvSize max_size = cvSize(0, 0), - bool outputRejectLevels = false ); - -#endif - -#endif /* OPENCV_OBJDETECT_C_H */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/photo/photo_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/photo/photo_c.h deleted file mode 100644 index cd623c191..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/photo/photo_c.h +++ /dev/null @@ -1,74 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_PHOTO_C_H -#define OPENCV_PHOTO_C_H - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** @addtogroup photo_c - @{ - */ - -/* Inpainting algorithms */ -enum InpaintingModes -{ - CV_INPAINT_NS =0, - CV_INPAINT_TELEA =1 -}; - - -/* Inpaints the selected region in the image */ -CVAPI(void) cvInpaint( const CvArr* src, const CvArr* inpaint_mask, - CvArr* dst, double inpaintRange, int flags ); - -/** @} */ - -#ifdef __cplusplus -} //extern "C" -#endif - -#endif //OPENCV_PHOTO_C_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/shape.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/shape.hpp deleted file mode 100644 index f302b6bbc..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/shape.hpp +++ /dev/null @@ -1,57 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2012, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_SHAPE_HPP -#define OPENCV_SHAPE_HPP - -#include "opencv2/shape/emdL1.hpp" -#include "opencv2/shape/shape_transformer.hpp" -#include "opencv2/shape/hist_cost.hpp" -#include "opencv2/shape/shape_distance.hpp" - -/** - @defgroup shape Shape Distance and Matching - */ - -#endif - -/* End of file. */ diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/emdL1.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/shape/emdL1.hpp deleted file mode 100644 index a15d68c22..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/emdL1.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2012, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_EMD_L1_HPP -#define OPENCV_EMD_L1_HPP - -#include "opencv2/core.hpp" - -namespace cv -{ -/****************************************************************************************\ -* EMDL1 Function * -\****************************************************************************************/ - -//! @addtogroup shape -//! @{ - -/** @brief Computes the "minimal work" distance between two weighted point configurations base on the papers -"EMD-L1: An efficient and Robust Algorithm for comparing histogram-based descriptors", by Haibin -Ling and Kazunori Okuda; and "The Earth Mover's Distance is the Mallows Distance: Some Insights from -Statistics", by Elizaveta Levina and Peter Bickel. - -@param signature1 First signature, a single column floating-point matrix. Each row is the value of -the histogram in each bin. -@param signature2 Second signature of the same format and size as signature1. - */ -CV_EXPORTS float EMDL1(InputArray signature1, InputArray signature2); - -//! @} - -}//namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/hist_cost.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/shape/hist_cost.hpp deleted file mode 100644 index 21d0d6807..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/hist_cost.hpp +++ /dev/null @@ -1,111 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_HIST_COST_HPP -#define OPENCV_HIST_COST_HPP - -#include "opencv2/imgproc.hpp" - -namespace cv -{ - -//! @addtogroup shape -//! @{ - -/** @brief Abstract base class for histogram cost algorithms. - */ -class CV_EXPORTS_W HistogramCostExtractor : public Algorithm -{ -public: - CV_WRAP virtual void buildCostMatrix(InputArray descriptors1, InputArray descriptors2, OutputArray costMatrix) = 0; - - CV_WRAP virtual void setNDummies(int nDummies) = 0; - CV_WRAP virtual int getNDummies() const = 0; - - CV_WRAP virtual void setDefaultCost(float defaultCost) = 0; - CV_WRAP virtual float getDefaultCost() const = 0; -}; - -/** @brief A norm based cost extraction. : - */ -class CV_EXPORTS_W NormHistogramCostExtractor : public HistogramCostExtractor -{ -public: - CV_WRAP virtual void setNormFlag(int flag) = 0; - CV_WRAP virtual int getNormFlag() const = 0; -}; - -CV_EXPORTS_W Ptr - createNormHistogramCostExtractor(int flag=DIST_L2, int nDummies=25, float defaultCost=0.2f); - -/** @brief An EMD based cost extraction. : - */ -class CV_EXPORTS_W EMDHistogramCostExtractor : public HistogramCostExtractor -{ -public: - CV_WRAP virtual void setNormFlag(int flag) = 0; - CV_WRAP virtual int getNormFlag() const = 0; -}; - -CV_EXPORTS_W Ptr - createEMDHistogramCostExtractor(int flag=DIST_L2, int nDummies=25, float defaultCost=0.2f); - -/** @brief An Chi based cost extraction. : - */ -class CV_EXPORTS_W ChiHistogramCostExtractor : public HistogramCostExtractor -{}; - -CV_EXPORTS_W Ptr createChiHistogramCostExtractor(int nDummies=25, float defaultCost=0.2f); - -/** @brief An EMD-L1 based cost extraction. : - */ -class CV_EXPORTS_W EMDL1HistogramCostExtractor : public HistogramCostExtractor -{}; - -CV_EXPORTS_W Ptr - createEMDL1HistogramCostExtractor(int nDummies=25, float defaultCost=0.2f); - -//! @} - -} // cv -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape.hpp deleted file mode 100644 index 5c4da3cef..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifdef __OPENCV_BUILD -#error this is a compatibility header which should not be used inside the OpenCV library -#endif - -#include "opencv2/shape.hpp" diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape_distance.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape_distance.hpp deleted file mode 100644 index 3a778f052..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape_distance.hpp +++ /dev/null @@ -1,227 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_SHAPE_SHAPE_DISTANCE_HPP -#define OPENCV_SHAPE_SHAPE_DISTANCE_HPP -#include "opencv2/core.hpp" -#include "opencv2/shape/hist_cost.hpp" -#include "opencv2/shape/shape_transformer.hpp" - -namespace cv -{ - -//! @addtogroup shape -//! @{ - -/** @example shape_example.cpp -An example using shape distance algorithm -*/ -/** @brief Abstract base class for shape distance algorithms. - */ -class CV_EXPORTS_W ShapeDistanceExtractor : public Algorithm -{ -public: - /** @brief Compute the shape distance between two shapes defined by its contours. - - @param contour1 Contour defining first shape. - @param contour2 Contour defining second shape. - */ - CV_WRAP virtual float computeDistance(InputArray contour1, InputArray contour2) = 0; -}; - -/***********************************************************************************/ -/***********************************************************************************/ -/***********************************************************************************/ -/** @brief Implementation of the Shape Context descriptor and matching algorithm - -proposed by Belongie et al. in "Shape Matching and Object Recognition Using Shape Contexts" (PAMI -2002). This implementation is packaged in a generic scheme, in order to allow you the -implementation of the common variations of the original pipeline. -*/ -class CV_EXPORTS_W ShapeContextDistanceExtractor : public ShapeDistanceExtractor -{ -public: - /** @brief Establish the number of angular bins for the Shape Context Descriptor used in the shape matching - pipeline. - - @param nAngularBins The number of angular bins in the shape context descriptor. - */ - CV_WRAP virtual void setAngularBins(int nAngularBins) = 0; - CV_WRAP virtual int getAngularBins() const = 0; - - /** @brief Establish the number of radial bins for the Shape Context Descriptor used in the shape matching - pipeline. - - @param nRadialBins The number of radial bins in the shape context descriptor. - */ - CV_WRAP virtual void setRadialBins(int nRadialBins) = 0; - CV_WRAP virtual int getRadialBins() const = 0; - - /** @brief Set the inner radius of the shape context descriptor. - - @param innerRadius The value of the inner radius. - */ - CV_WRAP virtual void setInnerRadius(float innerRadius) = 0; - CV_WRAP virtual float getInnerRadius() const = 0; - - /** @brief Set the outer radius of the shape context descriptor. - - @param outerRadius The value of the outer radius. - */ - CV_WRAP virtual void setOuterRadius(float outerRadius) = 0; - CV_WRAP virtual float getOuterRadius() const = 0; - - CV_WRAP virtual void setRotationInvariant(bool rotationInvariant) = 0; - CV_WRAP virtual bool getRotationInvariant() const = 0; - - /** @brief Set the weight of the shape context distance in the final value of the shape distance. The shape - context distance between two shapes is defined as the symmetric sum of shape context matching costs - over best matching points. The final value of the shape distance is a user-defined linear - combination of the shape context distance, an image appearance distance, and a bending energy. - - @param shapeContextWeight The weight of the shape context distance in the final distance value. - */ - CV_WRAP virtual void setShapeContextWeight(float shapeContextWeight) = 0; - CV_WRAP virtual float getShapeContextWeight() const = 0; - - /** @brief Set the weight of the Image Appearance cost in the final value of the shape distance. The image - appearance cost is defined as the sum of squared brightness differences in Gaussian windows around - corresponding image points. The final value of the shape distance is a user-defined linear - combination of the shape context distance, an image appearance distance, and a bending energy. If - this value is set to a number different from 0, is mandatory to set the images that correspond to - each shape. - - @param imageAppearanceWeight The weight of the appearance cost in the final distance value. - */ - CV_WRAP virtual void setImageAppearanceWeight(float imageAppearanceWeight) = 0; - CV_WRAP virtual float getImageAppearanceWeight() const = 0; - - /** @brief Set the weight of the Bending Energy in the final value of the shape distance. The bending energy - definition depends on what transformation is being used to align the shapes. The final value of the - shape distance is a user-defined linear combination of the shape context distance, an image - appearance distance, and a bending energy. - - @param bendingEnergyWeight The weight of the Bending Energy in the final distance value. - */ - CV_WRAP virtual void setBendingEnergyWeight(float bendingEnergyWeight) = 0; - CV_WRAP virtual float getBendingEnergyWeight() const = 0; - - /** @brief Set the images that correspond to each shape. This images are used in the calculation of the Image - Appearance cost. - - @param image1 Image corresponding to the shape defined by contours1. - @param image2 Image corresponding to the shape defined by contours2. - */ - CV_WRAP virtual void setImages(InputArray image1, InputArray image2) = 0; - CV_WRAP virtual void getImages(OutputArray image1, OutputArray image2) const = 0; - - CV_WRAP virtual void setIterations(int iterations) = 0; - CV_WRAP virtual int getIterations() const = 0; - - /** @brief Set the algorithm used for building the shape context descriptor cost matrix. - - @param comparer Smart pointer to a HistogramCostExtractor, an algorithm that defines the cost - matrix between descriptors. - */ - CV_WRAP virtual void setCostExtractor(Ptr comparer) = 0; - CV_WRAP virtual Ptr getCostExtractor() const = 0; - - /** @brief Set the value of the standard deviation for the Gaussian window for the image appearance cost. - - @param sigma Standard Deviation. - */ - CV_WRAP virtual void setStdDev(float sigma) = 0; - CV_WRAP virtual float getStdDev() const = 0; - - /** @brief Set the algorithm used for aligning the shapes. - - @param transformer Smart pointer to a ShapeTransformer, an algorithm that defines the aligning - transformation. - */ - CV_WRAP virtual void setTransformAlgorithm(Ptr transformer) = 0; - CV_WRAP virtual Ptr getTransformAlgorithm() const = 0; -}; - -/* Complete constructor */ -CV_EXPORTS_W Ptr - createShapeContextDistanceExtractor(int nAngularBins=12, int nRadialBins=4, - float innerRadius=0.2f, float outerRadius=2, int iterations=3, - const Ptr &comparer = createChiHistogramCostExtractor(), - const Ptr &transformer = createThinPlateSplineShapeTransformer()); - -/***********************************************************************************/ -/***********************************************************************************/ -/***********************************************************************************/ -/** @brief A simple Hausdorff distance measure between shapes defined by contours - -according to the paper "Comparing Images using the Hausdorff distance." by D.P. Huttenlocher, G.A. -Klanderman, and W.J. Rucklidge. (PAMI 1993). : - */ -class CV_EXPORTS_W HausdorffDistanceExtractor : public ShapeDistanceExtractor -{ -public: - /** @brief Set the norm used to compute the Hausdorff value between two shapes. It can be L1 or L2 norm. - - @param distanceFlag Flag indicating which norm is used to compute the Hausdorff distance - (NORM_L1, NORM_L2). - */ - CV_WRAP virtual void setDistanceFlag(int distanceFlag) = 0; - CV_WRAP virtual int getDistanceFlag() const = 0; - - /** @brief This method sets the rank proportion (or fractional value) that establish the Kth ranked value of - the partial Hausdorff distance. Experimentally had been shown that 0.6 is a good value to compare - shapes. - - @param rankProportion fractional value (between 0 and 1). - */ - CV_WRAP virtual void setRankProportion(float rankProportion) = 0; - CV_WRAP virtual float getRankProportion() const = 0; -}; - -/* Constructor */ -CV_EXPORTS_W Ptr createHausdorffDistanceExtractor(int distanceFlag=cv::NORM_L2, float rankProp=0.6f); - -//! @} - -} // cv -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape_transformer.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape_transformer.hpp deleted file mode 100644 index ace104edd..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/shape/shape_transformer.hpp +++ /dev/null @@ -1,132 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_SHAPE_SHAPE_TRANSFORM_HPP -#define OPENCV_SHAPE_SHAPE_TRANSFORM_HPP -#include -#include "opencv2/core.hpp" -#include "opencv2/imgproc.hpp" - -namespace cv -{ - -//! @addtogroup shape -//! @{ - -/** @brief Abstract base class for shape transformation algorithms. - */ -class CV_EXPORTS_W ShapeTransformer : public Algorithm -{ -public: - /** @brief Estimate the transformation parameters of the current transformer algorithm, based on point matches. - - @param transformingShape Contour defining first shape. - @param targetShape Contour defining second shape (Target). - @param matches Standard vector of Matches between points. - */ - CV_WRAP virtual void estimateTransformation(InputArray transformingShape, InputArray targetShape, - std::vector& matches) = 0; - - /** @brief Apply a transformation, given a pre-estimated transformation parameters. - - @param input Contour (set of points) to apply the transformation. - @param output Output contour. - */ - CV_WRAP virtual float applyTransformation(InputArray input, OutputArray output=noArray()) = 0; - - /** @brief Apply a transformation, given a pre-estimated transformation parameters, to an Image. - - @param transformingImage Input image. - @param output Output image. - @param flags Image interpolation method. - @param borderMode border style. - @param borderValue border value. - */ - CV_WRAP virtual void warpImage(InputArray transformingImage, OutputArray output, - int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, - const Scalar& borderValue=Scalar()) const = 0; -}; - -/***********************************************************************************/ -/***********************************************************************************/ - -/** @brief Definition of the transformation - -ocupied in the paper "Principal Warps: Thin-Plate Splines and Decomposition of Deformations", by -F.L. Bookstein (PAMI 1989). : - */ -class CV_EXPORTS_W ThinPlateSplineShapeTransformer : public ShapeTransformer -{ -public: - /** @brief Set the regularization parameter for relaxing the exact interpolation requirements of the TPS - algorithm. - - @param beta value of the regularization parameter. - */ - CV_WRAP virtual void setRegularizationParameter(double beta) = 0; - CV_WRAP virtual double getRegularizationParameter() const = 0; -}; - -/** Complete constructor */ -CV_EXPORTS_W Ptr - createThinPlateSplineShapeTransformer(double regularizationParameter=0); - -/***********************************************************************************/ -/***********************************************************************************/ - -/** @brief Wrapper class for the OpenCV Affine Transformation algorithm. : - */ -class CV_EXPORTS_W AffineTransformer : public ShapeTransformer -{ -public: - CV_WRAP virtual void setFullAffine(bool fullAffine) = 0; - CV_WRAP virtual bool getFullAffine() const = 0; -}; - -/** Complete constructor */ -CV_EXPORTS_W Ptr createAffineTransformer(bool fullAffine); - -//! @} - -} // cv -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/blenders.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/blenders.hpp deleted file mode 100644 index c89e00346..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/blenders.hpp +++ /dev/null @@ -1,171 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_STITCHING_BLENDERS_HPP -#define OPENCV_STITCHING_BLENDERS_HPP - -#if defined(NO) -# warning Detected Apple 'NO' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. -#endif - -#include "opencv2/core.hpp" - -namespace cv { -namespace detail { - -//! @addtogroup stitching_blend -//! @{ - -/** @brief Base class for all blenders. - -Simple blender which puts one image over another -*/ -class CV_EXPORTS Blender -{ -public: - virtual ~Blender() {} - - enum { NO, FEATHER, MULTI_BAND }; - static Ptr createDefault(int type, bool try_gpu = false); - - /** @brief Prepares the blender for blending. - - @param corners Source images top-left corners - @param sizes Source image sizes - */ - void prepare(const std::vector &corners, const std::vector &sizes); - /** @overload */ - virtual void prepare(Rect dst_roi); - /** @brief Processes the image. - - @param img Source image - @param mask Source image mask - @param tl Source image top-left corners - */ - virtual void feed(InputArray img, InputArray mask, Point tl); - /** @brief Blends and returns the final pano. - - @param dst Final pano - @param dst_mask Final pano mask - */ - virtual void blend(InputOutputArray dst, InputOutputArray dst_mask); - -protected: - UMat dst_, dst_mask_; - Rect dst_roi_; -}; - -/** @brief Simple blender which mixes images at its borders. - */ -class CV_EXPORTS FeatherBlender : public Blender -{ -public: - FeatherBlender(float sharpness = 0.02f); - - float sharpness() const { return sharpness_; } - void setSharpness(float val) { sharpness_ = val; } - - void prepare(Rect dst_roi); - void feed(InputArray img, InputArray mask, Point tl); - void blend(InputOutputArray dst, InputOutputArray dst_mask); - - //! Creates weight maps for fixed set of source images by their masks and top-left corners. - //! Final image can be obtained by simple weighting of the source images. - Rect createWeightMaps(const std::vector &masks, const std::vector &corners, - std::vector &weight_maps); - -private: - float sharpness_; - UMat weight_map_; - UMat dst_weight_map_; -}; - -inline FeatherBlender::FeatherBlender(float _sharpness) { setSharpness(_sharpness); } - -/** @brief Blender which uses multi-band blending algorithm (see @cite BA83). - */ -class CV_EXPORTS MultiBandBlender : public Blender -{ -public: - MultiBandBlender(int try_gpu = false, int num_bands = 5, int weight_type = CV_32F); - - int numBands() const { return actual_num_bands_; } - void setNumBands(int val) { actual_num_bands_ = val; } - - void prepare(Rect dst_roi); - void feed(InputArray img, InputArray mask, Point tl); - void blend(InputOutputArray dst, InputOutputArray dst_mask); - -private: - int actual_num_bands_, num_bands_; - std::vector dst_pyr_laplace_; - std::vector dst_band_weights_; - Rect dst_roi_final_; - bool can_use_gpu_; - int weight_type_; //CV_32F or CV_16S -#if defined(HAVE_OPENCV_CUDAARITHM) && defined(HAVE_OPENCV_CUDAWARPING) - std::vector gpu_dst_pyr_laplace_; - std::vector gpu_dst_band_weights_; -#endif -}; - - -////////////////////////////////////////////////////////////////////////////// -// Auxiliary functions - -void CV_EXPORTS normalizeUsingWeightMap(InputArray weight, InputOutputArray src); - -void CV_EXPORTS createWeightMap(InputArray mask, float sharpness, InputOutputArray weight); - -void CV_EXPORTS createLaplacePyr(InputArray img, int num_levels, std::vector& pyr); -void CV_EXPORTS createLaplacePyrGpu(InputArray img, int num_levels, std::vector& pyr); - -// Restores source image -void CV_EXPORTS restoreImageFromLaplacePyr(std::vector& pyr); -void CV_EXPORTS restoreImageFromLaplacePyrGpu(std::vector& pyr); - -//! @} - -} // namespace detail -} // namespace cv - -#endif // OPENCV_STITCHING_BLENDERS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/exposure_compensate.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/exposure_compensate.hpp deleted file mode 100644 index f5a8122b9..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/exposure_compensate.hpp +++ /dev/null @@ -1,136 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP -#define OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP - -#if defined(NO) -# warning Detected Apple 'NO' macro definition, it can cause build conflicts. Please, include this header before any Apple headers. -#endif - -#include "opencv2/core.hpp" - -namespace cv { -namespace detail { - -//! @addtogroup stitching_exposure -//! @{ - -/** @brief Base class for all exposure compensators. - */ -class CV_EXPORTS ExposureCompensator -{ -public: - virtual ~ExposureCompensator() {} - - enum { NO, GAIN, GAIN_BLOCKS }; - static Ptr createDefault(int type); - - /** - @param corners Source image top-left corners - @param images Source images - @param masks Image masks to update (second value in pair specifies the value which should be used - to detect where image is) - */ - void feed(const std::vector &corners, const std::vector &images, - const std::vector &masks); - /** @overload */ - virtual void feed(const std::vector &corners, const std::vector &images, - const std::vector > &masks) = 0; - /** @brief Compensate exposure in the specified image. - - @param index Image index - @param corner Image top-left corner - @param image Image to process - @param mask Image mask - */ - virtual void apply(int index, Point corner, InputOutputArray image, InputArray mask) = 0; -}; - -/** @brief Stub exposure compensator which does nothing. - */ -class CV_EXPORTS NoExposureCompensator : public ExposureCompensator -{ -public: - void feed(const std::vector &/*corners*/, const std::vector &/*images*/, - const std::vector > &/*masks*/) { } - void apply(int /*index*/, Point /*corner*/, InputOutputArray /*image*/, InputArray /*mask*/) { } -}; - -/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image -intensities, see @cite BL07 and @cite WJ10 for details. - */ -class CV_EXPORTS GainCompensator : public ExposureCompensator -{ -public: - void feed(const std::vector &corners, const std::vector &images, - const std::vector > &masks); - void apply(int index, Point corner, InputOutputArray image, InputArray mask); - std::vector gains() const; - -private: - Mat_ gains_; -}; - -/** @brief Exposure compensator which tries to remove exposure related artifacts by adjusting image block -intensities, see @cite UES01 for details. - */ -class CV_EXPORTS BlocksGainCompensator : public ExposureCompensator -{ -public: - BlocksGainCompensator(int bl_width = 32, int bl_height = 32) - : bl_width_(bl_width), bl_height_(bl_height) {} - void feed(const std::vector &corners, const std::vector &images, - const std::vector > &masks); - void apply(int index, Point corner, InputOutputArray image, InputArray mask); - -private: - int bl_width_, bl_height_; - std::vector gain_maps_; -}; - -//! @} - -} // namespace detail -} // namespace cv - -#endif // OPENCV_STITCHING_EXPOSURE_COMPENSATE_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/matchers.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/matchers.hpp deleted file mode 100644 index 009bdd9b7..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/matchers.hpp +++ /dev/null @@ -1,355 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_STITCHING_MATCHERS_HPP -#define OPENCV_STITCHING_MATCHERS_HPP - -#include "opencv2/core.hpp" -#include "opencv2/features2d.hpp" - -#include "opencv2/opencv_modules.hpp" - -#ifdef HAVE_OPENCV_XFEATURES2D -# include "opencv2/xfeatures2d/cuda.hpp" -#endif - -namespace cv { -namespace detail { - -//! @addtogroup stitching_match -//! @{ - -/** @brief Structure containing image keypoints and descriptors. */ -struct CV_EXPORTS ImageFeatures -{ - int img_idx; - Size img_size; - std::vector keypoints; - UMat descriptors; -}; - -/** @brief Feature finders base class */ -class CV_EXPORTS FeaturesFinder -{ -public: - virtual ~FeaturesFinder() {} - /** @overload */ - void operator ()(InputArray image, ImageFeatures &features); - /** @brief Finds features in the given image. - - @param image Source image - @param features Found features - @param rois Regions of interest - - @sa detail::ImageFeatures, Rect_ - */ - void operator ()(InputArray image, ImageFeatures &features, const std::vector &rois); - /** @brief Finds features in the given images in parallel. - - @param images Source images - @param features Found features for each image - @param rois Regions of interest for each image - - @sa detail::ImageFeatures, Rect_ - */ - void operator ()(InputArrayOfArrays images, std::vector &features, - const std::vector > &rois); - /** @overload */ - void operator ()(InputArrayOfArrays images, std::vector &features); - /** @brief Frees unused memory allocated before if there is any. */ - virtual void collectGarbage() {} - - /* TODO OpenCV ABI 4.x - reimplement this as public method similar to FeaturesMatcher and remove private function hack - @return True, if it's possible to use the same finder instance in parallel, false otherwise - bool isThreadSafe() const { return is_thread_safe_; } - */ - -protected: - /** @brief This method must implement features finding logic in order to make the wrappers - detail::FeaturesFinder::operator()_ work. - - @param image Source image - @param features Found features - - @sa detail::ImageFeatures */ - virtual void find(InputArray image, ImageFeatures &features) = 0; - /** @brief uses dynamic_cast to determine thread-safety - @return True, if it's possible to use the same finder instance in parallel, false otherwise - */ - bool isThreadSafe() const; -}; - -/** @brief SURF features finder. - -@sa detail::FeaturesFinder, SURF -*/ -class CV_EXPORTS SurfFeaturesFinder : public FeaturesFinder -{ -public: - SurfFeaturesFinder(double hess_thresh = 300., int num_octaves = 3, int num_layers = 4, - int num_octaves_descr = /*4*/3, int num_layers_descr = /*2*/4); - -private: - void find(InputArray image, ImageFeatures &features); - - Ptr detector_; - Ptr extractor_; - Ptr surf; -}; - -/** @brief ORB features finder. : - -@sa detail::FeaturesFinder, ORB -*/ -class CV_EXPORTS OrbFeaturesFinder : public FeaturesFinder -{ -public: - OrbFeaturesFinder(Size _grid_size = Size(3,1), int nfeatures=1500, float scaleFactor=1.3f, int nlevels=5); - -private: - void find(InputArray image, ImageFeatures &features); - - Ptr orb; - Size grid_size; -}; - -/** @brief AKAZE features finder. : - -@sa detail::FeaturesFinder, AKAZE -*/ -class CV_EXPORTS AKAZEFeaturesFinder : public detail::FeaturesFinder -{ -public: - AKAZEFeaturesFinder(int descriptor_type = AKAZE::DESCRIPTOR_MLDB, - int descriptor_size = 0, - int descriptor_channels = 3, - float threshold = 0.001f, - int nOctaves = 4, - int nOctaveLayers = 4, - int diffusivity = KAZE::DIFF_PM_G2); - -private: - void find(InputArray image, detail::ImageFeatures &features); - - Ptr akaze; -}; - -#ifdef HAVE_OPENCV_XFEATURES2D -class CV_EXPORTS SurfFeaturesFinderGpu : public FeaturesFinder -{ -public: - SurfFeaturesFinderGpu(double hess_thresh = 300., int num_octaves = 3, int num_layers = 4, - int num_octaves_descr = 4, int num_layers_descr = 2); - - void collectGarbage(); - -private: - void find(InputArray image, ImageFeatures &features); - - cuda::GpuMat image_; - cuda::GpuMat gray_image_; - cuda::SURF_CUDA surf_; - cuda::GpuMat keypoints_; - cuda::GpuMat descriptors_; - int num_octaves_, num_layers_; - int num_octaves_descr_, num_layers_descr_; -}; -#endif - -/** @brief Structure containing information about matches between two images. - -It's assumed that there is a transformation between those images. Transformation may be -homography or affine transformation based on selected matcher. - -@sa detail::FeaturesMatcher -*/ -struct CV_EXPORTS MatchesInfo -{ - MatchesInfo(); - MatchesInfo(const MatchesInfo &other); - MatchesInfo& operator =(const MatchesInfo &other); - - int src_img_idx, dst_img_idx; //!< Images indices (optional) - std::vector matches; - std::vector inliers_mask; //!< Geometrically consistent matches mask - int num_inliers; //!< Number of geometrically consistent matches - Mat H; //!< Estimated transformation - double confidence; //!< Confidence two images are from the same panorama -}; - -/** @brief Feature matchers base class. */ -class CV_EXPORTS FeaturesMatcher -{ -public: - virtual ~FeaturesMatcher() {} - - /** @overload - @param features1 First image features - @param features2 Second image features - @param matches_info Found matches - */ - void operator ()(const ImageFeatures &features1, const ImageFeatures &features2, - MatchesInfo& matches_info) { match(features1, features2, matches_info); } - - /** @brief Performs images matching. - - @param features Features of the source images - @param pairwise_matches Found pairwise matches - @param mask Mask indicating which image pairs must be matched - - The function is parallelized with the TBB library. - - @sa detail::MatchesInfo - */ - void operator ()(const std::vector &features, std::vector &pairwise_matches, - const cv::UMat &mask = cv::UMat()); - - /** @return True, if it's possible to use the same matcher instance in parallel, false otherwise - */ - bool isThreadSafe() const { return is_thread_safe_; } - - /** @brief Frees unused memory allocated before if there is any. - */ - virtual void collectGarbage() {} - -protected: - FeaturesMatcher(bool is_thread_safe = false) : is_thread_safe_(is_thread_safe) {} - - /** @brief This method must implement matching logic in order to make the wrappers - detail::FeaturesMatcher::operator()_ work. - - @param features1 first image features - @param features2 second image features - @param matches_info found matches - */ - virtual void match(const ImageFeatures &features1, const ImageFeatures &features2, - MatchesInfo& matches_info) = 0; - - bool is_thread_safe_; -}; - -/** @brief Features matcher which finds two best matches for each feature and leaves the best one only if the -ratio between descriptor distances is greater than the threshold match_conf - -@sa detail::FeaturesMatcher - */ -class CV_EXPORTS BestOf2NearestMatcher : public FeaturesMatcher -{ -public: - /** @brief Constructs a "best of 2 nearest" matcher. - - @param try_use_gpu Should try to use GPU or not - @param match_conf Match distances ration threshold - @param num_matches_thresh1 Minimum number of matches required for the 2D projective transform - estimation used in the inliers classification step - @param num_matches_thresh2 Minimum number of matches required for the 2D projective transform - re-estimation on inliers - */ - BestOf2NearestMatcher(bool try_use_gpu = false, float match_conf = 0.3f, int num_matches_thresh1 = 6, - int num_matches_thresh2 = 6); - - void collectGarbage(); - -protected: - void match(const ImageFeatures &features1, const ImageFeatures &features2, MatchesInfo &matches_info); - - int num_matches_thresh1_; - int num_matches_thresh2_; - Ptr impl_; -}; - -class CV_EXPORTS BestOf2NearestRangeMatcher : public BestOf2NearestMatcher -{ -public: - BestOf2NearestRangeMatcher(int range_width = 5, bool try_use_gpu = false, float match_conf = 0.3f, - int num_matches_thresh1 = 6, int num_matches_thresh2 = 6); - - void operator ()(const std::vector &features, std::vector &pairwise_matches, - const cv::UMat &mask = cv::UMat()); - - -protected: - int range_width_; -}; - -/** @brief Features matcher similar to cv::detail::BestOf2NearestMatcher which -finds two best matches for each feature and leaves the best one only if the -ratio between descriptor distances is greater than the threshold match_conf. - -Unlike cv::detail::BestOf2NearestMatcher this matcher uses affine -transformation (affine trasformation estimate will be placed in matches_info). - -@sa cv::detail::FeaturesMatcher cv::detail::BestOf2NearestMatcher - */ -class CV_EXPORTS AffineBestOf2NearestMatcher : public BestOf2NearestMatcher -{ -public: - /** @brief Constructs a "best of 2 nearest" matcher that expects affine trasformation - between images - - @param full_affine whether to use full affine transformation with 6 degress of freedom or reduced - transformation with 4 degrees of freedom using only rotation, translation and uniform scaling - @param try_use_gpu Should try to use GPU or not - @param match_conf Match distances ration threshold - @param num_matches_thresh1 Minimum number of matches required for the 2D affine transform - estimation used in the inliers classification step - - @sa cv::estimateAffine2D cv::estimateAffinePartial2D - */ - AffineBestOf2NearestMatcher(bool full_affine = false, bool try_use_gpu = false, - float match_conf = 0.3f, int num_matches_thresh1 = 6) : - BestOf2NearestMatcher(try_use_gpu, match_conf, num_matches_thresh1, num_matches_thresh1), - full_affine_(full_affine) {} - -protected: - void match(const ImageFeatures &features1, const ImageFeatures &features2, MatchesInfo &matches_info); - - bool full_affine_; -}; - -//! @} stitching_match - -} // namespace detail -} // namespace cv - -#endif // OPENCV_STITCHING_MATCHERS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/util.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/util.hpp deleted file mode 100644 index 78301b855..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/util.hpp +++ /dev/null @@ -1,121 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_STITCHING_UTIL_HPP -#define OPENCV_STITCHING_UTIL_HPP - -#include -#include "opencv2/core.hpp" - -namespace cv { -namespace detail { - -//! @addtogroup stitching -//! @{ - -class CV_EXPORTS DisjointSets -{ -public: - DisjointSets(int elem_count = 0) { createOneElemSets(elem_count); } - - void createOneElemSets(int elem_count); - int findSetByElem(int elem); - int mergeSets(int set1, int set2); - - std::vector parent; - std::vector size; - -private: - std::vector rank_; -}; - - -struct CV_EXPORTS GraphEdge -{ - GraphEdge(int from, int to, float weight); - bool operator <(const GraphEdge& other) const { return weight < other.weight; } - bool operator >(const GraphEdge& other) const { return weight > other.weight; } - - int from, to; - float weight; -}; - -inline GraphEdge::GraphEdge(int _from, int _to, float _weight) : from(_from), to(_to), weight(_weight) {} - - -class CV_EXPORTS Graph -{ -public: - Graph(int num_vertices = 0) { create(num_vertices); } - void create(int num_vertices) { edges_.assign(num_vertices, std::list()); } - int numVertices() const { return static_cast(edges_.size()); } - void addEdge(int from, int to, float weight); - template B forEach(B body) const; - template B walkBreadthFirst(int from, B body) const; - -private: - std::vector< std::list > edges_; -}; - - -////////////////////////////////////////////////////////////////////////////// -// Auxiliary functions - -CV_EXPORTS bool overlapRoi(Point tl1, Point tl2, Size sz1, Size sz2, Rect &roi); -CV_EXPORTS Rect resultRoi(const std::vector &corners, const std::vector &images); -CV_EXPORTS Rect resultRoi(const std::vector &corners, const std::vector &sizes); -CV_EXPORTS Rect resultRoiIntersection(const std::vector &corners, const std::vector &sizes); -CV_EXPORTS Point resultTl(const std::vector &corners); - -// Returns random 'count' element subset of the {0,1,...,size-1} set -CV_EXPORTS void selectRandomSubset(int count, int size, std::vector &subset); - -CV_EXPORTS int& stitchingLogLevel(); - -//! @} - -} // namespace detail -} // namespace cv - -#include "util_inl.hpp" - -#endif // OPENCV_STITCHING_UTIL_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/warpers.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/warpers.hpp deleted file mode 100644 index ddb2fb51c..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/detail/warpers.hpp +++ /dev/null @@ -1,616 +0,0 @@ - /*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_STITCHING_WARPERS_HPP -#define OPENCV_STITCHING_WARPERS_HPP - -#include "opencv2/core.hpp" -#include "opencv2/core/cuda.hpp" -#include "opencv2/imgproc.hpp" -#include "opencv2/opencv_modules.hpp" - -namespace cv { -namespace detail { - -//! @addtogroup stitching_warp -//! @{ - -/** @brief Rotation-only model image warper interface. - */ -class CV_EXPORTS RotationWarper -{ -public: - virtual ~RotationWarper() {} - - /** @brief Projects the image point. - - @param pt Source point - @param K Camera intrinsic parameters - @param R Camera rotation matrix - @return Projected point - */ - virtual Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R) = 0; - - /** @brief Builds the projection maps according to the given camera data. - - @param src_size Source image size - @param K Camera intrinsic parameters - @param R Camera rotation matrix - @param xmap Projection map for the x axis - @param ymap Projection map for the y axis - @return Projected image minimum bounding box - */ - virtual Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) = 0; - - /** @brief Projects the image. - - @param src Source image - @param K Camera intrinsic parameters - @param R Camera rotation matrix - @param interp_mode Interpolation mode - @param border_mode Border extrapolation mode - @param dst Projected image - @return Project image top-left corner - */ - virtual Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - OutputArray dst) = 0; - - /** @brief Projects the image backward. - - @param src Projected image - @param K Camera intrinsic parameters - @param R Camera rotation matrix - @param interp_mode Interpolation mode - @param border_mode Border extrapolation mode - @param dst_size Backward-projected image size - @param dst Backward-projected image - */ - virtual void warpBackward(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - Size dst_size, OutputArray dst) = 0; - - /** - @param src_size Source image bounding box - @param K Camera intrinsic parameters - @param R Camera rotation matrix - @return Projected image minimum bounding box - */ - virtual Rect warpRoi(Size src_size, InputArray K, InputArray R) = 0; - - virtual float getScale() const { return 1.f; } - virtual void setScale(float) {} -}; - -/** @brief Base class for warping logic implementation. - */ -struct CV_EXPORTS ProjectorBase -{ - void setCameraParams(InputArray K = Mat::eye(3, 3, CV_32F), - InputArray R = Mat::eye(3, 3, CV_32F), - InputArray T = Mat::zeros(3, 1, CV_32F)); - - float scale; - float k[9]; - float rinv[9]; - float r_kinv[9]; - float k_rinv[9]; - float t[3]; -}; - -/** @brief Base class for rotation-based warper using a detail::ProjectorBase_ derived class. - */ -template -class CV_EXPORTS_TEMPLATE RotationWarperBase : public RotationWarper -{ -public: - Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R); - - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap); - - Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - OutputArray dst); - - void warpBackward(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - Size dst_size, OutputArray dst); - - Rect warpRoi(Size src_size, InputArray K, InputArray R); - - float getScale() const { return projector_.scale; } - void setScale(float val) { projector_.scale = val; } - -protected: - - // Detects ROI of the destination image. It's correct for any projection. - virtual void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br); - - // Detects ROI of the destination image by walking over image border. - // Correctness for any projection isn't guaranteed. - void detectResultRoiByBorder(Size src_size, Point &dst_tl, Point &dst_br); - - P projector_; -}; - - -struct CV_EXPORTS PlaneProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - -/** @brief Warper that maps an image onto the z = 1 plane. - */ -class CV_EXPORTS PlaneWarper : public RotationWarperBase -{ -public: - /** @brief Construct an instance of the plane warper class. - - @param scale Projected image scale multiplier - */ - PlaneWarper(float scale = 1.f) { projector_.scale = scale; } - - Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R); - Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R, InputArray T); - - virtual Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray xmap, OutputArray ymap); - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap); - - Point warp(InputArray src, InputArray K, InputArray R, - int interp_mode, int border_mode, OutputArray dst); - virtual Point warp(InputArray src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode, - OutputArray dst); - - Rect warpRoi(Size src_size, InputArray K, InputArray R); - Rect warpRoi(Size src_size, InputArray K, InputArray R, InputArray T); - -protected: - void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br); -}; - - -/** @brief Affine warper that uses rotations and translations - - Uses affine transformation in homogeneous coordinates to represent both rotation and - translation in camera rotation matrix. - */ -class CV_EXPORTS AffineWarper : public PlaneWarper -{ -public: - /** @brief Construct an instance of the affine warper class. - - @param scale Projected image scale multiplier - */ - AffineWarper(float scale = 1.f) : PlaneWarper(scale) {} - - Point2f warpPoint(const Point2f &pt, InputArray K, InputArray R); - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap); - Point warp(InputArray src, InputArray K, InputArray R, - int interp_mode, int border_mode, OutputArray dst); - Rect warpRoi(Size src_size, InputArray K, InputArray R); - -protected: - /** @brief Extracts rotation and translation matrices from matrix H representing - affine transformation in homogeneous coordinates - */ - void getRTfromHomogeneous(InputArray H, Mat &R, Mat &T); -}; - - -struct CV_EXPORTS SphericalProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -/** @brief Warper that maps an image onto the unit sphere located at the origin. - - Projects image onto unit sphere with origin at (0, 0, 0) and radius scale, measured in pixels. - A 360 panorama would therefore have a resulting width of 2 * scale * PI pixels. - Poles are located at (0, -1, 0) and (0, 1, 0) points. -*/ -class CV_EXPORTS SphericalWarper : public RotationWarperBase -{ -public: - /** @brief Construct an instance of the spherical warper class. - - @param scale Radius of the projected sphere, in pixels. An image spanning the - whole sphere will have a width of 2 * scale * PI pixels. - */ - SphericalWarper(float scale) { projector_.scale = scale; } - - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap); - Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, OutputArray dst); -protected: - void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br); -}; - - -struct CV_EXPORTS CylindricalProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -/** @brief Warper that maps an image onto the x\*x + z\*z = 1 cylinder. - */ -class CV_EXPORTS CylindricalWarper : public RotationWarperBase -{ -public: - /** @brief Construct an instance of the cylindrical warper class. - - @param scale Projected image scale multiplier - */ - CylindricalWarper(float scale) { projector_.scale = scale; } - - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap); - Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, OutputArray dst); -protected: - void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) - { - RotationWarperBase::detectResultRoiByBorder(src_size, dst_tl, dst_br); - } -}; - - -struct CV_EXPORTS FisheyeProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS FisheyeWarper : public RotationWarperBase -{ -public: - FisheyeWarper(float scale) { projector_.scale = scale; } -}; - - -struct CV_EXPORTS StereographicProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS StereographicWarper : public RotationWarperBase -{ -public: - StereographicWarper(float scale) { projector_.scale = scale; } -}; - - -struct CV_EXPORTS CompressedRectilinearProjector : ProjectorBase -{ - float a, b; - - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS CompressedRectilinearWarper : public RotationWarperBase -{ -public: - CompressedRectilinearWarper(float scale, float A = 1, float B = 1) - { - projector_.a = A; - projector_.b = B; - projector_.scale = scale; - } -}; - - -struct CV_EXPORTS CompressedRectilinearPortraitProjector : ProjectorBase -{ - float a, b; - - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS CompressedRectilinearPortraitWarper : public RotationWarperBase -{ -public: - CompressedRectilinearPortraitWarper(float scale, float A = 1, float B = 1) - { - projector_.a = A; - projector_.b = B; - projector_.scale = scale; - } -}; - - -struct CV_EXPORTS PaniniProjector : ProjectorBase -{ - float a, b; - - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS PaniniWarper : public RotationWarperBase -{ -public: - PaniniWarper(float scale, float A = 1, float B = 1) - { - projector_.a = A; - projector_.b = B; - projector_.scale = scale; - } -}; - - -struct CV_EXPORTS PaniniPortraitProjector : ProjectorBase -{ - float a, b; - - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS PaniniPortraitWarper : public RotationWarperBase -{ -public: - PaniniPortraitWarper(float scale, float A = 1, float B = 1) - { - projector_.a = A; - projector_.b = B; - projector_.scale = scale; - } - -}; - - -struct CV_EXPORTS MercatorProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS MercatorWarper : public RotationWarperBase -{ -public: - MercatorWarper(float scale) { projector_.scale = scale; } -}; - - -struct CV_EXPORTS TransverseMercatorProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS TransverseMercatorWarper : public RotationWarperBase -{ -public: - TransverseMercatorWarper(float scale) { projector_.scale = scale; } -}; - - -class CV_EXPORTS PlaneWarperGpu : public PlaneWarper -{ -public: - PlaneWarperGpu(float scale = 1.f) : PlaneWarper(scale) {} - - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) - { - Rect result = buildMaps(src_size, K, R, d_xmap_, d_ymap_); - d_xmap_.download(xmap); - d_ymap_.download(ymap); - return result; - } - - Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, OutputArray xmap, OutputArray ymap) - { - Rect result = buildMaps(src_size, K, R, T, d_xmap_, d_ymap_); - d_xmap_.download(xmap); - d_ymap_.download(ymap); - return result; - } - - Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - OutputArray dst) - { - d_src_.upload(src); - Point result = warp(d_src_, K, R, interp_mode, border_mode, d_dst_); - d_dst_.download(dst); - return result; - } - - Point warp(InputArray src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode, - OutputArray dst) - { - d_src_.upload(src); - Point result = warp(d_src_, K, R, T, interp_mode, border_mode, d_dst_); - d_dst_.download(dst); - return result; - } - - Rect buildMaps(Size src_size, InputArray K, InputArray R, cuda::GpuMat & xmap, cuda::GpuMat & ymap); - - Rect buildMaps(Size src_size, InputArray K, InputArray R, InputArray T, cuda::GpuMat & xmap, cuda::GpuMat & ymap); - - Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, int interp_mode, int border_mode, - cuda::GpuMat & dst); - - Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, InputArray T, int interp_mode, int border_mode, - cuda::GpuMat & dst); - -private: - cuda::GpuMat d_xmap_, d_ymap_, d_src_, d_dst_; -}; - - -class CV_EXPORTS SphericalWarperGpu : public SphericalWarper -{ -public: - SphericalWarperGpu(float scale) : SphericalWarper(scale) {} - - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) - { - Rect result = buildMaps(src_size, K, R, d_xmap_, d_ymap_); - d_xmap_.download(xmap); - d_ymap_.download(ymap); - return result; - } - - Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - OutputArray dst) - { - d_src_.upload(src); - Point result = warp(d_src_, K, R, interp_mode, border_mode, d_dst_); - d_dst_.download(dst); - return result; - } - - Rect buildMaps(Size src_size, InputArray K, InputArray R, cuda::GpuMat & xmap, cuda::GpuMat & ymap); - - Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, int interp_mode, int border_mode, - cuda::GpuMat & dst); - -private: - cuda::GpuMat d_xmap_, d_ymap_, d_src_, d_dst_; -}; - - -class CV_EXPORTS CylindricalWarperGpu : public CylindricalWarper -{ -public: - CylindricalWarperGpu(float scale) : CylindricalWarper(scale) {} - - Rect buildMaps(Size src_size, InputArray K, InputArray R, OutputArray xmap, OutputArray ymap) - { - Rect result = buildMaps(src_size, K, R, d_xmap_, d_ymap_); - d_xmap_.download(xmap); - d_ymap_.download(ymap); - return result; - } - - Point warp(InputArray src, InputArray K, InputArray R, int interp_mode, int border_mode, - OutputArray dst) - { - d_src_.upload(src); - Point result = warp(d_src_, K, R, interp_mode, border_mode, d_dst_); - d_dst_.download(dst); - return result; - } - - Rect buildMaps(Size src_size, InputArray K, InputArray R, cuda::GpuMat & xmap, cuda::GpuMat & ymap); - - Point warp(const cuda::GpuMat & src, InputArray K, InputArray R, int interp_mode, int border_mode, - cuda::GpuMat & dst); - -private: - cuda::GpuMat d_xmap_, d_ymap_, d_src_, d_dst_; -}; - - -struct CV_EXPORTS SphericalPortraitProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -// Projects image onto unit sphere with origin at (0, 0, 0). -// Poles are located NOT at (0, -1, 0) and (0, 1, 0) points, BUT at (1, 0, 0) and (-1, 0, 0) points. -class CV_EXPORTS SphericalPortraitWarper : public RotationWarperBase -{ -public: - SphericalPortraitWarper(float scale) { projector_.scale = scale; } - -protected: - void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br); -}; - -struct CV_EXPORTS CylindricalPortraitProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS CylindricalPortraitWarper : public RotationWarperBase -{ -public: - CylindricalPortraitWarper(float scale) { projector_.scale = scale; } - -protected: - void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) - { - RotationWarperBase::detectResultRoiByBorder(src_size, dst_tl, dst_br); - } -}; - -struct CV_EXPORTS PlanePortraitProjector : ProjectorBase -{ - void mapForward(float x, float y, float &u, float &v); - void mapBackward(float u, float v, float &x, float &y); -}; - - -class CV_EXPORTS PlanePortraitWarper : public RotationWarperBase -{ -public: - PlanePortraitWarper(float scale) { projector_.scale = scale; } - -protected: - void detectResultRoi(Size src_size, Point &dst_tl, Point &dst_br) - { - RotationWarperBase::detectResultRoiByBorder(src_size, dst_tl, dst_br); - } -}; - -//! @} stitching_warp - -} // namespace detail -} // namespace cv - -#include "warpers_inl.hpp" - -#endif // OPENCV_STITCHING_WARPERS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/warpers.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/warpers.hpp deleted file mode 100644 index 139e0522b..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/stitching/warpers.hpp +++ /dev/null @@ -1,192 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_STITCHING_WARPER_CREATORS_HPP -#define OPENCV_STITCHING_WARPER_CREATORS_HPP - -#include "opencv2/stitching/detail/warpers.hpp" - -namespace cv { - -//! @addtogroup stitching_warp -//! @{ - -/** @brief Image warper factories base class. - */ -class WarperCreator -{ -public: - virtual ~WarperCreator() {} - virtual Ptr create(float scale) const = 0; -}; - -/** @brief Plane warper factory class. - @sa detail::PlaneWarper - */ -class PlaneWarper : public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -/** @brief Affine warper factory class. - @sa detail::AffineWarper - */ -class AffineWarper : public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -/** @brief Cylindrical warper factory class. -@sa detail::CylindricalWarper -*/ -class CylindricalWarper: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -/** @brief Spherical warper factory class */ -class SphericalWarper: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -class FisheyeWarper : public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -class StereographicWarper: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -class CompressedRectilinearWarper: public WarperCreator -{ - float a, b; -public: - CompressedRectilinearWarper(float A = 1, float B = 1) - { - a = A; b = B; - } - Ptr create(float scale) const { return makePtr(scale, a, b); } -}; - -class CompressedRectilinearPortraitWarper: public WarperCreator -{ - float a, b; -public: - CompressedRectilinearPortraitWarper(float A = 1, float B = 1) - { - a = A; b = B; - } - Ptr create(float scale) const { return makePtr(scale, a, b); } -}; - -class PaniniWarper: public WarperCreator -{ - float a, b; -public: - PaniniWarper(float A = 1, float B = 1) - { - a = A; b = B; - } - Ptr create(float scale) const { return makePtr(scale, a, b); } -}; - -class PaniniPortraitWarper: public WarperCreator -{ - float a, b; -public: - PaniniPortraitWarper(float A = 1, float B = 1) - { - a = A; b = B; - } - Ptr create(float scale) const { return makePtr(scale, a, b); } -}; - -class MercatorWarper: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - -class TransverseMercatorWarper: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - - - -#ifdef HAVE_OPENCV_CUDAWARPING -class PlaneWarperGpu: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - - -class CylindricalWarperGpu: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; - - -class SphericalWarperGpu: public WarperCreator -{ -public: - Ptr create(float scale) const { return makePtr(scale); } -}; -#endif - -//! @} stitching_warp - -} // namespace cv - -#endif // OPENCV_STITCHING_WARPER_CREATORS_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/superres.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/superres.hpp deleted file mode 100644 index 60d4faa6e..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/superres.hpp +++ /dev/null @@ -1,207 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_SUPERRES_HPP -#define OPENCV_SUPERRES_HPP - -#include "opencv2/core.hpp" -#include "opencv2/superres/optical_flow.hpp" - -/** - @defgroup superres Super Resolution - -The Super Resolution module contains a set of functions and classes that can be used to solve the -problem of resolution enhancement. There are a few methods implemented, most of them are descibed in -the papers @cite Farsiu03 and @cite Mitzel09 . - - */ - -namespace cv -{ - namespace superres - { - -//! @addtogroup superres -//! @{ - - class CV_EXPORTS FrameSource - { - public: - virtual ~FrameSource(); - - virtual void nextFrame(OutputArray frame) = 0; - virtual void reset() = 0; - }; - - CV_EXPORTS Ptr createFrameSource_Empty(); - - CV_EXPORTS Ptr createFrameSource_Video(const String& fileName); - CV_EXPORTS Ptr createFrameSource_Video_CUDA(const String& fileName); - - CV_EXPORTS Ptr createFrameSource_Camera(int deviceId = 0); - - /** @brief Base class for Super Resolution algorithms. - - The class is only used to define the common interface for the whole family of Super Resolution - algorithms. - */ - class CV_EXPORTS SuperResolution : public cv::Algorithm, public FrameSource - { - public: - /** @brief Set input frame source for Super Resolution algorithm. - - @param frameSource Input frame source - */ - void setInput(const Ptr& frameSource); - - /** @brief Process next frame from input and return output result. - - @param frame Output result - */ - void nextFrame(OutputArray frame); - void reset(); - - /** @brief Clear all inner buffers. - */ - virtual void collectGarbage(); - - //! @brief Scale factor - /** @see setScale */ - virtual int getScale() const = 0; - /** @copybrief getScale @see getScale */ - virtual void setScale(int val) = 0; - - //! @brief Iterations count - /** @see setIterations */ - virtual int getIterations() const = 0; - /** @copybrief getIterations @see getIterations */ - virtual void setIterations(int val) = 0; - - //! @brief Asymptotic value of steepest descent method - /** @see setTau */ - virtual double getTau() const = 0; - /** @copybrief getTau @see getTau */ - virtual void setTau(double val) = 0; - - //! @brief Weight parameter to balance data term and smoothness term - /** @see setLabmda */ - virtual double getLabmda() const = 0; - /** @copybrief getLabmda @see getLabmda */ - virtual void setLabmda(double val) = 0; - - //! @brief Parameter of spacial distribution in Bilateral-TV - /** @see setAlpha */ - virtual double getAlpha() const = 0; - /** @copybrief getAlpha @see getAlpha */ - virtual void setAlpha(double val) = 0; - - //! @brief Kernel size of Bilateral-TV filter - /** @see setKernelSize */ - virtual int getKernelSize() const = 0; - /** @copybrief getKernelSize @see getKernelSize */ - virtual void setKernelSize(int val) = 0; - - //! @brief Gaussian blur kernel size - /** @see setBlurKernelSize */ - virtual int getBlurKernelSize() const = 0; - /** @copybrief getBlurKernelSize @see getBlurKernelSize */ - virtual void setBlurKernelSize(int val) = 0; - - //! @brief Gaussian blur sigma - /** @see setBlurSigma */ - virtual double getBlurSigma() const = 0; - /** @copybrief getBlurSigma @see getBlurSigma */ - virtual void setBlurSigma(double val) = 0; - - //! @brief Radius of the temporal search area - /** @see setTemporalAreaRadius */ - virtual int getTemporalAreaRadius() const = 0; - /** @copybrief getTemporalAreaRadius @see getTemporalAreaRadius */ - virtual void setTemporalAreaRadius(int val) = 0; - - //! @brief Dense optical flow algorithm - /** @see setOpticalFlow */ - virtual Ptr getOpticalFlow() const = 0; - /** @copybrief getOpticalFlow @see getOpticalFlow */ - virtual void setOpticalFlow(const Ptr &val) = 0; - - protected: - SuperResolution(); - - virtual void initImpl(Ptr& frameSource) = 0; - virtual void processImpl(Ptr& frameSource, OutputArray output) = 0; - - bool isUmat_; - - private: - Ptr frameSource_; - bool firstCall_; - }; - - /** @brief Create Bilateral TV-L1 Super Resolution. - - This class implements Super Resolution algorithm described in the papers @cite Farsiu03 and - @cite Mitzel09 . - - Here are important members of the class that control the algorithm, which you can set after - constructing the class instance: - - - **int scale** Scale factor. - - **int iterations** Iteration count. - - **double tau** Asymptotic value of steepest descent method. - - **double lambda** Weight parameter to balance data term and smoothness term. - - **double alpha** Parameter of spacial distribution in Bilateral-TV. - - **int btvKernelSize** Kernel size of Bilateral-TV filter. - - **int blurKernelSize** Gaussian blur kernel size. - - **double blurSigma** Gaussian blur sigma. - - **int temporalAreaRadius** Radius of the temporal search area. - - **Ptr\ opticalFlow** Dense optical flow algorithm. - */ - CV_EXPORTS Ptr createSuperResolution_BTVL1(); - CV_EXPORTS Ptr createSuperResolution_BTVL1_CUDA(); - -//! @} superres - - } -} - -#endif // OPENCV_SUPERRES_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/superres/optical_flow.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/superres/optical_flow.hpp deleted file mode 100644 index 07e7ca9c9..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/superres/optical_flow.hpp +++ /dev/null @@ -1,203 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_SUPERRES_OPTICAL_FLOW_HPP -#define OPENCV_SUPERRES_OPTICAL_FLOW_HPP - -#include "opencv2/core.hpp" - -namespace cv -{ - namespace superres - { - -//! @addtogroup superres -//! @{ - - class CV_EXPORTS DenseOpticalFlowExt : public cv::Algorithm - { - public: - virtual void calc(InputArray frame0, InputArray frame1, OutputArray flow1, OutputArray flow2 = noArray()) = 0; - virtual void collectGarbage() = 0; - }; - - - class CV_EXPORTS FarnebackOpticalFlow : public virtual DenseOpticalFlowExt - { - public: - /** @see setPyrScale */ - virtual double getPyrScale() const = 0; - /** @copybrief getPyrScale @see getPyrScale */ - virtual void setPyrScale(double val) = 0; - /** @see setLevelsNumber */ - virtual int getLevelsNumber() const = 0; - /** @copybrief getLevelsNumber @see getLevelsNumber */ - virtual void setLevelsNumber(int val) = 0; - /** @see setWindowSize */ - virtual int getWindowSize() const = 0; - /** @copybrief getWindowSize @see getWindowSize */ - virtual void setWindowSize(int val) = 0; - /** @see setIterations */ - virtual int getIterations() const = 0; - /** @copybrief getIterations @see getIterations */ - virtual void setIterations(int val) = 0; - /** @see setPolyN */ - virtual int getPolyN() const = 0; - /** @copybrief getPolyN @see getPolyN */ - virtual void setPolyN(int val) = 0; - /** @see setPolySigma */ - virtual double getPolySigma() const = 0; - /** @copybrief getPolySigma @see getPolySigma */ - virtual void setPolySigma(double val) = 0; - /** @see setFlags */ - virtual int getFlags() const = 0; - /** @copybrief getFlags @see getFlags */ - virtual void setFlags(int val) = 0; - }; - CV_EXPORTS Ptr createOptFlow_Farneback(); - CV_EXPORTS Ptr createOptFlow_Farneback_CUDA(); - - -// CV_EXPORTS Ptr createOptFlow_Simple(); - - - class CV_EXPORTS DualTVL1OpticalFlow : public virtual DenseOpticalFlowExt - { - public: - /** @see setTau */ - virtual double getTau() const = 0; - /** @copybrief getTau @see getTau */ - virtual void setTau(double val) = 0; - /** @see setLambda */ - virtual double getLambda() const = 0; - /** @copybrief getLambda @see getLambda */ - virtual void setLambda(double val) = 0; - /** @see setTheta */ - virtual double getTheta() const = 0; - /** @copybrief getTheta @see getTheta */ - virtual void setTheta(double val) = 0; - /** @see setScalesNumber */ - virtual int getScalesNumber() const = 0; - /** @copybrief getScalesNumber @see getScalesNumber */ - virtual void setScalesNumber(int val) = 0; - /** @see setWarpingsNumber */ - virtual int getWarpingsNumber() const = 0; - /** @copybrief getWarpingsNumber @see getWarpingsNumber */ - virtual void setWarpingsNumber(int val) = 0; - /** @see setEpsilon */ - virtual double getEpsilon() const = 0; - /** @copybrief getEpsilon @see getEpsilon */ - virtual void setEpsilon(double val) = 0; - /** @see setIterations */ - virtual int getIterations() const = 0; - /** @copybrief getIterations @see getIterations */ - virtual void setIterations(int val) = 0; - /** @see setUseInitialFlow */ - virtual bool getUseInitialFlow() const = 0; - /** @copybrief getUseInitialFlow @see getUseInitialFlow */ - virtual void setUseInitialFlow(bool val) = 0; - }; - CV_EXPORTS Ptr createOptFlow_DualTVL1(); - CV_EXPORTS Ptr createOptFlow_DualTVL1_CUDA(); - - - class CV_EXPORTS BroxOpticalFlow : public virtual DenseOpticalFlowExt - { - public: - //! @brief Flow smoothness - /** @see setAlpha */ - virtual double getAlpha() const = 0; - /** @copybrief getAlpha @see getAlpha */ - virtual void setAlpha(double val) = 0; - //! @brief Gradient constancy importance - /** @see setGamma */ - virtual double getGamma() const = 0; - /** @copybrief getGamma @see getGamma */ - virtual void setGamma(double val) = 0; - //! @brief Pyramid scale factor - /** @see setScaleFactor */ - virtual double getScaleFactor() const = 0; - /** @copybrief getScaleFactor @see getScaleFactor */ - virtual void setScaleFactor(double val) = 0; - //! @brief Number of lagged non-linearity iterations (inner loop) - /** @see setInnerIterations */ - virtual int getInnerIterations() const = 0; - /** @copybrief getInnerIterations @see getInnerIterations */ - virtual void setInnerIterations(int val) = 0; - //! @brief Number of warping iterations (number of pyramid levels) - /** @see setOuterIterations */ - virtual int getOuterIterations() const = 0; - /** @copybrief getOuterIterations @see getOuterIterations */ - virtual void setOuterIterations(int val) = 0; - //! @brief Number of linear system solver iterations - /** @see setSolverIterations */ - virtual int getSolverIterations() const = 0; - /** @copybrief getSolverIterations @see getSolverIterations */ - virtual void setSolverIterations(int val) = 0; - }; - CV_EXPORTS Ptr createOptFlow_Brox_CUDA(); - - - class PyrLKOpticalFlow : public virtual DenseOpticalFlowExt - { - public: - /** @see setWindowSize */ - virtual int getWindowSize() const = 0; - /** @copybrief getWindowSize @see getWindowSize */ - virtual void setWindowSize(int val) = 0; - /** @see setMaxLevel */ - virtual int getMaxLevel() const = 0; - /** @copybrief getMaxLevel @see getMaxLevel */ - virtual void setMaxLevel(int val) = 0; - /** @see setIterations */ - virtual int getIterations() const = 0; - /** @copybrief getIterations @see getIterations */ - virtual void setIterations(int val) = 0; - }; - CV_EXPORTS Ptr createOptFlow_PyrLK_CUDA(); - -//! @} - - } -} - -#endif // OPENCV_SUPERRES_OPTICAL_FLOW_HPP diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/video/tracking.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/video/tracking.hpp deleted file mode 100644 index d397ac7aa..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/video/tracking.hpp +++ /dev/null @@ -1,628 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_TRACKING_HPP -#define OPENCV_TRACKING_HPP - -#include "opencv2/core.hpp" -#include "opencv2/imgproc.hpp" - -namespace cv -{ - -//! @addtogroup video_track -//! @{ - -enum { OPTFLOW_USE_INITIAL_FLOW = 4, - OPTFLOW_LK_GET_MIN_EIGENVALS = 8, - OPTFLOW_FARNEBACK_GAUSSIAN = 256 - }; - -/** @brief Finds an object center, size, and orientation. - -@param probImage Back projection of the object histogram. See calcBackProject. -@param window Initial search window. -@param criteria Stop criteria for the underlying meanShift. -returns -(in old interfaces) Number of iterations CAMSHIFT took to converge -The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an -object center using meanShift and then adjusts the window size and finds the optimal rotation. The -function returns the rotated rectangle structure that includes the object position, size, and -orientation. The next position of the search window can be obtained with RotatedRect::boundingRect() - -See the OpenCV sample camshiftdemo.c that tracks colored objects. - -@note -- (Python) A sample explaining the camshift tracking algorithm can be found at - opencv_source_code/samples/python/camshift.py - */ -CV_EXPORTS_W RotatedRect CamShift( InputArray probImage, CV_IN_OUT Rect& window, - TermCriteria criteria ); -/** @example camshiftdemo.cpp -An example using the mean-shift tracking algorithm -*/ -/** @brief Finds an object on a back projection image. - -@param probImage Back projection of the object histogram. See calcBackProject for details. -@param window Initial search window. -@param criteria Stop criteria for the iterative search algorithm. -returns -: Number of iterations CAMSHIFT took to converge. -The function implements the iterative object search algorithm. It takes the input back projection of -an object and the initial position. The mass center in window of the back projection image is -computed and the search window center shifts to the mass center. The procedure is repeated until the -specified number of iterations criteria.maxCount is done or until the window center shifts by less -than criteria.epsilon. The algorithm is used inside CamShift and, unlike CamShift , the search -window size or orientation do not change during the search. You can simply pass the output of -calcBackProject to this function. But better results can be obtained if you pre-filter the back -projection and remove the noise. For example, you can do this by retrieving connected components -with findContours , throwing away contours with small area ( contourArea ), and rendering the -remaining contours with drawContours. - - */ -CV_EXPORTS_W int meanShift( InputArray probImage, CV_IN_OUT Rect& window, TermCriteria criteria ); - -/** @brief Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK. - -@param img 8-bit input image. -@param pyramid output pyramid. -@param winSize window size of optical flow algorithm. Must be not less than winSize argument of -calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels. -@param maxLevel 0-based maximal pyramid level number. -@param withDerivatives set to precompute gradients for the every pyramid level. If pyramid is -constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally. -@param pyrBorder the border mode for pyramid layers. -@param derivBorder the border mode for gradients. -@param tryReuseInputImage put ROI of input image into the pyramid if possible. You can pass false -to force data copying. -@return number of levels in constructed pyramid. Can be less than maxLevel. - */ -CV_EXPORTS_W int buildOpticalFlowPyramid( InputArray img, OutputArrayOfArrays pyramid, - Size winSize, int maxLevel, bool withDerivatives = true, - int pyrBorder = BORDER_REFLECT_101, - int derivBorder = BORDER_CONSTANT, - bool tryReuseInputImage = true ); - -/** @example lkdemo.cpp -An example using the Lucas-Kanade optical flow algorithm - */ -/** @brief Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with -pyramids. - -@param prevImg first 8-bit input image or pyramid constructed by buildOpticalFlowPyramid. -@param nextImg second input image or pyramid of the same size and the same type as prevImg. -@param prevPts vector of 2D points for which the flow needs to be found; point coordinates must be -single-precision floating-point numbers. -@param nextPts output vector of 2D points (with single-precision floating-point coordinates) -containing the calculated new positions of input features in the second image; when -OPTFLOW_USE_INITIAL_FLOW flag is passed, the vector must have the same size as in the input. -@param status output status vector (of unsigned chars); each element of the vector is set to 1 if -the flow for the corresponding features has been found, otherwise, it is set to 0. -@param err output vector of errors; each element of the vector is set to an error for the -corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't -found then the error is not defined (use the status parameter to find such cases). -@param winSize size of the search window at each pyramid level. -@param maxLevel 0-based maximal pyramid level number; if set to 0, pyramids are not used (single -level), if set to 1, two levels are used, and so on; if pyramids are passed to input then -algorithm will use as many levels as pyramids have but no more than maxLevel. -@param criteria parameter, specifying the termination criteria of the iterative search algorithm -(after the specified maximum number of iterations criteria.maxCount or when the search window -moves by less than criteria.epsilon. -@param flags operation flags: - - **OPTFLOW_USE_INITIAL_FLOW** uses initial estimations, stored in nextPts; if the flag is - not set, then prevPts is copied to nextPts and is considered the initial estimate. - - **OPTFLOW_LK_GET_MIN_EIGENVALS** use minimum eigen values as an error measure (see - minEigThreshold description); if the flag is not set, then L1 distance between patches - around the original and a moved point, divided by number of pixels in a window, is used as a - error measure. -@param minEigThreshold the algorithm calculates the minimum eigen value of a 2x2 normal matrix of -optical flow equations (this matrix is called a spatial gradient matrix in @cite Bouguet00), divided -by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding -feature is filtered out and its flow is not processed, so it allows to remove bad points and get a -performance boost. - -The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See -@cite Bouguet00 . The function is parallelized with the TBB library. - -@note - -- An example using the Lucas-Kanade optical flow algorithm can be found at - opencv_source_code/samples/cpp/lkdemo.cpp -- (Python) An example using the Lucas-Kanade optical flow algorithm can be found at - opencv_source_code/samples/python/lk_track.py -- (Python) An example using the Lucas-Kanade tracker for homography matching can be found at - opencv_source_code/samples/python/lk_homography.py - */ -CV_EXPORTS_W void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg, - InputArray prevPts, InputOutputArray nextPts, - OutputArray status, OutputArray err, - Size winSize = Size(21,21), int maxLevel = 3, - TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01), - int flags = 0, double minEigThreshold = 1e-4 ); - -/** @brief Computes a dense optical flow using the Gunnar Farneback's algorithm. - -@param prev first 8-bit single-channel input image. -@param next second input image of the same size and the same type as prev. -@param flow computed flow image that has the same size as prev and type CV_32FC2. -@param pyr_scale parameter, specifying the image scale (\<1) to build pyramids for each image; -pyr_scale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous -one. -@param levels number of pyramid layers including the initial image; levels=1 means that no extra -layers are created and only the original images are used. -@param winsize averaging window size; larger values increase the algorithm robustness to image -noise and give more chances for fast motion detection, but yield more blurred motion field. -@param iterations number of iterations the algorithm does at each pyramid level. -@param poly_n size of the pixel neighborhood used to find polynomial expansion in each pixel; -larger values mean that the image will be approximated with smoother surfaces, yielding more -robust algorithm and more blurred motion field, typically poly_n =5 or 7. -@param poly_sigma standard deviation of the Gaussian that is used to smooth derivatives used as a -basis for the polynomial expansion; for poly_n=5, you can set poly_sigma=1.1, for poly_n=7, a -good value would be poly_sigma=1.5. -@param flags operation flags that can be a combination of the following: - - **OPTFLOW_USE_INITIAL_FLOW** uses the input flow as an initial flow approximation. - - **OPTFLOW_FARNEBACK_GAUSSIAN** uses the Gaussian \f$\texttt{winsize}\times\texttt{winsize}\f$ - filter instead of a box filter of the same size for optical flow estimation; usually, this - option gives z more accurate flow than with a box filter, at the cost of lower speed; - normally, winsize for a Gaussian window should be set to a larger value to achieve the same - level of robustness. - -The function finds an optical flow for each prev pixel using the @cite Farneback2003 algorithm so that - -\f[\texttt{prev} (y,x) \sim \texttt{next} ( y + \texttt{flow} (y,x)[1], x + \texttt{flow} (y,x)[0])\f] - -@note - -- An example using the optical flow algorithm described by Gunnar Farneback can be found at - opencv_source_code/samples/cpp/fback.cpp -- (Python) An example using the optical flow algorithm described by Gunnar Farneback can be - found at opencv_source_code/samples/python/opt_flow.py - */ -CV_EXPORTS_W void calcOpticalFlowFarneback( InputArray prev, InputArray next, InputOutputArray flow, - double pyr_scale, int levels, int winsize, - int iterations, int poly_n, double poly_sigma, - int flags ); - -/** @brief Computes an optimal affine transformation between two 2D point sets. - -@param src First input 2D point set stored in std::vector or Mat, or an image stored in Mat. -@param dst Second input 2D point set of the same size and the same type as A, or another image. -@param fullAffine If true, the function finds an optimal affine transformation with no additional -restrictions (6 degrees of freedom). Otherwise, the class of transformations to choose from is -limited to combinations of translation, rotation, and uniform scaling (4 degrees of freedom). - -The function finds an optimal affine transform *[A|b]* (a 2 x 3 floating-point matrix) that -approximates best the affine transformation between: - -* Two point sets -* Two raster images. In this case, the function first finds some features in the src image and - finds the corresponding features in dst image. After that, the problem is reduced to the first - case. -In case of point sets, the problem is formulated as follows: you need to find a 2x2 matrix *A* and -2x1 vector *b* so that: - -\f[[A^*|b^*] = arg \min _{[A|b]} \sum _i \| \texttt{dst}[i] - A { \texttt{src}[i]}^T - b \| ^2\f] -where src[i] and dst[i] are the i-th points in src and dst, respectively -\f$[A|b]\f$ can be either arbitrary (when fullAffine=true ) or have a form of -\f[\begin{bmatrix} a_{11} & a_{12} & b_1 \\ -a_{12} & a_{11} & b_2 \end{bmatrix}\f] -when fullAffine=false. - -@sa -estimateAffine2D, estimateAffinePartial2D, getAffineTransform, getPerspectiveTransform, findHomography - */ -CV_EXPORTS_W Mat estimateRigidTransform( InputArray src, InputArray dst, bool fullAffine ); - - -enum -{ - MOTION_TRANSLATION = 0, - MOTION_EUCLIDEAN = 1, - MOTION_AFFINE = 2, - MOTION_HOMOGRAPHY = 3 -}; - -/** @example image_alignment.cpp -An example using the image alignment ECC algorithm - */ - -/** @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 . - -@param templateImage single-channel template image; CV_8U or CV_32F array. -@param inputImage single-channel input image which should be warped with the final warpMatrix in -order to provide an image similar to templateImage, same type as temlateImage. -@param warpMatrix floating-point \f$2\times 3\f$ or \f$3\times 3\f$ mapping matrix (warp). -@param motionType parameter, specifying the type of motion: - - **MOTION_TRANSLATION** sets a translational motion model; warpMatrix is \f$2\times 3\f$ with - the first \f$2\times 2\f$ part being the unity matrix and the rest two parameters being - estimated. - - **MOTION_EUCLIDEAN** sets a Euclidean (rigid) transformation as motion model; three - parameters are estimated; warpMatrix is \f$2\times 3\f$. - - **MOTION_AFFINE** sets an affine motion model (DEFAULT); six parameters are estimated; - warpMatrix is \f$2\times 3\f$. - - **MOTION_HOMOGRAPHY** sets a homography as a motion model; eight parameters are - estimated;\`warpMatrix\` is \f$3\times 3\f$. -@param criteria parameter, specifying the termination criteria of the ECC algorithm; -criteria.epsilon defines the threshold of the increment in the correlation coefficient between two -iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion). -Default values are shown in the declaration above. -@param inputMask An optional mask to indicate valid values of inputImage. - -The function estimates the optimum transformation (warpMatrix) with respect to ECC criterion -(@cite EP08), that is - -\f[\texttt{warpMatrix} = \texttt{warpMatrix} = \arg\max_{W} \texttt{ECC}(\texttt{templateImage}(x,y),\texttt{inputImage}(x',y'))\f] - -where - -\f[\begin{bmatrix} x' \\ y' \end{bmatrix} = W \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}\f] - -(the equation holds with homogeneous coordinates for homography). It returns the final enhanced -correlation coefficient, that is the correlation coefficient between the template image and the -final warped input image. When a \f$3\times 3\f$ matrix is given with motionType =0, 1 or 2, the third -row is ignored. - -Unlike findHomography and estimateRigidTransform, the function findTransformECC implements an -area-based alignment that builds on intensity similarities. In essence, the function updates the -initial transformation that roughly aligns the images. If this information is missing, the identity -warp (unity matrix) is used as an initialization. Note that if images undergo strong -displacements/rotations, an initial transformation that roughly aligns the images is necessary -(e.g., a simple euclidean/similarity transform that allows for the images showing the same image -content approximately). Use inverse warping in the second image to take an image close to the first -one, i.e. use the flag WARP_INVERSE_MAP with warpAffine or warpPerspective. See also the OpenCV -sample image_alignment.cpp that demonstrates the use of the function. Note that the function throws -an exception if algorithm does not converges. - -@sa -estimateAffine2D, estimateAffinePartial2D, findHomography - */ -CV_EXPORTS_W double findTransformECC( InputArray templateImage, InputArray inputImage, - InputOutputArray warpMatrix, int motionType = MOTION_AFFINE, - TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 50, 0.001), - InputArray inputMask = noArray()); - -/** @example kalman.cpp -An example using the standard Kalman filter -*/ -/** @brief Kalman filter class. - -The class implements a standard Kalman filter , -@cite Welch95 . However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get -an extended Kalman filter functionality. -@note In C API when CvKalman\* kalmanFilter structure is not needed anymore, it should be released -with cvReleaseKalman(&kalmanFilter) - */ -class CV_EXPORTS_W KalmanFilter -{ -public: - CV_WRAP KalmanFilter(); - /** @overload - @param dynamParams Dimensionality of the state. - @param measureParams Dimensionality of the measurement. - @param controlParams Dimensionality of the control vector. - @param type Type of the created matrices that should be CV_32F or CV_64F. - */ - CV_WRAP KalmanFilter( int dynamParams, int measureParams, int controlParams = 0, int type = CV_32F ); - - /** @brief Re-initializes Kalman filter. The previous content is destroyed. - - @param dynamParams Dimensionality of the state. - @param measureParams Dimensionality of the measurement. - @param controlParams Dimensionality of the control vector. - @param type Type of the created matrices that should be CV_32F or CV_64F. - */ - void init( int dynamParams, int measureParams, int controlParams = 0, int type = CV_32F ); - - /** @brief Computes a predicted state. - - @param control The optional input control - */ - CV_WRAP const Mat& predict( const Mat& control = Mat() ); - - /** @brief Updates the predicted state from the measurement. - - @param measurement The measured system parameters - */ - CV_WRAP const Mat& correct( const Mat& measurement ); - - CV_PROP_RW Mat statePre; //!< predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k) - CV_PROP_RW Mat statePost; //!< corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) - CV_PROP_RW Mat transitionMatrix; //!< state transition matrix (A) - CV_PROP_RW Mat controlMatrix; //!< control matrix (B) (not used if there is no control) - CV_PROP_RW Mat measurementMatrix; //!< measurement matrix (H) - CV_PROP_RW Mat processNoiseCov; //!< process noise covariance matrix (Q) - CV_PROP_RW Mat measurementNoiseCov;//!< measurement noise covariance matrix (R) - CV_PROP_RW Mat errorCovPre; //!< priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q)*/ - CV_PROP_RW Mat gain; //!< Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R) - CV_PROP_RW Mat errorCovPost; //!< posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k) - - // temporary matrices - Mat temp1; - Mat temp2; - Mat temp3; - Mat temp4; - Mat temp5; -}; - - -class CV_EXPORTS_W DenseOpticalFlow : public Algorithm -{ -public: - /** @brief Calculates an optical flow. - - @param I0 first 8-bit single-channel input image. - @param I1 second input image of the same size and the same type as prev. - @param flow computed flow image that has the same size as prev and type CV_32FC2. - */ - CV_WRAP virtual void calc( InputArray I0, InputArray I1, InputOutputArray flow ) = 0; - /** @brief Releases all inner buffers. - */ - CV_WRAP virtual void collectGarbage() = 0; -}; - -/** @brief Base interface for sparse optical flow algorithms. - */ -class CV_EXPORTS_W SparseOpticalFlow : public Algorithm -{ -public: - /** @brief Calculates a sparse optical flow. - - @param prevImg First input image. - @param nextImg Second input image of the same size and the same type as prevImg. - @param prevPts Vector of 2D points for which the flow needs to be found. - @param nextPts Output vector of 2D points containing the calculated new positions of input features in the second image. - @param status Output status vector. Each element of the vector is set to 1 if the - flow for the corresponding features has been found. Otherwise, it is set to 0. - @param err Optional output vector that contains error response for each point (inverse confidence). - */ - CV_WRAP virtual void calc(InputArray prevImg, InputArray nextImg, - InputArray prevPts, InputOutputArray nextPts, - OutputArray status, - OutputArray err = cv::noArray()) = 0; -}; - -/** @brief "Dual TV L1" Optical Flow Algorithm. - -The class implements the "Dual TV L1" optical flow algorithm described in @cite Zach2007 and -@cite Javier2012 . -Here are important members of the class that control the algorithm, which you can set after -constructing the class instance: - -- member double tau - Time step of the numerical scheme. - -- member double lambda - Weight parameter for the data term, attachment parameter. This is the most relevant - parameter, which determines the smoothness of the output. The smaller this parameter is, - the smoother the solutions we obtain. It depends on the range of motions of the images, so - its value should be adapted to each image sequence. - -- member double theta - Weight parameter for (u - v)\^2, tightness parameter. It serves as a link between the - attachment and the regularization terms. In theory, it should have a small value in order - to maintain both parts in correspondence. The method is stable for a large range of values - of this parameter. - -- member int nscales - Number of scales used to create the pyramid of images. - -- member int warps - Number of warpings per scale. Represents the number of times that I1(x+u0) and grad( - I1(x+u0) ) are computed per scale. This is a parameter that assures the stability of the - method. It also affects the running time, so it is a compromise between speed and - accuracy. - -- member double epsilon - Stopping criterion threshold used in the numerical scheme, which is a trade-off between - precision and running time. A small value will yield more accurate solutions at the - expense of a slower convergence. - -- member int iterations - Stopping criterion iterations number used in the numerical scheme. - -C. Zach, T. Pock and H. Bischof, "A Duality Based Approach for Realtime TV-L1 Optical Flow". -Javier Sanchez, Enric Meinhardt-Llopis and Gabriele Facciolo. "TV-L1 Optical Flow Estimation". -*/ -class CV_EXPORTS_W DualTVL1OpticalFlow : public DenseOpticalFlow -{ -public: - //! @brief Time step of the numerical scheme - /** @see setTau */ - CV_WRAP virtual double getTau() const = 0; - /** @copybrief getTau @see getTau */ - CV_WRAP virtual void setTau(double val) = 0; - //! @brief Weight parameter for the data term, attachment parameter - /** @see setLambda */ - CV_WRAP virtual double getLambda() const = 0; - /** @copybrief getLambda @see getLambda */ - CV_WRAP virtual void setLambda(double val) = 0; - //! @brief Weight parameter for (u - v)^2, tightness parameter - /** @see setTheta */ - CV_WRAP virtual double getTheta() const = 0; - /** @copybrief getTheta @see getTheta */ - CV_WRAP virtual void setTheta(double val) = 0; - //! @brief coefficient for additional illumination variation term - /** @see setGamma */ - CV_WRAP virtual double getGamma() const = 0; - /** @copybrief getGamma @see getGamma */ - CV_WRAP virtual void setGamma(double val) = 0; - //! @brief Number of scales used to create the pyramid of images - /** @see setScalesNumber */ - CV_WRAP virtual int getScalesNumber() const = 0; - /** @copybrief getScalesNumber @see getScalesNumber */ - CV_WRAP virtual void setScalesNumber(int val) = 0; - //! @brief Number of warpings per scale - /** @see setWarpingsNumber */ - CV_WRAP virtual int getWarpingsNumber() const = 0; - /** @copybrief getWarpingsNumber @see getWarpingsNumber */ - CV_WRAP virtual void setWarpingsNumber(int val) = 0; - //! @brief Stopping criterion threshold used in the numerical scheme, which is a trade-off between precision and running time - /** @see setEpsilon */ - CV_WRAP virtual double getEpsilon() const = 0; - /** @copybrief getEpsilon @see getEpsilon */ - CV_WRAP virtual void setEpsilon(double val) = 0; - //! @brief Inner iterations (between outlier filtering) used in the numerical scheme - /** @see setInnerIterations */ - CV_WRAP virtual int getInnerIterations() const = 0; - /** @copybrief getInnerIterations @see getInnerIterations */ - CV_WRAP virtual void setInnerIterations(int val) = 0; - //! @brief Outer iterations (number of inner loops) used in the numerical scheme - /** @see setOuterIterations */ - CV_WRAP virtual int getOuterIterations() const = 0; - /** @copybrief getOuterIterations @see getOuterIterations */ - CV_WRAP virtual void setOuterIterations(int val) = 0; - //! @brief Use initial flow - /** @see setUseInitialFlow */ - CV_WRAP virtual bool getUseInitialFlow() const = 0; - /** @copybrief getUseInitialFlow @see getUseInitialFlow */ - CV_WRAP virtual void setUseInitialFlow(bool val) = 0; - //! @brief Step between scales (<1) - /** @see setScaleStep */ - CV_WRAP virtual double getScaleStep() const = 0; - /** @copybrief getScaleStep @see getScaleStep */ - CV_WRAP virtual void setScaleStep(double val) = 0; - //! @brief Median filter kernel size (1 = no filter) (3 or 5) - /** @see setMedianFiltering */ - CV_WRAP virtual int getMedianFiltering() const = 0; - /** @copybrief getMedianFiltering @see getMedianFiltering */ - CV_WRAP virtual void setMedianFiltering(int val) = 0; - - /** @brief Creates instance of cv::DualTVL1OpticalFlow*/ - CV_WRAP static Ptr create( - double tau = 0.25, - double lambda = 0.15, - double theta = 0.3, - int nscales = 5, - int warps = 5, - double epsilon = 0.01, - int innnerIterations = 30, - int outerIterations = 10, - double scaleStep = 0.8, - double gamma = 0.0, - int medianFiltering = 5, - bool useInitialFlow = false); -}; - -/** @brief Creates instance of cv::DenseOpticalFlow -*/ -CV_EXPORTS_W Ptr createOptFlow_DualTVL1(); - -/** @brief Class computing a dense optical flow using the Gunnar Farneback's algorithm. - */ -class CV_EXPORTS_W FarnebackOpticalFlow : public DenseOpticalFlow -{ -public: - CV_WRAP virtual int getNumLevels() const = 0; - CV_WRAP virtual void setNumLevels(int numLevels) = 0; - - CV_WRAP virtual double getPyrScale() const = 0; - CV_WRAP virtual void setPyrScale(double pyrScale) = 0; - - CV_WRAP virtual bool getFastPyramids() const = 0; - CV_WRAP virtual void setFastPyramids(bool fastPyramids) = 0; - - CV_WRAP virtual int getWinSize() const = 0; - CV_WRAP virtual void setWinSize(int winSize) = 0; - - CV_WRAP virtual int getNumIters() const = 0; - CV_WRAP virtual void setNumIters(int numIters) = 0; - - CV_WRAP virtual int getPolyN() const = 0; - CV_WRAP virtual void setPolyN(int polyN) = 0; - - CV_WRAP virtual double getPolySigma() const = 0; - CV_WRAP virtual void setPolySigma(double polySigma) = 0; - - CV_WRAP virtual int getFlags() const = 0; - CV_WRAP virtual void setFlags(int flags) = 0; - - CV_WRAP static Ptr create( - int numLevels = 5, - double pyrScale = 0.5, - bool fastPyramids = false, - int winSize = 13, - int numIters = 10, - int polyN = 5, - double polySigma = 1.1, - int flags = 0); -}; - - -/** @brief Class used for calculating a sparse optical flow. - -The class can calculate an optical flow for a sparse feature set using the -iterative Lucas-Kanade method with pyramids. - -@sa calcOpticalFlowPyrLK - -*/ -class CV_EXPORTS_W SparsePyrLKOpticalFlow : public SparseOpticalFlow -{ -public: - CV_WRAP virtual Size getWinSize() const = 0; - CV_WRAP virtual void setWinSize(Size winSize) = 0; - - CV_WRAP virtual int getMaxLevel() const = 0; - CV_WRAP virtual void setMaxLevel(int maxLevel) = 0; - - CV_WRAP virtual TermCriteria getTermCriteria() const = 0; - CV_WRAP virtual void setTermCriteria(TermCriteria& crit) = 0; - - CV_WRAP virtual int getFlags() const = 0; - CV_WRAP virtual void setFlags(int flags) = 0; - - CV_WRAP virtual double getMinEigThreshold() const = 0; - CV_WRAP virtual void setMinEigThreshold(double minEigThreshold) = 0; - - CV_WRAP static Ptr create( - Size winSize = Size(21, 21), - int maxLevel = 3, TermCriteria crit = - TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01), - int flags = 0, - double minEigThreshold = 1e-4); -}; - -//! @} video_track - -} // cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/video/tracking_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/video/tracking_c.h deleted file mode 100644 index 3e32fbd0c..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/video/tracking_c.h +++ /dev/null @@ -1,232 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009, Willow Garage Inc., all rights reserved. -// Copyright (C) 2013, OpenCV Foundation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_TRACKING_C_H -#define OPENCV_TRACKING_C_H - -#include "opencv2/imgproc/types_c.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** @addtogroup video_c - @{ -*/ - -/****************************************************************************************\ -* Motion Analysis * -\****************************************************************************************/ - -/************************************ optical flow ***************************************/ - -#define CV_LKFLOW_PYR_A_READY 1 -#define CV_LKFLOW_PYR_B_READY 2 -#define CV_LKFLOW_INITIAL_GUESSES 4 -#define CV_LKFLOW_GET_MIN_EIGENVALS 8 - -/* It is Lucas & Kanade method, modified to use pyramids. - Also it does several iterations to get optical flow for - every point at every pyramid level. - Calculates optical flow between two images for certain set of points (i.e. - it is a "sparse" optical flow, which is opposite to the previous 3 methods) */ -CVAPI(void) cvCalcOpticalFlowPyrLK( const CvArr* prev, const CvArr* curr, - CvArr* prev_pyr, CvArr* curr_pyr, - const CvPoint2D32f* prev_features, - CvPoint2D32f* curr_features, - int count, - CvSize win_size, - int level, - char* status, - float* track_error, - CvTermCriteria criteria, - int flags ); - - -/* Modification of a previous sparse optical flow algorithm to calculate - affine flow */ -CVAPI(void) cvCalcAffineFlowPyrLK( const CvArr* prev, const CvArr* curr, - CvArr* prev_pyr, CvArr* curr_pyr, - const CvPoint2D32f* prev_features, - CvPoint2D32f* curr_features, - float* matrices, int count, - CvSize win_size, int level, - char* status, float* track_error, - CvTermCriteria criteria, int flags ); - -/* Estimate rigid transformation between 2 images or 2 point sets */ -CVAPI(int) cvEstimateRigidTransform( const CvArr* A, const CvArr* B, - CvMat* M, int full_affine ); - -/* Estimate optical flow for each pixel using the two-frame G. Farneback algorithm */ -CVAPI(void) cvCalcOpticalFlowFarneback( const CvArr* prev, const CvArr* next, - CvArr* flow, double pyr_scale, int levels, - int winsize, int iterations, int poly_n, - double poly_sigma, int flags ); - -/********************************* motion templates *************************************/ - -/****************************************************************************************\ -* All the motion template functions work only with single channel images. * -* Silhouette image must have depth IPL_DEPTH_8U or IPL_DEPTH_8S * -* Motion history image must have depth IPL_DEPTH_32F, * -* Gradient mask - IPL_DEPTH_8U or IPL_DEPTH_8S, * -* Motion orientation image - IPL_DEPTH_32F * -* Segmentation mask - IPL_DEPTH_32F * -* All the angles are in degrees, all the times are in milliseconds * -\****************************************************************************************/ - -/* Updates motion history image given motion silhouette */ -CVAPI(void) cvUpdateMotionHistory( const CvArr* silhouette, CvArr* mhi, - double timestamp, double duration ); - -/* Calculates gradient of the motion history image and fills - a mask indicating where the gradient is valid */ -CVAPI(void) cvCalcMotionGradient( const CvArr* mhi, CvArr* mask, CvArr* orientation, - double delta1, double delta2, - int aperture_size CV_DEFAULT(3)); - -/* Calculates average motion direction within a selected motion region - (region can be selected by setting ROIs and/or by composing a valid gradient mask - with the region mask) */ -CVAPI(double) cvCalcGlobalOrientation( const CvArr* orientation, const CvArr* mask, - const CvArr* mhi, double timestamp, - double duration ); - -/* Splits a motion history image into a few parts corresponding to separate independent motions - (e.g. left hand, right hand) */ -CVAPI(CvSeq*) cvSegmentMotion( const CvArr* mhi, CvArr* seg_mask, - CvMemStorage* storage, - double timestamp, double seg_thresh ); - -/****************************************************************************************\ -* Tracking * -\****************************************************************************************/ - -/* Implements CAMSHIFT algorithm - determines object position, size and orientation - from the object histogram back project (extension of meanshift) */ -CVAPI(int) cvCamShift( const CvArr* prob_image, CvRect window, - CvTermCriteria criteria, CvConnectedComp* comp, - CvBox2D* box CV_DEFAULT(NULL) ); - -/* Implements MeanShift algorithm - determines object position - from the object histogram back project */ -CVAPI(int) cvMeanShift( const CvArr* prob_image, CvRect window, - CvTermCriteria criteria, CvConnectedComp* comp ); - -/* -standard Kalman filter (in G. Welch' and G. Bishop's notation): - - x(k)=A*x(k-1)+B*u(k)+w(k) p(w)~N(0,Q) - z(k)=H*x(k)+v(k), p(v)~N(0,R) -*/ -typedef struct CvKalman -{ - int MP; /* number of measurement vector dimensions */ - int DP; /* number of state vector dimensions */ - int CP; /* number of control vector dimensions */ - - /* backward compatibility fields */ -#if 1 - float* PosterState; /* =state_pre->data.fl */ - float* PriorState; /* =state_post->data.fl */ - float* DynamMatr; /* =transition_matrix->data.fl */ - float* MeasurementMatr; /* =measurement_matrix->data.fl */ - float* MNCovariance; /* =measurement_noise_cov->data.fl */ - float* PNCovariance; /* =process_noise_cov->data.fl */ - float* KalmGainMatr; /* =gain->data.fl */ - float* PriorErrorCovariance;/* =error_cov_pre->data.fl */ - float* PosterErrorCovariance;/* =error_cov_post->data.fl */ - float* Temp1; /* temp1->data.fl */ - float* Temp2; /* temp2->data.fl */ -#endif - - CvMat* state_pre; /* predicted state (x'(k)): - x(k)=A*x(k-1)+B*u(k) */ - CvMat* state_post; /* corrected state (x(k)): - x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) */ - CvMat* transition_matrix; /* state transition matrix (A) */ - CvMat* control_matrix; /* control matrix (B) - (it is not used if there is no control)*/ - CvMat* measurement_matrix; /* measurement matrix (H) */ - CvMat* process_noise_cov; /* process noise covariance matrix (Q) */ - CvMat* measurement_noise_cov; /* measurement noise covariance matrix (R) */ - CvMat* error_cov_pre; /* priori error estimate covariance matrix (P'(k)): - P'(k)=A*P(k-1)*At + Q)*/ - CvMat* gain; /* Kalman gain matrix (K(k)): - K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)*/ - CvMat* error_cov_post; /* posteriori error estimate covariance matrix (P(k)): - P(k)=(I-K(k)*H)*P'(k) */ - CvMat* temp1; /* temporary matrices */ - CvMat* temp2; - CvMat* temp3; - CvMat* temp4; - CvMat* temp5; -} CvKalman; - -/* Creates Kalman filter and sets A, B, Q, R and state to some initial values */ -CVAPI(CvKalman*) cvCreateKalman( int dynam_params, int measure_params, - int control_params CV_DEFAULT(0)); - -/* Releases Kalman filter state */ -CVAPI(void) cvReleaseKalman( CvKalman** kalman); - -/* Updates Kalman filter by time (predicts future state of the system) */ -CVAPI(const CvMat*) cvKalmanPredict( CvKalman* kalman, - const CvMat* control CV_DEFAULT(NULL)); - -/* Updates Kalman filter by measurement - (corrects state of the system and internal matrices) */ -CVAPI(const CvMat*) cvKalmanCorrect( CvKalman* kalman, const CvMat* measurement ); - -#define cvKalmanUpdateByTime cvKalmanPredict -#define cvKalmanUpdateByMeasurement cvKalmanCorrect - -/** @} video_c */ - -#ifdef __cplusplus -} // extern "C" -#endif - - -#endif // OPENCV_TRACKING_C_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio/videoio_c.h b/lib/3rdParty/OpenCV3.4/include/opencv2/videoio/videoio_c.h deleted file mode 100644 index 024633c8b..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videoio/videoio_c.h +++ /dev/null @@ -1,587 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// Intel License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000, Intel Corporation, all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of Intel Corporation may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOIO_H -#define OPENCV_VIDEOIO_H - -#include "opencv2/core/core_c.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - @addtogroup videoio_c - @{ -*/ - -/****************************************************************************************\ -* Working with Video Files and Cameras * -\****************************************************************************************/ - -/** @brief "black box" capture structure - -In C++ use cv::VideoCapture -*/ -typedef struct CvCapture CvCapture; - -/** @brief start capturing frames from video file -*/ -CVAPI(CvCapture*) cvCreateFileCapture( const char* filename ); - -/** @brief start capturing frames from video file. allows specifying a preferred API to use -*/ -CVAPI(CvCapture*) cvCreateFileCaptureWithPreference( const char* filename , int apiPreference); - -enum -{ - CV_CAP_ANY =0, // autodetect - - CV_CAP_MIL =100, // MIL proprietary drivers - - CV_CAP_VFW =200, // platform native - CV_CAP_V4L =200, - CV_CAP_V4L2 =200, - - CV_CAP_FIREWARE =300, // IEEE 1394 drivers - CV_CAP_FIREWIRE =300, - CV_CAP_IEEE1394 =300, - CV_CAP_DC1394 =300, - CV_CAP_CMU1394 =300, - - CV_CAP_STEREO =400, // TYZX proprietary drivers - CV_CAP_TYZX =400, - CV_TYZX_LEFT =400, - CV_TYZX_RIGHT =401, - CV_TYZX_COLOR =402, - CV_TYZX_Z =403, - - CV_CAP_QT =500, // QuickTime - - CV_CAP_UNICAP =600, // Unicap drivers - - CV_CAP_DSHOW =700, // DirectShow (via videoInput) - CV_CAP_MSMF =1400, // Microsoft Media Foundation (via videoInput) - - CV_CAP_PVAPI =800, // PvAPI, Prosilica GigE SDK - - CV_CAP_OPENNI =900, // OpenNI (for Kinect) - CV_CAP_OPENNI_ASUS =910, // OpenNI (for Asus Xtion) - - CV_CAP_ANDROID =1000, // Android - not used - CV_CAP_ANDROID_BACK =CV_CAP_ANDROID+99, // Android back camera - not used - CV_CAP_ANDROID_FRONT =CV_CAP_ANDROID+98, // Android front camera - not used - - CV_CAP_XIAPI =1100, // XIMEA Camera API - - CV_CAP_AVFOUNDATION = 1200, // AVFoundation framework for iOS (OS X Lion will have the same API) - - CV_CAP_GIGANETIX = 1300, // Smartek Giganetix GigEVisionSDK - - CV_CAP_INTELPERC = 1500, // Intel Perceptual Computing - - CV_CAP_OPENNI2 = 1600, // OpenNI2 (for Kinect) - CV_CAP_GPHOTO2 = 1700, - CV_CAP_GSTREAMER = 1800, // GStreamer - CV_CAP_FFMPEG = 1900, // FFMPEG - CV_CAP_IMAGES = 2000, // OpenCV Image Sequence (e.g. img_%02d.jpg) - - CV_CAP_ARAVIS = 2100 // Aravis GigE SDK -}; - -/** @brief start capturing frames from camera: index = camera_index + domain_offset (CV_CAP_*) -*/ -CVAPI(CvCapture*) cvCreateCameraCapture( int index ); - -/** @brief grab a frame, return 1 on success, 0 on fail. - - this function is thought to be fast -*/ -CVAPI(int) cvGrabFrame( CvCapture* capture ); - -/** @brief get the frame grabbed with cvGrabFrame(..) - - This function may apply some frame processing like - frame decompression, flipping etc. - @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!! -*/ -CVAPI(IplImage*) cvRetrieveFrame( CvCapture* capture, int streamIdx CV_DEFAULT(0) ); - -/** @brief Just a combination of cvGrabFrame and cvRetrieveFrame - - @warning !!!DO NOT RELEASE or MODIFY the retrieved frame!!! -*/ -CVAPI(IplImage*) cvQueryFrame( CvCapture* capture ); - -/** @brief stop capturing/reading and free resources -*/ -CVAPI(void) cvReleaseCapture( CvCapture** capture ); - -enum -{ - // modes of the controlling registers (can be: auto, manual, auto single push, absolute Latter allowed with any other mode) - // every feature can have only one mode turned on at a time - CV_CAP_PROP_DC1394_OFF = -4, //turn the feature off (not controlled manually nor automatically) - CV_CAP_PROP_DC1394_MODE_MANUAL = -3, //set automatically when a value of the feature is set by the user - CV_CAP_PROP_DC1394_MODE_AUTO = -2, - CV_CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO = -1, - CV_CAP_PROP_POS_MSEC =0, - CV_CAP_PROP_POS_FRAMES =1, - CV_CAP_PROP_POS_AVI_RATIO =2, - CV_CAP_PROP_FRAME_WIDTH =3, - CV_CAP_PROP_FRAME_HEIGHT =4, - CV_CAP_PROP_FPS =5, - CV_CAP_PROP_FOURCC =6, - CV_CAP_PROP_FRAME_COUNT =7, - CV_CAP_PROP_FORMAT =8, - CV_CAP_PROP_MODE =9, - CV_CAP_PROP_BRIGHTNESS =10, - CV_CAP_PROP_CONTRAST =11, - CV_CAP_PROP_SATURATION =12, - CV_CAP_PROP_HUE =13, - CV_CAP_PROP_GAIN =14, - CV_CAP_PROP_EXPOSURE =15, - CV_CAP_PROP_CONVERT_RGB =16, - CV_CAP_PROP_WHITE_BALANCE_BLUE_U =17, - CV_CAP_PROP_RECTIFICATION =18, - CV_CAP_PROP_MONOCHROME =19, - CV_CAP_PROP_SHARPNESS =20, - CV_CAP_PROP_AUTO_EXPOSURE =21, // exposure control done by camera, - // user can adjust refernce level - // using this feature - CV_CAP_PROP_GAMMA =22, - CV_CAP_PROP_TEMPERATURE =23, - CV_CAP_PROP_TRIGGER =24, - CV_CAP_PROP_TRIGGER_DELAY =25, - CV_CAP_PROP_WHITE_BALANCE_RED_V =26, - CV_CAP_PROP_ZOOM =27, - CV_CAP_PROP_FOCUS =28, - CV_CAP_PROP_GUID =29, - CV_CAP_PROP_ISO_SPEED =30, - CV_CAP_PROP_MAX_DC1394 =31, - CV_CAP_PROP_BACKLIGHT =32, - CV_CAP_PROP_PAN =33, - CV_CAP_PROP_TILT =34, - CV_CAP_PROP_ROLL =35, - CV_CAP_PROP_IRIS =36, - CV_CAP_PROP_SETTINGS =37, - CV_CAP_PROP_BUFFERSIZE =38, - CV_CAP_PROP_AUTOFOCUS =39, - CV_CAP_PROP_SAR_NUM =40, - CV_CAP_PROP_SAR_DEN =41, - - CV_CAP_PROP_AUTOGRAB =1024, // property for videoio class CvCapture_Android only - CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING=1025, // readonly, tricky property, returns cpnst char* indeed - CV_CAP_PROP_PREVIEW_FORMAT=1026, // readonly, tricky property, returns cpnst char* indeed - - // OpenNI map generators - CV_CAP_OPENNI_DEPTH_GENERATOR = 1 << 31, - CV_CAP_OPENNI_IMAGE_GENERATOR = 1 << 30, - CV_CAP_OPENNI_IR_GENERATOR = 1 << 29, - CV_CAP_OPENNI_GENERATORS_MASK = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_OPENNI_IR_GENERATOR, - - // Properties of cameras available through OpenNI interfaces - CV_CAP_PROP_OPENNI_OUTPUT_MODE = 100, - CV_CAP_PROP_OPENNI_FRAME_MAX_DEPTH = 101, // in mm - CV_CAP_PROP_OPENNI_BASELINE = 102, // in mm - CV_CAP_PROP_OPENNI_FOCAL_LENGTH = 103, // in pixels - CV_CAP_PROP_OPENNI_REGISTRATION = 104, // flag - CV_CAP_PROP_OPENNI_REGISTRATION_ON = CV_CAP_PROP_OPENNI_REGISTRATION, // flag that synchronizes the remapping depth map to image map - // by changing depth generator's view point (if the flag is "on") or - // sets this view point to its normal one (if the flag is "off"). - CV_CAP_PROP_OPENNI_APPROX_FRAME_SYNC = 105, - CV_CAP_PROP_OPENNI_MAX_BUFFER_SIZE = 106, - CV_CAP_PROP_OPENNI_CIRCLE_BUFFER = 107, - CV_CAP_PROP_OPENNI_MAX_TIME_DURATION = 108, - - CV_CAP_PROP_OPENNI_GENERATOR_PRESENT = 109, - CV_CAP_PROP_OPENNI2_SYNC = 110, - CV_CAP_PROP_OPENNI2_MIRROR = 111, - - CV_CAP_OPENNI_IMAGE_GENERATOR_PRESENT = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, - CV_CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE = CV_CAP_OPENNI_IMAGE_GENERATOR + CV_CAP_PROP_OPENNI_OUTPUT_MODE, - CV_CAP_OPENNI_DEPTH_GENERATOR_PRESENT = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, - CV_CAP_OPENNI_DEPTH_GENERATOR_BASELINE = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_BASELINE, - CV_CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_FOCAL_LENGTH, - CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION = CV_CAP_OPENNI_DEPTH_GENERATOR + CV_CAP_PROP_OPENNI_REGISTRATION, - CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON = CV_CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION, - CV_CAP_OPENNI_IR_GENERATOR_PRESENT = CV_CAP_OPENNI_IR_GENERATOR + CV_CAP_PROP_OPENNI_GENERATOR_PRESENT, - - // Properties of cameras available through GStreamer interface - CV_CAP_GSTREAMER_QUEUE_LENGTH = 200, // default is 1 - - // PVAPI - CV_CAP_PROP_PVAPI_MULTICASTIP = 300, // ip for anable multicast master mode. 0 for disable multicast - CV_CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE = 301, // FrameStartTriggerMode: Determines how a frame is initiated - CV_CAP_PROP_PVAPI_DECIMATIONHORIZONTAL = 302, // Horizontal sub-sampling of the image - CV_CAP_PROP_PVAPI_DECIMATIONVERTICAL = 303, // Vertical sub-sampling of the image - CV_CAP_PROP_PVAPI_BINNINGX = 304, // Horizontal binning factor - CV_CAP_PROP_PVAPI_BINNINGY = 305, // Vertical binning factor - CV_CAP_PROP_PVAPI_PIXELFORMAT = 306, // Pixel format - - // Properties of cameras available through XIMEA SDK interface - CV_CAP_PROP_XI_DOWNSAMPLING = 400, // Change image resolution by binning or skipping. - CV_CAP_PROP_XI_DATA_FORMAT = 401, // Output data format. - CV_CAP_PROP_XI_OFFSET_X = 402, // Horizontal offset from the origin to the area of interest (in pixels). - CV_CAP_PROP_XI_OFFSET_Y = 403, // Vertical offset from the origin to the area of interest (in pixels). - CV_CAP_PROP_XI_TRG_SOURCE = 404, // Defines source of trigger. - CV_CAP_PROP_XI_TRG_SOFTWARE = 405, // Generates an internal trigger. PRM_TRG_SOURCE must be set to TRG_SOFTWARE. - CV_CAP_PROP_XI_GPI_SELECTOR = 406, // Selects general purpose input - CV_CAP_PROP_XI_GPI_MODE = 407, // Set general purpose input mode - CV_CAP_PROP_XI_GPI_LEVEL = 408, // Get general purpose level - CV_CAP_PROP_XI_GPO_SELECTOR = 409, // Selects general purpose output - CV_CAP_PROP_XI_GPO_MODE = 410, // Set general purpose output mode - CV_CAP_PROP_XI_LED_SELECTOR = 411, // Selects camera signalling LED - CV_CAP_PROP_XI_LED_MODE = 412, // Define camera signalling LED functionality - CV_CAP_PROP_XI_MANUAL_WB = 413, // Calculates White Balance(must be called during acquisition) - CV_CAP_PROP_XI_AUTO_WB = 414, // Automatic white balance - CV_CAP_PROP_XI_AEAG = 415, // Automatic exposure/gain - CV_CAP_PROP_XI_EXP_PRIORITY = 416, // Exposure priority (0.5 - exposure 50%, gain 50%). - CV_CAP_PROP_XI_AE_MAX_LIMIT = 417, // Maximum limit of exposure in AEAG procedure - CV_CAP_PROP_XI_AG_MAX_LIMIT = 418, // Maximum limit of gain in AEAG procedure - CV_CAP_PROP_XI_AEAG_LEVEL = 419, // Average intensity of output signal AEAG should achieve(in %) - CV_CAP_PROP_XI_TIMEOUT = 420, // Image capture timeout in milliseconds - CV_CAP_PROP_XI_EXPOSURE = 421, // Exposure time in microseconds - CV_CAP_PROP_XI_EXPOSURE_BURST_COUNT = 422, // Sets the number of times of exposure in one frame. - CV_CAP_PROP_XI_GAIN_SELECTOR = 423, // Gain selector for parameter Gain allows to select different type of gains. - CV_CAP_PROP_XI_GAIN = 424, // Gain in dB - CV_CAP_PROP_XI_DOWNSAMPLING_TYPE = 426, // Change image downsampling type. - CV_CAP_PROP_XI_BINNING_SELECTOR = 427, // Binning engine selector. - CV_CAP_PROP_XI_BINNING_VERTICAL = 428, // Vertical Binning - number of vertical photo-sensitive cells to combine together. - CV_CAP_PROP_XI_BINNING_HORIZONTAL = 429, // Horizontal Binning - number of horizontal photo-sensitive cells to combine together. - CV_CAP_PROP_XI_BINNING_PATTERN = 430, // Binning pattern type. - CV_CAP_PROP_XI_DECIMATION_SELECTOR = 431, // Decimation engine selector. - CV_CAP_PROP_XI_DECIMATION_VERTICAL = 432, // Vertical Decimation - vertical sub-sampling of the image - reduces the vertical resolution of the image by the specified vertical decimation factor. - CV_CAP_PROP_XI_DECIMATION_HORIZONTAL = 433, // Horizontal Decimation - horizontal sub-sampling of the image - reduces the horizontal resolution of the image by the specified vertical decimation factor. - CV_CAP_PROP_XI_DECIMATION_PATTERN = 434, // Decimation pattern type. - CV_CAP_PROP_XI_TEST_PATTERN_GENERATOR_SELECTOR = 587, // Selects which test pattern generator is controlled by the TestPattern feature. - CV_CAP_PROP_XI_TEST_PATTERN = 588, // Selects which test pattern type is generated by the selected generator. - CV_CAP_PROP_XI_IMAGE_DATA_FORMAT = 435, // Output data format. - CV_CAP_PROP_XI_SHUTTER_TYPE = 436, // Change sensor shutter type(CMOS sensor). - CV_CAP_PROP_XI_SENSOR_TAPS = 437, // Number of taps - CV_CAP_PROP_XI_AEAG_ROI_OFFSET_X = 439, // Automatic exposure/gain ROI offset X - CV_CAP_PROP_XI_AEAG_ROI_OFFSET_Y = 440, // Automatic exposure/gain ROI offset Y - CV_CAP_PROP_XI_AEAG_ROI_WIDTH = 441, // Automatic exposure/gain ROI Width - CV_CAP_PROP_XI_AEAG_ROI_HEIGHT = 442, // Automatic exposure/gain ROI Height - CV_CAP_PROP_XI_BPC = 445, // Correction of bad pixels - CV_CAP_PROP_XI_WB_KR = 448, // White balance red coefficient - CV_CAP_PROP_XI_WB_KG = 449, // White balance green coefficient - CV_CAP_PROP_XI_WB_KB = 450, // White balance blue coefficient - CV_CAP_PROP_XI_WIDTH = 451, // Width of the Image provided by the device (in pixels). - CV_CAP_PROP_XI_HEIGHT = 452, // Height of the Image provided by the device (in pixels). - CV_CAP_PROP_XI_REGION_SELECTOR = 589, // Selects Region in Multiple ROI which parameters are set by width, height, ... ,region mode - CV_CAP_PROP_XI_REGION_MODE = 595, // Activates/deactivates Region selected by Region Selector - CV_CAP_PROP_XI_LIMIT_BANDWIDTH = 459, // Set/get bandwidth(datarate)(in Megabits) - CV_CAP_PROP_XI_SENSOR_DATA_BIT_DEPTH = 460, // Sensor output data bit depth. - CV_CAP_PROP_XI_OUTPUT_DATA_BIT_DEPTH = 461, // Device output data bit depth. - CV_CAP_PROP_XI_IMAGE_DATA_BIT_DEPTH = 462, // bitdepth of data returned by function xiGetImage - CV_CAP_PROP_XI_OUTPUT_DATA_PACKING = 463, // Device output data packing (or grouping) enabled. Packing could be enabled if output_data_bit_depth > 8 and packing capability is available. - CV_CAP_PROP_XI_OUTPUT_DATA_PACKING_TYPE = 464, // Data packing type. Some cameras supports only specific packing type. - CV_CAP_PROP_XI_IS_COOLED = 465, // Returns 1 for cameras that support cooling. - CV_CAP_PROP_XI_COOLING = 466, // Start camera cooling. - CV_CAP_PROP_XI_TARGET_TEMP = 467, // Set sensor target temperature for cooling. - CV_CAP_PROP_XI_CHIP_TEMP = 468, // Camera sensor temperature - CV_CAP_PROP_XI_HOUS_TEMP = 469, // Camera housing tepmerature - CV_CAP_PROP_XI_HOUS_BACK_SIDE_TEMP = 590, // Camera housing back side tepmerature - CV_CAP_PROP_XI_SENSOR_BOARD_TEMP = 596, // Camera sensor board temperature - CV_CAP_PROP_XI_CMS = 470, // Mode of color management system. - CV_CAP_PROP_XI_APPLY_CMS = 471, // Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE). - CV_CAP_PROP_XI_IMAGE_IS_COLOR = 474, // Returns 1 for color cameras. - CV_CAP_PROP_XI_COLOR_FILTER_ARRAY = 475, // Returns color filter array type of RAW data. - CV_CAP_PROP_XI_GAMMAY = 476, // Luminosity gamma - CV_CAP_PROP_XI_GAMMAC = 477, // Chromaticity gamma - CV_CAP_PROP_XI_SHARPNESS = 478, // Sharpness Strenght - CV_CAP_PROP_XI_CC_MATRIX_00 = 479, // Color Correction Matrix element [0][0] - CV_CAP_PROP_XI_CC_MATRIX_01 = 480, // Color Correction Matrix element [0][1] - CV_CAP_PROP_XI_CC_MATRIX_02 = 481, // Color Correction Matrix element [0][2] - CV_CAP_PROP_XI_CC_MATRIX_03 = 482, // Color Correction Matrix element [0][3] - CV_CAP_PROP_XI_CC_MATRIX_10 = 483, // Color Correction Matrix element [1][0] - CV_CAP_PROP_XI_CC_MATRIX_11 = 484, // Color Correction Matrix element [1][1] - CV_CAP_PROP_XI_CC_MATRIX_12 = 485, // Color Correction Matrix element [1][2] - CV_CAP_PROP_XI_CC_MATRIX_13 = 486, // Color Correction Matrix element [1][3] - CV_CAP_PROP_XI_CC_MATRIX_20 = 487, // Color Correction Matrix element [2][0] - CV_CAP_PROP_XI_CC_MATRIX_21 = 488, // Color Correction Matrix element [2][1] - CV_CAP_PROP_XI_CC_MATRIX_22 = 489, // Color Correction Matrix element [2][2] - CV_CAP_PROP_XI_CC_MATRIX_23 = 490, // Color Correction Matrix element [2][3] - CV_CAP_PROP_XI_CC_MATRIX_30 = 491, // Color Correction Matrix element [3][0] - CV_CAP_PROP_XI_CC_MATRIX_31 = 492, // Color Correction Matrix element [3][1] - CV_CAP_PROP_XI_CC_MATRIX_32 = 493, // Color Correction Matrix element [3][2] - CV_CAP_PROP_XI_CC_MATRIX_33 = 494, // Color Correction Matrix element [3][3] - CV_CAP_PROP_XI_DEFAULT_CC_MATRIX = 495, // Set default Color Correction Matrix - CV_CAP_PROP_XI_TRG_SELECTOR = 498, // Selects the type of trigger. - CV_CAP_PROP_XI_ACQ_FRAME_BURST_COUNT = 499, // Sets number of frames acquired by burst. This burst is used only if trigger is set to FrameBurstStart - CV_CAP_PROP_XI_DEBOUNCE_EN = 507, // Enable/Disable debounce to selected GPI - CV_CAP_PROP_XI_DEBOUNCE_T0 = 508, // Debounce time (x * 10us) - CV_CAP_PROP_XI_DEBOUNCE_T1 = 509, // Debounce time (x * 10us) - CV_CAP_PROP_XI_DEBOUNCE_POL = 510, // Debounce polarity (pol = 1 t0 - falling edge, t1 - rising edge) - CV_CAP_PROP_XI_LENS_MODE = 511, // Status of lens control interface. This shall be set to XI_ON before any Lens operations. - CV_CAP_PROP_XI_LENS_APERTURE_VALUE = 512, // Current lens aperture value in stops. Examples: 2.8, 4, 5.6, 8, 11 - CV_CAP_PROP_XI_LENS_FOCUS_MOVEMENT_VALUE = 513, // Lens current focus movement value to be used by XI_PRM_LENS_FOCUS_MOVE in motor steps. - CV_CAP_PROP_XI_LENS_FOCUS_MOVE = 514, // Moves lens focus motor by steps set in XI_PRM_LENS_FOCUS_MOVEMENT_VALUE. - CV_CAP_PROP_XI_LENS_FOCUS_DISTANCE = 515, // Lens focus distance in cm. - CV_CAP_PROP_XI_LENS_FOCAL_LENGTH = 516, // Lens focal distance in mm. - CV_CAP_PROP_XI_LENS_FEATURE_SELECTOR = 517, // Selects the current feature which is accessible by XI_PRM_LENS_FEATURE. - CV_CAP_PROP_XI_LENS_FEATURE = 518, // Allows access to lens feature value currently selected by XI_PRM_LENS_FEATURE_SELECTOR. - CV_CAP_PROP_XI_DEVICE_MODEL_ID = 521, // Return device model id - CV_CAP_PROP_XI_DEVICE_SN = 522, // Return device serial number - CV_CAP_PROP_XI_IMAGE_DATA_FORMAT_RGB32_ALPHA = 529, // The alpha channel of RGB32 output image format. - CV_CAP_PROP_XI_IMAGE_PAYLOAD_SIZE = 530, // Buffer size in bytes sufficient for output image returned by xiGetImage - CV_CAP_PROP_XI_TRANSPORT_PIXEL_FORMAT = 531, // Current format of pixels on transport layer. - CV_CAP_PROP_XI_SENSOR_CLOCK_FREQ_HZ = 532, // Sensor clock frequency in Hz. - CV_CAP_PROP_XI_SENSOR_CLOCK_FREQ_INDEX = 533, // Sensor clock frequency index. Sensor with selected frequencies have possibility to set the frequency only by this index. - CV_CAP_PROP_XI_SENSOR_OUTPUT_CHANNEL_COUNT = 534, // Number of output channels from sensor used for data transfer. - CV_CAP_PROP_XI_FRAMERATE = 535, // Define framerate in Hz - CV_CAP_PROP_XI_COUNTER_SELECTOR = 536, // Select counter - CV_CAP_PROP_XI_COUNTER_VALUE = 537, // Counter status - CV_CAP_PROP_XI_ACQ_TIMING_MODE = 538, // Type of sensor frames timing. - CV_CAP_PROP_XI_AVAILABLE_BANDWIDTH = 539, // Calculate and return available interface bandwidth(int Megabits) - CV_CAP_PROP_XI_BUFFER_POLICY = 540, // Data move policy - CV_CAP_PROP_XI_LUT_EN = 541, // Activates LUT. - CV_CAP_PROP_XI_LUT_INDEX = 542, // Control the index (offset) of the coefficient to access in the LUT. - CV_CAP_PROP_XI_LUT_VALUE = 543, // Value at entry LUTIndex of the LUT - CV_CAP_PROP_XI_TRG_DELAY = 544, // Specifies the delay in microseconds (us) to apply after the trigger reception before activating it. - CV_CAP_PROP_XI_TS_RST_MODE = 545, // Defines how time stamp reset engine will be armed - CV_CAP_PROP_XI_TS_RST_SOURCE = 546, // Defines which source will be used for timestamp reset. Writing this parameter will trigger settings of engine (arming) - CV_CAP_PROP_XI_IS_DEVICE_EXIST = 547, // Returns 1 if camera connected and works properly. - CV_CAP_PROP_XI_ACQ_BUFFER_SIZE = 548, // Acquisition buffer size in buffer_size_unit. Default bytes. - CV_CAP_PROP_XI_ACQ_BUFFER_SIZE_UNIT = 549, // Acquisition buffer size unit in bytes. Default 1. E.g. Value 1024 means that buffer_size is in KiBytes - CV_CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_SIZE = 550, // Acquisition transport buffer size in bytes - CV_CAP_PROP_XI_BUFFERS_QUEUE_SIZE = 551, // Queue of field/frame buffers - CV_CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_COMMIT = 552, // Number of buffers to commit to low level - CV_CAP_PROP_XI_RECENT_FRAME = 553, // GetImage returns most recent frame - CV_CAP_PROP_XI_DEVICE_RESET = 554, // Resets the camera to default state. - CV_CAP_PROP_XI_COLUMN_FPN_CORRECTION = 555, // Correction of column FPN - CV_CAP_PROP_XI_ROW_FPN_CORRECTION = 591, // Correction of row FPN - CV_CAP_PROP_XI_SENSOR_MODE = 558, // Current sensor mode. Allows to select sensor mode by one integer. Setting of this parameter affects: image dimensions and downsampling. - CV_CAP_PROP_XI_HDR = 559, // Enable High Dynamic Range feature. - CV_CAP_PROP_XI_HDR_KNEEPOINT_COUNT = 560, // The number of kneepoints in the PWLR. - CV_CAP_PROP_XI_HDR_T1 = 561, // position of first kneepoint(in % of XI_PRM_EXPOSURE) - CV_CAP_PROP_XI_HDR_T2 = 562, // position of second kneepoint (in % of XI_PRM_EXPOSURE) - CV_CAP_PROP_XI_KNEEPOINT1 = 563, // value of first kneepoint (% of sensor saturation) - CV_CAP_PROP_XI_KNEEPOINT2 = 564, // value of second kneepoint (% of sensor saturation) - CV_CAP_PROP_XI_IMAGE_BLACK_LEVEL = 565, // Last image black level counts. Can be used for Offline processing to recall it. - CV_CAP_PROP_XI_HW_REVISION = 571, // Returns hardware revision number. - CV_CAP_PROP_XI_DEBUG_LEVEL = 572, // Set debug level - CV_CAP_PROP_XI_AUTO_BANDWIDTH_CALCULATION = 573, // Automatic bandwidth calculation, - CV_CAP_PROP_XI_FFS_FILE_ID = 594, // File number. - CV_CAP_PROP_XI_FFS_FILE_SIZE = 580, // Size of file. - CV_CAP_PROP_XI_FREE_FFS_SIZE = 581, // Size of free camera FFS. - CV_CAP_PROP_XI_USED_FFS_SIZE = 582, // Size of used camera FFS. - CV_CAP_PROP_XI_FFS_ACCESS_KEY = 583, // Setting of key enables file operations on some cameras. - CV_CAP_PROP_XI_SENSOR_FEATURE_SELECTOR = 585, // Selects the current feature which is accessible by XI_PRM_SENSOR_FEATURE_VALUE. - CV_CAP_PROP_XI_SENSOR_FEATURE_VALUE = 586, // Allows access to sensor feature value currently selected by XI_PRM_SENSOR_FEATURE_SELECTOR. - - - // Properties for Android cameras - CV_CAP_PROP_ANDROID_FLASH_MODE = 8001, - CV_CAP_PROP_ANDROID_FOCUS_MODE = 8002, - CV_CAP_PROP_ANDROID_WHITE_BALANCE = 8003, - CV_CAP_PROP_ANDROID_ANTIBANDING = 8004, - CV_CAP_PROP_ANDROID_FOCAL_LENGTH = 8005, - CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_NEAR = 8006, - CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_OPTIMAL = 8007, - CV_CAP_PROP_ANDROID_FOCUS_DISTANCE_FAR = 8008, - CV_CAP_PROP_ANDROID_EXPOSE_LOCK = 8009, - CV_CAP_PROP_ANDROID_WHITEBALANCE_LOCK = 8010, - - // Properties of cameras available through AVFOUNDATION interface - CV_CAP_PROP_IOS_DEVICE_FOCUS = 9001, - CV_CAP_PROP_IOS_DEVICE_EXPOSURE = 9002, - CV_CAP_PROP_IOS_DEVICE_FLASH = 9003, - CV_CAP_PROP_IOS_DEVICE_WHITEBALANCE = 9004, - CV_CAP_PROP_IOS_DEVICE_TORCH = 9005, - - // Properties of cameras available through Smartek Giganetix Ethernet Vision interface - /* --- Vladimir Litvinenko (litvinenko.vladimir@gmail.com) --- */ - CV_CAP_PROP_GIGA_FRAME_OFFSET_X = 10001, - CV_CAP_PROP_GIGA_FRAME_OFFSET_Y = 10002, - CV_CAP_PROP_GIGA_FRAME_WIDTH_MAX = 10003, - CV_CAP_PROP_GIGA_FRAME_HEIGH_MAX = 10004, - CV_CAP_PROP_GIGA_FRAME_SENS_WIDTH = 10005, - CV_CAP_PROP_GIGA_FRAME_SENS_HEIGH = 10006, - - CV_CAP_PROP_INTELPERC_PROFILE_COUNT = 11001, - CV_CAP_PROP_INTELPERC_PROFILE_IDX = 11002, - CV_CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE = 11003, - CV_CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE = 11004, - CV_CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD = 11005, - CV_CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ = 11006, - CV_CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT = 11007, - - // Intel PerC streams - CV_CAP_INTELPERC_DEPTH_GENERATOR = 1 << 29, - CV_CAP_INTELPERC_IMAGE_GENERATOR = 1 << 28, - CV_CAP_INTELPERC_GENERATORS_MASK = CV_CAP_INTELPERC_DEPTH_GENERATOR + CV_CAP_INTELPERC_IMAGE_GENERATOR -}; - -// Generic camera output modes. -// Currently, these are supported through the libv4l interface only. -enum -{ - CV_CAP_MODE_BGR = 0, // BGR24 (default) - CV_CAP_MODE_RGB = 1, // RGB24 - CV_CAP_MODE_GRAY = 2, // Y8 - CV_CAP_MODE_YUYV = 3 // YUYV -}; - -enum -{ - // Data given from depth generator. - CV_CAP_OPENNI_DEPTH_MAP = 0, // Depth values in mm (CV_16UC1) - CV_CAP_OPENNI_POINT_CLOUD_MAP = 1, // XYZ in meters (CV_32FC3) - CV_CAP_OPENNI_DISPARITY_MAP = 2, // Disparity in pixels (CV_8UC1) - CV_CAP_OPENNI_DISPARITY_MAP_32F = 3, // Disparity in pixels (CV_32FC1) - CV_CAP_OPENNI_VALID_DEPTH_MASK = 4, // CV_8UC1 - - // Data given from RGB image generator. - CV_CAP_OPENNI_BGR_IMAGE = 5, - CV_CAP_OPENNI_GRAY_IMAGE = 6, - - // Data given from IR image generator. - CV_CAP_OPENNI_IR_IMAGE = 7 -}; - -// Supported output modes of OpenNI image generator -enum -{ - CV_CAP_OPENNI_VGA_30HZ = 0, - CV_CAP_OPENNI_SXGA_15HZ = 1, - CV_CAP_OPENNI_SXGA_30HZ = 2, - CV_CAP_OPENNI_QVGA_30HZ = 3, - CV_CAP_OPENNI_QVGA_60HZ = 4 -}; - -enum -{ - CV_CAP_INTELPERC_DEPTH_MAP = 0, // Each pixel is a 16-bit integer. The value indicates the distance from an object to the camera's XY plane or the Cartesian depth. - CV_CAP_INTELPERC_UVDEPTH_MAP = 1, // Each pixel contains two 32-bit floating point values in the range of 0-1, representing the mapping of depth coordinates to the color coordinates. - CV_CAP_INTELPERC_IR_MAP = 2, // Each pixel is a 16-bit integer. The value indicates the intensity of the reflected laser beam. - CV_CAP_INTELPERC_IMAGE = 3 -}; - -// gPhoto2 properties, if propertyId is less than 0 then work on widget with that __additive inversed__ camera setting ID -// Get IDs by using CAP_PROP_GPHOTO2_WIDGET_ENUMERATE. -// @see CvCaptureCAM_GPHOTO2 for more info -enum -{ - CV_CAP_PROP_GPHOTO2_PREVIEW = 17001, // Capture only preview from liveview mode. - CV_CAP_PROP_GPHOTO2_WIDGET_ENUMERATE = 17002, // Readonly, returns (const char *). - CV_CAP_PROP_GPHOTO2_RELOAD_CONFIG = 17003, // Trigger, only by set. Reload camera settings. - CV_CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE = 17004, // Reload all settings on set. - CV_CAP_PROP_GPHOTO2_COLLECT_MSGS = 17005, // Collect messages with details. - CV_CAP_PROP_GPHOTO2_FLUSH_MSGS = 17006, // Readonly, returns (const char *). - CV_CAP_PROP_SPEED = 17007, // Exposure speed. Can be readonly, depends on camera program. - CV_CAP_PROP_APERTURE = 17008, // Aperture. Can be readonly, depends on camera program. - CV_CAP_PROP_EXPOSUREPROGRAM = 17009, // Camera exposure program. - CV_CAP_PROP_VIEWFINDER = 17010 // Enter liveview mode. -}; - -/** @brief retrieve capture properties -*/ -CVAPI(double) cvGetCaptureProperty( CvCapture* capture, int property_id ); -/** @brief set capture properties -*/ -CVAPI(int) cvSetCaptureProperty( CvCapture* capture, int property_id, double value ); - -/** @brief Return the type of the capturer (eg, ::CV_CAP_VFW, ::CV_CAP_UNICAP) - -It is unknown if created with ::CV_CAP_ANY -*/ -CVAPI(int) cvGetCaptureDomain( CvCapture* capture); - -/** @brief "black box" video file writer structure - -In C++ use cv::VideoWriter -*/ -typedef struct CvVideoWriter CvVideoWriter; - -//! Macro to construct the fourcc code of the codec. Same as CV_FOURCC() -#define CV_FOURCC_MACRO(c1, c2, c3, c4) (((c1) & 255) + (((c2) & 255) << 8) + (((c3) & 255) << 16) + (((c4) & 255) << 24)) - -/** @brief Constructs the fourcc code of the codec function - -Simply call it with 4 chars fourcc code like `CV_FOURCC('I', 'Y', 'U', 'V')` - -List of codes can be obtained at [Video Codecs by FOURCC](http://www.fourcc.org/codecs.php) page. -FFMPEG backend with MP4 container natively uses other values as fourcc code: -see [ObjectType](http://www.mp4ra.org/codecs.html). -*/ -CV_INLINE int CV_FOURCC(char c1, char c2, char c3, char c4) -{ - return CV_FOURCC_MACRO(c1, c2, c3, c4); -} - -//! (Windows only) Open Codec Selection Dialog -#define CV_FOURCC_PROMPT -1 -//! (Linux only) Use default codec for specified filename -#define CV_FOURCC_DEFAULT CV_FOURCC('I', 'Y', 'U', 'V') - -/** @brief initialize video file writer -*/ -CVAPI(CvVideoWriter*) cvCreateVideoWriter( const char* filename, int fourcc, - double fps, CvSize frame_size, - int is_color CV_DEFAULT(1)); - -/** @brief write frame to video file -*/ -CVAPI(int) cvWriteFrame( CvVideoWriter* writer, const IplImage* image ); - -/** @brief close video file writer -*/ -CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer ); - -// *************************************************************************************** -//! @name Obsolete functions/synonyms -//! @{ -#define cvCaptureFromCAM cvCreateCameraCapture //!< @deprecated use cvCreateCameraCapture() instead -#define cvCaptureFromFile cvCreateFileCapture //!< @deprecated use cvCreateFileCapture() instead -#define cvCaptureFromAVI cvCaptureFromFile //!< @deprecated use cvCreateFileCapture() instead -#define cvCreateAVIWriter cvCreateVideoWriter //!< @deprecated use cvCreateVideoWriter() instead -#define cvWriteToAVI cvWriteFrame //!< @deprecated use cvWriteFrame() instead -//! @} Obsolete... - -//! @} videoio_c - -#ifdef __cplusplus -} -#endif - -#endif //OPENCV_VIDEOIO_H diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab.hpp deleted file mode 100644 index ca3f5adef..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab.hpp +++ /dev/null @@ -1,81 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_HPP -#define OPENCV_VIDEOSTAB_HPP - -/** - @defgroup videostab Video Stabilization - -The video stabilization module contains a set of functions and classes that can be used to solve the -problem of video stabilization. There are a few methods implemented, most of them are described in -the papers @cite OF06 and @cite G11 . However, there are some extensions and deviations from the original -paper methods. - -### References - - 1. "Full-Frame Video Stabilization with Motion Inpainting" - Yasuyuki Matsushita, Eyal Ofek, Weina Ge, Xiaoou Tang, Senior Member, and Heung-Yeung Shum - 2. "Auto-Directed Video Stabilization with Robust L1 Optimal Camera Paths" - Matthias Grundmann, Vivek Kwatra, Irfan Essa - - @{ - @defgroup videostab_motion Global Motion Estimation - -The video stabilization module contains a set of functions and classes for global motion estimation -between point clouds or between images. In the last case features are extracted and matched -internally. For the sake of convenience the motion estimation functions are wrapped into classes. -Both the functions and the classes are available. - - @defgroup videostab_marching Fast Marching Method - -The Fast Marching Method @cite Telea04 is used in of the video stabilization routines to do motion and -color inpainting. The method is implemented is a flexible way and it's made public for other users. - - @} - -*/ - -#include "opencv2/videostab/stabilizer.hpp" -#include "opencv2/videostab/ring_buffer.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/deblurring.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/deblurring.hpp deleted file mode 100644 index b383f0d45..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/deblurring.hpp +++ /dev/null @@ -1,116 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_DEBLURRING_HPP -#define OPENCV_VIDEOSTAB_DEBLURRING_HPP - -#include -#include "opencv2/core.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -CV_EXPORTS float calcBlurriness(const Mat &frame); - -class CV_EXPORTS DeblurerBase -{ -public: - DeblurerBase() : radius_(0), frames_(0), motions_(0), blurrinessRates_(0) {} - - virtual ~DeblurerBase() {} - - virtual void setRadius(int val) { radius_ = val; } - virtual int radius() const { return radius_; } - - virtual void deblur(int idx, Mat &frame) = 0; - - - // data from stabilizer - - virtual void setFrames(const std::vector &val) { frames_ = &val; } - virtual const std::vector& frames() const { return *frames_; } - - virtual void setMotions(const std::vector &val) { motions_ = &val; } - virtual const std::vector& motions() const { return *motions_; } - - virtual void setBlurrinessRates(const std::vector &val) { blurrinessRates_ = &val; } - virtual const std::vector& blurrinessRates() const { return *blurrinessRates_; } - -protected: - int radius_; - const std::vector *frames_; - const std::vector *motions_; - const std::vector *blurrinessRates_; -}; - -class CV_EXPORTS NullDeblurer : public DeblurerBase -{ -public: - virtual void deblur(int /*idx*/, Mat &/*frame*/) {} -}; - -class CV_EXPORTS WeightingDeblurer : public DeblurerBase -{ -public: - WeightingDeblurer(); - - void setSensitivity(float val) { sensitivity_ = val; } - float sensitivity() const { return sensitivity_; } - - virtual void deblur(int idx, Mat &frame); - -private: - float sensitivity_; - Mat_ bSum_, gSum_, rSum_, wSum_; -}; - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/fast_marching.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/fast_marching.hpp deleted file mode 100644 index 43f8e4a72..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/fast_marching.hpp +++ /dev/null @@ -1,121 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_FAST_MARCHING_HPP -#define OPENCV_VIDEOSTAB_FAST_MARCHING_HPP - -#include -#include -#include -#include "opencv2/core.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab_marching -//! @{ - -/** @brief Describes the Fast Marching Method implementation. - - See http://iwi.eldoc.ub.rug.nl/FILES/root/2004/JGraphToolsTelea/2004JGraphToolsTelea.pdf - */ -class CV_EXPORTS FastMarchingMethod -{ -public: - FastMarchingMethod() : inf_(1e6f), size_(0) {} - - /** @brief Template method that runs the Fast Marching Method. - - @param mask Image mask. 0 value indicates that the pixel value must be inpainted, 255 indicates - that the pixel value is known, other values aren't acceptable. - @param inpaint Inpainting functor that overloads void operator ()(int x, int y). - @return Inpainting functor. - */ - template - Inpaint run(const Mat &mask, Inpaint inpaint); - - /** - @return Distance map that's created during working of the method. - */ - Mat distanceMap() const { return dist_; } - -private: - enum { INSIDE = 0, BAND = 1, KNOWN = 255 }; - - struct DXY - { - float dist; - int x, y; - - DXY() : dist(0), x(0), y(0) {} - DXY(float _dist, int _x, int _y) : dist(_dist), x(_x), y(_y) {} - bool operator <(const DXY &dxy) const { return dist < dxy.dist; } - }; - - float solve(int x1, int y1, int x2, int y2) const; - int& indexOf(const DXY &dxy) { return index_(dxy.y, dxy.x); } - - void heapUp(int idx); - void heapDown(int idx); - void heapAdd(const DXY &dxy); - void heapRemoveMin(); - - float inf_; - - cv::Mat_ flag_; // flag map - cv::Mat_ dist_; // distance map - - cv::Mat_ index_; // index of point in the narrow band - std::vector narrowBand_; // narrow band heap - int size_; // narrow band size -}; - -//! @} - -} // namespace videostab -} // namespace cv - -#include "fast_marching_inl.hpp" - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/fast_marching_inl.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/fast_marching_inl.hpp deleted file mode 100644 index fdd488aac..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/fast_marching_inl.hpp +++ /dev/null @@ -1,165 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_FAST_MARCHING_INL_HPP -#define OPENCV_VIDEOSTAB_FAST_MARCHING_INL_HPP - -#include "opencv2/videostab/fast_marching.hpp" - -namespace cv -{ -namespace videostab -{ - -template -Inpaint FastMarchingMethod::run(const cv::Mat &mask, Inpaint inpaint) -{ - using namespace cv; - - CV_Assert(mask.type() == CV_8U); - - static const int lut[4][2] = {{-1,0}, {0,-1}, {1,0}, {0,1}}; - - mask.copyTo(flag_); - flag_.create(mask.size()); - dist_.create(mask.size()); - index_.create(mask.size()); - narrowBand_.clear(); - size_ = 0; - - // init - for (int y = 0; y < flag_.rows; ++y) - { - for (int x = 0; x < flag_.cols; ++x) - { - if (flag_(y,x) == KNOWN) - dist_(y,x) = 0.f; - else - { - int n = 0; - int nunknown = 0; - - for (int i = 0; i < 4; ++i) - { - int xn = x + lut[i][0]; - int yn = y + lut[i][1]; - - if (xn >= 0 && xn < flag_.cols && yn >= 0 && yn < flag_.rows) - { - n++; - if (flag_(yn,xn) != KNOWN) - nunknown++; - } - } - - if (n>0 && nunknown == n) - { - dist_(y,x) = inf_; - flag_(y,x) = INSIDE; - } - else - { - dist_(y,x) = 0.f; - flag_(y,x) = BAND; - inpaint(x, y); - - narrowBand_.push_back(DXY(0.f,x,y)); - index_(y,x) = size_++; - } - } - } - } - - // make heap - for (int i = size_/2-1; i >= 0; --i) - heapDown(i); - - // main cycle - while (size_ > 0) - { - int x = narrowBand_[0].x; - int y = narrowBand_[0].y; - heapRemoveMin(); - - flag_(y,x) = KNOWN; - for (int n = 0; n < 4; ++n) - { - int xn = x + lut[n][0]; - int yn = y + lut[n][1]; - - if (xn >= 0 && xn < flag_.cols && yn >= 0 && yn < flag_.rows && flag_(yn,xn) != KNOWN) - { - dist_(yn,xn) = std::min(std::min(solve(xn-1, yn, xn, yn-1), solve(xn+1, yn, xn, yn-1)), - std::min(solve(xn-1, yn, xn, yn+1), solve(xn+1, yn, xn, yn+1))); - - if (flag_(yn,xn) == INSIDE) - { - flag_(yn,xn) = BAND; - inpaint(xn, yn); - heapAdd(DXY(dist_(yn,xn),xn,yn)); - } - else - { - int i = index_(yn,xn); - if (dist_(yn,xn) < narrowBand_[i].dist) - { - narrowBand_[i].dist = dist_(yn,xn); - heapUp(i); - } - // works better if it's commented out - /*else if (dist(yn,xn) > narrowBand[i].dist) - { - narrowBand[i].dist = dist(yn,xn); - heapDown(i); - }*/ - } - } - } - } - - return inpaint; -} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/frame_source.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/frame_source.hpp deleted file mode 100644 index e4e00b59a..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/frame_source.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_FRAME_SOURCE_HPP -#define OPENCV_VIDEOSTAB_FRAME_SOURCE_HPP - -#include -#include "opencv2/core.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS IFrameSource -{ -public: - virtual ~IFrameSource() {} - virtual void reset() = 0; - virtual Mat nextFrame() = 0; -}; - -class CV_EXPORTS NullFrameSource : public IFrameSource -{ -public: - virtual void reset() {} - virtual Mat nextFrame() { return Mat(); } -}; - -class CV_EXPORTS VideoFileSource : public IFrameSource -{ -public: - VideoFileSource(const String &path, bool volatileFrame = false); - - virtual void reset(); - virtual Mat nextFrame(); - - int width(); - int height(); - int count(); - double fps(); - -private: - Ptr impl; -}; - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/global_motion.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/global_motion.hpp deleted file mode 100644 index 1fbe0c840..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/global_motion.hpp +++ /dev/null @@ -1,300 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_GLOBAL_MOTION_HPP -#define OPENCV_VIDEOSTAB_GLOBAL_MOTION_HPP - -#include -#include -#include "opencv2/core.hpp" -#include "opencv2/features2d.hpp" -#include "opencv2/opencv_modules.hpp" -#include "opencv2/videostab/optical_flow.hpp" -#include "opencv2/videostab/motion_core.hpp" -#include "opencv2/videostab/outlier_rejection.hpp" - -#ifdef HAVE_OPENCV_CUDAIMGPROC -# include "opencv2/cudaimgproc.hpp" -#endif - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab_motion -//! @{ - -/** @brief Estimates best global motion between two 2D point clouds in the least-squares sense. - -@note Works in-place and changes input point arrays. - -@param points0 Source set of 2D points (32F). -@param points1 Destination set of 2D points (32F). -@param model Motion model (up to MM_AFFINE). -@param rmse Final root-mean-square error. -@return 3x3 2D transformation matrix (32F). - */ -CV_EXPORTS Mat estimateGlobalMotionLeastSquares( - InputOutputArray points0, InputOutputArray points1, int model = MM_AFFINE, - float *rmse = 0); - -/** @brief Estimates best global motion between two 2D point clouds robustly (using RANSAC method). - -@param points0 Source set of 2D points (32F). -@param points1 Destination set of 2D points (32F). -@param model Motion model. See cv::videostab::MotionModel. -@param params RANSAC method parameters. See videostab::RansacParams. -@param rmse Final root-mean-square error. -@param ninliers Final number of inliers. - */ -CV_EXPORTS Mat estimateGlobalMotionRansac( - InputArray points0, InputArray points1, int model = MM_AFFINE, - const RansacParams ¶ms = RansacParams::default2dMotion(MM_AFFINE), - float *rmse = 0, int *ninliers = 0); - -/** @brief Base class for all global motion estimation methods. - */ -class CV_EXPORTS MotionEstimatorBase -{ -public: - virtual ~MotionEstimatorBase() {} - - /** @brief Sets motion model. - - @param val Motion model. See cv::videostab::MotionModel. - */ - virtual void setMotionModel(MotionModel val) { motionModel_ = val; } - - /** - @return Motion model. See cv::videostab::MotionModel. - */ - virtual MotionModel motionModel() const { return motionModel_; } - - /** @brief Estimates global motion between two 2D point clouds. - - @param points0 Source set of 2D points (32F). - @param points1 Destination set of 2D points (32F). - @param ok Indicates whether motion was estimated successfully. - @return 3x3 2D transformation matrix (32F). - */ - virtual Mat estimate(InputArray points0, InputArray points1, bool *ok = 0) = 0; - -protected: - MotionEstimatorBase(MotionModel model) { setMotionModel(model); } - -private: - MotionModel motionModel_; -}; - -/** @brief Describes a robust RANSAC-based global 2D motion estimation method which minimizes L2 error. - */ -class CV_EXPORTS MotionEstimatorRansacL2 : public MotionEstimatorBase -{ -public: - MotionEstimatorRansacL2(MotionModel model = MM_AFFINE); - - void setRansacParams(const RansacParams &val) { ransacParams_ = val; } - RansacParams ransacParams() const { return ransacParams_; } - - void setMinInlierRatio(float val) { minInlierRatio_ = val; } - float minInlierRatio() const { return minInlierRatio_; } - - virtual Mat estimate(InputArray points0, InputArray points1, bool *ok = 0); - -private: - RansacParams ransacParams_; - float minInlierRatio_; -}; - -/** @brief Describes a global 2D motion estimation method which minimizes L1 error. - -@note To be able to use this method you must build OpenCV with CLP library support. : - */ -class CV_EXPORTS MotionEstimatorL1 : public MotionEstimatorBase -{ -public: - MotionEstimatorL1(MotionModel model = MM_AFFINE); - - virtual Mat estimate(InputArray points0, InputArray points1, bool *ok = 0); - -private: - std::vector obj_, collb_, colub_; - std::vector elems_, rowlb_, rowub_; - std::vector rows_, cols_; - - void set(int row, int col, double coef) - { - rows_.push_back(row); - cols_.push_back(col); - elems_.push_back(coef); - } -}; - -/** @brief Base class for global 2D motion estimation methods which take frames as input. - */ -class CV_EXPORTS ImageMotionEstimatorBase -{ -public: - virtual ~ImageMotionEstimatorBase() {} - - virtual void setMotionModel(MotionModel val) { motionModel_ = val; } - virtual MotionModel motionModel() const { return motionModel_; } - - virtual Mat estimate(const Mat &frame0, const Mat &frame1, bool *ok = 0) = 0; - -protected: - ImageMotionEstimatorBase(MotionModel model) { setMotionModel(model); } - -private: - MotionModel motionModel_; -}; - -class CV_EXPORTS FromFileMotionReader : public ImageMotionEstimatorBase -{ -public: - FromFileMotionReader(const String &path); - - virtual Mat estimate(const Mat &frame0, const Mat &frame1, bool *ok = 0); - -private: - std::ifstream file_; -}; - -class CV_EXPORTS ToFileMotionWriter : public ImageMotionEstimatorBase -{ -public: - ToFileMotionWriter(const String &path, Ptr estimator); - - virtual void setMotionModel(MotionModel val) { motionEstimator_->setMotionModel(val); } - virtual MotionModel motionModel() const { return motionEstimator_->motionModel(); } - - virtual Mat estimate(const Mat &frame0, const Mat &frame1, bool *ok = 0); - -private: - std::ofstream file_; - Ptr motionEstimator_; -}; - -/** @brief Describes a global 2D motion estimation method which uses keypoints detection and optical flow for -matching. - */ -class CV_EXPORTS KeypointBasedMotionEstimator : public ImageMotionEstimatorBase -{ -public: - KeypointBasedMotionEstimator(Ptr estimator); - - virtual void setMotionModel(MotionModel val) { motionEstimator_->setMotionModel(val); } - virtual MotionModel motionModel() const { return motionEstimator_->motionModel(); } - - void setDetector(Ptr val) { detector_ = val; } - Ptr detector() const { return detector_; } - - void setOpticalFlowEstimator(Ptr val) { optFlowEstimator_ = val; } - Ptr opticalFlowEstimator() const { return optFlowEstimator_; } - - void setOutlierRejector(Ptr val) { outlierRejector_ = val; } - Ptr outlierRejector() const { return outlierRejector_; } - - virtual Mat estimate(const Mat &frame0, const Mat &frame1, bool *ok = 0); - Mat estimate(InputArray frame0, InputArray frame1, bool *ok = 0); - -private: - Ptr motionEstimator_; - Ptr detector_; - Ptr optFlowEstimator_; - Ptr outlierRejector_; - - std::vector status_; - std::vector keypointsPrev_; - std::vector pointsPrev_, points_; - std::vector pointsPrevGood_, pointsGood_; -}; - -#if defined(HAVE_OPENCV_CUDAIMGPROC) && defined(HAVE_OPENCV_CUDAOPTFLOW) - -class CV_EXPORTS KeypointBasedMotionEstimatorGpu : public ImageMotionEstimatorBase -{ -public: - KeypointBasedMotionEstimatorGpu(Ptr estimator); - - virtual void setMotionModel(MotionModel val) { motionEstimator_->setMotionModel(val); } - virtual MotionModel motionModel() const { return motionEstimator_->motionModel(); } - - void setOutlierRejector(Ptr val) { outlierRejector_ = val; } - Ptr outlierRejector() const { return outlierRejector_; } - - virtual Mat estimate(const Mat &frame0, const Mat &frame1, bool *ok = 0); - Mat estimate(const cuda::GpuMat &frame0, const cuda::GpuMat &frame1, bool *ok = 0); - -private: - Ptr motionEstimator_; - Ptr detector_; - SparsePyrLkOptFlowEstimatorGpu optFlowEstimator_; - Ptr outlierRejector_; - - cuda::GpuMat frame0_, grayFrame0_, frame1_; - cuda::GpuMat pointsPrev_, points_; - cuda::GpuMat status_; - - Mat hostPointsPrev_, hostPoints_; - std::vector hostPointsPrevTmp_, hostPointsTmp_; - std::vector rejectionStatus_; -}; - -#endif // defined(HAVE_OPENCV_CUDAIMGPROC) && defined(HAVE_OPENCV_CUDAOPTFLOW) - -/** @brief Computes motion between two frames assuming that all the intermediate motions are known. - -@param from Source frame index. -@param to Destination frame index. -@param motions Pair-wise motions. motions[i] denotes motion from the frame i to the frame i+1 -@return Motion from the Source frame to the Destination frame. - */ -CV_EXPORTS Mat getMotion(int from, int to, const std::vector &motions); - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/inpainting.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/inpainting.hpp deleted file mode 100644 index 61eeec357..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/inpainting.hpp +++ /dev/null @@ -1,212 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_INPAINTINT_HPP -#define OPENCV_VIDEOSTAB_INPAINTINT_HPP - -#include -#include "opencv2/core.hpp" -#include "opencv2/videostab/optical_flow.hpp" -#include "opencv2/videostab/fast_marching.hpp" -#include "opencv2/videostab/global_motion.hpp" -#include "opencv2/photo.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS InpainterBase -{ -public: - InpainterBase() - : radius_(0), motionModel_(MM_UNKNOWN), frames_(0), motions_(0), - stabilizedFrames_(0), stabilizationMotions_(0) {} - - virtual ~InpainterBase() {} - - virtual void setRadius(int val) { radius_ = val; } - virtual int radius() const { return radius_; } - - virtual void setMotionModel(MotionModel val) { motionModel_ = val; } - virtual MotionModel motionModel() const { return motionModel_; } - - virtual void inpaint(int idx, Mat &frame, Mat &mask) = 0; - - - // data from stabilizer - - virtual void setFrames(const std::vector &val) { frames_ = &val; } - virtual const std::vector& frames() const { return *frames_; } - - virtual void setMotions(const std::vector &val) { motions_ = &val; } - virtual const std::vector& motions() const { return *motions_; } - - virtual void setStabilizedFrames(const std::vector &val) { stabilizedFrames_ = &val; } - virtual const std::vector& stabilizedFrames() const { return *stabilizedFrames_; } - - virtual void setStabilizationMotions(const std::vector &val) { stabilizationMotions_ = &val; } - virtual const std::vector& stabilizationMotions() const { return *stabilizationMotions_; } - -protected: - int radius_; - MotionModel motionModel_; - const std::vector *frames_; - const std::vector *motions_; - const std::vector *stabilizedFrames_; - const std::vector *stabilizationMotions_; -}; - -class CV_EXPORTS NullInpainter : public InpainterBase -{ -public: - virtual void inpaint(int /*idx*/, Mat &/*frame*/, Mat &/*mask*/) {} -}; - -class CV_EXPORTS InpaintingPipeline : public InpainterBase -{ -public: - void pushBack(Ptr inpainter) { inpainters_.push_back(inpainter); } - bool empty() const { return inpainters_.empty(); } - - virtual void setRadius(int val); - virtual void setMotionModel(MotionModel val); - virtual void setFrames(const std::vector &val); - virtual void setMotions(const std::vector &val); - virtual void setStabilizedFrames(const std::vector &val); - virtual void setStabilizationMotions(const std::vector &val); - - virtual void inpaint(int idx, Mat &frame, Mat &mask); - -private: - std::vector > inpainters_; -}; - -class CV_EXPORTS ConsistentMosaicInpainter : public InpainterBase -{ -public: - ConsistentMosaicInpainter(); - - void setStdevThresh(float val) { stdevThresh_ = val; } - float stdevThresh() const { return stdevThresh_; } - - virtual void inpaint(int idx, Mat &frame, Mat &mask); - -private: - float stdevThresh_; -}; - -class CV_EXPORTS MotionInpainter : public InpainterBase -{ -public: - MotionInpainter(); - - void setOptFlowEstimator(Ptr val) { optFlowEstimator_ = val; } - Ptr optFlowEstimator() const { return optFlowEstimator_; } - - void setFlowErrorThreshold(float val) { flowErrorThreshold_ = val; } - float flowErrorThreshold() const { return flowErrorThreshold_; } - - void setDistThreshold(float val) { distThresh_ = val; } - float distThresh() const { return distThresh_; } - - void setBorderMode(int val) { borderMode_ = val; } - int borderMode() const { return borderMode_; } - - virtual void inpaint(int idx, Mat &frame, Mat &mask); - -private: - FastMarchingMethod fmm_; - Ptr optFlowEstimator_; - float flowErrorThreshold_; - float distThresh_; - int borderMode_; - - Mat frame1_, transformedFrame1_; - Mat_ grayFrame_, transformedGrayFrame1_; - Mat_ mask1_, transformedMask1_; - Mat_ flowX_, flowY_, flowErrors_; - Mat_ flowMask_; -}; - -class CV_EXPORTS ColorAverageInpainter : public InpainterBase -{ -public: - virtual void inpaint(int idx, Mat &frame, Mat &mask); - -private: - FastMarchingMethod fmm_; -}; - -class CV_EXPORTS ColorInpainter : public InpainterBase -{ -public: - ColorInpainter(int method = INPAINT_TELEA, double radius = 2.); - - virtual void inpaint(int idx, Mat &frame, Mat &mask); - -private: - int method_; - double radius_; - Mat invMask_; -}; - -inline ColorInpainter::ColorInpainter(int _method, double _radius) - : method_(_method), radius_(_radius) {} - -CV_EXPORTS void calcFlowMask( - const Mat &flowX, const Mat &flowY, const Mat &errors, float maxError, - const Mat &mask0, const Mat &mask1, Mat &flowMask); - -CV_EXPORTS void completeFrameAccordingToFlow( - const Mat &flowMask, const Mat &flowX, const Mat &flowY, const Mat &frame1, const Mat &mask1, - float distThresh, Mat& frame0, Mat &mask0); - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/log.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/log.hpp deleted file mode 100644 index 81c634a3d..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/log.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_LOG_HPP -#define OPENCV_VIDEOSTAB_LOG_HPP - -#include "opencv2/core.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS ILog -{ -public: - virtual ~ILog() {} - virtual void print(const char *format, ...) = 0; -}; - -class CV_EXPORTS NullLog : public ILog -{ -public: - virtual void print(const char * /*format*/, ...) {} -}; - -class CV_EXPORTS LogToStdout : public ILog -{ -public: - virtual void print(const char *format, ...); -}; - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/motion_core.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/motion_core.hpp deleted file mode 100644 index 4525cc7b3..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/motion_core.hpp +++ /dev/null @@ -1,129 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_MOTION_CORE_HPP -#define OPENCV_VIDEOSTAB_MOTION_CORE_HPP - -#include -#include "opencv2/core.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab_motion -//! @{ - -/** @brief Describes motion model between two point clouds. - */ -enum MotionModel -{ - MM_TRANSLATION = 0, - MM_TRANSLATION_AND_SCALE = 1, - MM_ROTATION = 2, - MM_RIGID = 3, - MM_SIMILARITY = 4, - MM_AFFINE = 5, - MM_HOMOGRAPHY = 6, - MM_UNKNOWN = 7 -}; - -/** @brief Describes RANSAC method parameters. - */ -struct CV_EXPORTS RansacParams -{ - int size; //!< subset size - float thresh; //!< max error to classify as inlier - float eps; //!< max outliers ratio - float prob; //!< probability of success - - RansacParams() : size(0), thresh(0), eps(0), prob(0) {} - /** @brief Constructor - @param size Subset size. - @param thresh Maximum re-projection error value to classify as inlier. - @param eps Maximum ratio of incorrect correspondences. - @param prob Required success probability. - */ - RansacParams(int size, float thresh, float eps, float prob); - - /** - @return Number of iterations that'll be performed by RANSAC method. - */ - int niters() const - { - return static_cast( - std::ceil(std::log(1 - prob) / std::log(1 - std::pow(1 - eps, size)))); - } - - /** - @param model Motion model. See cv::videostab::MotionModel. - @return Default RANSAC method parameters for the given motion model. - */ - static RansacParams default2dMotion(MotionModel model) - { - CV_Assert(model < MM_UNKNOWN); - if (model == MM_TRANSLATION) - return RansacParams(1, 0.5f, 0.5f, 0.99f); - if (model == MM_TRANSLATION_AND_SCALE) - return RansacParams(2, 0.5f, 0.5f, 0.99f); - if (model == MM_ROTATION) - return RansacParams(1, 0.5f, 0.5f, 0.99f); - if (model == MM_RIGID) - return RansacParams(2, 0.5f, 0.5f, 0.99f); - if (model == MM_SIMILARITY) - return RansacParams(2, 0.5f, 0.5f, 0.99f); - if (model == MM_AFFINE) - return RansacParams(3, 0.5f, 0.5f, 0.99f); - return RansacParams(4, 0.5f, 0.5f, 0.99f); - } -}; - -inline RansacParams::RansacParams(int _size, float _thresh, float _eps, float _prob) - : size(_size), thresh(_thresh), eps(_eps), prob(_prob) {} - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/motion_stabilizing.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/motion_stabilizing.hpp deleted file mode 100644 index 5ea5a65a6..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/motion_stabilizing.hpp +++ /dev/null @@ -1,174 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_MOTION_STABILIZING_HPP -#define OPENCV_VIDEOSTAB_MOTION_STABILIZING_HPP - -#include -#include -#include "opencv2/core.hpp" -#include "opencv2/videostab/global_motion.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab_motion -//! @{ - -class CV_EXPORTS IMotionStabilizer -{ -public: - virtual ~IMotionStabilizer() {} - - //! assumes that [0, size-1) is in or equals to [range.first, range.second) - virtual void stabilize( - int size, const std::vector &motions, std::pair range, - Mat *stabilizationMotions) = 0; -}; - -class CV_EXPORTS MotionStabilizationPipeline : public IMotionStabilizer -{ -public: - void pushBack(Ptr stabilizer) { stabilizers_.push_back(stabilizer); } - bool empty() const { return stabilizers_.empty(); } - - virtual void stabilize( - int size, const std::vector &motions, std::pair range, - Mat *stabilizationMotions); - -private: - std::vector > stabilizers_; -}; - -class CV_EXPORTS MotionFilterBase : public IMotionStabilizer -{ -public: - virtual ~MotionFilterBase() {} - - virtual Mat stabilize( - int idx, const std::vector &motions, std::pair range) = 0; - - virtual void stabilize( - int size, const std::vector &motions, std::pair range, - Mat *stabilizationMotions); -}; - -class CV_EXPORTS GaussianMotionFilter : public MotionFilterBase -{ -public: - GaussianMotionFilter(int radius = 15, float stdev = -1.f); - - void setParams(int radius, float stdev = -1.f); - int radius() const { return radius_; } - float stdev() const { return stdev_; } - - virtual Mat stabilize( - int idx, const std::vector &motions, std::pair range); - -private: - int radius_; - float stdev_; - std::vector weight_; -}; - -inline GaussianMotionFilter::GaussianMotionFilter(int _radius, float _stdev) { setParams(_radius, _stdev); } - -class CV_EXPORTS LpMotionStabilizer : public IMotionStabilizer -{ -public: - LpMotionStabilizer(MotionModel model = MM_SIMILARITY); - - void setMotionModel(MotionModel val) { model_ = val; } - MotionModel motionModel() const { return model_; } - - void setFrameSize(Size val) { frameSize_ = val; } - Size frameSize() const { return frameSize_; } - - void setTrimRatio(float val) { trimRatio_ = val; } - float trimRatio() const { return trimRatio_; } - - void setWeight1(float val) { w1_ = val; } - float weight1() const { return w1_; } - - void setWeight2(float val) { w2_ = val; } - float weight2() const { return w2_; } - - void setWeight3(float val) { w3_ = val; } - float weight3() const { return w3_; } - - void setWeight4(float val) { w4_ = val; } - float weight4() const { return w4_; } - - virtual void stabilize( - int size, const std::vector &motions, std::pair range, - Mat *stabilizationMotions); - -private: - MotionModel model_; - Size frameSize_; - float trimRatio_; - float w1_, w2_, w3_, w4_; - - std::vector obj_, collb_, colub_; - std::vector rows_, cols_; - std::vector elems_, rowlb_, rowub_; - - void set(int row, int col, double coef) - { - rows_.push_back(row); - cols_.push_back(col); - elems_.push_back(coef); - } -}; - -CV_EXPORTS Mat ensureInclusionConstraint(const Mat &M, Size size, float trimRatio); - -CV_EXPORTS float estimateOptimalTrimRatio(const Mat &M, Size size); - -//! @} - -} // namespace videostab -} // namespace - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/optical_flow.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/optical_flow.hpp deleted file mode 100644 index d63148899..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/optical_flow.hpp +++ /dev/null @@ -1,150 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_OPTICAL_FLOW_HPP -#define OPENCV_VIDEOSTAB_OPTICAL_FLOW_HPP - -#include "opencv2/core.hpp" -#include "opencv2/opencv_modules.hpp" - -#ifdef HAVE_OPENCV_CUDAOPTFLOW - #include "opencv2/cudaoptflow.hpp" -#endif - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS ISparseOptFlowEstimator -{ -public: - virtual ~ISparseOptFlowEstimator() {} - virtual void run( - InputArray frame0, InputArray frame1, InputArray points0, InputOutputArray points1, - OutputArray status, OutputArray errors) = 0; -}; - -class CV_EXPORTS IDenseOptFlowEstimator -{ -public: - virtual ~IDenseOptFlowEstimator() {} - virtual void run( - InputArray frame0, InputArray frame1, InputOutputArray flowX, InputOutputArray flowY, - OutputArray errors) = 0; -}; - -class CV_EXPORTS PyrLkOptFlowEstimatorBase -{ -public: - PyrLkOptFlowEstimatorBase() { setWinSize(Size(21, 21)); setMaxLevel(3); } - - virtual void setWinSize(Size val) { winSize_ = val; } - virtual Size winSize() const { return winSize_; } - - virtual void setMaxLevel(int val) { maxLevel_ = val; } - virtual int maxLevel() const { return maxLevel_; } - virtual ~PyrLkOptFlowEstimatorBase() {} - -protected: - Size winSize_; - int maxLevel_; -}; - -class CV_EXPORTS SparsePyrLkOptFlowEstimator - : public PyrLkOptFlowEstimatorBase, public ISparseOptFlowEstimator -{ -public: - virtual void run( - InputArray frame0, InputArray frame1, InputArray points0, InputOutputArray points1, - OutputArray status, OutputArray errors); -}; - -#ifdef HAVE_OPENCV_CUDAOPTFLOW - -class CV_EXPORTS SparsePyrLkOptFlowEstimatorGpu - : public PyrLkOptFlowEstimatorBase, public ISparseOptFlowEstimator -{ -public: - SparsePyrLkOptFlowEstimatorGpu(); - - virtual void run( - InputArray frame0, InputArray frame1, InputArray points0, InputOutputArray points1, - OutputArray status, OutputArray errors); - - void run(const cuda::GpuMat &frame0, const cuda::GpuMat &frame1, const cuda::GpuMat &points0, cuda::GpuMat &points1, - cuda::GpuMat &status, cuda::GpuMat &errors); - - void run(const cuda::GpuMat &frame0, const cuda::GpuMat &frame1, const cuda::GpuMat &points0, cuda::GpuMat &points1, - cuda::GpuMat &status); - -private: - Ptr optFlowEstimator_; - cuda::GpuMat frame0_, frame1_, points0_, points1_, status_, errors_; -}; - -class CV_EXPORTS DensePyrLkOptFlowEstimatorGpu - : public PyrLkOptFlowEstimatorBase, public IDenseOptFlowEstimator -{ -public: - DensePyrLkOptFlowEstimatorGpu(); - - virtual void run( - InputArray frame0, InputArray frame1, InputOutputArray flowX, InputOutputArray flowY, - OutputArray errors); - -private: - Ptr optFlowEstimator_; - cuda::GpuMat frame0_, frame1_, flowX_, flowY_, errors_; -}; - -#endif - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/outlier_rejection.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/outlier_rejection.hpp deleted file mode 100644 index 9b9b3844c..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/outlier_rejection.hpp +++ /dev/null @@ -1,101 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_OUTLIER_REJECTION_HPP -#define OPENCV_VIDEOSTAB_OUTLIER_REJECTION_HPP - -#include -#include "opencv2/core.hpp" -#include "opencv2/videostab/motion_core.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS IOutlierRejector -{ -public: - virtual ~IOutlierRejector() {} - - virtual void process( - Size frameSize, InputArray points0, InputArray points1, OutputArray mask) = 0; -}; - -class CV_EXPORTS NullOutlierRejector : public IOutlierRejector -{ -public: - virtual void process( - Size frameSize, InputArray points0, InputArray points1, OutputArray mask); -}; - -class CV_EXPORTS TranslationBasedLocalOutlierRejector : public IOutlierRejector -{ -public: - TranslationBasedLocalOutlierRejector(); - - void setCellSize(Size val) { cellSize_ = val; } - Size cellSize() const { return cellSize_; } - - void setRansacParams(RansacParams val) { ransacParams_ = val; } - RansacParams ransacParams() const { return ransacParams_; } - - virtual void process( - Size frameSize, InputArray points0, InputArray points1, OutputArray mask); - -private: - Size cellSize_; - RansacParams ransacParams_; - - typedef std::vector Cell; - std::vector grid_; -}; - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/ring_buffer.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/ring_buffer.hpp deleted file mode 100644 index 55d52444b..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/ring_buffer.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_RING_BUFFER_HPP -#define OPENCV_VIDEOSTAB_RING_BUFFER_HPP - -#include -#include "opencv2/imgproc.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -template inline T& at(int idx, std::vector &items) -{ - return items[cv::borderInterpolate(idx, static_cast(items.size()), cv::BORDER_WRAP)]; -} - -template inline const T& at(int idx, const std::vector &items) -{ - return items[cv::borderInterpolate(idx, static_cast(items.size()), cv::BORDER_WRAP)]; -} - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/stabilizer.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/stabilizer.hpp deleted file mode 100644 index b78b4eaef..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/stabilizer.hpp +++ /dev/null @@ -1,200 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_STABILIZER_HPP -#define OPENCV_VIDEOSTAB_STABILIZER_HPP - -#include -#include -#include "opencv2/core.hpp" -#include "opencv2/imgproc.hpp" -#include "opencv2/videostab/global_motion.hpp" -#include "opencv2/videostab/motion_stabilizing.hpp" -#include "opencv2/videostab/frame_source.hpp" -#include "opencv2/videostab/log.hpp" -#include "opencv2/videostab/inpainting.hpp" -#include "opencv2/videostab/deblurring.hpp" -#include "opencv2/videostab/wobble_suppression.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS StabilizerBase -{ -public: - virtual ~StabilizerBase() {} - - void setLog(Ptr ilog) { log_ = ilog; } - Ptr log() const { return log_; } - - void setRadius(int val) { radius_ = val; } - int radius() const { return radius_; } - - void setFrameSource(Ptr val) { frameSource_ = val; } - Ptr frameSource() const { return frameSource_; } - - void setMotionEstimator(Ptr val) { motionEstimator_ = val; } - Ptr motionEstimator() const { return motionEstimator_; } - - void setDeblurer(Ptr val) { deblurer_ = val; } - Ptr deblurrer() const { return deblurer_; } - - void setTrimRatio(float val) { trimRatio_ = val; } - float trimRatio() const { return trimRatio_; } - - void setCorrectionForInclusion(bool val) { doCorrectionForInclusion_ = val; } - bool doCorrectionForInclusion() const { return doCorrectionForInclusion_; } - - void setBorderMode(int val) { borderMode_ = val; } - int borderMode() const { return borderMode_; } - - void setInpainter(Ptr val) { inpainter_ = val; } - Ptr inpainter() const { return inpainter_; } - -protected: - StabilizerBase(); - - void reset(); - Mat nextStabilizedFrame(); - bool doOneIteration(); - virtual void setUp(const Mat &firstFrame); - virtual Mat estimateMotion() = 0; - virtual Mat estimateStabilizationMotion() = 0; - void stabilizeFrame(); - virtual Mat postProcessFrame(const Mat &frame); - void logProcessingTime(); - - Ptr log_; - Ptr frameSource_; - Ptr motionEstimator_; - Ptr deblurer_; - Ptr inpainter_; - int radius_; - float trimRatio_; - bool doCorrectionForInclusion_; - int borderMode_; - - Size frameSize_; - Mat frameMask_; - int curPos_; - int curStabilizedPos_; - bool doDeblurring_; - Mat preProcessedFrame_; - bool doInpainting_; - Mat inpaintingMask_; - Mat finalFrame_; - std::vector frames_; - std::vector motions_; // motions_[i] is the motion from i-th to i+1-th frame - std::vector blurrinessRates_; - std::vector stabilizedFrames_; - std::vector stabilizedMasks_; - std::vector stabilizationMotions_; - clock_t processingStartTime_; -}; - -class CV_EXPORTS OnePassStabilizer : public StabilizerBase, public IFrameSource -{ -public: - OnePassStabilizer(); - - void setMotionFilter(Ptr val) { motionFilter_ = val; } - Ptr motionFilter() const { return motionFilter_; } - - virtual void reset(); - virtual Mat nextFrame() { return nextStabilizedFrame(); } - -protected: - virtual void setUp(const Mat &firstFrame); - virtual Mat estimateMotion(); - virtual Mat estimateStabilizationMotion(); - virtual Mat postProcessFrame(const Mat &frame); - - Ptr motionFilter_; -}; - -class CV_EXPORTS TwoPassStabilizer : public StabilizerBase, public IFrameSource -{ -public: - TwoPassStabilizer(); - - void setMotionStabilizer(Ptr val) { motionStabilizer_ = val; } - Ptr motionStabilizer() const { return motionStabilizer_; } - - void setWobbleSuppressor(Ptr val) { wobbleSuppressor_ = val; } - Ptr wobbleSuppressor() const { return wobbleSuppressor_; } - - void setEstimateTrimRatio(bool val) { mustEstTrimRatio_ = val; } - bool mustEstimateTrimaRatio() const { return mustEstTrimRatio_; } - - virtual void reset(); - virtual Mat nextFrame(); - -protected: - void runPrePassIfNecessary(); - - virtual void setUp(const Mat &firstFrame); - virtual Mat estimateMotion(); - virtual Mat estimateStabilizationMotion(); - virtual Mat postProcessFrame(const Mat &frame); - - Ptr motionStabilizer_; - Ptr wobbleSuppressor_; - bool mustEstTrimRatio_; - - int frameCount_; - bool isPrePassDone_; - bool doWobbleSuppression_; - std::vector motions2_; - Mat suppressedFrame_; -}; - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/wobble_suppression.hpp b/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/wobble_suppression.hpp deleted file mode 100644 index a44410bfd..000000000 --- a/lib/3rdParty/OpenCV3.4/include/opencv2/videostab/wobble_suppression.hpp +++ /dev/null @@ -1,140 +0,0 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2000-2008, Intel Corporation, all rights reserved. -// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved. -// Third party copyrights are property of their respective owners. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ - -#ifndef OPENCV_VIDEOSTAB_WOBBLE_SUPPRESSION_HPP -#define OPENCV_VIDEOSTAB_WOBBLE_SUPPRESSION_HPP - -#include -#include "opencv2/core.hpp" -#include "opencv2/core/cuda.hpp" -#include "opencv2/videostab/global_motion.hpp" -#include "opencv2/videostab/log.hpp" - -namespace cv -{ -namespace videostab -{ - -//! @addtogroup videostab -//! @{ - -class CV_EXPORTS WobbleSuppressorBase -{ -public: - WobbleSuppressorBase(); - - virtual ~WobbleSuppressorBase() {} - - void setMotionEstimator(Ptr val) { motionEstimator_ = val; } - Ptr motionEstimator() const { return motionEstimator_; } - - virtual void suppress(int idx, const Mat &frame, Mat &result) = 0; - - - // data from stabilizer - - virtual void setFrameCount(int val) { frameCount_ = val; } - virtual int frameCount() const { return frameCount_; } - - virtual void setMotions(const std::vector &val) { motions_ = &val; } - virtual const std::vector& motions() const { return *motions_; } - - virtual void setMotions2(const std::vector &val) { motions2_ = &val; } - virtual const std::vector& motions2() const { return *motions2_; } - - virtual void setStabilizationMotions(const std::vector &val) { stabilizationMotions_ = &val; } - virtual const std::vector& stabilizationMotions() const { return *stabilizationMotions_; } - -protected: - Ptr motionEstimator_; - int frameCount_; - const std::vector *motions_; - const std::vector *motions2_; - const std::vector *stabilizationMotions_; -}; - -class CV_EXPORTS NullWobbleSuppressor : public WobbleSuppressorBase -{ -public: - virtual void suppress(int idx, const Mat &frame, Mat &result); -}; - -class CV_EXPORTS MoreAccurateMotionWobbleSuppressorBase : public WobbleSuppressorBase -{ -public: - virtual void setPeriod(int val) { period_ = val; } - virtual int period() const { return period_; } - -protected: - MoreAccurateMotionWobbleSuppressorBase() { setPeriod(30); } - - int period_; -}; - -class CV_EXPORTS MoreAccurateMotionWobbleSuppressor : public MoreAccurateMotionWobbleSuppressorBase -{ -public: - virtual void suppress(int idx, const Mat &frame, Mat &result); - -private: - Mat_ mapx_, mapy_; -}; - -#if defined(HAVE_OPENCV_CUDAWARPING) -class CV_EXPORTS MoreAccurateMotionWobbleSuppressorGpu : public MoreAccurateMotionWobbleSuppressorBase -{ -public: - void suppress(int idx, const cuda::GpuMat &frame, cuda::GpuMat &result); - virtual void suppress(int idx, const Mat &frame, Mat &result); - -private: - cuda::GpuMat frameDevice_, resultDevice_; - cuda::GpuMat mapx_, mapy_; -}; -#endif - -//! @} - -} // namespace videostab -} // namespace cv - -#endif diff --git a/lib/3rdParty/OpenCV3.4/openCV3.4.props b/lib/3rdParty/OpenCV3.4/openCV3.4.props deleted file mode 100644 index f604b26a6..000000000 --- a/lib/3rdParty/OpenCV3.4/openCV3.4.props +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - $(SolutionDir)lib\3rdParty\OpenCV3.4\include\opencv;$(SolutionDir)lib\3rdParty\OpenCV3.4\include;%(AdditionalIncludeDirectories) - - - $(SolutionDir)lib\3rdParty\OpenCV3.4\$(PlatformTarget)\$(PlatformToolset)\lib\$(Configuration);%(AdditionalLibraryDirectories) - opencv_world340.lib;%(AdditionalDependencies) - - - xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV3.4\$(PlatformTarget)\$(PlatformToolset)\bin\$(Configuration)" "$(OutDir)" -xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV3.4\bin\opencv_ffmpeg340.dll" "$(OutDir)" -xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV3.4\bin\opencv_ffmpeg340_64.dll" "$(OutDir)" -xcopy /I /E /Y /D /C "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)classifiers" - - - - \ No newline at end of file diff --git a/lib/3rdParty/OpenCV3.4/x64/v140/bin/Debug/opencv_world340d.dll b/lib/3rdParty/OpenCV3.4/x64/v140/bin/Debug/opencv_world340d.dll deleted file mode 100644 index 36f8903a7..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x64/v140/bin/Debug/opencv_world340d.dll and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x64/v140/bin/Release/opencv_world340.dll b/lib/3rdParty/OpenCV3.4/x64/v140/bin/Release/opencv_world340.dll deleted file mode 100644 index 8836c5295..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x64/v140/bin/Release/opencv_world340.dll and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x64/v140/lib/Debug/opencv_world340.lib b/lib/3rdParty/OpenCV3.4/x64/v140/lib/Debug/opencv_world340.lib deleted file mode 100644 index 191c17428..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x64/v140/lib/Debug/opencv_world340.lib and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x64/v140/lib/Release/opencv_world340.lib b/lib/3rdParty/OpenCV3.4/x64/v140/lib/Release/opencv_world340.lib deleted file mode 100644 index 69fb4b784..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x64/v140/lib/Release/opencv_world340.lib and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x86/v140/bin/Debug/opencv_world340d.dll b/lib/3rdParty/OpenCV3.4/x86/v140/bin/Debug/opencv_world340d.dll deleted file mode 100644 index ef0f459df..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x86/v140/bin/Debug/opencv_world340d.dll and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x86/v140/bin/Release/opencv_world340.dll b/lib/3rdParty/OpenCV3.4/x86/v140/bin/Release/opencv_world340.dll deleted file mode 100644 index 22a66eb42..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x86/v140/bin/Release/opencv_world340.dll and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x86/v140/lib/Debug/opencv_world340.lib b/lib/3rdParty/OpenCV3.4/x86/v140/lib/Debug/opencv_world340.lib deleted file mode 100644 index 1baa9ea82..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x86/v140/lib/Debug/opencv_world340.lib and /dev/null differ diff --git a/lib/3rdParty/OpenCV3.4/x86/v140/lib/Release/opencv_world340.lib b/lib/3rdParty/OpenCV3.4/x86/v140/lib/Release/opencv_world340.lib deleted file mode 100644 index a5d514db0..000000000 Binary files a/lib/3rdParty/OpenCV3.4/x86/v140/lib/Release/opencv_world340.lib and /dev/null differ diff --git a/lib/3rdParty/boost/LICENSE_1_0.txt b/lib/3rdParty/boost/LICENSE_1_0.txt deleted file mode 100644 index 36b7cd93c..000000000 --- a/lib/3rdParty/boost/LICENSE_1_0.txt +++ /dev/null @@ -1,23 +0,0 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/lib/3rdParty/boost/boost.props b/lib/3rdParty/boost/boost.props deleted file mode 100644 index 5dd95e165..000000000 --- a/lib/3rdParty/boost/boost.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - $(SolutionDir)lib\3rdParty\boost;$(SolutionDir)lib\3rdParty\boost\boost;%(AdditionalIncludeDirectories) - - - $(SolutionDir)lib\3rdParty\boost\$(PlatformTarget)\$(PlatformToolset)\lib;%(AdditionalLibraryDirectories) - libboost_filesystem-vc$(PlatformToolsetVersion)-mt-1_63.lib;%(AdditionalDependencies) - - - - \ No newline at end of file diff --git a/lib/3rdParty/boost/boost/algorithm/algorithm.hpp b/lib/3rdParty/boost/boost/algorithm/algorithm.hpp deleted file mode 100644 index ab0d4aff5..000000000 --- a/lib/3rdParty/boost/boost/algorithm/algorithm.hpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (c) Marshall Clow 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) - - Revision history: - 2 Dec 2014 mtc First version; power - -*/ - -/// \file algorithm.hpp -/// \brief Misc Algorithms -/// \author Marshall Clow -/// - -#ifndef BOOST_ALGORITHM_HPP -#define BOOST_ALGORITHM_HPP - -#include // for plus and multiplies - -#include // for boost::disable_if -#include - -namespace boost { namespace algorithm { - -template -T identity_operation ( std::multiplies ) { return T(1); } - -template -T identity_operation ( std::plus ) { return T(0); } - - -/// \fn power ( T x, Integer n ) -/// \return the value "x" raised to the power "n" -/// -/// \param x The value to be exponentiated -/// \param n The exponent (must be >= 0) -/// -// \remark Taken from Knuth, The Art of Computer Programming, Volume 2: -// Seminumerical Algorithms, Section 4.6.3 -template -typename boost::enable_if, T>::type -power (T x, Integer n) { - T y = 1; // Should be "T y{1};" - if (n == 0) return y; - while (true) { - if (n % 2 == 1) { - y = x * y; - if (n == 1) - return y; - } - n = n / 2; - x = x * x; - } - return y; - } - -/// \fn power ( T x, Integer n, Operation op ) -/// \return the value "x" raised to the power "n" -/// using the operation "op". -/// -/// \param x The value to be exponentiated -/// \param n The exponent (must be >= 0) -/// \param op The operation used -/// -// \remark Taken from Knuth, The Art of Computer Programming, Volume 2: -// Seminumerical Algorithms, Section 4.6.3 -template -typename boost::enable_if, T>::type -power (T x, Integer n, Operation op) { - T y = identity_operation(op); - if (n == 0) return y; - while (true) { - if (n % 2 == 1) { - y = op(x, y); - if (n == 1) - return y; - } - n = n / 2; - x = op(x, x); - } - return y; - } - -}} - -#endif // BOOST_ALGORITHM_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/clamp.hpp b/lib/3rdParty/boost/boost/algorithm/clamp.hpp deleted file mode 100644 index 7bfa47ec9..000000000 --- a/lib/3rdParty/boost/boost/algorithm/clamp.hpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) - - Revision history: - 27 June 2009 mtc First version - 23 Oct 2010 mtc Added predicate version - -*/ - -/// \file clamp.hpp -/// \brief Clamp algorithm -/// \author Marshall Clow -/// -/// Suggested by olafvdspek in https://svn.boost.org/trac/boost/ticket/3215 - -#ifndef BOOST_ALGORITHM_CLAMP_HPP -#define BOOST_ALGORITHM_CLAMP_HPP - -#include // For std::less -#include // For std::iterator_traits -#include - -#include -#include -#include // for identity -#include // for boost::disable_if - -namespace boost { namespace algorithm { - -/// \fn clamp ( T const& val, -/// typename boost::mpl::identity::type const & lo, -/// typename boost::mpl::identity::type const & hi, Pred p ) -/// \return the value "val" brought into the range [ lo, hi ] -/// using the comparison predicate p. -/// If p ( val, lo ) return lo. -/// If p ( hi, val ) return hi. -/// Otherwise, return the original value. -/// -/// \param val The value to be clamped -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. -/// - template - T const & clamp ( T const& val, - typename boost::mpl::identity::type const & lo, - typename boost::mpl::identity::type const & hi, Pred p ) - { -// assert ( !p ( hi, lo )); // Can't assert p ( lo, hi ) b/c they might be equal - return p ( val, lo ) ? lo : p ( hi, val ) ? hi : val; - } - - -/// \fn clamp ( T const& val, -/// typename boost::mpl::identity::type const & lo, -/// typename boost::mpl::identity::type const & hi ) -/// \return the value "val" brought into the range [ lo, hi ]. -/// If the value is less than lo, return lo. -/// If the value is greater than "hi", return hi. -/// Otherwise, return the original value. -/// -/// \param val The value to be clamped -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// - template - T const& clamp ( const T& val, - typename boost::mpl::identity::type const & lo, - typename boost::mpl::identity::type const & hi ) - { - return (clamp) ( val, lo, hi, std::less()); - } - -/// \fn clamp_range ( InputIterator first, InputIterator last, OutputIterator out, -/// std::iterator_traits::value_type const & lo, -/// std::iterator_traits::value_type const & hi ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// -/// \param first The start of the range of values -/// \param last One past the end of the range of input values -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// - template - OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, - typename std::iterator_traits::value_type const & lo, - typename std::iterator_traits::value_type const & hi ) - { - // this could also be written with bind and std::transform - while ( first != last ) - *out++ = clamp ( *first++, lo, hi ); - return out; - } - -/// \fn clamp_range ( const Range &r, OutputIterator out, -/// typename std::iterator_traits::type>::value_type const & lo, -/// typename std::iterator_traits::type>::value_type const & hi ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// -/// \param r The range of values to be clamped -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// - template - typename boost::disable_if_c::value, OutputIterator>::type - clamp_range ( const Range &r, OutputIterator out, - typename std::iterator_traits::type>::value_type const & lo, - typename std::iterator_traits::type>::value_type const & hi ) - { - return clamp_range ( boost::begin ( r ), boost::end ( r ), out, lo, hi ); - } - - -/// \fn clamp_range ( InputIterator first, InputIterator last, OutputIterator out, -/// std::iterator_traits::value_type const & lo, -/// std::iterator_traits::value_type const & hi, Pred p ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// using the comparison predicate p. -/// -/// \param first The start of the range of values -/// \param last One past the end of the range of input values -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. - -/// - template - OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, - typename std::iterator_traits::value_type const & lo, - typename std::iterator_traits::value_type const & hi, Pred p ) - { - // this could also be written with bind and std::transform - while ( first != last ) - *out++ = clamp ( *first++, lo, hi, p ); - return out; - } - -/// \fn clamp_range ( const Range &r, OutputIterator out, -/// typename std::iterator_traits::type>::value_type const & lo, -/// typename std::iterator_traits::type>::value_type const & hi, -/// Pred p ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// using the comparison predicate p. -/// -/// \param r The range of values to be clamped -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. -// -// Disable this template if the first two parameters are the same type; -// In that case, the user will get the two iterator version. - template - typename boost::disable_if_c::value, OutputIterator>::type - clamp_range ( const Range &r, OutputIterator out, - typename std::iterator_traits::type>::value_type const & lo, - typename std::iterator_traits::type>::value_type const & hi, - Pred p ) - { - return clamp_range ( boost::begin ( r ), boost::end ( r ), out, lo, hi, p ); - } - - -}} - -#endif // BOOST_ALGORITHM_CLAMP_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/all_of.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/all_of.hpp deleted file mode 100644 index 8280b18d6..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/all_of.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) -*/ - -/// \file all_of.hpp -/// \brief Test ranges to see if all elements match a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_ALL_OF_HPP -#define BOOST_ALGORITHM_ALL_OF_HPP - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn all_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if all elements in [first, last) satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -/// \note This function is part of the C++2011 standard library. -template -bool all_of ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( !p(*first)) - return false; - return true; -} - -/// \fn all_of ( const Range &r, Predicate p ) -/// \return true if all elements in the range satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool all_of ( const Range &r, Predicate p ) -{ - return boost::algorithm::all_of ( boost::begin (r), boost::end (r), p ); -} - -/// \fn all_of_equal ( InputIterator first, InputIterator last, const T &val ) -/// \return true if all elements in [first, last) are equal to 'val' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool all_of_equal ( InputIterator first, InputIterator last, const T &val ) -{ - for ( ; first != last; ++first ) - if ( val != *first ) - return false; - return true; -} - -/// \fn all_of_equal ( const Range &r, const T &val ) -/// \return true if all elements in the range are equal to 'val' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool all_of_equal ( const Range &r, const T &val ) -{ - return boost::algorithm::all_of_equal ( boost::begin (r), boost::end (r), val ); -} - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_ALL_OF_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/any_of.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/any_of.hpp deleted file mode 100644 index e68135a2b..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/any_of.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) - - For more information, see http://www.boost.org -*/ - -/// \file -/// \brief Test ranges to see if any elements match a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_ANY_OF_HPP -#define BOOST_ALGORITHM_ANY_OF_HPP - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn any_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if any of the elements in [first, last) satisfy the predicate -/// \note returns false on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -template -bool any_of ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( p(*first)) - return true; - return false; -} - -/// \fn any_of ( const Range &r, Predicate p ) -/// \return true if any elements in the range satisfy the predicate 'p' -/// \note returns false on an empty range -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool any_of ( const Range &r, Predicate p ) -{ - return boost::algorithm::any_of (boost::begin (r), boost::end (r), p); -} - -/// \fn any_of_equal ( InputIterator first, InputIterator last, const V &val ) -/// \return true if any of the elements in [first, last) are equal to 'val' -/// \note returns false on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool any_of_equal ( InputIterator first, InputIterator last, const V &val ) -{ - for ( ; first != last; ++first ) - if ( val == *first ) - return true; - return false; -} - -/// \fn any_of_equal ( const Range &r, const V &val ) -/// \return true if any of the elements in the range are equal to 'val' -/// \note returns false on an empty range -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool any_of_equal ( const Range &r, const V &val ) -{ - return boost::algorithm::any_of_equal (boost::begin (r), boost::end (r), val); -} - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_ANY_OF_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/copy_if.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/copy_if.hpp deleted file mode 100644 index 73e85d99c..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/copy_if.hpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) -*/ - -/// \file copy_if.hpp -/// \brief Copy a subset of a sequence to a new sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_COPY_IF_HPP -#define BOOST_ALGORITHM_COPY_IF_HPP - -#include // for std::pair, std::make_pair -#include -#include - -namespace boost { namespace algorithm { - -/// \fn copy_if ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -/// \brief Copies all the elements from the input range that satisfy the -/// predicate to the output range. -/// \return The updated output iterator -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// \note This function is part of the C++2011 standard library. -template -OutputIterator copy_if ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -{ - for ( ; first != last; ++first ) - if (p(*first)) - *result++ = *first; - return result; -} - -/// \fn copy_if ( const Range &r, OutputIterator result, Predicate p ) -/// \brief Copies all the elements from the input range that satisfy the -/// predicate to the output range. -/// \return The updated output iterator -/// -/// \param r The input range -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -OutputIterator copy_if ( const Range &r, OutputIterator result, Predicate p ) -{ - return boost::algorithm::copy_if (boost::begin (r), boost::end(r), result, p); -} - - -/// \fn copy_while ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that -/// satisfy the predicate to the output range. -/// \return The updated input and output iterators -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair -copy_while ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -{ - for ( ; first != last && p(*first); ++first ) - *result++ = *first; - return std::make_pair(first, result); -} - -/// \fn copy_while ( const Range &r, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that -/// satisfy the predicate to the output range. -/// \return The updated input and output iterators -/// -/// \param r The input range -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair::type, OutputIterator> -copy_while ( const Range &r, OutputIterator result, Predicate p ) -{ - return boost::algorithm::copy_while (boost::begin (r), boost::end(r), result, p); -} - - -/// \fn copy_until ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that do not -/// satisfy the predicate to the output range. -/// \return The updated output iterator -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair -copy_until ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -{ - for ( ; first != last && !p(*first); ++first ) - *result++ = *first; - return std::make_pair(first, result); -} - -/// \fn copy_until ( const Range &r, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that do not -/// satisfy the predicate to the output range. -/// \return The updated output iterator -/// -/// \param r The input range -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair::type, OutputIterator> -copy_until ( const Range &r, OutputIterator result, Predicate p ) -{ - return boost::algorithm::copy_until (boost::begin (r), boost::end(r), result, p); -} - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_COPY_IF_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/copy_n.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/copy_n.hpp deleted file mode 100644 index ac880856d..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/copy_n.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) -*/ - -/// \file copy_n.hpp -/// \brief Copy n items from one sequence to another -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_COPY_N_HPP -#define BOOST_ALGORITHM_COPY_N_HPP - -namespace boost { namespace algorithm { - -/// \fn copy_n ( InputIterator first, Size n, OutputIterator result ) -/// \brief Copies exactly n (n > 0) elements from the range starting at first to -/// the range starting at result. -/// \return The updated output iterator -/// -/// \param first The start of the input sequence -/// \param n The number of elements to copy -/// \param result An output iterator to write the results into -/// \note This function is part of the C++2011 standard library. -template -OutputIterator copy_n ( InputIterator first, Size n, OutputIterator result ) -{ - for ( ; n > 0; --n, ++first, ++result ) - *result = *first; - return result; -} -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_COPY_IF_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/find_if_not.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/find_if_not.hpp deleted file mode 100644 index 02ff4dce7..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/find_if_not.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) -*/ - -/// \file find_if_not.hpp -/// \brief Find the first element in a sequence that does not satisfy a predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_FIND_IF_NOT_HPP -#define BOOST_ALGORITHM_FIND_IF_NOT_HPP - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn find_if_not(InputIterator first, InputIterator last, Predicate p) -/// \brief Finds the first element in the sequence that does not satisfy the predicate. -/// \return The iterator pointing to the desired element. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the range -/// \note This function is part of the C++2011 standard library. -template -InputIterator find_if_not ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( !p(*first)) - break; - return first; -} - -/// \fn find_if_not ( const Range &r, Predicate p ) -/// \brief Finds the first element in the sequence that does not satisfy the predicate. -/// \return The iterator pointing to the desired element. -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -typename boost::range_iterator::type find_if_not ( const Range &r, Predicate p ) -{ - return boost::algorithm::find_if_not (boost::begin (r), boost::end(r), p); -} - -}} -#endif // BOOST_ALGORITHM_FIND_IF_NOT_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/iota.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/iota.hpp deleted file mode 100644 index 675093f02..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/iota.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) -*/ - -/// \file iota.hpp -/// \brief Generate an increasing series -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IOTA_HPP -#define BOOST_ALGORITHM_IOTA_HPP - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn iota ( ForwardIterator first, ForwardIterator last, T value ) -/// \brief Generates an increasing sequence of values, and stores them in [first, last) -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param value The initial value of the sequence to be generated -/// \note This function is part of the C++2011 standard library. -template -void iota ( ForwardIterator first, ForwardIterator last, T value ) -{ - for ( ; first != last; ++first, ++value ) - *first = value; -} - -/// \fn iota ( Range &r, T value ) -/// \brief Generates an increasing sequence of values, and stores them in the input Range. -/// -/// \param r The input range -/// \param value The initial value of the sequence to be generated -/// -template -void iota ( Range &r, T value ) -{ - boost::algorithm::iota (boost::begin(r), boost::end(r), value); -} - - -/// \fn iota_n ( OutputIterator out, T value, std::size_t n ) -/// \brief Generates an increasing sequence of values, and stores them in the input Range. -/// -/// \param out An output iterator to write the results into -/// \param value The initial value of the sequence to be generated -/// \param n The number of items to write -/// -template -OutputIterator iota_n ( OutputIterator out, T value, std::size_t n ) -{ - for ( ; n > 0; --n, ++value ) - *out++ = value; - - return out; -} - -}} - -#endif // BOOST_ALGORITHM_IOTA_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/is_partitioned.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/is_partitioned.hpp deleted file mode 100644 index cb6c71e33..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/is_partitioned.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) -*/ - -/// \file is_partitioned.hpp -/// \brief Tell if a sequence is partitioned -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IS_PARTITIONED_HPP -#define BOOST_ALGORITHM_IS_PARTITIONED_HPP - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p ) -/// \brief Tests to see if a sequence is partitioned according to a predicate -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p The predicate to test the values with -/// \note This function is part of the C++2011 standard library. -template -bool is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p ) -{ -// Run through the part that satisfy the predicate - for ( ; first != last; ++first ) - if ( !p (*first)) - break; -// Now the part that does not satisfy the predicate - for ( ; first != last; ++first ) - if ( p (*first)) - return false; - return true; -} - -/// \fn is_partitioned ( const Range &r, UnaryPredicate p ) -/// \brief Generates an increasing sequence of values, and stores them in the input Range. -/// -/// \param r The input range -/// \param p The predicate to test the values with -/// -template -bool is_partitioned ( const Range &r, UnaryPredicate p ) -{ - return boost::algorithm::is_partitioned (boost::begin(r), boost::end(r), p); -} - - -}} - -#endif // BOOST_ALGORITHM_IS_PARTITIONED_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/is_permutation.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/is_permutation.hpp deleted file mode 100644 index 0098cd53f..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/is_permutation.hpp +++ /dev/null @@ -1,185 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) -*/ - -/// \file is_permutation.hpp -/// \brief Is a sequence a permutation of another sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IS_PERMUTATION11_HPP -#define BOOST_ALGORITHM_IS_PERMUTATION11_HPP - -#include // for std::find_if, count_if, mismatch -#include // for std::pair -#include // for std::equal_to -#include - -#include -#include -#include -#include - -namespace boost { namespace algorithm { - -/// \cond DOXYGEN_HIDE -namespace detail { - template - struct value_predicate { - value_predicate ( Predicate p, Iterator it ) : p_ ( p ), it_ ( it ) {} - - template - bool operator () ( const T1 &t1 ) const { return p_ ( *it_, t1 ); } - private: - Predicate p_; - Iterator it_; - }; - -// Preconditions: -// 1. The sequences are the same length -// 2. Any common elements on the front have been removed (not necessary for correctness, just for performance) - template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate > - bool is_permutation_inner ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate p ) { - // for each unique value in the sequence [first1,last1), count how many times - // it occurs, and make sure it occurs the same number of times in [first2, last2) - for ( ForwardIterator1 iter = first1; iter != last1; ++iter ) { - value_predicate pred ( p, iter ); - - /* For each value we haven't seen yet... */ - if ( std::find_if ( first1, iter, pred ) == iter ) { - std::size_t dest_count = std::count_if ( first2, last2, pred ); - if ( dest_count == 0 || dest_count != (std::size_t) std::count_if ( iter, last1, pred )) - return false; - } - } - - return true; - } - - template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> - bool is_permutation_tag ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate p, - std::forward_iterator_tag, std::forward_iterator_tag ) { - - // Skip the common prefix (if any) - while ( first1 != last1 && first2 != last2 && p ( *first1, *first2 )) { - ++first1; - ++first2; - } - if ( first1 != last1 && first2 != last2 ) - return boost::algorithm::detail::is_permutation_inner ( first1, last1, first2, last2, - std::equal_to::value_type> ()); - return first1 == last1 && first2 == last2; - } - - template - bool is_permutation_tag ( RandomAccessIterator1 first1, RandomAccessIterator1 last1, - RandomAccessIterator2 first2, RandomAccessIterator2 last2, - BinaryPredicate p, - std::random_access_iterator_tag, std::random_access_iterator_tag ) { - // Cheap check - if ( std::distance ( first1, last1 ) != std::distance ( first2, last2 )) - return false; - // Skip the common prefix (if any) - while ( first1 != last1 && first2 != last2 && p ( *first1, *first2 )) { - ++first1; - ++first2; - } - - if ( first1 != last1 && first2 != last2 ) - return is_permutation_inner (first1, last1, first2, last2, p); - return first1 == last1 && first2 == last2; - } - -} -/// \endcond - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 first2, BinaryPredicate p ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last1 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \param p The predicate to compare elements with -/// -/// \note This function is part of the C++2011 standard library. -template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, BinaryPredicate p ) -{ -// Skip the common prefix (if any) - std::pair eq = std::mismatch (first1, last1, first2, p); - first1 = eq.first; - first2 = eq.second; - if ( first1 != last1 ) { - // Create last2 - ForwardIterator2 last2 = first2; - std::advance ( last2, std::distance (first1, last1)); - return boost::algorithm::detail::is_permutation_inner ( first1, last1, first2, last2, p ); - } - - return true; -} - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 first2 ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last2 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \note This function is part of the C++2011 standard library. -template< class ForwardIterator1, class ForwardIterator2 > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2 ) -{ -// How should I deal with the idea that ForwardIterator1::value_type -// and ForwardIterator2::value_type could be different? Define my own comparison predicate? -// Skip the common prefix (if any) - std::pair eq = std::mismatch (first1, last1, first2 ); - first1 = eq.first; - first2 = eq.second; - if ( first1 != last1 ) { - // Create last2 - ForwardIterator2 last2 = first2; - std::advance ( last2, std::distance (first1, last1)); - return boost::algorithm::detail::is_permutation_inner ( first1, last1, first2, last2, - std::equal_to::value_type> ()); - } - return true; -} - - -/// \fn is_permutation ( const Range &r, ForwardIterator first2 ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param r The input range -/// \param first2 The start of the second sequence -template -bool is_permutation ( const Range &r, ForwardIterator first2 ) -{ - return boost::algorithm::is_permutation (boost::begin (r), boost::end (r), first2 ); -} - -/// \fn is_permutation ( const Range &r, ForwardIterator first2, BinaryPredicate pred ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param r The input range -/// \param first2 The start of the second sequence -/// \param pred The predicate to compare elements with -/// -// Disable this template when the first two parameters are the same type -// That way the non-range version will be chosen. -template -typename boost::disable_if_c::value, bool>::type -is_permutation ( const Range &r, ForwardIterator first2, BinaryPredicate pred ) -{ - return boost::algorithm::is_permutation (boost::begin (r), boost::end (r), first2, pred ); -} - -}} - -#endif // BOOST_ALGORITHM_IS_PERMUTATION11_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/is_sorted.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/is_sorted.hpp deleted file mode 100644 index f4dbb38c0..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/is_sorted.hpp +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright (c) 2010 Nuovation System Designs, LLC -// Grant Erickson -// -// Reworked somewhat by Marshall Clow; August 2010 -// -// 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 latest version. -// - -#ifndef BOOST_ALGORITHM_ORDERED_HPP -#define BOOST_ALGORITHM_ORDERED_HPP - -#include -#include - -#include -#include - -#include -#include -#include - -namespace boost { namespace algorithm { - -/// \fn is_sorted_until ( ForwardIterator first, ForwardIterator last, Pred p ) -/// \return the point in the sequence [first, last) where the elements are unordered -/// (according to the comparison predicate 'p'). -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last, Pred p ) - { - if ( first == last ) return last; // the empty sequence is ordered - ForwardIterator next = first; - while ( ++next != last ) - { - if ( p ( *next, *first )) - return next; - first = next; - } - return last; - } - -/// \fn is_sorted_until ( ForwardIterator first, ForwardIterator last ) -/// \return the point in the sequence [first, last) where the elements are unordered -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// - template - ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return boost::algorithm::is_sorted_until ( first, last, std::less()); - } - - -/// \fn is_sorted ( ForwardIterator first, ForwardIterator last, Pred p ) -/// \return whether or not the entire sequence is sorted -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - bool is_sorted ( ForwardIterator first, ForwardIterator last, Pred p ) - { - return boost::algorithm::is_sorted_until (first, last, p) == last; - } - -/// \fn is_sorted ( ForwardIterator first, ForwardIterator last ) -/// \return whether or not the entire sequence is sorted -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// - template - bool is_sorted ( ForwardIterator first, ForwardIterator last ) - { - return boost::algorithm::is_sorted_until (first, last) == last; - } - -/// -/// -- Range based versions of the C++11 functions -/// - -/// \fn is_sorted_until ( const R &range, Pred p ) -/// \return the point in the range R where the elements are unordered -/// (according to the comparison predicate 'p'). -/// -/// \param range The range to be tested. -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - typename boost::lazy_disable_if_c< - boost::is_same::value, - typename boost::range_iterator - >::type is_sorted_until ( const R &range, Pred p ) - { - return boost::algorithm::is_sorted_until ( boost::begin ( range ), boost::end ( range ), p ); - } - - -/// \fn is_sorted_until ( const R &range ) -/// \return the point in the range R where the elements are unordered -/// -/// \param range The range to be tested. -/// - template - typename boost::range_iterator::type is_sorted_until ( const R &range ) - { - return boost::algorithm::is_sorted_until ( boost::begin ( range ), boost::end ( range )); - } - -/// \fn is_sorted ( const R &range, Pred p ) -/// \return whether or not the entire range R is sorted -/// (according to the comparison predicate 'p'). -/// -/// \param range The range to be tested. -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - typename boost::lazy_disable_if_c< boost::is_same::value, boost::mpl::identity >::type - is_sorted ( const R &range, Pred p ) - { - return boost::algorithm::is_sorted ( boost::begin ( range ), boost::end ( range ), p ); - } - - -/// \fn is_sorted ( const R &range ) -/// \return whether or not the entire range R is sorted -/// -/// \param range The range to be tested. -/// - template - bool is_sorted ( const R &range ) - { - return boost::algorithm::is_sorted ( boost::begin ( range ), boost::end ( range )); - } - - -/// -/// -- Range based versions of the C++11 functions -/// - -/// \fn is_increasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is increasing; i.e, each item is greater than or -/// equal to the previous one. -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_increasing instead. - template - bool is_increasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return boost::algorithm::is_sorted (first, last, std::less()); - } - - -/// \fn is_increasing ( const R &range ) -/// \return true if the entire sequence is increasing; i.e, each item is greater than or -/// equal to the previous one. -/// -/// \param range The range to be tested. -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_increasing instead. - template - bool is_increasing ( const R &range ) - { - return is_increasing ( boost::begin ( range ), boost::end ( range )); - } - - - -/// \fn is_decreasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is decreasing; i.e, each item is less than -/// or equal to the previous one. -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_decreasing instead. - template - bool is_decreasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return boost::algorithm::is_sorted (first, last, std::greater()); - } - -/// \fn is_decreasing ( const R &range ) -/// \return true if the entire sequence is decreasing; i.e, each item is less than -/// or equal to the previous one. -/// -/// \param range The range to be tested. -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_decreasing instead. - template - bool is_decreasing ( const R &range ) - { - return is_decreasing ( boost::begin ( range ), boost::end ( range )); - } - - - -/// \fn is_strictly_increasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is strictly increasing; i.e, each item is greater -/// than the previous one -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_increasing instead. - template - bool is_strictly_increasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return boost::algorithm::is_sorted (first, last, std::less_equal()); - } - -/// \fn is_strictly_increasing ( const R &range ) -/// \return true if the entire sequence is strictly increasing; i.e, each item is greater -/// than the previous one -/// -/// \param range The range to be tested. -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_increasing instead. - template - bool is_strictly_increasing ( const R &range ) - { - return is_strictly_increasing ( boost::begin ( range ), boost::end ( range )); - } - - -/// \fn is_strictly_decreasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is strictly decreasing; i.e, each item is less than -/// the previous one -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_decreasing instead. - template - bool is_strictly_decreasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return boost::algorithm::is_sorted (first, last, std::greater_equal()); - } - -/// \fn is_strictly_decreasing ( const R &range ) -/// \return true if the entire sequence is strictly decreasing; i.e, each item is less than -/// the previous one -/// -/// \param range The range to be tested. -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_decreasing instead. - template - bool is_strictly_decreasing ( const R &range ) - { - return is_strictly_decreasing ( boost::begin ( range ), boost::end ( range )); - } - -}} // namespace boost - -#endif // BOOST_ALGORITHM_ORDERED_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/none_of.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/none_of.hpp deleted file mode 100644 index ba13144fb..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/none_of.hpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) -*/ - -/// \file none_of.hpp -/// \brief Test ranges to see if no elements match a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_NONE_OF_HPP -#define BOOST_ALGORITHM_NONE_OF_HPP - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn none_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if none of the elements in [first, last) satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -template -bool none_of ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( p(*first)) - return false; - return true; -} - -/// \fn none_of ( const Range &r, Predicate p ) -/// \return true if none of the elements in the range satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool none_of ( const Range &r, Predicate p ) -{ - return boost::algorithm::none_of (boost::begin (r), boost::end (r), p ); -} - -/// \fn none_of_equal ( InputIterator first, InputIterator last, const V &val ) -/// \return true if none of the elements in [first, last) are equal to 'val' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool none_of_equal ( InputIterator first, InputIterator last, const V &val ) -{ - for ( ; first != last; ++first ) - if ( val == *first ) - return false; - return true; -} - -/// \fn none_of_equal ( const Range &r, const V &val ) -/// \return true if none of the elements in the range are equal to 'val' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool none_of_equal ( const Range &r, const V & val ) -{ - return boost::algorithm::none_of_equal (boost::begin (r), boost::end (r), val); -} - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_NONE_OF_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/one_of.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/one_of.hpp deleted file mode 100644 index b6e8c7719..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/one_of.hpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) -*/ - -/// \file one_of.hpp -/// \brief Test ranges to see if only one element matches a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_ONE_OF_HPP -#define BOOST_ALGORITHM_ONE_OF_HPP - -#include // for std::find and std::find_if -#include - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn one_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if the predicate 'p' is true for exactly one item in [first, last). -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -template -bool one_of ( InputIterator first, InputIterator last, Predicate p ) -{ - InputIterator i = std::find_if (first, last, p); - if (i == last) - return false; // Didn't occur at all - return boost::algorithm::none_of (++i, last, p); -} - -/// \fn one_of ( const Range &r, Predicate p ) -/// \return true if the predicate 'p' is true for exactly one item in the range. -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool one_of ( const Range &r, Predicate p ) -{ - return boost::algorithm::one_of ( boost::begin (r), boost::end (r), p ); -} - - -/// \fn one_of_equal ( InputIterator first, InputIterator last, const V &val ) -/// \return true if the value 'val' exists only once in [first, last). -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool one_of_equal ( InputIterator first, InputIterator last, const V &val ) -{ - InputIterator i = std::find (first, last, val); // find first occurrence of 'val' - if (i == last) - return false; // Didn't occur at all - return boost::algorithm::none_of_equal (++i, last, val); -} - -/// \fn one_of_equal ( const Range &r, const V &val ) -/// \return true if the value 'val' exists only once in the range. -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool one_of_equal ( const Range &r, const V &val ) -{ - return boost::algorithm::one_of_equal ( boost::begin (r), boost::end (r), val ); -} - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_ALL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/partition_copy.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/partition_copy.hpp deleted file mode 100644 index f347f2128..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/partition_copy.hpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) -*/ - -/// \file partition_copy.hpp -/// \brief Copy a subset of a sequence to a new sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_PARTITION_COPY_HPP -#define BOOST_ALGORITHM_PARTITION_COPY_HPP - -#include // for std::pair - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn partition_copy ( InputIterator first, InputIterator last, -/// OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) -/// \brief Copies the elements that satisfy the predicate p from the range [first, last) -/// to the range beginning at d_first_true, and -/// copies the elements that do not satisfy p to the range beginning at d_first_false. -/// -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out_true An output iterator to write the elements that satisfy the predicate into -/// \param out_false An output iterator to write the elements that do not satisfy the predicate into -/// \param p A predicate for dividing the elements of the input sequence. -/// -/// \note This function is part of the C++2011 standard library. -template -std::pair -partition_copy ( InputIterator first, InputIterator last, - OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) -{ - for ( ; first != last; ++first ) - if ( p (*first)) - *out_true++ = *first; - else - *out_false++ = *first; - return std::pair ( out_true, out_false ); -} - -/// \fn partition_copy ( const Range &r, -/// OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) -/// -/// \param r The input range -/// \param out_true An output iterator to write the elements that satisfy the predicate into -/// \param out_false An output iterator to write the elements that do not satisfy the predicate into -/// \param p A predicate for dividing the elements of the input sequence. -/// -template -std::pair -partition_copy ( const Range &r, OutputIterator1 out_true, OutputIterator2 out_false, - UnaryPredicate p ) -{ - return boost::algorithm::partition_copy - (boost::begin(r), boost::end(r), out_true, out_false, p ); -} - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_PARTITION_COPY_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx11/partition_point.hpp b/lib/3rdParty/boost/boost/algorithm/cxx11/partition_point.hpp deleted file mode 100644 index 2c2767ae5..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx11/partition_point.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) -*/ - -/// \file partition_point.hpp -/// \brief Find the partition point in a sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_PARTITION_POINT_HPP -#define BOOST_ALGORITHM_PARTITION_POINT_HPP - -#include // for std::distance, advance - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn partition_point ( ForwardIterator first, ForwardIterator last, Predicate p ) -/// \brief Given a partitioned range, returns the partition point, i.e, the first element -/// that does not satisfy p -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p The predicate to test the values with -/// \note This function is part of the C++2011 standard library. -template -ForwardIterator partition_point ( ForwardIterator first, ForwardIterator last, Predicate p ) -{ - std::size_t dist = std::distance ( first, last ); - while ( first != last ) { - std::size_t d2 = dist / 2; - ForwardIterator ret_val = first; - std::advance (ret_val, d2); - if (p (*ret_val)) { - first = ++ret_val; - dist -= d2 + 1; - } - else { - last = ret_val; - dist = d2; - } - } - return first; -} - -/// \fn partition_point ( Range &r, Predicate p ) -/// \brief Given a partitioned range, returns the partition point -/// -/// \param r The input range -/// \param p The predicate to test the values with -/// -template -typename boost::range_iterator::type partition_point ( Range &r, Predicate p ) -{ - return boost::algorithm::partition_point (boost::begin(r), boost::end(r), p); -} - - -}} - -#endif // BOOST_ALGORITHM_PARTITION_POINT_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx14/equal.hpp b/lib/3rdParty/boost/boost/algorithm/cxx14/equal.hpp deleted file mode 100644 index f1539f885..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx14/equal.hpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) -*/ - -/// \file equal.hpp -/// \brief Test ranges to if they are equal -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_EQUAL_HPP -#define BOOST_ALGORITHM_EQUAL_HPP - -#include // for std::equal -#include // for std::binary_function -#include - -namespace boost { namespace algorithm { - -namespace detail { - - template - struct eq : public std::binary_function { - bool operator () ( const T1& v1, const T2& v2 ) const { return v1 == v2 ;} - }; - - template - bool equal ( RandomAccessIterator1 first1, RandomAccessIterator1 last1, - RandomAccessIterator2 first2, RandomAccessIterator2 last2, BinaryPredicate pred, - std::random_access_iterator_tag, std::random_access_iterator_tag ) - { - // Random-access iterators let is check the sizes in constant time - if ( std::distance ( first1, last1 ) != std::distance ( first2, last2 )) - return false; - // If we know that the sequences are the same size, the original version is fine - return std::equal ( first1, last1, first2, pred ); - } - - template - bool equal ( InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred, - std::input_iterator_tag, std::input_iterator_tag ) - { - for (; first1 != last1 && first2 != last2; ++first1, ++first2 ) - if ( !pred(*first1, *first2 )) - return false; - - return first1 == last1 && first2 == last2; - } -} - -/// \fn equal ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2, -/// BinaryPredicate pred ) -/// \return true if all elements in the two ranges are equal -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -/// \param pred A predicate for comparing the elements of the ranges -template -bool equal ( InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred ) -{ - return boost::algorithm::detail::equal ( - first1, last1, first2, last2, pred, - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -/// \fn equal ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2 ) -/// \return true if all elements in the two ranges are equal -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -template -bool equal ( InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2 ) -{ - return boost::algorithm::detail::equal ( - first1, last1, first2, last2, - boost::algorithm::detail::eq< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type> (), - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -// There are already range-based versions of these. - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_EQUAL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx14/is_permutation.hpp b/lib/3rdParty/boost/boost/algorithm/cxx14/is_permutation.hpp deleted file mode 100644 index 639446bf3..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx14/is_permutation.hpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (c) Marshall Clow 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) -*/ - -/// \file is_permutation.hpp -/// \brief Is a sequence a permutation of another sequence (four iterator versions) -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IS_PERMUTATION14_HPP -#define BOOST_ALGORITHM_IS_PERMUTATION14_HPP - -#include // for std::pair -#include // for std::equal_to -#include - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, -/// ForwardIterator2 first2, ForwardIterator2 last2 ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last2 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \param last1 One past the end of the second sequence -/// \note This function is part of the C++2014 standard library. -template< class ForwardIterator1, class ForwardIterator2 > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2 ) -{ -// How should I deal with the idea that ForwardIterator1::value_type -// and ForwardIterator2::value_type could be different? Define my own comparison predicate? - std::pair eq = boost::algorithm::mismatch - ( first1, last1, first2, last2 ); - if ( eq.first == last1 && eq.second == last2) - return true; - return boost::algorithm::detail::is_permutation_tag ( - eq.first, last1, eq.second, last2, - std::equal_to::value_type> (), - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, -/// ForwardIterator2 first2, ForwardIterator2 last2, -/// BinaryPredicate p ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last1 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \param last2 One past the end of the second sequence -/// \param pred The predicate to compare elements with -/// -/// \note This function is part of the C++2014 standard library. -template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate pred ) -{ - std::pair eq = boost::algorithm::mismatch - ( first1, last1, first2, last2, pred ); - if ( eq.first == last1 && eq.second == last2) - return true; - return boost::algorithm::detail::is_permutation_tag ( - first1, last1, first2, last2, pred, - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -}} - -#endif // BOOST_ALGORITHM_IS_PERMUTATION14_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/cxx14/mismatch.hpp b/lib/3rdParty/boost/boost/algorithm/cxx14/mismatch.hpp deleted file mode 100644 index c3de41822..000000000 --- a/lib/3rdParty/boost/boost/algorithm/cxx14/mismatch.hpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) -*/ - -/// \file mismatch.hpp -/// \brief Find the first mismatched element in a sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_MISMATCH_HPP -#define BOOST_ALGORITHM_MISMATCH_HPP - -#include // for std::pair - -namespace boost { namespace algorithm { - -/// \fn mismatch ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2, -/// BinaryPredicate pred ) -/// \return a pair of iterators pointing to the first elements in the sequence that do not match -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -/// \param pred A predicate for comparing the elements of the ranges -template -std::pair mismatch ( - InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - BinaryPredicate pred ) -{ - for (; first1 != last1 && first2 != last2; ++first1, ++first2) - if ( !pred ( *first1, *first2 )) - break; - return std::pair(first1, first2); -} - -/// \fn mismatch ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2 ) -/// \return a pair of iterators pointing to the first elements in the sequence that do not match -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -template -std::pair mismatch ( - InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2 ) -{ - for (; first1 != last1 && first2 != last2; ++first1, ++first2) - if ( *first1 != *first2 ) - break; - return std::pair(first1, first2); -} - -// There are already range-based versions of these. - -}} // namespace boost and algorithm - -#endif // BOOST_ALGORITHM_MISMATCH_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/gather.hpp b/lib/3rdParty/boost/boost/algorithm/gather.hpp deleted file mode 100644 index 944bc9434..000000000 --- a/lib/3rdParty/boost/boost/algorithm/gather.hpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - Copyright 2008 Adobe Systems Incorporated - - 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) - - Revision history: - January 2008 mtc Version for Adobe Source Library - January 2013 mtc Version for Boost.Algorithm - -*/ - -/**************************************************************************************************/ - -/*! -\author Marshall Clow -\date January 2008 -*/ - -#ifndef BOOST_ALGORITHM_GATHER_HPP -#define BOOST_ALGORITHM_GATHER_HPP - -#include // for std::stable_partition -#include - -#include // for boost::bind -#include // for boost::begin(range) -#include // for boost::end(range) - - -/**************************************************************************************************/ -/*! - \defgroup gather gather - \ingroup mutating_algorithm - - \c gather() takes a collection of elements defined by a pair of iterators and moves - the ones satisfying a predicate to them to a position (called the pivot) within - the sequence. The algorithm is stable. The result is a pair of iterators that - contains the items that satisfy the predicate. - - Given an sequence containing: -
-    0 1 2 3 4 5 6 7 8 9
-    
- - a call to gather ( arr, arr + 10, arr + 4, IsEven ()) will result in: - -
-    1 3 0 2 4 6 8 5 7 9
-        |---|-----|
-      first |  second
-          pivot
-    
- - - The problem is broken down into two basic steps, namely, moving the items before the pivot - and then moving the items from the pivot to the end. These "moves" are done with calls to - stable_partition. - - \par Storage Requirements: - - The algorithm uses stable_partition, which will attempt to allocate temporary memory, - but will work in-situ if there is none available. - - \par Time Complexity: - - If there is sufficient memory available, the run time is linear in N. - If there is not any memory available, then the run time is O(N log N). -*/ - -/**************************************************************************************************/ - -namespace boost { namespace algorithm { - -/**************************************************************************************************/ - -/*! - \ingroup gather - \brief iterator-based gather implementation -*/ - -template < - typename BidirectionalIterator, // Iter models BidirectionalIterator - typename Pred> // Pred models UnaryPredicate -std::pair gather - ( BidirectionalIterator first, BidirectionalIterator last, BidirectionalIterator pivot, Pred pred ) -{ -// The first call partitions everything up to (but not including) the pivot element, -// while the second call partitions the rest of the sequence. - return std::make_pair ( - std::stable_partition ( first, pivot, !boost::bind ( pred, _1 )), - std::stable_partition ( pivot, last, boost::bind ( pred, _1 ))); -} - -/**************************************************************************************************/ - -/*! - \ingroup gather - \brief range-based gather implementation -*/ - -template < - typename BidirectionalRange, // - typename Pred> // Pred models UnaryPredicate -std::pair< - typename boost::range_iterator::type, - typename boost::range_iterator::type> -gather ( - const BidirectionalRange &range, - typename boost::range_iterator::type pivot, - Pred pred ) -{ - return boost::algorithm::gather ( boost::begin ( range ), boost::end ( range ), pivot, pred ); -} - -/**************************************************************************************************/ - -}} // namespace - -/**************************************************************************************************/ - -#endif - diff --git a/lib/3rdParty/boost/boost/algorithm/hex.hpp b/lib/3rdParty/boost/boost/algorithm/hex.hpp deleted file mode 100644 index 739e89f2f..000000000 --- a/lib/3rdParty/boost/boost/algorithm/hex.hpp +++ /dev/null @@ -1,325 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - 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) - - Thanks to Nevin for his comments/help. -*/ - -/* - General problem - turn a sequence of integral types into a sequence of hexadecimal characters. - - and back. -*/ - -/// \file hex.hpp -/// \brief Convert sequence of integral types into a sequence of hexadecimal -/// characters and back. Based on the MySQL functions HEX and UNHEX -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_HEXHPP -#define BOOST_ALGORITHM_HEXHPP - -#include // for std::iterator_traits -#include - -#include -#include -#include -#include -#include - -#include -#include - - -namespace boost { namespace algorithm { - -/*! - \struct hex_decode_error - \brief Base exception class for all hex decoding errors -*/ /*! - \struct non_hex_input - \brief Thrown when a non-hex value (0-9, A-F) encountered when decoding. - Contains the offending character -*/ /*! - \struct not_enough_input - \brief Thrown when the input sequence unexpectedly ends - -*/ -struct hex_decode_error : virtual boost::exception, virtual std::exception {}; -struct not_enough_input : virtual hex_decode_error {}; -struct non_hex_input : virtual hex_decode_error {}; -typedef boost::error_info bad_char; - -namespace detail { -/// \cond DOXYGEN_HIDE - - template - OutputIterator encode_one ( T val, OutputIterator out, const char * hexDigits ) { - const std::size_t num_hex_digits = 2 * sizeof ( T ); - char res [ num_hex_digits ]; - char *p = res + num_hex_digits; - for ( std::size_t i = 0; i < num_hex_digits; ++i, val >>= 4 ) - *--p = hexDigits [ val & 0x0F ]; - return std::copy ( res, res + num_hex_digits, out ); - } - - template - unsigned char hex_char_to_int ( T val ) { - char c = static_cast ( val ); - unsigned retval = 0; - if ( c >= '0' && c <= '9' ) retval = c - '0'; - else if ( c >= 'A' && c <= 'F' ) retval = c - 'A' + 10; - else if ( c >= 'a' && c <= 'f' ) retval = c - 'a' + 10; - else BOOST_THROW_EXCEPTION (non_hex_input() << bad_char (c)); - return retval; - } - -// My own iterator_traits class. -// It is here so that I can "reach inside" some kinds of output iterators -// and get the type to write. - template - struct hex_iterator_traits { - typedef typename std::iterator_traits::value_type value_type; - }; - - template - struct hex_iterator_traits< std::back_insert_iterator > { - typedef typename Container::value_type value_type; - }; - - template - struct hex_iterator_traits< std::front_insert_iterator > { - typedef typename Container::value_type value_type; - }; - - template - struct hex_iterator_traits< std::insert_iterator > { - typedef typename Container::value_type value_type; - }; - -// ostream_iterators have three template parameters. -// The first one is the output type, the second one is the character type of -// the underlying stream, the third is the character traits. -// We only care about the first one. - template - struct hex_iterator_traits< std::ostream_iterator > { - typedef T value_type; - }; - - template - bool iter_end ( Iterator current, Iterator last ) { return current == last; } - - template - bool ptr_end ( const T* ptr, const T* /*end*/ ) { return *ptr == '\0'; } - -// What can we assume here about the inputs? -// is std::iterator_traits::value_type always 'char' ? -// Could it be wchar_t, say? Does it matter? -// We are assuming ASCII for the values - but what about the storage? - template - typename boost::enable_if::value_type>, OutputIterator>::type - decode_one ( InputIterator &first, InputIterator last, OutputIterator out, EndPred pred ) { - typedef typename hex_iterator_traits::value_type T; - T res (0); - - // Need to make sure that we get can read that many chars here. - for ( std::size_t i = 0; i < 2 * sizeof ( T ); ++i, ++first ) { - if ( pred ( first, last )) - BOOST_THROW_EXCEPTION (not_enough_input ()); - res = ( 16 * res ) + hex_char_to_int (*first); - } - - *out = res; - return ++out; - } -/// \endcond - } - - -/// \fn hex ( InputIterator first, InputIterator last, OutputIterator out ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename boost::enable_if::value_type>, OutputIterator>::type -hex ( InputIterator first, InputIterator last, OutputIterator out ) { - for ( ; first != last; ++first ) - out = detail::encode_one ( *first, out, "0123456789ABCDEF" ); - return out; - } - - -/// \fn hex_lower ( InputIterator first, InputIterator last, OutputIterator out ) -/// \brief Converts a sequence of integral types into a lower case hexadecimal sequence of characters. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename boost::enable_if::value_type>, OutputIterator>::type -hex_lower ( InputIterator first, InputIterator last, OutputIterator out ) { - for ( ; first != last; ++first ) - out = detail::encode_one ( *first, out, "0123456789abcdef" ); - return out; - } - - -/// \fn hex ( const T *ptr, OutputIterator out ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param ptr A pointer to a 0-terminated sequence of data. -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename boost::enable_if, OutputIterator>::type -hex ( const T *ptr, OutputIterator out ) { - while ( *ptr ) - out = detail::encode_one ( *ptr++, out, "0123456789ABCDEF" ); - return out; - } - - -/// \fn hex_lower ( const T *ptr, OutputIterator out ) -/// \brief Converts a sequence of integral types into a lower case hexadecimal sequence of characters. -/// -/// \param ptr A pointer to a 0-terminated sequence of data. -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename boost::enable_if, OutputIterator>::type -hex_lower ( const T *ptr, OutputIterator out ) { - while ( *ptr ) - out = detail::encode_one ( *ptr++, out, "0123456789abcdef" ); - return out; - } - - -/// \fn hex ( const Range &r, OutputIterator out ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param r The input range -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename boost::enable_if::value_type>, OutputIterator>::type -hex ( const Range &r, OutputIterator out ) { - return hex (boost::begin(r), boost::end(r), out); -} - - -/// \fn hex_lower ( const Range &r, OutputIterator out ) -/// \brief Converts a sequence of integral types into a lower case hexadecimal sequence of characters. -/// -/// \param r The input range -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename boost::enable_if::value_type>, OutputIterator>::type -hex_lower ( const Range &r, OutputIterator out ) { - return hex_lower (boost::begin(r), boost::end(r), out); -} - - -/// \fn unhex ( InputIterator first, InputIterator last, OutputIterator out ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of integers. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -OutputIterator unhex ( InputIterator first, InputIterator last, OutputIterator out ) { - while ( first != last ) - out = detail::decode_one ( first, last, out, detail::iter_end ); - return out; - } - - -/// \fn unhex ( const T *ptr, OutputIterator out ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of integers. -/// -/// \param ptr A pointer to a null-terminated input sequence. -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -OutputIterator unhex ( const T *ptr, OutputIterator out ) { -// If we run into the terminator while decoding, we will throw a -// malformed input exception. It would be nicer to throw a 'Not enough input' -// exception - but how much extra work would that require? - while ( *ptr ) - out = detail::decode_one ( ptr, (const T *) NULL, out, detail::ptr_end ); - return out; - } - - -/// \fn OutputIterator unhex ( const Range &r, OutputIterator out ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of integers. -/// -/// \param r The input range -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -OutputIterator unhex ( const Range &r, OutputIterator out ) { - return unhex (boost::begin(r), boost::end(r), out); - } - - -/// \fn String hex ( const String &input ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param input A container to be converted -/// \return A container with the encoded text -template -String hex ( const String &input ) { - String output; - output.reserve (input.size () * (2 * sizeof (typename String::value_type))); - (void) hex (input, std::back_inserter (output)); - return output; - } - - -/// \fn String hex_lower ( const String &input ) -/// \brief Converts a sequence of integral types into a lower case hexadecimal sequence of characters. -/// -/// \param input A container to be converted -/// \return A container with the encoded text -template -String hex_lower ( const String &input ) { - String output; - output.reserve (input.size () * (2 * sizeof (typename String::value_type))); - (void) hex_lower (input, std::back_inserter (output)); - return output; - } - - -/// \fn String unhex ( const String &input ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of characters. -/// -/// \param input A container to be converted -/// \return A container with the decoded text -template -String unhex ( const String &input ) { - String output; - output.reserve (input.size () / (2 * sizeof (typename String::value_type))); - (void) unhex (input, std::back_inserter (output)); - return output; - } - -}} - -#endif // BOOST_ALGORITHM_HEXHPP diff --git a/lib/3rdParty/boost/boost/algorithm/is_palindrome.hpp b/lib/3rdParty/boost/boost/algorithm/is_palindrome.hpp deleted file mode 100644 index cc63e1807..000000000 --- a/lib/3rdParty/boost/boost/algorithm/is_palindrome.hpp +++ /dev/null @@ -1,161 +0,0 @@ -/* - Copyright (c) Alexander Zaitsev , 2016 - - 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 latest version. -*/ - -/// \file is_palindrome.hpp -/// \brief Checks the input sequence on palindrome. -/// \author Alexander Zaitsev - -#ifndef BOOST_ALGORITHM_IS_PALINDROME_HPP -#define BOOST_ALGORITHM_IS_PALINDROME_HPP - -#include -#include -#include - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn is_palindrome ( BidirectionalIterator begin, BidirectionalIterator end, Predicate p ) -/// \return true if the entire sequence is palindrome -/// -/// \param begin The start of the input sequence -/// \param end One past the end of the input sequence -/// \param p A predicate used to compare the values. -/// -/// \note This function will return true for empty sequences and for palindromes. -/// For other sequences function will return false. -/// Complexity: O(N). -template -bool is_palindrome(BidirectionalIterator begin, BidirectionalIterator end, Predicate p ) -{ - if(begin == end) - { - return true; - } - - --end; - while(begin != end) - { - if(!p(*begin, *end)) - { - return false; - } - ++begin; - if(begin == end) - { - break; - } - --end; - } - return true; -} - -/// \fn is_palindrome ( BidirectionalIterator begin, BidirectionalIterator end ) -/// \return true if the entire sequence is palindrome -/// -/// \param begin The start of the input sequence -/// \param end One past the end of the input sequence -/// -/// \note This function will return true for empty sequences and for palindromes. -/// For other sequences function will return false. -/// Complexity: O(N). -template -bool is_palindrome(BidirectionalIterator begin, BidirectionalIterator end) -{ - if(begin == end) - { - return true; - } - - --end; - while(begin != end) - { - if(!(*begin == *end)) - { - return false; - } - ++begin; - if(begin == end) - { - break; - } - --end; - } - return true; -} - -/// \fn is_palindrome ( const R& range ) -/// \return true if the entire sequence is palindrome -/// -/// \param range The range to be tested. -/// -/// \note This function will return true for empty sequences and for palindromes. -/// For other sequences function will return false. -/// Complexity: O(N). -template -bool is_palindrome(const R& range) -{ - return is_palindrome(boost::begin(range), boost::end(range)); -} - -/// \fn is_palindrome ( const R& range, Predicate p ) -/// \return true if the entire sequence is palindrome -/// -/// \param range The range to be tested. -/// \param p A predicate used to compare the values. -/// -/// \note This function will return true for empty sequences and for palindromes. -/// For other sequences function will return false. -/// Complexity: O(N). -template -bool is_palindrome(const R& range, Predicate p) -{ - return is_palindrome(boost::begin(range), boost::end(range), p); -} - - -/// \fn is_palindrome ( const char* str ) -/// \return true if the entire sequence is palindrome -/// -/// \param str C-string to be tested. -/// -/// \note This function will return true for empty sequences and for palindromes. -/// For other sequences function will return false. -/// Complexity: O(N). -bool is_palindrome(const char* str) -{ - if(!str) - return true; - return is_palindrome(str, str + strlen(str)); -} - - -/// \fn is_palindrome ( const char* str, Predicate p ) -/// \return true if the entire sequence is palindrome -/// -/// \param str C-string to be tested. -/// \param p A predicate used to compare the values. -/// -/// \note This function will return true for empty sequences and for palindromes. -/// For other sequences function will return false. -/// Complexity: O(N). -template -bool is_palindrome(const char* str, Predicate p) -{ - if(!str) - return true; - return is_palindrome(str, str + strlen(str), p); -} - -}} - -#endif // BOOST_ALGORITHM_IS_PALINDROME_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/minmax.hpp b/lib/3rdParty/boost/boost/algorithm/minmax.hpp deleted file mode 100644 index 053a7d60a..000000000 --- a/lib/3rdParty/boost/boost/algorithm/minmax.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// (C) Copyright Herve Bronnimann 2004. -// -// 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) - -/* - Revision history: - 1 July 2004 - Split the code into two headers to lessen dependence on - Boost.tuple. (Herve) - 26 June 2004 - Added the code for the boost minmax library. (Herve) -*/ - -#ifndef BOOST_ALGORITHM_MINMAX_HPP -#define BOOST_ALGORITHM_MINMAX_HPP - -/* PROPOSED STANDARD EXTENSIONS: - * - * minmax(a, b) - * Effect: (b // for using pairs with boost::cref -#include - -namespace boost { - - template - tuple< T const&, T const& > - minmax(T const& a, T const& b) { - return (b - tuple< T const&, T const& > - minmax(T const& a, T const& b, BinaryPredicate comp) { - return comp(b,a) ? make_tuple(cref(b),cref(a)) : make_tuple(cref(a),cref(b)); - } - -} // namespace boost - -#endif // BOOST_ALGORITHM_MINMAX_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/minmax_element.hpp b/lib/3rdParty/boost/boost/algorithm/minmax_element.hpp deleted file mode 100644 index 752f6cbdb..000000000 --- a/lib/3rdParty/boost/boost/algorithm/minmax_element.hpp +++ /dev/null @@ -1,553 +0,0 @@ -// (C) Copyright Herve Bronnimann 2004. -// -// 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) - -/* - Revision history: - 1 July 2004 - Split the code into two headers to lessen dependence on - Boost.tuple. (Herve) - 26 June 2004 - Added the code for the boost minmax library. (Herve) -*/ - -#ifndef BOOST_ALGORITHM_MINMAX_ELEMENT_HPP -#define BOOST_ALGORITHM_MINMAX_ELEMENT_HPP - -/* PROPOSED STANDARD EXTENSIONS: - * - * minmax_element(first, last) - * Effect: std::make_pair( std::min_element(first, last), - * std::max_element(first, last) ); - * - * minmax_element(first, last, comp) - * Effect: std::make_pair( std::min_element(first, last, comp), - * std::max_element(first, last, comp) ); - */ - -#include // for std::pair and std::make_pair - -namespace boost { - - namespace detail { // for obtaining a uniform version of minmax_element - // that compiles with VC++ 6.0 -- avoid the iterator_traits by - // having comparison object over iterator, not over dereferenced value - - template - struct less_over_iter { - bool operator()(Iterator const& it1, - Iterator const& it2) const { return *it1 < *it2; } - }; - - template - struct binary_pred_over_iter { - explicit binary_pred_over_iter(BinaryPredicate const& p ) : m_p( p ) {} - bool operator()(Iterator const& it1, - Iterator const& it2) const { return m_p(*it1, *it2); } - private: - BinaryPredicate m_p; - }; - - // common base for the two minmax_element overloads - - template - std::pair - basic_minmax_element(ForwardIter first, ForwardIter last, Compare comp) - { - if (first == last) - return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - // if only one element - ForwardIter second = first; ++second; - if (second == last) - return std::make_pair(min_result, max_result); - - // treat first pair separately (only one comparison for first two elements) - ForwardIter potential_min_result = last; - if (comp(first, second)) - max_result = second; - else { - min_result = second; - potential_min_result = first; - } - - // then each element by pairs, with at most 3 comparisons per pair - first = ++second; if (first != last) ++second; - while (second != last) { - if (comp(first, second)) { - if (comp(first, min_result)) { - min_result = first; - potential_min_result = last; - } - if (comp(max_result, second)) - max_result = second; - } else { - if (comp(second, min_result)) { - min_result = second; - potential_min_result = first; - } - if (comp(max_result, first)) - max_result = first; - } - first = ++second; - if (first != last) ++second; - } - - // if odd number of elements, treat last element - if (first != last) { // odd number of elements - if (comp(first, min_result)) { - min_result = first; - potential_min_result = last; - } - else if (comp(max_result, first)) - max_result = first; - } - - // resolve min_result being incorrect with one extra comparison - // (in which case potential_min_result is necessarily the correct result) - if (potential_min_result != last - && !comp(min_result, potential_min_result)) - min_result = potential_min_result; - - return std::make_pair(min_result,max_result); - } - - } // namespace detail - - template - std::pair - minmax_element(ForwardIter first, ForwardIter last) - { - return detail::basic_minmax_element(first, last, - detail::less_over_iter() ); - } - - template - std::pair - minmax_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_minmax_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - -} - -/* PROPOSED BOOST EXTENSIONS - * In the description below, [rfirst,rlast) denotes the reversed range - * of [first,last). Even though the iterator type of first and last may - * be only a Forward Iterator, it is possible to explain the semantics - * by assuming that it is a Bidirectional Iterator. In the sequel, - * reverse(ForwardIterator&) returns the reverse_iterator adaptor. - * This is not how the functions would be implemented! - * - * first_min_element(first, last) - * Effect: std::min_element(first, last); - * - * first_min_element(first, last, comp) - * Effect: std::min_element(first, last, comp); - * - * last_min_element(first, last) - * Effect: reverse( std::min_element(reverse(last), reverse(first)) ); - * - * last_min_element(first, last, comp) - * Effect: reverse( std::min_element(reverse(last), reverse(first), comp) ); - * - * first_max_element(first, last) - * Effect: std::max_element(first, last); - * - * first_max_element(first, last, comp) - * Effect: max_element(first, last); - * - * last_max_element(first, last) - * Effect: reverse( std::max_element(reverse(last), reverse(first)) ); - * - * last_max_element(first, last, comp) - * Effect: reverse( std::max_element(reverse(last), reverse(first), comp) ); - * - * first_min_first_max_element(first, last) - * Effect: std::make_pair( first_min_element(first, last), - * first_max_element(first, last) ); - * - * first_min_first_max_element(first, last, comp) - * Effect: std::make_pair( first_min_element(first, last, comp), - * first_max_element(first, last, comp) ); - * - * first_min_last_max_element(first, last) - * Effect: std::make_pair( first_min_element(first, last), - * last_max_element(first, last) ); - * - * first_min_last_max_element(first, last, comp) - * Effect: std::make_pair( first_min_element(first, last, comp), - * last_max_element(first, last, comp) ); - * - * last_min_first_max_element(first, last) - * Effect: std::make_pair( last_min_element(first, last), - * first_max_element(first, last) ); - * - * last_min_first_max_element(first, last, comp) - * Effect: std::make_pair( last_min_element(first, last, comp), - * first_max_element(first, last, comp) ); - * - * last_min_last_max_element(first, last) - * Effect: std::make_pair( last_min_element(first, last), - * last_max_element(first, last) ); - * - * last_min_last_max_element(first, last, comp) - * Effect: std::make_pair( last_min_element(first, last, comp), - * last_max_element(first, last, comp) ); - */ - -namespace boost { - - // Min_element and max_element variants - - namespace detail { // common base for the overloads - - template - ForwardIter - basic_first_min_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter min_result = first; - while (++first != last) - if (comp(first, min_result)) - min_result = first; - return min_result; - } - - template - ForwardIter - basic_last_min_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter min_result = first; - while (++first != last) - if (!comp(min_result, first)) - min_result = first; - return min_result; - } - - template - ForwardIter - basic_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter max_result = first; - while (++first != last) - if (comp(max_result, first)) - max_result = first; - return max_result; - } - - template - ForwardIter - basic_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter max_result = first; - while (++first != last) - if (!comp(first, max_result)) - max_result = first; - return max_result; - } - - } // namespace detail - - template - ForwardIter - first_min_element(ForwardIter first, ForwardIter last) - { - return detail::basic_first_min_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - first_min_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_first_min_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - ForwardIter - last_min_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_min_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - last_min_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_last_min_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - ForwardIter - first_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_first_max_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - first_max_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_first_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - ForwardIter - last_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_max_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - last_max_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_last_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - - // Minmax_element variants -- comments removed - - namespace detail { - - template - std::pair - basic_first_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) - return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - ForwardIter second = ++first; - if (second == last) - return std::make_pair(min_result, max_result); - - if (comp(second, min_result)) - min_result = second; - else - max_result = second; - - first = ++second; if (first != last) ++second; - while (second != last) { - if (!comp(second, first)) { - if (comp(first, min_result)) - min_result = first; - if (!comp(second, max_result)) - max_result = second; - } else { - if (comp(second, min_result)) - min_result = second; - if (!comp(first, max_result)) - max_result = first; - } - first = ++second; if (first != last) ++second; - } - - if (first != last) { - if (comp(first, min_result)) - min_result = first; - else if (!comp(first, max_result)) - max_result = first; - } - - return std::make_pair(min_result, max_result); - } - - template - std::pair - basic_last_min_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - ForwardIter second = ++first; - if (second == last) - return std::make_pair(min_result, max_result); - - if (comp(max_result, second)) - max_result = second; - else - min_result = second; - - first = ++second; if (first != last) ++second; - while (second != last) { - if (comp(first, second)) { - if (!comp(min_result, first)) - min_result = first; - if (comp(max_result, second)) - max_result = second; - } else { - if (!comp(min_result, second)) - min_result = second; - if (comp(max_result, first)) - max_result = first; - } - first = ++second; if (first != last) ++second; - } - - if (first != last) { - if (!comp(min_result, first)) - min_result = first; - else if (comp(max_result, first)) - max_result = first; - } - - return std::make_pair(min_result, max_result); - } - - template - std::pair - basic_last_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - ForwardIter second = first; ++second; - if (second == last) - return std::make_pair(min_result,max_result); - - ForwardIter potential_max_result = last; - if (comp(first, second)) - max_result = second; - else { - min_result = second; - potential_max_result = second; - } - - first = ++second; if (first != last) ++second; - while (second != last) { - if (comp(first, second)) { - if (!comp(min_result, first)) - min_result = first; - if (!comp(second, max_result)) { - max_result = second; - potential_max_result = last; - } - } else { - if (!comp(min_result, second)) - min_result = second; - if (!comp(first, max_result)) { - max_result = first; - potential_max_result = second; - } - } - first = ++second; - if (first != last) ++second; - } - - if (first != last) { - if (!comp(min_result, first)) - min_result = first; - if (!comp(first, max_result)) { - max_result = first; - potential_max_result = last; - } - } - - if (potential_max_result != last - && !comp(potential_max_result, max_result)) - max_result = potential_max_result; - - return std::make_pair(min_result,max_result); - } - - } // namespace detail - - template - inline std::pair - first_min_first_max_element(ForwardIter first, ForwardIter last) - { - return minmax_element(first, last); - } - - template - inline std::pair - first_min_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return minmax_element(first, last, comp); - } - - template - std::pair - first_min_last_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_first_min_last_max_element(first, last, - detail::less_over_iter() ); - } - - template - inline std::pair - first_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return detail::basic_first_min_last_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - std::pair - last_min_first_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_min_first_max_element(first, last, - detail::less_over_iter() ); - } - - template - inline std::pair - last_min_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return detail::basic_last_min_first_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - std::pair - last_min_last_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_min_last_max_element(first, last, - detail::less_over_iter() ); - } - - template - inline std::pair - last_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return detail::basic_last_min_last_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - -} // namespace boost - -#endif // BOOST_ALGORITHM_MINMAX_ELEMENT_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/searching/boyer_moore.hpp b/lib/3rdParty/boost/boost/algorithm/searching/boyer_moore.hpp deleted file mode 100644 index 65a809dd4..000000000 --- a/lib/3rdParty/boost/boost/algorithm/searching/boyer_moore.hpp +++ /dev/null @@ -1,272 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - 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) - - For more information, see http://www.boost.org -*/ - -#ifndef BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP -#define BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP - -#include // for std::iterator_traits - -#include -#include - -#include -#include - -#include -#include - -#include -#include - -namespace boost { namespace algorithm { - -/* - A templated version of the boyer-moore searching algorithm. - -References: - http://www.cs.utexas.edu/users/moore/best-ideas/string-searching/ - http://www.cs.utexas.edu/~moore/publications/fstrpos.pdf - -Explanations: - http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm - http://www.movsd.com/bm.htm - http://www.cs.ucdavis.edu/~gusfield/cs224f09/bnotes.pdf - -The Boyer-Moore search algorithm uses two tables, a "bad character" table -to tell how far to skip ahead when it hits a character that is not in the pattern, -and a "good character" table to tell how far to skip ahead when it hits a -mismatch on a character that _is_ in the pattern. - -Requirements: - * Random access iterators - * The two iterator types (patIter and corpusIter) must - "point to" the same underlying type and be comparable. - * Additional requirements may be imposed but the skip table, such as: - ** Numeric type (array-based skip table) - ** Hashable type (map-based skip table) -*/ - - template > - class boyer_moore { - typedef typename std::iterator_traits::difference_type difference_type; - public: - boyer_moore ( patIter first, patIter last ) - : pat_first ( first ), pat_last ( last ), - k_pattern_length ( std::distance ( pat_first, pat_last )), - skip_ ( k_pattern_length, -1 ), - suffix_ ( k_pattern_length + 1 ) - { - this->build_skip_table ( first, last ); - this->build_suffix_table ( first, last ); - } - - ~boyer_moore () {} - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// - template - std::pair - operator () ( corpusIter corpus_first, corpusIter corpus_last ) const { - BOOST_STATIC_ASSERT (( boost::is_same< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type>::value )); - - if ( corpus_first == corpus_last ) return std::make_pair(corpus_last, corpus_last); // if nothing to search, we didn't find it! - if ( pat_first == pat_last ) return std::make_pair(corpus_first, corpus_first); // empty pattern matches at start - - const difference_type k_corpus_length = std::distance ( corpus_first, corpus_last ); - // If the pattern is larger than the corpus, we can't find it! - if ( k_corpus_length < k_pattern_length ) - return std::make_pair(corpus_last, corpus_last); - - // Do the search - return this->do_search ( corpus_first, corpus_last ); - } - - template - std::pair::type, typename boost::range_iterator::type> - operator () ( Range &r ) const { - return (*this) (boost::begin(r), boost::end(r)); - } - - private: -/// \cond DOXYGEN_HIDE - patIter pat_first, pat_last; - const difference_type k_pattern_length; - typename traits::skip_table_t skip_; - std::vector suffix_; - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - std::pair - do_search ( corpusIter corpus_first, corpusIter corpus_last ) const { - /* ---- Do the matching ---- */ - corpusIter curPos = corpus_first; - const corpusIter lastPos = corpus_last - k_pattern_length; - difference_type j, k, m; - - while ( curPos <= lastPos ) { - /* while ( std::distance ( curPos, corpus_last ) >= k_pattern_length ) { */ - // Do we match right where we are? - j = k_pattern_length; - while ( pat_first [j-1] == curPos [j-1] ) { - j--; - // We matched - we're done! - if ( j == 0 ) - return std::make_pair(curPos, curPos + k_pattern_length); - } - - // Since we didn't match, figure out how far to skip forward - k = skip_ [ curPos [ j - 1 ]]; - m = j - k - 1; - if ( k < j && m > suffix_ [ j ] ) - curPos += m; - else - curPos += suffix_ [ j ]; - } - - return std::make_pair(corpus_last, corpus_last); // We didn't find anything - } - - - void build_skip_table ( patIter first, patIter last ) { - for ( std::size_t i = 0; first != last; ++first, ++i ) - skip_.insert ( *first, i ); - } - - - template - void compute_bm_prefix ( Iter pat_first, Iter pat_last, Container &prefix ) { - const std::size_t count = std::distance ( pat_first, pat_last ); - BOOST_ASSERT ( count > 0 ); - BOOST_ASSERT ( prefix.size () == count ); - - prefix[0] = 0; - std::size_t k = 0; - for ( std::size_t i = 1; i < count; ++i ) { - BOOST_ASSERT ( k < count ); - while ( k > 0 && ( pat_first[k] != pat_first[i] )) { - BOOST_ASSERT ( k < count ); - k = prefix [ k - 1 ]; - } - - if ( pat_first[k] == pat_first[i] ) - k++; - prefix [ i ] = k; - } - } - - void build_suffix_table ( patIter pat_first, patIter pat_last ) { - const std::size_t count = (std::size_t) std::distance ( pat_first, pat_last ); - - if ( count > 0 ) { // empty pattern - std::vector::value_type> reversed(count); - (void) std::reverse_copy ( pat_first, pat_last, reversed.begin ()); - - std::vector prefix (count); - compute_bm_prefix ( pat_first, pat_last, prefix ); - - std::vector prefix_reversed (count); - compute_bm_prefix ( reversed.begin (), reversed.end (), prefix_reversed ); - - for ( std::size_t i = 0; i <= count; i++ ) - suffix_[i] = count - prefix [count-1]; - - for ( std::size_t i = 0; i < count; i++ ) { - const std::size_t j = count - prefix_reversed[i]; - const difference_type k = i - prefix_reversed[i] + 1; - - if (suffix_[j] > k) - suffix_[j] = k; - } - } - } -/// \endcond - }; - - -/* Two ranges as inputs gives us four possibilities; with 2,3,3,4 parameters - Use a bit of TMP to disambiguate the 3-argument templates */ - -/// \fn boyer_moore_search ( corpusIter corpus_first, corpusIter corpus_last, -/// patIter pat_first, patIter pat_last ) -/// \brief Searches the corpus for the pattern. -/// -/// \param corpus_first The start of the data to search (Random Access Iterator) -/// \param corpus_last One past the end of the data to search -/// \param pat_first The start of the pattern to search for (Random Access Iterator) -/// \param pat_last One past the end of the data to search for -/// - template - std::pair boyer_moore_search ( - corpusIter corpus_first, corpusIter corpus_last, - patIter pat_first, patIter pat_last ) - { - boyer_moore bm ( pat_first, pat_last ); - return bm ( corpus_first, corpus_last ); - } - - template - std::pair boyer_moore_search ( - corpusIter corpus_first, corpusIter corpus_last, const PatternRange &pattern ) - { - typedef typename boost::range_iterator::type pattern_iterator; - boyer_moore bm ( boost::begin(pattern), boost::end (pattern)); - return bm ( corpus_first, corpus_last ); - } - - template - typename boost::disable_if_c< - boost::is_same::value, - std::pair::type, typename boost::range_iterator::type> > - ::type - boyer_moore_search ( CorpusRange &corpus, patIter pat_first, patIter pat_last ) - { - boyer_moore bm ( pat_first, pat_last ); - return bm (boost::begin (corpus), boost::end (corpus)); - } - - template - std::pair::type, typename boost::range_iterator::type> - boyer_moore_search ( CorpusRange &corpus, const PatternRange &pattern ) - { - typedef typename boost::range_iterator::type pattern_iterator; - boyer_moore bm ( boost::begin(pattern), boost::end (pattern)); - return bm (boost::begin (corpus), boost::end (corpus)); - } - - - // Creator functions -- take a pattern range, return an object - template - boost::algorithm::boyer_moore::type> - make_boyer_moore ( const Range &r ) { - return boost::algorithm::boyer_moore - ::type> (boost::begin(r), boost::end(r)); - } - - template - boost::algorithm::boyer_moore::type> - make_boyer_moore ( Range &r ) { - return boost::algorithm::boyer_moore - ::type> (boost::begin(r), boost::end(r)); - } - -}} - -#endif // BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/searching/boyer_moore_horspool.hpp b/lib/3rdParty/boost/boost/algorithm/searching/boyer_moore_horspool.hpp deleted file mode 100644 index aacb5cb83..000000000 --- a/lib/3rdParty/boost/boost/algorithm/searching/boyer_moore_horspool.hpp +++ /dev/null @@ -1,202 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - 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) - - For more information, see http://www.boost.org -*/ - -#ifndef BOOST_ALGORITHM_BOYER_MOORE_HORSPOOOL_SEARCH_HPP -#define BOOST_ALGORITHM_BOYER_MOORE_HORSPOOOL_SEARCH_HPP - -#include // for std::iterator_traits - -#include -#include - -#include -#include - -#include -#include - -#include -#include - -// #define BOOST_ALGORITHM_BOYER_MOORE_HORSPOOL_DEBUG_HPP - -namespace boost { namespace algorithm { - -/* - A templated version of the boyer-moore-horspool searching algorithm. - - Requirements: - * Random access iterators - * The two iterator types (patIter and corpusIter) must - "point to" the same underlying type. - * Additional requirements may be imposed buy the skip table, such as: - ** Numeric type (array-based skip table) - ** Hashable type (map-based skip table) - -http://www-igm.univ-mlv.fr/%7Elecroq/string/node18.html - -*/ - - template > - class boyer_moore_horspool { - typedef typename std::iterator_traits::difference_type difference_type; - public: - boyer_moore_horspool ( patIter first, patIter last ) - : pat_first ( first ), pat_last ( last ), - k_pattern_length ( std::distance ( pat_first, pat_last )), - skip_ ( k_pattern_length, k_pattern_length ) { - - // Build the skip table - std::size_t i = 0; - if ( first != last ) // empty pattern? - for ( patIter iter = first; iter != last-1; ++iter, ++i ) - skip_.insert ( *iter, k_pattern_length - 1 - i ); -#ifdef BOOST_ALGORITHM_BOYER_MOORE_HORSPOOL_DEBUG_HPP - skip_.PrintSkipTable (); -#endif - } - - ~boyer_moore_horspool () {} - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// - template - std::pair - operator () ( corpusIter corpus_first, corpusIter corpus_last ) const { - BOOST_STATIC_ASSERT (( boost::is_same< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type>::value )); - - if ( corpus_first == corpus_last ) return std::make_pair(corpus_last, corpus_last); // if nothing to search, we didn't find it! - if ( pat_first == pat_last ) return std::make_pair(corpus_first, corpus_first); // empty pattern matches at start - - const difference_type k_corpus_length = std::distance ( corpus_first, corpus_last ); - // If the pattern is larger than the corpus, we can't find it! - if ( k_corpus_length < k_pattern_length ) - return std::make_pair(corpus_last, corpus_last); - - // Do the search - return this->do_search ( corpus_first, corpus_last ); - } - - template - std::pair::type, typename boost::range_iterator::type> - operator () ( Range &r ) const { - return (*this) (boost::begin(r), boost::end(r)); - } - - private: -/// \cond DOXYGEN_HIDE - patIter pat_first, pat_last; - const difference_type k_pattern_length; - typename traits::skip_table_t skip_; - - /// \fn do_search ( corpusIter corpus_first, corpusIter corpus_last ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param k_corpus_length The length of the corpus to search - /// - template - std::pair - do_search ( corpusIter corpus_first, corpusIter corpus_last ) const { - corpusIter curPos = corpus_first; - const corpusIter lastPos = corpus_last - k_pattern_length; - while ( curPos <= lastPos ) { - // Do we match right where we are? - std::size_t j = k_pattern_length - 1; - while ( pat_first [j] == curPos [j] ) { - // We matched - we're done! - if ( j == 0 ) - return std::make_pair(curPos, curPos + k_pattern_length); - j--; - } - - curPos += skip_ [ curPos [ k_pattern_length - 1 ]]; - } - - return std::make_pair(corpus_last, corpus_last); - } -// \endcond - }; - -/* Two ranges as inputs gives us four possibilities; with 2,3,3,4 parameters - Use a bit of TMP to disambiguate the 3-argument templates */ - -/// \fn boyer_moore_horspool_search ( corpusIter corpus_first, corpusIter corpus_last, -/// patIter pat_first, patIter pat_last ) -/// \brief Searches the corpus for the pattern. -/// -/// \param corpus_first The start of the data to search (Random Access Iterator) -/// \param corpus_last One past the end of the data to search -/// \param pat_first The start of the pattern to search for (Random Access Iterator) -/// \param pat_last One past the end of the data to search for -/// - template - std::pair boyer_moore_horspool_search ( - corpusIter corpus_first, corpusIter corpus_last, - patIter pat_first, patIter pat_last ) - { - boyer_moore_horspool bmh ( pat_first, pat_last ); - return bmh ( corpus_first, corpus_last ); - } - - template - std::pair boyer_moore_horspool_search ( - corpusIter corpus_first, corpusIter corpus_last, const PatternRange &pattern ) - { - typedef typename boost::range_iterator::type pattern_iterator; - boyer_moore_horspool bmh ( boost::begin(pattern), boost::end (pattern)); - return bmh ( corpus_first, corpus_last ); - } - - template - typename boost::disable_if_c< - boost::is_same::value, - std::pair::type, typename boost::range_iterator::type> > - ::type - boyer_moore_horspool_search ( CorpusRange &corpus, patIter pat_first, patIter pat_last ) - { - boyer_moore_horspool bmh ( pat_first, pat_last ); - return bm (boost::begin (corpus), boost::end (corpus)); - } - - template - std::pair::type, typename boost::range_iterator::type> - boyer_moore_horspool_search ( CorpusRange &corpus, const PatternRange &pattern ) - { - typedef typename boost::range_iterator::type pattern_iterator; - boyer_moore_horspool bmh ( boost::begin(pattern), boost::end (pattern)); - return bmh (boost::begin (corpus), boost::end (corpus)); - } - - - // Creator functions -- take a pattern range, return an object - template - boost::algorithm::boyer_moore_horspool::type> - make_boyer_moore_horspool ( const Range &r ) { - return boost::algorithm::boyer_moore_horspool - ::type> (boost::begin(r), boost::end(r)); - } - - template - boost::algorithm::boyer_moore_horspool::type> - make_boyer_moore_horspool ( Range &r ) { - return boost::algorithm::boyer_moore_horspool - ::type> (boost::begin(r), boost::end(r)); - } - -}} - -#endif // BOOST_ALGORITHM_BOYER_MOORE_HORSPOOOL_SEARCH_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/searching/detail/bm_traits.hpp b/lib/3rdParty/boost/boost/algorithm/searching/detail/bm_traits.hpp deleted file mode 100644 index 12143636b..000000000 --- a/lib/3rdParty/boost/boost/algorithm/searching/detail/bm_traits.hpp +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - 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) - - For more information, see http://www.boost.org -*/ - -#ifndef BOOST_ALGORITHM_SEARCH_DETAIL_BM_TRAITS_HPP -#define BOOST_ALGORITHM_SEARCH_DETAIL_BM_TRAITS_HPP - -#include // for CHAR_BIT -#include -#include // for std::iterator_traits - -#include -#include -#include -#include - -#include -#ifdef BOOST_NO_CXX11_HDR_UNORDERED_MAP -#include -#else -#include -#endif - -#include - -namespace boost { namespace algorithm { namespace detail { - -// -// Default implementations of the skip tables for B-M and B-M-H -// - template class skip_table; - -// General case for data searching other than bytes; use a map - template - class skip_table { - private: -#ifdef BOOST_NO_CXX11_HDR_UNORDERED_MAP - typedef boost::unordered_map skip_map; -#else - typedef std::unordered_map skip_map; -#endif - const value_type k_default_value; - skip_map skip_; - - public: - skip_table ( std::size_t patSize, value_type default_value ) - : k_default_value ( default_value ), skip_ ( patSize ) {} - - void insert ( key_type key, value_type val ) { - skip_ [ key ] = val; // Would skip_.insert (val) be better here? - } - - value_type operator [] ( key_type key ) const { - typename skip_map::const_iterator it = skip_.find ( key ); - return it == skip_.end () ? k_default_value : it->second; - } - - void PrintSkipTable () const { - std::cout << "BM(H) Skip Table :" << std::endl; - for ( typename skip_map::const_iterator it = skip_.begin (); it != skip_.end (); ++it ) - if ( it->second != k_default_value ) - std::cout << " " << it->first << ": " << it->second << std::endl; - std::cout << std::endl; - } - }; - - -// Special case small numeric values; use an array - template - class skip_table { - private: - typedef typename boost::make_unsigned::type unsigned_key_type; - typedef boost::array skip_map; - skip_map skip_; - const value_type k_default_value; - public: - skip_table ( std::size_t /*patSize*/, value_type default_value ) : k_default_value ( default_value ) { - std::fill_n ( skip_.begin(), skip_.size(), default_value ); - } - - void insert ( key_type key, value_type val ) { - skip_ [ static_cast ( key ) ] = val; - } - - value_type operator [] ( key_type key ) const { - return skip_ [ static_cast ( key ) ]; - } - - void PrintSkipTable () const { - std::cout << "BM(H) Skip Table :" << std::endl; - for ( typename skip_map::const_iterator it = skip_.begin (); it != skip_.end (); ++it ) - if ( *it != k_default_value ) - std::cout << " " << std::distance (skip_.begin (), it) << ": " << *it << std::endl; - std::cout << std::endl; - } - }; - - template - struct BM_traits { - typedef typename std::iterator_traits::difference_type value_type; - typedef typename std::iterator_traits::value_type key_type; - typedef boost::algorithm::detail::skip_table::value && (sizeof(key_type)==1)> skip_table_t; - }; - -}}} // namespaces - -#endif // BOOST_ALGORITHM_SEARCH_DETAIL_BM_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/searching/detail/debugging.hpp b/lib/3rdParty/boost/boost/algorithm/searching/detail/debugging.hpp deleted file mode 100644 index 3996e0f50..000000000 --- a/lib/3rdParty/boost/boost/algorithm/searching/detail/debugging.hpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - 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) - - For more information, see http://www.boost.org -*/ - -#ifndef BOOST_ALGORITHM_SEARCH_DETAIL_DEBUG_HPP -#define BOOST_ALGORITHM_SEARCH_DETAIL_DEBUG_HPP - -#include -/// \cond DOXYGEN_HIDE - -namespace boost { namespace algorithm { namespace detail { - -// Debugging support - template - void PrintTable ( Iter first, Iter last ) { - std::cout << std::distance ( first, last ) << ": { "; - for ( Iter iter = first; iter != last; ++iter ) - std::cout << *iter << " "; - std::cout << "}" << std::endl; - } - -}}} -/// \endcond - -#endif // BOOST_ALGORITHM_SEARCH_DETAIL_DEBUG_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/searching/knuth_morris_pratt.hpp b/lib/3rdParty/boost/boost/algorithm/searching/knuth_morris_pratt.hpp deleted file mode 100644 index c890c9cac..000000000 --- a/lib/3rdParty/boost/boost/algorithm/searching/knuth_morris_pratt.hpp +++ /dev/null @@ -1,263 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - 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) - - For more information, see http://www.boost.org -*/ - -#ifndef BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_SEARCH_HPP -#define BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_SEARCH_HPP - -#include -#include // for std::iterator_traits - -#include -#include - -#include -#include - -#include -#include - -#include - -// #define BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_DEBUG - -namespace boost { namespace algorithm { - -// #define NEW_KMP - -/* - A templated version of the Knuth-Morris-Pratt searching algorithm. - - Requirements: - * Random-access iterators - * The two iterator types (I1 and I2) must "point to" the same underlying type. - - http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm - http://www.inf.fh-flensburg.de/lang/algorithmen/pattern/kmpen.htm -*/ - - template - class knuth_morris_pratt { - typedef typename std::iterator_traits::difference_type difference_type; - public: - knuth_morris_pratt ( patIter first, patIter last ) - : pat_first ( first ), pat_last ( last ), - k_pattern_length ( std::distance ( pat_first, pat_last )), - skip_ ( k_pattern_length + 1 ) { -#ifdef NEW_KMP - preKmp ( pat_first, pat_last ); -#else - init_skip_table ( pat_first, pat_last ); -#endif -#ifdef BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_DEBUG - detail::PrintTable ( skip_.begin (), skip_.end ()); -#endif - } - - ~knuth_morris_pratt () {} - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - std::pair - operator () ( corpusIter corpus_first, corpusIter corpus_last ) const { - BOOST_STATIC_ASSERT (( boost::is_same< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type>::value )); - - if ( corpus_first == corpus_last ) return std::make_pair(corpus_last, corpus_last); // if nothing to search, we didn't find it! - if ( pat_first == pat_last ) return std::make_pair(corpus_first, corpus_first); // empty pattern matches at start - - const difference_type k_corpus_length = std::distance ( corpus_first, corpus_last ); - // If the pattern is larger than the corpus, we can't find it! - if ( k_corpus_length < k_pattern_length ) - return std::make_pair(corpus_last, corpus_last); - - return do_search ( corpus_first, corpus_last, k_corpus_length ); - } - - template - std::pair::type, typename boost::range_iterator::type> - operator () ( Range &r ) const { - return (*this) (boost::begin(r), boost::end(r)); - } - - private: -/// \cond DOXYGEN_HIDE - patIter pat_first, pat_last; - const difference_type k_pattern_length; - std::vector skip_; - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - std::pair - do_search ( corpusIter corpus_first, corpusIter corpus_last, - difference_type k_corpus_length ) const { - difference_type match_start = 0; // position in the corpus that we're matching - -#ifdef NEW_KMP - int patternIdx = 0; - while ( match_start < k_corpus_length ) { - while ( patternIdx > -1 && pat_first[patternIdx] != corpus_first [match_start] ) - patternIdx = skip_ [patternIdx]; //<--- Shifting the pattern on mismatch - - patternIdx++; - match_start++; //<--- corpus is always increased by 1 - - if ( patternIdx >= (int) k_pattern_length ) - return corpus_first + match_start - patternIdx; - } - -#else -// At this point, we know: -// k_pattern_length <= k_corpus_length -// for all elements of skip, it holds -1 .. k_pattern_length -// -// In the loop, we have the following invariants -// idx is in the range 0 .. k_pattern_length -// match_start is in the range 0 .. k_corpus_length - k_pattern_length + 1 - - const difference_type last_match = k_corpus_length - k_pattern_length; - difference_type idx = 0; // position in the pattern we're comparing - - while ( match_start <= last_match ) { - while ( pat_first [ idx ] == corpus_first [ match_start + idx ] ) { - if ( ++idx == k_pattern_length ) - return std::make_pair(corpus_first + match_start, corpus_first + match_start + k_pattern_length); - } - // Figure out where to start searching again - // assert ( idx - skip_ [ idx ] > 0 ); // we're always moving forward - match_start += idx - skip_ [ idx ]; - idx = skip_ [ idx ] >= 0 ? skip_ [ idx ] : 0; - // assert ( idx >= 0 && idx < k_pattern_length ); - } -#endif - - // We didn't find anything - return std::make_pair(corpus_last, corpus_last); - } - - - void preKmp ( patIter first, patIter last ) { - const /*std::size_t*/ int count = std::distance ( first, last ); - - int i, j; - - i = 0; - j = skip_[0] = -1; - while (i < count) { - while (j > -1 && first[i] != first[j]) - j = skip_[j]; - i++; - j++; - if (first[i] == first[j]) - skip_[i] = skip_[j]; - else - skip_[i] = j; - } - } - - - void init_skip_table ( patIter first, patIter last ) { - const difference_type count = std::distance ( first, last ); - - int j; - skip_ [ 0 ] = -1; - for ( int i = 1; i <= count; ++i ) { - j = skip_ [ i - 1 ]; - while ( j >= 0 ) { - if ( first [ j ] == first [ i - 1 ] ) - break; - j = skip_ [ j ]; - } - skip_ [ i ] = j + 1; - } - } -// \endcond - }; - - -/* Two ranges as inputs gives us four possibilities; with 2,3,3,4 parameters - Use a bit of TMP to disambiguate the 3-argument templates */ - -/// \fn knuth_morris_pratt_search ( corpusIter corpus_first, corpusIter corpus_last, -/// patIter pat_first, patIter pat_last ) -/// \brief Searches the corpus for the pattern. -/// -/// \param corpus_first The start of the data to search (Random Access Iterator) -/// \param corpus_last One past the end of the data to search -/// \param pat_first The start of the pattern to search for (Random Access Iterator) -/// \param pat_last One past the end of the data to search for -/// - template - std::pair knuth_morris_pratt_search ( - corpusIter corpus_first, corpusIter corpus_last, - patIter pat_first, patIter pat_last ) - { - knuth_morris_pratt kmp ( pat_first, pat_last ); - return kmp ( corpus_first, corpus_last ); - } - - template - std::pair knuth_morris_pratt_search ( - corpusIter corpus_first, corpusIter corpus_last, const PatternRange &pattern ) - { - typedef typename boost::range_iterator::type pattern_iterator; - knuth_morris_pratt kmp ( boost::begin(pattern), boost::end (pattern)); - return kmp ( corpus_first, corpus_last ); - } - - template - typename boost::disable_if_c< - boost::is_same::value, - std::pair::type, typename boost::range_iterator::type> > - ::type - knuth_morris_pratt_search ( CorpusRange &corpus, patIter pat_first, patIter pat_last ) - { - knuth_morris_pratt kmp ( pat_first, pat_last ); - return kmp (boost::begin (corpus), boost::end (corpus)); - } - - template - std::pair::type, typename boost::range_iterator::type> - knuth_morris_pratt_search ( CorpusRange &corpus, const PatternRange &pattern ) - { - typedef typename boost::range_iterator::type pattern_iterator; - knuth_morris_pratt kmp ( boost::begin(pattern), boost::end (pattern)); - return kmp (boost::begin (corpus), boost::end (corpus)); - } - - - // Creator functions -- take a pattern range, return an object - template - boost::algorithm::knuth_morris_pratt::type> - make_knuth_morris_pratt ( const Range &r ) { - return boost::algorithm::knuth_morris_pratt - ::type> (boost::begin(r), boost::end(r)); - } - - template - boost::algorithm::knuth_morris_pratt::type> - make_knuth_morris_pratt ( Range &r ) { - return boost::algorithm::knuth_morris_pratt - ::type> (boost::begin(r), boost::end(r)); - } -}} - -#endif // BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_SEARCH_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/sort_subrange.hpp b/lib/3rdParty/boost/boost/algorithm/sort_subrange.hpp deleted file mode 100644 index 7fb2cb55d..000000000 --- a/lib/3rdParty/boost/boost/algorithm/sort_subrange.hpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - 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) - - Revision history: - 28 Sep 2015 mtc First version - -*/ - -/// \file sort_subrange.hpp -/// \brief Sort a subrange -/// \author Marshall Clow -/// -/// Suggested by Sean Parent in his CppCon 2015 keynote - -#ifndef BOOST_ALGORITHM_SORT_SUBRANGE_HPP -#define BOOST_ALGORITHM_SORT_SUBRANGE_HPP - -#include // For std::less -#include // For std::iterator_traits -#include // For nth_element and partial_sort - -#include -#include - -namespace boost { namespace algorithm { - -/// \fn sort_subrange ( T const& val, -/// Iterator first, Iterator last, -/// Iterator sub_first, Iterator sub_last, -/// Pred p ) -/// \brief Sort the subrange [sub_first, sub_last) that is inside -/// the range [first, last) as if you had sorted the entire range. -/// -/// \param first The start of the larger range -/// \param last The end of the larger range -/// \param sub_first The start of the sub range -/// \param sub_last The end of the sub range -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. -/// - template - void sort_subrange ( - Iterator first, Iterator last, - Iterator sub_first, Iterator sub_last, - Pred p) - { - if (sub_first == sub_last) return; // the empty sub-range is already sorted. - - if (sub_first != first) { // sub-range is at the start, don't need to partition - (void) std::nth_element(first, sub_first, last, p); - ++sub_first; - } - std::partial_sort(sub_first, sub_last, last, p); - } - - - - template - void sort_subrange (Iterator first, Iterator last, Iterator sub_first, Iterator sub_last) - { - typedef typename std::iterator_traits::value_type value_type; - return sort_subrange(first, last, sub_first, sub_last, std::less()); - } - -/// range versions? - - -/// \fn partition_subrange ( T const& val, -/// Iterator first, Iterator last, -/// Iterator sub_first, Iterator sub_last, -/// Pred p ) -/// \brief Gather the elements of the subrange [sub_first, sub_last) that is -/// inside the range [first, last) as if you had sorted the entire range. -/// -/// \param first The start of the larger range -/// \param last The end of the larger range -/// \param sub_first The start of the sub range -/// \param sub_last The end of the sub range -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. -/// - template - void partition_subrange ( - Iterator first, Iterator last, - Iterator sub_first, Iterator sub_last, - Pred p) - { - if (sub_first != first) { - (void) std::nth_element(first, sub_first, last, p); - ++sub_first; - } - - if (sub_last != last) - (void) std::nth_element(sub_first, sub_last, last, p); - } - - template - void partition_subrange (Iterator first, Iterator last, Iterator sub_first, Iterator sub_last) - { - typedef typename std::iterator_traits::value_type value_type; - return partition_subrange(first, last, sub_first, sub_last, std::less()); - } - -}} - -#endif // BOOST_ALGORITHM_SORT_SUBRANGE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string.hpp b/lib/3rdParty/boost/boost/algorithm/string.hpp deleted file mode 100644 index 077151739..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Boost string_algo library string_algo.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2004. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_ALGO_HPP -#define BOOST_STRING_ALGO_HPP - -/*! \file - Cumulative include for string_algo library -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#endif // BOOST_STRING_ALGO_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/case_conv.hpp b/lib/3rdParty/boost/boost/algorithm/string/case_conv.hpp deleted file mode 100644 index 683340b8e..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/case_conv.hpp +++ /dev/null @@ -1,176 +0,0 @@ -// Boost string_algo library case_conv.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CASE_CONV_HPP -#define BOOST_STRING_CASE_CONV_HPP - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -/*! \file - Defines sequence case-conversion algorithms. - Algorithms convert each element in the input sequence to the - desired case using provided locales. -*/ - -namespace boost { - namespace algorithm { - -// to_lower -----------------------------------------------// - - //! Convert to lower case - /*! - Each element of the input sequence is converted to lower - case. The result is a copy of the input converted to lower case. - It is returned as a sequence or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param Loc A locale used for conversion - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - - */ - template - inline OutputIteratorT - to_lower_copy( - OutputIteratorT Output, - const RangeT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Output, - ::boost::as_literal(Input), - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)); - } - - //! Convert to lower case - /*! - \overload - */ - template - inline SequenceT to_lower_copy( - const SequenceT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Input, - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)); - } - - //! Convert to lower case - /*! - Each element of the input sequence is converted to lower - case. The input sequence is modified in-place. - - \param Input A range - \param Loc a locale used for conversion - */ - template - inline void to_lower( - WritableRangeT& Input, - const std::locale& Loc=std::locale()) - { - ::boost::algorithm::detail::transform_range( - ::boost::as_literal(Input), - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)); - } - -// to_upper -----------------------------------------------// - - //! Convert to upper case - /*! - Each element of the input sequence is converted to upper - case. The result is a copy of the input converted to upper case. - It is returned as a sequence or copied to the output iterator - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param Loc A locale used for conversion - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT - to_upper_copy( - OutputIteratorT Output, - const RangeT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Output, - ::boost::as_literal(Input), - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)); - } - - //! Convert to upper case - /*! - \overload - */ - template - inline SequenceT to_upper_copy( - const SequenceT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Input, - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)); - } - - //! Convert to upper case - /*! - Each element of the input sequence is converted to upper - case. The input sequence is modified in-place. - - \param Input An input range - \param Loc a locale used for conversion - */ - template - inline void to_upper( - WritableRangeT& Input, - const std::locale& Loc=std::locale()) - { - ::boost::algorithm::detail::transform_range( - ::boost::as_literal(Input), - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::to_lower; - using algorithm::to_lower_copy; - using algorithm::to_upper; - using algorithm::to_upper_copy; - -} // namespace boost - -#endif // BOOST_STRING_CASE_CONV_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/classification.hpp b/lib/3rdParty/boost/boost/algorithm/string/classification.hpp deleted file mode 100644 index ca43602d4..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/classification.hpp +++ /dev/null @@ -1,312 +0,0 @@ -// Boost string_algo library classification.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CLASSIFICATION_HPP -#define BOOST_STRING_CLASSIFICATION_HPP - -#include -#include -#include -#include -#include -#include - - -/*! \file - Classification predicates are included in the library to give - some more convenience when using algorithms like \c trim() and \c all(). - They wrap functionality of STL classification functions ( e.g. \c std::isspace() ) - into generic functors. -*/ - -namespace boost { - namespace algorithm { - -// classification functor generator -------------------------------------// - - //! is_classified predicate - /*! - Construct the \c is_classified predicate. This predicate holds if the input is - of specified \c std::ctype category. - - \param Type A \c std::ctype category - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_classified(std::ctype_base::mask Type, const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(Type, Loc); - } - - //! is_space predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::space category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_space(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::space, Loc); - } - - //! is_alnum predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::alnum category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_alnum(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::alnum, Loc); - } - - //! is_alpha predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::alpha category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_alpha(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::alpha, Loc); - } - - //! is_cntrl predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::cntrl category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_cntrl(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::cntrl, Loc); - } - - //! is_digit predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::digit category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_digit(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::digit, Loc); - } - - //! is_graph predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::graph category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_graph(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::graph, Loc); - } - - //! is_lower predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::lower category. - - \param Loc A locale used for classification - \return An instance of \c is_classified predicate - */ - inline detail::is_classifiedF - is_lower(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::lower, Loc); - } - - //! is_print predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::print category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_print(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::print, Loc); - } - - //! is_punct predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::punct category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_punct(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::punct, Loc); - } - - //! is_upper predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::upper category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_upper(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::upper, Loc); - } - - //! is_xdigit predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::xdigit category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_xdigit(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::xdigit, Loc); - } - - //! is_any_of predicate - /*! - Construct the \c is_any_of predicate. The predicate holds if the input - is included in the specified set of characters. - - \param Set A set of characters to be recognized - \return An instance of the \c is_any_of predicate - */ - template - inline detail::is_any_ofF< - BOOST_STRING_TYPENAME range_value::type> - is_any_of( const RangeT& Set ) - { - iterator_range::type> lit_set(boost::as_literal(Set)); - return detail::is_any_ofF::type>(lit_set); - } - - //! is_from_range predicate - /*! - Construct the \c is_from_range predicate. The predicate holds if the input - is included in the specified range. (i.e. From <= Ch <= To ) - - \param From The start of the range - \param To The end of the range - \return An instance of the \c is_from_range predicate - */ - template - inline detail::is_from_rangeF is_from_range(CharT From, CharT To) - { - return detail::is_from_rangeF(From,To); - } - - // predicate combinators ---------------------------------------------------// - - //! predicate 'and' composition predicate - /*! - Construct the \c class_and predicate. This predicate can be used - to logically combine two classification predicates. \c class_and holds, - if both predicates return true. - - \param Pred1 The first predicate - \param Pred2 The second predicate - \return An instance of the \c class_and predicate - */ - template - inline detail::pred_andF - operator&&( - const predicate_facade& Pred1, - const predicate_facade& Pred2 ) - { - // Doing the static_cast with the pointer instead of the reference - // is a workaround for some compilers which have problems with - // static_cast's of template references, i.e. CW8. /grafik/ - return detail::pred_andF( - *static_cast(&Pred1), - *static_cast(&Pred2) ); - } - - //! predicate 'or' composition predicate - /*! - Construct the \c class_or predicate. This predicate can be used - to logically combine two classification predicates. \c class_or holds, - if one of the predicates return true. - - \param Pred1 The first predicate - \param Pred2 The second predicate - \return An instance of the \c class_or predicate - */ - template - inline detail::pred_orF - operator||( - const predicate_facade& Pred1, - const predicate_facade& Pred2 ) - { - // Doing the static_cast with the pointer instead of the reference - // is a workaround for some compilers which have problems with - // static_cast's of template references, i.e. CW8. /grafik/ - return detail::pred_orF( - *static_cast(&Pred1), - *static_cast(&Pred2)); - } - - //! predicate negation operator - /*! - Construct the \c class_not predicate. This predicate represents a negation. - \c class_or holds if of the predicates return false. - - \param Pred The predicate to be negated - \return An instance of the \c class_not predicate - */ - template - inline detail::pred_notF - operator!( const predicate_facade& Pred ) - { - // Doing the static_cast with the pointer instead of the reference - // is a workaround for some compilers which have problems with - // static_cast's of template references, i.e. CW8. /grafik/ - return detail::pred_notF(*static_cast(&Pred)); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::is_classified; - using algorithm::is_space; - using algorithm::is_alnum; - using algorithm::is_alpha; - using algorithm::is_cntrl; - using algorithm::is_digit; - using algorithm::is_graph; - using algorithm::is_lower; - using algorithm::is_upper; - using algorithm::is_print; - using algorithm::is_punct; - using algorithm::is_xdigit; - using algorithm::is_any_of; - using algorithm::is_from_range; - -} // namespace boost - -#endif // BOOST_STRING_PREDICATE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/compare.hpp b/lib/3rdParty/boost/boost/algorithm/string/compare.hpp deleted file mode 100644 index 734303a9a..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/compare.hpp +++ /dev/null @@ -1,199 +0,0 @@ -// Boost string_algo library compare.hpp header file -------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_COMPARE_HPP -#define BOOST_STRING_COMPARE_HPP - -#include -#include - -/*! \file - Defines element comparison predicates. Many algorithms in this library can - take an additional argument with a predicate used to compare elements. - This makes it possible, for instance, to have case insensitive versions - of the algorithms. -*/ - -namespace boost { - namespace algorithm { - - // is_equal functor -----------------------------------------------// - - //! is_equal functor - /*! - Standard STL equal_to only handle comparison between arguments - of the same type. This is a less restrictive version which wraps operator ==. - */ - struct is_equal - { - //! Function operator - /*! - Compare two operands for equality - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - return Arg1==Arg2; - } - }; - - //! case insensitive version of is_equal - /*! - Case insensitive comparison predicate. Comparison is done using - specified locales. - */ - struct is_iequal - { - //! Constructor - /*! - \param Loc locales used for comparison - */ - is_iequal( const std::locale& Loc=std::locale() ) : - m_Loc( Loc ) {} - - //! Function operator - /*! - Compare two operands. Case is ignored. - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper(Arg1)==std::toupper(Arg2); - #else - return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc); - #endif - } - - private: - std::locale m_Loc; - }; - - // is_less functor -----------------------------------------------// - - //! is_less functor - /*! - Convenient version of standard std::less. Operation is templated, therefore it is - not required to specify the exact types upon the construction - */ - struct is_less - { - //! Functor operation - /*! - Compare two operands using > operator - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - return Arg1 - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper(Arg1)(Arg1,m_Loc)(Arg2,m_Loc); - #endif - } - - private: - std::locale m_Loc; - }; - - // is_not_greater functor -----------------------------------------------// - - //! is_not_greater functor - /*! - Convenient version of standard std::not_greater_to. Operation is templated, therefore it is - not required to specify the exact types upon the construction - */ - struct is_not_greater - { - //! Functor operation - /*! - Compare two operands using > operator - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - return Arg1<=Arg2; - } - }; - - - //! case insensitive version of is_not_greater - /*! - Case insensitive comparison predicate. Comparison is done using - specified locales. - */ - struct is_not_igreater - { - //! Constructor - /*! - \param Loc locales used for comparison - */ - is_not_igreater( const std::locale& Loc=std::locale() ) : - m_Loc( Loc ) {} - - //! Function operator - /*! - Compare two operands. Case is ignored. - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper(Arg1)<=std::toupper(Arg2); - #else - return std::toupper(Arg1,m_Loc)<=std::toupper(Arg2,m_Loc); - #endif - } - - private: - std::locale m_Loc; - }; - - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::is_equal; - using algorithm::is_iequal; - using algorithm::is_less; - using algorithm::is_iless; - using algorithm::is_not_greater; - using algorithm::is_not_igreater; - -} // namespace boost - - -#endif // BOOST_STRING_COMPARE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/concept.hpp b/lib/3rdParty/boost/boost/algorithm/string/concept.hpp deleted file mode 100644 index 17e834959..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/concept.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// Boost string_algo library concept.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CONCEPT_HPP -#define BOOST_STRING_CONCEPT_HPP - -#include -#include -#include -#include - -/*! \file - Defines concepts used in string_algo library -*/ - -namespace boost { - namespace algorithm { - - //! Finder concept - /*! - Defines the Finder concept. Finder is a functor which selects - an arbitrary part of a string. Search is performed on - the range specified by starting and ending iterators. - - Result of the find operation must be convertible to iterator_range. - */ - template - struct FinderConcept - { - private: - typedef iterator_range range; - public: - void constraints() - { - // Operation - r=(*pF)(i,i); - } - private: - range r; - IteratorT i; - FinderT* pF; - }; // Finder_concept - - - //! Formatter concept - /*! - Defines the Formatter concept. Formatter is a functor, which - takes a result from a finder operation and transforms it - in a specific way. - - Result must be a container supported by container_traits, - or a reference to it. - */ - template - struct FormatterConcept - { - public: - void constraints() - { - // Operation - ::boost::begin((*pFo)( (*pF)(i,i) )); - ::boost::end((*pFo)( (*pF)(i,i) )); - } - private: - IteratorT i; - FinderT* pF; - FormatterT *pFo; - }; // FormatterConcept; - - } // namespace algorithm -} // namespace boost - - - - -#endif // BOOST_STRING_CONCEPT_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/config.hpp b/lib/3rdParty/boost/boost/algorithm/string/config.hpp deleted file mode 100644 index 559750ac8..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/config.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Boost string_algo library config.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CONFIG_HPP -#define BOOST_STRING_CONFIG_HPP - -#include -#include - -#ifdef BOOST_STRING_DEDUCED_TYPENAME -# error "macro already defined!" -#endif - -#define BOOST_STRING_TYPENAME BOOST_DEDUCED_TYPENAME - -// Metrowerks workaround -#if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x -#pragma parse_func_templ off -#endif - -#endif // BOOST_STRING_CONFIG_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/constants.hpp b/lib/3rdParty/boost/boost/algorithm/string/constants.hpp deleted file mode 100644 index 6ed70effc..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/constants.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Boost string_algo library constants.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CONSTANTS_HPP -#define BOOST_STRING_CONSTANTS_HPP - -namespace boost { - namespace algorithm { - - //! Token compression mode - /*! - Specifies token compression mode for the token_finder. - */ - enum token_compress_mode_type - { - token_compress_on, //!< Compress adjacent tokens - token_compress_off //!< Do not compress adjacent tokens - }; - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::token_compress_on; - using algorithm::token_compress_off; - -} // namespace boost - -#endif // BOOST_STRING_CONSTANTS_HPP - diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/case_conv.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/case_conv.hpp deleted file mode 100644 index 42621c74f..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/case_conv.hpp +++ /dev/null @@ -1,123 +0,0 @@ -// Boost string_algo library string_funct.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP -#define BOOST_STRING_CASE_CONV_DETAIL_HPP - -#include -#include -#include - -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// case conversion functors -----------------------------------------------// - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(push) -#pragma warning(disable:4512) //assignment operator could not be generated -#endif - - // a tolower functor - template - struct to_lowerF : public std::unary_function - { - // Constructor - to_lowerF( const std::locale& Loc ) : m_Loc( &Loc ) {} - - // Operation - CharT operator ()( CharT Ch ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::tolower( static_cast::type> ( Ch )); - #else - return std::tolower( Ch, *m_Loc ); - #endif - } - private: - const std::locale* m_Loc; - }; - - // a toupper functor - template - struct to_upperF : public std::unary_function - { - // Constructor - to_upperF( const std::locale& Loc ) : m_Loc( &Loc ) {} - - // Operation - CharT operator ()( CharT Ch ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper( static_cast::type> ( Ch )); - #else - return std::toupper( Ch, *m_Loc ); - #endif - } - private: - const std::locale* m_Loc; - }; - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(pop) -#endif - -// algorithm implementation ------------------------------------------------------------------------- - - // Transform a range - template - OutputIteratorT transform_range_copy( - OutputIteratorT Output, - const RangeT& Input, - FunctorT Functor) - { - return std::transform( - ::boost::begin(Input), - ::boost::end(Input), - Output, - Functor); - } - - // Transform a range (in-place) - template - void transform_range( - const RangeT& Input, - FunctorT Functor) - { - std::transform( - ::boost::begin(Input), - ::boost::end(Input), - ::boost::begin(Input), - Functor); - } - - template - inline SequenceT transform_range_copy( - const RangeT& Input, - FunctorT Functor) - { - return SequenceT( - ::boost::make_transform_iterator( - ::boost::begin(Input), - Functor), - ::boost::make_transform_iterator( - ::boost::end(Input), - Functor)); - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/classification.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/classification.hpp deleted file mode 100644 index 704d9d20f..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/classification.hpp +++ /dev/null @@ -1,353 +0,0 @@ -// Boost string_algo library classification.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_CLASSIFICATION_DETAIL_HPP -#define BOOST_STRING_CLASSIFICATION_DETAIL_HPP - -#include -#include -#include -#include - -#include -#include - -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// classification functors -----------------------------------------------// - - // is_classified functor - struct is_classifiedF : - public predicate_facade - { - // Boost.ResultOf support - typedef bool result_type; - - // Constructor from a locale - is_classifiedF(std::ctype_base::mask Type, std::locale const & Loc = std::locale()) : - m_Type(Type), m_Locale(Loc) {} - // Operation - template - bool operator()( CharT Ch ) const - { - return std::use_facet< std::ctype >(m_Locale).is( m_Type, Ch ); - } - - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x582) && !defined(_USE_OLD_RW_STL) - template<> - bool operator()( char const Ch ) const - { - return std::use_facet< std::ctype >(m_Locale).is( m_Type, Ch ); - } - #endif - - private: - std::ctype_base::mask m_Type; - std::locale m_Locale; - }; - - - // is_any_of functor - /* - returns true if the value is from the specified set - */ - template - struct is_any_ofF : - public predicate_facade > - { - private: - // set cannot operate on const value-type - typedef typename ::boost::remove_const::type set_value_type; - - public: - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - template - is_any_ofF( const RangeT& Range ) : m_Size(0) - { - // Prepare storage - m_Storage.m_dynSet=0; - - std::size_t Size=::boost::distance(Range); - m_Size=Size; - set_value_type* Storage=0; - - if(use_fixed_storage(m_Size)) - { - // Use fixed storage - Storage=&m_Storage.m_fixSet[0]; - } - else - { - // Use dynamic storage - m_Storage.m_dynSet=new set_value_type[m_Size]; - Storage=m_Storage.m_dynSet; - } - - // Use fixed storage - ::std::copy(::boost::begin(Range), ::boost::end(Range), Storage); - ::std::sort(Storage, Storage+m_Size); - } - - // Copy constructor - is_any_ofF(const is_any_ofF& Other) : m_Size(Other.m_Size) - { - // Prepare storage - m_Storage.m_dynSet=0; - const set_value_type* SrcStorage=0; - set_value_type* DestStorage=0; - - if(use_fixed_storage(m_Size)) - { - // Use fixed storage - DestStorage=&m_Storage.m_fixSet[0]; - SrcStorage=&Other.m_Storage.m_fixSet[0]; - } - else - { - // Use dynamic storage - m_Storage.m_dynSet=new set_value_type[m_Size]; - DestStorage=m_Storage.m_dynSet; - SrcStorage=Other.m_Storage.m_dynSet; - } - - // Use fixed storage - ::std::memcpy(DestStorage, SrcStorage, sizeof(set_value_type)*m_Size); - } - - // Destructor - ~is_any_ofF() - { - if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0) - { - delete [] m_Storage.m_dynSet; - } - } - - // Assignment - is_any_ofF& operator=(const is_any_ofF& Other) - { - // Handle self assignment - if(this==&Other) return *this; - - // Prepare storage - const set_value_type* SrcStorage; - set_value_type* DestStorage; - - if(use_fixed_storage(Other.m_Size)) - { - // Use fixed storage - DestStorage=&m_Storage.m_fixSet[0]; - SrcStorage=&Other.m_Storage.m_fixSet[0]; - - // Delete old storage if was present - if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0) - { - delete [] m_Storage.m_dynSet; - } - - // Set new size - m_Size=Other.m_Size; - } - else - { - // Other uses dynamic storage - SrcStorage=Other.m_Storage.m_dynSet; - - // Check what kind of storage are we using right now - if(use_fixed_storage(m_Size)) - { - // Using fixed storage, allocate new - set_value_type* pTemp=new set_value_type[Other.m_Size]; - DestStorage=pTemp; - m_Storage.m_dynSet=pTemp; - m_Size=Other.m_Size; - } - else - { - // Using dynamic storage, check if can reuse - if(m_Storage.m_dynSet!=0 && m_Size>=Other.m_Size && m_Size - bool operator()( Char2T Ch ) const - { - const set_value_type* Storage= - (use_fixed_storage(m_Size)) - ? &m_Storage.m_fixSet[0] - : m_Storage.m_dynSet; - - return ::std::binary_search(Storage, Storage+m_Size, Ch); - } - private: - // check if the size is eligible for fixed storage - static bool use_fixed_storage(std::size_t size) - { - return size<=sizeof(set_value_type*)*2; - } - - - private: - // storage - // The actual used storage is selected on the type - union - { - set_value_type* m_dynSet; - set_value_type m_fixSet[sizeof(set_value_type*)*2]; - } - m_Storage; - - // storage size - ::std::size_t m_Size; - }; - - // is_from_range functor - /* - returns true if the value is from the specified range. - (i.e. x>=From && x>=To) - */ - template - struct is_from_rangeF : - public predicate_facade< is_from_rangeF > - { - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - is_from_rangeF( CharT From, CharT To ) : m_From(From), m_To(To) {} - - // Operation - template - bool operator()( Char2T Ch ) const - { - return ( m_From <= Ch ) && ( Ch <= m_To ); - } - - private: - CharT m_From; - CharT m_To; - }; - - // class_and composition predicate - template - struct pred_andF : - public predicate_facade< pred_andF > - { - public: - - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - pred_andF( Pred1T Pred1, Pred2T Pred2 ) : - m_Pred1(Pred1), m_Pred2(Pred2) {} - - // Operation - template - bool operator()( CharT Ch ) const - { - return m_Pred1(Ch) && m_Pred2(Ch); - } - - private: - Pred1T m_Pred1; - Pred2T m_Pred2; - }; - - // class_or composition predicate - template - struct pred_orF : - public predicate_facade< pred_orF > - { - public: - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - pred_orF( Pred1T Pred1, Pred2T Pred2 ) : - m_Pred1(Pred1), m_Pred2(Pred2) {} - - // Operation - template - bool operator()( CharT Ch ) const - { - return m_Pred1(Ch) || m_Pred2(Ch); - } - - private: - Pred1T m_Pred1; - Pred2T m_Pred2; - }; - - // class_not composition predicate - template< typename PredT > - struct pred_notF : - public predicate_facade< pred_notF > - { - public: - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - pred_notF( PredT Pred ) : m_Pred(Pred) {} - - // Operation - template - bool operator()( CharT Ch ) const - { - return !m_Pred(Ch); - } - - private: - PredT m_Pred; - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_CLASSIFICATION_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/find_format.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/find_format.hpp deleted file mode 100644 index b39875024..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/find_format.hpp +++ /dev/null @@ -1,204 +0,0 @@ -// Boost string_algo library find_format.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP -#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP - -#include -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// find_format_copy (iterator variant) implementation -------------------------------// - - template< - typename OutputIteratorT, - typename InputT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline OutputIteratorT find_format_copy_impl2( - OutputIteratorT Output, - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult ) - { - typedef find_format_store< - BOOST_STRING_TYPENAME - range_const_iterator::type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - if ( !M ) - { - // Match not found - return original sequence - Output = std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); - return Output; - } - - // Copy the beginning of the sequence - Output = std::copy( ::boost::begin(Input), ::boost::begin(M), Output ); - // Format find result - // Copy formatted result - Output = std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output ); - // Copy the rest of the sequence - Output = std::copy( M.end(), ::boost::end(Input), Output ); - - return Output; - } - - template< - typename OutputIteratorT, - typename InputT, - typename FormatterT, - typename FindResultT > - inline OutputIteratorT find_format_copy_impl( - OutputIteratorT Output, - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult ) - { - if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::boost::algorithm::detail::find_format_copy_impl2( - Output, - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); - } - } - - -// find_format_copy implementation --------------------------------------------------// - - template< - typename InputT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline InputT find_format_copy_impl2( - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult) - { - typedef find_format_store< - BOOST_STRING_TYPENAME - range_const_iterator::type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - if ( !M ) - { - // Match not found - return original sequence - return InputT( Input ); - } - - InputT Output; - // Copy the beginning of the sequence - boost::algorithm::detail::insert( Output, ::boost::end(Output), ::boost::begin(Input), M.begin() ); - // Copy formatted result - boost::algorithm::detail::insert( Output, ::boost::end(Output), M.format_result() ); - // Copy the rest of the sequence - boost::algorithm::detail::insert( Output, ::boost::end(Output), M.end(), ::boost::end(Input) ); - - return Output; - } - - template< - typename InputT, - typename FormatterT, - typename FindResultT > - inline InputT find_format_copy_impl( - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult) - { - if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::boost::algorithm::detail::find_format_copy_impl2( - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return Input; - } - } - - // replace implementation ----------------------------------------------------// - - template< - typename InputT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline void find_format_impl2( - InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult) - { - typedef find_format_store< - BOOST_STRING_TYPENAME - range_iterator::type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - if ( !M ) - { - // Search not found - return original sequence - return; - } - - // Replace match - ::boost::algorithm::detail::replace( Input, M.begin(), M.end(), M.format_result() ); - } - - template< - typename InputT, - typename FormatterT, - typename FindResultT > - inline void find_format_impl( - InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult) - { - if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { - ::boost::algorithm::detail::find_format_impl2( - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_FORMAT_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/find_format_all.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/find_format_all.hpp deleted file mode 100644 index 52930c83a..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/find_format_all.hpp +++ /dev/null @@ -1,273 +0,0 @@ -// Boost string_algo library find_format_all.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP -#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP - -#include -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// find_format_all_copy (iterator variant) implementation ---------------------------// - - template< - typename OutputIteratorT, - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline OutputIteratorT find_format_all_copy_impl2( - OutputIteratorT Output, - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult ) - { - typedef BOOST_STRING_TYPENAME - range_const_iterator::type input_iterator_type; - - typedef find_format_store< - input_iterator_type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - // Initialize last match - input_iterator_type LastMatch=::boost::begin(Input); - - // Iterate through all matches - while( M ) - { - // Copy the beginning of the sequence - Output = std::copy( LastMatch, M.begin(), Output ); - // Copy formatted result - Output = std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output ); - - // Proceed to the next match - LastMatch=M.end(); - M=Finder( LastMatch, ::boost::end(Input) ); - } - - // Copy the rest of the sequence - Output = std::copy( LastMatch, ::boost::end(Input), Output ); - - return Output; - } - - template< - typename OutputIteratorT, - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline OutputIteratorT find_format_all_copy_impl( - OutputIteratorT Output, - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult ) - { - if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::boost::algorithm::detail::find_format_all_copy_impl2( - Output, - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); - } - } - - // find_format_all_copy implementation ----------------------------------------------// - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline InputT find_format_all_copy_impl2( - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult) - { - typedef BOOST_STRING_TYPENAME - range_const_iterator::type input_iterator_type; - - typedef find_format_store< - input_iterator_type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - // Initialize last match - input_iterator_type LastMatch=::boost::begin(Input); - - // Output temporary - InputT Output; - - // Iterate through all matches - while( M ) - { - // Copy the beginning of the sequence - boost::algorithm::detail::insert( Output, ::boost::end(Output), LastMatch, M.begin() ); - // Copy formatted result - boost::algorithm::detail::insert( Output, ::boost::end(Output), M.format_result() ); - - // Proceed to the next match - LastMatch=M.end(); - M=Finder( LastMatch, ::boost::end(Input) ); - } - - // Copy the rest of the sequence - ::boost::algorithm::detail::insert( Output, ::boost::end(Output), LastMatch, ::boost::end(Input) ); - - return Output; - } - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline InputT find_format_all_copy_impl( - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult) - { - if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::boost::algorithm::detail::find_format_all_copy_impl2( - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return Input; - } - } - - // find_format_all implementation ------------------------------------------------// - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline void find_format_all_impl2( - InputT& Input, - FinderT Finder, - FormatterT Formatter, - FindResultT FindResult, - FormatResultT FormatResult) - { - typedef BOOST_STRING_TYPENAME - range_iterator::type input_iterator_type; - typedef find_format_store< - input_iterator_type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - // Instantiate replacement storage - std::deque< - BOOST_STRING_TYPENAME range_value::type> Storage; - - // Initialize replacement iterators - input_iterator_type InsertIt=::boost::begin(Input); - input_iterator_type SearchIt=::boost::begin(Input); - - while( M ) - { - // process the segment - InsertIt=process_segment( - Storage, - Input, - InsertIt, - SearchIt, - M.begin() ); - - // Adjust search iterator - SearchIt=M.end(); - - // Copy formatted replace to the storage - ::boost::algorithm::detail::copy_to_storage( Storage, M.format_result() ); - - // Find range for a next match - M=Finder( SearchIt, ::boost::end(Input) ); - } - - // process the last segment - InsertIt=::boost::algorithm::detail::process_segment( - Storage, - Input, - InsertIt, - SearchIt, - ::boost::end(Input) ); - - if ( Storage.empty() ) - { - // Truncate input - ::boost::algorithm::detail::erase( Input, InsertIt, ::boost::end(Input) ); - } - else - { - // Copy remaining data to the end of input - ::boost::algorithm::detail::insert( Input, ::boost::end(Input), Storage.begin(), Storage.end() ); - } - } - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline void find_format_all_impl( - InputT& Input, - FinderT Finder, - FormatterT Formatter, - FindResultT FindResult) - { - if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { - ::boost::algorithm::detail::find_format_all_impl2( - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/find_format_store.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/find_format_store.hpp deleted file mode 100644 index b9f4a88d9..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/find_format_store.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// Boost string_algo library find_format_store.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP -#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP - -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// temporary format and find result storage --------------------------------// - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(push) -#pragma warning(disable:4512) //assignment operator could not be generated -#endif - template< - typename ForwardIteratorT, - typename FormatterT, - typename FormatResultT > - class find_format_store : - public iterator_range - { - public: - // typedefs - typedef iterator_range base_type; - typedef FormatterT formatter_type; - typedef FormatResultT format_result_type; - - public: - // Construction - find_format_store( - const base_type& FindResult, - const format_result_type& FormatResult, - const formatter_type& Formatter ) : - base_type(FindResult), - m_FormatResult(FormatResult), - m_Formatter(Formatter) {} - - // Assignment - template< typename FindResultT > - find_format_store& operator=( FindResultT FindResult ) - { - iterator_range::operator=(FindResult); - if( !this->empty() ) { - m_FormatResult=m_Formatter(FindResult); - } - - return *this; - } - - // Retrieve format result - const format_result_type& format_result() - { - return m_FormatResult; - } - - private: - format_result_type m_FormatResult; - const formatter_type& m_Formatter; - }; - - template - bool check_find_result(InputT&, FindResultT& FindResult) - { - typedef BOOST_STRING_TYPENAME - range_const_iterator::type input_iterator_type; - iterator_range ResultRange(FindResult); - return !ResultRange.empty(); - } - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(pop) -#endif - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/find_iterator.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/find_iterator.hpp deleted file mode 100644 index 9b78a0f7e..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/find_iterator.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// Boost string_algo library find_iterator.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_ITERATOR_DETAIL_HPP -#define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP - -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// find_iterator base -----------------------------------------------// - - // Find iterator base - template - class find_iterator_base - { - protected: - // typedefs - typedef IteratorT input_iterator_type; - typedef iterator_range match_type; - typedef function2< - match_type, - input_iterator_type, - input_iterator_type> finder_type; - - protected: - // Protected construction/destruction - - // Default constructor - find_iterator_base() {}; - // Copy construction - find_iterator_base( const find_iterator_base& Other ) : - m_Finder(Other.m_Finder) {} - - // Constructor - template - find_iterator_base( FinderT Finder, int ) : - m_Finder(Finder) {} - - // Destructor - ~find_iterator_base() {} - - // Find operation - match_type do_find( - input_iterator_type Begin, - input_iterator_type End ) const - { - if (!m_Finder.empty()) - { - return m_Finder(Begin,End); - } - else - { - return match_type(End,End); - } - } - - // Check - bool is_null() const - { - return m_Finder.empty(); - } - - private: - // Finder - finder_type m_Finder; - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_FIND_ITERATOR_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/finder.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/finder.hpp deleted file mode 100644 index a2a958212..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/finder.hpp +++ /dev/null @@ -1,639 +0,0 @@ -// Boost string_algo library finder.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FINDER_DETAIL_HPP -#define BOOST_STRING_FINDER_DETAIL_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - - -// find first functor -----------------------------------------------// - - // find a subsequence in the sequence ( functor ) - /* - Returns a pair marking the subsequence in the sequence. - If the find fails, functor returns - */ - template - struct first_finderF - { - typedef SearchIteratorT search_iterator_type; - - // Construction - template< typename SearchT > - first_finderF( const SearchT& Search, PredicateT Comp ) : - m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {} - first_finderF( - search_iterator_type SearchBegin, - search_iterator_type SearchEnd, - PredicateT Comp ) : - m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef iterator_range result_type; - typedef ForwardIteratorT input_iterator_type; - - // Outer loop - for(input_iterator_type OuterIt=Begin; - OuterIt!=End; - ++OuterIt) - { - // Sanity check - if( boost::empty(m_Search) ) - return result_type( End, End ); - - input_iterator_type InnerIt=OuterIt; - search_iterator_type SubstrIt=m_Search.begin(); - for(; - InnerIt!=End && SubstrIt!=m_Search.end(); - ++InnerIt,++SubstrIt) - { - if( !( m_Comp(*InnerIt,*SubstrIt) ) ) - break; - } - - // Substring matching succeeded - if ( SubstrIt==m_Search.end() ) - return result_type( OuterIt, InnerIt ); - } - - return result_type( End, End ); - } - - private: - iterator_range m_Search; - PredicateT m_Comp; - }; - -// find last functor -----------------------------------------------// - - // find the last match a subsequence in the sequence ( functor ) - /* - Returns a pair marking the subsequence in the sequence. - If the find fails, returns - */ - template - struct last_finderF - { - typedef SearchIteratorT search_iterator_type; - typedef first_finderF< - search_iterator_type, - PredicateT> first_finder_type; - - // Construction - template< typename SearchT > - last_finderF( const SearchT& Search, PredicateT Comp ) : - m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {} - last_finderF( - search_iterator_type SearchBegin, - search_iterator_type SearchEnd, - PredicateT Comp ) : - m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef iterator_range result_type; - - if( boost::empty(m_Search) ) - return result_type( End, End ); - - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return findit( Begin, End, category() ); - } - - private: - // forward iterator - template< typename ForwardIteratorT > - iterator_range - findit( - ForwardIteratorT Begin, - ForwardIteratorT End, - std::forward_iterator_tag ) const - { - typedef iterator_range result_type; - - first_finder_type first_finder( - m_Search.begin(), m_Search.end(), m_Comp ); - - result_type M=first_finder( Begin, End ); - result_type Last=M; - - while( M ) - { - Last=M; - M=first_finder( ::boost::end(M), End ); - } - - return Last; - } - - // bidirectional iterator - template< typename ForwardIteratorT > - iterator_range - findit( - ForwardIteratorT Begin, - ForwardIteratorT End, - std::bidirectional_iterator_tag ) const - { - typedef iterator_range result_type; - typedef ForwardIteratorT input_iterator_type; - - // Outer loop - for(input_iterator_type OuterIt=End; - OuterIt!=Begin; ) - { - input_iterator_type OuterIt2=--OuterIt; - - input_iterator_type InnerIt=OuterIt2; - search_iterator_type SubstrIt=m_Search.begin(); - for(; - InnerIt!=End && SubstrIt!=m_Search.end(); - ++InnerIt,++SubstrIt) - { - if( !( m_Comp(*InnerIt,*SubstrIt) ) ) - break; - } - - // Substring matching succeeded - if( SubstrIt==m_Search.end() ) - return result_type( OuterIt2, InnerIt ); - } - - return result_type( End, End ); - } - - private: - iterator_range m_Search; - PredicateT m_Comp; - }; - -// find n-th functor -----------------------------------------------// - - // find the n-th match of a subsequence in the sequence ( functor ) - /* - Returns a pair marking the subsequence in the sequence. - If the find fails, returns - */ - template - struct nth_finderF - { - typedef SearchIteratorT search_iterator_type; - typedef first_finderF< - search_iterator_type, - PredicateT> first_finder_type; - typedef last_finderF< - search_iterator_type, - PredicateT> last_finder_type; - - // Construction - template< typename SearchT > - nth_finderF( - const SearchT& Search, - int Nth, - PredicateT Comp) : - m_Search(::boost::begin(Search), ::boost::end(Search)), - m_Nth(Nth), - m_Comp(Comp) {} - nth_finderF( - search_iterator_type SearchBegin, - search_iterator_type SearchEnd, - int Nth, - PredicateT Comp) : - m_Search(SearchBegin, SearchEnd), - m_Nth(Nth), - m_Comp(Comp) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - if(m_Nth>=0) - { - return find_forward(Begin, End, m_Nth); - } - else - { - return find_backward(Begin, End, -m_Nth); - } - - } - - private: - // Implementation helpers - template< typename ForwardIteratorT > - iterator_range - find_forward( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N) const - { - typedef iterator_range result_type; - - // Sanity check - if( boost::empty(m_Search) ) - return result_type( End, End ); - - // Instantiate find functor - first_finder_type first_finder( - m_Search.begin(), m_Search.end(), m_Comp ); - - result_type M( Begin, Begin ); - - for( unsigned int n=0; n<=N; ++n ) - { - // find next match - M=first_finder( ::boost::end(M), End ); - - if ( !M ) - { - // Subsequence not found, return - return M; - } - } - - return M; - } - - template< typename ForwardIteratorT > - iterator_range - find_backward( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N) const - { - typedef iterator_range result_type; - - // Sanity check - if( boost::empty(m_Search) ) - return result_type( End, End ); - - // Instantiate find functor - last_finder_type last_finder( - m_Search.begin(), m_Search.end(), m_Comp ); - - result_type M( End, End ); - - for( unsigned int n=1; n<=N; ++n ) - { - // find next match - M=last_finder( Begin, ::boost::begin(M) ); - - if ( !M ) - { - // Subsequence not found, return - return M; - } - } - - return M; - } - - - private: - iterator_range m_Search; - int m_Nth; - PredicateT m_Comp; - }; - -// find head/tail implementation helpers ---------------------------// - - template - iterator_range - find_head_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::forward_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - input_iterator_type It=Begin; - for( - unsigned int Index=0; - Index - iterator_range - find_head_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::random_access_iterator_tag ) - { - typedef iterator_range result_type; - - if ( (End<=Begin) || ( static_cast(End-Begin) < N ) ) - return result_type( Begin, End ); - - return result_type(Begin,Begin+N); - } - - // Find head implementation - template - iterator_range - find_head_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N ) - { - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return ::boost::algorithm::detail::find_head_impl( Begin, End, N, category() ); - } - - template< typename ForwardIteratorT > - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::forward_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - unsigned int Index=0; - input_iterator_type It=Begin; - input_iterator_type It2=Begin; - - // Advance It2 by N increments - for( Index=0; Index - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::bidirectional_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - input_iterator_type It=End; - for( - unsigned int Index=0; - Index - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::random_access_iterator_tag ) - { - typedef iterator_range result_type; - - if ( (End<=Begin) || ( static_cast(End-Begin) < N ) ) - return result_type( Begin, End ); - - return result_type( End-N, End ); - } - - // Operation - template< typename ForwardIteratorT > - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N ) - { - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return ::boost::algorithm::detail::find_tail_impl( Begin, End, N, category() ); - } - - - -// find head functor -----------------------------------------------// - - - // find a head in the sequence ( functor ) - /* - This functor find a head of the specified range. For - a specified N, the head is a subsequence of N starting - elements of the range. - */ - struct head_finderF - { - // Construction - head_finderF( int N ) : m_N(N) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - if(m_N>=0) - { - return ::boost::algorithm::detail::find_head_impl( Begin, End, m_N ); - } - else - { - iterator_range Res= - ::boost::algorithm::detail::find_tail_impl( Begin, End, -m_N ); - - return ::boost::make_iterator_range(Begin, Res.begin()); - } - } - - private: - int m_N; - }; - -// find tail functor -----------------------------------------------// - - - // find a tail in the sequence ( functor ) - /* - This functor find a tail of the specified range. For - a specified N, the head is a subsequence of N starting - elements of the range. - */ - struct tail_finderF - { - // Construction - tail_finderF( int N ) : m_N(N) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - if(m_N>=0) - { - return ::boost::algorithm::detail::find_tail_impl( Begin, End, m_N ); - } - else - { - iterator_range Res= - ::boost::algorithm::detail::find_head_impl( Begin, End, -m_N ); - - return ::boost::make_iterator_range(Res.end(), End); - } - } - - private: - int m_N; - }; - -// find token functor -----------------------------------------------// - - // find a token in a sequence ( functor ) - /* - This find functor finds a token specified be a predicate - in a sequence. It is equivalent of std::find algorithm, - with an exception that it return range instead of a single - iterator. - - If bCompress is set to true, adjacent matching tokens are - concatenated into one match. - */ - template< typename PredicateT > - struct token_finderF - { - // Construction - token_finderF( - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off ) : - m_Pred(Pred), m_eCompress(eCompress) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef iterator_range result_type; - - ForwardIteratorT It=std::find_if( Begin, End, m_Pred ); - - if( It==End ) - { - return result_type( End, End ); - } - else - { - ForwardIteratorT It2=It; - - if( m_eCompress==token_compress_on ) - { - // Find first non-matching character - while( It2!=End && m_Pred(*It2) ) ++It2; - } - else - { - // Advance by one position - ++It2; - } - - return result_type( It, It2 ); - } - } - - private: - PredicateT m_Pred; - token_compress_mode_type m_eCompress; - }; - -// find range functor -----------------------------------------------// - - // find a range in the sequence ( functor ) - /* - This functor actually does not perform any find operation. - It always returns given iterator range as a result. - */ - template - struct range_finderF - { - typedef ForwardIterator1T input_iterator_type; - typedef iterator_range result_type; - - // Construction - range_finderF( - input_iterator_type Begin, - input_iterator_type End ) : m_Range(Begin, End) {} - - range_finderF(const iterator_range& Range) : - m_Range(Range) {} - - // Operation - template< typename ForwardIterator2T > - iterator_range - operator()( - ForwardIterator2T, - ForwardIterator2T ) const - { -#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) - return iterator_range(this->m_Range); -#else - return m_Range; -#endif - } - - private: - iterator_range m_Range; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FINDER_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/finder_regex.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/finder_regex.hpp deleted file mode 100644 index 9cb01cfaf..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/finder_regex.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// Boost string_algo library find_regex.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FINDER_REGEX_DETAIL_HPP -#define BOOST_STRING_FINDER_REGEX_DETAIL_HPP - -#include -#include - -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// regex find functor -----------------------------------------------// - - // regex search result - template - struct regex_search_result : - public iterator_range - { - typedef regex_search_result type; - typedef iterator_range base_type; - typedef BOOST_STRING_TYPENAME base_type::value_type value_type; - typedef BOOST_STRING_TYPENAME base_type::difference_type difference_type; - typedef BOOST_STRING_TYPENAME base_type::const_iterator const_iterator; - typedef BOOST_STRING_TYPENAME base_type::iterator iterator; - typedef boost::match_results match_results_type; - - // Construction - - // Construction from the match result - regex_search_result( const match_results_type& MatchResults ) : - base_type( MatchResults[0].first, MatchResults[0].second ), - m_MatchResults( MatchResults ) {} - - // Construction of empty match. End iterator has to be specified - regex_search_result( IteratorT End ) : - base_type( End, End ) {} - - regex_search_result( const regex_search_result& Other ) : - base_type( Other.begin(), Other.end() ), - m_MatchResults( Other.m_MatchResults ) {} - - // Assignment - regex_search_result& operator=( const regex_search_result& Other ) - { - base_type::operator=( Other ); - m_MatchResults=Other.m_MatchResults; - return *this; - } - - // Match result retrieval - const match_results_type& match_results() const - { - return m_MatchResults; - } - - private: - // Saved match result - match_results_type m_MatchResults; - }; - - // find_regex - /* - Regex based search functor - */ - template - struct find_regexF - { - typedef RegExT regex_type; - typedef const RegExT& regex_reference_type; - - // Construction - find_regexF( regex_reference_type Rx, match_flag_type MatchFlags = match_default ) : - m_Rx(Rx), m_MatchFlags(MatchFlags) {} - - // Operation - template< typename ForwardIteratorT > - regex_search_result - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef ForwardIteratorT input_iterator_type; - typedef regex_search_result result_type; - - // instantiate match result - match_results result; - // search for a match - if ( ::boost::regex_search( Begin, End, result, m_Rx, m_MatchFlags ) ) - { - // construct a result - return result_type( result ); - } - else - { - // empty result - return result_type( End ); - } - } - - private: - regex_reference_type m_Rx; // Regexp - match_flag_type m_MatchFlags; // match flags - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/formatter.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/formatter.hpp deleted file mode 100644 index c071822f2..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/formatter.hpp +++ /dev/null @@ -1,119 +0,0 @@ -// Boost string_algo library formatter.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FORMATTER_DETAIL_HPP -#define BOOST_STRING_FORMATTER_DETAIL_HPP - - -#include -#include -#include -#include - -#include - -// generic replace functors -----------------------------------------------// - -namespace boost { - namespace algorithm { - namespace detail { - -// const format functor ----------------------------------------------------// - - // constant format functor - template - struct const_formatF - { - private: - typedef BOOST_STRING_TYPENAME - range_const_iterator::type format_iterator; - typedef iterator_range result_type; - - public: - // Construction - const_formatF(const RangeT& Format) : - m_Format(::boost::begin(Format), ::boost::end(Format)) {} - - // Operation -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - template - result_type& operator()(const Range2T&) - { - return m_Format; - } -#endif - - template - const result_type& operator()(const Range2T&) const - { - return m_Format; - } - - private: - result_type m_Format; - }; - -// identity format functor ----------------------------------------------------// - - // identity format functor - template - struct identity_formatF - { - // Operation - template< typename Range2T > - const RangeT& operator()(const Range2T& Replace) const - { - return RangeT(::boost::begin(Replace), ::boost::end(Replace)); - } - }; - -// empty format functor ( used by erase ) ------------------------------------// - - // empty format functor - template< typename CharT > - struct empty_formatF - { - template< typename ReplaceT > - empty_container operator()(const ReplaceT&) const - { - return empty_container(); - } - }; - -// dissect format functor ----------------------------------------------------// - - // dissect format functor - template - struct dissect_formatF - { - public: - // Construction - dissect_formatF(FinderT Finder) : - m_Finder(Finder) {} - - // Operation - template - inline iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> - operator()(const RangeT& Replace) const - { - return m_Finder(::boost::begin(Replace), ::boost::end(Replace)); - } - - private: - FinderT m_Finder; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FORMATTER_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/formatter_regex.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/formatter_regex.hpp deleted file mode 100644 index 5f26407be..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/formatter_regex.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// Boost string_algo library formatter_regex.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP -#define BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP - -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// regex format functor -----------------------------------------// - - // regex format functor - template - struct regex_formatF - { - private: - typedef StringT result_type; - typedef BOOST_STRING_TYPENAME StringT::value_type char_type; - - public: - // Construction - regex_formatF( const StringT& Fmt, match_flag_type Flags=format_default ) : - m_Fmt(Fmt), m_Flags( Flags ) {} - - template - result_type operator()( - const regex_search_result& Replace ) const - { - if ( Replace.empty() ) - { - return result_type(); - } - else - { - return Replace.match_results().format( m_Fmt, m_Flags ); - } - } - private: - const StringT& m_Fmt; - match_flag_type m_Flags; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FORMATTER_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/predicate.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/predicate.hpp deleted file mode 100644 index 5acf3cc66..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/predicate.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// Boost string_algo library predicate.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_PREDICATE_DETAIL_HPP -#define BOOST_STRING_PREDICATE_DETAIL_HPP - -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// ends_with predicate implementation ----------------------------------// - - template< - typename ForwardIterator1T, - typename ForwardIterator2T, - typename PredicateT> - inline bool ends_with_iter_select( - ForwardIterator1T Begin, - ForwardIterator1T End, - ForwardIterator2T SubBegin, - ForwardIterator2T SubEnd, - PredicateT Comp, - std::bidirectional_iterator_tag) - { - ForwardIterator1T it=End; - ForwardIterator2T pit=SubEnd; - for(;it!=Begin && pit!=SubBegin;) - { - if( !(Comp(*(--it),*(--pit))) ) - return false; - } - - return pit==SubBegin; - } - - template< - typename ForwardIterator1T, - typename ForwardIterator2T, - typename PredicateT> - inline bool ends_with_iter_select( - ForwardIterator1T Begin, - ForwardIterator1T End, - ForwardIterator2T SubBegin, - ForwardIterator2T SubEnd, - PredicateT Comp, - std::forward_iterator_tag) - { - if ( SubBegin==SubEnd ) - { - // empty subsequence check - return true; - } - - iterator_range Result - =last_finder( - ::boost::make_iterator_range(SubBegin, SubEnd), - Comp)(Begin, End); - - return !Result.empty() && Result.end()==End; - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_PREDICATE_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/replace_storage.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/replace_storage.hpp deleted file mode 100644 index db35e4c53..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/replace_storage.hpp +++ /dev/null @@ -1,159 +0,0 @@ -// Boost string_algo library replace_storage.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP -#define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP - -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// storage handling routines -----------------------------------------------// - - template< typename StorageT, typename OutputIteratorT > - inline OutputIteratorT move_from_storage( - StorageT& Storage, - OutputIteratorT DestBegin, - OutputIteratorT DestEnd ) - { - OutputIteratorT OutputIt=DestBegin; - - while( !Storage.empty() && OutputIt!=DestEnd ) - { - *OutputIt=Storage.front(); - Storage.pop_front(); - ++OutputIt; - } - - return OutputIt; - } - - template< typename StorageT, typename WhatT > - inline void copy_to_storage( - StorageT& Storage, - const WhatT& What ) - { - Storage.insert( Storage.end(), ::boost::begin(What), ::boost::end(What) ); - } - - -// process segment routine -----------------------------------------------// - - template< bool HasStableIterators > - struct process_segment_helper - { - // Optimized version of process_segment for generic sequence - template< - typename StorageT, - typename InputT, - typename ForwardIteratorT > - ForwardIteratorT operator()( - StorageT& Storage, - InputT& /*Input*/, - ForwardIteratorT InsertIt, - ForwardIteratorT SegmentBegin, - ForwardIteratorT SegmentEnd ) - { - // Copy data from the storage until the beginning of the segment - ForwardIteratorT It=::boost::algorithm::detail::move_from_storage( Storage, InsertIt, SegmentBegin ); - - // 3 cases are possible : - // a) Storage is empty, It==SegmentBegin - // b) Storage is empty, It!=SegmentBegin - // c) Storage is not empty - - if( Storage.empty() ) - { - if( It==SegmentBegin ) - { - // Case a) everything is grand, just return end of segment - return SegmentEnd; - } - else - { - // Case b) move the segment backwards - return std::copy( SegmentBegin, SegmentEnd, It ); - } - } - else - { - // Case c) -> shift the segment to the left and keep the overlap in the storage - while( It!=SegmentEnd ) - { - // Store value into storage - Storage.push_back( *It ); - // Get the top from the storage and put it here - *It=Storage.front(); - Storage.pop_front(); - - // Advance - ++It; - } - - return It; - } - } - }; - - template<> - struct process_segment_helper< true > - { - // Optimized version of process_segment for list-like sequence - template< - typename StorageT, - typename InputT, - typename ForwardIteratorT > - ForwardIteratorT operator()( - StorageT& Storage, - InputT& Input, - ForwardIteratorT InsertIt, - ForwardIteratorT SegmentBegin, - ForwardIteratorT SegmentEnd ) - - { - // Call replace to do the job - ::boost::algorithm::detail::replace( Input, InsertIt, SegmentBegin, Storage ); - // Empty the storage - Storage.clear(); - // Iterators were not changed, simply return the end of segment - return SegmentEnd; - } - }; - - // Process one segment in the replace_all algorithm - template< - typename StorageT, - typename InputT, - typename ForwardIteratorT > - inline ForwardIteratorT process_segment( - StorageT& Storage, - InputT& Input, - ForwardIteratorT InsertIt, - ForwardIteratorT SegmentBegin, - ForwardIteratorT SegmentEnd ) - { - return - process_segment_helper< - has_stable_iterators::value>()( - Storage, Input, InsertIt, SegmentBegin, SegmentEnd ); - } - - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/sequence.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/sequence.hpp deleted file mode 100644 index dc4740911..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/sequence.hpp +++ /dev/null @@ -1,200 +0,0 @@ -// Boost string_algo library sequence.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP -#define BOOST_STRING_DETAIL_SEQUENCE_HPP - -#include -#include -#include -#include -#include - -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// insert helpers -------------------------------------------------// - - template< typename InputT, typename ForwardIteratorT > - inline void insert( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator At, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - Input.insert( At, Begin, End ); - } - - template< typename InputT, typename InsertT > - inline void insert( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator At, - const InsertT& Insert ) - { - ::boost::algorithm::detail::insert( Input, At, ::boost::begin(Insert), ::boost::end(Insert) ); - } - -// erase helper ---------------------------------------------------// - - // Erase a range in the sequence - /* - Returns the iterator pointing just after the erase subrange - */ - template< typename InputT > - inline typename InputT::iterator erase( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To ) - { - return Input.erase( From, To ); - } - -// replace helper implementation ----------------------------------// - - // Optimized version of replace for generic sequence containers - // Assumption: insert and erase are expensive - template< bool HasConstTimeOperations > - struct replace_const_time_helper - { - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - // Copy data to the container ( as much as possible ) - ForwardIteratorT InsertIt=Begin; - BOOST_STRING_TYPENAME InputT::iterator InputIt=From; - for(; InsertIt!=End && InputIt!=To; InsertIt++, InputIt++ ) - { - *InputIt=*InsertIt; - } - - if ( InsertIt!=End ) - { - // Replace sequence is longer, insert it - Input.insert( InputIt, InsertIt, End ); - } - else - { - if ( InputIt!=To ) - { - // Replace sequence is shorter, erase the rest - Input.erase( InputIt, To ); - } - } - } - }; - - template<> - struct replace_const_time_helper< true > - { - // Const-time erase and insert methods -> use them - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - BOOST_STRING_TYPENAME InputT::iterator At=Input.erase( From, To ); - if ( Begin!=End ) - { - if(!Input.empty()) - { - Input.insert( At, Begin, End ); - } - else - { - Input.insert( Input.begin(), Begin, End ); - } - } - } - }; - - // No native replace method - template< bool HasNative > - struct replace_native_helper - { - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - replace_const_time_helper< - boost::mpl::and_< - has_const_time_insert, - has_const_time_erase >::value >()( - Input, From, To, Begin, End ); - } - }; - - // Container has native replace method - template<> - struct replace_native_helper< true > - { - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - Input.replace( From, To, Begin, End ); - } - }; - -// replace helper -------------------------------------------------// - - template< typename InputT, typename ForwardIteratorT > - inline void replace( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - replace_native_helper< has_native_replace::value >()( - Input, From, To, Begin, End ); - } - - template< typename InputT, typename InsertT > - inline void replace( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - const InsertT& Insert ) - { - if(From!=To) - { - ::boost::algorithm::detail::replace( Input, From, To, ::boost::begin(Insert), ::boost::end(Insert) ); - } - else - { - ::boost::algorithm::detail::insert( Input, From, ::boost::begin(Insert), ::boost::end(Insert) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_DETAIL_SEQUENCE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/trim.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/trim.hpp deleted file mode 100644 index 1233e49d3..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/trim.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// Boost string_algo library trim.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_TRIM_DETAIL_HPP -#define BOOST_STRING_TRIM_DETAIL_HPP - -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// trim iterator helper -----------------------------------------------// - - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end_iter_select( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace, - std::forward_iterator_tag ) - { - ForwardIteratorT TrimIt=InBegin; - - for( ForwardIteratorT It=InBegin; It!=InEnd; ++It ) - { - if ( !IsSpace(*It) ) - { - TrimIt=It; - ++TrimIt; - } - } - - return TrimIt; - } - - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end_iter_select( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace, - std::bidirectional_iterator_tag ) - { - for( ForwardIteratorT It=InEnd; It!=InBegin; ) - { - if ( !IsSpace(*(--It)) ) - return ++It; - } - - return InBegin; - } - // Search for first non matching character from the beginning of the sequence - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_begin( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace ) - { - ForwardIteratorT It=InBegin; - for(; It!=InEnd; ++It ) - { - if (!IsSpace(*It)) - return It; - } - - return It; - } - - // Search for first non matching character from the end of the sequence - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace ) - { - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return ::boost::algorithm::detail::trim_end_iter_select( InBegin, InEnd, IsSpace, category() ); - } - - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_TRIM_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/detail/util.hpp b/lib/3rdParty/boost/boost/algorithm/string/detail/util.hpp deleted file mode 100644 index cf4a8b1c8..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/detail/util.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// Boost string_algo library util.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_UTIL_DETAIL_HPP -#define BOOST_STRING_UTIL_DETAIL_HPP - -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// empty container -----------------------------------------------// - - // empty_container - /* - This class represents always empty container, - containing elements of type CharT. - - It is supposed to be used in a const version only - */ - template< typename CharT > - struct empty_container - { - typedef empty_container type; - typedef CharT value_type; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef const value_type& reference; - typedef const value_type& const_reference; - typedef const value_type* iterator; - typedef const value_type* const_iterator; - - - // Operations - const_iterator begin() const - { - return reinterpret_cast(0); - } - - const_iterator end() const - { - return reinterpret_cast(0); - } - - bool empty() const - { - return false; - } - - size_type size() const - { - return 0; - } - }; - -// bounded copy algorithm -----------------------------------------------// - - // Bounded version of the std::copy algorithm - template - inline OutputIteratorT bounded_copy( - InputIteratorT First, - InputIteratorT Last, - OutputIteratorT DestFirst, - OutputIteratorT DestLast ) - { - InputIteratorT InputIt=First; - OutputIteratorT OutputIt=DestFirst; - for(; InputIt!=Last && OutputIt!=DestLast; InputIt++, OutputIt++ ) - { - *OutputIt=*InputIt; - } - - return OutputIt; - } - -// iterator range utilities -----------------------------------------// - - // copy range functor - template< - typename SeqT, - typename IteratorT=BOOST_STRING_TYPENAME SeqT::const_iterator > - struct copy_iterator_rangeF : - public std::unary_function< iterator_range, SeqT > - { - SeqT operator()( const iterator_range& Range ) const - { - return copy_range(Range); - } - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_UTIL_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/erase.hpp b/lib/3rdParty/boost/boost/algorithm/string/erase.hpp deleted file mode 100644 index 688379097..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/erase.hpp +++ /dev/null @@ -1,844 +0,0 @@ -// Boost string_algo library erase.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_ERASE_HPP -#define BOOST_STRING_ERASE_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines various erase algorithms. Each algorithm removes - part(s) of the input according to a searching criteria. -*/ - -namespace boost { - namespace algorithm { - -// erase_range -------------------------------------------------------// - - //! Erase range algorithm - /*! - Remove the given range from the input. The result is a modified copy of - the input. It is returned as a sequence or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param SearchRange A range in the input to be removed - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT erase_range_copy( - OutputIteratorT Output, - const RangeT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::range_finder(SearchRange), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase range algorithm - /*! - \overload - */ - template - inline SequenceT erase_range_copy( - const SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::range_finder(SearchRange), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase range algorithm - /*! - Remove the given range from the input. - The input sequence is modified in-place. - - \param Input An input sequence - \param SearchRange A range in the input to be removed - */ - template - inline void erase_range( - SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_iterator::type>& SearchRange ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::range_finder(SearchRange), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_first --------------------------------------------------------// - - //! Erase first algorithm - /*! - Remove the first occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase first algorithm - /*! - \overload - */ - template - inline SequenceT erase_first_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase first algorithm - /*! - Remove the first occurrence of the substring from the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for. - */ - template - inline void erase_first( - SequenceT& Input, - const RangeT& Search ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_first ( case insensitive ) ------------------------------------// - - //! Erase first algorithm ( case insensitive ) - /*! - Remove the first occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase first algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ierase_first_copy( - const SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase first algorithm ( case insensitive ) - /*! - Remove the first occurrence of the substring from the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_first( - SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_last --------------------------------------------------------// - - //! Erase last algorithm - /*! - Remove the last occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::last_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase last algorithm - /*! - \overload - */ - template - inline SequenceT erase_last_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::last_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase last algorithm - /*! - Remove the last occurrence of the substring from the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - */ - template - inline void erase_last( - SequenceT& Input, - const RangeT& Search ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::last_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_last ( case insensitive ) ------------------------------------// - - //! Erase last algorithm ( case insensitive ) - /*! - Remove the last occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase last algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ierase_last_copy( - const SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase last algorithm ( case insensitive ) - /*! - Remove the last occurrence of the substring from the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_last( - SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_nth --------------------------------------------------------------------// - - //! Erase nth algorithm - /*! - Remove the Nth occurrence of the substring in the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::nth_finder(Search, Nth), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - \overload - */ - template - inline SequenceT erase_nth_copy( - const SequenceT& Input, - const RangeT& Search, - int Nth ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::nth_finder(Search, Nth), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - Remove the Nth occurrence of the substring in the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for. - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - */ - template - inline void erase_nth( - SequenceT& Input, - const RangeT& Search, - int Nth ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::nth_finder(Search, Nth), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_nth ( case insensitive ) ---------------------------------------------// - - //! Erase nth algorithm ( case insensitive ) - /*! - Remove the Nth occurrence of the substring in the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for. - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - \overload - */ - template - inline SequenceT ierase_nth_copy( - const SequenceT& Input, - const RangeT& Search, - int Nth, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - Remove the Nth occurrence of the substring in the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for. - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_nth( - SequenceT& Input, - const RangeT& Search, - int Nth, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - -// erase_all --------------------------------------------------------// - - //! Erase all algorithm - /*! - Remove all the occurrences of the string from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param Search A substring to be searched for. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search ) - { - return ::boost::algorithm::find_format_all_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase all algorithm - /*! - \overload - */ - template - inline SequenceT erase_all_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return ::boost::algorithm::find_format_all_copy( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase all algorithm - /*! - Remove all the occurrences of the string from the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for. - */ - template - inline void erase_all( - SequenceT& Input, - const RangeT& Search ) - { - ::boost::algorithm::find_format_all( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_all ( case insensitive ) ------------------------------------// - - //! Erase all algorithm ( case insensitive ) - /*! - Remove all the occurrences of the string from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_all_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase all algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ierase_all_copy( - const SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_all_copy( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - - //! Erase all algorithm ( case insensitive ) - /*! - Remove all the occurrences of the string from the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_all( - SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format_all( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::empty_formatter(Input) ); - } - -// erase_head --------------------------------------------------------------------// - - //! Erase head algorithm - /*! - Remove the head from the input. The head is a prefix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the head. The result is a modified copy of the input. - It is returned as a sequence or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT> - inline OutputIteratorT erase_head_copy( - OutputIteratorT Output, - const RangeT& Input, - int N ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::head_finder(N), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase head algorithm - /*! - \overload - */ - template - inline SequenceT erase_head_copy( - const SequenceT& Input, - int N ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::head_finder(N), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase head algorithm - /*! - Remove the head from the input. The head is a prefix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the head. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the head - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - */ - template - inline void erase_head( - SequenceT& Input, - int N ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::head_finder(N), - ::boost::algorithm::empty_formatter( Input ) ); - } - -// erase_tail --------------------------------------------------------------------// - - //! Erase tail algorithm - /*! - Remove the tail from the input. The tail is a suffix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the tail. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT> - inline OutputIteratorT erase_tail_copy( - OutputIteratorT Output, - const RangeT& Input, - int N ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::tail_finder(N), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase tail algorithm - /*! - \overload - */ - template - inline SequenceT erase_tail_copy( - const SequenceT& Input, - int N ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::tail_finder(N), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase tail algorithm - /*! - Remove the tail from the input. The tail is a suffix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the tail. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the tail - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - */ - template - inline void erase_tail( - SequenceT& Input, - int N ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::tail_finder(N), - ::boost::algorithm::empty_formatter( Input ) ); - } - - } // namespace algorithm - - // pull names into the boost namespace - using algorithm::erase_range_copy; - using algorithm::erase_range; - using algorithm::erase_first_copy; - using algorithm::erase_first; - using algorithm::ierase_first_copy; - using algorithm::ierase_first; - using algorithm::erase_last_copy; - using algorithm::erase_last; - using algorithm::ierase_last_copy; - using algorithm::ierase_last; - using algorithm::erase_nth_copy; - using algorithm::erase_nth; - using algorithm::ierase_nth_copy; - using algorithm::ierase_nth; - using algorithm::erase_all_copy; - using algorithm::erase_all; - using algorithm::ierase_all_copy; - using algorithm::ierase_all; - using algorithm::erase_head_copy; - using algorithm::erase_head; - using algorithm::erase_tail_copy; - using algorithm::erase_tail; - -} // namespace boost - - -#endif // BOOST_ERASE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/find.hpp b/lib/3rdParty/boost/boost/algorithm/string/find.hpp deleted file mode 100644 index f2c2926b5..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/find.hpp +++ /dev/null @@ -1,334 +0,0 @@ -// Boost string_algo library find.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_HPP -#define BOOST_STRING_FIND_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines a set of find algorithms. The algorithms are searching - for a substring of the input. The result is given as an \c iterator_range - delimiting the substring. -*/ - -namespace boost { - namespace algorithm { - -// Generic find -----------------------------------------------// - - //! Generic find algorithm - /*! - Search the input using the given finder. - - \param Input A string which will be searched. - \param Finder Finder object used for searching. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find( - RangeT& Input, - const FinderT& Finder) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - - return Finder(::boost::begin(lit_input),::boost::end(lit_input)); - } - -// find_first -----------------------------------------------// - - //! Find first algorithm - /*! - Search for the first occurrence of the substring in the input. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_first( - Range1T& Input, - const Range2T& Search) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::first_finder(Search)); - } - - //! Find first algorithm ( case insensitive ) - /*! - Search for the first occurrence of the substring in the input. - Searching is case insensitive. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - ifind_first( - Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::first_finder(Search,is_iequal(Loc))); - } - -// find_last -----------------------------------------------// - - //! Find last algorithm - /*! - Search for the last occurrence of the substring in the input. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_last( - Range1T& Input, - const Range2T& Search) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::last_finder(Search)); - } - - //! Find last algorithm ( case insensitive ) - /*! - Search for the last match a string in the input. - Searching is case insensitive. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - ifind_last( - Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::last_finder(Search, is_iequal(Loc))); - } - -// find_nth ----------------------------------------------------------------------// - - //! Find n-th algorithm - /*! - Search for the n-th (zero-indexed) occurrence of the substring in the - input. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Nth An index (zero-indexed) of the match to be found. - For negative N, the matches are counted from the end of string. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_nth( - Range1T& Input, - const Range2T& Search, - int Nth) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::nth_finder(Search,Nth)); - } - - //! Find n-th algorithm ( case insensitive ). - /*! - Search for the n-th (zero-indexed) occurrence of the substring in the - input. Searching is case insensitive. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Nth An index (zero-indexed) of the match to be found. - For negative N, the matches are counted from the end of string. - \param Loc A locale used for case insensitive comparison - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - ifind_nth( - Range1T& Input, - const Range2T& Search, - int Nth, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::nth_finder(Search,Nth,is_iequal(Loc))); - } - -// find_head ----------------------------------------------------------------------// - - //! Find head algorithm - /*! - Get the head of the input. Head is a prefix of the string of the - given size. If the input is shorter then required, whole input is considered - to be the head. - - \param Input An input string - \param N Length of the head - For N>=0, at most N characters are extracted. - For N<0, at most size(Input)-|N| characters are extracted. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_head( - RangeT& Input, - int N) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::head_finder(N)); - } - -// find_tail ----------------------------------------------------------------------// - - //! Find tail algorithm - /*! - Get the tail of the input. Tail is a suffix of the string of the - given size. If the input is shorter then required, whole input is considered - to be the tail. - - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, at most size(Input)-|N| characters are extracted. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_tail( - RangeT& Input, - int N) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::tail_finder(N)); - } - -// find_token --------------------------------------------------------------------// - - //! Find token algorithm - /*! - Look for a given token in the string. Token is a character that matches the - given predicate. - If the "token compress mode" is enabled, adjacent tokens are considered to be one match. - - \param Input A input string. - \param Pred A unary predicate to identify a token - \param eCompress Enable/Disable compressing of adjacent tokens - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_token( - RangeT& Input, - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off) - { - return ::boost::algorithm::find(Input, ::boost::algorithm::token_finder(Pred, eCompress)); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::find; - using algorithm::find_first; - using algorithm::ifind_first; - using algorithm::find_last; - using algorithm::ifind_last; - using algorithm::find_nth; - using algorithm::ifind_nth; - using algorithm::find_head; - using algorithm::find_tail; - using algorithm::find_token; - -} // namespace boost - - -#endif // BOOST_STRING_FIND_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/find_format.hpp b/lib/3rdParty/boost/boost/algorithm/string/find_format.hpp deleted file mode 100644 index 0e84a4ee6..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/find_format.hpp +++ /dev/null @@ -1,287 +0,0 @@ -// Boost string_algo library find_format.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_HPP -#define BOOST_STRING_FIND_FORMAT_HPP - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines generic replace algorithms. Each algorithm replaces - part(s) of the input. The part to be replaced is looked up using a Finder object. - Result of finding is then used by a Formatter object to generate the replacement. -*/ - -namespace boost { - namespace algorithm { - -// generic replace -----------------------------------------------------------------// - - //! Generic replace algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename FinderT, - typename FormatterT> - inline OutputIteratorT find_format_copy( - OutputIteratorT Output, - const RangeT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - iterator_range::type> lit_input(::boost::as_literal(Input)); - - return detail::find_format_copy_impl( - Output, - lit_input, - Formatter, - Finder( ::boost::begin(lit_input), ::boost::end(lit_input) ) ); - } - - //! Generic replace algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT> - inline SequenceT find_format_copy( - const SequenceT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - return detail::find_format_copy_impl( - Input, - Formatter, - Finder(::boost::begin(Input), ::boost::end(Input))); - } - - //! Generic replace algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. The input is modified in-place. - - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT> - inline void find_format( - SequenceT& Input, - FinderT Finder, - FormatterT Formatter) - { - // Concept check - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - detail::find_format_impl( - Input, - Formatter, - Finder(::boost::begin(Input), ::boost::end(Input))); - } - - -// find_format_all generic ----------------------------------------------------------------// - - //! Generic replace all algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. Repeat this for all matching - substrings. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename FinderT, - typename FormatterT> - inline OutputIteratorT find_format_all_copy( - OutputIteratorT Output, - const RangeT& Input, - FinderT Finder, - FormatterT Formatter) - { - // Concept check - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - iterator_range::type> lit_input(::boost::as_literal(Input)); - - return detail::find_format_all_copy_impl( - Output, - lit_input, - Finder, - Formatter, - Finder(::boost::begin(lit_input), ::boost::end(lit_input))); - } - - //! Generic replace all algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT > - inline SequenceT find_format_all_copy( - const SequenceT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - return detail::find_format_all_copy_impl( - Input, - Finder, - Formatter, - Finder( ::boost::begin(Input), ::boost::end(Input) ) ); - } - - //! Generic replace all algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. Repeat this for all matching - substrings.The input is modified in-place. - - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT > - inline void find_format_all( - SequenceT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - detail::find_format_all_impl( - Input, - Finder, - Formatter, - Finder(::boost::begin(Input), ::boost::end(Input))); - - } - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::find_format_copy; - using algorithm::find_format; - using algorithm::find_format_all_copy; - using algorithm::find_format_all; - -} // namespace boost - - -#endif // BOOST_STRING_FIND_FORMAT_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/find_iterator.hpp b/lib/3rdParty/boost/boost/algorithm/string/find_iterator.hpp deleted file mode 100644 index 5a52d92e4..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/find_iterator.hpp +++ /dev/null @@ -1,388 +0,0 @@ -// Boost string_algo library find_iterator.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2004. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_ITERATOR_HPP -#define BOOST_STRING_FIND_ITERATOR_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -/*! \file - Defines find iterator classes. Find iterator repeatedly applies a Finder - to the specified input string to search for matches. Dereferencing - the iterator yields the current match or a range between the last and the current - match depending on the iterator used. -*/ - -namespace boost { - namespace algorithm { - -// find_iterator -----------------------------------------------// - - //! find_iterator - /*! - Find iterator encapsulates a Finder and allows - for incremental searching in a string. - Each increment moves the iterator to the next match. - - Find iterator is a readable forward traversal iterator. - - Dereferencing the iterator yields an iterator_range delimiting - the current match. - */ - template - class find_iterator : - public iterator_facade< - find_iterator, - const iterator_range, - forward_traversal_tag >, - private detail::find_iterator_base - { - private: - // facade support - friend class ::boost::iterator_core_access; - - private: - // typedefs - - typedef detail::find_iterator_base base_type; - typedef BOOST_STRING_TYPENAME - base_type::input_iterator_type input_iterator_type; - typedef BOOST_STRING_TYPENAME - base_type::match_type match_type; - - public: - //! Default constructor - /*! - Construct null iterator. All null iterators are equal. - - \post eof()==true - */ - find_iterator() {} - - //! Copy constructor - /*! - Construct a copy of the find_iterator - */ - find_iterator( const find_iterator& Other ) : - base_type(Other), - m_Match(Other.m_Match), - m_End(Other.m_End) {} - - //! Constructor - /*! - Construct new find_iterator for a given finder - and a range. - */ - template - find_iterator( - IteratorT Begin, - IteratorT End, - FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_Match(Begin,Begin), - m_End(End) - { - increment(); - } - - //! Constructor - /*! - Construct new find_iterator for a given finder - and a range. - */ - template - find_iterator( - RangeT& Col, - FinderT Finder ) : - detail::find_iterator_base(Finder,0) - { - iterator_range::type> lit_col(::boost::as_literal(Col)); - m_Match=::boost::make_iterator_range(::boost::begin(lit_col), ::boost::begin(lit_col)); - m_End=::boost::end(lit_col); - - increment(); - } - - private: - // iterator operations - - // dereference - const match_type& dereference() const - { - return m_Match; - } - - // increment - void increment() - { - m_Match=this->do_find(m_Match.end(),m_End); - } - - // comparison - bool equal( const find_iterator& Other ) const - { - bool bEof=eof(); - bool bOtherEof=Other.eof(); - - return bEof || bOtherEof ? bEof==bOtherEof : - ( - m_Match==Other.m_Match && - m_End==Other.m_End - ); - } - - public: - // operations - - //! Eof check - /*! - Check the eof condition. Eof condition means that - there is nothing more to be searched i.e. find_iterator - is after the last match. - */ - bool eof() const - { - return - this->is_null() || - ( - m_Match.begin() == m_End && - m_Match.end() == m_End - ); - } - - private: - // Attributes - match_type m_Match; - input_iterator_type m_End; - }; - - //! find iterator construction helper - /*! - * Construct a find iterator to iterate through the specified string - */ - template - inline find_iterator< - BOOST_STRING_TYPENAME range_iterator::type> - make_find_iterator( - RangeT& Collection, - FinderT Finder) - { - return find_iterator::type>( - Collection, Finder); - } - -// split iterator -----------------------------------------------// - - //! split_iterator - /*! - Split iterator encapsulates a Finder and allows - for incremental searching in a string. - Unlike the find iterator, split iterator iterates - through gaps between matches. - - Find iterator is a readable forward traversal iterator. - - Dereferencing the iterator yields an iterator_range delimiting - the current match. - */ - template - class split_iterator : - public iterator_facade< - split_iterator, - const iterator_range, - forward_traversal_tag >, - private detail::find_iterator_base - { - private: - // facade support - friend class ::boost::iterator_core_access; - - private: - // typedefs - - typedef detail::find_iterator_base base_type; - typedef BOOST_STRING_TYPENAME - base_type::input_iterator_type input_iterator_type; - typedef BOOST_STRING_TYPENAME - base_type::match_type match_type; - - public: - //! Default constructor - /*! - Construct null iterator. All null iterators are equal. - - \post eof()==true - */ - split_iterator() : - m_Next(), - m_End(), - m_bEof(true) - {} - - //! Copy constructor - /*! - Construct a copy of the split_iterator - */ - split_iterator( const split_iterator& Other ) : - base_type(Other), - m_Match(Other.m_Match), - m_Next(Other.m_Next), - m_End(Other.m_End), - m_bEof(Other.m_bEof) - {} - - //! Constructor - /*! - Construct new split_iterator for a given finder - and a range. - */ - template - split_iterator( - IteratorT Begin, - IteratorT End, - FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_Match(Begin,Begin), - m_Next(Begin), - m_End(End), - m_bEof(false) - { - // force the correct behavior for empty sequences and yield at least one token - if(Begin!=End) - { - increment(); - } - } - //! Constructor - /*! - Construct new split_iterator for a given finder - and a collection. - */ - template - split_iterator( - RangeT& Col, - FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_bEof(false) - { - iterator_range::type> lit_col(::boost::as_literal(Col)); - m_Match=make_iterator_range(::boost::begin(lit_col), ::boost::begin(lit_col)); - m_Next=::boost::begin(lit_col); - m_End=::boost::end(lit_col); - - // force the correct behavior for empty sequences and yield at least one token - if(m_Next!=m_End) - { - increment(); - } - } - - - private: - // iterator operations - - // dereference - const match_type& dereference() const - { - return m_Match; - } - - // increment - void increment() - { - match_type FindMatch=this->do_find( m_Next, m_End ); - - if(FindMatch.begin()==m_End && FindMatch.end()==m_End) - { - if(m_Match.end()==m_End) - { - // Mark iterator as eof - m_bEof=true; - } - } - - m_Match=match_type( m_Next, FindMatch.begin() ); - m_Next=FindMatch.end(); - } - - // comparison - bool equal( const split_iterator& Other ) const - { - bool bEof=eof(); - bool bOtherEof=Other.eof(); - - return bEof || bOtherEof ? bEof==bOtherEof : - ( - m_Match==Other.m_Match && - m_Next==Other.m_Next && - m_End==Other.m_End - ); - } - - public: - // operations - - //! Eof check - /*! - Check the eof condition. Eof condition means that - there is nothing more to be searched i.e. find_iterator - is after the last match. - */ - bool eof() const - { - return this->is_null() || m_bEof; - } - - private: - // Attributes - match_type m_Match; - input_iterator_type m_Next; - input_iterator_type m_End; - bool m_bEof; - }; - - //! split iterator construction helper - /*! - * Construct a split iterator to iterate through the specified collection - */ - template - inline split_iterator< - BOOST_STRING_TYPENAME range_iterator::type> - make_split_iterator( - RangeT& Collection, - FinderT Finder) - { - return split_iterator::type>( - Collection, Finder); - } - - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::find_iterator; - using algorithm::make_find_iterator; - using algorithm::split_iterator; - using algorithm::make_split_iterator; - -} // namespace boost - - -#endif // BOOST_STRING_FIND_ITERATOR_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/finder.hpp b/lib/3rdParty/boost/boost/algorithm/string/finder.hpp deleted file mode 100644 index 93f7ec304..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/finder.hpp +++ /dev/null @@ -1,270 +0,0 @@ -// Boost string_algo library finder.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FINDER_HPP -#define BOOST_STRING_FINDER_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines Finder generators. Finder object is a functor which is able to - find a substring matching a specific criteria in the input. - Finders are used as a pluggable components for replace, find - and split facilities. This header contains generator functions - for finders provided in this library. -*/ - -namespace boost { - namespace algorithm { - -// Finder generators ------------------------------------------// - - //! "First" finder - /*! - Construct the \c first_finder. The finder searches for the first - occurrence of the string in a given input. - The result is given as an \c iterator_range delimiting the match. - - \param Search A substring to be searched for. - \param Comp An element comparison predicate - \return An instance of the \c first_finder object - */ - template - inline detail::first_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - is_equal> - first_finder( const RangeT& Search ) - { - return - detail::first_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( ::boost::as_literal(Search), is_equal() ) ; - } - - //! "First" finder - /*! - \overload - */ - template - inline detail::first_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - PredicateT> - first_finder( - const RangeT& Search, PredicateT Comp ) - { - return - detail::first_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( ::boost::as_literal(Search), Comp ); - } - - //! "Last" finder - /*! - Construct the \c last_finder. The finder searches for the last - occurrence of the string in a given input. - The result is given as an \c iterator_range delimiting the match. - - \param Search A substring to be searched for. - \param Comp An element comparison predicate - \return An instance of the \c last_finder object - */ - template - inline detail::last_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - is_equal> - last_finder( const RangeT& Search ) - { - return - detail::last_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( ::boost::as_literal(Search), is_equal() ); - } - //! "Last" finder - /*! - \overload - */ - template - inline detail::last_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - PredicateT> - last_finder( const RangeT& Search, PredicateT Comp ) - { - return - detail::last_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( ::boost::as_literal(Search), Comp ) ; - } - - //! "Nth" finder - /*! - Construct the \c nth_finder. The finder searches for the n-th (zero-indexed) - occurrence of the string in a given input. - The result is given as an \c iterator_range delimiting the match. - - \param Search A substring to be searched for. - \param Nth An index of the match to be find - \param Comp An element comparison predicate - \return An instance of the \c nth_finder object - */ - template - inline detail::nth_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - is_equal> - nth_finder( - const RangeT& Search, - int Nth) - { - return - detail::nth_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( ::boost::as_literal(Search), Nth, is_equal() ) ; - } - //! "Nth" finder - /*! - \overload - */ - template - inline detail::nth_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - PredicateT> - nth_finder( - const RangeT& Search, - int Nth, - PredicateT Comp ) - { - return - detail::nth_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( ::boost::as_literal(Search), Nth, Comp ); - } - - //! "Head" finder - /*! - Construct the \c head_finder. The finder returns a head of a given - input. The head is a prefix of a string up to n elements in - size. If an input has less then n elements, whole input is - considered a head. - The result is given as an \c iterator_range delimiting the match. - - \param N The size of the head - \return An instance of the \c head_finder object - */ - inline detail::head_finderF - head_finder( int N ) - { - return detail::head_finderF(N); - } - - //! "Tail" finder - /*! - Construct the \c tail_finder. The finder returns a tail of a given - input. The tail is a suffix of a string up to n elements in - size. If an input has less then n elements, whole input is - considered a head. - The result is given as an \c iterator_range delimiting the match. - - \param N The size of the head - \return An instance of the \c tail_finder object - */ - inline detail::tail_finderF - tail_finder( int N ) - { - return detail::tail_finderF(N); - } - - //! "Token" finder - /*! - Construct the \c token_finder. The finder searches for a token - specified by a predicate. It is similar to std::find_if - algorithm, with an exception that it return a range of - instead of a single iterator. - - If "compress token mode" is enabled, adjacent matching tokens are - concatenated into one match. Thus the finder can be used to - search for continuous segments of characters satisfying the - given predicate. - - The result is given as an \c iterator_range delimiting the match. - - \param Pred An element selection predicate - \param eCompress Compress flag - \return An instance of the \c token_finder object - */ - template< typename PredicateT > - inline detail::token_finderF - token_finder( - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off ) - { - return detail::token_finderF( Pred, eCompress ); - } - - //! "Range" finder - /*! - Construct the \c range_finder. The finder does not perform - any operation. It simply returns the given range for - any input. - - \param Begin Beginning of the range - \param End End of the range - \param Range The range. - \return An instance of the \c range_finger object - */ - template< typename ForwardIteratorT > - inline detail::range_finderF - range_finder( - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - return detail::range_finderF( Begin, End ); - } - - //! "Range" finder - /*! - \overload - */ - template< typename ForwardIteratorT > - inline detail::range_finderF - range_finder( iterator_range Range ) - { - return detail::range_finderF( Range ); - } - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::first_finder; - using algorithm::last_finder; - using algorithm::nth_finder; - using algorithm::head_finder; - using algorithm::tail_finder; - using algorithm::token_finder; - using algorithm::range_finder; - -} // namespace boost - - -#endif // BOOST_STRING_FINDER_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/formatter.hpp b/lib/3rdParty/boost/boost/algorithm/string/formatter.hpp deleted file mode 100644 index de8681bc3..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/formatter.hpp +++ /dev/null @@ -1,120 +0,0 @@ -// Boost string_algo library formatter.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_FORMATTER_HPP -#define BOOST_STRING_FORMATTER_HPP - -#include -#include -#include -#include - -#include - -/*! \file - Defines Formatter generators. Formatter is a functor which formats - a string according to given parameters. A Formatter works - in conjunction with a Finder. A Finder can provide additional information - for a specific Formatter. An example of such a cooperation is regex_finder - and regex_formatter. - - Formatters are used as pluggable components for replace facilities. - This header contains generator functions for the Formatters provided in this library. -*/ - -namespace boost { - namespace algorithm { - -// generic formatters ---------------------------------------------------------------// - - //! Constant formatter - /*! - Constructs a \c const_formatter. Const formatter always returns - the same value, regardless of the parameter. - - \param Format A predefined value used as a result for formatting - \return An instance of the \c const_formatter object. - */ - template - inline detail::const_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> > - const_formatter(const RangeT& Format) - { - return detail::const_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> >(::boost::as_literal(Format)); - } - - //! Identity formatter - /*! - Constructs an \c identity_formatter. Identity formatter always returns - the parameter. - - \return An instance of the \c identity_formatter object. - */ - template - inline detail::identity_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> > - identity_formatter() - { - return detail::identity_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> >(); - } - - //! Empty formatter - /*! - Constructs an \c empty_formatter. Empty formatter always returns an empty - sequence. - - \param Input container used to select a correct value_type for the - resulting empty_container<>. - \return An instance of the \c empty_formatter object. - */ - template - inline detail::empty_formatF< - BOOST_STRING_TYPENAME range_value::type> - empty_formatter(const RangeT&) - { - return detail::empty_formatF< - BOOST_STRING_TYPENAME range_value::type>(); - } - - //! Empty formatter - /*! - Constructs a \c dissect_formatter. Dissect formatter uses a specified finder - to extract a portion of the formatted sequence. The first finder's match is returned - as a result - - \param Finder a finder used to select a portion of the formatted sequence - \return An instance of the \c dissect_formatter object. - */ - template - inline detail::dissect_formatF< FinderT > - dissect_formatter(const FinderT& Finder) - { - return detail::dissect_formatF(Finder); - } - - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::const_formatter; - using algorithm::identity_formatter; - using algorithm::empty_formatter; - using algorithm::dissect_formatter; - -} // namespace boost - - -#endif // BOOST_FORMATTER_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/iter_find.hpp b/lib/3rdParty/boost/boost/algorithm/string/iter_find.hpp deleted file mode 100644 index 10424abc7..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/iter_find.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// Boost string_algo library iter_find.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_ITER_FIND_HPP -#define BOOST_STRING_ITER_FIND_HPP - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines generic split algorithms. Split algorithms can be - used to divide a sequence into several part according - to a given criteria. Result is given as a 'container - of containers' where elements are copies or references - to extracted parts. - - There are two algorithms provided. One iterates over matching - substrings, the other one over the gaps between these matches. -*/ - -namespace boost { - namespace algorithm { - -// iterate find ---------------------------------------------------// - - //! Iter find algorithm - /*! - This algorithm executes a given finder in iteration on the input, - until the end of input is reached, or no match is found. - Iteration is done using built-in find_iterator, so the real - searching is performed only when needed. - In each iteration new match is found and added to the result. - - \param Result A 'container container' to contain the result of search. - Both outer and inner container must have constructor taking a pair - of iterators as an argument. - Typical type of the result is - \c std::vector> - (each element of such a vector will container a range delimiting - a match). - \param Input A container which will be searched. - \param Finder A Finder object used for searching - \return A reference to the result - - \note Prior content of the result will be overwritten. - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename FinderT > - inline SequenceSequenceT& - iter_find( - SequenceSequenceT& Result, - RangeT& Input, - FinderT Finder ) - { - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_iterator::type> - )); - - iterator_range::type> lit_input(::boost::as_literal(Input)); - - typedef BOOST_STRING_TYPENAME - range_iterator::type input_iterator_type; - typedef find_iterator find_iterator_type; - typedef detail::copy_iterator_rangeF< - BOOST_STRING_TYPENAME - range_value::type, - input_iterator_type> copy_range_type; - - input_iterator_type InputEnd=::boost::end(lit_input); - - typedef transform_iterator - transform_iter_type; - - transform_iter_type itBegin= - ::boost::make_transform_iterator( - find_iterator_type( ::boost::begin(lit_input), InputEnd, Finder ), - copy_range_type()); - - transform_iter_type itEnd= - ::boost::make_transform_iterator( - find_iterator_type(), - copy_range_type()); - - SequenceSequenceT Tmp(itBegin, itEnd); - - Result.swap(Tmp); - return Result; - } - -// iterate split ---------------------------------------------------// - - //! Split find algorithm - /*! - This algorithm executes a given finder in iteration on the input, - until the end of input is reached, or no match is found. - Iteration is done using built-in find_iterator, so the real - searching is performed only when needed. - Each match is used as a separator of segments. These segments are then - returned in the result. - - \param Result A 'container container' to contain the result of search. - Both outer and inner container must have constructor taking a pair - of iterators as an argument. - Typical type of the result is - \c std::vector> - (each element of such a vector will container a range delimiting - a match). - \param Input A container which will be searched. - \param Finder A finder object used for searching - \return A reference to the result - - \note Prior content of the result will be overwritten. - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename FinderT > - inline SequenceSequenceT& - iter_split( - SequenceSequenceT& Result, - RangeT& Input, - FinderT Finder ) - { - BOOST_CONCEPT_ASSERT(( - FinderConcept::type> - )); - - iterator_range::type> lit_input(::boost::as_literal(Input)); - - typedef BOOST_STRING_TYPENAME - range_iterator::type input_iterator_type; - typedef split_iterator find_iterator_type; - typedef detail::copy_iterator_rangeF< - BOOST_STRING_TYPENAME - range_value::type, - input_iterator_type> copy_range_type; - - input_iterator_type InputEnd=::boost::end(lit_input); - - typedef transform_iterator - transform_iter_type; - - transform_iter_type itBegin= - ::boost::make_transform_iterator( - find_iterator_type( ::boost::begin(lit_input), InputEnd, Finder ), - copy_range_type() ); - - transform_iter_type itEnd= - ::boost::make_transform_iterator( - find_iterator_type(), - copy_range_type() ); - - SequenceSequenceT Tmp(itBegin, itEnd); - - Result.swap(Tmp); - return Result; - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::iter_find; - using algorithm::iter_split; - -} // namespace boost - - -#endif // BOOST_STRING_ITER_FIND_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/join.hpp b/lib/3rdParty/boost/boost/algorithm/string/join.hpp deleted file mode 100644 index b871eb44f..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/join.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// Boost string_algo library join.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_JOIN_HPP -#define BOOST_STRING_JOIN_HPP - -#include -#include -#include -#include - -/*! \file - Defines join algorithm. - - Join algorithm is a counterpart to split algorithms. - It joins strings from a 'list' by adding user defined separator. - Additionally there is a version that allows simple filtering - by providing a predicate. -*/ - -namespace boost { - namespace algorithm { - -// join --------------------------------------------------------------// - - //! Join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T> - inline typename range_value::type - join( - const SequenceSequenceT& Input, - const Range1T& Separator) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::boost::begin(Input); - InputIteratorT itEnd=::boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - // Append first element - if(itBegin!=itEnd) - { - detail::insert(Result, ::boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - // Add separator - detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::boost::end(Result), *itBegin); - } - - return Result; - } - -// join_if ----------------------------------------------------------// - - //! Conditional join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. Only segments that - satisfy the predicate will be added to the result. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \param Pred A segment selection predicate - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T, typename PredicateT> - inline typename range_value::type - join_if( - const SequenceSequenceT& Input, - const Range1T& Separator, - PredicateT Pred) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::boost::begin(Input); - InputIteratorT itEnd=::boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - // Roll to the first element that will be added - while(itBegin!=itEnd && !Pred(*itBegin)) ++itBegin; - // Add this element - if(itBegin!=itEnd) - { - detail::insert(Result, ::boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - if(Pred(*itBegin)) - { - // Add separator - detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::boost::end(Result), *itBegin); - } - } - - return Result; - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::join; - using algorithm::join_if; - -} // namespace boost - - -#endif // BOOST_STRING_JOIN_HPP - diff --git a/lib/3rdParty/boost/boost/algorithm/string/predicate.hpp b/lib/3rdParty/boost/boost/algorithm/string/predicate.hpp deleted file mode 100644 index 0879829b5..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/predicate.hpp +++ /dev/null @@ -1,475 +0,0 @@ -// Boost string_algo library predicate.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_PREDICATE_HPP -#define BOOST_STRING_PREDICATE_HPP - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file boost/algorithm/string/predicate.hpp - Defines string-related predicates. - The predicates determine whether a substring is contained in the input string - under various conditions: a string starts with the substring, ends with the - substring, simply contains the substring or if both strings are equal. - Additionaly the algorithm \c all() checks all elements of a container to satisfy a - condition. - - All predicates provide the strong exception guarantee. -*/ - -namespace boost { - namespace algorithm { - -// starts_with predicate -----------------------------------------------// - - //! 'Starts with' predicate - /*! - This predicate holds when the test string is a prefix of the Input. - In other words, if the input starts with the test. - When the optional predicate is specified, it is used for character-wise - comparison. - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool starts_with( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - iterator_range::type> lit_test(::boost::as_literal(Test)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator2T; - - Iterator1T InputEnd=::boost::end(lit_input); - Iterator2T TestEnd=::boost::end(lit_test); - - Iterator1T it=::boost::begin(lit_input); - Iterator2T pit=::boost::begin(lit_test); - for(; - it!=InputEnd && pit!=TestEnd; - ++it,++pit) - { - if( !(Comp(*it,*pit)) ) - return false; - } - - return pit==TestEnd; - } - - //! 'Starts with' predicate - /*! - \overload - */ - template - inline bool starts_with( - const Range1T& Input, - const Range2T& Test) - { - return ::boost::algorithm::starts_with(Input, Test, is_equal()); - } - - //! 'Starts with' predicate ( case insensitive ) - /*! - This predicate holds when the test string is a prefix of the Input. - In other words, if the input starts with the test. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool istarts_with( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::starts_with(Input, Test, is_iequal(Loc)); - } - - -// ends_with predicate -----------------------------------------------// - - //! 'Ends with' predicate - /*! - This predicate holds when the test string is a suffix of the Input. - In other words, if the input ends with the test. - When the optional predicate is specified, it is used for character-wise - comparison. - - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool ends_with( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - iterator_range::type> lit_test(::boost::as_literal(Test)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return detail:: - ends_with_iter_select( - ::boost::begin(lit_input), - ::boost::end(lit_input), - ::boost::begin(lit_test), - ::boost::end(lit_test), - Comp, - category()); - } - - - //! 'Ends with' predicate - /*! - \overload - */ - template - inline bool ends_with( - const Range1T& Input, - const Range2T& Test) - { - return ::boost::algorithm::ends_with(Input, Test, is_equal()); - } - - //! 'Ends with' predicate ( case insensitive ) - /*! - This predicate holds when the test container is a suffix of the Input. - In other words, if the input ends with the test. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool iends_with( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::ends_with(Input, Test, is_iequal(Loc)); - } - -// contains predicate -----------------------------------------------// - - //! 'Contains' predicate - /*! - This predicate holds when the test container is contained in the Input. - When the optional predicate is specified, it is used for character-wise - comparison. - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool contains( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - iterator_range::type> lit_test(::boost::as_literal(Test)); - - if (::boost::empty(lit_test)) - { - // Empty range is contained always - return true; - } - - // Use the temporary variable to make VACPP happy - bool bResult=(::boost::algorithm::first_finder(lit_test,Comp)(::boost::begin(lit_input), ::boost::end(lit_input))); - return bResult; - } - - //! 'Contains' predicate - /*! - \overload - */ - template - inline bool contains( - const Range1T& Input, - const Range2T& Test) - { - return ::boost::algorithm::contains(Input, Test, is_equal()); - } - - //! 'Contains' predicate ( case insensitive ) - /*! - This predicate holds when the test container is contained in the Input. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool icontains( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::contains(Input, Test, is_iequal(Loc)); - } - -// equals predicate -----------------------------------------------// - - //! 'Equals' predicate - /*! - This predicate holds when the test container is equal to the - input container i.e. all elements in both containers are same. - When the optional predicate is specified, it is used for character-wise - comparison. - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This is a two-way version of \c std::equal algorithm - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool equals( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - iterator_range::type> lit_test(::boost::as_literal(Test)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator2T; - - Iterator1T InputEnd=::boost::end(lit_input); - Iterator2T TestEnd=::boost::end(lit_test); - - Iterator1T it=::boost::begin(lit_input); - Iterator2T pit=::boost::begin(lit_test); - for(; - it!=InputEnd && pit!=TestEnd; - ++it,++pit) - { - if( !(Comp(*it,*pit)) ) - return false; - } - - return (pit==TestEnd) && (it==InputEnd); - } - - //! 'Equals' predicate - /*! - \overload - */ - template - inline bool equals( - const Range1T& Input, - const Range2T& Test) - { - return ::boost::algorithm::equals(Input, Test, is_equal()); - } - - //! 'Equals' predicate ( case insensitive ) - /*! - This predicate holds when the test container is equal to the - input container i.e. all elements in both containers are same. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This is a two-way version of \c std::equal algorithm - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool iequals( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::equals(Input, Test, is_iequal(Loc)); - } - -// lexicographical_compare predicate -----------------------------// - - //! Lexicographical compare predicate - /*! - This predicate is an overload of std::lexicographical_compare - for range arguments - - It check whether the first argument is lexicographically less - then the second one. - - If the optional predicate is specified, it is used for character-wise - comparison - - \param Arg1 First argument - \param Arg2 Second argument - \param Pred Comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool lexicographical_compare( - const Range1T& Arg1, - const Range2T& Arg2, - PredicateT Pred) - { - iterator_range::type> lit_arg1(::boost::as_literal(Arg1)); - iterator_range::type> lit_arg2(::boost::as_literal(Arg2)); - - return std::lexicographical_compare( - ::boost::begin(lit_arg1), - ::boost::end(lit_arg1), - ::boost::begin(lit_arg2), - ::boost::end(lit_arg2), - Pred); - } - - //! Lexicographical compare predicate - /*! - \overload - */ - template - inline bool lexicographical_compare( - const Range1T& Arg1, - const Range2T& Arg2) - { - return ::boost::algorithm::lexicographical_compare(Arg1, Arg2, is_less()); - } - - //! Lexicographical compare predicate (case-insensitive) - /*! - This predicate is an overload of std::lexicographical_compare - for range arguments. - It check whether the first argument is lexicographically less - then the second one. - Elements are compared case insensitively - - - \param Arg1 First argument - \param Arg2 Second argument - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool ilexicographical_compare( - const Range1T& Arg1, - const Range2T& Arg2, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::lexicographical_compare(Arg1, Arg2, is_iless(Loc)); - } - - -// all predicate -----------------------------------------------// - - //! 'All' predicate - /*! - This predicate holds it all its elements satisfy a given - condition, represented by the predicate. - - \param Input An input sequence - \param Pred A predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool all( - const RangeT& Input, - PredicateT Pred) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - - Iterator1T InputEnd=::boost::end(lit_input); - for( Iterator1T It=::boost::begin(lit_input); It!=InputEnd; ++It) - { - if (!Pred(*It)) - return false; - } - - return true; - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::starts_with; - using algorithm::istarts_with; - using algorithm::ends_with; - using algorithm::iends_with; - using algorithm::contains; - using algorithm::icontains; - using algorithm::equals; - using algorithm::iequals; - using algorithm::all; - using algorithm::lexicographical_compare; - using algorithm::ilexicographical_compare; - -} // namespace boost - - -#endif // BOOST_STRING_PREDICATE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/predicate_facade.hpp b/lib/3rdParty/boost/boost/algorithm/string/predicate_facade.hpp deleted file mode 100644 index a9753fc2a..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/predicate_facade.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// Boost string_algo library predicate_facade.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_PREDICATE_FACADE_HPP -#define BOOST_STRING_PREDICATE_FACADE_HPP - -#include - -/* - \file boost/algorith/string/predicate_facade.hpp - This file contains predicate_facade definition. This template class is used - to identify classification predicates, so they can be combined using - composition operators. -*/ - -namespace boost { - namespace algorithm { - -// predicate facade ------------------------------------------------------// - - //! Predicate facade - /*! - This class allows to recognize classification - predicates, so that they can be combined using - composition operators. - Every classification predicate must be derived from this class. - */ - template - struct predicate_facade {}; - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_CLASSIFICATION_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/regex.hpp b/lib/3rdParty/boost/boost/algorithm/string/regex.hpp deleted file mode 100644 index a6c7c60ae..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/regex.hpp +++ /dev/null @@ -1,646 +0,0 @@ -// Boost string_algo library regex.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_REGEX_HPP -#define BOOST_STRING_REGEX_HPP - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/*! \file - Defines regex variants of the algorithms. -*/ - -namespace boost { - namespace algorithm { - -// find_regex -----------------------------------------------// - - //! Find regex algorithm - /*! - Search for a substring matching the given regex in the input. - - \param Input A container which will be searched. - \param Rx A regular expression - \param Flags Regex options - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename RangeT, - typename CharT, - typename RegexTraitsT> - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type > - find_regex( - RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - iterator_range::type> lit_input(::boost::as_literal(Input)); - - return ::boost::algorithm::regex_finder(Rx,Flags)( - ::boost::begin(lit_input), ::boost::end(lit_input) ); - } - -// replace_regex --------------------------------------------------------------------// - - //! Replace regex algorithm - /*! - Search for a substring matching given regex and format it with - the specified format. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline OutputIteratorT replace_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline SequenceT replace_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace regex algorithm - /*! - Search for a substring matching given regex and format it with - the specified format. The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline void replace_regex( - SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::regex_formatter( Format, Flags ) ); - } - -// replace_all_regex --------------------------------------------------------------------// - - //! Replace all regex algorithm - /*! - Format all substrings, matching given regex, with the specified format. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline OutputIteratorT replace_all_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::boost::algorithm::find_format_all_copy( - Output, - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace all regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline SequenceT replace_all_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::boost::algorithm::find_format_all_copy( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace all regex algorithm - /*! - Format all substrings, matching given regex, with the specified format. - The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline void replace_all_regex( - SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - ::boost::algorithm::find_format_all( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::regex_formatter( Format, Flags ) ); - } - -// erase_regex --------------------------------------------------------------------// - - //! Erase regex algorithm - /*! - Remove a substring matching given regex from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Rx A regular expression - \param Flags Regex options - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename CharT, - typename RegexTraitsT > - inline OutputIteratorT erase_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT > - inline SequenceT erase_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase regex algorithm - /*! - Remove a substring matching given regex from the input. - The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT > - inline void erase_regex( - SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::empty_formatter( Input ) ); - } - -// erase_all_regex --------------------------------------------------------------------// - - //! Erase all regex algorithm - /*! - Erase all substrings, matching given regex, from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Rx A regular expression - \param Flags Regex options - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename CharT, - typename RegexTraitsT > - inline OutputIteratorT erase_all_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::boost::algorithm::find_format_all_copy( - Output, - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase all regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT > - inline SequenceT erase_all_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::boost::algorithm::find_format_all_copy( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase all regex algorithm - /*! - Erase all substrings, matching given regex, from the input. - The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT> - inline void erase_all_regex( - SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - ::boost::algorithm::find_format_all( - Input, - ::boost::algorithm::regex_finder( Rx, Flags ), - ::boost::algorithm::empty_formatter( Input ) ); - } - -// find_all_regex ------------------------------------------------------------------// - - //! Find all regex algorithm - /*! - This algorithm finds all substrings matching the give regex - in the input. - - Each part is copied and added as a new element to the output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings. - \param Input A container which will be searched. - \param Rx A regular expression - \param Flags Regex options - \return A reference to the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename CharT, - typename RegexTraitsT > - inline SequenceSequenceT& find_all_regex( - SequenceSequenceT& Result, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::boost::algorithm::iter_find( - Result, - Input, - ::boost::algorithm::regex_finder(Rx,Flags) ); - } - -// split_regex ------------------------------------------------------------------// - - //! Split regex algorithm - /*! - Tokenize expression. This function is equivalent to C strtok. Input - sequence is split into tokens, separated by separators. Separator - is an every match of the given regex. - Each part is copied and added as a new element to the output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings. - \param Input A container which will be searched. - \param Rx A regular expression - \param Flags Regex options - \return A reference to the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename CharT, - typename RegexTraitsT > - inline SequenceSequenceT& split_regex( - SequenceSequenceT& Result, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::boost::algorithm::iter_split( - Result, - Input, - ::boost::algorithm::regex_finder(Rx,Flags) ); - } - -// join_if ------------------------------------------------------------------// - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! Conditional join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. Only segments that - match the given regular expression will be added to the result - - This is a specialization of join_if algorithm. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \param Rx A regular expression - \param Flags Regex options - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename Range1T, - typename CharT, - typename RegexTraitsT > - inline typename range_value::type - join_if( - const SequenceSequenceT& Input, - const Range1T& Separator, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::boost::begin(Input); - InputIteratorT itEnd=::boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - - // Roll to the first element that will be added - while( - itBegin!=itEnd && - !::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags)) ++itBegin; - - // Add this element - if(itBegin!=itEnd) - { - detail::insert(Result, ::boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - if(::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags)) - { - // Add separator - detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::boost::end(Result), *itBegin); - } - } - - return Result; - } - -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! Conditional join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. Only segments that - match the given regular expression will be added to the result - - This is a specialization of join_if algorithm. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \param Rx A regular expression - \param Flags Regex options - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename Range1T, - typename CharT, - typename RegexTraitsT > - inline typename range_value::type - join_if_regex( - const SequenceSequenceT& Input, - const Range1T& Separator, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::boost::begin(Input); - InputIteratorT itEnd=::boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - - // Roll to the first element that will be added - while( - itBegin!=itEnd && - !::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags)) ++itBegin; - - // Add this element - if(itBegin!=itEnd) - { - detail::insert(Result, ::boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - if(::boost::regex_match(::boost::begin(*itBegin), ::boost::end(*itBegin), Rx, Flags)) - { - // Add separator - detail::insert(Result, ::boost::end(Result), ::boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::boost::end(Result), *itBegin); - } - } - - return Result; - } - - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - } // namespace algorithm - - // pull names into the boost namespace - using algorithm::find_regex; - using algorithm::replace_regex; - using algorithm::replace_regex_copy; - using algorithm::replace_all_regex; - using algorithm::replace_all_regex_copy; - using algorithm::erase_regex; - using algorithm::erase_regex_copy; - using algorithm::erase_all_regex; - using algorithm::erase_all_regex_copy; - using algorithm::find_all_regex; - using algorithm::split_regex; - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - using algorithm::join_if; -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - using algorithm::join_if_regex; -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -} // namespace boost - - -#endif // BOOST_STRING_REGEX_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/regex_find_format.hpp b/lib/3rdParty/boost/boost/algorithm/string/regex_find_format.hpp deleted file mode 100644 index 409afc2ba..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/regex_find_format.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// Boost string_algo library regex_find_format.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP -#define BOOST_STRING_REGEX_FIND_FORMAT_HPP - -#include -#include -#include -#include - -/*! \file - Defines the \c regex_finder and \c regex_formatter generators. These two functors - are designed to work together. \c regex_formatter uses additional information - about a match contained in the regex_finder search result. -*/ - -namespace boost { - namespace algorithm { - -// regex_finder -----------------------------------------------// - - //! "Regex" finder - /*! - Construct the \c regex_finder. Finder uses the regex engine to search - for a match. - Result is given in \c regex_search_result. This is an extension - of the iterator_range. In addition it contains match results - from the \c regex_search algorithm. - - \param Rx A regular expression - \param MatchFlags Regex search options - \return An instance of the \c regex_finder object - */ - template< - typename CharT, - typename RegexTraitsT> - inline detail::find_regexF< basic_regex > - regex_finder( - const basic_regex& Rx, - match_flag_type MatchFlags=match_default ) - { - return detail:: - find_regexF< - basic_regex >( Rx, MatchFlags ); - } - -// regex_formater ---------------------------------------------// - - //! Regex formatter - /*! - Construct the \c regex_formatter. Regex formatter uses the regex engine to - format a match found by the \c regex_finder. - This formatted it designed to closely cooperate with \c regex_finder. - - \param Format Regex format definition - \param Flags Format flags - \return An instance of the \c regex_formatter functor - */ - template< - typename CharT, - typename TraitsT, typename AllocT > - inline detail::regex_formatF< std::basic_string< CharT, TraitsT, AllocT > > - regex_formatter( - const std::basic_string& Format, - match_flag_type Flags=format_default ) - { - return - detail::regex_formatF< std::basic_string >( - Format, - Flags ); - } - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::regex_finder; - using algorithm::regex_formatter; - -} // namespace boost - - -#endif // BOOST_STRING_REGEX_FIND_FORMAT_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/replace.hpp b/lib/3rdParty/boost/boost/algorithm/string/replace.hpp deleted file mode 100644 index 2adb031c5..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/replace.hpp +++ /dev/null @@ -1,926 +0,0 @@ -// Boost string_algo library replace.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_REPLACE_HPP -#define BOOST_STRING_REPLACE_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/*! \file - Defines various replace algorithms. Each algorithm replaces - part(s) of the input according to set of searching and replace criteria. -*/ - -namespace boost { - namespace algorithm { - -// replace_range --------------------------------------------------------------------// - - //! Replace range algorithm - /*! - Replace the given range in the input string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param SearchRange A range in the input to be substituted - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT replace_range_copy( - OutputIteratorT Output, - const Range1T& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange, - const Range2T& Format) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::range_finder(SearchRange), - ::boost::algorithm::const_formatter(Format)); - } - - //! Replace range algorithm - /*! - \overload - */ - template - inline SequenceT replace_range_copy( - const SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange, - const RangeT& Format) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::range_finder(SearchRange), - ::boost::algorithm::const_formatter(Format)); - } - - //! Replace range algorithm - /*! - Replace the given range in the input string. - The input sequence is modified in-place. - - \param Input An input string - \param SearchRange A range in the input to be substituted - \param Format A substitute string - */ - template - inline void replace_range( - SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_iterator::type>& SearchRange, - const RangeT& Format) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::range_finder(SearchRange), - ::boost::algorithm::const_formatter(Format)); - } - -// replace_first --------------------------------------------------------------------// - - //! Replace first algorithm - /*! - Replace the first match of the search substring in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace first algorithm - /*! - \overload - */ - template - inline SequenceT replace_first_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace first algorithm - /*! - replace the first match of the search substring in the input - with the format string. The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - */ - template - inline void replace_first( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_first ( case insensitive ) ---------------------------------------------// - - //! Replace first algorithm ( case insensitive ) - /*! - Replace the first match of the search substring in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace first algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_first_copy( - const SequenceT& Input, - const Range2T& Search, - const Range1T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace first algorithm ( case insensitive ) - /*! - Replace the first match of the search substring in the input - with the format string. Input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_first( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_last --------------------------------------------------------------------// - - //! Replace last algorithm - /*! - Replace the last match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::last_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace last algorithm - /*! - \overload - */ - template - inline SequenceT replace_last_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::last_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace last algorithm - /*! - Replace the last match of the search string in the input - with the format string. Input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - */ - template - inline void replace_last( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::last_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_last ( case insensitive ) -----------------------------------------------// - - //! Replace last algorithm ( case insensitive ) - /*! - Replace the last match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace last algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_last_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace last algorithm ( case insensitive ) - /*! - Replace the last match of the search string in the input - with the format string.The input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_last( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_nth --------------------------------------------------------------------// - - //! Replace nth algorithm - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth, - const Range3T& Format ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::nth_finder(Search, Nth), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace nth algorithm - /*! - \overload - */ - template - inline SequenceT replace_nth_copy( - const SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::nth_finder(Search, Nth), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace nth algorithm - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. Input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - */ - template - inline void replace_nth( - SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::nth_finder(Search, Nth), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_nth ( case insensitive ) -----------------------------------------------// - - //! Replace nth algorithm ( case insensitive ) - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc) ), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace nth algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_nth_copy( - const SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace nth algorithm ( case insensitive ) - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. Input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_nth( - SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_all --------------------------------------------------------------------// - - //! Replace all algorithm - /*! - Replace all occurrences of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format ) - { - return ::boost::algorithm::find_format_all_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace all algorithm - /*! - \overload - */ - template - inline SequenceT replace_all_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return ::boost::algorithm::find_format_all_copy( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace all algorithm - /*! - Replace all occurrences of the search string in the input - with the format string. The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - */ - template - inline void replace_all( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - ::boost::algorithm::find_format_all( - Input, - ::boost::algorithm::first_finder(Search), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_all ( case insensitive ) -----------------------------------------------// - - //! Replace all algorithm ( case insensitive ) - /*! - Replace all occurrences of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_all_copy( - Output, - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace all algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_all_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::find_format_all_copy( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace all algorithm ( case insensitive ) - /*! - Replace all occurrences of the search string in the input - with the format string.The input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_all( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - ::boost::algorithm::find_format_all( - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_head --------------------------------------------------------------------// - - //! Replace head algorithm - /*! - Replace the head of the input with the given format string. - The head is a prefix of a string of given size. - If the sequence is shorter then required, whole string if - considered to be the head. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT replace_head_copy( - OutputIteratorT Output, - const Range1T& Input, - int N, - const Range2T& Format ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::head_finder(N), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace head algorithm - /*! - \overload - */ - template - inline SequenceT replace_head_copy( - const SequenceT& Input, - int N, - const RangeT& Format ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::head_finder(N), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace head algorithm - /*! - Replace the head of the input with the given format string. - The head is a prefix of a string of given size. - If the sequence is shorter then required, the whole string is - considered to be the head. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - */ - template - inline void replace_head( - SequenceT& Input, - int N, - const RangeT& Format ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::head_finder(N), - ::boost::algorithm::const_formatter(Format) ); - } - -// replace_tail --------------------------------------------------------------------// - - //! Replace tail algorithm - /*! - Replace the tail of the input with the given format string. - The tail is a suffix of a string of given size. - If the sequence is shorter then required, whole string is - considered to be the tail. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT replace_tail_copy( - OutputIteratorT Output, - const Range1T& Input, - int N, - const Range2T& Format ) - { - return ::boost::algorithm::find_format_copy( - Output, - Input, - ::boost::algorithm::tail_finder(N), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace tail algorithm - /*! - \overload - */ - template - inline SequenceT replace_tail_copy( - const SequenceT& Input, - int N, - const RangeT& Format ) - { - return ::boost::algorithm::find_format_copy( - Input, - ::boost::algorithm::tail_finder(N), - ::boost::algorithm::const_formatter(Format) ); - } - - //! Replace tail algorithm - /*! - Replace the tail of the input with the given format sequence. - The tail is a suffix of a string of given size. - If the sequence is shorter then required, the whole string is - considered to be the tail. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - */ - template - inline void replace_tail( - SequenceT& Input, - int N, - const RangeT& Format ) - { - ::boost::algorithm::find_format( - Input, - ::boost::algorithm::tail_finder(N), - ::boost::algorithm::const_formatter(Format) ); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::replace_range_copy; - using algorithm::replace_range; - using algorithm::replace_first_copy; - using algorithm::replace_first; - using algorithm::ireplace_first_copy; - using algorithm::ireplace_first; - using algorithm::replace_last_copy; - using algorithm::replace_last; - using algorithm::ireplace_last_copy; - using algorithm::ireplace_last; - using algorithm::replace_nth_copy; - using algorithm::replace_nth; - using algorithm::ireplace_nth_copy; - using algorithm::ireplace_nth; - using algorithm::replace_all_copy; - using algorithm::replace_all; - using algorithm::ireplace_all_copy; - using algorithm::ireplace_all; - using algorithm::replace_head_copy; - using algorithm::replace_head; - using algorithm::replace_tail_copy; - using algorithm::replace_tail; - -} // namespace boost - -#endif // BOOST_REPLACE_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/sequence_traits.hpp b/lib/3rdParty/boost/boost/algorithm/string/sequence_traits.hpp deleted file mode 100644 index be151f8d3..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/sequence_traits.hpp +++ /dev/null @@ -1,120 +0,0 @@ -// Boost string_algo library sequence_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP -#define BOOST_STRING_SEQUENCE_TRAITS_HPP - -#include -#include -#include - -/*! \file - Traits defined in this header are used by various algorithms to achieve - better performance for specific containers. - Traits provide fail-safe defaults. If a container supports some of these - features, it is possible to specialize the specific trait for this container. - For lacking compilers, it is possible of define an override for a specific tester - function. - - Due to a language restriction, it is not currently possible to define specializations for - stl containers without including the corresponding header. To decrease the overhead - needed by this inclusion, user can selectively include a specialization - header for a specific container. They are located in boost/algorithm/string/stl - directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp - header which contains specializations for all stl containers. -*/ - -namespace boost { - namespace algorithm { - -// sequence traits -----------------------------------------------// - - - //! Native replace trait - /*! - This trait specifies that the sequence has \c std::string like replace method - */ - template< typename T > - class has_native_replace - { - - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - - typedef mpl::bool_::value> type; - }; - - - //! Stable iterators trait - /*! - This trait specifies that the sequence has stable iterators. It means - that operations like insert/erase/replace do not invalidate iterators. - */ - template< typename T > - class has_stable_iterators - { - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - typedef mpl::bool_::value> type; - }; - - - //! Const time insert trait - /*! - This trait specifies that the sequence's insert method has - constant time complexity. - */ - template< typename T > - class has_const_time_insert - { - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - typedef mpl::bool_::value> type; - }; - - - //! Const time erase trait - /*! - This trait specifies that the sequence's erase method has - constant time complexity. - */ - template< typename T > - class has_const_time_erase - { - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - typedef mpl::bool_::value> type; - }; - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_SEQUENCE_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/split.hpp b/lib/3rdParty/boost/boost/algorithm/string/split.hpp deleted file mode 100644 index cae712c07..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/split.hpp +++ /dev/null @@ -1,163 +0,0 @@ -// Boost string_algo library split.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_SPLIT_HPP -#define BOOST_STRING_SPLIT_HPP - -#include - -#include -#include -#include - -/*! \file - Defines basic split algorithms. - Split algorithms can be used to divide a string - into several parts according to given criteria. - - Each part is copied and added as a new element to the - output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> -*/ - -namespace boost { - namespace algorithm { - -// find_all ------------------------------------------------------------// - - //! Find all algorithm - /*! - This algorithm finds all occurrences of the search string - in the input. - - Each part is copied and added as a new element to the - output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings - \param Input A container which will be searched. - \param Search A substring to be searched for. - \return A reference the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T, typename Range2T > - inline SequenceSequenceT& find_all( - SequenceSequenceT& Result, - Range1T& Input, - const Range2T& Search) - { - return ::boost::algorithm::iter_find( - Result, - Input, - ::boost::algorithm::first_finder(Search) ); - } - - //! Find all algorithm ( case insensitive ) - /*! - This algorithm finds all occurrences of the search string - in the input. - Each part is copied and added as a new element to the - output container. Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - Searching is case insensitive. - - \param Result A container that can hold copies of references to the substrings - \param Input A container which will be searched. - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - \return A reference the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T, typename Range2T > - inline SequenceSequenceT& ifind_all( - SequenceSequenceT& Result, - Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return ::boost::algorithm::iter_find( - Result, - Input, - ::boost::algorithm::first_finder(Search, is_iequal(Loc) ) ); - } - - -// tokenize -------------------------------------------------------------// - - //! Split algorithm - /*! - Tokenize expression. This function is equivalent to C strtok. Input - sequence is split into tokens, separated by separators. Separators - are given by means of the predicate. - - Each part is copied and added as a new element to the - output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings - \param Input A container which will be searched. - \param Pred A predicate to identify separators. This predicate is - supposed to return true if a given element is a separator. - \param eCompress If eCompress argument is set to token_compress_on, adjacent - separators are merged together. Otherwise, every two separators - delimit a token. - \return A reference the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename RangeT, typename PredicateT > - inline SequenceSequenceT& split( - SequenceSequenceT& Result, - RangeT& Input, - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off ) - { - return ::boost::algorithm::iter_split( - Result, - Input, - ::boost::algorithm::token_finder( Pred, eCompress ) ); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::find_all; - using algorithm::ifind_all; - using algorithm::split; - -} // namespace boost - - -#endif // BOOST_STRING_SPLIT_HPP - diff --git a/lib/3rdParty/boost/boost/algorithm/string/std/list_traits.hpp b/lib/3rdParty/boost/boost/algorithm/string/std/list_traits.hpp deleted file mode 100644 index a3cf7bb18..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/std/list_traits.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Boost string_algo library list_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_STD_LIST_TRAITS_HPP -#define BOOST_STRING_STD_LIST_TRAITS_HPP - -#include -#include -#include - -namespace boost { - namespace algorithm { - -// std::list<> traits -----------------------------------------------// - - - // stable iterators trait - template - class has_stable_iterators< ::std::list > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time insert trait - template - class has_const_time_insert< ::std::list > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time erase trait - template - class has_const_time_erase< ::std::list > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_STD_LIST_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/std/rope_traits.hpp b/lib/3rdParty/boost/boost/algorithm/string/std/rope_traits.hpp deleted file mode 100644 index 637059a55..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/std/rope_traits.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// Boost string_algo library string_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_STD_ROPE_TRAITS_HPP -#define BOOST_STRING_STD_ROPE_TRAITS_HPP - -#include -#include -#include - -namespace boost { - namespace algorithm { - -// SGI's std::rope<> traits -----------------------------------------------// - - - // native replace trait - template - class has_native_replace< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - // stable iterators trait - template - class has_stable_iterators< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - // const time insert trait - template - class has_const_time_insert< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - // const time erase trait - template - class has_const_time_erase< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_ROPE_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/std/slist_traits.hpp b/lib/3rdParty/boost/boost/algorithm/string/std/slist_traits.hpp deleted file mode 100644 index c30b93c73..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/std/slist_traits.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// Boost string_algo library slist_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_STD_SLIST_TRAITS_HPP -#define BOOST_STRING_STD_SLIST_TRAITS_HPP - -#include -#include -#include BOOST_SLIST_HEADER -#include - -namespace boost { - namespace algorithm { - -// SGI's std::slist<> traits -----------------------------------------------// - - - // stable iterators trait - template - class has_stable_iterators< BOOST_STD_EXTENSION_NAMESPACE::slist > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time insert trait - template - class has_const_time_insert< BOOST_STD_EXTENSION_NAMESPACE::slist > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time erase trait - template - class has_const_time_erase< BOOST_STD_EXTENSION_NAMESPACE::slist > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_STD_LIST_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/std/string_traits.hpp b/lib/3rdParty/boost/boost/algorithm/string/std/string_traits.hpp deleted file mode 100644 index c9408307d..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/std/string_traits.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// Boost string_algo library string_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_STD_STRING_TRAITS_HPP -#define BOOST_STRING_STD_STRING_TRAITS_HPP - -#include -#include -#include - -namespace boost { - namespace algorithm { - -// std::basic_string<> traits -----------------------------------------------// - - - // native replace trait - template - class has_native_replace< std::basic_string > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true } ; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - typedef mpl::bool_::value> type; - }; - - - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_LIST_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/std_containers_traits.hpp b/lib/3rdParty/boost/boost/algorithm/string/std_containers_traits.hpp deleted file mode 100644 index 3f02246fd..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/std_containers_traits.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Boost string_algo library std_containers_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_STD_CONTAINERS_TRAITS_HPP -#define BOOST_STRING_STD_CONTAINERS_TRAITS_HPP - -/*!\file - This file includes sequence traits for stl containers. -*/ - -#include -#include -#include - -#ifdef BOOST_HAS_SLIST -# include -#endif - -#endif // BOOST_STRING_STD_CONTAINERS_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/trim.hpp b/lib/3rdParty/boost/boost/algorithm/string/trim.hpp deleted file mode 100644 index e740d57d9..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/trim.hpp +++ /dev/null @@ -1,398 +0,0 @@ -// Boost string_algo library trim.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_TRIM_HPP -#define BOOST_STRING_TRIM_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines trim algorithms. - Trim algorithms are used to remove trailing and leading spaces from a - sequence (string). Space is recognized using given locales. - - Parametric (\c _if) variants use a predicate (functor) to select which characters - are to be trimmed.. - Functions take a selection predicate as a parameter, which is used to determine - whether a character is a space. Common predicates are provided in classification.hpp header. - -*/ - -namespace boost { - namespace algorithm { - - // left trim -----------------------------------------------// - - - //! Left trim - parametric - /*! - Remove all leading spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The result is a trimmed copy of the input. It is returned as a sequence - or copied to the output iterator - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param IsSpace A unary predicate identifying spaces - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT trim_left_copy_if( - OutputIteratorT Output, - const RangeT& Input, - PredicateT IsSpace) - { - iterator_range::type> lit_range(::boost::as_literal(Input)); - - std::copy( - ::boost::algorithm::detail::trim_begin( - ::boost::begin(lit_range), - ::boost::end(lit_range), - IsSpace ), - ::boost::end(lit_range), - Output); - - return Output; - } - - //! Left trim - parametric - /*! - \overload - */ - template - inline SequenceT trim_left_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - return SequenceT( - ::boost::algorithm::detail::trim_begin( - ::boost::begin(Input), - ::boost::end(Input), - IsSpace ), - ::boost::end(Input)); - } - - //! Left trim - parametric - /*! - Remove all leading spaces from the input. - The result is a trimmed copy of the input. - - \param Input An input sequence - \param Loc a locale used for 'space' classification - \return A trimmed copy of the input - - \note This function provides the strong exception-safety guarantee - */ - template - inline SequenceT trim_left_copy(const SequenceT& Input, const std::locale& Loc=std::locale()) - { - return - ::boost::algorithm::trim_left_copy_if( - Input, - is_space(Loc)); - } - - //! Left trim - /*! - Remove all leading spaces from the input. The supplied predicate is - used to determine which characters are considered spaces. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_left_if(SequenceT& Input, PredicateT IsSpace) - { - Input.erase( - ::boost::begin(Input), - ::boost::algorithm::detail::trim_begin( - ::boost::begin(Input), - ::boost::end(Input), - IsSpace)); - } - - //! Left trim - /*! - Remove all leading spaces from the input. - The Input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - */ - template - inline void trim_left(SequenceT& Input, const std::locale& Loc=std::locale()) - { - ::boost::algorithm::trim_left_if( - Input, - is_space(Loc)); - } - - // right trim -----------------------------------------------// - - //! Right trim - parametric - /*! - Remove all trailing spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The result is a trimmed copy of the input. It is returned as a sequence - or copied to the output iterator - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param IsSpace A unary predicate identifying spaces - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT trim_right_copy_if( - OutputIteratorT Output, - const RangeT& Input, - PredicateT IsSpace ) - { - iterator_range::type> lit_range(::boost::as_literal(Input)); - - std::copy( - ::boost::begin(lit_range), - ::boost::algorithm::detail::trim_end( - ::boost::begin(lit_range), - ::boost::end(lit_range), - IsSpace ), - Output ); - - return Output; - } - - //! Right trim - parametric - /*! - \overload - */ - template - inline SequenceT trim_right_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - return SequenceT( - ::boost::begin(Input), - ::boost::algorithm::detail::trim_end( - ::boost::begin(Input), - ::boost::end(Input), - IsSpace) - ); - } - - //! Right trim - /*! - Remove all trailing spaces from the input. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - - \note This function provides the strong exception-safety guarantee - */ - template - inline SequenceT trim_right_copy(const SequenceT& Input, const std::locale& Loc=std::locale()) - { - return - ::boost::algorithm::trim_right_copy_if( - Input, - is_space(Loc)); - } - - - //! Right trim - parametric - /*! - Remove all trailing spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_right_if(SequenceT& Input, PredicateT IsSpace) - { - Input.erase( - ::boost::algorithm::detail::trim_end( - ::boost::begin(Input), - ::boost::end(Input), - IsSpace ), - ::boost::end(Input) - ); - } - - - //! Right trim - /*! - Remove all trailing spaces from the input. - The input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - */ - template - inline void trim_right(SequenceT& Input, const std::locale& Loc=std::locale()) - { - ::boost::algorithm::trim_right_if( - Input, - is_space(Loc) ); - } - - // both side trim -----------------------------------------------// - - //! Trim - parametric - /*! - Remove all trailing and leading spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The result is a trimmed copy of the input. It is returned as a sequence - or copied to the output iterator - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param IsSpace A unary predicate identifying spaces - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT trim_copy_if( - OutputIteratorT Output, - const RangeT& Input, - PredicateT IsSpace) - { - iterator_range::type> lit_range(::boost::as_literal(Input)); - - BOOST_STRING_TYPENAME - range_const_iterator::type TrimEnd= - ::boost::algorithm::detail::trim_end( - ::boost::begin(lit_range), - ::boost::end(lit_range), - IsSpace); - - std::copy( - detail::trim_begin( - ::boost::begin(lit_range), TrimEnd, IsSpace), - TrimEnd, - Output - ); - - return Output; - } - - //! Trim - parametric - /*! - \overload - */ - template - inline SequenceT trim_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - BOOST_STRING_TYPENAME - range_const_iterator::type TrimEnd= - ::boost::algorithm::detail::trim_end( - ::boost::begin(Input), - ::boost::end(Input), - IsSpace); - - return SequenceT( - detail::trim_begin( - ::boost::begin(Input), - TrimEnd, - IsSpace), - TrimEnd - ); - } - - //! Trim - /*! - Remove all leading and trailing spaces from the input. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - - \note This function provides the strong exception-safety guarantee - */ - template - inline SequenceT trim_copy( const SequenceT& Input, const std::locale& Loc=std::locale() ) - { - return - ::boost::algorithm::trim_copy_if( - Input, - is_space(Loc) ); - } - - //! Trim - /*! - Remove all leading and trailing spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_if(SequenceT& Input, PredicateT IsSpace) - { - ::boost::algorithm::trim_right_if( Input, IsSpace ); - ::boost::algorithm::trim_left_if( Input, IsSpace ); - } - - //! Trim - /*! - Remove all leading and trailing spaces from the input. - The input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - */ - template - inline void trim(SequenceT& Input, const std::locale& Loc=std::locale()) - { - ::boost::algorithm::trim_if( - Input, - is_space( Loc ) ); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::trim_left; - using algorithm::trim_left_if; - using algorithm::trim_left_copy; - using algorithm::trim_left_copy_if; - using algorithm::trim_right; - using algorithm::trim_right_if; - using algorithm::trim_right_copy; - using algorithm::trim_right_copy_if; - using algorithm::trim; - using algorithm::trim_if; - using algorithm::trim_copy; - using algorithm::trim_copy_if; - -} // namespace boost - -#endif // BOOST_STRING_TRIM_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/trim_all.hpp b/lib/3rdParty/boost/boost/algorithm/string/trim_all.hpp deleted file mode 100644 index a616f7f33..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/trim_all.hpp +++ /dev/null @@ -1,217 +0,0 @@ -// Boost string_algo library trim.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_TRIM_ALL_HPP -#define BOOST_STRING_TRIM_ALL_HPP - -#include - -#include -#include -#include -#include -#include -#include - -/*! \file - Defines trim_all algorithms. - - Just like \c trim, \c trim_all removes all trailing and leading spaces from a - sequence (string). In addition, spaces in the middle of the sequence are truncated - to just one character. Space is recognized using given locales. - - \c trim_fill acts as trim_all, but the spaces in the middle are replaces with - a user-define sequence of character. - - Parametric (\c _if) variants use a predicate (functor) to select which characters - are to be trimmed.. - Functions take a selection predicate as a parameter, which is used to determine - whether a character is a space. Common predicates are provided in classification.hpp header. - -*/ - -namespace boost { - namespace algorithm { - - // multi line trim ----------------------------------------------- // - - //! Trim All - parametric - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The result is a trimmed copy of the input - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - \return A trimmed copy of the input - */ - template - inline SequenceT trim_all_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - return - ::boost::find_format_all_copy( - ::boost::trim_copy_if(Input, IsSpace), - ::boost::token_finder(IsSpace, ::boost::token_compress_on), - ::boost::dissect_formatter(::boost::head_finder(1))); - } - - - //! Trim All - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_all_if(SequenceT& Input, PredicateT IsSpace) - { - ::boost::trim_if(Input, IsSpace); - ::boost::find_format_all( - Input, - ::boost::token_finder(IsSpace, ::boost::token_compress_on), - ::boost::dissect_formatter(::boost::head_finder(1))); - } - - - //! Trim All - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline SequenceT trim_all_copy(const SequenceT& Input, const std::locale& Loc =std::locale()) - { - return trim_all_copy_if(Input, ::boost::is_space(Loc)); - } - - - //! Trim All - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline void trim_all(SequenceT& Input, const std::locale& Loc =std::locale()) - { - trim_all_if(Input, ::boost::is_space(Loc)); - } - - - //! Trim Fill - parametric - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param IsSpace A unary predicate identifying spaces - \return A trimmed copy of the input - */ - template - inline SequenceT trim_fill_copy_if(const SequenceT& Input, const RangeT& Fill, PredicateT IsSpace) - { - return - ::boost::find_format_all_copy( - ::boost::trim_copy_if(Input, IsSpace), - ::boost::token_finder(IsSpace, ::boost::token_compress_on), - ::boost::const_formatter(::boost::as_literal(Fill))); - } - - - //! Trim Fill - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The input sequence is modified in-place. - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_fill_if(SequenceT& Input, const RangeT& Fill, PredicateT IsSpace) - { - ::boost::trim_if(Input, IsSpace); - ::boost::find_format_all( - Input, - ::boost::token_finder(IsSpace, ::boost::token_compress_on), - ::boost::const_formatter(::boost::as_literal(Fill))); - } - - - //! Trim Fill - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline SequenceT trim_fill_copy(const SequenceT& Input, const RangeT& Fill, const std::locale& Loc =std::locale()) - { - return trim_fill_copy_if(Input, Fill, ::boost::is_space(Loc)); - } - - - //! Trim Fill - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The input sequence is modified in-place. - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline void trim_fill(SequenceT& Input, const RangeT& Fill, const std::locale& Loc =std::locale()) - { - trim_fill_if(Input, Fill, ::boost::is_space(Loc)); - } - - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::trim_all; - using algorithm::trim_all_if; - using algorithm::trim_all_copy; - using algorithm::trim_all_copy_if; - using algorithm::trim_fill; - using algorithm::trim_fill_if; - using algorithm::trim_fill_copy; - using algorithm::trim_fill_copy_if; - -} // namespace boost - -#endif // BOOST_STRING_TRIM_ALL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string/yes_no_type.hpp b/lib/3rdParty/boost/boost/algorithm/string/yes_no_type.hpp deleted file mode 100644 index b76cc6c15..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string/yes_no_type.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Boost string_algo library yes_no_type.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP -#define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP - -namespace boost { - namespace algorithm { - - // taken from boost mailing-list - // when yes_no_type will become officially - // a part of boost distribution, this header - // will be deprecated - template struct size_descriptor - { - typedef char (& type)[I]; - }; - - typedef size_descriptor<1>::type yes_type; - typedef size_descriptor<2>::type no_type; - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_YES_NO_TYPE_DETAIL_HPP diff --git a/lib/3rdParty/boost/boost/algorithm/string_regex.hpp b/lib/3rdParty/boost/boost/algorithm/string_regex.hpp deleted file mode 100644 index 791aa1848..000000000 --- a/lib/3rdParty/boost/boost/algorithm/string_regex.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// Boost string_algo library string_regex.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2004. -// -// 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 updates, documentation, and revision history. - -#ifndef BOOST_STRING_ALGO_REGEX_HPP -#define BOOST_STRING_ALGO_REGEX_HPP - -/*! \file - Cumulative include for string_algo library. - In addition to string.hpp contains also regex-related stuff. -*/ - -#include -#include -#include - -#endif // BOOST_STRING_ALGO_REGEX_HPP diff --git a/lib/3rdParty/boost/boost/assert.hpp b/lib/3rdParty/boost/boost/assert.hpp deleted file mode 100644 index 9650d7a29..000000000 --- a/lib/3rdParty/boost/boost/assert.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// 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/lib/3rdParty/boost/boost/bind/apply.hpp b/lib/3rdParty/boost/boost/bind/apply.hpp deleted file mode 100644 index 6a43a89ac..000000000 --- a/lib/3rdParty/boost/boost/bind/apply.hpp +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef BOOST_BIND_APPLY_HPP_INCLUDED -#define BOOST_BIND_APPLY_HPP_INCLUDED - -// -// apply.hpp -// -// Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd. -// -// 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) -// - -namespace boost -{ - -template struct apply -{ - typedef R result_type; - - template result_type operator()(F & f) const - { - return f(); - } - - template result_type operator()(F & f, A1 & a1) const - { - return f(a1); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2) const - { - return f(a1, a2); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3) const - { - return f(a1, a2, a3); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4) const - { - return f(a1, a2, a3, a4); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const - { - return f(a1, a2, a3, a4, a5); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const - { - return f(a1, a2, a3, a4, a5, a6); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const - { - return f(a1, a2, a3, a4, a5, a6, a7); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const - { - return f(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const - { - return f(a1, a2, a3, a4, a5, a6, a7, a8, a9); - } -}; - -} // namespace boost - -#endif // #ifndef BOOST_BIND_APPLY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/arg.hpp b/lib/3rdParty/boost/boost/bind/arg.hpp deleted file mode 100644 index cb52e6689..000000000 --- a/lib/3rdParty/boost/boost/bind/arg.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_BIND_ARG_HPP_INCLUDED -#define BOOST_BIND_ARG_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind/arg.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// 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/bind/bind.html for documentation. -// - -#include -#include - -namespace boost -{ - -template struct _arg_eq -{ -}; - -template<> struct _arg_eq -{ - typedef void type; -}; - -template< int I > struct arg -{ - BOOST_CONSTEXPR arg() - { - } - - template< class T > BOOST_CONSTEXPR arg( T const & /* t */, typename _arg_eq< I == is_placeholder::value >::type * = 0 ) - { - } -}; - -template< int I > BOOST_CONSTEXPR bool operator==( arg const &, arg const & ) -{ - return true; -} - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< int I > struct is_placeholder< arg > -{ - enum _vt { value = I }; -}; - -template< int I > struct is_placeholder< arg (*) () > -{ - enum _vt { value = I }; -}; - -#endif - -} // namespace boost - -#endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/bind.hpp b/lib/3rdParty/boost/boost/bind/bind.hpp deleted file mode 100644 index 85d675a0e..000000000 --- a/lib/3rdParty/boost/boost/bind/bind.hpp +++ /dev/null @@ -1,2328 +0,0 @@ -#ifndef BOOST_BIND_BIND_HPP_INCLUDED -#define BOOST_BIND_BIND_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind.hpp - binds function objects to arguments -// -// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2001 David Abrahams -// Copyright (c) 2005 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) -// -// See http://www.boost.org/libs/bind/bind.html for documentation. -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) -#include // std::forward -#endif - -// Borland-specific bug, visit_each() silently fails to produce code - -#if defined(__BORLANDC__) -# define BOOST_BIND_VISIT_EACH boost::visit_each -#else -# define BOOST_BIND_VISIT_EACH visit_each -#endif - -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4512) // assignment operator could not be generated -#endif - -namespace boost -{ - -template class weak_ptr; - -namespace _bi // implementation details -{ - -// result_traits - -template struct result_traits -{ - typedef R type; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -struct unspecified {}; - -template struct result_traits -{ - typedef typename F::result_type type; -}; - -template struct result_traits< unspecified, reference_wrapper > -{ - typedef typename F::result_type type; -}; - -#endif - -// ref_compare - -template bool ref_compare( T const & a, T const & b, long ) -{ - return a == b; -} - -template bool ref_compare( arg const &, arg const &, int ) -{ - return true; -} - -template bool ref_compare( arg (*) (), arg (*) (), int ) -{ - return true; -} - -template bool ref_compare( reference_wrapper const & a, reference_wrapper const & b, int ) -{ - return a.get_pointer() == b.get_pointer(); -} - -// bind_t forward declaration for listN - -template class bind_t; - -template bool ref_compare( bind_t const & a, bind_t const & b, int ) -{ - return a.compare( b ); -} - -// value - -template class value -{ -public: - - value(T const & t): t_(t) {} - - T & get() { return t_; } - T const & get() const { return t_; } - - bool operator==(value const & rhs) const - { - return t_ == rhs.t_; - } - -private: - - T t_; -}; - -// ref_compare for weak_ptr - -template bool ref_compare( value< weak_ptr > const & a, value< weak_ptr > const & b, int ) -{ - return !(a.get() < b.get()) && !(b.get() < a.get()); -} - -// type - -template class type {}; - -// unwrap - -template struct unwrapper -{ - static inline F & unwrap( F & f, long ) - { - return f; - } - - template static inline F2 & unwrap( reference_wrapper rf, int ) - { - return rf.get(); - } - - template static inline _mfi::dm unwrap( R T::* pm, int ) - { - return _mfi::dm( pm ); - } -}; - -// listN - -class list0 -{ -public: - - list0() {} - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A &, long) - { - return unwrapper::unwrap(f, 0)(); - } - - template R operator()(type, F const & f, A &, long) const - { - return unwrapper::unwrap(f, 0)(); - } - - template void operator()(type, F & f, A &, int) - { - unwrapper::unwrap(f, 0)(); - } - - template void operator()(type, F const & f, A &, int) const - { - unwrapper::unwrap(f, 0)(); - } - - template void accept(V &) const - { - } - - bool operator==(list0 const &) const - { - return true; - } -}; - -#ifdef BOOST_MSVC -// MSVC is bright enough to realise that the parameter rhs -// in operator==may be unused for some template argument types: -#pragma warning(push) -#pragma warning(disable:4100) -#endif - -template< class A1 > class list1: private storage1< A1 > -{ -private: - - typedef storage1< A1 > base_type; - -public: - - explicit list1( A1 a1 ): base_type( a1 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list1 const & rhs) const - { - return ref_compare(base_type::a1_, rhs.a1_, 0); - } -}; - -struct logical_and; -struct logical_or; - -template< class A1, class A2 > class list2: private storage2< A1, A2 > -{ -private: - - typedef storage2< A1, A2 > base_type; - -public: - - list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template bool operator()( type, logical_and & /*f*/, A & a, int ) - { - return a[ base_type::a1_ ] && a[ base_type::a2_ ]; - } - - template bool operator()( type, logical_and const & /*f*/, A & a, int ) const - { - return a[ base_type::a1_ ] && a[ base_type::a2_ ]; - } - - template bool operator()( type, logical_or & /*f*/, A & a, int ) - { - return a[ base_type::a1_ ] || a[ base_type::a2_ ]; - } - - template bool operator()( type, logical_or const & /*f*/, A & a, int ) const - { - return a[ base_type::a1_ ] || a[ base_type::a2_ ]; - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list2 const & rhs) const - { - return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0); - } -}; - -template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 > -{ -private: - - typedef storage3< A1, A2, A3 > base_type; - -public: - - list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list3 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ); - } -}; - -template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 > -{ -private: - - typedef storage4< A1, A2, A3, A4 > base_type; - -public: - - list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list4 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 > -{ -private: - - typedef storage5< A1, A2, A3, A4, A5 > base_type; - -public: - - list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list5 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ); - } -}; - -template class list6: private storage6< A1, A2, A3, A4, A5, A6 > -{ -private: - - typedef storage6< A1, A2, A3, A4, A5, A6 > base_type; - -public: - - list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list6 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ); - } -}; - -template class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 > -{ -private: - - typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type; - -public: - - list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (boost::arg<7>) const { return base_type::a7_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list7 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ) && - ref_compare( base_type::a7_, rhs.a7_, 0 ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ -private: - - typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type; - -public: - - list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (boost::arg<7>) const { return base_type::a7_; } - A8 operator[] (boost::arg<8>) const { return base_type::a8_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } - A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list8 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ) && - ref_compare( base_type::a7_, rhs.a7_, 0 ) && - ref_compare( base_type::a8_, rhs.a8_, 0 ); - } -}; - -template class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > -{ -private: - - typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type; - -public: - - list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (boost::arg<7>) const { return base_type::a7_; } - A8 operator[] (boost::arg<8>) const { return base_type::a8_; } - A9 operator[] (boost::arg<9>) const { return base_type::a9_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } - A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } - A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list9 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ) && - ref_compare( base_type::a7_, rhs.a7_, 0 ) && - ref_compare( base_type::a8_, rhs.a8_, 0 ) && - ref_compare( base_type::a9_, rhs.a9_, 0 ); - } -}; - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -// bind_t - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -template< class A1 > class rrlist1 -{ -private: - - A1 & a1_; // not A1&& because of msvc-10.0 - -public: - - explicit rrlist1( A1 & a1 ): a1_( a1 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } // not static_cast because of g++ 4.9 - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist1 a( a1_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist1 a( a1_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2 > class rrlist2 -{ -private: - - A1 & a1_; - A2 & a2_; - -public: - - rrlist2( A1 & a1, A2 & a2 ): a1_( a1 ), a2_( a2 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist2 a( a1_, a2_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist2 a( a1_, a2_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3 > class rrlist3 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - -public: - - rrlist3( A1 & a1, A2 & a2, A3 & a3 ): a1_( a1 ), a2_( a2 ), a3_( a3 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist3 a( a1_, a2_, a3_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist3 a( a1_, a2_, a3_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3, class A4 > class rrlist4 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - -public: - - rrlist4( A1 & a1, A2 & a2, A3 & a3, A4 & a4 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist4 a( a1_, a2_, a3_, a4_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist4 a( a1_, a2_, a3_, a4_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5 > class rrlist5 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - -public: - - rrlist5( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist5 a( a1_, a2_, a3_, a4_, a5_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist5 a( a1_, a2_, a3_, a4_, a5_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5, class A6 > class rrlist6 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - -public: - - rrlist6( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist6 a( a1_, a2_, a3_, a4_, a5_, a6_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist6 a( a1_, a2_, a3_, a4_, a5_, a6_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5, class A6, class A7 > class rrlist7 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - A7 & a7_; - -public: - - rrlist7( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } - A7 && operator[] (boost::arg<7>) const { return std::forward( a7_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward( a7_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist7 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist7 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class rrlist8 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - A7 & a7_; - A8 & a8_; - -public: - - rrlist8( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } - A7 && operator[] (boost::arg<7>) const { return std::forward( a7_ ); } - A8 && operator[] (boost::arg<8>) const { return std::forward( a8_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward( a7_ ); } - A8 && operator[] (boost::arg<8> (*) ()) const { return std::forward( a8_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist8 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist8 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_ ); - return b.eval( a ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > class rrlist9 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - A7 & a7_; - A8 & a8_; - A9 & a9_; - -public: - - rrlist9( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ), a9_( a9 ) {} - - A1 && operator[] (boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6>) const { return std::forward( a6_ ); } - A7 && operator[] (boost::arg<7>) const { return std::forward( a7_ ); } - A8 && operator[] (boost::arg<8>) const { return std::forward( a8_ ); } - A9 && operator[] (boost::arg<9>) const { return std::forward( a9_ ); } - - A1 && operator[] (boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - A7 && operator[] (boost::arg<7> (*) ()) const { return std::forward( a7_ ); } - A8 && operator[] (boost::arg<8> (*) ()) const { return std::forward( a8_ ); } - A9 && operator[] (boost::arg<9> (*) ()) const { return std::forward( a9_ ); } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const - { - rrlist9 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_ ); - return b.eval( a ); - } - - template typename result_traits::type operator[] (bind_t const & b) const - { - rrlist9 a( a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_, a9_ ); - return b.eval( a ); - } -}; - -template class bind_t -{ -private: - - F f_; - L l_; - -public: - - typedef typename result_traits::type result_type; - typedef bind_t this_type; - - bind_t( F f, L const & l ): f_( f ), l_( l ) {} - - // - - result_type operator()() - { - list0 a; - return l_( type(), f_, a, 0 ); - } - - result_type operator()() const - { - list0 a; - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1 ) - { - rrlist1< A1 > a( a1 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1 ) const - { - rrlist1< A1 > a( a1 ); - return l_(type(), f_, a, 0); - } - - template result_type operator()( A1 && a1, A2 && a2 ) - { - rrlist2< A1, A2 > a( a1, a2 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2 ) const - { - rrlist2< A1, A2 > a( a1, a2 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) - { - rrlist3< A1, A2, A3 > a( a1, a2, a3 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) const - { - rrlist3< A1, A2, A3 > a( a1, a2, a3 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) - { - rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) const - { - rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) - { - rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) const - { - rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) - { - rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) const - { - rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) - { - rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) const - { - rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) - { - rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8 ) const - { - rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) - { - rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7, A8 && a8, A9 && a9 ) const - { - rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); - return l_( type(), f_, a, 0 ); - } - - // - - template result_type eval( A & a ) - { - return l_( type(), f_, a, 0 ); - } - - template result_type eval( A & a ) const - { - return l_( type(), f_, a, 0 ); - } - - template void accept( V & v ) const - { -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) - using boost::visit_each; -#endif - - BOOST_BIND_VISIT_EACH( v, f_, 0 ); - l_.accept( v ); - } - - bool compare( this_type const & rhs ) const - { - return ref_compare( f_, rhs.f_, 0 ) && l_ == rhs.l_; - } -}; - -#elif !defined( BOOST_NO_VOID_RETURNS ) - -template class bind_t -{ -public: - - typedef bind_t this_type; - - bind_t(F f, L const & l): f_(f), l_(l) {} - -#define BOOST_BIND_RETURN return -#include -#undef BOOST_BIND_RETURN - -}; - -#else // no void returns - -template struct bind_t_generator -{ - -template class implementation -{ -public: - - typedef implementation this_type; - - implementation(F f, L const & l): f_(f), l_(l) {} - -#define BOOST_BIND_RETURN return -#include -#undef BOOST_BIND_RETURN - -}; - -}; - -template<> struct bind_t_generator -{ - -template class implementation -{ -private: - - typedef void R; - -public: - - typedef implementation this_type; - - implementation(F f, L const & l): f_(f), l_(l) {} - -#define BOOST_BIND_RETURN -#include -#undef BOOST_BIND_RETURN - -}; - -}; - -template class bind_t: public bind_t_generator::BOOST_NESTED_TEMPLATE implementation -{ -public: - - bind_t(F f, L const & l): bind_t_generator::BOOST_NESTED_TEMPLATE implementation(f, l) {} - -}; - -#endif - -// function_equal - -#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP - -// put overloads in _bi, rely on ADL - -# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template bool function_equal( bind_t const & a, bind_t const & b ) -{ - return a.compare(b); -} - -# else - -template bool function_equal_impl( bind_t const & a, bind_t const & b, int ) -{ - return a.compare(b); -} - -# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP - -// put overloads in boost - -} // namespace _bi - -# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template bool function_equal( _bi::bind_t const & a, _bi::bind_t const & b ) -{ - return a.compare(b); -} - -# else - -template bool function_equal_impl( _bi::bind_t const & a, _bi::bind_t const & b, int ) -{ - return a.compare(b); -} - -# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -namespace _bi -{ - -#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP - -// add_value - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530) - -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) ) - -template struct add_value -{ - typedef _bi::value type; -}; - -#else - -template< class T, int I > struct add_value_2 -{ - typedef boost::arg type; -}; - -template< class T > struct add_value_2< T, 0 > -{ - typedef _bi::value< T > type; -}; - -template struct add_value -{ - typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type; -}; - -#endif - -template struct add_value< value > -{ - typedef _bi::value type; -}; - -template struct add_value< reference_wrapper > -{ - typedef reference_wrapper type; -}; - -template struct add_value< arg > -{ - typedef boost::arg type; -}; - -template struct add_value< arg (*) () > -{ - typedef boost::arg (*type) (); -}; - -template struct add_value< bind_t > -{ - typedef bind_t type; -}; - -#else - -template struct _avt_0; - -template<> struct _avt_0<1> -{ - template struct inner - { - typedef T type; - }; -}; - -template<> struct _avt_0<2> -{ - template struct inner - { - typedef value type; - }; -}; - -typedef char (&_avt_r1) [1]; -typedef char (&_avt_r2) [2]; - -template _avt_r1 _avt_f(value); -template _avt_r1 _avt_f(reference_wrapper); -template _avt_r1 _avt_f(arg); -template _avt_r1 _avt_f(arg (*) ()); -template _avt_r1 _avt_f(bind_t); - -_avt_r2 _avt_f(...); - -template struct add_value -{ - static T t(); - typedef typename _avt_0::template inner::type type; -}; - -#endif - -// list_av_N - -template struct list_av_1 -{ - typedef typename add_value::type B1; - typedef list1 type; -}; - -template struct list_av_2 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef list2 type; -}; - -template struct list_av_3 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef list3 type; -}; - -template struct list_av_4 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef list4 type; -}; - -template struct list_av_5 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef list5 type; -}; - -template struct list_av_6 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef list6 type; -}; - -template struct list_av_7 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef typename add_value::type B7; - typedef list7 type; -}; - -template struct list_av_8 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef typename add_value::type B7; - typedef typename add_value::type B8; - typedef list8 type; -}; - -template struct list_av_9 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef typename add_value::type B7; - typedef typename add_value::type B8; - typedef typename add_value::type B9; - typedef list9 type; -}; - -// operator! - -struct logical_not -{ - template bool operator()(V const & v) const { return !v; } -}; - -template - bind_t< bool, logical_not, list1< bind_t > > - operator! (bind_t const & f) -{ - typedef list1< bind_t > list_type; - return bind_t ( logical_not(), list_type(f) ); -} - -// relational operators - -#define BOOST_BIND_OPERATOR( op, name ) \ -\ -struct name \ -{ \ - template bool operator()(V const & v, W const & w) const { return v op w; } \ -}; \ - \ -template \ - bind_t< bool, name, list2< bind_t, typename add_value::type > > \ - operator op (bind_t const & f, A2 a2) \ -{ \ - typedef typename add_value::type B2; \ - typedef list2< bind_t, B2> list_type; \ - return bind_t ( name(), list_type(f, a2) ); \ -} - -BOOST_BIND_OPERATOR( ==, equal ) -BOOST_BIND_OPERATOR( !=, not_equal ) - -BOOST_BIND_OPERATOR( <, less ) -BOOST_BIND_OPERATOR( <=, less_equal ) - -BOOST_BIND_OPERATOR( >, greater ) -BOOST_BIND_OPERATOR( >=, greater_equal ) - -BOOST_BIND_OPERATOR( &&, logical_and ) -BOOST_BIND_OPERATOR( ||, logical_or ) - -#undef BOOST_BIND_OPERATOR - -#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) - -// resolve ambiguity with rel_ops - -#define BOOST_BIND_OPERATOR( op, name ) \ -\ -template \ - bind_t< bool, name, list2< bind_t, bind_t > > \ - operator op (bind_t const & f, bind_t const & g) \ -{ \ - typedef list2< bind_t, bind_t > list_type; \ - return bind_t ( name(), list_type(f, g) ); \ -} - -BOOST_BIND_OPERATOR( !=, not_equal ) -BOOST_BIND_OPERATOR( <=, less_equal ) -BOOST_BIND_OPERATOR( >, greater ) -BOOST_BIND_OPERATOR( >=, greater_equal ) - -#endif - -// visit_each, ADL - -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \ - && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) - -template void visit_each( V & v, value const & t, int ) -{ - using boost::visit_each; - BOOST_BIND_VISIT_EACH( v, t.get(), 0 ); -} - -template void visit_each( V & v, bind_t const & t, int ) -{ - t.accept( v ); -} - -#endif - -} // namespace _bi - -// visit_each, no ADL - -#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \ - || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) - -template void visit_each( V & v, _bi::value const & t, int ) -{ - BOOST_BIND_VISIT_EACH( v, t.get(), 0 ); -} - -template void visit_each( V & v, _bi::bind_t const & t, int ) -{ - t.accept( v ); -} - -#endif - -// is_bind_expression - -template< class T > struct is_bind_expression -{ - enum _vt { value = 0 }; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > > -{ - enum _vt { value = 1 }; -}; - -#endif - -// bind - -#ifndef BOOST_BIND -#define BOOST_BIND bind -#endif - -// generic function objects - -template - _bi::bind_t - BOOST_BIND(F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1) -{ - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t (f, list_type(a1)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2) -{ - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t (f, list_type(a1, a2)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3) -{ - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -// generic function objects, alternative syntax - -template - _bi::bind_t - BOOST_BIND(boost::type, F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1) -{ - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t (f, list_type(a1)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2) -{ - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t (f, list_type(a1, a2)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3) -{ - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -// adaptable function objects - -template - _bi::bind_t<_bi::unspecified, F, _bi::list0> - BOOST_BIND(F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type()); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1::type> - BOOST_BIND(F f, A1 a1) -{ - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2::type> - BOOST_BIND(F f, A1 a1, A2 a2) -{ - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3) -{ - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -// function pointers - -#define BOOST_BIND_CC -#define BOOST_BIND_ST - -#include - -#undef BOOST_BIND_CC -#undef BOOST_BIND_ST - -#ifdef BOOST_BIND_ENABLE_STDCALL - -#define BOOST_BIND_CC __stdcall -#define BOOST_BIND_ST - -#include - -#undef BOOST_BIND_CC -#undef BOOST_BIND_ST - -#endif - -#ifdef BOOST_BIND_ENABLE_FASTCALL - -#define BOOST_BIND_CC __fastcall -#define BOOST_BIND_ST - -#include - -#undef BOOST_BIND_CC -#undef BOOST_BIND_ST - -#endif - -#ifdef BOOST_BIND_ENABLE_PASCAL - -#define BOOST_BIND_ST pascal -#define BOOST_BIND_CC - -#include - -#undef BOOST_BIND_ST -#undef BOOST_BIND_CC - -#endif - -// member function pointers - -#define BOOST_BIND_MF_NAME(X) X -#define BOOST_BIND_MF_CC - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_BIND_MF_NAME(X) X##_cdecl -#define BOOST_BIND_MF_CC __cdecl - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_BIND_MF_NAME(X) X##_stdcall -#define BOOST_BIND_MF_CC __stdcall - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_BIND_MF_NAME(X) X##_fastcall -#define BOOST_BIND_MF_CC __fastcall - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#endif - -// data member pointers - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x620 ) ) ) - -template -_bi::bind_t< R, _mfi::dm, typename _bi::list_av_1::type > - BOOST_BIND(R T::*f, A1 a1) -{ - typedef _mfi::dm F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t( F(f), list_type(a1) ); -} - -#else - -namespace _bi -{ - -template< class Pm, int I > struct add_cref; - -template< class M, class T > struct add_cref< M T::*, 0 > -{ - typedef M type; -}; - -template< class M, class T > struct add_cref< M T::*, 1 > -{ -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4180) -#endif - typedef M const & type; -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif -}; - -template< class R, class T > struct add_cref< R (T::*) (), 1 > -{ - typedef void type; -}; - -#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION - -template< class R, class T > struct add_cref< R (T::*) () const, 1 > -{ - typedef void type; -}; - -#endif // __IBMCPP__ - -template struct isref -{ - enum value_type { value = 0 }; -}; - -template struct isref< R& > -{ - enum value_type { value = 1 }; -}; - -template struct isref< R* > -{ - enum value_type { value = 1 }; -}; - -template struct dm_result -{ - typedef typename add_cref< Pm, 1 >::type type; -}; - -template struct dm_result< Pm, bind_t > -{ - typedef typename bind_t::result_type result_type; - typedef typename add_cref< Pm, isref< result_type >::value >::type type; -}; - -} // namespace _bi - -template< class A1, class M, class T > - -_bi::bind_t< - typename _bi::dm_result< M T::*, A1 >::type, - _mfi::dm, - typename _bi::list_av_1::type -> - -BOOST_BIND( M T::*f, A1 a1 ) -{ - typedef typename _bi::dm_result< M T::*, A1 >::type result_type; - typedef _mfi::dm F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) ); -} - -#endif - -} // namespace boost - -#ifndef BOOST_BIND_NO_PLACEHOLDERS - -# include - -#endif - -#ifdef BOOST_MSVC -# pragma warning(default: 4512) // assignment operator could not be generated -# pragma warning(pop) -#endif - -#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/bind_cc.hpp b/lib/3rdParty/boost/boost/bind/bind_cc.hpp deleted file mode 100644 index 35f8eceb9..000000000 --- a/lib/3rdParty/boost/boost/bind/bind_cc.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// bind/bind_cc.hpp - support for different calling conventions -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// 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/bind/bind.html for documentation. -// - -template - _bi::bind_t - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) ()) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (); - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1); - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t (f, list_type(a1)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2), A1 a1, A2 a2) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2); - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t (f, list_type(a1, a2)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3); - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4); - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5); - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6); - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7); - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8); - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9); - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} diff --git a/lib/3rdParty/boost/boost/bind/bind_mf2_cc.hpp b/lib/3rdParty/boost/boost/bind/bind_mf2_cc.hpp deleted file mode 100644 index 66476bc19..000000000 --- a/lib/3rdParty/boost/boost/bind/bind_mf2_cc.hpp +++ /dev/null @@ -1,228 +0,0 @@ -// -// bind/bind_mf2_cc.hpp - member functions, type<> syntax -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2008 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 -// -// See http://www.boost.org/libs/bind/bind.html for documentation. -// - -// 0 - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (), A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () const, A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -// 1 - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -// 2 - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -// 3 - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -// 4 - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -// 5 - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -// 6 - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -// 7 - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -// 8 - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} diff --git a/lib/3rdParty/boost/boost/bind/bind_mf_cc.hpp b/lib/3rdParty/boost/boost/bind/bind_mf_cc.hpp deleted file mode 100644 index e149384ff..000000000 --- a/lib/3rdParty/boost/boost/bind/bind_mf_cc.hpp +++ /dev/null @@ -1,441 +0,0 @@ -// -// bind/bind_mf_cc.hpp - support for different calling conventions -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// 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/bind/bind.html for documentation. -// - -// 0 - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_1::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_1::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -// 1 - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_2::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_2::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -// 2 - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_3::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_3::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -// 3 - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_4::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_4::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -// 4 - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_5::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_5::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -// 5 - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_6::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_6::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -// 6 - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_7::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_7::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -// 7 - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_8::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_8::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -// 8 - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_9::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template - typename boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_9::type> - >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} diff --git a/lib/3rdParty/boost/boost/bind/bind_template.hpp b/lib/3rdParty/boost/boost/bind/bind_template.hpp deleted file mode 100644 index 411d20c74..000000000 --- a/lib/3rdParty/boost/boost/bind/bind_template.hpp +++ /dev/null @@ -1,345 +0,0 @@ -// -// bind/bind_template.hpp -// -// Do not include this header directly. -// -// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. -// -// 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/bind/bind.html for documentation. -// - - typedef typename result_traits::type result_type; - - result_type operator()() - { - list0 a; - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - result_type operator()() const - { - list0 a; - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1) - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1) const - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1) - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1) const - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - - template result_type operator()(A1 & a1, A2 const & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 const & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - - template result_type operator()(A1 const & a1, A2 const & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3) - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3) const - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type eval(A & a) - { - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type eval(A & a) const - { - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template void accept(V & v) const - { -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) - - using boost::visit_each; - -#endif - BOOST_BIND_VISIT_EACH(v, f_, 0); - l_.accept(v); - } - - bool compare(this_type const & rhs) const - { - return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_; - } - -private: - - F f_; - L l_; diff --git a/lib/3rdParty/boost/boost/bind/make_adaptable.hpp b/lib/3rdParty/boost/boost/bind/make_adaptable.hpp deleted file mode 100644 index b9f083e30..000000000 --- a/lib/3rdParty/boost/boost/bind/make_adaptable.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED -#define BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED - -// -// make_adaptable.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// 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) -// - -namespace boost -{ - -namespace _bi -{ - -template class af0 -{ -public: - - typedef R result_type; - - explicit af0(F f): f_(f) - { - } - - result_type operator()() - { - return f_(); - } - - result_type operator()() const - { - return f_(); - } - -private: - - F f_; -}; - -template class af1 -{ -public: - - typedef R result_type; - typedef A1 argument_type; - typedef A1 arg1_type; - - explicit af1(F f): f_(f) - { - } - - result_type operator()(A1 a1) - { - return f_(a1); - } - - result_type operator()(A1 a1) const - { - return f_(a1); - } - -private: - - F f_; -}; - -template class af2 -{ -public: - - typedef R result_type; - typedef A1 first_argument_type; - typedef A2 second_argument_type; - typedef A1 arg1_type; - typedef A2 arg2_type; - - explicit af2(F f): f_(f) - { - } - - result_type operator()(A1 a1, A2 a2) - { - return f_(a1, a2); - } - - result_type operator()(A1 a1, A2 a2) const - { - return f_(a1, a2); - } - -private: - - F f_; -}; - -template class af3 -{ -public: - - typedef R result_type; - typedef A1 arg1_type; - typedef A2 arg2_type; - typedef A3 arg3_type; - - explicit af3(F f): f_(f) - { - } - - result_type operator()(A1 a1, A2 a2, A3 a3) - { - return f_(a1, a2, a3); - } - - result_type operator()(A1 a1, A2 a2, A3 a3) const - { - return f_(a1, a2, a3); - } - -private: - - F f_; -}; - -template class af4 -{ -public: - - typedef R result_type; - typedef A1 arg1_type; - typedef A2 arg2_type; - typedef A3 arg3_type; - typedef A4 arg4_type; - - explicit af4(F f): f_(f) - { - } - - result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4) - { - return f_(a1, a2, a3, a4); - } - - result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4) const - { - return f_(a1, a2, a3, a4); - } - -private: - - F f_; -}; - -} // namespace _bi - -template _bi::af0 make_adaptable(F f) -{ - return _bi::af0(f); -} - -template _bi::af1 make_adaptable(F f) -{ - return _bi::af1(f); -} - -template _bi::af2 make_adaptable(F f) -{ - return _bi::af2(f); -} - -template _bi::af3 make_adaptable(F f) -{ - return _bi::af3(f); -} - -template _bi::af4 make_adaptable(F f) -{ - return _bi::af4(f); -} - -} // namespace boost - -#endif // #ifndef BOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/mem_fn.hpp b/lib/3rdParty/boost/boost/bind/mem_fn.hpp deleted file mode 100644 index 956e7d888..000000000 --- a/lib/3rdParty/boost/boost/bind/mem_fn.hpp +++ /dev/null @@ -1,389 +0,0 @@ -#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED -#define BOOST_BIND_MEM_FN_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// mem_fn.hpp - a generalization of std::mem_fun[_ref] -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2001 David Abrahams -// Copyright (c) 2003-2005 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) -// -// See http://www.boost.org/libs/bind/mem_fn.html for documentation. -// - -#include -#include -#include - -namespace boost -{ - -#if defined(BOOST_NO_VOID_RETURNS) - -#define BOOST_MEM_FN_CLASS_F , class F -#define BOOST_MEM_FN_TYPEDEF(X) - -namespace _mfi // mem_fun_impl -{ - -template struct mf -{ - -#define BOOST_MEM_FN_RETURN return - -#define BOOST_MEM_FN_NAME(X) inner_##X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#undef BOOST_MEM_FN_RETURN - -}; // struct mf - -template<> struct mf -{ - -#define BOOST_MEM_FN_RETURN - -#define BOOST_MEM_FN_NAME(X) inner_##X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#undef BOOST_MEM_FN_RETURN - -}; // struct mf - -#undef BOOST_MEM_FN_CLASS_F -#undef BOOST_MEM_FN_TYPEDEF_F - -#define BOOST_MEM_FN_NAME(X) X -#define BOOST_MEM_FN_NAME2(X) inner_##X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) X##_cdecl -#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) X##_stdcall -#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) X##_fastcall -#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#endif - -} // namespace _mfi - -#else // #ifdef BOOST_NO_VOID_RETURNS - -#define BOOST_MEM_FN_CLASS_F -#define BOOST_MEM_FN_TYPEDEF(X) typedef X; - -namespace _mfi -{ - -#define BOOST_MEM_FN_RETURN return - -#define BOOST_MEM_FN_NAME(X) X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#undef BOOST_MEM_FN_RETURN - -} // namespace _mfi - -#undef BOOST_MEM_FN_CLASS_F -#undef BOOST_MEM_FN_TYPEDEF - -#endif // #ifdef BOOST_NO_VOID_RETURNS - -#define BOOST_MEM_FN_NAME(X) X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#endif - -// data member support - -namespace _mfi -{ - -template class dm -{ -public: - - typedef R const & result_type; - typedef T const * argument_type; - -private: - - typedef R (T::*F); - F f_; - - template R const & call(U & u, T const *) const - { - return (u.*f_); - } - - template R const & call(U & u, void const *) const - { - return (get_pointer(u)->*f_); - } - -public: - - explicit dm(F f): f_(f) {} - - R & operator()(T * p) const - { - return (p->*f_); - } - - R const & operator()(T const * p) const - { - return (p->*f_); - } - - template R const & operator()(U const & u) const - { - return call(u, &u); - } - -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200) - - R & operator()(T & t) const - { - return (t.*f_); - } - - R const & operator()(T const & t) const - { - return (t.*f_); - } - -#endif - - bool operator==(dm const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(dm const & rhs) const - { - return f_ != rhs.f_; - } -}; - -} // namespace _mfi - -template _mfi::dm mem_fn(R T::*f) -{ - return _mfi::dm(f); -} - -} // namespace boost - -#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/mem_fn_cc.hpp b/lib/3rdParty/boost/boost/bind/mem_fn_cc.hpp deleted file mode 100644 index 8b6ea0ba1..000000000 --- a/lib/3rdParty/boost/boost/bind/mem_fn_cc.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// bind/mem_fn_cc.hpp - support for different calling conventions -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// 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/bind/mem_fn.html for documentation. -// - -template _mfi::BOOST_MEM_FN_NAME(mf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) ()) -{ - return _mfi::BOOST_MEM_FN_NAME(mf0)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf0)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf1)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf1)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf2)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf2)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf3)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf3)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf4)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf4)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf5)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf5)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf6)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf6)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf7)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf7)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf8)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf8)(f); -} diff --git a/lib/3rdParty/boost/boost/bind/mem_fn_template.hpp b/lib/3rdParty/boost/boost/bind/mem_fn_template.hpp deleted file mode 100644 index b26d585db..000000000 --- a/lib/3rdParty/boost/boost/bind/mem_fn_template.hpp +++ /dev/null @@ -1,1047 +0,0 @@ -// -// bind/mem_fn_template.hpp -// -// Do not include this header directly -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// 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/bind/mem_fn.html for documentation. -// - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -# define BOOST_MEM_FN_ENABLE_CONST_OVERLOADS -#endif - -// mf0 - -template class BOOST_MEM_FN_NAME(mf0) -{ -public: - - typedef R result_type; - typedef T * argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) ()) - F f_; - - template R call(U & u, T const *) const - { - BOOST_MEM_FN_RETURN (u.*f_)(); - } - - template R call(U & u, void const *) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf0)(F f): f_(f) {} - - R operator()(T * p) const - { - BOOST_MEM_FN_RETURN (p->*f_)(); - } - - template R operator()(U & u) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p); - } - -#endif - - R operator()(T & t) const - { - BOOST_MEM_FN_RETURN (t.*f_)(); - } - - bool operator==(BOOST_MEM_FN_NAME(mf0) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf0) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf0 - -template class BOOST_MEM_FN_NAME(cmf0) -{ -public: - - typedef R result_type; - typedef T const * argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) () const) - F f_; - - template R call(U & u, T const *) const - { - BOOST_MEM_FN_RETURN (u.*f_)(); - } - - template R call(U & u, void const *) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {} - - template R operator()(U const & u) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p); - } - - R operator()(T const & t) const - { - BOOST_MEM_FN_RETURN (t.*f_)(); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf0) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf0) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf1 - -template class BOOST_MEM_FN_NAME(mf1) -{ -public: - - typedef R result_type; - typedef T * first_argument_type; - typedef A1 second_argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1)) - F f_; - - template R call(U & u, T const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1); - } - - template R call(U & u, void const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf1)(F f): f_(f) {} - - R operator()(T * p, A1 a1) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1); - } - - template R operator()(U & u, A1 a1) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1); - } - -#endif - - R operator()(T & t, A1 a1) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1); - } - - bool operator==(BOOST_MEM_FN_NAME(mf1) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf1) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf1 - -template class BOOST_MEM_FN_NAME(cmf1) -{ -public: - - typedef R result_type; - typedef T const * first_argument_type; - typedef A1 second_argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1) const) - F f_; - - template R call(U & u, T const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1); - } - - template R call(U & u, void const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf1)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1); - } - - R operator()(T const & t, A1 a1) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf1) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf1) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf2 - -template class BOOST_MEM_FN_NAME(mf2) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf2)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2); - } - - template R operator()(U & u, A1 a1, A2 a2) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2); - } - - bool operator==(BOOST_MEM_FN_NAME(mf2) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf2) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf2 - -template class BOOST_MEM_FN_NAME(cmf2) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf2)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2); - } - - R operator()(T const & t, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf2) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf2) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf3 - -template class BOOST_MEM_FN_NAME(mf3) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf3)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3); - } - - bool operator==(BOOST_MEM_FN_NAME(mf3) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf3) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf3 - -template class BOOST_MEM_FN_NAME(cmf3) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf3)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf3) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf3) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf4 - -template class BOOST_MEM_FN_NAME(mf4) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf4)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4); - } - - bool operator==(BOOST_MEM_FN_NAME(mf4) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf4) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf4 - -template class BOOST_MEM_FN_NAME(cmf4) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf4)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf4) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf4) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf5 - -template class BOOST_MEM_FN_NAME(mf5) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf5)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5); - } - - bool operator==(BOOST_MEM_FN_NAME(mf5) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf5) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf5 - -template class BOOST_MEM_FN_NAME(cmf5) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf5)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf5) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf5) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf6 - -template class BOOST_MEM_FN_NAME(mf6) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf6)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6); - } - - bool operator==(BOOST_MEM_FN_NAME(mf6) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf6) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf6 - -template class BOOST_MEM_FN_NAME(cmf6) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf6)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf6) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf6) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf7 - -template class BOOST_MEM_FN_NAME(mf7) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf7)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7); - } - - bool operator==(BOOST_MEM_FN_NAME(mf7) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf7) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf7 - -template class BOOST_MEM_FN_NAME(cmf7) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf7)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf7) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf7) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf8 - -template class BOOST_MEM_FN_NAME(mf8) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf8)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - bool operator==(BOOST_MEM_FN_NAME(mf8) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf8) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf8 - -template class BOOST_MEM_FN_NAME(cmf8) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf8)(F f): f_(f) {} - - R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf8) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf8) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -#undef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS diff --git a/lib/3rdParty/boost/boost/bind/mem_fn_vw.hpp b/lib/3rdParty/boost/boost/bind/mem_fn_vw.hpp deleted file mode 100644 index f3fc58db0..000000000 --- a/lib/3rdParty/boost/boost/bind/mem_fn_vw.hpp +++ /dev/null @@ -1,130 +0,0 @@ -// -// bind/mem_fn_vw.hpp - void return helper wrappers -// -// Do not include this header directly -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// 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/bind/mem_fn.html for documentation. -// - -template struct BOOST_MEM_FN_NAME(mf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (); - explicit BOOST_MEM_FN_NAME(mf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0) -{ - typedef R (BOOST_MEM_FN_CC T::*F) () const; - explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1); - explicit BOOST_MEM_FN_NAME(mf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1) const; - explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2); - explicit BOOST_MEM_FN_NAME(mf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const; - explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3); - explicit BOOST_MEM_FN_NAME(mf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const; - explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4); - explicit BOOST_MEM_FN_NAME(mf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const; - explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5); - explicit BOOST_MEM_FN_NAME(mf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const; - explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6); - explicit BOOST_MEM_FN_NAME(mf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const; - explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7); - explicit BOOST_MEM_FN_NAME(mf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const; - explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); - explicit BOOST_MEM_FN_NAME(mf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; - explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)(f) {} -}; - diff --git a/lib/3rdParty/boost/boost/bind/placeholders.hpp b/lib/3rdParty/boost/boost/bind/placeholders.hpp deleted file mode 100644 index b819ef4c4..000000000 --- a/lib/3rdParty/boost/boost/bind/placeholders.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED -#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind/placeholders.hpp - _N definitions -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// Copyright 2015 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 -// -// See http://www.boost.org/libs/bind/bind.html for documentation. -// - -#include -#include - -namespace boost -{ - -namespace placeholders -{ - -#if defined(__BORLANDC__) || defined(__GNUC__) && (__GNUC__ < 4) - -inline boost::arg<1> _1() { return boost::arg<1>(); } -inline boost::arg<2> _2() { return boost::arg<2>(); } -inline boost::arg<3> _3() { return boost::arg<3>(); } -inline boost::arg<4> _4() { return boost::arg<4>(); } -inline boost::arg<5> _5() { return boost::arg<5>(); } -inline boost::arg<6> _6() { return boost::arg<6>(); } -inline boost::arg<7> _7() { return boost::arg<7>(); } -inline boost::arg<8> _8() { return boost::arg<8>(); } -inline boost::arg<9> _9() { return boost::arg<9>(); } - -#else - -BOOST_STATIC_CONSTEXPR boost::arg<1> _1; -BOOST_STATIC_CONSTEXPR boost::arg<2> _2; -BOOST_STATIC_CONSTEXPR boost::arg<3> _3; -BOOST_STATIC_CONSTEXPR boost::arg<4> _4; -BOOST_STATIC_CONSTEXPR boost::arg<5> _5; -BOOST_STATIC_CONSTEXPR boost::arg<6> _6; -BOOST_STATIC_CONSTEXPR boost::arg<7> _7; -BOOST_STATIC_CONSTEXPR boost::arg<8> _8; -BOOST_STATIC_CONSTEXPR boost::arg<9> _9; - -#endif - -} // namespace placeholders - -} // namespace boost - -#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/protect.hpp b/lib/3rdParty/boost/boost/bind/protect.hpp deleted file mode 100644 index 749e158c3..000000000 --- a/lib/3rdParty/boost/boost/bind/protect.hpp +++ /dev/null @@ -1,304 +0,0 @@ -#ifndef BOOST_BIND_PROTECT_HPP_INCLUDED -#define BOOST_BIND_PROTECT_HPP_INCLUDED - -// -// protect.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2009 Steven Watanabe -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include -#include - -namespace boost -{ - -namespace _bi -{ - -template class protected_bind_t -{ -public: - - typedef typename F::result_type result_type; - - explicit protected_bind_t(F f): f_(f) - { - } - - result_type operator()() - { - return f_(); - } - - result_type operator()() const - { - return f_(); - } - - template result_type operator()(A1 & a1) - { - return f_(a1); - } - - template result_type operator()(A1 & a1) const - { - return f_(a1); - } - - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(const A1 & a1) - { - return f_(a1); - } - - template result_type operator()(const A1 & a1) const - { - return f_(a1); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2) - { - return f_(a1, a2); - } - - template result_type operator()(A1 & a1, A2 & a2) const - { - return f_(a1, a2); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 & a2) - { - return f_(a1, a2); - } - - template result_type operator()(A1 const & a1, A2 & a2) const - { - return f_(a1, a2); - } - - template result_type operator()(A1 & a1, A2 const & a2) - { - return f_(a1, a2); - } - - template result_type operator()(A1 & a1, A2 const & a2) const - { - return f_(a1, a2); - } - - template result_type operator()(A1 const & a1, A2 const & a2) - { - return f_(a1, a2); - } - - template result_type operator()(A1 const & a1, A2 const & a2) const - { - return f_(a1, a2); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3) - { - return f_(a1, a2, a3); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3) const - { - return f_(a1, a2, a3); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) - { - return f_(a1, a2, a3); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const - { - return f_(a1, a2, a3); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) - { - return f_(a1, a2, a3, a4); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const - { - return f_(a1, a2, a3, a4); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) - { - return f_(a1, a2, a3, a4); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const - { - return f_(a1, a2, a3, a4); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) - { - return f_(a1, a2, a3, a4, a5); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const - { - return f_(a1, a2, a3, a4, a5); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) - { - return f_(a1, a2, a3, a4, a5); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const - { - return f_(a1, a2, a3, a4, a5); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) - { - return f_(a1, a2, a3, a4, a5, a6); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const - { - return f_(a1, a2, a3, a4, a5, a6); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) - { - return f_(a1, a2, a3, a4, a5, a6); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const - { - return f_(a1, a2, a3, a4, a5, a6); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) - { - return f_(a1, a2, a3, a4, a5, a6, a7); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const - { - return f_(a1, a2, a3, a4, a5, a6, a7); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) - { - return f_(a1, a2, a3, a4, a5, a6, a7); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const - { - return f_(a1, a2, a3, a4, a5, a6, a7); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const - { - return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9); - } - -#endif - -private: - - F f_; -}; - -} // namespace _bi - -template _bi::protected_bind_t protect(F f) -{ - return _bi::protected_bind_t(f); -} - -} // namespace boost - -#endif // #ifndef BOOST_BIND_PROTECT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/bind/storage.hpp b/lib/3rdParty/boost/boost/bind/storage.hpp deleted file mode 100644 index be490b0f5..000000000 --- a/lib/3rdParty/boost/boost/bind/storage.hpp +++ /dev/null @@ -1,475 +0,0 @@ -#ifndef BOOST_BIND_STORAGE_HPP_INCLUDED -#define BOOST_BIND_STORAGE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind/storage.hpp -// -// boost/bind.hpp support header, optimized storage -// -// Copyright (c) 2006 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 -// -// See http://www.boost.org/libs/bind/bind.html for documentation. -// - -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4512) // assignment operator could not be generated -#endif - -namespace boost -{ - -namespace _bi -{ - -// 1 - -template struct storage1 -{ - explicit storage1( A1 a1 ): a1_( a1 ) {} - - template void accept(V & v) const - { - BOOST_BIND_VISIT_EACH(v, a1_, 0); - } - - A1 a1_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ ) - -template struct storage1< boost::arg > -{ - explicit storage1( boost::arg ) {} - - template void accept(V &) const { } - - static boost::arg a1_() { return boost::arg(); } -}; - -template struct storage1< boost::arg (*) () > -{ - explicit storage1( boost::arg (*) () ) {} - - template void accept(V &) const { } - - static boost::arg a1_() { return boost::arg(); } -}; - -#endif - -// 2 - -template struct storage2: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, A2 a2 ): storage1( a1 ), a2_( a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a2_, 0); - } - - A2 a2_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage2< A1, boost::arg >: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, boost::arg ): storage1( a1 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a2_() { return boost::arg(); } -}; - -template struct storage2< A1, boost::arg (*) () >: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, boost::arg (*) () ): storage1( a1 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a2_() { return boost::arg(); } -}; - -#endif - -// 3 - -template struct storage3: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, A3 a3 ): storage2( a1, a2 ), a3_( a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a3_, 0); - } - - A3 a3_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage3< A1, A2, boost::arg >: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, boost::arg ): storage2( a1, a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a3_() { return boost::arg(); } -}; - -template struct storage3< A1, A2, boost::arg (*) () >: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, boost::arg (*) () ): storage2( a1, a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a3_() { return boost::arg(); } -}; - -#endif - -// 4 - -template struct storage4: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, A4 a4 ): storage3( a1, a2, a3 ), a4_( a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a4_, 0); - } - - A4 a4_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage4< A1, A2, A3, boost::arg >: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, boost::arg ): storage3( a1, a2, a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a4_() { return boost::arg(); } -}; - -template struct storage4< A1, A2, A3, boost::arg (*) () >: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, boost::arg (*) () ): storage3( a1, a2, a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a4_() { return boost::arg(); } -}; - -#endif - -// 5 - -template struct storage5: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): storage4( a1, a2, a3, a4 ), a5_( a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a5_, 0); - } - - A5 a5_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage5< A1, A2, A3, A4, boost::arg >: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg ): storage4( a1, a2, a3, a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a5_() { return boost::arg(); } -}; - -template struct storage5< A1, A2, A3, A4, boost::arg (*) () >: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg (*) () ): storage4( a1, a2, a3, a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a5_() { return boost::arg(); } -}; - -#endif - -// 6 - -template struct storage6: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): storage5( a1, a2, a3, a4, a5 ), a6_( a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a6_, 0); - } - - A6 a6_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage6< A1, A2, A3, A4, A5, boost::arg >: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg ): storage5( a1, a2, a3, a4, a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a6_() { return boost::arg(); } -}; - -template struct storage6< A1, A2, A3, A4, A5, boost::arg (*) () >: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg (*) () ): storage5( a1, a2, a3, a4, a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a6_() { return boost::arg(); } -}; - -#endif - -// 7 - -template struct storage7: public storage6< A1, A2, A3, A4, A5, A6 > -{ - typedef storage6 inherited; - - storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): storage6( a1, a2, a3, a4, a5, a6 ), a7_( a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a7_, 0); - } - - A7 a7_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg >: public storage6< A1, A2, A3, A4, A5, A6 > -{ - typedef storage6 inherited; - - storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg ): storage6( a1, a2, a3, a4, a5, a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a7_() { return boost::arg(); } -}; - -template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg (*) () >: public storage6< A1, A2, A3, A4, A5, A6 > -{ - typedef storage6 inherited; - - storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg (*) () ): storage6( a1, a2, a3, a4, a5, a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a7_() { return boost::arg(); } -}; - -#endif - -// 8 - -template struct storage8: public storage7< A1, A2, A3, A4, A5, A6, A7 > -{ - typedef storage7 inherited; - - storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): storage7( a1, a2, a3, a4, a5, a6, a7 ), a8_( a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a8_, 0); - } - - A8 a8_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg >: public storage7< A1, A2, A3, A4, A5, A6, A7 > -{ - typedef storage7 inherited; - - storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a8_() { return boost::arg(); } -}; - -template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg (*) () >: public storage7< A1, A2, A3, A4, A5, A6, A7 > -{ - typedef storage7 inherited; - - storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg (*) () ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a8_() { return boost::arg(); } -}; - -#endif - -// 9 - -template struct storage9: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ - typedef storage8 inherited; - - storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ), a9_( a9 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a9_, 0); - } - - A9 a9_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ - typedef storage8 inherited; - - storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a9_() { return boost::arg(); } -}; - -template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg (*) () >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ - typedef storage8 inherited; - - storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg (*) () ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a9_() { return boost::arg(); } -}; - -#endif - -} // namespace _bi - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(default: 4512) // assignment operator could not be generated -# pragma warning(pop) -#endif - -#endif // #ifndef BOOST_BIND_STORAGE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/cerrno.hpp b/lib/3rdParty/boost/boost/cerrno.hpp deleted file mode 100644 index 6f2669846..000000000 --- a/lib/3rdParty/boost/boost/cerrno.hpp +++ /dev/null @@ -1,331 +0,0 @@ -// Boost cerrno.hpp header -------------------------------------------------// - -// Copyright Beman Dawes 2005. -// 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) - -// See library home page at http://www.boost.org/libs/system - -#ifndef BOOST_CERRNO_HPP -#define BOOST_CERRNO_HPP - -#include - -// supply errno values likely to be missing, particularly on Windows - -#ifndef EAFNOSUPPORT -#define EAFNOSUPPORT 9901 -#endif - -#ifndef EADDRINUSE -#define EADDRINUSE 9902 -#endif - -#ifndef EADDRNOTAVAIL -#define EADDRNOTAVAIL 9903 -#endif - -#ifndef EISCONN -#define EISCONN 9904 -#endif - -#ifndef EBADMSG -#define EBADMSG 9905 -#endif - -#ifndef ECONNABORTED -#define ECONNABORTED 9906 -#endif - -#ifndef EALREADY -#define EALREADY 9907 -#endif - -#ifndef ECONNREFUSED -#define ECONNREFUSED 9908 -#endif - -#ifndef ECONNRESET -#define ECONNRESET 9909 -#endif - -#ifndef EDESTADDRREQ -#define EDESTADDRREQ 9910 -#endif - -#ifndef EHOSTUNREACH -#define EHOSTUNREACH 9911 -#endif - -#ifndef EIDRM -#define EIDRM 9912 -#endif - -#ifndef EMSGSIZE -#define EMSGSIZE 9913 -#endif - -#ifndef ENETDOWN -#define ENETDOWN 9914 -#endif - -#ifndef ENETRESET -#define ENETRESET 9915 -#endif - -#ifndef ENETUNREACH -#define ENETUNREACH 9916 -#endif - -#ifndef ENOBUFS -#define ENOBUFS 9917 -#endif - -#ifndef ENOLINK -#define ENOLINK 9918 -#endif - -#ifndef ENODATA -#define ENODATA 9919 -#endif - -#ifndef ENOMSG -#define ENOMSG 9920 -#endif - -#ifndef ENOPROTOOPT -#define ENOPROTOOPT 9921 -#endif - -#ifndef ENOSR -#define ENOSR 9922 -#endif - -#ifndef ENOTSOCK -#define ENOTSOCK 9923 -#endif - -#ifndef ENOSTR -#define ENOSTR 9924 -#endif - -#ifndef ENOTCONN -#define ENOTCONN 9925 -#endif - -#ifndef ENOTSUP -#define ENOTSUP 9926 -#endif - -#ifndef ECANCELED -#define ECANCELED 9927 -#endif - -#ifndef EINPROGRESS -#define EINPROGRESS 9928 -#endif - -#ifndef EOPNOTSUPP -#define EOPNOTSUPP 9929 -#endif - -#ifndef EWOULDBLOCK -#define EWOULDBLOCK 9930 -#endif - -#ifndef EOWNERDEAD -#define EOWNERDEAD 9931 -#endif - -#ifndef EPROTO -#define EPROTO 9932 -#endif - -#ifndef EPROTONOSUPPORT -#define EPROTONOSUPPORT 9933 -#endif - -#ifndef ENOTRECOVERABLE -#define ENOTRECOVERABLE 9934 -#endif - -#ifndef ETIME -#define ETIME 9935 -#endif - -#ifndef ETXTBSY -#define ETXTBSY 9936 -#endif - -#ifndef ETIMEDOUT -#define ETIMEDOUT 9938 -#endif - -#ifndef ELOOP -#define ELOOP 9939 -#endif - -#ifndef EOVERFLOW -#define EOVERFLOW 9940 -#endif - -#ifndef EPROTOTYPE -#define EPROTOTYPE 9941 -#endif - -#ifndef ENOSYS -#define ENOSYS 9942 -#endif - -#ifndef EINVAL -#define EINVAL 9943 -#endif - -#ifndef ERANGE -#define ERANGE 9944 -#endif - -#ifndef EILSEQ -#define EILSEQ 9945 -#endif - -// Windows Mobile doesn't appear to define these: - -#ifndef E2BIG -#define E2BIG 9946 -#endif - -#ifndef EDOM -#define EDOM 9947 -#endif - -#ifndef EFAULT -#define EFAULT 9948 -#endif - -#ifndef EBADF -#define EBADF 9949 -#endif - -#ifndef EPIPE -#define EPIPE 9950 -#endif - -#ifndef EXDEV -#define EXDEV 9951 -#endif - -#ifndef EBUSY -#define EBUSY 9952 -#endif - -#ifndef ENOTEMPTY -#define ENOTEMPTY 9953 -#endif - -#ifndef ENOEXEC -#define ENOEXEC 9954 -#endif - -#ifndef EEXIST -#define EEXIST 9955 -#endif - -#ifndef EFBIG -#define EFBIG 9956 -#endif - -#ifndef ENAMETOOLONG -#define ENAMETOOLONG 9957 -#endif - -#ifndef ENOTTY -#define ENOTTY 9958 -#endif - -#ifndef EINTR -#define EINTR 9959 -#endif - -#ifndef ESPIPE -#define ESPIPE 9960 -#endif - -#ifndef EIO -#define EIO 9961 -#endif - -#ifndef EISDIR -#define EISDIR 9962 -#endif - -#ifndef ECHILD -#define ECHILD 9963 -#endif - -#ifndef ENOLCK -#define ENOLCK 9964 -#endif - -#ifndef ENOSPC -#define ENOSPC 9965 -#endif - -#ifndef ENXIO -#define ENXIO 9966 -#endif - -#ifndef ENODEV -#define ENODEV 9967 -#endif - -#ifndef ENOENT -#define ENOENT 9968 -#endif - -#ifndef ESRCH -#define ESRCH 9969 -#endif - -#ifndef ENOTDIR -#define ENOTDIR 9970 -#endif - -#ifndef ENOMEM -#define ENOMEM 9971 -#endif - -#ifndef EPERM -#define EPERM 9972 -#endif - -#ifndef EACCES -#define EACCES 9973 -#endif - -#ifndef EROFS -#define EROFS 9974 -#endif - -#ifndef EDEADLK -#define EDEADLK 9975 -#endif - -#ifndef EAGAIN -#define EAGAIN 9976 -#endif - -#ifndef ENFILE -#define ENFILE 9977 -#endif - -#ifndef EMFILE -#define EMFILE 9978 -#endif - -#ifndef EMLINK -#define EMLINK 9979 -#endif - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/checked_delete.hpp b/lib/3rdParty/boost/boost/checked_delete.hpp deleted file mode 100644 index fb71c789c..000000000 --- a/lib/3rdParty/boost/boost/checked_delete.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_CHECKED_DELETE_HPP -#define BOOST_CHECKED_DELETE_HPP - -// The header file at this path is deprecated; -// use boost/core/checked_delete.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/concept/assert.hpp b/lib/3rdParty/boost/boost/concept/assert.hpp deleted file mode 100644 index cf9817952..000000000 --- a/lib/3rdParty/boost/boost/concept/assert.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_ASSERT_DWA2006430_HPP -# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP - -# include -# include - -// The old protocol used a constraints() member function in concept -// checking classes. If the compiler supports SFINAE, we can detect -// that function and seamlessly support the old concept checking -// classes. In this release, backward compatibility with the old -// concept checking classes is enabled by default, where available. -// The old protocol is deprecated, though, and backward compatibility -// will no longer be the default in the next release. - -# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \ - && !defined(BOOST_NO_SFINAE) \ - \ - && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) - -// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to -// check for the presence of particularmember functions. - -# define BOOST_OLD_CONCEPT_SUPPORT - -# endif - -# ifdef BOOST_MSVC -# include -# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# include -# else -# include -# endif - - // Usage, in class or function context: - // - // BOOST_CONCEPT_ASSERT((UnaryFunctionConcept)); - // -# define BOOST_CONCEPT_ASSERT(ModelInParens) \ - BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens) - -#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP diff --git a/lib/3rdParty/boost/boost/concept/detail/backward_compatibility.hpp b/lib/3rdParty/boost/boost/concept/detail/backward_compatibility.hpp deleted file mode 100644 index 66d573ef4..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/backward_compatibility.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright David Abrahams 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) -#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP -# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP - -namespace boost -{ - namespace concepts {} - -# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD) - namespace concept = concepts; -# endif -} // namespace boost::concept - -#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP diff --git a/lib/3rdParty/boost/boost/concept/detail/borland.hpp b/lib/3rdParty/boost/boost/concept/detail/borland.hpp deleted file mode 100644 index 300d5d405..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/borland.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP -# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP - -# include -# include - -namespace boost { namespace concepts { - -template -struct require; - -template -struct require -{ - enum { instantiate = sizeof((((Model*)0)->~Model()), 3) }; -}; - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ - enum \ - { \ - BOOST_PP_CAT(boost_concept_check,__LINE__) = \ - boost::concepts::require::instantiate \ - } - -}} // namespace boost::concept - -#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP diff --git a/lib/3rdParty/boost/boost/concept/detail/concept_def.hpp b/lib/3rdParty/boost/boost/concept/detail/concept_def.hpp deleted file mode 100644 index 750561ee3..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/concept_def.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP -# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP -# include -# include -# include -# include -#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP - -// BOOST_concept(SomeName, (p1)(p2)...(pN)) -// -// Expands to "template struct SomeName" -// -// Also defines an equivalent SomeNameConcept for backward compatibility. -// Maybe in the next release we can kill off the "Concept" suffix for good. -# define BOOST_concept(name, params) \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct name; /* forward declaration */ \ - \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct BOOST_PP_CAT(name,Concept) \ - : name< BOOST_PP_SEQ_ENUM(params) > \ - { \ - }; \ - \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct name - -// Helper for BOOST_concept, above. -# define BOOST_CONCEPT_typename(r, ignored, index, t) \ - BOOST_PP_COMMA_IF(index) typename t - diff --git a/lib/3rdParty/boost/boost/concept/detail/concept_undef.hpp b/lib/3rdParty/boost/boost/concept/detail/concept_undef.hpp deleted file mode 100644 index 713db8912..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/concept_undef.hpp +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright David Abrahams 2006. 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) -# undef BOOST_concept_typename -# undef BOOST_concept diff --git a/lib/3rdParty/boost/boost/concept/detail/general.hpp b/lib/3rdParty/boost/boost/concept/detail/general.hpp deleted file mode 100644 index 525ea656c..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/general.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP -# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP - -# include -# include -# include - -# ifdef BOOST_OLD_CONCEPT_SUPPORT -# include -# include -# endif - -// This implementation works on Comeau and GCC, all the way back to -// 2.95 -namespace boost { namespace concepts { - -template -struct requirement_; - -namespace detail -{ - template struct instantiate {}; -} - -template -struct requirement -{ - static void failed() { ((Model*)0)->~Model(); } -}; - -struct failed {}; - -template -struct requirement -{ - static void failed() { ((Model*)0)->~Model(); } -}; - -# ifdef BOOST_OLD_CONCEPT_SUPPORT - -template -struct constraint -{ - static void failed() { ((Model*)0)->constraints(); } -}; - -template -struct requirement_ - : mpl::if_< - concepts::not_satisfied - , constraint - , requirement - >::type -{}; - -# else - -// For GCC-2.x, these can't have exactly the same name -template -struct requirement_ - : requirement -{}; - -# endif - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ - typedef ::boost::concepts::detail::instantiate< \ - &::boost::concepts::requirement_::failed> \ - BOOST_PP_CAT(boost_concept_check,__LINE__) \ - BOOST_ATTRIBUTE_UNUSED - -}} - -#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP diff --git a/lib/3rdParty/boost/boost/concept/detail/has_constraints.hpp b/lib/3rdParty/boost/boost/concept/detail/has_constraints.hpp deleted file mode 100644 index a309db3d8..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/has_constraints.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP -# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP - -# include -# include -# include - -namespace boost { namespace concepts { - -namespace detail -{ - -// Here we implement the metafunction that detects whether a -// constraints metafunction exists - typedef char yes; - typedef char (&no)[2]; - - template - struct wrap_constraints {}; - -#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__) - // Work around the following bogus error in Sun Studio 11, by - // turning off the has_constraints function entirely: - // Error: complex expression not allowed in dependent template - // argument expression - inline no has_constraints_(...); -#else - template - inline yes has_constraints_(Model*, wrap_constraints* = 0); - inline no has_constraints_(...); -#endif -} - -// This would be called "detail::has_constraints," but it has a strong -// tendency to show up in error messages. -template -struct not_satisfied -{ - BOOST_STATIC_CONSTANT( - bool - , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); - typedef mpl::bool_ type; -}; - -}} // namespace boost::concepts::detail - -#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP diff --git a/lib/3rdParty/boost/boost/concept/detail/msvc.hpp b/lib/3rdParty/boost/boost/concept/detail/msvc.hpp deleted file mode 100644 index 078dd2233..000000000 --- a/lib/3rdParty/boost/boost/concept/detail/msvc.hpp +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_CHECK_MSVC_DWA2006429_HPP -# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP - -# include -# include -# include - -# ifdef BOOST_OLD_CONCEPT_SUPPORT -# include -# include -# endif - -# ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable:4100) -# endif - -namespace boost { namespace concepts { - - -template -struct check -{ - virtual void failed(Model* x) - { - x->~Model(); - } -}; - -# ifndef BOOST_NO_PARTIAL_SPECIALIZATION -struct failed {}; -template -struct check -{ - virtual void failed(Model* x) - { - x->~Model(); - } -}; -# endif - -# ifdef BOOST_OLD_CONCEPT_SUPPORT - -namespace detail -{ - // No need for a virtual function here, since evaluating - // not_satisfied below will have already instantiated the - // constraints() member. - struct constraint {}; -} - -template -struct require - : mpl::if_c< - not_satisfied::value - , detail::constraint -# ifndef BOOST_NO_PARTIAL_SPECIALIZATION - , check -# else - , check -# endif - >::type -{}; - -# else - -template -struct require -# ifndef BOOST_NO_PARTIAL_SPECIALIZATION - : check -# else - : check -# endif -{}; - -# endif - -# if BOOST_WORKAROUND(BOOST_MSVC, == 1310) - -// -// The iterator library sees some really strange errors unless we -// do things this way. -// -template -struct require -{ - virtual void failed(Model*) - { - require(); - } -}; - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ -enum \ -{ \ - BOOST_PP_CAT(boost_concept_check,__LINE__) = \ - sizeof(::boost::concepts::require) \ -} - -# else // Not vc-7.1 - -template -require -require_(void(*)(Model)); - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ -enum \ -{ \ - BOOST_PP_CAT(boost_concept_check,__LINE__) = \ - sizeof(::boost::concepts::require_((ModelFnPtr)0)) \ -} - -# endif -}} - -# ifdef BOOST_MSVC -# pragma warning(pop) -# endif - -#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP diff --git a/lib/3rdParty/boost/boost/concept/requires.hpp b/lib/3rdParty/boost/boost/concept/requires.hpp deleted file mode 100644 index 365ce1004..000000000 --- a/lib/3rdParty/boost/boost/concept/requires.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_REQUIRES_DWA2006430_HPP -# define BOOST_CONCEPT_REQUIRES_DWA2006430_HPP - -# include -# include -# include - -namespace boost { - -// unaryfunptr_arg_type from parameter/aux_/parenthesized_type.hpp - -namespace ccheck_aux { - -// A metafunction that transforms void(*)(T) -> T -template -struct unaryfunptr_arg_type; - -template -struct unaryfunptr_arg_type -{ - typedef Arg type; -}; - -template <> -struct unaryfunptr_arg_type -{ - typedef void type; -}; - -} // namespace ccheck_aux - -// Template for use in handwritten assertions -template -struct requires_ : More -{ - BOOST_CONCEPT_ASSERT((Model)); -}; - -// Template for use by macros, where models must be wrapped in parens. -// This isn't in namespace detail to keep extra cruft out of resulting -// error messages. -template -struct _requires_ -{ - enum { value = 0 }; - BOOST_CONCEPT_ASSERT_FN(ModelFn); -}; - -template -struct Requires_ : ::boost::ccheck_aux::unaryfunptr_arg_type -{ -}; - -# if BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1010)) -# define BOOST_CONCEPT_REQUIRES_(r,data,t) | (::boost::_requires_::value) -# else -# define BOOST_CONCEPT_REQUIRES_(r,data,t) + (::boost::_requires_::value) -# endif - -#if defined(NDEBUG) - -# define BOOST_CONCEPT_REQUIRES(models, result) \ - typename ::boost::ccheck_aux::unaryfunptr_arg_type::type - -#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - -// Same thing as below without the initial typename -# define BOOST_CONCEPT_REQUIRES(models, result) \ - ::boost::Requires_< \ - (0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)), \ - ::boost::ccheck_aux::unaryfunptr_arg_type \ - >::type - -#else - -// This just ICEs on MSVC6 :( -# define BOOST_CONCEPT_REQUIRES(models, result) \ - typename ::boost::Requires_< \ - (0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)), \ - void(*)result \ - >::type - -#endif - -// C++0x proposed syntax changed. This supports an older usage -#define BOOST_CONCEPT_WHERE(models,result) BOOST_CONCEPT_REQUIRES(models,result) - -} // namespace boost::concept_check - -#endif // BOOST_CONCEPT_REQUIRES_DWA2006430_HPP diff --git a/lib/3rdParty/boost/boost/concept/usage.hpp b/lib/3rdParty/boost/boost/concept/usage.hpp deleted file mode 100644 index e73370fb3..000000000 --- a/lib/3rdParty/boost/boost/concept/usage.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright David Abrahams 2006. 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_CONCEPT_USAGE_DWA2006919_HPP -# define BOOST_CONCEPT_USAGE_DWA2006919_HPP - -# include -# include -# include - -namespace boost { namespace concepts { - -template -struct usage_requirements -{ - ~usage_requirements() { ((Model*)0)->~Model(); } -}; - -# if BOOST_WORKAROUND(__GNUC__, <= 3) - -# define BOOST_CONCEPT_USAGE(model) \ - model(); /* at least 2.96 and 3.4.3 both need this :( */ \ - BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ - ~model() - -# else - -# define BOOST_CONCEPT_USAGE(model) \ - BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ - ~model() - -# endif - -}} // namespace boost::concepts - -#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP diff --git a/lib/3rdParty/boost/boost/concept_check.hpp b/lib/3rdParty/boost/boost/concept_check.hpp deleted file mode 100644 index 25f118b64..000000000 --- a/lib/3rdParty/boost/boost/concept_check.hpp +++ /dev/null @@ -1,1082 +0,0 @@ -// -// (C) Copyright Jeremy Siek 2000. -// Copyright 2002 The Trustees of Indiana University. -// -// 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) -// -// Revision History: -// 05 May 2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek) -// 02 April 2001: Removed limits header altogether. (Jeremy Siek) -// 01 April 2001: Modified to use new header. (JMaddock) -// - -// See http://www.boost.org/libs/concept_check for documentation. - -#ifndef BOOST_CONCEPT_CHECKS_HPP -# define BOOST_CONCEPT_CHECKS_HPP - -# include - -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include - -#if (defined _MSC_VER) -# pragma warning( push ) -# pragma warning( disable : 4510 ) // default constructor could not be generated -# pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required -#endif - -namespace boost -{ - - // - // Backward compatibility - // - - template - inline void function_requires(Model* = 0) - { - BOOST_CONCEPT_ASSERT((Model)); - } - template inline void ignore_unused_variable_warning(T const&) {} - -# define BOOST_CLASS_REQUIRE(type_var, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - -# define BOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - -# define BOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - -# define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - - - // - // Begin concept definitions - // - BOOST_concept(Integer, (T)) - { - BOOST_CONCEPT_USAGE(Integer) - { - x.error_type_must_be_an_integer_type(); - } - private: - T x; - }; - - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct Integer< ::boost::long_long_type> {}; - template <> struct Integer< ::boost::ulong_long_type> {}; -# elif defined(BOOST_HAS_MS_INT64) - template <> struct Integer<__int64> {}; - template <> struct Integer {}; -# endif - - BOOST_concept(SignedInteger,(T)) { - BOOST_CONCEPT_USAGE(SignedInteger) { - x.error_type_must_be_a_signed_integer_type(); - } - private: - T x; - }; - template <> struct SignedInteger { }; - template <> struct SignedInteger {}; - template <> struct SignedInteger {}; - template <> struct SignedInteger {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct SignedInteger< ::boost::long_long_type> {}; -# elif defined(BOOST_HAS_MS_INT64) - template <> struct SignedInteger<__int64> {}; -# endif - - BOOST_concept(UnsignedInteger,(T)) { - BOOST_CONCEPT_USAGE(UnsignedInteger) { - x.error_type_must_be_an_unsigned_integer_type(); - } - private: - T x; - }; - - template <> struct UnsignedInteger {}; - template <> struct UnsignedInteger {}; - template <> struct UnsignedInteger {}; - template <> struct UnsignedInteger {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct UnsignedInteger< ::boost::ulong_long_type> {}; -# elif defined(BOOST_HAS_MS_INT64) - template <> struct UnsignedInteger {}; -# endif - - //=========================================================================== - // Basic Concepts - - BOOST_concept(DefaultConstructible,(TT)) - { - BOOST_CONCEPT_USAGE(DefaultConstructible) { - TT a; // require default constructor - ignore_unused_variable_warning(a); - } - }; - - BOOST_concept(Assignable,(TT)) - { - BOOST_CONCEPT_USAGE(Assignable) { -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = b; // require assignment operator -#endif - const_constraints(b); - } - private: - void const_constraints(const TT& x) { -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = x; // const required for argument to assignment -#else - ignore_unused_variable_warning(x); -#endif - } - private: - TT a; - TT b; - }; - - - BOOST_concept(CopyConstructible,(TT)) - { - BOOST_CONCEPT_USAGE(CopyConstructible) { - TT a(b); // require copy constructor - TT* ptr = &a; // require address of operator - const_constraints(a); - ignore_unused_variable_warning(ptr); - } - private: - void const_constraints(const TT& a) { - TT c(a); // require const copy constructor - const TT* ptr = &a; // require const address of operator - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(ptr); - } - TT b; - }; - - // The SGI STL version of Assignable requires copy constructor and operator= - BOOST_concept(SGIAssignable,(TT)) - { - BOOST_CONCEPT_USAGE(SGIAssignable) { - TT c(a); -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = b; // require assignment operator -#endif - const_constraints(b); - ignore_unused_variable_warning(c); - } - private: - void const_constraints(const TT& x) { - TT c(x); -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = x; // const required for argument to assignment -#endif - ignore_unused_variable_warning(c); - } - TT a; - TT b; - }; - - BOOST_concept(Convertible,(X)(Y)) - { - BOOST_CONCEPT_USAGE(Convertible) { - Y y = x; - ignore_unused_variable_warning(y); - } - private: - X x; - }; - - // The C++ standard requirements for many concepts talk about return - // types that must be "convertible to bool". The problem with this - // requirement is that it leaves the door open for evil proxies that - // define things like operator|| with strange return types. Two - // possible solutions are: - // 1) require the return type to be exactly bool - // 2) stay with convertible to bool, and also - // specify stuff about all the logical operators. - // For now we just test for convertible to bool. - template - void require_boolean_expr(const TT& t) { - bool x = t; - ignore_unused_variable_warning(x); - } - - BOOST_concept(EqualityComparable,(TT)) - { - BOOST_CONCEPT_USAGE(EqualityComparable) { - require_boolean_expr(a == b); - require_boolean_expr(a != b); - } - private: - TT a, b; - }; - - BOOST_concept(LessThanComparable,(TT)) - { - BOOST_CONCEPT_USAGE(LessThanComparable) { - require_boolean_expr(a < b); - } - private: - TT a, b; - }; - - // This is equivalent to SGI STL's LessThanComparable. - BOOST_concept(Comparable,(TT)) - { - BOOST_CONCEPT_USAGE(Comparable) { - require_boolean_expr(a < b); - require_boolean_expr(a > b); - require_boolean_expr(a <= b); - require_boolean_expr(a >= b); - } - private: - TT a, b; - }; - -#define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME) \ - BOOST_concept(NAME, (First)(Second)) \ - { \ - BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); } \ - private: \ - bool constraints_() { return a OP b; } \ - First a; \ - Second b; \ - } - -#define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME) \ - BOOST_concept(NAME, (Ret)(First)(Second)) \ - { \ - BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); } \ - private: \ - Ret constraints_() { return a OP b; } \ - First a; \ - Second b; \ - } - - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOp); - - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOp); - - //=========================================================================== - // Function Object Concepts - - BOOST_concept(Generator,(Func)(Return)) - { - BOOST_CONCEPT_USAGE(Generator) { test(is_void()); } - - private: - void test(boost::mpl::false_) - { - // Do we really want a reference here? - const Return& r = f(); - ignore_unused_variable_warning(r); - } - - void test(boost::mpl::true_) - { - f(); - } - - Func f; - }; - - BOOST_concept(UnaryFunction,(Func)(Return)(Arg)) - { - BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void()); } - - private: - void test(boost::mpl::false_) - { - f(arg); // "priming the pump" this way keeps msvc6 happy (ICE) - Return r = f(arg); - ignore_unused_variable_warning(r); - } - - void test(boost::mpl::true_) - { - f(arg); - } - -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy construktor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& boost::UnaryFunction::arg" - // in class without a constructor [-Wuninitialized]) - UnaryFunction(); -#endif - - Func f; - Arg arg; - }; - - BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second)) - { - BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void()); } - private: - void test(boost::mpl::false_) - { - f(first,second); - Return r = f(first, second); // require operator() - (void)r; - } - - void test(boost::mpl::true_) - { - f(first,second); - } - -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& boost::BinaryFunction::arg" - // in class without a constructor [-Wuninitialized]) - BinaryFunction(); -#endif - - Func f; - First first; - Second second; - }; - - BOOST_concept(UnaryPredicate,(Func)(Arg)) - { - BOOST_CONCEPT_USAGE(UnaryPredicate) { - require_boolean_expr(f(arg)); // require operator() returning bool - } - private: -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& boost::UnaryPredicate::arg" - // in class without a constructor [-Wuninitialized]) - UnaryPredicate(); -#endif - - Func f; - Arg arg; - }; - - BOOST_concept(BinaryPredicate,(Func)(First)(Second)) - { - BOOST_CONCEPT_USAGE(BinaryPredicate) { - require_boolean_expr(f(a, b)); // require operator() returning bool - } - private: -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& boost::BinaryPredicate::arg" - // in class without a constructor [-Wuninitialized]) - BinaryPredicate(); -#endif - Func f; - First a; - Second b; - }; - - // use this when functor is used inside a container class like std::set - BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second)) - : BinaryPredicate - { - BOOST_CONCEPT_USAGE(Const_BinaryPredicate) { - const_constraints(f); - } - private: - void const_constraints(const Func& fun) { - // operator() must be a const member function - require_boolean_expr(fun(a, b)); - } -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& boost::Const_BinaryPredicate::arg" - // in class without a constructor [-Wuninitialized]) - Const_BinaryPredicate(); -#endif - - Func f; - First a; - Second b; - }; - - BOOST_concept(AdaptableGenerator,(Func)(Return)) - : Generator - { - typedef typename Func::result_type result_type; - - BOOST_CONCEPT_USAGE(AdaptableGenerator) - { - BOOST_CONCEPT_ASSERT((Convertible)); - } - }; - - BOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg)) - : UnaryFunction - { - typedef typename Func::argument_type argument_type; - typedef typename Func::result_type result_type; - - ~AdaptableUnaryFunction() - { - BOOST_CONCEPT_ASSERT((Convertible)); - BOOST_CONCEPT_ASSERT((Convertible)); - } - }; - - BOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second)) - : BinaryFunction< - Func - , typename Func::result_type - , typename Func::first_argument_type - , typename Func::second_argument_type - > - { - typedef typename Func::first_argument_type first_argument_type; - typedef typename Func::second_argument_type second_argument_type; - typedef typename Func::result_type result_type; - - ~AdaptableBinaryFunction() - { - BOOST_CONCEPT_ASSERT((Convertible)); - BOOST_CONCEPT_ASSERT((Convertible)); - BOOST_CONCEPT_ASSERT((Convertible)); - } - }; - - BOOST_concept(AdaptablePredicate,(Func)(Arg)) - : UnaryPredicate - , AdaptableUnaryFunction - { - }; - - BOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second)) - : BinaryPredicate - , AdaptableBinaryFunction - { - }; - - //=========================================================================== - // Iterator Concepts - - BOOST_concept(InputIterator,(TT)) - : Assignable - , EqualityComparable - { - typedef typename std::iterator_traits::value_type value_type; - typedef typename std::iterator_traits::difference_type difference_type; - typedef typename std::iterator_traits::reference reference; - typedef typename std::iterator_traits::pointer pointer; - typedef typename std::iterator_traits::iterator_category iterator_category; - - BOOST_CONCEPT_USAGE(InputIterator) - { - BOOST_CONCEPT_ASSERT((SignedInteger)); - BOOST_CONCEPT_ASSERT((Convertible)); - - TT j(i); - (void)*i; // require dereference operator - ++j; // require preincrement operator - i++; // require postincrement operator - } - private: - TT i; - }; - - BOOST_concept(OutputIterator,(TT)(ValueT)) - : Assignable - { - BOOST_CONCEPT_USAGE(OutputIterator) { - - ++i; // require preincrement operator - i++; // require postincrement operator - *i++ = t; // require postincrement and assignment - } - private: - TT i, j; - ValueT t; - }; - - BOOST_concept(ForwardIterator,(TT)) - : InputIterator - { - BOOST_CONCEPT_USAGE(ForwardIterator) - { - BOOST_CONCEPT_ASSERT((Convertible< - BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category - , std::forward_iterator_tag - >)); - - typename InputIterator::reference r = *i; - ignore_unused_variable_warning(r); - } - - private: - TT i; - }; - - BOOST_concept(Mutable_ForwardIterator,(TT)) - : ForwardIterator - { - BOOST_CONCEPT_USAGE(Mutable_ForwardIterator) { - *i++ = *j; // require postincrement and assignment - } - private: - TT i, j; - }; - - BOOST_concept(BidirectionalIterator,(TT)) - : ForwardIterator - { - BOOST_CONCEPT_USAGE(BidirectionalIterator) - { - BOOST_CONCEPT_ASSERT((Convertible< - BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category - , std::bidirectional_iterator_tag - >)); - - --i; // require predecrement operator - i--; // require postdecrement operator - } - private: - TT i; - }; - - BOOST_concept(Mutable_BidirectionalIterator,(TT)) - : BidirectionalIterator - , Mutable_ForwardIterator - { - BOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator) - { - *i-- = *j; // require postdecrement and assignment - } - private: - TT i, j; - }; - - BOOST_concept(RandomAccessIterator,(TT)) - : BidirectionalIterator - , Comparable - { - BOOST_CONCEPT_USAGE(RandomAccessIterator) - { - BOOST_CONCEPT_ASSERT((Convertible< - BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category - , std::random_access_iterator_tag - >)); - - i += n; // require assignment addition operator - i = i + n; i = n + i; // require addition with difference type - i -= n; // require assignment subtraction operator - i = i - n; // require subtraction with difference type - n = i - j; // require difference operator - (void)i[n]; // require element access operator - } - - private: - TT a, b; - TT i, j; - typename std::iterator_traits::difference_type n; - }; - - BOOST_concept(Mutable_RandomAccessIterator,(TT)) - : RandomAccessIterator - , Mutable_BidirectionalIterator - { - BOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator) - { - i[n] = *i; // require element access and assignment - } - private: - TT i; - typename std::iterator_traits::difference_type n; - }; - - //=========================================================================== - // Container s - - BOOST_concept(Container,(C)) - : Assignable - { - typedef typename C::value_type value_type; - typedef typename C::difference_type difference_type; - typedef typename C::size_type size_type; - typedef typename C::const_reference const_reference; - typedef typename C::const_pointer const_pointer; - typedef typename C::const_iterator const_iterator; - - BOOST_CONCEPT_USAGE(Container) - { - BOOST_CONCEPT_ASSERT((InputIterator)); - const_constraints(c); - } - - private: - void const_constraints(const C& cc) { - i = cc.begin(); - i = cc.end(); - n = cc.size(); - n = cc.max_size(); - b = cc.empty(); - } - C c; - bool b; - const_iterator i; - size_type n; - }; - - BOOST_concept(Mutable_Container,(C)) - : Container - { - typedef typename C::reference reference; - typedef typename C::iterator iterator; - typedef typename C::pointer pointer; - - BOOST_CONCEPT_USAGE(Mutable_Container) - { - BOOST_CONCEPT_ASSERT(( - Assignable)); - - BOOST_CONCEPT_ASSERT((InputIterator)); - - i = c.begin(); - i = c.end(); - c.swap(c2); - } - - private: - iterator i; - C c, c2; - }; - - BOOST_concept(ForwardContainer,(C)) - : Container - { - BOOST_CONCEPT_USAGE(ForwardContainer) - { - BOOST_CONCEPT_ASSERT(( - ForwardIterator< - typename ForwardContainer::const_iterator - >)); - } - }; - - BOOST_concept(Mutable_ForwardContainer,(C)) - : ForwardContainer - , Mutable_Container - { - BOOST_CONCEPT_USAGE(Mutable_ForwardContainer) - { - BOOST_CONCEPT_ASSERT(( - Mutable_ForwardIterator< - typename Mutable_ForwardContainer::iterator - >)); - } - }; - - BOOST_concept(ReversibleContainer,(C)) - : ForwardContainer - { - typedef typename - C::const_reverse_iterator - const_reverse_iterator; - - BOOST_CONCEPT_USAGE(ReversibleContainer) - { - BOOST_CONCEPT_ASSERT(( - BidirectionalIterator< - typename ReversibleContainer::const_iterator>)); - - BOOST_CONCEPT_ASSERT((BidirectionalIterator)); - - const_constraints(c); - } - private: - void const_constraints(const C& cc) - { - const_reverse_iterator i = cc.rbegin(); - i = cc.rend(); - } - C c; - }; - - BOOST_concept(Mutable_ReversibleContainer,(C)) - : Mutable_ForwardContainer - , ReversibleContainer - { - typedef typename C::reverse_iterator reverse_iterator; - - BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer) - { - typedef typename Mutable_ForwardContainer::iterator iterator; - BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator)); - BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator)); - - reverse_iterator i = c.rbegin(); - i = c.rend(); - } - private: - C c; - }; - - BOOST_concept(RandomAccessContainer,(C)) - : ReversibleContainer - { - typedef typename C::size_type size_type; - typedef typename C::const_reference const_reference; - - BOOST_CONCEPT_USAGE(RandomAccessContainer) - { - BOOST_CONCEPT_ASSERT(( - RandomAccessIterator< - typename RandomAccessContainer::const_iterator - >)); - - const_constraints(c); - } - private: - void const_constraints(const C& cc) - { - const_reference r = cc[n]; - ignore_unused_variable_warning(r); - } - - C c; - size_type n; - }; - - BOOST_concept(Mutable_RandomAccessContainer,(C)) - : Mutable_ReversibleContainer - , RandomAccessContainer - { - private: - typedef Mutable_RandomAccessContainer self; - public: - BOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer) - { - BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator)); - BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator)); - - typename self::reference r = c[i]; - ignore_unused_variable_warning(r); - } - - private: - typename Mutable_ReversibleContainer::size_type i; - C c; - }; - - // A Sequence is inherently mutable - BOOST_concept(Sequence,(S)) - : Mutable_ForwardContainer - // Matt Austern's book puts DefaultConstructible here, the C++ - // standard places it in Container --JGS - // ... so why aren't we following the standard? --DWA - , DefaultConstructible - { - BOOST_CONCEPT_USAGE(Sequence) - { - S - c(n, t), - c2(first, last); - - c.insert(p, t); - c.insert(p, n, t); - c.insert(p, first, last); - - c.erase(p); - c.erase(p, q); - - typename Sequence::reference r = c.front(); - - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(c2); - ignore_unused_variable_warning(r); - const_constraints(c); - } - private: - void const_constraints(const S& c) { - typename Sequence::const_reference r = c.front(); - ignore_unused_variable_warning(r); - } - - typename S::value_type t; - typename S::size_type n; - typename S::value_type* first, *last; - typename S::iterator p, q; - }; - - BOOST_concept(FrontInsertionSequence,(S)) - : Sequence - { - BOOST_CONCEPT_USAGE(FrontInsertionSequence) - { - c.push_front(t); - c.pop_front(); - } - private: - S c; - typename S::value_type t; - }; - - BOOST_concept(BackInsertionSequence,(S)) - : Sequence - { - BOOST_CONCEPT_USAGE(BackInsertionSequence) - { - c.push_back(t); - c.pop_back(); - typename BackInsertionSequence::reference r = c.back(); - ignore_unused_variable_warning(r); - const_constraints(c); - } - private: - void const_constraints(const S& cc) { - typename BackInsertionSequence::const_reference - r = cc.back(); - ignore_unused_variable_warning(r); - } - S c; - typename S::value_type t; - }; - - BOOST_concept(AssociativeContainer,(C)) - : ForwardContainer - , DefaultConstructible - { - typedef typename C::key_type key_type; - typedef typename C::key_compare key_compare; - typedef typename C::value_compare value_compare; - typedef typename C::iterator iterator; - - BOOST_CONCEPT_USAGE(AssociativeContainer) - { - i = c.find(k); - r = c.equal_range(k); - c.erase(k); - c.erase(i); - c.erase(r.first, r.second); - const_constraints(c); - BOOST_CONCEPT_ASSERT((BinaryPredicate)); - - typedef typename AssociativeContainer::value_type value_type_; - BOOST_CONCEPT_ASSERT((BinaryPredicate)); - } - - // Redundant with the base concept, but it helps below. - typedef typename C::const_iterator const_iterator; - private: - void const_constraints(const C& cc) - { - ci = cc.find(k); - n = cc.count(k); - cr = cc.equal_range(k); - } - - C c; - iterator i; - std::pair r; - const_iterator ci; - std::pair cr; - typename C::key_type k; - typename C::size_type n; - }; - - BOOST_concept(UniqueAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(UniqueAssociativeContainer) - { - C c(first, last); - - pos_flag = c.insert(t); - c.insert(first, last); - - ignore_unused_variable_warning(c); - } - private: - std::pair pos_flag; - typename C::value_type t; - typename C::value_type* first, *last; - }; - - BOOST_concept(MultipleAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(MultipleAssociativeContainer) - { - C c(first, last); - - pos = c.insert(t); - c.insert(first, last); - - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(pos); - } - private: - typename C::iterator pos; - typename C::value_type t; - typename C::value_type* first, *last; - }; - - BOOST_concept(SimpleAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(SimpleAssociativeContainer) - { - typedef typename C::key_type key_type; - typedef typename C::value_type value_type; - BOOST_MPL_ASSERT((boost::is_same)); - } - }; - - BOOST_concept(PairAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(PairAssociativeContainer) - { - typedef typename C::key_type key_type; - typedef typename C::value_type value_type; - typedef typename C::mapped_type mapped_type; - typedef std::pair required_value_type; - BOOST_MPL_ASSERT((boost::is_same)); - } - }; - - BOOST_concept(SortedAssociativeContainer,(C)) - : AssociativeContainer - , ReversibleContainer - { - BOOST_CONCEPT_USAGE(SortedAssociativeContainer) - { - C - c(kc), - c2(first, last), - c3(first, last, kc); - - p = c.upper_bound(k); - p = c.lower_bound(k); - r = c.equal_range(k); - - c.insert(p, t); - - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(c2); - ignore_unused_variable_warning(c3); - const_constraints(c); - } - - void const_constraints(const C& c) - { - kc = c.key_comp(); - vc = c.value_comp(); - - cp = c.upper_bound(k); - cp = c.lower_bound(k); - cr = c.equal_range(k); - } - - private: - typename C::key_compare kc; - typename C::value_compare vc; - typename C::value_type t; - typename C::key_type k; - typedef typename C::iterator iterator; - typedef typename C::const_iterator const_iterator; - - typedef SortedAssociativeContainer self; - iterator p; - const_iterator cp; - std::pair r; - std::pair cr; - typename C::value_type* first, *last; - }; - - // HashedAssociativeContainer - - BOOST_concept(Collection,(C)) - { - BOOST_CONCEPT_USAGE(Collection) - { - boost::function_requires >(); - boost::function_requires >(); - boost::function_requires >(); - const_constraints(c); - i = c.begin(); - i = c.end(); - c.swap(c); - } - - void const_constraints(const C& cc) { - ci = cc.begin(); - ci = cc.end(); - n = cc.size(); - b = cc.empty(); - } - - private: - typedef typename C::value_type value_type; - typedef typename C::iterator iterator; - typedef typename C::const_iterator const_iterator; - typedef typename C::reference reference; - typedef typename C::const_reference const_reference; - // typedef typename C::pointer pointer; - typedef typename C::difference_type difference_type; - typedef typename C::size_type size_type; - - C c; - bool b; - iterator i; - const_iterator ci; - size_type n; - }; -} // namespace boost - -#if (defined _MSC_VER) -# pragma warning( pop ) -#endif - -# include - -#endif // BOOST_CONCEPT_CHECKS_HPP - diff --git a/lib/3rdParty/boost/boost/config.hpp b/lib/3rdParty/boost/boost/config.hpp deleted file mode 100644 index d49bb27cd..000000000 --- a/lib/3rdParty/boost/boost/config.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// 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/lib/3rdParty/boost/boost/config/abi/borland_prefix.hpp b/lib/3rdParty/boost/boost/config/abi/borland_prefix.hpp deleted file mode 100644 index 3a0e5ae2d..000000000 --- a/lib/3rdParty/boost/boost/config/abi/borland_prefix.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/abi/borland_suffix.hpp b/lib/3rdParty/boost/boost/config/abi/borland_suffix.hpp deleted file mode 100644 index 940535f38..000000000 --- a/lib/3rdParty/boost/boost/config/abi/borland_suffix.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/abi/msvc_prefix.hpp b/lib/3rdParty/boost/boost/config/abi/msvc_prefix.hpp deleted file mode 100644 index 97f06cdc0..000000000 --- a/lib/3rdParty/boost/boost/config/abi/msvc_prefix.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/abi/msvc_suffix.hpp b/lib/3rdParty/boost/boost/config/abi/msvc_suffix.hpp deleted file mode 100644 index a64d783eb..000000000 --- a/lib/3rdParty/boost/boost/config/abi/msvc_suffix.hpp +++ /dev/null @@ -1,8 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/abi_prefix.hpp b/lib/3rdParty/boost/boost/config/abi_prefix.hpp deleted file mode 100644 index 3b1347492..000000000 --- a/lib/3rdParty/boost/boost/config/abi_prefix.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// 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/lib/3rdParty/boost/boost/config/abi_suffix.hpp b/lib/3rdParty/boost/boost/config/abi_suffix.hpp deleted file mode 100644 index 939161662..000000000 --- a/lib/3rdParty/boost/boost/config/abi_suffix.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// 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/lib/3rdParty/boost/boost/config/auto_link.hpp b/lib/3rdParty/boost/boost/config/auto_link.hpp deleted file mode 100644 index 56a16b0b3..000000000 --- a/lib/3rdParty/boost/boost/config/auto_link.hpp +++ /dev/null @@ -1,439 +0,0 @@ -// (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_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_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) - - // vc14: -# define BOOST_LIB_TOOLSET "vc140" - -# 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 - -// -// 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_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_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_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_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_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_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/lib/3rdParty/boost/boost/config/compiler/borland.hpp b/lib/3rdParty/boost/boost/config/compiler/borland.hpp deleted file mode 100644 index ccd930ea5..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/borland.hpp +++ /dev/null @@ -1,319 +0,0 @@ -// (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_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_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 - -#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/lib/3rdParty/boost/boost/config/compiler/clang.hpp b/lib/3rdParty/boost/boost/config/compiler/clang.hpp deleted file mode 100644 index 150e3c0d5..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/clang.hpp +++ /dev/null @@ -1,304 +0,0 @@ -// (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 - -#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(__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) -# 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) && (_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 __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 - -// Clang has supported the 'unused' attribute since the first release. -#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) - -#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/lib/3rdParty/boost/boost/config/compiler/codegear.hpp b/lib/3rdParty/boost/boost/config/compiler/codegear.hpp deleted file mode 100644 index e2f6061b3..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/codegear.hpp +++ /dev/null @@ -1,221 +0,0 @@ -// (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_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 - -// -// 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/lib/3rdParty/boost/boost/config/compiler/comeau.hpp b/lib/3rdParty/boost/boost/config/compiler/comeau.hpp deleted file mode 100644 index 09841604f..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/comeau.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/compiler/common_edg.hpp b/lib/3rdParty/boost/boost/config/compiler/common_edg.hpp deleted file mode 100644 index c09faeb0d..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/common_edg.hpp +++ /dev/null @@ -1,144 +0,0 @@ -// (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_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 - -#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/lib/3rdParty/boost/boost/config/compiler/compaq_cxx.hpp b/lib/3rdParty/boost/boost/config/compiler/compaq_cxx.hpp deleted file mode 100644 index 4d6b8ab3a..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/compaq_cxx.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/compiler/cray.hpp b/lib/3rdParty/boost/boost/config/compiler/cray.hpp deleted file mode 100644 index 837f81523..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/cray.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// (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 < 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 - -#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_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 - - - diff --git a/lib/3rdParty/boost/boost/config/compiler/digitalmars.hpp b/lib/3rdParty/boost/boost/config/compiler/digitalmars.hpp deleted file mode 100644 index c344aae04..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/digitalmars.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// 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_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 - -#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/lib/3rdParty/boost/boost/config/compiler/gcc.hpp b/lib/3rdParty/boost/boost/config/compiler/gcc.hpp deleted file mode 100644 index e319d0495..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/gcc.hpp +++ /dev/null @@ -1,328 +0,0 @@ -// (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. -# 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_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 -#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 !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -// -// Unused attribute: -#if __GNUC__ >= 4 -# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) -#endif -// -// __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 4.9: -#if (BOOST_GCC_VERSION > 40900) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# 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/lib/3rdParty/boost/boost/config/compiler/gcc_xml.hpp b/lib/3rdParty/boost/boost/config/compiler/gcc_xml.hpp deleted file mode 100644 index b56c78628..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/gcc_xml.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// (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_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 - -#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ - - diff --git a/lib/3rdParty/boost/boost/config/compiler/greenhills.hpp b/lib/3rdParty/boost/boost/config/compiler/greenhills.hpp deleted file mode 100644 index a76a07cf4..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/greenhills.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/compiler/hp_acc.hpp b/lib/3rdParty/boost/boost/config/compiler/hp_acc.hpp deleted file mode 100644 index a773b8c44..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/hp_acc.hpp +++ /dev/null @@ -1,146 +0,0 @@ -// (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_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/lib/3rdParty/boost/boost/config/compiler/intel.hpp b/lib/3rdParty/boost/boost/config/compiler/intel.hpp deleted file mode 100644 index 1885ea281..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/intel.hpp +++ /dev/null @@ -1,552 +0,0 @@ -// (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 - -#include - -#undef BOOST_GCC_VERSION -#undef BOOST_GCC_CXX11 - -#endif - -#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 - -#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 -// -// 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_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 - -// -// 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 - -// Broken in all versions up to 17: -#if !defined(BOOST_NO_CXX14_CONSTEXPR) -#define BOOST_NO_CXX14_CONSTEXPR -#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 -// -// last known and checked version: -#if (BOOST_INTEL_CXX_VERSION > 1500) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# 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/lib/3rdParty/boost/boost/config/compiler/kai.hpp b/lib/3rdParty/boost/boost/config/compiler/kai.hpp deleted file mode 100644 index 960d501c8..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/kai.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/compiler/metrowerks.hpp b/lib/3rdParty/boost/boost/config/compiler/metrowerks.hpp deleted file mode 100644 index 3c5e22868..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/metrowerks.hpp +++ /dev/null @@ -1,180 +0,0 @@ -// (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_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 - -#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/lib/3rdParty/boost/boost/config/compiler/mpw.hpp b/lib/3rdParty/boost/boost/config/compiler/mpw.hpp deleted file mode 100644 index 084f9e154..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/mpw.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// (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_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 - -// -// 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/lib/3rdParty/boost/boost/config/compiler/nvcc.hpp b/lib/3rdParty/boost/boost/config/compiler/nvcc.hpp deleted file mode 100644 index b31d4f4fa..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/nvcc.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// (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 - -// 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 !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500) -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#endif -// The same bug is back again in 8.0: -#if (__CUDACC_VER__ > 80000) && (__CUDACC_VER__ < 80100) -# 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 diff --git a/lib/3rdParty/boost/boost/config/compiler/pathscale.hpp b/lib/3rdParty/boost/boost/config/compiler/pathscale.hpp deleted file mode 100644 index a5e65af49..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/pathscale.hpp +++ /dev/null @@ -1,115 +0,0 @@ -// (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__ >= 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_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 -#endif diff --git a/lib/3rdParty/boost/boost/config/compiler/pgi.hpp b/lib/3rdParty/boost/boost/config/compiler/pgi.hpp deleted file mode 100644 index fa2d5e402..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/pgi.hpp +++ /dev/null @@ -1,156 +0,0 @@ -// (C) Copyright Noel Belcourt 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. - -// PGI C++ compiler setup: - -#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ -#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// - -#if __PGIC__ >= 11 - -// options requested by configure --enable-test -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_THREADS -#define BOOST_HAS_PTHREAD_YIELD -#define BOOST_HAS_NRVO -#define BOOST_HAS_LONG_LONG - -// options --enable-test wants undefined -#undef BOOST_NO_STDC_NAMESPACE -#undef BOOST_NO_EXCEPTION_STD_NAMESPACE -#undef BOOST_DEDUCED_TYPENAME - -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_AUTO_DECLARATIONS - -#elif __PGIC__ >= 10 - -// options requested by configure --enable-test -#define BOOST_HAS_THREADS -#define BOOST_HAS_NRVO -#define BOOST_HAS_LONG_LONG -#if defined(linux) || defined(__linux) || defined(__linux__) -# define BOOST_HAS_STDINT_H -#endif - -// options --enable-test wants undefined -#undef BOOST_NO_STDC_NAMESPACE -#undef BOOST_NO_EXCEPTION_STD_NAMESPACE -#undef BOOST_DEDUCED_TYPENAME - -#elif __PGIC__ >= 7 - -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_SWPRINTF -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_AUTO_DECLARATIONS - -#else - -# error "Pgi compiler not configured - please reconfigure" - -#endif -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#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_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_NUMERIC_LIMITS -#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_STATIC_ASSERT -#define BOOST_NO_SWPRINTF -#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_HDR_UNORDERED_SET -#define BOOST_NO_CXX11_HDR_UNORDERED_MAP -#define BOOST_NO_CXX11_HDR_TYPEINDEX -#define BOOST_NO_CXX11_HDR_TYPE_TRAITS -#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_HDR_ARRAY -#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 -// -// version check: -// probably nothing to do here? - diff --git a/lib/3rdParty/boost/boost/config/compiler/sgi_mipspro.hpp b/lib/3rdParty/boost/boost/config/compiler/sgi_mipspro.hpp deleted file mode 100644 index 54433c997..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/sgi_mipspro.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/compiler/sunpro_cc.hpp b/lib/3rdParty/boost/boost/config/compiler/sunpro_cc.hpp deleted file mode 100644 index ac259fce2..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/sunpro_cc.hpp +++ /dev/null @@ -1,198 +0,0 @@ -// (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 - - -// 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 - -// 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 is 0x590: -#if (__SUNPRO_CC > 0x590) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/lib/3rdParty/boost/boost/config/compiler/vacpp.hpp b/lib/3rdParty/boost/boost/config/compiler/vacpp.hpp deleted file mode 100644 index 3fbed9faf..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/vacpp.hpp +++ /dev/null @@ -1,163 +0,0 @@ -// (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 - -// -// 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_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 diff --git a/lib/3rdParty/boost/boost/config/compiler/visualc.hpp b/lib/3rdParty/boost/boost/config/compiler/visualc.hpp deleted file mode 100644 index cdbc9b670..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/visualc.hpp +++ /dev/null @@ -1,303 +0,0 @@ -// (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 -// # 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_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++ 15 Preview 5 -// -#if (_MSC_VER < 1910) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -# define BOOST_NO_CXX14_CONSTEXPR -#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) -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -// -// C++ 11: -// -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP - -// -// 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 < 1310 - // 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 < 2000 -# define BOOST_COMPILER_VERSION 14.0 -# else -# define BOOST_COMPILER_VERSION _MSC_VER -# endif -# endif - -# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) -#endif - -// -// last known and checked version is 19.10.24629 (VC++ 2017 RC): -#if (_MSC_VER > 1910) -# 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 diff --git a/lib/3rdParty/boost/boost/config/compiler/xlcpp.hpp b/lib/3rdParty/boost/boost/config/compiler/xlcpp.hpp deleted file mode 100644 index 2aaafc3b6..000000000 --- a/lib/3rdParty/boost/boost/config/compiler/xlcpp.hpp +++ /dev/null @@ -1,262 +0,0 @@ -// (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 - -#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 !__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 - -#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/lib/3rdParty/boost/boost/config/no_tr1/cmath.hpp b/lib/3rdParty/boost/boost/config/no_tr1/cmath.hpp deleted file mode 100644 index d8268d842..000000000 --- a/lib/3rdParty/boost/boost/config/no_tr1/cmath.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/no_tr1/complex.hpp b/lib/3rdParty/boost/boost/config/no_tr1/complex.hpp deleted file mode 100644 index ca200922b..000000000 --- a/lib/3rdParty/boost/boost/config/no_tr1/complex.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/no_tr1/functional.hpp b/lib/3rdParty/boost/boost/config/no_tr1/functional.hpp deleted file mode 100644 index e395efc19..000000000 --- a/lib/3rdParty/boost/boost/config/no_tr1/functional.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/no_tr1/memory.hpp b/lib/3rdParty/boost/boost/config/no_tr1/memory.hpp deleted file mode 100644 index 2b5d20802..000000000 --- a/lib/3rdParty/boost/boost/config/no_tr1/memory.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/no_tr1/utility.hpp b/lib/3rdParty/boost/boost/config/no_tr1/utility.hpp deleted file mode 100644 index dea8f115b..000000000 --- a/lib/3rdParty/boost/boost/config/no_tr1/utility.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/aix.hpp b/lib/3rdParty/boost/boost/config/platform/aix.hpp deleted file mode 100644 index 894ef42ce..000000000 --- a/lib/3rdParty/boost/boost/config/platform/aix.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/amigaos.hpp b/lib/3rdParty/boost/boost/config/platform/amigaos.hpp deleted file mode 100644 index 34bcf4128..000000000 --- a/lib/3rdParty/boost/boost/config/platform/amigaos.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/beos.hpp b/lib/3rdParty/boost/boost/config/platform/beos.hpp deleted file mode 100644 index 48c3d8dc5..000000000 --- a/lib/3rdParty/boost/boost/config/platform/beos.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/bsd.hpp b/lib/3rdParty/boost/boost/config/platform/bsd.hpp deleted file mode 100644 index a0142978e..000000000 --- a/lib/3rdParty/boost/boost/config/platform/bsd.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/cloudabi.hpp b/lib/3rdParty/boost/boost/config/platform/cloudabi.hpp deleted file mode 100644 index bed7b6318..000000000 --- a/lib/3rdParty/boost/boost/config/platform/cloudabi.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// 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/lib/3rdParty/boost/boost/config/platform/cray.hpp b/lib/3rdParty/boost/boost/config/platform/cray.hpp deleted file mode 100644 index 5c476e416..000000000 --- a/lib/3rdParty/boost/boost/config/platform/cray.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/cygwin.hpp b/lib/3rdParty/boost/boost/config/platform/cygwin.hpp deleted file mode 100644 index b7ef572fa..000000000 --- a/lib/3rdParty/boost/boost/config/platform/cygwin.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// (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 - -/// Cygwin has no fenv.h -#define BOOST_NO_FENV_H - -// 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/lib/3rdParty/boost/boost/config/platform/haiku.hpp b/lib/3rdParty/boost/boost/config/platform/haiku.hpp deleted file mode 100644 index 750866c47..000000000 --- a/lib/3rdParty/boost/boost/config/platform/haiku.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/hpux.hpp b/lib/3rdParty/boost/boost/config/platform/hpux.hpp deleted file mode 100644 index 19ce68e59..000000000 --- a/lib/3rdParty/boost/boost/config/platform/hpux.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/irix.hpp b/lib/3rdParty/boost/boost/config/platform/irix.hpp deleted file mode 100644 index aeae49c8b..000000000 --- a/lib/3rdParty/boost/boost/config/platform/irix.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/linux.hpp b/lib/3rdParty/boost/boost/config/platform/linux.hpp deleted file mode 100644 index 8c43c7b6d..000000000 --- a/lib/3rdParty/boost/boost/config/platform/linux.hpp +++ /dev/null @@ -1,105 +0,0 @@ -// (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. -# if defined __GNUC__ -# 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/lib/3rdParty/boost/boost/config/platform/macos.hpp b/lib/3rdParty/boost/boost/config/platform/macos.hpp deleted file mode 100644 index 5be4e3b3d..000000000 --- a/lib/3rdParty/boost/boost/config/platform/macos.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/qnxnto.hpp b/lib/3rdParty/boost/boost/config/platform/qnxnto.hpp deleted file mode 100644 index b1377c8d2..000000000 --- a/lib/3rdParty/boost/boost/config/platform/qnxnto.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/solaris.hpp b/lib/3rdParty/boost/boost/config/platform/solaris.hpp deleted file mode 100644 index 6e4efc9e5..000000000 --- a/lib/3rdParty/boost/boost/config/platform/solaris.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/symbian.hpp b/lib/3rdParty/boost/boost/config/platform/symbian.hpp deleted file mode 100644 index e02a7782d..000000000 --- a/lib/3rdParty/boost/boost/config/platform/symbian.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/vms.hpp b/lib/3rdParty/boost/boost/config/platform/vms.hpp deleted file mode 100644 index f70efcfb8..000000000 --- a/lib/3rdParty/boost/boost/config/platform/vms.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/platform/vxworks.hpp b/lib/3rdParty/boost/boost/config/platform/vxworks.hpp deleted file mode 100644 index cdda0158a..000000000 --- a/lib/3rdParty/boost/boost/config/platform/vxworks.hpp +++ /dev/null @@ -1,369 +0,0 @@ -// (C) Copyright Dustin Spicuzza 2009. -// Adapted to vxWorks 6.9 by Peter Brockamp 2012. -// 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. - -// Since WRS does not yet properly support boost under vxWorks -// and this file was badly outdated, but I was keen on using it, -// I patched boost myself to make things work. This has been tested -// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access -// to earlier 6.X versions! The only thing I know for sure is that -// very old versions of vxWorks (namely everything below 6.x) are -// absolutely unable to use boost. This is mainly due to the completely -// outdated libraries and ancient compiler (GCC 2.96 or worse). 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 library similar to those -// of vxWorks 5.X - with all its limitations and incompatibilities -// with respect to ANSI C++ and STL. So probably there might be problems -// with the usage of boost from DKMs. WRS or any voluteers are free to -// prove the opposite! - -// ==================================================================== -// -// 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, -// i.e. deadlocks! To overcome this two possibilities do exist: -// -// a) Patch every piece of boost that uses semaphores to instanciate -// the proper type of semaphores. This is non-intrusive with respect -// to the OS and could relatively easy been done by giving all -// semaphores attributes deviating from the default (for in-depth -// information see the POSIX functions pthread_mutexattr_init() -// and pthread_mutexattr_setprotocol()). However this breaks all -// too easily, as with every new version some boost library could -// all in a sudden start using semaphores, resurrecting the very -// same, hard to locate problem over and over again! -// -// b) We could change the default properties for POSIX-semaphores -// that VxWorks uses for RTP's and this is being suggested here, -// as it will more or less seamlessly integrate with boost. I got -// the following information from WRS how to do this, compare -// Wind River TSR# 1209768: -// -// Instructions for changing the default properties of POSIX- -// semaphores for RTP's in VxWorks 6.9: -// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c -// in the root of your Workbench-installation. -// - 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 create a new VxWorks kernel -// with the changed properties. That's it! Now, using boost should -// no longer cause any problems with task deadlocks! -// -// And here's another useful piece of information concerning VxWorks' -// POSIX-functionality in general: -// VxWorks is not a genuine POSIX-OS in itself, rather it is using a -// kind of compatibility layer (sort of a wrapper) to emulate the -// POSIX-functionality by using its own resources and functions. -// At the time a task (thread) calls it's first POSIX-function during -// runtime it is being transformed by the OS into a POSIX-thread. -// This transformation does include a call to malloc() to allocate the -// memory required for the housekeeping of POSIX-threads. In a high -// priority RTP this malloc() call may be highly undesirable, as its -// timing is more or less unpredictable (depending on what your actual -// heap looks like). You can circumvent this problem by calling the -// function thread_self() at a well defined point in the code of the -// task, e.g. shortly after the task spawns up. Thereby you are able -// to define the time when the task-transformation will take place and -// you could shift it to an uncritical point where a malloc() call is -// tolerable. So, if this could pose a problem for your code, remember -// to call thread_self() from the affected task at an early stage. -// -// ==================================================================== - -// 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 unavailable functionality, delivered by boost's test function: -//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result! -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_VARIADIC_MACROS - -// 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 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 - -// vxWorks doesn't work with asio serial ports: -#define BOOST_ASIO_DISABLE_SERIAL_PORT -// TODO: The problem here seems to bee that vxWorks uses its own, very specific -// ways to handle serial ports, incompatible with POSIX or anything... -// Maybe a specific implementation would be possible, but until the -// straight need arises... This implementation would presumably consist -// of some vxWorks specific ioctl-calls, etc. Any voluteers? - -// 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 errorneously, 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 -#include -#include - -// Use C-linkage for the following helper functions -extern "C" { - -// 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. -#ifdef __RTP__ - 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); -} - -// Fake symlink handling by dummy functions: -inline int symlink(const char*, const char*){ - // vxWorks has no symlinks -> always return an error! - errno = EACCES; - return -1; -} - -inline ssize_t readlink(const char*, char*, size_t){ - // vxWorks has no symlinks -> always return an error! - errno = EACCES; - return -1; -} - -// vxWorks claims to implement gettimeofday in sys/time.h -// but nevertheless does not provide it! See -// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256 -// We implement a surrogate version here via clock_gettime: -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; -} - -// vxWorks does provide 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; -} - -} // extern "C" - -// 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; - using ::times; - using ::gettimeofday; -} - -// 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 - -#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! -#ifndef S_ISSOCK -# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket? -#endif -#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks! -#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 unpresent in vxWorks! - -// #include boilerplate code: -#include - -// vxWorks lies about XSI conformance, there is no nl_types.h: -#undef BOOST_HAS_NL_TYPES_H diff --git a/lib/3rdParty/boost/boost/config/platform/win32.hpp b/lib/3rdParty/boost/boost/config/platform/win32.hpp deleted file mode 100644 index 450158fba..000000000 --- a/lib/3rdParty/boost/boost/config/platform/win32.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/posix_features.hpp b/lib/3rdParty/boost/boost/config/posix_features.hpp deleted file mode 100644 index d12954797..000000000 --- a/lib/3rdParty/boost/boost/config/posix_features.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/requires_threads.hpp b/lib/3rdParty/boost/boost/config/requires_threads.hpp deleted file mode 100644 index cfaff2302..000000000 --- a/lib/3rdParty/boost/boost/config/requires_threads.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// (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/lib/3rdParty/boost/boost/config/select_compiler_config.hpp b/lib/3rdParty/boost/boost/config/select_compiler_config.hpp deleted file mode 100644 index 7a7570842..000000000 --- a/lib/3rdParty/boost/boost/config/select_compiler_config.hpp +++ /dev/null @@ -1,148 +0,0 @@ -// 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(__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(__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(__PGI) -// Portland Group Inc. -# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.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 - -#endif - diff --git a/lib/3rdParty/boost/boost/config/select_platform_config.hpp b/lib/3rdParty/boost/boost/config/select_platform_config.hpp deleted file mode 100644 index 62fd818b9..000000000 --- a/lib/3rdParty/boost/boost/config/select_platform_config.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// 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(__IBMCPP__) || defined(_AIX) -// IBM -# 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/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/lib/3rdParty/boost/boost/config/select_stdlib_config.hpp b/lib/3rdParty/boost/boost/config/select_stdlib_config.hpp deleted file mode 100644 index e270a8813..000000000 --- a/lib/3rdParty/boost/boost/config/select_stdlib_config.hpp +++ /dev/null @@ -1,105 +0,0 @@ -// 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__) -// 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/vacpp.hpp" -# include "boost/config/stdlib/modena.hpp" -# include "boost/config/stdlib/dinkumware.hpp" -#endif - diff --git a/lib/3rdParty/boost/boost/config/stdlib/dinkumware.hpp b/lib/3rdParty/boost/boost/config/stdlib/dinkumware.hpp deleted file mode 100644 index 8cf5d4dd2..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/dinkumware.hpp +++ /dev/null @@ -1,209 +0,0 @@ -// (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__) -# 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 - -#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 -# define BOOST_NO_CXX17_STD_APPLY -#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) -# define BOOST_NO_CXX17_STD_INVOKE -#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 is 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 -# 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/lib/3rdParty/boost/boost/config/stdlib/libcomo.hpp b/lib/3rdParty/boost/boost/config/stdlib/libcomo.hpp deleted file mode 100644 index e3fc627f6..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/libcomo.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// (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_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 - -// -// 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/lib/3rdParty/boost/boost/config/stdlib/libcpp.hpp b/lib/3rdParty/boost/boost/config/stdlib/libcpp.hpp deleted file mode 100644 index 2eea99977..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/libcpp.hpp +++ /dev/null @@ -1,113 +0,0 @@ -// (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 -#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_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 <= 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(__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/lib/3rdParty/boost/boost/config/stdlib/libstdcpp3.hpp b/lib/3rdParty/boost/boost/config/stdlib/libstdcpp3.hpp deleted file mode 100644 index 557767b1f..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/libstdcpp3.hpp +++ /dev/null @@ -1,314 +0,0 @@ -// (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 - -#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 - -// -// 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 -// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly -// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++ -// 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 stdlibc++ 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 - -// -// 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 -#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 truely conforming one. -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_ALLOCATOR -#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/lib/3rdParty/boost/boost/config/stdlib/modena.hpp b/lib/3rdParty/boost/boost/config/stdlib/modena.hpp deleted file mode 100644 index fa4a81871..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/modena.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// (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_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_STDLIB "Modena C++ standard library" - - - - - diff --git a/lib/3rdParty/boost/boost/config/stdlib/msl.hpp b/lib/3rdParty/boost/boost/config/stdlib/msl.hpp deleted file mode 100644 index 8f21a1388..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/msl.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// (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_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_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) diff --git a/lib/3rdParty/boost/boost/config/stdlib/roguewave.hpp b/lib/3rdParty/boost/boost/config/stdlib/roguewave.hpp deleted file mode 100644 index 437d38d97..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/roguewave.hpp +++ /dev/null @@ -1,205 +0,0 @@ -// (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_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 diff --git a/lib/3rdParty/boost/boost/config/stdlib/sgi.hpp b/lib/3rdParty/boost/boost/config/stdlib/sgi.hpp deleted file mode 100644 index 8d2f849f7..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/sgi.hpp +++ /dev/null @@ -1,165 +0,0 @@ -// (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_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_STDLIB "SGI standard library" diff --git a/lib/3rdParty/boost/boost/config/stdlib/stlport.hpp b/lib/3rdParty/boost/boost/config/stdlib/stlport.hpp deleted file mode 100644 index 518f9efd4..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/stlport.hpp +++ /dev/null @@ -1,255 +0,0 @@ -// (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_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_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/lib/3rdParty/boost/boost/config/stdlib/vacpp.hpp b/lib/3rdParty/boost/boost/config/stdlib/vacpp.hpp deleted file mode 100644 index f9afef638..000000000 --- a/lib/3rdParty/boost/boost/config/stdlib/vacpp.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// (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_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_STDLIB "Visual Age default standard library" diff --git a/lib/3rdParty/boost/boost/config/suffix.hpp b/lib/3rdParty/boost/boost/config/suffix.hpp deleted file mode 100644 index eeaec2bf6..000000000 --- a/lib/3rdParty/boost/boost/config/suffix.hpp +++ /dev/null @@ -1,1017 +0,0 @@ -// 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: -// 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 - -// -// 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_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) -# 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_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 - -// 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 - -// 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/lib/3rdParty/boost/boost/config/user.hpp b/lib/3rdParty/boost/boost/config/user.hpp deleted file mode 100644 index 28e7476af..000000000 --- a/lib/3rdParty/boost/boost/config/user.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// 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/lib/3rdParty/boost/boost/config/warning_disable.hpp b/lib/3rdParty/boost/boost/config/warning_disable.hpp deleted file mode 100644 index fea8e829f..000000000 --- a/lib/3rdParty/boost/boost/config/warning_disable.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// 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/lib/3rdParty/boost/boost/core/addressof.hpp b/lib/3rdParty/boost/boost/core/addressof.hpp deleted file mode 100644 index 889b5825e..000000000 --- a/lib/3rdParty/boost/boost/core/addressof.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (C) 2002 Brad King (brad.king@kitware.com) -// Douglas Gregor (gregod@cs.rpi.edu) -// -// Copyright (C) 2002, 2008, 2013 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) - -// For more information, see http://www.boost.org - -#ifndef BOOST_CORE_ADDRESSOF_HPP -#define BOOST_CORE_ADDRESSOF_HPP - -# include -# include -# include - -namespace boost -{ - -namespace detail -{ - -template struct addr_impl_ref -{ - T & v_; - - BOOST_FORCEINLINE addr_impl_ref( T & v ): v_( v ) {} - BOOST_FORCEINLINE operator T& () const { return v_; } - -private: - addr_impl_ref & operator=(const addr_impl_ref &); -}; - -template struct addressof_impl -{ - static BOOST_FORCEINLINE T * f( T & v, long ) - { - return reinterpret_cast( - &const_cast(reinterpret_cast(v))); - } - - static BOOST_FORCEINLINE T * f( T * v, int ) - { - return v; - } -}; - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -#if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) ) - - typedef decltype(nullptr) addr_nullptr_t; - -#else - - typedef std::nullptr_t addr_nullptr_t; - -#endif - -template<> struct addressof_impl< addr_nullptr_t > -{ - typedef addr_nullptr_t T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -template<> struct addressof_impl< addr_nullptr_t const > -{ - typedef addr_nullptr_t const T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -template<> struct addressof_impl< addr_nullptr_t volatile > -{ - typedef addr_nullptr_t volatile T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -template<> struct addressof_impl< addr_nullptr_t const volatile > -{ - typedef addr_nullptr_t const volatile T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -#endif - -} // namespace detail - -template -BOOST_FORCEINLINE -T * addressof( T & v ) -{ -#if (defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x610 ) ) ) || (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x5120)) - - return boost::detail::addressof_impl::f( v, 0 ); - -#else - - return boost::detail::addressof_impl::f( boost::detail::addr_impl_ref( v ), 0 ); - -#endif -} - -#if defined( __SUNPRO_CC ) && BOOST_WORKAROUND( __SUNPRO_CC, BOOST_TESTED_AT( 0x590 ) ) - -namespace detail -{ - -template struct addressof_addp -{ - typedef T * type; -}; - -} // namespace detail - -template< class T, std::size_t N > -BOOST_FORCEINLINE -typename detail::addressof_addp< T[N] >::type addressof( T (&t)[N] ) -{ - return &t; -} - -#endif - -// Borland doesn't like casting an array reference to a char reference -// but these overloads work around the problem. -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -template -BOOST_FORCEINLINE -T (*addressof(T (&t)[N]))[N] -{ - return reinterpret_cast(&t); -} - -template -BOOST_FORCEINLINE -const T (*addressof(const T (&t)[N]))[N] -{ - return reinterpret_cast(&t); -} -#endif - -} // namespace boost - -#endif // BOOST_CORE_ADDRESSOF_HPP diff --git a/lib/3rdParty/boost/boost/core/checked_delete.hpp b/lib/3rdParty/boost/boost/core/checked_delete.hpp deleted file mode 100644 index b086e03e8..000000000 --- a/lib/3rdParty/boost/boost/core/checked_delete.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_CORE_CHECKED_DELETE_HPP -#define BOOST_CORE_CHECKED_DELETE_HPP - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/checked_delete.hpp -// -// Copyright (c) 2002, 2003 Peter Dimov -// Copyright (c) 2003 Daniel Frey -// Copyright (c) 2003 Howard Hinnant -// -// 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/core/doc/html/core/checked_delete.html for documentation. -// - -namespace boost -{ - -// verify that types are complete for increased safety - -template inline void checked_delete(T * x) -{ - // intentionally complex - simplification causes regressions - typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; - (void) sizeof(type_must_be_complete); - delete x; -} - -template inline void checked_array_delete(T * x) -{ - typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; - (void) sizeof(type_must_be_complete); - delete [] x; -} - -template struct checked_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - // boost:: disables ADL - boost::checked_delete(x); - } -}; - -template struct checked_array_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - boost::checked_array_delete(x); - } -}; - -} // namespace boost - -#endif // #ifndef BOOST_CORE_CHECKED_DELETE_HPP diff --git a/lib/3rdParty/boost/boost/core/demangle.hpp b/lib/3rdParty/boost/boost/core/demangle.hpp deleted file mode 100644 index f13c26a7f..000000000 --- a/lib/3rdParty/boost/boost/core/demangle.hpp +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef BOOST_CORE_DEMANGLE_HPP_INCLUDED -#define BOOST_CORE_DEMANGLE_HPP_INCLUDED - -// core::demangle -// -// Copyright 2014 Peter Dimov -// Copyright 2014 Andrey Semashev -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt - -#include -#include - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -// __has_include is currently supported by GCC and Clang. However GCC 4.9 may have issues and -// returns 1 for 'defined( __has_include )', while '__has_include' is actually not supported: -// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63662 -#if defined( __has_include ) && (!defined( BOOST_GCC ) || (__GNUC__ + 0) >= 5) -# if __has_include() -# define BOOST_CORE_HAS_CXXABI_H -# endif -#elif defined( __GLIBCXX__ ) || defined( __GLIBCPP__ ) -# define BOOST_CORE_HAS_CXXABI_H -#endif - -#if defined( BOOST_CORE_HAS_CXXABI_H ) -# include -// For some archtectures (mips, mips64, x86, x86_64) cxxabi.h in Android NDK is implemented by gabi++ library -// (https://android.googlesource.com/platform/ndk/+/master/sources/cxx-stl/gabi++/), which does not implement -// abi::__cxa_demangle(). We detect this implementation by checking the include guard here. -# if defined( __GABIXX_CXXABI_H__ ) -# undef BOOST_CORE_HAS_CXXABI_H -# else -# include -# include -# endif -#endif - -namespace boost -{ - -namespace core -{ - -inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT; -inline void demangle_free( char const * name ) BOOST_NOEXCEPT; - -class scoped_demangled_name -{ -private: - char const * m_p; - -public: - explicit scoped_demangled_name( char const * name ) BOOST_NOEXCEPT : - m_p( demangle_alloc( name ) ) - { - } - - ~scoped_demangled_name() BOOST_NOEXCEPT - { - demangle_free( m_p ); - } - - char const * get() const BOOST_NOEXCEPT - { - return m_p; - } - - BOOST_DELETED_FUNCTION(scoped_demangled_name( scoped_demangled_name const& )) - BOOST_DELETED_FUNCTION(scoped_demangled_name& operator= ( scoped_demangled_name const& )) -}; - - -#if defined( BOOST_CORE_HAS_CXXABI_H ) - -inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT -{ - int status = 0; - std::size_t size = 0; - return abi::__cxa_demangle( name, NULL, &size, &status ); -} - -inline void demangle_free( char const * name ) BOOST_NOEXCEPT -{ - std::free( const_cast< char* >( name ) ); -} - -inline std::string demangle( char const * name ) -{ - scoped_demangled_name demangled_name( name ); - char const * const p = demangled_name.get(); - if( p ) - { - return p; - } - else - { - return name; - } -} - -#else - -inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT -{ - return name; -} - -inline void demangle_free( char const * ) BOOST_NOEXCEPT -{ -} - -inline std::string demangle( char const * name ) -{ - return name; -} - -#endif - -} // namespace core - -} // namespace boost - -#undef BOOST_CORE_HAS_CXXABI_H - -#endif // #ifndef BOOST_CORE_DEMANGLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/core/enable_if.hpp b/lib/3rdParty/boost/boost/core/enable_if.hpp deleted file mode 100644 index 5dcef1e03..000000000 --- a/lib/3rdParty/boost/boost/core/enable_if.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// Boost enable_if library - -// Copyright 2003 (c) The Trustees of Indiana University. - -// 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) - -// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu) -// Jeremiah Willcock (jewillco at osl.iu.edu) -// Andrew Lumsdaine (lums at osl.iu.edu) - - -#ifndef BOOST_CORE_ENABLE_IF_HPP -#define BOOST_CORE_ENABLE_IF_HPP - -#include "boost/config.hpp" - -// Even the definition of enable_if causes problems on some compilers, -// so it's macroed out for all compilers that do not support SFINAE - -#ifndef BOOST_NO_SFINAE - -namespace boost -{ - template - struct enable_if_has_type - { - typedef R type; - }; - - template - struct enable_if_c { - typedef T type; - }; - - template - struct enable_if_c {}; - - template - struct enable_if : public enable_if_c {}; - - template - struct lazy_enable_if_c { - typedef typename T::type type; - }; - - template - struct lazy_enable_if_c {}; - - template - struct lazy_enable_if : public lazy_enable_if_c {}; - - - template - struct disable_if_c { - typedef T type; - }; - - template - struct disable_if_c {}; - - template - struct disable_if : public disable_if_c {}; - - template - struct lazy_disable_if_c { - typedef typename T::type type; - }; - - template - struct lazy_disable_if_c {}; - - template - struct lazy_disable_if : public lazy_disable_if_c {}; - -} // namespace boost - -#else - -namespace boost { - - namespace detail { typedef void enable_if_default_T; } - - template - struct enable_if_does_not_work_on_this_compiler; - - template - struct enable_if_has_type : enable_if_does_not_work_on_this_compiler - { }; - - template - struct enable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct disable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct enable_if : enable_if_does_not_work_on_this_compiler - { }; - - template - struct disable_if : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_enable_if : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_disable_if : enable_if_does_not_work_on_this_compiler - { }; - -} // namespace boost - -#endif // BOOST_NO_SFINAE - -#endif diff --git a/lib/3rdParty/boost/boost/core/explicit_operator_bool.hpp b/lib/3rdParty/boost/boost/core/explicit_operator_bool.hpp deleted file mode 100644 index a8936e2cd..000000000 --- a/lib/3rdParty/boost/boost/core/explicit_operator_bool.hpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright Andrey Semashev 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) - */ - -/*! - * \file explicit_operator_bool.hpp - * \author Andrey Semashev - * \date 08.03.2009 - * - * This header defines a compatibility macro that implements an unspecified - * \c bool operator idiom, which is superseded with explicit conversion operators in - * C++11. - */ - -#ifndef BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP -#define BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - -/*! - * \brief The macro defines an explicit operator of conversion to \c bool - * - * The macro should be used inside the definition of a class that has to - * support the conversion. The class should also implement operator!, - * in terms of which the conversion operator will be implemented. - */ -#define BOOST_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE explicit operator bool () const\ - {\ - return !this->operator! ();\ - } - -/*! - * \brief The macro defines a noexcept explicit operator of conversion to \c bool - * - * The macro should be used inside the definition of a class that has to - * support the conversion. The class should also implement operator!, - * in terms of which the conversion operator will be implemented. - */ -#define BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()\ - BOOST_FORCEINLINE explicit operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -/*! - * \brief The macro defines a constexpr explicit operator of conversion to \c bool - * - * The macro should be used inside the definition of a class that has to - * support the conversion. The class should also implement operator!, - * in terms of which the conversion operator will be implemented. - */ -#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE BOOST_CONSTEXPR explicit operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -#else // !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - -#if (defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)) && !defined(BOOST_NO_COMPILER_CONFIG) -// Sun C++ 5.3 can't handle the safe_bool idiom, so don't use it -#define BOOST_NO_UNSPECIFIED_BOOL -#endif // (defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)) && !defined(BOOST_NO_COMPILER_CONFIG) - -#if !defined(BOOST_NO_UNSPECIFIED_BOOL) - -namespace boost { - -namespace detail { - -#if !defined(_MSC_VER) && !defined(__IBMCPP__) - - struct unspecified_bool - { - // NOTE TO THE USER: If you see this in error messages then you tried - // to apply an unsupported operator on the object that supports - // explicit conversion to bool. - struct OPERATORS_NOT_ALLOWED; - static void true_value(OPERATORS_NOT_ALLOWED*) {} - }; - typedef void (*unspecified_bool_type)(unspecified_bool::OPERATORS_NOT_ALLOWED*); - -#else - - // MSVC and VACPP are too eager to convert pointer to function to void* even though they shouldn't - struct unspecified_bool - { - // NOTE TO THE USER: If you see this in error messages then you tried - // to apply an unsupported operator on the object that supports - // explicit conversion to bool. - struct OPERATORS_NOT_ALLOWED; - void true_value(OPERATORS_NOT_ALLOWED*) {} - }; - typedef void (unspecified_bool::*unspecified_bool_type)(unspecified_bool::OPERATORS_NOT_ALLOWED*); - -#endif - -} // namespace detail - -} // namespace boost - -#define BOOST_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE operator boost::detail::unspecified_bool_type () const\ - {\ - return (!this->operator! () ? &boost::detail::unspecified_bool::true_value : (boost::detail::unspecified_bool_type)0);\ - } - -#define BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()\ - BOOST_FORCEINLINE operator boost::detail::unspecified_bool_type () const BOOST_NOEXCEPT\ - {\ - return (!this->operator! () ? &boost::detail::unspecified_bool::true_value : (boost::detail::unspecified_bool_type)0);\ - } - -#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE BOOST_CONSTEXPR operator boost::detail::unspecified_bool_type () const BOOST_NOEXCEPT\ - {\ - return (!this->operator! () ? &boost::detail::unspecified_bool::true_value : (boost::detail::unspecified_bool_type)0);\ - } - -#else // !defined(BOOST_NO_UNSPECIFIED_BOOL) - -#define BOOST_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE operator bool () const\ - {\ - return !this->operator! ();\ - } - -#define BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()\ - BOOST_FORCEINLINE operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE BOOST_CONSTEXPR operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -#endif // !defined(BOOST_NO_UNSPECIFIED_BOOL) - -#endif // !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - -#endif // BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP diff --git a/lib/3rdParty/boost/boost/core/ignore_unused.hpp b/lib/3rdParty/boost/boost/core/ignore_unused.hpp deleted file mode 100644 index 994e5f647..000000000 --- a/lib/3rdParty/boost/boost/core/ignore_unused.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland. -// -// 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) - -#ifndef BOOST_CORE_IGNORE_UNUSED_HPP -#define BOOST_CORE_IGNORE_UNUSED_HPP - -#include - -namespace boost { - -#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(Ts const& ...) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -#else - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&, T5 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -#endif - -} // namespace boost - -#endif // BOOST_CORE_IGNORE_UNUSED_HPP diff --git a/lib/3rdParty/boost/boost/core/is_same.hpp b/lib/3rdParty/boost/boost/core/is_same.hpp deleted file mode 100644 index f373c654d..000000000 --- a/lib/3rdParty/boost/boost/core/is_same.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef BOOST_CORE_IS_SAME_HPP_INCLUDED -#define BOOST_CORE_IS_SAME_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// is_same::value is true when T1 == T2 -// -// Copyright 2014 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 - -#include - -namespace boost -{ - -namespace core -{ - -template< class T1, class T2 > struct is_same -{ - BOOST_STATIC_CONSTANT( bool, value = false ); -}; - -template< class T > struct is_same< T, T > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -} // namespace core - -} // namespace boost - -#endif // #ifndef BOOST_CORE_IS_SAME_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/core/lightweight_test.hpp b/lib/3rdParty/boost/boost/core/lightweight_test.hpp deleted file mode 100644 index d6db02425..000000000 --- a/lib/3rdParty/boost/boost/core/lightweight_test.hpp +++ /dev/null @@ -1,198 +0,0 @@ -#ifndef BOOST_CORE_LIGHTWEIGHT_TEST_HPP -#define BOOST_CORE_LIGHTWEIGHT_TEST_HPP - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) -# pragma once -#endif - -// -// boost/core/lightweight_test.hpp - lightweight test library -// -// Copyright (c) 2002, 2009, 2014 Peter Dimov -// Copyright (2) Beman Dawes 2010, 2011 -// Copyright (3) Ion Gaztanaga 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 -// - -#include -#include -#include -#include - -// IDE's like Visual Studio perform better if output goes to std::cout or -// some other stream, so allow user to configure output stream: -#ifndef BOOST_LIGHTWEIGHT_TEST_OSTREAM -# define BOOST_LIGHTWEIGHT_TEST_OSTREAM std::cerr -#endif - -namespace boost -{ - -namespace detail -{ - -struct report_errors_reminder -{ - bool called_report_errors_function; - - report_errors_reminder() : called_report_errors_function(false) {} - - ~report_errors_reminder() - { - BOOST_ASSERT(called_report_errors_function); // verify report_errors() was called - } -}; - -inline report_errors_reminder& report_errors_remind() -{ - static report_errors_reminder r; - return r; -} - -inline int & test_errors() -{ - static int x = 0; - report_errors_remind(); - return x; -} - -inline void test_failed_impl(char const * expr, char const * file, int line, char const * function) -{ - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << file << "(" << line << "): test '" << expr << "' failed in function '" - << function << "'" << std::endl; - ++test_errors(); -} - -inline void error_impl(char const * msg, char const * file, int line, char const * function) -{ - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << file << "(" << line << "): " << msg << " in function '" - << function << "'" << std::endl; - ++test_errors(); -} - -inline void throw_failed_impl(char const * excep, char const * file, int line, char const * function) -{ - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << file << "(" << line << "): Exception '" << excep << "' not thrown in function '" - << function << "'" << std::endl; - ++test_errors(); -} - -// In the comparisons below, it is possible that T and U are signed and unsigned integer types, which generates warnings in some compilers. -// A cleaner fix would require common_type trait or some meta-programming, which would introduce a dependency on Boost.TypeTraits. To avoid -// the dependency we just disable the warnings. -#if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable: 4389) -#elif defined(__clang__) && defined(__has_warning) -# if __has_warning("-Wsign-compare") -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wsign-compare" -# endif -#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wsign-compare" -#endif - -template inline void test_eq_impl( char const * expr1, char const * expr2, - char const * file, int line, char const * function, T const & t, U const & u ) -{ - if( t == u ) - { - report_errors_remind(); - } - else - { - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << file << "(" << line << "): test '" << expr1 << " == " << expr2 - << "' failed in function '" << function << "': " - << "'" << t << "' != '" << u << "'" << std::endl; - ++test_errors(); - } -} - -template inline void test_ne_impl( char const * expr1, char const * expr2, - char const * file, int line, char const * function, T const & t, U const & u ) -{ - if( t != u ) - { - report_errors_remind(); - } - else - { - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << file << "(" << line << "): test '" << expr1 << " != " << expr2 - << "' failed in function '" << function << "': " - << "'" << t << "' == '" << u << "'" << std::endl; - ++test_errors(); - } -} - -#if defined(_MSC_VER) -# pragma warning(pop) -#elif defined(__clang__) && defined(__has_warning) -# if __has_warning("-Wsign-compare") -# pragma clang diagnostic pop -# endif -#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 -# pragma GCC diagnostic pop -#endif - -} // namespace detail - -inline int report_errors() -{ - boost::detail::report_errors_remind().called_report_errors_function = true; - - int errors = boost::detail::test_errors(); - - if( errors == 0 ) - { - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << "No errors detected." << std::endl; - return 0; - } - else - { - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl; - return 1; - } -} - -} // namespace boost - -#define BOOST_TEST(expr) ((expr)? (void)0: ::boost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION)) -#define BOOST_TEST_NOT(expr) BOOST_TEST(!(expr)) - -#define BOOST_ERROR(msg) ( ::boost::detail::error_impl(msg, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) ) - -#define BOOST_TEST_EQ(expr1,expr2) ( ::boost::detail::test_eq_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) ) -#define BOOST_TEST_NE(expr1,expr2) ( ::boost::detail::test_ne_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) ) - -#ifndef BOOST_NO_EXCEPTIONS - #define BOOST_TEST_THROWS( EXPR, EXCEP ) \ - try { \ - EXPR; \ - ::boost::detail::throw_failed_impl \ - (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \ - } \ - catch(EXCEP const&) { \ - } \ - catch(...) { \ - ::boost::detail::throw_failed_impl \ - (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \ - } \ - // -#else - #define BOOST_TEST_THROWS( EXPR, EXCEP ) -#endif - -#endif // #ifndef BOOST_CORE_LIGHTWEIGHT_TEST_HPP diff --git a/lib/3rdParty/boost/boost/core/lightweight_test_trait.hpp b/lib/3rdParty/boost/boost/core/lightweight_test_trait.hpp deleted file mode 100644 index 0e2aab443..000000000 --- a/lib/3rdParty/boost/boost/core/lightweight_test_trait.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef BOOST_CORE_LIGHTWEIGHT_TEST_TRAIT_HPP -#define BOOST_CORE_LIGHTWEIGHT_TEST_TRAIT_HPP - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) -# pragma once -#endif - -// boost/core/lightweight_test_trait.hpp -// -// BOOST_TEST_TRAIT_TRUE, BOOST_TEST_TRAIT_FALSE -// -// Copyright 2014 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 - -#include -#include - -namespace boost -{ - -namespace detail -{ - -template< class T > inline void test_trait_impl( char const * trait, void (*)( T ), - bool expected, char const * file, int line, char const * function ) -{ - if( T::value == expected ) - { - report_errors_remind(); - } - else - { - BOOST_LIGHTWEIGHT_TEST_OSTREAM - << file << "(" << line << "): predicate '" << trait << "' [" - << boost::core::demangled_name( BOOST_CORE_TYPEID(T) ) << "]" - << " test failed in function '" << function - << "' (should have been " << ( expected? "true": "false" ) << ")" - << std::endl; - - ++test_errors(); - } -} - -} // namespace detail - -} // namespace boost - -#define BOOST_TEST_TRAIT_TRUE(type) ( ::boost::detail::test_trait_impl(#type, (void(*)type)0, true, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) ) -#define BOOST_TEST_TRAIT_FALSE(type) ( ::boost::detail::test_trait_impl(#type, (void(*)type)0, false, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) ) - -#endif // #ifndef BOOST_CORE_LIGHTWEIGHT_TEST_TRAIT_HPP diff --git a/lib/3rdParty/boost/boost/core/no_exceptions_support.hpp b/lib/3rdParty/boost/boost/core/no_exceptions_support.hpp deleted file mode 100644 index a697f01a5..000000000 --- a/lib/3rdParty/boost/boost/core/no_exceptions_support.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP -#define BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -//---------------------------------------------------------------------- -// (C) Copyright 2004 Pavel Vozenilek. -// 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 contains helper macros used when exception support may be -// disabled (as indicated by macro BOOST_NO_EXCEPTIONS). -// -// Before picking up these macros you may consider using RAII techniques -// to deal with exceptions - their syntax can be always the same with -// or without exception support enabled. -//---------------------------------------------------------------------- - -#include -#include - -#if !(defined BOOST_NO_EXCEPTIONS) -# define BOOST_TRY { try -# define BOOST_CATCH(x) catch(x) -# define BOOST_RETHROW throw; -# define BOOST_CATCH_END } -#else -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# define BOOST_TRY { if ("") -# define BOOST_CATCH(x) else if (!"") -# else -# define BOOST_TRY { if (true) -# define BOOST_CATCH(x) else if (false) -# endif -# define BOOST_RETHROW -# define BOOST_CATCH_END } -#endif - - -#endif diff --git a/lib/3rdParty/boost/boost/core/noncopyable.hpp b/lib/3rdParty/boost/boost/core/noncopyable.hpp deleted file mode 100644 index 6ae8c244d..000000000 --- a/lib/3rdParty/boost/boost/core/noncopyable.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// Boost noncopyable.hpp header file --------------------------------------// - -// (C) Copyright Beman Dawes 1999-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/libs/utility for documentation. - -#ifndef BOOST_CORE_NONCOPYABLE_HPP -#define BOOST_CORE_NONCOPYABLE_HPP - -#include - -namespace boost { - -// Private copy constructor and copy assignment ensure classes derived from -// class noncopyable cannot be copied. - -// Contributed by Dave Abrahams - -namespace noncopyable_ // protection from unintended ADL -{ - class noncopyable - { - protected: -#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) - BOOST_CONSTEXPR noncopyable() = default; - ~noncopyable() = default; -#else - noncopyable() {} - ~noncopyable() {} -#endif -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) - noncopyable( const noncopyable& ) = delete; - noncopyable& operator=( const noncopyable& ) = delete; -#else - private: // emphasize the following members are private - noncopyable( const noncopyable& ); - noncopyable& operator=( const noncopyable& ); -#endif - }; -} - -typedef noncopyable_::noncopyable noncopyable; - -} // namespace boost - -#endif // BOOST_CORE_NONCOPYABLE_HPP diff --git a/lib/3rdParty/boost/boost/core/null_deleter.hpp b/lib/3rdParty/boost/boost/core/null_deleter.hpp deleted file mode 100644 index f0af59034..000000000 --- a/lib/3rdParty/boost/boost/core/null_deleter.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Andrey Semashev 2007 - 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) - */ -/*! - * \file null_deleter.hpp - * \author Andrey Semashev - * \date 22.04.2007 - * - * This header contains a \c null_deleter implementation. This is an empty - * function object that receives a pointer and does nothing with it. - * Such empty deletion strategy may be convenient, for example, when - * constructing shared_ptrs that point to some object that should not be - * deleted (i.e. a variable on the stack or some global singleton, like std::cout). - */ - -#ifndef BOOST_CORE_NULL_DELETER_HPP -#define BOOST_CORE_NULL_DELETER_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { - -//! A function object that does nothing and can be used as an empty deleter for \c shared_ptr -struct null_deleter -{ - //! Function object result type - typedef void result_type; - /*! - * Does nothing - */ - template< typename T > - void operator() (T*) const BOOST_NOEXCEPT {} -}; - -} // namespace boost - -#endif // BOOST_CORE_NULL_DELETER_HPP diff --git a/lib/3rdParty/boost/boost/core/ref.hpp b/lib/3rdParty/boost/boost/core/ref.hpp deleted file mode 100644 index 47dc85800..000000000 --- a/lib/3rdParty/boost/boost/core/ref.hpp +++ /dev/null @@ -1,301 +0,0 @@ -#ifndef BOOST_CORE_REF_HPP -#define BOOST_CORE_REF_HPP - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include -#include -#include - -// -// ref.hpp - ref/cref, useful helper functions -// -// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) -// Copyright (C) 2001, 2002 Peter Dimov -// Copyright (C) 2002 David Abrahams -// -// Copyright (C) 2014 Glen Joseph Fernandes -// glenfe at live dot com -// Copyright (C) 2014 Agustin Berge -// -// 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/core/doc/html/core/ref.html for documentation. -// - -/** - @file -*/ - -/** - Boost namespace. -*/ -namespace boost -{ - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 ) - - struct ref_workaround_tag {}; - -#endif - -// reference_wrapper - -/** - @brief Contains a reference to an object of type `T`. - - `reference_wrapper` is primarily used to "feed" references to - function templates (algorithms) that take their parameter by - value. It provides an implicit conversion to `T&`, which - usually allows the function templates to work on references - unmodified. -*/ -template class reference_wrapper -{ -public: - /** - Type `T`. - */ - typedef T type; - - /** - Constructs a `reference_wrapper` object that stores a - reference to `t`. - - @remark Does not throw. - */ - BOOST_FORCEINLINE explicit reference_wrapper(T& t): t_(boost::addressof(t)) {} - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 ) - - BOOST_FORCEINLINE explicit reference_wrapper( T & t, ref_workaround_tag ): t_( boost::addressof( t ) ) {} - -#endif - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - /** - @remark Construction from a temporary object is disabled. - */ - BOOST_DELETED_FUNCTION(reference_wrapper(T&& t)) -public: -#endif - - /** - @return The stored reference. - @remark Does not throw. - */ - BOOST_FORCEINLINE operator T& () const { return *t_; } - - /** - @return The stored reference. - @remark Does not throw. - */ - BOOST_FORCEINLINE T& get() const { return *t_; } - - /** - @return A pointer to the object referenced by the stored - reference. - @remark Does not throw. - */ - BOOST_FORCEINLINE T* get_pointer() const { return t_; } - -private: - - T* t_; -}; - -// ref - -/** - @cond -*/ -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) -# define BOOST_REF_CONST -#else -# define BOOST_REF_CONST const -#endif -/** - @endcond -*/ - -/** - @return `reference_wrapper(t)` - @remark Does not throw. -*/ -template BOOST_FORCEINLINE reference_wrapper BOOST_REF_CONST ref( T & t ) -{ -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 ) - - return reference_wrapper( t, ref_workaround_tag() ); - -#else - - return reference_wrapper( t ); - -#endif -} - -// cref - -/** - @return `reference_wrapper(t)` - @remark Does not throw. -*/ -template BOOST_FORCEINLINE reference_wrapper BOOST_REF_CONST cref( T const & t ) -{ - return reference_wrapper(t); -} - -#undef BOOST_REF_CONST - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -/** - @cond -*/ -#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) -# define BOOST_REF_DELETE -#else -# define BOOST_REF_DELETE = delete -#endif -/** - @endcond -*/ - -/** - @remark Construction from a temporary object is disabled. -*/ -template void ref(T const&&) BOOST_REF_DELETE; - -/** - @remark Construction from a temporary object is disabled. -*/ -template void cref(T const&&) BOOST_REF_DELETE; - -#undef BOOST_REF_DELETE - -#endif - -// is_reference_wrapper - -/** - @brief Determine if a type `T` is an instantiation of - `reference_wrapper`. - - The value static constant will be true if the type `T` is a - specialization of `reference_wrapper`. -*/ -template struct is_reference_wrapper -{ - BOOST_STATIC_CONSTANT( bool, value = false ); -}; - -/** - @cond -*/ -template struct is_reference_wrapper< reference_wrapper > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -#if !defined(BOOST_NO_CV_SPECIALIZATIONS) - -template struct is_reference_wrapper< reference_wrapper const > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -template struct is_reference_wrapper< reference_wrapper volatile > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -template struct is_reference_wrapper< reference_wrapper const volatile > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -#endif // !defined(BOOST_NO_CV_SPECIALIZATIONS) - -/** - @endcond -*/ - - -// unwrap_reference - -/** - @brief Find the type in a `reference_wrapper`. - - The `typedef` type is `T::type` if `T` is a - `reference_wrapper`, `T` otherwise. -*/ -template struct unwrap_reference -{ - typedef T type; -}; - -/** - @cond -*/ -template struct unwrap_reference< reference_wrapper > -{ - typedef T type; -}; - -#if !defined(BOOST_NO_CV_SPECIALIZATIONS) - -template struct unwrap_reference< reference_wrapper const > -{ - typedef T type; -}; - -template struct unwrap_reference< reference_wrapper volatile > -{ - typedef T type; -}; - -template struct unwrap_reference< reference_wrapper const volatile > -{ - typedef T type; -}; - -#endif // !defined(BOOST_NO_CV_SPECIALIZATIONS) - -/** - @endcond -*/ - -// unwrap_ref - -/** - @return `unwrap_reference::type&(t)` - @remark Does not throw. -*/ -template BOOST_FORCEINLINE typename unwrap_reference::type& unwrap_ref( T & t ) -{ - return t; -} - -// get_pointer - -/** - @cond -*/ -template BOOST_FORCEINLINE T* get_pointer( reference_wrapper const & r ) -{ - return r.get_pointer(); -} -/** - @endcond -*/ - -} // namespace boost - -#endif // #ifndef BOOST_CORE_REF_HPP diff --git a/lib/3rdParty/boost/boost/core/scoped_enum.hpp b/lib/3rdParty/boost/boost/core/scoped_enum.hpp deleted file mode 100644 index 56dd0ede4..000000000 --- a/lib/3rdParty/boost/boost/core/scoped_enum.hpp +++ /dev/null @@ -1,194 +0,0 @@ -// scoped_enum.hpp ---------------------------------------------------------// - -// Copyright Beman Dawes, 2009 -// Copyright (C) 2011-2012 Vicente J. Botet Escriba -// Copyright (C) 2012 Anthony Williams - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_CORE_SCOPED_ENUM_HPP -#define BOOST_CORE_SCOPED_ENUM_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost -{ - -#ifdef BOOST_NO_CXX11_SCOPED_ENUMS - - /** - * Meta-function to get the native enum type associated to an enum class or its emulation. - */ - template - struct native_type - { - /** - * The member typedef type names the native enum type associated to the scoped enum, - * which is it self if the compiler supports scoped enums or EnumType::enum_type if it is an emulated scoped enum. - */ - typedef typename EnumType::enum_type type; - }; - - /** - * Casts a scoped enum to its underlying type. - * - * This function is useful when working with scoped enum classes, which doens't implicitly convert to the underlying type. - * @param v A scoped enum. - * @returns The underlying type. - * @throws No-throws. - */ - template - inline - BOOST_CONSTEXPR UnderlyingType underlying_cast(EnumType v) BOOST_NOEXCEPT - { - return v.get_underlying_value_(); - } - - /** - * Casts a scoped enum to its native enum type. - * - * This function is useful to make programs portable when the scoped enum emulation can not be use where native enums can. - * - * EnumType the scoped enum type - * - * @param v A scoped enum. - * @returns The native enum value. - * @throws No-throws. - */ - template - inline - BOOST_CONSTEXPR typename EnumType::enum_type native_value(EnumType e) BOOST_NOEXCEPT - { - return e.get_native_value_(); - } - -#else // BOOST_NO_CXX11_SCOPED_ENUMS - - template - struct native_type - { - typedef EnumType type; - }; - - template - inline - BOOST_CONSTEXPR UnderlyingType underlying_cast(EnumType v) BOOST_NOEXCEPT - { - return static_cast(v); - } - - template - inline - BOOST_CONSTEXPR EnumType native_value(EnumType e) BOOST_NOEXCEPT - { - return e; - } - -#endif // BOOST_NO_CXX11_SCOPED_ENUMS -} - - -#ifdef BOOST_NO_CXX11_SCOPED_ENUMS - -#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS - -#define BOOST_SCOPED_ENUM_UT_DECLARE_CONVERSION_OPERATOR \ - explicit BOOST_CONSTEXPR operator underlying_type() const BOOST_NOEXCEPT { return get_underlying_value_(); } - -#else - -#define BOOST_SCOPED_ENUM_UT_DECLARE_CONVERSION_OPERATOR - -#endif - -/** - * Start a declaration of a scoped enum. - * - * @param EnumType The new scoped enum. - * @param UnderlyingType The underlying type. - */ -#define BOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(EnumType, UnderlyingType) \ - struct EnumType { \ - typedef void is_boost_scoped_enum_tag; \ - typedef UnderlyingType underlying_type; \ - EnumType() BOOST_NOEXCEPT {} \ - explicit BOOST_CONSTEXPR EnumType(underlying_type v) BOOST_NOEXCEPT : v_(v) {} \ - BOOST_CONSTEXPR underlying_type get_underlying_value_() const BOOST_NOEXCEPT { return v_; } \ - BOOST_SCOPED_ENUM_UT_DECLARE_CONVERSION_OPERATOR \ - private: \ - underlying_type v_; \ - typedef EnumType self_type; \ - public: \ - enum enum_type - -#define BOOST_SCOPED_ENUM_DECLARE_END2() \ - BOOST_CONSTEXPR enum_type get_native_value_() const BOOST_NOEXCEPT { return enum_type(v_); } \ - friend BOOST_CONSTEXPR bool operator ==(self_type lhs, self_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)==enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator ==(self_type lhs, enum_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)==rhs; } \ - friend BOOST_CONSTEXPR bool operator ==(enum_type lhs, self_type rhs) BOOST_NOEXCEPT { return lhs==enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator !=(self_type lhs, self_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)!=enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator !=(self_type lhs, enum_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)!=rhs; } \ - friend BOOST_CONSTEXPR bool operator !=(enum_type lhs, self_type rhs) BOOST_NOEXCEPT { return lhs!=enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator <(self_type lhs, self_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)(self_type lhs, self_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)>enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator >(self_type lhs, enum_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)>rhs; } \ - friend BOOST_CONSTEXPR bool operator >(enum_type lhs, self_type rhs) BOOST_NOEXCEPT { return lhs>enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator >=(self_type lhs, self_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)>=enum_type(rhs.v_); } \ - friend BOOST_CONSTEXPR bool operator >=(self_type lhs, enum_type rhs) BOOST_NOEXCEPT { return enum_type(lhs.v_)>=rhs; } \ - friend BOOST_CONSTEXPR bool operator >=(enum_type lhs, self_type rhs) BOOST_NOEXCEPT { return lhs>=enum_type(rhs.v_); } \ - }; - -#define BOOST_SCOPED_ENUM_DECLARE_END(EnumType) \ - ; \ - BOOST_CONSTEXPR EnumType(enum_type v) BOOST_NOEXCEPT : v_(v) {} \ - BOOST_SCOPED_ENUM_DECLARE_END2() - -/** - * Starts a declaration of a scoped enum with the default int underlying type. - * - * @param EnumType The new scoped enum. - */ -#define BOOST_SCOPED_ENUM_DECLARE_BEGIN(EnumType) \ - BOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(EnumType,int) - -/** - * Name of the native enum type. - * - * @param EnumType The new scoped enum. - */ -#define BOOST_SCOPED_ENUM_NATIVE(EnumType) EnumType::enum_type -/** - * Forward declares an scoped enum. - * - * @param EnumType The scoped enum. - */ -#define BOOST_SCOPED_ENUM_FORWARD_DECLARE(EnumType) struct EnumType - -#else // BOOST_NO_CXX11_SCOPED_ENUMS - -#define BOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(EnumType,UnderlyingType) enum class EnumType : UnderlyingType -#define BOOST_SCOPED_ENUM_DECLARE_BEGIN(EnumType) enum class EnumType -#define BOOST_SCOPED_ENUM_DECLARE_END2() -#define BOOST_SCOPED_ENUM_DECLARE_END(EnumType) ; - -#define BOOST_SCOPED_ENUM_NATIVE(EnumType) EnumType -#define BOOST_SCOPED_ENUM_FORWARD_DECLARE(EnumType) enum class EnumType - -#endif // BOOST_NO_CXX11_SCOPED_ENUMS - -// Deprecated macros -#define BOOST_SCOPED_ENUM_START(name) BOOST_SCOPED_ENUM_DECLARE_BEGIN(name) -#define BOOST_SCOPED_ENUM_END BOOST_SCOPED_ENUM_DECLARE_END2() -#define BOOST_SCOPED_ENUM(name) BOOST_SCOPED_ENUM_NATIVE(name) - -#endif // BOOST_CORE_SCOPED_ENUM_HPP diff --git a/lib/3rdParty/boost/boost/core/swap.hpp b/lib/3rdParty/boost/boost/core/swap.hpp deleted file mode 100644 index baa1be970..000000000 --- a/lib/3rdParty/boost/boost/core/swap.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker -// -// 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) -// For more information, see http://www.boost.org - - -#ifndef BOOST_CORE_SWAP_HPP -#define BOOST_CORE_SWAP_HPP - -// Note: the implementation of this utility contains various workarounds: -// - swap_impl is put outside the boost namespace, to avoid infinite -// recursion (causing stack overflow) when swapping objects of a primitive -// type. -// - swap_impl has a using-directive, rather than a using-declaration, -// because some compilers (including MSVC 7.1, Borland 5.9.3, and -// Intel 8.1) don't do argument-dependent lookup when it has a -// using-declaration instead. -// - boost::swap has two template arguments, instead of one, to -// avoid ambiguity when swapping objects of a Boost type that does -// not have its own boost::swap overload. - -#include //for std::swap (C++11) -#include //for std::swap (C++98) -#include //for std::size_t -#include - -namespace boost_swap_impl -{ - template - BOOST_GPU_ENABLED - void swap_impl(T& left, T& right) - { - using namespace std;//use std::swap if argument dependent lookup fails - swap(left,right); - } - - template - BOOST_GPU_ENABLED - void swap_impl(T (& left)[N], T (& right)[N]) - { - for (std::size_t i = 0; i < N; ++i) - { - ::boost_swap_impl::swap_impl(left[i], right[i]); - } - } -} - -namespace boost -{ - template - BOOST_GPU_ENABLED - void swap(T1& left, T2& right) - { - ::boost_swap_impl::swap_impl(left, right); - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/core/typeinfo.hpp b/lib/3rdParty/boost/boost/core/typeinfo.hpp deleted file mode 100644 index e67b4a319..000000000 --- a/lib/3rdParty/boost/boost/core/typeinfo.hpp +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef BOOST_CORE_TYPEINFO_HPP_INCLUDED -#define BOOST_CORE_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// core::typeinfo, BOOST_CORE_TYPEID -// -// Copyright 2007, 2014 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) - -#include - -#if defined( BOOST_NO_TYPEID ) - -#include -#include - -namespace boost -{ - -namespace core -{ - -class typeinfo -{ -private: - - typeinfo( typeinfo const& ); - typeinfo& operator=( typeinfo const& ); - - char const * name_; - -public: - - explicit typeinfo( char const * name ): name_( name ) - { - } - - bool operator==( typeinfo const& rhs ) const - { - return this == &rhs; - } - - bool operator!=( typeinfo const& rhs ) const - { - return this != &rhs; - } - - bool before( typeinfo const& rhs ) const - { - return std::less< typeinfo const* >()( this, &rhs ); - } - - char const* name() const - { - return name_; - } -}; - -inline char const * demangled_name( core::typeinfo const & ti ) -{ - return ti.name(); -} - -} // namespace core - -namespace detail -{ - -template struct core_typeid_ -{ - static boost::core::typeinfo ti_; - - static char const * name() - { - return BOOST_CURRENT_FUNCTION; - } -}; - -#if defined(__SUNPRO_CC) -// see #4199, the Sun Studio compiler gets confused about static initialization -// constructor arguments. But an assignment works just fine. -template boost::core::typeinfo core_typeid_< T >::ti_ = core_typeid_< T >::name(); -#else -template boost::core::typeinfo core_typeid_< T >::ti_(core_typeid_< T >::name()); -#endif - -template struct core_typeid_< T & >: core_typeid_< T > -{ -}; - -template struct core_typeid_< T const >: core_typeid_< T > -{ -}; - -template struct core_typeid_< T volatile >: core_typeid_< T > -{ -}; - -template struct core_typeid_< T const volatile >: core_typeid_< T > -{ -}; - -} // namespace detail - -} // namespace boost - -#define BOOST_CORE_TYPEID(T) (boost::detail::core_typeid_::ti_) - -#else - -#include -#include - -namespace boost -{ - -namespace core -{ - -#if defined( BOOST_NO_STD_TYPEINFO ) - -typedef ::type_info typeinfo; - -#else - -typedef std::type_info typeinfo; - -#endif - -inline std::string demangled_name( core::typeinfo const & ti ) -{ - return core::demangle( ti.name() ); -} - -} // namespace core - -} // namespace boost - -#define BOOST_CORE_TYPEID(T) typeid(T) - -#endif - -#endif // #ifndef BOOST_CORE_TYPEINFO_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/core/underlying_type.hpp b/lib/3rdParty/boost/boost/core/underlying_type.hpp deleted file mode 100644 index 7ecba313f..000000000 --- a/lib/3rdParty/boost/boost/core/underlying_type.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// underlying_type.hpp ---------------------------------------------------------// - -// Copyright Beman Dawes, 2009 -// Copyright (C) 2011-2012 Vicente J. Botet Escriba -// Copyright (C) 2012 Anthony Williams -// Copyright (C) 2014 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_CORE_UNDERLYING_TYPE_HPP -#define BOOST_CORE_UNDERLYING_TYPE_HPP - -#include - -// GCC 4.7 and later seem to provide std::underlying_type -#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) || (defined(BOOST_GCC) && BOOST_GCC >= 40700 && defined(__GXX_EXPERIMENTAL_CXX0X__)) -#include -#define BOOST_DETAIL_HAS_STD_UNDERLYING_TYPE -#endif - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { - -namespace detail { - -template< typename EnumType, typename Void = void > -struct underlying_type_impl; - -#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) - -// Support for boost/core/scoped_enum.hpp -template< typename EnumType > -struct underlying_type_impl< EnumType, typename EnumType::is_boost_scoped_enum_tag > -{ - /** - * The member typedef type names the underlying type of EnumType. It is EnumType::underlying_type when the EnumType is an emulated scoped enum, - */ - typedef typename EnumType::underlying_type type; -}; - -#endif - -#if defined(BOOST_DETAIL_HAS_STD_UNDERLYING_TYPE) - -template< typename EnumType, typename Void > -struct underlying_type_impl -{ - typedef typename std::underlying_type< EnumType >::type type; -}; - -#endif - -} // namespace detail - -#if !defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_DETAIL_HAS_STD_UNDERLYING_TYPE) -#define BOOST_NO_UNDERLYING_TYPE -#endif - -/** - * Meta-function to get the underlying type of a scoped enum. - * - * Requires EnumType must be an enum type or the emulation of a scoped enum. - * If BOOST_NO_UNDERLYING_TYPE is defined, the implementation will not be able - * to deduce the underlying type of enums. The user is expected to specialize - * this trait in this case. - */ -template< typename EnumType > -struct underlying_type : - public detail::underlying_type_impl< EnumType > -{ -}; - -} // namespace boost - -#endif // BOOST_CORE_UNDERLYING_TYPE_HPP diff --git a/lib/3rdParty/boost/boost/cstdint.hpp b/lib/3rdParty/boost/boost/cstdint.hpp deleted file mode 100644 index bf7097ec8..000000000 --- a/lib/3rdParty/boost/boost/cstdint.hpp +++ /dev/null @@ -1,546 +0,0 @@ -// boost cstdint.hpp header file ------------------------------------------// - -// (C) Copyright Beman Dawes 1999. -// (C) Copyright Jens Mauer 2001 -// (C) Copyright John Maddock 2001 -// 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/integer for documentation. - -// Revision History -// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.) -// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer) -// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer) -// 12 Nov 00 Merged (Jens Maurer) -// 23 Sep 00 Added INTXX_C macro support (John Maddock). -// 22 Sep 00 Better 64-bit support (John Maddock) -// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost -// 8 Aug 99 Initial version (Beman Dawes) - - -#ifndef BOOST_CSTDINT_HPP -#define BOOST_CSTDINT_HPP - -// -// Since we always define the INT#_C macros as per C++0x, -// define __STDC_CONSTANT_MACROS so that does the right -// thing if possible, and so that the user knows that the macros -// are actually defined as per C99. -// -#ifndef __STDC_CONSTANT_MACROS -# define __STDC_CONSTANT_MACROS -#endif - -#include - -// -// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not -// depending upon what headers happen to have been included first... -// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG. -// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990 -// -#if defined(BOOST_HAS_STDINT_H) \ - && (!defined(__GLIBC__) \ - || defined(__GLIBC_HAVE_LONG_LONG) \ - || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17))))) - -// The following #include is an implementation artifact; not part of interface. -# ifdef __hpux -// HP-UX has a vaguely nice in a non-standard location -# include -# ifdef __STDC_32_MODE__ - // this is triggered with GCC, because it defines __cplusplus < 199707L -# define BOOST_NO_INT64_T -# endif -# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX) -# include -# else -# include - -// There is a bug in Cygwin two _C macros -# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__) -# undef INTMAX_C -# undef UINTMAX_C -# define INTMAX_C(c) c##LL -# define UINTMAX_C(c) c##ULL -# endif - -# endif - -#if defined(__QNX__) && defined(__EXT_QNX) - -// QNX (Dinkumware stdlib) defines these as non-standard names. -// Reflect to the standard names. - -typedef ::intleast8_t int_least8_t; -typedef ::intfast8_t int_fast8_t; -typedef ::uintleast8_t uint_least8_t; -typedef ::uintfast8_t uint_fast8_t; - -typedef ::intleast16_t int_least16_t; -typedef ::intfast16_t int_fast16_t; -typedef ::uintleast16_t uint_least16_t; -typedef ::uintfast16_t uint_fast16_t; - -typedef ::intleast32_t int_least32_t; -typedef ::intfast32_t int_fast32_t; -typedef ::uintleast32_t uint_least32_t; -typedef ::uintfast32_t uint_fast32_t; - -# ifndef BOOST_NO_INT64_T - -typedef ::intleast64_t int_least64_t; -typedef ::intfast64_t int_fast64_t; -typedef ::uintleast64_t uint_least64_t; -typedef ::uintfast64_t uint_fast64_t; - -# endif - -#endif - -namespace boost -{ - - using ::int8_t; - using ::int_least8_t; - using ::int_fast8_t; - using ::uint8_t; - using ::uint_least8_t; - using ::uint_fast8_t; - - using ::int16_t; - using ::int_least16_t; - using ::int_fast16_t; - using ::uint16_t; - using ::uint_least16_t; - using ::uint_fast16_t; - - using ::int32_t; - using ::int_least32_t; - using ::int_fast32_t; - using ::uint32_t; - using ::uint_least32_t; - using ::uint_fast32_t; - -# ifndef BOOST_NO_INT64_T - - using ::int64_t; - using ::int_least64_t; - using ::int_fast64_t; - using ::uint64_t; - using ::uint_least64_t; - using ::uint_fast64_t; - -# endif - - using ::intmax_t; - using ::uintmax_t; - -} // namespace boost - -#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__) -// FreeBSD and Tru64 have an that contains much of what we need. -# include - -namespace boost { - - using ::int8_t; - typedef int8_t int_least8_t; - typedef int8_t int_fast8_t; - using ::uint8_t; - typedef uint8_t uint_least8_t; - typedef uint8_t uint_fast8_t; - - using ::int16_t; - typedef int16_t int_least16_t; - typedef int16_t int_fast16_t; - using ::uint16_t; - typedef uint16_t uint_least16_t; - typedef uint16_t uint_fast16_t; - - using ::int32_t; - typedef int32_t int_least32_t; - typedef int32_t int_fast32_t; - using ::uint32_t; - typedef uint32_t uint_least32_t; - typedef uint32_t uint_fast32_t; - -# ifndef BOOST_NO_INT64_T - - using ::int64_t; - typedef int64_t int_least64_t; - typedef int64_t int_fast64_t; - using ::uint64_t; - typedef uint64_t uint_least64_t; - typedef uint64_t uint_fast64_t; - - typedef int64_t intmax_t; - typedef uint64_t uintmax_t; - -# else - - typedef int32_t intmax_t; - typedef uint32_t uintmax_t; - -# endif - -} // namespace boost - -#else // BOOST_HAS_STDINT_H - -# include // implementation artifact; not part of interface -# include // needed for limits macros - - -namespace boost -{ - -// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit -// platforms. For other systems, they will have to be hand tailored. -// -// Because the fast types are assumed to be the same as the undecorated types, -// it may be possible to hand tailor a more efficient implementation. Such -// an optimization may be illusionary; on the Intel x86-family 386 on, for -// example, byte arithmetic and load/stores are as fast as "int" sized ones. - -// 8-bit types ------------------------------------------------------------// - -# if UCHAR_MAX == 0xff - typedef signed char int8_t; - typedef signed char int_least8_t; - typedef signed char int_fast8_t; - typedef unsigned char uint8_t; - typedef unsigned char uint_least8_t; - typedef unsigned char uint_fast8_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -// 16-bit types -----------------------------------------------------------// - -# if USHRT_MAX == 0xffff -# if defined(__crayx1) - // The Cray X1 has a 16-bit short, however it is not recommend - // for use in performance critical code. - typedef short int16_t; - typedef short int_least16_t; - typedef int int_fast16_t; - typedef unsigned short uint16_t; - typedef unsigned short uint_least16_t; - typedef unsigned int uint_fast16_t; -# else - typedef short int16_t; - typedef short int_least16_t; - typedef short int_fast16_t; - typedef unsigned short uint16_t; - typedef unsigned short uint_least16_t; - typedef unsigned short uint_fast16_t; -# endif -# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__) - // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified - // MTA / XMT does support the following non-standard integer types - typedef __short16 int16_t; - typedef __short16 int_least16_t; - typedef __short16 int_fast16_t; - typedef unsigned __short16 uint16_t; - typedef unsigned __short16 uint_least16_t; - typedef unsigned __short16 uint_fast16_t; -# elif (USHRT_MAX == 0xffffffff) && defined(CRAY) - // no 16-bit types on Cray: - typedef short int_least16_t; - typedef short int_fast16_t; - typedef unsigned short uint_least16_t; - typedef unsigned short uint_fast16_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -// 32-bit types -----------------------------------------------------------// - -# if UINT_MAX == 0xffffffff - typedef int int32_t; - typedef int int_least32_t; - typedef int int_fast32_t; - typedef unsigned int uint32_t; - typedef unsigned int uint_least32_t; - typedef unsigned int uint_fast32_t; -# elif (USHRT_MAX == 0xffffffff) - typedef short int32_t; - typedef short int_least32_t; - typedef short int_fast32_t; - typedef unsigned short uint32_t; - typedef unsigned short uint_least32_t; - typedef unsigned short uint_fast32_t; -# elif ULONG_MAX == 0xffffffff - typedef long int32_t; - typedef long int_least32_t; - typedef long int_fast32_t; - typedef unsigned long uint32_t; - typedef unsigned long uint_least32_t; - typedef unsigned long uint_fast32_t; -# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__) - // Integers are 64 bits on the MTA / XMT - typedef __int32 int32_t; - typedef __int32 int_least32_t; - typedef __int32 int_fast32_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int32 uint_fast32_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -// 64-bit types + intmax_t and uintmax_t ----------------------------------// - -# if defined(BOOST_HAS_LONG_LONG) && \ - !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ - (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \ - (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) -# if defined(__hpux) - // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions -# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) - // 2**64 - 1 -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - - typedef ::boost::long_long_type intmax_t; - typedef ::boost::ulong_long_type uintmax_t; - typedef ::boost::long_long_type int64_t; - typedef ::boost::long_long_type int_least64_t; - typedef ::boost::long_long_type int_fast64_t; - typedef ::boost::ulong_long_type uint64_t; - typedef ::boost::ulong_long_type uint_least64_t; - typedef ::boost::ulong_long_type uint_fast64_t; - -# elif ULONG_MAX != 0xffffffff - -# if ULONG_MAX == 18446744073709551615 // 2**64 - 1 - typedef long intmax_t; - typedef unsigned long uintmax_t; - typedef long int64_t; - typedef long int_least64_t; - typedef long int_fast64_t; - typedef unsigned long uint64_t; - typedef unsigned long uint_least64_t; - typedef unsigned long uint_fast64_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG) - __extension__ typedef long long intmax_t; - __extension__ typedef unsigned long long uintmax_t; - __extension__ typedef long long int64_t; - __extension__ typedef long long int_least64_t; - __extension__ typedef long long int_fast64_t; - __extension__ typedef unsigned long long uint64_t; - __extension__ typedef unsigned long long uint_least64_t; - __extension__ typedef unsigned long long uint_fast64_t; -# elif defined(BOOST_HAS_MS_INT64) - // - // we have Borland/Intel/Microsoft __int64: - // - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; - typedef __int64 int64_t; - typedef __int64 int_least64_t; - typedef __int64 int_fast64_t; - typedef unsigned __int64 uint64_t; - typedef unsigned __int64 uint_least64_t; - typedef unsigned __int64 uint_fast64_t; -# else // assume no 64-bit integers -# define BOOST_NO_INT64_T - typedef int32_t intmax_t; - typedef uint32_t uintmax_t; -# endif - -} // namespace boost - - -#endif // BOOST_HAS_STDINT_H - -// intptr_t/uintptr_t are defined separately because they are optional and not universally available -#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H) -// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h -#include -#endif - -// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config. -#if !defined(__PGIC__) - -#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \ - || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \ - || defined(__CYGWIN__) \ - || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \ - || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun) - -namespace boost { - using ::intptr_t; - using ::uintptr_t; -} -#define BOOST_HAS_INTPTR_T - -// Clang pretends to be GCC, so it'll match this condition -#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__) - -namespace boost { - typedef __INTPTR_TYPE__ intptr_t; - typedef __UINTPTR_TYPE__ uintptr_t; -} -#define BOOST_HAS_INTPTR_T - -#endif - -#endif // !defined(__PGIC__) - -#endif // BOOST_CSTDINT_HPP - - -/**************************************************** - -Macro definition section: - -Added 23rd September 2000 (John Maddock). -Modified 11th September 2001 to be excluded when -BOOST_HAS_STDINT_H is defined (John Maddock). -Modified 11th Dec 2009 to always define the -INT#_C macros if they're not already defined (John Maddock). - -******************************************************/ - -#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \ - (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C)) -// -// For the following code we get several warnings along the lines of: -// -// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant -// -// So we declare this a system header to suppress these warnings. -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -#include -# define BOOST__STDC_CONSTANT_MACROS_DEFINED -# if defined(BOOST_HAS_MS_INT64) -// -// Borland/Intel/Microsoft compilers have width specific suffixes: -// -#ifndef INT8_C -# define INT8_C(value) value##i8 -#endif -#ifndef INT16_C -# define INT16_C(value) value##i16 -#endif -#ifndef INT32_C -# define INT32_C(value) value##i32 -#endif -#ifndef INT64_C -# define INT64_C(value) value##i64 -#endif -# ifdef __BORLANDC__ - // Borland bug: appending ui8 makes the type a signed char -# define UINT8_C(value) static_cast(value##u) -# else -# define UINT8_C(value) value##ui8 -# endif -#ifndef UINT16_C -# define UINT16_C(value) value##ui16 -#endif -#ifndef UINT32_C -# define UINT32_C(value) value##ui32 -#endif -#ifndef UINT64_C -# define UINT64_C(value) value##ui64 -#endif -#ifndef INTMAX_C -# define INTMAX_C(value) value##i64 -# define UINTMAX_C(value) value##ui64 -#endif - -# else -// do it the old fashioned way: - -// 8-bit types ------------------------------------------------------------// - -# if (UCHAR_MAX == 0xff) && !defined(INT8_C) -# define INT8_C(value) static_cast(value) -# define UINT8_C(value) static_cast(value##u) -# endif - -// 16-bit types -----------------------------------------------------------// - -# if (USHRT_MAX == 0xffff) && !defined(INT16_C) -# define INT16_C(value) static_cast(value) -# define UINT16_C(value) static_cast(value##u) -# endif - -// 32-bit types -----------------------------------------------------------// -#ifndef INT32_C -# if (UINT_MAX == 0xffffffff) -# define INT32_C(value) value -# define UINT32_C(value) value##u -# elif ULONG_MAX == 0xffffffff -# define INT32_C(value) value##L -# define UINT32_C(value) value##uL -# endif -#endif - -// 64-bit types + intmax_t and uintmax_t ----------------------------------// -#ifndef INT64_C -# if defined(BOOST_HAS_LONG_LONG) && \ - (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX)) - -# if defined(__hpux) - // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \ - (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \ - (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \ - (defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \ - (defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL) - -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# elif ULONG_MAX != 0xffffffff - -# if ULONG_MAX == 18446744073709551615U // 2**64 - 1 -# define INT64_C(value) value##L -# define UINT64_C(value) value##uL -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# elif defined(BOOST_HAS_LONG_LONG) - // Usual macros not defined, work things out for ourselves: -# if(~0uLL == 18446744073709551615ULL) -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -# ifdef BOOST_NO_INT64_T -# define INTMAX_C(value) INT32_C(value) -# define UINTMAX_C(value) UINT32_C(value) -# else -# define INTMAX_C(value) INT64_C(value) -# define UINTMAX_C(value) UINT64_C(value) -# endif -#endif -# endif // Borland/Microsoft specific width suffixes - -#endif // INT#_C macros. - - - - diff --git a/lib/3rdParty/boost/boost/current_function.hpp b/lib/3rdParty/boost/boost/current_function.hpp deleted file mode 100644 index 86955cb04..000000000 --- a/lib/3rdParty/boost/boost/current_function.hpp +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED -#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/current_function.hpp - BOOST_CURRENT_FUNCTION -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// 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 -// -// http://www.boost.org/libs/assert/current_function.html -// - -namespace boost -{ - -namespace detail -{ - -inline void current_function_helper() -{ - -#if defined( BOOST_DISABLE_CURRENT_FUNCTION ) - -# define BOOST_CURRENT_FUNCTION "(unknown)" - -#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) - -# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(__DMC__) && (__DMC__ >= 0x810) - -# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(__FUNCSIG__) - -# define BOOST_CURRENT_FUNCTION __FUNCSIG__ - -#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) - -# define BOOST_CURRENT_FUNCTION __FUNCTION__ - -#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550) - -# define BOOST_CURRENT_FUNCTION __FUNC__ - -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) - -# define BOOST_CURRENT_FUNCTION __func__ - -#elif defined(__cplusplus) && (__cplusplus >= 201103) - -# define BOOST_CURRENT_FUNCTION __func__ - -#else - -# define BOOST_CURRENT_FUNCTION "(unknown)" - -#endif - -} - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/algorithm.hpp b/lib/3rdParty/boost/boost/detail/algorithm.hpp deleted file mode 100644 index 3f9297bca..000000000 --- a/lib/3rdParty/boost/boost/detail/algorithm.hpp +++ /dev/null @@ -1,82 +0,0 @@ -// (C) Copyright Jeremy Siek 2001. -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1996 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -#ifndef BOOST_ALGORITHM_HPP -# define BOOST_ALGORITHM_HPP -# include -// Algorithms on sequences -// -// The functions in this file have not yet gone through formal -// review, and are subject to change. This is a work in progress. -// They have been checked into the detail directory because -// there are some graph algorithms that use these functions. - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { - - template - bool any_if(InputIterator first, InputIterator last, Predicate p) - { - return std::find_if(first, last, p) != last; - } - - template - bool any_if(const Container& c, Predicate p) - { - return any_if(boost::begin(c), boost::end(c), p); - } - - template - bool container_contains(InputIterator first, InputIterator last, T value) - { - return std::find(first, last, value) != last; - } - template - bool container_contains(const Container& c, const T& value) - { - return container_contains(boost::begin(c), boost::end(c), value); - } - -} // namespace boost - -#endif // BOOST_ALGORITHM_HPP diff --git a/lib/3rdParty/boost/boost/detail/allocator_utilities.hpp b/lib/3rdParty/boost/boost/detail/allocator_utilities.hpp deleted file mode 100644 index ed3de8466..000000000 --- a/lib/3rdParty/boost/boost/detail/allocator_utilities.hpp +++ /dev/null @@ -1,187 +0,0 @@ -/* Copyright 2003-2013 Joaquin M Lopez Munoz. - * 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 Boost website at http://www.boost.org/ - */ - -#ifndef BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP -#define BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP - -#include /* keep it first to prevent nasty warns in MSVC */ -#include -#include -#include -#include -#include -#include - -namespace boost{ - -namespace detail{ - -/* Allocator adaption layer. Some stdlibs provide allocators without rebind - * and template ctors. These facilities are simulated with the external - * template class rebind_to and the aid of partial_std_allocator_wrapper. - */ - -namespace allocator{ - -/* partial_std_allocator_wrapper inherits the functionality of a std - * allocator while providing a templatized ctor and other bits missing - * in some stdlib implementation or another. - */ - -template -class partial_std_allocator_wrapper:public std::allocator -{ -public: - /* Oddly enough, STLport does not define std::allocator::value_type - * when configured to work without partial template specialization. - * No harm in supplying the definition here unconditionally. - */ - - typedef Type value_type; - - partial_std_allocator_wrapper(){}; - - template - partial_std_allocator_wrapper(const partial_std_allocator_wrapper&){} - - partial_std_allocator_wrapper(const std::allocator& x): - std::allocator(x) - { - }; - -#if defined(BOOST_DINKUMWARE_STDLIB) - /* Dinkumware guys didn't provide a means to call allocate() without - * supplying a hint, in disagreement with the standard. - */ - - Type* allocate(std::size_t n,const void* hint=0) - { - std::allocator& a=*this; - return a.allocate(n,hint); - } -#endif - -}; - -/* Detects whether a given allocator belongs to a defective stdlib not - * having the required member templates. - * Note that it does not suffice to check the Boost.Config stdlib - * macros, as the user might have passed a custom, compliant allocator. - * The checks also considers partial_std_allocator_wrapper to be - * a standard defective allocator. - */ - -#if defined(BOOST_NO_STD_ALLOCATOR)&&\ - (defined(BOOST_HAS_PARTIAL_STD_ALLOCATOR)||defined(BOOST_DINKUMWARE_STDLIB)) - -template -struct is_partial_std_allocator -{ - BOOST_STATIC_CONSTANT(bool, - value= - (is_same< - std::allocator, - Allocator - >::value)|| - (is_same< - partial_std_allocator_wrapper< - BOOST_DEDUCED_TYPENAME Allocator::value_type>, - Allocator - >::value)); -}; - -#else - -template -struct is_partial_std_allocator -{ - BOOST_STATIC_CONSTANT(bool,value=false); -}; - -#endif - -/* rebind operations for defective std allocators */ - -template -struct partial_std_allocator_rebind_to -{ - typedef partial_std_allocator_wrapper type; -}; - -/* rebind operation in all other cases */ - -template -struct rebinder -{ - template - struct result - { - typedef typename Allocator::BOOST_NESTED_TEMPLATE - rebind::other other; - }; -}; - -template -struct compliant_allocator_rebind_to -{ - typedef typename rebinder:: - BOOST_NESTED_TEMPLATE result::other type; -}; - -/* rebind front-end */ - -template -struct rebind_to: - mpl::eval_if_c< - is_partial_std_allocator::value, - partial_std_allocator_rebind_to, - compliant_allocator_rebind_to - > -{ -}; - -/* allocator-independent versions of construct and destroy */ - -template -void construct(void* p,const Type& t) -{ - new (p) Type(t); -} - -#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500)) -/* MSVC++ issues spurious warnings about unreferencend formal parameters - * in destroy when Type is a class with trivial dtor. - */ - -#pragma warning(push) -#pragma warning(disable:4100) -#endif - -template -void destroy(const Type* p) -{ - -#if BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x590)) - const_cast(p)->~Type(); -#else - p->~Type(); -#endif - -} - -#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500)) -#pragma warning(pop) -#endif - -} /* namespace boost::detail::allocator */ - -} /* namespace boost::detail */ - -} /* namespace boost */ - -#endif diff --git a/lib/3rdParty/boost/boost/detail/atomic_count.hpp b/lib/3rdParty/boost/boost/detail/atomic_count.hpp deleted file mode 100644 index 5411c7ae9..000000000 --- a/lib/3rdParty/boost/boost/detail/atomic_count.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED -#define BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/atomic_count.hpp - thread/SMP safe reference counter -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt - -#include - -#endif // #ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/atomic_redef_macros.hpp b/lib/3rdParty/boost/boost/detail/atomic_redef_macros.hpp deleted file mode 100644 index dfd15f5c7..000000000 --- a/lib/3rdParty/boost/boost/detail/atomic_redef_macros.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2013 Vicente J. Botet Escriba -// -// 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) - - -#if defined(BOOST_INTEL) - -#pragma pop_macro("atomic_compare_exchange") -#pragma pop_macro("atomic_compare_exchange_explicit") -#pragma pop_macro("atomic_exchange") -#pragma pop_macro("atomic_exchange_explicit") -#pragma pop_macro("atomic_is_lock_free") -#pragma pop_macro("atomic_load") -#pragma pop_macro("atomic_load_explicit") -#pragma pop_macro("atomic_store") -#pragma pop_macro("atomic_store_explicit") - -#endif // #if defined(BOOST_INTEL) diff --git a/lib/3rdParty/boost/boost/detail/atomic_undef_macros.hpp b/lib/3rdParty/boost/boost/detail/atomic_undef_macros.hpp deleted file mode 100644 index 18d840a7c..000000000 --- a/lib/3rdParty/boost/boost/detail/atomic_undef_macros.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (C) 2013 Vicente J. Botet Escriba -// -// 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) - - -#if defined(BOOST_INTEL) - -#pragma push_macro("atomic_compare_exchange") -#undef atomic_compare_exchange - -#pragma push_macro("atomic_compare_exchange_explicit") -#undef atomic_compare_exchange_explicit - -#pragma push_macro("atomic_exchange") -#undef atomic_exchange - -#pragma push_macro("atomic_exchange_explicit") -#undef atomic_exchange_explicit - -#pragma push_macro("atomic_is_lock_free") -#undef atomic_is_lock_free - -#pragma push_macro("atomic_load") -#undef atomic_load - -#pragma push_macro("atomic_load_explicit") -#undef atomic_load_explicit - -#pragma push_macro("atomic_store") -#undef atomic_store - -#pragma push_macro("atomic_store_explicit") -#undef atomic_store_explicit - - -#endif // #if defined(BOOST_INTEL) - - diff --git a/lib/3rdParty/boost/boost/detail/basic_pointerbuf.hpp b/lib/3rdParty/boost/boost/detail/basic_pointerbuf.hpp deleted file mode 100644 index 1d8cf373b..000000000 --- a/lib/3rdParty/boost/boost/detail/basic_pointerbuf.hpp +++ /dev/null @@ -1,139 +0,0 @@ -//----------------------------------------------------------------------------- -// boost detail/templated_streams.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2013 John Maddock, Antony Polukhin -// -// -// 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_DETAIL_BASIC_POINTERBUF_HPP -#define BOOST_DETAIL_BASIC_POINTERBUF_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) -# pragma once -#endif - -#include "boost/config.hpp" -#include - -namespace boost { namespace detail { - -// -// class basic_pointerbuf: -// acts as a stream buffer which wraps around a pair of pointers: -// -template -class basic_pointerbuf : public BufferT { -protected: - typedef BufferT base_type; - typedef basic_pointerbuf this_type; - typedef typename base_type::int_type int_type; - typedef typename base_type::char_type char_type; - typedef typename base_type::pos_type pos_type; - typedef ::std::streamsize streamsize; - typedef typename base_type::off_type off_type; - -public: - basic_pointerbuf() : base_type() { setbuf(0, 0); } - const charT* getnext() { return this->gptr(); } - -#ifndef BOOST_NO_USING_TEMPLATE - using base_type::pptr; - using base_type::pbase; -#else - charT* pptr() const { return base_type::pptr(); } - charT* pbase() const { return base_type::pbase(); } -#endif - -protected: - // VC mistakenly assumes that `setbuf` and other functions are not referenced. - // Marking those functions with `inline` suppresses the warnings. - // There must be no harm from marking virtual functions as inline: inline virtual - // call can be inlined ONLY when the compiler knows the "exact class". - inline base_type* setbuf(char_type* s, streamsize n); - inline typename this_type::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which); - inline typename this_type::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which); - -private: - basic_pointerbuf& operator=(const basic_pointerbuf&); - basic_pointerbuf(const basic_pointerbuf&); -}; - -template -BufferT* -basic_pointerbuf::setbuf(char_type* s, streamsize n) -{ - this->setg(s, s, s + n); - return this; -} - -template -typename basic_pointerbuf::pos_type -basic_pointerbuf::seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) -{ - typedef typename boost::int_t::least cast_type; - - if(which & ::std::ios_base::out) - return pos_type(off_type(-1)); - std::ptrdiff_t size = this->egptr() - this->eback(); - std::ptrdiff_t pos = this->gptr() - this->eback(); - charT* g = this->eback(); - switch(static_cast(way)) - { - case ::std::ios_base::beg: - if((off < 0) || (off > size)) - return pos_type(off_type(-1)); - else - this->setg(g, g + off, g + size); - break; - case ::std::ios_base::end: - if((off < 0) || (off > size)) - return pos_type(off_type(-1)); - else - this->setg(g, g + size - off, g + size); - break; - case ::std::ios_base::cur: - { - std::ptrdiff_t newpos = static_cast(pos + off); - if((newpos < 0) || (newpos > size)) - return pos_type(off_type(-1)); - else - this->setg(g, g + newpos, g + size); - break; - } - default: ; - } -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4244) -#endif - return static_cast(this->gptr() - this->eback()); -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif -} - -template -typename basic_pointerbuf::pos_type -basic_pointerbuf::seekpos(pos_type sp, ::std::ios_base::openmode which) -{ - if(which & ::std::ios_base::out) - return pos_type(off_type(-1)); - off_type size = static_cast(this->egptr() - this->eback()); - charT* g = this->eback(); - if(off_type(sp) <= size) - { - this->setg(g, g + off_type(sp), g + size); - } - return pos_type(off_type(-1)); -} - -}} // namespace boost::detail - -#endif // BOOST_DETAIL_BASIC_POINTERBUF_HPP - diff --git a/lib/3rdParty/boost/boost/detail/binary_search.hpp b/lib/3rdParty/boost/boost/detail/binary_search.hpp deleted file mode 100644 index 3dca9b650..000000000 --- a/lib/3rdParty/boost/boost/detail/binary_search.hpp +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright (c) 2000 David Abrahams. -// 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) -// -// Copyright (c) 1994 -// Hewlett-Packard Company -// -// Permission to use, copy, modify, distribute and sell this software -// and its documentation for any purpose is hereby granted without fee, -// provided that the above copyright notice appear in all copies and -// that both that copyright notice and this permission notice appear -// in supporting documentation. Hewlett-Packard Company makes no -// representations about the suitability of this software for any -// purpose. It is provided "as is" without express or implied warranty. -// -// Copyright (c) 1996 -// Silicon Graphics Computer Systems, Inc. -// -// Permission to use, copy, modify, distribute and sell this software -// and its documentation for any purpose is hereby granted without fee, -// provided that the above copyright notice appear in all copies and -// that both that copyright notice and this permission notice appear -// in supporting documentation. Silicon Graphics makes no -// representations about the suitability of this software for any -// purpose. It is provided "as is" without express or implied warranty. -// -#ifndef BINARY_SEARCH_DWA_122600_H_ -# define BINARY_SEARCH_DWA_122600_H_ - -# include -# include - -namespace boost { namespace detail { - -template -ForwardIter lower_bound(ForwardIter first, ForwardIter last, - const Tp& val) -{ - typedef detail::iterator_traits traits; - - typename traits::difference_type len = boost::detail::distance(first, last); - typename traits::difference_type half; - ForwardIter middle; - - while (len > 0) { - half = len >> 1; - middle = first; - std::advance(middle, half); - if (*middle < val) { - first = middle; - ++first; - len = len - half - 1; - } - else - len = half; - } - return first; -} - -template -ForwardIter lower_bound(ForwardIter first, ForwardIter last, - const Tp& val, Compare comp) -{ - typedef detail::iterator_traits traits; - - typename traits::difference_type len = boost::detail::distance(first, last); - typename traits::difference_type half; - ForwardIter middle; - - while (len > 0) { - half = len >> 1; - middle = first; - std::advance(middle, half); - if (comp(*middle, val)) { - first = middle; - ++first; - len = len - half - 1; - } - else - len = half; - } - return first; -} - -template -ForwardIter upper_bound(ForwardIter first, ForwardIter last, - const Tp& val) -{ - typedef detail::iterator_traits traits; - - typename traits::difference_type len = boost::detail::distance(first, last); - typename traits::difference_type half; - ForwardIter middle; - - while (len > 0) { - half = len >> 1; - middle = first; - std::advance(middle, half); - if (val < *middle) - len = half; - else { - first = middle; - ++first; - len = len - half - 1; - } - } - return first; -} - -template -ForwardIter upper_bound(ForwardIter first, ForwardIter last, - const Tp& val, Compare comp) -{ - typedef detail::iterator_traits traits; - - typename traits::difference_type len = boost::detail::distance(first, last); - typename traits::difference_type half; - ForwardIter middle; - - while (len > 0) { - half = len >> 1; - middle = first; - std::advance(middle, half); - if (comp(val, *middle)) - len = half; - else { - first = middle; - ++first; - len = len - half - 1; - } - } - return first; -} - -template -std::pair -equal_range(ForwardIter first, ForwardIter last, const Tp& val) -{ - typedef detail::iterator_traits traits; - - typename traits::difference_type len = boost::detail::distance(first, last); - typename traits::difference_type half; - ForwardIter middle, left, right; - - while (len > 0) { - half = len >> 1; - middle = first; - std::advance(middle, half); - if (*middle < val) { - first = middle; - ++first; - len = len - half - 1; - } - else if (val < *middle) - len = half; - else { - left = boost::detail::lower_bound(first, middle, val); - std::advance(first, len); - right = boost::detail::upper_bound(++middle, first, val); - return std::pair(left, right); - } - } - return std::pair(first, first); -} - -template -std::pair -equal_range(ForwardIter first, ForwardIter last, const Tp& val, - Compare comp) -{ - typedef detail::iterator_traits traits; - - typename traits::difference_type len = boost::detail::distance(first, last); - typename traits::difference_type half; - ForwardIter middle, left, right; - - while (len > 0) { - half = len >> 1; - middle = first; - std::advance(middle, half); - if (comp(*middle, val)) { - first = middle; - ++first; - len = len - half - 1; - } - else if (comp(val, *middle)) - len = half; - else { - left = boost::detail::lower_bound(first, middle, val, comp); - std::advance(first, len); - right = boost::detail::upper_bound(++middle, first, val, comp); - return std::pair(left, right); - } - } - return std::pair(first, first); -} - -template -bool binary_search(ForwardIter first, ForwardIter last, - const Tp& val) { - ForwardIter i = boost::detail::lower_bound(first, last, val); - return i != last && !(val < *i); -} - -template -bool binary_search(ForwardIter first, ForwardIter last, - const Tp& val, - Compare comp) { - ForwardIter i = boost::detail::lower_bound(first, last, val, comp); - return i != last && !comp(val, *i); -} - -}} // namespace boost::detail - -#endif // BINARY_SEARCH_DWA_122600_H_ diff --git a/lib/3rdParty/boost/boost/detail/bitmask.hpp b/lib/3rdParty/boost/boost/detail/bitmask.hpp deleted file mode 100644 index c6714a110..000000000 --- a/lib/3rdParty/boost/boost/detail/bitmask.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// boost/detail/bitmask.hpp ------------------------------------------------// - -// Copyright Beman Dawes 2006 - -// Distributed under the Boost Software License, Version 1.0 -// http://www.boost.org/LICENSE_1_0.txt - -// Usage: enum foo { a=1, b=2, c=4 }; -// BOOST_BITMASK( foo ); -// -// void f( foo arg ); -// ... -// f( a | c ); - -#ifndef BOOST_BITMASK_HPP -#define BOOST_BITMASK_HPP - -#include - -#define BOOST_BITMASK(Bitmask) \ - \ - inline Bitmask operator| (Bitmask x , Bitmask y ) \ - { return static_cast( static_cast(x) \ - | static_cast(y)); } \ - \ - inline Bitmask operator& (Bitmask x , Bitmask y ) \ - { return static_cast( static_cast(x) \ - & static_cast(y)); } \ - \ - inline Bitmask operator^ (Bitmask x , Bitmask y ) \ - { return static_cast( static_cast(x) \ - ^ static_cast(y)); } \ - \ - inline Bitmask operator~ (Bitmask x ) \ - { return static_cast(~static_cast(x)); } \ - \ - inline Bitmask & operator&=(Bitmask & x , Bitmask y) \ - { x = x & y ; return x ; } \ - \ - inline Bitmask & operator|=(Bitmask & x , Bitmask y) \ - { x = x | y ; return x ; } \ - \ - inline Bitmask & operator^=(Bitmask & x , Bitmask y) \ - { x = x ^ y ; return x ; } - -#endif // BOOST_BITMASK_HPP - diff --git a/lib/3rdParty/boost/boost/detail/call_traits.hpp b/lib/3rdParty/boost/boost/detail/call_traits.hpp deleted file mode 100644 index 36dea0003..000000000 --- a/lib/3rdParty/boost/boost/detail/call_traits.hpp +++ /dev/null @@ -1,172 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/utility for most recent version including documentation. - -// call_traits: defines typedefs for function usage -// (see libs/utility/call_traits.htm) - -/* Release notes: - 23rd July 2000: - Fixed array specialization. (JM) - Added Borland specific fixes for reference types - (issue raised by Steve Cleary). -*/ - -#ifndef BOOST_DETAIL_CALL_TRAITS_HPP -#define BOOST_DETAIL_CALL_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -#include -#endif -#include - -#include -#include -#include -#include - -namespace boost{ - -namespace detail{ - -template -struct ct_imp2 -{ - typedef const T& param_type; -}; - -template -struct ct_imp2 -{ - typedef const T param_type; -}; - -template -struct ct_imp -{ - typedef const T& param_type; -}; - -template -struct ct_imp -{ - typedef typename ct_imp2::param_type param_type; -}; - -template -struct ct_imp -{ - typedef typename ct_imp2::param_type param_type; -}; - -template -struct ct_imp -{ - typedef const T param_type; -}; - -} - -template -struct call_traits -{ -public: - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - // - // C++ Builder workaround: we should be able to define a compile time - // constant and pass that as a single template parameter to ct_imp, - // however compiler bugs prevent this - instead pass three bool's to - // ct_imp and add an extra partial specialisation - // of ct_imp to handle the logic. (JM) - typedef typename boost::detail::ct_imp< - T, - ::boost::is_pointer::value, - ::boost::is_arithmetic::value, - ::boost::is_enum::value - >::param_type param_type; -}; - -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; - -#if BOOST_WORKAROUND( __BORLANDC__, < 0x5A0 ) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; - -template -struct call_traits< T * > -{ - typedef T * value_type; - typedef T * & reference; - typedef T * const & const_reference; - typedef T * const param_type; // hh removed const -}; -#endif -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template -struct call_traits -{ -private: - typedef T array_type[N]; -public: - // degrades array to pointer: - typedef const T* value_type; - typedef array_type& reference; - typedef const array_type& const_reference; - typedef const T* const param_type; -}; - -template -struct call_traits -{ -private: - typedef const T array_type[N]; -public: - // degrades array to pointer: - typedef const T* value_type; - typedef array_type& reference; - typedef const array_type& const_reference; - typedef const T* const param_type; -}; -#endif - -} - -#endif // BOOST_DETAIL_CALL_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/detail/catch_exceptions.hpp b/lib/3rdParty/boost/boost/detail/catch_exceptions.hpp deleted file mode 100644 index 823ebd1e2..000000000 --- a/lib/3rdParty/boost/boost/detail/catch_exceptions.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// boost/catch_exceptions.hpp -----------------------------------------------// - -// Copyright Beman Dawes 1995-2001. 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/test for documentation. - -// Revision History -// 13 Jun 01 report_exception() made inline. (John Maddock, Jesse Jones) -// 26 Feb 01 Numerous changes suggested during formal review. (Beman) -// 25 Jan 01 catch_exceptions.hpp code factored out of cpp_main.cpp. -// 22 Jan 01 Remove test_tools dependencies to reduce coupling. -// 5 Nov 00 Initial boost version (Beman Dawes) - -#ifndef BOOST_CATCH_EXCEPTIONS_HPP -#define BOOST_CATCH_EXCEPTIONS_HPP - -// header dependencies are deliberately restricted to the standard library -// to reduce coupling to other boost libraries. -#include // for string -#include // for bad_alloc -#include // for bad_cast, bad_typeid -#include // for exception, bad_exception -#include // for std exception hierarchy -#include // for exit codes -#include // for ostream - -# if defined(__BORLANDC__) && (__BORLANDC__ <= 0x0551) -# define BOOST_BUILT_IN_EXCEPTIONS_MISSING_WHAT -# endif - -#if defined(MPW_CPLUS) && (MPW_CPLUS <= 0x890) -# define BOOST_BUILT_IN_EXCEPTIONS_MISSING_WHAT - namespace std { class bad_typeid { }; } -# endif - -namespace boost -{ - - namespace detail - { - // A separate reporting function was requested during formal review. - inline void report_exception( std::ostream & os, - const char * name, const char * info ) - { os << "\n** uncaught exception: " << name << " " << info << std::endl; } - } - - // catch_exceptions ------------------------------------------------------// - - template< class Generator > // Generator is function object returning int - int catch_exceptions( Generator function_object, - std::ostream & out, std::ostream & err ) - { - int result = 0; // quiet compiler warnings - bool exception_thrown = true; // avoid setting result for each excptn type - -#ifndef BOOST_NO_EXCEPTIONS - try - { -#endif - result = function_object(); - exception_thrown = false; -#ifndef BOOST_NO_EXCEPTIONS - } - - // As a result of hard experience with strangely interleaved output - // under some compilers, there is a lot of use of endl in the code below - // where a simple '\n' might appear to do. - - // The rules for catch & arguments are a bit different from function - // arguments (ISO 15.3 paragraphs 18 & 19). Apparently const isn't - // required, but it doesn't hurt and some programmers ask for it. - - catch ( const char * ex ) - { detail::report_exception( out, "", ex ); } - catch ( const std::string & ex ) - { detail::report_exception( out, "", ex.c_str() ); } - - // std:: exceptions - catch ( const std::bad_alloc & ex ) - { detail::report_exception( out, "std::bad_alloc:", ex.what() ); } - -# ifndef BOOST_BUILT_IN_EXCEPTIONS_MISSING_WHAT - catch ( const std::bad_cast & ex ) - { detail::report_exception( out, "std::bad_cast:", ex.what() ); } - catch ( const std::bad_typeid & ex ) - { detail::report_exception( out, "std::bad_typeid:", ex.what() ); } -# else - catch ( const std::bad_cast & ) - { detail::report_exception( out, "std::bad_cast", "" ); } - catch ( const std::bad_typeid & ) - { detail::report_exception( out, "std::bad_typeid", "" ); } -# endif - - catch ( const std::bad_exception & ex ) - { detail::report_exception( out, "std::bad_exception:", ex.what() ); } - catch ( const std::domain_error & ex ) - { detail::report_exception( out, "std::domain_error:", ex.what() ); } - catch ( const std::invalid_argument & ex ) - { detail::report_exception( out, "std::invalid_argument:", ex.what() ); } - catch ( const std::length_error & ex ) - { detail::report_exception( out, "std::length_error:", ex.what() ); } - catch ( const std::out_of_range & ex ) - { detail::report_exception( out, "std::out_of_range:", ex.what() ); } - catch ( const std::range_error & ex ) - { detail::report_exception( out, "std::range_error:", ex.what() ); } - catch ( const std::overflow_error & ex ) - { detail::report_exception( out, "std::overflow_error:", ex.what() ); } - catch ( const std::underflow_error & ex ) - { detail::report_exception( out, "std::underflow_error:", ex.what() ); } - catch ( const std::logic_error & ex ) - { detail::report_exception( out, "std::logic_error:", ex.what() ); } - catch ( const std::runtime_error & ex ) - { detail::report_exception( out, "std::runtime_error:", ex.what() ); } - catch ( const std::exception & ex ) - { detail::report_exception( out, "std::exception:", ex.what() ); } - - catch ( ... ) - { detail::report_exception( out, "unknown exception", "" ); } -#endif // BOOST_NO_EXCEPTIONS - - if ( exception_thrown ) result = boost::exit_exception_failure; - - if ( result != 0 && result != exit_success ) - { - out << std::endl << "**** returning with error code " - << result << std::endl; - err - << "********** errors detected; see stdout for details ***********" - << std::endl; - } -#if !defined(BOOST_NO_CPP_MAIN_SUCCESS_MESSAGE) - else { out << std::flush << "no errors detected" << std::endl; } -#endif - return result; - } // catch_exceptions - -} // boost - -#endif // BOOST_CATCH_EXCEPTIONS_HPP - diff --git a/lib/3rdParty/boost/boost/detail/compressed_pair.hpp b/lib/3rdParty/boost/boost/detail/compressed_pair.hpp deleted file mode 100644 index 5dc21e23e..000000000 --- a/lib/3rdParty/boost/boost/detail/compressed_pair.hpp +++ /dev/null @@ -1,443 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/utility for most recent version including documentation. - -// compressed_pair: pair that "compresses" empty members -// (see libs/utility/doc/html/compressed_pair.html) -// -// JM changes 25 Jan 2004: -// For the case where T1 == T2 and both are empty, then first() and second() -// should return different objects. -// JM changes 25 Jan 2000: -// Removed default arguments from compressed_pair_switch to get -// C++ Builder 4 to accept them -// rewriten swap to get gcc and C++ builder to compile. -// added partial specialisations for case T1 == T2 to avoid duplicate constructor defs. - -#ifndef BOOST_DETAIL_COMPRESSED_PAIR_HPP -#define BOOST_DETAIL_COMPRESSED_PAIR_HPP - -#include - -#include -#include -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable:4512) -#endif -namespace boost -{ - -template -class compressed_pair; - - -// compressed_pair - -namespace details -{ - // JM altered 26 Jan 2000: - template - struct compressed_pair_switch; - - template - struct compressed_pair_switch - {static const int value = 0;}; - - template - struct compressed_pair_switch - {static const int value = 3;}; - - template - struct compressed_pair_switch - {static const int value = 1;}; - - template - struct compressed_pair_switch - {static const int value = 2;}; - - template - struct compressed_pair_switch - {static const int value = 4;}; - - template - struct compressed_pair_switch - {static const int value = 5;}; - - template class compressed_pair_imp; - -#ifdef __GNUC__ - // workaround for GCC (JM): - using std::swap; -#endif - // - // can't call unqualified swap from within classname::swap - // as Koenig lookup rules will find only the classname::swap - // member function not the global declaration, so use cp_swap - // as a forwarding function (JM): - template - inline void cp_swap(T& t1, T& t2) - { -#ifndef __GNUC__ - using std::swap; -#endif - swap(t1, t2); - } - - // 0 derive from neither - - template - class compressed_pair_imp - { - public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_imp() {} - - compressed_pair_imp(first_param_type x, second_param_type y) - : first_(x), second_(y) {} - - compressed_pair_imp(first_param_type x) - : first_(x) {} - - compressed_pair_imp(second_param_type y) - : second_(y) {} - - first_reference first() {return first_;} - first_const_reference first() const {return first_;} - - second_reference second() {return second_;} - second_const_reference second() const {return second_;} - - void swap(::boost::compressed_pair& y) - { - cp_swap(first_, y.first()); - cp_swap(second_, y.second()); - } - private: - first_type first_; - second_type second_; - }; - - // 1 derive from T1 - - template - class compressed_pair_imp - : protected ::boost::remove_cv::type - { - public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_imp() {} - - compressed_pair_imp(first_param_type x, second_param_type y) - : first_type(x), second_(y) {} - - compressed_pair_imp(first_param_type x) - : first_type(x) {} - - compressed_pair_imp(second_param_type y) - : second_(y) {} - - first_reference first() {return *this;} - first_const_reference first() const {return *this;} - - second_reference second() {return second_;} - second_const_reference second() const {return second_;} - - void swap(::boost::compressed_pair& y) - { - // no need to swap empty base class: - cp_swap(second_, y.second()); - } - private: - second_type second_; - }; - - // 2 derive from T2 - - template - class compressed_pair_imp - : protected ::boost::remove_cv::type - { - public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_imp() {} - - compressed_pair_imp(first_param_type x, second_param_type y) - : second_type(y), first_(x) {} - - compressed_pair_imp(first_param_type x) - : first_(x) {} - - compressed_pair_imp(second_param_type y) - : second_type(y) {} - - first_reference first() {return first_;} - first_const_reference first() const {return first_;} - - second_reference second() {return *this;} - second_const_reference second() const {return *this;} - - void swap(::boost::compressed_pair& y) - { - // no need to swap empty base class: - cp_swap(first_, y.first()); - } - - private: - first_type first_; - }; - - // 3 derive from T1 and T2 - - template - class compressed_pair_imp - : protected ::boost::remove_cv::type, - protected ::boost::remove_cv::type - { - public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_imp() {} - - compressed_pair_imp(first_param_type x, second_param_type y) - : first_type(x), second_type(y) {} - - compressed_pair_imp(first_param_type x) - : first_type(x) {} - - compressed_pair_imp(second_param_type y) - : second_type(y) {} - - first_reference first() {return *this;} - first_const_reference first() const {return *this;} - - second_reference second() {return *this;} - second_const_reference second() const {return *this;} - // - // no need to swap empty bases: - void swap(::boost::compressed_pair&) {} - }; - - // JM - // 4 T1 == T2, T1 and T2 both empty - // Originally this did not store an instance of T2 at all - // but that led to problems beause it meant &x.first() == &x.second() - // which is not true for any other kind of pair, so now we store an instance - // of T2 just in case the user is relying on first() and second() returning - // different objects (albeit both empty). - template - class compressed_pair_imp - : protected ::boost::remove_cv::type - { - public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_imp() {} - - compressed_pair_imp(first_param_type x, second_param_type y) - : first_type(x), m_second(y) {} - - compressed_pair_imp(first_param_type x) - : first_type(x), m_second(x) {} - - first_reference first() {return *this;} - first_const_reference first() const {return *this;} - - second_reference second() {return m_second;} - second_const_reference second() const {return m_second;} - - void swap(::boost::compressed_pair&) {} - private: - T2 m_second; - }; - - // 5 T1 == T2 and are not empty: //JM - - template - class compressed_pair_imp - { - public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_imp() {} - - compressed_pair_imp(first_param_type x, second_param_type y) - : first_(x), second_(y) {} - - compressed_pair_imp(first_param_type x) - : first_(x), second_(x) {} - - first_reference first() {return first_;} - first_const_reference first() const {return first_;} - - second_reference second() {return second_;} - second_const_reference second() const {return second_;} - - void swap(::boost::compressed_pair& y) - { - cp_swap(first_, y.first()); - cp_swap(second_, y.second()); - } - private: - first_type first_; - second_type second_; - }; - -} // details - -template -class compressed_pair - : private ::boost::details::compressed_pair_imp::type, typename remove_cv::type>::value, - ::boost::is_empty::value, - ::boost::is_empty::value>::value> -{ -private: - typedef details::compressed_pair_imp::type, typename remove_cv::type>::value, - ::boost::is_empty::value, - ::boost::is_empty::value>::value> base; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair() : base() {} - compressed_pair(first_param_type x, second_param_type y) : base(x, y) {} - explicit compressed_pair(first_param_type x) : base(x) {} - explicit compressed_pair(second_param_type y) : base(y) {} - - first_reference first() {return base::first();} - first_const_reference first() const {return base::first();} - - second_reference second() {return base::second();} - second_const_reference second() const {return base::second();} - - void swap(compressed_pair& y) { base::swap(y); } -}; - -// JM -// Partial specialisation for case where T1 == T2: -// -template -class compressed_pair - : private details::compressed_pair_imp::type, typename remove_cv::type>::value, - ::boost::is_empty::value, - ::boost::is_empty::value>::value> -{ -private: - typedef details::compressed_pair_imp::type, typename remove_cv::type>::value, - ::boost::is_empty::value, - ::boost::is_empty::value>::value> base; -public: - typedef T first_type; - typedef T second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair() : base() {} - compressed_pair(first_param_type x, second_param_type y) : base(x, y) {} -#if !(defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)) - explicit -#endif - compressed_pair(first_param_type x) : base(x) {} - - first_reference first() {return base::first();} - first_const_reference first() const {return base::first();} - - second_reference second() {return base::second();} - second_const_reference second() const {return base::second();} - - void swap(::boost::compressed_pair& y) { base::swap(y); } -}; - -template -inline -void -swap(compressed_pair& x, compressed_pair& y) -{ - x.swap(y); -} - -} // boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // BOOST_DETAIL_COMPRESSED_PAIR_HPP - diff --git a/lib/3rdParty/boost/boost/detail/container_fwd.hpp b/lib/3rdParty/boost/boost/detail/container_fwd.hpp deleted file mode 100644 index 04ce97273..000000000 --- a/lib/3rdParty/boost/boost/detail/container_fwd.hpp +++ /dev/null @@ -1,157 +0,0 @@ - -// Copyright 2005-2011 Daniel James. -// 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: if you change this include guard, you also need to change -// container_fwd_compile_fail.cpp -#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP) -#define BOOST_DETAIL_CONTAINER_FWD_HPP - -#if defined(_MSC_VER) && \ - !defined(BOOST_DETAIL_TEST_CONFIG_ONLY) -# pragma once -#endif - -#include -#include - -//////////////////////////////////////////////////////////////////////////////// -// // -// Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to // -// forward declare standard containers. // -// // -// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it // -// normally doesn't. // -// // -// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD. // -// // -//////////////////////////////////////////////////////////////////////////////// - -#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD) -# if defined(BOOST_DETAIL_CONTAINER_FWD) - // Force forward declarations. -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - // STLport -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__LIBCOMO__) - // Comeau STL: -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) - // Rogue Wave library: -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(_LIBCPP_VERSION) - // libc++ -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__GLIBCPP__) || defined(__GLIBCXX__) - // GNU libstdc++ 3 - // - // Disable forwarding for all recent versions, as the library has a - // versioned namespace mode, and I don't know how to detect it. -# if __GLIBCXX__ >= 20070513 \ - || defined(_GLIBCXX_DEBUG) \ - || defined(_GLIBCXX_PARALLEL) \ - || defined(_GLIBCXX_PROFILE) -# define BOOST_DETAIL_NO_CONTAINER_FWD -# else -# if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530 -# define BOOST_CONTAINER_FWD_COMPLEX_STRUCT -# endif -# endif -# elif defined(__STL_CONFIG_H) - // generic SGI STL - // - // Forward declaration seems to be okay, but it has a couple of odd - // implementations. -# define BOOST_CONTAINER_FWD_BAD_BITSET -# if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) -# define BOOST_CONTAINER_FWD_BAD_DEQUE -# endif -# elif defined(__MSL_CPP__) - // MSL standard lib: -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__IBMCPP__) - // The default VACPP std lib, forward declaration seems to be fine. -# elif defined(MSIPL_COMPILE_H) - // Modena C++ standard library -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) - // Dinkumware Library (this has to appear after any possible replacement - // libraries) -# else -# define BOOST_DETAIL_NO_CONTAINER_FWD -# endif -#endif - -#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY) - -#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \ - !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD) - -#include -#include -#include -#include -#include -#include -#include -#include - -#else - -#include - -#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE) -#include -#endif - -#if defined(BOOST_CONTAINER_FWD_BAD_BITSET) -#include -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) -#pragma warning(disable:4099) // struct/class mismatch in fwd declarations -#endif - -namespace std -{ - template class allocator; - template class basic_string; - - template struct char_traits; - -#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT) - template struct complex; -#else - template class complex; -#endif - -#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE) - template class deque; -#endif - - template class list; - template class vector; - template class map; - template - class multimap; - template class set; - template class multiset; - -#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET) - template class bitset; -#endif - template struct pair; -} - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif // BOOST_DETAIL_NO_CONTAINER_FWD && - // !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD) - -#endif // BOOST_DETAIL_TEST_CONFIG_ONLY - -#endif diff --git a/lib/3rdParty/boost/boost/detail/dynamic_bitset.hpp b/lib/3rdParty/boost/boost/detail/dynamic_bitset.hpp deleted file mode 100644 index e0f675d5e..000000000 --- a/lib/3rdParty/boost/boost/detail/dynamic_bitset.hpp +++ /dev/null @@ -1,241 +0,0 @@ -// ----------------------------------------------------------- -// -// Copyright (c) 2001-2002 Chuck Allison and Jeremy Siek -// Copyright (c) 2003-2006, 2008 Gennaro Prota -// -// Copyright (c) 2014 Glen Joseph Fernandes -// glenfe at live dot com -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// ----------------------------------------------------------- - -#ifndef BOOST_DETAIL_DYNAMIC_BITSET_HPP -#define BOOST_DETAIL_DYNAMIC_BITSET_HPP - -#include -#include -#include "boost/config.hpp" -#include "boost/detail/workaround.hpp" - - -namespace boost { - - namespace detail { - namespace dynamic_bitset_impl { - - // Gives (read-)access to the object representation - // of an object of type T (3.9p4). CANNOT be used - // on a base sub-object - // - template - inline const unsigned char * object_representation (T* p) - { - return static_cast(static_cast(p)); - } - - template - struct shifter - { - static void left_shift(T & v) { - amount >= width ? (v = 0) - : (v >>= BOOST_DYNAMIC_BITSET_WRAP_CONSTANT(amount)); - } - }; - - // ------- count function implementation -------------- - - typedef unsigned char byte_type; - - // These two entities - // - // enum mode { access_by_bytes, access_by_blocks }; - // template struct mode_to_type {}; - // - // were removed, since the regression logs (as of 24 Aug 2008) - // showed that several compilers had troubles with recognizing - // - // const mode m = access_by_bytes - // - // as a constant expression - // - // * So, we'll use bool, instead of enum *. - // - template - struct value_to_type - { - value_to_type() {} - }; - const bool access_by_bytes = true; - const bool access_by_blocks = false; - - - // the table: wrapped in a class template, so - // that it is only instantiated if/when needed - // - template - struct count_table { static const byte_type table[]; }; - - template <> - struct count_table { /* no table */ }; - - - const unsigned int table_width = 8; - template - const byte_type count_table::table[] = - { - // Automatically generated by GPTableGen.exe v.1.0 - // - 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, - 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, - 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, - 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, - 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, - 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, - 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, - 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 - }; - - - // overload for access by bytes - // - - template - inline std::size_t do_count(Iterator first, std::size_t length, - int /*dummy param*/, - value_to_type* ) - { - std::size_t num = 0; - if (length) - { - const byte_type * p = object_representation(&*first); - length *= sizeof(*first); - - do { - num += count_table<>::table[*p]; - ++p; - --length; - - } while (length); - } - - return num; - } - - - // overload for access by blocks - // - template - inline std::size_t do_count(Iterator first, std::size_t length, ValueType, - value_to_type*) - { - std::size_t num = 0; - while (length){ - - ValueType value = *first; - while (value) { - num += count_table<>::table[value & ((1u<>= table_width; - } - - ++first; - --length; - } - - return num; - } - - // ------------------------------------------------------- - - - // Some library implementations simply return a dummy - // value such as - // - // size_type(-1) / sizeof(T) - // - // from vector<>::max_size. This tries to get more - // meaningful info. - // - template - inline typename T::size_type vector_max_size_workaround(const T & v) - BOOST_NOEXCEPT - { - typedef typename T::allocator_type allocator_type; - - const allocator_type& alloc = v.get_allocator(); - -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef std::allocator_traits allocator_traits; - - const typename allocator_traits::size_type alloc_max = - allocator_traits::max_size(alloc); -#else - const typename allocator_type::size_type alloc_max = alloc.max_size(); -#endif - - const typename T::size_type container_max = v.max_size(); - - return alloc_max < container_max ? alloc_max : container_max; - } - - // for static_asserts - template - struct allowed_block_type { - enum { value = T(-1) > 0 }; // ensure T has no sign - }; - - template <> - struct allowed_block_type { - enum { value = false }; - }; - - - template - struct is_numeric { - enum { value = false }; - }; - -# define BOOST_dynamic_bitset_is_numeric(x) \ - template<> \ - struct is_numeric< x > { \ - enum { value = true }; \ - } /**/ - - BOOST_dynamic_bitset_is_numeric(bool); - BOOST_dynamic_bitset_is_numeric(char); - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - BOOST_dynamic_bitset_is_numeric(wchar_t); -#endif - - BOOST_dynamic_bitset_is_numeric(signed char); - BOOST_dynamic_bitset_is_numeric(short int); - BOOST_dynamic_bitset_is_numeric(int); - BOOST_dynamic_bitset_is_numeric(long int); - - BOOST_dynamic_bitset_is_numeric(unsigned char); - BOOST_dynamic_bitset_is_numeric(unsigned short); - BOOST_dynamic_bitset_is_numeric(unsigned int); - BOOST_dynamic_bitset_is_numeric(unsigned long); - -#if defined(BOOST_HAS_LONG_LONG) - BOOST_dynamic_bitset_is_numeric(::boost::long_long_type); - BOOST_dynamic_bitset_is_numeric(::boost::ulong_long_type); -#endif - - // intentionally omitted - //BOOST_dynamic_bitset_is_numeric(float); - //BOOST_dynamic_bitset_is_numeric(double); - //BOOST_dynamic_bitset_is_numeric(long double); - -#undef BOOST_dynamic_bitset_is_numeric - - } // dynamic_bitset_impl - } // namespace detail - -} // namespace boost - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/detail/endian.hpp b/lib/3rdParty/boost/boost/detail/endian.hpp deleted file mode 100644 index f576c26b8..000000000 --- a/lib/3rdParty/boost/boost/detail/endian.hpp +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2013 Rene Rivera -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_DETAIL_ENDIAN_HPP -#define BOOST_DETAIL_ENDIAN_HPP - -// Use the Predef library for the detection of endianess. -#include - -#endif diff --git a/lib/3rdParty/boost/boost/detail/fenv.hpp b/lib/3rdParty/boost/boost/detail/fenv.hpp deleted file mode 100644 index b268f5c1c..000000000 --- a/lib/3rdParty/boost/boost/detail/fenv.hpp +++ /dev/null @@ -1,101 +0,0 @@ -/*============================================================================= - Copyright (c) 2010 Bryce Lelbach - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -=============================================================================*/ - -#include - -#if defined(BOOST_NO_FENV_H) - #error This platform does not have a floating point environment -#endif - -#if !defined(BOOST_DETAIL_FENV_HPP) -#define BOOST_DETAIL_FENV_HPP - -/* If we're using clang + glibc, we have to get hacky. - * See http://llvm.org/bugs/show_bug.cgi?id=6907 */ -#if defined(__clang__) && (__clang_major__ < 3) && \ - defined(__GNU_LIBRARY__) && /* up to version 5 */ \ - defined(__GLIBC__) && /* version 6 + */ \ - !defined(_FENV_H) - #define _FENV_H - - #include - #include - - extern "C" { - extern int fegetexceptflag (fexcept_t*, int) __THROW; - extern int fesetexceptflag (__const fexcept_t*, int) __THROW; - extern int feclearexcept (int) __THROW; - extern int feraiseexcept (int) __THROW; - extern int fetestexcept (int) __THROW; - extern int fegetround (void) __THROW; - extern int fesetround (int) __THROW; - extern int fegetenv (fenv_t*) __THROW; - extern int fesetenv (__const fenv_t*) __THROW; - extern int feupdateenv (__const fenv_t*) __THROW; - extern int feholdexcept (fenv_t*) __THROW; - - #ifdef __USE_GNU - extern int feenableexcept (int) __THROW; - extern int fedisableexcept (int) __THROW; - extern int fegetexcept (void) __THROW; - #endif - } - - namespace std { namespace tr1 { - using ::fenv_t; - using ::fexcept_t; - using ::fegetexceptflag; - using ::fesetexceptflag; - using ::feclearexcept; - using ::feraiseexcept; - using ::fetestexcept; - using ::fegetround; - using ::fesetround; - using ::fegetenv; - using ::fesetenv; - using ::feupdateenv; - using ::feholdexcept; - } } - -#elif defined(__MINGW32__) && defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 - - // MinGW (32-bit) has a bug in mingw32/bits/c++config.h, it does not define _GLIBCXX_HAVE_FENV_H, - // which prevents the C fenv.h header contents to be included in the C++ wrapper header fenv.h. This is at least - // the case with gcc 4.8.1 packages tested so far, up to 4.8.1-4. Note that there is no issue with - // MinGW-w64. - // To work around the bug we avoid including the C++ wrapper header and include the C header directly - // and import all relevant symbols into std:: ourselves. - - #include <../include/fenv.h> - - namespace std { - using ::fenv_t; - using ::fexcept_t; - using ::fegetexceptflag; - using ::fesetexceptflag; - using ::feclearexcept; - using ::feraiseexcept; - using ::fetestexcept; - using ::fegetround; - using ::fesetround; - using ::fegetenv; - using ::fesetenv; - using ::feupdateenv; - using ::feholdexcept; - } - -#else /* if we're not using GNU's C stdlib, fenv.h should work with clang */ - - #if defined(__SUNPRO_CC) /* lol suncc */ - #include - #endif - - #include - -#endif - -#endif /* BOOST_DETAIL_FENV_HPP */ diff --git a/lib/3rdParty/boost/boost/detail/has_default_constructor.hpp b/lib/3rdParty/boost/boost/detail/has_default_constructor.hpp deleted file mode 100644 index 319b30abc..000000000 --- a/lib/3rdParty/boost/boost/detail/has_default_constructor.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -// (C) Copyright Matthias Troyerk 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_DETAIL_HAS_DEFAULT_CONSTRUCTOR_HPP_INCLUDED -#define BOOST_DETAIL_HAS_DEFAULT_CONSTRUCTOR_HPP_INCLUDED - -#include - -namespace boost { namespace detail { - -/// type trait to check for a default constructor -/// -/// The default implementation just checks for a trivial constructor. -/// Using some compiler magic it might be possible to provide a better default - -template -struct has_default_constructor - : public has_trivial_constructor -{}; - -} } // namespace boost::detail - - -#endif // BOOST_DETAIL_HAS_DEFAULT_CONSTRUCTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/identifier.hpp b/lib/3rdParty/boost/boost/detail/identifier.hpp deleted file mode 100644 index 063d23801..000000000 --- a/lib/3rdParty/boost/boost/detail/identifier.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// boost/identifier.hpp ----------------------------------------------------// - -// Copyright Beman Dawes 2006 - -// 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 documentation at http://www.boost.org/libs/utility - -#ifndef BOOST_IDENTIFIER_HPP -#define BOOST_IDENTIFIER_HPP - -#include -#include -#include - -namespace boost -{ - namespace detail - { - // class template identifier ---------------------------------------------// - - // Always used as a base class so that different instantiations result in - // different class types even if instantiated with the same value type T. - - // Expected usage is that T is often an integer type, best passed by - // value. There is no reason why T can't be a possibly larger class such as - // std::string, best passed by const reference. - - // This implementation uses pass by value, based on expected common uses. - - template - class identifier - { - public: - typedef T value_type; - - const value_type value() const { return m_value; } - void assign( value_type v ) { m_value = v; } - - bool operator==( const D & rhs ) const { return m_value == rhs.m_value; } - bool operator!=( const D & rhs ) const { return m_value != rhs.m_value; } - bool operator< ( const D & rhs ) const { return m_value < rhs.m_value; } - bool operator<=( const D & rhs ) const { return m_value <= rhs.m_value; } - bool operator> ( const D & rhs ) const { return m_value > rhs.m_value; } - bool operator>=( const D & rhs ) const { return m_value >= rhs.m_value; } - - typedef void (*unspecified_bool_type)(D); // without the D, unspecified_bool_type - static void unspecified_bool_true(D){} // conversion allows relational operators - // between different identifier types - - operator unspecified_bool_type() const { return m_value == value_type() ? 0 : unspecified_bool_true; } - bool operator!() const { return m_value == value_type(); } - - // constructors are protected so that class can only be used as a base class - protected: - identifier() {} - explicit identifier( value_type v ) : m_value(v) {} - - private: - T m_value; - }; - - //#ifndef BOOST_NO_SFINAE - - // template - // typename enable_if< is_base_of< identifier< typename Id::value_type, Id >, Id >, - // Ostream & >::type operator<<( Ostream & os, const Id & id ) - // { - // return os << id.value(); - // } - - // template - // typename enable_if< is_base_of< identifier< typename Id::value_type, Id >, Id >, - // Istream & >::type operator>>( Istream & is, Id & id ) - // { - // typename Id::value_type v; - // is >> v; - // id.value( v ); - // return is; - // } - //#endif - - } // namespace detail -} // namespace boost - -#endif // BOOST_IDENTIFIER_HPP diff --git a/lib/3rdParty/boost/boost/detail/indirect_traits.hpp b/lib/3rdParty/boost/boost/detail/indirect_traits.hpp deleted file mode 100644 index 6294e40f6..000000000 --- a/lib/3rdParty/boost/boost/detail/indirect_traits.hpp +++ /dev/null @@ -1,204 +0,0 @@ -// 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 INDIRECT_TRAITS_DWA2002131_HPP -# define INDIRECT_TRAITS_DWA2002131_HPP -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include - -# include -# include -# include -# include -# include -# include - - -namespace boost { namespace detail { - -namespace indirect_traits { - -template -struct is_reference_to_const : mpl::false_ -{ -}; - -template -struct is_reference_to_const : mpl::true_ -{ -}; - -# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround -template -struct is_reference_to_const : mpl::true_ -{ -}; -# endif - -template -struct is_reference_to_function : mpl::false_ -{ -}; - -template -struct is_reference_to_function : is_function -{ -}; - -template -struct is_pointer_to_function : mpl::false_ -{ -}; - -// There's no such thing as a pointer-to-cv-function, so we don't need -// specializations for those -template -struct is_pointer_to_function : is_function -{ -}; - -template -struct is_reference_to_member_function_pointer_impl : mpl::false_ -{ -}; - -template -struct is_reference_to_member_function_pointer_impl - : is_member_function_pointer::type> -{ -}; - - -template -struct is_reference_to_member_function_pointer - : is_reference_to_member_function_pointer_impl -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T)) -}; - -template -struct is_reference_to_function_pointer_aux - : mpl::and_< - is_reference - , is_pointer_to_function< - typename remove_cv< - typename remove_reference::type - >::type - > - > -{ - // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those -}; - -template -struct is_reference_to_function_pointer - : mpl::if_< - is_reference_to_function - , mpl::false_ - , is_reference_to_function_pointer_aux - >::type -{ -}; - -template -struct is_reference_to_non_const - : mpl::and_< - is_reference - , mpl::not_< - is_reference_to_const - > - > -{ -}; - -template -struct is_reference_to_volatile : mpl::false_ -{ -}; - -template -struct is_reference_to_volatile : mpl::true_ -{ -}; - -# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround -template -struct is_reference_to_volatile : mpl::true_ -{ -}; -# endif - - -template -struct is_reference_to_pointer : mpl::false_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_class - : mpl::and_< - is_reference - , is_class< - typename remove_cv< - typename remove_reference::type - >::type - > - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T)) -}; - -template -struct is_pointer_to_class - : mpl::and_< - is_pointer - , is_class< - typename remove_cv< - typename remove_pointer::type - >::type - > - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T)) -}; - - -} - -using namespace indirect_traits; - -}} // namespace boost::python::detail - -#endif // INDIRECT_TRAITS_DWA2002131_HPP diff --git a/lib/3rdParty/boost/boost/detail/interlocked.hpp b/lib/3rdParty/boost/boost/detail/interlocked.hpp deleted file mode 100644 index 2c91ce286..000000000 --- a/lib/3rdParty/boost/boost/detail/interlocked.hpp +++ /dev/null @@ -1,218 +0,0 @@ -#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED -#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED - -// -// boost/detail/interlocked.hpp -// -// Copyright 2005 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) -// - -#include - -// MS compatible compilers support #pragma once -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined( BOOST_USE_WINDOWS_H ) - -# include - -# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer - -#elif defined( BOOST_USE_INTRIN_H ) - -#include - -# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -# if defined(_M_IA64) || defined(_M_AMD64) || defined(__x86_64__) || defined(__x86_64) - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer - -# else - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) - -# endif - -#elif defined(_WIN32_WCE) - -#if _WIN32_WCE >= 0x600 - -extern "C" long __cdecl _InterlockedIncrement( long volatile * ); -extern "C" long __cdecl _InterlockedDecrement( long volatile * ); -extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long __cdecl _InterlockedExchange( long volatile *, long ); -extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long ); - -# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -#else -// under Windows CE we still have old-style Interlocked* functions - -extern "C" long __cdecl InterlockedIncrement( long* ); -extern "C" long __cdecl InterlockedDecrement( long* ); -extern "C" long __cdecl InterlockedCompareExchange( long*, long, long ); -extern "C" long __cdecl InterlockedExchange( long*, long ); -extern "C" long __cdecl InterlockedExchangeAdd( long*, long ); - -# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd - -#endif - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) - -#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) - -#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1400 - -#include - -#else - -# if defined( __CLRCALL_PURE_OR_CDECL ) -# define BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL __CLRCALL_PURE_OR_CDECL -# else -# define BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL __cdecl -# endif - -extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * ); -extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * ); -extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long ); -extern "C" long BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long ); - -# undef BOOST_INTERLOCKED_CLRCALL_PURE_OR_CDECL - -# if defined( BOOST_MSVC ) && BOOST_MSVC >= 1310 -# pragma intrinsic( _InterlockedIncrement ) -# pragma intrinsic( _InterlockedDecrement ) -# pragma intrinsic( _InterlockedCompareExchange ) -# pragma intrinsic( _InterlockedExchange ) -# pragma intrinsic( _InterlockedExchangeAdd ) -# endif - -#endif - -# if defined(_M_IA64) || defined(_M_AMD64) - -extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* ); -extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* ); - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer - -# else - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) - -# endif - -# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -// Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets. -#elif defined(__MINGW64_VERSION_MAJOR) - -// MinGW-w64 provides intrin.h for both 32 and 64-bit targets. -#include - -# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd -# if defined(__x86_64__) || defined(__x86_64) -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer -# else -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) -# endif - -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) - -#define BOOST_INTERLOCKED_IMPORT __declspec(dllimport) - -namespace boost -{ - -namespace detail -{ - -extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * ); -extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * ); -extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long ); -extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long ); -extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long ); - -# if defined(_M_IA64) || defined(_M_AMD64) -extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* ); -extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* ); -# endif - -} // namespace detail - -} // namespace boost - -# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd - -# if defined(_M_IA64) || defined(_M_AMD64) -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::boost::detail::InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER ::boost::detail::InterlockedExchangePointer -# else -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) -# endif - -#else - -# error "Interlocked intrinsics not available" - -#endif - -#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/is_incrementable.hpp b/lib/3rdParty/boost/boost/detail/is_incrementable.hpp deleted file mode 100644 index 5ebf4b7ac..000000000 --- a/lib/3rdParty/boost/boost/detail/is_incrementable.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright David Abrahams 2004. 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) -#ifndef IS_INCREMENTABLE_DWA200415_HPP -# define IS_INCREMENTABLE_DWA200415_HPP - -# include -# include -# include -# include -# include - -namespace boost { namespace detail { - -// is_incrementable metafunction -// -// Requires: Given x of type T&, if the expression ++x is well-formed -// it must have complete type; otherwise, it must neither be ambiguous -// nor violate access. - -// This namespace ensures that ADL doesn't mess things up. -namespace is_incrementable_ -{ - // a type returned from operator++ when no increment is found in the - // type's own namespace - struct tag {}; - - // any soaks up implicit conversions and makes the following - // operator++ less-preferred than any other such operator that - // might be found via ADL. - struct any { template any(T const&); }; - - // This is a last-resort operator++ for when none other is found -# if BOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2 - -} - -namespace is_incrementable_2 -{ - is_incrementable_::tag operator++(is_incrementable_::any const&); - is_incrementable_::tag operator++(is_incrementable_::any const&,int); -} -using namespace is_incrementable_2; - -namespace is_incrementable_ -{ - -# else - - tag operator++(any const&); - tag operator++(any const&,int); - -# endif - -# if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) -# define BOOST_comma(a,b) (a) -# else - // In case an operator++ is found that returns void, we'll use ++x,0 - tag operator,(tag,int); -# define BOOST_comma(a,b) (a,b) -# endif - -# if defined(BOOST_MSVC) -# pragma warning(push) -# pragma warning(disable:4913) // Warning about operator, -# endif - - // two check overloads help us identify which operator++ was picked - char (& check_(tag) )[2]; - - template - char check_(T const&); - - - template - struct impl - { - static typename boost::remove_cv::type& x; - - BOOST_STATIC_CONSTANT( - bool - , value = sizeof(is_incrementable_::check_(BOOST_comma(++x,0))) == 1 - ); - }; - - template - struct postfix_impl - { - static typename boost::remove_cv::type& x; - - BOOST_STATIC_CONSTANT( - bool - , value = sizeof(is_incrementable_::check_(BOOST_comma(x++,0))) == 1 - ); - }; - -# if defined(BOOST_MSVC) -# pragma warning(pop) -# endif - -} - -# undef BOOST_comma - -template -struct is_incrementable : - public boost::integral_constant::value> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_incrementable,(T)) -}; - -template -struct is_postfix_incrementable : - public boost::integral_constant::value> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_postfix_incrementable,(T)) -}; - -} // namespace detail - -} // namespace boost - -# include - -#endif // IS_INCREMENTABLE_DWA200415_HPP diff --git a/lib/3rdParty/boost/boost/detail/is_sorted.hpp b/lib/3rdParty/boost/boost/detail/is_sorted.hpp deleted file mode 100644 index 5ab32e5c5..000000000 --- a/lib/3rdParty/boost/boost/detail/is_sorted.hpp +++ /dev/null @@ -1,56 +0,0 @@ -/*============================================================================== - Copyright (c) 2010-2011 Bryce Lelbach - - 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_DETAIL_SORTED_HPP -#define BOOST_DETAIL_SORTED_HPP - -#include - -#include - -namespace boost { -namespace detail { - -template -inline Iterator is_sorted_until (Iterator first, Iterator last, Comp c) { - if (first == last) - return last; - - Iterator it = first; ++it; - - for (; it != last; first = it, ++it) - if (c(*it, *first)) - return it; - - return it; -} - -template -inline Iterator is_sorted_until (Iterator first, Iterator last) { - typedef typename boost::detail::iterator_traits::value_type - value_type; - - typedef std::less c; - - return ::boost::detail::is_sorted_until(first, last, c()); -} - -template -inline bool is_sorted (Iterator first, Iterator last, Comp c) { - return ::boost::detail::is_sorted_until(first, last, c) == last; -} - -template -inline bool is_sorted (Iterator first, Iterator last) { - return ::boost::detail::is_sorted_until(first, last) == last; -} - -} // detail -} // boost - -#endif // BOOST_DETAIL_SORTED_HPP - diff --git a/lib/3rdParty/boost/boost/detail/is_xxx.hpp b/lib/3rdParty/boost/boost/detail/is_xxx.hpp deleted file mode 100644 index 3f9a1265e..000000000 --- a/lib/3rdParty/boost/boost/detail/is_xxx.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright David Abrahams 2005. 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_DETAIL_IS_XXX_DWA20051011_HPP -# define BOOST_DETAIL_IS_XXX_DWA20051011_HPP - -# include -# include -# include - - -# define BOOST_DETAIL_IS_XXX_DEF(name, qualified_name, nargs) \ -template \ -struct is_##name : mpl::false_ \ -{ \ -}; \ - \ -template < BOOST_PP_ENUM_PARAMS_Z(1, nargs, class T) > \ -struct is_##name< \ - qualified_name< BOOST_PP_ENUM_PARAMS_Z(1, nargs, T) > \ -> \ - : mpl::true_ \ -{ \ -}; - - -#endif // BOOST_DETAIL_IS_XXX_DWA20051011_HPP diff --git a/lib/3rdParty/boost/boost/detail/iterator.hpp b/lib/3rdParty/boost/boost/detail/iterator.hpp deleted file mode 100644 index 2498ef448..000000000 --- a/lib/3rdParty/boost/boost/detail/iterator.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// (C) 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 ITERATOR_DWA122600_HPP_ -#define ITERATOR_DWA122600_HPP_ - -// This header is obsolete and will be deprecated. - -#include -#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) -#include -#endif - -namespace boost -{ - -namespace detail -{ - -using std::iterator_traits; -using std::distance; - -#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) -// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters -// when one of the arguments is an array and the other one is a pointer. -template< typename T, std::size_t N > -inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right) -{ - return std::distance(static_cast< T* >(left), right); -} -#endif - -} // namespace detail - -} // namespace boost - -#endif // ITERATOR_DWA122600_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/lcast_precision.hpp b/lib/3rdParty/boost/boost/detail/lcast_precision.hpp deleted file mode 100644 index 93abce18c..000000000 --- a/lib/3rdParty/boost/boost/detail/lcast_precision.hpp +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright Alexander Nasonov & Paul A. Bristow 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) - -#ifndef BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED -#define BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED - -#include -#include -#include - -#include -#include - -#ifndef BOOST_NO_IS_ABSTRACT -// Fix for SF:1358600 - lexical_cast & pure virtual functions & VC 8 STL -#include -#include -#endif - -#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \ - (defined(BOOST_MSVC) && (BOOST_MSVC<1310)) - -#define BOOST_LCAST_NO_COMPILE_TIME_PRECISION -#endif - -#ifdef BOOST_LCAST_NO_COMPILE_TIME_PRECISION -#include -#else -#include -#endif - -namespace boost { namespace detail { - -class lcast_abstract_stub {}; - -#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION -// Calculate an argument to pass to std::ios_base::precision from -// lexical_cast. See alternative implementation for broken standard -// libraries in lcast_get_precision below. Keep them in sync, please. -template -struct lcast_precision -{ -#ifdef BOOST_NO_IS_ABSTRACT - typedef std::numeric_limits limits; // No fix for SF:1358600. -#else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_abstract - , std::numeric_limits - , std::numeric_limits - >::type limits; -#endif - - BOOST_STATIC_CONSTANT(bool, use_default_precision = - !limits::is_specialized || limits::is_exact - ); - - BOOST_STATIC_CONSTANT(bool, is_specialized_bin = - !use_default_precision && - limits::radix == 2 && limits::digits > 0 - ); - - BOOST_STATIC_CONSTANT(bool, is_specialized_dec = - !use_default_precision && - limits::radix == 10 && limits::digits10 > 0 - ); - - BOOST_STATIC_CONSTANT(std::streamsize, streamsize_max = - boost::integer_traits::const_max - ); - - BOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U); - - BOOST_STATIC_ASSERT(!is_specialized_dec || - precision_dec <= streamsize_max + 0UL - ); - - BOOST_STATIC_CONSTANT(unsigned long, precision_bin = - 2UL + limits::digits * 30103UL / 100000UL - ); - - BOOST_STATIC_ASSERT(!is_specialized_bin || - (limits::digits + 0UL < ULONG_MAX / 30103UL && - precision_bin > limits::digits10 + 0UL && - precision_bin <= streamsize_max + 0UL) - ); - - BOOST_STATIC_CONSTANT(std::streamsize, value = - is_specialized_bin ? precision_bin - : is_specialized_dec ? precision_dec : 6 - ); -}; -#endif - -template -inline std::streamsize lcast_get_precision(T* = 0) -{ -#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION - return lcast_precision::value; -#else // Follow lcast_precision algorithm at run-time: - -#ifdef BOOST_NO_IS_ABSTRACT - typedef std::numeric_limits limits; // No fix for SF:1358600. -#else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_abstract - , std::numeric_limits - , std::numeric_limits - >::type limits; -#endif - - bool const use_default_precision = - !limits::is_specialized || limits::is_exact; - - if(!use_default_precision) - { // Includes all built-in floating-point types, float, double ... - // and UDT types for which digits (significand bits) is defined (not zero) - - bool const is_specialized_bin = - limits::radix == 2 && limits::digits > 0; - bool const is_specialized_dec = - limits::radix == 10 && limits::digits10 > 0; - std::streamsize const streamsize_max = - (boost::integer_traits::max)(); - - if(is_specialized_bin) - { // Floating-point types with - // limits::digits defined by the specialization. - - unsigned long const digits = limits::digits; - unsigned long const precision = 2UL + digits * 30103UL / 100000UL; - // unsigned long is selected because it is at least 32-bits - // and thus ULONG_MAX / 30103UL is big enough for all types. - BOOST_ASSERT( - digits < ULONG_MAX / 30103UL && - precision > limits::digits10 + 0UL && - precision <= streamsize_max + 0UL - ); - return precision; - } - else if(is_specialized_dec) - { // Decimal Floating-point type, most likely a User Defined Type - // rather than a real floating-point hardware type. - unsigned int const precision = limits::digits10 + 1U; - BOOST_ASSERT(precision <= streamsize_max + 0UL); - return precision; - } - } - - // Integral type (for which precision has no effect) - // or type T for which limits is NOT specialized, - // so assume stream precision remains the default 6 decimal digits. - // Warning: if your User-defined Floating-point type T is NOT specialized, - // then you may lose accuracy by only using 6 decimal digits. - // To avoid this, you need to specialize T with either - // radix == 2 and digits == the number of significand bits, - // OR - // radix = 10 and digits10 == the number of decimal digits. - - return 6; -#endif -} - -template -inline void lcast_set_precision(std::ios_base& stream, T*) -{ - stream.precision(lcast_get_precision()); -} - -template -inline void lcast_set_precision(std::ios_base& stream, Source*, Target*) -{ - std::streamsize const s = lcast_get_precision(static_cast(0)); - std::streamsize const t = lcast_get_precision(static_cast(0)); - stream.precision(s > t ? s : t); -} - -}} - -#endif // BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/detail/lightweight_main.hpp b/lib/3rdParty/boost/boost/detail/lightweight_main.hpp deleted file mode 100644 index 170530978..000000000 --- a/lib/3rdParty/boost/boost/detail/lightweight_main.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// boost/detail/lightweight_main.hpp -------------------------------------------------// - -// Copyright Beman Dawes 2010 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#include -#include - -//--------------------------------------------------------------------------------------// -// // -// exception reporting main() that calls cpp_main() // -// // -//--------------------------------------------------------------------------------------// - -int cpp_main(int argc, char* argv[]); - -int main(int argc, char* argv[]) -{ - try - { - return cpp_main(argc, argv); - } - - catch (const std::exception& ex) - { - std::cout - << "\nERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR\n" - << "\n****************************** std::exception *****************************\n" - << ex.what() - << "\n***************************************************************************\n" - << std::endl; - } - return 1; -} diff --git a/lib/3rdParty/boost/boost/detail/lightweight_mutex.hpp b/lib/3rdParty/boost/boost/detail/lightweight_mutex.hpp deleted file mode 100644 index b7a7f6dd4..000000000 --- a/lib/3rdParty/boost/boost/detail/lightweight_mutex.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED -#define BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/lightweight_mutex.hpp - lightweight mutex -// -// Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt -// - -#include - -#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/lightweight_test.hpp b/lib/3rdParty/boost/boost/detail/lightweight_test.hpp deleted file mode 100644 index 9fece8ab7..000000000 --- a/lib/3rdParty/boost/boost/detail/lightweight_test.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_DETAIL_LIGHTWEIGHT_TEST_HPP -#define BOOST_DETAIL_LIGHTWEIGHT_TEST_HPP - -// The header file at this path is deprecated; -// use boost/core/lightweight_test.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/detail/lightweight_test_report.hpp b/lib/3rdParty/boost/boost/detail/lightweight_test_report.hpp deleted file mode 100644 index 1511ba9d1..000000000 --- a/lib/3rdParty/boost/boost/detail/lightweight_test_report.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// boost/detail/lightweight_test_reporter.hpp ----------------------------------------// - -// Copyright Beman Dawes 2014 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -//--------------------------------------------------------------------------------------// -// // -// Configuration reporting cpp_main() // -// // -// Displays configuration information, then returns test_main(argc, argv), which // -// must be supplied by the user. // -// // -// Note: cpp_main(argc, argv) is called from a try block in main(), which is // -// supplied by as is a catch block that reports // -// std::exception what(). // -// // -//--------------------------------------------------------------------------------------// - -#include -#include -#include -#include -#include - -int test_main(int argc, char* argv[]); - -int cpp_main(int argc, char* argv[]) -{ - std::cout << BOOST_COMPILER -#ifdef __GNUC__ - << ", __GXX_EXPERIMENTAL_CXX0X__ " -# ifdef __GXX_EXPERIMENTAL_CXX0X__ - "defined" -# else - "not defined" -# endif -#endif - << "\n" - << BOOST_STDLIB << "\n" - << BOOST_PLATFORM << "\n" - << "Boost version " << BOOST_VERSION / 100000 << '.' - << BOOST_VERSION / 100 % 1000 << '.' << BOOST_VERSION % 100 << "\n"; - - std::cout << "Command line: "; - for (int a = 0; a < argc; ++a) - { - std::cout << argv[a]; - if (a != argc - 1) - std::cout << ' '; - } - std::cout << std::endl; - - return test_main(argc, argv); -} \ No newline at end of file diff --git a/lib/3rdParty/boost/boost/detail/lightweight_thread.hpp b/lib/3rdParty/boost/boost/detail/lightweight_thread.hpp deleted file mode 100644 index 6fe70a613..000000000 --- a/lib/3rdParty/boost/boost/detail/lightweight_thread.hpp +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED -#define BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// boost/detail/lightweight_thread.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2008 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 - -#include -#include -#include - -// pthread_create, pthread_join - -#if defined( BOOST_HAS_PTHREADS ) - -#include - -#else - -#include -#include - -typedef HANDLE pthread_t; - -int pthread_create( pthread_t * thread, void const *, unsigned (__stdcall * start_routine) (void*), void* arg ) -{ - HANDLE h = (HANDLE)_beginthreadex( 0, 0, start_routine, arg, 0, 0 ); - - if( h != 0 ) - { - *thread = h; - return 0; - } - else - { - return EAGAIN; - } -} - -int pthread_join( pthread_t thread, void ** /*value_ptr*/ ) -{ - ::WaitForSingleObject( thread, INFINITE ); - ::CloseHandle( thread ); - return 0; -} - -#endif - -// template int lw_thread_create( pthread_t & pt, F f ); - -namespace boost -{ - -namespace detail -{ - -class lw_abstract_thread -{ -public: - - virtual ~lw_abstract_thread() {} - virtual void run() = 0; -}; - -#if defined( BOOST_HAS_PTHREADS ) - -extern "C" void * lw_thread_routine( void * pv ) -{ - std::auto_ptr pt( static_cast( pv ) ); - - pt->run(); - - return 0; -} - -#else - -unsigned __stdcall lw_thread_routine( void * pv ) -{ - std::auto_ptr pt( static_cast( pv ) ); - - pt->run(); - - return 0; -} - -#endif - -template class lw_thread_impl: public lw_abstract_thread -{ -public: - - explicit lw_thread_impl( F f ): f_( f ) - { - } - - void run() - { - f_(); - } - -private: - - F f_; -}; - -template int lw_thread_create( pthread_t & pt, F f ) -{ - std::auto_ptr p( new lw_thread_impl( f ) ); - - int r = pthread_create( &pt, 0, lw_thread_routine, p.get() ); - - if( r == 0 ) - { - p.release(); - } - - return r; -} - -} // namespace detail -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/named_template_params.hpp b/lib/3rdParty/boost/boost/detail/named_template_params.hpp deleted file mode 100644 index e7cb07943..000000000 --- a/lib/3rdParty/boost/boost/detail/named_template_params.hpp +++ /dev/null @@ -1,177 +0,0 @@ -// (C) Copyright Jeremy Siek 2001. -// 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) - -// Revision History: - -// 04 Oct 2001 David Abrahams -// Changed name of "bind" to "select" to avoid problems with MSVC. - -#ifndef BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP -#define BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP - -#include -#include // for is_reference -#if defined(__BORLANDC__) -#include -#endif - -namespace boost { - namespace detail { - - struct default_argument { }; - - struct dummy_default_gen { - template - struct select { - typedef default_argument type; - }; - }; - - // This class template is a workaround for MSVC. - template struct default_generator { - typedef detail::dummy_default_gen type; - }; - - template struct is_default { - enum { value = false }; - typedef type_traits::no_type type; - }; - template <> struct is_default { - enum { value = true }; - typedef type_traits::yes_type type; - }; - - struct choose_default { - template - struct select { - typedef typename default_generator::type Gen; - typedef typename Gen::template select::type type; - }; - }; - struct choose_arg { - template - struct select { - typedef Arg type; - }; - }; - -#if defined(__BORLANDC__) - template - struct choose_arg_or_default { typedef choose_arg type; }; - template <> - struct choose_arg_or_default { - typedef choose_default type; - }; -#else - template - struct choose_arg_or_default { typedef choose_arg type; }; - template <> - struct choose_arg_or_default { - typedef choose_default type; - }; -#endif - - template - class resolve_default { -#if defined(__BORLANDC__) - typedef typename choose_arg_or_default::type>::type Selector; -#else - // This usually works for Borland, but I'm seeing weird errors in - // iterator_adaptor_test.cpp when using this method. - enum { is_def = is_default::value }; - typedef typename choose_arg_or_default::type Selector; -#endif - public: - typedef typename Selector - ::template select::type type; - }; - - // To differentiate an unnamed parameter from a traits generator - // we use is_convertible. - struct named_template_param_base { }; - - template - struct is_named_param_list { - enum { value = is_convertible::value }; - }; - - struct choose_named_params { - template struct select { typedef Prev type; }; - }; - struct choose_default_arg { - template struct select { - typedef detail::default_argument type; - }; - }; - - template struct choose_default_dispatch_; - template <> struct choose_default_dispatch_ { - typedef choose_named_params type; - }; - template <> struct choose_default_dispatch_ { - typedef choose_default_arg type; - }; - // The use of inheritance here is a Solaris Forte 6 workaround. - template struct choose_default_dispatch - : public choose_default_dispatch_ { }; - - template - struct choose_default_argument { - enum { is_named = is_named_param_list::value }; - typedef typename choose_default_dispatch::type Selector; - typedef typename Selector::template select::type type; - }; - - // This macro assumes that there is a class named default_##TYPE - // defined before the application of the macro. This class should - // have a single member class template named "select" with two - // template parameters: the type of the class being created (e.g., - // the iterator_adaptor type when creating iterator adaptors) and - // a traits class. The select class should have a single typedef - // named "type" that produces the default for TYPE. See - // boost/iterator_adaptors.hpp for an example usage. Also, - // applications of this macro must be placed in namespace - // boost::detail. - -#define BOOST_NAMED_TEMPLATE_PARAM(TYPE) \ - struct get_##TYPE##_from_named { \ - template \ - struct select { \ - typedef typename NamedParams::traits NamedTraits; \ - typedef typename NamedTraits::TYPE TYPE; \ - typedef typename resolve_default::type type; \ - }; \ - }; \ - struct pass_thru_##TYPE { \ - template struct select { \ - typedef typename resolve_default::type type; \ - };\ - }; \ - template \ - struct get_##TYPE##_dispatch { }; \ - template <> struct get_##TYPE##_dispatch<1> { \ - typedef get_##TYPE##_from_named type; \ - }; \ - template <> struct get_##TYPE##_dispatch<0> { \ - typedef pass_thru_##TYPE type; \ - }; \ - template \ - class get_##TYPE { \ - enum { is_named = is_named_param_list::value }; \ - typedef typename get_##TYPE##_dispatch::type Selector; \ - public: \ - typedef typename Selector::template select::type type; \ - }; \ - template <> struct default_generator { \ - typedef default_##TYPE type; \ - } - - - } // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_NAMED_TEMPLATE_PARAMS_HPP diff --git a/lib/3rdParty/boost/boost/detail/no_exceptions_support.hpp b/lib/3rdParty/boost/boost/detail/no_exceptions_support.hpp deleted file mode 100644 index 7d17454a7..000000000 --- a/lib/3rdParty/boost/boost/detail/no_exceptions_support.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP -#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP - -// The header file at this path is deprecated; -// use boost/core/no_exceptions_support.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/detail/numeric_traits.hpp b/lib/3rdParty/boost/boost/detail/numeric_traits.hpp deleted file mode 100644 index 2f97ebf9c..000000000 --- a/lib/3rdParty/boost/boost/detail/numeric_traits.hpp +++ /dev/null @@ -1,182 +0,0 @@ -// (C) Copyright David Abrahams 2001, Howard Hinnant 2001. -// -// 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) -// -// Template class numeric_traits -- -// -// Supplies: -// -// typedef difference_type -- a type used to represent the difference -// between any two values of Number. -// -// Support: -// 1. Not all specializations are supplied -// -// 2. Use of specializations that are not supplied will cause a -// compile-time error -// -// 3. Users are free to specialize numeric_traits for any type. -// -// 4. Right now, specializations are only supplied for integer types. -// -// 5. On implementations which do not supply compile-time constants in -// std::numeric_limits<>, only specializations for built-in integer types -// are supplied. -// -// 6. Handling of numbers whose range of representation is at least as -// great as boost::intmax_t can cause some differences to be -// unrepresentable in difference_type: -// -// Number difference_type -// ------ --------------- -// signed Number -// unsigned intmax_t -// -// template typename numeric_traits::difference_type -// numeric_distance(Number x, Number y) -// computes (y - x), attempting to avoid overflows. -// - -// See http://www.boost.org for most recent version including documentation. - -// Revision History -// 11 Feb 2001 - Use BOOST_STATIC_CONSTANT (David Abrahams) -// 11 Feb 2001 - Rolled back ineffective Borland-specific code -// (David Abrahams) -// 10 Feb 2001 - Rolled in supposed Borland fixes from John Maddock, but -// not seeing any improvement yet (David Abrahams) -// 06 Feb 2001 - Factored if_true out into boost/detail/select_type.hpp -// (David Abrahams) -// 23 Jan 2001 - Fixed logic of difference_type selection, which was -// completely wack. In the process, added digit_traits<> -// to compute the number of digits in intmax_t even when -// not supplied by numeric_limits<>. (David Abrahams) -// 21 Jan 2001 - Created (David Abrahams) - -#ifndef BOOST_NUMERIC_TRAITS_HPP_DWA20001901 -# define BOOST_NUMERIC_TRAITS_HPP_DWA20001901 - -# include -# include -# include -# include -# include -# include - -namespace boost { namespace detail { - - // Template class is_signed -- determine whether a numeric type is signed - // Requires that T is constructable from the literals -1 and 0. Compile-time - // error results if that requirement is not met (and thus signedness is not - // likely to have meaning for that type). - template - struct is_signed - { -#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) - BOOST_STATIC_CONSTANT(bool, value = (Number(-1) < Number(0))); -#else - BOOST_STATIC_CONSTANT(bool, value = std::numeric_limits::is_signed); -#endif - }; - -# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - // digit_traits - compute the number of digits in a built-in integer - // type. Needed for implementations on which numeric_limits is not specialized - // for intmax_t (e.g. VC6). - template struct digit_traits_select; - - // numeric_limits is specialized; just select that version of digits - template <> struct digit_traits_select - { - template struct traits - { - BOOST_STATIC_CONSTANT(int, digits = std::numeric_limits::digits); - }; - }; - - // numeric_limits is not specialized; compute digits from sizeof(T) - template <> struct digit_traits_select - { - template struct traits - { - BOOST_STATIC_CONSTANT(int, digits = ( - sizeof(T) * std::numeric_limits::digits - - (is_signed::value ? 1 : 0)) - ); - }; - }; - - // here's the "usable" template - template struct digit_traits - { - typedef digit_traits_select< - ::std::numeric_limits::is_specialized> selector; - typedef typename selector::template traits traits; - BOOST_STATIC_CONSTANT(int, digits = traits::digits); - }; -#endif - - // Template class integer_traits -- traits of various integer types - // This should probably be rolled into boost::integer_traits one day, but I - // need it to work without - template - struct integer_traits - { -# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - private: - typedef Integer integer_type; - typedef std::numeric_limits x; - public: - typedef typename - if_true<(int(x::is_signed) - && (!int(x::is_bounded) - // digits is the number of no-sign bits - || (int(x::digits) + 1 >= digit_traits::digits)))>::template then< - Integer, - - typename if_true<(int(x::digits) + 1 < digit_traits::digits)>::template then< - signed int, - - typename if_true<(int(x::digits) + 1 < digit_traits::digits)>::template then< - signed long, - - // else - intmax_t - >::type>::type>::type difference_type; -#else - BOOST_STATIC_ASSERT(boost::is_integral::value); - - typedef typename - if_true<(sizeof(Integer) >= sizeof(intmax_t))>::template then< - - typename if_true<(is_signed::value)>::template then< - Integer, - intmax_t - >::type, - - typename if_true<(sizeof(Integer) < sizeof(std::ptrdiff_t))>::template then< - std::ptrdiff_t, - intmax_t - >::type - >::type difference_type; -# endif - }; - - // Right now, only supports integers, but should be expanded. - template - struct numeric_traits - { - typedef typename integer_traits::difference_type difference_type; - }; - - template - typename numeric_traits::difference_type numeric_distance(Number x, Number y) - { - typedef typename numeric_traits::difference_type difference_type; - return difference_type(y) - difference_type(x); - } -}} - -#endif // BOOST_NUMERIC_TRAITS_HPP_DWA20001901 diff --git a/lib/3rdParty/boost/boost/detail/ob_compressed_pair.hpp b/lib/3rdParty/boost/boost/detail/ob_compressed_pair.hpp deleted file mode 100644 index 326e45498..000000000 --- a/lib/3rdParty/boost/boost/detail/ob_compressed_pair.hpp +++ /dev/null @@ -1,499 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/utility for most recent version including documentation. -// see libs/utility/compressed_pair.hpp -// -/* Release notes: - 20 Jan 2001: - Fixed obvious bugs (David Abrahams) - 07 Oct 2000: - Added better single argument constructor support. - 03 Oct 2000: - Added VC6 support (JM). - 23rd July 2000: - Additional comments added. (JM) - Jan 2000: - Original version: this version crippled for use with crippled compilers - - John Maddock Jan 2000. -*/ - - -#ifndef BOOST_OB_COMPRESSED_PAIR_HPP -#define BOOST_OB_COMPRESSED_PAIR_HPP - -#include -#ifndef BOOST_OBJECT_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_SAME_TRAITS_HPP -#include -#endif -#ifndef BOOST_CALL_TRAITS_HPP -#include -#endif - -namespace boost -{ -#ifdef BOOST_MSVC6_MEMBER_TEMPLATES -// -// use member templates to emulate -// partial specialisation. Note that due to -// problems with overload resolution with VC6 -// each of the compressed_pair versions that follow -// have one template single-argument constructor -// in place of two specific constructors: -// - -template -class compressed_pair; - -namespace detail{ - -template -struct best_conversion_traits -{ - typedef char one; - typedef char (&two)[2]; - static A a; - static one test(T1); - static two test(T2); - - enum { value = sizeof(test(a)) }; -}; - -template -struct init_one; - -template <> -struct init_one<1> -{ - template - static void init(const A& a, T1* p1, T2*) - { - *p1 = a; - } -}; - -template <> -struct init_one<2> -{ - template - static void init(const A& a, T1*, T2* p2) - { - *p2 = a; - } -}; - - -// T1 != T2, both non-empty -template -class compressed_pair_0 -{ -private: - T1 _first; - T2 _second; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_0() : _first(), _second() {} - compressed_pair_0(first_param_type x, second_param_type y) : _first(x), _second(y) {} - template - explicit compressed_pair_0(const A& val) - { - init_one::value>::init(val, &_first, &_second); - } - compressed_pair_0(const ::boost::compressed_pair& x) - : _first(x.first()), _second(x.second()) {} - -#if 0 - compressed_pair_0& operator=(const compressed_pair_0& x) { - cout << "assigning compressed pair 0" << endl; - _first = x._first; - _second = x._second; - cout << "finished assigning compressed pair 0" << endl; - return *this; - } -#endif - - first_reference first() { return _first; } - first_const_reference first() const { return _first; } - - second_reference second() { return _second; } - second_const_reference second() const { return _second; } - - void swap(compressed_pair_0& y) - { - using std::swap; - swap(_first, y._first); - swap(_second, y._second); - } -}; - -// T1 != T2, T2 empty -template -class compressed_pair_1 : T2 -{ -private: - T1 _first; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_1() : T2(), _first() {} - compressed_pair_1(first_param_type x, second_param_type y) : T2(y), _first(x) {} - - template - explicit compressed_pair_1(const A& val) - { - init_one::value>::init(val, &_first, static_cast(this)); - } - - compressed_pair_1(const ::boost::compressed_pair& x) - : T2(x.second()), _first(x.first()) {} - - first_reference first() { return _first; } - first_const_reference first() const { return _first; } - - second_reference second() { return *this; } - second_const_reference second() const { return *this; } - - void swap(compressed_pair_1& y) - { - // no need to swap empty base class: - using std::swap; - swap(_first, y._first); - } -}; - -// T1 != T2, T1 empty -template -class compressed_pair_2 : T1 -{ -private: - T2 _second; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_2() : T1(), _second() {} - compressed_pair_2(first_param_type x, second_param_type y) : T1(x), _second(y) {} - template - explicit compressed_pair_2(const A& val) - { - init_one::value>::init(val, static_cast(this), &_second); - } - compressed_pair_2(const ::boost::compressed_pair& x) - : T1(x.first()), _second(x.second()) {} - -#if 0 - compressed_pair_2& operator=(const compressed_pair_2& x) { - cout << "assigning compressed pair 2" << endl; - T1::operator=(x); - _second = x._second; - cout << "finished assigning compressed pair 2" << endl; - return *this; - } -#endif - first_reference first() { return *this; } - first_const_reference first() const { return *this; } - - second_reference second() { return _second; } - second_const_reference second() const { return _second; } - - void swap(compressed_pair_2& y) - { - // no need to swap empty base class: - using std::swap; - swap(_second, y._second); - } -}; - -// T1 != T2, both empty -template -class compressed_pair_3 : T1, T2 -{ -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_3() : T1(), T2() {} - compressed_pair_3(first_param_type x, second_param_type y) : T1(x), T2(y) {} - template - explicit compressed_pair_3(const A& val) - { - init_one::value>::init(val, static_cast(this), static_cast(this)); - } - compressed_pair_3(const ::boost::compressed_pair& x) - : T1(x.first()), T2(x.second()) {} - - first_reference first() { return *this; } - first_const_reference first() const { return *this; } - - second_reference second() { return *this; } - second_const_reference second() const { return *this; } - - void swap(compressed_pair_3& y) - { - // no need to swap empty base classes: - } -}; - -// T1 == T2, and empty -template -class compressed_pair_4 : T1 -{ -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_4() : T1() {} - compressed_pair_4(first_param_type x, second_param_type y) : T1(x), m_second(y) {} - // only one single argument constructor since T1 == T2 - explicit compressed_pair_4(first_param_type x) : T1(x), m_second(x) {} - compressed_pair_4(const ::boost::compressed_pair& x) - : T1(x.first()), m_second(x.second()) {} - - first_reference first() { return *this; } - first_const_reference first() const { return *this; } - - second_reference second() { return m_second; } - second_const_reference second() const { return m_second; } - - void swap(compressed_pair_4& y) - { - // no need to swap empty base classes: - } -private: - T2 m_second; -}; - -// T1 == T2, not empty -template -class compressed_pair_5 -{ -private: - T1 _first; - T2 _second; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair_5() : _first(), _second() {} - compressed_pair_5(first_param_type x, second_param_type y) : _first(x), _second(y) {} - // only one single argument constructor since T1 == T2 - explicit compressed_pair_5(first_param_type x) : _first(x), _second(x) {} - compressed_pair_5(const ::boost::compressed_pair& c) - : _first(c.first()), _second(c.second()) {} - - first_reference first() { return _first; } - first_const_reference first() const { return _first; } - - second_reference second() { return _second; } - second_const_reference second() const { return _second; } - - void swap(compressed_pair_5& y) - { - using std::swap; - swap(_first, y._first); - swap(_second, y._second); - } -}; - -template -struct compressed_pair_chooser -{ - template - struct rebind - { - typedef compressed_pair_0 type; - }; -}; - -template <> -struct compressed_pair_chooser -{ - template - struct rebind - { - typedef compressed_pair_1 type; - }; -}; - -template <> -struct compressed_pair_chooser -{ - template - struct rebind - { - typedef compressed_pair_2 type; - }; -}; - -template <> -struct compressed_pair_chooser -{ - template - struct rebind - { - typedef compressed_pair_3 type; - }; -}; - -template <> -struct compressed_pair_chooser -{ - template - struct rebind - { - typedef compressed_pair_4 type; - }; -}; - -template <> -struct compressed_pair_chooser -{ - template - struct rebind - { - typedef compressed_pair_5 type; - }; -}; - -template -struct compressed_pair_traits -{ -private: - typedef compressed_pair_chooser::value, is_empty::value, is_same::value> chooser; - typedef typename chooser::template rebind bound_type; -public: - typedef typename bound_type::type type; -}; - -} // namespace detail - -template -class compressed_pair : public detail::compressed_pair_traits::type -{ -private: - typedef typename detail::compressed_pair_traits::type base_type; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair() : base_type() {} - compressed_pair(first_param_type x, second_param_type y) : base_type(x, y) {} - template - explicit compressed_pair(const A& x) : base_type(x){} - - first_reference first() { return base_type::first(); } - first_const_reference first() const { return base_type::first(); } - - second_reference second() { return base_type::second(); } - second_const_reference second() const { return base_type::second(); } -}; - -template -inline void swap(compressed_pair& x, compressed_pair& y) -{ - x.swap(y); -} - -#else -// no partial specialisation, no member templates: - -template -class compressed_pair -{ -private: - T1 _first; - T2 _second; -public: - typedef T1 first_type; - typedef T2 second_type; - typedef typename call_traits::param_type first_param_type; - typedef typename call_traits::param_type second_param_type; - typedef typename call_traits::reference first_reference; - typedef typename call_traits::reference second_reference; - typedef typename call_traits::const_reference first_const_reference; - typedef typename call_traits::const_reference second_const_reference; - - compressed_pair() : _first(), _second() {} - compressed_pair(first_param_type x, second_param_type y) : _first(x), _second(y) {} - explicit compressed_pair(first_param_type x) : _first(x), _second() {} - // can't define this in case T1 == T2: - // explicit compressed_pair(second_param_type y) : _first(), _second(y) {} - - first_reference first() { return _first; } - first_const_reference first() const { return _first; } - - second_reference second() { return _second; } - second_const_reference second() const { return _second; } - - void swap(compressed_pair& y) - { - using std::swap; - swap(_first, y._first); - swap(_second, y._second); - } -}; - -template -inline void swap(compressed_pair& x, compressed_pair& y) -{ - x.swap(y); -} - -#endif - -} // boost - -#endif // BOOST_OB_COMPRESSED_PAIR_HPP - - - diff --git a/lib/3rdParty/boost/boost/detail/quick_allocator.hpp b/lib/3rdParty/boost/boost/detail/quick_allocator.hpp deleted file mode 100644 index d54b3a792..000000000 --- a/lib/3rdParty/boost/boost/detail/quick_allocator.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED -#define BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/quick_allocator.hpp -// -// Copyright (c) 2003 David Abrahams -// Copyright (c) 2003 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 -// - -#include - -#endif // #ifndef BOOST_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/reference_content.hpp b/lib/3rdParty/boost/boost/detail/reference_content.hpp deleted file mode 100644 index 36b80d244..000000000 --- a/lib/3rdParty/boost/boost/detail/reference_content.hpp +++ /dev/null @@ -1,120 +0,0 @@ -//----------------------------------------------------------------------------- -// boost detail/reference_content.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2003 -// Eric Friedman -// -// 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_DETAIL_REFERENCE_CONTENT_HPP -#define BOOST_DETAIL_REFERENCE_CONTENT_HPP - -#include "boost/config.hpp" - -# include "boost/mpl/bool.hpp" -# include "boost/type_traits/has_nothrow_copy.hpp" - -#include "boost/mpl/void.hpp" - -namespace boost { - -namespace detail { - -/////////////////////////////////////////////////////////////////////////////// -// (detail) class template reference_content -// -// Non-Assignable wrapper for references. -// -template -class reference_content -{ -private: // representation - - RefT content_; - -public: // structors - - ~reference_content() - { - } - - reference_content(RefT r) - : content_( r ) - { - } - - reference_content(const reference_content& operand) - : content_( operand.content_ ) - { - } - -private: // non-Assignable - - reference_content& operator=(const reference_content&); - -public: // queries - - RefT get() const - { - return content_; - } - -}; - -/////////////////////////////////////////////////////////////////////////////// -// (detail) metafunction make_reference_content -// -// Wraps with reference_content if specified type is reference. -// - -template struct make_reference_content; - - -template -struct make_reference_content -{ - typedef T type; -}; - -template -struct make_reference_content< T& > -{ - typedef reference_content type; -}; - - -template <> -struct make_reference_content< mpl::void_ > -{ - template - struct apply - : make_reference_content - { - }; - - typedef mpl::void_ type; -}; - -} // namespace detail - -/////////////////////////////////////////////////////////////////////////////// -// reference_content type traits specializations -// - - -template -struct has_nothrow_copy< - ::boost::detail::reference_content< T& > - > - : mpl::true_ -{ -}; - - -} // namespace boost - -#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP diff --git a/lib/3rdParty/boost/boost/detail/scoped_enum_emulation.hpp b/lib/3rdParty/boost/boost/detail/scoped_enum_emulation.hpp deleted file mode 100644 index 1c7bc23c1..000000000 --- a/lib/3rdParty/boost/boost/detail/scoped_enum_emulation.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Andrey Semashev - * - * 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_DETAIL_SCOPED_ENUM_EMULATION_HPP -#define BOOST_DETAIL_SCOPED_ENUM_EMULATION_HPP - -// The header file at this path is deprecated; -// use boost/core/scoped_enum.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/detail/select_type.hpp b/lib/3rdParty/boost/boost/detail/select_type.hpp deleted file mode 100644 index c13946f33..000000000 --- a/lib/3rdParty/boost/boost/detail/select_type.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// (C) Copyright David Abrahams 2001. -// 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 including documentation. - -// Revision History -// 09 Feb 01 Applied John Maddock's Borland patch Moving -// specialization to unspecialized template (David Abrahams) -// 06 Feb 01 Created (David Abrahams) - -#ifndef SELECT_TYPE_DWA20010206_HPP -# define SELECT_TYPE_DWA20010206_HPP - -namespace boost { namespace detail { - - // Template class if_true -- select among 2 types based on a bool constant expression - // Usage: - // typename if_true<(bool_const_expression)>::template then::type - - // HP aCC cannot deal with missing names for template value parameters - template struct if_true - { - template - struct then { typedef T type; }; - }; - - template <> - struct if_true - { - template - struct then { typedef F type; }; - }; -}} -#endif // SELECT_TYPE_DWA20010206_HPP diff --git a/lib/3rdParty/boost/boost/detail/sp_typeinfo.hpp b/lib/3rdParty/boost/boost/detail/sp_typeinfo.hpp deleted file mode 100644 index 4e4de55b0..000000000 --- a/lib/3rdParty/boost/boost/detail/sp_typeinfo.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED -#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_typeinfo.hpp -// -// Deprecated, please use boost/core/typeinfo.hpp -// -// Copyright 2007 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) - -#include - -namespace boost -{ - -namespace detail -{ - -typedef boost::core::typeinfo sp_typeinfo; - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) BOOST_CORE_TYPEID(T) - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/detail/templated_streams.hpp b/lib/3rdParty/boost/boost/detail/templated_streams.hpp deleted file mode 100644 index 1fa6ee353..000000000 --- a/lib/3rdParty/boost/boost/detail/templated_streams.hpp +++ /dev/null @@ -1,74 +0,0 @@ -//----------------------------------------------------------------------------- -// boost detail/templated_streams.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2003 -// Eric Friedman -// -// 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_DETAIL_TEMPLATED_STREAMS_HPP -#define BOOST_DETAIL_TEMPLATED_STREAMS_HPP - -#include "boost/config.hpp" - -/////////////////////////////////////////////////////////////////////////////// -// (detail) BOOST_TEMPLATED_STREAM_* macros -// -// Provides workaround platforms without stream class templates. -// - -#if !defined(BOOST_NO_STD_LOCALE) - -#define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) \ - template < typename E , typename T > - -#define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) \ - template < typename E , typename T , typename A > - -#define BOOST_TEMPLATED_STREAM_ARGS(E,T) \ - typename E , typename T - -#define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) \ - typename E , typename T , typename A - -#define BOOST_TEMPLATED_STREAM_COMMA , - -#define BOOST_TEMPLATED_STREAM_ELEM(E) E -#define BOOST_TEMPLATED_STREAM_TRAITS(T) T -#define BOOST_TEMPLATED_STREAM_ALLOC(A) A - -#define BOOST_TEMPLATED_STREAM(X,E,T) \ - BOOST_JOIN(std::basic_,X)< E , T > - -#define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \ - BOOST_JOIN(std::basic_,X)< E , T , A > - -#else // defined(BOOST_NO_STD_LOCALE) - -#define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) /**/ - -#define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) /**/ - -#define BOOST_TEMPLATED_STREAM_ARGS(E,T) /**/ - -#define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) /**/ - -#define BOOST_TEMPLATED_STREAM_COMMA /**/ - -#define BOOST_TEMPLATED_STREAM_ELEM(E) char -#define BOOST_TEMPLATED_STREAM_TRAITS(T) std::char_traits -#define BOOST_TEMPLATED_STREAM_ALLOC(A) std::allocator - -#define BOOST_TEMPLATED_STREAM(X,E,T) \ - std::X - -#define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \ - std::X - -#endif // BOOST_NO_STD_LOCALE - -#endif // BOOST_DETAIL_TEMPLATED_STREAMS_HPP diff --git a/lib/3rdParty/boost/boost/detail/utf8_codecvt_facet.hpp b/lib/3rdParty/boost/boost/detail/utf8_codecvt_facet.hpp deleted file mode 100644 index d2fa26d47..000000000 --- a/lib/3rdParty/boost/boost/detail/utf8_codecvt_facet.hpp +++ /dev/null @@ -1,216 +0,0 @@ -// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) -// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_UTF8_CODECVT_FACET_HPP -#define BOOST_UTF8_CODECVT_FACET_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// utf8_codecvt_facet.hpp - -// This header defines class utf8_codecvt_facet, derived from -// std::codecvt, which can be used to convert utf8 data in -// files into wchar_t strings in the application. -// -// The header is NOT STANDALONE, and is not to be included by the USER. -// There are at least two libraries which want to use this functionality, and -// we want to avoid code duplication. It would be possible to create utf8 -// library, but: -// - this requires review process first -// - in the case, when linking the a library which uses utf8 -// (say 'program_options'), user should also link to the utf8 library. -// This seems inconvenient, and asking a user to link to an unrevieved -// library is strange. -// Until the above points are fixed, a library which wants to use utf8 must: -// - include this header in one of it's headers or sources -// - include the corresponding boost/detail/utf8_codecvt_facet.ipp file in one -// of its sources -// - before including either file, the library must define -// - BOOST_UTF8_BEGIN_NAMESPACE to the namespace declaration that must be used -// - BOOST_UTF8_END_NAMESPACE to the code to close the previous namespace -// declaration. -// - BOOST_UTF8_DECL -- to the code which must be used for all 'exportable' -// symbols. -// -// For example, program_options library might contain: -// #define BOOST_UTF8_BEGIN_NAMESPACE -// namespace boost { namespace program_options { -// #define BOOST_UTF8_END_NAMESPACE }} -// #define BOOST_UTF8_DECL BOOST_PROGRAM_OPTIONS_DECL -// #include -// -// Essentially, each library will have its own copy of utf8 code, in -// different namespaces. - -// Note:(Robert Ramey). I have made the following alterations in the original -// code. -// a) Rendered utf8_codecvt with using templates -// b) Move longer functions outside class definition to prevent inlining -// and make code smaller -// c) added on a derived class to permit translation to/from current -// locale to utf8 - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as text - note these ar templated on the basic -// stream templates to accommodate wide (and other?) kind of characters -// -// note the fact that on libraries without wide characters, ostream is -// is not a specialization of basic_ostream which in fact is not defined -// in such cases. So we can't use basic_ostream but rather -// use two template parameters -// -// utf8_codecvt_facet -// This is an implementation of a std::codecvt facet for translating -// from UTF-8 externally to UCS-4. Note that this is not tied to -// any specific types in order to allow customization on platforms -// where wchar_t is not big enough. -// -// NOTES: The current implementation jumps through some unpleasant hoops in -// order to deal with signed character types. As a std::codecvt_base::result, -// it is necessary for the ExternType to be convertible to unsigned char. -// I chose not to tie the extern_type explicitly to char. But if any combination -// of types other than is used, then std::codecvt must be -// specialized on those types for this to work. - -#include -#include // for mbstate_t -#include // for std::size_t - -#include -#include - -#if defined(BOOST_NO_STDC_NAMESPACE) -namespace std { - using ::mbstate_t; - using ::size_t; -} -#endif - -// maximum lenght of a multibyte string -#define MB_LENGTH_MAX 8 - -BOOST_UTF8_BEGIN_NAMESPACE - -//----------------------------------------------------------------------------// -// // -// utf8_codecvt_facet // -// // -// See utf8_codecvt_facet.ipp for the implementation. // -//----------------------------------------------------------------------------// - -#ifndef BOOST_UTF8_DECL -#define BOOST_UTF8_DECL -#endif - -struct BOOST_SYMBOL_VISIBLE utf8_codecvt_facet : - public std::codecvt -{ -public: - BOOST_UTF8_DECL explicit utf8_codecvt_facet(std::size_t no_locale_manage=0); - virtual ~utf8_codecvt_facet(){} -protected: - BOOST_UTF8_DECL virtual std::codecvt_base::result do_in( - std::mbstate_t& state, - const char * from, - const char * from_end, - const char * & from_next, - wchar_t * to, - wchar_t * to_end, - wchar_t*& to_next - ) const; - - BOOST_UTF8_DECL virtual std::codecvt_base::result do_out( - std::mbstate_t & state, - const wchar_t * from, - const wchar_t * from_end, - const wchar_t* & from_next, - char * to, - char * to_end, - char * & to_next - ) const; - - bool invalid_continuing_octet(unsigned char octet_1) const { - return (octet_1 < 0x80|| 0xbf< octet_1); - } - - bool invalid_leading_octet(unsigned char octet_1) const { - return (0x7f < octet_1 && octet_1 < 0xc0) || - (octet_1 > 0xfd); - } - - // continuing octets = octets except for the leading octet - static unsigned int get_cont_octet_count(unsigned char lead_octet) { - return get_octet_count(lead_octet) - 1; - } - - BOOST_UTF8_DECL static unsigned int get_octet_count(unsigned char lead_octet); - - // How many "continuing octets" will be needed for this word - // == total octets - 1. - BOOST_UTF8_DECL int get_cont_octet_out_count(wchar_t word) const ; - - virtual bool do_always_noconv() const BOOST_NOEXCEPT_OR_NOTHROW { - return false; - } - - // UTF-8 isn't really stateful since we rewind on partial conversions - virtual std::codecvt_base::result do_unshift( - std::mbstate_t&, - char * from, - char * /*to*/, - char * & next - ) const { - next = from; - return ok; - } - - virtual int do_encoding() const BOOST_NOEXCEPT_OR_NOTHROW { - const int variable_byte_external_encoding=0; - return variable_byte_external_encoding; - } - - // How many char objects can I process to get <= max_limit - // wchar_t objects? - BOOST_UTF8_DECL virtual int do_length( - const std::mbstate_t &, - const char * from, - const char * from_end, - std::size_t max_limit - ) const -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) - throw() -#endif - ; - virtual int do_length( - std::mbstate_t & s, - const char * from, - const char * from_end, - std::size_t max_limit - ) const -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) - throw() -#endif - { - return do_length( - const_cast(s), - from, - from_end, - max_limit - ); - } - // Largest possible value do_length(state,from,from_end,1) could return. - virtual int do_max_length() const BOOST_NOEXCEPT_OR_NOTHROW { - return 6; // largest UTF-8 encoding of a UCS-4 character - } -}; - -BOOST_UTF8_END_NAMESPACE - -#endif // BOOST_UTF8_CODECVT_FACET_HPP diff --git a/lib/3rdParty/boost/boost/detail/utf8_codecvt_facet.ipp b/lib/3rdParty/boost/boost/detail/utf8_codecvt_facet.ipp deleted file mode 100644 index 753466b86..000000000 --- a/lib/3rdParty/boost/boost/detail/utf8_codecvt_facet.ipp +++ /dev/null @@ -1,289 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// utf8_codecvt_facet.ipp - -// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) -// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). -// 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) - -// Please see the comments in to -// learn how this file should be used. - -#include - -#include // for multi-byte converson routines -#include - -#include -#include - -// If we don't have wstring, then Unicode support -// is not available anyway, so we don't need to even -// compiler this file. This also fixes the problem -// with mingw, which can compile this file, but will -// generate link error when building DLL. -#ifndef BOOST_NO_STD_WSTRING - -BOOST_UTF8_BEGIN_NAMESPACE - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// implementation for wchar_t - -BOOST_UTF8_DECL utf8_codecvt_facet::utf8_codecvt_facet( - std::size_t no_locale_manage -) : - std::codecvt(no_locale_manage) -{} - -// Translate incoming UTF-8 into UCS-4 -BOOST_UTF8_DECL std::codecvt_base::result utf8_codecvt_facet::do_in( - std::mbstate_t& /*state*/, - const char * from, - const char * from_end, - const char * & from_next, - wchar_t * to, - wchar_t * to_end, - wchar_t * & to_next -) const { - // Basic algorithm: The first octet determines how many - // octets total make up the UCS-4 character. The remaining - // "continuing octets" all begin with "10". To convert, subtract - // the amount that specifies the number of octets from the first - // octet. Subtract 0x80 (1000 0000) from each continuing octet, - // then mash the whole lot together. Note that each continuing - // octet only uses 6 bits as unique values, so only shift by - // multiples of 6 to combine. - while (from != from_end && to != to_end) { - - // Error checking on the first octet - if (invalid_leading_octet(*from)){ - from_next = from; - to_next = to; - return std::codecvt_base::error; - } - - // The first octet is adjusted by a value dependent upon - // the number of "continuing octets" encoding the character - const int cont_octet_count = get_cont_octet_count(*from); - const wchar_t octet1_modifier_table[] = { - 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc - }; - - // The unsigned char conversion is necessary in case char is - // signed (I learned this the hard way) - wchar_t ucs_result = - (unsigned char)(*from++) - octet1_modifier_table[cont_octet_count]; - - // Invariants : - // 1) At the start of the loop, 'i' continuing characters have been - // processed - // 2) *from points to the next continuing character to be processed. - int i = 0; - while(i != cont_octet_count && from != from_end) { - - // Error checking on continuing characters - if (invalid_continuing_octet(*from)) { - from_next = from; - to_next = to; - return std::codecvt_base::error; - } - - ucs_result *= (1 << 6); - - // each continuing character has an extra (10xxxxxx)b attached to - // it that must be removed. - ucs_result += (unsigned char)(*from++) - 0x80; - ++i; - } - - // If the buffer ends with an incomplete unicode character... - if (from == from_end && i != cont_octet_count) { - // rewind "from" to before the current character translation - from_next = from - (i+1); - to_next = to; - return std::codecvt_base::partial; - } - *to++ = ucs_result; - } - from_next = from; - to_next = to; - - // Were we done converting or did we run out of destination space? - if(from == from_end) return std::codecvt_base::ok; - else return std::codecvt_base::partial; -} - -BOOST_UTF8_DECL std::codecvt_base::result utf8_codecvt_facet::do_out( - std::mbstate_t& /*state*/, - const wchar_t * from, - const wchar_t * from_end, - const wchar_t * & from_next, - char * to, - char * to_end, - char * & to_next -) const -{ - // RG - consider merging this table with the other one - const wchar_t octet1_modifier_table[] = { - 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc - }; - - wchar_t max_wchar = (std::numeric_limits::max)(); - while (from != from_end && to != to_end) { - - // Check for invalid UCS-4 character - if (*from > max_wchar) { - from_next = from; - to_next = to; - return std::codecvt_base::error; - } - - int cont_octet_count = get_cont_octet_out_count(*from); - - // RG - comment this formula better - int shift_exponent = (cont_octet_count) * 6; - - // Process the first character - *to++ = static_cast(octet1_modifier_table[cont_octet_count] + - (unsigned char)(*from / (1 << shift_exponent))); - - // Process the continuation characters - // Invariants: At the start of the loop: - // 1) 'i' continuing octets have been generated - // 2) '*to' points to the next location to place an octet - // 3) shift_exponent is 6 more than needed for the next octet - int i = 0; - while (i != cont_octet_count && to != to_end) { - shift_exponent -= 6; - *to++ = static_cast(0x80 + ((*from / (1 << shift_exponent)) % (1 << 6))); - ++i; - } - // If we filled up the out buffer before encoding the character - if(to == to_end && i != cont_octet_count) { - from_next = from; - to_next = to - (i+1); - return std::codecvt_base::partial; - } - ++from; - } - from_next = from; - to_next = to; - // Were we done or did we run out of destination space - if(from == from_end) return std::codecvt_base::ok; - else return std::codecvt_base::partial; -} - -// How many char objects can I process to get <= max_limit -// wchar_t objects? -BOOST_UTF8_DECL int utf8_codecvt_facet::do_length( - const std::mbstate_t &, - const char * from, - const char * from_end, - std::size_t max_limit -) const -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) - throw() -#endif -{ - // RG - this code is confusing! I need a better way to express it. - // and test cases. - - // Invariants: - // 1) last_octet_count has the size of the last measured character - // 2) char_count holds the number of characters shown to fit - // within the bounds so far (no greater than max_limit) - // 3) from_next points to the octet 'last_octet_count' before the - // last measured character. - int last_octet_count=0; - std::size_t char_count = 0; - const char* from_next = from; - // Use "<" because the buffer may represent incomplete characters - while (from_next+last_octet_count <= from_end && char_count <= max_limit) { - from_next += last_octet_count; - last_octet_count = (get_octet_count(*from_next)); - ++char_count; - } - return static_cast(from_next-from); -} - -BOOST_UTF8_DECL unsigned int utf8_codecvt_facet::get_octet_count( - unsigned char lead_octet -){ - // if the 0-bit (MSB) is 0, then 1 character - if (lead_octet <= 0x7f) return 1; - - // Otherwise the count number of consecutive 1 bits starting at MSB -// assert(0xc0 <= lead_octet && lead_octet <= 0xfd); - - if (0xc0 <= lead_octet && lead_octet <= 0xdf) return 2; - else if (0xe0 <= lead_octet && lead_octet <= 0xef) return 3; - else if (0xf0 <= lead_octet && lead_octet <= 0xf7) return 4; - else if (0xf8 <= lead_octet && lead_octet <= 0xfb) return 5; - else return 6; -} - -namespace detail { - -template -int get_cont_octet_out_count_impl(wchar_t word){ - if (word < 0x80) { - return 0; - } - if (word < 0x800) { - return 1; - } - return 2; -} - -template<> -int get_cont_octet_out_count_impl<4>(wchar_t word){ - if (word < 0x80) { - return 0; - } - if (word < 0x800) { - return 1; - } - - // Note that the following code will generate warnings on some platforms - // where wchar_t is defined as UCS2. The warnings are superfluous as the - // specialization is never instantitiated with such compilers, but this - // can cause problems if warnings are being treated as errors, so we guard - // against that. Including as we do - // should be enough to get WCHAR_MAX defined. -#if !defined(WCHAR_MAX) -# error WCHAR_MAX not defined! -#endif - // cope with VC++ 7.1 or earlier having invalid WCHAR_MAX -#if defined(_MSC_VER) && _MSC_VER <= 1310 // 7.1 or earlier - return 2; -#elif WCHAR_MAX > 0x10000 - - if (word < 0x10000) { - return 2; - } - if (word < 0x200000) { - return 3; - } - if (word < 0x4000000) { - return 4; - } - return 5; - -#else - return 2; -#endif -} - -} // namespace detail - -// How many "continuing octets" will be needed for this word -// == total octets - 1. -BOOST_UTF8_DECL int utf8_codecvt_facet::get_cont_octet_out_count( - wchar_t word -) const { - return detail::get_cont_octet_out_count_impl(word); -} -BOOST_UTF8_END_NAMESPACE - -#endif diff --git a/lib/3rdParty/boost/boost/detail/winapi/GetCurrentProcess.hpp b/lib/3rdParty/boost/boost/detail/winapi/GetCurrentProcess.hpp deleted file mode 100644 index 9f5647814..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/GetCurrentProcess.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// GetCurrentProcess.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GETCURRENTPROCESS_HPP -#define BOOST_DETAIL_WINAPI_GETCURRENTPROCESS_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(__GNUC__) && (((__GNUC__*100)+__GNUC_MINOR__) > 403) -#pragma message "This header is deprecated, use boost/detail/winapi/get_current_process.hpp instead." -#elif defined(_MSC_VER) -#pragma message("This header is deprecated, use boost/detail/winapi/get_current_process.hpp instead.") -#endif - -#endif // BOOST_DETAIL_WINAPI_GETCURRENTPROCESS_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/GetCurrentThread.hpp b/lib/3rdParty/boost/boost/detail/winapi/GetCurrentThread.hpp deleted file mode 100644 index 52dea5a67..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/GetCurrentThread.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// GetCurrentThread.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GETCURRENTTHREAD_HPP -#define BOOST_DETAIL_WINAPI_GETCURRENTTHREAD_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(__GNUC__) && (((__GNUC__*100)+__GNUC_MINOR__) > 403) -#pragma message "This header is deprecated, use boost/detail/winapi/get_current_thread.hpp instead." -#elif defined(_MSC_VER) -#pragma message("This header is deprecated, use boost/detail/winapi/get_current_thread.hpp instead.") -#endif - -#endif // BOOST_DETAIL_WINAPI_GETCURRENTTHREAD_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/GetLastError.hpp b/lib/3rdParty/boost/boost/detail/winapi/GetLastError.hpp deleted file mode 100644 index 8860f80f3..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/GetLastError.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// GetLastError.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GETLASTERROR_HPP -#define BOOST_DETAIL_WINAPI_GETLASTERROR_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(__GNUC__) && (((__GNUC__*100)+__GNUC_MINOR__) > 403) -#pragma message "This header is deprecated, use boost/detail/winapi/get_last_error.hpp instead." -#elif defined(_MSC_VER) -#pragma message("This header is deprecated, use boost/detail/winapi/get_last_error.hpp instead.") -#endif - -#endif // BOOST_DETAIL_WINAPI_GETLASTERROR_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/GetProcessTimes.hpp b/lib/3rdParty/boost/boost/detail/winapi/GetProcessTimes.hpp deleted file mode 100644 index 8f625e6d4..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/GetProcessTimes.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// GetProcessTimes.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GETPROCESSTIMES_HPP -#define BOOST_DETAIL_WINAPI_GETPROCESSTIMES_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(__GNUC__) && (((__GNUC__*100)+__GNUC_MINOR__) > 403) -#pragma message "This header is deprecated, use boost/detail/winapi/get_process_times.hpp instead." -#elif defined(_MSC_VER) -#pragma message("This header is deprecated, use boost/detail/winapi/get_process_times.hpp instead.") -#endif - -#endif // BOOST_DETAIL_WINAPI_GETPROCESSTIMES_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/GetThreadTimes.hpp b/lib/3rdParty/boost/boost/detail/winapi/GetThreadTimes.hpp deleted file mode 100644 index 62c853c32..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/GetThreadTimes.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// GetThreadTimes.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GETTHREADTIMES_HPP -#define BOOST_DETAIL_WINAPI_GETTHREADTIMES_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(__GNUC__) && (((__GNUC__*100)+__GNUC_MINOR__) > 403) -#pragma message "This header is deprecated, use boost/detail/winapi/get_thread_times.hpp instead." -#elif defined(_MSC_VER) -#pragma message("This header is deprecated, use boost/detail/winapi/get_thread_times.hpp instead.") -#endif - -#endif // BOOST_DETAIL_WINAPI_GETTHREADTIMES_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/access_rights.hpp b/lib/3rdParty/boost/boost/detail/winapi/access_rights.hpp deleted file mode 100644 index 951edb1db..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/access_rights.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// access_rights.hpp --------------------------------------------------------------// - -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_ACCESS_RIGHTS_HPP -#define BOOST_DETAIL_WINAPI_ACCESS_RIGHTS_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ DELETE_ = DELETE; -const DWORD_ READ_CONTROL_ = READ_CONTROL; -const DWORD_ WRITE_DAC_ = WRITE_DAC; -const DWORD_ WRITE_OWNER_ = WRITE_OWNER; -const DWORD_ SYNCHRONIZE_ = SYNCHRONIZE; - -const DWORD_ STANDARD_RIGHTS_ALL_ = STANDARD_RIGHTS_ALL; -const DWORD_ STANDARD_RIGHTS_EXECUTE_ = STANDARD_RIGHTS_EXECUTE; -const DWORD_ STANDARD_RIGHTS_READ_ = STANDARD_RIGHTS_READ; -const DWORD_ STANDARD_RIGHTS_REQUIRED_ = STANDARD_RIGHTS_REQUIRED; -const DWORD_ STANDARD_RIGHTS_WRITE_ = STANDARD_RIGHTS_WRITE; - -const DWORD_ SPECIFIC_RIGHTS_ALL_ = SPECIFIC_RIGHTS_ALL; - -const DWORD_ ACCESS_SYSTEM_SECURITY_ = ACCESS_SYSTEM_SECURITY; - -const DWORD_ MAXIMUM_ALLOWED_ = MAXIMUM_ALLOWED; - -const DWORD_ GENERIC_ALL_ = GENERIC_ALL; -const DWORD_ GENERIC_EXECUTE_ = GENERIC_EXECUTE; -const DWORD_ GENERIC_WRITE_ = GENERIC_WRITE; -const DWORD_ GENERIC_READ_ = GENERIC_READ; - -typedef ::ACCESS_MASK ACCESS_MASK_; -typedef ::PACCESS_MASK PACCESS_MASK_; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ DELETE_ = 0x00010000; -const DWORD_ READ_CONTROL_ = 0x00020000; -const DWORD_ WRITE_DAC_ = 0x00040000; -const DWORD_ WRITE_OWNER_ = 0x00080000; -const DWORD_ SYNCHRONIZE_ = 0x00100000; - -const DWORD_ STANDARD_RIGHTS_ALL_ = 0x001F0000; -const DWORD_ STANDARD_RIGHTS_EXECUTE_ = READ_CONTROL_; -const DWORD_ STANDARD_RIGHTS_READ_ = READ_CONTROL_; -const DWORD_ STANDARD_RIGHTS_REQUIRED_ = 0x000F0000; -const DWORD_ STANDARD_RIGHTS_WRITE_ = READ_CONTROL_; - -const DWORD_ SPECIFIC_RIGHTS_ALL_ = 0x0000FFFF; - -const DWORD_ ACCESS_SYSTEM_SECURITY_ = 0x01000000; - -const DWORD_ MAXIMUM_ALLOWED_ = 0x02000000; - -const DWORD_ GENERIC_ALL_ = 0x10000000; -const DWORD_ GENERIC_EXECUTE_ = 0x20000000; -const DWORD_ GENERIC_WRITE_ = 0x40000000; -const DWORD_ GENERIC_READ_ = 0x80000000; - -typedef DWORD_ ACCESS_MASK_; -typedef ACCESS_MASK_* PACCESS_MASK_; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_ACCESS_RIGHTS_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/apc.hpp b/lib/3rdParty/boost/boost/detail/winapi/apc.hpp deleted file mode 100644 index 6913045be..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/apc.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// apc.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_APC_HPP -#define BOOST_DETAIL_WINAPI_APC_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 - -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -typedef boost::detail::winapi::VOID_ -(NTAPI *PAPCFUNC)(boost::detail::winapi::ULONG_PTR_ Parameter); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -QueueUserAPC( - PAPCFUNC pfnAPC, - boost::detail::winapi::HANDLE_ hThread, - boost::detail::winapi::ULONG_PTR_ dwData); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -typedef ::PAPCFUNC PAPCFUNC_; -using ::QueueUserAPC; -} -} -} - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 - -#endif // BOOST_DETAIL_WINAPI_APC_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/basic_types.hpp b/lib/3rdParty/boost/boost/detail/winapi/basic_types.hpp deleted file mode 100644 index 30df13564..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/basic_types.hpp +++ /dev/null @@ -1,233 +0,0 @@ -// basic_types.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP -#define BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined( BOOST_USE_WINDOWS_H ) -# include -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__) -# include -# ifdef UNDER_CE -# ifndef WINAPI -# ifndef _WIN32_WCE_EMULATION -# define WINAPI __cdecl // Note this doesn't match the desktop definition -# else -# define WINAPI __stdcall -# endif -# endif -// Windows CE defines a few functions as inline functions in kfuncs.h -typedef int BOOL; -typedef unsigned long DWORD; -typedef void* HANDLE; -# include -# else -# ifndef WINAPI -# define WINAPI __stdcall -# endif -# endif -# ifndef NTAPI -# define NTAPI __stdcall -# endif -#else -# error "Win32 functions not available" -#endif - -#ifndef NO_STRICT -#ifndef STRICT -#define STRICT 1 -#endif -#endif - -#if defined(STRICT) -#define BOOST_DETAIL_WINAPI_DECLARE_HANDLE(x) struct x##__; typedef struct x##__ *x -#else -#define BOOST_DETAIL_WINAPI_DECLARE_HANDLE(x) typedef void* x -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -union _LARGE_INTEGER; -struct _SECURITY_ATTRIBUTES; -BOOST_DETAIL_WINAPI_DECLARE_HANDLE(HINSTANCE); -typedef HINSTANCE HMODULE; -} -#endif - -#if defined(__GNUC__) -#define BOOST_DETAIL_WINAPI_MAY_ALIAS __attribute__ ((__may_alias__)) -#else -#define BOOST_DETAIL_WINAPI_MAY_ALIAS -#endif - -// MinGW64 gcc 4.8.2 fails to compile function declarations with boost::detail::winapi::VOID_ arguments even though -// the typedef expands to void. In Windows SDK, VOID is a macro which unfolds to void. We use our own macro in such cases. -#define BOOST_DETAIL_WINAPI_VOID void - -namespace boost { -namespace detail { -namespace winapi { -#if defined( BOOST_USE_WINDOWS_H ) - -typedef ::BOOL BOOL_; -typedef ::PBOOL PBOOL_; -typedef ::LPBOOL LPBOOL_; -typedef ::BOOLEAN BOOLEAN_; -typedef ::PBOOLEAN PBOOLEAN_; -typedef ::BYTE BYTE_; -typedef ::PBYTE PBYTE_; -typedef ::LPBYTE LPBYTE_; -typedef ::WORD WORD_; -typedef ::PWORD PWORD_; -typedef ::LPWORD LPWORD_; -typedef ::DWORD DWORD_; -typedef ::PDWORD PDWORD_; -typedef ::LPDWORD LPDWORD_; -typedef ::HANDLE HANDLE_; -typedef ::PHANDLE PHANDLE_; -typedef ::SHORT SHORT_; -typedef ::PSHORT PSHORT_; -typedef ::USHORT USHORT_; -typedef ::PUSHORT PUSHORT_; -typedef ::INT INT_; -typedef ::PINT PINT_; -typedef ::LPINT LPINT_; -typedef ::UINT UINT_; -typedef ::PUINT PUINT_; -typedef ::LONG LONG_; -typedef ::PLONG PLONG_; -typedef ::LPLONG LPLONG_; -typedef ::ULONG ULONG_; -typedef ::PULONG PULONG_; -typedef ::LONGLONG LONGLONG_; -typedef ::ULONGLONG ULONGLONG_; -typedef ::INT_PTR INT_PTR_; -typedef ::UINT_PTR UINT_PTR_; -typedef ::LONG_PTR LONG_PTR_; -typedef ::ULONG_PTR ULONG_PTR_; -typedef ::DWORD_PTR DWORD_PTR_; -typedef ::PDWORD_PTR PDWORD_PTR_; -typedef ::SIZE_T SIZE_T_; -typedef ::PSIZE_T PSIZE_T_; -typedef ::SSIZE_T SSIZE_T_; -typedef ::PSSIZE_T PSSIZE_T_; -typedef VOID VOID_; // VOID is a macro -typedef ::PVOID PVOID_; -typedef ::LPVOID LPVOID_; -typedef ::LPCVOID LPCVOID_; -typedef ::CHAR CHAR_; -typedef ::LPSTR LPSTR_; -typedef ::LPCSTR LPCSTR_; -typedef ::WCHAR WCHAR_; -typedef ::LPWSTR LPWSTR_; -typedef ::LPCWSTR LPCWSTR_; - -#else // defined( BOOST_USE_WINDOWS_H ) - -typedef int BOOL_; -typedef BOOL_* PBOOL_; -typedef BOOL_* LPBOOL_; -typedef unsigned char BYTE_; -typedef BYTE_* PBYTE_; -typedef BYTE_* LPBYTE_; -typedef BYTE_ BOOLEAN_; -typedef BOOLEAN_* PBOOLEAN_; -typedef unsigned short WORD_; -typedef WORD_* PWORD_; -typedef WORD_* LPWORD_; -typedef unsigned long DWORD_; -typedef DWORD_* PDWORD_; -typedef DWORD_* LPDWORD_; -typedef void* HANDLE_; -typedef void** PHANDLE_; - -typedef short SHORT_; -typedef SHORT_* PSHORT_; -typedef unsigned short USHORT_; -typedef USHORT_* PUSHORT_; -typedef int INT_; -typedef INT_* PINT_; -typedef INT_* LPINT_; -typedef unsigned int UINT_; -typedef UINT_* PUINT_; -typedef long LONG_; -typedef LONG_* PLONG_; -typedef LONG_* LPLONG_; -typedef unsigned long ULONG_; -typedef ULONG_* PULONG_; - -typedef boost::int64_t LONGLONG_; -typedef boost::uint64_t ULONGLONG_; - -# ifdef _WIN64 -# if defined(__CYGWIN__) -typedef long INT_PTR_; -typedef unsigned long UINT_PTR_; -typedef long LONG_PTR_; -typedef unsigned long ULONG_PTR_; -# else -typedef __int64 INT_PTR_; -typedef unsigned __int64 UINT_PTR_; -typedef __int64 LONG_PTR_; -typedef unsigned __int64 ULONG_PTR_; -# endif -# else -typedef int INT_PTR_; -typedef unsigned int UINT_PTR_; -typedef long LONG_PTR_; -typedef unsigned long ULONG_PTR_; -# endif - -typedef ULONG_PTR_ DWORD_PTR_, *PDWORD_PTR_; -typedef ULONG_PTR_ SIZE_T_, *PSIZE_T_; -typedef LONG_PTR_ SSIZE_T_, *PSSIZE_T_; - -typedef void VOID_; -typedef void *PVOID_; -typedef void *LPVOID_; -typedef const void *LPCVOID_; - -typedef char CHAR_; -typedef CHAR_ *LPSTR_; -typedef const CHAR_ *LPCSTR_; - -typedef wchar_t WCHAR_; -typedef WCHAR_ *LPWSTR_; -typedef const WCHAR_ *LPCWSTR_; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -typedef ::HMODULE HMODULE_; - -typedef union BOOST_DETAIL_WINAPI_MAY_ALIAS _LARGE_INTEGER { - struct { - DWORD_ LowPart; - LONG_ HighPart; - } u; - LONGLONG_ QuadPart; -} LARGE_INTEGER_, *PLARGE_INTEGER_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SECURITY_ATTRIBUTES { - DWORD_ nLength; - LPVOID_ lpSecurityDescriptor; - BOOL_ bInheritHandle; -} SECURITY_ATTRIBUTES_, *PSECURITY_ATTRIBUTES_, *LPSECURITY_ATTRIBUTES_; - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_BASIC_TYPES_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/character_code_conversion.hpp b/lib/3rdParty/boost/boost/detail/winapi/character_code_conversion.hpp deleted file mode 100644 index d7c4cbeda..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/character_code_conversion.hpp +++ /dev/null @@ -1,108 +0,0 @@ -// character_code_conversion.hpp --------------------------------------------------------------// - -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_CHARACTER_CODE_CONVERSION_HPP -#define BOOST_DETAIL_WINAPI_CHARACTER_CODE_CONVERSION_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -BOOST_SYMBOL_IMPORT int WINAPI -MultiByteToWideChar( - boost::detail::winapi::UINT_ CodePage, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPCSTR_ lpMultiByteStr, - int cbMultiByte, - boost::detail::winapi::LPWSTR_ lpWideCharStr, - int cchWideChar); - -BOOST_SYMBOL_IMPORT int WINAPI -WideCharToMultiByte( - boost::detail::winapi::UINT_ CodePage, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPCWSTR_ lpWideCharStr, - int cchWideChar, - boost::detail::winapi::LPSTR_ lpMultiByteStr, - int cbMultiByte, - boost::detail::winapi::LPCSTR_ lpDefaultChar, - boost::detail::winapi::LPBOOL_ lpUsedDefaultChar); - -} // extern "C" -#endif // #if !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const UINT_ CP_ACP_ = CP_ACP; -const UINT_ CP_OEMCP_ = CP_OEMCP; -const UINT_ CP_MACCP_ = CP_MACCP; -const UINT_ CP_THREAD_ACP_ = CP_THREAD_ACP; -const UINT_ CP_SYMBOL_ = CP_SYMBOL; -const UINT_ CP_UTF7_ = CP_UTF7; -const UINT_ CP_UTF8_ = CP_UTF8; - -const DWORD_ MB_PRECOMPOSED_ = MB_PRECOMPOSED; -const DWORD_ MB_COMPOSITE_ = MB_COMPOSITE; -const DWORD_ MB_USEGLYPHCHARS_ = MB_USEGLYPHCHARS; -const DWORD_ MB_ERR_INVALID_CHARS_ = MB_ERR_INVALID_CHARS; - -const DWORD_ WC_COMPOSITECHECK_ = WC_COMPOSITECHECK; -const DWORD_ WC_DISCARDNS_ = WC_DISCARDNS; -const DWORD_ WC_SEPCHARS_ = WC_SEPCHARS; -const DWORD_ WC_DEFAULTCHAR_ = WC_DEFAULTCHAR; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K -const DWORD_ WC_NO_BEST_FIT_CHARS_ = WC_NO_BEST_FIT_CHARS; -#endif - -#else // defined( BOOST_USE_WINDOWS_H ) - -const UINT_ CP_ACP_ = 0u; -const UINT_ CP_OEMCP_ = 1u; -const UINT_ CP_MACCP_ = 2u; -const UINT_ CP_THREAD_ACP_ = 3u; -const UINT_ CP_SYMBOL_ = 42u; -const UINT_ CP_UTF7_ = 65000u; -const UINT_ CP_UTF8_ = 65001u; - -const DWORD_ MB_PRECOMPOSED_ = 0x00000001; -const DWORD_ MB_COMPOSITE_ = 0x00000002; -const DWORD_ MB_USEGLYPHCHARS_ = 0x00000004; -const DWORD_ MB_ERR_INVALID_CHARS_ = 0x00000008; - -const DWORD_ WC_COMPOSITECHECK_ = 0x00000200; -const DWORD_ WC_DISCARDNS_ = 0x00000010; -const DWORD_ WC_SEPCHARS_ = 0x00000020; -const DWORD_ WC_DEFAULTCHAR_ = 0x00000040; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K -const DWORD_ WC_NO_BEST_FIT_CHARS_ = 0x00000400; -#endif - -#endif // defined( BOOST_USE_WINDOWS_H ) - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -// This constant is not present in MinGW -const DWORD_ WC_ERR_INVALID_CHARS_ = 0x00000080; -#endif - -using ::MultiByteToWideChar; -using ::WideCharToMultiByte; - -} // namespace winapi -} // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_WINAPI_CHARACTER_CODE_CONVERSION_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/condition_variable.hpp b/lib/3rdParty/boost/boost/detail/winapi/condition_variable.hpp deleted file mode 100644 index 7182d756a..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/condition_variable.hpp +++ /dev/null @@ -1,123 +0,0 @@ -// condition_variable.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_CONDITION_VARIABLE_HPP -#define BOOST_DETAIL_WINAPI_CONDITION_VARIABLE_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -struct _RTL_CONDITION_VARIABLE; -struct _RTL_CRITICAL_SECTION; -struct _RTL_SRWLOCK; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -InitializeConditionVariable(::_RTL_CONDITION_VARIABLE* ConditionVariable); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -WakeConditionVariable(::_RTL_CONDITION_VARIABLE* ConditionVariable); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -WakeAllConditionVariable(::_RTL_CONDITION_VARIABLE* ConditionVariable); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SleepConditionVariableCS( - ::_RTL_CONDITION_VARIABLE* ConditionVariable, - ::_RTL_CRITICAL_SECTION* CriticalSection, - boost::detail::winapi::DWORD_ dwMilliseconds); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SleepConditionVariableSRW( - ::_RTL_CONDITION_VARIABLE* ConditionVariable, - ::_RTL_SRWLOCK* SRWLock, - boost::detail::winapi::DWORD_ dwMilliseconds, - boost::detail::winapi::ULONG_ Flags); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _RTL_CONDITION_VARIABLE { - PVOID_ Ptr; -} CONDITION_VARIABLE_, *PCONDITION_VARIABLE_; - -#if defined( BOOST_USE_WINDOWS_H ) -#define BOOST_DETAIL_WINAPI_CONDITION_VARIABLE_INIT CONDITION_VARIABLE_INIT -#else -#define BOOST_DETAIL_WINAPI_CONDITION_VARIABLE {0} -#endif - -struct _RTL_CRITICAL_SECTION; -struct _RTL_SRWLOCK; - -BOOST_FORCEINLINE VOID_ InitializeConditionVariable(PCONDITION_VARIABLE_ ConditionVariable) -{ - ::InitializeConditionVariable(reinterpret_cast< ::_RTL_CONDITION_VARIABLE* >(ConditionVariable)); -} - -BOOST_FORCEINLINE VOID_ WakeConditionVariable(PCONDITION_VARIABLE_ ConditionVariable) -{ - ::WakeConditionVariable(reinterpret_cast< ::_RTL_CONDITION_VARIABLE* >(ConditionVariable)); -} - -BOOST_FORCEINLINE VOID_ WakeAllConditionVariable(PCONDITION_VARIABLE_ ConditionVariable) -{ - ::WakeAllConditionVariable(reinterpret_cast< ::_RTL_CONDITION_VARIABLE* >(ConditionVariable)); -} - -BOOST_FORCEINLINE BOOL_ SleepConditionVariableCS( - PCONDITION_VARIABLE_ ConditionVariable, - _RTL_CRITICAL_SECTION* CriticalSection, - DWORD_ dwMilliseconds) -{ - return ::SleepConditionVariableCS( - reinterpret_cast< ::_RTL_CONDITION_VARIABLE* >(ConditionVariable), - reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(CriticalSection), - dwMilliseconds); -} - -BOOST_FORCEINLINE BOOL_ SleepConditionVariableSRW( - PCONDITION_VARIABLE_ ConditionVariable, - _RTL_SRWLOCK* SRWLock, - DWORD_ dwMilliseconds, - ULONG_ Flags) -{ - return ::SleepConditionVariableSRW( - reinterpret_cast< ::_RTL_CONDITION_VARIABLE* >(ConditionVariable), - reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock), - dwMilliseconds, - Flags); -} - -#if defined( BOOST_USE_WINDOWS_H ) -const ULONG_ CONDITION_VARIABLE_LOCKMODE_SHARED_ = CONDITION_VARIABLE_LOCKMODE_SHARED; -#else // defined( BOOST_USE_WINDOWS_H ) -const ULONG_ CONDITION_VARIABLE_LOCKMODE_SHARED_ = 0x00000001; -#endif // defined( BOOST_USE_WINDOWS_H ) - -const ULONG_ condition_variable_lockmode_shared = CONDITION_VARIABLE_LOCKMODE_SHARED_; - -} -} -} - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#endif // BOOST_DETAIL_WINAPI_CONDITION_VARIABLE_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/config.hpp b/lib/3rdParty/boost/boost/detail/winapi/config.hpp deleted file mode 100644 index 1f08c2a88..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/config.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// config.hpp --------------------------------------------------------------// - -// Copyright 2013 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_CONFIG_HPP_INCLUDED_ -#define BOOST_DETAIL_WINAPI_CONFIG_HPP_INCLUDED_ - -#if defined __MINGW32__ -#include <_mingw.h> -#endif - -// BOOST_WINAPI_IS_MINGW indicates that the target Windows SDK is provided by MinGW (http://mingw.org/). -// BOOST_WINAPI_IS_MINGW_W64 indicates that the target Windows SDK is provided by MinGW-w64 (http://mingw-w64.org). -#if defined __MINGW32__ -#if defined __MINGW64_VERSION_MAJOR -#define BOOST_WINAPI_IS_MINGW_W64 -#else -#define BOOST_WINAPI_IS_MINGW -#endif -#endif - -// These constants reflect _WIN32_WINNT_* macros from sdkddkver.h -// See also: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745%28v=vs.85%29.aspx#setting_winver_or__win32_winnt -#define BOOST_WINAPI_VERSION_NT4 0x0400 -#define BOOST_WINAPI_VERSION_WIN2K 0x0500 -#define BOOST_WINAPI_VERSION_WINXP 0x0501 -#define BOOST_WINAPI_VERSION_WS03 0x0502 -#define BOOST_WINAPI_VERSION_WIN6 0x0600 -#define BOOST_WINAPI_VERSION_VISTA 0x0600 -#define BOOST_WINAPI_VERSION_WS08 0x0600 -#define BOOST_WINAPI_VERSION_LONGHORN 0x0600 -#define BOOST_WINAPI_VERSION_WIN7 0x0601 -#define BOOST_WINAPI_VERSION_WIN8 0x0602 -#define BOOST_WINAPI_VERSION_WINBLUE 0x0603 -#define BOOST_WINAPI_VERSION_WINTHRESHOLD 0x0A00 -#define BOOST_WINAPI_VERSION_WIN10 0x0A00 - -#if !defined(BOOST_USE_WINAPI_VERSION) -#if defined(_WIN32_WINNT) -#define BOOST_USE_WINAPI_VERSION _WIN32_WINNT -#elif defined(WINVER) -#define BOOST_USE_WINAPI_VERSION WINVER -#else -// By default use Windows Vista API on compilers that support it and XP on the others -#if (defined(_MSC_VER) && _MSC_VER < 1500) || defined(BOOST_WINAPI_IS_MINGW) -#define BOOST_USE_WINAPI_VERSION BOOST_WINAPI_VERSION_WINXP -#else -#define BOOST_USE_WINAPI_VERSION BOOST_WINAPI_VERSION_WIN6 -#endif -#endif -#endif - -#if defined(BOOST_USE_WINDOWS_H) -// We have to define the version macros so that windows.h provides the necessary symbols -#if !defined(_WIN32_WINNT) -#define _WIN32_WINNT BOOST_USE_WINAPI_VERSION -#endif -#if !defined(WINVER) -#define WINVER BOOST_USE_WINAPI_VERSION -#endif -#endif - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#endif // BOOST_DETAIL_WINAPI_CONFIG_HPP_INCLUDED_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/critical_section.hpp b/lib/3rdParty/boost/boost/detail/winapi/critical_section.hpp deleted file mode 100644 index be1d3472c..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/critical_section.hpp +++ /dev/null @@ -1,184 +0,0 @@ -// critical_section.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_CRITICAL_SECTION_HPP -#define BOOST_DETAIL_WINAPI_CRITICAL_SECTION_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) - -extern "C" { -#if !defined( BOOST_WINAPI_IS_MINGW ) -struct _RTL_CRITICAL_SECTION; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -InitializeCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -EnterCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -LeaveCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection); - -#if BOOST_USE_WINAPI_VERSION >= 0x0403 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitializeCriticalSectionAndSpinCount( - ::_RTL_CRITICAL_SECTION* lpCriticalSection, - boost::detail::winapi::DWORD_ dwSpinCount); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitializeCriticalSectionEx( - ::_RTL_CRITICAL_SECTION* lpCriticalSection, - boost::detail::winapi::DWORD_ dwSpinCount, - boost::detail::winapi::DWORD_ Flags); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -SetCriticalSectionSpinCount( - ::_RTL_CRITICAL_SECTION* lpCriticalSection, - boost::detail::winapi::DWORD_ dwSpinCount); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -TryEnterCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -DeleteCriticalSection(::_RTL_CRITICAL_SECTION* lpCriticalSection); - -#else // defined( BOOST_WINAPI_IS_MINGW ) - -// MinGW uses a different name for the structure -struct _CRITICAL_SECTION; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -InitializeCriticalSection(::_CRITICAL_SECTION* lpCriticalSection); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -EnterCriticalSection(::_CRITICAL_SECTION* lpCriticalSection); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -LeaveCriticalSection(::_CRITICAL_SECTION* lpCriticalSection); - -#if BOOST_USE_WINAPI_VERSION >= 0x0403 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitializeCriticalSectionAndSpinCount( - ::_CRITICAL_SECTION* lpCriticalSection, - boost::detail::winapi::DWORD_ dwSpinCount); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitializeCriticalSectionEx( - ::_CRITICAL_SECTION* lpCriticalSection, - boost::detail::winapi::DWORD_ dwSpinCount, - boost::detail::winapi::DWORD_ Flags); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -SetCriticalSectionSpinCount( - ::_CRITICAL_SECTION* lpCriticalSection, - boost::detail::winapi::DWORD_ dwSpinCount); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -TryEnterCriticalSection(::_CRITICAL_SECTION* lpCriticalSection); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -DeleteCriticalSection(::_CRITICAL_SECTION* lpCriticalSection); - -#endif // defined( BOOST_WINAPI_IS_MINGW ) -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -struct _RTL_CRITICAL_SECTION_DEBUG; - -#pragma pack(push, 8) - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _RTL_CRITICAL_SECTION { - _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; - LONG_ LockCount; - LONG_ RecursionCount; - HANDLE_ OwningThread; - HANDLE_ LockSemaphore; - ULONG_PTR_ SpinCount; -} CRITICAL_SECTION_, *PCRITICAL_SECTION_; - -#pragma pack(pop) - -BOOST_FORCEINLINE VOID_ InitializeCriticalSection(CRITICAL_SECTION_* lpCriticalSection) -{ - ::InitializeCriticalSection(winapi::detail::cast_ptr(lpCriticalSection)); -} - -BOOST_FORCEINLINE VOID_ EnterCriticalSection(CRITICAL_SECTION_* lpCriticalSection) -{ - ::EnterCriticalSection(winapi::detail::cast_ptr(lpCriticalSection)); -} - -BOOST_FORCEINLINE VOID_ LeaveCriticalSection(CRITICAL_SECTION_* lpCriticalSection) -{ - ::LeaveCriticalSection(winapi::detail::cast_ptr(lpCriticalSection)); -} - -#if BOOST_USE_WINAPI_VERSION >= 0x0403 -BOOST_FORCEINLINE BOOL_ InitializeCriticalSectionAndSpinCount(CRITICAL_SECTION_* lpCriticalSection, DWORD_ dwSpinCount) -{ - return ::InitializeCriticalSectionAndSpinCount(winapi::detail::cast_ptr(lpCriticalSection), dwSpinCount); -} - -// CRITICAL_SECTION_NO_DEBUG_INFO is defined for WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -const DWORD_ CRITICAL_SECTION_NO_DEBUG_INFO_ = 0x01000000; -const DWORD_ CRITICAL_SECTION_FLAG_NO_DEBUG_INFO_ = CRITICAL_SECTION_NO_DEBUG_INFO_; -const DWORD_ CRITICAL_SECTION_FLAG_DYNAMIC_SPIN_ = 0x02000000; // undocumented -const DWORD_ CRITICAL_SECTION_FLAG_STATIC_INIT_ = 0x04000000; // undocumented - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE BOOL_ InitializeCriticalSectionEx(CRITICAL_SECTION_* lpCriticalSection, DWORD_ dwSpinCount, DWORD_ Flags) -{ - return ::InitializeCriticalSectionEx(winapi::detail::cast_ptr(lpCriticalSection), dwSpinCount, Flags); -} -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -BOOST_FORCEINLINE DWORD_ SetCriticalSectionSpinCount(CRITICAL_SECTION_* lpCriticalSection, DWORD_ dwSpinCount) -{ - return ::SetCriticalSectionSpinCount(winapi::detail::cast_ptr(lpCriticalSection), dwSpinCount); -} -#endif // BOOST_USE_WINAPI_VERSION >= 0x0403 - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 -BOOST_FORCEINLINE BOOL_ TryEnterCriticalSection(CRITICAL_SECTION_* lpCriticalSection) -{ - return ::TryEnterCriticalSection(winapi::detail::cast_ptr(lpCriticalSection)); -} -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 - -BOOST_FORCEINLINE VOID_ DeleteCriticalSection(CRITICAL_SECTION_* lpCriticalSection) -{ - ::DeleteCriticalSection(winapi::detail::cast_ptr(lpCriticalSection)); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_CRITICAL_SECTION_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/crypt.hpp b/lib/3rdParty/boost/boost/detail/winapi/crypt.hpp deleted file mode 100644 index 065084517..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/crypt.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// crypt.hpp --------------------------------------------------------------// - -// Copyright 2014 Antony Polukhin -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_CRYPT_HPP -#define BOOST_DETAIL_WINAPI_CRYPT_HPP - -#include -#include -#if defined( BOOST_USE_WINDOWS_H ) -// This header is not always included as part of windows.h -#include -#endif - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -namespace boost { namespace detail { namespace winapi { -typedef ULONG_PTR_ HCRYPTPROV_; -}}} - -// Some versions of MinGW (including the latest ones) contain buggy declarations of CryptEnumProvidersA and CryptEnumProvidersW. -// We cannot detect those broken versions, and we can't include the system header because it's incomplete. -// So below we duplicate the broken declarations here and work around the problem with cast_ptr. These declarations -// will have to be removed when MinGW is fixed. - -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -#if !defined( BOOST_WINAPI_IS_MINGW ) || !defined( UNICODE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptEnumProvidersA( - boost::detail::winapi::DWORD_ dwIndex, - boost::detail::winapi::DWORD_ *pdwReserved, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ *pdwProvType, - boost::detail::winapi::LPSTR_ szProvName, - boost::detail::winapi::DWORD_ *pcbProvName); -#else -// Broken declaration in MinGW -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptEnumProvidersA( - boost::detail::winapi::DWORD_ dwIndex, - boost::detail::winapi::DWORD_ *pdwReserved, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ *pdwProvType, - boost::detail::winapi::LPWSTR_ szProvName, - boost::detail::winapi::DWORD_ *pcbProvName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptAcquireContextA( - boost::detail::winapi::HCRYPTPROV_ *phProv, - boost::detail::winapi::LPCSTR_ pszContainer, - boost::detail::winapi::LPCSTR_ pszProvider, - boost::detail::winapi::DWORD_ dwProvType, - boost::detail::winapi::DWORD_ dwFlags); -#endif // !defined( BOOST_NO_ANSI_APIS ) - -#if !defined( BOOST_WINAPI_IS_MINGW ) || defined( UNICODE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptEnumProvidersW( - boost::detail::winapi::DWORD_ dwIndex, - boost::detail::winapi::DWORD_ *pdwReserved, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ *pdwProvType, - boost::detail::winapi::LPWSTR_ szProvName, - boost::detail::winapi::DWORD_ *pcbProvName); -#else -// Broken declaration in MinGW -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptEnumProvidersW( - boost::detail::winapi::DWORD_ dwIndex, - boost::detail::winapi::DWORD_ *pdwReserved, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ *pdwProvType, - boost::detail::winapi::LPSTR_ szProvName, - boost::detail::winapi::DWORD_ *pcbProvName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptAcquireContextW( - boost::detail::winapi::HCRYPTPROV_ *phProv, - boost::detail::winapi::LPCWSTR_ szContainer, - boost::detail::winapi::LPCWSTR_ szProvider, - boost::detail::winapi::DWORD_ dwProvType, - boost::detail::winapi::DWORD_ dwFlags); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptGenRandom( - boost::detail::winapi::HCRYPTPROV_ hProv, - boost::detail::winapi::DWORD_ dwLen, - boost::detail::winapi::BYTE_ *pbBuffer); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CryptReleaseContext( - boost::detail::winapi::HCRYPTPROV_ hProv, - boost::detail::winapi::DWORD_ dwFlags); -} -#endif // !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -typedef ::HCRYPTPROV HCRYPTPROV_; - -const DWORD_ PROV_RSA_FULL_ = PROV_RSA_FULL; - -const DWORD_ CRYPT_VERIFYCONTEXT_ = CRYPT_VERIFYCONTEXT; -const DWORD_ CRYPT_NEWKEYSET_ = CRYPT_NEWKEYSET; -const DWORD_ CRYPT_DELETEKEYSET_ = CRYPT_DELETEKEYSET; -const DWORD_ CRYPT_MACHINE_KEYSET_ = CRYPT_MACHINE_KEYSET; -const DWORD_ CRYPT_SILENT_ = CRYPT_SILENT; - -#else - -const DWORD_ PROV_RSA_FULL_ = 1; - -const DWORD_ CRYPT_VERIFYCONTEXT_ = 0xF0000000; -const DWORD_ CRYPT_NEWKEYSET_ = 8; -const DWORD_ CRYPT_DELETEKEYSET_ = 16; -const DWORD_ CRYPT_MACHINE_KEYSET_ = 32; -const DWORD_ CRYPT_SILENT_ = 64; - -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::CryptEnumProvidersA; -using ::CryptAcquireContextA; -#endif -using ::CryptEnumProvidersW; -using ::CryptAcquireContextW; -using ::CryptGenRandom; -using ::CryptReleaseContext; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE BOOL_ crypt_enum_providers( - DWORD_ dwIndex, - DWORD_ *pdwReserved, - DWORD_ dwFlags, - DWORD_ *pdwProvType, - LPSTR_ szProvName, - DWORD_ *pcbProvName) -{ - return ::CryptEnumProvidersA(dwIndex, pdwReserved, dwFlags, pdwProvType, winapi::detail::cast_ptr(szProvName), pcbProvName); -} - -BOOST_FORCEINLINE BOOL_ crypt_acquire_context( - HCRYPTPROV_ *phProv, - LPCSTR_ pszContainer, - LPCSTR_ pszProvider, - DWORD_ dwProvType, - DWORD_ dwFlags) -{ - return ::CryptAcquireContextA(phProv, pszContainer, pszProvider, dwProvType, dwFlags); -} -#endif - -BOOST_FORCEINLINE BOOL_ crypt_enum_providers( - DWORD_ dwIndex, - DWORD_ *pdwReserved, - DWORD_ dwFlags, - DWORD_ *pdwProvType, - LPWSTR_ szProvName, - DWORD_ *pcbProvName) -{ - return ::CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, winapi::detail::cast_ptr(szProvName), pcbProvName); -} - -BOOST_FORCEINLINE BOOL_ crypt_acquire_context( - HCRYPTPROV_ *phProv, - LPCWSTR_ szContainer, - LPCWSTR_ szProvider, - DWORD_ dwProvType, - DWORD_ dwFlags) -{ - return ::CryptAcquireContextW(phProv, szContainer, szProvider, dwProvType, dwFlags); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_CRYPT_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/dbghelp.hpp b/lib/3rdParty/boost/boost/detail/winapi/dbghelp.hpp deleted file mode 100644 index 74add558b..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/dbghelp.hpp +++ /dev/null @@ -1,171 +0,0 @@ -// dbghelp.hpp --------------------------------------------------------------// - -// Copyright 2015 Klemens Morgenstern -// Copyright 2016 Jorge Lodos -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_DBGHELP_HPP -#define BOOST_DETAIL_WINAPI_DBGHELP_HPP - -#include - -#if defined( BOOST_USE_WINDOWS_H ) -#if !defined( BOOST_WINAPI_IS_MINGW ) -#include -#else -// In MinGW there is no dbghelp.h but an older imagehlp.h header defines some of the symbols from it. -// Note that the user has to link with libimagehlp.a instead of libdbghelp.a for it to work. -#include -#endif -#endif - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -// Some symbols declared below are not present in all versions of Windows SDK, MinGW and MinGW-w64. -// dbghelp.h/imagehlp.h define the API_VERSION_NUMBER macro which we use to detect its version. -// When the macro is not available we can only guess based on the compiler version or SDK type. -#if defined(API_VERSION_NUMBER) -#if API_VERSION_NUMBER >= 11 -// UnDecorateSymbolNameW available since Windows SDK 6.0A and MinGW-w64 (as of 2016-02-14) -#define BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW -#endif -#elif defined(_MSC_VER) && _MSC_VER >= 1500 -// Until MSVC 9.0 Windows SDK was bundled in Visual Studio and didn't have UnDecorateSymbolNameW. -// Supposedly, Windows SDK 6.0A was the first standalone one and it is used with MSVC 9.0. -#define BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW -#elif !defined(BOOST_WINAPI_IS_MINGW) -// MinGW does not provide UnDecorateSymbolNameW (as of 2016-02-14) -#define BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -struct API_VERSION; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -UnDecorateSymbolName( - boost::detail::winapi::LPCSTR_ DecoratedName, - boost::detail::winapi::LPSTR_ UnDecoratedName, - boost::detail::winapi::DWORD_ UndecoratedLength, - boost::detail::winapi::DWORD_ Flags); - -#if defined( BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -UnDecorateSymbolNameW( - boost::detail::winapi::LPCWSTR_ DecoratedName, - boost::detail::winapi::LPWSTR_ UnDecoratedName, - boost::detail::winapi::DWORD_ UndecoratedLength, - boost::detail::winapi::DWORD_ Flags); -#endif - -BOOST_SYMBOL_IMPORT API_VERSION* WINAPI -ImagehlpApiVersion(BOOST_DETAIL_WINAPI_VOID); - -} // extern "C" -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ UNDNAME_COMPLETE_ = UNDNAME_COMPLETE; -const DWORD_ UNDNAME_NO_LEADING_UNDERSCORES_ = UNDNAME_NO_LEADING_UNDERSCORES; -const DWORD_ UNDNAME_NO_MS_KEYWORDS_ = UNDNAME_NO_MS_KEYWORDS; -const DWORD_ UNDNAME_NO_FUNCTION_RETURNS_ = UNDNAME_NO_FUNCTION_RETURNS; -const DWORD_ UNDNAME_NO_ALLOCATION_MODEL_ = UNDNAME_NO_ALLOCATION_MODEL; -const DWORD_ UNDNAME_NO_ALLOCATION_LANGUAGE_ = UNDNAME_NO_ALLOCATION_LANGUAGE; -const DWORD_ UNDNAME_NO_MS_THISTYPE_ = UNDNAME_NO_MS_THISTYPE; -const DWORD_ UNDNAME_NO_CV_THISTYPE_ = UNDNAME_NO_CV_THISTYPE; -const DWORD_ UNDNAME_NO_THISTYPE_ = UNDNAME_NO_THISTYPE; -const DWORD_ UNDNAME_NO_ACCESS_SPECIFIERS_ = UNDNAME_NO_ACCESS_SPECIFIERS; -const DWORD_ UNDNAME_NO_THROW_SIGNATURES_ = UNDNAME_NO_THROW_SIGNATURES; -const DWORD_ UNDNAME_NO_MEMBER_TYPE_ = UNDNAME_NO_MEMBER_TYPE; -const DWORD_ UNDNAME_NO_RETURN_UDT_MODEL_ = UNDNAME_NO_RETURN_UDT_MODEL; -const DWORD_ UNDNAME_32_BIT_DECODE_ = UNDNAME_32_BIT_DECODE; -const DWORD_ UNDNAME_NAME_ONLY_ = UNDNAME_NAME_ONLY; -const DWORD_ UNDNAME_NO_ARGUMENTS_ = UNDNAME_NO_ARGUMENTS; -const DWORD_ UNDNAME_NO_SPECIAL_SYMS_ = UNDNAME_NO_SPECIAL_SYMS; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ UNDNAME_COMPLETE_ = 0x00000000; -const DWORD_ UNDNAME_NO_LEADING_UNDERSCORES_ = 0x00000001; -const DWORD_ UNDNAME_NO_MS_KEYWORDS_ = 0x00000002; -const DWORD_ UNDNAME_NO_FUNCTION_RETURNS_ = 0x00000004; -const DWORD_ UNDNAME_NO_ALLOCATION_MODEL_ = 0x00000008; -const DWORD_ UNDNAME_NO_ALLOCATION_LANGUAGE_ = 0x00000010; -const DWORD_ UNDNAME_NO_MS_THISTYPE_ = 0x00000020; -const DWORD_ UNDNAME_NO_CV_THISTYPE_ = 0x00000040; -const DWORD_ UNDNAME_NO_THISTYPE_ = 0x00000060; -const DWORD_ UNDNAME_NO_ACCESS_SPECIFIERS_ = 0x00000080; -const DWORD_ UNDNAME_NO_THROW_SIGNATURES_ = 0x00000100; -const DWORD_ UNDNAME_NO_MEMBER_TYPE_ = 0x00000200; -const DWORD_ UNDNAME_NO_RETURN_UDT_MODEL_ = 0x00000400; -const DWORD_ UNDNAME_32_BIT_DECODE_ = 0x00000800; -const DWORD_ UNDNAME_NAME_ONLY_ = 0x00001000; -const DWORD_ UNDNAME_NO_ARGUMENTS_ = 0x00002000; -const DWORD_ UNDNAME_NO_SPECIAL_SYMS_ = 0x00004000; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -using ::UnDecorateSymbolName; -#if defined( BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW ) -using ::UnDecorateSymbolNameW; -#endif - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS API_VERSION { - USHORT_ MajorVersion; - USHORT_ MinorVersion; - USHORT_ Revision; - USHORT_ Reserved; -} API_VERSION_, *LPAPI_VERSION_; - -BOOST_FORCEINLINE LPAPI_VERSION_ ImagehlpApiVersion() -{ - return reinterpret_cast(::ImagehlpApiVersion()); -} - -BOOST_FORCEINLINE DWORD_ undecorate_symbol_name( - LPCSTR_ DecoratedName, - LPSTR_ UnDecoratedName, - DWORD_ UndecoratedLength, - DWORD_ Flags) -{ - return ::UnDecorateSymbolName( - DecoratedName, - UnDecoratedName, - UndecoratedLength, - Flags); -} - -#if defined( BOOST_DETAIL_WINAPI_HAS_UNDECORATESYMBOLNAMEW ) - -BOOST_FORCEINLINE DWORD_ undecorate_symbol_name( - LPCWSTR_ DecoratedName, - LPWSTR_ UnDecoratedName, - DWORD_ UndecoratedLength, - DWORD_ Flags) -{ - return ::UnDecorateSymbolNameW( - DecoratedName, - UnDecoratedName, - UndecoratedLength, - Flags); -} - -#endif - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_DBGHELP_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/detail/cast_ptr.hpp b/lib/3rdParty/boost/boost/detail/winapi/detail/cast_ptr.hpp deleted file mode 100644 index 261007ee7..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/detail/cast_ptr.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// cast_ptr.hpp --------------------------------------------------------------// - -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_DETAIL_CAST_PTR_HPP -#define BOOST_DETAIL_WINAPI_DETAIL_CAST_PTR_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { -namespace detail { -namespace winapi { -namespace detail { - -//! This class is used to automatically cast pointers to the type used in the current Windows SDK function declarations -class cast_ptr -{ -private: - const void* m_p; - -public: - explicit BOOST_FORCEINLINE cast_ptr(const void* p) BOOST_NOEXCEPT : m_p(p) {} - template< typename T > - BOOST_FORCEINLINE operator T* () const BOOST_NOEXCEPT { return (T*)m_p; } -}; - -} -} -} -} - -#endif // BOOST_DETAIL_WINAPI_DETAIL_CAST_PTR_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/directory_management.hpp b/lib/3rdParty/boost/boost/detail/winapi/directory_management.hpp deleted file mode 100644 index 1da53c38c..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/directory_management.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// directory_management.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_DIRECTORY_MANAGEMENT_HPP -#define BOOST_DETAIL_WINAPI_DIRECTORY_MANAGEMENT_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI - CreateDirectoryA(boost::detail::winapi::LPCSTR_, ::_SECURITY_ATTRIBUTES*); -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI - GetTempPathA(boost::detail::winapi::DWORD_ length, boost::detail::winapi::LPSTR_ buffer); -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI - RemoveDirectoryA(boost::detail::winapi::LPCSTR_); -#endif -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI - CreateDirectoryW(boost::detail::winapi::LPCWSTR_, ::_SECURITY_ATTRIBUTES*); -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI - GetTempPathW(boost::detail::winapi::DWORD_ length, boost::detail::winapi::LPWSTR_ buffer); -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI - RemoveDirectoryW(boost::detail::winapi::LPCWSTR_); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::GetTempPathA; -using ::RemoveDirectoryA; -#endif -using ::GetTempPathW; -using ::RemoveDirectoryW; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE BOOL_ CreateDirectoryA(LPCSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) -{ - return ::CreateDirectoryA(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); -} -#endif - -BOOST_FORCEINLINE BOOL_ CreateDirectoryW(LPCWSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) -{ - return ::CreateDirectoryW(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); -} - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE BOOL_ create_directory(LPCSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) -{ - return ::CreateDirectoryA(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); -} -BOOST_FORCEINLINE DWORD_ get_temp_path(DWORD_ length, LPSTR_ buffer) -{ - return ::GetTempPathA(length, buffer); -} -BOOST_FORCEINLINE BOOL_ remove_directory(LPCSTR_ pPathName) -{ - return ::RemoveDirectoryA(pPathName); -} -#endif - -BOOST_FORCEINLINE BOOL_ create_directory(LPCWSTR_ pPathName, PSECURITY_ATTRIBUTES_ pSecurityAttributes) -{ - return ::CreateDirectoryW(pPathName, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(pSecurityAttributes)); -} -BOOST_FORCEINLINE DWORD_ get_temp_path(DWORD_ length, LPWSTR_ buffer) -{ - return ::GetTempPathW(length, buffer); -} -BOOST_FORCEINLINE BOOL_ remove_directory(LPCWSTR_ pPathName) -{ - return ::RemoveDirectoryW(pPathName); -} - -} // namespace winapi -} // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_WINAPI_DIRECTORY_MANAGEMENT_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/dll.hpp b/lib/3rdParty/boost/boost/detail/winapi/dll.hpp deleted file mode 100644 index 287293658..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/dll.hpp +++ /dev/null @@ -1,221 +0,0 @@ -// dll.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2014 Renato Tegon Forti, Antony Polukhin -// Copyright 2015 Andrey Semashev -// Copyright 2015 Antony Polukhin - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_DLL_HPP -#define BOOST_DETAIL_WINAPI_DLL_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -namespace boost { namespace detail { namespace winapi { -#ifdef _WIN64 -typedef INT_PTR_ (WINAPI *FARPROC_)(); -typedef INT_PTR_ (WINAPI *NEARPROC_)(); -typedef INT_PTR_ (WINAPI *PROC_)(); -#else -typedef int (WINAPI *FARPROC_)(); -typedef int (WINAPI *NEARPROC_)(); -typedef int (WINAPI *PROC_)(); -#endif // _WIN64 -}}} // namespace boost::detail::winapi - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HMODULE_ WINAPI -LoadLibraryA(boost::detail::winapi::LPCSTR_ lpFileName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HMODULE_ WINAPI -LoadLibraryExA( - boost::detail::winapi::LPCSTR_ lpFileName, - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::DWORD_ dwFlags -); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HMODULE_ WINAPI -GetModuleHandleA(boost::detail::winapi::LPCSTR_ lpFileName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetModuleFileNameA( - boost::detail::winapi::HMODULE_ hModule, - boost::detail::winapi::LPSTR_ lpFilename, - boost::detail::winapi::DWORD_ nSize -); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HMODULE_ WINAPI -LoadLibraryW(boost::detail::winapi::LPCWSTR_ lpFileName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HMODULE_ WINAPI -LoadLibraryExW( - boost::detail::winapi::LPCWSTR_ lpFileName, - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::DWORD_ dwFlags -); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HMODULE_ WINAPI -GetModuleHandleW(boost::detail::winapi::LPCWSTR_ lpFileName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetModuleFileNameW( - boost::detail::winapi::HMODULE_ hModule, - boost::detail::winapi::LPWSTR_ lpFilename, - boost::detail::winapi::DWORD_ nSize -); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FreeLibrary(boost::detail::winapi::HMODULE_ hModule); - -#if !defined( UNDER_CE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::FARPROC_ WINAPI -GetProcAddress(boost::detail::winapi::HMODULE_ hModule, boost::detail::winapi::LPCSTR_ lpProcName); -#else -// On Windows CE there are two functions: GetProcAddressA (since Windows CE 3.0) and GetProcAddressW. -// GetProcAddress is a macro that is _always_ defined to GetProcAddressW. -BOOST_SYMBOL_IMPORT boost::detail::winapi::FARPROC_ WINAPI -GetProcAddressA(boost::detail::winapi::HMODULE_ hModule, boost::detail::winapi::LPCSTR_ lpProcName); -BOOST_SYMBOL_IMPORT boost::detail::winapi::FARPROC_ WINAPI -GetProcAddressW(boost::detail::winapi::HMODULE_ hModule, boost::detail::winapi::LPCWSTR_ lpProcName); -#endif - -struct _MEMORY_BASIC_INFORMATION; - -#if !defined( BOOST_WINAPI_IS_MINGW ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::SIZE_T_ WINAPI -VirtualQuery( - boost::detail::winapi::LPCVOID_ lpAddress, - ::_MEMORY_BASIC_INFORMATION* lpBuffer, - boost::detail::winapi::ULONG_PTR_ dwLength -); -#else // !defined( BOOST_WINAPI_IS_MINGW ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -VirtualQuery( - boost::detail::winapi::LPCVOID_ lpAddress, - ::_MEMORY_BASIC_INFORMATION* lpBuffer, - boost::detail::winapi::DWORD_ dwLength -); -#endif // !defined( BOOST_WINAPI_IS_MINGW ) -} // extern "C" -#endif // #if !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { -namespace detail { -namespace winapi { - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS MEMORY_BASIC_INFORMATION_ { - PVOID_ BaseAddress; - PVOID_ AllocationBase; - DWORD_ AllocationProtect; - SIZE_T_ RegionSize; - DWORD_ State; - DWORD_ Protect; - DWORD_ Type; -} *PMEMORY_BASIC_INFORMATION_; - -#if defined( BOOST_USE_WINDOWS_H ) -typedef ::FARPROC FARPROC_; -typedef ::NEARPROC NEARPROC_; -typedef ::PROC PROC_; - -const DWORD_ DONT_RESOLVE_DLL_REFERENCES_ = DONT_RESOLVE_DLL_REFERENCES; -const DWORD_ LOAD_WITH_ALTERED_SEARCH_PATH_ = LOAD_WITH_ALTERED_SEARCH_PATH; -#else // defined( BOOST_USE_WINDOWS_H ) -const DWORD_ DONT_RESOLVE_DLL_REFERENCES_ = 0x00000001; -const DWORD_ LOAD_WITH_ALTERED_SEARCH_PATH_ = 0x00000008; -#endif // defined( BOOST_USE_WINDOWS_H ) - -// This one is not defined by MinGW -const DWORD_ LOAD_IGNORE_CODE_AUTHZ_LEVEL_ = 0x00000010; - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::LoadLibraryA; -using ::LoadLibraryExA; -using ::GetModuleHandleA; -using ::GetModuleFileNameA; -#endif // !defined( BOOST_NO_ANSI_APIS ) -using ::LoadLibraryW; -using ::LoadLibraryExW; -using ::GetModuleHandleW; -using ::GetModuleFileNameW; -using ::FreeLibrary; - -#if !defined( UNDER_CE ) -// For backward compatibility, don't use directly. Use get_proc_address instead. -using ::GetProcAddress; -#else -using ::GetProcAddressA; -using ::GetProcAddressW; -#endif - -BOOST_FORCEINLINE FARPROC_ get_proc_address(HMODULE_ hModule, LPCSTR_ lpProcName) -{ -#if !defined( UNDER_CE ) - return ::GetProcAddress(hModule, lpProcName); -#else - return ::GetProcAddressA(hModule, lpProcName); -#endif -} - -BOOST_FORCEINLINE SIZE_T_ VirtualQuery(LPCVOID_ lpAddress, MEMORY_BASIC_INFORMATION_* lpBuffer, ULONG_PTR_ dwLength) -{ - return ::VirtualQuery(lpAddress, reinterpret_cast< ::_MEMORY_BASIC_INFORMATION* >(lpBuffer), dwLength); -} - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HMODULE_ load_library(LPCSTR_ lpFileName) -{ - return ::LoadLibraryA(lpFileName); -} - -BOOST_FORCEINLINE HMODULE_ load_library_ex(LPCSTR_ lpFileName, HANDLE_ hFile, DWORD_ dwFlags) -{ - return ::LoadLibraryExA(lpFileName, hFile, dwFlags); -} - -BOOST_FORCEINLINE HMODULE_ get_module_handle(LPCSTR_ lpFileName) -{ - return ::GetModuleHandleA(lpFileName); -} - -BOOST_FORCEINLINE DWORD_ get_module_file_name(HMODULE_ hModule, LPSTR_ lpFilename, DWORD_ nSize) -{ - return ::GetModuleFileNameA(hModule, lpFilename, nSize); -} -#endif // #if !defined( BOOST_NO_ANSI_APIS ) - -BOOST_FORCEINLINE HMODULE_ load_library(LPCWSTR_ lpFileName) -{ - return ::LoadLibraryW(lpFileName); -} - -BOOST_FORCEINLINE HMODULE_ load_library_ex(LPCWSTR_ lpFileName, HANDLE_ hFile, DWORD_ dwFlags) -{ - return ::LoadLibraryExW(lpFileName, hFile, dwFlags); -} - -BOOST_FORCEINLINE HMODULE_ get_module_handle(LPCWSTR_ lpFileName) -{ - return ::GetModuleHandleW(lpFileName); -} - -BOOST_FORCEINLINE DWORD_ get_module_file_name(HMODULE_ hModule, LPWSTR_ lpFilename, DWORD_ nSize) -{ - return ::GetModuleFileNameW(hModule, lpFilename, nSize); -} - -} // namespace winapi -} // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_WINAPI_DLL_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/environment.hpp b/lib/3rdParty/boost/boost/detail/winapi/environment.hpp deleted file mode 100644 index c777c4606..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/environment.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// environment.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_ENVIRONMENT_HPP_ -#define BOOST_DETAIL_WINAPI_ENVIRONMENT_HPP_ - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPSTR_ WINAPI GetEnvironmentStringsA(); -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI FreeEnvironmentStringsA(boost::detail::winapi::LPSTR_); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI GetEnvironmentVariableA( - boost::detail::winapi::LPCSTR_ lpName, - boost::detail::winapi::LPSTR_ lpBuffer, - boost::detail::winapi::DWORD_ nSize -); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI SetEnvironmentVariableA( - boost::detail::winapi::LPCSTR_ lpName, - boost::detail::winapi::LPCSTR_ lpValue -); -#endif // !defined( BOOST_NO_ANSI_APIS ) - -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPWSTR_ WINAPI GetEnvironmentStringsW(); -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI FreeEnvironmentStringsW(boost::detail::winapi::LPWSTR_); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI GetEnvironmentVariableW( - boost::detail::winapi::LPCWSTR_ lpName, - boost::detail::winapi::LPWSTR_ lpBuffer, - boost::detail::winapi::DWORD_ nSize -); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI SetEnvironmentVariableW( - boost::detail::winapi::LPCWSTR_ lpName, - boost::detail::winapi::LPCWSTR_ lpValue -); -} // extern "C" -#endif // !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { namespace detail { namespace winapi { - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::GetEnvironmentStringsA; -using ::FreeEnvironmentStringsA; -using ::GetEnvironmentVariableA; -using ::SetEnvironmentVariableA; -#endif // !defined( BOOST_NO_ANSI_APIS ) - -using ::GetEnvironmentStringsW; -using ::FreeEnvironmentStringsW; -using ::GetEnvironmentVariableW; -using ::SetEnvironmentVariableW; - -template< typename Char > -Char* get_environment_strings(); - -#if !defined( BOOST_NO_ANSI_APIS ) - -template< > -BOOST_FORCEINLINE char* get_environment_strings< char >() -{ - return GetEnvironmentStringsA(); -} - -BOOST_FORCEINLINE BOOL_ free_environment_strings(boost::detail::winapi::LPSTR_ p) -{ - return FreeEnvironmentStringsA(p); -} - -BOOST_FORCEINLINE DWORD_ get_environment_variable(LPCSTR_ name, LPSTR_ buffer, DWORD_ size) -{ - return GetEnvironmentVariableA(name, buffer, size); -} - -BOOST_FORCEINLINE BOOL_ set_environment_variable(LPCSTR_ name, LPCSTR_ value) -{ - return SetEnvironmentVariableA(name, value); -} - -#endif // !defined( BOOST_NO_ANSI_APIS ) - -template< > -BOOST_FORCEINLINE wchar_t* get_environment_strings< wchar_t >() -{ - return GetEnvironmentStringsW(); -} - -BOOST_FORCEINLINE BOOL_ free_environment_strings(boost::detail::winapi::LPWSTR_ p) -{ - return FreeEnvironmentStringsW(p); -} - -BOOST_FORCEINLINE DWORD_ get_environment_variable(LPCWSTR_ name, LPWSTR_ buffer, DWORD_ size) -{ - return GetEnvironmentVariableW(name, buffer, size); -} - -BOOST_FORCEINLINE BOOL_ set_environment_variable(LPCWSTR_ name, LPCWSTR_ value) -{ - return SetEnvironmentVariableW(name, value); -} - -} // namespace winapi -} // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_WINAPI_ENVIRONMENT_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/error_codes.hpp b/lib/3rdParty/boost/boost/detail/winapi/error_codes.hpp deleted file mode 100644 index e364fb0ef..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/error_codes.hpp +++ /dev/null @@ -1,2959 +0,0 @@ -// error_codes.hpp --------------------------------------------------------------// - -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_ERROR_CODES_HPP_ -#define BOOST_DETAIL_WINAPI_ERROR_CODES_HPP_ - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { -namespace detail { -namespace winapi { - -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_XPS_ = 82; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_XAML_ = 43; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USN_ = 129; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_BLBUI_ = 128; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SPP_ = 256; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WSB_ONLINE_ = 133; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DLS_ = 153; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_BLB_CLI_ = 121; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_BLB_ = 120; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WSBAPP_ = 122; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WPN_ = 62; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WMAAECMA_ = 1996; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINRM_ = 51; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINPE_ = 61; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINDOWSUPDATE_ = 36; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINDOWS_STORE_ = 63; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINDOWS_SETUP_ = 48; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINDOWS_DEFENDER_ = 80; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINDOWS_CE_ = 24; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINDOWS_ = 8; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WINCODEC_DWRITE_DWM_ = 2200; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WIA_ = 33; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WER_ = 27; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WEP_ = 2049; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WEB_SOCKET_ = 886; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WEB_ = 885; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_VOLSNAP_ = 130; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_VOLMGR_ = 56; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_VISUALCPP_ = 109; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_VIRTUALIZATION_ = 55; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_VHD_ = 58; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_URT_ = 19; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_UMI_ = 22; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_UI_ = 42; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_TPM_SOFTWARE_ = 41; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_TPM_SERVICES_ = 40; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_TIERING_ = 131; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SYNCENGINE_ = 2050; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SXS_ = 23; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_STORAGE_ = 3; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_STATE_MANAGEMENT_ = 34; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SSPI_ = 9; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_SPACES_ = 231; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SOS_ = 160; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SCARD_ = 16; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SHELL_ = 39; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SETUPAPI_ = 15; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SECURITY_ = 9; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SDIAG_ = 60; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_SDBUS_ = 2305; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_RPC_ = 1; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_RESTORE_ = 256; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_SCRIPT_ = 112; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_PARSE_ = 113; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_RAS_ = 83; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_POWERSHELL_ = 84; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_PLA_ = 48; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_PIDGENX_ = 2561; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_P2P_INT_ = 98; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_P2P_ = 99; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_OPC_ = 81; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_ONLINE_ID_ = 134; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WIN32_ = 7; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_CONTROL_ = 10; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_WEBSERVICES_ = 61; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_NULL_ = 0; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_NDIS_ = 52; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_NAP_ = 39; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_MOBILE_ = 1793; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_METADIRECTORY_ = 35; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_MSMQ_ = 14; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_MEDIASERVER_ = 13; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_MBN_ = 84; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_LINGUISTIC_SERVICES_ = 305; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_LEAP_ = 2184; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_JSCRIPT_ = 2306; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_INTERNET_ = 12; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_ITF_ = 4; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_INPUT_ = 64; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_HYPERVISOR_ = 53; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_ACCELERATOR_ = 1536; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_HTTP_ = 25; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_GRAPHICS_ = 38; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_FWP_ = 50; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_FVE_ = 49; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_FILTER_MANAGER_ = 31; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_EAS_ = 85; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_EAP_ = 66; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DXGI_DDI_ = 2171; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DXGI_ = 2170; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DPLAY_ = 21; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DMSERVER_ = 256; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DISPATCH_ = 2; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DIRECTORYSERVICE_ = 37; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DIRECTMUSIC_ = 2168; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DIRECT3D11_ = 2172; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DIRECT3D10_ = 2169; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DIRECT2D_ = 2201; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DAF_ = 100; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_UTIL_ = 260; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT_ = 272; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_TFTP_ = 264; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_PXE_ = 263; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER_ = 289; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT_ = 290; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT_ = 259; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_IMAGING_ = 258; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING_ = 278; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_SERVER_ = 257; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER_ = 293; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEPLOYMENT_SERVICES_BINLSVC_ = 261; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEFRAG_ = 2304; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_DEBUGGERS_ = 176; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_CONFIGURATION_ = 33; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_COMPLUS_ = 17; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_USERMODE_COMMONLOG_ = 26; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_CMI_ = 54; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_CERT_ = 11; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_BLUETOOTH_ATT_ = 101; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_BCD_ = 57; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_BACKGROUNDCOPY_ = 32; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_AUDIOSTREAMING_ = 1094; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_AUDCLNT_ = 2185; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_AUDIO_ = 102; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_ACTION_QUEUE_ = 44; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_ACS_ = 20; -BOOST_CONSTEXPR_OR_CONST DWORD_ FACILITY_AAF_ = 18; - -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SUCCESS_ = 0; -BOOST_CONSTEXPR_OR_CONST DWORD_ NO_ERROR_ = 0; - -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FUNCTION_ = 1; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_NOT_FOUND_ = 2; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATH_NOT_FOUND_ = 3; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_OPEN_FILES_ = 4; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCESS_DENIED_ = 5; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_HANDLE_ = 6; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ARENA_TRASHED_ = 7; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_ENOUGH_MEMORY_ = 8; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_BLOCK_ = 9; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_ENVIRONMENT_ = 10; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_FORMAT_ = 11; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ACCESS_ = 12; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DATA_ = 13; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OUTOFMEMORY_ = 14; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DRIVE_ = 15; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CURRENT_DIRECTORY_ = 16; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SAME_DEVICE_ = 17; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MORE_FILES_ = 18; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRITE_PROTECT_ = 19; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_UNIT_ = 20; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_READY_ = 21; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_COMMAND_ = 22; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CRC_ = 23; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_LENGTH_ = 24; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEEK_ = 25; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_DOS_DISK_ = 26; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECTOR_NOT_FOUND_ = 27; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OUT_OF_PAPER_ = 28; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRITE_FAULT_ = 29; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_READ_FAULT_ = 30; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GEN_FAILURE_ = 31; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHARING_VIOLATION_ = 32; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOCK_VIOLATION_ = 33; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRONG_DISK_ = 34; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHARING_BUFFER_EXCEEDED_ = 36; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HANDLE_EOF_ = 38; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HANDLE_DISK_FULL_ = 39; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SUPPORTED_ = 50; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REM_NOT_LIST_ = 51; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DUP_NAME_ = 52; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_NETPATH_ = 53; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NETWORK_BUSY_ = 54; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEV_NOT_EXIST_ = 55; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_CMDS_ = 56; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ADAP_HDW_ERR_ = 57; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_NET_RESP_ = 58; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNEXP_NET_ERR_ = 59; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_REM_ADAP_ = 60; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTQ_FULL_ = 61; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SPOOL_SPACE_ = 62; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINT_CANCELLED_ = 63; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NETNAME_DELETED_ = 64; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NETWORK_ACCESS_DENIED_ = 65; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DEV_TYPE_ = 66; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_NET_NAME_ = 67; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_NAMES_ = 68; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_SESS_ = 69; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHARING_PAUSED_ = 70; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REQ_NOT_ACCEP_ = 71; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REDIR_PAUSED_ = 72; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_EXISTS_ = 80; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_MAKE_ = 82; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_I24_ = 83; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OUT_OF_STRUCTURES_ = 84; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_ASSIGNED_ = 85; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PASSWORD_ = 86; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PARAMETER_ = 87; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NET_WRITE_FAULT_ = 88; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_PROC_SLOTS_ = 89; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_SEMAPHORES_ = 100; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXCL_SEM_ALREADY_OWNED_ = 101; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEM_IS_SET_ = 102; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_SEM_REQUESTS_ = 103; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_AT_INTERRUPT_TIME_ = 104; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEM_OWNER_DIED_ = 105; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEM_USER_LIMIT_ = 106; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_CHANGE_ = 107; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVE_LOCKED_ = 108; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BROKEN_PIPE_ = 109; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPEN_FAILED_ = 110; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BUFFER_OVERFLOW_ = 111; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_FULL_ = 112; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MORE_SEARCH_HANDLES_ = 113; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TARGET_HANDLE_ = 114; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CATEGORY_ = 117; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_VERIFY_SWITCH_ = 118; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DRIVER_LEVEL_ = 119; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CALL_NOT_IMPLEMENTED_ = 120; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEM_TIMEOUT_ = 121; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSUFFICIENT_BUFFER_ = 122; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_NAME_ = 123; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LEVEL_ = 124; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_VOLUME_LABEL_ = 125; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MOD_NOT_FOUND_ = 126; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROC_NOT_FOUND_ = 127; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAIT_NO_CHILDREN_ = 128; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CHILD_NOT_COMPLETE_ = 129; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIRECT_ACCESS_HANDLE_ = 130; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NEGATIVE_SEEK_ = 131; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEEK_ON_DEVICE_ = 132; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IS_JOIN_TARGET_ = 133; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IS_JOINED_ = 134; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IS_SUBSTED_ = 135; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_JOINED_ = 136; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SUBSTED_ = 137; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_JOIN_TO_JOIN_ = 138; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SUBST_TO_SUBST_ = 139; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_JOIN_TO_SUBST_ = 140; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SUBST_TO_JOIN_ = 141; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BUSY_DRIVE_ = 142; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SAME_DRIVE_ = 143; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIR_NOT_ROOT_ = 144; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIR_NOT_EMPTY_ = 145; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IS_SUBST_PATH_ = 146; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IS_JOIN_PATH_ = 147; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATH_BUSY_ = 148; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IS_SUBST_TARGET_ = 149; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_TRACE_ = 150; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EVENT_COUNT_ = 151; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_MUXWAITERS_ = 152; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LIST_FORMAT_ = 153; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LABEL_TOO_LONG_ = 154; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_TCBS_ = 155; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SIGNAL_REFUSED_ = 156; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISCARDED_ = 157; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_LOCKED_ = 158; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_THREADID_ADDR_ = 159; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_ARGUMENTS_ = 160; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_PATHNAME_ = 161; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SIGNAL_PENDING_ = 162; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MAX_THRDS_REACHED_ = 164; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOCK_FAILED_ = 167; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BUSY_ = 170; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_SUPPORT_IN_PROGRESS_ = 171; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANCEL_VIOLATION_ = 173; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ATOMIC_LOCKS_NOT_SUPPORTED_ = 174; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SEGMENT_NUMBER_ = 180; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ORDINAL_ = 182; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_EXISTS_ = 183; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FLAG_NUMBER_ = 186; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEM_NOT_FOUND_ = 187; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_STARTING_CODESEG_ = 188; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_STACKSEG_ = 189; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MODULETYPE_ = 190; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EXE_SIGNATURE_ = 191; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXE_MARKED_INVALID_ = 192; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_EXE_FORMAT_ = 193; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ITERATED_DATA_EXCEEDS_64k_ = 194; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MINALLOCSIZE_ = 195; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DYNLINK_FROM_INVALID_RING_ = 196; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IOPL_NOT_ENABLED_ = 197; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SEGDPL_ = 198; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_AUTODATASEG_EXCEEDS_64k_ = 199; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RING2SEG_MUST_BE_MOVABLE_ = 200; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RELOC_CHAIN_XEEDS_SEGLIM_ = 201; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INFLOOP_IN_RELOC_CHAIN_ = 202; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ENVVAR_NOT_FOUND_ = 203; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SIGNAL_SENT_ = 205; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILENAME_EXCED_RANGE_ = 206; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RING2_STACK_IN_USE_ = 207; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_META_EXPANSION_TOO_LONG_ = 208; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SIGNAL_NUMBER_ = 209; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_THREAD_1_INACTIVE_ = 210; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOCKED_ = 212; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_MODULES_ = 214; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NESTING_NOT_ALLOWED_ = 215; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXE_MACHINE_TYPE_MISMATCH_ = 216; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY_ = 217; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY_ = 218; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_CHECKED_OUT_ = 220; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CHECKOUT_REQUIRED_ = 221; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_FILE_TYPE_ = 222; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_TOO_LARGE_ = 223; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FORMS_AUTH_REQUIRED_ = 224; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VIRUS_INFECTED_ = 225; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VIRUS_DELETED_ = 226; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PIPE_LOCAL_ = 229; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_PIPE_ = 230; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PIPE_BUSY_ = 231; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_DATA_ = 232; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PIPE_NOT_CONNECTED_ = 233; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MORE_DATA_ = 234; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VC_DISCONNECTED_ = 240; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EA_NAME_ = 254; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EA_LIST_INCONSISTENT_ = 255; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MORE_ITEMS_ = 259; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_COPY_ = 266; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIRECTORY_ = 267; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EAS_DIDNT_FIT_ = 275; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EA_FILE_CORRUPT_ = 276; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EA_TABLE_FULL_ = 277; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EA_HANDLE_ = 278; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EAS_NOT_SUPPORTED_ = 282; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_OWNER_ = 288; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_POSTS_ = 298; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PARTIAL_COPY_ = 299; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPLOCK_NOT_GRANTED_ = 300; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_OPLOCK_PROTOCOL_ = 301; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_TOO_FRAGMENTED_ = 302; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DELETE_PENDING_ = 303; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING_ = 304; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME_ = 305; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECURITY_STREAM_IS_INCONSISTENT_ = 306; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LOCK_RANGE_ = 307; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT_ = 308; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOTIFICATION_GUID_ALREADY_DEFINED_ = 309; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EXCEPTION_HANDLER_ = 310; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DUPLICATE_PRIVILEGES_ = 311; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_RANGES_PROCESSED_ = 312; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_ALLOWED_ON_SYSTEM_FILE_ = 313; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_RESOURCES_EXHAUSTED_ = 314; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TOKEN_ = 315; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_FEATURE_NOT_SUPPORTED_ = 316; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MR_MID_NOT_FOUND_ = 317; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SCOPE_NOT_FOUND_ = 318; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNDEFINED_SCOPE_ = 319; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CAP_ = 320; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_UNREACHABLE_ = 321; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_NO_RESOURCES_ = 322; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATA_CHECKSUM_ERROR_ = 323; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INTERMIXED_KERNEL_EA_OPERATION_ = 324; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED_ = 326; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OFFSET_ALIGNMENT_VIOLATION_ = 327; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FIELD_IN_PARAMETER_LIST_ = 328; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPERATION_IN_PROGRESS_ = 329; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DEVICE_PATH_ = 330; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_DESCRIPTORS_ = 331; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SCRUB_DATA_DISABLED_ = 332; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_REDUNDANT_STORAGE_ = 333; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESIDENT_FILE_NOT_SUPPORTED_ = 334; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COMPRESSED_FILE_NOT_SUPPORTED_ = 335; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIRECTORY_NOT_SUPPORTED_ = 336; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_READ_FROM_COPY_ = 337; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FT_WRITE_FAILURE_ = 338; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FT_DI_SCAN_REQUIRED_ = 339; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_KERNEL_INFO_VERSION_ = 340; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PEP_INFO_VERSION_ = 341; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OBJECT_NOT_EXTERNALLY_BACKED_ = 342; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN_ = 343; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_NOACTION_REBOOT_ = 350; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_SHUTDOWN_ = 351; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_RESTART_ = 352; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MAX_SESSIONS_REACHED_ = 353; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_THREAD_MODE_ALREADY_BACKGROUND_ = 400; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_THREAD_MODE_NOT_BACKGROUND_ = 401; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROCESS_MODE_ALREADY_BACKGROUND_ = 402; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROCESS_MODE_NOT_BACKGROUND_ = 403; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_HARDWARE_ERROR_ = 483; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ADDRESS_ = 487; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_USER_PROFILE_LOAD_ = 500; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ARITHMETIC_OVERFLOW_ = 534; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PIPE_CONNECTED_ = 535; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PIPE_LISTENING_ = 536; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VERIFIER_STOP_ = 537; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ABIOS_ERROR_ = 538; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WX86_WARNING_ = 539; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WX86_ERROR_ = 540; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TIMER_NOT_CANCELED_ = 541; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNWIND_ = 542; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_STACK_ = 543; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_UNWIND_TARGET_ = 544; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PORT_ATTRIBUTES_ = 545; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PORT_MESSAGE_TOO_LONG_ = 546; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_QUOTA_LOWER_ = 547; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_ALREADY_ATTACHED_ = 548; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTRUCTION_MISALIGNMENT_ = 549; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROFILING_NOT_STARTED_ = 550; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROFILING_NOT_STOPPED_ = 551; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COULD_NOT_INTERPRET_ = 552; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROFILING_AT_LIMIT_ = 553; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_WAIT_ = 554; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_TERMINATE_SELF_ = 555; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNEXPECTED_MM_CREATE_ERR_ = 556; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNEXPECTED_MM_MAP_ERROR_ = 557; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNEXPECTED_MM_EXTEND_ERR_ = 558; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_FUNCTION_TABLE_ = 559; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_GUID_TRANSLATION_ = 560; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LDT_SIZE_ = 561; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LDT_OFFSET_ = 563; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LDT_DESCRIPTOR_ = 564; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_THREADS_ = 565; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_THREAD_NOT_IN_PROCESS_ = 566; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGEFILE_QUOTA_EXCEEDED_ = 567; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGON_SERVER_CONFLICT_ = 568; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYNCHRONIZATION_REQUIRED_ = 569; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NET_OPEN_FAILED_ = 570; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IO_PRIVILEGE_FAILED_ = 571; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONTROL_C_EXIT_ = 572; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MISSING_SYSTEMFILE_ = 573; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNHANDLED_EXCEPTION_ = 574; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_INIT_FAILURE_ = 575; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGEFILE_CREATE_FAILED_ = 576; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_IMAGE_HASH_ = 577; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_PAGEFILE_ = 578; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ILLEGAL_FLOAT_CONTEXT_ = 579; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_EVENT_PAIR_ = 580; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_CTRLR_CONFIG_ERROR_ = 581; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ILLEGAL_CHARACTER_ = 582; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNDEFINED_CHARACTER_ = 583; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOPPY_VOLUME_ = 584; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT_ = 585; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BACKUP_CONTROLLER_ = 586; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUTANT_LIMIT_EXCEEDED_ = 587; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FS_DRIVER_REQUIRED_ = 588; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_LOAD_REGISTRY_FILE_ = 589; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEBUG_ATTACH_FAILED_ = 590; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_PROCESS_TERMINATED_ = 591; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATA_NOT_ACCEPTED_ = 592; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VDM_HARD_ERROR_ = 593; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVER_CANCEL_TIMEOUT_ = 594; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REPLY_MESSAGE_MISMATCH_ = 595; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOST_WRITEBEHIND_DATA_ = 596; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLIENT_SERVER_PARAMETERS_INVALID_ = 597; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_TINY_STREAM_ = 598; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STACK_OVERFLOW_READ_ = 599; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONVERT_TO_LARGE_ = 600; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FOUND_OUT_OF_SCOPE_ = 601; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALLOCATE_BUCKET_ = 602; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MARSHALL_OVERFLOW_ = 603; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_VARIANT_ = 604; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_COMPRESSION_BUFFER_ = 605; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_AUDIT_FAILED_ = 606; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TIMER_RESOLUTION_NOT_SET_ = 607; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSUFFICIENT_LOGON_INFO_ = 608; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DLL_ENTRYPOINT_ = 609; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_SERVICE_ENTRYPOINT_ = 610; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IP_ADDRESS_CONFLICT1_ = 611; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IP_ADDRESS_CONFLICT2_ = 612; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REGISTRY_QUOTA_LIMIT_ = 613; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_CALLBACK_ACTIVE_ = 614; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PWD_TOO_SHORT_ = 615; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PWD_TOO_RECENT_ = 616; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PWD_HISTORY_CONFLICT_ = 617; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNSUPPORTED_COMPRESSION_ = 618; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_HW_PROFILE_ = 619; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PLUGPLAY_DEVICE_PATH_ = 620; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUOTA_LIST_INCONSISTENT_ = 621; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVALUATION_EXPIRATION_ = 622; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ILLEGAL_DLL_RELOCATION_ = 623; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DLL_INIT_FAILED_LOGOFF_ = 624; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VALIDATE_CONTINUE_ = 625; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MORE_MATCHES_ = 626; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RANGE_LIST_CONFLICT_ = 627; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVER_SID_MISMATCH_ = 628; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_ENABLE_DENY_ONLY_ = 629; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOAT_MULTIPLE_FAULTS_ = 630; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOAT_MULTIPLE_TRAPS_ = 631; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOINTERFACE_ = 632; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVER_FAILED_SLEEP_ = 633; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORRUPT_SYSTEM_FILE_ = 634; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COMMITMENT_MINIMUM_ = 635; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PNP_RESTART_ENUMERATION_ = 636; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_IMAGE_BAD_SIGNATURE_ = 637; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PNP_REBOOT_REQUIRED_ = 638; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSUFFICIENT_POWER_ = 639; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MULTIPLE_FAULT_VIOLATION_ = 640; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_SHUTDOWN_ = 641; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PORT_NOT_SET_ = 642; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_VERSION_CHECK_FAILURE_ = 643; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RANGE_NOT_FOUND_ = 644; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SAFE_MODE_DRIVER_ = 646; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAILED_DRIVER_ENTRY_ = 647; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_ENUMERATION_ERROR_ = 648; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MOUNT_POINT_NOT_RESOLVED_ = 649; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DEVICE_OBJECT_PARAMETER_ = 650; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_OCCURED_ = 651; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVER_DATABASE_ERROR_ = 652; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_HIVE_TOO_LARGE_ = 653; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVER_FAILED_PRIOR_UNLOAD_ = 654; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLSNAP_PREPARE_HIBERNATE_ = 655; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HIBERNATION_FAILURE_ = 656; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PWD_TOO_LONG_ = 657; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_SYSTEM_LIMITATION_ = 665; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ASSERTION_FAILURE_ = 668; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACPI_ERROR_ = 669; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WOW_ASSERTION_ = 670; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PNP_BAD_MPS_TABLE_ = 671; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PNP_TRANSLATION_FAILED_ = 672; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PNP_IRQ_TRANSLATION_FAILED_ = 673; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PNP_INVALID_ID_ = 674; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAKE_SYSTEM_DEBUGGER_ = 675; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HANDLES_CLOSED_ = 676; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXTRANEOUS_INFORMATION_ = 677; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RXACT_COMMIT_NECESSARY_ = 678; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIA_CHECK_ = 679; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GUID_SUBSTITUTION_MADE_ = 680; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STOPPED_ON_SYMLINK_ = 681; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LONGJUMP_ = 682; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PLUGPLAY_QUERY_VETOED_ = 683; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNWIND_CONSOLIDATE_ = 684; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REGISTRY_HIVE_RECOVERED_ = 685; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DLL_MIGHT_BE_INSECURE_ = 686; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DLL_MIGHT_BE_INCOMPATIBLE_ = 687; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_EXCEPTION_NOT_HANDLED_ = 688; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_REPLY_LATER_ = 689; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE_ = 690; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_TERMINATE_THREAD_ = 691; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_TERMINATE_PROCESS_ = 692; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_CONTROL_C_ = 693; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_PRINTEXCEPTION_C_ = 694; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_RIPEXCEPTION_ = 695; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_CONTROL_BREAK_ = 696; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_COMMAND_EXCEPTION_ = 697; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OBJECT_NAME_EXISTS_ = 698; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_THREAD_WAS_SUSPENDED_ = 699; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMAGE_NOT_AT_BASE_ = 700; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RXACT_STATE_CREATED_ = 701; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SEGMENT_NOTIFICATION_ = 702; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_CURRENT_DIRECTORY_ = 703; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FT_READ_RECOVERY_FROM_BACKUP_ = 704; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FT_WRITE_RECOVERY_ = 705; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMAGE_MACHINE_TYPE_MISMATCH_ = 706; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RECEIVE_PARTIAL_ = 707; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RECEIVE_EXPEDITED_ = 708; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RECEIVE_PARTIAL_EXPEDITED_ = 709; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVENT_DONE_ = 710; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVENT_PENDING_ = 711; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CHECKING_FILE_SYSTEM_ = 712; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FATAL_APP_EXIT_ = 713; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PREDEFINED_HANDLE_ = 714; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAS_UNLOCKED_ = 715; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NOTIFICATION_ = 716; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAS_LOCKED_ = 717; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_HARD_ERROR_ = 718; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_WIN32_ = 719; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE_ = 720; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_YIELD_PERFORMED_ = 721; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TIMER_RESUME_IGNORED_ = 722; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ARBITRATION_UNHANDLED_ = 723; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CARDBUS_NOT_SUPPORTED_ = 724; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MP_PROCESSOR_MISMATCH_ = 725; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HIBERNATED_ = 726; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESUME_HIBERNATION_ = 727; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FIRMWARE_UPDATED_ = 728; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVERS_LEAKING_LOCKED_PAGES_ = 729; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAKE_SYSTEM_ = 730; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAIT_1_ = 731; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAIT_2_ = 732; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAIT_3_ = 733; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAIT_63_ = 734; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ABANDONED_WAIT_0_ = 735; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ABANDONED_WAIT_63_ = 736; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_USER_APC_ = 737; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_KERNEL_APC_ = 738; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALERTED_ = 739; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ELEVATION_REQUIRED_ = 740; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REPARSE_ = 741; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPLOCK_BREAK_IN_PROGRESS_ = 742; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLUME_MOUNTED_ = 743; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RXACT_COMMITTED_ = 744; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOTIFY_CLEANUP_ = 745; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED_ = 746; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGE_FAULT_TRANSITION_ = 747; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGE_FAULT_DEMAND_ZERO_ = 748; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGE_FAULT_COPY_ON_WRITE_ = 749; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGE_FAULT_GUARD_PAGE_ = 750; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGE_FAULT_PAGING_FILE_ = 751; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CACHE_PAGE_LOCKED_ = 752; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CRASH_DUMP_ = 753; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BUFFER_ALL_ZEROS_ = 754; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REPARSE_OBJECT_ = 755; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_REQUIREMENTS_CHANGED_ = 756; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSLATION_COMPLETE_ = 757; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOTHING_TO_TERMINATE_ = 758; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROCESS_NOT_IN_JOB_ = 759; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROCESS_IN_JOB_ = 760; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLSNAP_HIBERNATE_READY_ = 761; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY_ = 762; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED_ = 763; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INTERRUPT_STILL_CONNECTED_ = 764; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WAIT_FOR_OPLOCK_ = 765; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_EXCEPTION_HANDLED_ = 766; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DBG_CONTINUE_ = 767; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CALLBACK_POP_STACK_ = 768; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COMPRESSION_DISABLED_ = 769; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANTFETCHBACKWARDS_ = 770; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANTSCROLLBACKWARDS_ = 771; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ROWSNOTRELEASED_ = 772; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_ACCESSOR_FLAGS_ = 773; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ERRORS_ENCOUNTERED_ = 774; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_CAPABLE_ = 775; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REQUEST_OUT_OF_SEQUENCE_ = 776; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VERSION_PARSE_ERROR_ = 777; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BADSTARTPOSITION_ = 778; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEMORY_HARDWARE_ = 779; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_REPAIR_DISABLED_ = 780; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE_ = 781; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_POWERSTATE_TRANSITION_ = 782; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION_ = 783; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_EXCEPTION_ = 784; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCESS_AUDIT_BY_POLICY_ = 785; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY_ = 786; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ABANDON_HIBERFILE_ = 787; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED_ = 788; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR_ = 789; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR_ = 790; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_MCFG_TABLE_ = 791; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_REPAIR_REDIRECTED_ = 792; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_REPAIR_UNSUCCESSFUL_ = 793; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORRUPT_LOG_OVERFULL_ = 794; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORRUPT_LOG_CORRUPTED_ = 795; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORRUPT_LOG_UNAVAILABLE_ = 796; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORRUPT_LOG_DELETED_FULL_ = 797; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORRUPT_LOG_CLEARED_ = 798; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ORPHAN_NAME_EXHAUSTED_ = 799; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE_ = 800; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_GRANT_REQUESTED_OPLOCK_ = 801; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_BREAK_OPLOCK_ = 802; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPLOCK_HANDLE_CLOSED_ = 803; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_ACE_CONDITION_ = 804; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ACE_CONDITION_ = 805; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_HANDLE_REVOKED_ = 806; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMAGE_AT_DIFFERENT_BASE_ = 807; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ENCRYPTED_IO_NOT_POSSIBLE_ = 808; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EA_ACCESS_DENIED_ = 994; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPERATION_ABORTED_ = 995; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IO_INCOMPLETE_ = 996; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IO_PENDING_ = 997; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOACCESS_ = 998; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SWAPERROR_ = 999; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STACK_OVERFLOW_ = 1001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MESSAGE_ = 1002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CAN_NOT_COMPLETE_ = 1003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FLAGS_ = 1004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNRECOGNIZED_VOLUME_ = 1005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_INVALID_ = 1006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FULLSCREEN_MODE_ = 1007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_TOKEN_ = 1008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BADDB_ = 1009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BADKEY_ = 1010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANTOPEN_ = 1011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANTREAD_ = 1012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANTWRITE_ = 1013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REGISTRY_RECOVERED_ = 1014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REGISTRY_CORRUPT_ = 1015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REGISTRY_IO_FAILED_ = 1016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_REGISTRY_FILE_ = 1017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_KEY_DELETED_ = 1018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_LOG_SPACE_ = 1019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_KEY_HAS_CHILDREN_ = 1020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CHILD_MUST_BE_VOLATILE_ = 1021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOTIFY_ENUM_DIR_ = 1022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENT_SERVICES_RUNNING_ = 1051; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SERVICE_CONTROL_ = 1052; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_REQUEST_TIMEOUT_ = 1053; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NO_THREAD_ = 1054; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_DATABASE_LOCKED_ = 1055; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_ALREADY_RUNNING_ = 1056; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SERVICE_ACCOUNT_ = 1057; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_DISABLED_ = 1058; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CIRCULAR_DEPENDENCY_ = 1059; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_DOES_NOT_EXIST_ = 1060; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_CANNOT_ACCEPT_CTRL_ = 1061; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NOT_ACTIVE_ = 1062; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAILED_SERVICE_CONTROLLER_CONNECT_ = 1063; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXCEPTION_IN_SERVICE_ = 1064; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATABASE_DOES_NOT_EXIST_ = 1065; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_SPECIFIC_ERROR_ = 1066; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROCESS_ABORTED_ = 1067; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_DEPENDENCY_FAIL_ = 1068; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_LOGON_FAILED_ = 1069; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_START_HANG_ = 1070; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SERVICE_LOCK_ = 1071; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_MARKED_FOR_DELETE_ = 1072; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_EXISTS_ = 1073; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_RUNNING_LKG_ = 1074; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_DEPENDENCY_DELETED_ = 1075; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BOOT_ALREADY_ACCEPTED_ = 1076; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NEVER_STARTED_ = 1077; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DUPLICATE_SERVICE_NAME_ = 1078; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIFFERENT_SERVICE_ACCOUNT_ = 1079; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_DETECT_DRIVER_FAILURE_ = 1080; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_DETECT_PROCESS_ABORT_ = 1081; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_RECOVERY_PROGRAM_ = 1082; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NOT_IN_EXE_ = 1083; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SAFEBOOT_SERVICE_ = 1084; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_END_OF_MEDIA_ = 1100; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILEMARK_DETECTED_ = 1101; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BEGINNING_OF_MEDIA_ = 1102; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SETMARK_DETECTED_ = 1103; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_DATA_DETECTED_ = 1104; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PARTITION_FAILURE_ = 1105; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_BLOCK_LENGTH_ = 1106; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_NOT_PARTITIONED_ = 1107; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_LOCK_MEDIA_ = 1108; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_UNLOAD_MEDIA_ = 1109; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIA_CHANGED_ = 1110; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BUS_RESET_ = 1111; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MEDIA_IN_DRIVE_ = 1112; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_UNICODE_TRANSLATION_ = 1113; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DLL_INIT_FAILED_ = 1114; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHUTDOWN_IN_PROGRESS_ = 1115; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SHUTDOWN_IN_PROGRESS_ = 1116; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IO_DEVICE_ = 1117; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERIAL_NO_DEVICE_ = 1118; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IRQ_BUSY_ = 1119; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MORE_WRITES_ = 1120; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COUNTER_TIMEOUT_ = 1121; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOPPY_ID_MARK_NOT_FOUND_ = 1122; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOPPY_WRONG_CYLINDER_ = 1123; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOPPY_UNKNOWN_ERROR_ = 1124; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOPPY_BAD_REGISTERS_ = 1125; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_RECALIBRATE_FAILED_ = 1126; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_OPERATION_FAILED_ = 1127; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_RESET_FAILED_ = 1128; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EOM_OVERFLOW_ = 1129; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_ENOUGH_SERVER_MEMORY_ = 1130; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_POSSIBLE_DEADLOCK_ = 1131; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MAPPED_ALIGNMENT_ = 1132; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SET_POWER_STATE_VETOED_ = 1140; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SET_POWER_STATE_FAILED_ = 1141; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_LINKS_ = 1142; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OLD_WIN_VERSION_ = 1150; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_WRONG_OS_ = 1151; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SINGLE_INSTANCE_APP_ = 1152; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RMODE_APP_ = 1153; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DLL_ = 1154; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_ASSOCIATION_ = 1155; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DDE_FAIL_ = 1156; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DLL_NOT_FOUND_ = 1157; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MORE_USER_HANDLES_ = 1158; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MESSAGE_SYNC_ONLY_ = 1159; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SOURCE_ELEMENT_EMPTY_ = 1160; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DESTINATION_ELEMENT_FULL_ = 1161; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ILLEGAL_ELEMENT_ADDRESS_ = 1162; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MAGAZINE_NOT_PRESENT_ = 1163; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_REINITIALIZATION_NEEDED_ = 1164; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_REQUIRES_CLEANING_ = 1165; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_DOOR_OPEN_ = 1166; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_NOT_CONNECTED_ = 1167; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_FOUND_ = 1168; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MATCH_ = 1169; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SET_NOT_FOUND_ = 1170; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_POINT_NOT_FOUND_ = 1171; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_TRACKING_SERVICE_ = 1172; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_VOLUME_ID_ = 1173; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_REMOVE_REPLACED_ = 1175; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_MOVE_REPLACEMENT_ = 1176; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_MOVE_REPLACEMENT_2_ = 1177; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_JOURNAL_DELETE_IN_PROGRESS_ = 1178; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_JOURNAL_NOT_ACTIVE_ = 1179; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_POTENTIAL_FILE_FOUND_ = 1180; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_JOURNAL_ENTRY_DELETED_ = 1181; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHUTDOWN_IS_SCHEDULED_ = 1190; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHUTDOWN_USERS_LOGGED_ON_ = 1191; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DEVICE_ = 1200; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTION_UNAVAIL_ = 1201; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_ALREADY_REMEMBERED_ = 1202; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_NET_OR_BAD_PATH_ = 1203; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_PROVIDER_ = 1204; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_OPEN_PROFILE_ = 1205; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_PROFILE_ = 1206; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_CONTAINER_ = 1207; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXTENDED_ERROR_ = 1208; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_GROUPNAME_ = 1209; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_COMPUTERNAME_ = 1210; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EVENTNAME_ = 1211; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DOMAINNAME_ = 1212; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SERVICENAME_ = 1213; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_NETNAME_ = 1214; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SHARENAME_ = 1215; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PASSWORDNAME_ = 1216; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MESSAGENAME_ = 1217; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MESSAGEDEST_ = 1218; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SESSION_CREDENTIAL_CONFLICT_ = 1219; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REMOTE_SESSION_LIMIT_EXCEEDED_ = 1220; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DUP_DOMAINNAME_ = 1221; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_NETWORK_ = 1222; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANCELLED_ = 1223; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_USER_MAPPED_FILE_ = 1224; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTION_REFUSED_ = 1225; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GRACEFUL_DISCONNECT_ = 1226; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ADDRESS_ALREADY_ASSOCIATED_ = 1227; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ADDRESS_NOT_ASSOCIATED_ = 1228; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTION_INVALID_ = 1229; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTION_ACTIVE_ = 1230; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NETWORK_UNREACHABLE_ = 1231; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOST_UNREACHABLE_ = 1232; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROTOCOL_UNREACHABLE_ = 1233; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PORT_UNREACHABLE_ = 1234; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REQUEST_ABORTED_ = 1235; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTION_ABORTED_ = 1236; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RETRY_ = 1237; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTION_COUNT_LIMIT_ = 1238; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGIN_TIME_RESTRICTION_ = 1239; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGIN_WKSTA_RESTRICTION_ = 1240; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INCORRECT_ADDRESS_ = 1241; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_REGISTERED_ = 1242; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NOT_FOUND_ = 1243; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_AUTHENTICATED_ = 1244; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_LOGGED_ON_ = 1245; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONTINUE_ = 1246; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_INITIALIZED_ = 1247; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_MORE_DEVICES_ = 1248; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_SITE_ = 1249; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_CONTROLLER_EXISTS_ = 1250; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ONLY_IF_CONNECTED_ = 1251; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OVERRIDE_NOCHANGES_ = 1252; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_USER_PROFILE_ = 1253; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SUPPORTED_ON_SBS_ = 1254; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVER_SHUTDOWN_IN_PROGRESS_ = 1255; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOST_DOWN_ = 1256; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NON_ACCOUNT_SID_ = 1257; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NON_DOMAIN_SID_ = 1258; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APPHELP_BLOCK_ = 1259; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCESS_DISABLED_BY_POLICY_ = 1260; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REG_NAT_CONSUMPTION_ = 1261; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CSCSHARE_OFFLINE_ = 1262; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PKINIT_FAILURE_ = 1263; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SMARTCARD_SUBSYSTEM_FAILURE_ = 1264; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOWNGRADE_DETECTED_ = 1265; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MACHINE_LOCKED_ = 1271; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CALLBACK_SUPPLIED_INVALID_DATA_ = 1273; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED_ = 1274; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVER_BLOCKED_ = 1275; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_IMPORT_OF_NON_DLL_ = 1276; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCESS_DISABLED_WEBBLADE_ = 1277; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER_ = 1278; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RECOVERY_FAILURE_ = 1279; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_FIBER_ = 1280; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_THREAD_ = 1281; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STACK_BUFFER_OVERRUN_ = 1282; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PARAMETER_QUOTA_EXCEEDED_ = 1283; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEBUGGER_INACTIVE_ = 1284; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DELAY_LOAD_FAILED_ = 1285; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VDM_DISALLOWED_ = 1286; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNIDENTIFIED_ERROR_ = 1287; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CRUNTIME_PARAMETER_ = 1288; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BEYOND_VDL_ = 1289; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INCOMPATIBLE_SERVICE_SID_TYPE_ = 1290; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVER_PROCESS_TERMINATED_ = 1291; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMPLEMENTATION_LIMIT_ = 1292; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROCESS_IS_PROTECTED_ = 1293; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICE_NOTIFY_CLIENT_LAGGING_ = 1294; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_QUOTA_EXCEEDED_ = 1295; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONTENT_BLOCKED_ = 1296; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE_ = 1297; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_HANG_ = 1298; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LABEL_ = 1299; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_ALL_ASSIGNED_ = 1300; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SOME_NOT_MAPPED_ = 1301; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_QUOTAS_FOR_ACCOUNT_ = 1302; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOCAL_USER_SESSION_KEY_ = 1303; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NULL_LM_PASSWORD_ = 1304; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_REVISION_ = 1305; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REVISION_MISMATCH_ = 1306; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_OWNER_ = 1307; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRIMARY_GROUP_ = 1308; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_IMPERSONATION_TOKEN_ = 1309; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_DISABLE_MANDATORY_ = 1310; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_LOGON_SERVERS_ = 1311; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_LOGON_SESSION_ = 1312; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_PRIVILEGE_ = 1313; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRIVILEGE_NOT_HELD_ = 1314; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ACCOUNT_NAME_ = 1315; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_USER_EXISTS_ = 1316; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_USER_ = 1317; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GROUP_EXISTS_ = 1318; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_GROUP_ = 1319; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEMBER_IN_GROUP_ = 1320; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEMBER_NOT_IN_GROUP_ = 1321; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LAST_ADMIN_ = 1322; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRONG_PASSWORD_ = 1323; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ILL_FORMED_PASSWORD_ = 1324; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PASSWORD_RESTRICTION_ = 1325; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGON_FAILURE_ = 1326; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCOUNT_RESTRICTION_ = 1327; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LOGON_HOURS_ = 1328; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_WORKSTATION_ = 1329; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PASSWORD_EXPIRED_ = 1330; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCOUNT_DISABLED_ = 1331; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NONE_MAPPED_ = 1332; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_LUIDS_REQUESTED_ = 1333; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LUIDS_EXHAUSTED_ = 1334; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SUB_AUTHORITY_ = 1335; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ACL_ = 1336; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SID_ = 1337; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SECURITY_DESCR_ = 1338; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_INHERITANCE_ACL_ = 1340; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVER_DISABLED_ = 1341; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVER_NOT_DISABLED_ = 1342; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ID_AUTHORITY_ = 1343; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALLOTTED_SPACE_EXCEEDED_ = 1344; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_GROUP_ATTRIBUTES_ = 1345; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_IMPERSONATION_LEVEL_ = 1346; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_OPEN_ANONYMOUS_ = 1347; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_VALIDATION_CLASS_ = 1348; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_TOKEN_TYPE_ = 1349; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SECURITY_ON_OBJECT_ = 1350; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_ACCESS_DOMAIN_INFO_ = 1351; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SERVER_STATE_ = 1352; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DOMAIN_STATE_ = 1353; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DOMAIN_ROLE_ = 1354; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_DOMAIN_ = 1355; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_EXISTS_ = 1356; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_LIMIT_EXCEEDED_ = 1357; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INTERNAL_DB_CORRUPTION_ = 1358; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INTERNAL_ERROR_ = 1359; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GENERIC_NOT_MAPPED_ = 1360; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DESCRIPTOR_FORMAT_ = 1361; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_LOGON_PROCESS_ = 1362; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGON_SESSION_EXISTS_ = 1363; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_PACKAGE_ = 1364; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_LOGON_SESSION_STATE_ = 1365; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGON_SESSION_COLLISION_ = 1366; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LOGON_TYPE_ = 1367; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_IMPERSONATE_ = 1368; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RXACT_INVALID_STATE_ = 1369; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RXACT_COMMIT_FAILURE_ = 1370; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPECIAL_ACCOUNT_ = 1371; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPECIAL_GROUP_ = 1372; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPECIAL_USER_ = 1373; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEMBERS_PRIMARY_GROUP_ = 1374; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOKEN_ALREADY_IN_USE_ = 1375; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_ALIAS_ = 1376; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEMBER_NOT_IN_ALIAS_ = 1377; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEMBER_IN_ALIAS_ = 1378; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALIAS_EXISTS_ = 1379; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGON_NOT_GRANTED_ = 1380; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_SECRETS_ = 1381; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECRET_TOO_LONG_ = 1382; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INTERNAL_DB_ERROR_ = 1383; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_CONTEXT_IDS_ = 1384; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOGON_TYPE_NOT_GRANTED_ = 1385; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NT_CROSS_ENCRYPTION_REQUIRED_ = 1386; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUCH_MEMBER_ = 1387; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MEMBER_ = 1388; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TOO_MANY_SIDS_ = 1389; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LM_CROSS_ENCRYPTION_REQUIRED_ = 1390; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_INHERITANCE_ = 1391; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_CORRUPT_ = 1392; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_CORRUPT_ = 1393; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_USER_SESSION_KEY_ = 1394; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LICENSE_QUOTA_EXCEEDED_ = 1395; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRONG_TARGET_NAME_ = 1396; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUTUAL_AUTH_FAILED_ = 1397; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TIME_SKEW_ = 1398; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CURRENT_DOMAIN_NOT_ALLOWED_ = 1399; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_WINDOW_HANDLE_ = 1400; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MENU_HANDLE_ = 1401; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CURSOR_HANDLE_ = 1402; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ACCEL_HANDLE_ = 1403; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_HOOK_HANDLE_ = 1404; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DWP_HANDLE_ = 1405; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TLW_WITH_WSCHILD_ = 1406; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_FIND_WND_CLASS_ = 1407; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WINDOW_OF_OTHER_THREAD_ = 1408; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOTKEY_ALREADY_REGISTERED_ = 1409; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLASS_ALREADY_EXISTS_ = 1410; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLASS_DOES_NOT_EXIST_ = 1411; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLASS_HAS_WINDOWS_ = 1412; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_INDEX_ = 1413; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ICON_HANDLE_ = 1414; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRIVATE_DIALOG_INDEX_ = 1415; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LISTBOX_ID_NOT_FOUND_ = 1416; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_WILDCARD_CHARACTERS_ = 1417; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLIPBOARD_NOT_OPEN_ = 1418; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOTKEY_NOT_REGISTERED_ = 1419; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WINDOW_NOT_DIALOG_ = 1420; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONTROL_ID_NOT_FOUND_ = 1421; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_COMBOBOX_MESSAGE_ = 1422; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WINDOW_NOT_COMBOBOX_ = 1423; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_EDIT_HEIGHT_ = 1424; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DC_NOT_FOUND_ = 1425; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_HOOK_FILTER_ = 1426; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FILTER_PROC_ = 1427; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOOK_NEEDS_HMOD_ = 1428; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GLOBAL_ONLY_HOOK_ = 1429; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_JOURNAL_HOOK_SET_ = 1430; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOOK_NOT_INSTALLED_ = 1431; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LB_MESSAGE_ = 1432; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SETCOUNT_ON_BAD_LB_ = 1433; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LB_WITHOUT_TABSTOPS_ = 1434; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DESTROY_OBJECT_OF_OTHER_THREAD_ = 1435; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CHILD_WINDOW_MENU_ = 1436; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SYSTEM_MENU_ = 1437; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MSGBOX_STYLE_ = 1438; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SPI_VALUE_ = 1439; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SCREEN_ALREADY_LOCKED_ = 1440; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HWNDS_HAVE_DIFF_PARENT_ = 1441; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_CHILD_WINDOW_ = 1442; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_GW_COMMAND_ = 1443; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_THREAD_ID_ = 1444; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NON_MDICHILD_WINDOW_ = 1445; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_POPUP_ALREADY_ACTIVE_ = 1446; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SCROLLBARS_ = 1447; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SCROLLBAR_RANGE_ = 1448; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SHOWWIN_COMMAND_ = 1449; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SYSTEM_RESOURCES_ = 1450; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NONPAGED_SYSTEM_RESOURCES_ = 1451; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGED_SYSTEM_RESOURCES_ = 1452; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WORKING_SET_QUOTA_ = 1453; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PAGEFILE_QUOTA_ = 1454; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COMMITMENT_LIMIT_ = 1455; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MENU_ITEM_NOT_FOUND_ = 1456; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_KEYBOARD_HANDLE_ = 1457; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOOK_TYPE_NOT_ALLOWED_ = 1458; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION_ = 1459; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TIMEOUT_ = 1460; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MONITOR_HANDLE_ = 1461; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INCORRECT_SIZE_ = 1462; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYMLINK_CLASS_DISABLED_ = 1463; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYMLINK_NOT_SUPPORTED_ = 1464; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_XML_PARSE_ERROR_ = 1465; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_XMLDSIG_ERROR_ = 1466; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESTART_APPLICATION_ = 1467; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRONG_COMPARTMENT_ = 1468; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_AUTHIP_FAILURE_ = 1469; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_NVRAM_RESOURCES_ = 1470; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_GUI_PROCESS_ = 1471; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVENTLOG_FILE_CORRUPT_ = 1500; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVENTLOG_CANT_START_ = 1501; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_FILE_FULL_ = 1502; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVENTLOG_FILE_CHANGED_ = 1503; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TASK_NAME_ = 1550; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TASK_INDEX_ = 1551; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_THREAD_ALREADY_IN_TASK_ = 1552; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_SERVICE_FAILURE_ = 1601; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_USEREXIT_ = 1602; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_FAILURE_ = 1603; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_SUSPEND_ = 1604; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PRODUCT_ = 1605; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_FEATURE_ = 1606; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_COMPONENT_ = 1607; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PROPERTY_ = 1608; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_HANDLE_STATE_ = 1609; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_CONFIGURATION_ = 1610; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INDEX_ABSENT_ = 1611; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_SOURCE_ABSENT_ = 1612; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PACKAGE_VERSION_ = 1613; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRODUCT_UNINSTALLED_ = 1614; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_QUERY_SYNTAX_ = 1615; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FIELD_ = 1616; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_REMOVED_ = 1617; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_ALREADY_RUNNING_ = 1618; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PACKAGE_OPEN_FAILED_ = 1619; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PACKAGE_INVALID_ = 1620; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_UI_FAILURE_ = 1621; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_LOG_FAILURE_ = 1622; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_LANGUAGE_UNSUPPORTED_ = 1623; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_TRANSFORM_FAILURE_ = 1624; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PACKAGE_REJECTED_ = 1625; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FUNCTION_NOT_CALLED_ = 1626; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FUNCTION_FAILED_ = 1627; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TABLE_ = 1628; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATATYPE_MISMATCH_ = 1629; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNSUPPORTED_TYPE_ = 1630; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CREATE_FAILED_ = 1631; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_TEMP_UNWRITABLE_ = 1632; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PLATFORM_UNSUPPORTED_ = 1633; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_NOTUSED_ = 1634; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_PACKAGE_OPEN_FAILED_ = 1635; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_PACKAGE_INVALID_ = 1636; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_PACKAGE_UNSUPPORTED_ = 1637; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRODUCT_VERSION_ = 1638; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_COMMAND_LINE_ = 1639; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_REMOTE_DISALLOWED_ = 1640; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SUCCESS_REBOOT_INITIATED_ = 1641; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_TARGET_NOT_FOUND_ = 1642; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_PACKAGE_REJECTED_ = 1643; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_TRANSFORM_REJECTED_ = 1644; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_REMOTE_PROHIBITED_ = 1645; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_REMOVAL_UNSUPPORTED_ = 1646; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PATCH_ = 1647; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_NO_SEQUENCE_ = 1648; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_REMOVAL_DISALLOWED_ = 1649; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PATCH_XML_ = 1650; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT_ = 1651; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_SERVICE_SAFEBOOT_ = 1652; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_FAST_EXCEPTION_ = 1653; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_REJECTED_ = 1654; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DYNAMIC_CODE_BLOCKED_ = 1655; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_STRING_BINDING_ = 1700; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_WRONG_KIND_OF_BINDING_ = 1701; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_BINDING_ = 1702; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PROTSEQ_NOT_SUPPORTED_ = 1703; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_RPC_PROTSEQ_ = 1704; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_STRING_UUID_ = 1705; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_ENDPOINT_FORMAT_ = 1706; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_NET_ADDR_ = 1707; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_ENDPOINT_FOUND_ = 1708; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_TIMEOUT_ = 1709; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_OBJECT_NOT_FOUND_ = 1710; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ALREADY_REGISTERED_ = 1711; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_TYPE_ALREADY_REGISTERED_ = 1712; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ALREADY_LISTENING_ = 1713; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_PROTSEQS_REGISTERED_ = 1714; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NOT_LISTENING_ = 1715; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNKNOWN_MGR_TYPE_ = 1716; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNKNOWN_IF_ = 1717; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_BINDINGS_ = 1718; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_PROTSEQS_ = 1719; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_CANT_CREATE_ENDPOINT_ = 1720; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_OUT_OF_RESOURCES_ = 1721; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_SERVER_UNAVAILABLE_ = 1722; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_SERVER_TOO_BUSY_ = 1723; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_NETWORK_OPTIONS_ = 1724; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_CALL_ACTIVE_ = 1725; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_CALL_FAILED_ = 1726; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_CALL_FAILED_DNE_ = 1727; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PROTOCOL_ERROR_ = 1728; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PROXY_ACCESS_DENIED_ = 1729; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNSUPPORTED_TRANS_SYN_ = 1730; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNSUPPORTED_TYPE_ = 1732; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_TAG_ = 1733; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_BOUND_ = 1734; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_ENTRY_NAME_ = 1735; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_NAME_SYNTAX_ = 1736; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNSUPPORTED_NAME_SYNTAX_ = 1737; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UUID_NO_ADDRESS_ = 1739; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_DUPLICATE_ENDPOINT_ = 1740; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNKNOWN_AUTHN_TYPE_ = 1741; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_MAX_CALLS_TOO_SMALL_ = 1742; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_STRING_TOO_LONG_ = 1743; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PROTSEQ_NOT_FOUND_ = 1744; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PROCNUM_OUT_OF_RANGE_ = 1745; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_BINDING_HAS_NO_AUTH_ = 1746; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNKNOWN_AUTHN_SERVICE_ = 1747; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNKNOWN_AUTHN_LEVEL_ = 1748; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_AUTH_IDENTITY_ = 1749; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNKNOWN_AUTHZ_SERVICE_ = 1750; -BOOST_CONSTEXPR_OR_CONST DWORD_ EPT_S_INVALID_ENTRY_ = 1751; -BOOST_CONSTEXPR_OR_CONST DWORD_ EPT_S_CANT_PERFORM_OP_ = 1752; -BOOST_CONSTEXPR_OR_CONST DWORD_ EPT_S_NOT_REGISTERED_ = 1753; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NOTHING_TO_EXPORT_ = 1754; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INCOMPLETE_NAME_ = 1755; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_VERS_OPTION_ = 1756; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_MORE_MEMBERS_ = 1757; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NOT_ALL_OBJS_UNEXPORTED_ = 1758; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INTERFACE_NOT_FOUND_ = 1759; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ENTRY_ALREADY_EXISTS_ = 1760; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ENTRY_NOT_FOUND_ = 1761; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NAME_SERVICE_UNAVAILABLE_ = 1762; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_NAF_ID_ = 1763; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_CANNOT_SUPPORT_ = 1764; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_CONTEXT_AVAILABLE_ = 1765; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INTERNAL_ERROR_ = 1766; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ZERO_DIVIDE_ = 1767; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ADDRESS_ERROR_ = 1768; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_FP_DIV_ZERO_ = 1769; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_FP_UNDERFLOW_ = 1770; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_FP_OVERFLOW_ = 1771; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_NO_MORE_ENTRIES_ = 1772; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_SS_CHAR_TRANS_OPEN_FAIL_ = 1773; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_SS_CHAR_TRANS_SHORT_FILE_ = 1774; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_SS_IN_NULL_CONTEXT_ = 1775; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_SS_CONTEXT_DAMAGED_ = 1777; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_SS_HANDLES_MISMATCH_ = 1778; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_SS_CANNOT_GET_CALL_HANDLE_ = 1779; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_NULL_REF_POINTER_ = 1780; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_ENUM_VALUE_OUT_OF_RANGE_ = 1781; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_BYTE_COUNT_TOO_SMALL_ = 1782; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_BAD_STUB_DATA_ = 1783; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_USER_BUFFER_ = 1784; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNRECOGNIZED_MEDIA_ = 1785; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_TRUST_LSA_SECRET_ = 1786; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_TRUST_SAM_ACCOUNT_ = 1787; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRUSTED_DOMAIN_FAILURE_ = 1788; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRUSTED_RELATIONSHIP_FAILURE_ = 1789; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRUST_FAILURE_ = 1790; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_CALL_IN_PROGRESS_ = 1791; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NETLOGON_NOT_STARTED_ = 1792; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCOUNT_EXPIRED_ = 1793; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REDIRECTOR_HAS_OPEN_HANDLES_ = 1794; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DRIVER_ALREADY_INSTALLED_ = 1795; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PORT_ = 1796; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PRINTER_DRIVER_ = 1797; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PRINTPROCESSOR_ = 1798; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_SEPARATOR_FILE_ = 1799; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRIORITY_ = 1800; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRINTER_NAME_ = 1801; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_ALREADY_EXISTS_ = 1802; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRINTER_COMMAND_ = 1803; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DATATYPE_ = 1804; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_ENVIRONMENT_ = 1805; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_MORE_BINDINGS_ = 1806; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT_ = 1807; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT_ = 1808; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOLOGON_SERVER_TRUST_ACCOUNT_ = 1809; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_TRUST_INCONSISTENT_ = 1810; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVER_HAS_OPEN_HANDLES_ = 1811; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_DATA_NOT_FOUND_ = 1812; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_TYPE_NOT_FOUND_ = 1813; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_NAME_NOT_FOUND_ = 1814; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_LANG_NOT_FOUND_ = 1815; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_ENOUGH_QUOTA_ = 1816; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_INTERFACES_ = 1817; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_CALL_CANCELLED_ = 1818; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_BINDING_INCOMPLETE_ = 1819; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_COMM_FAILURE_ = 1820; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UNSUPPORTED_AUTHN_LEVEL_ = 1821; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NO_PRINC_NAME_ = 1822; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NOT_RPC_ERROR_ = 1823; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_UUID_LOCAL_ONLY_ = 1824; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_SEC_PKG_ERROR_ = 1825; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NOT_CANCELLED_ = 1826; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_INVALID_ES_ACTION_ = 1827; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_WRONG_ES_VERSION_ = 1828; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_WRONG_STUB_VERSION_ = 1829; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_INVALID_PIPE_OBJECT_ = 1830; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_WRONG_PIPE_ORDER_ = 1831; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_WRONG_PIPE_VERSION_ = 1832; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_COOKIE_AUTH_FAILED_ = 1833; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_GROUP_MEMBER_NOT_FOUND_ = 1898; -BOOST_CONSTEXPR_OR_CONST DWORD_ EPT_S_CANT_CREATE_ = 1899; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_OBJECT_ = 1900; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TIME_ = 1901; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FORM_NAME_ = 1902; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_FORM_SIZE_ = 1903; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALREADY_WAITING_ = 1904; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DELETED_ = 1905; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRINTER_STATE_ = 1906; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PASSWORD_MUST_CHANGE_ = 1907; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_CONTROLLER_NOT_FOUND_ = 1908; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACCOUNT_LOCKED_OUT_ = 1909; -BOOST_CONSTEXPR_OR_CONST DWORD_ OR_INVALID_OXID_ = 1910; -BOOST_CONSTEXPR_OR_CONST DWORD_ OR_INVALID_OID_ = 1911; -BOOST_CONSTEXPR_OR_CONST DWORD_ OR_INVALID_SET_ = 1912; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_SEND_INCOMPLETE_ = 1913; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_ASYNC_HANDLE_ = 1914; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INVALID_ASYNC_CALL_ = 1915; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_PIPE_CLOSED_ = 1916; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_PIPE_DISCIPLINE_ERROR_ = 1917; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_X_PIPE_EMPTY_ = 1918; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SITENAME_ = 1919; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_ACCESS_FILE_ = 1920; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_RESOLVE_FILENAME_ = 1921; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_ENTRY_TYPE_MISMATCH_ = 1922; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_NOT_ALL_OBJS_EXPORTED_ = 1923; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_INTERFACE_NOT_EXPORTED_ = 1924; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PROFILE_NOT_ADDED_ = 1925; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PRF_ELT_NOT_ADDED_ = 1926; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_PRF_ELT_NOT_REMOVED_ = 1927; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_GRP_ELT_NOT_ADDED_ = 1928; -BOOST_CONSTEXPR_OR_CONST DWORD_ RPC_S_GRP_ELT_NOT_REMOVED_ = 1929; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_KM_DRIVER_BLOCKED_ = 1930; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONTEXT_EXPIRED_ = 1931; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PER_USER_TRUST_QUOTA_EXCEEDED_ = 1932; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED_ = 1933; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED_ = 1934; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_AUTHENTICATION_FIREWALL_FAILED_ = 1935; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED_ = 1936; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NTLM_BLOCKED_ = 1937; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PASSWORD_CHANGE_REQUIRED_ = 1938; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PIXEL_FORMAT_ = 2000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_DRIVER_ = 2001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_WINDOW_STYLE_ = 2002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_METAFILE_NOT_SUPPORTED_ = 2003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSFORM_NOT_SUPPORTED_ = 2004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLIPPING_NOT_SUPPORTED_ = 2005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CMM_ = 2010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PROFILE_ = 2011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TAG_NOT_FOUND_ = 2012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TAG_NOT_PRESENT_ = 2013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DUPLICATE_TAG_ = 2014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE_ = 2015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROFILE_NOT_FOUND_ = 2016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_COLORSPACE_ = 2017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ICM_NOT_ENABLED_ = 2018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DELETING_ICM_XFORM_ = 2019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TRANSFORM_ = 2020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COLORSPACE_MISMATCH_ = 2021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_COLORINDEX_ = 2022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROFILE_DOES_NOT_MATCH_DEVICE_ = 2023; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTED_OTHER_PASSWORD_ = 2108; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT_ = 2109; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_USERNAME_ = 2202; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_CONNECTED_ = 2250; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPEN_FILES_ = 2401; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACTIVE_CONNECTIONS_ = 2402; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_IN_USE_ = 2404; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNKNOWN_PRINT_MONITOR_ = 3000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DRIVER_IN_USE_ = 3001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPOOL_FILE_NOT_FOUND_ = 3002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPL_NO_STARTDOC_ = 3003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPL_NO_ADDJOB_ = 3004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED_ = 3005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINT_MONITOR_ALREADY_INSTALLED_ = 3006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRINT_MONITOR_ = 3007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINT_MONITOR_IN_USE_ = 3008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_HAS_JOBS_QUEUED_ = 3009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SUCCESS_REBOOT_REQUIRED_ = 3010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SUCCESS_RESTART_REQUIRED_ = 3011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_NOT_FOUND_ = 3012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DRIVER_WARNED_ = 3013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DRIVER_BLOCKED_ = 3014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DRIVER_PACKAGE_IN_USE_ = 3015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND_ = 3016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_REBOOT_REQUIRED_ = 3017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FAIL_REBOOT_INITIATED_ = 3018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED_ = 3019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINT_JOB_RESTART_REQUIRED_ = 3020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PRINTER_DRIVER_MANIFEST_ = 3021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PRINTER_NOT_SHAREABLE_ = 3022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REQUEST_PAUSED_ = 3050; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IO_REISSUE_AS_CACHED_ = 3950; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WINS_INTERNAL_ = 4000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CAN_NOT_DEL_LOCAL_WINS_ = 4001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATIC_INIT_ = 4002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INC_BACKUP_ = 4003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FULL_BACKUP_ = 4004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REC_NON_EXISTENT_ = 4005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RPL_NOT_ALLOWED_ = 4006; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED_ = 4050; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO_ = 4051; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_MISSING_DATA_ = 4052; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_NO_MORE_ = 4053; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_NOT_INITIALIZED_ = 4054; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_ALREADY_INITIALIZED_ = 4055; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS_ = 4056; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_INVALIDATED_ = 4057; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_ALREADY_EXISTS_ = 4058; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_OPERATION_NOTFOUND_ = 4059; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_ALREADY_COMPLETED_ = 4060; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_OUT_OF_BOUNDS_ = 4061; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_VERSION_UNSUPPORTED_ = 4062; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_INVALID_CONFIGURATION_ = 4063; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_NOT_LICENSED_ = 4064; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_SERVICE_UNAVAILABLE_ = 4065; -BOOST_CONSTEXPR_OR_CONST DWORD_ PEERDIST_ERROR_TRUST_FAILURE_ = 4066; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DHCP_ADDRESS_CONFLICT_ = 4100; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_GUID_NOT_FOUND_ = 4200; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_INSTANCE_NOT_FOUND_ = 4201; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_ITEMID_NOT_FOUND_ = 4202; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_TRY_AGAIN_ = 4203; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_DP_NOT_FOUND_ = 4204; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_UNRESOLVED_INSTANCE_REF_ = 4205; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_ALREADY_ENABLED_ = 4206; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_GUID_DISCONNECTED_ = 4207; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_SERVER_UNAVAILABLE_ = 4208; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_DP_FAILED_ = 4209; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_INVALID_MOF_ = 4210; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_INVALID_REGINFO_ = 4211; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_ALREADY_DISABLED_ = 4212; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_READ_ONLY_ = 4213; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WMI_SET_FAILURE_ = 4214; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_APPCONTAINER_ = 4250; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APPCONTAINER_REQUIRED_ = 4251; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SUPPORTED_IN_APPCONTAINER_ = 4252; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_PACKAGE_SID_LENGTH_ = 4253; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MEDIA_ = 4300; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_LIBRARY_ = 4301; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_MEDIA_POOL_ = 4302; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DRIVE_MEDIA_MISMATCH_ = 4303; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIA_OFFLINE_ = 4304; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LIBRARY_OFFLINE_ = 4305; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EMPTY_ = 4306; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_EMPTY_ = 4307; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIA_UNAVAILABLE_ = 4308; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_DISABLED_ = 4309; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CLEANER_ = 4310; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_CLEAN_ = 4311; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OBJECT_NOT_FOUND_ = 4312; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATABASE_FAILURE_ = 4313; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATABASE_FULL_ = 4314; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIA_INCOMPATIBLE_ = 4315; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_NOT_PRESENT_ = 4316; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_OPERATION_ = 4317; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIA_NOT_AVAILABLE_ = 4318; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEVICE_NOT_AVAILABLE_ = 4319; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REQUEST_REFUSED_ = 4320; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_DRIVE_OBJECT_ = 4321; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LIBRARY_FULL_ = 4322; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MEDIUM_NOT_ACCESSIBLE_ = 4323; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_LOAD_MEDIUM_ = 4324; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_INVENTORY_DRIVE_ = 4325; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_INVENTORY_SLOT_ = 4326; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_INVENTORY_TRANSPORT_ = 4327; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSPORT_FULL_ = 4328; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CONTROLLING_IEPORT_ = 4329; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA_ = 4330; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLEANER_SLOT_SET_ = 4331; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLEANER_SLOT_NOT_SET_ = 4332; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLEANER_CARTRIDGE_SPENT_ = 4333; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNEXPECTED_OMID_ = 4334; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_DELETE_LAST_ITEM_ = 4335; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MESSAGE_EXCEEDS_MAX_SIZE_ = 4336; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLUME_CONTAINS_SYS_FILES_ = 4337; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INDIGENOUS_TYPE_ = 4338; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SUPPORTING_DRIVES_ = 4339; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLEANER_CARTRIDGE_INSTALLED_ = 4340; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IEPORT_FULL_ = 4341; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_OFFLINE_ = 4350; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REMOTE_STORAGE_NOT_ACTIVE_ = 4351; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REMOTE_STORAGE_MEDIA_ERROR_ = 4352; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_A_REPARSE_POINT_ = 4390; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REPARSE_ATTRIBUTE_CONFLICT_ = 4391; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_REPARSE_DATA_ = 4392; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REPARSE_TAG_INVALID_ = 4393; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REPARSE_TAG_MISMATCH_ = 4394; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_DATA_NOT_FOUND_ = 4400; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_DATA_EXPIRED_ = 4401; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_DATA_CORRUPT_ = 4402; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_DATA_LIMIT_EXCEEDED_ = 4403; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APP_DATA_REBOOT_REQUIRED_ = 4404; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_ROLLBACK_DETECTED_ = 4420; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_POLICY_VIOLATION_ = 4421; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_INVALID_POLICY_ = 4422; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND_ = 4423; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_POLICY_NOT_SIGNED_ = 4424; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_NOT_ENABLED_ = 4425; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECUREBOOT_FILE_REPLACED_ = 4426; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED_ = 4440; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED_ = 4441; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED_ = 4442; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED_ = 4443; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLUME_NOT_SIS_ENABLED_ = 4500; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENT_RESOURCE_EXISTS_ = 5001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENCY_NOT_FOUND_ = 5002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENCY_ALREADY_EXISTS_ = 5003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_NOT_ONLINE_ = 5004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOST_NODE_NOT_AVAILABLE_ = 5005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_NOT_AVAILABLE_ = 5006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_NOT_FOUND_ = 5007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHUTDOWN_CLUSTER_ = 5008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_EVICT_ACTIVE_NODE_ = 5009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OBJECT_ALREADY_EXISTS_ = 5010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OBJECT_IN_LIST_ = 5011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GROUP_NOT_AVAILABLE_ = 5012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GROUP_NOT_FOUND_ = 5013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GROUP_NOT_ONLINE_ = 5014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOST_NODE_NOT_RESOURCE_OWNER_ = 5015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HOST_NODE_NOT_GROUP_OWNER_ = 5016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESMON_CREATE_FAILED_ = 5017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESMON_ONLINE_FAILED_ = 5018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_ONLINE_ = 5019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUORUM_RESOURCE_ = 5020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_QUORUM_CAPABLE_ = 5021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SHUTTING_DOWN_ = 5022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_STATE_ = 5023; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_PROPERTIES_STORED_ = 5024; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_QUORUM_CLASS_ = 5025; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CORE_RESOURCE_ = 5026; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUORUM_RESOURCE_ONLINE_FAILED_ = 5027; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUORUMLOG_OPEN_FAILED_ = 5028; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTERLOG_CORRUPT_ = 5029; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE_ = 5030; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE_ = 5031; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND_ = 5032; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE_ = 5033; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUORUM_OWNER_ALIVE_ = 5034; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NETWORK_NOT_AVAILABLE_ = 5035; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NODE_NOT_AVAILABLE_ = 5036; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ALL_NODES_NOT_AVAILABLE_ = 5037; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_FAILED_ = 5038; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_NODE_ = 5039; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_EXISTS_ = 5040; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_JOIN_IN_PROGRESS_ = 5041; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_NOT_FOUND_ = 5042; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND_ = 5043; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_EXISTS_ = 5044; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_NOT_FOUND_ = 5045; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETINTERFACE_EXISTS_ = 5046; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETINTERFACE_NOT_FOUND_ = 5047; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_REQUEST_ = 5048; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_NETWORK_PROVIDER_ = 5049; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_DOWN_ = 5050; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_UNREACHABLE_ = 5051; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_NOT_MEMBER_ = 5052; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS_ = 5053; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_NETWORK_ = 5054; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_UP_ = 5056; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_IPADDR_IN_USE_ = 5057; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_NOT_PAUSED_ = 5058; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NO_SECURITY_CONTEXT_ = 5059; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_NOT_INTERNAL_ = 5060; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_ALREADY_UP_ = 5061; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_ALREADY_DOWN_ = 5062; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_ALREADY_ONLINE_ = 5063; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE_ = 5064; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_ALREADY_MEMBER_ = 5065; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_LAST_INTERNAL_NETWORK_ = 5066; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS_ = 5067; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_OPERATION_ON_QUORUM_ = 5068; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENCY_NOT_ALLOWED_ = 5069; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_PAUSED_ = 5070; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NODE_CANT_HOST_RESOURCE_ = 5071; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_NOT_READY_ = 5072; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_SHUTTING_DOWN_ = 5073; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_JOIN_ABORTED_ = 5074; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INCOMPATIBLE_VERSIONS_ = 5075; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED_ = 5076; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED_ = 5077; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND_ = 5078; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED_ = 5079; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESNAME_NOT_FOUND_ = 5080; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED_ = 5081; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST_ = 5082; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_DATABASE_SEQMISMATCH_ = 5083; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESMON_INVALID_STATE_ = 5084; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_GUM_NOT_LOCKER_ = 5085; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUORUM_DISK_NOT_FOUND_ = 5086; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATABASE_BACKUP_CORRUPT_ = 5087; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT_ = 5088; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_PROPERTY_UNCHANGEABLE_ = 5089; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_ADMIN_ACCESS_POINT_ = 5090; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE_ = 5890; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_QUORUMLOG_NOT_FOUND_ = 5891; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_MEMBERSHIP_HALT_ = 5892; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INSTANCE_ID_MISMATCH_ = 5893; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP_ = 5894; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH_ = 5895; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP_ = 5896; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_PARAMETER_MISMATCH_ = 5897; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NODE_CANNOT_BE_CLUSTERED_ = 5898; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_WRONG_OS_VERSION_ = 5899; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME_ = 5900; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSCFG_ALREADY_COMMITTED_ = 5901; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSCFG_ROLLBACK_FAILED_ = 5902; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT_ = 5903; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_OLD_VERSION_ = 5904; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME_ = 5905; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NO_NET_ADAPTERS_ = 5906; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_POISONED_ = 5907; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_GROUP_MOVING_ = 5908; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_TYPE_BUSY_ = 5909; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_CALL_TIMED_OUT_ = 5910; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_CLUSTER_IPV6_ADDRESS_ = 5911; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION_ = 5912; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS_ = 5913; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_PARTIAL_SEND_ = 5914; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION_ = 5915; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_STRING_TERMINATION_ = 5916; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_STRING_FORMAT_ = 5917; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS_ = 5918; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS_ = 5919; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NULL_DATA_ = 5920; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_PARTIAL_READ_ = 5921; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_PARTIAL_WRITE_ = 5922; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_CANT_DESERIALIZE_DATA_ = 5923; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT_ = 5924; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NO_QUORUM_ = 5925; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_IPV6_NETWORK_ = 5926; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK_ = 5927; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP_ = 5928; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPENDENCY_TREE_TOO_COMPLEX_ = 5929; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXCEPTION_IN_RESOURCE_CALL_ = 5930; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RHS_FAILED_INITIALIZATION_ = 5931; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NOT_INSTALLED_ = 5932; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE_ = 5933; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_MAX_NODES_IN_CLUSTER_ = 5934; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_TOO_MANY_NODES_ = 5935; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_OBJECT_ALREADY_USED_ = 5936; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NONCORE_GROUPS_FOUND_ = 5937; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_SHARE_RESOURCE_CONFLICT_ = 5938; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_EVICT_INVALID_REQUEST_ = 5939; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SINGLETON_RESOURCE_ = 5940; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE_ = 5941; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED_ = 5942; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR_ = 5943; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_GROUP_BUSY_ = 5944; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NOT_SHARED_VOLUME_ = 5945; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR_ = 5946; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SHARED_VOLUMES_IN_USE_ = 5947; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_USE_SHARED_VOLUMES_API_ = 5948; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_BACKUP_IN_PROGRESS_ = 5949; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NON_CSV_PATH_ = 5950; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CSV_VOLUME_NOT_LOCAL_ = 5951; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_WATCHDOG_TERMINATING_ = 5952; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES_ = 5953; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_INVALID_NODE_WEIGHT_ = 5954; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_VETOED_CALL_ = 5955; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESMON_SYSTEM_RESOURCES_LACKING_ = 5956; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION_ = 5957; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE_ = 5958; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_GROUP_QUEUED_ = 5959; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_LOCKED_STATUS_ = 5960; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED_ = 5961; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS_ = 5962; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_DISK_NOT_CONNECTED_ = 5963; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DISK_NOT_CSV_CAPABLE_ = 5964; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE_ = 5965; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED_ = 5966; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED_ = 5967; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES_ = 5968; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES_ = 5969; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE_ = 5970; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_AFFINITY_CONFLICT_ = 5971; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE_ = 5972; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ENCRYPTION_FAILED_ = 6000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DECRYPTION_FAILED_ = 6001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_ENCRYPTED_ = 6002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_RECOVERY_POLICY_ = 6003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_EFS_ = 6004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_WRONG_EFS_ = 6005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_USER_KEYS_ = 6006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_NOT_ENCRYPTED_ = 6007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_EXPORT_FORMAT_ = 6008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_READ_ONLY_ = 6009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIR_EFS_DISALLOWED_ = 6010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EFS_SERVER_NOT_TRUSTED_ = 6011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_RECOVERY_POLICY_ = 6012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EFS_ALG_BLOB_TOO_BIG_ = 6013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLUME_NOT_SUPPORT_EFS_ = 6014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EFS_DISABLED_ = 6015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EFS_VERSION_NOT_SUPPORT_ = 6016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE_ = 6017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER_ = 6018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE_ = 6019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE_ = 6020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CS_ENCRYPTION_FILE_NOT_CSE_ = 6021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ENCRYPTION_POLICY_DENIES_OPERATION_ = 6022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_BROWSER_SERVERS_FOUND_ = 6118; -BOOST_CONSTEXPR_OR_CONST DWORD_ SCHED_E_SERVICE_NOT_LOCALSYSTEM_ = 6200; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_SECTOR_INVALID_ = 6600; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_SECTOR_PARITY_INVALID_ = 6601; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_SECTOR_REMAPPED_ = 6602; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_BLOCK_INCOMPLETE_ = 6603; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_INVALID_RANGE_ = 6604; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_BLOCKS_EXHAUSTED_ = 6605; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_READ_CONTEXT_INVALID_ = 6606; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_RESTART_INVALID_ = 6607; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_BLOCK_VERSION_ = 6608; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_BLOCK_INVALID_ = 6609; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_READ_MODE_INVALID_ = 6610; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_NO_RESTART_ = 6611; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_METADATA_CORRUPT_ = 6612; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_METADATA_INVALID_ = 6613; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_METADATA_INCONSISTENT_ = 6614; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_RESERVATION_INVALID_ = 6615; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CANT_DELETE_ = 6616; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CONTAINER_LIMIT_EXCEEDED_ = 6617; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_START_OF_LOG_ = 6618; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_POLICY_ALREADY_INSTALLED_ = 6619; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_POLICY_NOT_INSTALLED_ = 6620; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_POLICY_INVALID_ = 6621; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_POLICY_CONFLICT_ = 6622; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_PINNED_ARCHIVE_TAIL_ = 6623; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_RECORD_NONEXISTENT_ = 6624; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_RECORDS_RESERVED_INVALID_ = 6625; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_SPACE_RESERVED_INVALID_ = 6626; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_TAIL_INVALID_ = 6627; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_FULL_ = 6628; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COULD_NOT_RESIZE_LOG_ = 6629; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_MULTIPLEXED_ = 6630; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_DEDICATED_ = 6631; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS_ = 6632; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_ARCHIVE_IN_PROGRESS_ = 6633; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_EPHEMERAL_ = 6634; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_NOT_ENOUGH_CONTAINERS_ = 6635; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CLIENT_ALREADY_REGISTERED_ = 6636; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CLIENT_NOT_REGISTERED_ = 6637; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_FULL_HANDLER_IN_PROGRESS_ = 6638; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CONTAINER_READ_FAILED_ = 6639; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CONTAINER_WRITE_FAILED_ = 6640; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CONTAINER_OPEN_FAILED_ = 6641; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CONTAINER_STATE_INVALID_ = 6642; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_STATE_INVALID_ = 6643; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_PINNED_ = 6644; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_METADATA_FLUSH_FAILED_ = 6645; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_INCONSISTENT_SECURITY_ = 6646; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_APPENDED_FLUSH_FAILED_ = 6647; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_PINNED_RESERVATION_ = 6648; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_TRANSACTION_ = 6700; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NOT_ACTIVE_ = 6701; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_REQUEST_NOT_VALID_ = 6702; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NOT_REQUESTED_ = 6703; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_ALREADY_ABORTED_ = 6704; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_ALREADY_COMMITTED_ = 6705; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TM_INITIALIZATION_FAILED_ = 6706; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCEMANAGER_READ_ONLY_ = 6707; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NOT_JOINED_ = 6708; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_SUPERIOR_EXISTS_ = 6709; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CRM_PROTOCOL_ALREADY_EXISTS_ = 6710; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_PROPAGATION_FAILED_ = 6711; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CRM_PROTOCOL_NOT_FOUND_ = 6712; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER_ = 6713; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CURRENT_TRANSACTION_NOT_VALID_ = 6714; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NOT_FOUND_ = 6715; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCEMANAGER_NOT_FOUND_ = 6716; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ENLISTMENT_NOT_FOUND_ = 6717; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONMANAGER_NOT_FOUND_ = 6718; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONMANAGER_NOT_ONLINE_ = 6719; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION_ = 6720; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NOT_ROOT_ = 6721; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_OBJECT_EXPIRED_ = 6722; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED_ = 6723; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_RECORD_TOO_LONG_ = 6724; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED_ = 6725; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_INTEGRITY_VIOLATED_ = 6726; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH_ = 6727; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT_ = 6728; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_MUST_WRITETHROUGH_ = 6729; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NO_SUPERIOR_ = 6730; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HEURISTIC_DAMAGE_POSSIBLE_ = 6731; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONAL_CONFLICT_ = 6800; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RM_NOT_ACTIVE_ = 6801; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RM_METADATA_CORRUPT_ = 6802; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIRECTORY_NOT_RM_ = 6803; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE_ = 6805; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_RESIZE_INVALID_SIZE_ = 6806; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OBJECT_NO_LONGER_EXISTS_ = 6807; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STREAM_MINIVERSION_NOT_FOUND_ = 6808; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STREAM_MINIVERSION_NOT_VALID_ = 6809; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION_ = 6810; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT_ = 6811; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS_ = 6812; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REMOTE_FILE_VERSION_MISMATCH_ = 6814; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HANDLE_NO_LONGER_VALID_ = 6815; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_TXF_METADATA_ = 6816; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_CORRUPTION_DETECTED_ = 6817; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_RECOVER_WITH_HANDLE_OPEN_ = 6818; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RM_DISCONNECTED_ = 6819; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ENLISTMENT_NOT_SUPERIOR_ = 6820; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RECOVERY_NOT_NEEDED_ = 6821; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RM_ALREADY_STARTED_ = 6822; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FILE_IDENTITY_NOT_PERSISTENT_ = 6823; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY_ = 6824; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANT_CROSS_RM_BOUNDARY_ = 6825; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TXF_DIR_NOT_EMPTY_ = 6826; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INDOUBT_TRANSACTIONS_EXIST_ = 6827; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TM_VOLATILE_ = 6828; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ROLLBACK_TIMER_EXPIRED_ = 6829; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TXF_ATTRIBUTE_CORRUPT_ = 6830; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION_ = 6831; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED_ = 6832; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_LOG_GROWTH_FAILED_ = 6833; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE_ = 6834; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TXF_METADATA_ALREADY_PRESENT_ = 6835; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET_ = 6836; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_REQUIRED_PROMOTION_ = 6837; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION_ = 6838; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTIONS_NOT_FROZEN_ = 6839; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_FREEZE_IN_PROGRESS_ = 6840; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SNAPSHOT_VOLUME_ = 6841; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SAVEPOINT_WITH_OPEN_FILES_ = 6842; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DATA_LOST_REPAIR_ = 6843; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION_ = 6844; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TM_IDENTITY_MISMATCH_ = 6845; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_FLOATED_SECTION_ = 6846; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_ACCEPT_TRANSACTED_WORK_ = 6847; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_ABORT_TRANSACTIONS_ = 6848; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_BAD_CLUSTERS_ = 6849; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION_ = 6850; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_VOLUME_DIRTY_ = 6851; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_LINK_TRACKING_IN_TRANSACTION_ = 6852; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION_ = 6853; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EXPIRED_HANDLE_ = 6854; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TRANSACTION_NOT_ENLISTED_ = 6855; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WINSTATION_NAME_INVALID_ = 7001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_INVALID_PD_ = 7002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_PD_NOT_FOUND_ = 7003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WD_NOT_FOUND_ = 7004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY_ = 7005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SERVICE_NAME_COLLISION_ = 7006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CLOSE_PENDING_ = 7007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_NO_OUTBUF_ = 7008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_INF_NOT_FOUND_ = 7009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_INVALID_MODEMNAME_ = 7010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_RESPONSE_ERROR_ = 7011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_RESPONSE_TIMEOUT_ = 7012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_RESPONSE_NO_CARRIER_ = 7013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE_ = 7014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_RESPONSE_BUSY_ = 7015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_MODEM_RESPONSE_VOICE_ = 7016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_TD_ERROR_ = 7017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WINSTATION_NOT_FOUND_ = 7022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WINSTATION_ALREADY_EXISTS_ = 7023; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WINSTATION_BUSY_ = 7024; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_BAD_VIDEO_MODE_ = 7025; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_GRAPHICS_INVALID_ = 7035; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_LOGON_DISABLED_ = 7037; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_NOT_CONSOLE_ = 7038; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CLIENT_QUERY_TIMEOUT_ = 7040; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CONSOLE_DISCONNECT_ = 7041; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CONSOLE_CONNECT_ = 7042; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SHADOW_DENIED_ = 7044; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WINSTATION_ACCESS_DENIED_ = 7045; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_INVALID_WD_ = 7049; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SHADOW_INVALID_ = 7050; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SHADOW_DISABLED_ = 7051; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CLIENT_LICENSE_IN_USE_ = 7052; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CLIENT_LICENSE_NOT_SET_ = 7053; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_LICENSE_NOT_AVAILABLE_ = 7054; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_LICENSE_CLIENT_INVALID_ = 7055; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_LICENSE_EXPIRED_ = 7056; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SHADOW_NOT_RUNNING_ = 7057; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE_ = 7058; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ACTIVATION_COUNT_EXCEEDED_ = 7059; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_WINSTATIONS_DISABLED_ = 7060; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED_ = 7061; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SESSION_IN_USE_ = 7062; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_NO_FORCE_LOGOFF_ = 7063; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_ACCOUNT_RESTRICTION_ = 7064; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RDP_PROTOCOL_ERROR_ = 7065; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CDM_CONNECT_ = 7066; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_CDM_DISCONNECT_ = 7067; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CTX_SECURITY_LAYER_ERROR_ = 7068; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TS_INCOMPATIBLE_SESSIONS_ = 7069; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_TS_VIDEO_SUBSYSTEM_ERROR_ = 7070; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_INVALID_API_SEQUENCE_ = 8001; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_STARTING_SERVICE_ = 8002; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_STOPPING_SERVICE_ = 8003; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_INTERNAL_API_ = 8004; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_INTERNAL_ = 8005; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_SERVICE_COMM_ = 8006; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_INSUFFICIENT_PRIV_ = 8007; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_AUTHENTICATION_ = 8008; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_PARENT_INSUFFICIENT_PRIV_ = 8009; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_PARENT_AUTHENTICATION_ = 8010; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_CHILD_TO_PARENT_COMM_ = 8011; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_PARENT_TO_CHILD_COMM_ = 8012; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_SYSVOL_POPULATE_ = 8013; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_SYSVOL_POPULATE_TIMEOUT_ = 8014; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_SYSVOL_IS_BUSY_ = 8015; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_SYSVOL_DEMOTE_ = 8016; -BOOST_CONSTEXPR_OR_CONST DWORD_ FRS_ERR_INVALID_SERVICE_PARAMETER_ = 8017; -BOOST_CONSTEXPR_OR_CONST DWORD_ DS_S_SUCCESS_ = NO_ERROR_; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_INSTALLED_ = 8200; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY_ = 8201; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_ATTRIBUTE_OR_VALUE_ = 8202; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_ATTRIBUTE_SYNTAX_ = 8203; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED_ = 8204; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS_ = 8205; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BUSY_ = 8206; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNAVAILABLE_ = 8207; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_RIDS_ALLOCATED_ = 8208; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_MORE_RIDS_ = 8209; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INCORRECT_ROLE_OWNER_ = 8210; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RIDMGR_INIT_ERROR_ = 8211; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_CLASS_VIOLATION_ = 8212; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_ON_NON_LEAF_ = 8213; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_ON_RDN_ = 8214; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOD_OBJ_CLASS_ = 8215; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CROSS_DOM_MOVE_ERROR_ = 8216; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GC_NOT_AVAILABLE_ = 8217; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SHARED_POLICY_ = 8218; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_POLICY_OBJECT_NOT_FOUND_ = 8219; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_POLICY_ONLY_IN_DS_ = 8220; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PROMOTION_ACTIVE_ = 8221; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_PROMOTION_ACTIVE_ = 8222; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OPERATIONS_ERROR_ = 8224; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_PROTOCOL_ERROR_ = 8225; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_TIMELIMIT_EXCEEDED_ = 8226; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SIZELIMIT_EXCEEDED_ = 8227; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ADMIN_LIMIT_EXCEEDED_ = 8228; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COMPARE_FALSE_ = 8229; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COMPARE_TRUE_ = 8230; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AUTH_METHOD_NOT_SUPPORTED_ = 8231; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_STRONG_AUTH_REQUIRED_ = 8232; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INAPPROPRIATE_AUTH_ = 8233; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AUTH_UNKNOWN_ = 8234; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REFERRAL_ = 8235; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNAVAILABLE_CRIT_EXTENSION_ = 8236; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CONFIDENTIALITY_REQUIRED_ = 8237; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INAPPROPRIATE_MATCHING_ = 8238; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CONSTRAINT_VIOLATION_ = 8239; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_SUCH_OBJECT_ = 8240; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ALIAS_PROBLEM_ = 8241; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_DN_SYNTAX_ = 8242; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_IS_LEAF_ = 8243; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ALIAS_DEREF_PROBLEM_ = 8244; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNWILLING_TO_PERFORM_ = 8245; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LOOP_DETECT_ = 8246; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAMING_VIOLATION_ = 8247; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJECT_RESULTS_TOO_LARGE_ = 8248; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AFFECTS_MULTIPLE_DSAS_ = 8249; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SERVER_DOWN_ = 8250; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LOCAL_ERROR_ = 8251; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ENCODING_ERROR_ = 8252; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DECODING_ERROR_ = 8253; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_FILTER_UNKNOWN_ = 8254; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_PARAM_ERROR_ = 8255; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_SUPPORTED_ = 8256; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_RESULTS_RETURNED_ = 8257; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CONTROL_NOT_FOUND_ = 8258; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CLIENT_LOOP_ = 8259; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REFERRAL_LIMIT_EXCEEDED_ = 8260; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SORT_CONTROL_MISSING_ = 8261; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OFFSET_RANGE_ERROR_ = 8262; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RIDMGR_DISABLED_ = 8263; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ROOT_MUST_BE_NC_ = 8301; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ADD_REPLICA_INHIBITED_ = 8302; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_NOT_DEF_IN_SCHEMA_ = 8303; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MAX_OBJ_SIZE_EXCEEDED_ = 8304; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_STRING_NAME_EXISTS_ = 8305; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA_ = 8306; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RDN_DOESNT_MATCH_SCHEMA_ = 8307; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_REQUESTED_ATTS_FOUND_ = 8308; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_USER_BUFFER_TO_SMALL_ = 8309; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_IS_NOT_ON_OBJ_ = 8310; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ILLEGAL_MOD_OPERATION_ = 8311; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_TOO_LARGE_ = 8312; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BAD_INSTANCE_TYPE_ = 8313; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MASTERDSA_REQUIRED_ = 8314; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJECT_CLASS_REQUIRED_ = 8315; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MISSING_REQUIRED_ATT_ = 8316; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_NOT_DEF_FOR_CLASS_ = 8317; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_ALREADY_EXISTS_ = 8318; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_ADD_ATT_VALUES_ = 8320; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SINGLE_VALUE_CONSTRAINT_ = 8321; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RANGE_CONSTRAINT_ = 8322; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_VAL_ALREADY_EXISTS_ = 8323; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_REM_MISSING_ATT_ = 8324; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_REM_MISSING_ATT_VAL_ = 8325; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ROOT_CANT_BE_SUBREF_ = 8326; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_CHAINING_ = 8327; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_CHAINED_EVAL_ = 8328; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_PARENT_OBJECT_ = 8329; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_PARENT_IS_AN_ALIAS_ = 8330; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MIX_MASTER_AND_REPS_ = 8331; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CHILDREN_EXIST_ = 8332; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_NOT_FOUND_ = 8333; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ALIASED_OBJ_MISSING_ = 8334; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BAD_NAME_SYNTAX_ = 8335; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ALIAS_POINTS_TO_ALIAS_ = 8336; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DEREF_ALIAS_ = 8337; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OUT_OF_SCOPE_ = 8338; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJECT_BEING_REMOVED_ = 8339; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DELETE_DSA_OBJ_ = 8340; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GENERIC_ERROR_ = 8341; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DSA_MUST_BE_INT_MASTER_ = 8342; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CLASS_NOT_DSA_ = 8343; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INSUFF_ACCESS_RIGHTS_ = 8344; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ILLEGAL_SUPERIOR_ = 8345; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATTRIBUTE_OWNED_BY_SAM_ = 8346; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_TOO_MANY_PARTS_ = 8347; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_TOO_LONG_ = 8348; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_VALUE_TOO_LONG_ = 8349; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_UNPARSEABLE_ = 8350; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_TYPE_UNKNOWN_ = 8351; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_AN_OBJECT_ = 8352; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SEC_DESC_TOO_SHORT_ = 8353; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SEC_DESC_INVALID_ = 8354; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_DELETED_NAME_ = 8355; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SUBREF_MUST_HAVE_PARENT_ = 8356; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NCNAME_MUST_BE_NC_ = 8357; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_ADD_SYSTEM_ONLY_ = 8358; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CLASS_MUST_BE_CONCRETE_ = 8359; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_DMD_ = 8360; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_GUID_EXISTS_ = 8361; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_ON_BACKLINK_ = 8362; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_CROSSREF_FOR_NC_ = 8363; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SHUTTING_DOWN_ = 8364; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNKNOWN_OPERATION_ = 8365; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_ROLE_OWNER_ = 8366; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COULDNT_CONTACT_FSMO_ = 8367; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CROSS_NC_DN_RENAME_ = 8368; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOD_SYSTEM_ONLY_ = 8369; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REPLICATOR_ONLY_ = 8370; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_CLASS_NOT_DEFINED_ = 8371; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OBJ_CLASS_NOT_SUBCLASS_ = 8372; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_REFERENCE_INVALID_ = 8373; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CROSS_REF_EXISTS_ = 8374; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DEL_MASTER_CROSSREF_ = 8375; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD_ = 8376; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX_ = 8377; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_RDN_ = 8378; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_OID_ = 8379; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_MAPI_ID_ = 8380; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_SCHEMA_ID_GUID_ = 8381; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_LDAP_DISPLAY_NAME_ = 8382; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SEMANTIC_ATT_TEST_ = 8383; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SYNTAX_MISMATCH_ = 8384; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTS_IN_MUST_HAVE_ = 8385; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTS_IN_MAY_HAVE_ = 8386; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NONEXISTENT_MAY_HAVE_ = 8387; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NONEXISTENT_MUST_HAVE_ = 8388; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AUX_CLS_TEST_FAIL_ = 8389; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NONEXISTENT_POSS_SUP_ = 8390; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SUB_CLS_TEST_FAIL_ = 8391; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BAD_RDN_ATT_ID_SYNTAX_ = 8392; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTS_IN_AUX_CLS_ = 8393; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTS_IN_SUB_CLS_ = 8394; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTS_IN_POSS_SUP_ = 8395; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RECALCSCHEMA_FAILED_ = 8396; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_TREE_DELETE_NOT_FINISHED_ = 8397; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DELETE_ = 8398; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_SCHEMA_REQ_ID_ = 8399; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BAD_ATT_SCHEMA_SYNTAX_ = 8400; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_CACHE_ATT_ = 8401; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_CACHE_CLASS_ = 8402; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_REMOVE_ATT_CACHE_ = 8403; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_REMOVE_CLASS_CACHE_ = 8404; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_RETRIEVE_DN_ = 8405; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MISSING_SUPREF_ = 8406; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_RETRIEVE_INSTANCE_ = 8407; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CODE_INCONSISTENCY_ = 8408; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DATABASE_ERROR_ = 8409; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GOVERNSID_MISSING_ = 8410; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MISSING_EXPECTED_ATT_ = 8411; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NCNAME_MISSING_CR_REF_ = 8412; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SECURITY_CHECKING_ERROR_ = 8413; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SCHEMA_NOT_LOADED_ = 8414; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SCHEMA_ALLOC_FAILED_ = 8415; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ATT_SCHEMA_REQ_SYNTAX_ = 8416; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GCVERIFY_ERROR_ = 8417; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SCHEMA_MISMATCH_ = 8418; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_FIND_DSA_OBJ_ = 8419; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_FIND_EXPECTED_NC_ = 8420; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_FIND_NC_IN_CACHE_ = 8421; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_RETRIEVE_CHILD_ = 8422; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SECURITY_ILLEGAL_MODIFY_ = 8423; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_REPLACE_HIDDEN_REC_ = 8424; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BAD_HIERARCHY_FILE_ = 8425; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED_ = 8426; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CONFIG_PARAM_MISSING_ = 8427; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COUNTING_AB_INDICES_FAILED_ = 8428; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED_ = 8429; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INTERNAL_FAILURE_ = 8430; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNKNOWN_ERROR_ = 8431; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ROOT_REQUIRES_CLASS_TOP_ = 8432; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REFUSING_FSMO_ROLES_ = 8433; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MISSING_FSMO_SETTINGS_ = 8434; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNABLE_TO_SURRENDER_ROLES_ = 8435; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_GENERIC_ = 8436; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_INVALID_PARAMETER_ = 8437; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_BUSY_ = 8438; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_BAD_DN_ = 8439; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_BAD_NC_ = 8440; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_DN_EXISTS_ = 8441; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_INTERNAL_ERROR_ = 8442; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_INCONSISTENT_DIT_ = 8443; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_CONNECTION_FAILED_ = 8444; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_BAD_INSTANCE_TYPE_ = 8445; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_OUT_OF_MEM_ = 8446; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_MAIL_PROBLEM_ = 8447; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_REF_ALREADY_EXISTS_ = 8448; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_REF_NOT_FOUND_ = 8449; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_OBJ_IS_REP_SOURCE_ = 8450; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_DB_ERROR_ = 8451; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_NO_REPLICA_ = 8452; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_ACCESS_DENIED_ = 8453; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_NOT_SUPPORTED_ = 8454; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_RPC_CANCELLED_ = 8455; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SOURCE_DISABLED_ = 8456; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SINK_DISABLED_ = 8457; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_NAME_COLLISION_ = 8458; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SOURCE_REINSTALLED_ = 8459; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_MISSING_PARENT_ = 8460; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_PREEMPTED_ = 8461; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_ABANDON_SYNC_ = 8462; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SHUTDOWN_ = 8463; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET_ = 8464; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA_ = 8465; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_EXTN_CONNECTION_FAILED_ = 8466; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INSTALL_SCHEMA_MISMATCH_ = 8467; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_LINK_ID_ = 8468; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_RESOLVING_ = 8469; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_NOT_FOUND_ = 8470; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_NOT_UNIQUE_ = 8471; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_NO_MAPPING_ = 8472; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_DOMAIN_ONLY_ = 8473; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING_ = 8474; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CONSTRUCTED_ATT_MOD_ = 8475; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_WRONG_OM_OBJ_CLASS_ = 8476; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_REPL_PENDING_ = 8477; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DS_REQUIRED_ = 8478; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_LDAP_DISPLAY_NAME_ = 8479; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NON_BASE_SEARCH_ = 8480; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_RETRIEVE_ATTS_ = 8481; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_BACKLINK_WITHOUT_LINK_ = 8482; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EPOCH_MISMATCH_ = 8483; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_NAME_MISMATCH_ = 8484; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_AND_DST_NC_IDENTICAL_ = 8485; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DST_NC_MISMATCH_ = 8486; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC_ = 8487; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_GUID_MISMATCH_ = 8488; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOVE_DELETED_OBJECT_ = 8489; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_PDC_OPERATION_IN_PROGRESS_ = 8490; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD_ = 8491; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION_ = 8492; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS_ = 8493; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NC_MUST_HAVE_NC_PARENT_ = 8494; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_ = 8495; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DST_DOMAIN_NOT_NATIVE_ = 8496; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER_ = 8497; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOVE_ACCOUNT_GROUP_ = 8498; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOVE_RESOURCE_GROUP_ = 8499; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_SEARCH_FLAG_ = 8500; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_TREE_DELETE_ABOVE_NC_ = 8501; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE_ = 8502; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE_ = 8503; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SAM_INIT_FAILURE_ = 8504; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SENSITIVE_GROUP_VIOLATION_ = 8505; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOD_PRIMARYGROUPID_ = 8506; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD_ = 8507; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NONSAFE_SCHEMA_CHANGE_ = 8508; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SCHEMA_UPDATE_DISALLOWED_ = 8509; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_CREATE_UNDER_SCHEMA_ = 8510; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INSTALL_NO_SRC_SCH_VERSION_ = 8511; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE_ = 8512; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_GROUP_TYPE_ = 8513; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN_ = 8514; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN_ = 8515; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER_ = 8516; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER_ = 8517; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER_ = 8518; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER_ = 8519; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER_ = 8520; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_HAVE_PRIMARY_MEMBERS_ = 8521; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_STRING_SD_CONVERSION_FAILED_ = 8522; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAMING_MASTER_GC_ = 8523; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DNS_LOOKUP_FAILURE_ = 8524; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_COULDNT_UPDATE_SPNS_ = 8525; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_RETRIEVE_SD_ = 8526; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_KEY_NOT_UNIQUE_ = 8527; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_WRONG_LINKED_ATT_SYNTAX_ = 8528; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD_ = 8529; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY_ = 8530; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_START_ = 8531; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INIT_FAILURE_ = 8532; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION_ = 8533; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SOURCE_DOMAIN_IN_FOREST_ = 8534; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST_ = 8535; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED_ = 8536; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN_ = 8537; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER_ = 8538; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_SID_EXISTS_IN_FOREST_ = 8539; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH_ = 8540; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SAM_INIT_FAILURE_ = 8541; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SCHEMA_INFO_SHIP_ = 8542; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SCHEMA_CONFLICT_ = 8543; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT_ = 8544; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_OBJ_NC_MISMATCH_ = 8545; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NC_STILL_HAS_DSAS_ = 8546; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GC_REQUIRED_ = 8547; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY_ = 8548; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS_ = 8549; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_ADD_TO_GC_ = 8550; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_CHECKPOINT_WITH_PDC_ = 8551; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SOURCE_AUDITING_NOT_ENABLED_ = 8552; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC_ = 8553; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_NAME_FOR_SPN_ = 8554; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS_ = 8555; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNICODEPWD_NOT_IN_QUOTES_ = 8556; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED_ = 8557; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MUST_BE_RUN_ON_DST_DC_ = 8558; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER_ = 8559; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ_ = 8560; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INIT_FAILURE_CONSOLE_ = 8561; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SAM_INIT_FAILURE_CONSOLE_ = 8562; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_FOREST_VERSION_TOO_HIGH_ = 8563; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DOMAIN_VERSION_TOO_HIGH_ = 8564; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_FOREST_VERSION_TOO_LOW_ = 8565; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DOMAIN_VERSION_TOO_LOW_ = 8566; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INCOMPATIBLE_VERSION_ = 8567; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LOW_DSA_VERSION_ = 8568; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN_ = 8569; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_SUPPORTED_SORT_ORDER_ = 8570; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_NOT_UNIQUE_ = 8571; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4_ = 8572; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OUT_OF_VERSION_STORE_ = 8573; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INCOMPATIBLE_CONTROLS_USED_ = 8574; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_REF_DOMAIN_ = 8575; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RESERVED_LINK_ID_ = 8576; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LINK_ID_NOT_AVAILABLE_ = 8577; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER_ = 8578; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE_ = 8579; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC_ = 8580; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG_ = 8581; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MODIFYDN_WRONG_GRANDPARENT_ = 8582; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NAME_ERROR_TRUST_REFERRAL_ = 8583; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER_ = 8584; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD_ = 8585; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2_ = 8586; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_THREAD_LIMIT_EXCEEDED_ = 8587; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NOT_CLOSEST_ = 8588; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF_ = 8589; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SINGLE_USER_MODE_FAILED_ = 8590; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NTDSCRIPT_SYNTAX_ERROR_ = 8591; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NTDSCRIPT_PROCESS_ERROR_ = 8592; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DIFFERENT_REPL_EPOCHS_ = 8593; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRS_EXTENSIONS_CHANGED_ = 8594; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR_ = 8595; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_MSDS_INTID_ = 8596; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUP_MSDS_INTID_ = 8597; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTS_IN_RDNATTID_ = 8598; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AUTHORIZATION_FAILED_ = 8599; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_SCRIPT_ = 8600; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REMOTE_CROSSREF_OP_FAILED_ = 8601; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CROSS_REF_BUSY_ = 8602; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN_ = 8603; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC_ = 8604; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DUPLICATE_ID_FOUND_ = 8605; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT_ = 8606; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_GROUP_CONVERSION_ERROR_ = 8607; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOVE_APP_BASIC_GROUP_ = 8608; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_CANT_MOVE_APP_QUERY_GROUP_ = 8609; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_ROLE_NOT_VERIFIED_ = 8610; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL_ = 8611; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DOMAIN_RENAME_IN_PROGRESS_ = 8612; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_EXISTING_AD_CHILD_NC_ = 8613; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_REPL_LIFETIME_EXCEEDED_ = 8614; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER_ = 8615; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LDAP_SEND_QUEUE_FULL_ = 8616; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_OUT_SCHEDULE_WINDOW_ = 8617; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_POLICY_NOT_KNOWN_ = 8618; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SITE_SETTINGS_OBJECT_ = 8619; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_SECRETS_ = 8620; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NO_WRITABLE_DC_FOUND_ = 8621; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_SERVER_OBJECT_ = 8622; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NO_NTDSA_OBJECT_ = 8623; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_NON_ASQ_SEARCH_ = 8624; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_AUDIT_FAILURE_ = 8625; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE_ = 8626; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_INVALID_SEARCH_FLAG_TUPLE_ = 8627; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_HIERARCHY_TABLE_TOO_DEEP_ = 8628; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_CORRUPT_UTD_VECTOR_ = 8629; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_SECRETS_DENIED_ = 8630; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_RESERVED_MAPI_ID_ = 8631; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_MAPI_ID_NOT_AVAILABLE_ = 8632; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_MISSING_KRBTGT_SECRET_ = 8633; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST_ = 8634; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST_ = 8635; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_USER_PRINCIPAL_NAME_ = 8636; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS_ = 8637; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_OID_NOT_FOUND_ = 8638; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DRA_RECYCLED_TARGET_ = 8639; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_DISALLOWED_NC_REDIRECT_ = 8640; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_HIGH_ADLDS_FFL_ = 8641; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_HIGH_DSA_VERSION_ = 8642; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_LOW_ADLDS_FFL_ = 8643; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION_ = 8644; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED_ = 8645; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INCORRECT_ACCOUNT_TYPE_ = 8646; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST_ = 8647; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST_ = 8648; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RESPONSE_CODES_BASE_ = 9000; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_NO_ERROR_ = NO_ERROR_; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_MASK_ = 0x00002328; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_FORMAT_ERROR_ = 9001; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_SERVER_FAILURE_ = 9002; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_NAME_ERROR_ = 9003; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_NOT_IMPLEMENTED_ = 9004; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_REFUSED_ = 9005; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_YXDOMAIN_ = 9006; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_YXRRSET_ = 9007; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_NXRRSET_ = 9008; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_NOTAUTH_ = 9009; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_NOTZONE_ = 9010; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_BADSIG_ = 9016; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_BADKEY_ = 9017; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_BADTIME_ = 9018; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_LAST_ = DNS_ERROR_RCODE_BADTIME_; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DNSSEC_BASE_ = 9100; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_KEYMASTER_REQUIRED_ = 9101; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE_ = 9102; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1_ = 9103; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS_ = 9104; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_UNSUPPORTED_ALGORITHM_ = 9105; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_KEY_SIZE_ = 9106; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE_ = 9107; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION_ = 9108; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR_ = 9109; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_UNEXPECTED_CNG_ERROR_ = 9110; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION_ = 9111; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_KSP_NOT_ACCESSIBLE_ = 9112; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_TOO_MANY_SKDS_ = 9113; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_ROLLOVER_PERIOD_ = 9114; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET_ = 9115; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ROLLOVER_IN_PROGRESS_ = 9116; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_STANDBY_KEY_NOT_PRESENT_ = 9117; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_ON_ZSK_ = 9118; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD_ = 9119; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ROLLOVER_ALREADY_QUEUED_ = 9120; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE_ = 9121; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_BAD_KEYMASTER_ = 9122; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD_ = 9123; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT_ = 9124; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DNSSEC_IS_DISABLED_ = 9125; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_XML_ = 9126; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_VALID_TRUST_ANCHORS_ = 9127; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ROLLOVER_NOT_POKEABLE_ = 9128; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NSEC3_NAME_COLLISION_ = 9129; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1_ = 9130; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_PACKET_FMT_BASE_ = 9500; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_INFO_NO_RECORDS_ = 9501; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_BAD_PACKET_ = 9502; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_PACKET_ = 9503; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RCODE_ = 9504; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_UNSECURE_PACKET_ = 9505; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_STATUS_PACKET_UNSECURE_ = DNS_ERROR_UNSECURE_PACKET_; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_REQUEST_PENDING_ = 9506; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_MEMORY_ = ERROR_OUTOFMEMORY_; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_NAME_ = ERROR_INVALID_NAME_; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_DATA_ = ERROR_INVALID_DATA_; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_GENERAL_API_BASE_ = 9550; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_TYPE_ = 9551; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_IP_ADDRESS_ = 9552; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_PROPERTY_ = 9553; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_TRY_AGAIN_LATER_ = 9554; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_UNIQUE_ = 9555; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NON_RFC_NAME_ = 9556; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_STATUS_FQDN_ = 9557; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_STATUS_DOTTED_NAME_ = 9558; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_STATUS_SINGLE_PART_NAME_ = 9559; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_NAME_CHAR_ = 9560; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NUMERIC_NAME_ = 9561; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER_ = 9562; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION_ = 9563; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_CANNOT_FIND_ROOT_HINTS_ = 9564; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INCONSISTENT_ROOT_HINTS_ = 9565; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DWORD_VALUE_TOO_SMALL_ = 9566; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DWORD_VALUE_TOO_LARGE_ = 9567; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_BACKGROUND_LOADING_ = 9568; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_ON_RODC_ = 9569; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_UNDER_DNAME_ = 9570; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DELEGATION_REQUIRED_ = 9571; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_POLICY_TABLE_ = 9572; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_BASE_ = 9600; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_DOES_NOT_EXIST_ = 9601; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_ZONE_INFO_ = 9602; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_ZONE_OPERATION_ = 9603; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_CONFIGURATION_ERROR_ = 9604; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_HAS_NO_SOA_RECORD_ = 9605; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_HAS_NO_NS_RECORDS_ = 9606; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_LOCKED_ = 9607; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_CREATION_FAILED_ = 9608; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_ALREADY_EXISTS_ = 9609; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_AUTOZONE_ALREADY_EXISTS_ = 9610; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_ZONE_TYPE_ = 9611; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP_ = 9612; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_NOT_SECONDARY_ = 9613; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NEED_SECONDARY_ADDRESSES_ = 9614; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_WINS_INIT_FAILED_ = 9615; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NEED_WINS_SERVERS_ = 9616; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NBSTAT_INIT_FAILED_ = 9617; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SOA_DELETE_INVALID_ = 9618; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_FORWARDER_ALREADY_EXISTS_ = 9619; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_REQUIRES_MASTER_IP_ = 9620; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_IS_SHUTDOWN_ = 9621; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONE_LOCKED_FOR_SIGNING_ = 9622; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DATAFILE_BASE_ = 9650; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_PRIMARY_REQUIRES_DATAFILE_ = 9651; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_DATAFILE_NAME_ = 9652; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DATAFILE_OPEN_FAILURE_ = 9653; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_FILE_WRITEBACK_FAILED_ = 9654; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DATAFILE_PARSING_ = 9655; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DATABASE_BASE_ = 9700; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RECORD_DOES_NOT_EXIST_ = 9701; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RECORD_FORMAT_ = 9702; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NODE_CREATION_FAILED_ = 9703; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_UNKNOWN_RECORD_TYPE_ = 9704; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RECORD_TIMED_OUT_ = 9705; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NAME_NOT_IN_ZONE_ = 9706; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_CNAME_LOOP_ = 9707; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NODE_IS_CNAME_ = 9708; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_CNAME_COLLISION_ = 9709; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT_ = 9710; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_RECORD_ALREADY_EXISTS_ = 9711; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SECONDARY_DATA_ = 9712; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_CREATE_CACHE_DATA_ = 9713; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NAME_DOES_NOT_EXIST_ = 9714; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_WARNING_PTR_CREATE_FAILED_ = 9715; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_WARNING_DOMAIN_UNDELETED_ = 9716; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DS_UNAVAILABLE_ = 9717; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DS_ZONE_ALREADY_EXISTS_ = 9718; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE_ = 9719; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NODE_IS_DNAME_ = 9720; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DNAME_COLLISION_ = 9721; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ALIAS_LOOP_ = 9722; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_OPERATION_BASE_ = 9750; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_INFO_AXFR_COMPLETE_ = 9751; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_AXFR_ = 9752; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_INFO_ADDED_LOCAL_WINS_ = 9753; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SECURE_BASE_ = 9800; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_STATUS_CONTINUE_NEEDED_ = 9801; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SETUP_BASE_ = 9850; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_TCPIP_ = 9851; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NO_DNS_SERVERS_ = 9852; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_BASE_ = 9900; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_DOES_NOT_EXIST_ = 9901; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_ALREADY_EXISTS_ = 9902; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_NOT_ENLISTED_ = 9903; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_ALREADY_ENLISTED_ = 9904; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_NOT_AVAILABLE_ = 9905; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DP_FSMO_ERROR_ = 9906; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONESCOPE_ALREADY_EXISTS_ = 9951; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST_ = 9952; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DEFAULT_ZONESCOPE_ = 9953; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_ZONESCOPE_NAME_ = 9954; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES_ = 9955; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_LOAD_ZONESCOPE_FAILED_ = 9956; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED_ = 9957; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_SCOPE_NAME_ = 9958; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SCOPE_DOES_NOT_EXIST_ = 9959; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_DEFAULT_SCOPE_ = 9960; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_INVALID_SCOPE_OPERATION_ = 9961; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SCOPE_LOCKED_ = 9962; -BOOST_CONSTEXPR_OR_CONST DWORD_ DNS_ERROR_SCOPE_ALREADY_EXISTS_ = 9963; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSABASEERR_ = 10000; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEINTR_ = 10004; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEBADF_ = 10009; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEACCES_ = 10013; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEFAULT_ = 10014; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEINVAL_ = 10022; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEMFILE_ = 10024; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEWOULDBLOCK_ = 10035; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEINPROGRESS_ = 10036; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEALREADY_ = 10037; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENOTSOCK_ = 10038; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEDESTADDRREQ_ = 10039; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEMSGSIZE_ = 10040; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEPROTOTYPE_ = 10041; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENOPROTOOPT_ = 10042; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEPROTONOSUPPORT_ = 10043; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAESOCKTNOSUPPORT_ = 10044; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEOPNOTSUPP_ = 10045; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEPFNOSUPPORT_ = 10046; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEAFNOSUPPORT_ = 10047; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEADDRINUSE_ = 10048; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEADDRNOTAVAIL_ = 10049; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENETDOWN_ = 10050; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENETUNREACH_ = 10051; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENETRESET_ = 10052; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAECONNABORTED_ = 10053; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAECONNRESET_ = 10054; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENOBUFS_ = 10055; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEISCONN_ = 10056; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENOTCONN_ = 10057; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAESHUTDOWN_ = 10058; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAETOOMANYREFS_ = 10059; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAETIMEDOUT_ = 10060; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAECONNREFUSED_ = 10061; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAELOOP_ = 10062; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENAMETOOLONG_ = 10063; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEHOSTDOWN_ = 10064; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEHOSTUNREACH_ = 10065; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENOTEMPTY_ = 10066; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEPROCLIM_ = 10067; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEUSERS_ = 10068; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEDQUOT_ = 10069; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAESTALE_ = 10070; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEREMOTE_ = 10071; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSASYSNOTREADY_ = 10091; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAVERNOTSUPPORTED_ = 10092; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSANOTINITIALISED_ = 10093; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEDISCON_ = 10101; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAENOMORE_ = 10102; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAECANCELLED_ = 10103; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEINVALIDPROCTABLE_ = 10104; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEINVALIDPROVIDER_ = 10105; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEPROVIDERFAILEDINIT_ = 10106; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSASYSCALLFAILURE_ = 10107; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSASERVICE_NOT_FOUND_ = 10108; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSATYPE_NOT_FOUND_ = 10109; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_E_NO_MORE_ = 10110; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_E_CANCELLED_ = 10111; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAEREFUSED_ = 10112; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSAHOST_NOT_FOUND_ = 11001; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSATRY_AGAIN_ = 11002; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSANO_RECOVERY_ = 11003; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSANO_DATA_ = 11004; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_RECEIVERS_ = 11005; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_SENDERS_ = 11006; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_NO_SENDERS_ = 11007; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_NO_RECEIVERS_ = 11008; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_REQUEST_CONFIRMED_ = 11009; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_ADMISSION_FAILURE_ = 11010; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_POLICY_FAILURE_ = 11011; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_BAD_STYLE_ = 11012; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_BAD_OBJECT_ = 11013; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_TRAFFIC_CTRL_ERROR_ = 11014; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_GENERIC_ERROR_ = 11015; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_ESERVICETYPE_ = 11016; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EFLOWSPEC_ = 11017; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EPROVSPECBUF_ = 11018; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EFILTERSTYLE_ = 11019; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EFILTERTYPE_ = 11020; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EFILTERCOUNT_ = 11021; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EOBJLENGTH_ = 11022; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EFLOWCOUNT_ = 11023; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EUNKOWNPSOBJ_ = 11024; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EPOLICYOBJ_ = 11025; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EFLOWDESC_ = 11026; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EPSFLOWSPEC_ = 11027; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_EPSFILTERSPEC_ = 11028; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_ESDMODEOBJ_ = 11029; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_ESHAPERATEOBJ_ = 11030; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_QOS_RESERVED_PETYPE_ = 11031; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_SECURE_HOST_NOT_FOUND_ = 11032; -BOOST_CONSTEXPR_OR_CONST DWORD_ WSA_IPSEC_NAME_POLICY_ERROR_ = 11033; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_QM_POLICY_EXISTS_ = 13000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_QM_POLICY_NOT_FOUND_ = 13001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_QM_POLICY_IN_USE_ = 13002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_POLICY_EXISTS_ = 13003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_POLICY_NOT_FOUND_ = 13004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_POLICY_IN_USE_ = 13005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_FILTER_EXISTS_ = 13006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_FILTER_NOT_FOUND_ = 13007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_TRANSPORT_FILTER_EXISTS_ = 13008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND_ = 13009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_AUTH_EXISTS_ = 13010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_AUTH_NOT_FOUND_ = 13011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_AUTH_IN_USE_ = 13012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND_ = 13013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND_ = 13014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND_ = 13015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_TUNNEL_FILTER_EXISTS_ = 13016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND_ = 13017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_FILTER_PENDING_DELETION_ = 13018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION_ = 13019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION_ = 13020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_POLICY_PENDING_DELETION_ = 13021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_MM_AUTH_PENDING_DELETION_ = 13022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_QM_POLICY_PENDING_DELETION_ = 13023; -BOOST_CONSTEXPR_OR_CONST DWORD_ WARNING_IPSEC_MM_POLICY_PRUNED_ = 13024; -BOOST_CONSTEXPR_OR_CONST DWORD_ WARNING_IPSEC_QM_POLICY_PRUNED_ = 13025; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NEG_STATUS_BEGIN_ = 13800; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_AUTH_FAIL_ = 13801; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_ATTRIB_FAIL_ = 13802; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NEGOTIATION_PENDING_ = 13803; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR_ = 13804; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_TIMED_OUT_ = 13805; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NO_CERT_ = 13806; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SA_DELETED_ = 13807; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SA_REAPED_ = 13808; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_MM_ACQUIRE_DROP_ = 13809; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_QM_ACQUIRE_DROP_ = 13810; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_QUEUE_DROP_MM_ = 13811; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM_ = 13812; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_DROP_NO_RESPONSE_ = 13813; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_MM_DELAY_DROP_ = 13814; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_QM_DELAY_DROP_ = 13815; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_ERROR_ = 13816; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_CRL_FAILED_ = 13817; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_KEY_USAGE_ = 13818; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_CERT_TYPE_ = 13819; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NO_PRIVATE_KEY_ = 13820; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY_ = 13821; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_DH_FAIL_ = 13822; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED_ = 13823; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_HEADER_ = 13824; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NO_POLICY_ = 13825; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_SIGNATURE_ = 13826; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_KERBEROS_ERROR_ = 13827; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NO_PUBLIC_KEY_ = 13828; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_ = 13829; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_SA_ = 13830; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_PROP_ = 13831; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_TRANS_ = 13832; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_KE_ = 13833; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_ID_ = 13834; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_CERT_ = 13835; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ_ = 13836; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_HASH_ = 13837; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_SIG_ = 13838; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_NONCE_ = 13839; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY_ = 13840; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_DELETE_ = 13841; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR_ = 13842; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_PAYLOAD_ = 13843; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_LOAD_SOFT_SA_ = 13844; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN_ = 13845; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_COOKIE_ = 13846; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NO_PEER_CERT_ = 13847; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PEER_CRL_FAILED_ = 13848; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_POLICY_CHANGE_ = 13849; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NO_MM_POLICY_ = 13850; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NOTCBPRIV_ = 13851; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SECLOADFAIL_ = 13852; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_FAILSSPINIT_ = 13853; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_FAILQUERYSSP_ = 13854; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SRVACQFAIL_ = 13855; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SRVQUERYCRED_ = 13856; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_GETSPIFAIL_ = 13857; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_FILTER_ = 13858; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_OUT_OF_MEMORY_ = 13859; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED_ = 13860; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_POLICY_ = 13861; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_UNKNOWN_DOI_ = 13862; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_SITUATION_ = 13863; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_DH_FAILURE_ = 13864; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_GROUP_ = 13865; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_ENCRYPT_ = 13866; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_DECRYPT_ = 13867; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_POLICY_MATCH_ = 13868; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_UNSUPPORTED_ID_ = 13869; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_HASH_ = 13870; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_HASH_ALG_ = 13871; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_HASH_SIZE_ = 13872; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG_ = 13873; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_AUTH_ALG_ = 13874; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_SIG_ = 13875; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_LOAD_FAILED_ = 13876; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_RPC_DELETE_ = 13877; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_BENIGN_REINIT_ = 13878; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY_ = 13879; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION_ = 13880; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN_ = 13881; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_MM_LIMIT_ = 13882; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NEGOTIATION_DISABLED_ = 13883; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_QM_LIMIT_ = 13884; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_MM_EXPIRED_ = 13885; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID_ = 13886; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH_ = 13887; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID_ = 13888; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD_ = 13889; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_DOS_COOKIE_SENT_ = 13890; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_SHUTTING_DOWN_ = 13891; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_CGA_AUTH_FAILED_ = 13892; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PROCESS_ERR_NATOA_ = 13893; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INVALID_MM_FOR_QM_ = 13894; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_QM_EXPIRED_ = 13895; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_TOO_MANY_FILTERS_ = 13896; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NEG_STATUS_END_ = 13897; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL_ = 13898; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE_ = 13899; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING_ = 13900; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING_ = 13901; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS_ = 13902; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_RATELIMIT_DROP_ = 13903; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE_ = 13904; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_ = 13905; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE_ = 13906; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY_ = 13907; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE_ = 13908; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END_ = 13909; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_BAD_SPI_ = 13910; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_SA_LIFETIME_EXPIRED_ = 13911; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_WRONG_SA_ = 13912; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_REPLAY_CHECK_FAILED_ = 13913; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_INVALID_PACKET_ = 13914; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_INTEGRITY_CHECK_FAILED_ = 13915; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_CLEAR_TEXT_DROP_ = 13916; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_AUTH_FIREWALL_DROP_ = 13917; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_THROTTLE_DROP_ = 13918; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_BLOCK_ = 13925; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_RECEIVED_MULTICAST_ = 13926; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_INVALID_PACKET_ = 13927; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED_ = 13928; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_MAX_ENTRIES_ = 13929; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED_ = 13930; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_NOT_INSTALLED_ = 13931; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES_ = 13932; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_SECTION_NOT_FOUND_ = 14000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_CANT_GEN_ACTCTX_ = 14001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_ACTCTXDATA_FORMAT_ = 14002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_ASSEMBLY_NOT_FOUND_ = 14003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MANIFEST_FORMAT_ERROR_ = 14004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MANIFEST_PARSE_ERROR_ = 14005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_ACTIVATION_CONTEXT_DISABLED_ = 14006; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_KEY_NOT_FOUND_ = 14007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_VERSION_CONFLICT_ = 14008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_WRONG_SECTION_TYPE_ = 14009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_THREAD_QUERIES_DISABLED_ = 14010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET_ = 14011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_UNKNOWN_ENCODING_GROUP_ = 14012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_UNKNOWN_ENCODING_ = 14013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_XML_NAMESPACE_URI_ = 14014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED_ = 14015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED_ = 14016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_ = 14017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE_ = 14018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE_ = 14019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT_ = 14020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_DLL_NAME_ = 14021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME_ = 14022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_CLSID_ = 14023; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_IID_ = 14024; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_TLBID_ = 14025; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_PROGID_ = 14026; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_DUPLICATE_ASSEMBLY_NAME_ = 14027; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_FILE_HASH_MISMATCH_ = 14028; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_POLICY_PARSE_ERROR_ = 14029; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MISSINGQUOTE_ = 14030; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_COMMENTSYNTAX_ = 14031; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADSTARTNAMECHAR_ = 14032; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADNAMECHAR_ = 14033; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADCHARINSTRING_ = 14034; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_XMLDECLSYNTAX_ = 14035; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADCHARDATA_ = 14036; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MISSINGWHITESPACE_ = 14037; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_EXPECTINGTAGEND_ = 14038; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MISSINGSEMICOLON_ = 14039; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNBALANCEDPAREN_ = 14040; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INTERNALERROR_ = 14041; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE_ = 14042; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INCOMPLETE_ENCODING_ = 14043; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MISSING_PAREN_ = 14044; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE_ = 14045; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MULTIPLE_COLONS_ = 14046; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALID_DECIMAL_ = 14047; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALID_HEXIDECIMAL_ = 14048; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALID_UNICODE_ = 14049; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK_ = 14050; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNEXPECTEDENDTAG_ = 14051; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDTAG_ = 14052; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_DUPLICATEATTRIBUTE_ = 14053; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MULTIPLEROOTS_ = 14054; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALIDATROOTLEVEL_ = 14055; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADXMLDECL_ = 14056; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MISSINGROOT_ = 14057; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNEXPECTEDEOF_ = 14058; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADPEREFINSUBSET_ = 14059; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDSTARTTAG_ = 14060; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDENDTAG_ = 14061; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDSTRING_ = 14062; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDCOMMENT_ = 14063; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDDECL_ = 14064; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNCLOSEDCDATA_ = 14065; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_RESERVEDNAMESPACE_ = 14066; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALIDENCODING_ = 14067; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALIDSWITCH_ = 14068; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_BADXMLCASE_ = 14069; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALID_STANDALONE_ = 14070; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_UNEXPECTED_STANDALONE_ = 14071; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_INVALID_VERSION_ = 14072; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_XML_E_MISSINGEQUALS_ = 14073; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PROTECTION_RECOVERY_FAILED_ = 14074; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT_ = 14075; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PROTECTION_CATALOG_NOT_VALID_ = 14076; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_UNTRANSLATABLE_HRESULT_ = 14077; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING_ = 14078; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE_ = 14079; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME_ = 14080; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_ASSEMBLY_MISSING_ = 14081; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_CORRUPT_ACTIVATION_STACK_ = 14082; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_CORRUPTION_ = 14083; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_EARLY_DEACTIVATION_ = 14084; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_DEACTIVATION_ = 14085; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MULTIPLE_DEACTIVATION_ = 14086; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_PROCESS_TERMINATION_REQUESTED_ = 14087; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_RELEASE_ACTIVATION_CONTEXT_ = 14088; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY_ = 14089; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE_ = 14090; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME_ = 14091; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE_ = 14092; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_IDENTITY_PARSE_ERROR_ = 14093; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MALFORMED_SUBSTITUTION_STRING_ = 14094; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN_ = 14095; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_UNMAPPED_SUBSTITUTION_STRING_ = 14096; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_ASSEMBLY_NOT_LOCKED_ = 14097; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_COMPONENT_STORE_CORRUPT_ = 14098; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_ADVANCED_INSTALLER_FAILED_ = 14099; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_XML_ENCODING_MISMATCH_ = 14100; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT_ = 14101; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_IDENTITIES_DIFFERENT_ = 14102; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT_ = 14103; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY_ = 14104; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_MANIFEST_TOO_BIG_ = 14105; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_SETTING_NOT_REGISTERED_ = 14106; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE_ = 14107; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SMI_PRIMITIVE_INSTALLER_FAILED_ = 14108; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GENERIC_COMMAND_FAILED_ = 14109; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SXS_FILE_HASH_MISSING_ = 14110; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_CHANNEL_PATH_ = 15000; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_QUERY_ = 15001; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND_ = 15002; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND_ = 15003; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_PUBLISHER_NAME_ = 15004; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_EVENT_DATA_ = 15005; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_CHANNEL_NOT_FOUND_ = 15007; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_MALFORMED_XML_TEXT_ = 15008; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL_ = 15009; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_CONFIGURATION_ERROR_ = 15010; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_QUERY_RESULT_STALE_ = 15011; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_QUERY_RESULT_INVALID_POSITION_ = 15012; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_NON_VALIDATING_MSXML_ = 15013; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_ALREADYSCOPED_ = 15014; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_NOTELTSET_ = 15015; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_INVARG_ = 15016; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_INVTEST_ = 15017; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_INVTYPE_ = 15018; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_PARSEERR_ = 15019; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_UNSUPPORTEDOP_ = 15020; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_UNEXPECTEDTOKEN_ = 15021; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL_ = 15022; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE_ = 15023; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE_ = 15024; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_CHANNEL_CANNOT_ACTIVATE_ = 15025; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_TOO_COMPLEX_ = 15026; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_MESSAGE_NOT_FOUND_ = 15027; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_MESSAGE_ID_NOT_FOUND_ = 15028; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_UNRESOLVED_VALUE_INSERT_ = 15029; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_UNRESOLVED_PARAMETER_INSERT_ = 15030; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_MAX_INSERTS_REACHED_ = 15031; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_EVENT_DEFINITION_NOT_FOUND_ = 15032; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND_ = 15033; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_VERSION_TOO_OLD_ = 15034; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_VERSION_TOO_NEW_ = 15035; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY_ = 15036; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_PUBLISHER_DISABLED_ = 15037; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EVT_FILTER_OUT_OF_RANGE_ = 15038; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE_ = 15080; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EC_LOG_DISABLED_ = 15081; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EC_CIRCULAR_FORWARDING_ = 15082; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EC_CREDSTORE_FULL_ = 15083; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EC_CRED_NOT_FOUND_ = 15084; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_EC_NO_ACTIVE_CHANNEL_ = 15085; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_FILE_NOT_FOUND_ = 15100; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_INVALID_FILE_ = 15101; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_INVALID_RC_CONFIG_ = 15102; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_INVALID_LOCALE_NAME_ = 15103; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME_ = 15104; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_FILE_NOT_LOADED_ = 15105; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESOURCE_ENUM_USER_STOP_ = 15106; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED_ = 15107; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME_ = 15108; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE_ = 15110; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INVALID_PRICONFIG_ = 15111; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INVALID_FILE_TYPE_ = 15112; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_UNKNOWN_QUALIFIER_ = 15113; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INVALID_QUALIFIER_VALUE_ = 15114; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_NO_CANDIDATE_ = 15115; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE_ = 15116; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_RESOURCE_TYPE_MISMATCH_ = 15117; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_DUPLICATE_MAP_NAME_ = 15118; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_DUPLICATE_ENTRY_ = 15119; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INVALID_RESOURCE_IDENTIFIER_ = 15120; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_FILEPATH_TOO_LONG_ = 15121; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE_ = 15122; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INVALID_PRI_FILE_ = 15126; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_NAMED_RESOURCE_NOT_FOUND_ = 15127; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_MAP_NOT_FOUND_ = 15135; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_UNSUPPORTED_PROFILE_TYPE_ = 15136; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INVALID_QUALIFIER_OPERATOR_ = 15137; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE_ = 15138; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_AUTOMERGE_ENABLED_ = 15139; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_TOO_MANY_RESOURCES_ = 15140; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE_ = 15141; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE_ = 15142; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD_ = 15143; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST_ = 15144; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT_ = 15145; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE_ = 15146; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MRM_GENERATION_COUNT_MISMATCH_ = 15147; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_INVALID_CAPABILITIES_STRING_ = 15200; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_INVALID_VCP_VERSION_ = 15201; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION_ = 15202; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_MCCS_VERSION_MISMATCH_ = 15203; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_UNSUPPORTED_MCCS_VERSION_ = 15204; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_INTERNAL_ERROR_ = 15205; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED_ = 15206; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE_ = 15207; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_AMBIGUOUS_SYSTEM_DEVICE_ = 15250; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_DEVICE_NOT_FOUND_ = 15299; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HASH_NOT_SUPPORTED_ = 15300; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_HASH_NOT_PRESENT_ = 15301; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED_ = 15321; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GPIO_CLIENT_INFORMATION_INVALID_ = 15322; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GPIO_VERSION_NOT_SUPPORTED_ = 15323; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GPIO_INVALID_REGISTRATION_PACKET_ = 15324; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GPIO_OPERATION_DENIED_ = 15325; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE_ = 15326; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED_ = 15327; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_CANNOT_SWITCH_RUNLEVEL_ = 15400; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_RUNLEVEL_SETTING_ = 15401; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RUNLEVEL_SWITCH_TIMEOUT_ = 15402; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT_ = 15403; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RUNLEVEL_SWITCH_IN_PROGRESS_ = 15404; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SERVICES_FAILED_AUTOSTART_ = 15405; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_COM_TASK_STOP_PENDING_ = 15501; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_OPEN_PACKAGE_FAILED_ = 15600; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PACKAGE_NOT_FOUND_ = 15601; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_INVALID_PACKAGE_ = 15602; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED_ = 15603; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_OUT_OF_DISK_SPACE_ = 15604; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_NETWORK_FAILURE_ = 15605; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_REGISTRATION_FAILURE_ = 15606; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_DEREGISTRATION_FAILURE_ = 15607; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_CANCEL_ = 15608; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_FAILED_ = 15609; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_REMOVE_FAILED_ = 15610; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PACKAGE_ALREADY_EXISTS_ = 15611; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_NEEDS_REMEDIATION_ = 15612; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PREREQUISITE_FAILED_ = 15613; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PACKAGE_REPOSITORY_CORRUPTED_ = 15614; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_POLICY_FAILURE_ = 15615; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PACKAGE_UPDATING_ = 15616; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DEPLOYMENT_BLOCKED_BY_POLICY_ = 15617; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_PACKAGES_IN_USE_ = 15618; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RECOVERY_FILE_CORRUPT_ = 15619; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INVALID_STAGED_SIGNATURE_ = 15620; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED_ = 15621; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_PACKAGE_DOWNGRADE_ = 15622; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_SYSTEM_NEEDS_REMEDIATION_ = 15623; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN_ = 15624; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_RESILIENCY_FILE_CORRUPT_ = 15625; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING_ = 15626; -BOOST_CONSTEXPR_OR_CONST DWORD_ APPMODEL_ERROR_NO_PACKAGE_ = 15700; -BOOST_CONSTEXPR_OR_CONST DWORD_ APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT_ = 15701; -BOOST_CONSTEXPR_OR_CONST DWORD_ APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT_ = 15702; -BOOST_CONSTEXPR_OR_CONST DWORD_ APPMODEL_ERROR_NO_APPLICATION_ = 15703; -BOOST_CONSTEXPR_OR_CONST DWORD_ APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED_ = 15704; -BOOST_CONSTEXPR_OR_CONST DWORD_ APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID_ = 15705; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_LOAD_STORE_FAILED_ = 15800; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_GET_VERSION_FAILED_ = 15801; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_SET_VERSION_FAILED_ = 15802; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_STRUCTURED_RESET_FAILED_ = 15803; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_OPEN_CONTAINER_FAILED_ = 15804; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_CREATE_CONTAINER_FAILED_ = 15805; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_DELETE_CONTAINER_FAILED_ = 15806; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_READ_SETTING_FAILED_ = 15807; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_WRITE_SETTING_FAILED_ = 15808; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_DELETE_SETTING_FAILED_ = 15809; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_QUERY_SETTING_FAILED_ = 15810; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_READ_COMPOSITE_SETTING_FAILED_ = 15811; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED_ = 15812; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_ENUMERATE_CONTAINER_FAILED_ = 15813; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_ENUMERATE_SETTINGS_FAILED_ = 15814; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED_ = 15815; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED_ = 15816; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED_ = 15817; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED_ = 15818; -BOOST_CONSTEXPR_OR_CONST DWORD_ ERROR_API_UNAVAILABLE_ = 15841; -BOOST_CONSTEXPR_OR_CONST DWORD_ STORE_ERROR_UNLICENSED_ = 15861; -BOOST_CONSTEXPR_OR_CONST DWORD_ STORE_ERROR_UNLICENSED_USER_ = 15862; -BOOST_CONSTEXPR_OR_CONST DWORD_ STORE_ERROR_PENDING_COM_TRANSACTION_ = 15863; -BOOST_CONSTEXPR_OR_CONST DWORD_ STORE_ERROR_LICENSE_REVOKED_ = 15864; - -} // namespace winapi -} // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_WINAPI_ERROR_CODES_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/error_handling.hpp b/lib/3rdParty/boost/boost/detail/winapi/error_handling.hpp deleted file mode 100644 index 4847bc944..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/error_handling.hpp +++ /dev/null @@ -1,143 +0,0 @@ -// error_handling.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev -// Copyright 2016 Jorge Lodos - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_ERROR_HANDLING_HPP -#define BOOST_DETAIL_WINAPI_ERROR_HANDLING_HPP - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -FormatMessageA( - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPCVOID_ lpSource, - boost::detail::winapi::DWORD_ dwMessageId, - boost::detail::winapi::DWORD_ dwLanguageId, - boost::detail::winapi::LPSTR_ lpBuffer, - boost::detail::winapi::DWORD_ nSize, - va_list *Arguments); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -FormatMessageW( - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPCVOID_ lpSource, - boost::detail::winapi::DWORD_ dwMessageId, - boost::detail::winapi::DWORD_ dwLanguageId, - boost::detail::winapi::LPWSTR_ lpBuffer, - boost::detail::winapi::DWORD_ nSize, - va_list *Arguments); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::UINT_ WINAPI -SetErrorMode(boost::detail::winapi::UINT_ uMode); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= FORMAT_MESSAGE_ALLOCATE_BUFFER; -const DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= FORMAT_MESSAGE_IGNORE_INSERTS; -const DWORD_ FORMAT_MESSAGE_FROM_STRING_= FORMAT_MESSAGE_FROM_STRING; -const DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= FORMAT_MESSAGE_FROM_HMODULE; -const DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= FORMAT_MESSAGE_FROM_SYSTEM; -const DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= FORMAT_MESSAGE_ARGUMENT_ARRAY; -const DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= FORMAT_MESSAGE_MAX_WIDTH_MASK; - -const WORD_ LANG_NEUTRAL_= LANG_NEUTRAL; -const WORD_ LANG_INVARIANT_= LANG_INVARIANT; - -const WORD_ SUBLANG_DEFAULT_= SUBLANG_DEFAULT; // user default - -BOOST_FORCEINLINE WORD_ MAKELANGID_(WORD_ p, WORD_ s) -{ - return MAKELANGID(p,s); -} - -const DWORD_ SEM_FAILCRITICALERRORS_ = SEM_FAILCRITICALERRORS; -const DWORD_ SEM_NOGPFAULTERRORBOX_ = SEM_NOGPFAULTERRORBOX; -const DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = SEM_NOALIGNMENTFAULTEXCEPT; -const DWORD_ SEM_NOOPENFILEERRORBOX_ = SEM_NOOPENFILEERRORBOX; - -#else - -const DWORD_ FORMAT_MESSAGE_ALLOCATE_BUFFER_= 0x00000100; -const DWORD_ FORMAT_MESSAGE_IGNORE_INSERTS_= 0x00000200; -const DWORD_ FORMAT_MESSAGE_FROM_STRING_= 0x00000400; -const DWORD_ FORMAT_MESSAGE_FROM_HMODULE_= 0x00000800; -const DWORD_ FORMAT_MESSAGE_FROM_SYSTEM_= 0x00001000; -const DWORD_ FORMAT_MESSAGE_ARGUMENT_ARRAY_= 0x00002000; -const DWORD_ FORMAT_MESSAGE_MAX_WIDTH_MASK_= 0x000000FF; - -const WORD_ LANG_NEUTRAL_= 0x00; -const WORD_ LANG_INVARIANT_= 0x7f; - -const WORD_ SUBLANG_DEFAULT_= 0x01; // user default - -BOOST_FORCEINLINE WORD_ MAKELANGID_(WORD_ p, WORD_ s) -{ - return (WORD_)((((WORD_)(s)) << 10) | (WORD_)(p)); -} - -const DWORD_ SEM_FAILCRITICALERRORS_ = 0x0001; -const DWORD_ SEM_NOGPFAULTERRORBOX_ = 0x0002; -const DWORD_ SEM_NOALIGNMENTFAULTEXCEPT_ = 0x0004; -const DWORD_ SEM_NOOPENFILEERRORBOX_ = 0x8000; - -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::FormatMessageA; -#endif -using ::FormatMessageW; -using ::SetErrorMode; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE DWORD_ format_message( - DWORD_ dwFlags, - LPCVOID_ lpSource, - DWORD_ dwMessageId, - DWORD_ dwLanguageId, - LPSTR_ lpBuffer, - DWORD_ nSize, - va_list *Arguments) -{ - return ::FormatMessageA(dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments); -} -#endif - -BOOST_FORCEINLINE DWORD_ format_message( - DWORD_ dwFlags, - LPCVOID_ lpSource, - DWORD_ dwMessageId, - DWORD_ dwLanguageId, - LPWSTR_ lpBuffer, - DWORD_ nSize, - va_list *Arguments) -{ - return ::FormatMessageW(dwFlags, lpSource, dwMessageId, dwLanguageId, lpBuffer, nSize, Arguments); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_ERROR_HANDLING_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/event.hpp b/lib/3rdParty/boost/boost/detail/winapi/event.hpp deleted file mode 100644 index 64ee892a0..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/event.hpp +++ /dev/null @@ -1,190 +0,0 @@ -// event.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_EVENT_HPP -#define BOOST_DETAIL_WINAPI_EVENT_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -#if !defined( BOOST_PLAT_WINDOWS_RUNTIME_AVALIABLE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateEventA( - ::_SECURITY_ATTRIBUTES* lpEventAttributes, - boost::detail::winapi::BOOL_ bManualReset, - boost::detail::winapi::BOOL_ bInitialState, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateEventExA( - ::_SECURITY_ATTRIBUTES *lpEventAttributes, - boost::detail::winapi::LPCSTR_ lpName, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwDesiredAccess); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenEventA( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateEventW( - ::_SECURITY_ATTRIBUTES* lpEventAttributes, - boost::detail::winapi::BOOL_ bManualReset, - boost::detail::winapi::BOOL_ bInitialState, - boost::detail::winapi::LPCWSTR_ lpName); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateEventExW( - ::_SECURITY_ATTRIBUTES *lpEventAttributes, - boost::detail::winapi::LPCWSTR_ lpName, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwDesiredAccess); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenEventW( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCWSTR_ lpName); - -// Windows CE define SetEvent/ResetEvent as inline functions in kfuncs.h -#if !defined( UNDER_CE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetEvent(boost::detail::winapi::HANDLE_ hEvent); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -ResetEvent(boost::detail::winapi::HANDLE_ hEvent); -#endif -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::OpenEventA; -#endif -using ::OpenEventW; -using ::SetEvent; -using ::ResetEvent; - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ EVENT_ALL_ACCESS_ = EVENT_ALL_ACCESS; -const DWORD_ EVENT_MODIFY_STATE_ = EVENT_MODIFY_STATE; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ CREATE_EVENT_INITIAL_SET_ = CREATE_EVENT_INITIAL_SET; -const DWORD_ CREATE_EVENT_MANUAL_RESET_ = CREATE_EVENT_MANUAL_RESET; -#endif - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ EVENT_ALL_ACCESS_ = 0x001F0003; -const DWORD_ EVENT_MODIFY_STATE_ = 0x00000002; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ CREATE_EVENT_INITIAL_SET_ = 0x00000002; -const DWORD_ CREATE_EVENT_MANUAL_RESET_ = 0x00000001; -#endif - -#endif // defined( BOOST_USE_WINDOWS_H ) - -// Undocumented and not present in Windows SDK. Enables NtQueryEvent. -// http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FEvent%2FNtQueryEvent.html -const DWORD_ EVENT_QUERY_STATE_ = 0x00000001; - -const DWORD_ event_all_access = EVENT_ALL_ACCESS_; -const DWORD_ event_modify_state = EVENT_MODIFY_STATE_; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ create_event_initial_set = CREATE_EVENT_INITIAL_SET_; -const DWORD_ create_event_manual_reset = CREATE_EVENT_MANUAL_RESET_; -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateEventA(SECURITY_ATTRIBUTES_* lpEventAttributes, BOOL_ bManualReset, BOOL_ bInitialState, LPCSTR_ lpName) -{ -#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - const DWORD_ flags = (bManualReset ? create_event_manual_reset : 0u) | (bInitialState ? create_event_initial_set : 0u); - return ::CreateEventExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpEventAttributes), lpName, flags, event_all_access); -#else - return ::CreateEventA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpEventAttributes), bManualReset, bInitialState, lpName); -#endif -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE HANDLE_ CreateEventExA(SECURITY_ATTRIBUTES_* lpEventAttributes, LPCSTR_ lpName, DWORD_ dwFlags, DWORD_ dwDesiredAccess) -{ - return ::CreateEventExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpEventAttributes), lpName, dwFlags, dwDesiredAccess); -} -#endif -#endif - -BOOST_FORCEINLINE HANDLE_ CreateEventW(SECURITY_ATTRIBUTES_* lpEventAttributes, BOOL_ bManualReset, BOOL_ bInitialState, LPCWSTR_ lpName) -{ -#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - const DWORD_ flags = (bManualReset ? create_event_manual_reset : 0u) | (bInitialState ? create_event_initial_set : 0u); - return ::CreateEventExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpEventAttributes), lpName, flags, event_all_access); -#else - return ::CreateEventW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpEventAttributes), bManualReset, bInitialState, lpName); -#endif -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE HANDLE_ CreateEventExW(SECURITY_ATTRIBUTES_* lpEventAttributes, LPCWSTR_ lpName, DWORD_ dwFlags, DWORD_ dwDesiredAccess) -{ - return ::CreateEventExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpEventAttributes), lpName, dwFlags, dwDesiredAccess); -} -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ create_event(SECURITY_ATTRIBUTES_* lpEventAttributes, BOOL_ bManualReset, BOOL_ bInitialState, LPCSTR_ lpName) -{ - return winapi::CreateEventA(lpEventAttributes, bManualReset, bInitialState, lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_event(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCSTR_ lpName) -{ - return ::OpenEventA(dwDesiredAccess, bInheritHandle, lpName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ create_event(SECURITY_ATTRIBUTES_* lpEventAttributes, BOOL_ bManualReset, BOOL_ bInitialState, LPCWSTR_ lpName) -{ - return winapi::CreateEventW(lpEventAttributes, bManualReset, bInitialState, lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_event(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCWSTR_ lpName) -{ - return ::OpenEventW(dwDesiredAccess, bInheritHandle, lpName); -} - -BOOST_FORCEINLINE HANDLE_ create_anonymous_event(SECURITY_ATTRIBUTES_* lpEventAttributes, BOOL_ bManualReset, BOOL_ bInitialState) -{ - return winapi::CreateEventW(lpEventAttributes, bManualReset, bInitialState, 0); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_EVENT_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/file_management.hpp b/lib/3rdParty/boost/boost/detail/winapi/file_management.hpp deleted file mode 100644 index 80567bd47..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/file_management.hpp +++ /dev/null @@ -1,535 +0,0 @@ -// file_management.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev -// Copyright 2016 Jorge Lodos - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_FILE_MANAGEMENT_HPP -#define BOOST_DETAIL_WINAPI_FILE_MANAGEMENT_HPP - -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateFileA( - boost::detail::winapi::LPCSTR_ lpFileName, - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::DWORD_ dwShareMode, - ::_SECURITY_ATTRIBUTES* lpSecurityAttributes, - boost::detail::winapi::DWORD_ dwCreationDisposition, - boost::detail::winapi::DWORD_ dwFlagsAndAttributes, - boost::detail::winapi::HANDLE_ hTemplateFile); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -DeleteFileA(boost::detail::winapi::LPCSTR_ lpFileName); - -struct _WIN32_FIND_DATAA; -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -FindFirstFileA(boost::detail::winapi::LPCSTR_ lpFileName, ::_WIN32_FIND_DATAA* lpFindFileData); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FindNextFileA(boost::detail::winapi::HANDLE_ hFindFile, ::_WIN32_FIND_DATAA* lpFindFileData); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -MoveFileExA( - boost::detail::winapi::LPCSTR_ lpExistingFileName, - boost::detail::winapi::LPCSTR_ lpNewFileName, - boost::detail::winapi::DWORD_ dwFlags); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetFileAttributesA(boost::detail::winapi::LPCSTR_ lpFileName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -AreFileApisANSI(BOOST_DETAIL_WINAPI_VOID); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateFileW( - boost::detail::winapi::LPCWSTR_ lpFileName, - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::DWORD_ dwShareMode, - ::_SECURITY_ATTRIBUTES* lpSecurityAttributes, - boost::detail::winapi::DWORD_ dwCreationDisposition, - boost::detail::winapi::DWORD_ dwFlagsAndAttributes, - boost::detail::winapi::HANDLE_ hTemplateFile); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -DeleteFileW(boost::detail::winapi::LPCWSTR_ lpFileName); - -struct _WIN32_FIND_DATAW; -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -FindFirstFileW(boost::detail::winapi::LPCWSTR_ lpFileName, ::_WIN32_FIND_DATAW* lpFindFileData); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FindNextFileW(boost::detail::winapi::HANDLE_ hFindFile, ::_WIN32_FIND_DATAW* lpFindFileData); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -MoveFileExW( - boost::detail::winapi::LPCWSTR_ lpExistingFileName, - boost::detail::winapi::LPCWSTR_ lpNewFileName, - boost::detail::winapi::DWORD_ dwFlags); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetFileAttributesW(boost::detail::winapi::LPCWSTR_ lpFileName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FindClose(boost::detail::winapi::HANDLE_ hFindFile); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -GetFileSizeEx(boost::detail::winapi::HANDLE_ hFile, ::_LARGE_INTEGER* lpFileSize); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetFileValidData(boost::detail::winapi::HANDLE_ hFile, boost::detail::winapi::LONGLONG_ ValidDataLength); - -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetEndOfFile(boost::detail::winapi::HANDLE_ hFile); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -LockFile( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::DWORD_ dwFileOffsetLow, - boost::detail::winapi::DWORD_ dwFileOffsetHigh, - boost::detail::winapi::DWORD_ nNumberOfBytesToLockLow, - boost::detail::winapi::DWORD_ nNumberOfBytesToLockHigh); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -UnlockFile( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::DWORD_ dwFileOffsetLow, - boost::detail::winapi::DWORD_ dwFileOffsetHigh, - boost::detail::winapi::DWORD_ nNumberOfBytesToUnlockLow, - boost::detail::winapi::DWORD_ nNumberOfBytesToUnlockHigh); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -LockFileEx( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwReserved, - boost::detail::winapi::DWORD_ nNumberOfBytesToLockLow, - boost::detail::winapi::DWORD_ nNumberOfBytesToLockHigh, - ::_OVERLAPPED* lpOverlapped); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -UnlockFileEx( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::DWORD_ dwReserved, - boost::detail::winapi::DWORD_ nNumberOfBytesToUnlockLow, - boost::detail::winapi::DWORD_ nNumberOfBytesToUnlockHigh, - ::_OVERLAPPED* lpOverlapped); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -ReadFile( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::LPVOID_ lpBuffer, - boost::detail::winapi::DWORD_ nNumberOfBytesToRead, - boost::detail::winapi::LPDWORD_ lpNumberOfBytesRead, - ::_OVERLAPPED* lpOverlapped); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -WriteFile( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::LPCVOID_ lpBuffer, - boost::detail::winapi::DWORD_ nNumberOfBytesToWrite, - boost::detail::winapi::LPDWORD_ lpNumberOfBytesWritten, - ::_OVERLAPPED* lpOverlapped); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -SetFilePointer( - boost::detail::winapi::HANDLE_ hFile, - boost::detail::winapi::LONG_ lpDistanceToMove, - boost::detail::winapi::PLONG_ lpDistanceToMoveHigh, - boost::detail::winapi::DWORD_ dwMoveMethod); - -struct _BY_HANDLE_FILE_INFORMATION; -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -GetFileInformationByHandle( - boost::detail::winapi::HANDLE_ hFile, - ::_BY_HANDLE_FILE_INFORMATION* lpFileInformation); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ INVALID_FILE_SIZE_ = INVALID_FILE_SIZE; -const DWORD_ INVALID_SET_FILE_POINTER_ = INVALID_SET_FILE_POINTER; -const DWORD_ INVALID_FILE_ATTRIBUTES_ = INVALID_FILE_ATTRIBUTES; - -const DWORD_ FILE_ATTRIBUTE_READONLY_ = FILE_ATTRIBUTE_READONLY; -const DWORD_ FILE_ATTRIBUTE_HIDDEN_ = FILE_ATTRIBUTE_HIDDEN; -const DWORD_ FILE_ATTRIBUTE_SYSTEM_ = FILE_ATTRIBUTE_SYSTEM; -const DWORD_ FILE_ATTRIBUTE_DIRECTORY_ = FILE_ATTRIBUTE_DIRECTORY; -const DWORD_ FILE_ATTRIBUTE_ARCHIVE_ = FILE_ATTRIBUTE_ARCHIVE; -const DWORD_ FILE_ATTRIBUTE_DEVICE_ = FILE_ATTRIBUTE_DEVICE; -const DWORD_ FILE_ATTRIBUTE_NORMAL_ = FILE_ATTRIBUTE_NORMAL; -const DWORD_ FILE_ATTRIBUTE_TEMPORARY_ = FILE_ATTRIBUTE_TEMPORARY; -const DWORD_ FILE_ATTRIBUTE_SPARSE_FILE_ = FILE_ATTRIBUTE_SPARSE_FILE; -const DWORD_ FILE_ATTRIBUTE_REPARSE_POINT_ = FILE_ATTRIBUTE_REPARSE_POINT; -const DWORD_ FILE_ATTRIBUTE_COMPRESSED_ = FILE_ATTRIBUTE_COMPRESSED; -const DWORD_ FILE_ATTRIBUTE_OFFLINE_ = FILE_ATTRIBUTE_OFFLINE; -const DWORD_ FILE_ATTRIBUTE_NOT_CONTENT_INDEXED_ = FILE_ATTRIBUTE_NOT_CONTENT_INDEXED; -const DWORD_ FILE_ATTRIBUTE_ENCRYPTED_ = FILE_ATTRIBUTE_ENCRYPTED; - -const DWORD_ CREATE_NEW_ = CREATE_NEW; -const DWORD_ CREATE_ALWAYS_ = CREATE_ALWAYS; -const DWORD_ OPEN_EXISTING_ = OPEN_EXISTING; -const DWORD_ OPEN_ALWAYS_ = OPEN_ALWAYS; -const DWORD_ TRUNCATE_EXISTING_ = TRUNCATE_EXISTING; - -const DWORD_ FILE_SHARE_READ_ = FILE_SHARE_READ; -const DWORD_ FILE_SHARE_WRITE_ = FILE_SHARE_WRITE; -const DWORD_ FILE_SHARE_DELETE_ = FILE_SHARE_DELETE; - -const DWORD_ FILE_BEGIN_ = FILE_BEGIN; -const DWORD_ FILE_CURRENT_ = FILE_CURRENT; -const DWORD_ FILE_END_ = FILE_END; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ INVALID_FILE_SIZE_ = ((DWORD_)0xFFFFFFFF); -const DWORD_ INVALID_SET_FILE_POINTER_ = ((DWORD_)-1); -const DWORD_ INVALID_FILE_ATTRIBUTES_ = ((DWORD_)-1); - -const DWORD_ FILE_ATTRIBUTE_READONLY_ = 0x00000001; -const DWORD_ FILE_ATTRIBUTE_HIDDEN_ = 0x00000002; -const DWORD_ FILE_ATTRIBUTE_SYSTEM_ = 0x00000004; -const DWORD_ FILE_ATTRIBUTE_DIRECTORY_ = 0x00000010; -const DWORD_ FILE_ATTRIBUTE_ARCHIVE_ = 0x00000020; -const DWORD_ FILE_ATTRIBUTE_DEVICE_ = 0x00000040; -const DWORD_ FILE_ATTRIBUTE_NORMAL_ = 0x00000080; -const DWORD_ FILE_ATTRIBUTE_TEMPORARY_ = 0x00000100; -const DWORD_ FILE_ATTRIBUTE_SPARSE_FILE_ = 0x00000200; -const DWORD_ FILE_ATTRIBUTE_REPARSE_POINT_ = 0x00000400; -const DWORD_ FILE_ATTRIBUTE_COMPRESSED_ = 0x00000800; -const DWORD_ FILE_ATTRIBUTE_OFFLINE_ = 0x00001000; -const DWORD_ FILE_ATTRIBUTE_NOT_CONTENT_INDEXED_ = 0x00002000; -const DWORD_ FILE_ATTRIBUTE_ENCRYPTED_ = 0x00004000; - -const DWORD_ CREATE_NEW_ = 1; -const DWORD_ CREATE_ALWAYS_ = 2; -const DWORD_ OPEN_EXISTING_ = 3; -const DWORD_ OPEN_ALWAYS_ = 4; -const DWORD_ TRUNCATE_EXISTING_ = 5; - -const DWORD_ FILE_SHARE_READ_ = 0x00000001; -const DWORD_ FILE_SHARE_WRITE_ = 0x00000002; -const DWORD_ FILE_SHARE_DELETE_ = 0x00000004; - -const DWORD_ FILE_BEGIN_ = 0; -const DWORD_ FILE_CURRENT_ = 1; -const DWORD_ FILE_END_ = 2; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -// This constant is not defined in Windows SDK up until 6.0A -const DWORD_ FILE_ATTRIBUTE_VIRTUAL_ = 0x00010000; - -// These constants are not defined in Windows SDK up until 8.0 and MinGW/MinGW-w64 (as of 2016-02-14). -// They are documented to be supported only since Windows 8/Windows Server 2012 -// but defined unconditionally. -const DWORD_ FILE_ATTRIBUTE_INTEGRITY_STREAM_ = 0x00008000; -const DWORD_ FILE_ATTRIBUTE_NO_SCRUB_DATA_ = 0x00020000; -// Undocumented -const DWORD_ FILE_ATTRIBUTE_EA_ = 0x00040000; - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::DeleteFileA; -using ::MoveFileExA; -using ::GetFileAttributesA; -using ::AreFileApisANSI; -#endif - -using ::DeleteFileW; -using ::MoveFileExW; -using ::GetFileAttributesW; - -using ::FindClose; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP - -using ::SetFileValidData; - -#endif - -using ::SetEndOfFile; -using ::LockFile; -using ::UnlockFile; -using ::SetFilePointer; - - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateFileA( - LPCSTR_ lpFileName, - DWORD_ dwDesiredAccess, - DWORD_ dwShareMode, - SECURITY_ATTRIBUTES_* lpSecurityAttributes, - DWORD_ dwCreationDisposition, - DWORD_ dwFlagsAndAttributes, - HANDLE_ hTemplateFile) -{ - return ::CreateFileA( - lpFileName, - dwDesiredAccess, - dwShareMode, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes), - dwCreationDisposition, - dwFlagsAndAttributes, - hTemplateFile); -} - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _WIN32_FIND_DATAA { - DWORD_ dwFileAttributes; - FILETIME_ ftCreationTime; - FILETIME_ ftLastAccessTime; - FILETIME_ ftLastWriteTime; - DWORD_ nFileSizeHigh; - DWORD_ nFileSizeLow; - DWORD_ dwReserved0; - DWORD_ dwReserved1; - CHAR_ cFileName[MAX_PATH_]; - CHAR_ cAlternateFileName[14]; -#ifdef _MAC - DWORD_ dwFileType; - DWORD_ dwCreatorType; - WORD_ wFinderFlags; -#endif -} WIN32_FIND_DATAA_, *PWIN32_FIND_DATAA_, *LPWIN32_FIND_DATAA_; - -BOOST_FORCEINLINE HANDLE_ FindFirstFileA(LPCSTR_ lpFileName, WIN32_FIND_DATAA_* lpFindFileData) -{ - return ::FindFirstFileA(lpFileName, reinterpret_cast< ::_WIN32_FIND_DATAA* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ FindNextFileA(HANDLE_ hFindFile, WIN32_FIND_DATAA_* lpFindFileData) -{ - return ::FindNextFileA(hFindFile, reinterpret_cast< ::_WIN32_FIND_DATAA* >(lpFindFileData)); -} -#endif - -BOOST_FORCEINLINE HANDLE_ CreateFileW( - LPCWSTR_ lpFileName, - DWORD_ dwDesiredAccess, - DWORD_ dwShareMode, - SECURITY_ATTRIBUTES_* lpSecurityAttributes, - DWORD_ dwCreationDisposition, - DWORD_ dwFlagsAndAttributes, - HANDLE_ hTemplateFile) -{ - return ::CreateFileW( - lpFileName, - dwDesiredAccess, - dwShareMode, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes), - dwCreationDisposition, - dwFlagsAndAttributes, - hTemplateFile); -} - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _WIN32_FIND_DATAW { - DWORD_ dwFileAttributes; - FILETIME_ ftCreationTime; - FILETIME_ ftLastAccessTime; - FILETIME_ ftLastWriteTime; - DWORD_ nFileSizeHigh; - DWORD_ nFileSizeLow; - DWORD_ dwReserved0; - DWORD_ dwReserved1; - WCHAR_ cFileName[MAX_PATH_]; - WCHAR_ cAlternateFileName[14]; -#ifdef _MAC - DWORD_ dwFileType; - DWORD_ dwCreatorType; - WORD_ wFinderFlags; -#endif -} WIN32_FIND_DATAW_, *PWIN32_FIND_DATAW_, *LPWIN32_FIND_DATAW_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _BY_HANDLE_FILE_INFORMATION { - DWORD_ dwFileAttributes; - FILETIME_ ftCreationTime; - FILETIME_ ftLastAccessTime; - FILETIME_ ftLastWriteTime; - DWORD_ dwVolumeSerialNumber; - DWORD_ nFileSizeHigh; - DWORD_ nFileSizeLow; - DWORD_ nNumberOfLinks; - DWORD_ nFileIndexHigh; - DWORD_ nFileIndexLow; -} BY_HANDLE_FILE_INFORMATION_, *PBY_HANDLE_FILE_INFORMATION_, *LPBY_HANDLE_FILE_INFORMATION_; - -BOOST_FORCEINLINE HANDLE_ FindFirstFileW(LPCWSTR_ lpFileName, WIN32_FIND_DATAW_* lpFindFileData) -{ - return ::FindFirstFileW(lpFileName, reinterpret_cast< ::_WIN32_FIND_DATAW* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ FindNextFileW(HANDLE_ hFindFile, WIN32_FIND_DATAW_* lpFindFileData) -{ - return ::FindNextFileW(hFindFile, reinterpret_cast< ::_WIN32_FIND_DATAW* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ GetFileSizeEx(HANDLE_ hFile, LARGE_INTEGER_* lpFileSize) -{ - return ::GetFileSizeEx(hFile, reinterpret_cast< ::_LARGE_INTEGER* >(lpFileSize)); -} - -BOOST_FORCEINLINE BOOL_ LockFileEx( - HANDLE_ hFile, - DWORD_ dwFlags, - DWORD_ dwReserved, - DWORD_ nNumberOfBytesToLockLow, - DWORD_ nNumberOfBytesToLockHigh, - OVERLAPPED_* lpOverlapped) -{ - return ::LockFileEx(hFile, dwFlags, dwReserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh, reinterpret_cast< ::_OVERLAPPED* >(lpOverlapped)); -} - -BOOST_FORCEINLINE BOOL_ UnlockFileEx( - HANDLE_ hFile, - DWORD_ dwReserved, - DWORD_ nNumberOfBytesToUnlockLow, - DWORD_ nNumberOfBytesToUnlockHigh, - OVERLAPPED_* lpOverlapped) -{ - return ::UnlockFileEx(hFile, dwReserved, nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh, reinterpret_cast< ::_OVERLAPPED* >(lpOverlapped)); -} - -BOOST_FORCEINLINE BOOL_ ReadFile( - HANDLE_ hFile, - LPVOID_ lpBuffer, - DWORD_ nNumberOfBytesToWrite, - LPDWORD_ lpNumberOfBytesWritten, - OVERLAPPED_* lpOverlapped) -{ - return ::ReadFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, reinterpret_cast< ::_OVERLAPPED* >(lpOverlapped)); -} - -BOOST_FORCEINLINE BOOL_ WriteFile( - HANDLE_ hFile, - LPCVOID_ lpBuffer, - DWORD_ nNumberOfBytesToWrite, - LPDWORD_ lpNumberOfBytesWritten, - OVERLAPPED_* lpOverlapped) -{ - return ::WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, reinterpret_cast< ::_OVERLAPPED* >(lpOverlapped)); -} - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ create_file( - LPCSTR_ lpFileName, - DWORD_ dwDesiredAccess, - DWORD_ dwShareMode, - SECURITY_ATTRIBUTES_* lpSecurityAttributes, - DWORD_ dwCreationDisposition, - DWORD_ dwFlagsAndAttributes, - HANDLE_ hTemplateFile) -{ - return ::CreateFileA( - lpFileName, - dwDesiredAccess, - dwShareMode, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes), - dwCreationDisposition, - dwFlagsAndAttributes, - hTemplateFile); -} - -BOOST_FORCEINLINE BOOL_ delete_file(LPCSTR_ lpFileName) -{ - return ::DeleteFileA(lpFileName); -} - -BOOST_FORCEINLINE HANDLE_ find_first_file(LPCSTR_ lpFileName, WIN32_FIND_DATAA_* lpFindFileData) -{ - return ::FindFirstFileA(lpFileName, reinterpret_cast< ::_WIN32_FIND_DATAA* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ find_next_file(HANDLE_ hFindFile, WIN32_FIND_DATAA_* lpFindFileData) -{ - return ::FindNextFileA(hFindFile, reinterpret_cast< ::_WIN32_FIND_DATAA* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ move_file(LPCSTR_ lpExistingFileName, LPCSTR_ lpNewFileName, DWORD_ dwFlags) -{ - return ::MoveFileExA(lpExistingFileName, lpNewFileName, dwFlags); -} - -BOOST_FORCEINLINE DWORD_ get_file_attributes(LPCSTR_ lpFileName) -{ - return ::GetFileAttributesA(lpFileName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ create_file( - LPCWSTR_ lpFileName, - DWORD_ dwDesiredAccess, - DWORD_ dwShareMode, - SECURITY_ATTRIBUTES_* lpSecurityAttributes, - DWORD_ dwCreationDisposition, - DWORD_ dwFlagsAndAttributes, - HANDLE_ hTemplateFile) -{ - return ::CreateFileW( - lpFileName, - dwDesiredAccess, - dwShareMode, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes), - dwCreationDisposition, - dwFlagsAndAttributes, - hTemplateFile); -} - -BOOST_FORCEINLINE BOOL_ delete_file(LPCWSTR_ lpFileName) -{ - return ::DeleteFileW(lpFileName); -} - -BOOST_FORCEINLINE HANDLE_ find_first_file(LPCWSTR_ lpFileName, WIN32_FIND_DATAW_* lpFindFileData) -{ - return ::FindFirstFileW(lpFileName, reinterpret_cast< ::_WIN32_FIND_DATAW* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ find_next_file(HANDLE_ hFindFile, WIN32_FIND_DATAW_* lpFindFileData) -{ - return ::FindNextFileW(hFindFile, reinterpret_cast< ::_WIN32_FIND_DATAW* >(lpFindFileData)); -} - -BOOST_FORCEINLINE BOOL_ move_file(LPCWSTR_ lpExistingFileName, LPCWSTR_ lpNewFileName, DWORD_ dwFlags) -{ - return ::MoveFileExW(lpExistingFileName, lpNewFileName, dwFlags); -} - -BOOST_FORCEINLINE DWORD_ get_file_attributes(LPCWSTR_ lpFileName) -{ - return ::GetFileAttributesW(lpFileName); -} - -BOOST_FORCEINLINE BOOL_ GetFileInformationByHandle(HANDLE_ h, BY_HANDLE_FILE_INFORMATION_* info) -{ - return ::GetFileInformationByHandle(h, reinterpret_cast< ::_BY_HANDLE_FILE_INFORMATION* >(info)); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_FILE_MANAGEMENT_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/file_mapping.hpp b/lib/3rdParty/boost/boost/detail/winapi/file_mapping.hpp deleted file mode 100644 index 38c23d554..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/file_mapping.hpp +++ /dev/null @@ -1,238 +0,0 @@ -// file_mapping.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev -// Copyright 2016 Jorge Lodos - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_FILE_MAPPING_HPP -#define BOOST_DETAIL_WINAPI_FILE_MAPPING_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateFileMappingA( - boost::detail::winapi::HANDLE_ hFile, - ::_SECURITY_ATTRIBUTES* lpFileMappingAttributes, - boost::detail::winapi::DWORD_ flProtect, - boost::detail::winapi::DWORD_ dwMaximumSizeHigh, - boost::detail::winapi::DWORD_ dwMaximumSizeLow, - boost::detail::winapi::LPCSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenFileMappingA( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateFileMappingW( - boost::detail::winapi::HANDLE_ hFile, - ::_SECURITY_ATTRIBUTES* lpFileMappingAttributes, - boost::detail::winapi::DWORD_ flProtect, - boost::detail::winapi::DWORD_ dwMaximumSizeHigh, - boost::detail::winapi::DWORD_ dwMaximumSizeLow, - boost::detail::winapi::LPCWSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenFileMappingW( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCWSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPVOID_ WINAPI -MapViewOfFile( - boost::detail::winapi::HANDLE_ hFileMappingObject, - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::DWORD_ dwFileOffsetHigh, - boost::detail::winapi::DWORD_ dwFileOffsetLow, - boost::detail::winapi::SIZE_T_ dwNumberOfBytesToMap); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPVOID_ WINAPI -MapViewOfFileEx( - boost::detail::winapi::HANDLE_ hFileMappingObject, - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::DWORD_ dwFileOffsetHigh, - boost::detail::winapi::DWORD_ dwFileOffsetLow, - boost::detail::winapi::SIZE_T_ dwNumberOfBytesToMap, - boost::detail::winapi::LPVOID_ lpBaseAddress); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FlushViewOfFile( - boost::detail::winapi::LPCVOID_ lpBaseAddress, - boost::detail::winapi::SIZE_T_ dwNumberOfBytesToFlush); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -UnmapViewOfFile(boost::detail::winapi::LPCVOID_ lpBaseAddress); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ SEC_FILE_ = SEC_FILE; -const DWORD_ SEC_IMAGE_ = SEC_IMAGE; -const DWORD_ SEC_RESERVE_ = SEC_RESERVE; -const DWORD_ SEC_COMMIT_ = SEC_COMMIT; -const DWORD_ SEC_NOCACHE_ = SEC_NOCACHE; - -// These permission flags are undocumented and some of them are equivalent to the FILE_MAP_* flags. -// SECTION_QUERY enables NtQuerySection. -// http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FSection%2FNtQuerySection.html -const DWORD_ SECTION_QUERY_ = SECTION_QUERY; -const DWORD_ SECTION_MAP_WRITE_ = SECTION_MAP_WRITE; -const DWORD_ SECTION_MAP_READ_ = SECTION_MAP_READ; -const DWORD_ SECTION_MAP_EXECUTE_ = SECTION_MAP_EXECUTE; -const DWORD_ SECTION_EXTEND_SIZE_ = SECTION_EXTEND_SIZE; -const DWORD_ SECTION_ALL_ACCESS_ = SECTION_ALL_ACCESS; - -const DWORD_ FILE_MAP_COPY_ = FILE_MAP_COPY; -const DWORD_ FILE_MAP_WRITE_ = FILE_MAP_WRITE; -const DWORD_ FILE_MAP_READ_ = FILE_MAP_READ; -const DWORD_ FILE_MAP_ALL_ACCESS_ = FILE_MAP_ALL_ACCESS; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ SEC_FILE_ = 0x800000; -const DWORD_ SEC_IMAGE_ = 0x1000000; -const DWORD_ SEC_RESERVE_ = 0x4000000; -const DWORD_ SEC_COMMIT_ = 0x8000000; -const DWORD_ SEC_NOCACHE_ = 0x10000000; - -// These permission flags are undocumented and some of them are equivalent to the FILE_MAP_* flags. -// SECTION_QUERY enables NtQuerySection. -// http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FSection%2FNtQuerySection.html -const DWORD_ SECTION_QUERY_ = 0x00000001; -const DWORD_ SECTION_MAP_WRITE_ = 0x00000002; -const DWORD_ SECTION_MAP_READ_ = 0x00000004; -const DWORD_ SECTION_MAP_EXECUTE_ = 0x00000008; -const DWORD_ SECTION_EXTEND_SIZE_ = 0x00000010; -const DWORD_ SECTION_ALL_ACCESS_ = 0x000F001F; // STANDARD_RIGHTS_REQUIRED | SECTION_* - -const DWORD_ FILE_MAP_COPY_ = SECTION_QUERY_; -const DWORD_ FILE_MAP_WRITE_ = SECTION_MAP_WRITE_; -const DWORD_ FILE_MAP_READ_ = SECTION_MAP_READ_; -const DWORD_ FILE_MAP_ALL_ACCESS_ = SECTION_ALL_ACCESS_; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -// These constants are not defined in Windows SDK up until the one shipped with MSVC 8 and MinGW (as of 2016-02-14) -const DWORD_ SECTION_MAP_EXECUTE_EXPLICIT_ = 0x00000020; // not included in SECTION_ALL_ACCESS -const DWORD_ FILE_MAP_EXECUTE_ = SECTION_MAP_EXECUTE_EXPLICIT_; // not included in FILE_MAP_ALL_ACCESS - -// These constants are not defined in Windows SDK up until 6.0A and MinGW (as of 2016-02-14) -const DWORD_ SEC_PROTECTED_IMAGE_ = 0x2000000; -const DWORD_ SEC_WRITECOMBINE_ = 0x40000000; -const DWORD_ SEC_LARGE_PAGES_ = 0x80000000; -const DWORD_ SEC_IMAGE_NO_EXECUTE_ = (SEC_IMAGE_ | SEC_NOCACHE_); - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::OpenFileMappingA; -#endif -using ::OpenFileMappingW; -using ::MapViewOfFile; -using ::MapViewOfFileEx; -using ::FlushViewOfFile; -using ::UnmapViewOfFile; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateFileMappingA( - HANDLE_ hFile, - SECURITY_ATTRIBUTES_* lpFileMappingAttributes, - DWORD_ flProtect, - DWORD_ dwMaximumSizeHigh, - DWORD_ dwMaximumSizeLow, - LPCSTR_ lpName) -{ - return ::CreateFileMappingA( - hFile, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpFileMappingAttributes), - flProtect, - dwMaximumSizeHigh, - dwMaximumSizeLow, - lpName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ CreateFileMappingW( - HANDLE_ hFile, - SECURITY_ATTRIBUTES_* lpFileMappingAttributes, - DWORD_ flProtect, - DWORD_ dwMaximumSizeHigh, - DWORD_ dwMaximumSizeLow, - LPCWSTR_ lpName) -{ - return ::CreateFileMappingW( - hFile, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpFileMappingAttributes), - flProtect, - dwMaximumSizeHigh, - dwMaximumSizeLow, - lpName); -} - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ create_file_mapping( - HANDLE_ hFile, - SECURITY_ATTRIBUTES_* lpFileMappingAttributes, - DWORD_ flProtect, - DWORD_ dwMaximumSizeHigh, - DWORD_ dwMaximumSizeLow, - LPCSTR_ lpName) -{ - return ::CreateFileMappingA( - hFile, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpFileMappingAttributes), - flProtect, - dwMaximumSizeHigh, - dwMaximumSizeLow, - lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_file_mapping(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCSTR_ lpName) -{ - return ::OpenFileMappingA(dwDesiredAccess, bInheritHandle, lpName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ create_file_mapping( - HANDLE_ hFile, - SECURITY_ATTRIBUTES_* lpFileMappingAttributes, - DWORD_ flProtect, - DWORD_ dwMaximumSizeHigh, - DWORD_ dwMaximumSizeLow, - LPCWSTR_ lpName) -{ - return ::CreateFileMappingW( - hFile, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpFileMappingAttributes), - flProtect, - dwMaximumSizeHigh, - dwMaximumSizeLow, - lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_file_mapping(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCWSTR_ lpName) -{ - return ::OpenFileMappingW(dwDesiredAccess, bInheritHandle, lpName); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_FILE_MAPPING_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_current_process.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_current_process.hpp deleted file mode 100644 index e5f4f2aaa..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_current_process.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// get_current_process.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_HPP -#define BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -// Windows CE define GetCurrentProcess as an inline function in kfuncs.h -#if !defined( BOOST_USE_WINDOWS_H ) && !defined( UNDER_CE ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI GetCurrentProcess(BOOST_DETAIL_WINAPI_VOID); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::GetCurrentProcess; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_current_process_id.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_current_process_id.hpp deleted file mode 100644 index aa21e6c88..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_current_process_id.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// get_current_process_id.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_ID_HPP -#define BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_ID_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -// Windows CE define GetCurrentProcessId as an inline function in kfuncs.h -#if !defined( BOOST_USE_WINDOWS_H ) && !defined( UNDER_CE ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI GetCurrentProcessId(BOOST_DETAIL_WINAPI_VOID); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::GetCurrentProcessId; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_GET_CURRENT_PROCESS_ID_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_current_thread.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_current_thread.hpp deleted file mode 100644 index b52c3a8c1..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_current_thread.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// get_current_thread.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_HPP -#define BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -// Windows CE define GetCurrentThread as an inline function in kfuncs.h -#if !defined( BOOST_USE_WINDOWS_H ) && !defined( UNDER_CE ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI GetCurrentThread(BOOST_DETAIL_WINAPI_VOID); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::GetCurrentThread; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_current_thread_id.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_current_thread_id.hpp deleted file mode 100644 index 198af3bf7..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_current_thread_id.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// get_current_thread_id.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_ID_HPP -#define BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_ID_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -// Windows CE define GetCurrentThreadId as an inline function in kfuncs.h -#if !defined( BOOST_USE_WINDOWS_H ) && !defined( UNDER_CE ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI GetCurrentThreadId(BOOST_DETAIL_WINAPI_VOID); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::GetCurrentThreadId; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_GET_CURRENT_THREAD_ID_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_last_error.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_last_error.hpp deleted file mode 100644 index 543efaf9a..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_last_error.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// get_last_error.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_LAST_ERROR_HPP -#define BOOST_DETAIL_WINAPI_GET_LAST_ERROR_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI GetLastError(BOOST_DETAIL_WINAPI_VOID); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::GetLastError; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_GET_LAST_ERROR_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_process_times.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_process_times.hpp deleted file mode 100644 index a79eeb012..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_process_times.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// get_process_times.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_PROCESS_TIMES_HPP -#define BOOST_DETAIL_WINAPI_GET_PROCESS_TIMES_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -// Windows CE does not define GetProcessTimes -#if !defined( UNDER_CE ) - -#include -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -GetProcessTimes( - boost::detail::winapi::HANDLE_ hProcess, - ::_FILETIME* lpCreationTime, - ::_FILETIME* lpExitTime, - ::_FILETIME* lpKernelTime, - ::_FILETIME* lpUserTime); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -BOOST_FORCEINLINE BOOL_ GetProcessTimes( - HANDLE_ hProcess, - LPFILETIME_ lpCreationTime, - LPFILETIME_ lpExitTime, - LPFILETIME_ lpKernelTime, - LPFILETIME_ lpUserTime) -{ - return ::GetProcessTimes( - hProcess, - reinterpret_cast< ::_FILETIME* >(lpCreationTime), - reinterpret_cast< ::_FILETIME* >(lpExitTime), - reinterpret_cast< ::_FILETIME* >(lpKernelTime), - reinterpret_cast< ::_FILETIME* >(lpUserTime)); -} - -} -} -} - -#endif // !defined( UNDER_CE ) -#endif // BOOST_DETAIL_WINAPI_GET_PROCESS_TIMES_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_system_directory.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_system_directory.hpp deleted file mode 100644 index dd2d6807c..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_system_directory.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// get_system_directory.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_GET_SYSTEM_DIRECTORY_HPP_ -#define BOOST_DETAIL_WINAPI_GET_SYSTEM_DIRECTORY_HPP_ - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::UINT_ WINAPI -GetSystemDirectoryA( - boost::detail::winapi::LPSTR_ lpBuffer, - boost::detail::winapi::UINT_ uSize); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::UINT_ WINAPI -GetSystemDirectoryW( - boost::detail::winapi::LPWSTR_ lpBuffer, - boost::detail::winapi::UINT_ uSize); -} // extern "C" -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::GetSystemDirectoryA; -#endif -using ::GetSystemDirectoryW; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE UINT_ get_system_directory(LPSTR_ lpBuffer, UINT_ uSize) -{ - return ::GetSystemDirectoryA(lpBuffer, uSize); -} -#endif - -BOOST_FORCEINLINE UINT_ get_system_directory(LPWSTR_ lpBuffer, UINT_ uSize) -{ - return ::GetSystemDirectoryW(lpBuffer, uSize); -} - -} -} -} - -#endif // BOOST_PLAT_WINDOWS_DESKTOP - -#endif // BOOST_DETAIL_WINAPI_GET_SYSTEM_DIRECTORY_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/get_thread_times.hpp b/lib/3rdParty/boost/boost/detail/winapi/get_thread_times.hpp deleted file mode 100644 index 13308d84d..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/get_thread_times.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// get_thread_times.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_GET_THREAD_TIMES_HPP -#define BOOST_DETAIL_WINAPI_GET_THREAD_TIMES_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -GetThreadTimes( - boost::detail::winapi::HANDLE_ hThread, - ::_FILETIME* lpCreationTime, - ::_FILETIME* lpExitTime, - ::_FILETIME* lpKernelTime, - ::_FILETIME* lpUserTime); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -BOOST_FORCEINLINE BOOL_ GetThreadTimes( - HANDLE_ hThread, - LPFILETIME_ lpCreationTime, - LPFILETIME_ lpExitTime, - LPFILETIME_ lpKernelTime, - LPFILETIME_ lpUserTime) -{ - return ::GetThreadTimes( - hThread, - reinterpret_cast< ::_FILETIME* >(lpCreationTime), - reinterpret_cast< ::_FILETIME* >(lpExitTime), - reinterpret_cast< ::_FILETIME* >(lpKernelTime), - reinterpret_cast< ::_FILETIME* >(lpUserTime)); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_GET_THREAD_TIMES_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/handle_info.hpp b/lib/3rdParty/boost/boost/detail/winapi/handle_info.hpp deleted file mode 100644 index 0fdcb25c9..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/handle_info.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// handle_info.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_HANDLE_INFO_HPP_ -#define BOOST_DETAIL_HANDLE_INFO_HPP_ - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -GetHandleInformation( - boost::detail::winapi::HANDLE_ hObject, - boost::detail::winapi::LPDWORD_ lpdwFlags); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetHandleInformation( - boost::detail::winapi::HANDLE_ hObject, - boost::detail::winapi::DWORD_ dwMask, - boost::detail::winapi::DWORD_ dwFlags); - -} // extern "C" -#endif - -namespace boost { -namespace detail { -namespace winapi { - -using ::GetHandleInformation; -using ::SetHandleInformation; - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ HANDLE_FLAG_INHERIT_ = HANDLE_FLAG_INHERIT; -const DWORD_ HANDLE_FLAG_PROTECT_FROM_CLOSE_ = HANDLE_FLAG_PROTECT_FROM_CLOSE; - -#else - -const DWORD_ HANDLE_FLAG_INHERIT_ = 0x1; -const DWORD_ HANDLE_FLAG_PROTECT_FROM_CLOSE_ = 0x2; - -#endif - -} -} -} - -#endif // BOOST_PLAT_WINDOWS_DESKTOP - -#endif // BOOST_DETAIL_HANDLE_INFO_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/handles.hpp b/lib/3rdParty/boost/boost/detail/winapi/handles.hpp deleted file mode 100644 index f8ed82533..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/handles.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// handles.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_HANDLES_HPP -#define BOOST_DETAIL_WINAPI_HANDLES_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CloseHandle(boost::detail::winapi::HANDLE_ handle); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -DuplicateHandle( - boost::detail::winapi::HANDLE_ hSourceProcessHandle, - boost::detail::winapi::HANDLE_ hSourceHandle, - boost::detail::winapi::HANDLE_ hTargetProcessHandle, - boost::detail::winapi::HANDLE_* lpTargetHandle, - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::DWORD_ dwOptions); -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN10 -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CompareObjectHandles( - boost::detail::winapi::HANDLE_ hFirstObjectHandle, - boost::detail::winapi::HANDLE_ hSecondObjectHandle); -#endif - -#endif - -namespace boost { -namespace detail { -namespace winapi { - -using ::CloseHandle; -using ::DuplicateHandle; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN10 -using ::CompareObjectHandles; -#endif - -#if defined( BOOST_USE_WINDOWS_H ) -const DWORD_ DUPLICATE_CLOSE_SOURCE_ = DUPLICATE_CLOSE_SOURCE; -const DWORD_ DUPLICATE_SAME_ACCESS_ = DUPLICATE_SAME_ACCESS; -const HANDLE_ INVALID_HANDLE_VALUE_ = INVALID_HANDLE_VALUE; -#else -const DWORD_ DUPLICATE_CLOSE_SOURCE_ = 1; -const DWORD_ DUPLICATE_SAME_ACCESS_ = 2; -const HANDLE_ INVALID_HANDLE_VALUE_ = (HANDLE_)(-1); -#endif - -const DWORD_ duplicate_close_source = DUPLICATE_CLOSE_SOURCE_; -const DWORD_ duplicate_same_access = DUPLICATE_SAME_ACCESS_; -const HANDLE_ invalid_handle_value = INVALID_HANDLE_VALUE_; - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_HANDLES_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/heap_memory.hpp b/lib/3rdParty/boost/boost/detail/winapi/heap_memory.hpp deleted file mode 100644 index ae863523e..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/heap_memory.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// heap_memory.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_HEAP_MEMORY_HPP -#define BOOST_DETAIL_WINAPI_HEAP_MEMORY_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -#undef HeapAlloc -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -GetProcessHeap(BOOST_DETAIL_WINAPI_VOID); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetProcessHeaps(boost::detail::winapi::DWORD_ NumberOfHeaps, boost::detail::winapi::PHANDLE_ ProcessHeaps); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -HeapCreate( - boost::detail::winapi::DWORD_ flOptions, - boost::detail::winapi::SIZE_T_ dwInitialSize, - boost::detail::winapi::SIZE_T_ dwMaximumSize); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -HeapDestroy(boost::detail::winapi::HANDLE_ hHeap); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPVOID_ WINAPI -HeapAlloc( - boost::detail::winapi::HANDLE_ hHeap, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::SIZE_T_ dwBytes); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPVOID_ WINAPI -HeapReAlloc( - boost::detail::winapi::HANDLE_ hHeap, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPVOID_ lpMem, - boost::detail::winapi::SIZE_T_ dwBytes); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -HeapFree( - boost::detail::winapi::HANDLE_ hHeap, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPVOID_ lpMem); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::GetProcessHeap; -using ::GetProcessHeaps; -using ::HeapCreate; -using ::HeapDestroy; -using ::HeapAlloc; -using ::HeapReAlloc; -using ::HeapFree; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_HEAP_MEMORY_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/init_once.hpp b/lib/3rdParty/boost/boost/detail/winapi/init_once.hpp deleted file mode 100644 index 4c0597961..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/init_once.hpp +++ /dev/null @@ -1,123 +0,0 @@ -// init_once.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_INIT_ONCE_HPP -#define BOOST_DETAIL_WINAPI_INIT_ONCE_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if defined( BOOST_WINAPI_IS_MINGW_W64 ) -struct _RTL_RUN_ONCE; -#else -union _RTL_RUN_ONCE; -#endif - -typedef boost::detail::winapi::BOOL_ -(WINAPI *PINIT_ONCE_FN) ( - ::_RTL_RUN_ONCE* InitOnce, - boost::detail::winapi::PVOID_ Parameter, - boost::detail::winapi::PVOID_ *Context); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -InitOnceInitialize(::_RTL_RUN_ONCE* InitOnce); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitOnceExecuteOnce( - ::_RTL_RUN_ONCE* InitOnce, - ::PINIT_ONCE_FN InitFn, - boost::detail::winapi::PVOID_ Parameter, - boost::detail::winapi::LPVOID_ *Context); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitOnceBeginInitialize( - ::_RTL_RUN_ONCE* lpInitOnce, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::PBOOL_ fPending, - boost::detail::winapi::LPVOID_ *lpContext); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitOnceComplete( - ::_RTL_RUN_ONCE* lpInitOnce, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::LPVOID_ lpContext); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef union BOOST_DETAIL_WINAPI_MAY_ALIAS _RTL_RUN_ONCE { - PVOID_ Ptr; -} INIT_ONCE_, *PINIT_ONCE_, *LPINIT_ONCE_; - -extern "C" { -typedef BOOL_ (WINAPI *PINIT_ONCE_FN_) (PINIT_ONCE_ lpInitOnce, PVOID_ Parameter, PVOID_ *Context); -} - -BOOST_FORCEINLINE VOID_ InitOnceInitialize(PINIT_ONCE_ lpInitOnce) -{ - ::InitOnceInitialize(reinterpret_cast< ::_RTL_RUN_ONCE* >(lpInitOnce)); -} - -BOOST_FORCEINLINE BOOL_ InitOnceExecuteOnce(PINIT_ONCE_ lpInitOnce, PINIT_ONCE_FN_ InitFn, PVOID_ Parameter, LPVOID_ *Context) -{ - return ::InitOnceExecuteOnce(reinterpret_cast< ::_RTL_RUN_ONCE* >(lpInitOnce), reinterpret_cast< ::PINIT_ONCE_FN >(InitFn), Parameter, Context); -} - -BOOST_FORCEINLINE BOOL_ InitOnceBeginInitialize(PINIT_ONCE_ lpInitOnce, DWORD_ dwFlags, PBOOL_ fPending, LPVOID_ *lpContext) -{ - return ::InitOnceBeginInitialize(reinterpret_cast< ::_RTL_RUN_ONCE* >(lpInitOnce), dwFlags, fPending, lpContext); -} - -BOOST_FORCEINLINE BOOL_ InitOnceComplete(PINIT_ONCE_ lpInitOnce, DWORD_ dwFlags, LPVOID_ lpContext) -{ - return ::InitOnceComplete(reinterpret_cast< ::_RTL_RUN_ONCE* >(lpInitOnce), dwFlags, lpContext); -} - -#if defined( BOOST_USE_WINDOWS_H ) - -#define BOOST_DETAIL_WINAPI_INIT_ONCE_STATIC_INIT INIT_ONCE_STATIC_INIT -const DWORD_ INIT_ONCE_ASYNC_ = INIT_ONCE_ASYNC; -const DWORD_ INIT_ONCE_CHECK_ONLY_ = INIT_ONCE_CHECK_ONLY; -const DWORD_ INIT_ONCE_INIT_FAILED_ = INIT_ONCE_INIT_FAILED; -const DWORD_ INIT_ONCE_CTX_RESERVED_BITS_ = INIT_ONCE_CTX_RESERVED_BITS; - -#else // defined( BOOST_USE_WINDOWS_H ) - -#define BOOST_DETAIL_WINAPI_INIT_ONCE_STATIC_INIT {0} -const DWORD_ INIT_ONCE_ASYNC_ = 0x00000002UL; -const DWORD_ INIT_ONCE_CHECK_ONLY_ = 0x00000001UL; -const DWORD_ INIT_ONCE_INIT_FAILED_ = 0x00000004UL; -const DWORD_ INIT_ONCE_CTX_RESERVED_BITS_ = 2; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ init_once_async = INIT_ONCE_ASYNC_; -const DWORD_ init_once_check_only = INIT_ONCE_CHECK_ONLY_; -const DWORD_ init_once_init_failed = INIT_ONCE_INIT_FAILED_; -const DWORD_ init_once_ctx_reserved_bits = INIT_ONCE_CTX_RESERVED_BITS_; - -} -} -} - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#endif // BOOST_DETAIL_WINAPI_INIT_ONCE_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/jobs.hpp b/lib/3rdParty/boost/boost/detail/winapi/jobs.hpp deleted file mode 100644 index 233df17ec..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/jobs.hpp +++ /dev/null @@ -1,115 +0,0 @@ -// jobs.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_JOBS_HPP_ -#define BOOST_DETAIL_WINAPI_JOBS_HPP_ - -#include -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI CreateJobObjectA( - ::_SECURITY_ATTRIBUTES* lpJobAttributes, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI CreateJobObjectW( - ::_SECURITY_ATTRIBUTES* lpJobAttributes, - boost::detail::winapi::LPCWSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI AssignProcessToJobObject( - boost::detail::winapi::HANDLE_ hJob, - boost::detail::winapi::HANDLE_ hProcess); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI IsProcessInJob( - boost::detail::winapi::HANDLE_ ProcessHandle, - boost::detail::winapi::HANDLE_ JobHandle, - boost::detail::winapi::PBOOL_ Result); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI TerminateJobObject( - boost::detail::winapi::HANDLE_ hJob, - boost::detail::winapi::UINT_ uExitCode); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI OpenJobObjectA( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandles, - boost::detail::winapi::LPCSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI OpenJobObjectW( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandles, - boost::detail::winapi::LPCWSTR_ lpName); -} // extern "C" -#endif // !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { namespace detail { namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) -const DWORD_ JOB_OBJECT_ASSIGN_PROCESS_ = JOB_OBJECT_ASSIGN_PROCESS; -const DWORD_ JOB_OBJECT_SET_ATTRIBUTES_ = JOB_OBJECT_SET_ATTRIBUTES; -const DWORD_ JOB_OBJECT_QUERY_ = JOB_OBJECT_QUERY; -const DWORD_ JOB_OBJECT_TERMINATE_ = JOB_OBJECT_TERMINATE; -const DWORD_ JOB_OBJECT_SET_SECURITY_ATTRIBUTES_ = JOB_OBJECT_SET_SECURITY_ATTRIBUTES; -const DWORD_ JOB_OBJECT_ALL_ACCESS_ = JOB_OBJECT_ALL_ACCESS; -#else -const DWORD_ JOB_OBJECT_ASSIGN_PROCESS_ = 0x0001; -const DWORD_ JOB_OBJECT_SET_ATTRIBUTES_ = 0x0002; -const DWORD_ JOB_OBJECT_QUERY_ = 0x0004; -const DWORD_ JOB_OBJECT_TERMINATE_ = 0x0008; -const DWORD_ JOB_OBJECT_SET_SECURITY_ATTRIBUTES_ = 0x0010; -const DWORD_ JOB_OBJECT_ALL_ACCESS_ = (STANDARD_RIGHTS_REQUIRED_ | SYNCHRONIZE_ | 0x1F); -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::OpenJobObjectA; -#endif - -using ::OpenJobObjectW; - -using ::AssignProcessToJobObject; -using ::IsProcessInJob; -using ::TerminateJobObject; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateJobObjectA(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCSTR_ lpName) -{ - return ::CreateJobObjectA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName); -} - -BOOST_FORCEINLINE HANDLE_ create_job_object(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCSTR_ lpName) -{ - return ::CreateJobObjectA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_job_object(DWORD_ dwDesiredAccess, BOOL_ bInheritHandles, LPCSTR_ lpName) -{ - return ::OpenJobObjectA(dwDesiredAccess, bInheritHandles, lpName); -} -#endif // !defined( BOOST_NO_ANSI_APIS ) - -BOOST_FORCEINLINE HANDLE_ CreateJobObjectW(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCWSTR_ lpName) -{ - return ::CreateJobObjectW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName); -} - -BOOST_FORCEINLINE HANDLE_ create_job_object(LPSECURITY_ATTRIBUTES_ lpJobAttributes, LPCWSTR_ lpName) -{ - return ::CreateJobObjectW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpJobAttributes), lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_job_object(DWORD_ dwDesiredAccess, BOOL_ bInheritHandles, LPCWSTR_ lpName) -{ - return OpenJobObjectW(dwDesiredAccess, bInheritHandles, lpName); -} - -} // namespace winapi -} // namespace detail -} // namespace boost - -#endif // BOOST_DETAIL_WINAPI_JOBS_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/limits.hpp b/lib/3rdParty/boost/boost/detail/winapi/limits.hpp deleted file mode 100644 index 1a0faaa54..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/limits.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// limits.hpp --------------------------------------------------------------// - -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_LIMITS_HPP_ -#define BOOST_DETAIL_WINAPI_LIMITS_HPP_ - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ MAX_PATH_ = MAX_PATH; - -#else - -const DWORD_ MAX_PATH_ = 260; - -#endif - -#if defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW ) - -const DWORD_ UNICODE_STRING_MAX_BYTES_ = UNICODE_STRING_MAX_BYTES; -const DWORD_ UNICODE_STRING_MAX_CHARS_ = UNICODE_STRING_MAX_CHARS; - -#else - -const DWORD_ UNICODE_STRING_MAX_BYTES_ = 65534; -const DWORD_ UNICODE_STRING_MAX_CHARS_ = 32767; - -#endif - -const DWORD_ max_path = MAX_PATH_; -const DWORD_ unicode_string_max_bytes = UNICODE_STRING_MAX_BYTES_; -const DWORD_ unicode_string_max_chars = UNICODE_STRING_MAX_CHARS_; - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_LIMITS_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/local_memory.hpp b/lib/3rdParty/boost/boost/detail/winapi/local_memory.hpp deleted file mode 100644 index 17bc08b1b..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/local_memory.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// local_memory.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_LOCAL_MEMORY_HPP -#define BOOST_DETAIL_WINAPI_LOCAL_MEMORY_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -namespace boost { namespace detail { namespace winapi { -typedef HANDLE_ HLOCAL_; -}}} - -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::HLOCAL_ WINAPI -LocalAlloc( - boost::detail::winapi::UINT_ uFlags, - boost::detail::winapi::SIZE_T_ uBytes); -BOOST_SYMBOL_IMPORT boost::detail::winapi::HLOCAL_ WINAPI -LocalReAlloc( - boost::detail::winapi::HLOCAL_ hMem, - boost::detail::winapi::SIZE_T_ uBytes, - boost::detail::winapi::UINT_ uFlags); -BOOST_SYMBOL_IMPORT boost::detail::winapi::HLOCAL_ WINAPI LocalFree(boost::detail::winapi::HLOCAL_ hMem); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -#if defined( BOOST_USE_WINDOWS_H ) -typedef ::HLOCAL HLOCAL_; -#endif -using ::LocalAlloc; -using ::LocalReAlloc; -using ::LocalFree; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_LOCAL_MEMORY_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/memory.hpp b/lib/3rdParty/boost/boost/detail/winapi/memory.hpp deleted file mode 100644 index 3168e2195..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/memory.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// memory.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_MEMORY_HPP -#define BOOST_DETAIL_WINAPI_MEMORY_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#endif // BOOST_DETAIL_WINAPI_MEMORY_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/mutex.hpp b/lib/3rdParty/boost/boost/detail/winapi/mutex.hpp deleted file mode 100644 index 37b21a444..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/mutex.hpp +++ /dev/null @@ -1,184 +0,0 @@ -// mutex.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_MUTEX_HPP -#define BOOST_DETAIL_WINAPI_MUTEX_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -#if !defined( BOOST_PLAT_WINDOWS_RUNTIME_AVALIABLE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateMutexA( - ::_SECURITY_ATTRIBUTES* lpMutexAttributes, - boost::detail::winapi::BOOL_ bInitialOwner, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateMutexExA( - ::_SECURITY_ATTRIBUTES* lpMutexAttributes, - boost::detail::winapi::LPCSTR_ lpName, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwDesiredAccess); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenMutexA( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -#if !defined( BOOST_PLAT_WINDOWS_RUNTIME_AVALIABLE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateMutexW( - ::_SECURITY_ATTRIBUTES* lpMutexAttributes, - boost::detail::winapi::BOOL_ bInitialOwner, - boost::detail::winapi::LPCWSTR_ lpName); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateMutexExW( - ::_SECURITY_ATTRIBUTES* lpMutexAttributes, - boost::detail::winapi::LPCWSTR_ lpName, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwDesiredAccess); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenMutexW( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCWSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -ReleaseMutex(boost::detail::winapi::HANDLE_ hMutex); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::OpenMutexA; -#endif -using ::OpenMutexW; -using ::ReleaseMutex; - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ MUTEX_ALL_ACCESS_ = MUTEX_ALL_ACCESS; -const DWORD_ MUTEX_MODIFY_STATE_ = MUTEX_MODIFY_STATE; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ CREATE_MUTEX_INITIAL_OWNER_ = CREATE_MUTEX_INITIAL_OWNER; -#endif - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ MUTEX_ALL_ACCESS_ = 0x001F0001; -const DWORD_ MUTEX_MODIFY_STATE_ = 0x00000001; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ CREATE_MUTEX_INITIAL_OWNER_ = 0x00000001; -#endif - -#endif // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ mutex_all_access = MUTEX_ALL_ACCESS_; -const DWORD_ mutex_modify_state = MUTEX_MODIFY_STATE_; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ create_mutex_initial_owner = CREATE_MUTEX_INITIAL_OWNER_; -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateMutexA(SECURITY_ATTRIBUTES_* lpMutexAttributes, BOOL_ bInitialOwner, LPCSTR_ lpName) -{ -#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - const DWORD_ flags = bInitialOwner ? create_mutex_initial_owner : 0u; - return ::CreateMutexExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpMutexAttributes), lpName, flags, mutex_all_access); -#else - return ::CreateMutexA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpMutexAttributes), bInitialOwner, lpName); -#endif -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE HANDLE_ CreateMutexExA( - SECURITY_ATTRIBUTES_* lpMutexAttributes, - LPCSTR_ lpName, - DWORD_ dwFlags, - DWORD_ dwDesiredAccess) -{ - return ::CreateMutexExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpMutexAttributes), lpName, dwFlags, dwDesiredAccess); -} -#endif -#endif - -BOOST_FORCEINLINE HANDLE_ CreateMutexW(SECURITY_ATTRIBUTES_* lpMutexAttributes, BOOL_ bInitialOwner, LPCWSTR_ lpName) -{ -#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - const DWORD_ flags = bInitialOwner ? create_mutex_initial_owner : 0u; - return ::CreateMutexExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpMutexAttributes), lpName, flags, mutex_all_access); -#else - return ::CreateMutexW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpMutexAttributes), bInitialOwner, lpName); -#endif -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE HANDLE_ CreateMutexExW( - SECURITY_ATTRIBUTES_* lpMutexAttributes, - LPCWSTR_ lpName, - DWORD_ dwFlags, - DWORD_ dwDesiredAccess) -{ - return ::CreateMutexExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpMutexAttributes), lpName, dwFlags, dwDesiredAccess); -} -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ create_mutex(SECURITY_ATTRIBUTES_* lpAttributes, BOOL_ bInitialOwner, LPCSTR_ lpName) -{ - return winapi::CreateMutexA(lpAttributes, bInitialOwner, lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_mutex(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCSTR_ lpName) -{ - return ::OpenMutexA(dwDesiredAccess, bInheritHandle, lpName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ create_mutex(SECURITY_ATTRIBUTES_* lpAttributes, BOOL_ bInitialOwner, LPCWSTR_ lpName) -{ - return winapi::CreateMutexW(lpAttributes, bInitialOwner, lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_mutex(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCWSTR_ lpName) -{ - return ::OpenMutexW(dwDesiredAccess, bInheritHandle, lpName); -} - -BOOST_FORCEINLINE HANDLE_ create_anonymous_mutex(SECURITY_ATTRIBUTES_* lpAttributes, BOOL_ bInitialOwner) -{ - return winapi::CreateMutexW(lpAttributes, bInitialOwner, 0); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_MUTEX_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/overlapped.hpp b/lib/3rdParty/boost/boost/detail/winapi/overlapped.hpp deleted file mode 100644 index 17dcb2e07..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/overlapped.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// overlapped.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_OVERLAPPED_HPP_ -#define BOOST_DETAIL_WINAPI_OVERLAPPED_HPP_ - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -struct _OVERLAPPED; -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4201) // nonstandard extension used : nameless struct/union -#endif - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _OVERLAPPED { - ULONG_PTR_ Internal; - ULONG_PTR_ InternalHigh; - union { - struct { - DWORD_ Offset; - DWORD_ OffsetHigh; - }; - PVOID_ Pointer; - }; - HANDLE_ hEvent; -} OVERLAPPED_, *LPOVERLAPPED_; - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -}}} - -#endif // BOOST_DETAIL_WINAPI_OVERLAPPED_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/page_protection_flags.hpp b/lib/3rdParty/boost/boost/detail/winapi/page_protection_flags.hpp deleted file mode 100644 index 0dbcb2110..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/page_protection_flags.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// page_protection_flags.hpp --------------------------------------------------------------// - -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_PAGE_PROTECTION_FLAGS_HPP -#define BOOST_DETAIL_WINAPI_PAGE_PROTECTION_FLAGS_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ PAGE_NOACCESS_ = PAGE_NOACCESS; -const DWORD_ PAGE_READONLY_ = PAGE_READONLY; -const DWORD_ PAGE_READWRITE_ = PAGE_READWRITE; -const DWORD_ PAGE_WRITECOPY_ = PAGE_WRITECOPY; -const DWORD_ PAGE_EXECUTE_ = PAGE_EXECUTE; -const DWORD_ PAGE_EXECUTE_READ_ = PAGE_EXECUTE_READ; -const DWORD_ PAGE_EXECUTE_READWRITE_ = PAGE_EXECUTE_READWRITE; -const DWORD_ PAGE_EXECUTE_WRITECOPY_ = PAGE_EXECUTE_WRITECOPY; -const DWORD_ PAGE_GUARD_ = PAGE_GUARD; -const DWORD_ PAGE_NOCACHE_ = PAGE_NOCACHE; -const DWORD_ PAGE_WRITECOMBINE_ = PAGE_WRITECOMBINE; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ PAGE_NOACCESS_ = 0x01; -const DWORD_ PAGE_READONLY_ = 0x02; -const DWORD_ PAGE_READWRITE_ = 0x04; -const DWORD_ PAGE_WRITECOPY_ = 0x08; -const DWORD_ PAGE_EXECUTE_ = 0x10; -const DWORD_ PAGE_EXECUTE_READ_ = 0x20; -const DWORD_ PAGE_EXECUTE_READWRITE_ = 0x40; -const DWORD_ PAGE_EXECUTE_WRITECOPY_ = 0x80; -const DWORD_ PAGE_GUARD_ = 0x100; -const DWORD_ PAGE_NOCACHE_ = 0x200; -const DWORD_ PAGE_WRITECOMBINE_ = 0x400; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_PAGE_PROTECTION_FLAGS_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/pipes.hpp b/lib/3rdParty/boost/boost/detail/winapi/pipes.hpp deleted file mode 100644 index 147295054..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/pipes.hpp +++ /dev/null @@ -1,317 +0,0 @@ -// pipes.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_PIPES_HPP_ -#define BOOST_DETAIL_WINAPI_PIPES_HPP_ - -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI ImpersonateNamedPipeClient( - boost::detail::winapi::HANDLE_ hNamedPipe); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI CreatePipe( - boost::detail::winapi::PHANDLE_ hReadPipe, - boost::detail::winapi::PHANDLE_ hWritePipe, - _SECURITY_ATTRIBUTES* lpPipeAttributes, - boost::detail::winapi::DWORD_ nSize); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI ConnectNamedPipe( - boost::detail::winapi::HANDLE_ hNamedPipe, - _OVERLAPPED* lpOverlapped); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI DisconnectNamedPipe( - boost::detail::winapi::HANDLE_ hNamedPipe); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI SetNamedPipeHandleState( - boost::detail::winapi::HANDLE_ hNamedPipe, - boost::detail::winapi::LPDWORD_ lpMode, - boost::detail::winapi::LPDWORD_ lpMaxCollectionCount, - boost::detail::winapi::LPDWORD_ lpCollectDataTimeout); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI PeekNamedPipe( - boost::detail::winapi::HANDLE_ hNamedPipe, - boost::detail::winapi::LPVOID_ lpBuffer, - boost::detail::winapi::DWORD_ nBufferSize, - boost::detail::winapi::LPDWORD_ lpBytesRead, - boost::detail::winapi::LPDWORD_ lpTotalBytesAvail, - boost::detail::winapi::LPDWORD_ lpBytesLeftThisMessage); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI TransactNamedPipe( - boost::detail::winapi::HANDLE_ hNamedPipe, - boost::detail::winapi::LPVOID_ lpInBuffer, - boost::detail::winapi::DWORD_ nInBufferSize, - boost::detail::winapi::LPVOID_ lpOutBuffer, - boost::detail::winapi::DWORD_ nOutBufferSize, - boost::detail::winapi::LPDWORD_ lpBytesRead, - _OVERLAPPED* lpOverlapped); - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI CreateNamedPipeA( - boost::detail::winapi::LPCSTR_ lpName, - boost::detail::winapi::DWORD_ dwOpenMode, - boost::detail::winapi::DWORD_ dwPipeMode, - boost::detail::winapi::DWORD_ nMaxInstances, - boost::detail::winapi::DWORD_ nOutBufferSize, - boost::detail::winapi::DWORD_ nInBufferSize, - boost::detail::winapi::DWORD_ nDefaultTimeOut, - _SECURITY_ATTRIBUTES *lpSecurityAttributes); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI WaitNamedPipeA( - boost::detail::winapi::LPCSTR_ lpNamedPipeName, - boost::detail::winapi::DWORD_ nTimeOut); -#endif // !defined( BOOST_NO_ANSI_APIS ) - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI CreateNamedPipeW( - boost::detail::winapi::LPCWSTR_ lpName, - boost::detail::winapi::DWORD_ dwOpenMode, - boost::detail::winapi::DWORD_ dwPipeMode, - boost::detail::winapi::DWORD_ nMaxInstances, - boost::detail::winapi::DWORD_ nOutBufferSize, - boost::detail::winapi::DWORD_ nInBufferSize, - boost::detail::winapi::DWORD_ nDefaultTimeOut, - _SECURITY_ATTRIBUTES* lpSecurityAttributes); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI WaitNamedPipeW( - boost::detail::winapi::LPCWSTR_ lpNamedPipeName, - boost::detail::winapi::DWORD_ nTimeOut); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI GetNamedPipeClientComputerNameA( - boost::detail::winapi::HANDLE_ Pipe, - boost::detail::winapi::LPSTR_ ClientComputerName, - boost::detail::winapi::ULONG_ ClientComputerNameLength); -#endif // !defined( BOOST_NO_ANSI_APIS ) - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI GetNamedPipeClientComputerNameW( - boost::detail::winapi::HANDLE_ Pipe, - boost::detail::winapi::LPWSTR_ ClientComputerName, - boost::detail::winapi::ULONG_ ClientComputerNameLength); -#endif - -} // extern "C" -#endif // !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ PIPE_ACCESS_DUPLEX_ = PIPE_ACCESS_DUPLEX; -const DWORD_ PIPE_ACCESS_INBOUND_ = PIPE_ACCESS_INBOUND; -const DWORD_ PIPE_ACCESS_OUTBOUND_ = PIPE_ACCESS_OUTBOUND; - -const DWORD_ PIPE_TYPE_BYTE_ = PIPE_TYPE_BYTE; -const DWORD_ PIPE_TYPE_MESSAGE_ = PIPE_TYPE_MESSAGE; - -const DWORD_ PIPE_READMODE_BYTE_ = PIPE_READMODE_BYTE; -const DWORD_ PIPE_READMODE_MESSAGE_ = PIPE_READMODE_MESSAGE; - -const DWORD_ PIPE_WAIT_ = PIPE_WAIT; -const DWORD_ PIPE_NOWAIT_ = PIPE_NOWAIT; - -const DWORD_ PIPE_UNLIMITED_INSTANCES_ = PIPE_UNLIMITED_INSTANCES; - -const DWORD_ NMPWAIT_USE_DEFAULT_WAIT_ = NMPWAIT_USE_DEFAULT_WAIT; -const DWORD_ NMPWAIT_NOWAIT_ = NMPWAIT_NOWAIT; -const DWORD_ NMPWAIT_WAIT_FOREVER_ = NMPWAIT_WAIT_FOREVER; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ PIPE_ACCESS_DUPLEX_ = 0x00000003; -const DWORD_ PIPE_ACCESS_INBOUND_ = 0x00000001; -const DWORD_ PIPE_ACCESS_OUTBOUND_ = 0x00000002; - -const DWORD_ PIPE_TYPE_BYTE_ = 0x00000000; -const DWORD_ PIPE_TYPE_MESSAGE_ = 0x00000004; - -const DWORD_ PIPE_READMODE_BYTE_ = 0x00000000; -const DWORD_ PIPE_READMODE_MESSAGE_ = 0x00000002; - -const DWORD_ PIPE_WAIT_ = 0x00000000; -const DWORD_ PIPE_NOWAIT_ = 0x00000001; - -const DWORD_ PIPE_UNLIMITED_INSTANCES_ = 255u; - -const DWORD_ NMPWAIT_USE_DEFAULT_WAIT_ = 0x00000000; -const DWORD_ NMPWAIT_NOWAIT_ = 0x00000001; -const DWORD_ NMPWAIT_WAIT_FOREVER_ = 0xFFFFFFFF; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -// These constants are not defined in Windows SDK prior to 7.0A -const DWORD_ PIPE_ACCEPT_REMOTE_CLIENTS_ = 0x00000000; -const DWORD_ PIPE_REJECT_REMOTE_CLIENTS_ = 0x00000008; - -using ::ImpersonateNamedPipeClient; -using ::DisconnectNamedPipe; -using ::SetNamedPipeHandleState; -using ::PeekNamedPipe; - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::WaitNamedPipeA; -#endif -using ::WaitNamedPipeW; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -#if !defined( BOOST_NO_ANSI_APIS ) -using ::GetNamedPipeClientComputerNameA; -#endif // !defined( BOOST_NO_ANSI_APIS ) -using ::GetNamedPipeClientComputerNameW; -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -BOOST_FORCEINLINE BOOL_ CreatePipe(PHANDLE_ hReadPipe, PHANDLE_ hWritePipe, LPSECURITY_ATTRIBUTES_ lpPipeAttributes, DWORD_ nSize) -{ - return ::CreatePipe(hReadPipe, hWritePipe, reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpPipeAttributes), nSize); -} - -BOOST_FORCEINLINE BOOL_ ConnectNamedPipe(HANDLE_ hNamedPipe, LPOVERLAPPED_ lpOverlapped) -{ - return ::ConnectNamedPipe(hNamedPipe, reinterpret_cast< ::_OVERLAPPED* >(lpOverlapped)); -} - -BOOST_FORCEINLINE BOOL_ TransactNamedPipe(HANDLE_ hNamedPipe, LPVOID_ lpInBuffer, DWORD_ nInBufferSize, LPVOID_ lpOutBuffer, DWORD_ nOutBufferSize, LPDWORD_ lpBytesRead, LPOVERLAPPED_ lpOverlapped) -{ - return ::TransactNamedPipe(hNamedPipe, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesRead, reinterpret_cast< ::_OVERLAPPED* >(lpOverlapped)); -} - - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateNamedPipeA( - LPCSTR_ lpName, - DWORD_ dwOpenMode, - DWORD_ dwPipeMode, - DWORD_ nMaxInstances, - DWORD_ nOutBufferSize, - DWORD_ nInBufferSize, - DWORD_ nDefaultTimeOut, - LPSECURITY_ATTRIBUTES_ lpSecurityAttributes) -{ - return ::CreateNamedPipeA( - lpName, - dwOpenMode, - dwPipeMode, - nMaxInstances, - nOutBufferSize, - nInBufferSize, - nDefaultTimeOut, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes)); -} - -BOOST_FORCEINLINE HANDLE_ create_named_pipe( - LPCSTR_ lpName, - DWORD_ dwOpenMode, - DWORD_ dwPipeMode, - DWORD_ nMaxInstances, - DWORD_ nOutBufferSize, - DWORD_ nInBufferSize, - DWORD_ nDefaultTimeOut, - LPSECURITY_ATTRIBUTES_ lpSecurityAttributes) -{ - return ::CreateNamedPipeA( - lpName, - dwOpenMode, - dwPipeMode, - nMaxInstances, - nOutBufferSize, - nInBufferSize, - nDefaultTimeOut, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes)); -} -#endif // !defined( BOOST_NO_ANSI_APIS ) - -BOOST_FORCEINLINE HANDLE_ CreateNamedPipeW( - LPCWSTR_ lpName, - DWORD_ dwOpenMode, - DWORD_ dwPipeMode, - DWORD_ nMaxInstances, - DWORD_ nOutBufferSize, - DWORD_ nInBufferSize, - DWORD_ nDefaultTimeOut, - LPSECURITY_ATTRIBUTES_ lpSecurityAttributes) -{ - return ::CreateNamedPipeW( - lpName, - dwOpenMode, - dwPipeMode, - nMaxInstances, - nOutBufferSize, - nInBufferSize, - nDefaultTimeOut, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes)); -} - -BOOST_FORCEINLINE HANDLE_ create_named_pipe( - LPCWSTR_ lpName, - DWORD_ dwOpenMode, - DWORD_ dwPipeMode, - DWORD_ nMaxInstances, - DWORD_ nOutBufferSize, - DWORD_ nInBufferSize, - DWORD_ nDefaultTimeOut, - LPSECURITY_ATTRIBUTES_ lpSecurityAttributes) -{ - return ::CreateNamedPipeW( - lpName, - dwOpenMode, - dwPipeMode, - nMaxInstances, - nOutBufferSize, - nInBufferSize, - nDefaultTimeOut, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSecurityAttributes)); -} - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE BOOL_ wait_named_pipe(LPCSTR_ lpNamedPipeName, DWORD_ nTimeOut) -{ - return ::WaitNamedPipeA(lpNamedPipeName, nTimeOut); -} -#endif //BOOST_NO_ANSI_APIS - -BOOST_FORCEINLINE BOOL_ wait_named_pipe(LPCWSTR_ lpNamedPipeName, DWORD_ nTimeOut) -{ - return ::WaitNamedPipeW(lpNamedPipeName, nTimeOut); -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE BOOL_ get_named_pipe_client_computer_name(HANDLE_ Pipe, LPSTR_ ClientComputerName, ULONG_ ClientComputerNameLength) -{ - return ::GetNamedPipeClientComputerNameA(Pipe, ClientComputerName, ClientComputerNameLength); -} -#endif // !defined( BOOST_NO_ANSI_APIS ) - -BOOST_FORCEINLINE BOOL_ get_named_pipe_client_computer_name(HANDLE_ Pipe, LPWSTR_ ClientComputerName, ULONG_ ClientComputerNameLength) -{ - return ::GetNamedPipeClientComputerNameW(Pipe, ClientComputerName, ClientComputerNameLength); -} - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -} -} -} - -#endif // BOOST_PLAT_WINDOWS_DESKTOP - -#endif // BOOST_DETAIL_WINAPI_PIPES_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/priority_class.hpp b/lib/3rdParty/boost/boost/detail/winapi/priority_class.hpp deleted file mode 100644 index bfcb425a8..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/priority_class.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// priority_class.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_PRIORITY_CLASS_HPP_ -#define BOOST_DETAIL_WINAPI_PRIORITY_CLASS_HPP_ - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetPriorityClass(boost::detail::winapi::HANDLE_ hProcess); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetPriorityClass( - boost::detail::winapi::HANDLE_ hProcess, - boost::detail::winapi::DWORD_ dwPriorityClass); - -} // extern "C" -#endif //defined BOOST_WINDOWS_H - -namespace boost { -namespace detail { -namespace winapi { - -#if defined(BOOST_USE_WINDOWS_H) - -const DWORD_ NORMAL_PRIORITY_CLASS_ = NORMAL_PRIORITY_CLASS; -const DWORD_ IDLE_PRIORITY_CLASS_ = IDLE_PRIORITY_CLASS; -const DWORD_ HIGH_PRIORITY_CLASS_ = HIGH_PRIORITY_CLASS; -const DWORD_ REALTIME_PRIORITY_CLASS_ = REALTIME_PRIORITY_CLASS; -const DWORD_ BELOW_NORMAL_PRIORITY_CLASS_ = BELOW_NORMAL_PRIORITY_CLASS; -const DWORD_ ABOVE_NORMAL_PRIORITY_CLASS_ = ABOVE_NORMAL_PRIORITY_CLASS; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ PROCESS_MODE_BACKGROUND_BEGIN_ = PROCESS_MODE_BACKGROUND_BEGIN; -const DWORD_ PROCESS_MODE_BACKGROUND_END_ = PROCESS_MODE_BACKGROUND_END; -#endif - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ NORMAL_PRIORITY_CLASS_ = 0x20; -const DWORD_ IDLE_PRIORITY_CLASS_ = 0x40; -const DWORD_ HIGH_PRIORITY_CLASS_ = 0x80; -const DWORD_ REALTIME_PRIORITY_CLASS_ = 0x100; -const DWORD_ BELOW_NORMAL_PRIORITY_CLASS_ = 0x4000; -const DWORD_ ABOVE_NORMAL_PRIORITY_CLASS_ = 0x8000; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ PROCESS_MODE_BACKGROUND_BEGIN_ = 0x100000; -const DWORD_ PROCESS_MODE_BACKGROUND_END_ = 0x200000; -#endif - -#endif // defined( BOOST_USE_WINDOWS_H ) - -using ::GetPriorityClass; -using ::SetPriorityClass; - -} -} -} - -#endif // BOOST_PLAT_WINDOWS_DESKTOP - -#endif // BOOST_DETAIL_WINAPI_PRIORITY_CLASS_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/process.hpp b/lib/3rdParty/boost/boost/detail/winapi/process.hpp deleted file mode 100644 index dc8a5339b..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/process.hpp +++ /dev/null @@ -1,421 +0,0 @@ -// process.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern -// Copyright 2016 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_PROCESS_HPP_ -#define BOOST_DETAIL_WINAPI_PROCESS_HPP_ - -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -struct _PROCESS_INFORMATION; -#if !defined( BOOST_NO_ANSI_APIS ) -struct _STARTUPINFOA; -#endif -struct _STARTUPINFOW; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -struct _PROC_THREAD_ATTRIBUTE_LIST; -#if !defined( BOOST_NO_ANSI_APIS ) -struct _STARTUPINFOEXA; -#endif -struct _STARTUPINFOEXW; -#endif - -BOOST_SYMBOL_IMPORT BOOST_NORETURN boost::detail::winapi::VOID_ WINAPI -ExitProcess(boost::detail::winapi::UINT_ uExitCode); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI TerminateProcess( - boost::detail::winapi::HANDLE_ hProcess, - boost::detail::winapi::UINT_ uExitCode); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI GetExitCodeProcess( - boost::detail::winapi::HANDLE_ hProcess, - boost::detail::winapi::LPDWORD_ lpExitCode); - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI CreateProcessA( - boost::detail::winapi::LPCSTR_ lpApplicationName, - boost::detail::winapi::LPSTR_ lpCommandLine, - ::_SECURITY_ATTRIBUTES* lpProcessAttributes, - ::_SECURITY_ATTRIBUTES* lpThreadAttributes, - boost::detail::winapi::INT_ bInheritHandles, - boost::detail::winapi::DWORD_ dwCreationFlags, - boost::detail::winapi::LPVOID_ lpEnvironment, - boost::detail::winapi::LPCSTR_ lpCurrentDirectory, - ::_STARTUPINFOA* lpStartupInfo, - ::_PROCESS_INFORMATION* lpProcessInformation); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI CreateProcessW( - boost::detail::winapi::LPCWSTR_ lpApplicationName, - boost::detail::winapi::LPWSTR_ lpCommandLine, - ::_SECURITY_ATTRIBUTES* lpProcessAttributes, - ::_SECURITY_ATTRIBUTES* lpThreadAttributes, - boost::detail::winapi::INT_ bInheritHandles, - boost::detail::winapi::DWORD_ dwCreationFlags, - boost::detail::winapi::LPVOID_ lpEnvironment, - boost::detail::winapi::LPCWSTR_ lpCurrentDirectory, - ::_STARTUPINFOW* lpStartupInfo, - ::_PROCESS_INFORMATION* lpProcessInformation); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI OpenProcess( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::DWORD_ dwProcessId); - -} // extern "C" -#endif //defined BOOST_WINDOWS_H - -namespace boost { -namespace detail { -namespace winapi { - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ DEBUG_PROCESS_ = DEBUG_PROCESS; -const DWORD_ DEBUG_ONLY_THIS_PROCESS_ = DEBUG_ONLY_THIS_PROCESS; -const DWORD_ CREATE_SUSPENDED_ = CREATE_SUSPENDED; -const DWORD_ DETACHED_PROCESS_ = DETACHED_PROCESS; -const DWORD_ CREATE_NEW_CONSOLE_ = CREATE_NEW_CONSOLE; -const DWORD_ CREATE_NEW_PROCESS_GROUP_ = CREATE_NEW_PROCESS_GROUP; -const DWORD_ CREATE_UNICODE_ENVIRONMENT_ = CREATE_UNICODE_ENVIRONMENT; -const DWORD_ CREATE_SEPARATE_WOW_VDM_ = CREATE_SEPARATE_WOW_VDM; -const DWORD_ CREATE_SHARED_WOW_VDM_ = CREATE_SHARED_WOW_VDM; -const DWORD_ CREATE_FORCEDOS_ = CREATE_FORCEDOS; -const DWORD_ CREATE_BREAKAWAY_FROM_JOB_ = CREATE_BREAKAWAY_FROM_JOB; -const DWORD_ CREATE_DEFAULT_ERROR_MODE_ = CREATE_DEFAULT_ERROR_MODE; -const DWORD_ CREATE_NO_WINDOW_ = CREATE_NO_WINDOW; - -// Undocumented -const DWORD_ PROFILE_USER_ = PROFILE_USER; -const DWORD_ PROFILE_KERNEL_ = PROFILE_KERNEL; -const DWORD_ PROFILE_SERVER_ = PROFILE_SERVER; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ CREATE_PROTECTED_PROCESS_ = CREATE_PROTECTED_PROCESS; -const DWORD_ EXTENDED_STARTUPINFO_PRESENT_ = EXTENDED_STARTUPINFO_PRESENT; -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7 -const DWORD_ INHERIT_PARENT_AFFINITY_ = INHERIT_PARENT_AFFINITY; -#endif - -// Only documented for Windows CE -#if defined(UNDER_CE) -const DWORD_ INHERIT_CALLER_PRIORITY_ = INHERIT_CALLER_PRIORITY; -#endif - -const DWORD_ STARTF_USESHOWWINDOW_ = STARTF_USESHOWWINDOW; -const DWORD_ STARTF_USESIZE_ = STARTF_USESIZE; -const DWORD_ STARTF_USEPOSITION_ = STARTF_USEPOSITION; -const DWORD_ STARTF_USECOUNTCHARS_ = STARTF_USECOUNTCHARS; -const DWORD_ STARTF_USEFILLATTRIBUTE_ = STARTF_USEFILLATTRIBUTE; -const DWORD_ STARTF_RUNFULLSCREEN_ = STARTF_RUNFULLSCREEN; -const DWORD_ STARTF_FORCEONFEEDBACK_ = STARTF_FORCEONFEEDBACK; -const DWORD_ STARTF_FORCEOFFFEEDBACK_ = STARTF_FORCEOFFFEEDBACK; -const DWORD_ STARTF_USESTDHANDLES_ = STARTF_USESTDHANDLES; -const DWORD_ STARTF_USEHOTKEY_ = STARTF_USEHOTKEY; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7 -const DWORD_ STARTF_TITLEISLINKNAME_ = STARTF_TITLEISLINKNAME; -const DWORD_ STARTF_TITLEISAPPID_ = STARTF_TITLEISAPPID; -const DWORD_ STARTF_PREVENTPINNING_ = STARTF_PREVENTPINNING; -#endif - -const DWORD_ PROCESS_TERMINATE_ = PROCESS_TERMINATE; -const DWORD_ PROCESS_CREATE_THREAD_ = PROCESS_CREATE_THREAD; -const DWORD_ PROCESS_SET_SESSIONID_ = PROCESS_SET_SESSIONID; -const DWORD_ PROCESS_VM_OPERATION_ = PROCESS_VM_OPERATION; -const DWORD_ PROCESS_VM_READ_ = PROCESS_VM_READ; -const DWORD_ PROCESS_VM_WRITE_ = PROCESS_VM_WRITE; -const DWORD_ PROCESS_DUP_HANDLE_ = PROCESS_DUP_HANDLE; -const DWORD_ PROCESS_CREATE_PROCESS_ = PROCESS_CREATE_PROCESS; -const DWORD_ PROCESS_SET_QUOTA_ = PROCESS_SET_QUOTA; -const DWORD_ PROCESS_SET_INFORMATION_ = PROCESS_SET_INFORMATION; -const DWORD_ PROCESS_QUERY_INFORMATION_ = PROCESS_QUERY_INFORMATION; -const DWORD_ PROCESS_SUSPEND_RESUME_ = PROCESS_SUSPEND_RESUME; -const DWORD_ PROCESS_ALL_ACCESS_ = PROCESS_ALL_ACCESS; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ DEBUG_PROCESS_ = 0x1; -const DWORD_ DEBUG_ONLY_THIS_PROCESS_ = 0x2; -const DWORD_ CREATE_SUSPENDED_ = 0x4; -const DWORD_ DETACHED_PROCESS_ = 0x8; -const DWORD_ CREATE_NEW_CONSOLE_ = 0x10; -const DWORD_ CREATE_NEW_PROCESS_GROUP_ = 0x200; -const DWORD_ CREATE_UNICODE_ENVIRONMENT_ = 0x400; -const DWORD_ CREATE_SEPARATE_WOW_VDM_ = 0x800; -const DWORD_ CREATE_SHARED_WOW_VDM_ = 0x1000; -const DWORD_ CREATE_FORCEDOS_ = 0x2000; -const DWORD_ CREATE_BREAKAWAY_FROM_JOB_ = 0x1000000; -const DWORD_ CREATE_DEFAULT_ERROR_MODE_ = 0x4000000; -const DWORD_ CREATE_NO_WINDOW_ = 0x8000000; - -// Undocumented -const DWORD_ PROFILE_USER_ = 0x10000000; -const DWORD_ PROFILE_KERNEL_ = 0x20000000; -const DWORD_ PROFILE_SERVER_ = 0x40000000; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -const DWORD_ CREATE_PROTECTED_PROCESS_ = 0x40000; -const DWORD_ EXTENDED_STARTUPINFO_PRESENT_ = 0x80000; -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7 -const DWORD_ INHERIT_PARENT_AFFINITY_ = 0x10000; -#endif - -// Only documented for Windows CE -#if defined(UNDER_CE) -const DWORD_ INHERIT_CALLER_PRIORITY_ = 0x20000; -#endif - -const DWORD_ STARTF_USESHOWWINDOW_ = 0x00000001; -const DWORD_ STARTF_USESIZE_ = 0x00000002; -const DWORD_ STARTF_USEPOSITION_ = 0x00000004; -const DWORD_ STARTF_USECOUNTCHARS_ = 0x00000008; -const DWORD_ STARTF_USEFILLATTRIBUTE_ = 0x00000010; -const DWORD_ STARTF_RUNFULLSCREEN_ = 0x00000020; -const DWORD_ STARTF_FORCEONFEEDBACK_ = 0x00000040; -const DWORD_ STARTF_FORCEOFFFEEDBACK_ = 0x00000080; -const DWORD_ STARTF_USESTDHANDLES_ = 0x00000100; -const DWORD_ STARTF_USEHOTKEY_ = 0x00000200; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN7 -const DWORD_ STARTF_TITLEISLINKNAME_ = 0x00000800; -const DWORD_ STARTF_TITLEISAPPID_ = 0x00001000; -const DWORD_ STARTF_PREVENTPINNING_ = 0x00002000; -#endif - -const DWORD_ PROCESS_TERMINATE_ = 0x0001; -const DWORD_ PROCESS_CREATE_THREAD_ = 0x0002; -const DWORD_ PROCESS_SET_SESSIONID_ = 0x0004; -const DWORD_ PROCESS_VM_OPERATION_ = 0x0008; -const DWORD_ PROCESS_VM_READ_ = 0x0010; -const DWORD_ PROCESS_VM_WRITE_ = 0x0020; -const DWORD_ PROCESS_DUP_HANDLE_ = 0x0040; -const DWORD_ PROCESS_CREATE_PROCESS_ = 0x0080; -const DWORD_ PROCESS_SET_QUOTA_ = 0x0100; -const DWORD_ PROCESS_SET_INFORMATION_ = 0x0200; -const DWORD_ PROCESS_QUERY_INFORMATION_ = 0x0400; -const DWORD_ PROCESS_SUSPEND_RESUME_ = 0x0800; -const DWORD_ PROCESS_ALL_ACCESS_ = (STANDARD_RIGHTS_REQUIRED_ | SYNCHRONIZE_ | 0xFFF); - -#endif // defined( BOOST_USE_WINDOWS_H ) - -#if defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW ) - -const DWORD_ CREATE_PRESERVE_CODE_AUTHZ_LEVEL_ = CREATE_PRESERVE_CODE_AUTHZ_LEVEL; - -// Undocumented -const DWORD_ CREATE_IGNORE_SYSTEM_DEFAULT_ = CREATE_IGNORE_SYSTEM_DEFAULT; - -#else // defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW ) - -const DWORD_ CREATE_PRESERVE_CODE_AUTHZ_LEVEL_ = 0x2000000; - -// Undocumented -const DWORD_ CREATE_IGNORE_SYSTEM_DEFAULT_ = 0x80000000; - -#endif // defined( BOOST_USE_WINDOWS_H ) && !defined( BOOST_WINAPI_IS_MINGW ) - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _PROCESS_INFORMATION { - HANDLE_ hProcess; - HANDLE_ hThread; - DWORD_ dwProcessId; - DWORD_ dwThreadId; -} PROCESS_INFORMATION_, *PPROCESS_INFORMATION_, *LPPROCESS_INFORMATION_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _STARTUPINFOA { - DWORD_ cb; - LPSTR_ lpReserved; - LPSTR_ lpDesktop; - LPSTR_ lpTitle; - DWORD_ dwX; - DWORD_ dwY; - DWORD_ dwXSize; - DWORD_ dwYSize; - DWORD_ dwXCountChars; - DWORD_ dwYCountChars; - DWORD_ dwFillAttribute; - DWORD_ dwFlags; - WORD_ wShowWindow; - WORD_ cbReserved2; - LPBYTE_ lpReserved2; - HANDLE_ hStdInput; - HANDLE_ hStdOutput; - HANDLE_ hStdError; -} STARTUPINFOA_, *LPSTARTUPINFOA_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _STARTUPINFOW { - DWORD_ cb; - LPWSTR_ lpReserved; - LPWSTR_ lpDesktop; - LPWSTR_ lpTitle; - DWORD_ dwX; - DWORD_ dwY; - DWORD_ dwXSize; - DWORD_ dwYSize; - DWORD_ dwXCountChars; - DWORD_ dwYCountChars; - DWORD_ dwFillAttribute; - DWORD_ dwFlags; - WORD_ wShowWindow; - WORD_ cbReserved2; - LPBYTE_ lpReserved2; - HANDLE_ hStdInput; - HANDLE_ hStdOutput; - HANDLE_ hStdError; -} STARTUPINFOW_, *LPSTARTUPINFOW_; - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -typedef struct _PROC_THREAD_ATTRIBUTE_LIST PROC_THREAD_ATTRIBUTE_LIST_, *PPROC_THREAD_ATTRIBUTE_LIST_; - -#if !defined(BOOST_NO_ANSI_APIS) -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _STARTUPINFOEXA { - STARTUPINFOA_ StartupInfo; - PPROC_THREAD_ATTRIBUTE_LIST_ lpAttributeList; -} STARTUPINFOEXA_, *LPSTARTUPINFOEXA_; -#endif //BOOST_NO_ANSI_APIS - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _STARTUPINFOEXW { - STARTUPINFOW_ StartupInfo; - PPROC_THREAD_ATTRIBUTE_LIST_ lpAttributeList; -} STARTUPINFOEXW_, *LPSTARTUPINFOEXW_; - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -using ::GetExitCodeProcess; -using ::ExitProcess; -using ::TerminateProcess; -using ::OpenProcess; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE BOOL_ CreateProcessA( - LPCSTR_ lpApplicationName, - LPSTR_ lpCommandLine, - LPSECURITY_ATTRIBUTES_ lpProcessAttributes, - LPSECURITY_ATTRIBUTES_ lpThreadAttributes, - INT_ bInheritHandles, - DWORD_ dwCreationFlags, - LPVOID_ lpEnvironment, - LPCSTR_ lpCurrentDirectory, - LPSTARTUPINFOA_ lpStartupInfo, - LPPROCESS_INFORMATION_ lpProcessInformation) -{ - return ::CreateProcessA( - lpApplicationName, - lpCommandLine, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes), - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes), - bInheritHandles, - dwCreationFlags, - lpEnvironment, - lpCurrentDirectory, - reinterpret_cast< ::_STARTUPINFOA* >(lpStartupInfo), - reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation)); -} - -BOOST_FORCEINLINE BOOL_ create_process( - LPCSTR_ lpApplicationName, - LPSTR_ lpCommandLine, - LPSECURITY_ATTRIBUTES_ lpProcessAttributes, - LPSECURITY_ATTRIBUTES_ lpThreadAttributes, - INT_ bInheritHandles, - DWORD_ dwCreationFlags, - LPVOID_ lpEnvironment, - LPCSTR_ lpCurrentDirectory, - LPSTARTUPINFOA_ lpStartupInfo, - LPPROCESS_INFORMATION_ lpProcessInformation) -{ - return ::CreateProcessA( - lpApplicationName, - lpCommandLine, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes), - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes), - bInheritHandles, - dwCreationFlags, - lpEnvironment, - lpCurrentDirectory, - reinterpret_cast< ::_STARTUPINFOA* >(lpStartupInfo), - reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation)); -} -#endif - -BOOST_FORCEINLINE BOOL_ CreateProcessW( - LPCWSTR_ lpApplicationName, - LPWSTR_ lpCommandLine, - LPSECURITY_ATTRIBUTES_ lpProcessAttributes, - LPSECURITY_ATTRIBUTES_ lpThreadAttributes, - INT_ bInheritHandles, - DWORD_ dwCreationFlags, - LPVOID_ lpEnvironment, - LPCWSTR_ lpCurrentDirectory, - LPSTARTUPINFOW_ lpStartupInfo, - LPPROCESS_INFORMATION_ lpProcessInformation) -{ - return ::CreateProcessW( - lpApplicationName, - lpCommandLine, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes), - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes), - bInheritHandles, - dwCreationFlags, - lpEnvironment, - lpCurrentDirectory, - reinterpret_cast< ::_STARTUPINFOW* >(lpStartupInfo), - reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation)); -} - -BOOST_FORCEINLINE BOOL_ create_process( - LPCWSTR_ lpApplicationName, - LPWSTR_ lpCommandLine, - LPSECURITY_ATTRIBUTES_ lpProcessAttributes, - LPSECURITY_ATTRIBUTES_ lpThreadAttributes, - INT_ bInheritHandles, - DWORD_ dwCreationFlags, - LPVOID_ lpEnvironment, - LPCWSTR_ lpCurrentDirectory, - LPSTARTUPINFOW_ lpStartupInfo, - LPPROCESS_INFORMATION_ lpProcessInformation) -{ - return ::CreateProcessW( - lpApplicationName, - lpCommandLine, - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpProcessAttributes), - reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpThreadAttributes), - bInheritHandles, - dwCreationFlags, - lpEnvironment, - lpCurrentDirectory, - reinterpret_cast< ::_STARTUPINFOW* >(lpStartupInfo), - reinterpret_cast< ::_PROCESS_INFORMATION* >(lpProcessInformation)); -} - -} -} -} - -#endif // BOOST_PLAT_WINDOWS_DESKTOP - -#endif // BOOST_DETAIL_WINAPI_PROCESS_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/security.hpp b/lib/3rdParty/boost/boost/detail/winapi/security.hpp deleted file mode 100644 index 4a6544519..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/security.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// security.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_SECURITY_HPP -#define BOOST_DETAIL_WINAPI_SECURITY_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -struct _ACL; -struct _SECURITY_DESCRIPTOR; -#if defined( BOOST_WINAPI_IS_MINGW ) -typedef _SECURITY_DESCRIPTOR *PSECURITY_DESCRIPTOR; -#else -typedef boost::detail::winapi::PVOID_ PSECURITY_DESCRIPTOR; -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -InitializeSecurityDescriptor( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - boost::detail::winapi::DWORD_ dwRevision); -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetSecurityDescriptorDacl( - PSECURITY_DESCRIPTOR pSecurityDescriptor, - boost::detail::winapi::BOOL_ bDaclPresent, - ::_ACL* pDacl, - boost::detail::winapi::BOOL_ bDaclDefaulted); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef PVOID_ PSID_; -typedef WORD_ SECURITY_DESCRIPTOR_CONTROL_, *PSECURITY_DESCRIPTOR_CONTROL_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _ACL { - BYTE_ AclRevision; - BYTE_ Sbz1; - WORD_ AclSize; - WORD_ AceCount; - WORD_ Sbz2; -} ACL_, *PACL_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SECURITY_DESCRIPTOR { - BYTE_ Revision; - BYTE_ Sbz1; - SECURITY_DESCRIPTOR_CONTROL_ Control; - PSID_ Owner; - PSID_ Group; - PACL_ Sacl; - PACL_ Dacl; -} SECURITY_DESCRIPTOR_, *PISECURITY_DESCRIPTOR_; - -typedef ::PSECURITY_DESCRIPTOR PSECURITY_DESCRIPTOR_; - -using ::InitializeSecurityDescriptor; - -BOOST_FORCEINLINE BOOL_ SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR_ pSecurityDescriptor, BOOL_ bDaclPresent, PACL_ pDacl, BOOL_ bDaclDefaulted) -{ - return ::SetSecurityDescriptorDacl(pSecurityDescriptor, bDaclPresent, reinterpret_cast< ::_ACL* >(pDacl), bDaclDefaulted); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_SECURITY_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/semaphore.hpp b/lib/3rdParty/boost/boost/detail/winapi/semaphore.hpp deleted file mode 100644 index 8415e087a..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/semaphore.hpp +++ /dev/null @@ -1,177 +0,0 @@ -// semaphore.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_SEMAPHORE_HPP -#define BOOST_DETAIL_WINAPI_SEMAPHORE_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( BOOST_NO_ANSI_APIS ) -#if !defined( BOOST_PLAT_WINDOWS_RUNTIME_AVALIABLE ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateSemaphoreA( - ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes, - boost::detail::winapi::LONG_ lInitialCount, - boost::detail::winapi::LONG_ lMaximumCount, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateSemaphoreExA( - ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes, - boost::detail::winapi::LONG_ lInitialCount, - boost::detail::winapi::LONG_ lMaximumCount, - boost::detail::winapi::LPCSTR_ lpName, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwDesiredAccess); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenSemaphoreA( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCSTR_ lpName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateSemaphoreW( - ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes, - boost::detail::winapi::LONG_ lInitialCount, - boost::detail::winapi::LONG_ lMaximumCount, - boost::detail::winapi::LPCWSTR_ lpName); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateSemaphoreExW( - ::_SECURITY_ATTRIBUTES* lpSemaphoreAttributes, - boost::detail::winapi::LONG_ lInitialCount, - boost::detail::winapi::LONG_ lMaximumCount, - boost::detail::winapi::LPCWSTR_ lpName, - boost::detail::winapi::DWORD_ dwFlags, - boost::detail::winapi::DWORD_ dwDesiredAccess); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenSemaphoreW( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCWSTR_ lpName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -ReleaseSemaphore( - boost::detail::winapi::HANDLE_ hSemaphore, - boost::detail::winapi::LONG_ lReleaseCount, - boost::detail::winapi::LPLONG_ lpPreviousCount); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::OpenSemaphoreA; -#endif -using ::OpenSemaphoreW; -using ::ReleaseSemaphore; - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ SEMAPHORE_ALL_ACCESS_ = SEMAPHORE_ALL_ACCESS; -const DWORD_ SEMAPHORE_MODIFY_STATE_ = SEMAPHORE_MODIFY_STATE; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ SEMAPHORE_ALL_ACCESS_ = 0x001F0003; -const DWORD_ SEMAPHORE_MODIFY_STATE_ = 0x00000002; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -// Undocumented and not present in Windows SDK. Enables NtQuerySemaphore. -// http://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FNT%20Objects%2FEvent%2FNtQueryEvent.html -const DWORD_ SEMAPHORE_QUERY_STATE_ = 0x00000001; - -const DWORD_ semaphore_all_access = SEMAPHORE_ALL_ACCESS_; -const DWORD_ semaphore_modify_state = SEMAPHORE_MODIFY_STATE_; - - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateSemaphoreA(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCSTR_ lpName) -{ -#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - return ::CreateSemaphoreExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, 0, semaphore_all_access); -#else - return ::CreateSemaphoreA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName); -#endif -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE HANDLE_ CreateSemaphoreExA(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCSTR_ lpName, DWORD_ dwFlags, DWORD_ dwDesiredAccess) -{ - return ::CreateSemaphoreExA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, dwFlags, dwDesiredAccess); -} -#endif -#endif - -BOOST_FORCEINLINE HANDLE_ CreateSemaphoreW(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCWSTR_ lpName) -{ -#if BOOST_PLAT_WINDOWS_RUNTIME && BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - return ::CreateSemaphoreExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, 0, semaphore_all_access); -#else - return ::CreateSemaphoreW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName); -#endif -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_FORCEINLINE HANDLE_ CreateSemaphoreExW(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCWSTR_ lpName, DWORD_ dwFlags, DWORD_ dwDesiredAccess) -{ - return ::CreateSemaphoreExW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpSemaphoreAttributes), lInitialCount, lMaximumCount, lpName, dwFlags, dwDesiredAccess); -} -#endif - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ create_semaphore(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCSTR_ lpName) -{ - return winapi::CreateSemaphoreA(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_semaphore(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCSTR_ lpName) -{ - return ::OpenSemaphoreA(dwDesiredAccess, bInheritHandle, lpName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ create_semaphore(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount, LPCWSTR_ lpName) -{ - return winapi::CreateSemaphoreW(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName); -} - -BOOST_FORCEINLINE HANDLE_ open_semaphore(DWORD_ dwDesiredAccess, BOOL_ bInheritHandle, LPCWSTR_ lpName) -{ - return ::OpenSemaphoreW(dwDesiredAccess, bInheritHandle, lpName); -} - -BOOST_FORCEINLINE HANDLE_ create_anonymous_semaphore(SECURITY_ATTRIBUTES_* lpSemaphoreAttributes, LONG_ lInitialCount, LONG_ lMaximumCount) -{ - return winapi::CreateSemaphoreW(lpSemaphoreAttributes, lInitialCount, lMaximumCount, 0); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_SEMAPHORE_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/shell.hpp b/lib/3rdParty/boost/boost/detail/winapi/shell.hpp deleted file mode 100644 index fbb9ad6f5..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/shell.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// shell.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_SHELL_HPP_ -#define BOOST_DETAIL_WINAPI_SHELL_HPP_ - -#include -#include -#if defined( BOOST_USE_WINDOWS_H ) -#include -#endif - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { - -BOOST_DETAIL_WINAPI_DECLARE_HANDLE(HICON); - -#if !defined( BOOST_NO_ANSI_APIS ) -struct _SHFILEINFOA; -#endif -struct _SHFILEINFOW; - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_PTR_ WINAPI SHGetFileInfoA( - boost::detail::winapi::LPCSTR_ pszPath, - boost::detail::winapi::DWORD_ dwFileAttributes, - ::_SHFILEINFOA *psfinsigned, - boost::detail::winapi::UINT_ cbFileInfons, - boost::detail::winapi::UINT_ uFlags); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_PTR_ WINAPI SHGetFileInfoW( - boost::detail::winapi::LPCWSTR_ pszPath, - boost::detail::winapi::DWORD_ dwFileAttributes, - ::_SHFILEINFOW *psfinsigned, - boost::detail::winapi::UINT_ cbFileInfons, - boost::detail::winapi::UINT_ uFlags); - -} // extern "C" -#endif // !defined( BOOST_USE_WINDOWS_H ) - -namespace boost { -namespace detail { -namespace winapi { - -typedef ::HICON HICON_; - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ SHGFI_ICON_ = SHGFI_ICON; -const DWORD_ SHGFI_DISPLAYNAME_ = SHGFI_DISPLAYNAME; -const DWORD_ SHGFI_TYPENAME_ = SHGFI_TYPENAME; -const DWORD_ SHGFI_ATTRIBUTES_ = SHGFI_ATTRIBUTES; -const DWORD_ SHGFI_ICONLOCATION_ = SHGFI_ICONLOCATION; -const DWORD_ SHGFI_EXETYPE_ = SHGFI_EXETYPE; -const DWORD_ SHGFI_SYSICONINDEX_ = SHGFI_SYSICONINDEX; -const DWORD_ SHGFI_LINKOVERLAY_ = SHGFI_LINKOVERLAY; -const DWORD_ SHGFI_SELECTED_ = SHGFI_SELECTED; -const DWORD_ SHGFI_ATTR_SPECIFIED_ = SHGFI_ATTR_SPECIFIED; -const DWORD_ SHGFI_LARGEICON_ = SHGFI_LARGEICON; -const DWORD_ SHGFI_SMALLICON_ = SHGFI_SMALLICON; -const DWORD_ SHGFI_OPENICON_ = SHGFI_OPENICON; -const DWORD_ SHGFI_SHELLICONSIZE_ = SHGFI_SHELLICONSIZE; -const DWORD_ SHGFI_PIDL_ = SHGFI_PIDL; -const DWORD_ SHGFI_USEFILEATTRIBUTES_ = SHGFI_USEFILEATTRIBUTES; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ SHGFI_ICON_ = 0x000000100; -const DWORD_ SHGFI_DISPLAYNAME_ = 0x000000200; -const DWORD_ SHGFI_TYPENAME_ = 0x000000400; -const DWORD_ SHGFI_ATTRIBUTES_ = 0x000000800; -const DWORD_ SHGFI_ICONLOCATION_ = 0x000001000; -const DWORD_ SHGFI_EXETYPE_ = 0x000002000; -const DWORD_ SHGFI_SYSICONINDEX_ = 0x000004000; -const DWORD_ SHGFI_LINKOVERLAY_ = 0x000008000; -const DWORD_ SHGFI_SELECTED_ = 0x000010000; -const DWORD_ SHGFI_ATTR_SPECIFIED_ = 0x000020000; -const DWORD_ SHGFI_LARGEICON_ = 0x000000000; -const DWORD_ SHGFI_SMALLICON_ = 0x000000001; -const DWORD_ SHGFI_OPENICON_ = 0x000000002; -const DWORD_ SHGFI_SHELLICONSIZE_ = 0x000000004; -const DWORD_ SHGFI_PIDL_ = 0x000000008; -const DWORD_ SHGFI_USEFILEATTRIBUTES_ = 0x000000010; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -// These constants are only declared for _WIN32_IE >= 0x0500. We don't set IE version -// and 5.0 is the default version since NT4 SP6, so just define the constants unconditionally. -const DWORD_ SHGFI_ADDOVERLAYS_ = 0x000000020; -const DWORD_ SHGFI_OVERLAYINDEX_ = 0x000000040; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SHFILEINFOA { - HICON_ hIcon; - int iIcon; - DWORD_ dwAttributes; - CHAR_ szDisplayName[MAX_PATH_]; - CHAR_ szTypeName[80]; -} SHFILEINFOA_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SHFILEINFOW { - HICON_ hIcon; - int iIcon; - DWORD_ dwAttributes; - WCHAR_ szDisplayName[MAX_PATH_]; - WCHAR_ szTypeName[80]; -} SHFILEINFOW_; - -#if !defined( BOOST_NO_ANSI_APIS ) - -BOOST_FORCEINLINE DWORD_PTR_ SHGetFileInfoA(LPCSTR_ pszPath, DWORD_ dwFileAttributes, SHFILEINFOA_* psfinsigned, UINT_ cbFileInfons, UINT_ uFlags) -{ - return ::SHGetFileInfoA(pszPath, dwFileAttributes, reinterpret_cast< ::_SHFILEINFOA* >(psfinsigned), cbFileInfons, uFlags); -} - -BOOST_FORCEINLINE DWORD_PTR_ sh_get_file_info(LPCSTR_ pszPath, DWORD_ dwFileAttributes, SHFILEINFOA_* psfinsigned, UINT_ cbFileInfons, UINT_ uFlags) -{ - return ::SHGetFileInfoA(pszPath, dwFileAttributes, reinterpret_cast< ::_SHFILEINFOA* >(psfinsigned), cbFileInfons, uFlags); -} - -#endif // BOOST_NO_ANSI_APIS - -BOOST_FORCEINLINE DWORD_PTR_ SHGetFileInfoW(LPCWSTR_ pszPath, DWORD_ dwFileAttributes, SHFILEINFOW_* psfinsigned, UINT_ cbFileInfons, UINT_ uFlags) -{ - return ::SHGetFileInfoW(pszPath, dwFileAttributes, reinterpret_cast< ::_SHFILEINFOW* >(psfinsigned), cbFileInfons, uFlags); -} - -BOOST_FORCEINLINE DWORD_PTR_ sh_get_file_info(LPCWSTR_ pszPath, DWORD_ dwFileAttributes, SHFILEINFOW_* psfinsigned, UINT_ cbFileInfons, UINT_ uFlags) -{ - return ::SHGetFileInfoW(pszPath, dwFileAttributes, reinterpret_cast< ::_SHFILEINFOW* >(psfinsigned), cbFileInfons, uFlags); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_SHELL_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/show_window.hpp b/lib/3rdParty/boost/boost/detail/winapi/show_window.hpp deleted file mode 100644 index a8839ae79..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/show_window.hpp +++ /dev/null @@ -1,105 +0,0 @@ -// show_window.hpp --------------------------------------------------------------// - -// Copyright 2016 Klemens D. Morgenstern - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_DETAIL_WINAPI_SHOW_WINDOW_HPP_ -#define BOOST_DETAIL_WINAPI_SHOW_WINDOW_HPP_ - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_DETAIL_WINAPI_DECLARE_HANDLE(HWND); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI ShowWindow( - HWND hWnd, - int nCmdShow); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI ShowWindowAsync( - HWND hWnd, - int nCmdShow); -} -#endif // BOOST_USE_WINDOWS_H - -namespace boost { -namespace detail { -namespace winapi { - -typedef ::HWND HWND_; -using ::ShowWindow; -using ::ShowWindowAsync; - -#if defined( BOOST_USE_WINDOWS_H ) && !defined( NOSHOWWINDOW ) - -const DWORD_ SW_HIDE_ = SW_HIDE; -const DWORD_ SW_SHOWNORMAL_ = SW_SHOWNORMAL; -const DWORD_ SW_NORMAL_ = SW_NORMAL; -const DWORD_ SW_SHOWMINIMIZED_ = SW_SHOWMINIMIZED; -const DWORD_ SW_SHOWMAXIMIZED_ = SW_SHOWMAXIMIZED; -const DWORD_ SW_MAXIMIZE_ = SW_MAXIMIZE; -const DWORD_ SW_SHOWNOACTIVATE_ = SW_SHOWNOACTIVATE; -const DWORD_ SW_SHOW_ = SW_SHOW; -const DWORD_ SW_MINIMIZE_ = SW_MINIMIZE; -const DWORD_ SW_SHOWMINNOACTIVE_ = SW_SHOWMINNOACTIVE; -const DWORD_ SW_SHOWNA_ = SW_SHOWNA; -const DWORD_ SW_RESTORE_ = SW_RESTORE; -const DWORD_ SW_SHOWDEFAULT_ = SW_SHOWDEFAULT; -const DWORD_ SW_FORCEMINIMIZE_ = SW_FORCEMINIMIZE; -const DWORD_ SW_MAX_ = SW_MAX; -const DWORD_ HIDE_WINDOW_ = HIDE_WINDOW; -const DWORD_ SHOW_OPENWINDOW_ = SHOW_OPENWINDOW; -const DWORD_ SHOW_ICONWINDOW_ = SHOW_ICONWINDOW; -const DWORD_ SHOW_FULLSCREEN_ = SHOW_FULLSCREEN; -const DWORD_ SHOW_OPENNOACTIVATE_ = SHOW_OPENNOACTIVATE; -const DWORD_ SW_PARENTCLOSING_ = SW_PARENTCLOSING; -const DWORD_ SW_OTHERZOOM_ = SW_OTHERZOOM; -const DWORD_ SW_PARENTOPENING_ = SW_PARENTOPENING; -const DWORD_ SW_OTHERUNZOOM_ = SW_OTHERUNZOOM; - -#else - -const DWORD_ SW_HIDE_ = 0; -const DWORD_ SW_SHOWNORMAL_ = 1; -const DWORD_ SW_NORMAL_ = 1; -const DWORD_ SW_SHOWMINIMIZED_ = 2; -const DWORD_ SW_SHOWMAXIMIZED_ = 3; -const DWORD_ SW_MAXIMIZE_ = 3; -const DWORD_ SW_SHOWNOACTIVATE_ = 4; -const DWORD_ SW_SHOW_ = 5; -const DWORD_ SW_MINIMIZE_ = 6; -const DWORD_ SW_SHOWMINNOACTIVE_ = 7; -const DWORD_ SW_SHOWNA_ = 8; -const DWORD_ SW_RESTORE_ = 9; -const DWORD_ SW_SHOWDEFAULT_ = 10; -const DWORD_ SW_FORCEMINIMIZE_ = 11; -const DWORD_ SW_MAX_ = 11; -const DWORD_ HIDE_WINDOW_ = 0; -const DWORD_ SHOW_OPENWINDOW_ = 1; -const DWORD_ SHOW_ICONWINDOW_ = 2; -const DWORD_ SHOW_FULLSCREEN_ = 3; -const DWORD_ SHOW_OPENNOACTIVATE_ = 4; -const DWORD_ SW_PARENTCLOSING_ = 1; -const DWORD_ SW_OTHERZOOM_ = 2; -const DWORD_ SW_PARENTOPENING_ = 3; -const DWORD_ SW_OTHERUNZOOM_ = 4; - -#endif - -} - -} -} - -#endif // BOOST_PLAT_WINDOWS_DESKTOP - -#endif // BOOST_DETAIL_WINAPI_SHOW_WINDOW_HPP_ diff --git a/lib/3rdParty/boost/boost/detail/winapi/srw_lock.hpp b/lib/3rdParty/boost/boost/detail/winapi/srw_lock.hpp deleted file mode 100644 index 0dad858f6..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/srw_lock.hpp +++ /dev/null @@ -1,116 +0,0 @@ -// srw_lock.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_SRW_LOCK_HPP -#define BOOST_DETAIL_WINAPI_SRW_LOCK_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_USE_WINAPI_VERSION < BOOST_WINAPI_VERSION_WIN6 \ - || (defined(_MSC_VER) && _MSC_VER < 1600) -// Windows SDK 6.0A, which is used by MSVC 9, does not have TryAcquireSRWLock* neither in headers nor in .lib files, -// although the functions are present in later SDKs since Windows API version 6. -#define BOOST_WINAPI_NO_TRY_ACQUIRE_SRWLOCK -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -struct _RTL_SRWLOCK; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -InitializeSRWLock(::_RTL_SRWLOCK* SRWLock); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -ReleaseSRWLockExclusive(::_RTL_SRWLOCK* SRWLock); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -ReleaseSRWLockShared(::_RTL_SRWLOCK* SRWLock); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -AcquireSRWLockExclusive(::_RTL_SRWLOCK* SRWLock); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -AcquireSRWLockShared(::_RTL_SRWLOCK* SRWLock); - -#if !defined( BOOST_WINAPI_NO_TRY_ACQUIRE_SRWLOCK ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOLEAN_ WINAPI -TryAcquireSRWLockExclusive(::_RTL_SRWLOCK* SRWLock); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOLEAN_ WINAPI -TryAcquireSRWLockShared(::_RTL_SRWLOCK* SRWLock); -#endif -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _RTL_SRWLOCK { - PVOID_ Ptr; -} SRWLOCK_, *PSRWLOCK_; - -#if defined( BOOST_USE_WINDOWS_H ) -#define BOOST_DETAIL_WINAPI_SRWLOCK_INIT SRWLOCK_INIT -#else -#define BOOST_DETAIL_WINAPI_SRWLOCK_INIT {0} -#endif - -BOOST_FORCEINLINE VOID_ InitializeSRWLock(PSRWLOCK_ SRWLock) -{ - ::InitializeSRWLock(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} - -BOOST_FORCEINLINE VOID_ ReleaseSRWLockExclusive(PSRWLOCK_ SRWLock) -{ - ::ReleaseSRWLockExclusive(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} - -BOOST_FORCEINLINE VOID_ ReleaseSRWLockShared(PSRWLOCK_ SRWLock) -{ - ::ReleaseSRWLockShared(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} - -BOOST_FORCEINLINE VOID_ AcquireSRWLockExclusive(PSRWLOCK_ SRWLock) -{ - ::AcquireSRWLockExclusive(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} - -BOOST_FORCEINLINE VOID_ AcquireSRWLockShared(PSRWLOCK_ SRWLock) -{ - ::AcquireSRWLockShared(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} - -#if !defined( BOOST_WINAPI_NO_TRY_ACQUIRE_SRWLOCK ) -BOOST_FORCEINLINE BOOLEAN_ TryAcquireSRWLockExclusive(PSRWLOCK_ SRWLock) -{ - return ::TryAcquireSRWLockExclusive(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} - -BOOST_FORCEINLINE BOOLEAN_ TryAcquireSRWLockShared(PSRWLOCK_ SRWLock) -{ - return ::TryAcquireSRWLockShared(reinterpret_cast< ::_RTL_SRWLOCK* >(SRWLock)); -} -#endif - -} -} -} - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 - -#endif // BOOST_DETAIL_WINAPI_SRW_LOCK_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/synchronization.hpp b/lib/3rdParty/boost/boost/detail/winapi/synchronization.hpp deleted file mode 100644 index d4f8c04cb..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/synchronization.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// synchronizaion.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_SYNCHRONIZATION_HPP -#define BOOST_DETAIL_WINAPI_SYNCHRONIZATION_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#endif // BOOST_DETAIL_WINAPI_SYNCHRONIZATION_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/system.hpp b/lib/3rdParty/boost/boost/detail/winapi/system.hpp deleted file mode 100644 index bdfff662f..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/system.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// system.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright (c) Microsoft Corporation 2014 -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_SYSTEM_HPP -#define BOOST_DETAIL_WINAPI_SYSTEM_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) -// nonstandard extension used : nameless struct/union -#pragma warning(disable: 4201) -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -struct _SYSTEM_INFO; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -GetSystemInfo(::_SYSTEM_INFO* lpSystemInfo); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -GetNativeSystemInfo(::_SYSTEM_INFO* lpSystemInfo); -#endif -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SYSTEM_INFO { - union { - DWORD_ dwOemId; - struct { - WORD_ wProcessorArchitecture; - WORD_ wReserved; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - DWORD_ dwPageSize; - LPVOID_ lpMinimumApplicationAddress; - LPVOID_ lpMaximumApplicationAddress; - DWORD_PTR_ dwActiveProcessorMask; - DWORD_ dwNumberOfProcessors; - DWORD_ dwProcessorType; - DWORD_ dwAllocationGranularity; - WORD_ wProcessorLevel; - WORD_ wProcessorRevision; -} SYSTEM_INFO_, *LPSYSTEM_INFO_; - -BOOST_FORCEINLINE VOID_ GetSystemInfo(LPSYSTEM_INFO_ lpSystemInfo) -{ - ::GetSystemInfo(reinterpret_cast< ::_SYSTEM_INFO* >(lpSystemInfo)); -} - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WINXP -BOOST_FORCEINLINE VOID_ GetNativeSystemInfo(LPSYSTEM_INFO_ lpSystemInfo) -{ - ::GetNativeSystemInfo(reinterpret_cast< ::_SYSTEM_INFO* >(lpSystemInfo)); -} -#endif - -} -} -} - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif // BOOST_DETAIL_WINAPI_SYSTEM_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/thread.hpp b/lib/3rdParty/boost/boost/detail/winapi/thread.hpp deleted file mode 100644 index 616270865..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/thread.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// thread.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_THREAD_HPP -#define BOOST_DETAIL_WINAPI_THREAD_HPP - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -SleepEx( - boost::detail::winapi::DWORD_ dwMilliseconds, - boost::detail::winapi::BOOL_ bAlertable); -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI Sleep(boost::detail::winapi::DWORD_ dwMilliseconds); -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI SwitchToThread(BOOST_DETAIL_WINAPI_VOID); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { -using ::SleepEx; -using ::Sleep; -using ::SwitchToThread; -} -} -} - -#endif // BOOST_DETAIL_WINAPI_THREAD_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/thread_pool.hpp b/lib/3rdParty/boost/boost/detail/winapi/thread_pool.hpp deleted file mode 100644 index f81c54596..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/thread_pool.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// thread_pool.hpp --------------------------------------------------------------// - -// Copyright 2013 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_THREAD_POOL_HPP -#define BOOST_DETAIL_WINAPI_THREAD_POOL_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K - -#include - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -typedef boost::detail::winapi::VOID_ (NTAPI *WAITORTIMERCALLBACKFUNC) -(boost::detail::winapi::PVOID_, boost::detail::winapi::BOOLEAN_); -typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -RegisterWaitForSingleObject( - boost::detail::winapi::PHANDLE_ phNewWaitObject, - boost::detail::winapi::HANDLE_ hObject, - WAITORTIMERCALLBACK Callback, - boost::detail::winapi::PVOID_ Context, - boost::detail::winapi::ULONG_ dwMilliseconds, - boost::detail::winapi::ULONG_ dwFlags); -} -#endif - -// MinGW is buggy - it is missing these function declarations for Win2000 -#if !defined( BOOST_USE_WINDOWS_H ) || (defined(BOOST_WINAPI_IS_MINGW) && BOOST_USE_WINAPI_VERSION < BOOST_WINAPI_VERSION_WINXP) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -UnregisterWait(boost::detail::winapi::HANDLE_ WaitHandle); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -UnregisterWaitEx( - boost::detail::winapi::HANDLE_ WaitHandle, - boost::detail::winapi::HANDLE_ CompletionEvent); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef ::WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACKFUNC_; -typedef ::WAITORTIMERCALLBACK WAITORTIMERCALLBACK_; - -using ::RegisterWaitForSingleObject; -using ::UnregisterWait; -using ::UnregisterWaitEx; - -#if defined( BOOST_USE_WINDOWS_H ) - -const ULONG_ WT_EXECUTEDEFAULT_ = WT_EXECUTEDEFAULT; -const ULONG_ WT_EXECUTEINIOTHREAD_ = WT_EXECUTEINIOTHREAD; -#if defined( BOOST_WINAPI_IS_MINGW ) -const ULONG_ WT_EXECUTEINUITHREAD_ = 0x00000002; -#else -const ULONG_ WT_EXECUTEINUITHREAD_ = WT_EXECUTEINUITHREAD; -#endif -const ULONG_ WT_EXECUTEINWAITTHREAD_ = WT_EXECUTEINWAITTHREAD; -const ULONG_ WT_EXECUTEONLYONCE_ = WT_EXECUTEONLYONCE; -const ULONG_ WT_EXECUTEINTIMERTHREAD_ = WT_EXECUTEINTIMERTHREAD; -const ULONG_ WT_EXECUTELONGFUNCTION_ = WT_EXECUTELONGFUNCTION; -#if defined( BOOST_WINAPI_IS_MINGW ) -const ULONG_ WT_EXECUTEINPERSISTENTIOTHREAD_ = 0x00000040; -#else -const ULONG_ WT_EXECUTEINPERSISTENTIOTHREAD_ = WT_EXECUTEINPERSISTENTIOTHREAD; -#endif -const ULONG_ WT_EXECUTEINPERSISTENTTHREAD_ = WT_EXECUTEINPERSISTENTTHREAD; -const ULONG_ WT_TRANSFER_IMPERSONATION_ = WT_TRANSFER_IMPERSONATION; - -inline ULONG_ wt_set_max_threadpool_threads(ULONG_ flags, ULONG_ limit) -{ - return WT_SET_MAX_THREADPOOL_THREADS(flags, limit); -} - -#else // defined( BOOST_USE_WINDOWS_H ) - -const ULONG_ WT_EXECUTEDEFAULT_ = 0x00000000; -const ULONG_ WT_EXECUTEINIOTHREAD_ = 0x00000001; -const ULONG_ WT_EXECUTEINUITHREAD_ = 0x00000002; -const ULONG_ WT_EXECUTEINWAITTHREAD_ = 0x00000004; -const ULONG_ WT_EXECUTEONLYONCE_ = 0x00000008; -const ULONG_ WT_EXECUTEINTIMERTHREAD_ = 0x00000020; -const ULONG_ WT_EXECUTELONGFUNCTION_ = 0x00000010; -const ULONG_ WT_EXECUTEINPERSISTENTIOTHREAD_ = 0x00000040; -const ULONG_ WT_EXECUTEINPERSISTENTTHREAD_ = 0x00000080; -const ULONG_ WT_TRANSFER_IMPERSONATION_ = 0x00000100; - -inline ULONG_ wt_set_max_threadpool_threads(ULONG_ flags, ULONG_ limit) -{ - return flags | (limit << 16); -} - -#endif // defined( BOOST_USE_WINDOWS_H ) - -const ULONG_ wt_execute_default = WT_EXECUTEDEFAULT_; -const ULONG_ wt_execute_in_io_thread = WT_EXECUTEINIOTHREAD_; -const ULONG_ wt_execute_in_ui_thread = WT_EXECUTEINUITHREAD_; -const ULONG_ wt_execute_in_wait_thread = WT_EXECUTEINWAITTHREAD_; -const ULONG_ wt_execute_only_once = WT_EXECUTEONLYONCE_; -const ULONG_ wt_execute_in_timer_thread = WT_EXECUTEINTIMERTHREAD_; -const ULONG_ wt_execute_long_function = WT_EXECUTELONGFUNCTION_; -const ULONG_ wt_execute_in_persistent_io_thread = WT_EXECUTEINPERSISTENTIOTHREAD_; -const ULONG_ wt_execute_in_persistent_thread = WT_EXECUTEINPERSISTENTTHREAD_; -const ULONG_ wt_transfer_impersonation = WT_TRANSFER_IMPERSONATION_; - -} -} -} - -#endif // BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN2K - -#endif // BOOST_DETAIL_WINAPI_THREAD_POOL_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/time.hpp b/lib/3rdParty/boost/boost/detail/winapi/time.hpp deleted file mode 100644 index 0f69f4774..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/time.hpp +++ /dev/null @@ -1,139 +0,0 @@ -// time.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright (c) Microsoft Corporation 2014 -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_TIME_HPP -#define BOOST_DETAIL_WINAPI_TIME_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -struct _FILETIME; -struct _SYSTEMTIME; - -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -GetSystemTime(::_SYSTEMTIME* lpSystemTime); - -#ifdef BOOST_HAS_GETSYSTEMTIMEASFILETIME // Windows CE does not define GetSystemTimeAsFileTime -BOOST_SYMBOL_IMPORT boost::detail::winapi::VOID_ WINAPI -GetSystemTimeAsFileTime(::_FILETIME* lpSystemTimeAsFileTime); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SystemTimeToFileTime( - const ::_SYSTEMTIME* lpSystemTime, - ::_FILETIME* lpFileTime); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FileTimeToSystemTime( - const ::_FILETIME* lpFileTime, - ::_SYSTEMTIME* lpSystemTime); - -#if BOOST_PLAT_WINDOWS_DESKTOP -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -FileTimeToLocalFileTime( - const ::_FILETIME* lpFileTime, - ::_FILETIME* lpLocalFileTime); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -LocalFileTimeToFileTime( - const ::_FILETIME* lpLocalFileTime, - ::_FILETIME* lpFileTime); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -GetTickCount(BOOST_DETAIL_WINAPI_VOID); -#endif - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -BOOST_SYMBOL_IMPORT boost::detail::winapi::ULONGLONG_ WINAPI -GetTickCount64(BOOST_DETAIL_WINAPI_VOID); -#endif -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _FILETIME { - DWORD_ dwLowDateTime; - DWORD_ dwHighDateTime; -} FILETIME_, *PFILETIME_, *LPFILETIME_; - -typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _SYSTEMTIME { - WORD_ wYear; - WORD_ wMonth; - WORD_ wDayOfWeek; - WORD_ wDay; - WORD_ wHour; - WORD_ wMinute; - WORD_ wSecond; - WORD_ wMilliseconds; -} SYSTEMTIME_, *PSYSTEMTIME_, *LPSYSTEMTIME_; - -#if BOOST_PLAT_WINDOWS_DESKTOP -using ::GetTickCount; -#endif -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_WIN6 -using ::GetTickCount64; -#endif - -BOOST_FORCEINLINE VOID_ GetSystemTime(LPSYSTEMTIME_ lpSystemTime) -{ - ::GetSystemTime(reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime)); -} - -#if defined( BOOST_HAS_GETSYSTEMTIMEASFILETIME ) -BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(LPFILETIME_ lpSystemTimeAsFileTime) -{ - ::GetSystemTimeAsFileTime(reinterpret_cast< ::_FILETIME* >(lpSystemTimeAsFileTime)); -} -#else -// Windows CE does not define GetSystemTimeAsFileTime -BOOST_FORCEINLINE VOID_ GetSystemTimeAsFileTime(FILETIME_* lpFileTime) -{ - boost::detail::winapi::SYSTEMTIME_ st; - boost::detail::winapi::GetSystemTime(&st); - boost::detail::winapi::SystemTimeToFileTime(&st, lpFileTime); -} -#endif - -BOOST_FORCEINLINE BOOL_ SystemTimeToFileTime(const SYSTEMTIME_* lpSystemTime, FILETIME_* lpFileTime) -{ - return ::SystemTimeToFileTime(reinterpret_cast< const ::_SYSTEMTIME* >(lpSystemTime), reinterpret_cast< ::_FILETIME* >(lpFileTime)); -} - -BOOST_FORCEINLINE BOOL_ FileTimeToSystemTime(const FILETIME_* lpFileTime, SYSTEMTIME_* lpSystemTime) -{ - return ::FileTimeToSystemTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_SYSTEMTIME* >(lpSystemTime)); -} - -#if BOOST_PLAT_WINDOWS_DESKTOP -BOOST_FORCEINLINE BOOL_ FileTimeToLocalFileTime(const FILETIME_* lpFileTime, FILETIME_* lpLocalFileTime) -{ - return ::FileTimeToLocalFileTime(reinterpret_cast< const ::_FILETIME* >(lpFileTime), reinterpret_cast< ::_FILETIME* >(lpLocalFileTime)); -} - -BOOST_FORCEINLINE BOOL_ LocalFileTimeToFileTime(const FILETIME_* lpLocalFileTime, FILETIME_* lpFileTime) -{ - return ::LocalFileTimeToFileTime(reinterpret_cast< const ::_FILETIME* >(lpLocalFileTime), reinterpret_cast< ::_FILETIME* >(lpFileTime)); -} -#endif - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_TIME_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/timers.hpp b/lib/3rdParty/boost/boost/detail/winapi/timers.hpp deleted file mode 100644 index c3bf82610..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/timers.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// timers.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_TIMERS_HPP -#define BOOST_DETAIL_WINAPI_TIMERS_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -QueryPerformanceCounter(::_LARGE_INTEGER* lpPerformanceCount); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -QueryPerformanceFrequency(::_LARGE_INTEGER* lpFrequency); -} -#endif - - -namespace boost { -namespace detail { -namespace winapi { - -BOOST_FORCEINLINE BOOL_ QueryPerformanceCounter(LARGE_INTEGER_* lpPerformanceCount) -{ - return ::QueryPerformanceCounter(reinterpret_cast< ::_LARGE_INTEGER* >(lpPerformanceCount)); -} - -BOOST_FORCEINLINE BOOL_ QueryPerformanceFrequency(LARGE_INTEGER_* lpFrequency) -{ - return ::QueryPerformanceFrequency(reinterpret_cast< ::_LARGE_INTEGER* >(lpFrequency)); -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_TIMERS_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/tls.hpp b/lib/3rdParty/boost/boost/detail/winapi/tls.hpp deleted file mode 100644 index bcdd7dc97..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/tls.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// tls.hpp --------------------------------------------------------------// - -// Copyright 2013 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_TLS_HPP -#define BOOST_DETAIL_WINAPI_TLS_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -#if !defined( UNDER_CE ) -// Windows CE define TlsAlloc and TlsFree as inline functions in kfuncs.h -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -TlsAlloc(BOOST_DETAIL_WINAPI_VOID); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -TlsFree(boost::detail::winapi::DWORD_ dwTlsIndex); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::LPVOID_ WINAPI -TlsGetValue(boost::detail::winapi::DWORD_ dwTlsIndex); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -TlsSetValue( - boost::detail::winapi::DWORD_ dwTlsIndex, - boost::detail::winapi::LPVOID_ lpTlsValue); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -using ::TlsAlloc; -using ::TlsFree; -using ::TlsGetValue; -using ::TlsSetValue; - -#if defined( BOOST_USE_WINDOWS_H ) -const DWORD_ TLS_OUT_OF_INDEXES_ = TLS_OUT_OF_INDEXES; -#else -const DWORD_ TLS_OUT_OF_INDEXES_ = 0xFFFFFFFF; -#endif - -const DWORD_ tls_out_of_indexes = TLS_OUT_OF_INDEXES_; - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_TLS_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/wait.hpp b/lib/3rdParty/boost/boost/detail/winapi/wait.hpp deleted file mode 100644 index bd20d4682..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/wait.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// wait.hpp --------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba -// Copyright 2015 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_WAIT_HPP -#define BOOST_DETAIL_WINAPI_WAIT_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -WaitForSingleObject( - boost::detail::winapi::HANDLE_ hHandle, - boost::detail::winapi::DWORD_ dwMilliseconds); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -WaitForMultipleObjects( - boost::detail::winapi::DWORD_ nCount, - boost::detail::winapi::HANDLE_ const* lpHandles, - boost::detail::winapi::BOOL_ bWaitAll, - boost::detail::winapi::DWORD_ dwMilliseconds); - -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 -BOOST_SYMBOL_IMPORT boost::detail::winapi::DWORD_ WINAPI -SignalObjectAndWait( - boost::detail::winapi::HANDLE_ hObjectToSignal, - boost::detail::winapi::HANDLE_ hObjectToWaitOn, - boost::detail::winapi::DWORD_ dwMilliseconds, - boost::detail::winapi::BOOL_ bAlertable); -#endif -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -using ::WaitForMultipleObjects; -using ::WaitForSingleObject; -#if BOOST_USE_WINAPI_VERSION >= BOOST_WINAPI_VERSION_NT4 -using ::SignalObjectAndWait; -#endif - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ INFINITE_ = INFINITE; -const DWORD_ WAIT_ABANDONED_ = WAIT_ABANDONED; -const DWORD_ WAIT_OBJECT_0_ = WAIT_OBJECT_0; -const DWORD_ WAIT_TIMEOUT_ = WAIT_TIMEOUT; -const DWORD_ WAIT_FAILED_ = WAIT_FAILED; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ INFINITE_ = (DWORD_)0xFFFFFFFF; -const DWORD_ WAIT_ABANDONED_ = 0x00000080L; -const DWORD_ WAIT_OBJECT_0_ = 0x00000000L; -const DWORD_ WAIT_TIMEOUT_ = 0x00000102L; -const DWORD_ WAIT_FAILED_ = (DWORD_)0xFFFFFFFF; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ infinite = INFINITE_; -const DWORD_ wait_abandoned = WAIT_ABANDONED_; -const DWORD_ wait_object_0 = WAIT_OBJECT_0_; -const DWORD_ wait_timeout = WAIT_TIMEOUT_; -const DWORD_ wait_failed = WAIT_FAILED_; - -const DWORD_ max_non_infinite_wait = (DWORD_)0xFFFFFFFE; - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_WAIT_HPP diff --git a/lib/3rdParty/boost/boost/detail/winapi/waitable_timer.hpp b/lib/3rdParty/boost/boost/detail/winapi/waitable_timer.hpp deleted file mode 100644 index c2bf6d5cf..000000000 --- a/lib/3rdParty/boost/boost/detail/winapi/waitable_timer.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// waitable_timer.hpp --------------------------------------------------------------// - -// Copyright 2013 Andrey Semashev - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - - -#ifndef BOOST_DETAIL_WINAPI_WAITABLE_TIMER_HPP -#define BOOST_DETAIL_WINAPI_WAITABLE_TIMER_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined( BOOST_USE_WINDOWS_H ) -extern "C" { -typedef boost::detail::winapi::VOID_ -(WINAPI *PTIMERAPCROUTINE)( - boost::detail::winapi::LPVOID_ lpArgToCompletionRoutine, - boost::detail::winapi::DWORD_ dwTimerLowValue, - boost::detail::winapi::DWORD_ dwTimerHighValue); - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateWaitableTimerA( - ::_SECURITY_ATTRIBUTES* lpTimerAttributes, - boost::detail::winapi::BOOL_ bManualReset, - boost::detail::winapi::LPCSTR_ lpTimerName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenWaitableTimerA( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCSTR_ lpTimerName); -#endif - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -CreateWaitableTimerW( - ::_SECURITY_ATTRIBUTES* lpTimerAttributes, - boost::detail::winapi::BOOL_ bManualReset, - boost::detail::winapi::LPCWSTR_ lpTimerName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::HANDLE_ WINAPI -OpenWaitableTimerW( - boost::detail::winapi::DWORD_ dwDesiredAccess, - boost::detail::winapi::BOOL_ bInheritHandle, - boost::detail::winapi::LPCWSTR_ lpTimerName); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -SetWaitableTimer( - boost::detail::winapi::HANDLE_ hTimer, - const ::_LARGE_INTEGER* lpDueTime, - boost::detail::winapi::LONG_ lPeriod, - PTIMERAPCROUTINE pfnCompletionRoutine, - boost::detail::winapi::LPVOID_ lpArgToCompletionRoutine, - boost::detail::winapi::BOOL_ fResume); - -BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI -CancelWaitableTimer(boost::detail::winapi::HANDLE_ hTimer); -} -#endif - -namespace boost { -namespace detail { -namespace winapi { - -typedef ::PTIMERAPCROUTINE PTIMERAPCROUTINE_; - -#if !defined( BOOST_NO_ANSI_APIS ) -using ::OpenWaitableTimerA; -#endif -using ::OpenWaitableTimerW; -using ::CancelWaitableTimer; - -#if defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ TIMER_ALL_ACCESS_ = TIMER_ALL_ACCESS; -const DWORD_ TIMER_MODIFY_STATE_ = TIMER_MODIFY_STATE; -const DWORD_ TIMER_QUERY_STATE_ = TIMER_QUERY_STATE; - -#else // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ TIMER_ALL_ACCESS_ = 0x001F0003; -const DWORD_ TIMER_MODIFY_STATE_ = 0x00000002; -const DWORD_ TIMER_QUERY_STATE_ = 0x00000001; - -#endif // defined( BOOST_USE_WINDOWS_H ) - -const DWORD_ timer_all_access = TIMER_ALL_ACCESS_; -const DWORD_ timer_modify_state = TIMER_MODIFY_STATE_; -const DWORD_ timer_query_state = TIMER_QUERY_STATE_; - - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ CreateWaitableTimerA(PSECURITY_ATTRIBUTES_ lpTimerAttributes, BOOL_ bManualReset, LPCSTR_ lpTimerName) -{ - return ::CreateWaitableTimerA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpTimerAttributes), bManualReset, lpTimerName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ CreateWaitableTimerW(PSECURITY_ATTRIBUTES_ lpTimerAttributes, BOOL_ bManualReset, LPCWSTR_ lpTimerName) -{ - return ::CreateWaitableTimerW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpTimerAttributes), bManualReset, lpTimerName); -} - -BOOST_FORCEINLINE BOOL_ SetWaitableTimer( - HANDLE_ hTimer, - const LARGE_INTEGER_* lpDueTime, - LONG_ lPeriod, - PTIMERAPCROUTINE_ pfnCompletionRoutine, - LPVOID_ lpArgToCompletionRoutine, - BOOL_ fResume) -{ - return ::SetWaitableTimer(hTimer, reinterpret_cast< const ::_LARGE_INTEGER* >(lpDueTime), lPeriod, pfnCompletionRoutine, lpArgToCompletionRoutine, fResume); -} - -#if !defined( BOOST_NO_ANSI_APIS ) -BOOST_FORCEINLINE HANDLE_ create_waitable_timer(PSECURITY_ATTRIBUTES_ lpTimerAttributes, BOOL_ bManualReset, LPCSTR_ lpTimerName) -{ - return ::CreateWaitableTimerA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpTimerAttributes), bManualReset, lpTimerName); -} -#endif - -BOOST_FORCEINLINE HANDLE_ create_waitable_timer(PSECURITY_ATTRIBUTES_ lpTimerAttributes, BOOL_ bManualReset, LPCWSTR_ lpTimerName) -{ - return ::CreateWaitableTimerW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpTimerAttributes), bManualReset, lpTimerName); -} - -BOOST_FORCEINLINE HANDLE_ create_anonymous_waitable_timer(PSECURITY_ATTRIBUTES_ lpTimerAttributes, BOOL_ bManualReset) -{ -#ifdef BOOST_NO_ANSI_APIS - return ::CreateWaitableTimerW(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpTimerAttributes), bManualReset, 0); -#else - return ::CreateWaitableTimerA(reinterpret_cast< ::_SECURITY_ATTRIBUTES* >(lpTimerAttributes), bManualReset, 0); -#endif -} - -} -} -} - -#endif // BOOST_DETAIL_WINAPI_WAITABLE_TIMER_HPP diff --git a/lib/3rdParty/boost/boost/detail/workaround.hpp b/lib/3rdParty/boost/boost/detail/workaround.hpp deleted file mode 100644 index 40b3423b3..000000000 --- a/lib/3rdParty/boost/boost/detail/workaround.hpp +++ /dev/null @@ -1,267 +0,0 @@ -// 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 WORKAROUND_DWA2002126_HPP -# define WORKAROUND_DWA2002126_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 __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 // WORKAROUND_DWA2002126_HPP diff --git a/lib/3rdParty/boost/boost/exception/N3757.hpp b/lib/3rdParty/boost/boost/exception/N3757.hpp deleted file mode 100644 index 23b06066b..000000000 --- a/lib/3rdParty/boost/boost/exception/N3757.hpp +++ /dev/null @@ -1,46 +0,0 @@ -//Copyright (c) 2006-2013 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_9011016A11A711E3B46CD9FA6088709B -#define UUID_9011016A11A711E3B46CD9FA6088709B -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include - -namespace -boost - { - //Here we're using the boost::error_info machinery to store the info in the exception - //object. Within the context of N3757, this is strictly an implementation detail. - - template - inline - void - exception:: - set( typename Tag::type const & v ) - { - exception_detail::set_info(*this,error_info(v)); - } - - template - inline - typename Tag::type const * - exception:: - get() const - { - return get_error_info >(*this); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/all.hpp b/lib/3rdParty/boost/boost/exception/all.hpp deleted file mode 100644 index 32eb15051..000000000 --- a/lib/3rdParty/boost/boost/exception/all.hpp +++ /dev/null @@ -1,36 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_316FDA946C0D11DEA9CBAE5255D89593 -#define UUID_316FDA946C0D11DEA9CBAE5255D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifndef BOOST_NO_EXCEPTIONS -#include -#include -#endif - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/current_exception_cast.hpp b/lib/3rdParty/boost/boost/exception/current_exception_cast.hpp deleted file mode 100644 index 5d81f00b0..000000000 --- a/lib/3rdParty/boost/boost/exception/current_exception_cast.hpp +++ /dev/null @@ -1,43 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_7E83C166200811DE885E826156D89593 -#define UUID_7E83C166200811DE885E826156D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -namespace -boost - { - template - inline - E * - current_exception_cast() - { - try - { - throw; - } - catch( - E & e ) - { - return &e; - } - catch( - ...) - { - return 0; - } - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/clone_current_exception.hpp b/lib/3rdParty/boost/boost/exception/detail/clone_current_exception.hpp deleted file mode 100644 index 6fc137473..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/clone_current_exception.hpp +++ /dev/null @@ -1,56 +0,0 @@ -//Copyright (c) 2006-2013 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_81522C0EB56511DFAB613DB0DFD72085 -#define UUID_81522C0EB56511DFAB613DB0DFD72085 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#ifdef BOOST_NO_EXCEPTIONS -# error This header requires exception handling to be enabled. -#endif - -namespace -boost - { - namespace - exception_detail - { - class clone_base; - -#ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR - int clone_current_exception_non_intrusive( clone_base const * & cloned ); -#endif - - namespace - clone_current_exception_result - { - int const success=0; - int const bad_alloc=1; - int const bad_exception=2; - int const not_supported=3; - } - - inline - int - clone_current_exception( clone_base const * & cloned ) - { -#ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR - return clone_current_exception_non_intrusive(cloned); -#else - return clone_current_exception_result::not_supported; -#endif - } - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/error_info_impl.hpp b/lib/3rdParty/boost/boost/exception/detail/error_info_impl.hpp deleted file mode 100644 index ecd086dd8..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/error_info_impl.hpp +++ /dev/null @@ -1,85 +0,0 @@ -//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_CE6983AC753411DDA764247956D89593 -#define UUID_CE6983AC753411DDA764247956D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include - -namespace -boost - { - namespace - exception_detail - { - class - error_info_base - { - public: - - virtual std::string name_value_string() const = 0; - - protected: - - virtual - ~error_info_base() throw() - { - } - }; - } - - template - class - error_info: - public exception_detail::error_info_base - { - public: - - typedef T value_type; - - error_info( value_type const & value ); -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - error_info( error_info const & ); - error_info( value_type && value ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(value)))); - error_info( error_info && x ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_)))); -#endif - ~error_info() throw(); - - value_type const & - value() const - { - return value_; - } - - value_type & - value() - { - return value_; - } - - private: - error_info & operator=( error_info const & ); -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - error_info & operator=( error_info && x ); -#endif - - std::string name_value_string() const; - - value_type value_; - }; - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/exception_ptr.hpp b/lib/3rdParty/boost/boost/exception/detail/exception_ptr.hpp deleted file mode 100644 index cac64e6ab..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/exception_ptr.hpp +++ /dev/null @@ -1,513 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_618474C2DE1511DEB74A388C56D89593 -#define UUID_618474C2DE1511DEB74A388C56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#ifdef BOOST_NO_EXCEPTIONS -#error This header requires exception handling to be enabled. -#endif -#include -#include -#include -#include -#include -#ifndef BOOST_NO_RTTI -#include -#endif -#include -#include -#include -#include -#include - -namespace -boost - { - class exception_ptr; - BOOST_NORETURN void rethrow_exception( exception_ptr const & ); - exception_ptr current_exception(); - - class - exception_ptr - { - typedef boost::shared_ptr impl; - impl ptr_; - friend void rethrow_exception( exception_ptr const & ); - typedef exception_detail::clone_base const * (impl::*unspecified_bool_type)() const; - public: - exception_ptr() - { - } - explicit - exception_ptr( impl const & ptr ): - ptr_(ptr) - { - } - bool - operator==( exception_ptr const & other ) const - { - return ptr_==other.ptr_; - } - bool - operator!=( exception_ptr const & other ) const - { - return ptr_!=other.ptr_; - } - operator unspecified_bool_type() const - { - return ptr_?&impl::get:0; - } - }; - - template - inline - exception_ptr - copy_exception( T const & e ) - { - try - { - throw enable_current_exception(e); - } - catch( - ... ) - { - return current_exception(); - } - } - -#ifndef BOOST_NO_RTTI - typedef error_info original_exception_type; - - inline - std::string - to_string( original_exception_type const & x ) - { - return core::demangle(x.value()->name()); - } -#endif - - namespace - exception_detail - { - struct - bad_alloc_: - boost::exception, - std::bad_alloc - { - ~bad_alloc_() throw() { } - }; - - struct - bad_exception_: - boost::exception, - std::bad_exception - { - ~bad_exception_() throw() { } - }; - - template - exception_ptr - get_static_exception_object() - { - Exception ba; - exception_detail::clone_impl c(ba); -#ifndef BOOST_EXCEPTION_DISABLE - c << - throw_function(BOOST_CURRENT_FUNCTION) << - throw_file(__FILE__) << - throw_line(__LINE__); -#endif - static exception_ptr ep(shared_ptr(new exception_detail::clone_impl(c))); - return ep; - } - - template - struct - exception_ptr_static_exception_object - { - static exception_ptr const e; - }; - - template - exception_ptr const - exception_ptr_static_exception_object:: - e = get_static_exception_object(); - } - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class - unknown_exception: - public boost::exception, - public std::exception - { - public: - - unknown_exception() - { - } - - explicit - unknown_exception( std::exception const & e ) - { - add_original_type(e); - } - - explicit - unknown_exception( boost::exception const & e ): - boost::exception(e) - { - add_original_type(e); - } - - ~unknown_exception() throw() - { - } - - private: - - template - void - add_original_type( E const & e ) - { -#ifndef BOOST_NO_RTTI - (*this) << original_exception_type(&typeid(e)); -#endif - } - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - namespace - exception_detail - { - template - class - current_exception_std_exception_wrapper: - public T, - public boost::exception - { - public: - - explicit - current_exception_std_exception_wrapper( T const & e1 ): - T(e1) - { - add_original_type(e1); - } - - current_exception_std_exception_wrapper( T const & e1, boost::exception const & e2 ): - T(e1), - boost::exception(e2) - { - add_original_type(e1); - } - - ~current_exception_std_exception_wrapper() throw() - { - } - - private: - - template - void - add_original_type( E const & e ) - { -#ifndef BOOST_NO_RTTI - (*this) << original_exception_type(&typeid(e)); -#endif - } - }; - -#ifdef BOOST_NO_RTTI - template - boost::exception const * - get_boost_exception( T const * ) - { - try - { - throw; - } - catch( - boost::exception & x ) - { - return &x; - } - catch(...) - { - return 0; - } - } -#else - template - boost::exception const * - get_boost_exception( T const * x ) - { - return dynamic_cast(x); - } -#endif - - template - inline - exception_ptr - current_exception_std_exception( T const & e1 ) - { - if( boost::exception const * e2 = get_boost_exception(&e1) ) - return boost::copy_exception(current_exception_std_exception_wrapper(e1,*e2)); - else - return boost::copy_exception(current_exception_std_exception_wrapper(e1)); - } - - inline - exception_ptr - current_exception_unknown_exception() - { - return boost::copy_exception(unknown_exception()); - } - - inline - exception_ptr - current_exception_unknown_boost_exception( boost::exception const & e ) - { - return boost::copy_exception(unknown_exception(e)); - } - - inline - exception_ptr - current_exception_unknown_std_exception( std::exception const & e ) - { - if( boost::exception const * be = get_boost_exception(&e) ) - return current_exception_unknown_boost_exception(*be); - else - return boost::copy_exception(unknown_exception(e)); - } - - inline - exception_ptr - current_exception_impl() - { - exception_detail::clone_base const * e=0; - switch( - exception_detail::clone_current_exception(e) ) - { - case exception_detail::clone_current_exception_result:: - success: - { - BOOST_ASSERT(e!=0); - return exception_ptr(shared_ptr(e)); - } - case exception_detail::clone_current_exception_result:: - bad_alloc: - { - BOOST_ASSERT(!e); - return exception_detail::exception_ptr_static_exception_object::e; - } - case exception_detail::clone_current_exception_result:: - bad_exception: - { - BOOST_ASSERT(!e); - return exception_detail::exception_ptr_static_exception_object::e; - } - default: - BOOST_ASSERT(0); - case exception_detail::clone_current_exception_result:: - not_supported: - { - BOOST_ASSERT(!e); - try - { - throw; - } - catch( - exception_detail::clone_base & e ) - { - return exception_ptr(shared_ptr(e.clone())); - } - catch( - std::domain_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::invalid_argument & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::length_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::out_of_range & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::logic_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::range_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::overflow_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::underflow_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::ios_base::failure & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::runtime_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::bad_alloc & e ) - { - return exception_detail::current_exception_std_exception(e); - } -#ifndef BOOST_NO_TYPEID - catch( - std::bad_cast & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::bad_typeid & e ) - { - return exception_detail::current_exception_std_exception(e); - } -#endif - catch( - std::bad_exception & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::exception & e ) - { - return exception_detail::current_exception_unknown_std_exception(e); - } - catch( - boost::exception & e ) - { - return exception_detail::current_exception_unknown_boost_exception(e); - } - catch( - ... ) - { - return exception_detail::current_exception_unknown_exception(); - } - } - } - } - } - - inline - exception_ptr - current_exception() - { - exception_ptr ret; - try - { - ret=exception_detail::current_exception_impl(); - } - catch( - std::bad_alloc & ) - { - ret=exception_detail::exception_ptr_static_exception_object::e; - } - catch( - ... ) - { - ret=exception_detail::exception_ptr_static_exception_object::e; - } - BOOST_ASSERT(ret); - return ret; - } - - BOOST_NORETURN - inline - void - rethrow_exception( exception_ptr const & p ) - { - BOOST_ASSERT(p); - p.ptr_->rethrow(); - BOOST_ASSERT(0); - #if defined(UNDER_CE) - // some CE platforms don't define ::abort() - exit(-1); - #else - abort(); - #endif - } - - inline - std::string - diagnostic_information( exception_ptr const & p, bool verbose=true ) - { - if( p ) - try - { - rethrow_exception(p); - } - catch( - ... ) - { - return current_exception_diagnostic_information(verbose); - } - return ""; - } - - inline - std::string - to_string( exception_ptr const & p ) - { - std::string s='\n'+diagnostic_information(p); - std::string padding(" "); - std::string r; - bool f=false; - for( std::string::const_iterator i=s.begin(),e=s.end(); i!=e; ++i ) - { - if( f ) - r+=padding; - char c=*i; - r+=c; - f=(c=='\n'); - } - return r; - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/is_output_streamable.hpp b/lib/3rdParty/boost/boost/exception/detail/is_output_streamable.hpp deleted file mode 100644 index 847f3484b..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/is_output_streamable.hpp +++ /dev/null @@ -1,60 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_898984B4076411DD973EDFA055D89593 -#define UUID_898984B4076411DD973EDFA055D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include - -namespace -boost - { - namespace - to_string_detail - { - struct - partial_ordering_helper1 - { - template - partial_ordering_helper1( std::basic_ostream & ); - }; - - struct - partial_ordering_helper2 - { - template - partial_ordering_helper2( T const & ); - }; - - char operator<<( partial_ordering_helper1, partial_ordering_helper2 ); - - template - struct - is_output_streamable_impl - { - static std::basic_ostream & f(); - static T const & g(); - enum e { value=1!=(sizeof(f()< > - struct - is_output_streamable - { - enum e { value=to_string_detail::is_output_streamable_impl::value }; - }; - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/object_hex_dump.hpp b/lib/3rdParty/boost/boost/exception/detail/object_hex_dump.hpp deleted file mode 100644 index 53c8bf6f3..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/object_hex_dump.hpp +++ /dev/null @@ -1,50 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_6F463AC838DF11DDA3E6909F56D89593 -#define UUID_6F463AC838DF11DDA3E6909F56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include -#include - -namespace -boost - { - namespace - exception_detail - { - template - inline - std::string - object_hex_dump( T const & x, std::size_t max_size=16 ) - { - std::ostringstream s; - s << "type: " << type_name() << ", size: " << sizeof(T) << ", dump: "; - std::size_t n=sizeof(T)>max_size?max_size:sizeof(T); - s.fill('0'); - s.width(2); - unsigned char const * b=reinterpret_cast(&x); - s << std::setw(2) << std::hex << (unsigned int)*b; - for( unsigned char const * e=b+n; ++b!=e; ) - s << " " << std::setw(2) << std::hex << (unsigned int)*b; - return s.str(); - } - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/shared_ptr.hpp b/lib/3rdParty/boost/boost/exception/detail/shared_ptr.hpp deleted file mode 100644 index 51febe8c8..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/shared_ptr.hpp +++ /dev/null @@ -1,17 +0,0 @@ -//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_837060E885AF11E68DA91D15E31AC075 -#define UUID_837060E885AF11E68DA91D15E31AC075 - -#ifdef BOOST_EXCEPTION_MINI_BOOST -#include -namespace boost { namespace exception_detail { using std::shared_ptr; } } -#else -#include -namespace boost { namespace exception_detail { using boost::shared_ptr; } } -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/exception/detail/type_info.hpp b/lib/3rdParty/boost/boost/exception/detail/type_info.hpp deleted file mode 100644 index b8c7d48ba..000000000 --- a/lib/3rdParty/boost/boost/exception/detail/type_info.hpp +++ /dev/null @@ -1,81 +0,0 @@ -//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_C3E1741C754311DDB2834CCA55D89593 -#define UUID_C3E1741C754311DDB2834CCA55D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include - -namespace -boost - { - template - inline - std::string - tag_type_name() - { -#ifdef BOOST_NO_TYPEID - return BOOST_CURRENT_FUNCTION; -#else - return core::demangle(typeid(T*).name()); -#endif - } - - template - inline - std::string - type_name() - { -#ifdef BOOST_NO_TYPEID - return BOOST_CURRENT_FUNCTION; -#else - return core::demangle(typeid(T).name()); -#endif - } - - namespace - exception_detail - { - struct - type_info_ - { - core::typeinfo const * type_; - - explicit - type_info_( core::typeinfo const & type ): - type_(&type) - { - } - - friend - bool - operator<( type_info_ const & a, type_info_ const & b ) - { - return 0!=(a.type_->before(*b.type_)); - } - }; - } - } - -#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::boost::exception_detail::type_info_(BOOST_CORE_TYPEID(T)) - -#ifndef BOOST_NO_RTTI -#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::boost::exception_detail::type_info_(typeid(x)) -#endif - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/diagnostic_information.hpp b/lib/3rdParty/boost/boost/exception/diagnostic_information.hpp deleted file mode 100644 index 305e8edd6..000000000 --- a/lib/3rdParty/boost/boost/exception/diagnostic_information.hpp +++ /dev/null @@ -1,201 +0,0 @@ -//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_0552D49838DD11DD90146B8956D89593 -#define UUID_0552D49838DD11DD90146B8956D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#ifndef BOOST_NO_RTTI -#include -#endif -#include -#include -#include - -#ifndef BOOST_NO_EXCEPTIONS -#include -namespace -boost - { - namespace - exception_detail - { - std::string diagnostic_information_impl( boost::exception const *, std::exception const *, bool, bool ); - } - - inline - std::string - current_exception_diagnostic_information( bool verbose=true) - { - boost::exception const * be=current_exception_cast(); - std::exception const * se=current_exception_cast(); - if( be || se ) - return exception_detail::diagnostic_information_impl(be,se,true,verbose); - else - return "No diagnostic information available."; - } - } -#endif - -namespace -boost - { - namespace - exception_detail - { - inline - exception const * - get_boost_exception( exception const * e ) - { - return e; - } - - inline - exception const * - get_boost_exception( ... ) - { - return 0; - } - - inline - std::exception const * - get_std_exception( std::exception const * e ) - { - return e; - } - - inline - std::exception const * - get_std_exception( ... ) - { - return 0; - } - - inline - char const * - get_diagnostic_information( exception const & x, char const * header ) - { -#ifndef BOOST_NO_EXCEPTIONS - try - { -#endif - error_info_container * c=x.data_.get(); - if( !c ) - x.data_.adopt(c=new exception_detail::error_info_container_impl); - char const * di=c->diagnostic_information(header); - BOOST_ASSERT(di!=0); - return di; -#ifndef BOOST_NO_EXCEPTIONS - } - catch(...) - { - return 0; - } -#endif - } - - inline - std::string - diagnostic_information_impl( boost::exception const * be, std::exception const * se, bool with_what, bool verbose ) - { - if( !be && !se ) - return "Unknown exception."; -#ifndef BOOST_NO_RTTI - if( !be ) - be=dynamic_cast(se); - if( !se ) - se=dynamic_cast(be); -#endif - char const * wh=0; - if( with_what && se ) - { - wh=se->what(); - if( be && exception_detail::get_diagnostic_information(*be,0)==wh ) - return wh; - } - std::ostringstream tmp; - if( be && verbose ) - { - char const * const * f=get_error_info(*be); - int const * l=get_error_info(*be); - char const * const * fn=get_error_info(*be); - if( !f && !l && !fn ) - tmp << "Throw location unknown (consider using BOOST_THROW_EXCEPTION)\n"; - else - { - if( f ) - { - tmp << *f; - if( int const * l=get_error_info(*be) ) - tmp << '(' << *l << "): "; - } - tmp << "Throw in function "; - if( char const * const * fn=get_error_info(*be) ) - tmp << *fn; - else - tmp << "(unknown)"; - tmp << '\n'; - } - } -#ifndef BOOST_NO_RTTI - if ( verbose ) - tmp << std::string("Dynamic exception type: ") << - core::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n'; -#endif - if( with_what && se && verbose ) - tmp << "std::exception::what: " << wh << '\n'; - if( be ) - if( char const * s=exception_detail::get_diagnostic_information(*be,tmp.str().c_str()) ) - if( *s ) - return std::string(s); - return tmp.str(); - } - } - - template - std::string - diagnostic_information( T const & e, bool verbose=true ) - { - return exception_detail::diagnostic_information_impl(exception_detail::get_boost_exception(&e),exception_detail::get_std_exception(&e),true,verbose); - } - - inline - char const * - diagnostic_information_what( exception const & e, bool verbose=true ) throw() - { - char const * w=0; -#ifndef BOOST_NO_EXCEPTIONS - try - { -#endif - (void) exception_detail::diagnostic_information_impl(&e,0,false,verbose); - if( char const * di=exception_detail::get_diagnostic_information(e,0) ) - return di; - else - return "Failed to produce boost::diagnostic_information_what()"; -#ifndef BOOST_NO_EXCEPTIONS - } - catch( - ... ) - { - } -#endif - return w; - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/enable_current_exception.hpp b/lib/3rdParty/boost/boost/exception/enable_current_exception.hpp deleted file mode 100644 index 988105378..000000000 --- a/lib/3rdParty/boost/boost/exception/enable_current_exception.hpp +++ /dev/null @@ -1,6 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include diff --git a/lib/3rdParty/boost/boost/exception/enable_error_info.hpp b/lib/3rdParty/boost/boost/exception/enable_error_info.hpp deleted file mode 100644 index 988105378..000000000 --- a/lib/3rdParty/boost/boost/exception/enable_error_info.hpp +++ /dev/null @@ -1,6 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include diff --git a/lib/3rdParty/boost/boost/exception/errinfo_api_function.hpp b/lib/3rdParty/boost/boost/exception/errinfo_api_function.hpp deleted file mode 100644 index 0cbbdb90c..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_api_function.hpp +++ /dev/null @@ -1,22 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_DDFBB4546C1211DEA4659E9055D89593 -#define UUID_DDFBB4546C1211DEA4659E9055D89593 - -#include - -namespace -boost - { - //Usage hint: - //if( api_function(....)!=0 ) - // BOOST_THROW_EXCEPTION( - // failure() << - // errinfo_api_function("api_function") ); - typedef error_info errinfo_api_function; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_at_line.hpp b/lib/3rdParty/boost/boost/exception/errinfo_at_line.hpp deleted file mode 100644 index cbd5ccefb..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_at_line.hpp +++ /dev/null @@ -1,18 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_E7255CE26C1211DE85800C9155D89593 -#define UUID_E7255CE26C1211DE85800C9155D89593 - -namespace -boost - { - template class error_info; - - //Use with parsing errors exceptions, for example in a XML file parser. - typedef error_info errinfo_at_line; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_errno.hpp b/lib/3rdParty/boost/boost/exception/errinfo_errno.hpp deleted file mode 100644 index de44e1715..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_errno.hpp +++ /dev/null @@ -1,45 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_F0EE17BE6C1211DE87FF459155D89593 -#define UUID_F0EE17BE6C1211DE87FF459155D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#pragma warning(disable:4996) -#endif - -#include -#include -#include - -namespace -boost - { - typedef error_info errinfo_errno; - - //Usage hint: - //if( c_function(....)!=0 ) - // BOOST_THROW_EXCEPTION( - // failure() << - // errinfo_errno(errno) << - // errinfo_api_function("c_function") ); - inline - std::string - to_string( errinfo_errno const & e ) - { - std::ostringstream tmp; - int v=e.value(); - tmp << '[' << error_info_name(e) << "] = " << v << ", \"" << strerror(v) << "\"\n"; - return tmp.str(); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_file_handle.hpp b/lib/3rdParty/boost/boost/exception/errinfo_file_handle.hpp deleted file mode 100644 index 8e6cff8fd..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_file_handle.hpp +++ /dev/null @@ -1,20 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_F79E6EE26C1211DEB26E929155D89593 -#define UUID_F79E6EE26C1211DEB26E929155D89593 - -#include - -namespace -boost - { - template class weak_ptr; - template class error_info; - - typedef error_info > errinfo_file_handle; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_file_name.hpp b/lib/3rdParty/boost/boost/exception/errinfo_file_name.hpp deleted file mode 100644 index d3cce4d35..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_file_name.hpp +++ /dev/null @@ -1,26 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_FEE5120A6C1211DE94E8BC9155D89593 -#define UUID_FEE5120A6C1211DE94E8BC9155D89593 - -#include - -namespace -boost - { - template class error_info; - - //Usage hint: - //FILE * f=fopen(name,mode); - //if( !f ) - // BOOST_THROW_EXCEPTION( - // file_open_error() << - // errinfo_file_name(name) << - // errinfo_file_open_mode(mode) ); - typedef error_info errinfo_file_name; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_file_open_mode.hpp b/lib/3rdParty/boost/boost/exception/errinfo_file_open_mode.hpp deleted file mode 100644 index f4fba0d5c..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_file_open_mode.hpp +++ /dev/null @@ -1,26 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_056F1F266C1311DE8E74299255D89593 -#define UUID_056F1F266C1311DE8E74299255D89593 - -#include - -namespace -boost - { - template class error_info; - - //Usage hint: - //FILE * f=fopen(name,mode); - //if( !f ) - // BOOST_THROW_EXCEPTION( - // file_open_error() << - // errinfo_file_name(name) << - // errinfo_file_open_mode(mode) ); - typedef error_info errinfo_file_open_mode; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_nested_exception.hpp b/lib/3rdParty/boost/boost/exception/errinfo_nested_exception.hpp deleted file mode 100644 index c3299d147..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_nested_exception.hpp +++ /dev/null @@ -1,18 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_45CC9A82B77511DEB330FC4956D89593 -#define UUID_45CC9A82B77511DEB330FC4956D89593 - -namespace -boost - { - namespace exception_detail { class clone_base; } - template class error_info; - class exception_ptr; - typedef error_info errinfo_nested_exception; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/errinfo_type_info_name.hpp b/lib/3rdParty/boost/boost/exception/errinfo_type_info_name.hpp deleted file mode 100644 index 0b060e2e1..000000000 --- a/lib/3rdParty/boost/boost/exception/errinfo_type_info_name.hpp +++ /dev/null @@ -1,23 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_0E11109E6C1311DEB7EA649255D89593 -#define UUID_0E11109E6C1311DEB7EA649255D89593 - -#include - -namespace -boost - { - template class error_info; - - //Usage hint: - //BOOST_THROW_EXCEPTION( - // bad_type() << - // errinfo_type_info_name(typeid(x).name()) ); - typedef error_info errinfo_type_info_name; - } - -#endif diff --git a/lib/3rdParty/boost/boost/exception/error_info.hpp b/lib/3rdParty/boost/boost/exception/error_info.hpp deleted file mode 100644 index 03b3da8e3..000000000 --- a/lib/3rdParty/boost/boost/exception/error_info.hpp +++ /dev/null @@ -1,9 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_EE7ECCA0433B11E1923E37064924019B -#define UUID_EE7ECCA0433B11E1923E37064924019B -namespace boost { template class error_info; } -#endif diff --git a/lib/3rdParty/boost/boost/exception/exception.hpp b/lib/3rdParty/boost/boost/exception/exception.hpp deleted file mode 100644 index c0fdaf9e5..000000000 --- a/lib/3rdParty/boost/boost/exception/exception.hpp +++ /dev/null @@ -1,521 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_274DA366004E11DCB1DDFE2E56D89593 -#define UUID_274DA366004E11DCB1DDFE2E56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#ifdef BOOST_EXCEPTION_MINI_BOOST -#include -namespace boost { namespace exception_detail { using std::shared_ptr; } } -#else -namespace boost { template class shared_ptr; }; -namespace boost { namespace exception_detail { using boost::shared_ptr; } } -#endif - -namespace -boost - { - namespace - exception_detail - { - template - class - refcount_ptr - { - public: - - refcount_ptr(): - px_(0) - { - } - - ~refcount_ptr() - { - release(); - } - - refcount_ptr( refcount_ptr const & x ): - px_(x.px_) - { - add_ref(); - } - - refcount_ptr & - operator=( refcount_ptr const & x ) - { - adopt(x.px_); - return *this; - } - - void - adopt( T * px ) - { - release(); - px_=px; - add_ref(); - } - - T * - get() const - { - return px_; - } - - private: - - T * px_; - - void - add_ref() - { - if( px_ ) - px_->add_ref(); - } - - void - release() - { - if( px_ && px_->release() ) - px_=0; - } - }; - } - - //////////////////////////////////////////////////////////////////////// - - template - class error_info; - - typedef error_info throw_function; - typedef error_info throw_file; - typedef error_info throw_line; - - template <> - class - error_info - { - public: - typedef char const * value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <> - class - error_info - { - public: - typedef char const * value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <> - class - error_info - { - public: - typedef int value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class exception; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - namespace - exception_detail - { - class error_info_base; - struct type_info_; - - struct - error_info_container - { - virtual char const * diagnostic_information( char const * ) const = 0; - virtual shared_ptr get( type_info_ const & ) const = 0; - virtual void set( shared_ptr const &, type_info_ const & ) = 0; - virtual void add_ref() const = 0; - virtual bool release() const = 0; - virtual refcount_ptr clone() const = 0; - - protected: - - ~error_info_container() throw() - { - } - }; - - template - struct get_info; - - template <> - struct get_info; - - template <> - struct get_info; - - template <> - struct get_info; - - template - struct set_info_rv; - - template <> - struct set_info_rv; - - template <> - struct set_info_rv; - - template <> - struct set_info_rv; - - char const * get_diagnostic_information( exception const &, char const * ); - - void copy_boost_exception( exception *, exception const * ); - - template - E const & set_info( E const &, error_info const & ); - - template - E const & set_info( E const &, throw_function const & ); - - template - E const & set_info( E const &, throw_file const & ); - - template - E const & set_info( E const &, throw_line const & ); - } - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class - exception - { - // - public: - template void set( typename Tag::type const & ); - template typename Tag::type const * get() const; - // - - protected: - - exception(): - throw_function_(0), - throw_file_(0), - throw_line_(-1) - { - } - -#ifdef __HP_aCC - //On HP aCC, this protected copy constructor prevents throwing boost::exception. - //On all other platforms, the same effect is achieved by the pure virtual destructor. - exception( exception const & x ) throw(): - data_(x.data_), - throw_function_(x.throw_function_), - throw_file_(x.throw_file_), - throw_line_(x.throw_line_) - { - } -#endif - - virtual ~exception() throw() -#ifndef __HP_aCC - = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors. -#endif - ; - -#if (defined(__MWERKS__) && __MWERKS__<=0x3207) || (defined(_MSC_VER) && _MSC_VER<=1310) - public: -#else - private: - - template - friend E const & exception_detail::set_info( E const &, throw_function const & ); - - template - friend E const & exception_detail::set_info( E const &, throw_file const & ); - - template - friend E const & exception_detail::set_info( E const &, throw_line const & ); - - template - friend E const & exception_detail::set_info( E const &, error_info const & ); - - friend char const * exception_detail::get_diagnostic_information( exception const &, char const * ); - - template - friend struct exception_detail::get_info; - friend struct exception_detail::get_info; - friend struct exception_detail::get_info; - friend struct exception_detail::get_info; - template - friend struct exception_detail::set_info_rv; - friend struct exception_detail::set_info_rv; - friend struct exception_detail::set_info_rv; - friend struct exception_detail::set_info_rv; - friend void exception_detail::copy_boost_exception( exception *, exception const * ); -#endif - mutable exception_detail::refcount_ptr data_; - mutable char const * throw_function_; - mutable char const * throw_file_; - mutable int throw_line_; - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - inline - exception:: - ~exception() throw() - { - } - - namespace - exception_detail - { - template - E const & - set_info( E const & x, throw_function const & y ) - { - x.throw_function_=y.v_; - return x; - } - - template - E const & - set_info( E const & x, throw_file const & y ) - { - x.throw_file_=y.v_; - return x; - } - - template - E const & - set_info( E const & x, throw_line const & y ) - { - x.throw_line_=y.v_; - return x; - } - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - template - struct - error_info_injector: - public T, - public exception - { - explicit - error_info_injector( T const & x ): - T(x) - { - } - - ~error_info_injector() throw() - { - } - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - struct large_size { char c[256]; }; - large_size dispatch_boost_exception( exception const * ); - - struct small_size { }; - small_size dispatch_boost_exception( void const * ); - - template - struct enable_error_info_helper; - - template - struct - enable_error_info_helper - { - typedef T type; - }; - - template - struct - enable_error_info_helper - { - typedef error_info_injector type; - }; - - template - struct - enable_error_info_return_type - { - typedef typename enable_error_info_helper(0)))>::type type; - }; - } - - template - inline - typename - exception_detail::enable_error_info_return_type::type - enable_error_info( T const & x ) - { - typedef typename exception_detail::enable_error_info_return_type::type rt; - return rt(x); - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class - clone_base - { - public: - - virtual clone_base const * clone() const = 0; - virtual void rethrow() const = 0; - - virtual - ~clone_base() throw() - { - } - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - inline - void - copy_boost_exception( exception * a, exception const * b ) - { - refcount_ptr data; - if( error_info_container * d=b->data_.get() ) - data = d->clone(); - a->throw_file_ = b->throw_file_; - a->throw_line_ = b->throw_line_; - a->throw_function_ = b->throw_function_; - a->data_ = data; - } - - inline - void - copy_boost_exception( void *, void const * ) - { - } - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - template - class - clone_impl: - public T, - public virtual clone_base - { - struct clone_tag { }; - clone_impl( clone_impl const & x, clone_tag ): - T(x) - { - copy_boost_exception(this,&x); - } - - public: - - explicit - clone_impl( T const & x ): - T(x) - { - copy_boost_exception(this,&x); - } - - ~clone_impl() throw() - { - } - - private: - - clone_base const * - clone() const - { - return new clone_impl(*this,clone_tag()); - } - - void - rethrow() const - { - throw*this; - } - }; - } -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - template - inline - exception_detail::clone_impl - enable_current_exception( T const & x ) - { - return exception_detail::clone_impl(x); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/get_error_info.hpp b/lib/3rdParty/boost/boost/exception/get_error_info.hpp deleted file mode 100644 index 51a21ba89..000000000 --- a/lib/3rdParty/boost/boost/exception/get_error_info.hpp +++ /dev/null @@ -1,131 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_1A590226753311DD9E4CCF6156D89593 -#define UUID_1A590226753311DD9E4CCF6156D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include - -namespace -boost - { - namespace - exception_detail - { - template - struct - get_info - { - static - typename ErrorInfo::value_type * - get( exception const & x ) - { - if( exception_detail::error_info_container * c=x.data_.get() ) - if( shared_ptr eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) ) - { -#ifndef BOOST_NO_RTTI - BOOST_ASSERT( 0!=dynamic_cast(eib.get()) ); -#endif - ErrorInfo * w = static_cast(eib.get()); - return &w->value(); - } - return 0; - } - }; - - template <> - struct - get_info - { - static - char const * * - get( exception const & x ) - { - return x.throw_function_ ? &x.throw_function_ : 0; - } - }; - - template <> - struct - get_info - { - static - char const * * - get( exception const & x ) - { - return x.throw_file_ ? &x.throw_file_ : 0; - } - }; - - template <> - struct - get_info - { - static - int * - get( exception const & x ) - { - return x.throw_line_!=-1 ? &x.throw_line_ : 0; - } - }; - - template - struct - get_error_info_return_type - { - typedef R * type; - }; - - template - struct - get_error_info_return_type - { - typedef R const * type; - }; - } - -#ifdef BOOST_NO_RTTI - template - inline - typename ErrorInfo::value_type const * - get_error_info( boost::exception const & x ) - { - return exception_detail::get_info::get(x); - } - template - inline - typename ErrorInfo::value_type * - get_error_info( boost::exception & x ) - { - return exception_detail::get_info::get(x); - } -#else - template - inline - typename exception_detail::get_error_info_return_type::type - get_error_info( E & some_exception ) - { - if( exception const * x = dynamic_cast(&some_exception) ) - return exception_detail::get_info::get(*x); - else - return 0; - } -#endif - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/info.hpp b/lib/3rdParty/boost/boost/exception/info.hpp deleted file mode 100644 index f06df42aa..000000000 --- a/lib/3rdParty/boost/boost/exception/info.hpp +++ /dev/null @@ -1,311 +0,0 @@ -//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_8D22C4CA9CC811DCAA9133D256D89593 -#define UUID_8D22C4CA9CC811DCAA9133D256D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include -#include - -namespace -boost - { - template - inline - std::string - error_info_name( error_info const & x ) - { - return tag_type_name(); - } - - template - inline - std::string - to_string( error_info const & x ) - { - return '[' + error_info_name(x) + "] = " + to_string_stub(x.value()) + '\n'; - } - - template - inline - error_info:: - error_info( value_type const & value ): - value_(value) - { - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template - inline - error_info:: - error_info( error_info const & x ): - value_(x.value_) - { - } - template - inline - error_info:: - error_info( value_type && value ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(value)))): - value_(std::move(value)) - { - } - template - inline - error_info:: - error_info( error_info && x ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_)))): - value_(std::move(x.value_)) - { - } -#endif - - template - inline - error_info:: - ~error_info() throw() - { - } - - template - inline - std::string - error_info:: - name_value_string() const - { - return to_string_stub(*this); - } - - namespace - exception_detail - { - class - error_info_container_impl: - public error_info_container - { - public: - - error_info_container_impl(): - count_(0) - { - } - - ~error_info_container_impl() throw() - { - } - - void - set( shared_ptr const & x, type_info_ const & typeid_ ) - { - BOOST_ASSERT(x); - info_[typeid_] = x; - diagnostic_info_str_.clear(); - } - - shared_ptr - get( type_info_ const & ti ) const - { - error_info_map::const_iterator i=info_.find(ti); - if( info_.end()!=i ) - { - shared_ptr const & p = i->second; -#ifndef BOOST_NO_RTTI - BOOST_ASSERT( *BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_==*ti.type_ ); -#endif - return p; - } - return shared_ptr(); - } - - char const * - diagnostic_information( char const * header ) const - { - if( header ) - { - std::ostringstream tmp; - tmp << header; - for( error_info_map::const_iterator i=info_.begin(),end=info_.end(); i!=end; ++i ) - { - error_info_base const & x = *i->second; - tmp << x.name_value_string(); - } - tmp.str().swap(diagnostic_info_str_); - } - return diagnostic_info_str_.c_str(); - } - - private: - - friend class boost::exception; - - typedef std::map< type_info_, shared_ptr > error_info_map; - error_info_map info_; - mutable std::string diagnostic_info_str_; - mutable int count_; - - error_info_container_impl( error_info_container_impl const & ); - error_info_container_impl & operator=( error_info_container const & ); - - void - add_ref() const - { - ++count_; - } - - bool - release() const - { - if( --count_ ) - return false; - else - { - delete this; - return true; - } - } - - refcount_ptr - clone() const - { - refcount_ptr p; - error_info_container_impl * c=new error_info_container_impl; - p.adopt(c); - c->info_ = info_; - return p; - } - }; - - template - inline - E const & - set_info( E const & x, error_info const & v ) - { - typedef error_info error_info_tag_t; - shared_ptr p( new error_info_tag_t(v) ); - exception_detail::error_info_container * c=x.data_.get(); - if( !c ) - x.data_.adopt(c=new exception_detail::error_info_container_impl); - c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t)); - return x; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template - E const & set_info( E const &, error_info && ); - template - struct set_info_rv; - template - struct - set_info_rv > - { - template - friend E const & set_info( E const &, error_info && ); - template - static - E const & - set( E const & x, error_info && v ) - { - typedef error_info error_info_tag_t; - shared_ptr p( new error_info_tag_t(std::move(v)) ); - exception_detail::error_info_container * c=x.data_.get(); - if( !c ) - x.data_.adopt(c=new exception_detail::error_info_container_impl); - c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t)); - return x; - } - }; - template <> - struct - set_info_rv - { - template - friend E const & set_info( E const &, error_info && ); - template - static - E const & - set( E const & x, throw_function && y ) - { - x.throw_function_=y.v_; - return x; - } - }; - template <> - struct - set_info_rv - { - template - friend E const & set_info( E const &, error_info && ); - template - static - E const & - set( E const & x, throw_file && y ) - { - x.throw_file_=y.v_; - return x; - } - }; - template <> - struct - set_info_rv - { - template - friend E const & set_info( E const &, error_info && ); - template - static - E const & - set( E const & x, throw_line && y ) - { - x.throw_line_=y.v_; - return x; - } - }; - template - inline - E const & - set_info( E const & x, error_info && v ) - { - return set_info_rv >::template set(x,std::move(v)); - } -#endif - - template - struct - derives_boost_exception - { - enum e { value = (sizeof(dispatch_boost_exception((T*)0))==sizeof(large_size)) }; - }; - } - - template - inline - typename enable_if,E const &>::type - operator<<( E const & x, error_info const & v ) - { - return exception_detail::set_info(x,v); - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template - inline - typename enable_if,E const &>::type - operator<<( E const & x, error_info && v ) - { - return exception_detail::set_info(x,std::move(v)); - } -#endif - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/info_tuple.hpp b/lib/3rdParty/boost/boost/exception/info_tuple.hpp deleted file mode 100644 index 70154fd27..000000000 --- a/lib/3rdParty/boost/boost/exception/info_tuple.hpp +++ /dev/null @@ -1,100 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_63EE924290FB11DC87BB856555D89593 -#define UUID_63EE924290FB11DC87BB856555D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include - -namespace -boost - { - template < - class E > - inline - E const & - operator<<( - E const & x, - tuple< > const & v ) - { - return x; - } - - template < - class E, - class Tag1,class T1 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info > const & v ) - { - return x << v.template get<0>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info, - error_info > const & v ) - { - return x << v.template get<0>() << v.template get<1>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2, - class Tag3,class T3 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info, - error_info, - error_info > const & v ) - { - return x << v.template get<0>() << v.template get<1>() << v.template get<2>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2, - class Tag3,class T3, - class Tag4,class T4 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info, - error_info, - error_info, - error_info > const & v ) - { - return x << v.template get<0>() << v.template get<1>() << v.template get<2>() << v.template get<3>(); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/to_string.hpp b/lib/3rdParty/boost/boost/exception/to_string.hpp deleted file mode 100644 index 68541d2b8..000000000 --- a/lib/3rdParty/boost/boost/exception/to_string.hpp +++ /dev/null @@ -1,88 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_7E48761AD92811DC9011477D56D89593 -#define UUID_7E48761AD92811DC9011477D56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include - -namespace -boost - { - template - std::string to_string( std::pair const & ); - std::string to_string( std::exception const & ); - - namespace - to_string_detail - { - template - typename disable_if,char>::type to_string( T const & ); - using boost::to_string; - - template - struct has_to_string_impl; - - template - struct - has_to_string_impl - { - enum e { value=1 }; - }; - - template - struct - has_to_string_impl - { - static T const & f(); - enum e { value=1!=sizeof(to_string(f())) }; - }; - } - - template - inline - typename enable_if,std::string>::type - to_string( T const & x ) - { - std::ostringstream out; - out << x; - return out.str(); - } - - template - struct - has_to_string - { - enum e { value=to_string_detail::has_to_string_impl::value>::value }; - }; - - template - inline - std::string - to_string( std::pair const & x ) - { - return std::string("(") + to_string(x.first) + ',' + to_string(x.second) + ')'; - } - - inline - std::string - to_string( std::exception const & x ) - { - return x.what(); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/exception/to_string_stub.hpp b/lib/3rdParty/boost/boost/exception/to_string_stub.hpp deleted file mode 100644 index b6ab31cf8..000000000 --- a/lib/3rdParty/boost/boost/exception/to_string_stub.hpp +++ /dev/null @@ -1,117 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//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 UUID_E788439ED9F011DCB181F25B55D89593 -#define UUID_E788439ED9F011DCB181F25B55D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include - -namespace -boost - { - namespace - exception_detail - { - template - struct - to_string_dispatcher - { - template - static - std::string - convert( T const & x, Stub ) - { - return to_string(x); - } - }; - - template <> - struct - to_string_dispatcher - { - template - static - std::string - convert( T const & x, Stub s ) - { - return s(x); - } - - template - static - std::string - convert( T const & x, std::string s ) - { - return s; - } - - template - static - std::string - convert( T const & x, char const * s ) - { - BOOST_ASSERT(s!=0); - return s; - } - }; - - namespace - to_string_dispatch - { - template - inline - std::string - dispatch( T const & x, Stub s ) - { - return to_string_dispatcher::value>::convert(x,s); - } - } - - template - inline - std::string - string_stub_dump( T const & x ) - { - return "[ " + exception_detail::object_hex_dump(x) + " ]"; - } - } - - template - inline - std::string - to_string_stub( T const & x ) - { - return exception_detail::to_string_dispatch::dispatch(x,&exception_detail::string_stub_dump); - } - - template - inline - std::string - to_string_stub( T const & x, Stub s ) - { - return exception_detail::to_string_dispatch::dispatch(x,s); - } - - template - inline - std::string - to_string_stub( std::pair const & x, Stub s ) - { - return std::string("(") + to_string_stub(x.first,s) + ',' + to_string_stub(x.second,s) + ')'; - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/filesystem.hpp b/lib/3rdParty/boost/boost/filesystem.hpp deleted file mode 100644 index 0122634d3..000000000 --- a/lib/3rdParty/boost/boost/filesystem.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// boost/filesystem.hpp --------------------------------------------------------------// - -// Copyright Beman Dawes 2010 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -//--------------------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_FILESYSTEM_HPP -#define BOOST_FILESYSTEM_FILESYSTEM_HPP - -# include -# include -# include -# include -# include - -#endif // BOOST_FILESYSTEM_FILESYSTEM_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/config.hpp b/lib/3rdParty/boost/boost/filesystem/config.hpp deleted file mode 100644 index 815976959..000000000 --- a/lib/3rdParty/boost/boost/filesystem/config.hpp +++ /dev/null @@ -1,110 +0,0 @@ -// boost/filesystem/v3/config.hpp ----------------------------------------------------// - -// Copyright Beman Dawes 2003 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -//--------------------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM3_CONFIG_HPP -#define BOOST_FILESYSTEM3_CONFIG_HPP - -# if defined(BOOST_FILESYSTEM_VERSION) && BOOST_FILESYSTEM_VERSION != 3 -# error Compiling Filesystem version 3 file with BOOST_FILESYSTEM_VERSION defined != 3 -# endif - -# if !defined(BOOST_FILESYSTEM_VERSION) -# define BOOST_FILESYSTEM_VERSION 3 -# endif - -#define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -#include -#include // for BOOST_POSIX_API or BOOST_WINDOWS_API -#include - -// BOOST_FILESYSTEM_DEPRECATED needed for source compiles -----------------------------// - -# ifdef BOOST_FILESYSTEM_SOURCE -# define BOOST_FILESYSTEM_DEPRECATED -# undef BOOST_FILESYSTEM_NO_DEPRECATED // fixes #9454, src bld fails if NO_DEP defined -# endif - -// throw an exception ----------------------------------------------------------------// -// -// Exceptions were originally thrown via boost::throw_exception(). -// As throw_exception() became more complex, it caused user error reporting -// to be harder to interpret, since the exception reported became much more complex. -// The immediate fix was to throw directly, wrapped in a macro to make any later change -// easier. - -#define BOOST_FILESYSTEM_THROW(EX) throw EX - -# if defined( BOOST_NO_STD_WSTRING ) -# error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support -# endif - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -// normalize macros ------------------------------------------------------------------// - -#if !defined(BOOST_FILESYSTEM_DYN_LINK) && !defined(BOOST_FILESYSTEM_STATIC_LINK) \ - && !defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_ALL_STATIC_LINK) -# define BOOST_FILESYSTEM_STATIC_LINK -#endif - -#if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_FILESYSTEM_DYN_LINK) -# define BOOST_FILESYSTEM_DYN_LINK -#elif defined(BOOST_ALL_STATIC_LINK) && !defined(BOOST_FILESYSTEM_STATIC_LINK) -# define BOOST_FILESYSTEM_STATIC_LINK -#endif - -#if defined(BOOST_FILESYSTEM_DYN_LINK) && defined(BOOST_FILESYSTEM_STATIC_LINK) -# error Must not define both BOOST_FILESYSTEM_DYN_LINK and BOOST_FILESYSTEM_STATIC_LINK -#endif - -#if defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB) -# define BOOST_FILESYSTEM_NO_LIB -#endif - -// enable dynamic linking ------------------------------------------------------------// - -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) -# if defined(BOOST_FILESYSTEM_SOURCE) -# define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_EXPORT -# else -# define BOOST_FILESYSTEM_DECL BOOST_SYMBOL_IMPORT -# endif -#else -# define BOOST_FILESYSTEM_DECL -#endif - -// enable automatic library variant selection ----------------------------------------// - -#if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) \ - && !defined(BOOST_FILESYSTEM_NO_LIB) -// -// 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_filesystem -// -// If we're importing code from a dll, then tell auto_link.hpp about it: -// -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) -# define BOOST_DYN_LINK -#endif -// -// And include the header that does the work: -// -#include -#endif // auto-linking disabled - -#endif // BOOST_FILESYSTEM3_CONFIG_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/convenience.hpp b/lib/3rdParty/boost/boost/filesystem/convenience.hpp deleted file mode 100644 index f0bd98690..000000000 --- a/lib/3rdParty/boost/boost/filesystem/convenience.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// boost/filesystem/convenience.hpp ----------------------------------------// - -// Copyright Beman Dawes, 2002-2005 -// Copyright Vladimir Prus, 2002 -// 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) - -// See library home page at http://www.boost.org/libs/filesystem - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM3_CONVENIENCE_HPP -#define BOOST_FILESYSTEM3_CONVENIENCE_HPP - -#include - -# if defined( BOOST_NO_STD_WSTRING ) -# error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support -# endif - -#include -#include - -#include // must be the last #include - -namespace boost -{ - namespace filesystem - { - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - - inline std::string extension(const path & p) - { - return p.extension().string(); - } - - inline std::string basename(const path & p) - { - return p.stem().string(); - } - - inline path change_extension( const path & p, const path & new_extension ) - { - path new_p( p ); - new_p.replace_extension( new_extension ); - return new_p; - } - -# endif - - - } // namespace filesystem -} // namespace boost - -#include // pops abi_prefix.hpp pragmas -#endif // BOOST_FILESYSTEM3_CONVENIENCE_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/detail/utf8_codecvt_facet.hpp b/lib/3rdParty/boost/boost/filesystem/detail/utf8_codecvt_facet.hpp deleted file mode 100644 index 3b78fb1b6..000000000 --- a/lib/3rdParty/boost/boost/filesystem/detail/utf8_codecvt_facet.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) -// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). - -// Distributed under the Boost Software License, Version 1.0. -// (See http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_FILESYSTEM_UTF8_CODECVT_FACET_HPP -#define BOOST_FILESYSTEM_UTF8_CODECVT_FACET_HPP - -#include - -#define BOOST_UTF8_BEGIN_NAMESPACE \ - namespace boost { namespace filesystem { namespace detail { - -#define BOOST_UTF8_END_NAMESPACE }}} -#define BOOST_UTF8_DECL BOOST_FILESYSTEM_DECL - -#include - -#undef BOOST_UTF8_BEGIN_NAMESPACE -#undef BOOST_UTF8_END_NAMESPACE -#undef BOOST_UTF8_DECL - -#endif diff --git a/lib/3rdParty/boost/boost/filesystem/exception.hpp b/lib/3rdParty/boost/boost/filesystem/exception.hpp deleted file mode 100644 index 985cd8f71..000000000 --- a/lib/3rdParty/boost/boost/filesystem/exception.hpp +++ /dev/null @@ -1,9 +0,0 @@ -// boost/filesystem/exception.hpp -----------------------------------------------------// - -// Copyright Beman Dawes 2003 -// 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 header is no longer used. The contents have been moved to path.hpp. -// It is provided so that user code #includes do not have to be changed. diff --git a/lib/3rdParty/boost/boost/filesystem/fstream.hpp b/lib/3rdParty/boost/boost/filesystem/fstream.hpp deleted file mode 100644 index 072723887..000000000 --- a/lib/3rdParty/boost/boost/filesystem/fstream.hpp +++ /dev/null @@ -1,182 +0,0 @@ -// boost/filesystem/fstream.hpp ------------------------------------------------------// - -// Copyright Beman Dawes 2002 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -//--------------------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM3_FSTREAM_HPP -#define BOOST_FILESYSTEM3_FSTREAM_HPP - -#include - -# if defined( BOOST_NO_STD_WSTRING ) -# error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support -# endif - -#include -#include -#include - -#include // must be the last #include - -// on Windows, except for standard libaries known to have wchar_t overloads for -// file stream I/O, use path::string() to get a narrow character c_str() -#if defined(BOOST_WINDOWS_API) \ - && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 405 || defined(_STLPORT_VERSION)) - // !Dinkumware || early Dinkumware || STLPort masquerading as Dinkumware -# define BOOST_FILESYSTEM_C_STR string().c_str() // use narrow, since wide not available -#else // use the native c_str, which will be narrow on POSIX, wide on Windows -# define BOOST_FILESYSTEM_C_STR c_str() -#endif - -namespace boost -{ -namespace filesystem -{ - -//--------------------------------------------------------------------------------------// -// basic_filebuf // -//--------------------------------------------------------------------------------------// - - template < class charT, class traits = std::char_traits > - class basic_filebuf : public std::basic_filebuf - { - private: // disallow copying - basic_filebuf(const basic_filebuf&); - const basic_filebuf& operator=(const basic_filebuf&); - - public: - basic_filebuf() {} - virtual ~basic_filebuf() {} - - basic_filebuf* - open(const path& p, std::ios_base::openmode mode) - { - return std::basic_filebuf::open(p.BOOST_FILESYSTEM_C_STR, mode) - ? this : 0; - } - }; - -//--------------------------------------------------------------------------------------// -// basic_ifstream // -//--------------------------------------------------------------------------------------// - - template < class charT, class traits = std::char_traits > - class basic_ifstream : public std::basic_ifstream - { - private: // disallow copying - basic_ifstream(const basic_ifstream&); - const basic_ifstream& operator=(const basic_ifstream&); - - public: - basic_ifstream() {} - - // use two signatures, rather than one signature with default second - // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416) - - explicit basic_ifstream(const path& p) - : std::basic_ifstream(p.BOOST_FILESYSTEM_C_STR, std::ios_base::in) {} - - basic_ifstream(const path& p, std::ios_base::openmode mode) - : std::basic_ifstream(p.BOOST_FILESYSTEM_C_STR, mode) {} - - void open(const path& p) - { std::basic_ifstream::open(p.BOOST_FILESYSTEM_C_STR, std::ios_base::in); } - - void open(const path& p, std::ios_base::openmode mode) - { std::basic_ifstream::open(p.BOOST_FILESYSTEM_C_STR, mode); } - - virtual ~basic_ifstream() {} - }; - -//--------------------------------------------------------------------------------------// -// basic_ofstream // -//--------------------------------------------------------------------------------------// - - template < class charT, class traits = std::char_traits > - class basic_ofstream : public std::basic_ofstream - { - private: // disallow copying - basic_ofstream(const basic_ofstream&); - const basic_ofstream& operator=(const basic_ofstream&); - - public: - basic_ofstream() {} - - // use two signatures, rather than one signature with default second - // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416) - - explicit basic_ofstream(const path& p) - : std::basic_ofstream(p.BOOST_FILESYSTEM_C_STR, std::ios_base::out) {} - - basic_ofstream(const path& p, std::ios_base::openmode mode) - : std::basic_ofstream(p.BOOST_FILESYSTEM_C_STR, mode) {} - - void open(const path& p) - { std::basic_ofstream::open(p.BOOST_FILESYSTEM_C_STR, std::ios_base::out); } - - void open(const path& p, std::ios_base::openmode mode) - { std::basic_ofstream::open(p.BOOST_FILESYSTEM_C_STR, mode); } - - virtual ~basic_ofstream() {} - }; - -//--------------------------------------------------------------------------------------// -// basic_fstream // -//--------------------------------------------------------------------------------------// - - template < class charT, class traits = std::char_traits > - class basic_fstream : public std::basic_fstream - { - private: // disallow copying - basic_fstream(const basic_fstream&); - const basic_fstream & operator=(const basic_fstream&); - - public: - basic_fstream() {} - - // use two signatures, rather than one signature with default second - // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416) - - explicit basic_fstream(const path& p) - : std::basic_fstream(p.BOOST_FILESYSTEM_C_STR, - std::ios_base::in | std::ios_base::out) {} - - basic_fstream(const path& p, std::ios_base::openmode mode) - : std::basic_fstream(p.BOOST_FILESYSTEM_C_STR, mode) {} - - void open(const path& p) - { std::basic_fstream::open(p.BOOST_FILESYSTEM_C_STR, - std::ios_base::in | std::ios_base::out); } - - void open(const path& p, std::ios_base::openmode mode) - { std::basic_fstream::open(p.BOOST_FILESYSTEM_C_STR, mode); } - - virtual ~basic_fstream() {} - - }; - -//--------------------------------------------------------------------------------------// -// typedefs // -//--------------------------------------------------------------------------------------// - - typedef basic_filebuf filebuf; - typedef basic_ifstream ifstream; - typedef basic_ofstream ofstream; - typedef basic_fstream fstream; - - typedef basic_filebuf wfilebuf; - typedef basic_ifstream wifstream; - typedef basic_ofstream wofstream; - typedef basic_fstream wfstream; - -} // namespace filesystem -} // namespace boost - -#include // pops abi_prefix.hpp pragmas -#endif // BOOST_FILESYSTEM3_FSTREAM_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/operations.hpp b/lib/3rdParty/boost/boost/filesystem/operations.hpp deleted file mode 100644 index b0ea42a30..000000000 --- a/lib/3rdParty/boost/boost/filesystem/operations.hpp +++ /dev/null @@ -1,1357 +0,0 @@ -// boost/filesystem/operations.hpp ---------------------------------------------------// - -// Copyright Beman Dawes 2002-2009 -// Copyright Jan Langer 2002 -// Copyright Dietmar Kuehl 2001 -// Copyright Vladimir Prus 2002 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -//--------------------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM3_OPERATIONS_HPP -#define BOOST_FILESYSTEM3_OPERATIONS_HPP - -#include - -# if defined( BOOST_NO_STD_WSTRING ) -# error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support -# endif - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // for pair -#include -#include -#include - -#ifdef BOOST_WINDOWS_API -# include -#endif - -#include // must be the last #include - -//--------------------------------------------------------------------------------------// - -namespace boost -{ - namespace filesystem - { - - //--------------------------------------------------------------------------------------// - // // - // class filesystem_error // - // // - //--------------------------------------------------------------------------------------// - - class BOOST_SYMBOL_VISIBLE filesystem_error : public system::system_error - { - // see http://www.boost.org/more/error_handling.html for design rationale - - // all functions are inline to avoid issues with crossing dll boundaries - - // functions previously throw() are now BOOST_NOEXCEPT_OR_NOTHROW - // functions previously without throw() are now BOOST_NOEXCEPT - - public: - // compiler generates copy constructor and copy assignment - - filesystem_error( - const std::string & what_arg, system::error_code ec) BOOST_NOEXCEPT - : system::system_error(ec, what_arg) - { - try - { - m_imp_ptr.reset(new m_imp); - } - catch (...) { m_imp_ptr.reset(); } - } - - filesystem_error( - const std::string & what_arg, const path& path1_arg, - system::error_code ec) BOOST_NOEXCEPT - : system::system_error(ec, what_arg) - { - try - { - m_imp_ptr.reset(new m_imp); - m_imp_ptr->m_path1 = path1_arg; - } - catch (...) { m_imp_ptr.reset(); } - } - - filesystem_error( - const std::string & what_arg, const path& path1_arg, - const path& path2_arg, system::error_code ec) BOOST_NOEXCEPT - : system::system_error(ec, what_arg) - { - try - { - m_imp_ptr.reset(new m_imp); - m_imp_ptr->m_path1 = path1_arg; - m_imp_ptr->m_path2 = path2_arg; - } - catch (...) { m_imp_ptr.reset(); } - } - - ~filesystem_error() BOOST_NOEXCEPT_OR_NOTHROW{} - - const path& path1() const BOOST_NOEXCEPT - { - static const path empty_path; - return m_imp_ptr.get() ? m_imp_ptr->m_path1 : empty_path; - } - const path& path2() const BOOST_NOEXCEPT - { - static const path empty_path; - return m_imp_ptr.get() ? m_imp_ptr->m_path2 : empty_path; - } - - const char* what() const BOOST_NOEXCEPT_OR_NOTHROW - { - if (!m_imp_ptr.get()) - return system::system_error::what(); - - try - { - if (m_imp_ptr->m_what.empty()) - { - m_imp_ptr->m_what = system::system_error::what(); - if (!m_imp_ptr->m_path1.empty()) - { - m_imp_ptr->m_what += ": \""; - m_imp_ptr->m_what += m_imp_ptr->m_path1.string(); - m_imp_ptr->m_what += "\""; - } - if (!m_imp_ptr->m_path2.empty()) - { - m_imp_ptr->m_what += ", \""; - m_imp_ptr->m_what += m_imp_ptr->m_path2.string(); - m_imp_ptr->m_what += "\""; - } - } - return m_imp_ptr->m_what.c_str(); - } - catch (...) - { - return system::system_error::what(); - } - } - - private: - struct m_imp - { - path m_path1; // may be empty() - path m_path2; // may be empty() - std::string m_what; // not built until needed - }; - boost::shared_ptr m_imp_ptr; - }; - -//--------------------------------------------------------------------------------------// -// file_type // -//--------------------------------------------------------------------------------------// - - enum file_type - { - status_error, -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - status_unknown = status_error, -# endif - file_not_found, - regular_file, - directory_file, - // the following may not apply to some operating systems or file systems - symlink_file, - block_file, - character_file, - fifo_file, - socket_file, - reparse_file, // Windows: FILE_ATTRIBUTE_REPARSE_POINT that is not a symlink - type_unknown, // file does exist, but isn't one of the above types or - // we don't have strong enough permission to find its type - - _detail_directory_symlink // internal use only; never exposed to users - }; - -//--------------------------------------------------------------------------------------// -// perms // -//--------------------------------------------------------------------------------------// - - enum perms - { - no_perms = 0, // file_not_found is no_perms rather than perms_not_known - - // POSIX equivalent macros given in comments. - // Values are from POSIX and are given in octal per the POSIX standard. - - // permission bits - - owner_read = 0400, // S_IRUSR, Read permission, owner - owner_write = 0200, // S_IWUSR, Write permission, owner - owner_exe = 0100, // S_IXUSR, Execute/search permission, owner - owner_all = 0700, // S_IRWXU, Read, write, execute/search by owner - - group_read = 040, // S_IRGRP, Read permission, group - group_write = 020, // S_IWGRP, Write permission, group - group_exe = 010, // S_IXGRP, Execute/search permission, group - group_all = 070, // S_IRWXG, Read, write, execute/search by group - - others_read = 04, // S_IROTH, Read permission, others - others_write = 02, // S_IWOTH, Write permission, others - others_exe = 01, // S_IXOTH, Execute/search permission, others - others_all = 07, // S_IRWXO, Read, write, execute/search by others - - all_all = 0777, // owner_all|group_all|others_all - - // other POSIX bits - - set_uid_on_exe = 04000, // S_ISUID, Set-user-ID on execution - set_gid_on_exe = 02000, // S_ISGID, Set-group-ID on execution - sticky_bit = 01000, // S_ISVTX, - // (POSIX XSI) On directories, restricted deletion flag - // (V7) 'sticky bit': save swapped text even after use - // (SunOS) On non-directories: don't cache this file - // (SVID-v4.2) On directories: restricted deletion flag - // Also see http://en.wikipedia.org/wiki/Sticky_bit - - perms_mask = 07777, // all_all|set_uid_on_exe|set_gid_on_exe|sticky_bit - - perms_not_known = 0xFFFF, // present when directory_entry cache not loaded - - // options for permissions() function - - add_perms = 0x1000, // adds the given permission bits to the current bits - remove_perms = 0x2000, // removes the given permission bits from the current bits; - // choose add_perms or remove_perms, not both; if neither add_perms - // nor remove_perms is given, replace the current bits with - // the given bits. - - symlink_perms = 0x4000 // on POSIX, don't resolve symlinks; implied on Windows - }; - - BOOST_BITMASK(perms) - -//--------------------------------------------------------------------------------------// -// file_status // -//--------------------------------------------------------------------------------------// - - class BOOST_FILESYSTEM_DECL file_status - { - public: - file_status() BOOST_NOEXCEPT - : m_value(status_error), m_perms(perms_not_known) {} - explicit file_status(file_type v) BOOST_NOEXCEPT - : m_value(v), m_perms(perms_not_known) {} - file_status(file_type v, perms prms) BOOST_NOEXCEPT - : m_value(v), m_perms(prms) {} - - // As of October 2015 the interaction between noexcept and =default is so troublesome - // for VC++, GCC, and probably other compilers, that =default is not used with noexcept - // functions. GCC is not even consistent for the same release on different platforms. - - file_status(const file_status& rhs) BOOST_NOEXCEPT - : m_value(rhs.m_value), m_perms(rhs.m_perms) {} - file_status& operator=(const file_status& rhs) BOOST_NOEXCEPT - { - m_value = rhs.m_value; - m_perms = rhs.m_perms; - return *this; - } - -# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - file_status(file_status&& rhs) BOOST_NOEXCEPT - { - m_value = std::move(rhs.m_value); - m_perms = std::move(rhs.m_perms); - } - file_status& operator=(file_status&& rhs) BOOST_NOEXCEPT - { - m_value = std::move(rhs.m_value); - m_perms = std::move(rhs.m_perms); - return *this; - } -# endif - - - // observers - file_type type() const BOOST_NOEXCEPT { return m_value; } - perms permissions() const BOOST_NOEXCEPT { return m_perms; } - - // modifiers - void type(file_type v) BOOST_NOEXCEPT { m_value = v; } - void permissions(perms prms) BOOST_NOEXCEPT { m_perms = prms; } - - bool operator==(const file_status& rhs) const BOOST_NOEXCEPT - { return type() == rhs.type() && - permissions() == rhs.permissions(); } - bool operator!=(const file_status& rhs) const BOOST_NOEXCEPT - { return !(*this == rhs); } - - private: - file_type m_value; - enum perms m_perms; - }; - - inline bool type_present(file_status f) BOOST_NOEXCEPT - { return f.type() != status_error; } - inline bool permissions_present(file_status f) BOOST_NOEXCEPT - {return f.permissions() != perms_not_known;} - inline bool status_known(file_status f) BOOST_NOEXCEPT - { return type_present(f) && permissions_present(f); } - inline bool exists(file_status f) BOOST_NOEXCEPT - { return f.type() != status_error - && f.type() != file_not_found; } - inline bool is_regular_file(file_status f) BOOST_NOEXCEPT - { return f.type() == regular_file; } - inline bool is_directory(file_status f) BOOST_NOEXCEPT - { return f.type() == directory_file; } - inline bool is_symlink(file_status f) BOOST_NOEXCEPT - { return f.type() == symlink_file; } - inline bool is_other(file_status f) BOOST_NOEXCEPT - { return exists(f) && !is_regular_file(f) - && !is_directory(f) && !is_symlink(f); } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline bool is_regular(file_status f) BOOST_NOEXCEPT { return f.type() == regular_file; } -# endif - - struct space_info - { - // all values are byte counts - boost::uintmax_t capacity; - boost::uintmax_t free; // <= capacity - boost::uintmax_t available; // <= free - }; - - BOOST_SCOPED_ENUM_START(copy_option) - {none=0, fail_if_exists = none, overwrite_if_exists}; - BOOST_SCOPED_ENUM_END - -//--------------------------------------------------------------------------------------// -// implementation details // -//--------------------------------------------------------------------------------------// - - namespace detail - { - // We cannot pass a BOOST_SCOPED_ENUM to a compled function because it will result - // in an undefined reference if the library is compled with -std=c++0x but the use - // is compiled in C++03 mode, or visa versa. See tickets 6124, 6779, 10038. - enum copy_option {none=0, fail_if_exists = none, overwrite_if_exists}; - - BOOST_FILESYSTEM_DECL - file_status status(const path&p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - file_status symlink_status(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - bool is_empty(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path initial_path(system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path canonical(const path& p, const path& base, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void copy(const path& from, const path& to, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void copy_directory(const path& from, const path& to, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void copy_file(const path& from, const path& to, // See ticket #2925 - detail::copy_option option, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void copy_symlink(const path& existing_symlink, const path& new_symlink, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - bool create_directories(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - bool create_directory(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void create_directory_symlink(const path& to, const path& from, - system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void create_hard_link(const path& to, const path& from, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void create_symlink(const path& to, const path& from, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path current_path(system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void current_path(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - bool equivalent(const path& p1, const path& p2, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - boost::uintmax_t file_size(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - boost::uintmax_t hard_link_count(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - std::time_t last_write_time(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void last_write_time(const path& p, const std::time_t new_time, - system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void permissions(const path& p, perms prms, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path read_symlink(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path relative(const path& p, const path& base, system::error_code* ec = 0); - BOOST_FILESYSTEM_DECL - bool remove(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - boost::uintmax_t remove_all(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void rename(const path& old_p, const path& new_p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - void resize_file(const path& p, uintmax_t size, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - space_info space(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path system_complete(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path temp_directory_path(system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path unique_path(const path& p, system::error_code* ec=0); - BOOST_FILESYSTEM_DECL - path weakly_canonical(const path& p, system::error_code* ec = 0); - } // namespace detail - -//--------------------------------------------------------------------------------------// -// // -// status query functions // -// // -//--------------------------------------------------------------------------------------// - - inline - file_status status(const path& p) {return detail::status(p);} - inline - file_status status(const path& p, system::error_code& ec) - {return detail::status(p, &ec);} - inline - file_status symlink_status(const path& p) {return detail::symlink_status(p);} - inline - file_status symlink_status(const path& p, system::error_code& ec) - {return detail::symlink_status(p, &ec);} - inline - bool exists(const path& p) {return exists(detail::status(p));} - inline - bool exists(const path& p, system::error_code& ec) - {return exists(detail::status(p, &ec));} - inline - bool is_directory(const path& p) {return is_directory(detail::status(p));} - inline - bool is_directory(const path& p, system::error_code& ec) - {return is_directory(detail::status(p, &ec));} - inline - bool is_regular_file(const path& p) {return is_regular_file(detail::status(p));} - inline - bool is_regular_file(const path& p, system::error_code& ec) - {return is_regular_file(detail::status(p, &ec));} - inline - bool is_other(const path& p) {return is_other(detail::status(p));} - inline - bool is_other(const path& p, system::error_code& ec) - {return is_other(detail::status(p, &ec));} - inline - bool is_symlink(const path& p) {return is_symlink(detail::symlink_status(p));} - inline - bool is_symlink(const path& p, system::error_code& ec) - {return is_symlink(detail::symlink_status(p, &ec));} -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline - bool is_regular(const path& p) {return is_regular(detail::status(p));} - inline - bool is_regular(const path& p, system::error_code& ec) - {return is_regular(detail::status(p, &ec));} -# endif - - inline - bool is_empty(const path& p) {return detail::is_empty(p);} - inline - bool is_empty(const path& p, system::error_code& ec) - {return detail::is_empty(p, &ec);} - -//--------------------------------------------------------------------------------------// -// // -// operational functions // -// in alphabetical order, unless otherwise noted // -// // -//--------------------------------------------------------------------------------------// - - // forward declarations - path current_path(); // fwd declaration - path initial_path(); - - BOOST_FILESYSTEM_DECL - path absolute(const path& p, const path& base=current_path()); - // If base.is_absolute(), throws nothing. Thus no need for ec argument - - inline - path canonical(const path& p, const path& base=current_path()) - {return detail::canonical(p, base);} - inline - path canonical(const path& p, system::error_code& ec) - {return detail::canonical(p, current_path(), &ec);} - inline - path canonical(const path& p, const path& base, system::error_code& ec) - {return detail::canonical(p, base, &ec);} - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline - path complete(const path& p) - { - return absolute(p, initial_path()); - } - - inline - path complete(const path& p, const path& base) - { - return absolute(p, base); - } -# endif - - inline - void copy(const path& from, const path& to) {detail::copy(from, to);} - - inline - void copy(const path& from, const path& to, system::error_code& ec) BOOST_NOEXCEPT - {detail::copy(from, to, &ec);} - inline - void copy_directory(const path& from, const path& to) - {detail::copy_directory(from, to);} - inline - void copy_directory(const path& from, const path& to, system::error_code& ec) BOOST_NOEXCEPT - {detail::copy_directory(from, to, &ec);} - inline - void copy_file(const path& from, const path& to, // See ticket #2925 - BOOST_SCOPED_ENUM(copy_option) option) - { - detail::copy_file(from, to, static_cast(option)); - } - inline - void copy_file(const path& from, const path& to) - { - detail::copy_file(from, to, detail::fail_if_exists); - } - inline - void copy_file(const path& from, const path& to, // See ticket #2925 - BOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec) BOOST_NOEXCEPT - { - detail::copy_file(from, to, static_cast(option), &ec); - } - inline - void copy_file(const path& from, const path& to, system::error_code& ec) BOOST_NOEXCEPT - { - detail::copy_file(from, to, detail::fail_if_exists, &ec); - } - inline - void copy_symlink(const path& existing_symlink, - const path& new_symlink) {detail::copy_symlink(existing_symlink, new_symlink);} - - inline - void copy_symlink(const path& existing_symlink, const path& new_symlink, - system::error_code& ec) BOOST_NOEXCEPT - {detail::copy_symlink(existing_symlink, new_symlink, &ec);} - inline - bool create_directories(const path& p) {return detail::create_directories(p);} - - inline - bool create_directories(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::create_directories(p, &ec);} - inline - bool create_directory(const path& p) {return detail::create_directory(p);} - - inline - bool create_directory(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::create_directory(p, &ec);} - inline - void create_directory_symlink(const path& to, const path& from) - {detail::create_directory_symlink(to, from);} - inline - void create_directory_symlink(const path& to, const path& from, system::error_code& ec) BOOST_NOEXCEPT - {detail::create_directory_symlink(to, from, &ec);} - inline - void create_hard_link(const path& to, const path& new_hard_link) {detail::create_hard_link(to, new_hard_link);} - - inline - void create_hard_link(const path& to, const path& new_hard_link, system::error_code& ec) BOOST_NOEXCEPT - {detail::create_hard_link(to, new_hard_link, &ec);} - inline - void create_symlink(const path& to, const path& new_symlink) {detail::create_symlink(to, new_symlink);} - - inline - void create_symlink(const path& to, const path& new_symlink, system::error_code& ec) BOOST_NOEXCEPT - {detail::create_symlink(to, new_symlink, &ec);} - inline - path current_path() {return detail::current_path();} - - inline - path current_path(system::error_code& ec) BOOST_NOEXCEPT {return detail::current_path(&ec);} - - inline - void current_path(const path& p) {detail::current_path(p);} - - inline - void current_path(const path& p, system::error_code& ec) BOOST_NOEXCEPT {detail::current_path(p, &ec);} - - inline - bool equivalent(const path& p1, const path& p2) {return detail::equivalent(p1, p2);} - - inline - bool equivalent(const path& p1, const path& p2, system::error_code& ec) BOOST_NOEXCEPT - {return detail::equivalent(p1, p2, &ec);} - inline - boost::uintmax_t file_size(const path& p) {return detail::file_size(p);} - - inline - boost::uintmax_t file_size(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::file_size(p, &ec);} - inline - boost::uintmax_t hard_link_count(const path& p) {return detail::hard_link_count(p);} - - inline - boost::uintmax_t hard_link_count(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::hard_link_count(p, &ec);} - inline - path initial_path() {return detail::initial_path();} - - inline - path initial_path(system::error_code& ec) {return detail::initial_path(&ec);} - - template - path initial_path() {return initial_path();} - template - path initial_path(system::error_code& ec) {return detail::initial_path(&ec);} - - inline - std::time_t last_write_time(const path& p) {return detail::last_write_time(p);} - - inline - std::time_t last_write_time(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::last_write_time(p, &ec);} - inline - void last_write_time(const path& p, const std::time_t new_time) - {detail::last_write_time(p, new_time);} - inline - void last_write_time(const path& p, const std::time_t new_time, - system::error_code& ec) BOOST_NOEXCEPT - {detail::last_write_time(p, new_time, &ec);} - inline - void permissions(const path& p, perms prms) - {detail::permissions(p, prms);} - inline - void permissions(const path& p, perms prms, system::error_code& ec) BOOST_NOEXCEPT - {detail::permissions(p, prms, &ec);} - - inline - path read_symlink(const path& p) {return detail::read_symlink(p);} - - inline - path read_symlink(const path& p, system::error_code& ec) - {return detail::read_symlink(p, &ec);} - inline - // For standardization, if the committee doesn't like "remove", consider "eliminate" - bool remove(const path& p) {return detail::remove(p);} - - inline - bool remove(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::remove(p, &ec);} - - inline - boost::uintmax_t remove_all(const path& p) {return detail::remove_all(p);} - - inline - boost::uintmax_t remove_all(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::remove_all(p, &ec);} - inline - void rename(const path& old_p, const path& new_p) {detail::rename(old_p, new_p);} - - inline - void rename(const path& old_p, const path& new_p, system::error_code& ec) BOOST_NOEXCEPT - {detail::rename(old_p, new_p, &ec);} - inline // name suggested by Scott McMurray - void resize_file(const path& p, uintmax_t size) {detail::resize_file(p, size);} - - inline - void resize_file(const path& p, uintmax_t size, system::error_code& ec) BOOST_NOEXCEPT - {detail::resize_file(p, size, &ec);} - inline - path relative(const path& p, const path& base=current_path()) - {return detail::relative(p, base);} - inline - path relative(const path& p, system::error_code& ec) - {return detail::relative(p, current_path(), &ec);} - inline - path relative(const path& p, const path& base, system::error_code& ec) - {return detail::relative(p, base, &ec);} - inline - space_info space(const path& p) {return detail::space(p);} - - inline - space_info space(const path& p, system::error_code& ec) BOOST_NOEXCEPT - {return detail::space(p, &ec);} - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline bool symbolic_link_exists(const path& p) - { return is_symlink(symlink_status(p)); } -# endif - - inline - path system_complete(const path& p) {return detail::system_complete(p);} - - inline - path system_complete(const path& p, system::error_code& ec) - {return detail::system_complete(p, &ec);} - inline - path temp_directory_path() {return detail::temp_directory_path();} - - inline - path temp_directory_path(system::error_code& ec) - {return detail::temp_directory_path(&ec);} - inline - path unique_path(const path& p="%%%%-%%%%-%%%%-%%%%") - {return detail::unique_path(p);} - inline - path unique_path(const path& p, system::error_code& ec) - {return detail::unique_path(p, &ec);} - inline - path weakly_canonical(const path& p) {return detail::weakly_canonical(p);} - - inline - path weakly_canonical(const path& p, system::error_code& ec) - {return detail::weakly_canonical(p, &ec);} - -//--------------------------------------------------------------------------------------// -// // -// directory_entry // -// // -//--------------------------------------------------------------------------------------// - -// GCC has a problem with a member function named path within a namespace or -// sub-namespace that also has a class named path. The workaround is to always -// fully qualify the name path when it refers to the class name. - -class BOOST_FILESYSTEM_DECL directory_entry -{ -public: - typedef boost::filesystem::path::value_type value_type; // enables class path ctor taking directory_entry - - directory_entry() BOOST_NOEXCEPT {} - explicit directory_entry(const boost::filesystem::path& p) - : m_path(p), m_status(file_status()), m_symlink_status(file_status()) - {} - directory_entry(const boost::filesystem::path& p, - file_status st, file_status symlink_st = file_status()) - : m_path(p), m_status(st), m_symlink_status(symlink_st) {} - - directory_entry(const directory_entry& rhs) - : m_path(rhs.m_path), m_status(rhs.m_status), m_symlink_status(rhs.m_symlink_status){} - - directory_entry& operator=(const directory_entry& rhs) - { - m_path = rhs.m_path; - m_status = rhs.m_status; - m_symlink_status = rhs.m_symlink_status; - return *this; - } - - // As of October 2015 the interaction between noexcept and =default is so troublesome - // for VC++, GCC, and probably other compilers, that =default is not used with noexcept - // functions. GCC is not even consistent for the same release on different platforms. - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - directory_entry(directory_entry&& rhs) BOOST_NOEXCEPT - { - m_path = std::move(rhs.m_path); - m_status = std::move(rhs.m_status); - m_symlink_status = std::move(rhs.m_symlink_status); - } - directory_entry& operator=(directory_entry&& rhs) BOOST_NOEXCEPT - { - m_path = std::move(rhs.m_path); - m_status = std::move(rhs.m_status); - m_symlink_status = std::move(rhs.m_symlink_status); - return *this; - } -#endif - - void assign(const boost::filesystem::path& p, - file_status st = file_status(), file_status symlink_st = file_status()) - { m_path = p; m_status = st; m_symlink_status = symlink_st; } - - void replace_filename(const boost::filesystem::path& p, - file_status st = file_status(), file_status symlink_st = file_status()) - { - m_path.remove_filename(); - m_path /= p; - m_status = st; - m_symlink_status = symlink_st; - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - void replace_leaf(const boost::filesystem::path& p, - file_status st, file_status symlink_st) - { replace_filename(p, st, symlink_st); } -# endif - - const boost::filesystem::path& path() const BOOST_NOEXCEPT {return m_path;} - operator const boost::filesystem::path&() const BOOST_NOEXCEPT - {return m_path;} - file_status status() const {return m_get_status();} - file_status status(system::error_code& ec) const BOOST_NOEXCEPT - {return m_get_status(&ec); } - file_status symlink_status() const {return m_get_symlink_status();} - file_status symlink_status(system::error_code& ec) const BOOST_NOEXCEPT - {return m_get_symlink_status(&ec); } - - bool operator==(const directory_entry& rhs) const BOOST_NOEXCEPT {return m_path == rhs.m_path; } - bool operator!=(const directory_entry& rhs) const BOOST_NOEXCEPT {return m_path != rhs.m_path;} - bool operator< (const directory_entry& rhs) const BOOST_NOEXCEPT {return m_path < rhs.m_path;} - bool operator<=(const directory_entry& rhs) const BOOST_NOEXCEPT {return m_path <= rhs.m_path;} - bool operator> (const directory_entry& rhs) const BOOST_NOEXCEPT {return m_path > rhs.m_path;} - bool operator>=(const directory_entry& rhs) const BOOST_NOEXCEPT {return m_path >= rhs.m_path;} - -private: - boost::filesystem::path m_path; - mutable file_status m_status; // stat()-like - mutable file_status m_symlink_status; // lstat()-like - - file_status m_get_status(system::error_code* ec=0) const; - file_status m_get_symlink_status(system::error_code* ec=0) const; -}; // directory_entry - -//--------------------------------------------------------------------------------------// -// // -// directory_iterator helpers // -// // -//--------------------------------------------------------------------------------------// - -class directory_iterator; - -namespace detail -{ - BOOST_FILESYSTEM_DECL - system::error_code dir_itr_close(// never throws() - void *& handle -# if defined(BOOST_POSIX_API) - , void *& buffer -# endif - ); - - struct dir_itr_imp - { - directory_entry dir_entry; - void* handle; - -# ifdef BOOST_POSIX_API - void* buffer; // see dir_itr_increment implementation -# endif - - dir_itr_imp() : handle(0) -# ifdef BOOST_POSIX_API - , buffer(0) -# endif - {} - - ~dir_itr_imp() // never throws - { - dir_itr_close(handle -# if defined(BOOST_POSIX_API) - , buffer -# endif - ); - } - }; - - // see path::iterator: comment below - BOOST_FILESYSTEM_DECL void directory_iterator_construct(directory_iterator& it, - const path& p, system::error_code* ec); - BOOST_FILESYSTEM_DECL void directory_iterator_increment(directory_iterator& it, - system::error_code* ec); - -} // namespace detail - -//--------------------------------------------------------------------------------------// -// // -// directory_iterator // -// // -//--------------------------------------------------------------------------------------// - - class directory_iterator - : public boost::iterator_facade< directory_iterator, - directory_entry, - boost::single_pass_traversal_tag > - { - public: - - directory_iterator() BOOST_NOEXCEPT {} // creates the "end" iterator - - // iterator_facade derived classes don't seem to like implementations in - // separate translation unit dll's, so forward to detail functions - explicit directory_iterator(const path& p) - : m_imp(new detail::dir_itr_imp) - { detail::directory_iterator_construct(*this, p, 0); } - - directory_iterator(const path& p, system::error_code& ec) BOOST_NOEXCEPT - : m_imp(new detail::dir_itr_imp) - { detail::directory_iterator_construct(*this, p, &ec); } - - ~directory_iterator() {} - - directory_iterator& increment(system::error_code& ec) BOOST_NOEXCEPT - { - detail::directory_iterator_increment(*this, &ec); - return *this; - } - - private: - friend struct detail::dir_itr_imp; - friend BOOST_FILESYSTEM_DECL void detail::directory_iterator_construct(directory_iterator& it, - const path& p, system::error_code* ec); - friend BOOST_FILESYSTEM_DECL void detail::directory_iterator_increment(directory_iterator& it, - system::error_code* ec); - - // shared_ptr provides the shallow-copy semantics required for single pass iterators - // (i.e. InputIterators). The end iterator is indicated by !m_imp || !m_imp->handle - boost::shared_ptr< detail::dir_itr_imp > m_imp; - - friend class boost::iterator_core_access; - - boost::iterator_facade< - directory_iterator, - directory_entry, - boost::single_pass_traversal_tag >::reference dereference() const - { - BOOST_ASSERT_MSG(m_imp.get(), "attempt to dereference end iterator"); - return m_imp->dir_entry; - } - - void increment() { detail::directory_iterator_increment(*this, 0); } - - bool equal(const directory_iterator& rhs) const - { - return m_imp == rhs.m_imp - || (!m_imp && rhs.m_imp && !rhs.m_imp->handle) - || (!rhs.m_imp && m_imp && !m_imp->handle); - } - - }; // directory_iterator - - // enable directory_iterator C++11 range-base for statement use --------------------// - - // begin() and end() are only used by a range-based for statement in the context of - // auto - thus the top-level const is stripped - so returning const is harmless and - // emphasizes begin() is just a pass through. - inline - const directory_iterator& begin(const directory_iterator& iter) BOOST_NOEXCEPT - {return iter;} - inline - directory_iterator end(const directory_iterator&) BOOST_NOEXCEPT - {return directory_iterator();} - - // enable directory_iterator BOOST_FOREACH -----------------------------------------// - - inline - directory_iterator& range_begin(directory_iterator& iter) BOOST_NOEXCEPT - {return iter;} - inline - directory_iterator range_begin(const directory_iterator& iter) BOOST_NOEXCEPT - {return iter;} - inline - directory_iterator range_end(const directory_iterator&) BOOST_NOEXCEPT - {return directory_iterator();} - } // namespace filesystem - - // namespace boost template specializations - template<> - struct range_mutable_iterator - { typedef boost::filesystem::directory_iterator type; }; - template<> - struct range_const_iterator - { typedef boost::filesystem::directory_iterator type; }; - -namespace filesystem -{ - -//--------------------------------------------------------------------------------------// -// // -// recursive_directory_iterator helpers // -// // -//--------------------------------------------------------------------------------------// - - BOOST_SCOPED_ENUM_START(symlink_option) - { - none, - no_recurse = none, // don't follow directory symlinks (default behavior) - recurse, // follow directory symlinks - _detail_no_push = recurse << 1 // internal use only - }; - BOOST_SCOPED_ENUM_END - - BOOST_BITMASK(BOOST_SCOPED_ENUM(symlink_option)) - - namespace detail - { - struct recur_dir_itr_imp - { - typedef directory_iterator element_type; - std::stack< element_type, std::vector< element_type > > m_stack; - int m_level; - BOOST_SCOPED_ENUM(symlink_option) m_options; - - recur_dir_itr_imp() : m_level(0), m_options(symlink_option::none) {} - - void increment(system::error_code* ec); // ec == 0 means throw on error - - bool push_directory(system::error_code& ec) BOOST_NOEXCEPT; - - void pop(); - - }; - - // Implementation is inline to avoid dynamic linking difficulties with m_stack: - // Microsoft warning C4251, m_stack needs to have dll-interface to be used by - // clients of struct 'boost::filesystem::detail::recur_dir_itr_imp' - - inline - bool recur_dir_itr_imp::push_directory(system::error_code& ec) BOOST_NOEXCEPT - // Returns: true if push occurs, otherwise false. Always returns false on error. - { - ec.clear(); - - // Discover if the iterator is for a directory that needs to be recursed into, - // taking symlinks and options into account. - - if ((m_options & symlink_option::_detail_no_push) == symlink_option::_detail_no_push) - { - m_options &= ~symlink_option::_detail_no_push; - return false; - } - - file_status symlink_stat; - - // if we are not recursing into symlinks, we are going to have to know if the - // stack top is a symlink, so get symlink_status and verify no error occurred - if ((m_options & symlink_option::recurse) != symlink_option::recurse) - { - symlink_stat = m_stack.top()->symlink_status(ec); - if (ec) - return false; - } - - // Logic for following predicate was contributed by Daniel Aarno to handle cyclic - // symlinks correctly and efficiently, fixing ticket #5652. - // if (((m_options & symlink_option::recurse) == symlink_option::recurse - // || !is_symlink(m_stack.top()->symlink_status())) - // && is_directory(m_stack.top()->status())) ... - // The predicate code has since been rewritten to pass error_code arguments, - // per ticket #5653. - - if ((m_options & symlink_option::recurse) == symlink_option::recurse - || !is_symlink(symlink_stat)) - { - file_status stat = m_stack.top()->status(ec); - if (ec || !is_directory(stat)) - return false; - - directory_iterator next(m_stack.top()->path(), ec); - if (!ec && next != directory_iterator()) - { - m_stack.push(next); - ++m_level; - return true; - } - } - return false; - } - - inline - void recur_dir_itr_imp::increment(system::error_code* ec) - // ec == 0 means throw on error - // - // Invariant: On return, the top of the iterator stack is the next valid (possibly - // end) iterator, regardless of whether or not an error is reported, and regardless of - // whether any error is reported by exception or error code. In other words, progress - // is always made so a loop on the iterator will always eventually terminate - // regardless of errors. - { - system::error_code ec_push_directory; - - // if various conditions are met, push a directory_iterator into the iterator stack - if (push_directory(ec_push_directory)) - { - if (ec) - ec->clear(); - return; - } - - // Do the actual increment operation on the top iterator in the iterator - // stack, popping the stack if necessary, until either the stack is empty or a - // non-end iterator is reached. - while (!m_stack.empty() && ++m_stack.top() == directory_iterator()) - { - m_stack.pop(); - --m_level; - } - - // report errors if any - if (ec_push_directory) - { - if (ec) - *ec = ec_push_directory; - else - { - BOOST_FILESYSTEM_THROW(filesystem_error( - "filesystem::recursive_directory_iterator directory error", - ec_push_directory)); - } - } - else if (ec) - ec->clear(); - } - - inline - void recur_dir_itr_imp::pop() - { - BOOST_ASSERT_MSG(m_level > 0, - "pop() on recursive_directory_iterator with level < 1"); - - do - { - m_stack.pop(); - --m_level; - } - while (!m_stack.empty() && ++m_stack.top() == directory_iterator()); - } - } // namespace detail - -//--------------------------------------------------------------------------------------// -// // -// recursive_directory_iterator // -// // -//--------------------------------------------------------------------------------------// - - class recursive_directory_iterator - : public boost::iterator_facade< - recursive_directory_iterator, - directory_entry, - boost::single_pass_traversal_tag > - { - public: - - recursive_directory_iterator() BOOST_NOEXCEPT {} // creates the "end" iterator - - explicit recursive_directory_iterator(const path& dir_path) // throws if !exists() - : m_imp(new detail::recur_dir_itr_imp) - { - m_imp->m_options = symlink_option::none; - m_imp->m_stack.push(directory_iterator(dir_path)); - if (m_imp->m_stack.top() == directory_iterator()) - { m_imp.reset(); } - } - - recursive_directory_iterator(const path& dir_path, - BOOST_SCOPED_ENUM(symlink_option) opt) // throws if !exists() - : m_imp(new detail::recur_dir_itr_imp) - { - m_imp->m_options = opt; - m_imp->m_stack.push(directory_iterator(dir_path)); - if (m_imp->m_stack.top() == directory_iterator()) - { m_imp.reset (); } - } - - recursive_directory_iterator(const path& dir_path, - BOOST_SCOPED_ENUM(symlink_option) opt, - system::error_code & ec) BOOST_NOEXCEPT - : m_imp(new detail::recur_dir_itr_imp) - { - m_imp->m_options = opt; - m_imp->m_stack.push(directory_iterator(dir_path, ec)); - if (m_imp->m_stack.top() == directory_iterator()) - { m_imp.reset (); } - } - - recursive_directory_iterator(const path& dir_path, - system::error_code & ec) BOOST_NOEXCEPT - : m_imp(new detail::recur_dir_itr_imp) - { - m_imp->m_options = symlink_option::none; - m_imp->m_stack.push(directory_iterator(dir_path, ec)); - if (m_imp->m_stack.top() == directory_iterator()) - { m_imp.reset (); } - } - - recursive_directory_iterator& increment(system::error_code& ec) BOOST_NOEXCEPT - { - BOOST_ASSERT_MSG(m_imp.get(), - "increment() on end recursive_directory_iterator"); - m_imp->increment(&ec); - if (m_imp->m_stack.empty()) - m_imp.reset(); // done, so make end iterator - return *this; - } - - int depth() const BOOST_NOEXCEPT - { - BOOST_ASSERT_MSG(m_imp.get(), - "depth() on end recursive_directory_iterator"); - return m_imp->m_level; - } - - int level() const BOOST_NOEXCEPT { return depth(); } - - bool recursion_pending() const BOOST_NOEXCEPT - { - BOOST_ASSERT_MSG(m_imp.get(), - "is_no_push_requested() on end recursive_directory_iterator"); - return (m_imp->m_options & symlink_option::_detail_no_push) - == symlink_option::_detail_no_push; - } - - bool no_push_pending() const BOOST_NOEXCEPT { return recursion_pending(); } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - bool no_push_request() const BOOST_NOEXCEPT { return no_push_pending(); } -# endif - - void pop() - { - BOOST_ASSERT_MSG(m_imp.get(), - "pop() on end recursive_directory_iterator"); - m_imp->pop(); - if (m_imp->m_stack.empty()) m_imp.reset(); // done, so make end iterator - } - - void disable_recursion_pending(bool value=true) BOOST_NOEXCEPT - { - BOOST_ASSERT_MSG(m_imp.get(), - "no_push() on end recursive_directory_iterator"); - if (value) - m_imp->m_options |= symlink_option::_detail_no_push; - else - m_imp->m_options &= ~symlink_option::_detail_no_push; - } - - void no_push(bool value=true) BOOST_NOEXCEPT { disable_recursion_pending(value); } - - file_status status() const - { - BOOST_ASSERT_MSG(m_imp.get(), - "status() on end recursive_directory_iterator"); - return m_imp->m_stack.top()->status(); - } - - file_status symlink_status() const - { - BOOST_ASSERT_MSG(m_imp.get(), - "symlink_status() on end recursive_directory_iterator"); - return m_imp->m_stack.top()->symlink_status(); - } - - private: - - // shared_ptr provides the shallow-copy semantics required for single pass iterators - // (i.e. InputIterators). - // The end iterator is indicated by !m_imp || m_imp->m_stack.empty() - boost::shared_ptr< detail::recur_dir_itr_imp > m_imp; - - friend class boost::iterator_core_access; - - boost::iterator_facade< - recursive_directory_iterator, - directory_entry, - boost::single_pass_traversal_tag >::reference - dereference() const - { - BOOST_ASSERT_MSG(m_imp.get(), - "dereference of end recursive_directory_iterator"); - return *m_imp->m_stack.top(); - } - - void increment() - { - BOOST_ASSERT_MSG(m_imp.get(), - "increment of end recursive_directory_iterator"); - m_imp->increment(0); - if (m_imp->m_stack.empty()) - m_imp.reset(); // done, so make end iterator - } - - bool equal(const recursive_directory_iterator& rhs) const - { - return m_imp == rhs.m_imp - || (!m_imp && rhs.m_imp && rhs.m_imp->m_stack.empty()) - || (!rhs.m_imp && m_imp && m_imp->m_stack.empty()) ; - } - - }; // recursive directory iterator - - // enable recursive directory iterator C++11 range-base for statement use ----------// - - // begin() and end() are only used by a range-based for statement in the context of - // auto - thus the top-level const is stripped - so returning const is harmless and - // emphasizes begin() is just a pass through. - inline - const recursive_directory_iterator& - begin(const recursive_directory_iterator& iter) BOOST_NOEXCEPT - {return iter;} - inline - recursive_directory_iterator end(const recursive_directory_iterator&) BOOST_NOEXCEPT - {return recursive_directory_iterator();} - - // enable recursive directory iterator BOOST_FOREACH -------------------------------// - - inline - recursive_directory_iterator& - range_begin(recursive_directory_iterator& iter) BOOST_NOEXCEPT - {return iter;} - inline - recursive_directory_iterator - range_begin(const recursive_directory_iterator& iter) BOOST_NOEXCEPT - {return iter;} - inline - recursive_directory_iterator range_end(const recursive_directory_iterator&) BOOST_NOEXCEPT - {return recursive_directory_iterator();} - } // namespace filesystem - - // namespace boost template specializations - template<> - struct range_mutable_iterator - { typedef boost::filesystem::recursive_directory_iterator type; }; - template<> - struct range_const_iterator - { typedef boost::filesystem::recursive_directory_iterator type; }; - -namespace filesystem -{ - -# if !defined(BOOST_FILESYSTEM_NO_DEPRECATED) - typedef recursive_directory_iterator wrecursive_directory_iterator; -# endif - -// test helper -----------------------------------------------------------------------// - -// Not part of the documented interface since false positives are possible; -// there is no law that says that an OS that has large stat.st_size -// actually supports large file sizes. - - namespace detail - { - BOOST_FILESYSTEM_DECL bool possible_large_file_size_support(); - } - - } // namespace filesystem -} // namespace boost - -#include // pops abi_prefix.hpp pragmas -#endif // BOOST_FILESYSTEM3_OPERATIONS_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/path.hpp b/lib/3rdParty/boost/boost/filesystem/path.hpp deleted file mode 100644 index 65e27b17d..000000000 --- a/lib/3rdParty/boost/boost/filesystem/path.hpp +++ /dev/null @@ -1,1015 +0,0 @@ -// filesystem path.hpp ---------------------------------------------------------------// - -// Copyright Beman Dawes 2002-2005, 2009 -// Copyright Vladimir Prus 2002 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -// path::stem(), extension(), and replace_extension() are based on -// basename(), extension(), and change_extension() from the original -// filesystem/convenience.hpp header by Vladimir Prus. - -#ifndef BOOST_FILESYSTEM_PATH_HPP -#define BOOST_FILESYSTEM_PATH_HPP - -#include - -# if defined( BOOST_NO_STD_WSTRING ) -# error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support -# endif - -#include -#include // includes -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include // must be the last #include - -namespace boost -{ -namespace filesystem -{ - - //------------------------------------------------------------------------------------// - // // - // class path // - // // - //------------------------------------------------------------------------------------// - - class BOOST_FILESYSTEM_DECL path - { - public: - - // value_type is the character type used by the operating system API to - // represent paths. - -# ifdef BOOST_WINDOWS_API - typedef wchar_t value_type; - BOOST_STATIC_CONSTEXPR value_type separator = L'/'; - BOOST_STATIC_CONSTEXPR value_type preferred_separator = L'\\'; - BOOST_STATIC_CONSTEXPR value_type dot = L'.'; -# else - typedef char value_type; - BOOST_STATIC_CONSTEXPR value_type separator = '/'; - BOOST_STATIC_CONSTEXPR value_type preferred_separator = '/'; - BOOST_STATIC_CONSTEXPR value_type dot = '.'; -# endif - typedef std::basic_string string_type; - typedef std::codecvt codecvt_type; - - - // ----- character encoding conversions ----- - - // Following the principle of least astonishment, path input arguments - // passed to or obtained from the operating system via objects of - // class path behave as if they were directly passed to or - // obtained from the O/S API, unless conversion is explicitly requested. - // - // POSIX specfies that path strings are passed unchanged to and from the - // API. Note that this is different from the POSIX command line utilities, - // which convert according to a locale. - // - // Thus for POSIX, char strings do not undergo conversion. wchar_t strings - // are converted to/from char using the path locale or, if a conversion - // argument is given, using a conversion object modeled on - // std::wstring_convert. - // - // The path locale, which is global to the thread, can be changed by the - // imbue() function. It is initialized to an implementation defined locale. - // - // For Windows, wchar_t strings do not undergo conversion. char strings - // are converted using the "ANSI" or "OEM" code pages, as determined by - // the AreFileApisANSI() function, or, if a conversion argument is given, - // using a conversion object modeled on std::wstring_convert. - // - // See m_pathname comments for further important rationale. - - // TODO: rules needed for operating systems that use / or . - // differently, or format directory paths differently from file paths. - // - // ********************************************************************************** - // - // More work needed: How to handle an operating system that may have - // slash characters or dot characters in valid filenames, either because - // it doesn't follow the POSIX standard, or because it allows MBCS - // filename encodings that may contain slash or dot characters. For - // example, ISO/IEC 2022 (JIS) encoding which allows switching to - // JIS x0208-1983 encoding. A valid filename in this set of encodings is - // 0x1B 0x24 0x42 [switch to X0208-1983] 0x24 0x2F [U+304F Kiragana letter KU] - // ^^^^ - // Note that 0x2F is the ASCII slash character - // - // ********************************************************************************** - - // Supported source arguments: half-open iterator range, container, c-array, - // and single pointer to null terminated string. - - // All source arguments except pointers to null terminated byte strings support - // multi-byte character strings which may have embedded nulls. Embedded null - // support is required for some Asian languages on Windows. - - // "const codecvt_type& cvt=codecvt()" default arguments are not used because this - // limits the impact of locale("") initialization failures on POSIX systems to programs - // that actually depend on locale(""). It further ensures that exceptions thrown - // as a result of such failues occur after main() has started, so can be caught. - - // ----- constructors ----- - - path() BOOST_NOEXCEPT {} - path(const path& p) : m_pathname(p.m_pathname) {} - - template - path(Source const& source, - typename boost::enable_if::type> >::type* =0) - { - path_traits::dispatch(source, m_pathname); - } - - path(const value_type* s) : m_pathname(s) {} - path(value_type* s) : m_pathname(s) {} - path(const string_type& s) : m_pathname(s) {} - path(string_type& s) : m_pathname(s) {} - - // As of October 2015 the interaction between noexcept and =default is so troublesome - // for VC++, GCC, and probably other compilers, that =default is not used with noexcept - // functions. GCC is not even consistent for the same release on different platforms. - -# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - path(path&& p) BOOST_NOEXCEPT { m_pathname = std::move(p.m_pathname); } - path& operator=(path&& p) BOOST_NOEXCEPT - { m_pathname = std::move(p.m_pathname); return *this; } -# endif - - template - path(Source const& source, const codecvt_type& cvt) - { - path_traits::dispatch(source, m_pathname, cvt); - } - - template - path(InputIterator begin, InputIterator end) - { - if (begin != end) - { - // convert requires contiguous string, so copy - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname); - } - } - - template - path(InputIterator begin, InputIterator end, const codecvt_type& cvt) - { - if (begin != end) - { - // convert requires contiguous string, so copy - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname, cvt); - } - } - - // ----- assignments ----- - - path& operator=(const path& p) - { - m_pathname = p.m_pathname; - return *this; - } - - template - typename boost::enable_if::type>, path&>::type - operator=(Source const& source) - { - m_pathname.clear(); - path_traits::dispatch(source, m_pathname); - return *this; - } - - // value_type overloads - - path& operator=(const value_type* ptr) // required in case ptr overlaps *this - {m_pathname = ptr; return *this;} - path& operator=(value_type* ptr) // required in case ptr overlaps *this - {m_pathname = ptr; return *this;} - path& operator=(const string_type& s) {m_pathname = s; return *this;} - path& operator=(string_type& s) {m_pathname = s; return *this;} - - path& assign(const value_type* ptr, const codecvt_type&) // required in case ptr overlaps *this - {m_pathname = ptr; return *this;} - template - path& assign(Source const& source, const codecvt_type& cvt) - { - m_pathname.clear(); - path_traits::dispatch(source, m_pathname, cvt); - return *this; - } - - template - path& assign(InputIterator begin, InputIterator end) - { - m_pathname.clear(); - if (begin != end) - { - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname); - } - return *this; - } - - template - path& assign(InputIterator begin, InputIterator end, const codecvt_type& cvt) - { - m_pathname.clear(); - if (begin != end) - { - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname, cvt); - } - return *this; - } - - // ----- concatenation ----- - - template - typename boost::enable_if::type>, path&>::type - operator+=(Source const& source) - { - return concat(source); - } - - // value_type overloads. Same rationale as for constructors above - path& operator+=(const path& p) { m_pathname += p.m_pathname; return *this; } - path& operator+=(const value_type* ptr) { m_pathname += ptr; return *this; } - path& operator+=(value_type* ptr) { m_pathname += ptr; return *this; } - path& operator+=(const string_type& s) { m_pathname += s; return *this; } - path& operator+=(string_type& s) { m_pathname += s; return *this; } - path& operator+=(value_type c) { m_pathname += c; return *this; } - - template - typename boost::enable_if, path&>::type - operator+=(CharT c) - { - CharT tmp[2]; - tmp[0] = c; - tmp[1] = 0; - return concat(tmp); - } - - template - path& concat(Source const& source) - { - path_traits::dispatch(source, m_pathname); - return *this; - } - - template - path& concat(Source const& source, const codecvt_type& cvt) - { - path_traits::dispatch(source, m_pathname, cvt); - return *this; - } - - template - path& concat(InputIterator begin, InputIterator end) - { - if (begin == end) - return *this; - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname); - return *this; - } - - template - path& concat(InputIterator begin, InputIterator end, const codecvt_type& cvt) - { - if (begin == end) - return *this; - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname, cvt); - return *this; - } - - // ----- appends ----- - - // if a separator is added, it is the preferred separator for the platform; - // slash for POSIX, backslash for Windows - - path& operator/=(const path& p); - - template - typename boost::enable_if::type>, path&>::type - operator/=(Source const& source) - { - return append(source); - } - - path& operator/=(const value_type* ptr); - path& operator/=(value_type* ptr) - { - return this->operator/=(const_cast(ptr)); - } - path& operator/=(const string_type& s) { return this->operator/=(path(s)); } - path& operator/=(string_type& s) { return this->operator/=(path(s)); } - - path& append(const value_type* ptr) // required in case ptr overlaps *this - { - this->operator/=(ptr); - return *this; - } - - path& append(const value_type* ptr, const codecvt_type&) // required in case ptr overlaps *this - { - this->operator/=(ptr); - return *this; - } - - template - path& append(Source const& source); - - template - path& append(Source const& source, const codecvt_type& cvt); - - template - path& append(InputIterator begin, InputIterator end); - - template - path& append(InputIterator begin, InputIterator end, const codecvt_type& cvt); - - // ----- modifiers ----- - - void clear() BOOST_NOEXCEPT { m_pathname.clear(); } - path& make_preferred() -# ifdef BOOST_POSIX_API - { return *this; } // POSIX no effect -# else // BOOST_WINDOWS_API - ; // change slashes to backslashes -# endif - path& remove_filename(); - path& remove_trailing_separator(); - path& replace_extension(const path& new_extension = path()); - void swap(path& rhs) BOOST_NOEXCEPT { m_pathname.swap(rhs.m_pathname); } - - // ----- observers ----- - - // For operating systems that format file paths differently than directory - // paths, return values from observers are formatted as file names unless there - // is a trailing separator, in which case returns are formatted as directory - // paths. POSIX and Windows make no such distinction. - - // Implementations are permitted to return const values or const references. - - // The string or path returned by an observer are specified as being formatted - // as "native" or "generic". - // - // For POSIX, these are all the same format; slashes and backslashes are as input and - // are not modified. - // - // For Windows, native: as input; slashes and backslashes are not modified; - // this is the format of the internally stored string. - // generic: backslashes are converted to slashes - - // ----- native format observers ----- - - const string_type& native() const BOOST_NOEXCEPT { return m_pathname; } - const value_type* c_str() const BOOST_NOEXCEPT { return m_pathname.c_str(); } - string_type::size_type size() const BOOST_NOEXCEPT { return m_pathname.size(); } - - template - String string() const; - - template - String string(const codecvt_type& cvt) const; - -# ifdef BOOST_WINDOWS_API - const std::string string() const - { - std::string tmp; - if (!m_pathname.empty()) - path_traits::convert(&*m_pathname.begin(), &*m_pathname.begin()+m_pathname.size(), - tmp); - return tmp; - } - const std::string string(const codecvt_type& cvt) const - { - std::string tmp; - if (!m_pathname.empty()) - path_traits::convert(&*m_pathname.begin(), &*m_pathname.begin()+m_pathname.size(), - tmp, cvt); - return tmp; - } - - // string_type is std::wstring, so there is no conversion - const std::wstring& wstring() const { return m_pathname; } - const std::wstring& wstring(const codecvt_type&) const { return m_pathname; } - -# else // BOOST_POSIX_API - // string_type is std::string, so there is no conversion - const std::string& string() const { return m_pathname; } - const std::string& string(const codecvt_type&) const { return m_pathname; } - - const std::wstring wstring() const - { - std::wstring tmp; - if (!m_pathname.empty()) - path_traits::convert(&*m_pathname.begin(), &*m_pathname.begin()+m_pathname.size(), - tmp); - return tmp; - } - const std::wstring wstring(const codecvt_type& cvt) const - { - std::wstring tmp; - if (!m_pathname.empty()) - path_traits::convert(&*m_pathname.begin(), &*m_pathname.begin()+m_pathname.size(), - tmp, cvt); - return tmp; - } - -# endif - - // ----- generic format observers ----- - - // Experimental generic function returning generic formatted path (i.e. separators - // are forward slashes). Motivation: simpler than a family of generic_*string - // functions. - path generic_path() const - { -# ifdef BOOST_WINDOWS_API - path tmp; - std::replace_copy(m_pathname.begin(), m_pathname.end(), - std::back_inserter(tmp.m_pathname), L'\\', L'/'); - return tmp; -# else - return path(*this); -# endif - } - - template - String generic_string() const; - - template - String generic_string(const codecvt_type& cvt) const; - -# ifdef BOOST_WINDOWS_API - const std::string generic_string() const; - const std::string generic_string(const codecvt_type& cvt) const; - const std::wstring generic_wstring() const; - const std::wstring generic_wstring(const codecvt_type&) const { return generic_wstring(); }; - -# else // BOOST_POSIX_API - // On POSIX-like systems, the generic format is the same as the native format - const std::string& generic_string() const { return m_pathname; } - const std::string& generic_string(const codecvt_type&) const { return m_pathname; } - const std::wstring generic_wstring() const { return wstring(); } - const std::wstring generic_wstring(const codecvt_type& cvt) const { return wstring(cvt); } - -# endif - - // ----- compare ----- - - int compare(const path& p) const BOOST_NOEXCEPT; // generic, lexicographical - int compare(const std::string& s) const { return compare(path(s)); } - int compare(const value_type* s) const { return compare(path(s)); } - - // ----- decomposition ----- - - path root_path() const; - path root_name() const; // returns 0 or 1 element path - // even on POSIX, root_name() is non-empty() for network paths - path root_directory() const; // returns 0 or 1 element path - path relative_path() const; - path parent_path() const; - path filename() const; // returns 0 or 1 element path - path stem() const; // returns 0 or 1 element path - path extension() const; // returns 0 or 1 element path - - // ----- query ----- - - bool empty() const BOOST_NOEXCEPT{ return m_pathname.empty(); } - bool filename_is_dot() const; - bool filename_is_dot_dot() const; - bool has_root_path() const { return has_root_directory() || has_root_name(); } - bool has_root_name() const { return !root_name().empty(); } - bool has_root_directory() const { return !root_directory().empty(); } - bool has_relative_path() const { return !relative_path().empty(); } - bool has_parent_path() const { return !parent_path().empty(); } - bool has_filename() const { return !m_pathname.empty(); } - bool has_stem() const { return !stem().empty(); } - bool has_extension() const { return !extension().empty(); } - bool is_relative() const { return !is_absolute(); } - bool is_absolute() const - { -# ifdef BOOST_WINDOWS_API - return has_root_name() && has_root_directory(); -# else - return has_root_directory(); -# endif - } - - // ----- lexical operations ----- - - path lexically_normal() const; - path lexically_relative(const path& base) const; - path lexically_proximate(const path& base) const - { - path tmp(lexically_relative(base)); - return tmp.empty() ? *this : tmp; - } - - // ----- iterators ----- - - class iterator; - typedef iterator const_iterator; - class reverse_iterator; - typedef reverse_iterator const_reverse_iterator; - - iterator begin() const; - iterator end() const; - reverse_iterator rbegin() const; - reverse_iterator rend() const; - - // ----- static member functions ----- - - static std::locale imbue(const std::locale& loc); - static const codecvt_type& codecvt(); - - // ----- deprecated functions ----- - -# if defined(BOOST_FILESYSTEM_DEPRECATED) && defined(BOOST_FILESYSTEM_NO_DEPRECATED) -# error both BOOST_FILESYSTEM_DEPRECATED and BOOST_FILESYSTEM_NO_DEPRECATED are defined -# endif - -# if !defined(BOOST_FILESYSTEM_NO_DEPRECATED) - // recently deprecated functions supplied by default - path& normalize() { - path tmp(lexically_normal()); - m_pathname.swap(tmp.m_pathname); - return *this; - } - path& remove_leaf() { return remove_filename(); } - path leaf() const { return filename(); } - path branch_path() const { return parent_path(); } - path generic() const { return generic_path(); } - bool has_leaf() const { return !m_pathname.empty(); } - bool has_branch_path() const { return !parent_path().empty(); } - bool is_complete() const { return is_absolute(); } -# endif - -# if defined(BOOST_FILESYSTEM_DEPRECATED) - // deprecated functions with enough signature or semantic changes that they are - // not supplied by default - const std::string file_string() const { return string(); } - const std::string directory_string() const { return string(); } - const std::string native_file_string() const { return string(); } - const std::string native_directory_string() const { return string(); } - const string_type external_file_string() const { return native(); } - const string_type external_directory_string() const { return native(); } - - // older functions no longer supported - //typedef bool (*name_check)(const std::string & name); - //basic_path(const string_type& str, name_check) { operator/=(str); } - //basic_path(const typename string_type::value_type* s, name_check) - // { operator/=(s);} - //static bool default_name_check_writable() { return false; } - //static void default_name_check(name_check) {} - //static name_check default_name_check() { return 0; } - //basic_path& canonize(); -# endif - -//--------------------------------------------------------------------------------------// -// class path private members // -//--------------------------------------------------------------------------------------// - - private: - -# if defined(_MSC_VER) -# pragma warning(push) // Save warning settings -# pragma warning(disable : 4251) // disable warning: class 'std::basic_string<_Elem,_Traits,_Ax>' -# endif // needs to have dll-interface... -/* - m_pathname has the type, encoding, and format required by the native - operating system. Thus for POSIX and Windows there is no conversion for - passing m_pathname.c_str() to the O/S API or when obtaining a path from the - O/S API. POSIX encoding is unspecified other than for dot and slash - characters; POSIX just treats paths as a sequence of bytes. Windows - encoding is UCS-2 or UTF-16 depending on the version. -*/ - string_type m_pathname; // Windows: as input; backslashes NOT converted to slashes, - // slashes NOT converted to backslashes -# if defined(_MSC_VER) -# pragma warning(pop) // restore warning settings. -# endif - - string_type::size_type m_append_separator_if_needed(); - // Returns: If separator is to be appended, m_pathname.size() before append. Otherwise 0. - // Note: An append is never performed if size()==0, so a returned 0 is unambiguous. - - void m_erase_redundant_separator(string_type::size_type sep_pos); - string_type::size_type m_parent_path_end() const; - - path& m_normalize(); - - // Was qualified; como433beta8 reports: - // warning #427-D: qualified name is not allowed in member declaration - friend class iterator; - friend bool operator<(const path& lhs, const path& rhs); - - // see path::iterator::increment/decrement comment below - static void m_path_iterator_increment(path::iterator & it); - static void m_path_iterator_decrement(path::iterator & it); - - }; // class path - - namespace detail - { - BOOST_FILESYSTEM_DECL - int lex_compare(path::iterator first1, path::iterator last1, - path::iterator first2, path::iterator last2); - BOOST_FILESYSTEM_DECL - const path& dot_path(); - BOOST_FILESYSTEM_DECL - const path& dot_dot_path(); - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - typedef path wpath; -# endif - - //------------------------------------------------------------------------------------// - // class path::iterator // - //------------------------------------------------------------------------------------// - - class path::iterator - : public boost::iterator_facade< - path::iterator, - path const, - boost::bidirectional_traversal_tag > - { - private: - friend class boost::iterator_core_access; - friend class boost::filesystem::path; - friend class boost::filesystem::path::reverse_iterator; - friend void m_path_iterator_increment(path::iterator & it); - friend void m_path_iterator_decrement(path::iterator & it); - - const path& dereference() const { return m_element; } - - bool equal(const iterator & rhs) const - { - return m_path_ptr == rhs.m_path_ptr && m_pos == rhs.m_pos; - } - - // iterator_facade derived classes don't seem to like implementations in - // separate translation unit dll's, so forward to class path static members - void increment() { m_path_iterator_increment(*this); } - void decrement() { m_path_iterator_decrement(*this); } - - path m_element; // current element - const path* m_path_ptr; // path being iterated over - string_type::size_type m_pos; // position of m_element in - // m_path_ptr->m_pathname. - // if m_element is implicit dot, m_pos is the - // position of the last separator in the path. - // end() iterator is indicated by - // m_pos == m_path_ptr->m_pathname.size() - }; // path::iterator - - //------------------------------------------------------------------------------------// - // class path::reverse_iterator // - //------------------------------------------------------------------------------------// - - class path::reverse_iterator - : public boost::iterator_facade< - path::reverse_iterator, - path const, - boost::bidirectional_traversal_tag > - { - public: - - explicit reverse_iterator(iterator itr) : m_itr(itr) - { - if (itr != itr.m_path_ptr->begin()) - m_element = *--itr; - } - private: - friend class boost::iterator_core_access; - friend class boost::filesystem::path; - - const path& dereference() const { return m_element; } - bool equal(const reverse_iterator& rhs) const { return m_itr == rhs.m_itr; } - void increment() - { - --m_itr; - if (m_itr != m_itr.m_path_ptr->begin()) - { - iterator tmp = m_itr; - m_element = *--tmp; - } - } - void decrement() - { - m_element = *m_itr; - ++m_itr; - } - - iterator m_itr; - path m_element; - - }; // path::reverse_iterator - - //------------------------------------------------------------------------------------// - // // - // non-member functions // - // // - //------------------------------------------------------------------------------------// - - // std::lexicographical_compare would infinately recurse because path iterators - // yield paths, so provide a path aware version - inline bool lexicographical_compare(path::iterator first1, path::iterator last1, - path::iterator first2, path::iterator last2) - { return detail::lex_compare(first1, last1, first2, last2) < 0; } - - inline bool operator==(const path& lhs, const path& rhs) {return lhs.compare(rhs) == 0;} - inline bool operator==(const path& lhs, const path::string_type& rhs) {return lhs.compare(rhs) == 0;} - inline bool operator==(const path::string_type& lhs, const path& rhs) {return rhs.compare(lhs) == 0;} - inline bool operator==(const path& lhs, const path::value_type* rhs) {return lhs.compare(rhs) == 0;} - inline bool operator==(const path::value_type* lhs, const path& rhs) {return rhs.compare(lhs) == 0;} - - inline bool operator!=(const path& lhs, const path& rhs) {return lhs.compare(rhs) != 0;} - inline bool operator!=(const path& lhs, const path::string_type& rhs) {return lhs.compare(rhs) != 0;} - inline bool operator!=(const path::string_type& lhs, const path& rhs) {return rhs.compare(lhs) != 0;} - inline bool operator!=(const path& lhs, const path::value_type* rhs) {return lhs.compare(rhs) != 0;} - inline bool operator!=(const path::value_type* lhs, const path& rhs) {return rhs.compare(lhs) != 0;} - - // TODO: why do == and != have additional overloads, but the others don't? - - inline bool operator<(const path& lhs, const path& rhs) {return lhs.compare(rhs) < 0;} - inline bool operator<=(const path& lhs, const path& rhs) {return !(rhs < lhs);} - inline bool operator> (const path& lhs, const path& rhs) {return rhs < lhs;} - inline bool operator>=(const path& lhs, const path& rhs) {return !(lhs < rhs);} - - inline std::size_t hash_value(const path& x) - { -# ifdef BOOST_WINDOWS_API - std::size_t seed = 0; - for(const path::value_type* it = x.c_str(); *it; ++it) - hash_combine(seed, *it == '/' ? L'\\' : *it); - return seed; -# else // BOOST_POSIX_API - return hash_range(x.native().begin(), x.native().end()); -# endif - } - - inline void swap(path& lhs, path& rhs) { lhs.swap(rhs); } - - inline path operator/(const path& lhs, const path& rhs) { return path(lhs) /= rhs; } - - // inserters and extractors - // use boost::io::quoted() to handle spaces in paths - // use '&' as escape character to ease use for Windows paths - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const path& p) - { - return os - << boost::io::quoted(p.template string >(), static_cast('&')); - } - - template - inline std::basic_istream& - operator>>(std::basic_istream& is, path& p) - { - std::basic_string str; - is >> boost::io::quoted(str, static_cast('&')); - p = str; - return is; - } - - // name_checks - - // These functions are holdovers from version 1. It isn't clear they have much - // usefulness, or how to generalize them for later versions. - - BOOST_FILESYSTEM_DECL bool portable_posix_name(const std::string & name); - BOOST_FILESYSTEM_DECL bool windows_name(const std::string & name); - BOOST_FILESYSTEM_DECL bool portable_name(const std::string & name); - BOOST_FILESYSTEM_DECL bool portable_directory_name(const std::string & name); - BOOST_FILESYSTEM_DECL bool portable_file_name(const std::string & name); - BOOST_FILESYSTEM_DECL bool native(const std::string & name); - - namespace detail - { - // For POSIX, is_directory_separator() and is_element_separator() are identical since - // a forward slash is the only valid directory separator and also the only valid - // element separator. For Windows, forward slash and back slash are the possible - // directory separators, but colon (example: "c:foo") is also an element separator. - - inline bool is_directory_separator(path::value_type c) BOOST_NOEXCEPT - { - return c == path::separator -# ifdef BOOST_WINDOWS_API - || c == path::preferred_separator -# endif - ; - } - inline bool is_element_separator(path::value_type c) BOOST_NOEXCEPT - { - return c == path::separator -# ifdef BOOST_WINDOWS_API - || c == path::preferred_separator || c == L':' -# endif - ; - } - } // namespace detail - - //------------------------------------------------------------------------------------// - // class path miscellaneous function implementations // - //------------------------------------------------------------------------------------// - - inline path::reverse_iterator path::rbegin() const { return reverse_iterator(end()); } - inline path::reverse_iterator path::rend() const { return reverse_iterator(begin()); } - - inline bool path::filename_is_dot() const - { - // implicit dot is tricky, so actually call filename(); see path::filename() example - // in reference.html - path p(filename()); - return p.size() == 1 && *p.c_str() == dot; - } - - inline bool path::filename_is_dot_dot() const - { - return size() >= 2 && m_pathname[size()-1] == dot && m_pathname[size()-2] == dot - && (m_pathname.size() == 2 || detail::is_element_separator(m_pathname[size()-3])); - // use detail::is_element_separator() rather than detail::is_directory_separator - // to deal with "c:.." edge case on Windows when ':' acts as a separator - } - -//--------------------------------------------------------------------------------------// -// class path member template implementation // -//--------------------------------------------------------------------------------------// - - template - path& path::append(InputIterator begin, InputIterator end) - { - if (begin == end) - return *this; - string_type::size_type sep_pos(m_append_separator_if_needed()); - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname); - if (sep_pos) - m_erase_redundant_separator(sep_pos); - return *this; - } - - template - path& path::append(InputIterator begin, InputIterator end, const codecvt_type& cvt) - { - if (begin == end) - return *this; - string_type::size_type sep_pos(m_append_separator_if_needed()); - std::basic_string::value_type> - seq(begin, end); - path_traits::convert(seq.c_str(), seq.c_str()+seq.size(), m_pathname, cvt); - if (sep_pos) - m_erase_redundant_separator(sep_pos); - return *this; - } - - template - path& path::append(Source const& source) - { - if (path_traits::empty(source)) - return *this; - string_type::size_type sep_pos(m_append_separator_if_needed()); - path_traits::dispatch(source, m_pathname); - if (sep_pos) - m_erase_redundant_separator(sep_pos); - return *this; - } - - template - path& path::append(Source const& source, const codecvt_type& cvt) - { - if (path_traits::empty(source)) - return *this; - string_type::size_type sep_pos(m_append_separator_if_needed()); - path_traits::dispatch(source, m_pathname, cvt); - if (sep_pos) - m_erase_redundant_separator(sep_pos); - return *this; - } - -//--------------------------------------------------------------------------------------// -// class path member template specializations // -//--------------------------------------------------------------------------------------// - - template <> inline - std::string path::string() const - { return string(); } - - template <> inline - std::wstring path::string() const - { return wstring(); } - - template <> inline - std::string path::string(const codecvt_type& cvt) const - { return string(cvt); } - - template <> inline - std::wstring path::string(const codecvt_type& cvt) const - { return wstring(cvt); } - - template <> inline - std::string path::generic_string() const - { return generic_string(); } - - template <> inline - std::wstring path::generic_string() const - { return generic_wstring(); } - - template <> inline - std::string path::generic_string(const codecvt_type& cvt) const - { return generic_string(cvt); } - - template <> inline - std::wstring path::generic_string(const codecvt_type& cvt) const - { return generic_wstring(cvt); } - - //--------------------------------------------------------------------------------------// - // path_traits convert function implementations // - // requiring path::codecvt() be visable // - //--------------------------------------------------------------------------------------// - -namespace path_traits -{ // without codecvt - - inline - void convert(const char* from, - const char* from_end, // 0 for null terminated MBCS - std::wstring & to) - { - convert(from, from_end, to, path::codecvt()); - } - - inline - void convert(const wchar_t* from, - const wchar_t* from_end, // 0 for null terminated MBCS - std::string & to) - { - convert(from, from_end, to, path::codecvt()); - } - - inline - void convert(const char* from, - std::wstring & to) - { - BOOST_ASSERT(from); - convert(from, 0, to, path::codecvt()); - } - - inline - void convert(const wchar_t* from, - std::string & to) - { - BOOST_ASSERT(from); - convert(from, 0, to, path::codecvt()); - } -} // namespace path_traits -} // namespace filesystem -} // namespace boost - -//----------------------------------------------------------------------------// - -#include // pops abi_prefix.hpp pragmas - -#endif // BOOST_FILESYSTEM_PATH_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/path_traits.hpp b/lib/3rdParty/boost/boost/filesystem/path_traits.hpp deleted file mode 100644 index 129044a46..000000000 --- a/lib/3rdParty/boost/boost/filesystem/path_traits.hpp +++ /dev/null @@ -1,352 +0,0 @@ -// filesystem path_traits.hpp --------------------------------------------------------// - -// Copyright Beman Dawes 2009 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -#ifndef BOOST_FILESYSTEM_PATH_TRAITS_HPP -#define BOOST_FILESYSTEM_PATH_TRAITS_HPP - -#include - -# if defined( BOOST_NO_STD_WSTRING ) -# error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support -# endif - -#include -#include -#include -#include -#include -#include // for mbstate_t -#include -#include -#include -#include -#include -#include -// #include //**** comment me out **** - -#include // must be the last #include - -namespace boost { namespace filesystem { - - BOOST_FILESYSTEM_DECL const system::error_category& codecvt_error_category(); - // uses std::codecvt_base::result used for error codes: - // - // ok: Conversion successful. - // partial: Not all source characters converted; one or more additional source - // characters are needed to produce the final target character, or the - // size of the target intermediate buffer was too small to hold the result. - // error: A character in the source could not be converted to the target encoding. - // noconv: The source and target characters have the same type and encoding, so no - // conversion was necessary. - - class directory_entry; - -namespace path_traits { - - typedef std::codecvt codecvt_type; - - // is_pathable type trait; allows disabling over-agressive class path member templates - - template - struct is_pathable { static const bool value = false; }; - - template<> struct is_pathable { static const bool value = true; }; - template<> struct is_pathable { static const bool value = true; }; - template<> struct is_pathable { static const bool value = true; }; - template<> struct is_pathable { static const bool value = true; }; - template<> struct is_pathable { static const bool value = true; }; - template<> struct is_pathable { static const bool value = true; }; - template<> struct is_pathable > { static const bool value = true; }; - template<> struct is_pathable > { static const bool value = true; }; - template<> struct is_pathable > { static const bool value = true; }; - template<> struct is_pathable > { static const bool value = true; }; - template<> struct is_pathable { static const bool value = true; }; - - // Pathable empty - - template inline - // disable_if aids broken compilers (IBM, old GCC, etc.) and is harmless for - // conforming compilers. Replace by plain "bool" at some future date (2012?) - typename boost::disable_if, bool>::type - empty(const Container & c) - { return c.begin() == c.end(); } - - template inline - bool empty(T * const & c_str) - { - BOOST_ASSERT(c_str); - return !*c_str; - } - - template inline - bool empty(T (&x)[N]) - { return !x[0]; } - - // value types differ ---------------------------------------------------------------// - // - // A from_end argument of 0 is less efficient than a known end, so use only if needed - - // with codecvt - - BOOST_FILESYSTEM_DECL - void convert(const char* from, - const char* from_end, // 0 for null terminated MBCS - std::wstring & to, - const codecvt_type& cvt); - - BOOST_FILESYSTEM_DECL - void convert(const wchar_t* from, - const wchar_t* from_end, // 0 for null terminated MBCS - std::string & to, - const codecvt_type& cvt); - - inline - void convert(const char* from, - std::wstring & to, - const codecvt_type& cvt) - { - BOOST_ASSERT(from); - convert(from, 0, to, cvt); - } - - inline - void convert(const wchar_t* from, - std::string & to, - const codecvt_type& cvt) - { - BOOST_ASSERT(from); - convert(from, 0, to, cvt); - } - - // without codecvt - - inline - void convert(const char* from, - const char* from_end, // 0 for null terminated MBCS - std::wstring & to); - - inline - void convert(const wchar_t* from, - const wchar_t* from_end, // 0 for null terminated MBCS - std::string & to); - - inline - void convert(const char* from, - std::wstring & to); - - inline - void convert(const wchar_t* from, - std::string & to); - - // value types same -----------------------------------------------------------------// - - // char with codecvt - - inline - void convert(const char* from, const char* from_end, std::string & to, - const codecvt_type&) - { - BOOST_ASSERT(from); - BOOST_ASSERT(from_end); - to.append(from, from_end); - } - - inline - void convert(const char* from, - std::string & to, - const codecvt_type&) - { - BOOST_ASSERT(from); - to += from; - } - - // wchar_t with codecvt - - inline - void convert(const wchar_t* from, const wchar_t* from_end, std::wstring & to, - const codecvt_type&) - { - BOOST_ASSERT(from); - BOOST_ASSERT(from_end); - to.append(from, from_end); - } - - inline - void convert(const wchar_t* from, - std::wstring & to, - const codecvt_type&) - { - BOOST_ASSERT(from); - to += from; - } - - // char without codecvt - - inline - void convert(const char* from, const char* from_end, std::string & to) - { - BOOST_ASSERT(from); - BOOST_ASSERT(from_end); - to.append(from, from_end); - } - - inline - void convert(const char* from, std::string & to) - { - BOOST_ASSERT(from); - to += from; - } - - // wchar_t without codecvt - - inline - void convert(const wchar_t* from, const wchar_t* from_end, std::wstring & to) - { - BOOST_ASSERT(from); - BOOST_ASSERT(from_end); - to.append(from, from_end); - } - - inline - void convert(const wchar_t* from, std::wstring & to) - { - BOOST_ASSERT(from); - to += from; - } - - // Source dispatch -----------------------------------------------------------------// - - // contiguous containers with codecvt - template inline - void dispatch(const std::string& c, U& to, const codecvt_type& cvt) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to, cvt); - } - template inline - void dispatch(const std::wstring& c, U& to, const codecvt_type& cvt) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to, cvt); - } - template inline - void dispatch(const std::vector& c, U& to, const codecvt_type& cvt) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to, cvt); - } - template inline - void dispatch(const std::vector& c, U& to, const codecvt_type& cvt) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to, cvt); - } - - // contiguous containers without codecvt - template inline - void dispatch(const std::string& c, U& to) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to); - } - template inline - void dispatch(const std::wstring& c, U& to) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to); - } - template inline - void dispatch(const std::vector& c, U& to) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to); - } - template inline - void dispatch(const std::vector& c, U& to) - { - if (c.size()) - convert(&*c.begin(), &*c.begin() + c.size(), to); - } - - // non-contiguous containers with codecvt - template inline - // disable_if aids broken compilers (IBM, old GCC, etc.) and is harmless for - // conforming compilers. Replace by plain "void" at some future date (2012?) - typename boost::disable_if, void>::type - dispatch(const Container & c, U& to, const codecvt_type& cvt) - { - if (c.size()) - { - std::basic_string s(c.begin(), c.end()); - convert(s.c_str(), s.c_str()+s.size(), to, cvt); - } - } - - // c_str - template inline - void dispatch(T * const & c_str, U& to, const codecvt_type& cvt) - { - // std::cout << "dispatch() const T *\n"; - BOOST_ASSERT(c_str); - convert(c_str, to, cvt); - } - - // Note: there is no dispatch on C-style arrays because the array may - // contain a string smaller than the array size. - - BOOST_FILESYSTEM_DECL - void dispatch(const directory_entry & de, -# ifdef BOOST_WINDOWS_API - std::wstring & to, -# else - std::string & to, -# endif - const codecvt_type&); - - // non-contiguous containers without codecvt - template inline - // disable_if aids broken compilers (IBM, old GCC, etc.) and is harmless for - // conforming compilers. Replace by plain "void" at some future date (2012?) - typename boost::disable_if, void>::type - dispatch(const Container & c, U& to) - { - if (c.size()) - { - std::basic_string seq(c.begin(), c.end()); - convert(seq.c_str(), seq.c_str()+seq.size(), to); - } - } - - // c_str - template inline - void dispatch(T * const & c_str, U& to) - { - // std::cout << "dispatch() const T *\n"; - BOOST_ASSERT(c_str); - convert(c_str, to); - } - - // Note: there is no dispatch on C-style arrays because the array may - // contain a string smaller than the array size. - - BOOST_FILESYSTEM_DECL - void dispatch(const directory_entry & de, -# ifdef BOOST_WINDOWS_API - std::wstring & to -# else - std::string & to -# endif - ); - - -}}} // namespace boost::filesystem::path_traits - -#include // pops abi_prefix.hpp pragmas - -#endif // BOOST_FILESYSTEM_PATH_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/filesystem/string_file.hpp b/lib/3rdParty/boost/boost/filesystem/string_file.hpp deleted file mode 100644 index 015f65908..000000000 --- a/lib/3rdParty/boost/boost/filesystem/string_file.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// filesystem/string_file.hpp --------------------------------------------------------// - -// Copyright Beman Dawes 2015 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page: http://www.boost.org/libs/filesystem - -#ifndef BOOST_FILESYSTEM_STRING_FILE_HPP -#define BOOST_FILESYSTEM_STRING_FILE_HPP - -#include -#include -#include - -namespace boost -{ -namespace filesystem -{ -inline -void save_string_file(const path& p, const std::string& str) -{ - ofstream file; - file.exceptions(std::ofstream::failbit | std::ofstream::badbit); - file.open(p, std::ios_base::binary); - file.write(str.c_str(), str.size()); -} - -inline -void load_string_file(const path& p, std::string& str) -{ - ifstream file; - file.exceptions(std::ifstream::failbit | std::ifstream::badbit); - file.open(p, std::ios_base::binary); - std::size_t sz = static_cast(file_size(p)); - str.resize(sz, '\0'); - file.read(&str[0], sz); -} -} // namespace filesystem -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/function.hpp b/lib/3rdParty/boost/boost/function.hpp deleted file mode 100644 index b72842bb3..000000000 --- a/lib/3rdParty/boost/boost/function.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2001-2003. 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) - -// For more information, see http://www.boost.org/libs/function - -// William Kempf, Jesse Jones and Karl Nelson were all very helpful in the -// design of this library. - -#include // unary_function, binary_function - -#include -#include - -#ifndef BOOST_FUNCTION_MAX_ARGS -# define BOOST_FUNCTION_MAX_ARGS 10 -#endif // BOOST_FUNCTION_MAX_ARGS - -// Include the prologue here so that the use of file-level iteration -// in anything that may be included by function_template.hpp doesn't break -#include - -// Older Visual Age C++ version do not handle the file iteration well -#if BOOST_WORKAROUND(__IBMCPP__, >= 500) && BOOST_WORKAROUND(__IBMCPP__, < 800) -# if BOOST_FUNCTION_MAX_ARGS >= 0 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 1 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 2 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 3 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 4 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 5 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 6 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 7 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 8 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 9 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 10 -# include -# endif -#else -// What is the '3' for? -# define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_FUNCTION_MAX_ARGS,)) -# include BOOST_PP_ITERATE() -# undef BOOST_PP_ITERATION_PARAMS_1 -#endif diff --git a/lib/3rdParty/boost/boost/function/detail/function_iterate.hpp b/lib/3rdParty/boost/boost/function/detail/function_iterate.hpp deleted file mode 100644 index 5370b36aa..000000000 --- a/lib/3rdParty/boost/boost/function/detail/function_iterate.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2003. 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) - -// For more information, see http://www.boost.org -#if !defined(BOOST_PP_IS_ITERATING) -# error Boost.Function - do not include this file! -#endif - -#define BOOST_FUNCTION_NUM_ARGS BOOST_PP_ITERATION() -#include -#undef BOOST_FUNCTION_NUM_ARGS - diff --git a/lib/3rdParty/boost/boost/function/detail/gen_maybe_include.pl b/lib/3rdParty/boost/boost/function/detail/gen_maybe_include.pl deleted file mode 100644 index d0629205e..000000000 --- a/lib/3rdParty/boost/boost/function/detail/gen_maybe_include.pl +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/perl -w -# -# Boost.Function library -# -# Copyright (C) 2001-2003 Douglas Gregor (gregod@cs.rpi.edu) -# -# Permission to copy, use, sell and distribute this software is granted -# provided this copyright notice appears in all copies. -# Permission to modify the code and to distribute modified code is granted -# provided this copyright notice appears in all copies, and a notice -# that the code was modified is included with the copyright notice. -# -# This software is provided "as is" without express or implied warranty, -# and with no claim as to its suitability for any purpose. -# -# For more information, see http://www.boost.org -use English; - -$max_args = $ARGV[0]; - -open (OUT, ">maybe_include.hpp") or die("Cannot write to maybe_include.hpp"); -for($on_arg = 0; $on_arg <= $max_args; ++$on_arg) { - if ($on_arg == 0) { - print OUT "#if"; - } - else { - print OUT "#elif"; - } - print OUT " BOOST_FUNCTION_NUM_ARGS == $on_arg\n"; - print OUT "# ifndef BOOST_FUNCTION_$on_arg\n"; - print OUT "# define BOOST_FUNCTION_$on_arg\n"; - print OUT "# include \n"; - print OUT "# endif\n"; -} -print OUT "#else\n"; -print OUT "# error Cannot handle Boost.Function objects that accept more than $max_args arguments!\n"; -print OUT "#endif\n"; diff --git a/lib/3rdParty/boost/boost/function/detail/maybe_include.hpp b/lib/3rdParty/boost/boost/function/detail/maybe_include.hpp deleted file mode 100644 index 92f71bb22..000000000 --- a/lib/3rdParty/boost/boost/function/detail/maybe_include.hpp +++ /dev/null @@ -1,267 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2003. 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) - -// For more information, see http://www.boost.org - -#if BOOST_FUNCTION_NUM_ARGS == 0 -# ifndef BOOST_FUNCTION_0 -# define BOOST_FUNCTION_0 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 1 -# ifndef BOOST_FUNCTION_1 -# define BOOST_FUNCTION_1 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 2 -# ifndef BOOST_FUNCTION_2 -# define BOOST_FUNCTION_2 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 3 -# ifndef BOOST_FUNCTION_3 -# define BOOST_FUNCTION_3 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 4 -# ifndef BOOST_FUNCTION_4 -# define BOOST_FUNCTION_4 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 5 -# ifndef BOOST_FUNCTION_5 -# define BOOST_FUNCTION_5 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 6 -# ifndef BOOST_FUNCTION_6 -# define BOOST_FUNCTION_6 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 7 -# ifndef BOOST_FUNCTION_7 -# define BOOST_FUNCTION_7 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 8 -# ifndef BOOST_FUNCTION_8 -# define BOOST_FUNCTION_8 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 9 -# ifndef BOOST_FUNCTION_9 -# define BOOST_FUNCTION_9 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 10 -# ifndef BOOST_FUNCTION_10 -# define BOOST_FUNCTION_10 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 11 -# ifndef BOOST_FUNCTION_11 -# define BOOST_FUNCTION_11 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 12 -# ifndef BOOST_FUNCTION_12 -# define BOOST_FUNCTION_12 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 13 -# ifndef BOOST_FUNCTION_13 -# define BOOST_FUNCTION_13 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 14 -# ifndef BOOST_FUNCTION_14 -# define BOOST_FUNCTION_14 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 15 -# ifndef BOOST_FUNCTION_15 -# define BOOST_FUNCTION_15 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 16 -# ifndef BOOST_FUNCTION_16 -# define BOOST_FUNCTION_16 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 17 -# ifndef BOOST_FUNCTION_17 -# define BOOST_FUNCTION_17 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 18 -# ifndef BOOST_FUNCTION_18 -# define BOOST_FUNCTION_18 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 19 -# ifndef BOOST_FUNCTION_19 -# define BOOST_FUNCTION_19 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 20 -# ifndef BOOST_FUNCTION_20 -# define BOOST_FUNCTION_20 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 21 -# ifndef BOOST_FUNCTION_21 -# define BOOST_FUNCTION_21 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 22 -# ifndef BOOST_FUNCTION_22 -# define BOOST_FUNCTION_22 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 23 -# ifndef BOOST_FUNCTION_23 -# define BOOST_FUNCTION_23 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 24 -# ifndef BOOST_FUNCTION_24 -# define BOOST_FUNCTION_24 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 25 -# ifndef BOOST_FUNCTION_25 -# define BOOST_FUNCTION_25 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 26 -# ifndef BOOST_FUNCTION_26 -# define BOOST_FUNCTION_26 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 27 -# ifndef BOOST_FUNCTION_27 -# define BOOST_FUNCTION_27 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 28 -# ifndef BOOST_FUNCTION_28 -# define BOOST_FUNCTION_28 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 29 -# ifndef BOOST_FUNCTION_29 -# define BOOST_FUNCTION_29 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 30 -# ifndef BOOST_FUNCTION_30 -# define BOOST_FUNCTION_30 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 31 -# ifndef BOOST_FUNCTION_31 -# define BOOST_FUNCTION_31 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 32 -# ifndef BOOST_FUNCTION_32 -# define BOOST_FUNCTION_32 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 33 -# ifndef BOOST_FUNCTION_33 -# define BOOST_FUNCTION_33 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 34 -# ifndef BOOST_FUNCTION_34 -# define BOOST_FUNCTION_34 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 35 -# ifndef BOOST_FUNCTION_35 -# define BOOST_FUNCTION_35 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 36 -# ifndef BOOST_FUNCTION_36 -# define BOOST_FUNCTION_36 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 37 -# ifndef BOOST_FUNCTION_37 -# define BOOST_FUNCTION_37 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 38 -# ifndef BOOST_FUNCTION_38 -# define BOOST_FUNCTION_38 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 39 -# ifndef BOOST_FUNCTION_39 -# define BOOST_FUNCTION_39 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 40 -# ifndef BOOST_FUNCTION_40 -# define BOOST_FUNCTION_40 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 41 -# ifndef BOOST_FUNCTION_41 -# define BOOST_FUNCTION_41 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 42 -# ifndef BOOST_FUNCTION_42 -# define BOOST_FUNCTION_42 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 43 -# ifndef BOOST_FUNCTION_43 -# define BOOST_FUNCTION_43 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 44 -# ifndef BOOST_FUNCTION_44 -# define BOOST_FUNCTION_44 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 45 -# ifndef BOOST_FUNCTION_45 -# define BOOST_FUNCTION_45 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 46 -# ifndef BOOST_FUNCTION_46 -# define BOOST_FUNCTION_46 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 47 -# ifndef BOOST_FUNCTION_47 -# define BOOST_FUNCTION_47 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 48 -# ifndef BOOST_FUNCTION_48 -# define BOOST_FUNCTION_48 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 49 -# ifndef BOOST_FUNCTION_49 -# define BOOST_FUNCTION_49 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 50 -# ifndef BOOST_FUNCTION_50 -# define BOOST_FUNCTION_50 -# include -# endif -#else -# error Cannot handle Boost.Function objects that accept more than 50 arguments! -#endif diff --git a/lib/3rdParty/boost/boost/function/detail/prologue.hpp b/lib/3rdParty/boost/boost/function/detail/prologue.hpp deleted file mode 100644 index 53d0f05cd..000000000 --- a/lib/3rdParty/boost/boost/function/detail/prologue.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#ifndef BOOST_FUNCTION_PROLOGUE_HPP -#define BOOST_FUNCTION_PROLOGUE_HPP -# include -# include -# include // unary_function, binary_function -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif // BOOST_FUNCTION_PROLOGUE_HPP diff --git a/lib/3rdParty/boost/boost/function/function0.hpp b/lib/3rdParty/boost/boost/function/function0.hpp deleted file mode 100644 index 65a02e5fa..000000000 --- a/lib/3rdParty/boost/boost/function/function0.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 0 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function1.hpp b/lib/3rdParty/boost/boost/function/function1.hpp deleted file mode 100644 index 908971515..000000000 --- a/lib/3rdParty/boost/boost/function/function1.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 1 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function10.hpp b/lib/3rdParty/boost/boost/function/function10.hpp deleted file mode 100644 index 656272484..000000000 --- a/lib/3rdParty/boost/boost/function/function10.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 10 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function2.hpp b/lib/3rdParty/boost/boost/function/function2.hpp deleted file mode 100644 index dc8bf9752..000000000 --- a/lib/3rdParty/boost/boost/function/function2.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 2 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function3.hpp b/lib/3rdParty/boost/boost/function/function3.hpp deleted file mode 100644 index 19d1a49dd..000000000 --- a/lib/3rdParty/boost/boost/function/function3.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 3 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function4.hpp b/lib/3rdParty/boost/boost/function/function4.hpp deleted file mode 100644 index f3349e2dc..000000000 --- a/lib/3rdParty/boost/boost/function/function4.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 4 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function5.hpp b/lib/3rdParty/boost/boost/function/function5.hpp deleted file mode 100644 index a1305eb5c..000000000 --- a/lib/3rdParty/boost/boost/function/function5.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 5 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function6.hpp b/lib/3rdParty/boost/boost/function/function6.hpp deleted file mode 100644 index 1f6091491..000000000 --- a/lib/3rdParty/boost/boost/function/function6.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 6 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function7.hpp b/lib/3rdParty/boost/boost/function/function7.hpp deleted file mode 100644 index 68542ed46..000000000 --- a/lib/3rdParty/boost/boost/function/function7.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 7 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function8.hpp b/lib/3rdParty/boost/boost/function/function8.hpp deleted file mode 100644 index cf2c37661..000000000 --- a/lib/3rdParty/boost/boost/function/function8.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 8 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function9.hpp b/lib/3rdParty/boost/boost/function/function9.hpp deleted file mode 100644 index 590e0883d..000000000 --- a/lib/3rdParty/boost/boost/function/function9.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. 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) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 9 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/lib/3rdParty/boost/boost/function/function_base.hpp b/lib/3rdParty/boost/boost/function/function_base.hpp deleted file mode 100644 index 21a0c0da7..000000000 --- a/lib/3rdParty/boost/boost/function/function_base.hpp +++ /dev/null @@ -1,866 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2001-2006 -// Copyright Emil Dotchevski 2007 -// 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) - -// For more information, see http://www.boost.org - -#ifndef BOOST_FUNCTION_BASE_HEADER -#define BOOST_FUNCTION_BASE_HEADER - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifndef BOOST_NO_SFINAE -# include "boost/utility/enable_if.hpp" -#else -# include "boost/mpl/bool.hpp" -#endif -#include -#include - -#if defined(BOOST_MSVC) -# pragma warning( push ) -# pragma warning( disable : 4793 ) // complaint about native code generation -# pragma warning( disable : 4127 ) // "conditional expression is constant" -#endif - -#if defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG) -# define BOOST_FUNCTION_TARGET_FIX(x) x -#else -# define BOOST_FUNCTION_TARGET_FIX(x) -#endif // __ICL etc - -# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - typename ::boost::enable_if_c< \ - !(::boost::is_integral::value), \ - Type>::type - -namespace boost { - namespace detail { - namespace function { - class X; - - /** - * A buffer used to store small function objects in - * boost::function. It is a union containing function pointers, - * object pointers, and a structure that resembles a bound - * member function pointer. - */ - union function_buffer_members - { - // For pointers to function objects - typedef void* obj_ptr_t; - mutable obj_ptr_t obj_ptr; - - // For pointers to std::type_info objects - struct type_t { - // (get_functor_type_tag, check_functor_type_tag). - const boost::typeindex::type_info* type; - - // Whether the type is const-qualified. - bool const_qualified; - // Whether the type is volatile-qualified. - bool volatile_qualified; - } type; - - // For function pointers of all kinds - typedef void (*func_ptr_t)(); - mutable func_ptr_t func_ptr; - - // For bound member pointers - struct bound_memfunc_ptr_t { - void (X::*memfunc_ptr)(int); - void* obj_ptr; - } bound_memfunc_ptr; - - // For references to function objects. We explicitly keep - // track of the cv-qualifiers on the object referenced. - struct obj_ref_t { - mutable void* obj_ptr; - bool is_const_qualified; - bool is_volatile_qualified; - } obj_ref; - }; - - union function_buffer - { - // Type-specific union members - mutable function_buffer_members members; - - // To relax aliasing constraints - mutable char data[sizeof(function_buffer_members)]; - }; - - /** - * The unusable class is a placeholder for unused function arguments - * It is also completely unusable except that it constructable from - * anything. This helps compilers without partial specialization to - * handle Boost.Function objects returning void. - */ - struct unusable - { - unusable() {} - template unusable(const T&) {} - }; - - /* Determine the return type. This supports compilers that do not support - * void returns or partial specialization by silently changing the return - * type to "unusable". - */ - template struct function_return_type { typedef T type; }; - - template<> - struct function_return_type - { - typedef unusable type; - }; - - // The operation type to perform on the given functor/function pointer - enum functor_manager_operation_type { - clone_functor_tag, - move_functor_tag, - destroy_functor_tag, - check_functor_type_tag, - get_functor_type_tag - }; - - // Tags used to decide between different types of functions - struct function_ptr_tag {}; - struct function_obj_tag {}; - struct member_ptr_tag {}; - struct function_obj_ref_tag {}; - - template - class get_function_tag - { - typedef typename mpl::if_c<(is_pointer::value), - function_ptr_tag, - function_obj_tag>::type ptr_or_obj_tag; - - typedef typename mpl::if_c<(is_member_pointer::value), - member_ptr_tag, - ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag; - - typedef typename mpl::if_c<(is_reference_wrapper::value), - function_obj_ref_tag, - ptr_or_obj_or_mem_tag>::type or_ref_tag; - - public: - typedef or_ref_tag type; - }; - - // The trivial manager does nothing but return the same pointer (if we - // are cloning) or return the null pointer (if we are deleting). - template - struct reference_manager - { - static inline void - manage(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - switch (op) { - case clone_functor_tag: - out_buffer.members.obj_ref = in_buffer.members.obj_ref; - return; - - case move_functor_tag: - out_buffer.members.obj_ref = in_buffer.members.obj_ref; - in_buffer.members.obj_ref.obj_ptr = 0; - return; - - case destroy_functor_tag: - out_buffer.members.obj_ref.obj_ptr = 0; - return; - - case check_functor_type_tag: - { - // Check whether we have the same type. We can add - // cv-qualifiers, but we can't take them away. - if (*out_buffer.members.type.type == boost::typeindex::type_id() - && (!in_buffer.members.obj_ref.is_const_qualified - || out_buffer.members.type.const_qualified) - && (!in_buffer.members.obj_ref.is_volatile_qualified - || out_buffer.members.type.volatile_qualified)) - out_buffer.members.obj_ptr = in_buffer.members.obj_ref.obj_ptr; - else - out_buffer.members.obj_ptr = 0; - } - return; - - case get_functor_type_tag: - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = in_buffer.members.obj_ref.is_const_qualified; - out_buffer.members.type.volatile_qualified = in_buffer.members.obj_ref.is_volatile_qualified; - return; - } - } - }; - - /** - * Determine if boost::function can use the small-object - * optimization with the function object type F. - */ - template - struct function_allows_small_object_optimization - { - BOOST_STATIC_CONSTANT - (bool, - value = ((sizeof(F) <= sizeof(function_buffer) && - (alignment_of::value - % alignment_of::value == 0)))); - }; - - template - struct functor_wrapper: public F, public A - { - functor_wrapper( F f, A a ): - F(f), - A(a) - { - } - - functor_wrapper(const functor_wrapper& f) : - F(static_cast(f)), - A(static_cast(f)) - { - } - }; - - /** - * The functor_manager class contains a static function "manage" which - * can clone or destroy the given function/function object pointer. - */ - template - struct functor_manager_common - { - typedef Functor functor_type; - - // Function pointers - static inline void - manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - if (op == clone_functor_tag) - out_buffer.members.func_ptr = in_buffer.members.func_ptr; - else if (op == move_functor_tag) { - out_buffer.members.func_ptr = in_buffer.members.func_ptr; - in_buffer.members.func_ptr = 0; - } else if (op == destroy_functor_tag) - out_buffer.members.func_ptr = 0; - else if (op == check_functor_type_tag) { - if (*out_buffer.members.type.type == boost::typeindex::type_id()) - out_buffer.members.obj_ptr = &in_buffer.members.func_ptr; - else - out_buffer.members.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = false; - out_buffer.members.type.volatile_qualified = false; - } - } - - // Function objects that fit in the small-object buffer. - static inline void - manage_small(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - if (op == clone_functor_tag || op == move_functor_tag) { - const functor_type* in_functor = - reinterpret_cast(in_buffer.data); - new (reinterpret_cast(out_buffer.data)) functor_type(*in_functor); - - if (op == move_functor_tag) { - functor_type* f = reinterpret_cast(in_buffer.data); - (void)f; // suppress warning about the value of f not being used (MSVC) - f->~Functor(); - } - } else if (op == destroy_functor_tag) { - // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type. - functor_type* f = reinterpret_cast(out_buffer.data); - (void)f; // suppress warning about the value of f not being used (MSVC) - f->~Functor(); - } else if (op == check_functor_type_tag) { - if (*out_buffer.members.type.type == boost::typeindex::type_id()) - out_buffer.members.obj_ptr = in_buffer.data; - else - out_buffer.members.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = false; - out_buffer.members.type.volatile_qualified = false; - } - } - }; - - template - struct functor_manager - { - private: - typedef Functor functor_type; - - // Function pointers - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_ptr_tag) - { - functor_manager_common::manage_ptr(in_buffer,out_buffer,op); - } - - // Function objects that fit in the small-object buffer. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::true_) - { - functor_manager_common::manage_small(in_buffer,out_buffer,op); - } - - // Function objects that require heap allocation - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::false_) - { - if (op == clone_functor_tag) { - // Clone the functor - // GCC 2.95.3 gets the CV qualifiers wrong here, so we - // can't do the static_cast that we should do. - // jewillco: Changing this to static_cast because GCC 2.95.3 is - // obsolete. - const functor_type* f = - static_cast(in_buffer.members.obj_ptr); - functor_type* new_f = new functor_type(*f); - out_buffer.members.obj_ptr = new_f; - } else if (op == move_functor_tag) { - out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; - in_buffer.members.obj_ptr = 0; - } else if (op == destroy_functor_tag) { - /* Cast from the void pointer to the functor pointer type */ - functor_type* f = - static_cast(out_buffer.members.obj_ptr); - delete f; - out_buffer.members.obj_ptr = 0; - } else if (op == check_functor_type_tag) { - if (*out_buffer.members.type.type == boost::typeindex::type_id()) - out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; - else - out_buffer.members.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = false; - out_buffer.members.type.volatile_qualified = false; - } - } - - // For function objects, we determine whether the function - // object can use the small-object optimization buffer or - // whether we need to allocate it on the heap. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_obj_tag) - { - manager(in_buffer, out_buffer, op, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - } - - // For member pointers, we use the small-object optimization buffer. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, member_ptr_tag) - { - manager(in_buffer, out_buffer, op, mpl::true_()); - } - - public: - /* Dispatch to an appropriate manager based on whether we have a - function pointer or a function object pointer. */ - static inline void - manage(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - typedef typename get_function_tag::type tag_type; - switch (op) { - case get_functor_type_tag: - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = false; - out_buffer.members.type.volatile_qualified = false; - return; - - default: - manager(in_buffer, out_buffer, op, tag_type()); - return; - } - } - }; - - template - struct functor_manager_a - { - private: - typedef Functor functor_type; - - // Function pointers - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_ptr_tag) - { - functor_manager_common::manage_ptr(in_buffer,out_buffer,op); - } - - // Function objects that fit in the small-object buffer. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::true_) - { - functor_manager_common::manage_small(in_buffer,out_buffer,op); - } - - // Function objects that require heap allocation - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::false_) - { - typedef functor_wrapper functor_wrapper_type; - typedef typename Allocator::template rebind::other - wrapper_allocator_type; - typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type; - - if (op == clone_functor_tag) { - // Clone the functor - // GCC 2.95.3 gets the CV qualifiers wrong here, so we - // can't do the static_cast that we should do. - const functor_wrapper_type* f = - static_cast(in_buffer.members.obj_ptr); - wrapper_allocator_type wrapper_allocator(static_cast(*f)); - wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); - wrapper_allocator.construct(copy, *f); - - // Get back to the original pointer type - functor_wrapper_type* new_f = static_cast(copy); - out_buffer.members.obj_ptr = new_f; - } else if (op == move_functor_tag) { - out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; - in_buffer.members.obj_ptr = 0; - } else if (op == destroy_functor_tag) { - /* Cast from the void pointer to the functor_wrapper_type */ - functor_wrapper_type* victim = - static_cast(in_buffer.members.obj_ptr); - wrapper_allocator_type wrapper_allocator(static_cast(*victim)); - wrapper_allocator.destroy(victim); - wrapper_allocator.deallocate(victim,1); - out_buffer.members.obj_ptr = 0; - } else if (op == check_functor_type_tag) { - if (*out_buffer.members.type.type == boost::typeindex::type_id()) - out_buffer.members.obj_ptr = in_buffer.members.obj_ptr; - else - out_buffer.members.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = false; - out_buffer.members.type.volatile_qualified = false; - } - } - - // For function objects, we determine whether the function - // object can use the small-object optimization buffer or - // whether we need to allocate it on the heap. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_obj_tag) - { - manager(in_buffer, out_buffer, op, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - } - - public: - /* Dispatch to an appropriate manager based on whether we have a - function pointer or a function object pointer. */ - static inline void - manage(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - typedef typename get_function_tag::type tag_type; - switch (op) { - case get_functor_type_tag: - out_buffer.members.type.type = &boost::typeindex::type_id().type_info(); - out_buffer.members.type.const_qualified = false; - out_buffer.members.type.volatile_qualified = false; - return; - - default: - manager(in_buffer, out_buffer, op, tag_type()); - return; - } - } - }; - - // A type that is only used for comparisons against zero - struct useless_clear_type {}; - -#ifdef BOOST_NO_SFINAE - // These routines perform comparisons between a Boost.Function - // object and an arbitrary function object (when the last - // parameter is mpl::bool_) or against zero (when the - // last parameter is mpl::bool_). They are only necessary - // for compilers that don't support SFINAE. - template - bool - compare_equal(const Function& f, const Functor&, int, mpl::bool_) - { return f.empty(); } - - template - bool - compare_not_equal(const Function& f, const Functor&, int, - mpl::bool_) - { return !f.empty(); } - - template - bool - compare_equal(const Function& f, const Functor& g, long, - mpl::bool_) - { - if (const Functor* fp = f.template target()) - return function_equal(*fp, g); - else return false; - } - - template - bool - compare_equal(const Function& f, const reference_wrapper& g, - int, mpl::bool_) - { - if (const Functor* fp = f.template target()) - return fp == g.get_pointer(); - else return false; - } - - template - bool - compare_not_equal(const Function& f, const Functor& g, long, - mpl::bool_) - { - if (const Functor* fp = f.template target()) - return !function_equal(*fp, g); - else return true; - } - - template - bool - compare_not_equal(const Function& f, - const reference_wrapper& g, int, - mpl::bool_) - { - if (const Functor* fp = f.template target()) - return fp != g.get_pointer(); - else return true; - } -#endif // BOOST_NO_SFINAE - - /** - * Stores the "manager" portion of the vtable for a - * boost::function object. - */ - struct vtable_base - { - void (*manager)(const function_buffer& in_buffer, - function_buffer& out_buffer, - functor_manager_operation_type op); - }; - } // end namespace function - } // end namespace detail - -/** - * The function_base class contains the basic elements needed for the - * function1, function2, function3, etc. classes. It is common to all - * functions (and as such can be used to tell if we have one of the - * functionN objects). - */ -class function_base -{ -public: - function_base() : vtable(0) { } - - /** Determine if the function is empty (i.e., has no target). */ - bool empty() const { return !vtable; } - - /** Retrieve the type of the stored function object, or type_id() - if this is empty. */ - const boost::typeindex::type_info& target_type() const - { - if (!vtable) return boost::typeindex::type_id().type_info(); - - detail::function::function_buffer type; - get_vtable()->manager(functor, type, detail::function::get_functor_type_tag); - return *type.members.type.type; - } - - template - Functor* target() - { - if (!vtable) return 0; - - detail::function::function_buffer type_result; - type_result.members.type.type = &boost::typeindex::type_id().type_info(); - type_result.members.type.const_qualified = is_const::value; - type_result.members.type.volatile_qualified = is_volatile::value; - get_vtable()->manager(functor, type_result, - detail::function::check_functor_type_tag); - return static_cast(type_result.members.obj_ptr); - } - - template - const Functor* target() const - { - if (!vtable) return 0; - - detail::function::function_buffer type_result; - type_result.members.type.type = &boost::typeindex::type_id().type_info(); - type_result.members.type.const_qualified = true; - type_result.members.type.volatile_qualified = is_volatile::value; - get_vtable()->manager(functor, type_result, - detail::function::check_functor_type_tag); - // GCC 2.95.3 gets the CV qualifiers wrong here, so we - // can't do the static_cast that we should do. - return static_cast(type_result.members.obj_ptr); - } - - template - bool contains(const F& f) const - { - if (const F* fp = this->template target()) - { - return function_equal(*fp, f); - } else { - return false; - } - } - -#if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3 - // GCC 3.3 and newer cannot copy with the global operator==, due to - // problems with instantiation of function return types before it - // has been verified that the argument types match up. - template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(Functor g) const - { - if (const Functor* fp = target()) - return function_equal(*fp, g); - else return false; - } - - template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(Functor g) const - { - if (const Functor* fp = target()) - return !function_equal(*fp, g); - else return true; - } -#endif - -public: // should be protected, but GCC 2.95.3 will fail to allow access - detail::function::vtable_base* get_vtable() const { - return reinterpret_cast( - reinterpret_cast(vtable) & ~static_cast(0x01)); - } - - bool has_trivial_copy_and_destroy() const { - return reinterpret_cast(vtable) & 0x01; - } - - detail::function::vtable_base* vtable; - mutable detail::function::function_buffer functor; -}; - -/** - * The bad_function_call exception class is thrown when a boost::function - * object is invoked - */ -class bad_function_call : public std::runtime_error -{ -public: - bad_function_call() : std::runtime_error("call to empty boost::function") {} -}; - -#ifndef BOOST_NO_SFINAE -inline bool operator==(const function_base& f, - detail::function::useless_clear_type*) -{ - return f.empty(); -} - -inline bool operator!=(const function_base& f, - detail::function::useless_clear_type*) -{ - return !f.empty(); -} - -inline bool operator==(detail::function::useless_clear_type*, - const function_base& f) -{ - return f.empty(); -} - -inline bool operator!=(detail::function::useless_clear_type*, - const function_base& f) -{ - return !f.empty(); -} -#endif - -#ifdef BOOST_NO_SFINAE -// Comparisons between boost::function objects and arbitrary function objects -template - inline bool operator==(const function_base& f, Functor g) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_equal(f, g, 0, integral()); - } - -template - inline bool operator==(Functor g, const function_base& f) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_equal(f, g, 0, integral()); - } - -template - inline bool operator!=(const function_base& f, Functor g) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_not_equal(f, g, 0, integral()); - } - -template - inline bool operator!=(Functor g, const function_base& f) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_not_equal(f, g, 0, integral()); - } -#else - -# if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) -// Comparisons between boost::function objects and arbitrary function -// objects. GCC 3.3 and before has an obnoxious bug that prevents this -// from working. -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(const function_base& f, Functor g) - { - if (const Functor* fp = f.template target()) - return function_equal(*fp, g); - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(Functor g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return function_equal(g, *fp); - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(const function_base& f, Functor g) - { - if (const Functor* fp = f.template target()) - return !function_equal(*fp, g); - else return true; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(Functor g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return !function_equal(g, *fp); - else return true; - } -# endif - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(const function_base& f, reference_wrapper g) - { - if (const Functor* fp = f.template target()) - return fp == g.get_pointer(); - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(reference_wrapper g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return g.get_pointer() == fp; - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(const function_base& f, reference_wrapper g) - { - if (const Functor* fp = f.template target()) - return fp != g.get_pointer(); - else return true; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(reference_wrapper g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return g.get_pointer() != fp; - else return true; - } - -#endif // Compiler supporting SFINAE - -namespace detail { - namespace function { - inline bool has_empty_target(const function_base* f) - { - return f->empty(); - } - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1310) - inline bool has_empty_target(const void*) - { - return false; - } -#else - inline bool has_empty_target(...) - { - return false; - } -#endif - } // end namespace function -} // end namespace detail -} // end namespace boost - -#undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL - -#if defined(BOOST_MSVC) -# pragma warning( pop ) -#endif - -#endif // BOOST_FUNCTION_BASE_HEADER diff --git a/lib/3rdParty/boost/boost/function/function_fwd.hpp b/lib/3rdParty/boost/boost/function/function_fwd.hpp deleted file mode 100644 index e79b50489..000000000 --- a/lib/3rdParty/boost/boost/function/function_fwd.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// Boost.Function library -// Copyright (C) Douglas Gregor 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) -// -// For more information, see http://www.boost.org -#ifndef BOOST_FUNCTION_FWD_HPP -#define BOOST_FUNCTION_FWD_HPP -#include - -#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG) -// Work around a compiler bug. -// boost::python::objects::function has to be seen by the compiler before the -// boost::function class template. -namespace boost { namespace python { namespace objects { - class function; -}}} -#endif - -#if defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \ - || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540) -# define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX -#endif - -namespace boost { - class bad_function_call; - -#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) - // Preferred syntax - template class function; - - template - inline void swap(function& f1, function& f2) - { - f1.swap(f2); - } -#endif // have partial specialization - - // Portable syntax - template class function0; - template class function1; - template class function2; - template class function3; - template - class function4; - template - class function5; - template - class function6; - template - class function7; - template - class function8; - template - class function9; - template - class function10; -} - -#endif diff --git a/lib/3rdParty/boost/boost/function/function_template.hpp b/lib/3rdParty/boost/boost/function/function_template.hpp deleted file mode 100644 index 82c81d769..000000000 --- a/lib/3rdParty/boost/boost/function/function_template.hpp +++ /dev/null @@ -1,1189 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2001-2006 -// Copyright Emil Dotchevski 2007 -// 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) - -// For more information, see http://www.boost.org - -// Note: this header is a header template and must NOT have multiple-inclusion -// protection. -#include -#include - -#if defined(BOOST_MSVC) -# pragma warning( push ) -# pragma warning( disable : 4127 ) // "conditional expression is constant" -#endif - -#define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T) - -#define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T) - -#define BOOST_FUNCTION_PARM(J,I,D) BOOST_PP_CAT(T,I) BOOST_PP_CAT(a,I) - -#define BOOST_FUNCTION_PARMS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_PARM,BOOST_PP_EMPTY) - -#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a) -#else -# include -# define BOOST_FUNCTION_ARG(J,I,D) ::boost::forward< BOOST_PP_CAT(T,I) >(BOOST_PP_CAT(a,I)) -# define BOOST_FUNCTION_ARGS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG,BOOST_PP_EMPTY) -#endif - -#define BOOST_FUNCTION_ARG_TYPE(J,I,D) \ - typedef BOOST_PP_CAT(T,I) BOOST_PP_CAT(BOOST_PP_CAT(arg, BOOST_PP_INC(I)),_type); - -#define BOOST_FUNCTION_ARG_TYPES BOOST_PP_REPEAT(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG_TYPE,BOOST_PP_EMPTY) - -// Comma if nonzero number of arguments -#if BOOST_FUNCTION_NUM_ARGS == 0 -# define BOOST_FUNCTION_COMMA -#else -# define BOOST_FUNCTION_COMMA , -#endif // BOOST_FUNCTION_NUM_ARGS > 0 - -// Class names used in this version of the code -#define BOOST_FUNCTION_FUNCTION BOOST_JOIN(function,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_FUNCTION_INVOKER \ - BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \ - BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(void_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_FUNCTION_REF_INVOKER \ - BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \ - BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_MEMBER_INVOKER \ - BOOST_JOIN(function_mem_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_MEMBER_INVOKER \ - BOOST_JOIN(function_void_mem_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_FUNCTION_INVOKER \ - BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \ - BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_MEMBER_INVOKER \ - BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_INVOKER \ - BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS) - -#ifndef BOOST_NO_VOID_RETURNS -# define BOOST_FUNCTION_VOID_RETURN_TYPE void -# define BOOST_FUNCTION_RETURN(X) X -#else -# define BOOST_FUNCTION_VOID_RETURN_TYPE boost::detail::function::unusable -# define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE () -#endif - -namespace boost { - namespace detail { - namespace function { - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_FUNCTION_INVOKER - { - static R invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - { - FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); - return f(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_FUNCTION_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionPtr f = reinterpret_cast(function_ptr.members.func_ptr); - BOOST_FUNCTION_RETURN(f(BOOST_FUNCTION_ARGS)); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_FUNCTION_OBJ_INVOKER - { - static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f; - if (function_allows_small_object_optimization::value) - f = reinterpret_cast(function_obj_ptr.data); - else - f = reinterpret_cast(function_obj_ptr.members.obj_ptr); - return (*f)(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f; - if (function_allows_small_object_optimization::value) - f = reinterpret_cast(function_obj_ptr.data); - else - f = reinterpret_cast(function_obj_ptr.members.obj_ptr); - BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS)); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_FUNCTION_REF_INVOKER - { - static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f = - reinterpret_cast(function_obj_ptr.members.obj_ptr); - return (*f)(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f = - reinterpret_cast(function_obj_ptr.members.obj_ptr); - BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS)); - } - }; - -#if BOOST_FUNCTION_NUM_ARGS > 0 - /* Handle invocation of member pointers. */ - template< - typename MemberPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_MEMBER_INVOKER - { - static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - MemberPtr* f = - reinterpret_cast(function_obj_ptr.data); - return boost::mem_fn(*f)(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename MemberPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_MEMBER_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - MemberPtr* f = - reinterpret_cast(function_obj_ptr.data); - BOOST_FUNCTION_RETURN(boost::mem_fn(*f)(BOOST_FUNCTION_ARGS)); - } - }; -#endif - - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_REF_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - -#if BOOST_FUNCTION_NUM_ARGS > 0 - /* Retrieve the appropriate invoker for a member pointer. */ - template< - typename MemberPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_MEMBER_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; -#endif - - /* Given the tag returned by get_function_tag, retrieve the - actual invoker that will be used for the given function - object. - - Each specialization contains an "apply" nested class template - that accepts the function object, return type, function - argument types, and allocator. The resulting "apply" class - contains two typedefs, "invoker_type" and "manager_type", - which correspond to the invoker and manager types. */ - template - struct BOOST_FUNCTION_GET_INVOKER { }; - - /* Retrieve the invoker for a function pointer. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - }; - -#if BOOST_FUNCTION_NUM_ARGS > 0 - /* Retrieve the invoker for a member pointer. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - }; -#endif - - /* Retrieve the invoker for a function object. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager_a manager_type; - }; - }; - - /* Retrieve the invoker for a reference to a function object. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< - typename RefWrapper::type, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef reference_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< - typename RefWrapper::type, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef reference_manager manager_type; - }; - }; - - - /** - * vtable for a specific boost::function instance. This - * structure must be an aggregate so that we can use static - * initialization in boost::function's assign_to and assign_to_a - * members. It therefore cannot have any constructors, - * destructors, base classes, etc. - */ - template - struct BOOST_FUNCTION_VTABLE - { -#ifndef BOOST_NO_VOID_RETURNS - typedef R result_type; -#else - typedef typename function_return_type::type result_type; -#endif // BOOST_NO_VOID_RETURNS - - typedef result_type (*invoker_type)(function_buffer& - BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS); - - template - bool assign_to(F f, function_buffer& functor) const - { - typedef typename get_function_tag::type tag; - return assign_to(f, functor, tag()); - } - template - bool assign_to_a(F f, function_buffer& functor, Allocator a) const - { - typedef typename get_function_tag::type tag; - return assign_to_a(f, functor, a, tag()); - } - - void clear(function_buffer& functor) const - { - if (base.manager) - base.manager(functor, functor, destroy_functor_tag); - } - - private: - // Function pointers - template - bool - assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const - { - this->clear(functor); - if (f) { - // should be a reinterpret cast, but some compilers insist - // on giving cv-qualifiers to free functions - functor.members.func_ptr = reinterpret_cast(f); - return true; - } else { - return false; - } - } - template - bool - assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const - { - return assign_to(f,functor,function_ptr_tag()); - } - - // Member pointers -#if BOOST_FUNCTION_NUM_ARGS > 0 - template - bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const - { - // DPG TBD: Add explicit support for member function - // objects, so we invoke through mem_fn() but we retain the - // right target_type() values. - if (f) { - this->assign_to(boost::mem_fn(f), functor); - return true; - } else { - return false; - } - } - template - bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const - { - // DPG TBD: Add explicit support for member function - // objects, so we invoke through mem_fn() but we retain the - // right target_type() values. - if (f) { - this->assign_to_a(boost::mem_fn(f), functor, a); - return true; - } else { - return false; - } - } -#endif // BOOST_FUNCTION_NUM_ARGS > 0 - - // Function objects - // Assign to a function object using the small object optimization - template - void - assign_functor(FunctionObj f, function_buffer& functor, mpl::true_) const - { - new (reinterpret_cast(functor.data)) FunctionObj(f); - } - template - void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, mpl::true_) const - { - assign_functor(f,functor,mpl::true_()); - } - - // Assign to a function object allocated on the heap. - template - void - assign_functor(FunctionObj f, function_buffer& functor, mpl::false_) const - { - functor.members.obj_ptr = new FunctionObj(f); - } - template - void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, mpl::false_) const - { - typedef functor_wrapper functor_wrapper_type; - typedef typename Allocator::template rebind::other - wrapper_allocator_type; - typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type; - wrapper_allocator_type wrapper_allocator(a); - wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); - wrapper_allocator.construct(copy, functor_wrapper_type(f,a)); - functor_wrapper_type* new_f = static_cast(copy); - functor.members.obj_ptr = new_f; - } - - template - bool - assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const - { - if (!boost::detail::function::has_empty_target(boost::addressof(f))) { - assign_functor(f, functor, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - return true; - } else { - return false; - } - } - template - bool - assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const - { - if (!boost::detail::function::has_empty_target(boost::addressof(f))) { - assign_functor_a(f, functor, a, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - return true; - } else { - return false; - } - } - - // Reference to a function object - template - bool - assign_to(const reference_wrapper& f, - function_buffer& functor, function_obj_ref_tag) const - { - functor.members.obj_ref.obj_ptr = (void *)(f.get_pointer()); - functor.members.obj_ref.is_const_qualified = is_const::value; - functor.members.obj_ref.is_volatile_qualified = is_volatile::value; - return true; - } - template - bool - assign_to_a(const reference_wrapper& f, - function_buffer& functor, Allocator, function_obj_ref_tag) const - { - return assign_to(f,functor,function_obj_ref_tag()); - } - - public: - vtable_base base; - invoker_type invoker; - }; - } // end namespace function - } // end namespace detail - - template< - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - class BOOST_FUNCTION_FUNCTION : public function_base - -#if BOOST_FUNCTION_NUM_ARGS == 1 - - , public std::unary_function - -#elif BOOST_FUNCTION_NUM_ARGS == 2 - - , public std::binary_function - -#endif - - { - public: -#ifndef BOOST_NO_VOID_RETURNS - typedef R result_type; -#else - typedef typename boost::detail::function::function_return_type::type - result_type; -#endif // BOOST_NO_VOID_RETURNS - - private: - typedef boost::detail::function::BOOST_FUNCTION_VTABLE< - R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS> - vtable_type; - - vtable_type* get_vtable() const { - return reinterpret_cast( - reinterpret_cast(vtable) & ~static_cast(0x01)); - } - - struct clear_type {}; - - public: - BOOST_STATIC_CONSTANT(int, args = BOOST_FUNCTION_NUM_ARGS); - - // add signature for boost::lambda - template - struct sig - { - typedef result_type type; - }; - -#if BOOST_FUNCTION_NUM_ARGS == 1 - typedef T0 argument_type; -#elif BOOST_FUNCTION_NUM_ARGS == 2 - typedef T0 first_argument_type; - typedef T1 second_argument_type; -#endif - - BOOST_STATIC_CONSTANT(int, arity = BOOST_FUNCTION_NUM_ARGS); - BOOST_FUNCTION_ARG_TYPES - - typedef BOOST_FUNCTION_FUNCTION self_type; - - BOOST_FUNCTION_FUNCTION() : function_base() { } - - // MSVC chokes if the following two constructors are collapsed into - // one with a default parameter. - template - BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f -#ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< - !(is_integral::value), - int>::type = 0 -#endif // BOOST_NO_SFINAE - ) : - function_base() - { - this->assign_to(f); - } - template - BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a -#ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< - !(is_integral::value), - int>::type = 0 -#endif // BOOST_NO_SFINAE - ) : - function_base() - { - this->assign_to_a(f,a); - } - -#ifndef BOOST_NO_SFINAE - BOOST_FUNCTION_FUNCTION(clear_type*) : function_base() { } -#else - BOOST_FUNCTION_FUNCTION(int zero) : function_base() - { - BOOST_ASSERT(zero == 0); - } -#endif - - BOOST_FUNCTION_FUNCTION(const BOOST_FUNCTION_FUNCTION& f) : function_base() - { - this->assign_to_own(f); - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - BOOST_FUNCTION_FUNCTION(BOOST_FUNCTION_FUNCTION&& f) : function_base() - { - this->move_assign(f); - } -#endif - - ~BOOST_FUNCTION_FUNCTION() { clear(); } - - result_type operator()(BOOST_FUNCTION_PARMS) const - { - if (this->empty()) - boost::throw_exception(bad_function_call()); - - return get_vtable()->invoker - (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); - } - - // The distinction between when to use BOOST_FUNCTION_FUNCTION and - // when to use self_type is obnoxious. MSVC cannot handle self_type as - // the return type of these assignment operators, but Borland C++ cannot - // handle BOOST_FUNCTION_FUNCTION as the type of the temporary to - // construct. - template -#ifndef BOOST_NO_SFINAE - typename boost::enable_if_c< - !(is_integral::value), - BOOST_FUNCTION_FUNCTION&>::type -#else - BOOST_FUNCTION_FUNCTION& -#endif - operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f) - { - this->clear(); - BOOST_TRY { - this->assign_to(f); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - return *this; - } - template - void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a) - { - this->clear(); - BOOST_TRY{ - this->assign_to_a(f,a); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - } - -#ifndef BOOST_NO_SFINAE - BOOST_FUNCTION_FUNCTION& operator=(clear_type*) - { - this->clear(); - return *this; - } -#else - BOOST_FUNCTION_FUNCTION& operator=(int zero) - { - BOOST_ASSERT(zero == 0); - this->clear(); - return *this; - } -#endif - - // Assignment from another BOOST_FUNCTION_FUNCTION - BOOST_FUNCTION_FUNCTION& operator=(const BOOST_FUNCTION_FUNCTION& f) - { - if (&f == this) - return *this; - - this->clear(); - BOOST_TRY { - this->assign_to_own(f); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - return *this; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - // Move assignment from another BOOST_FUNCTION_FUNCTION - BOOST_FUNCTION_FUNCTION& operator=(BOOST_FUNCTION_FUNCTION&& f) - { - if (&f == this) - return *this; - - this->clear(); - BOOST_TRY { - this->move_assign(f); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - return *this; - } -#endif - - void swap(BOOST_FUNCTION_FUNCTION& other) - { - if (&other == this) - return; - - BOOST_FUNCTION_FUNCTION tmp; - tmp.move_assign(*this); - this->move_assign(other); - other.move_assign(tmp); - } - - // Clear out a target, if there is one - void clear() - { - if (vtable) { - if (!this->has_trivial_copy_and_destroy()) - get_vtable()->clear(this->functor); - vtable = 0; - } - } - -#if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined BOOST_NO_COMPILER_CONFIG) - // Sun C++ 5.3 can't handle the safe_bool idiom, so don't use it - operator bool () const { return !this->empty(); } -#else - private: - struct dummy { - void nonnull() {} - }; - - typedef void (dummy::*safe_bool)(); - - public: - operator safe_bool () const - { return (this->empty())? 0 : &dummy::nonnull; } - - bool operator!() const - { return this->empty(); } -#endif - - private: - void assign_to_own(const BOOST_FUNCTION_FUNCTION& f) - { - if (!f.empty()) { - this->vtable = f.vtable; - if (this->has_trivial_copy_and_destroy()) - this->functor = f.functor; - else - get_vtable()->base.manager(f.functor, this->functor, - boost::detail::function::clone_functor_tag); - } - } - - template - void assign_to(Functor f) - { - using boost::detail::function::vtable_base; - - typedef typename boost::detail::function::get_function_tag::type tag; - typedef boost::detail::function::BOOST_FUNCTION_GET_INVOKER get_invoker; - typedef typename get_invoker:: - template apply - handler_type; - - typedef typename handler_type::invoker_type invoker_type; - typedef typename handler_type::manager_type manager_type; - - // Note: it is extremely important that this initialization use - // static initialization. Otherwise, we will have a race - // condition here in multi-threaded code. See - // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/. - static const vtable_type stored_vtable = - { { &manager_type::manage }, &invoker_type::invoke }; - - if (stored_vtable.assign_to(f, functor)) { - std::size_t value = reinterpret_cast(&stored_vtable.base); - // coverity[pointless_expression]: suppress coverity warnings on apparant if(const). - if (boost::has_trivial_copy_constructor::value && - boost::has_trivial_destructor::value && - boost::detail::function::function_allows_small_object_optimization::value) - value |= static_cast(0x01); - vtable = reinterpret_cast(value); - } else - vtable = 0; - } - - template - void assign_to_a(Functor f,Allocator a) - { - using boost::detail::function::vtable_base; - - typedef typename boost::detail::function::get_function_tag::type tag; - typedef boost::detail::function::BOOST_FUNCTION_GET_INVOKER get_invoker; - typedef typename get_invoker:: - template apply_a - handler_type; - - typedef typename handler_type::invoker_type invoker_type; - typedef typename handler_type::manager_type manager_type; - - // Note: it is extremely important that this initialization use - // static initialization. Otherwise, we will have a race - // condition here in multi-threaded code. See - // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/. - static const vtable_type stored_vtable = - { { &manager_type::manage }, &invoker_type::invoke }; - - if (stored_vtable.assign_to_a(f, functor, a)) { - std::size_t value = reinterpret_cast(&stored_vtable.base); - // coverity[pointless_expression]: suppress coverity warnings on apparant if(const). - if (boost::has_trivial_copy_constructor::value && - boost::has_trivial_destructor::value && - boost::detail::function::function_allows_small_object_optimization::value) - value |= static_cast(0x01); - vtable = reinterpret_cast(value); - } else - vtable = 0; - } - - // Moves the value from the specified argument to *this. If the argument - // has its function object allocated on the heap, move_assign will pass - // its buffer to *this, and set the argument's buffer pointer to NULL. - void move_assign(BOOST_FUNCTION_FUNCTION& f) - { - if (&f == this) - return; - - BOOST_TRY { - if (!f.empty()) { - this->vtable = f.vtable; - if (this->has_trivial_copy_and_destroy()) - this->functor = f.functor; - else - get_vtable()->base.manager(f.functor, this->functor, - boost::detail::function::move_functor_tag); - f.vtable = 0; - } else { - clear(); - } - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - } - }; - - template - inline void swap(BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >& f1, - BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >& f2) - { - f1.swap(f2); - } - -// Poison comparisons between boost::function objects of the same type. -template - void operator==(const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>&, - const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>&); -template - void operator!=(const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>&, - const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>& ); - -#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) - -#if BOOST_FUNCTION_NUM_ARGS == 0 -#define BOOST_FUNCTION_PARTIAL_SPEC R (void) -#else -#define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS,T)) -#endif - -template -class function - : public BOOST_FUNCTION_FUNCTION -{ - typedef BOOST_FUNCTION_FUNCTION base_type; - typedef function self_type; - - struct clear_type {}; - -public: - - function() : base_type() {} - - template - function(Functor f -#ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< - !(is_integral::value), - int>::type = 0 -#endif - ) : - base_type(f) - { - } - template - function(Functor f, Allocator a -#ifndef BOOST_NO_SFINAE - ,typename boost::enable_if_c< - !(is_integral::value), - int>::type = 0 -#endif - ) : - base_type(f,a) - { - } - -#ifndef BOOST_NO_SFINAE - function(clear_type*) : base_type() {} -#endif - - function(const self_type& f) : base_type(static_cast(f)){} - - function(const base_type& f) : base_type(static_cast(f)){} - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - // Move constructors - function(self_type&& f): base_type(static_cast(f)){} - function(base_type&& f): base_type(static_cast(f)){} -#endif - - self_type& operator=(const self_type& f) - { - self_type(f).swap(*this); - return *this; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - self_type& operator=(self_type&& f) - { - self_type(static_cast(f)).swap(*this); - return *this; - } -#endif - - template -#ifndef BOOST_NO_SFINAE - typename boost::enable_if_c< - !(is_integral::value), - self_type&>::type -#else - self_type& -#endif - operator=(Functor f) - { - self_type(f).swap(*this); - return *this; - } - -#ifndef BOOST_NO_SFINAE - self_type& operator=(clear_type*) - { - this->clear(); - return *this; - } -#endif - - self_type& operator=(const base_type& f) - { - self_type(f).swap(*this); - return *this; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - self_type& operator=(base_type&& f) - { - self_type(static_cast(f)).swap(*this); - return *this; - } -#endif -}; - -#undef BOOST_FUNCTION_PARTIAL_SPEC -#endif // have partial specialization - -} // end namespace boost - -// Cleanup after ourselves... -#undef BOOST_FUNCTION_VTABLE -#undef BOOST_FUNCTION_COMMA -#undef BOOST_FUNCTION_FUNCTION -#undef BOOST_FUNCTION_FUNCTION_INVOKER -#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER -#undef BOOST_FUNCTION_FUNCTION_OBJ_INVOKER -#undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER -#undef BOOST_FUNCTION_FUNCTION_REF_INVOKER -#undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER -#undef BOOST_FUNCTION_MEMBER_INVOKER -#undef BOOST_FUNCTION_VOID_MEMBER_INVOKER -#undef BOOST_FUNCTION_GET_FUNCTION_INVOKER -#undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER -#undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER -#undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER -#undef BOOST_FUNCTION_GET_INVOKER -#undef BOOST_FUNCTION_TEMPLATE_PARMS -#undef BOOST_FUNCTION_TEMPLATE_ARGS -#undef BOOST_FUNCTION_PARMS -#undef BOOST_FUNCTION_PARM -#ifdef BOOST_FUNCTION_ARG -# undef BOOST_FUNCTION_ARG -#endif -#undef BOOST_FUNCTION_ARGS -#undef BOOST_FUNCTION_ARG_TYPE -#undef BOOST_FUNCTION_ARG_TYPES -#undef BOOST_FUNCTION_VOID_RETURN_TYPE -#undef BOOST_FUNCTION_RETURN - -#if defined(BOOST_MSVC) -# pragma warning( pop ) -#endif diff --git a/lib/3rdParty/boost/boost/function/function_typeof.hpp b/lib/3rdParty/boost/boost/function/function_typeof.hpp deleted file mode 100644 index 246dc15d0..000000000 --- a/lib/3rdParty/boost/boost/function/function_typeof.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// Boost.Function library - Typeof support -// Copyright (C) Douglas Gregor 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) -// -// For more information, see http://www.boost.org -#ifndef BOOST_FUNCTION_TYPEOF_HPP -#define BOOST_FUNCTION_TYPEOF_HPP -#include -#include - -#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() - -BOOST_TYPEOF_REGISTER_TYPE(boost::bad_function_call) - -#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function, (typename)) -#endif - -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function0, (typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function1, (typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function2, (typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function3, - (typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function4, - (typename)(typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function5, - (typename)(typename)(typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function6, - (typename)(typename)(typename)(typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function7, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function8, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function9, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function10, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)(typename)(typename)(typename)) -#endif diff --git a/lib/3rdParty/boost/boost/function/gen_function_N.pl b/lib/3rdParty/boost/boost/function/gen_function_N.pl deleted file mode 100644 index d8f1249b0..000000000 --- a/lib/3rdParty/boost/boost/function/gen_function_N.pl +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/perl -w -# -# Boost.Function library -# -# Copyright Douglas Gregor 2001-2003. 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) -# -# For more information, see http://www.boost.org -use English; - -if ($#ARGV < 0) { - print "Usage: perl gen_function_N \n"; - exit; -} - - -$totalNumArgs = $ARGV[0]; -for ($numArgs = 0; $numArgs <= $totalNumArgs; ++$numArgs) { - open OUT, ">function$numArgs.hpp"; - print OUT "#define BOOST_FUNCTION_NUM_ARGS $numArgs\n"; - print OUT "#include \n"; - print OUT "#undef BOOST_FUNCTION_NUM_ARGS\n"; - close OUT; -} diff --git a/lib/3rdParty/boost/boost/function_equal.hpp b/lib/3rdParty/boost/boost/function_equal.hpp deleted file mode 100644 index 2d76c75bc..000000000 --- a/lib/3rdParty/boost/boost/function_equal.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright Douglas Gregor 2004. -// Copyright 2005 Peter Dimov - -// 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) - -// For more information, see http://www.boost.org -#ifndef BOOST_FUNCTION_EQUAL_HPP -#define BOOST_FUNCTION_EQUAL_HPP - -namespace boost { - -template - bool function_equal_impl(const F& f, const G& g, long) - { return f == g; } - -// function_equal_impl needs to be unqualified to pick -// user overloads on two-phase compilers - -template - bool function_equal(const F& f, const G& g) - { return function_equal_impl(f, g, 0); } - -} // end namespace boost - -#endif // BOOST_FUNCTION_EQUAL_HPP diff --git a/lib/3rdParty/boost/boost/functional/factory.hpp b/lib/3rdParty/boost/boost/functional/factory.hpp deleted file mode 100644 index 67fee71d6..000000000 --- a/lib/3rdParty/boost/boost/functional/factory.hpp +++ /dev/null @@ -1,179 +0,0 @@ -/*============================================================================= - Copyright (c) 2007 Tobias Schwinger - - 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_FUNCTIONAL_FACTORY_HPP_INCLUDED -# ifndef BOOST_PP_IS_ITERATING - -# include -# include -# include - -# include -# include -# include -# include -# include - -# if defined(BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T) -# include -# endif - -# ifndef BOOST_FUNCTIONAL_FACTORY_MAX_ARITY -# define BOOST_FUNCTIONAL_FACTORY_MAX_ARITY 10 -# elif BOOST_FUNCTIONAL_FACTORY_MAX_ARITY < 3 -# undef BOOST_FUNCTIONAL_FACTORY_MAX_ARITY -# define BOOST_FUNCTIONAL_FACTORY_MAX_ARITY 3 -# endif - -namespace boost -{ - enum factory_alloc_propagation - { - factory_alloc_for_pointee_and_deleter, - factory_passes_alloc_to_smart_pointer - }; - -#if defined(BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T) - template< typename Pointer, class Allocator = boost::none_t, - factory_alloc_propagation AP = factory_alloc_for_pointee_and_deleter > - class factory; -#else - template< typename Pointer, class Allocator = void, - factory_alloc_propagation AP = factory_alloc_for_pointee_and_deleter > - class factory; -#endif - - //----- ---- --- -- - - - - - - template< typename Pointer, factory_alloc_propagation AP > - class factory - { - public: - typedef typename boost::remove_cv::type result_type; - typedef typename boost::pointee::type value_type; - - factory() - { } - -# define BOOST_PP_FILENAME_1 -# define BOOST_PP_ITERATION_LIMITS (0,BOOST_FUNCTIONAL_FACTORY_MAX_ARITY) -# include BOOST_PP_ITERATE() - }; - -#if defined(BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T) - template< typename Pointer, factory_alloc_propagation AP > - class factory - : public factory - {}; -#endif - - template< class Pointer, class Allocator, factory_alloc_propagation AP > - class factory - : private Allocator::template rebind< typename boost::pointee< - typename boost::remove_cv::type >::type >::other - { - public: - typedef typename boost::remove_cv::type result_type; - typedef typename boost::pointee::type value_type; - - typedef typename Allocator::template rebind::other - allocator_type; - - explicit factory(allocator_type const & a = allocator_type()) - : allocator_type(a) - { } - - private: - - struct deleter - : allocator_type - { - inline deleter(allocator_type const& that) - : allocator_type(that) - { } - - allocator_type& get_allocator() const - { - return *const_cast( - static_cast(this)); - } - - void operator()(value_type* ptr) const - { - if (!! ptr) ptr->~value_type(); - const_cast(static_cast( - this))->deallocate(ptr,1); - } - }; - - inline allocator_type& get_allocator() const - { - return *const_cast( - static_cast(this)); - } - - inline result_type make_pointer(value_type* ptr, boost::non_type< - factory_alloc_propagation,factory_passes_alloc_to_smart_pointer>) - const - { - return result_type(ptr,deleter(this->get_allocator())); - } - inline result_type make_pointer(value_type* ptr, boost::non_type< - factory_alloc_propagation,factory_alloc_for_pointee_and_deleter>) - const - { - return result_type(ptr,deleter(this->get_allocator()), - this->get_allocator()); - } - - public: - -# define BOOST_TMP_MACRO -# define BOOST_PP_FILENAME_1 -# define BOOST_PP_ITERATION_LIMITS (0,BOOST_FUNCTIONAL_FACTORY_MAX_ARITY) -# include BOOST_PP_ITERATE() -# undef BOOST_TMP_MACRO - }; - - template< typename Pointer, class Allocator, factory_alloc_propagation AP > - class factory; - // forbidden, would create a dangling reference -} - -# define BOOST_FUNCTIONAL_FACTORY_HPP_INCLUDED -# else // defined(BOOST_PP_IS_ITERATING) -# define N BOOST_PP_ITERATION() -# if !defined(BOOST_TMP_MACRO) -# if N > 0 - template< BOOST_PP_ENUM_PARAMS(N, typename T) > -# endif - inline result_type operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a)) const - { - return result_type( new value_type(BOOST_PP_ENUM_PARAMS(N,a)) ); - } -# else // defined(BOOST_TMP_MACRO) -# if N > 0 - template< BOOST_PP_ENUM_PARAMS(N, typename T) > -# endif - inline result_type operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a)) const - { - value_type* memory = this->get_allocator().allocate(1); - try - { - return make_pointer( - new(memory) value_type(BOOST_PP_ENUM_PARAMS(N,a)), - boost::non_type() ); - } - catch (...) { this->get_allocator().deallocate(memory,1); throw; } - } -# endif -# undef N -# endif // defined(BOOST_PP_IS_ITERATING) - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/functional/forward_adapter.hpp b/lib/3rdParty/boost/boost/functional/forward_adapter.hpp deleted file mode 100644 index 6023fc2ae..000000000 --- a/lib/3rdParty/boost/boost/functional/forward_adapter.hpp +++ /dev/null @@ -1,501 +0,0 @@ -/*============================================================================= - Copyright (c) 2007-2008 Tobias Schwinger - - 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_FUNCTIONAL_FORWARD_ADAPTER_HPP_INCLUDED -# ifndef BOOST_PP_IS_ITERATING - -# include -# include - -# include -# include -# include -# include -# include - -# include - -# ifndef BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY -# define BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY 6 -# elif BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY < 3 -# undef BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY -# define BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY 3 -# endif - - -namespace boost -{ - template< typename Function, int Arity_Or_MinArity = -1, int MaxArity = -1 > - class forward_adapter; - - //----- ---- --- -- - - - - - - namespace detail - { - template< class MostDerived, typename Function, typename FunctionConst, - int Arity, int MinArity > - struct forward_adapter_impl; - - struct forward_adapter_result - { - template< typename Sig > struct apply; - - // Utility metafunction for qualification adjustment on arguments - template< typename T > struct q { typedef T const t; }; - template< typename T > struct q { typedef T const t; }; - template< typename T > struct q { typedef T t; }; - - // Utility metafunction to choose target function qualification - template< typename T > struct c - { typedef typename T::target_function_t t; }; - template< typename T > struct c - { typedef typename T::target_function_t t; }; - template< typename T > struct c - { typedef typename T::target_function_const_t t; }; - template< typename T > struct c - { typedef typename T::target_function_const_t t; }; - }; - } - -# define BOOST_TMP_MACRO(f,fn,fc) \ - boost::detail::forward_adapter_impl< \ - forward_adapter, fn, fc, \ - (MaxArity!=-1? MaxArity :Arity_Or_MinArity!=-1? Arity_Or_MinArity \ - :BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY), \ - (Arity_Or_MinArity!=-1? Arity_Or_MinArity : 0) > - - template< typename Function, int Arity_Or_MinArity, int MaxArity > - class forward_adapter - : public BOOST_TMP_MACRO(Function,Function,Function const) - , private Function - { - public: - forward_adapter(Function const& f = Function()) - : Function(f) - { } - - typedef Function target_function_t; - typedef Function const target_function_const_t; - - Function & target_function() { return *this; } - Function const & target_function() const { return *this; } - - template< typename Sig > struct result - : detail::forward_adapter_result::template apply - { }; - - using BOOST_TMP_MACRO(Function,Function, Function const)::operator(); - }; - template< typename Function, int Arity_Or_MinArity, int MaxArity > - class forward_adapter< Function const, Arity_Or_MinArity, MaxArity > - : public BOOST_TMP_MACRO(Function const, Function const, Function const) - , private Function - { - public: - forward_adapter(Function const& f = Function()) - : Function(f) - { } - - typedef Function const target_function_t; - typedef Function const target_function_const_t; - - Function const & target_function() const { return *this; } - - template< typename Sig > struct result - : detail::forward_adapter_result::template apply - { }; - - using BOOST_TMP_MACRO(Function const,Function const, Function const) - ::operator(); - }; - template< typename Function, int Arity_Or_MinArity, int MaxArity > - class forward_adapter< Function &, Arity_Or_MinArity, MaxArity > - : public BOOST_TMP_MACRO(Function&, Function, Function) - { - Function& ref_function; - public: - forward_adapter(Function& f) - : ref_function(f) - { } - - typedef Function target_function_t; - typedef Function target_function_const_t; - - Function & target_function() const { return this->ref_function; } - - template< typename Sig > struct result - : detail::forward_adapter_result::template apply - { }; - - using BOOST_TMP_MACRO(Function&, Function, Function)::operator(); - }; - - #undef BOOST_TMP_MACRO - - namespace detail - { - template< class Self > - struct forward_adapter_result::apply< Self() > - : boost::result_of< BOOST_DEDUCED_TYPENAME c::t() > - { }; - - // WHen operator()() doesn't have any parameters, it can't - // be templatized and can't use SFINAE, so intead use class - // template parameter SFINAE to decide whether to instantiate it. - - template - struct forward_adapter_sfinae - { - typedef T type; - }; - - // This is the fallback for when there isn't an operator()(), - // need to create an operator() that will never instantiate - // so that using parent::operator() will work okay. - template< class MD, class F, class FC, class Enable = void> - struct forward_adapter_impl_zero - { - template struct never_instantiate {}; - template - typename never_instantiate::type operator()(T) const {} - }; - - template< class MD, class F, class FC> - struct forward_adapter_impl_zero::type>::type> - { - inline typename boost::result_of< FC() >::type - operator()() const - { - return static_cast(this)->target_function()(); - } - - inline typename boost::result_of< F() >::type - operator()() - { - return static_cast(this)->target_function()(); - } - }; - - template< class MD, class F, class FC > - struct forward_adapter_impl - : forward_adapter_impl_zero - { - using forward_adapter_impl_zero::operator(); - - // closing brace gets generated by preprocessing code, below - -# define BOOST_TMP_MACRO(tpl_params,arg_types,params,args) \ - template< tpl_params > \ - inline typename boost::result_of< FC(arg_types) >::type \ - operator()(params) const \ - { \ - return static_cast(this)->target_function()(args); \ - } \ - template< tpl_params > \ - inline typename boost::result_of< F(arg_types)>::type \ - operator()(params) \ - { \ - return static_cast(this)->target_function()(args); \ - } - -# // This is the total number of iterations we need -# define count ((1 << BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY+1)-2) - -# // Chain file iteration to virtually one loop -# if BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY <= 7 -# define limit1 count -# define limit2 0 -# define limit3 0 -# else -# if BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY <= 15 -# define limit1 (count >> 8) -# define limit2 255 -# define limit3 0 -# else -# define limit1 (count >> 16) -# define limit2 255 -# define limit3 255 -# endif -# endif - -# define N 0 - -# define BOOST_PP_FILENAME_1 -# define BOOST_PP_ITERATION_LIMITS (0,limit1) -# include BOOST_PP_ITERATE() - -# undef N -# undef limit3 -# undef limit2 -# undef limit1 -# undef count -# undef BOOST_TMP_MACRO - - }; - - } // namespace detail - - template - struct result_of const ()> - : boost::detail::forward_adapter_result::template apply< - boost::forward_adapter const () > - { }; - template - struct result_of()> - : boost::detail::forward_adapter_result::template apply< - boost::forward_adapter() > - { }; - template - struct result_of const& ()> - : boost::detail::forward_adapter_result::template apply< - boost::forward_adapter const () > - { }; - template - struct result_of& ()> - : boost::detail::forward_adapter_result::template apply< - boost::forward_adapter() > - { }; -} - -# define BOOST_FUNCTIONAL_FORWARD_ADAPTER_HPP_INCLUDED - -# elif BOOST_PP_ITERATION_DEPTH() == 1 && limit2 -# define BOOST_PP_FILENAME_2 -# define BOOST_PP_ITERATION_LIMITS (0,limit2) -# include BOOST_PP_ITERATE() -# elif BOOST_PP_ITERATION_DEPTH() == 2 && limit3 -# define BOOST_PP_FILENAME_3 -# define BOOST_PP_ITERATION_LIMITS (0,limit3) -# include BOOST_PP_ITERATE() - -# else - -# // I is the loop counter -# if limit2 && limit3 -# define I (BOOST_PP_ITERATION_1 << 16 | BOOST_PP_ITERATION_2 << 8 | \ - BOOST_PP_ITERATION_3) -# elif limit2 -# define I (BOOST_PP_ITERATION_1 << 8 | BOOST_PP_ITERATION_2) -# else -# define I BOOST_PP_ITERATION_1 -# endif - -# if I < count - -# // Done for this arity? Increment N -# if (I+2 >> N+1) -# if N == 0 -# undef N -# define N 1 -# elif N == 1 -# undef N -# define N 2 -# elif N == 2 -# undef N -# define N 3 -# elif N == 3 -# undef N -# define N 4 -# elif N == 4 -# undef N -# define N 5 -# elif N == 5 -# undef N -# define N 6 -# elif N == 6 -# undef N -# define N 7 -# elif N == 7 -# undef N -# define N 8 -# elif N == 8 -# undef N -# define N 9 -# elif N == 9 -# undef N -# define N 10 -# elif N == 10 -# undef N -# define N 11 -# elif N == 11 -# undef N -# define N 12 -# elif N == 12 -# undef N -# define N 13 -# elif N == 13 -# undef N -# define N 14 -# elif N == 14 -# undef N -# define N 15 -# elif N == 15 -# undef N -# define N 16 -# endif - - }; - - template< class Self, BOOST_PP_ENUM_PARAMS(N,typename T) > - struct forward_adapter_result::apply< Self(BOOST_PP_ENUM_PARAMS(N,T)) > - : boost::result_of< - BOOST_DEDUCED_TYPENAME c::t(BOOST_PP_ENUM_BINARY_PARAMS(N, - typename q::t& BOOST_PP_INTERCEPT)) > - { }; - - template< class MD, class F, class FC > - struct forward_adapter_impl - { - template< BOOST_PP_ENUM_PARAMS(N,typename T) > - inline typename boost::result_of< F( - BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)) >::type - operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)); - }; - - template< class MD, class F, class FC, int MinArity > - struct forward_adapter_impl - : forward_adapter_impl - { - using forward_adapter_impl::operator(); - -# endif - -# // Zero based count for each arity would be I-(1< - inline typename boost::result_of< FC(BOOST_PP_ENUM_PARAMS(N,PT)) - >::type - operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,PT,a)) const - { - return static_cast(this) - ->target_function()(BOOST_PP_ENUM_PARAMS(N,a)); - } - template< BOOST_PP_ENUM_PARAMS(N,typename T) > - inline typename boost::result_of< F(BOOST_PP_ENUM_PARAMS(N,PT)) - >::type - operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,PT,a)) - { - return static_cast(this) - ->target_function()(BOOST_PP_ENUM_PARAMS(N,a)); - } -# else - BOOST_TMP_MACRO(BOOST_PP_ENUM_PARAMS(N,typename T), - BOOST_PP_ENUM_PARAMS(N,PT), BOOST_PP_ENUM_BINARY_PARAMS(N,PT,a), - BOOST_PP_ENUM_PARAMS(N,a) ) - // ...generates uglier code but is faster - it caches ENUM_* -# endif - -# undef PT0 -# undef PT1 -# undef PT2 -# undef PT3 -# undef PT4 -# undef PT5 -# undef PT6 -# undef PT7 -# undef PT8 -# undef PT9 -# undef PT10 -# undef PT11 -# undef PT12 -# undef PT13 -# undef PT14 -# undef PT15 - -# endif // I < count - -# undef I -# endif // defined(BOOST_PP_IS_ITERATING) - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/functional/hash.hpp b/lib/3rdParty/boost/boost/functional/hash.hpp deleted file mode 100644 index 44983f19b..000000000 --- a/lib/3rdParty/boost/boost/functional/hash.hpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include - diff --git a/lib/3rdParty/boost/boost/functional/hash/detail/float_functions.hpp b/lib/3rdParty/boost/boost/functional/hash/detail/float_functions.hpp deleted file mode 100644 index f3db52f9c..000000000 --- a/lib/3rdParty/boost/boost/functional/hash/detail/float_functions.hpp +++ /dev/null @@ -1,336 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// 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) - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP) -#define BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include - -// Set BOOST_HASH_CONFORMANT_FLOATS to 1 for libraries known to have -// sufficiently good floating point support to not require any -// workarounds. -// -// When set to 0, the library tries to automatically -// use the best available implementation. This normally works well, but -// breaks when ambiguities are created by odd namespacing of the functions. -// -// Note that if this is set to 0, the library should still take full -// advantage of the platform's floating point support. - -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__LIBCOMO__) -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) -// Rogue Wave library: -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(_LIBCPP_VERSION) -// libc++ -# define BOOST_HASH_CONFORMANT_FLOATS 1 -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -// GNU libstdc++ 3 -# if defined(__GNUC__) && __GNUC__ >= 4 -# define BOOST_HASH_CONFORMANT_FLOATS 1 -# else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -# endif -#elif defined(__STL_CONFIG_H) -// generic SGI STL -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__MSL_CPP__) -// MSL standard lib: -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__IBMCPP__) -// VACPP std lib (probably conformant for much earlier version). -# if __IBMCPP__ >= 1210 -# define BOOST_HASH_CONFORMANT_FLOATS 1 -# else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -# endif -#elif defined(MSIPL_COMPILE_H) -// Modena C++ standard library -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -// Dinkumware Library (this has to appear after any possible replacement libraries): -# if _CPPLIB_VER >= 405 -# define BOOST_HASH_CONFORMANT_FLOATS 1 -# else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -# endif -#else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#endif - -#if BOOST_HASH_CONFORMANT_FLOATS - -// The standard library is known to be compliant, so don't use the -// configuration mechanism. - -namespace boost { - namespace hash_detail { - template - struct call_ldexp { - typedef Float float_type; - inline Float operator()(Float x, int y) const { - return std::ldexp(x, y); - } - }; - - template - struct call_frexp { - typedef Float float_type; - inline Float operator()(Float x, int* y) const { - return std::frexp(x, y); - } - }; - - template - struct select_hash_type - { - typedef Float type; - }; - } -} - -#else // BOOST_HASH_CONFORMANT_FLOATS == 0 - -// The C++ standard requires that the C float functions are overloarded -// for float, double and long double in the std namespace, but some of the older -// library implementations don't support this. On some that don't, the C99 -// float functions (frexpf, frexpl, etc.) are available. -// -// The following tries to automatically detect which are available. - -namespace boost { - namespace hash_detail { - - // Returned by dummy versions of the float functions. - - struct not_found { - // Implicitly convertible to float and long double in order to avoid - // a compile error when the dummy float functions are used. - - inline operator float() const { return 0; } - inline operator long double() const { return 0; } - }; - - // A type for detecting the return type of functions. - - template struct is; - template <> struct is { char x[10]; }; - template <> struct is { char x[20]; }; - template <> struct is { char x[30]; }; - template <> struct is { char x[40]; }; - - // Used to convert the return type of a function to a type for sizeof. - - template is float_type(T); - - // call_ldexp - // - // This will get specialized for float and long double - - template struct call_ldexp - { - typedef double float_type; - - inline double operator()(double a, int b) const - { - using namespace std; - return ldexp(a, b); - } - }; - - // call_frexp - // - // This will get specialized for float and long double - - template struct call_frexp - { - typedef double float_type; - - inline double operator()(double a, int* b) const - { - using namespace std; - return frexp(a, b); - } - }; - } -} - -// A namespace for dummy functions to detect when the actual function we want -// isn't available. ldexpl, ldexpf etc. might be added tby the macros below. -// -// AFAICT these have to be outside of the boost namespace, as if they're in -// the boost namespace they'll always be preferable to any other function -// (since the arguments are built in types, ADL can't be used). - -namespace boost_hash_detect_float_functions { - template boost::hash_detail::not_found ldexp(Float, int); - template boost::hash_detail::not_found frexp(Float, int*); -} - -// Macros for generating specializations of call_ldexp and call_frexp. -// -// check_cpp and check_c99 check if the C++ or C99 functions are available. -// -// Then the call_* functions select an appropriate implementation. -// -// I used c99_func in a few places just to get a unique name. -// -// Important: when using 'using namespace' at namespace level, include as -// little as possible in that namespace, as Visual C++ has an odd bug which -// can cause the namespace to be imported at the global level. This seems to -// happen mainly when there's a template in the same namesapce. - -#define BOOST_HASH_CALL_FLOAT_FUNC(cpp_func, c99_func, type1, type2) \ -namespace boost_hash_detect_float_functions { \ - template \ - boost::hash_detail::not_found c99_func(Float, type2); \ -} \ - \ -namespace boost { \ - namespace hash_detail { \ - namespace c99_func##_detect { \ - using namespace std; \ - using namespace boost_hash_detect_float_functions; \ - \ - struct check { \ - static type1 x; \ - static type2 y; \ - BOOST_STATIC_CONSTANT(bool, cpp = \ - sizeof(float_type(cpp_func(x,y))) \ - == sizeof(is)); \ - BOOST_STATIC_CONSTANT(bool, c99 = \ - sizeof(float_type(c99_func(x,y))) \ - == sizeof(is)); \ - }; \ - } \ - \ - template \ - struct call_c99_##c99_func : \ - boost::hash_detail::call_##cpp_func {}; \ - \ - template <> \ - struct call_c99_##c99_func { \ - typedef type1 float_type; \ - \ - template \ - inline type1 operator()(type1 a, T b) const \ - { \ - using namespace std; \ - return c99_func(a, b); \ - } \ - }; \ - \ - template \ - struct call_cpp_##c99_func : \ - call_c99_##c99_func< \ - ::boost::hash_detail::c99_func##_detect::check::c99 \ - > {}; \ - \ - template <> \ - struct call_cpp_##c99_func { \ - typedef type1 float_type; \ - \ - template \ - inline type1 operator()(type1 a, T b) const \ - { \ - using namespace std; \ - return cpp_func(a, b); \ - } \ - }; \ - \ - template <> \ - struct call_##cpp_func : \ - call_cpp_##c99_func< \ - ::boost::hash_detail::c99_func##_detect::check::cpp \ - > {}; \ - } \ -} - -#define BOOST_HASH_CALL_FLOAT_MACRO(cpp_func, c99_func, type1, type2) \ -namespace boost { \ - namespace hash_detail { \ - \ - template <> \ - struct call_##cpp_func { \ - typedef type1 float_type; \ - inline type1 operator()(type1 x, type2 y) const { \ - return c99_func(x, y); \ - } \ - }; \ - } \ -} - -#if defined(ldexpf) -BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpf, float, int) -#else -BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpf, float, int) -#endif - -#if defined(ldexpl) -BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpl, long double, int) -#else -BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpl, long double, int) -#endif - -#if defined(frexpf) -BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpf, float, int*) -#else -BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpf, float, int*) -#endif - -#if defined(frexpl) -BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpl, long double, int*) -#else -BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpl, long double, int*) -#endif - -#undef BOOST_HASH_CALL_FLOAT_MACRO -#undef BOOST_HASH_CALL_FLOAT_FUNC - - -namespace boost -{ - namespace hash_detail - { - template - struct select_hash_type_impl { - typedef double type; - }; - - template <> - struct select_hash_type_impl { - typedef float type; - }; - - template <> - struct select_hash_type_impl { - typedef long double type; - }; - - - // select_hash_type - // - // If there is support for a particular floating point type, use that - // otherwise use double (there's always support for double). - - template - struct select_hash_type : select_hash_type_impl< - BOOST_DEDUCED_TYPENAME call_ldexp::float_type, - BOOST_DEDUCED_TYPENAME call_frexp::float_type - > {}; - } -} - -#endif // BOOST_HASH_CONFORMANT_FLOATS - -#endif diff --git a/lib/3rdParty/boost/boost/functional/hash/detail/hash_float.hpp b/lib/3rdParty/boost/boost/functional/hash/detail/hash_float.hpp deleted file mode 100644 index 9fb816845..000000000 --- a/lib/3rdParty/boost/boost/functional/hash/detail/hash_float.hpp +++ /dev/null @@ -1,271 +0,0 @@ - -// Copyright 2005-2012 Daniel James. -// 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) - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER) -#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_MSVC) -#pragma warning(push) -#if BOOST_MSVC >= 1400 -#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does - // not satisfy test. Loop body not executed -#endif -#endif - -// Can we use fpclassify? - -// STLport -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -#define BOOST_HASH_USE_FPCLASSIFY 0 - -// GNU libstdc++ 3 -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -# if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \ - !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) -# define BOOST_HASH_USE_FPCLASSIFY 1 -# else -# define BOOST_HASH_USE_FPCLASSIFY 0 -# endif - -// Everything else -#else -# define BOOST_HASH_USE_FPCLASSIFY 0 -#endif - -namespace boost -{ - namespace hash_detail - { - inline void hash_float_combine(std::size_t& seed, std::size_t value) - { - seed ^= value + (seed<<6) + (seed>>2); - } - - //////////////////////////////////////////////////////////////////////// - // Binary hash function - // - // Only used for floats with known iec559 floats, and certain values in - // numeric_limits - - inline std::size_t hash_binary(char* ptr, std::size_t length) - { - std::size_t seed = 0; - - if (length >= sizeof(std::size_t)) { - std::memcpy(&seed, ptr, sizeof(std::size_t)); - length -= sizeof(std::size_t); - ptr += sizeof(std::size_t); - - while(length >= sizeof(std::size_t)) { - std::size_t buffer = 0; - std::memcpy(&buffer, ptr, sizeof(std::size_t)); - hash_float_combine(seed, buffer); - length -= sizeof(std::size_t); - ptr += sizeof(std::size_t); - } - } - - if (length > 0) { - std::size_t buffer = 0; - std::memcpy(&buffer, ptr, length); - hash_float_combine(seed, buffer); - } - - return seed; - } - - template - struct enable_binary_hash - { - BOOST_STATIC_CONSTANT(bool, value = - std::numeric_limits::is_iec559 && - std::numeric_limits::digits == digits && - std::numeric_limits::radix == 2 && - std::numeric_limits::max_exponent == max_exponent); - }; - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 4); - } - - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 8); - } - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 10); - } - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 16); - } - - //////////////////////////////////////////////////////////////////////// - // Portable hash function - // - // Used as a fallback when the binary hash function isn't supported. - - template - inline std::size_t float_hash_impl2(T v) - { - boost::hash_detail::call_frexp frexp; - boost::hash_detail::call_ldexp ldexp; - - int exp = 0; - - v = frexp(v, &exp); - - // A postive value is easier to hash, so combine the - // sign with the exponent and use the absolute value. - if(v < 0) { - v = -v; - exp += limits::max_exponent - - limits::min_exponent; - } - - v = ldexp(v, limits::digits); - std::size_t seed = static_cast(v); - v -= static_cast(seed); - - // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1; - std::size_t const length - = (limits::digits * - boost::static_log2::radix>::value - + limits::digits - 1) - / limits::digits; - - for(std::size_t i = 0; i != length; ++i) - { - v = ldexp(v, limits::digits); - std::size_t part = static_cast(v); - v -= static_cast(part); - hash_float_combine(seed, part); - } - - hash_float_combine(seed, static_cast(exp)); - - return seed; - } - -#if !defined(BOOST_HASH_DETAIL_TEST_WITHOUT_GENERIC) - template - inline std::size_t float_hash_impl(T v, ...) - { - typedef BOOST_DEDUCED_TYPENAME select_hash_type::type type; - return float_hash_impl2(static_cast(v)); - } -#endif - } -} - -#if BOOST_HASH_USE_FPCLASSIFY - -#include - -namespace boost -{ - namespace hash_detail - { - template - inline std::size_t float_hash_value(T v) - { -#if defined(fpclassify) - switch (fpclassify(v)) -#elif BOOST_HASH_CONFORMANT_FLOATS - switch (std::fpclassify(v)) -#else - using namespace std; - switch (fpclassify(v)) -#endif - { - case FP_ZERO: - return 0; - case FP_INFINITE: - return (std::size_t)(v > 0 ? -1 : -2); - case FP_NAN: - return (std::size_t)(-3); - case FP_NORMAL: - case FP_SUBNORMAL: - return float_hash_impl(v, 0); - default: - BOOST_ASSERT(0); - return 0; - } - } - } -} - -#else // !BOOST_HASH_USE_FPCLASSIFY - -namespace boost -{ - namespace hash_detail - { - template - inline bool is_zero(T v) - { -#if !defined(__GNUC__) - return v == 0; -#else - // GCC's '-Wfloat-equal' will complain about comparing - // v to 0, but because it disables warnings for system - // headers it won't complain if you use std::equal_to to - // compare with 0. Resulting in this silliness: - return std::equal_to()(v, 0); -#endif - } - - template - inline std::size_t float_hash_value(T v) - { - return boost::hash_detail::is_zero(v) ? 0 : float_hash_impl(v, 0); - } - } -} - -#endif // BOOST_HASH_USE_FPCLASSIFY - -#undef BOOST_HASH_USE_FPCLASSIFY - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/functional/hash/detail/limits.hpp b/lib/3rdParty/boost/boost/functional/hash/detail/limits.hpp deleted file mode 100644 index 4a971a6ac..000000000 --- a/lib/3rdParty/boost/boost/functional/hash/detail/limits.hpp +++ /dev/null @@ -1,62 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// 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) -// -// On some platforms std::limits gives incorrect values for long double. -// This tries to work around them. - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER) -#define BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include - -// On OpenBSD, numeric_limits is not reliable for long doubles, but -// the macros defined in are and support long double when STLport -// doesn't. - -#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE) -#include -#endif - -namespace boost -{ - namespace hash_detail - { - template - struct limits : std::numeric_limits {}; - -#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE) - template <> - struct limits - : std::numeric_limits - { - static long double epsilon() { - return LDBL_EPSILON; - } - - static long double (max)() { - return LDBL_MAX; - } - - static long double (min)() { - return LDBL_MIN; - } - - BOOST_STATIC_CONSTANT(int, digits = LDBL_MANT_DIG); - BOOST_STATIC_CONSTANT(int, max_exponent = LDBL_MAX_EXP); - BOOST_STATIC_CONSTANT(int, min_exponent = LDBL_MIN_EXP); -#if defined(_STLP_NO_LONG_DOUBLE) - BOOST_STATIC_CONSTANT(int, radix = FLT_RADIX); -#endif - }; -#endif // __OpenBSD__ - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/functional/hash/extensions.hpp b/lib/3rdParty/boost/boost/functional/hash/extensions.hpp deleted file mode 100644 index eafaefe85..000000000 --- a/lib/3rdParty/boost/boost/functional/hash/extensions.hpp +++ /dev/null @@ -1,318 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// 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) - -// Based on Peter Dimov's proposal -// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf -// issue 6.18. - -// This implements the extensions to the standard. -// It's undocumented, so you shouldn't use it.... - -#if !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP) -#define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_NO_CXX11_HDR_ARRAY) -# include -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TUPLE) -# include -#endif - -#if !defined(BOOST_NO_CXX11_HDR_MEMORY) -# include -#endif - -#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -#include -#endif - -namespace boost -{ - template - std::size_t hash_value(std::pair const&); - template - std::size_t hash_value(std::vector const&); - template - std::size_t hash_value(std::list const& v); - template - std::size_t hash_value(std::deque const& v); - template - std::size_t hash_value(std::set const& v); - template - std::size_t hash_value(std::multiset const& v); - template - std::size_t hash_value(std::map const& v); - template - std::size_t hash_value(std::multimap const& v); - - template - std::size_t hash_value(std::complex const&); - - template - std::size_t hash_value(std::pair const& v) - { - std::size_t seed = 0; - boost::hash_combine(seed, v.first); - boost::hash_combine(seed, v.second); - return seed; - } - - template - std::size_t hash_value(std::vector const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::list const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::deque const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::set const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::multiset const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::map const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::multimap const& v) - { - return boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::complex const& v) - { - boost::hash hasher; - std::size_t seed = hasher(v.imag()); - seed ^= hasher(v.real()) + (seed<<6) + (seed>>2); - return seed; - } - -#if !defined(BOOST_NO_CXX11_HDR_ARRAY) - template - std::size_t hash_value(std::array const& v) - { - return boost::hash_range(v.begin(), v.end()); - } -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TUPLE) - namespace hash_detail { - template - inline typename boost::enable_if_c<(I == std::tuple_size::value), - void>::type - hash_combine_tuple(std::size_t&, T const&) - { - } - - template - inline typename boost::enable_if_c<(I < std::tuple_size::value), - void>::type - hash_combine_tuple(std::size_t& seed, T const& v) - { - boost::hash_combine(seed, std::get(v)); - boost::hash_detail::hash_combine_tuple(seed, v); - } - - template - inline std::size_t hash_tuple(T const& v) - { - std::size_t seed = 0; - boost::hash_detail::hash_combine_tuple<0>(seed, v); - return seed; - } - } - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - template - inline std::size_t hash_value(std::tuple const& v) - { - return boost::hash_detail::hash_tuple(v); - } -#else - - inline std::size_t hash_value(std::tuple<> const& v) - { - return boost::hash_detail::hash_tuple(v); - } - -# define BOOST_HASH_TUPLE_F(z, n, _) \ - template< \ - BOOST_PP_ENUM_PARAMS_Z(z, n, typename A) \ - > \ - inline std::size_t hash_value(std::tuple< \ - BOOST_PP_ENUM_PARAMS_Z(z, n, A) \ - > const& v) \ - { \ - return boost::hash_detail::hash_tuple(v); \ - } - - BOOST_PP_REPEAT_FROM_TO(1, 11, BOOST_HASH_TUPLE_F, _) -# undef BOOST_HASH_TUPLE_F -#endif - -#endif - -#if !defined(BOOST_NO_CXX11_SMART_PTR) - template - inline std::size_t hash_value(std::shared_ptr const& x) { - return boost::hash_value(x.get()); - } - - template - inline std::size_t hash_value(std::unique_ptr const& x) { - return boost::hash_value(x.get()); - } -#endif - - // - // call_hash_impl - // - - // On compilers without function template ordering, this deals with arrays. - -#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - namespace hash_detail - { - template - struct call_hash_impl - { - template - struct inner - { - static std::size_t call(T const& v) - { - using namespace boost; - return hash_value(v); - } - }; - }; - - template <> - struct call_hash_impl - { - template - struct inner - { - static std::size_t call(Array const& v) - { - const int size = sizeof(v) / sizeof(*v); - return boost::hash_range(v, v + size); - } - }; - }; - - template - struct call_hash - : public call_hash_impl::value> - ::BOOST_NESTED_TEMPLATE inner - { - }; - } -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - // - // boost::hash - // - - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - - template struct hash - : std::unary_function - { -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - std::size_t operator()(T const& val) const - { - return hash_value(val); - } -#else - std::size_t operator()(T const& val) const - { - return hash_detail::call_hash::call(val); - } -#endif - }; - -#if BOOST_WORKAROUND(__DMC__, <= 0x848) - template struct hash - : std::unary_function - { - std::size_t operator()(const T* val) const - { - return boost::hash_range(val, val+n); - } - }; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // On compilers without partial specialization, boost::hash - // has already been declared to deal with pointers, so just - // need to supply the non-pointer version of hash_impl. - - namespace hash_detail - { - template - struct hash_impl; - - template <> - struct hash_impl - { - template - struct inner - : std::unary_function - { -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - std::size_t operator()(T const& val) const - { - return hash_value(val); - } -#else - std::size_t operator()(T const& val) const - { - return hash_detail::call_hash::call(val); - } -#endif - }; - }; - } -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -} - -#endif diff --git a/lib/3rdParty/boost/boost/functional/hash/hash.hpp b/lib/3rdParty/boost/boost/functional/hash/hash.hpp deleted file mode 100644 index 5bba40892..000000000 --- a/lib/3rdParty/boost/boost/functional/hash/hash.hpp +++ /dev/null @@ -1,561 +0,0 @@ - -// Copyright 2005-2014 Daniel James. -// 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) - -// Based on Peter Dimov's proposal -// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf -// issue 6.18. -// -// This also contains public domain code from MurmurHash. From the -// MurmurHash header: - -// MurmurHash3 was written by Austin Appleby, and is placed in the public -// domain. The author hereby disclaims copyright to this source code. - -#if !defined(BOOST_FUNCTIONAL_HASH_HASH_HPP) -#define BOOST_FUNCTIONAL_HASH_HASH_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -#include -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) -#include -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) - -#if BOOST_MSVC >= 1400 -#pragma warning(disable:6295) // Ill-defined for-loop : 'unsigned int' values - // are always of range '0' to '4294967295'. - // Loop executes infinitely. -#endif - -#endif - -#if BOOST_WORKAROUND(__GNUC__, < 3) \ - && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -#define BOOST_HASH_CHAR_TRAITS string_char_traits -#else -#define BOOST_HASH_CHAR_TRAITS char_traits -#endif - -#if defined(_MSC_VER) -# define BOOST_FUNCTIONAL_HASH_ROTL32(x, r) _rotl(x,r) -#else -# define BOOST_FUNCTIONAL_HASH_ROTL32(x, r) (x << r) | (x >> (32 - r)) -#endif - -namespace boost -{ - namespace hash_detail - { - struct enable_hash_value { typedef std::size_t type; }; - - template struct basic_numbers {}; - template struct long_numbers; - template struct ulong_numbers; - template struct float_numbers {}; - - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - template <> struct basic_numbers : - boost::hash_detail::enable_hash_value {}; -#endif - - // long_numbers is defined like this to allow for separate - // specialization for long_long and int128_type, in case - // they conflict. - template struct long_numbers2 {}; - template struct ulong_numbers2 {}; - template struct long_numbers : long_numbers2 {}; - template struct ulong_numbers : ulong_numbers2 {}; - -#if !defined(BOOST_NO_LONG_LONG) - template <> struct long_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct ulong_numbers : - boost::hash_detail::enable_hash_value {}; -#endif - -#if defined(BOOST_HAS_INT128) - template <> struct long_numbers2 : - boost::hash_detail::enable_hash_value {}; - template <> struct ulong_numbers2 : - boost::hash_detail::enable_hash_value {}; -#endif - - template <> struct float_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct float_numbers : - boost::hash_detail::enable_hash_value {}; - template <> struct float_numbers : - boost::hash_detail::enable_hash_value {}; - } - - template - typename boost::hash_detail::basic_numbers::type hash_value(T); - template - typename boost::hash_detail::long_numbers::type hash_value(T); - template - typename boost::hash_detail::ulong_numbers::type hash_value(T); - - template - typename boost::enable_if, std::size_t>::type - hash_value(T); - -#if !BOOST_WORKAROUND(__DMC__, <= 0x848) - template std::size_t hash_value(T* const&); -#else - template std::size_t hash_value(T*); -#endif - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - template< class T, unsigned N > - std::size_t hash_value(const T (&x)[N]); - - template< class T, unsigned N > - std::size_t hash_value(T (&x)[N]); -#endif - - template - std::size_t hash_value( - std::basic_string, A> const&); - - template - typename boost::hash_detail::float_numbers::type hash_value(T); - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) - std::size_t hash_value(std::type_index); -#endif - - // Implementation - - namespace hash_detail - { - template - inline std::size_t hash_value_signed(T val) - { - const unsigned int size_t_bits = std::numeric_limits::digits; - // ceiling(std::numeric_limits::digits / size_t_bits) - 1 - const int length = (std::numeric_limits::digits - 1) - / static_cast(size_t_bits); - - std::size_t seed = 0; - T positive = val < 0 ? -1 - val : val; - - // Hopefully, this loop can be unrolled. - for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits) - { - seed ^= (std::size_t) (positive >> i) + (seed<<6) + (seed>>2); - } - seed ^= (std::size_t) val + (seed<<6) + (seed>>2); - - return seed; - } - - template - inline std::size_t hash_value_unsigned(T val) - { - const unsigned int size_t_bits = std::numeric_limits::digits; - // ceiling(std::numeric_limits::digits / size_t_bits) - 1 - const int length = (std::numeric_limits::digits - 1) - / static_cast(size_t_bits); - - std::size_t seed = 0; - - // Hopefully, this loop can be unrolled. - for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits) - { - seed ^= (std::size_t) (val >> i) + (seed<<6) + (seed>>2); - } - seed ^= (std::size_t) val + (seed<<6) + (seed>>2); - - return seed; - } - - template - inline void hash_combine_impl(SizeT& seed, SizeT value) - { - seed ^= value + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - - inline void hash_combine_impl(boost::uint32_t& h1, - boost::uint32_t k1) - { - const uint32_t c1 = 0xcc9e2d51; - const uint32_t c2 = 0x1b873593; - - k1 *= c1; - k1 = BOOST_FUNCTIONAL_HASH_ROTL32(k1,15); - k1 *= c2; - - h1 ^= k1; - h1 = BOOST_FUNCTIONAL_HASH_ROTL32(h1,13); - h1 = h1*5+0xe6546b64; - } - - -// Don't define 64-bit hash combine on platforms without 64 bit integers, -// and also not for 32-bit gcc as it warns about the 64-bit constant. -#if !defined(BOOST_NO_INT64_T) && \ - !(defined(__GNUC__) && ULONG_MAX == 0xffffffff) - - inline void hash_combine_impl(boost::uint64_t& h, - boost::uint64_t k) - { - const boost::uint64_t m = UINT64_C(0xc6a4a7935bd1e995); - const int r = 47; - - k *= m; - k ^= k >> r; - k *= m; - - h ^= k; - h *= m; - - // Completely arbitrary number, to prevent 0's - // from hashing to 0. - h += 0xe6546b64; - } - -#endif // BOOST_NO_INT64_T - } - - template - typename boost::hash_detail::basic_numbers::type hash_value(T v) - { - return static_cast(v); - } - - template - typename boost::hash_detail::long_numbers::type hash_value(T v) - { - return hash_detail::hash_value_signed(v); - } - - template - typename boost::hash_detail::ulong_numbers::type hash_value(T v) - { - return hash_detail::hash_value_unsigned(v); - } - - template - typename boost::enable_if, std::size_t>::type - hash_value(T v) - { - return static_cast(v); - } - - // Implementation by Alberto Barbati and Dave Harris. -#if !BOOST_WORKAROUND(__DMC__, <= 0x848) - template std::size_t hash_value(T* const& v) -#else - template std::size_t hash_value(T* v) -#endif - { -#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 - // for some reason ptrdiff_t on OpenVMS compiler with - // 64 bit is not 64 bit !!! - std::size_t x = static_cast( - reinterpret_cast(v)); -#else - std::size_t x = static_cast( - reinterpret_cast(v)); -#endif - return x + (x >> 3); - } - -#if defined(BOOST_MSVC) -#pragma warning(push) -#if BOOST_MSVC <= 1400 -#pragma warning(disable:4267) // 'argument' : conversion from 'size_t' to - // 'unsigned int', possible loss of data - // A misguided attempt to detect 64-bit - // incompatability. -#endif -#endif - - template - inline void hash_combine(std::size_t& seed, T const& v) - { - boost::hash hasher; - return boost::hash_detail::hash_combine_impl(seed, hasher(v)); - } - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - - template - inline std::size_t hash_range(It first, It last) - { - std::size_t seed = 0; - - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - - return seed; - } - - template - inline void hash_range(std::size_t& seed, It first, It last) - { - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - } - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) - template - inline std::size_t hash_range(T* first, T* last) - { - std::size_t seed = 0; - - for(; first != last; ++first) - { - boost::hash hasher; - seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - - return seed; - } - - template - inline void hash_range(std::size_t& seed, T* first, T* last) - { - for(; first != last; ++first) - { - boost::hash hasher; - seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - } -#endif - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - template< class T, unsigned N > - inline std::size_t hash_value(const T (&x)[N]) - { - return hash_range(x, x + N); - } - - template< class T, unsigned N > - inline std::size_t hash_value(T (&x)[N]) - { - return hash_range(x, x + N); - } -#endif - - template - inline std::size_t hash_value( - std::basic_string, A> const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - typename boost::hash_detail::float_numbers::type hash_value(T v) - { - return boost::hash_detail::float_hash_value(v); - } - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) - inline std::size_t hash_value(std::type_index v) - { - return v.hash_code(); - } -#endif - - // - // boost::hash - // - - // Define the specializations required by the standard. The general purpose - // boost::hash is defined later in extensions.hpp if - // BOOST_HASH_NO_EXTENSIONS is not defined. - - // BOOST_HASH_SPECIALIZE - define a specialization for a type which is - // passed by copy. - // - // BOOST_HASH_SPECIALIZE_REF - define a specialization for a type which is - // passed by const reference. - // - // These are undefined later. - -#define BOOST_HASH_SPECIALIZE(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; - -#define BOOST_HASH_SPECIALIZE_REF(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type const& v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; - - BOOST_HASH_SPECIALIZE(bool) - BOOST_HASH_SPECIALIZE(char) - BOOST_HASH_SPECIALIZE(signed char) - BOOST_HASH_SPECIALIZE(unsigned char) -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - BOOST_HASH_SPECIALIZE(wchar_t) -#endif - BOOST_HASH_SPECIALIZE(short) - BOOST_HASH_SPECIALIZE(unsigned short) - BOOST_HASH_SPECIALIZE(int) - BOOST_HASH_SPECIALIZE(unsigned int) - BOOST_HASH_SPECIALIZE(long) - BOOST_HASH_SPECIALIZE(unsigned long) - - BOOST_HASH_SPECIALIZE(float) - BOOST_HASH_SPECIALIZE(double) - BOOST_HASH_SPECIALIZE(long double) - - BOOST_HASH_SPECIALIZE_REF(std::string) -#if !defined(BOOST_NO_STD_WSTRING) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) - BOOST_HASH_SPECIALIZE_REF(std::wstring) -#endif - -#if !defined(BOOST_NO_LONG_LONG) - BOOST_HASH_SPECIALIZE(boost::long_long_type) - BOOST_HASH_SPECIALIZE(boost::ulong_long_type) -#endif - -#if defined(BOOST_HAS_INT128) - BOOST_HASH_SPECIALIZE(boost::int128_type) - BOOST_HASH_SPECIALIZE(boost::uint128_type) -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) - BOOST_HASH_SPECIALIZE(std::type_index) -#endif - -#undef BOOST_HASH_SPECIALIZE -#undef BOOST_HASH_SPECIALIZE_REF - -// Specializing boost::hash for pointers. - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - - template - struct hash - : public std::unary_function - { - std::size_t operator()(T* v) const - { -#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) - return boost::hash_value(v); -#else - std::size_t x = static_cast( - reinterpret_cast(v)); - - return x + (x >> 3); -#endif - } - }; - -#else - - // For compilers without partial specialization, we define a - // boost::hash for all remaining types. But hash_impl is only defined - // for pointers in 'extensions.hpp' - so when BOOST_HASH_NO_EXTENSIONS - // is defined there will still be a compile error for types not supported - // in the standard. - - namespace hash_detail - { - template - struct hash_impl; - - template <> - struct hash_impl - { - template - struct inner - : public std::unary_function - { - std::size_t operator()(T val) const - { -#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 590) - return boost::hash_value(val); -#else - std::size_t x = static_cast( - reinterpret_cast(val)); - - return x + (x >> 3); -#endif - } - }; - }; - } - - template struct hash - : public boost::hash_detail::hash_impl::value> - ::BOOST_NESTED_TEMPLATE inner - { - }; - -#endif -} - -#undef BOOST_HASH_CHAR_TRAITS -#undef BOOST_FUNCTIONAL_HASH_ROTL32 - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif // BOOST_FUNCTIONAL_HASH_HASH_HPP - -// Include this outside of the include guards in case the file is included -// twice - once with BOOST_HASH_NO_EXTENSIONS defined, and then with it -// undefined. - -#if !defined(BOOST_HASH_NO_EXTENSIONS) \ - && !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP) -#include -#endif diff --git a/lib/3rdParty/boost/boost/functional/hash/hash_fwd.hpp b/lib/3rdParty/boost/boost/functional/hash/hash_fwd.hpp deleted file mode 100644 index 01fe012ed..000000000 --- a/lib/3rdParty/boost/boost/functional/hash/hash_fwd.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// 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) - -// Based on Peter Dimov's proposal -// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf -// issue 6.18. - -#if !defined(BOOST_FUNCTIONAL_HASH_FWD_HPP) -#define BOOST_FUNCTIONAL_HASH_FWD_HPP - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include - -namespace boost -{ - template struct hash; - - template void hash_combine(std::size_t& seed, T const& v); - - template std::size_t hash_range(It, It); - template void hash_range(std::size_t&, It, It); - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) - template inline std::size_t hash_range(T*, T*); - template inline void hash_range(std::size_t&, T*, T*); -#endif -} - -#endif diff --git a/lib/3rdParty/boost/boost/functional/hash_fwd.hpp b/lib/3rdParty/boost/boost/functional/hash_fwd.hpp deleted file mode 100644 index eea907388..000000000 --- a/lib/3rdParty/boost/boost/functional/hash_fwd.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include diff --git a/lib/3rdParty/boost/boost/functional/lightweight_forward_adapter.hpp b/lib/3rdParty/boost/boost/functional/lightweight_forward_adapter.hpp deleted file mode 100644 index 2706d299d..000000000 --- a/lib/3rdParty/boost/boost/functional/lightweight_forward_adapter.hpp +++ /dev/null @@ -1,288 +0,0 @@ -/*============================================================================= - Copyright (c) 2007 Tobias Schwinger - - 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_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_HPP_INCLUDED -# ifndef BOOST_PP_IS_ITERATING - -# include -# include - -# include -# include -# include -# include -# include -# include - -# include -# include - -# ifndef BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_MAX_ARITY -# define BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_MAX_ARITY 10 -# elif BOOST_FUNCTIONAL_FORDWARD_ADAPTER_MAX_ARITY < 3 -# undef BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_MAX_ARITY -# define BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_MAX_ARITY 3 -# endif - -namespace boost -{ - template< typename Function, int Arity_Or_MinArity = -1, int MaxArity = -1 > - class lightweight_forward_adapter; - - //----- ---- --- -- - - - - - - namespace detail - { - template< class MostDerived, typename Function, typename FunctionConst, - int Arity, int MinArity > - struct lightweight_forward_adapter_impl; - - struct lightweight_forward_adapter_result - { - template< typename Sig > struct apply; - - // Utility metafunction for argument transform - template< typename T > struct x { typedef T const& t; }; - template< typename T > struct x< boost::reference_wrapper > - { typedef T& t; }; - template< typename T > struct x : x { }; - template< typename T > struct x : x { }; - template< typename T > struct x : x { }; - - // Utility metafunction to choose target function qualification - template< typename T > struct c - { typedef typename T::target_function_t t; }; - template< typename T > struct c - { typedef typename T::target_function_t t; }; - template< typename T > struct c - { typedef typename T::target_function_const_t t; }; - template< typename T > struct c - { typedef typename T::target_function_const_t t; }; - }; - } - -# define BOOST_TMP_MACRO(f,fn,fc) \ - boost::detail::lightweight_forward_adapter_impl< \ - lightweight_forward_adapter, fn, fc, \ - (MaxArity!=-1? MaxArity :Arity_Or_MinArity!=-1? Arity_Or_MinArity \ - :BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_MAX_ARITY), \ - (Arity_Or_MinArity!=-1? Arity_Or_MinArity : 0) > - - template< typename Function, int Arity_Or_MinArity, int MaxArity > - class lightweight_forward_adapter - : public BOOST_TMP_MACRO(Function,Function,Function const) - , private Function - { - public: - lightweight_forward_adapter(Function const& f = Function()) - : Function(f) - { } - - typedef Function target_function_t; - typedef Function const target_function_const_t; - - Function & target_function() { return *this; } - Function const & target_function() const { return *this; } - - template< typename Sig > struct result - : detail::lightweight_forward_adapter_result::template apply - { }; - - using BOOST_TMP_MACRO(Function,Function, Function const)::operator(); - }; - template< typename Function, int Arity_Or_MinArity, int MaxArity > - class lightweight_forward_adapter< Function const, Arity_Or_MinArity, - MaxArity > - : public BOOST_TMP_MACRO(Function const, Function const, Function const) - , private Function - { - public: - lightweight_forward_adapter(Function const& f = Function()) - : Function(f) - { } - - typedef Function const target_function_t; - typedef Function const target_function_const_t; - - Function const & target_function() const { return *this; } - - template< typename Sig > struct result - : detail::lightweight_forward_adapter_result::template apply - { }; - - using BOOST_TMP_MACRO(Function const,Function const, Function const) - ::operator(); - }; - template< typename Function, int Arity_Or_MinArity, int MaxArity > - class lightweight_forward_adapter< Function &, Arity_Or_MinArity, MaxArity > - : public BOOST_TMP_MACRO(Function&, Function, Function) - { - Function& ref_function; - public: - lightweight_forward_adapter(Function& f) - : ref_function(f) - { } - - typedef Function target_function_t; - typedef Function target_function_const_t; - - Function & target_function() const { return this->ref_function; } - - template< typename Sig > struct result - : detail::lightweight_forward_adapter_result::template apply - { }; - - using BOOST_TMP_MACRO(Function&, Function, Function)::operator(); - }; - - #undef BOOST_TMP_MACRO - - namespace detail - { - template< class Self > - struct lightweight_forward_adapter_result::apply< Self() > - : boost::result_of< BOOST_DEDUCED_TYPENAME c::t() > - { }; - - // When operator() doesn't have any parameters, it can't - // be templatized and can't use SFINAE, so intead use class - // template parameter SFINAE to decide whether to instantiate it. - - template - struct lightweight_forward_adapter_sfinae - { - typedef T type; - }; - - // This is the fallback for when there isn't an operator()(), - // need to create an operator() that will never instantiate - // so that using parent::operator() will work okay. - template< class MD, class F, class FC, class Enable = void> - struct lightweight_forward_adapter_impl_zero - : lightweight_forward_adapter_result - { - template struct never_instantiate {}; - template - typename never_instantiate::type operator()(T) const {} - }; - - template< class MD, class F, class FC> - struct lightweight_forward_adapter_impl_zero::type>::type> - : lightweight_forward_adapter_result - { - inline typename boost::result_of< FC() >::type - operator()() const - { - return static_cast(this)->target_function()(); - } - - inline typename boost::result_of< F() >::type - operator()() - { - return static_cast(this)->target_function()(); - } - }; - - template< class MD, class F, class FC > - struct lightweight_forward_adapter_impl - : lightweight_forward_adapter_impl_zero - { - }; - -# define BOOST_PP_FILENAME_1 \ - -# define BOOST_PP_ITERATION_LIMITS \ - (1,BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_MAX_ARITY) -# include BOOST_PP_ITERATE() - - } // namespace detail - - template - struct result_of const ()> - : boost::detail::lightweight_forward_adapter_result::template apply< - boost::lightweight_forward_adapter const () > - { }; - template - struct result_of()> - : boost::detail::lightweight_forward_adapter_result::template apply< - boost::lightweight_forward_adapter() > - { }; - template - struct result_of const& ()> - : boost::detail::lightweight_forward_adapter_result::template apply< - boost::lightweight_forward_adapter const () > - { }; - template - struct result_of& ()> - : boost::detail::lightweight_forward_adapter_result::template apply< - boost::lightweight_forward_adapter() > - { }; -} - -# define BOOST_FUNCTIONAL_LIGHTWEIGHT_FORWARD_ADAPTER_HPP_INCLUDED - -# else // defined(BOOST_PP_IS_ITERATING) -# define N BOOST_PP_ITERATION() - - template< class Self, BOOST_PP_ENUM_PARAMS(N,typename T) > - struct lightweight_forward_adapter_result::apply< - Self (BOOST_PP_ENUM_PARAMS(N,T)) > - : boost::result_of< - BOOST_DEDUCED_TYPENAME c::t (BOOST_PP_ENUM_BINARY_PARAMS(N, - typename x::t BOOST_PP_INTERCEPT)) > - { }; - - template< class MD, class F, class FC > - struct lightweight_forward_adapter_impl - : lightweight_forward_adapter_result - { - template< BOOST_PP_ENUM_PARAMS(N,typename T) > - inline typename boost::result_of< F(BOOST_PP_ENUM_BINARY_PARAMS(N, - T,const& BOOST_PP_INTERCEPT)) >::type - operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)); - }; - - template< class MD, class F, class FC, int MinArity > - struct lightweight_forward_adapter_impl - : lightweight_forward_adapter_impl - { - using lightweight_forward_adapter_impl::operator(); - -# define M(z,i,d) \ - static_cast::t>(a##i) - - template< BOOST_PP_ENUM_PARAMS(N,typename T) > - inline typename lightweight_forward_adapter_result::template apply< - MD const (BOOST_PP_ENUM_BINARY_PARAMS(N, - T,const& BOOST_PP_INTERCEPT)) >::type - operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,const& a)) const - { - typedef lightweight_forward_adapter_result _; - return static_cast(this)->target_function()( - BOOST_PP_ENUM(N,M,_)); - } - template< BOOST_PP_ENUM_PARAMS(N,typename T) > - inline typename lightweight_forward_adapter_result::template apply< - MD (BOOST_PP_ENUM_BINARY_PARAMS(N, - T,const& BOOST_PP_INTERCEPT)) >::type - operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,const& a)) - { - typedef lightweight_forward_adapter_result _; - return static_cast(this)->target_function()( - BOOST_PP_ENUM(N,M,_)); - } -# undef M - }; - -# undef N -# endif // defined(BOOST_PP_IS_ITERATING) - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/functional/overloaded_function.hpp b/lib/3rdParty/boost/boost/functional/overloaded_function.hpp deleted file mode 100644 index 83fe4b384..000000000 --- a/lib/3rdParty/boost/boost/functional/overloaded_function.hpp +++ /dev/null @@ -1,311 +0,0 @@ - -// Copyright (C) 2009-2012 Lorenzo Caminiti -// Distributed under the Boost Software License, Version 1.0 -// (see accompanying file LICENSE_1_0.txt or a copy at -// http://www.boost.org/LICENSE_1_0.txt) -// Home at http://www.boost.org/libs/functional/overloaded_function - -#ifndef DOXYGEN // Doxygen documentation only. - -#if !BOOST_PP_IS_ITERATING -# ifndef BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_HPP_ -# define BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_HPP_ - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -#define BOOST_FUNCTIONAL_f_type(z, n, unused) \ - BOOST_PP_CAT(F, n) - -#define BOOST_FUNCTIONAL_f_arg(z, n, unused) \ - BOOST_PP_CAT(f, n) - -#define BOOST_FUNCTIONAL_f_tparam(z, n, unused) \ - typename BOOST_FUNCTIONAL_f_type(z, n, ~) \ - -#define BOOST_FUNCTIONAL_f_tparam_dflt(z, n, is_tspec) \ - BOOST_FUNCTIONAL_f_tparam(z, n, ~) \ - /* overload requires at least 2 functors so F0 and F1 not optional */ \ - BOOST_PP_EXPR_IIF(BOOST_PP_AND(BOOST_PP_NOT(is_tspec), \ - BOOST_PP_GREATER(n, 1)), \ - = void \ - ) - -#define BOOST_FUNCTIONAL_f_arg_decl(z, n, unused) \ - BOOST_FUNCTIONAL_f_type(z, n, ~) /* no qualifier to deduce tparam */ \ - BOOST_FUNCTIONAL_f_arg(z, n, ~) - -#define BOOST_FUNCTIONAL_g_type(z, n, unused) \ - BOOST_PP_CAT(G, n) - -#define BOOST_FUNCTIONAL_g_arg(z, n, unused) \ - BOOST_PP_CAT(g, n) - -#define BOOST_FUNCTIONAL_g_tparam(z, n, unused) \ - typename BOOST_FUNCTIONAL_g_type(z, n, ~) - -#define BOOST_FUNCTIONAL_g_arg_decl(z, n, unused) \ - BOOST_FUNCTIONAL_g_type(z, n, ~) /* no qualifier to deduce tparam */ \ - BOOST_FUNCTIONAL_g_arg(z, n, ~) - -#define BOOST_FUNCTIONAL_base(z, n, unused) \ - ::boost::overloaded_function_detail::base< \ - BOOST_FUNCTIONAL_f_type(z, n, ~) \ - > - -#define BOOST_FUNCTIONAL_inherit(z, n, unused) \ - public BOOST_FUNCTIONAL_base(z, n, ~) - -#define BOOST_FUNCTIONAL_base_init(z, n, unused) \ - BOOST_FUNCTIONAL_base(z, n, ~)(BOOST_FUNCTIONAL_g_arg(z, n, ~)) - -#define BOOST_FUNCTIONAL_using_operator_call(z, n, unused) \ - using BOOST_FUNCTIONAL_base(z, n, ~)::operator(); - -#define BOOST_FUNCTIONAL_function_type(z, n, unused) \ - typename ::boost::overloaded_function_detail::function_type< \ - BOOST_FUNCTIONAL_f_type(z, n, ~) \ - >::type - -# define BOOST_PP_ITERATION_PARAMS_1 \ - /* at least 2 func to overload so start from 2 to MAX */ \ - /* (cannot iterate [0, MAX-2) because error on Sun) */ \ - (3, (2, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX, \ - "boost/functional/overloaded_function.hpp")) -# include BOOST_PP_ITERATE() // Iterate over function arity. - -#undef BOOST_FUNCTIONAL_f_type -#undef BOOST_FUNCTIONAL_f_arg -#undef BOOST_FUNCTIONAL_f_tparam -#undef BOOST_FUNCTIONAL_f_arg_decl -#undef BOOST_FUNCTIONAL_f_tparam_dflt -#undef BOOST_FUNCTIONAL_g_type -#undef BOOST_FUNCTIONAL_g_arg -#undef BOOST_FUNCTIONAL_g_tparam -#undef BOOST_FUNCTIONAL_g_arg_decl -#undef BOOST_FUNCTIONAL_base -#undef BOOST_FUNCTIONAL_inherit -#undef BOOST_FUNCTIONAL_base_init -#undef BOOST_FUNCTIONAL_using_operator_call -#undef BOOST_FUNCTIONAL_function_type - -# endif // #include guard - -#elif BOOST_PP_ITERATION_DEPTH() == 1 -# define BOOST_FUNCTIONAL_overloads \ - /* iterate as OVERLOADS, OVERLOADS-1, OVERLOADS-2, ... */ \ - /* (add 2 because iteration started from 2 to MAX) */ \ - BOOST_PP_ADD(2, BOOST_PP_SUB( \ - BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX, \ - BOOST_PP_FRAME_ITERATION(1))) -# define BOOST_FUNCTIONAL_is_tspec \ - /* if template specialization */ \ - BOOST_PP_LESS(BOOST_FUNCTIONAL_overloads, \ - BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX) - -// For type-of emulation: This must be included at this pp iteration level. -# include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() - -namespace boost { - -template< - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_f_tparam_dflt, - BOOST_FUNCTIONAL_is_tspec) -> -class overloaded_function - // Template specialization. - BOOST_PP_EXPR_IIF(BOOST_PP_EXPAND(BOOST_FUNCTIONAL_is_tspec), <) - BOOST_PP_IIF(BOOST_FUNCTIONAL_is_tspec, - BOOST_PP_ENUM - , - BOOST_PP_TUPLE_EAT(3) - )(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_f_type, ~) - BOOST_PP_EXPR_IIF(BOOST_PP_EXPAND(BOOST_FUNCTIONAL_is_tspec), >) - // Bases (overloads >= 2 so always at least 2 bases). - : BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, - BOOST_FUNCTIONAL_inherit, ~) -{ -public: - template< - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_g_tparam, ~) - > /* implicit */ inline overloaded_function( - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, - BOOST_FUNCTIONAL_g_arg_decl, ~)) - // Overloads >= 2 so always at least 2 bases to initialize. - : BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, - BOOST_FUNCTIONAL_base_init, ~) - {} - - BOOST_PP_REPEAT(BOOST_FUNCTIONAL_overloads, - BOOST_FUNCTIONAL_using_operator_call, ~) -}; - -template< - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_f_tparam, ~) -> -overloaded_function< - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_function_type, ~) -> make_overloaded_function( - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_f_arg_decl, ~) -) { - return overloaded_function< - BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, - BOOST_FUNCTIONAL_function_type, ~) - >(BOOST_PP_ENUM(BOOST_FUNCTIONAL_overloads, BOOST_FUNCTIONAL_f_arg, ~)); -} - -} // namespace - -// For type-of emulation: Register overloaded function type (for _AUTO, etc). -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::overloaded_function, - BOOST_FUNCTIONAL_overloads) - -# undef BOOST_FUNCTIONAL_overloads -# undef BOOST_FUNCTIONAL_is_tspec -#endif // iteration - -// DOCUMENTATION // - -#else // DOXYGEN - -/** @file -@brief Overload distinct function pointers, function references, and -monomorphic function objects into a single function object. -*/ - -namespace boost { - -/** -@brief Function object to overload functions with distinct signatures. - -This function object aggregates together calls to functions of all the -specified function types F1, F2, etc which must have distinct -function signatures from one another. - -@Params -@Param{Fi, -Each function type must be specified using the following syntax (which is -Boost.Function's preferred syntax): -@code - result_type (argument1_type\, argumgnet2_type\, ...) -@endcode -} -@EndParams - -In some cases, the @RefFunc{make_overloaded_function} function template can be -useful to construct an overloaded function object without explicitly -specifying the function types. - -At least two distinct function types must be specified (because there is -nothing to overload between one or zero functions). -The maximum number of functions to overload is given by the -@RefMacro{BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX} -configuration macro. -The maximum number of function parameters for each of the specified function -types is given by the -@RefMacro{BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX} -configuration macro. - -@See @RefSect{tutorial, Tutorial} section, @RefFunc{make_overloaded_function}, -@RefMacro{BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX}, -@RefMacro{BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX}, -Boost.Function. -*/ -template -class overloaded_function { -public: - /** - @brief Construct the overloaded function object. - - Any function pointer, function reference, and monomorphic function object - that can be converted to a boost::function function object can be - specified as parameter. - - @Note Unfortunately, it is not possible to support polymorphic function - objects (as explained here). - */ - overloaded_function(const boost::function&, - const boost::function&, ...); - - /** - @brief Call operator matching the signature of the function type specified - as 1st template parameter. - - This will in turn invoke the call operator of the 1st function passed to - the constructor. - */ - typename boost::function_traits::result_type operator()( - typename boost::function_traits::arg1_type, - typename boost::function_traits::arg2_type, - ...) const; - - /** - @brief Call operator matching the signature of the function type specified - as 2nd template parameter. - - This will in turn invoke the call operator of the 2nd function passed to - the constructor. - - @Note Similar call operators are present for all specified function types - F1, F2, etc (even if not exhaustively listed by this - documentation). - */ - typename boost::function_traits::result_type operator()( - typename boost::function_traits::arg1_type, - typename boost::function_traits::arg2_type, - ...) const; -}; - -/** -@brief Make an overloaded function object without explicitly specifying the -function types. - -This function template creates and returns an @RefClass{overloaded_function} -object that overloads all the specified functions f1, f2, etc. - -The function types are internally determined from the template parameter types -so they do not need to be explicitly specified. -Therefore, this function template usually has a more concise syntax when -compared with @RefClass{overloaded_function}. -This is especially useful when the explicit type of the returned -@RefClass{overloaded_function} object does not need to be known (e.g., when -used with Boost.Typeof's BOOST_AUTO, C++11 auto, or when the -overloaded function object is handled using a function template parameter, see -the @RefSect{tutorial, Tutorial} section). - -The maximum number of functions to overload is given by the -@RefMacro{BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX} -configuration macro. - -@Note In this documentation, __function_type__ is a placeholder for a -symbol that is specific to the implementation of this library. - -@See @RefSect{tutorial, Tutorial} section, @RefClass{overloaded_function}, -@RefMacro{BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX}. -*/ -template -overloaded_function< - __function_type__, __function_type__, ... -> make_overloaded_function(F1 f1, F2 f2, ...); - -} // namespace - -#endif // DOXYGEN - diff --git a/lib/3rdParty/boost/boost/functional/overloaded_function/config.hpp b/lib/3rdParty/boost/boost/functional/overloaded_function/config.hpp deleted file mode 100644 index 2f5d9e132..000000000 --- a/lib/3rdParty/boost/boost/functional/overloaded_function/config.hpp +++ /dev/null @@ -1,50 +0,0 @@ - -// Copyright (C) 2009-2012 Lorenzo Caminiti -// Distributed under the Boost Software License, Version 1.0 -// (see accompanying file LICENSE_1_0.txt or a copy at -// http://www.boost.org/LICENSE_1_0.txt) -// Home at http://www.boost.org/libs/functional/overloaded_function - -#ifndef BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_HPP_ -#define BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_HPP_ - -/** @file -@brief Change the compile-time configuration of this library. -*/ - -/** -@brief Specify the maximum number of arguments of the functions being -overloaded. - -If this macro is left undefined by the user, it has a default value of 5 -(increasing this number might increase compilation time). -When specified by the user, this macro must be a non-negative integer number. - -@See @RefSect{getting_started, Getting Started}, -@RefClass{boost::overloaded_function}. -*/ -#ifndef BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX -# define BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX 5 -#endif - -/** -@brief Specify the maximum number of functions that can be overloaded. - -If this macro is left undefined by the user, it has a default value of 5 -(increasing this number might increase compilation time). -When defined by the user, this macro must be an integer number greater or -equal than 2 (because at least two distinct functions need to be specified in -order to define an overload). - -@See @RefSect{getting_started, Getting Started}, -@RefClass{boost::overloaded_function}. -*/ -#ifndef BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX -# define BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX 5 -#endif -#if BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX < 2 -# error "maximum overload macro cannot be less than 2" -#endif - -#endif // #include guard - diff --git a/lib/3rdParty/boost/boost/functional/overloaded_function/detail/base.hpp b/lib/3rdParty/boost/boost/functional/overloaded_function/detail/base.hpp deleted file mode 100644 index 8fd9a0a2c..000000000 --- a/lib/3rdParty/boost/boost/functional/overloaded_function/detail/base.hpp +++ /dev/null @@ -1,86 +0,0 @@ - -// Copyright (C) 2009-2012 Lorenzo Caminiti -// Distributed under the Boost Software License, Version 1.0 -// (see accompanying file LICENSE_1_0.txt or a copy at -// http://www.boost.org/LICENSE_1_0.txt) -// Home at http://www.boost.org/libs/functional/overloaded_function - -#if !BOOST_PP_IS_ITERATING -# ifndef BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_DETAIL_BASE_HPP_ -# define BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_DETAIL_BASE_HPP_ - -# include -# include -# include -# include -# include -# include - -#define BOOST_FUNCTIONAL_DETAIL_arg_type(z, n, unused) \ - BOOST_PP_CAT(A, n) - -#define BOOST_FUNCTIONAL_DETAIL_arg_name(z, n, unused) \ - BOOST_PP_CAT(a, n) - -#define BOOST_FUNCTIONAL_DETAIL_arg_tparam(z, n, unused) \ - typename BOOST_FUNCTIONAL_DETAIL_arg_type(z, n, unused) - -#define BOOST_FUNCTIONAL_DETAIL_arg(z, n, unused) \ - BOOST_FUNCTIONAL_DETAIL_arg_type(z, n, unused) \ - BOOST_FUNCTIONAL_DETAIL_arg_name(z, n, unused) - -#define BOOST_FUNCTIONAL_DETAIL_f \ - R (BOOST_PP_ENUM(BOOST_FUNCTIONAL_DETAIL_arity, \ - BOOST_FUNCTIONAL_DETAIL_arg_type, ~)) - -// Do not use namespace ::detail because overloaded_function is already a class. -namespace boost { namespace overloaded_function_detail { - -template -class base {}; // Empty template cannot be used directly (only its spec). - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3, (0, BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX, \ - "boost/functional/overloaded_function/detail/base.hpp")) -# include BOOST_PP_ITERATE() // Iterate over funciton arity. - -} } // namespace - -#undef BOOST_FUNCTIONAL_DETAIL_arg_type -#undef BOOST_FUNCTIONAL_DETAIL_arg_name -#undef BOOST_FUNCTIONAL_DETAIL_arg_tparam -#undef BOOST_FUNCTIONAL_DETAIL_arg -#undef BOOST_FUNCTIONAL_DETAIL_f - -# endif // #include guard - -#elif BOOST_PP_ITERATION_DEPTH() == 1 -# define BOOST_FUNCTIONAL_DETAIL_arity BOOST_PP_FRAME_ITERATION(1) - -template< - typename R - BOOST_PP_COMMA_IF(BOOST_FUNCTIONAL_DETAIL_arity) - BOOST_PP_ENUM(BOOST_FUNCTIONAL_DETAIL_arity, - BOOST_FUNCTIONAL_DETAIL_arg_tparam, ~) -> -class base< BOOST_FUNCTIONAL_DETAIL_f > { -public: - /* implicit */ inline base( - // This requires specified type to be implicitly convertible to - // a boost::function<> functor. - boost::function< BOOST_FUNCTIONAL_DETAIL_f > const& f): f_(f) - {} - - inline R operator()(BOOST_PP_ENUM(BOOST_FUNCTIONAL_DETAIL_arity, - BOOST_FUNCTIONAL_DETAIL_arg, ~)) const { - return f_(BOOST_PP_ENUM(BOOST_FUNCTIONAL_DETAIL_arity, - BOOST_FUNCTIONAL_DETAIL_arg_name, ~)); - } - -private: - boost::function< BOOST_FUNCTIONAL_DETAIL_f > const f_; -}; - -# undef BOOST_FUNCTIONAL_DETAIL_arity -#endif // iteration - diff --git a/lib/3rdParty/boost/boost/functional/overloaded_function/detail/function_type.hpp b/lib/3rdParty/boost/boost/functional/overloaded_function/detail/function_type.hpp deleted file mode 100644 index 0c28607b8..000000000 --- a/lib/3rdParty/boost/boost/functional/overloaded_function/detail/function_type.hpp +++ /dev/null @@ -1,85 +0,0 @@ - -// Copyright (C) 2009-2012 Lorenzo Caminiti -// Distributed under the Boost Software License, Version 1.0 -// (see accompanying file LICENSE_1_0.txt or a copy at -// http://www.boost.org/LICENSE_1_0.txt) -// Home at http://www.boost.org/libs/functional/overloaded_function - -#ifndef BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_DETAIL_FUNCTION_TYPE_HPP_ -#define BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_DETAIL_FUNCTION_TYPE_HPP_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Do not use namespace ::detail because overloaded_function is already a class. -namespace boost { namespace overloaded_function_detail { - -// Requires: F is a monomorphic functor (i.e., has non-template `operator()`). -// Returns: F's function type `result_type (arg1_type, arg2_type, ...)`. -// It does not assume F typedef result_type, arg1_type, ... but needs typeof. -template -class functor_type { - // NOTE: clang does not accept extra parenthesis `&(...)`. - typedef BOOST_TYPEOF_TPL(&F::operator()) call_ptr; -public: - typedef - typename boost::function_types::function_type< - typename boost::mpl::push_front< - typename boost::mpl::pop_front< // Remove functor type (1st). - typename boost::function_types::parameter_types< - call_ptr>::type - >::type - , typename boost::function_types::result_type::type - >::type - >::type - type; -}; - -// NOTE: When using boost::function in Boost.Typeof emulation mode, the user -// has to register boost::functionN instead of boost::function in oder to -// do TYPEOF(F::operator()). That is confusing, so boost::function is handled -// separately so it does not require any Boost.Typeof registration at all. -template -struct functor_type< boost::function > { - typedef F type; -}; - -// Requires: F is a function type, pointer, reference, or monomorphic functor. -// Returns: F's function type `result_type (arg1_type, arg2_type, ...)`. -template -struct function_type { - typedef - typename boost::mpl::if_, - boost::mpl::identity - , - typename boost::mpl::if_, - boost::remove_pointer - , - typename boost::mpl::if_, - boost::remove_reference - , // Else, requires that F is a functor. - functor_type - >::type - >::type - >::type - ::type type; -}; - -} } // namespace - -#endif // #include guard - diff --git a/lib/3rdParty/boost/boost/functional/value_factory.hpp b/lib/3rdParty/boost/boost/functional/value_factory.hpp deleted file mode 100644 index ba94c2aa5..000000000 --- a/lib/3rdParty/boost/boost/functional/value_factory.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/*============================================================================= - Copyright (c) 2007 Tobias Schwinger - - 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_FUNCTIONAL_VALUE_FACTORY_HPP_INCLUDED -# ifndef BOOST_PP_IS_ITERATING - -# include -# include -# include - -# include -# include -# include -# include -# include - -# ifndef BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY -# define BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY 10 -# elif BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY < 3 -# undef BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY -# define BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY 3 -# endif - -namespace boost -{ - template< typename T > - class value_factory; - - //----- ---- --- -- - - - - - - template< typename T > - class value_factory - { - public: - typedef T result_type; - - value_factory() - { } - -# define BOOST_PP_FILENAME_1 -# define BOOST_PP_ITERATION_LIMITS (0,BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY) -# include BOOST_PP_ITERATE() - }; - - template< typename T > class value_factory; - // forbidden, would create a dangling reference -} -# define BOOST_FUNCTIONAL_VALUE_FACTORY_HPP_INCLUDED -# else // defined(BOOST_PP_IS_ITERATING) - -# define N BOOST_PP_ITERATION() -# if N > 0 - template< BOOST_PP_ENUM_PARAMS(N, typename T) > -# endif - inline result_type operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a)) const - { - return result_type(BOOST_PP_ENUM_PARAMS(N,a)); - } -# undef N - -# endif // defined(BOOST_PP_IS_ITERATING) - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/get_pointer.hpp b/lib/3rdParty/boost/boost/get_pointer.hpp deleted file mode 100644 index 36e2cd7d0..000000000 --- a/lib/3rdParty/boost/boost/get_pointer.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright Peter Dimov and 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 GET_POINTER_DWA20021219_HPP -#define GET_POINTER_DWA20021219_HPP - -#include - -// In order to avoid circular dependencies with Boost.TR1 -// we make sure that our include of doesn't try to -// pull in the TR1 headers: that's why we use this header -// rather than including directly: -#include // std::auto_ptr - -namespace boost { - -// get_pointer(p) extracts a ->* capable pointer from p - -template T * get_pointer(T * p) -{ - return p; -} - -// get_pointer(shared_ptr const & p) has been moved to shared_ptr.hpp - -#if !defined( BOOST_NO_AUTO_PTR ) - -#if defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) -#if defined( BOOST_GCC ) -#if BOOST_GCC >= 40600 -#define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS -#endif // BOOST_GCC >= 40600 -#elif defined( __clang__ ) && defined( __has_warning ) -#if __has_warning("-Wdeprecated-declarations") -#define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS -#endif // __has_warning("-Wdeprecated-declarations") -#endif -#endif // defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) - -#if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) -// Disable libstdc++ warnings about std::auto_ptr being deprecated in C++11 mode -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#define BOOST_CORE_DETAIL_DISABLED_DEPRECATED_WARNINGS -#endif - -template T * get_pointer(std::auto_ptr const& p) -{ - return p.get(); -} - -#if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) -#pragma GCC diagnostic pop -#undef BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS -#endif - -#endif // !defined( BOOST_NO_AUTO_PTR ) - -#if !defined( BOOST_NO_CXX11_SMART_PTR ) - -template T * get_pointer( std::unique_ptr const& p ) -{ - return p.get(); -} - -template T * get_pointer( std::shared_ptr const& p ) -{ - return p.get(); -} - -#endif - -} // namespace boost - -#endif // GET_POINTER_DWA20021219_HPP diff --git a/lib/3rdParty/boost/boost/integer.hpp b/lib/3rdParty/boost/boost/integer.hpp deleted file mode 100644 index 9fa001948..000000000 --- a/lib/3rdParty/boost/boost/integer.hpp +++ /dev/null @@ -1,262 +0,0 @@ -// boost integer.hpp header file -------------------------------------------// - -// Copyright Beman Dawes and Daryle Walker 1999. 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/integer for documentation. - -// Revision History -// 22 Sep 01 Added value-based integer templates. (Daryle Walker) -// 01 Apr 01 Modified to use new header. (John Maddock) -// 30 Jul 00 Add typename syntax fix (Jens Maurer) -// 28 Aug 99 Initial version - -#ifndef BOOST_INTEGER_HPP -#define BOOST_INTEGER_HPP - -#include // self include - -#include // for boost::::boost::integer_traits -#include // for ::std::numeric_limits -#include // for boost::int64_t and BOOST_NO_INTEGRAL_INT64_T -#include - -// -// We simply cannot include this header on gcc without getting copious warnings of the kind: -// -// boost/integer.hpp:77:30: warning: use of C99 long long integer constant -// -// And yet there is no other reasonable implementation, so we declare this a system header -// to suppress these warnings. -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -namespace boost -{ - - // Helper templates ------------------------------------------------------// - - // fast integers from least integers - // int_fast_t<> works correctly for unsigned too, in spite of the name. - template< typename LeastInt > - struct int_fast_t - { - typedef LeastInt fast; - typedef fast type; - }; // imps may specialize - - namespace detail{ - - // convert category to type - template< int Category > struct int_least_helper {}; // default is empty - template< int Category > struct uint_least_helper {}; // default is empty - - // specializatons: 1=long, 2=int, 3=short, 4=signed char, - // 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char - // no specializations for 0 and 5: requests for a type > long are in error -#ifdef BOOST_HAS_LONG_LONG - template<> struct int_least_helper<1> { typedef boost::long_long_type least; }; -#elif defined(BOOST_HAS_MS_INT64) - template<> struct int_least_helper<1> { typedef __int64 least; }; -#endif - template<> struct int_least_helper<2> { typedef long least; }; - template<> struct int_least_helper<3> { typedef int least; }; - template<> struct int_least_helper<4> { typedef short least; }; - template<> struct int_least_helper<5> { typedef signed char least; }; -#ifdef BOOST_HAS_LONG_LONG - template<> struct uint_least_helper<1> { typedef boost::ulong_long_type least; }; -#elif defined(BOOST_HAS_MS_INT64) - template<> struct uint_least_helper<1> { typedef unsigned __int64 least; }; -#endif - template<> struct uint_least_helper<2> { typedef unsigned long least; }; - template<> struct uint_least_helper<3> { typedef unsigned int least; }; - template<> struct uint_least_helper<4> { typedef unsigned short least; }; - template<> struct uint_least_helper<5> { typedef unsigned char least; }; - - template - struct exact_signed_base_helper{}; - template - struct exact_unsigned_base_helper{}; - - template <> struct exact_signed_base_helper { typedef signed char exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned char exact; }; -#if USHRT_MAX != UCHAR_MAX - template <> struct exact_signed_base_helper { typedef short exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned short exact; }; -#endif -#if UINT_MAX != USHRT_MAX - template <> struct exact_signed_base_helper { typedef int exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned int exact; }; -#endif -#if ULONG_MAX != UINT_MAX && ( !defined __TI_COMPILER_VERSION__ || \ - ( __TI_COMPILER_VERSION__ >= 7000000 && !defined __TI_40BIT_LONG__ ) ) - template <> struct exact_signed_base_helper { typedef long exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned long exact; }; -#endif -#if defined(BOOST_HAS_LONG_LONG) &&\ - ((defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) ||\ - (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX != ULONG_MAX)) ||\ - (defined(ULONGLONG_MAX) && (ULONGLONG_MAX != ULONG_MAX)) ||\ - (defined(_ULLONG_MAX) && (_ULLONG_MAX != ULONG_MAX))) - template <> struct exact_signed_base_helper { typedef boost::long_long_type exact; }; - template <> struct exact_unsigned_base_helper { typedef boost::ulong_long_type exact; }; -#endif - - - } // namespace detail - - // integer templates specifying number of bits ---------------------------// - - // signed - template< int Bits > // bits (including sign) required - struct int_t : public boost::detail::exact_signed_base_helper - { - BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::intmax_t) * CHAR_BIT), - "No suitable signed integer type with the requested number of bits is available."); - typedef typename boost::detail::int_least_helper - < -#ifdef BOOST_HAS_LONG_LONG - (Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + -#else - 1 + -#endif - (Bits-1 <= ::std::numeric_limits::digits) + - (Bits-1 <= ::std::numeric_limits::digits) + - (Bits-1 <= ::std::numeric_limits::digits) + - (Bits-1 <= ::std::numeric_limits::digits) - >::least least; - typedef typename int_fast_t::type fast; - }; - - // unsigned - template< int Bits > // bits required - struct uint_t : public boost::detail::exact_unsigned_base_helper - { - BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::uintmax_t) * CHAR_BIT), - "No suitable unsigned integer type with the requested number of bits is available."); -#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) - // It's really not clear why this workaround should be needed... shrug I guess! JM - BOOST_STATIC_CONSTANT(int, s = - 6 + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits)); - typedef typename detail::int_least_helper< ::boost::uint_t::s>::least least; -#else - typedef typename boost::detail::uint_least_helper - < -#ifdef BOOST_HAS_LONG_LONG - (Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + -#else - 1 + -#endif - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) - >::least least; -#endif - typedef typename int_fast_t::type fast; - // int_fast_t<> works correctly for unsigned too, in spite of the name. - }; - - // integer templates specifying extreme value ----------------------------// - - // signed -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< boost::long_long_type MaxValue > // maximum value to require support -#else - template< long MaxValue > // maximum value to require support -#endif - struct int_max_value_t - { - typedef typename boost::detail::int_least_helper - < -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - (MaxValue <= ::boost::integer_traits::const_max) + -#else - 1 + -#endif - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) - >::least least; - typedef typename int_fast_t::type fast; - }; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< boost::long_long_type MinValue > // minimum value to require support -#else - template< long MinValue > // minimum value to require support -#endif - struct int_min_value_t - { - typedef typename boost::detail::int_least_helper - < -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - (MinValue >= ::boost::integer_traits::const_min) + -#else - 1 + -#endif - (MinValue >= ::boost::integer_traits::const_min) + - (MinValue >= ::boost::integer_traits::const_min) + - (MinValue >= ::boost::integer_traits::const_min) + - (MinValue >= ::boost::integer_traits::const_min) - >::least least; - typedef typename int_fast_t::type fast; - }; - - // unsigned -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< boost::ulong_long_type MaxValue > // minimum value to require support -#else - template< unsigned long MaxValue > // minimum value to require support -#endif - struct uint_value_t - { -#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) - // It's really not clear why this workaround should be needed... shrug I guess! JM -#if defined(BOOST_NO_INTEGRAL_INT64_T) - BOOST_STATIC_CONSTANT(unsigned, which = - 1 + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max)); - typedef typename detail::int_least_helper< ::boost::uint_value_t::which>::least least; -#else // BOOST_NO_INTEGRAL_INT64_T - BOOST_STATIC_CONSTANT(unsigned, which = - 1 + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max)); - typedef typename detail::uint_least_helper< ::boost::uint_value_t::which>::least least; -#endif // BOOST_NO_INTEGRAL_INT64_T -#else - typedef typename boost::detail::uint_least_helper - < -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - (MaxValue <= ::boost::integer_traits::const_max) + -#else - 1 + -#endif - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) + - (MaxValue <= ::boost::integer_traits::const_max) - >::least least; -#endif - typedef typename int_fast_t::type fast; - }; - - -} // namespace boost - -#endif // BOOST_INTEGER_HPP diff --git a/lib/3rdParty/boost/boost/integer_fwd.hpp b/lib/3rdParty/boost/boost/integer_fwd.hpp deleted file mode 100644 index 10577ae29..000000000 --- a/lib/3rdParty/boost/boost/integer_fwd.hpp +++ /dev/null @@ -1,187 +0,0 @@ -// Boost integer_fwd.hpp header file ---------------------------------------// - -// (C) Copyright Dave Abrahams and Daryle Walker 2001. 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/integer for documentation. - -#ifndef BOOST_INTEGER_FWD_HPP -#define BOOST_INTEGER_FWD_HPP - -#include // for UCHAR_MAX, etc. -#include // for std::size_t - -#include // for BOOST_NO_INTRINSIC_WCHAR_T -#include // for std::numeric_limits -#include // For intmax_t - - -namespace boost -{ - -#ifdef BOOST_NO_INTEGRAL_INT64_T - typedef unsigned long static_log2_argument_type; - typedef int static_log2_result_type; - typedef long static_min_max_signed_type; - typedef unsigned long static_min_max_unsigned_type; -#else - typedef boost::uintmax_t static_min_max_unsigned_type; - typedef boost::intmax_t static_min_max_signed_type; - typedef boost::uintmax_t static_log2_argument_type; - typedef int static_log2_result_type; -#endif - -// From ------------------------------------------------// - -// Only has typedefs or using statements, with #conditionals - - -// From -----------------------------------------// - -template < class T > - class integer_traits; - -template < > - class integer_traits< bool >; - -template < > - class integer_traits< char >; - -template < > - class integer_traits< signed char >; - -template < > - class integer_traits< unsigned char >; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template < > - class integer_traits< wchar_t >; -#endif - -template < > - class integer_traits< short >; - -template < > - class integer_traits< unsigned short >; - -template < > - class integer_traits< int >; - -template < > - class integer_traits< unsigned int >; - -template < > - class integer_traits< long >; - -template < > - class integer_traits< unsigned long >; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) -template < > -class integer_traits< ::boost::long_long_type>; - -template < > -class integer_traits< ::boost::ulong_long_type >; -#elif !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_MS_INT64) -template < > -class integer_traits<__int64>; - -template < > -class integer_traits; -#endif - - -// From ------------------------------------------------// - -template < typename LeastInt > - struct int_fast_t; - -template< int Bits > - struct int_t; - -template< int Bits > - struct uint_t; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< boost::long_long_type MaxValue > // maximum value to require support -#else - template< long MaxValue > // maximum value to require support -#endif - struct int_max_value_t; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< boost::long_long_type MinValue > // minimum value to require support -#else - template< long MinValue > // minimum value to require support -#endif - struct int_min_value_t; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< boost::ulong_long_type MaxValue > // maximum value to require support -#else - template< unsigned long MaxValue > // maximum value to require support -#endif - struct uint_value_t; - - -// From -----------------------------------// - -template < std::size_t Bit > - struct high_bit_mask_t; - -template < std::size_t Bits > - struct low_bits_mask_t; - -template < > - struct low_bits_mask_t< ::std::numeric_limits::digits >; - -// From ------------------------------------// - -template - struct static_log2; - -template <> struct static_log2<0u>; - - -// From ---------------------------------// - -template - struct static_signed_min; - -template - struct static_signed_max; - -template - struct static_unsigned_min; - -template - struct static_unsigned_max; - - -// From - -#ifdef BOOST_NO_INTEGRAL_INT64_T - typedef unsigned long static_gcd_type; -#else - typedef boost::uintmax_t static_gcd_type; -#endif - -template < static_gcd_type Value1, static_gcd_type Value2 > - struct static_gcd; -template < static_gcd_type Value1, static_gcd_type Value2 > - struct static_lcm; - - -// From - -template < typename IntegerType > - class gcd_evaluator; -template < typename IntegerType > - class lcm_evaluator; - - -} // namespace boost - - -#endif // BOOST_INTEGER_FWD_HPP diff --git a/lib/3rdParty/boost/boost/integer_traits.hpp b/lib/3rdParty/boost/boost/integer_traits.hpp deleted file mode 100644 index 94eb00d31..000000000 --- a/lib/3rdParty/boost/boost/integer_traits.hpp +++ /dev/null @@ -1,256 +0,0 @@ -/* boost integer_traits.hpp header file - * - * Copyright Jens Maurer 2000 - * 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) - * - * $Id$ - * - * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers - */ - -// See http://www.boost.org/libs/integer for documentation. - - -#ifndef BOOST_INTEGER_TRAITS_HPP -#define BOOST_INTEGER_TRAITS_HPP - -#include -#include - -// These are an implementation detail and not part of the interface -#include -// we need wchar.h for WCHAR_MAX/MIN but not all platforms provide it, -// and some may have but not ... -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) && (!defined(BOOST_NO_CWCHAR) || defined(sun) || defined(__sun) || defined(__QNX__)) -#include -#endif - -// -// We simply cannot include this header on gcc without getting copious warnings of the kind: -// -// ../../../boost/integer_traits.hpp:164:66: warning: use of C99 long long integer constant -// -// And yet there is no other reasonable implementation, so we declare this a system header -// to suppress these warnings. -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -namespace boost { -template -class integer_traits : public std::numeric_limits -{ -public: - BOOST_STATIC_CONSTANT(bool, is_integral = false); -}; - -namespace detail { -template -class integer_traits_base -{ -public: - BOOST_STATIC_CONSTANT(bool, is_integral = true); - BOOST_STATIC_CONSTANT(T, const_min = min_val); - BOOST_STATIC_CONSTANT(T, const_max = max_val); -}; - -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -// A definition is required even for integral static constants -template -const bool integer_traits_base::is_integral; - -template -const T integer_traits_base::const_min; - -template -const T integer_traits_base::const_max; -#endif - -} // namespace detail - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template<> -class integer_traits - : public std::numeric_limits, - // Don't trust WCHAR_MIN and WCHAR_MAX with Mac OS X's native - // library: they are wrong! -#if defined(WCHAR_MIN) && defined(WCHAR_MAX) && !defined(__APPLE__) - public detail::integer_traits_base -#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__)) - // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned: - public detail::integer_traits_base -#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\ - || (defined __APPLE__)\ - || (defined(__OpenBSD__) && defined(__GNUC__))\ - || (defined(__NetBSD__) && defined(__GNUC__))\ - || (defined(__FreeBSD__) && defined(__GNUC__))\ - || (defined(__DragonFly__) && defined(__GNUC__))\ - || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT)) - // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int. - // - SGI MIPSpro with native library - // - gcc 3.x on HP-UX - // - Mac OS X with native library - // - gcc on FreeBSD, OpenBSD and NetBSD - public detail::integer_traits_base -#else -#error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler. -#endif -{ }; -#endif // BOOST_NO_INTRINSIC_WCHAR_T - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) -#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, LLONG_MIN, LLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULLONG_MAX> -{ }; - -#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> : public std::numeric_limits< ::boost::long_long_type>, public detail::integer_traits_base< ::boost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ }; -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONG_LONG_MAX> -{ }; - -#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, LONGLONG_MIN, LONGLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONGLONG_MAX> -{ }; - -#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, -_LLONG_MAX - _C2, _LLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, _ULLONG_MAX> -{ }; - -#elif defined(BOOST_HAS_LONG_LONG) -// -// we have long long but no constants, this happens for example with gcc in -ansi mode, -// we'll just have to work out the values for ourselves (assumes 2's compliment representation): -// -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1)), ~(1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1))> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ~0uLL> -{ }; - -#elif defined(BOOST_HAS_MS_INT64) - -template<> -class integer_traits< __int64> - : public std::numeric_limits< __int64>, - public detail::integer_traits_base< __int64, _I64_MIN, _I64_MAX> -{ }; - -template<> -class integer_traits< unsigned __int64> - : public std::numeric_limits< unsigned __int64>, - public detail::integer_traits_base< unsigned __int64, 0, _UI64_MAX> -{ }; - -#endif -#endif - -} // namespace boost - -#endif /* BOOST_INTEGER_TRAITS_HPP */ - - - diff --git a/lib/3rdParty/boost/boost/io/detail/quoted_manip.hpp b/lib/3rdParty/boost/boost/io/detail/quoted_manip.hpp deleted file mode 100644 index 502f422aa..000000000 --- a/lib/3rdParty/boost/boost/io/detail/quoted_manip.hpp +++ /dev/null @@ -1,190 +0,0 @@ -// boost/io/quoted_manip.hpp ---------------------------------------------------------// - -// Copyright Beman Dawes 2010 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// Library home page http://www.boost.org/libs/io - -//--------------------------------------------------------------------------------------// - -#ifndef BOOST_IO_QUOTED_MANIP -#define BOOST_IO_QUOTED_MANIP - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace io - { - namespace detail { template struct quoted_proxy; } - - // ------------ public interface ------------------------------------------------// - - // manipulator for const std::basic_string& - template - detail::quoted_proxy const &, Char> - quoted(const std::basic_string& s, - Char escape='\\', Char delim='\"'); - - // manipulator for non-const std::basic_string& - template - detail::quoted_proxy &, Char> - quoted(std::basic_string& s, - Char escape='\\', Char delim='\"'); - - // manipulator for const C-string* - template - detail::quoted_proxy - quoted(const Char* s, Char escape='\\', Char delim='\"'); - - // ----------- implementation details -------------------------------------------// - - namespace detail - { - // proxy used as an argument pack - template - struct quoted_proxy - { - String string; - Char escape; - Char delim; - - quoted_proxy(String s_, Char escape_, Char delim_) - : string(s_), escape(escape_), delim(delim_) {} - private: - // String may be a const type, so disable the assignment operator - quoted_proxy& operator=(const quoted_proxy&); // = deleted - }; - - // abstract away difference between proxies with const or non-const basic_strings - template - std::basic_ostream& - basic_string_inserter_imp(std::basic_ostream& os, - std::basic_string const & string, Char escape, Char delim) - { - os << delim; - typename std::basic_string::const_iterator - end_it = string.end(); - for (typename std::basic_string::const_iterator - it = string.begin(); - it != end_it; - ++it ) - { - if (*it == delim || *it == escape) - os << escape; - os << *it; - } - os << delim; - return os; - } - - // inserter for const std::basic_string& proxies - template - inline - std::basic_ostream& operator<<(std::basic_ostream& os, - const quoted_proxy const &, Char>& proxy) - { - return basic_string_inserter_imp(os, proxy.string, proxy.escape, proxy.delim); - } - - // inserter for non-const std::basic_string& proxies - template - inline - std::basic_ostream& operator<<(std::basic_ostream& os, - const quoted_proxy&, Char>& proxy) - { - return basic_string_inserter_imp(os, proxy.string, proxy.escape, proxy.delim); - } - - // inserter for const C-string* proxies - template - std::basic_ostream& operator<<(std::basic_ostream& os, - const quoted_proxy& proxy) - { - os << proxy.delim; - for (const Char* it = proxy.string; - *it; - ++it ) - { - if (*it == proxy.delim || *it == proxy.escape) - os << proxy.escape; - os << *it; - } - os << proxy.delim; - return os; - } - - // extractor for non-const std::basic_string& proxies - template - std::basic_istream& operator>>(std::basic_istream& is, - const quoted_proxy&, Char>& proxy) - { - proxy.string.clear(); - Char c; - is >> c; - if (c != proxy.delim) - { - is.unget(); - is >> proxy.string; - return is; - } - { - boost::io::ios_flags_saver ifs(is); - is >> std::noskipws; - for (;;) - { - is >> c; - if (!is.good()) // cope with I/O errors or end-of-file - break; - if (c == proxy.escape) - { - is >> c; - if (!is.good()) // cope with I/O errors or end-of-file - break; - } - else if (c == proxy.delim) - break; - proxy.string += c; - } - } - return is; - } - - } // namespace detail - - // manipulator implementation for const std::basic_string& - template - inline detail::quoted_proxy const &, Char> - quoted(const std::basic_string& s, Char escape, Char delim) - { - return detail::quoted_proxy const &, Char> - (s, escape, delim); - } - - // manipulator implementation for non-const std::basic_string& - template - inline detail::quoted_proxy &, Char> - quoted(std::basic_string& s, Char escape, Char delim) - { - return detail::quoted_proxy&, Char> - (s, escape, delim); - } - - // manipulator implementation for const C-string* - template - inline detail::quoted_proxy - quoted(const Char* s, Char escape, Char delim) - { - return detail::quoted_proxy (s, escape, delim); - } - - } // namespace io -} // namespace boost - -#endif // BOOST_IO_QUOTED_MANIP diff --git a/lib/3rdParty/boost/boost/io/ios_state.hpp b/lib/3rdParty/boost/boost/io/ios_state.hpp deleted file mode 100644 index 07cfb345f..000000000 --- a/lib/3rdParty/boost/boost/io/ios_state.hpp +++ /dev/null @@ -1,439 +0,0 @@ -// Boost io/ios_state.hpp header file --------------------------------------// - -// Copyright 2002, 2005 Daryle Walker. Use, modification, and distribution -// are subject to the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or a copy at .) - -// See for the library's home page. - -#ifndef BOOST_IO_IOS_STATE_HPP -#define BOOST_IO_IOS_STATE_HPP - -#include // self include -#include - -#include // for std::ios_base, std::basic_ios, etc. -#ifndef BOOST_NO_STD_LOCALE -#include // for std::locale -#endif -#include // for std::basic_ostream -#include // for std::basic_streambuf -#include // for std::char_traits - - -namespace boost -{ -namespace io -{ - - -// Basic stream state saver class declarations -----------------------------// - -class ios_flags_saver -{ -public: - typedef ::std::ios_base state_type; - typedef ::std::ios_base::fmtflags aspect_type; - - explicit ios_flags_saver( state_type &s ) - : s_save_( s ), a_save_( s.flags() ) - {} - ios_flags_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.flags(a) ) - {} - ~ios_flags_saver() - { this->restore(); } - - void restore() - { s_save_.flags( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - - ios_flags_saver& operator=(const ios_flags_saver&); -}; - -class ios_precision_saver -{ -public: - typedef ::std::ios_base state_type; - typedef ::std::streamsize aspect_type; - - explicit ios_precision_saver( state_type &s ) - : s_save_( s ), a_save_( s.precision() ) - {} - ios_precision_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.precision(a) ) - {} - ~ios_precision_saver() - { this->restore(); } - - void restore() - { s_save_.precision( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - - ios_precision_saver& operator=(const ios_precision_saver&); -}; - -class ios_width_saver -{ -public: - typedef ::std::ios_base state_type; - typedef ::std::streamsize aspect_type; - - explicit ios_width_saver( state_type &s ) - : s_save_( s ), a_save_( s.width() ) - {} - ios_width_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.width(a) ) - {} - ~ios_width_saver() - { this->restore(); } - - void restore() - { s_save_.width( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - ios_width_saver& operator=(const ios_width_saver&); -}; - - -// Advanced stream state saver class template declarations -----------------// - -template < typename Ch, class Tr > -class basic_ios_iostate_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::ios_base::iostate aspect_type; - - explicit basic_ios_iostate_saver( state_type &s ) - : s_save_( s ), a_save_( s.rdstate() ) - {} - basic_ios_iostate_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.rdstate() ) - { s.clear(a); } - ~basic_ios_iostate_saver() - { this->restore(); } - - void restore() - { s_save_.clear( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - basic_ios_iostate_saver& operator=(const basic_ios_iostate_saver&); -}; - -template < typename Ch, class Tr > -class basic_ios_exception_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::ios_base::iostate aspect_type; - - explicit basic_ios_exception_saver( state_type &s ) - : s_save_( s ), a_save_( s.exceptions() ) - {} -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) - basic_ios_exception_saver( state_type &s, aspect_type a ) -#else - basic_ios_exception_saver( state_type &s, aspect_type const &a ) -#endif - : s_save_( s ), a_save_( s.exceptions() ) - { s.exceptions(a); } - ~basic_ios_exception_saver() - { this->restore(); } - - void restore() - { s_save_.exceptions( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - basic_ios_exception_saver& operator=(const basic_ios_exception_saver&); -}; - -template < typename Ch, class Tr > -class basic_ios_tie_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::basic_ostream * aspect_type; - - explicit basic_ios_tie_saver( state_type &s ) - : s_save_( s ), a_save_( s.tie() ) - {} - basic_ios_tie_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.tie(a) ) - {} - ~basic_ios_tie_saver() - { this->restore(); } - - void restore() - { s_save_.tie( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - basic_ios_tie_saver& operator=(const basic_ios_tie_saver&); -}; - -template < typename Ch, class Tr > -class basic_ios_rdbuf_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::basic_streambuf * aspect_type; - - explicit basic_ios_rdbuf_saver( state_type &s ) - : s_save_( s ), a_save_( s.rdbuf() ) - {} - basic_ios_rdbuf_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.rdbuf(a) ) - {} - ~basic_ios_rdbuf_saver() - { this->restore(); } - - void restore() - { s_save_.rdbuf( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - basic_ios_rdbuf_saver& operator=(const basic_ios_rdbuf_saver&); -}; - -template < typename Ch, class Tr > -class basic_ios_fill_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef typename state_type::char_type aspect_type; - - explicit basic_ios_fill_saver( state_type &s ) - : s_save_( s ), a_save_( s.fill() ) - {} - basic_ios_fill_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.fill(a) ) - {} - ~basic_ios_fill_saver() - { this->restore(); } - - void restore() - { s_save_.fill( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - basic_ios_fill_saver& operator=(const basic_ios_fill_saver&); -}; - -#ifndef BOOST_NO_STD_LOCALE -template < typename Ch, class Tr > -class basic_ios_locale_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::locale aspect_type; - - explicit basic_ios_locale_saver( state_type &s ) - : s_save_( s ), a_save_( s.getloc() ) - {} - basic_ios_locale_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.imbue(a) ) - {} - ~basic_ios_locale_saver() - { this->restore(); } - - void restore() - { s_save_.imbue( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - basic_ios_locale_saver& operator=(const basic_ios_locale_saver&); -}; -#endif - - -// User-defined stream state saver class declarations ----------------------// - -class ios_iword_saver -{ -public: - typedef ::std::ios_base state_type; - typedef int index_type; - typedef long aspect_type; - - explicit ios_iword_saver( state_type &s, index_type i ) - : s_save_( s ), a_save_( s.iword(i) ), i_save_( i ) - {} - ios_iword_saver( state_type &s, index_type i, aspect_type const &a ) - : s_save_( s ), a_save_( s.iword(i) ), i_save_( i ) - { s.iword(i) = a; } - ~ios_iword_saver() - { this->restore(); } - - void restore() - { s_save_.iword( i_save_ ) = a_save_; } - -private: - state_type & s_save_; - aspect_type const a_save_; - index_type const i_save_; - - ios_iword_saver& operator=(const ios_iword_saver&); -}; - -class ios_pword_saver -{ -public: - typedef ::std::ios_base state_type; - typedef int index_type; - typedef void * aspect_type; - - explicit ios_pword_saver( state_type &s, index_type i ) - : s_save_( s ), a_save_( s.pword(i) ), i_save_( i ) - {} - ios_pword_saver( state_type &s, index_type i, aspect_type const &a ) - : s_save_( s ), a_save_( s.pword(i) ), i_save_( i ) - { s.pword(i) = a; } - ~ios_pword_saver() - { this->restore(); } - - void restore() - { s_save_.pword( i_save_ ) = a_save_; } - -private: - state_type & s_save_; - aspect_type const a_save_; - index_type const i_save_; - - ios_pword_saver operator=(const ios_pword_saver&); -}; - - -// Combined stream state saver class (template) declarations ---------------// - -class ios_base_all_saver -{ -public: - typedef ::std::ios_base state_type; - - explicit ios_base_all_saver( state_type &s ) - : s_save_( s ), a1_save_( s.flags() ), a2_save_( s.precision() ) - , a3_save_( s.width() ) - {} - - ~ios_base_all_saver() - { this->restore(); } - - void restore() - { - s_save_.width( a3_save_ ); - s_save_.precision( a2_save_ ); - s_save_.flags( a1_save_ ); - } - -private: - state_type & s_save_; - state_type::fmtflags const a1_save_; - ::std::streamsize const a2_save_; - ::std::streamsize const a3_save_; - - ios_base_all_saver& operator=(const ios_base_all_saver&); -}; - -template < typename Ch, class Tr > -class basic_ios_all_saver -{ -public: - typedef ::std::basic_ios state_type; - - explicit basic_ios_all_saver( state_type &s ) - : s_save_( s ), a1_save_( s.flags() ), a2_save_( s.precision() ) - , a3_save_( s.width() ), a4_save_( s.rdstate() ) - , a5_save_( s.exceptions() ), a6_save_( s.tie() ) - , a7_save_( s.rdbuf() ), a8_save_( s.fill() ) - #ifndef BOOST_NO_STD_LOCALE - , a9_save_( s.getloc() ) - #endif - {} - - ~basic_ios_all_saver() - { this->restore(); } - - void restore() - { - #ifndef BOOST_NO_STD_LOCALE - s_save_.imbue( a9_save_ ); - #endif - s_save_.fill( a8_save_ ); - s_save_.rdbuf( a7_save_ ); - s_save_.tie( a6_save_ ); - s_save_.exceptions( a5_save_ ); - s_save_.clear( a4_save_ ); - s_save_.width( a3_save_ ); - s_save_.precision( a2_save_ ); - s_save_.flags( a1_save_ ); - } - -private: - state_type & s_save_; - typename state_type::fmtflags const a1_save_; - ::std::streamsize const a2_save_; - ::std::streamsize const a3_save_; - typename state_type::iostate const a4_save_; - typename state_type::iostate const a5_save_; - ::std::basic_ostream * const a6_save_; - ::std::basic_streambuf * const a7_save_; - typename state_type::char_type const a8_save_; - #ifndef BOOST_NO_STD_LOCALE - ::std::locale const a9_save_; - #endif - - basic_ios_all_saver& operator=(const basic_ios_all_saver&); -}; - -class ios_all_word_saver -{ -public: - typedef ::std::ios_base state_type; - typedef int index_type; - - ios_all_word_saver( state_type &s, index_type i ) - : s_save_( s ), i_save_( i ), a1_save_( s.iword(i) ) - , a2_save_( s.pword(i) ) - {} - - ~ios_all_word_saver() - { this->restore(); } - - void restore() - { - s_save_.pword( i_save_ ) = a2_save_; - s_save_.iword( i_save_ ) = a1_save_; - } - -private: - state_type & s_save_; - index_type const i_save_; - long const a1_save_; - void * const a2_save_; - - ios_all_word_saver& operator=(const ios_all_word_saver&); -}; - - -} // namespace io -} // namespace boost - - -#endif // BOOST_IO_IOS_STATE_HPP diff --git a/lib/3rdParty/boost/boost/io_fwd.hpp b/lib/3rdParty/boost/boost/io_fwd.hpp deleted file mode 100644 index 417b81e3e..000000000 --- a/lib/3rdParty/boost/boost/io_fwd.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// Boost io_fwd.hpp header file --------------------------------------------// - -// Copyright 2002 Daryle Walker. Use, modification, and distribution are subject -// to the Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or a copy at .) - -// See for the library's home page. - -#ifndef BOOST_IO_FWD_HPP -#define BOOST_IO_FWD_HPP - -#include // for std::char_traits (declaration) - - -namespace boost -{ -namespace io -{ - - -// From -------------------------------------------// - -class ios_flags_saver; -class ios_precision_saver; -class ios_width_saver; -class ios_base_all_saver; - -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_iostate_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_exception_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_tie_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_rdbuf_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_fill_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_locale_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_all_saver; - -typedef basic_ios_iostate_saver ios_iostate_saver; -typedef basic_ios_iostate_saver wios_iostate_saver; -typedef basic_ios_exception_saver ios_exception_saver; -typedef basic_ios_exception_saver wios_exception_saver; -typedef basic_ios_tie_saver ios_tie_saver; -typedef basic_ios_tie_saver wios_tie_saver; -typedef basic_ios_rdbuf_saver ios_rdbuf_saver; -typedef basic_ios_rdbuf_saver wios_rdbuf_saver; -typedef basic_ios_fill_saver ios_fill_saver; -typedef basic_ios_fill_saver wios_fill_saver; -typedef basic_ios_locale_saver ios_locale_saver; -typedef basic_ios_locale_saver wios_locale_saver; -typedef basic_ios_all_saver ios_all_saver; -typedef basic_ios_all_saver wios_all_saver; - -class ios_iword_saver; -class ios_pword_saver; -class ios_all_word_saver; - - -} // namespace io -} // namespace boost - - -#endif // BOOST_IO_FWD_HPP diff --git a/lib/3rdParty/boost/boost/iterator.hpp b/lib/3rdParty/boost/boost/iterator.hpp deleted file mode 100644 index c9c619795..000000000 --- a/lib/3rdParty/boost/boost/iterator.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// (C) Copyright Beman Dawes 2000. 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_ITERATOR_HPP -#define BOOST_ITERATOR_HPP - -// This header is obsolete and will be deprecated. - -#include -#include // std::ptrdiff_t - -namespace boost -{ - -using std::iterator; - -} // namespace boost - -#endif // BOOST_ITERATOR_HPP diff --git a/lib/3rdParty/boost/boost/iterator/counting_iterator.hpp b/lib/3rdParty/boost/boost/iterator/counting_iterator.hpp deleted file mode 100644 index d90980e11..000000000 --- a/lib/3rdParty/boost/boost/iterator/counting_iterator.hpp +++ /dev/null @@ -1,220 +0,0 @@ -// Copyright David Abrahams 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) -#ifndef COUNTING_ITERATOR_DWA200348_HPP -# define COUNTING_ITERATOR_DWA200348_HPP - -# include -# include -# include -# include -# include -# include - -namespace boost { -namespace iterators { - -template < - class Incrementable - , class CategoryOrTraversal - , class Difference -> -class counting_iterator; - -namespace detail -{ - // Try to detect numeric types at compile time in ways compatible - // with the limitations of the compiler and library. - template - struct is_numeric_impl - { - // For a while, this wasn't true, but we rely on it below. This is a regression assert. - BOOST_STATIC_ASSERT(::boost::is_integral::value); - -# ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - - BOOST_STATIC_CONSTANT(bool, value = std::numeric_limits::is_specialized); - -# else - -# if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) - BOOST_STATIC_CONSTANT( - bool, value = ( - boost::is_convertible::value - && boost::is_convertible::value - )); -# else - BOOST_STATIC_CONSTANT(bool, value = ::boost::is_arithmetic::value); -# endif - -# endif - }; - - template - struct is_numeric - : mpl::bool_<(::boost::iterators::detail::is_numeric_impl::value)> - {}; - -# if defined(BOOST_HAS_LONG_LONG) - template <> - struct is_numeric< ::boost::long_long_type> - : mpl::true_ {}; - - template <> - struct is_numeric< ::boost::ulong_long_type> - : mpl::true_ {}; -# endif - - // Some compilers fail to have a numeric_limits specialization - template <> - struct is_numeric - : mpl::true_ {}; - - template - struct numeric_difference - { - typedef typename boost::detail::numeric_traits::difference_type type; - }; - - BOOST_STATIC_ASSERT(is_numeric::value); - - template - struct counting_iterator_base - { - typedef typename detail::ia_dflt_help< - CategoryOrTraversal - , mpl::eval_if< - is_numeric - , mpl::identity - , iterator_traversal - > - >::type traversal; - - typedef typename detail::ia_dflt_help< - Difference - , mpl::eval_if< - is_numeric - , numeric_difference - , iterator_difference - > - >::type difference; - - typedef iterator_adaptor< - counting_iterator // self - , Incrementable // Base - , Incrementable // Value -# ifndef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY - const // MSVC won't strip this. Instead we enable Thomas' - // criterion (see boost/iterator/detail/facade_iterator_category.hpp) -# endif - , traversal - , Incrementable const& // reference - , difference - > type; - }; - - // Template class distance_policy_select -- choose a policy for computing the - // distance between counting_iterators at compile-time based on whether or not - // the iterator wraps an integer or an iterator, using "poor man's partial - // specialization". - - template struct distance_policy_select; - - // A policy for wrapped iterators - template - struct iterator_distance - { - static Difference distance(Incrementable1 x, Incrementable2 y) - { - return y - x; - } - }; - - // A policy for wrapped numbers - template - struct number_distance - { - static Difference distance(Incrementable1 x, Incrementable2 y) - { - return boost::detail::numeric_distance(x, y); - } - }; -} - -template < - class Incrementable - , class CategoryOrTraversal = use_default - , class Difference = use_default -> -class counting_iterator - : public detail::counting_iterator_base< - Incrementable, CategoryOrTraversal, Difference - >::type -{ - typedef typename detail::counting_iterator_base< - Incrementable, CategoryOrTraversal, Difference - >::type super_t; - - friend class iterator_core_access; - - public: - typedef typename super_t::difference_type difference_type; - - counting_iterator() { } - - counting_iterator(counting_iterator const& rhs) : super_t(rhs.base()) {} - - counting_iterator(Incrementable x) - : super_t(x) - { - } - -# if 0 - template - counting_iterator( - counting_iterator const& t - , typename enable_if_convertible::type* = 0 - ) - : super_t(t.base()) - {} -# endif - - private: - - typename super_t::reference dereference() const - { - return this->base_reference(); - } - - template - difference_type - distance_to(counting_iterator const& y) const - { - typedef typename mpl::if_< - detail::is_numeric - , detail::number_distance - , detail::iterator_distance - >::type d; - - return d::distance(this->base(), y.base()); - } -}; - -// Manufacture a counting iterator for an arbitrary incrementable type -template -inline counting_iterator -make_counting_iterator(Incrementable x) -{ - typedef counting_iterator result_t; - return result_t(x); -} - -} // namespace iterators - -using iterators::counting_iterator; -using iterators::make_counting_iterator; - -} // namespace boost - -#endif // COUNTING_ITERATOR_DWA200348_HPP diff --git a/lib/3rdParty/boost/boost/iterator/detail/any_conversion_eater.hpp b/lib/3rdParty/boost/boost/iterator/detail/any_conversion_eater.hpp deleted file mode 100644 index 429421fdb..000000000 --- a/lib/3rdParty/boost/boost/iterator/detail/any_conversion_eater.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright David Abrahams 2003. 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) -#ifndef ANY_CONVERSION_EATER_DWA20031117_HPP -# define ANY_CONVERSION_EATER_DWA20031117_HPP - -namespace boost { -namespace iterators { -namespace detail { - -// This type can be used in traits to "eat" up the one user-defined -// implicit conversion allowed. -struct any_conversion_eater -{ - template - any_conversion_eater(T const&); -}; - -}}} // namespace boost::iterators::detail - -#endif // ANY_CONVERSION_EATER_DWA20031117_HPP diff --git a/lib/3rdParty/boost/boost/iterator/detail/config_def.hpp b/lib/3rdParty/boost/boost/iterator/detail/config_def.hpp deleted file mode 100644 index 117e75a76..000000000 --- a/lib/3rdParty/boost/boost/iterator/detail/config_def.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) - -// no include guard multiple inclusion intended - -// -// This is a temporary workaround until the bulk of this is -// available in boost config. -// 23/02/03 thw -// - -#include // for prior -#include - -#ifdef BOOST_ITERATOR_CONFIG_DEF -# error you have nested config_def #inclusion. -#else -# define BOOST_ITERATOR_CONFIG_DEF -#endif - -// We enable this always now. Otherwise, the simple case in -// libs/iterator/test/constant_iterator_arrow.cpp fails to compile -// because the operator-> return is improperly deduced as a non-const -// pointer. -#if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531)) - -// Recall that in general, compilers without partial specialization -// can't strip constness. Consider counting_iterator, which normally -// passes a const Value to iterator_facade. As a result, any code -// which makes a std::vector of the iterator's value_type will fail -// when its allocator declares functions overloaded on reference and -// const_reference (the same type). -// -// Furthermore, Borland 5.5.1 drops constness in enough ways that we -// end up using a proxy for operator[] when we otherwise shouldn't. -// Using reference constness gives it an extra hint that it can -// return the value_type from operator[] directly, but is not -// strictly necessary. Not sure how best to resolve this one. - -# define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1 - -#endif - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x5A0)) \ - || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \ - || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - -# define BOOST_NO_LVALUE_RETURN_DETECTION - -# if 0 // test code - struct v {}; - - typedef char (&no)[3]; - - template - no foo(T const&, ...); - - template - char foo(T&, int); - - - struct value_iterator - { - v operator*() const; - }; - - template - struct lvalue_deref_helper - { - static T& x; - enum { value = (sizeof(foo(*x,0)) == 1) }; - }; - - int z2[(lvalue_deref_helper::value == 1) ? 1 : -1]; - int z[(lvalue_deref_helper::value) == 1 ? -1 : 1 ]; -# endif - -#endif - -#if BOOST_WORKAROUND(__MWERKS__, <=0x2407) -# define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types" -#endif - -#if BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) -# define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile: - -# if 0 // test code - #include - template - struct foo - { - foo(T); - - template - foo(foo const& other) : p(other.p) { } - - T p; - }; - - bool x = boost::is_convertible, foo >::value; -# endif - -#endif - - -#if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE)) -# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY -#endif - -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - -// GCC-2.95 (obsolete) eagerly instantiates templated constructors and conversion -// operators in convertibility checks, causing premature errors. -// -// Borland's problems are harder to diagnose due to lack of an -// instantiation stack backtrace. They may be due in part to the fact -// that it drops cv-qualification willy-nilly in templates. -# define BOOST_NO_ONE_WAY_ITERATOR_INTEROP -# endif - -// no include guard; multiple inclusion intended diff --git a/lib/3rdParty/boost/boost/iterator/detail/config_undef.hpp b/lib/3rdParty/boost/boost/iterator/detail/config_undef.hpp deleted file mode 100644 index bf1b8d708..000000000 --- a/lib/3rdParty/boost/boost/iterator/detail/config_undef.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (C) Copyright Thomas Witt 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) - -// no include guard multiple inclusion intended - -// -// This is a temporary workaround until the bulk of this is -// available in boost config. -// 23/02/03 thw -// - -#undef BOOST_NO_IS_CONVERTIBLE -#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE -#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY -#undef BOOST_NO_LVALUE_RETURN_DETECTION -#undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP - -#ifdef BOOST_ITERATOR_CONFIG_DEF -# undef BOOST_ITERATOR_CONFIG_DEF -#else -# error missing or nested #include config_def -#endif diff --git a/lib/3rdParty/boost/boost/iterator/detail/enable_if.hpp b/lib/3rdParty/boost/boost/iterator/detail/enable_if.hpp deleted file mode 100644 index 071f5fe81..000000000 --- a/lib/3rdParty/boost/boost/iterator/detail/enable_if.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_ENABLE_IF_23022003THW_HPP -#define BOOST_ENABLE_IF_23022003THW_HPP - -#include -#include - -#include - -// -// Boost iterators uses its own enable_if cause we need -// special semantics for deficient compilers. -// 23/02/03 thw -// - -namespace boost -{ - - namespace iterators - { - // - // Base machinery for all kinds of enable if - // - template - struct enabled - { - template - struct base - { - typedef T type; - }; - }; - - // - // For compilers that don't support "Substitution Failure Is Not An Error" - // enable_if falls back to always enabled. See comments - // on operator implementation for consequences. - // - template<> - struct enabled - { - template - struct base - { -#ifdef BOOST_NO_SFINAE - - typedef T type; - - // This way to do it would give a nice error message containing - // invalid overload, but has the big disadvantage that - // there is no reference to user code in the error message. - // - // struct invalid_overload; - // typedef invalid_overload type; - // -#endif - }; - }; - - - template - struct enable_if -# if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE) - : enabled<(Cond::value)>::template base -# else - : mpl::identity -# endif - { - }; - - } // namespace iterators - -} // namespace boost - -#include - -#endif // BOOST_ENABLE_IF_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/detail/facade_iterator_category.hpp b/lib/3rdParty/boost/boost/iterator/detail/facade_iterator_category.hpp deleted file mode 100644 index 67fdf446b..000000000 --- a/lib/3rdParty/boost/boost/iterator/detail/facade_iterator_category.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright David Abrahams 2003. 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) -#ifndef FACADE_ITERATOR_CATEGORY_DWA20031118_HPP -# define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP - -# include - -# include // used in iterator_tag inheritance logic -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -# include - -# include // try to keep this last - -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY -# include -# endif - -// -// iterator_category deduction for iterator_facade -// - -namespace boost { -namespace iterators { - -// forward declaration -struct use_default; - -namespace detail { - -struct input_output_iterator_tag - : std::input_iterator_tag -{ - // Using inheritance for only input_iterator_tag helps to avoid - // ambiguities when a stdlib implementation dispatches on a - // function which is overloaded on both input_iterator_tag and - // output_iterator_tag, as STLPort does, in its __valid_range - // function. I claim it's better to avoid the ambiguity in these - // cases. - operator std::output_iterator_tag() const - { - return std::output_iterator_tag(); - } -}; - -// -// True iff the user has explicitly disabled writability of this -// iterator. Pass the iterator_facade's Value parameter and its -// nested ::reference type. -// -template -struct iterator_writability_disabled -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic? - : mpl::or_< - is_const - , boost::detail::indirect_traits::is_reference_to_const - , is_const - > -# else - : is_const -# endif -{}; - - -// -// Convert an iterator_facade's traversal category, Value parameter, -// and ::reference type to an appropriate old-style category. -// -// Due to changeset 21683, this now never results in a category convertible -// to output_iterator_tag. -// -// Change at: https://svn.boost.org/trac/boost/changeset/21683 -template -struct iterator_facade_default_category - : mpl::eval_if< - mpl::and_< - is_reference - , is_convertible - > - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::if_< - is_convertible - , std::bidirectional_iterator_tag - , std::forward_iterator_tag - > - > - , typename mpl::eval_if< - mpl::and_< - is_convertible - - // check for readability - , is_convertible - > - , mpl::identity - , mpl::identity - > - > -{ -}; - -// True iff T is convertible to an old-style iterator category. -template -struct is_iterator_category - : mpl::or_< - is_convertible - , is_convertible - > -{ -}; - -template -struct is_iterator_traversal - : is_convertible -{}; - -// -// A composite iterator_category tag convertible to Category (a pure -// old-style category) and Traversal (a pure traversal tag). -// Traversal must be a strict increase of the traversal power given by -// Category. -// -template -struct iterator_category_with_traversal - : Category, Traversal -{ - // Make sure this isn't used to build any categories where - // convertibility to Traversal is redundant. Should just use the - // Category element in that case. - BOOST_MPL_ASSERT_NOT(( - is_convertible< - typename iterator_category_to_traversal::type - , Traversal - >)); - - BOOST_MPL_ASSERT((is_iterator_category)); - BOOST_MPL_ASSERT_NOT((is_iterator_category)); - BOOST_MPL_ASSERT_NOT((is_iterator_traversal)); -# if !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) - BOOST_MPL_ASSERT((is_iterator_traversal)); -# endif -}; - -// Computes an iterator_category tag whose traversal is Traversal and -// which is appropriate for an iterator -template -struct facade_iterator_category_impl -{ - BOOST_MPL_ASSERT_NOT((is_iterator_category)); - - typedef typename iterator_facade_default_category< - Traversal,ValueParam,Reference - >::type category; - - typedef typename mpl::if_< - is_same< - Traversal - , typename iterator_category_to_traversal::type - > - , category - , iterator_category_with_traversal - >::type type; -}; - -// -// Compute an iterator_category for iterator_facade -// -template -struct facade_iterator_category - : mpl::eval_if< - is_iterator_category - , mpl::identity // old-style categories are fine as-is - , facade_iterator_category_impl - > -{ -}; - -}}} // namespace boost::iterators::detail - -# include - -#endif // FACADE_ITERATOR_CATEGORY_DWA20031118_HPP diff --git a/lib/3rdParty/boost/boost/iterator/detail/minimum_category.hpp b/lib/3rdParty/boost/boost/iterator/detail/minimum_category.hpp deleted file mode 100644 index 748c0d3ef..000000000 --- a/lib/3rdParty/boost/boost/iterator/detail/minimum_category.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright David Abrahams 2003. 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) -#ifndef MINIMUM_CATEGORY_DWA20031119_HPP -# define MINIMUM_CATEGORY_DWA20031119_HPP - -# include - -namespace boost { - -// This import below (as well as the whole header) is for backward compatibility -// with boost/token_iterator.hpp. It should be removed as soon as that header is fixed. -namespace detail { -using iterators::minimum_category; -} // namespace detail - -} // namespace boost - -#endif // MINIMUM_CATEGORY_DWA20031119_HPP diff --git a/lib/3rdParty/boost/boost/iterator/filter_iterator.hpp b/lib/3rdParty/boost/boost/iterator/filter_iterator.hpp deleted file mode 100644 index 58aea33f2..000000000 --- a/lib/3rdParty/boost/boost/iterator/filter_iterator.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_FILTER_ITERATOR_23022003THW_HPP -#define BOOST_FILTER_ITERATOR_23022003THW_HPP - -#include -#include -#include - -#include -#include - -namespace boost { -namespace iterators { - - template - class filter_iterator; - - namespace detail - { - template - struct filter_iterator_base - { - typedef iterator_adaptor< - filter_iterator - , Iterator - , use_default - , typename mpl::if_< - is_convertible< - typename iterator_traversal::type - , random_access_traversal_tag - > - , bidirectional_traversal_tag - , use_default - >::type - > type; - }; - } - - template - class filter_iterator - : public detail::filter_iterator_base::type - { - typedef typename detail::filter_iterator_base< - Predicate, Iterator - >::type super_t; - - friend class iterator_core_access; - - public: - filter_iterator() { } - - filter_iterator(Predicate f, Iterator x, Iterator end_ = Iterator()) - : super_t(x), m_predicate(f), m_end(end_) - { - satisfy_predicate(); - } - - filter_iterator(Iterator x, Iterator end_ = Iterator()) - : super_t(x), m_predicate(), m_end(end_) - { - // Pro8 is a little too aggressive about instantiating the - // body of this function. -#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - // Don't allow use of this constructor if Predicate is a - // function pointer type, since it will be 0. - BOOST_STATIC_ASSERT(is_class::value); -#endif - satisfy_predicate(); - } - - template - filter_iterator( - filter_iterator const& t - , typename enable_if_convertible::type* = 0 - ) - : super_t(t.base()), m_predicate(t.predicate()), m_end(t.end()) {} - - Predicate predicate() const { return m_predicate; } - - Iterator end() const { return m_end; } - - private: - void increment() - { - ++(this->base_reference()); - satisfy_predicate(); - } - - void decrement() - { - while(!this->m_predicate(*--(this->base_reference()))){}; - } - - void satisfy_predicate() - { - while (this->base() != this->m_end && !this->m_predicate(*this->base())) - ++(this->base_reference()); - } - - // Probably should be the initial base class so it can be - // optimized away via EBO if it is an empty class. - Predicate m_predicate; - Iterator m_end; - }; - - template - inline filter_iterator - make_filter_iterator(Predicate f, Iterator x, Iterator end = Iterator()) - { - return filter_iterator(f,x,end); - } - - template - inline filter_iterator - make_filter_iterator( - typename iterators::enable_if< - is_class - , Iterator - >::type x - , Iterator end = Iterator()) - { - return filter_iterator(x,end); - } - -} // namespace iterators - -using iterators::filter_iterator; -using iterators::make_filter_iterator; - -} // namespace boost - -#endif // BOOST_FILTER_ITERATOR_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/function_input_iterator.hpp b/lib/3rdParty/boost/boost/iterator/function_input_iterator.hpp deleted file mode 100644 index 8a793df1b..000000000 --- a/lib/3rdParty/boost/boost/iterator/function_input_iterator.hpp +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2009 (C) Dean Michael Berris -// Copyright 2012 (C) Google, Inc. -// Copyright 2012 (C) Jeffrey Lee Hellrung, Jr. -// 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_FUNCTION_INPUT_ITERATOR -#define BOOST_FUNCTION_INPUT_ITERATOR - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { - -namespace iterators { - - namespace impl { - - template - class function_input_iterator - : public iterator_facade< - function_input_iterator, - typename Function::result_type, - single_pass_traversal_tag, - typename Function::result_type const & - > - { - public: - function_input_iterator() {} - function_input_iterator(Function & f_, Input state_ = Input()) - : f(&f_), state(state_) {} - - void increment() { - if(value) - value = none; - else - (*f)(); - ++state; - } - - typename Function::result_type const & - dereference() const { - return (value ? value : value = (*f)()).get(); - } - - bool equal(function_input_iterator const & other) const { - return f == other.f && state == other.state; - } - - private: - Function * f; - Input state; - mutable optional value; - }; - - template - class function_pointer_input_iterator - : public iterator_facade< - function_pointer_input_iterator, - typename function_types::result_type::type, - single_pass_traversal_tag, - typename function_types::result_type::type const & - > - { - public: - function_pointer_input_iterator() {} - function_pointer_input_iterator(Function &f_, Input state_ = Input()) - : f(f_), state(state_) {} - - void increment() { - if(value) - value = none; - else - (*f)(); - ++state; - } - - typename function_types::result_type::type const & - dereference() const { - return (value ? value : value = (*f)()).get(); - } - - bool equal(function_pointer_input_iterator const & other) const { - return f == other.f && state == other.state; - } - - private: - Function f; - Input state; - mutable optional::type> value; - }; - - template - class function_reference_input_iterator - : public function_pointer_input_iterator - { - public: - function_reference_input_iterator(Function & f_, Input state_ = Input()) - : function_pointer_input_iterator(&f_, state_) - {} - }; - - } // namespace impl - - template - class function_input_iterator - : public mpl::if_< - function_types::is_function_pointer, - impl::function_pointer_input_iterator, - typename mpl::if_< - function_types::is_function_reference, - impl::function_reference_input_iterator, - impl::function_input_iterator - >::type - >::type - { - typedef typename mpl::if_< - function_types::is_function_pointer, - impl::function_pointer_input_iterator, - typename mpl::if_< - function_types::is_function_reference, - impl::function_reference_input_iterator, - impl::function_input_iterator - >::type - >::type base_type; - public: - function_input_iterator(Function & f, Input i) - : base_type(f, i) {} - }; - - template - inline function_input_iterator - make_function_input_iterator(Function & f, Input state) { - typedef function_input_iterator result_t; - return result_t(f, state); - } - - template - inline function_input_iterator - make_function_input_iterator(Function * f, Input state) { - typedef function_input_iterator result_t; - return result_t(f, state); - } - - struct infinite { - infinite & operator++() { return *this; } - infinite & operator++(int) { return *this; } - bool operator==(infinite &) const { return false; }; - bool operator==(infinite const &) const { return false; }; - }; - -} // namespace iterators - -using iterators::function_input_iterator; -using iterators::make_function_input_iterator; -using iterators::infinite; - -} // namespace boost - -#endif - diff --git a/lib/3rdParty/boost/boost/iterator/indirect_iterator.hpp b/lib/3rdParty/boost/boost/iterator/indirect_iterator.hpp deleted file mode 100644 index c16eb845f..000000000 --- a/lib/3rdParty/boost/boost/iterator/indirect_iterator.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_INDIRECT_ITERATOR_23022003THW_HPP -#define BOOST_INDIRECT_ITERATOR_23022003THW_HPP - -#include -#include - -#include -#include -#include - -#include - -#include -#include - -#include -#include -#include -#include -#include - -#ifdef BOOST_MPL_CFG_NO_HAS_XXX -# include -# include -# include -# include -#endif - -#include // must be last #include - -namespace boost { -namespace iterators { - - template - class indirect_iterator; - - namespace detail - { - template - struct indirect_base - { - typedef typename boost::detail::iterator_traits::value_type dereferenceable; - - typedef iterator_adaptor< - indirect_iterator - , Iter - , typename ia_dflt_help< - Value, pointee - >::type - , Category - , typename ia_dflt_help< - Reference - , mpl::eval_if< - is_same - , indirect_reference - , add_reference - > - >::type - , Difference - > type; - }; - - template <> - struct indirect_base {}; - } // namespace detail - - - template < - class Iterator - , class Value = use_default - , class Category = use_default - , class Reference = use_default - , class Difference = use_default - > - class indirect_iterator - : public detail::indirect_base< - Iterator, Value, Category, Reference, Difference - >::type - { - typedef typename detail::indirect_base< - Iterator, Value, Category, Reference, Difference - >::type super_t; - - friend class iterator_core_access; - - public: - indirect_iterator() {} - - indirect_iterator(Iterator iter) - : super_t(iter) {} - - template < - class Iterator2, class Value2, class Category2 - , class Reference2, class Difference2 - > - indirect_iterator( - indirect_iterator< - Iterator2, Value2, Category2, Reference2, Difference2 - > const& y - , typename enable_if_convertible::type* = 0 - ) - : super_t(y.base()) - {} - - private: - typename super_t::reference dereference() const - { -# if BOOST_WORKAROUND(__BORLANDC__, < 0x5A0 ) - return const_cast(**this->base()); -# else - return **this->base(); -# endif - } - }; - - template - inline - indirect_iterator make_indirect_iterator(Iter x) - { - return indirect_iterator(x); - } - - template - inline - indirect_iterator make_indirect_iterator(Iter x, Traits* = 0) - { - return indirect_iterator(x); - } - -} // namespace iterators - -using iterators::indirect_iterator; -using iterators::make_indirect_iterator; - -} // namespace boost - -#include - -#endif // BOOST_INDIRECT_ITERATOR_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/interoperable.hpp b/lib/3rdParty/boost/boost/iterator/interoperable.hpp deleted file mode 100644 index 6f3c872a2..000000000 --- a/lib/3rdParty/boost/boost/iterator/interoperable.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_INTEROPERABLE_23022003THW_HPP -# define BOOST_INTEROPERABLE_23022003THW_HPP - -# include -# include - -# include - -# include // must appear last - -namespace boost { -namespace iterators { - - // - // Meta function that determines whether two - // iterator types are considered interoperable. - // - // Two iterator types A,B are considered interoperable if either - // A is convertible to B or vice versa. - // This interoperability definition is in sync with the - // standards requirements on constant/mutable container - // iterators (23.1 [lib.container.requirements]). - // - // For compilers that don't support is_convertible - // is_interoperable gives false positives. See comments - // on operator implementation for consequences. - // - template - struct is_interoperable -# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY - : mpl::true_ -# else - : mpl::or_< - is_convertible< A, B > - , is_convertible< B, A > > -# endif - { - }; - -} // namespace iterators - -using iterators::is_interoperable; - -} // namespace boost - -# include - -#endif // BOOST_INTEROPERABLE_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/is_lvalue_iterator.hpp b/lib/3rdParty/boost/boost/iterator/is_lvalue_iterator.hpp deleted file mode 100644 index e821da9c3..000000000 --- a/lib/3rdParty/boost/boost/iterator/is_lvalue_iterator.hpp +++ /dev/null @@ -1,165 +0,0 @@ -// Copyright David Abrahams 2003. 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) -#ifndef IS_LVALUE_ITERATOR_DWA2003112_HPP -# define IS_LVALUE_ITERATOR_DWA2003112_HPP - -#include - -#include -#include - -#include -#include -#include -#include - -// should be the last #includes -#include -#include - -#ifndef BOOST_NO_IS_CONVERTIBLE - -namespace boost { - -namespace iterators { - -namespace detail -{ -#ifndef BOOST_NO_LVALUE_RETURN_DETECTION - // Calling lvalue_preserver( , 0 ) returns a reference - // to the expression's result if is an lvalue, or - // not_an_lvalue() otherwise. - struct not_an_lvalue {}; - - template - T& lvalue_preserver(T&, int); - - template - not_an_lvalue lvalue_preserver(U const&, ...); - -# define BOOST_LVALUE_PRESERVER(expr) detail::lvalue_preserver(expr,0) - -#else - -# define BOOST_LVALUE_PRESERVER(expr) expr - -#endif - - // Guts of is_lvalue_iterator. Value is the iterator's value_type - // and the result is computed in the nested rebind template. - template - struct is_lvalue_iterator_impl - { - // Eat implicit conversions so we don't report true for things - // convertible to Value const& - struct conversion_eater - { - conversion_eater(typename add_lvalue_reference::type); - }; - - static char tester(conversion_eater, int); - static char (& tester(any_conversion_eater, ...) )[2]; - - template - struct rebind - { - static It& x; - - BOOST_STATIC_CONSTANT( - bool - , value = ( - sizeof( - is_lvalue_iterator_impl::tester( - BOOST_LVALUE_PRESERVER(*x), 0 - ) - ) == 1 - ) - ); - }; - }; - -#undef BOOST_LVALUE_PRESERVER - - // - // void specializations to handle std input and output iterators - // - template <> - struct is_lvalue_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; - -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS - template <> - struct is_lvalue_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; - - template <> - struct is_lvalue_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; - - template <> - struct is_lvalue_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; -#endif - - // - // This level of dispatching is required for Borland. We might save - // an instantiation by removing it for others. - // - template - struct is_readable_lvalue_iterator_impl - : is_lvalue_iterator_impl< - BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type const - >::template rebind - {}; - - template - struct is_non_const_lvalue_iterator_impl - : is_lvalue_iterator_impl< - BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type - >::template rebind - {}; -} // namespace detail - -template< typename T > struct is_lvalue_iterator -: public ::boost::integral_constant::value> -{ -public: - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_lvalue_iterator,(T)) -}; - -template< typename T > struct is_non_const_lvalue_iterator -: public ::boost::integral_constant::value> -{ -public: - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_non_const_lvalue_iterator,(T)) -}; - -} // namespace iterators - -using iterators::is_lvalue_iterator; -using iterators::is_non_const_lvalue_iterator; - -} // namespace boost - -#endif - -#include - -#endif // IS_LVALUE_ITERATOR_DWA2003112_HPP diff --git a/lib/3rdParty/boost/boost/iterator/is_readable_iterator.hpp b/lib/3rdParty/boost/boost/iterator/is_readable_iterator.hpp deleted file mode 100644 index 5bc2339ce..000000000 --- a/lib/3rdParty/boost/boost/iterator/is_readable_iterator.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright David Abrahams 2003. 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) -#ifndef IS_READABLE_ITERATOR_DWA2003112_HPP -# define IS_READABLE_ITERATOR_DWA2003112_HPP - -#include -#include -#include -#include - -#include - -// should be the last #include -#include -#include - -#ifndef BOOST_NO_IS_CONVERTIBLE - -namespace boost { - -namespace iterators { - -namespace detail -{ - // Guts of is_readable_iterator. Value is the iterator's value_type - // and the result is computed in the nested rebind template. - template - struct is_readable_iterator_impl - { - static char tester(typename add_lvalue_reference::type, int); - static char (& tester(any_conversion_eater, ...) )[2]; - - template - struct rebind - { - static It& x; - - BOOST_STATIC_CONSTANT( - bool - , value = ( - sizeof( - is_readable_iterator_impl::tester(*x, 1) - ) == 1 - ) - ); - }; - }; - -#undef BOOST_READABLE_PRESERVER - - // - // void specializations to handle std input and output iterators - // - template <> - struct is_readable_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; - -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS - template <> - struct is_readable_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; - - template <> - struct is_readable_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; - - template <> - struct is_readable_iterator_impl - { - template - struct rebind : boost::mpl::false_ - {}; - }; -#endif - - // - // This level of dispatching is required for Borland. We might save - // an instantiation by removing it for others. - // - template - struct is_readable_iterator_impl2 - : is_readable_iterator_impl< - BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type const - >::template rebind - {}; -} // namespace detail - -template< typename T > struct is_readable_iterator -: public ::boost::integral_constant::value> -{ -public: - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_readable_iterator,(T)) -}; - -} // namespace iterators - -using iterators::is_readable_iterator; - -} // namespace boost - -#endif - -#include - -#endif // IS_READABLE_ITERATOR_DWA2003112_HPP diff --git a/lib/3rdParty/boost/boost/iterator/iterator_adaptor.hpp b/lib/3rdParty/boost/boost/iterator/iterator_adaptor.hpp deleted file mode 100644 index 87cfd0583..000000000 --- a/lib/3rdParty/boost/boost/iterator/iterator_adaptor.hpp +++ /dev/null @@ -1,360 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_ITERATOR_ADAPTOR_23022003THW_HPP -#define BOOST_ITERATOR_ADAPTOR_23022003THW_HPP - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include - -#ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY -# include -#endif - -#include -#include - -#include - -namespace boost { -namespace iterators { - - // Used as a default template argument internally, merely to - // indicate "use the default", this can also be passed by users - // explicitly in order to specify that the default should be used. - struct use_default; - -} // namespace iterators - -using iterators::use_default; - -// the incompleteness of use_default causes massive problems for -// is_convertible (naturally). This workaround is fortunately not -// needed for vc6/vc7. -template -struct is_convertible - : mpl::false_ {}; - -namespace iterators { - - namespace detail - { - - // - // Result type used in enable_if_convertible meta function. - // This can be an incomplete type, as only pointers to - // enable_if_convertible< ... >::type are used. - // We could have used void for this, but conversion to - // void* is just to easy. - // - struct enable_type; - } - - - // - // enable_if for use in adapted iterators constructors. - // - // In order to provide interoperability between adapted constant and - // mutable iterators, adapted iterators will usually provide templated - // conversion constructors of the following form - // - // template - // class adapted_iterator : - // public iterator_adaptor< adapted_iterator, Iterator > - // { - // public: - // - // ... - // - // template - // adapted_iterator( - // OtherIterator const& it - // , typename enable_if_convertible::type* = 0); - // - // ... - // }; - // - // enable_if_convertible is used to remove those overloads from the overload - // set that cannot be instantiated. For all practical purposes only overloads - // for constant/mutable interaction will remain. This has the advantage that - // meta functions like boost::is_convertible do not return false positives, - // as they can only look at the signature of the conversion constructor - // and not at the actual instantiation. - // - // enable_if_interoperable can be safely used in user code. It falls back to - // always enabled for compilers that don't support enable_if or is_convertible. - // There is no need for compiler specific workarounds in user code. - // - // The operators implementation relies on boost::is_convertible not returning - // false positives for user/library defined iterator types. See comments - // on operator implementation for consequences. - // -# if defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_SFINAE) - - template - struct enable_if_convertible - { - typedef boost::iterators::detail::enable_type type; - }; - -# elif BOOST_WORKAROUND(_MSC_FULL_VER, BOOST_TESTED_AT(13102292)) - - // For some reason vc7.1 needs us to "cut off" instantiation - // of is_convertible in a few cases. - template - struct enable_if_convertible - : iterators::enable_if< - mpl::or_< - is_same - , is_convertible - > - , boost::iterators::detail::enable_type - > - {}; - -# else - - template - struct enable_if_convertible - : iterators::enable_if< - is_convertible - , boost::iterators::detail::enable_type - > - {}; - -# endif - - // - // Default template argument handling for iterator_adaptor - // - namespace detail - { - // If T is use_default, return the result of invoking - // DefaultNullaryFn, otherwise return T. - template - struct ia_dflt_help - : mpl::eval_if< - is_same - , DefaultNullaryFn - , mpl::identity - > - { - }; - - // A metafunction which computes an iterator_adaptor's base class, - // a specialization of iterator_facade. - template < - class Derived - , class Base - , class Value - , class Traversal - , class Reference - , class Difference - > - struct iterator_adaptor_base - { - typedef iterator_facade< - Derived - -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY - , typename boost::iterators::detail::ia_dflt_help< - Value - , mpl::eval_if< - is_same - , iterator_value - , remove_reference - > - >::type -# else - , typename boost::iterators::detail::ia_dflt_help< - Value, iterator_value - >::type -# endif - - , typename boost::iterators::detail::ia_dflt_help< - Traversal - , iterator_traversal - >::type - - , typename boost::iterators::detail::ia_dflt_help< - Reference - , mpl::eval_if< - is_same - , iterator_reference - , add_reference - > - >::type - - , typename boost::iterators::detail::ia_dflt_help< - Difference, iterator_difference - >::type - > - type; - }; - - // workaround for aC++ CR JAGaf33512 - template - inline void iterator_adaptor_assert_traversal () - { - BOOST_STATIC_ASSERT((is_convertible::value)); - } - } - - // - // Iterator Adaptor - // - // The parameter ordering changed slightly with respect to former - // versions of iterator_adaptor The idea is that when the user needs - // to fiddle with the reference type it is highly likely that the - // iterator category has to be adjusted as well. Any of the - // following four template arguments may be ommitted or explicitly - // replaced by use_default. - // - // Value - if supplied, the value_type of the resulting iterator, unless - // const. If const, a conforming compiler strips constness for the - // value_type. If not supplied, iterator_traits::value_type is used - // - // Category - the traversal category of the resulting iterator. If not - // supplied, iterator_traversal::type is used. - // - // Reference - the reference type of the resulting iterator, and in - // particular, the result type of operator*(). If not supplied but - // Value is supplied, Value& is used. Otherwise - // iterator_traits::reference is used. - // - // Difference - the difference_type of the resulting iterator. If not - // supplied, iterator_traits::difference_type is used. - // - template < - class Derived - , class Base - , class Value = use_default - , class Traversal = use_default - , class Reference = use_default - , class Difference = use_default - > - class iterator_adaptor - : public boost::iterators::detail::iterator_adaptor_base< - Derived, Base, Value, Traversal, Reference, Difference - >::type - { - friend class iterator_core_access; - - protected: - typedef typename boost::iterators::detail::iterator_adaptor_base< - Derived, Base, Value, Traversal, Reference, Difference - >::type super_t; - public: - iterator_adaptor() {} - - explicit iterator_adaptor(Base const &iter) - : m_iterator(iter) - { - } - - typedef Base base_type; - - Base const& base() const - { return m_iterator; } - - protected: - // for convenience in derived classes - typedef iterator_adaptor iterator_adaptor_; - - // - // lvalue access to the Base object for Derived - // - Base const& base_reference() const - { return m_iterator; } - - Base& base_reference() - { return m_iterator; } - - private: - // - // Core iterator interface for iterator_facade. This is private - // to prevent temptation for Derived classes to use it, which - // will often result in an error. Derived classes should use - // base_reference(), above, to get direct access to m_iterator. - // - typename super_t::reference dereference() const - { return *m_iterator; } - - template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D - > - bool equal(iterator_adaptor const& x) const - { - // Maybe readd with same_distance - // BOOST_STATIC_ASSERT( - // (detail::same_category_and_difference::value) - // ); - return m_iterator == x.base(); - } - - typedef typename iterator_category_to_traversal< - typename super_t::iterator_category - >::type my_traversal; - -# define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \ - boost::iterators::detail::iterator_adaptor_assert_traversal(); - - void advance(typename super_t::difference_type n) - { - BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag) - m_iterator += n; - } - - void increment() { ++m_iterator; } - - void decrement() - { - BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag) - --m_iterator; - } - - template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D - > - typename super_t::difference_type distance_to( - iterator_adaptor const& y) const - { - BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag) - // Maybe readd with same_distance - // BOOST_STATIC_ASSERT( - // (detail::same_category_and_difference::value) - // ); - return y.base() - m_iterator; - } - -# undef BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL - - private: // data members - Base m_iterator; - }; - -} // namespace iterators - -using iterators::iterator_adaptor; -using iterators::enable_if_convertible; - -} // namespace boost - -#include - -#endif // BOOST_ITERATOR_ADAPTOR_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/iterator_archetypes.hpp b/lib/3rdParty/boost/boost/iterator/iterator_archetypes.hpp deleted file mode 100644 index 3e9d44414..000000000 --- a/lib/3rdParty/boost/boost/iterator/iterator_archetypes.hpp +++ /dev/null @@ -1,509 +0,0 @@ -// (C) Copyright Jeremy Siek 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_ITERATOR_ARCHETYPES_HPP -#define BOOST_ITERATOR_ARCHETYPES_HPP - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { -namespace iterators { - -template -struct access_archetype; - -template -struct traversal_archetype; - -namespace archetypes -{ - enum { - readable_iterator_bit = 1 - , writable_iterator_bit = 2 - , swappable_iterator_bit = 4 - , lvalue_iterator_bit = 8 - }; - - // Not quite tags, since dispatching wouldn't work. - typedef mpl::int_::type readable_iterator_t; - typedef mpl::int_::type writable_iterator_t; - - typedef mpl::int_< - (readable_iterator_bit|writable_iterator_bit) - >::type readable_writable_iterator_t; - - typedef mpl::int_< - (readable_iterator_bit|lvalue_iterator_bit) - >::type readable_lvalue_iterator_t; - - typedef mpl::int_< - (lvalue_iterator_bit|writable_iterator_bit) - >::type writable_lvalue_iterator_t; - - typedef mpl::int_::type swappable_iterator_t; - typedef mpl::int_::type lvalue_iterator_t; - - template - struct has_access - : mpl::equal_to< - mpl::bitand_ - , Base - > - {}; -} - -namespace detail -{ - template - struct assign_proxy - { - assign_proxy& operator=(T) { return *this; } - }; - - template - struct read_proxy - { - operator T() { return static_object::get(); } - }; - - template - struct read_write_proxy - : read_proxy // Use to inherit from assign_proxy, but that doesn't work. -JGS - { - read_write_proxy& operator=(T) { return *this; } - }; - - template - struct arrow_proxy - { - T const* operator->() const { return 0; } - }; - - struct no_operator_brackets {}; - - template - struct readable_operator_brackets - { - read_proxy operator[](std::ptrdiff_t n) const { return read_proxy(); } - }; - - template - struct writable_operator_brackets - { - read_write_proxy operator[](std::ptrdiff_t n) const { return read_write_proxy(); } - }; - - template - struct operator_brackets - : mpl::eval_if< - is_convertible - , mpl::eval_if< - archetypes::has_access< - AccessCategory - , archetypes::writable_iterator_t - > - , mpl::identity > - , mpl::if_< - archetypes::has_access< - AccessCategory - , archetypes::readable_iterator_t - > - , readable_operator_brackets - , no_operator_brackets - > - > - , mpl::identity - >::type - {}; - - template - struct traversal_archetype_impl - { - template struct archetype; - }; - - // Constructor argument for those iterators that - // are not default constructible - struct ctor_arg {}; - - template - struct traversal_archetype_ - : traversal_archetype_impl::template archetype - { - typedef typename - traversal_archetype_impl::template archetype - base; - - traversal_archetype_() {} - - traversal_archetype_(ctor_arg arg) - : base(arg) - {} - }; - - template <> - struct traversal_archetype_impl - { - template - struct archetype - { - explicit archetype(ctor_arg) {} - - struct bogus { }; // This use to be void, but that causes trouble for iterator_facade. Need more research. -JGS - typedef bogus difference_type; - - Derived& operator++() { return (Derived&)static_object::get(); } - Derived operator++(int) const { return (Derived&)static_object::get(); } - }; - }; - - template <> - struct traversal_archetype_impl - { - template - struct archetype - : public equality_comparable< traversal_archetype_ >, - public traversal_archetype_ - { - explicit archetype(ctor_arg arg) - : traversal_archetype_(arg) - {} - - typedef std::ptrdiff_t difference_type; - }; - }; - - template - bool operator==(traversal_archetype_ const&, - traversal_archetype_ const&) { return true; } - - template <> - struct traversal_archetype_impl - { - template - struct archetype - : public traversal_archetype_ - { - archetype() - : traversal_archetype_(ctor_arg()) - {} - }; - }; - - template <> - struct traversal_archetype_impl - { - template - struct archetype - : public traversal_archetype_ - { - Derived& operator--() { return static_object::get(); } - Derived operator--(int) const { return static_object::get(); } - }; - }; - - template <> - struct traversal_archetype_impl - { - template - struct archetype - : public traversal_archetype_ - { - Derived& operator+=(std::ptrdiff_t) { return static_object::get(); } - Derived& operator-=(std::ptrdiff_t) { return static_object::get(); } - }; - }; - - template - Derived& operator+(traversal_archetype_ const&, - std::ptrdiff_t) { return static_object::get(); } - - template - Derived& operator+(std::ptrdiff_t, - traversal_archetype_ const&) - { return static_object::get(); } - - template - Derived& operator-(traversal_archetype_ const&, - std::ptrdiff_t) - { return static_object::get(); } - - template - std::ptrdiff_t operator-(traversal_archetype_ const&, - traversal_archetype_ const&) - { return 0; } - - template - bool operator<(traversal_archetype_ const&, - traversal_archetype_ const&) - { return true; } - - template - bool operator>(traversal_archetype_ const&, - traversal_archetype_ const&) - { return true; } - - template - bool operator<=(traversal_archetype_ const&, - traversal_archetype_ const&) - { return true; } - - template - bool operator>=(traversal_archetype_ const&, - traversal_archetype_ const&) - { return true; } - - struct bogus_type; - - template - struct convertible_type - : mpl::if_< is_const, - typename remove_const::type, - bogus_type > - {}; - -} // namespace detail - - -template struct undefined; - -template -struct iterator_access_archetype_impl -{ - template struct archetype; -}; - -template -struct iterator_access_archetype - : iterator_access_archetype_impl< - AccessCategory - >::template archetype -{ -}; - -template <> -struct iterator_access_archetype_impl< - archetypes::readable_iterator_t -> -{ - template - struct archetype - { - typedef typename remove_cv::type value_type; - typedef Value reference; - typedef Value* pointer; - - value_type operator*() const { return static_object::get(); } - - detail::arrow_proxy operator->() const { return detail::arrow_proxy(); } - }; -}; - -template <> -struct iterator_access_archetype_impl< - archetypes::writable_iterator_t -> -{ - template - struct archetype - { - BOOST_STATIC_ASSERT(!is_const::value); - typedef void value_type; - typedef void reference; - typedef void pointer; - - detail::assign_proxy operator*() const { return detail::assign_proxy(); } - }; -}; - -template <> -struct iterator_access_archetype_impl< - archetypes::readable_writable_iterator_t -> -{ - template - struct archetype - : public virtual iterator_access_archetype< - Value, archetypes::readable_iterator_t - > - { - typedef detail::read_write_proxy reference; - - detail::read_write_proxy operator*() const { return detail::read_write_proxy(); } - }; -}; - -template <> -struct iterator_access_archetype_impl -{ - template - struct archetype - : public virtual iterator_access_archetype< - Value, archetypes::readable_iterator_t - > - { - typedef Value& reference; - - Value& operator*() const { return static_object::get(); } - Value* operator->() const { return 0; } - }; -}; - -template <> -struct iterator_access_archetype_impl -{ - template - struct archetype - : public virtual iterator_access_archetype< - Value, archetypes::readable_lvalue_iterator_t - > - { - BOOST_STATIC_ASSERT((!is_const::value)); - }; -}; - - -template -struct iterator_archetype; - -template -struct traversal_archetype_base - : detail::operator_brackets< - typename remove_cv::type - , AccessCategory - , TraversalCategory - > - , detail::traversal_archetype_< - iterator_archetype - , Value - , TraversalCategory - > -{ -}; - -namespace detail -{ - template - struct iterator_archetype_base - : iterator_access_archetype - , traversal_archetype_base - { - typedef iterator_access_archetype access; - - typedef typename detail::facade_iterator_category< - TraversalCategory - , typename mpl::eval_if< - archetypes::has_access< - AccessCategory, archetypes::writable_iterator_t - > - , remove_const - , add_const - >::type - , typename access::reference - >::type iterator_category; - - // Needed for some broken libraries (see below) - typedef boost::iterator< - iterator_category - , Value - , typename traversal_archetype_base< - Value, AccessCategory, TraversalCategory - >::difference_type - , typename access::pointer - , typename access::reference - > workaround_iterator_base; - }; -} - -template -struct iterator_archetype - : public detail::iterator_archetype_base - - // These broken libraries require derivation from std::iterator - // (or related magic) in order to handle iter_swap and other - // iterator operations -# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310) \ - || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101)) - , public detail::iterator_archetype_base< - Value, AccessCategory, TraversalCategory - >::workaround_iterator_base -# endif -{ - // Derivation from std::iterator above caused references to nested - // types to be ambiguous, so now we have to redeclare them all - // here. -# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, < 310) \ - || BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(0x20101)) - - typedef detail::iterator_archetype_base< - Value,AccessCategory,TraversalCategory - > base; - - typedef typename base::value_type value_type; - typedef typename base::reference reference; - typedef typename base::pointer pointer; - typedef typename base::difference_type difference_type; - typedef typename base::iterator_category iterator_category; -# endif - - iterator_archetype() { } - iterator_archetype(iterator_archetype const& x) - : detail::iterator_archetype_base< - Value - , AccessCategory - , TraversalCategory - >(x) - {} - - iterator_archetype& operator=(iterator_archetype const&) - { return *this; } - -# if 0 - // Optional conversion from mutable - iterator_archetype( - iterator_archetype< - typename detail::convertible_type::type - , AccessCategory - , TraversalCategory> const& - ); -# endif -}; - -} // namespace iterators - -// Backward compatibility names -namespace iterator_archetypes = iterators::archetypes; -using iterators::access_archetype; -using iterators::traversal_archetype; -using iterators::iterator_archetype; -using iterators::undefined; -using iterators::iterator_access_archetype_impl; -using iterators::traversal_archetype_base; - -} // namespace boost - -#endif // BOOST_ITERATOR_ARCHETYPES_HPP diff --git a/lib/3rdParty/boost/boost/iterator/iterator_categories.hpp b/lib/3rdParty/boost/boost/iterator/iterator_categories.hpp deleted file mode 100644 index 71202c993..000000000 --- a/lib/3rdParty/boost/boost/iterator/iterator_categories.hpp +++ /dev/null @@ -1,215 +0,0 @@ -// (C) Copyright Jeremy Siek 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_ITERATOR_CATEGORIES_HPP -# define BOOST_ITERATOR_CATEGORIES_HPP - -# include -# include -# include - -# include - -# include -# include -# include -# include - -# include - -# include - -namespace boost { -namespace iterators { - -// -// Traversal Categories -// - -struct no_traversal_tag {}; - -struct incrementable_traversal_tag - : no_traversal_tag -{ -// incrementable_traversal_tag() {} -// incrementable_traversal_tag(std::output_iterator_tag const&) {}; -}; - -struct single_pass_traversal_tag - : incrementable_traversal_tag -{ -// single_pass_traversal_tag() {} -// single_pass_traversal_tag(std::input_iterator_tag const&) {}; -}; - -struct forward_traversal_tag - : single_pass_traversal_tag -{ -// forward_traversal_tag() {} -// forward_traversal_tag(std::forward_iterator_tag const&) {}; -}; - -struct bidirectional_traversal_tag - : forward_traversal_tag -{ -// bidirectional_traversal_tag() {}; -// bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {}; -}; - -struct random_access_traversal_tag - : bidirectional_traversal_tag -{ -// random_access_traversal_tag() {}; -// random_access_traversal_tag(std::random_access_iterator_tag const&) {}; -}; - -namespace detail -{ - // - // Convert a "strictly old-style" iterator category to a traversal - // tag. This is broken out into a separate metafunction to reduce - // the cost of instantiating iterator_category_to_traversal, below, - // for new-style types. - // - template - struct old_category_to_traversal - : mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , void - > - > - > - > - > - {}; - -} // namespace detail - -// -// Convert an iterator category into a traversal tag -// -template -struct iterator_category_to_traversal - : mpl::eval_if< // if already convertible to a traversal tag, we're done. - is_convertible - , mpl::identity - , boost::iterators::detail::old_category_to_traversal - > -{}; - -// Trait to get an iterator's traversal category -template -struct iterator_traversal - : iterator_category_to_traversal< - typename boost::detail::iterator_traits::iterator_category - > -{}; - -# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT -// Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work -// out well. Instantiating the nested apply template also -// requires instantiating iterator_traits on the -// placeholder. Instead we just specialize it as a metafunction -// class. -template <> -struct iterator_traversal -{ - template - struct apply : iterator_traversal - {}; -}; -template <> -struct iterator_traversal - : iterator_traversal -{}; -# endif - -// -// Convert an iterator traversal to one of the traversal tags. -// -template -struct pure_traversal_tag - : mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , void - > - > - > - > - > -{ -}; - -// -// Trait to retrieve one of the iterator traversal tags from the iterator category or traversal. -// -template -struct pure_iterator_traversal - : pure_traversal_tag::type> -{}; - -# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT -template <> -struct pure_iterator_traversal -{ - template - struct apply : pure_iterator_traversal - {}; -}; -template <> -struct pure_iterator_traversal - : pure_iterator_traversal -{}; -# endif - -} // namespace iterators - -using iterators::no_traversal_tag; -using iterators::incrementable_traversal_tag; -using iterators::single_pass_traversal_tag; -using iterators::forward_traversal_tag; -using iterators::bidirectional_traversal_tag; -using iterators::random_access_traversal_tag; -using iterators::iterator_category_to_traversal; -using iterators::iterator_traversal; - -// This import is needed for backward compatibility with Boost.Range: -// boost/range/detail/demote_iterator_traversal_tag.hpp -// It should be removed when that header is fixed. -namespace detail { -using iterators::pure_traversal_tag; -} // namespace detail - -} // namespace boost - -#include - -#endif // BOOST_ITERATOR_CATEGORIES_HPP diff --git a/lib/3rdParty/boost/boost/iterator/iterator_concepts.hpp b/lib/3rdParty/boost/boost/iterator/iterator_concepts.hpp deleted file mode 100644 index 1a9f7d639..000000000 --- a/lib/3rdParty/boost/boost/iterator/iterator_concepts.hpp +++ /dev/null @@ -1,275 +0,0 @@ -// (C) Copyright Jeremy Siek 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_ITERATOR_CONCEPTS_HPP -#define BOOST_ITERATOR_CONCEPTS_HPP - -#include -#include - -// Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems. -#include - -#include -#include - -#include -#include -#include -#include - -#include - -// Use boost/limits to work around missing limits headers on some compilers -#include -#include - -#include - -#include - -namespace boost_concepts -{ - // Used a different namespace here (instead of "boost") so that the - // concept descriptions do not take for granted the names in - // namespace boost. - - //=========================================================================== - // Iterator Access Concepts - - BOOST_concept(ReadableIterator,(Iterator)) - : boost::Assignable - , boost::CopyConstructible - - { - typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type value_type; - typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference reference; - - BOOST_CONCEPT_USAGE(ReadableIterator) - { - - value_type v = *i; - boost::ignore_unused_variable_warning(v); - } - private: - Iterator i; - }; - - template < - typename Iterator - , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type - > - struct WritableIterator - : boost::CopyConstructible - { - BOOST_CONCEPT_USAGE(WritableIterator) - { - *i = v; - } - private: - ValueType v; - Iterator i; - }; - - template < - typename Iterator - , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::value_type - > - struct WritableIteratorConcept : WritableIterator {}; - - BOOST_concept(SwappableIterator,(Iterator)) - { - BOOST_CONCEPT_USAGE(SwappableIterator) - { - std::iter_swap(i1, i2); - } - private: - Iterator i1; - Iterator i2; - }; - - BOOST_concept(LvalueIterator,(Iterator)) - { - typedef typename boost::detail::iterator_traits::value_type value_type; - - BOOST_CONCEPT_USAGE(LvalueIterator) - { - value_type& r = const_cast(*i); - boost::ignore_unused_variable_warning(r); - } - private: - Iterator i; - }; - - - //=========================================================================== - // Iterator Traversal Concepts - - BOOST_concept(IncrementableIterator,(Iterator)) - : boost::Assignable - , boost::CopyConstructible - { - typedef typename boost::iterator_traversal::type traversal_category; - - BOOST_CONCEPT_ASSERT(( - boost::Convertible< - traversal_category - , boost::incrementable_traversal_tag - >)); - - BOOST_CONCEPT_USAGE(IncrementableIterator) - { - ++i; - (void)i++; - } - private: - Iterator i; - }; - - BOOST_concept(SinglePassIterator,(Iterator)) - : IncrementableIterator - , boost::EqualityComparable - - { - BOOST_CONCEPT_ASSERT(( - boost::Convertible< - BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category - , boost::single_pass_traversal_tag - > )); - }; - - BOOST_concept(ForwardTraversal,(Iterator)) - : SinglePassIterator - , boost::DefaultConstructible - { - typedef typename boost::detail::iterator_traits::difference_type difference_type; - - BOOST_MPL_ASSERT((boost::is_integral)); - BOOST_MPL_ASSERT_RELATION(std::numeric_limits::is_signed, ==, true); - - BOOST_CONCEPT_ASSERT(( - boost::Convertible< - BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category - , boost::forward_traversal_tag - > )); - }; - - BOOST_concept(BidirectionalTraversal,(Iterator)) - : ForwardTraversal - { - BOOST_CONCEPT_ASSERT(( - boost::Convertible< - BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category - , boost::bidirectional_traversal_tag - > )); - - BOOST_CONCEPT_USAGE(BidirectionalTraversal) - { - --i; - (void)i--; - } - private: - Iterator i; - }; - - BOOST_concept(RandomAccessTraversal,(Iterator)) - : BidirectionalTraversal - { - BOOST_CONCEPT_ASSERT(( - boost::Convertible< - BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category - , boost::random_access_traversal_tag - > )); - - BOOST_CONCEPT_USAGE(RandomAccessTraversal) - { - i += n; - i = i + n; - i = n + i; - i -= n; - i = i - n; - n = i - j; - } - - private: - typename BidirectionalTraversal::difference_type n; - Iterator i, j; - }; - - //=========================================================================== - // Iterator Interoperability - - namespace detail - { - template - void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2) - { - bool b; - b = i1 == i2; - b = i1 != i2; - - b = i2 == i1; - b = i2 != i1; - boost::ignore_unused_variable_warning(b); - } - - template - void interop_rand_access_constraints( - Iterator1 const& i1, Iterator2 const& i2, - boost::random_access_traversal_tag, boost::random_access_traversal_tag) - { - bool b; - typename boost::detail::iterator_traits::difference_type n; - b = i1 < i2; - b = i1 <= i2; - b = i1 > i2; - b = i1 >= i2; - n = i1 - i2; - - b = i2 < i1; - b = i2 <= i1; - b = i2 > i1; - b = i2 >= i1; - n = i2 - i1; - boost::ignore_unused_variable_warning(b); - boost::ignore_unused_variable_warning(n); - } - - template - void interop_rand_access_constraints( - Iterator1 const&, Iterator2 const&, - boost::single_pass_traversal_tag, boost::single_pass_traversal_tag) - { } - - } // namespace detail - - BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator)) - { - private: - typedef typename boost::iterators::pure_iterator_traversal::type traversal_category; - typedef typename boost::iterators::pure_iterator_traversal::type const_traversal_category; - - public: - BOOST_CONCEPT_ASSERT((SinglePassIterator)); - BOOST_CONCEPT_ASSERT((SinglePassIterator)); - - BOOST_CONCEPT_USAGE(InteroperableIterator) - { - detail::interop_single_pass_constraints(i, ci); - detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category()); - - ci = i; - } - - private: - Iterator i; - ConstIterator ci; - }; - -} // namespace boost_concepts - -#include - -#endif // BOOST_ITERATOR_CONCEPTS_HPP diff --git a/lib/3rdParty/boost/boost/iterator/iterator_facade.hpp b/lib/3rdParty/boost/boost/iterator/iterator_facade.hpp deleted file mode 100644 index 7b11d0aec..000000000 --- a/lib/3rdParty/boost/boost/iterator/iterator_facade.hpp +++ /dev/null @@ -1,980 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_ITERATOR_FACADE_23022003THW_HPP -#define BOOST_ITERATOR_FACADE_23022003THW_HPP - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include // this goes last - -namespace boost { -namespace iterators { - - // This forward declaration is required for the friend declaration - // in iterator_core_access - template class iterator_facade; - - namespace detail - { - // A binary metafunction class that always returns bool. VC6 - // ICEs on mpl::always, probably because of the default - // parameters. - struct always_bool2 - { - template - struct apply - { - typedef bool type; - }; - }; - - // The type trait checks if the category or traversal is at least as advanced as the specified required traversal - template< typename CategoryOrTraversal, typename Required > - struct is_traversal_at_least : - public boost::is_convertible< typename iterator_category_to_traversal< CategoryOrTraversal >::type, Required > - {}; - - // - // enable if for use in operator implementation. - // - template < - class Facade1 - , class Facade2 - , class Return - > - struct enable_if_interoperable : - public boost::iterators::enable_if< - is_interoperable< Facade1, Facade2 > - , Return - > - {}; - - // - // enable if for use in implementation of operators specific for random access traversal. - // - template < - class Facade1 - , class Facade2 - , class Return - > - struct enable_if_interoperable_and_random_access_traversal : - public boost::iterators::enable_if< - mpl::and_< - is_interoperable< Facade1, Facade2 > - , is_traversal_at_least< typename iterator_category< Facade1 >::type, random_access_traversal_tag > - , is_traversal_at_least< typename iterator_category< Facade2 >::type, random_access_traversal_tag > - > - , Return - > - {}; - - // - // Generates associated types for an iterator_facade with the - // given parameters. - // - template < - class ValueParam - , class CategoryOrTraversal - , class Reference - , class Difference - > - struct iterator_facade_types - { - typedef typename facade_iterator_category< - CategoryOrTraversal, ValueParam, Reference - >::type iterator_category; - - typedef typename remove_const::type value_type; - - // Not the real associated pointer type - typedef typename mpl::eval_if< - boost::iterators::detail::iterator_writability_disabled - , add_pointer - , add_pointer - >::type pointer; - -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452)) \ - || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, BOOST_TESTED_AT(310))) \ - || BOOST_WORKAROUND(BOOST_RWSTD_VER, BOOST_TESTED_AT(0x20101)) \ - || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 310) - - // To interoperate with some broken library/compiler - // combinations, user-defined iterators must be derived from - // std::iterator. It is possible to implement a standard - // library for broken compilers without this limitation. -# define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1 - - typedef - iterator - base; -# endif - }; - - // iterators whose dereference operators reference the same value - // for all iterators into the same sequence (like many input - // iterators) need help with their postfix ++: the referenced - // value must be read and stored away before the increment occurs - // so that *a++ yields the originally referenced element and not - // the next one. - template - class postfix_increment_proxy - { - typedef typename iterator_value::type value_type; - public: - explicit postfix_increment_proxy(Iterator const& x) - : stored_value(*x) - {} - - // Returning a mutable reference allows nonsense like - // (*r++).mutate(), but it imposes fewer assumptions about the - // behavior of the value_type. In particular, recall that - // (*r).mutate() is legal if operator* returns by value. - value_type& - operator*() const - { - return this->stored_value; - } - private: - mutable value_type stored_value; - }; - - // - // In general, we can't determine that such an iterator isn't - // writable -- we also need to store a copy of the old iterator so - // that it can be written into. - template - class writable_postfix_increment_proxy - { - typedef typename iterator_value::type value_type; - public: - explicit writable_postfix_increment_proxy(Iterator const& x) - : stored_value(*x) - , stored_iterator(x) - {} - - // Dereferencing must return a proxy so that both *r++ = o and - // value_type(*r++) can work. In this case, *r is the same as - // *r++, and the conversion operator below is used to ensure - // readability. - writable_postfix_increment_proxy const& - operator*() const - { - return *this; - } - - // Provides readability of *r++ - operator value_type&() const - { - return stored_value; - } - - // Provides writability of *r++ - template - T const& operator=(T const& x) const - { - *this->stored_iterator = x; - return x; - } - - // This overload just in case only non-const objects are writable - template - T& operator=(T& x) const - { - *this->stored_iterator = x; - return x; - } - - // Provides X(r++) - operator Iterator const&() const - { - return stored_iterator; - } - - private: - mutable value_type stored_value; - Iterator stored_iterator; - }; - -# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - template - struct is_non_proxy_reference_impl - { - static Reference r; - - template - static typename mpl::if_< - is_convertible< - R const volatile* - , Value const volatile* - > - , char[1] - , char[2] - >::type& helper(R const&); - - BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1); - }; - - template - struct is_non_proxy_reference - : mpl::bool_< - is_non_proxy_reference_impl::value - > - {}; -# else - template - struct is_non_proxy_reference - : is_convertible< - typename remove_reference::type - const volatile* - , Value const volatile* - > - {}; -# endif - - // A metafunction to choose the result type of postfix ++ - // - // Because the C++98 input iterator requirements say that *r++ has - // type T (value_type), implementations of some standard - // algorithms like lexicographical_compare may use constructions - // like: - // - // *r++ < *s++ - // - // If *r++ returns a proxy (as required if r is writable but not - // multipass), this sort of expression will fail unless the proxy - // supports the operator<. Since there are any number of such - // operations, we're not going to try to support them. Therefore, - // even if r++ returns a proxy, *r++ will only return a proxy if - // *r also returns a proxy. - template - struct postfix_increment_result - : mpl::eval_if< - mpl::and_< - // A proxy is only needed for readable iterators - is_convertible< - Reference - // Use add_lvalue_reference to form `reference to Value` due to - // some (strict) C++03 compilers (e.g. `gcc -std=c++03`) reject - // 'reference-to-reference' in the template which described in CWG - // DR106. - // http://www.open-std.org/Jtc1/sc22/wg21/docs/cwg_defects.html#106 - , typename add_lvalue_reference::type - > - - // No multipass iterator can have values that disappear - // before positions can be re-visited - , mpl::not_< - is_convertible< - typename iterator_category_to_traversal::type - , forward_traversal_tag - > - > - > - , mpl::if_< - is_non_proxy_reference - , postfix_increment_proxy - , writable_postfix_increment_proxy - > - , mpl::identity - > - {}; - - // operator->() needs special support for input iterators to strictly meet the - // standard's requirements. If *i is not a reference type, we must still - // produce an lvalue to which a pointer can be formed. We do that by - // returning a proxy object containing an instance of the reference object. - template - struct operator_arrow_dispatch // proxy references - { - struct proxy - { - explicit proxy(Reference const & x) : m_ref(x) {} - Reference* operator->() { return boost::addressof(m_ref); } - // This function is needed for MWCW and BCC, which won't call - // operator-> again automatically per 13.3.1.2 para 8 - operator Reference*() { return boost::addressof(m_ref); } - Reference m_ref; - }; - typedef proxy result_type; - static result_type apply(Reference const & x) - { - return result_type(x); - } - }; - - template - struct operator_arrow_dispatch // "real" references - { - typedef Pointer result_type; - static result_type apply(T& x) - { - return boost::addressof(x); - } - }; - - // A proxy return type for operator[], needed to deal with - // iterators that may invalidate referents upon destruction. - // Consider the temporary iterator in *(a + n) - template - class operator_brackets_proxy - { - // Iterator is actually an iterator_facade, so we do not have to - // go through iterator_traits to access the traits. - typedef typename Iterator::reference reference; - typedef typename Iterator::value_type value_type; - - public: - operator_brackets_proxy(Iterator const& iter) - : m_iter(iter) - {} - - operator reference() const - { - return *m_iter; - } - - operator_brackets_proxy& operator=(value_type const& val) - { - *m_iter = val; - return *this; - } - - private: - Iterator m_iter; - }; - - // A metafunction that determines whether operator[] must return a - // proxy, or whether it can simply return a copy of the value_type. - template - struct use_operator_brackets_proxy - : mpl::not_< - mpl::and_< - // Really we want an is_copy_constructible trait here, - // but is_POD will have to suffice in the meantime. - boost::is_POD - , iterator_writability_disabled - > - > - {}; - - template - struct operator_brackets_result - { - typedef typename mpl::if_< - use_operator_brackets_proxy - , operator_brackets_proxy - , Value - >::type type; - }; - - template - operator_brackets_proxy make_operator_brackets_result(Iterator const& iter, mpl::true_) - { - return operator_brackets_proxy(iter); - } - - template - typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_) - { - return *iter; - } - - struct choose_difference_type - { - template - struct apply - : -# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP - iterator_difference -# else - mpl::eval_if< - is_convertible - , iterator_difference - , iterator_difference - > -# endif - {}; - - }; - - template < - class Derived - , class Value - , class CategoryOrTraversal - , class Reference - , class Difference - , bool IsBidirectionalTraversal - , bool IsRandomAccessTraversal - > - class iterator_facade_base; - - } // namespace detail - - - // Macros which describe the declarations of binary operators -# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY -# define BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, enabler) \ - template < \ - class Derived1, class V1, class TC1, class Reference1, class Difference1 \ - , class Derived2, class V2, class TC2, class Reference2, class Difference2 \ - > \ - prefix typename mpl::apply2::type \ - operator op( \ - iterator_facade const& lhs \ - , iterator_facade const& rhs) -# else -# define BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, enabler) \ - template < \ - class Derived1, class V1, class TC1, class Reference1, class Difference1 \ - , class Derived2, class V2, class TC2, class Reference2, class Difference2 \ - > \ - prefix typename enabler< \ - Derived1, Derived2 \ - , typename mpl::apply2::type \ - >::type \ - operator op( \ - iterator_facade const& lhs \ - , iterator_facade const& rhs) -# endif - -# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \ - BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, boost::iterators::detail::enable_if_interoperable) - -# define BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(prefix, op, result_type) \ - BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL(prefix, op, result_type, boost::iterators::detail::enable_if_interoperable_and_random_access_traversal) - -# define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args) \ - template \ - prefix typename boost::iterators::enable_if< \ - boost::iterators::detail::is_traversal_at_least< TC, boost::iterators::random_access_traversal_tag >, \ - Derived \ - >::type operator+ args - - // - // Helper class for granting access to the iterator core interface. - // - // The simple core interface is used by iterator_facade. The core - // interface of a user/library defined iterator type should not be made public - // so that it does not clutter the public interface. Instead iterator_core_access - // should be made friend so that iterator_facade can access the core - // interface through iterator_core_access. - // - class iterator_core_access - { -# if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) - // Tasteless as this may seem, making all members public allows member templates - // to work in the absence of member template friends. - public: -# else - - template friend class iterator_facade; - template - friend class detail::iterator_facade_base; - -# define BOOST_ITERATOR_FACADE_RELATION(op) \ - BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, boost::iterators::detail::always_bool2); - - BOOST_ITERATOR_FACADE_RELATION(==) - BOOST_ITERATOR_FACADE_RELATION(!=) - -# undef BOOST_ITERATOR_FACADE_RELATION - -# define BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(op) \ - BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(friend,op, boost::iterators::detail::always_bool2); - - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<) - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>) - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<=) - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>=) - -# undef BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION - - BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD( - friend, -, boost::iterators::detail::choose_difference_type) - ; - - BOOST_ITERATOR_FACADE_PLUS_HEAD( - friend inline - , (iterator_facade const& - , typename Derived::difference_type) - ) - ; - - BOOST_ITERATOR_FACADE_PLUS_HEAD( - friend inline - , (typename Derived::difference_type - , iterator_facade const&) - ) - ; - -# endif - - template - static typename Facade::reference dereference(Facade const& f) - { - return f.dereference(); - } - - template - static void increment(Facade& f) - { - f.increment(); - } - - template - static void decrement(Facade& f) - { - f.decrement(); - } - - template - static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_) - { - return f1.equal(f2); - } - - template - static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_) - { - return f2.equal(f1); - } - - template - static void advance(Facade& f, typename Facade::difference_type n) - { - f.advance(n); - } - - template - static typename Facade1::difference_type distance_from( - Facade1 const& f1, Facade2 const& f2, mpl::true_) - { - return -f1.distance_to(f2); - } - - template - static typename Facade2::difference_type distance_from( - Facade1 const& f1, Facade2 const& f2, mpl::false_) - { - return f2.distance_to(f1); - } - - // - // Curiously Recurring Template interface. - // - template - static I& derived(iterator_facade& facade) - { - return *static_cast(&facade); - } - - template - static I const& derived(iterator_facade const& facade) - { - return *static_cast(&facade); - } - - // objects of this class are useless - BOOST_DELETED_FUNCTION(iterator_core_access()) - }; - - namespace detail { - - // Implementation for forward traversal iterators - template < - class Derived - , class Value - , class CategoryOrTraversal - , class Reference - , class Difference - > - class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, false, false > -# ifdef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE - : public boost::iterators::detail::iterator_facade_types< - Value, CategoryOrTraversal, Reference, Difference - >::base -# undef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE -# endif - { - private: - typedef boost::iterators::detail::iterator_facade_types< - Value, CategoryOrTraversal, Reference, Difference - > associated_types; - - typedef boost::iterators::detail::operator_arrow_dispatch< - Reference - , typename associated_types::pointer - > operator_arrow_dispatch_; - - public: - typedef typename associated_types::value_type value_type; - typedef Reference reference; - typedef Difference difference_type; - - typedef typename operator_arrow_dispatch_::result_type pointer; - - typedef typename associated_types::iterator_category iterator_category; - - public: - reference operator*() const - { - return iterator_core_access::dereference(this->derived()); - } - - pointer operator->() const - { - return operator_arrow_dispatch_::apply(*this->derived()); - } - - Derived& operator++() - { - iterator_core_access::increment(this->derived()); - return this->derived(); - } - - protected: - // - // Curiously Recurring Template interface. - // - Derived& derived() - { - return *static_cast(this); - } - - Derived const& derived() const - { - return *static_cast(this); - } - }; - - // Implementation for bidirectional traversal iterators - template < - class Derived - , class Value - , class CategoryOrTraversal - , class Reference - , class Difference - > - class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > : - public iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, false, false > - { - public: - Derived& operator--() - { - iterator_core_access::decrement(this->derived()); - return this->derived(); - } - - Derived operator--(int) - { - Derived tmp(this->derived()); - --*this; - return tmp; - } - }; - - // Implementation for random access traversal iterators - template < - class Derived - , class Value - , class CategoryOrTraversal - , class Reference - , class Difference - > - class iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, true > : - public iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > - { - private: - typedef iterator_facade_base< Derived, Value, CategoryOrTraversal, Reference, Difference, true, false > base_type; - - public: - typedef typename base_type::reference reference; - typedef typename base_type::difference_type difference_type; - - public: - typename boost::iterators::detail::operator_brackets_result::type - operator[](difference_type n) const - { - typedef boost::iterators::detail::use_operator_brackets_proxy use_proxy; - - return boost::iterators::detail::make_operator_brackets_result( - this->derived() + n - , use_proxy() - ); - } - - Derived& operator+=(difference_type n) - { - iterator_core_access::advance(this->derived(), n); - return this->derived(); - } - - Derived& operator-=(difference_type n) - { - iterator_core_access::advance(this->derived(), -n); - return this->derived(); - } - - Derived operator-(difference_type x) const - { - Derived result(this->derived()); - return result -= x; - } - }; - - } // namespace detail - - // - // iterator_facade - use as a public base class for defining new - // standard-conforming iterators. - // - template < - class Derived // The derived iterator type being constructed - , class Value - , class CategoryOrTraversal - , class Reference = Value& - , class Difference = std::ptrdiff_t - > - class iterator_facade : - public detail::iterator_facade_base< - Derived, - Value, - CategoryOrTraversal, - Reference, - Difference, - detail::is_traversal_at_least< CategoryOrTraversal, bidirectional_traversal_tag >::value, - detail::is_traversal_at_least< CategoryOrTraversal, random_access_traversal_tag >::value - > - { - protected: - // For use by derived classes - typedef iterator_facade iterator_facade_; - }; - - template - inline typename boost::iterators::detail::postfix_increment_result::type - operator++( - iterator_facade& i - , int - ) - { - typename boost::iterators::detail::postfix_increment_result::type - tmp(*static_cast(&i)); - - ++i; - - return tmp; - } - - - // - // Comparison operator implementation. The library supplied operators - // enables the user to provide fully interoperable constant/mutable - // iterator types. I.e. the library provides all operators - // for all mutable/constant iterator combinations. - // - // Note though that this kind of interoperability for constant/mutable - // iterators is not required by the standard for container iterators. - // All the standard asks for is a conversion mutable -> constant. - // Most standard library implementations nowadays provide fully interoperable - // iterator implementations, but there are still heavily used implementations - // that do not provide them. (Actually it's even worse, they do not provide - // them for only a few iterators.) - // - // ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should - // enable the user to turn off mixed type operators - // - // The library takes care to provide only the right operator overloads. - // I.e. - // - // bool operator==(Iterator, Iterator); - // bool operator==(ConstIterator, Iterator); - // bool operator==(Iterator, ConstIterator); - // bool operator==(ConstIterator, ConstIterator); - // - // ... - // - // In order to do so it uses c++ idioms that are not yet widely supported - // by current compiler releases. The library is designed to degrade gracefully - // in the face of compiler deficiencies. In general compiler - // deficiencies result in less strict error checking and more obscure - // error messages, functionality is not affected. - // - // For full operation compiler support for "Substitution Failure Is Not An Error" - // (aka. enable_if) and boost::is_convertible is required. - // - // The following problems occur if support is lacking. - // - // Pseudo code - // - // --------------- - // AdaptorA a1; - // AdaptorA a2; - // - // // This will result in a no such overload error in full operation - // // If enable_if or is_convertible is not supported - // // The instantiation will fail with an error hopefully indicating that - // // there is no operator== for Iterator1, Iterator2 - // // The same will happen if no enable_if is used to remove - // // false overloads from the templated conversion constructor - // // of AdaptorA. - // - // a1 == a2; - // ---------------- - // - // AdaptorA a; - // AdaptorB b; - // - // // This will result in a no such overload error in full operation - // // If enable_if is not supported the static assert used - // // in the operator implementation will fail. - // // This will accidently work if is_convertible is not supported. - // - // a == b; - // ---------------- - // - -# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP -# define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_() -# else -# define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible() -# endif - -# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \ - BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type) \ - { \ - /* For those compilers that do not support enable_if */ \ - BOOST_STATIC_ASSERT(( \ - is_interoperable< Derived1, Derived2 >::value \ - )); \ - return_prefix iterator_core_access::base_op( \ - *static_cast(&lhs) \ - , *static_cast(&rhs) \ - , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \ - ); \ - } - -# define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \ - BOOST_ITERATOR_FACADE_INTEROP( \ - op \ - , boost::iterators::detail::always_bool2 \ - , return_prefix \ - , base_op \ - ) - - BOOST_ITERATOR_FACADE_RELATION(==, return, equal) - BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal) - -# undef BOOST_ITERATOR_FACADE_RELATION - - -# define BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS(op, result_type, return_prefix, base_op) \ - BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD(inline, op, result_type) \ - { \ - /* For those compilers that do not support enable_if */ \ - BOOST_STATIC_ASSERT(( \ - is_interoperable< Derived1, Derived2 >::value && \ - boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived1 >::type, random_access_traversal_tag >::value && \ - boost::iterators::detail::is_traversal_at_least< typename iterator_category< Derived2 >::type, random_access_traversal_tag >::value \ - )); \ - return_prefix iterator_core_access::base_op( \ - *static_cast(&lhs) \ - , *static_cast(&rhs) \ - , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \ - ); \ - } - -# define BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(op, return_prefix, base_op) \ - BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS( \ - op \ - , boost::iterators::detail::always_bool2 \ - , return_prefix \ - , base_op \ - ) - - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<, return 0 >, distance_from) - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>, return 0 <, distance_from) - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(<=, return 0 >=, distance_from) - BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION(>=, return 0 <=, distance_from) - -# undef BOOST_ITERATOR_FACADE_RANDOM_ACCESS_RELATION - - // operator- requires an additional part in the static assertion - BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS( - - - , boost::iterators::detail::choose_difference_type - , return - , distance_from - ) - -# undef BOOST_ITERATOR_FACADE_INTEROP -# undef BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS - -# define BOOST_ITERATOR_FACADE_PLUS(args) \ - BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args) \ - { \ - Derived tmp(static_cast(i)); \ - return tmp += n; \ - } - - BOOST_ITERATOR_FACADE_PLUS(( - iterator_facade const& i - , typename Derived::difference_type n - )) - - BOOST_ITERATOR_FACADE_PLUS(( - typename Derived::difference_type n - , iterator_facade const& i - )) - -# undef BOOST_ITERATOR_FACADE_PLUS -# undef BOOST_ITERATOR_FACADE_PLUS_HEAD - -# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD -# undef BOOST_ITERATOR_FACADE_INTEROP_RANDOM_ACCESS_HEAD -# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD_IMPL - -} // namespace iterators - -using iterators::iterator_core_access; -using iterators::iterator_facade; - -} // namespace boost - -#include - -#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/iterator_traits.hpp b/lib/3rdParty/boost/boost/iterator/iterator_traits.hpp deleted file mode 100644 index 1a5f1e0d6..000000000 --- a/lib/3rdParty/boost/boost/iterator/iterator_traits.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright David Abrahams 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) -#ifndef ITERATOR_TRAITS_DWA200347_HPP -# define ITERATOR_TRAITS_DWA200347_HPP - -# include -# include - -namespace boost { -namespace iterators { - -// Macro for supporting old compilers, no longer needed but kept -// for backwards compatibility (it was documented). -#define BOOST_ITERATOR_CATEGORY iterator_category - - -template -struct iterator_value -{ - typedef typename boost::detail::iterator_traits::value_type type; -}; - -template -struct iterator_reference -{ - typedef typename boost::detail::iterator_traits::reference type; -}; - - -template -struct iterator_pointer -{ - typedef typename boost::detail::iterator_traits::pointer type; -}; - -template -struct iterator_difference -{ - typedef typename boost::detail::iterator_traits::difference_type type; -}; - -template -struct iterator_category -{ - typedef typename boost::detail::iterator_traits::iterator_category type; -}; - -} // namespace iterators - -using iterators::iterator_value; -using iterators::iterator_reference; -using iterators::iterator_pointer; -using iterators::iterator_difference; -using iterators::iterator_category; - -} // namespace boost - -#endif // ITERATOR_TRAITS_DWA200347_HPP diff --git a/lib/3rdParty/boost/boost/iterator/minimum_category.hpp b/lib/3rdParty/boost/boost/iterator/minimum_category.hpp deleted file mode 100644 index 15679bc77..000000000 --- a/lib/3rdParty/boost/boost/iterator/minimum_category.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright David Abrahams 2003. 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) -#ifndef BOOST_ITERATOR_MINIMUM_CATEGORY_HPP_INCLUDED_ -# define BOOST_ITERATOR_MINIMUM_CATEGORY_HPP_INCLUDED_ - -# include -# include -# include - -# include -# include - -namespace boost { -namespace iterators { -namespace detail { - -template -struct minimum_category_impl; - -template -struct error_not_related_by_convertibility; - -template <> -struct minimum_category_impl -{ - template struct apply - { - typedef T2 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - { - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - { - BOOST_STATIC_ASSERT((is_same::value)); - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - : error_not_related_by_convertibility - { - }; -}; - -} // namespace detail - -// -// Returns the minimum category type or fails to compile -// if T1 and T2 are unrelated. -// -template -struct minimum_category -{ - typedef boost::iterators::detail::minimum_category_impl< - ::boost::is_convertible::value - , ::boost::is_convertible::value - > outer; - - typedef typename outer::template apply inner; - typedef typename inner::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,minimum_category,(T1,T2)) -}; - -template <> -struct minimum_category -{ - template - struct apply : minimum_category - {}; - - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,minimum_category,(mpl::_1,mpl::_2)) -}; - -} // namespace iterators - -} // namespace boost - -#endif // BOOST_ITERATOR_MINIMUM_CATEGORY_HPP_INCLUDED_ diff --git a/lib/3rdParty/boost/boost/iterator/new_iterator_tests.hpp b/lib/3rdParty/boost/boost/iterator/new_iterator_tests.hpp deleted file mode 100644 index caad700ae..000000000 --- a/lib/3rdParty/boost/boost/iterator/new_iterator_tests.hpp +++ /dev/null @@ -1,264 +0,0 @@ -#ifndef BOOST_NEW_ITERATOR_TESTS_HPP -# define BOOST_NEW_ITERATOR_TESTS_HPP - -// -// Copyright (c) David Abrahams 2001. -// Copyright (c) Jeremy Siek 2001-2003. -// Copyright (c) Thomas Witt 2002. -// -// 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 is meant to be the beginnings of a comprehensive, generic -// test suite for STL concepts such as iterators and containers. -// -// Revision History: -// 28 Oct 2002 Started update for new iterator categories -// (Jeremy Siek) -// 28 Apr 2002 Fixed input iterator requirements. -// For a == b a++ == b++ is no longer required. -// See 24.1.1/3 for details. -// (Thomas Witt) -// 08 Feb 2001 Fixed bidirectional iterator test so that -// --i is no longer a precondition. -// (Jeremy Siek) -// 04 Feb 2001 Added lvalue test, corrected preconditions -// (David Abrahams) - -# include -# include -# include -# include // for detail::dummy_constructor -# include -# include -# include -# include - -# include -# include -# include - -namespace boost { - - -// Do separate tests for *i++ so we can treat, e.g., smart pointers, -// as readable and/or writable iterators. -template -void readable_iterator_traversal_test(Iterator i1, T v, mpl::true_) -{ - T v2(*i1++); - BOOST_TEST(v == v2); -} - -template -void readable_iterator_traversal_test(const Iterator i1, T v, mpl::false_) -{} - -template -void writable_iterator_traversal_test(Iterator i1, T v, mpl::true_) -{ - ++i1; // we just wrote into that position - *i1++ = v; - Iterator x(i1++); - (void)x; -} - -template -void writable_iterator_traversal_test(const Iterator i1, T v, mpl::false_) -{} - - -// Preconditions: *i == v -template -void readable_iterator_test(const Iterator i1, T v) -{ - Iterator i2(i1); // Copy Constructible - typedef typename detail::iterator_traits::reference ref_t; - ref_t r1 = *i1; - ref_t r2 = *i2; - T v1 = r1; - T v2 = r2; - BOOST_TEST(v1 == v); - BOOST_TEST(v2 == v); - -# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407) - readable_iterator_traversal_test(i1, v, detail::is_postfix_incrementable()); - - // I think we don't really need this as it checks the same things as - // the above code. - BOOST_STATIC_ASSERT(is_readable_iterator::value); -# endif -} - -template -void writable_iterator_test(Iterator i, T v, T v2) -{ - Iterator i2(i); // Copy Constructible - *i2 = v; - -# if !BOOST_WORKAROUND(__MWERKS__, <= 0x2407) - writable_iterator_traversal_test( - i, v2, mpl::and_< - detail::is_incrementable - , detail::is_postfix_incrementable - >()); -# endif -} - -template -void swappable_iterator_test(Iterator i, Iterator j) -{ - Iterator i2(i), j2(j); - typename detail::iterator_traits::value_type bi = *i, bj = *j; - iter_swap(i2, j2); - typename detail::iterator_traits::value_type ai = *i, aj = *j; - BOOST_TEST(bi == aj && bj == ai); -} - -template -void constant_lvalue_iterator_test(Iterator i, T v1) -{ - Iterator i2(i); - typedef typename detail::iterator_traits::value_type value_type; - typedef typename detail::iterator_traits::reference reference; - BOOST_STATIC_ASSERT((is_same::value)); - const T& v2 = *i2; - BOOST_TEST(v1 == v2); -# ifndef BOOST_NO_LVALUE_RETURN_DETECTION - BOOST_STATIC_ASSERT(is_lvalue_iterator::value); - BOOST_STATIC_ASSERT(!is_non_const_lvalue_iterator::value); -# endif -} - -template -void non_const_lvalue_iterator_test(Iterator i, T v1, T v2) -{ - Iterator i2(i); - typedef typename detail::iterator_traits::value_type value_type; - typedef typename detail::iterator_traits::reference reference; - BOOST_STATIC_ASSERT((is_same::value)); - T& v3 = *i2; - BOOST_TEST(v1 == v3); - - // A non-const lvalue iterator is not neccessarily writable, but we - // are assuming the value_type is assignable here - *i = v2; - - T& v4 = *i2; - BOOST_TEST(v2 == v4); -# ifndef BOOST_NO_LVALUE_RETURN_DETECTION - BOOST_STATIC_ASSERT(is_lvalue_iterator::value); - BOOST_STATIC_ASSERT(is_non_const_lvalue_iterator::value); -# endif -} - -template -void forward_readable_iterator_test(Iterator i, Iterator j, T val1, T val2) -{ - Iterator i2; - Iterator i3(i); - i2 = i; - BOOST_TEST(i2 == i3); - BOOST_TEST(i != j); - BOOST_TEST(i2 != j); - readable_iterator_test(i, val1); - readable_iterator_test(i2, val1); - readable_iterator_test(i3, val1); - - BOOST_TEST(i == i2++); - BOOST_TEST(i != ++i3); - - readable_iterator_test(i2, val2); - readable_iterator_test(i3, val2); - - readable_iterator_test(i, val1); -} - -template -void forward_swappable_iterator_test(Iterator i, Iterator j, T val1, T val2) -{ - forward_readable_iterator_test(i, j, val1, val2); - Iterator i2 = i; - ++i2; - swappable_iterator_test(i, i2); -} - -// bidirectional -// Preconditions: *i == v1, *++i == v2 -template -void bidirectional_readable_iterator_test(Iterator i, T v1, T v2) -{ - Iterator j(i); - ++j; - forward_readable_iterator_test(i, j, v1, v2); - ++i; - - Iterator i1 = i, i2 = i; - - BOOST_TEST(i == i1--); - BOOST_TEST(i != --i2); - - readable_iterator_test(i, v2); - readable_iterator_test(i1, v1); - readable_iterator_test(i2, v1); - - --i; - BOOST_TEST(i == i1); - BOOST_TEST(i == i2); - ++i1; - ++i2; - - readable_iterator_test(i, v1); - readable_iterator_test(i1, v2); - readable_iterator_test(i2, v2); -} - -// random access -// Preconditions: [i,i+N) is a valid range -template -void random_access_readable_iterator_test(Iterator i, int N, TrueVals vals) -{ - bidirectional_readable_iterator_test(i, vals[0], vals[1]); - const Iterator j = i; - int c; - - for (c = 0; c < N-1; ++c) - { - BOOST_TEST(i == j + c); - BOOST_TEST(*i == vals[c]); - typename detail::iterator_traits::value_type x = j[c]; - BOOST_TEST(*i == x); - BOOST_TEST(*i == *(j + c)); - BOOST_TEST(*i == *(c + j)); - ++i; - BOOST_TEST(i > j); - BOOST_TEST(i >= j); - BOOST_TEST(j <= i); - BOOST_TEST(j < i); - } - - Iterator k = j + N - 1; - for (c = 0; c < N-1; ++c) - { - BOOST_TEST(i == k - c); - BOOST_TEST(*i == vals[N - 1 - c]); - typename detail::iterator_traits::value_type x = j[N - 1 - c]; - BOOST_TEST(*i == x); - Iterator q = k - c; - BOOST_TEST(*i == *q); - BOOST_TEST(i > j); - BOOST_TEST(i >= j); - BOOST_TEST(j <= i); - BOOST_TEST(j < i); - --i; - } -} - -} // namespace boost - -# include - -#endif // BOOST_NEW_ITERATOR_TESTS_HPP diff --git a/lib/3rdParty/boost/boost/iterator/permutation_iterator.hpp b/lib/3rdParty/boost/boost/iterator/permutation_iterator.hpp deleted file mode 100644 index 32648b0cd..000000000 --- a/lib/3rdParty/boost/boost/iterator/permutation_iterator.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// (C) Copyright Toon Knapen 2001. -// (C) Copyright David Abrahams 2003. -// (C) Copyright Roland Richter 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) - -#ifndef BOOST_PERMUTATION_ITERATOR_HPP -#define BOOST_PERMUTATION_ITERATOR_HPP - -#include - -#include - - -namespace boost { -namespace iterators { - -template< class ElementIterator - , class IndexIterator> -class permutation_iterator - : public iterator_adaptor< - permutation_iterator - , IndexIterator, typename boost::detail::iterator_traits::value_type - , use_default, typename boost::detail::iterator_traits::reference> -{ - typedef iterator_adaptor< - permutation_iterator - , IndexIterator, typename boost::detail::iterator_traits::value_type - , use_default, typename boost::detail::iterator_traits::reference> super_t; - - friend class iterator_core_access; - -public: - permutation_iterator() : m_elt_iter() {} - - explicit permutation_iterator(ElementIterator x, IndexIterator y) - : super_t(y), m_elt_iter(x) {} - - template - permutation_iterator( - permutation_iterator const& r - , typename enable_if_convertible::type* = 0 - , typename enable_if_convertible::type* = 0 - ) - : super_t(r.base()), m_elt_iter(r.m_elt_iter) - {} - -private: - typename super_t::reference dereference() const - { return *(m_elt_iter + *this->base()); } - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - template friend class permutation_iterator; -#else - public: -#endif - ElementIterator m_elt_iter; -}; - - -template -inline permutation_iterator -make_permutation_iterator( ElementIterator e, IndexIterator i ) -{ - return permutation_iterator( e, i ); -} - -} // namespace iterators - -using iterators::permutation_iterator; -using iterators::make_permutation_iterator; - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/iterator/reverse_iterator.hpp b/lib/3rdParty/boost/boost/iterator/reverse_iterator.hpp deleted file mode 100644 index 3bef39e4b..000000000 --- a/lib/3rdParty/boost/boost/iterator/reverse_iterator.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_REVERSE_ITERATOR_23022003THW_HPP -#define BOOST_REVERSE_ITERATOR_23022003THW_HPP - -#include -#include -#include - -namespace boost { -namespace iterators { - - // - // - // - template - class reverse_iterator - : public iterator_adaptor< reverse_iterator, Iterator > - { - typedef iterator_adaptor< reverse_iterator, Iterator > super_t; - - friend class iterator_core_access; - - public: - reverse_iterator() {} - - explicit reverse_iterator(Iterator x) - : super_t(x) {} - - template - reverse_iterator( - reverse_iterator const& r - , typename enable_if_convertible::type* = 0 - ) - : super_t(r.base()) - {} - - private: - typename super_t::reference dereference() const { return *boost::prior(this->base()); } - - void increment() { --this->base_reference(); } - void decrement() { ++this->base_reference(); } - - void advance(typename super_t::difference_type n) - { - this->base_reference() += -n; - } - - template - typename super_t::difference_type - distance_to(reverse_iterator const& y) const - { - return this->base_reference() - y.base(); - } - }; - - template - inline reverse_iterator make_reverse_iterator(BidirectionalIterator x) - { - return reverse_iterator(x); - } - -} // namespace iterators - -using iterators::reverse_iterator; -using iterators::make_reverse_iterator; - -} // namespace boost - -#endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/transform_iterator.hpp b/lib/3rdParty/boost/boost/iterator/transform_iterator.hpp deleted file mode 100644 index 851f16f57..000000000 --- a/lib/3rdParty/boost/boost/iterator/transform_iterator.hpp +++ /dev/null @@ -1,171 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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_TRANSFORM_ITERATOR_23022003THW_HPP -#define BOOST_TRANSFORM_ITERATOR_23022003THW_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) -# include - -#endif -#include - - -namespace boost { -namespace iterators { - - template - class transform_iterator; - - namespace detail - { - // Compute the iterator_adaptor instantiation to be used for transform_iterator - template - struct transform_iterator_base - { - private: - // By default, dereferencing the iterator yields the same as - // the function. - typedef typename ia_dflt_help< - Reference - , result_of::reference)> - >::type reference; - - // To get the default for Value: remove any reference on the - // result type, but retain any constness to signal - // non-writability. Note that if we adopt Thomas' suggestion - // to key non-writability *only* on the Reference argument, - // we'd need to strip constness here as well. - typedef typename ia_dflt_help< - Value - , remove_reference - >::type cv_value_type; - - public: - typedef iterator_adaptor< - transform_iterator - , Iterator - , cv_value_type - , use_default // Leave the traversal category alone - , reference - > type; - }; - } - - template - class transform_iterator - : public boost::iterators::detail::transform_iterator_base::type - { - typedef typename - boost::iterators::detail::transform_iterator_base::type - super_t; - - friend class iterator_core_access; - - public: - transform_iterator() { } - - transform_iterator(Iterator const& x, UnaryFunc f) - : super_t(x), m_f(f) { } - - explicit transform_iterator(Iterator const& x) - : super_t(x) - { - // Pro8 is a little too aggressive about instantiating the - // body of this function. -#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - // don't provide this constructor if UnaryFunc is a - // function pointer type, since it will be 0. Too dangerous. - BOOST_STATIC_ASSERT(is_class::value); -#endif - } - - template < - class OtherUnaryFunction - , class OtherIterator - , class OtherReference - , class OtherValue> - transform_iterator( - transform_iterator const& t - , typename enable_if_convertible::type* = 0 -#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) - , typename enable_if_convertible::type* = 0 -#endif - ) - : super_t(t.base()), m_f(t.functor()) - {} - - UnaryFunc functor() const - { return m_f; } - - private: - typename super_t::reference dereference() const - { return m_f(*this->base()); } - - // Probably should be the initial base class so it can be - // optimized away via EBO if it is an empty class. - UnaryFunc m_f; - }; - - template - inline transform_iterator - make_transform_iterator(Iterator it, UnaryFunc fun) - { - return transform_iterator(it, fun); - } - - // Version which allows explicit specification of the UnaryFunc - // type. - // - // This generator is not provided if UnaryFunc is a function - // pointer type, because it's too dangerous: the default-constructed - // function pointer in the iterator be 0, leading to a runtime - // crash. - template - inline typename iterators::enable_if< - is_class // We should probably find a cheaper test than is_class<> - , transform_iterator - >::type - make_transform_iterator(Iterator it) - { - return transform_iterator(it, UnaryFunc()); - } - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - template - inline transform_iterator< Return (*)(Argument), Iterator, Return> - make_transform_iterator(Iterator it, Return (*fun)(Argument)) - { - return transform_iterator(it, fun); - } -#endif - -} // namespace iterators - -using iterators::transform_iterator; -using iterators::make_transform_iterator; - -} // namespace boost - -#include - -#endif // BOOST_TRANSFORM_ITERATOR_23022003THW_HPP diff --git a/lib/3rdParty/boost/boost/iterator/zip_iterator.hpp b/lib/3rdParty/boost/boost/iterator/zip_iterator.hpp deleted file mode 100644 index 83fa63b2a..000000000 --- a/lib/3rdParty/boost/boost/iterator/zip_iterator.hpp +++ /dev/null @@ -1,368 +0,0 @@ -// Copyright David Abrahams and Thomas Becker 2000-2006. -// Copyright Kohei Takahashi 2012-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) - -#ifndef BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_ -# define BOOST_ZIP_ITERATOR_TMB_07_13_2003_HPP_ - -#include -#include -#include -#include -#include // for enable_if_convertible -#include - -#include - -#include // for std::pair -#include // for backward compatibility - -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace iterators { - - // Zip iterator forward declaration for zip_iterator_base - template - class zip_iterator; - - namespace detail - { - - // Functors to be used with tuple algorithms - // - template - class advance_iterator - { - public: - advance_iterator(DiffType step) : m_step(step) {} - - template - void operator()(Iterator& it) const - { it += m_step; } - - private: - DiffType m_step; - }; - // - struct increment_iterator - { - template - void operator()(Iterator& it) const - { ++it; } - }; - // - struct decrement_iterator - { - template - void operator()(Iterator& it) const - { --it; } - }; - // - struct dereference_iterator - { - template - struct result; - - template - struct result - { - typedef typename - remove_reference::type>::type - iterator; - - typedef typename iterator_reference::type type; - }; - - template - typename result::type - operator()(Iterator const& it) const - { return *it; } - }; - - // Metafunction to obtain the type of the tuple whose element types - // are the reference types of an iterator tuple. - // - template - struct tuple_of_references - : mpl::transform< - IteratorTuple, - iterator_reference - > - { - }; - - // Specialization for std::pair - template - struct tuple_of_references > - { - typedef std::pair< - typename iterator_reference::type - , typename iterator_reference::type - > type; - }; - - // Metafunction to obtain the minimal traversal tag in a tuple - // of iterators. - // - template - struct minimum_traversal_category_in_iterator_tuple - { - typedef typename mpl::transform< - IteratorTuple - , pure_traversal_tag > - >::type tuple_of_traversal_tags; - - typedef typename mpl::fold< - tuple_of_traversal_tags - , random_access_traversal_tag - , minimum_category<> - >::type type; - }; - - template - struct minimum_traversal_category_in_iterator_tuple > - { - typedef typename pure_traversal_tag< - typename iterator_traversal::type - >::type iterator1_traversal; - typedef typename pure_traversal_tag< - typename iterator_traversal::type - >::type iterator2_traversal; - - typedef typename minimum_category< - iterator1_traversal - , typename minimum_category< - iterator2_traversal - , random_access_traversal_tag - >::type - >::type type; - }; - - /////////////////////////////////////////////////////////////////// - // - // Class zip_iterator_base - // - // Builds and exposes the iterator facade type from which the zip - // iterator will be derived. - // - template - struct zip_iterator_base - { - private: - // Reference type is the type of the tuple obtained from the - // iterators' reference types. - typedef typename - detail::tuple_of_references::type reference; - - // Value type is the same as reference type. - typedef reference value_type; - - // Difference type is the first iterator's difference type - typedef typename iterator_difference< - typename mpl::at_c::type - >::type difference_type; - - // Traversal catetgory is the minimum traversal category in the - // iterator tuple. - typedef typename - detail::minimum_traversal_category_in_iterator_tuple< - IteratorTuple - >::type traversal_category; - public: - - // The iterator facade type from which the zip iterator will - // be derived. - typedef iterator_facade< - zip_iterator, - value_type, - traversal_category, - reference, - difference_type - > type; - }; - - template <> - struct zip_iterator_base - { - typedef int type; - }; - - template - struct converter - { - template - static reference call(Seq seq) - { - typedef typename fusion::traits::tag_of::type tag; - return fusion::convert(seq); - } - }; - - template - struct converter > - { - typedef std::pair reference; - template - static reference call(Seq seq) - { - return reference( - fusion::at_c<0>(seq) - , fusion::at_c<1>(seq)); - } - }; - } - - ///////////////////////////////////////////////////////////////////// - // - // zip_iterator class definition - // - template - class zip_iterator : - public detail::zip_iterator_base::type - { - - // Typedef super_t as our base class. - typedef typename - detail::zip_iterator_base::type super_t; - - // iterator_core_access is the iterator's best friend. - friend class iterator_core_access; - - public: - - // Construction - // ============ - - // Default constructor - zip_iterator() { } - - // Constructor from iterator tuple - zip_iterator(IteratorTuple iterator_tuple) - : m_iterator_tuple(iterator_tuple) - { } - - // Copy constructor - template - zip_iterator( - const zip_iterator& other, - typename enable_if_convertible< - OtherIteratorTuple, - IteratorTuple - >::type* = 0 - ) : m_iterator_tuple(other.get_iterator_tuple()) - {} - - // Get method for the iterator tuple. - const IteratorTuple& get_iterator_tuple() const - { return m_iterator_tuple; } - - private: - - // Implementation of Iterator Operations - // ===================================== - - // Dereferencing returns a tuple built from the dereferenced - // iterators in the iterator tuple. - typename super_t::reference dereference() const - { - typedef typename super_t::reference reference; - typedef detail::converter gen; - return gen::call(fusion::transform( - get_iterator_tuple(), - detail::dereference_iterator())); - } - - // Two zip iterators are equal if all iterators in the iterator - // tuple are equal. NOTE: It should be possible to implement this - // as - // - // return get_iterator_tuple() == other.get_iterator_tuple(); - // - // but equality of tuples currently (7/2003) does not compile - // under several compilers. No point in bringing in a bunch - // of #ifdefs here. - // - template - bool equal(const zip_iterator& other) const - { - return fusion::equal_to( - get_iterator_tuple(), - other.get_iterator_tuple()); - } - - // Advancing a zip iterator means to advance all iterators in the - // iterator tuple. - void advance(typename super_t::difference_type n) - { - fusion::for_each( - m_iterator_tuple, - detail::advance_iterator(n)); - } - // Incrementing a zip iterator means to increment all iterators in - // the iterator tuple. - void increment() - { - fusion::for_each( - m_iterator_tuple, - detail::increment_iterator()); - } - - // Decrementing a zip iterator means to decrement all iterators in - // the iterator tuple. - void decrement() - { - fusion::for_each( - m_iterator_tuple, - detail::decrement_iterator()); - } - - // Distance is calculated using the first iterator in the tuple. - template - typename super_t::difference_type distance_to( - const zip_iterator& other - ) const - { - return fusion::at_c<0>(other.get_iterator_tuple()) - - fusion::at_c<0>(this->get_iterator_tuple()); - } - - // Data Members - // ============ - - // The iterator tuple. - IteratorTuple m_iterator_tuple; - - }; - - // Make function for zip iterator - // - template - inline zip_iterator - make_zip_iterator(IteratorTuple t) - { return zip_iterator(t); } - -} // namespace iterators - -using iterators::zip_iterator; -using iterators::make_zip_iterator; - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/limits.hpp b/lib/3rdParty/boost/boost/limits.hpp deleted file mode 100644 index 47d815561..000000000 --- a/lib/3rdParty/boost/boost/limits.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// (C) Copyright John maddock 1999. -// (C) 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) -// -// use this header as a workaround for missing - -// See http://www.boost.org/libs/compatibility/index.html for documentation. - -#ifndef BOOST_LIMITS -#define BOOST_LIMITS - -#include - -#ifdef BOOST_NO_LIMITS -# error "There is no std::numeric_limits suppport available." -#else -# include -#endif - -#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \ - || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)) -// Add missing specializations for numeric_limits: -#ifdef BOOST_HAS_MS_INT64 -# define BOOST_LLT __int64 -# define BOOST_ULLT unsigned __int64 -#else -# define BOOST_LLT ::boost::long_long_type -# define BOOST_ULLT ::boost::ulong_long_type -#endif - -#include // for CHAR_BIT - -namespace std -{ - template<> - class numeric_limits - { - public: - - BOOST_STATIC_CONSTANT(bool, is_specialized = true); -#ifdef BOOST_HAS_MS_INT64 - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; } -#elif defined(LLONG_MAX) - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; } -#elif defined(LONGLONG_MAX) - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; } -#else - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); } -#endif - BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1); - BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000); - BOOST_STATIC_CONSTANT(bool, is_signed = true); - BOOST_STATIC_CONSTANT(bool, is_integer = true); - BOOST_STATIC_CONSTANT(bool, is_exact = true); - BOOST_STATIC_CONSTANT(int, radix = 2); - static BOOST_LLT epsilon() throw() { return 0; }; - static BOOST_LLT round_error() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(int, min_exponent = 0); - BOOST_STATIC_CONSTANT(int, min_exponent10 = 0); - BOOST_STATIC_CONSTANT(int, max_exponent = 0); - BOOST_STATIC_CONSTANT(int, max_exponent10 = 0); - - BOOST_STATIC_CONSTANT(bool, has_infinity = false); - BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_denorm = false); - BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false); - static BOOST_LLT infinity() throw() { return 0; }; - static BOOST_LLT quiet_NaN() throw() { return 0; }; - static BOOST_LLT signaling_NaN() throw() { return 0; }; - static BOOST_LLT denorm_min() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(bool, is_iec559 = false); - BOOST_STATIC_CONSTANT(bool, is_bounded = true); - BOOST_STATIC_CONSTANT(bool, is_modulo = true); - - BOOST_STATIC_CONSTANT(bool, traps = false); - BOOST_STATIC_CONSTANT(bool, tinyness_before = false); - BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero); - - }; - - template<> - class numeric_limits - { - public: - - BOOST_STATIC_CONSTANT(bool, is_specialized = true); -#ifdef BOOST_HAS_MS_INT64 - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; } -#elif defined(ULLONG_MAX) && defined(ULLONG_MIN) - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; } -#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN) - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; } -#else - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; } -#endif - BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT); - BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000); - BOOST_STATIC_CONSTANT(bool, is_signed = false); - BOOST_STATIC_CONSTANT(bool, is_integer = true); - BOOST_STATIC_CONSTANT(bool, is_exact = true); - BOOST_STATIC_CONSTANT(int, radix = 2); - static BOOST_ULLT epsilon() throw() { return 0; }; - static BOOST_ULLT round_error() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(int, min_exponent = 0); - BOOST_STATIC_CONSTANT(int, min_exponent10 = 0); - BOOST_STATIC_CONSTANT(int, max_exponent = 0); - BOOST_STATIC_CONSTANT(int, max_exponent10 = 0); - - BOOST_STATIC_CONSTANT(bool, has_infinity = false); - BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_denorm = false); - BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false); - static BOOST_ULLT infinity() throw() { return 0; }; - static BOOST_ULLT quiet_NaN() throw() { return 0; }; - static BOOST_ULLT signaling_NaN() throw() { return 0; }; - static BOOST_ULLT denorm_min() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(bool, is_iec559 = false); - BOOST_STATIC_CONSTANT(bool, is_bounded = true); - BOOST_STATIC_CONSTANT(bool, is_modulo = true); - - BOOST_STATIC_CONSTANT(bool, traps = false); - BOOST_STATIC_CONSTANT(bool, tinyness_before = false); - BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero); - - }; -} -#endif - -#endif - diff --git a/lib/3rdParty/boost/boost/mem_fn.hpp b/lib/3rdParty/boost/boost/mem_fn.hpp deleted file mode 100644 index 3bcd2c548..000000000 --- a/lib/3rdParty/boost/boost/mem_fn.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef BOOST_MEM_FN_HPP_INCLUDED -#define BOOST_MEM_FN_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// mem_fn.hpp - a generalization of std::mem_fun[_ref] -// -// Copyright (c) 2009 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 -// -// See http://www.boost.org/libs/bind/mem_fn.html for documentation. -// - -#include - -#endif // #ifndef BOOST_MEM_FN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/memory_order.hpp b/lib/3rdParty/boost/boost/memory_order.hpp deleted file mode 100644 index fbe903442..000000000 --- a/lib/3rdParty/boost/boost/memory_order.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED -#define BOOST_MEMORY_ORDER_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// boost/memory_order.hpp -// -// Defines enum boost::memory_order per the C++0x working draft -// -// Copyright (c) 2008, 2009 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) - - -namespace boost -{ - -// -// Enum values are chosen so that code that needs to insert -// a trailing fence for acquire semantics can use a single -// test such as: -// -// if( mo & memory_order_acquire ) { ...fence... } -// -// For leading fences one can use: -// -// if( mo & memory_order_release ) { ...fence... } -// -// Architectures such as Alpha that need a fence on consume -// can use: -// -// if( mo & ( memory_order_acquire | memory_order_consume ) ) { ...fence... } -// -// The values are also in the order of increasing "strength" -// of the fences so that success/failure orders can be checked -// efficiently in compare_exchange methods. -// - -enum memory_order -{ - memory_order_relaxed = 0, - memory_order_consume = 1, - memory_order_acquire = 2, - memory_order_release = 4, - memory_order_acq_rel = 6, // acquire | release - memory_order_seq_cst = 14 // acq_rel | 8 -}; - -} // namespace boost - -#endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/move/adl_move_swap.hpp b/lib/3rdParty/boost/boost/move/adl_move_swap.hpp deleted file mode 100644 index d6906a483..000000000 --- a/lib/3rdParty/boost/boost/move/adl_move_swap.hpp +++ /dev/null @@ -1,266 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker -// (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_MOVE_ADL_MOVE_SWAP_HPP -#define BOOST_MOVE_ADL_MOVE_SWAP_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -//Based on Boost.Core's swap. -//Many thanks to Steven Watanabe, Joseph Gauterin and Niels Dekker. -#include //for std::size_t -#include //forceinline - -//Try to avoid including , as it's quite big -#if defined(_MSC_VER) && defined(BOOST_DINKUMWARE_STDLIB) - #include //Dinkum libraries define std::swap in utility which is lighter than algorithm -#elif defined(BOOST_GNU_STDLIB) - //For non-GCC compilers, where GNUC version is not very reliable, or old GCC versions - //use the good old stl_algobase header, which is quite lightweight - #if !defined(BOOST_GCC) || ((__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ < 3))) - #include - #elif (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - //In GCC 4.3 a tiny stl_move.h was created with swap and move utilities - #include - #else - //In GCC 4.4 stl_move.h was renamed to move.h - #include - #endif -#elif defined(_LIBCPP_VERSION) - #include //The initial import of libc++ defines std::swap and still there -#elif __cplusplus >= 201103L - #include //Fallback for C++ >= 2011 -#else - #include //Fallback for C++98/03 -#endif - -#include //for boost::move - -#if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -namespace boost_move_member_swap { - -struct dont_care -{ - dont_care(...); -}; - -struct private_type -{ - static private_type p; - private_type const &operator,(int) const; -}; - -typedef char yes_type; -struct no_type{ char dummy[2]; }; - -template -no_type is_private_type(T const &); - -yes_type is_private_type(private_type const &); - -template -class has_member_function_named_swap -{ - struct BaseMixin - { - void swap(); - }; - - struct Base : public Type, public BaseMixin { Base(); }; - template class Helper{}; - - template - static no_type deduce(U*, Helper* = 0); - static yes_type deduce(...); - - public: - static const bool value = sizeof(yes_type) == sizeof(deduce((Base*)(0))); -}; - -template -struct has_member_swap_impl -{ - static const bool value = false; -}; - -template -struct has_member_swap_impl -{ - struct FunWrap : Fun - { - FunWrap(); - - using Fun::swap; - private_type swap(dont_care) const; - }; - - static Fun &declval_fun(); - static FunWrap declval_wrap(); - - static bool const value = - sizeof(no_type) == sizeof(is_private_type( (declval_wrap().swap(declval_fun()), 0)) ); -}; - -template -struct has_member_swap : public has_member_swap_impl - ::value> -{}; - -} //namespace boost_move_member_swap - -namespace boost_move_adl_swap{ - -template -struct and_op_impl -{ static const bool value = false; }; - -template -struct and_op_impl -{ static const bool value = P2::value; }; - -template -struct and_op - : and_op_impl -{}; - -////// - -template -struct and_op_not_impl -{ static const bool value = false; }; - -template -struct and_op_not_impl -{ static const bool value = !P2::value; }; - -template -struct and_op_not - : and_op_not_impl -{}; - -template -BOOST_MOVE_FORCEINLINE void swap_proxy(T& x, T& y, typename boost::move_detail::enable_if_c::value>::type* = 0) -{ - //use std::swap if argument dependent lookup fails - //Use using directive ("using namespace xxx;") instead as some older compilers - //don't do ADL with using declarations ("using ns::func;"). - using namespace std; - swap(x, y); -} - -template -BOOST_MOVE_FORCEINLINE void swap_proxy(T& x, T& y - , typename boost::move_detail::enable_if< and_op_not_impl - , boost_move_member_swap::has_member_swap > - >::type* = 0) -{ T t(::boost::move(x)); x = ::boost::move(y); y = ::boost::move(t); } - -template -BOOST_MOVE_FORCEINLINE void swap_proxy(T& x, T& y - , typename boost::move_detail::enable_if< and_op_impl< boost::move_detail::has_move_emulation_enabled_impl - , boost_move_member_swap::has_member_swap > - >::type* = 0) -{ x.swap(y); } - -} //namespace boost_move_adl_swap{ - -#else - -namespace boost_move_adl_swap{ - -template -BOOST_MOVE_FORCEINLINE void swap_proxy(T& x, T& y) -{ - using std::swap; - swap(x, y); -} - -} //namespace boost_move_adl_swap{ - -#endif //#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -namespace boost_move_adl_swap{ - -template -void swap_proxy(T (& x)[N], T (& y)[N]) -{ - for (std::size_t i = 0; i < N; ++i){ - ::boost_move_adl_swap::swap_proxy(x[i], y[i]); - } -} - -} //namespace boost_move_adl_swap { - -#endif //!defined(BOOST_MOVE_DOXYGEN_INVOKED) - -namespace boost{ - -//! Exchanges the values of a and b, using Argument Dependent Lookup (ADL) to select a -//! specialized swap function if available. If no specialized swap function is available, -//! std::swap is used. -//! -//! Exception: If T uses Boost.Move's move emulation and the compiler has -//! no rvalue references then: -//! -//! - If T has a T::swap(T&) member, that member is called. -//! - Otherwise a move-based swap is called, equivalent to: -//! T t(::boost::move(x)); x = ::boost::move(y); y = ::boost::move(t);. -template -BOOST_MOVE_FORCEINLINE void adl_move_swap(T& x, T& y) -{ - ::boost_move_adl_swap::swap_proxy(x, y); -} - -//! Exchanges elements between range [first1, last1) and another range starting at first2 -//! using boost::adl_move_swap. -//! -//! Parameters: -//! first1, last1 - the first range of elements to swap -//! first2 - beginning of the second range of elements to swap -//! -//! Type requirements: -//! - ForwardIt1, ForwardIt2 must meet the requirements of ForwardIterator. -//! - The types of dereferenced ForwardIt1 and ForwardIt2 must meet the -//! requirements of Swappable -//! -//! Return value: Iterator to the element past the last element exchanged in the range -//! beginning with first2. -template -ForwardIt2 adl_move_swap_ranges(ForwardIt1 first1, ForwardIt1 last1, ForwardIt2 first2) -{ - while (first1 != last1) { - ::boost::adl_move_swap(*first1, *first2); - ++first1; - ++first2; - } - return first2; -} - -template -BidirIt2 adl_move_swap_ranges_backward(BidirIt1 first1, BidirIt1 last1, BidirIt2 last2) -{ - while (first1 != last1) { - ::boost::adl_move_swap(*(--last1), *(--last2)); - } - return last2; -} - -} //namespace boost{ - -#endif //#ifndef BOOST_MOVE_ADL_MOVE_SWAP_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/adaptive_merge.hpp b/lib/3rdParty/boost/boost/move/algo/adaptive_merge.hpp deleted file mode 100644 index 0233b232e..000000000 --- a/lib/3rdParty/boost/boost/move/algo/adaptive_merge.hpp +++ /dev/null @@ -1,67 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_ADAPTIVE_MERGE_HPP -#define BOOST_MOVE_ADAPTIVE_MERGE_HPP - -#include -#include - -namespace boost { -namespace movelib { - -//! Effects: Merges two consecutive sorted ranges [first, middle) and [middle, last) -//! into one sorted range [first, last) according to the given comparison function comp. -//! The algorithm is stable (if there are equivalent elements in the original two ranges, -//! the elements from the first range (preserving their original order) precede the elements -//! from the second range (preserving their original order). -//! -//! Requires: -//! - RandIt must meet the requirements of ValueSwappable and RandomAccessIterator. -//! - The type of dereferenced RandIt must meet the requirements of MoveAssignable and MoveConstructible. -//! -//! Parameters: -//! - first: the beginning of the first sorted range. -//! - middle: the end of the first sorted range and the beginning of the second -//! - last: the end of the second sorted range -//! - comp: comparison function object which returns true if the first argument is is ordered before the second. -//! - uninitialized, uninitialized_len: raw storage starting on "uninitialized", able to hold "uninitialized_len" -//! elements of type iterator_traits::value_type. Maximum performance is achieved when uninitialized_len -//! is min(std::distance(first, middle), std::distance(middle, last)). -//! -//! Throws: If comp throws or the move constructor, move assignment or swap of the type -//! of dereferenced RandIt throws. -//! -//! Complexity: Always K x O(N) comparisons and move assignments/constructors/swaps. -//! Constant factor for comparisons and data movement is minimized when uninitialized_len -//! is min(std::distance(first, middle), std::distance(middle, last)). -//! Pretty good enough performance is achieved when uninitialized_len is -//! ceil(sqrt(std::distance(first, last)))*2. -//! -//! Caution: Experimental implementation, not production-ready. -template -void adaptive_merge( RandIt first, RandIt middle, RandIt last, Compare comp - , typename iterator_traits::value_type* uninitialized = 0 - , std::size_t uninitialized_len = 0) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - - ::boost::movelib::detail_adaptive::adaptive_xbuf xbuf(uninitialized, uninitialized_len); - ::boost::movelib::detail_adaptive::adaptive_merge_impl(first, size_type(middle - first), size_type(last - middle), comp, xbuf); -} - -} //namespace movelib { -} //namespace boost { - -#include - -#endif //#define BOOST_MOVE_ADAPTIVE_MERGE_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/adaptive_sort.hpp b/lib/3rdParty/boost/boost/move/algo/adaptive_sort.hpp deleted file mode 100644 index 6b5586e58..000000000 --- a/lib/3rdParty/boost/boost/move/algo/adaptive_sort.hpp +++ /dev/null @@ -1,63 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_ADAPTIVE_SORT_HPP -#define BOOST_MOVE_ADAPTIVE_SORT_HPP - -#include -#include - -namespace boost { -namespace movelib { - -//! Effects: Sorts the elements in the range [first, last) in ascending order according -//! to comparison functor "comp". The sort is stable (order of equal elements -//! is guaranteed to be preserved). Performance is improved if additional raw storage is -//! provided. -//! -//! Requires: -//! - RandIt must meet the requirements of ValueSwappable and RandomAccessIterator. -//! - The type of dereferenced RandIt must meet the requirements of MoveAssignable and MoveConstructible. -//! -//! Parameters: -//! - first, last: the range of elements to sort -//! - comp: comparison function object which returns true if the first argument is is ordered before the second. -//! - uninitialized, uninitialized_len: raw storage starting on "uninitialized", able to hold "uninitialized_len" -//! elements of type iterator_traits::value_type. Maximum performance is achieved when uninitialized_len -//! is ceil(std::distance(first, last)/2). -//! -//! Throws: If comp throws or the move constructor, move assignment or swap of the type -//! of dereferenced RandIt throws. -//! -//! Complexity: Always K x O(Nxlog(N)) comparisons and move assignments/constructors/swaps. -//! Comparisons are close to minimum even with no additional memory. Constant factor for data movement is minimized -//! when uninitialized_len is ceil(std::distance(first, last)/2). Pretty good enough performance is achieved when -//! ceil(sqrt(std::distance(first, last)))*2. -//! -//! Caution: Experimental implementation, not production-ready. -template -void adaptive_sort( RandIt first, RandIt last, Compare comp - , typename iterator_traits::value_type* uninitialized = 0 - , std::size_t uninitialized_len = 0) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - - ::boost::movelib::detail_adaptive::adaptive_xbuf xbuf(uninitialized, uninitialized_len); - ::boost::movelib::detail_adaptive::adaptive_sort_impl(first, size_type(last - first), comp, xbuf); -} - -} //namespace movelib { -} //namespace boost { - -#include - -#endif //#define BOOST_MOVE_ADAPTIVE_SORT_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/detail/adaptive_sort_merge.hpp b/lib/3rdParty/boost/boost/move/algo/detail/adaptive_sort_merge.hpp deleted file mode 100644 index 63b3f4597..000000000 --- a/lib/3rdParty/boost/boost/move/algo/detail/adaptive_sort_merge.hpp +++ /dev/null @@ -1,2437 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// -// -// Stable sorting that works in O(N*log(N)) worst time -// and uses O(1) extra memory -// -////////////////////////////////////////////////////////////////////////////// -// -// The main idea of the adaptive_sort algorithm was developed by Andrey Astrelin -// and explained in the article from the russian collaborative blog -// Habrahabr (http://habrahabr.ru/post/205290/). The algorithm is based on -// ideas from B-C. Huang and M. A. Langston explained in their article -// "Fast Stable Merging and Sorting in Constant Extra Space (1989-1992)" -// (http://comjnl.oxfordjournals.org/content/35/6/643.full.pdf). -// -// This implementation by Ion Gaztanaga uses previous ideas with additional changes: -// -// - Use of GCD-based rotation. -// - Non power of two buffer-sizes. -// - Tries to find sqrt(len)*2 unique keys, so that the merge sort -// phase can form up to sqrt(len)*4 segments if enough keys are found. -// - The merge-sort phase can take advantage of external memory to -// save some additional combination steps. -// - Combination phase: Blocks are selection sorted and merged in parallel. -// - The combination phase is performed alternating merge to left and merge -// to right phases minimizing swaps due to internal buffer repositioning. -// - When merging blocks special optimizations are made to avoid moving some -// elements twice. -// -// The adaptive_merge algorithm was developed by Ion Gaztanaga reusing some parts -// from the sorting algorithm and implementing an additional block merge algorithm -// without moving elements to left or right. -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_MOVE_ADAPTIVE_SORT_MERGE_HPP -#define BOOST_MOVE_ADAPTIVE_SORT_MERGE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_MOVE_ADAPTIVE_SORT_STATS - #define BOOST_MOVE_ADAPTIVE_SORT_PRINT(STR, L) \ - print_stats(STR, L)\ - // -#else - #define BOOST_MOVE_ADAPTIVE_SORT_PRINT(STR, L) -#endif - -#ifdef BOOST_MOVE_ADAPTIVE_SORT_INVARIANTS - #define BOOST_MOVE_ADAPTIVE_SORT_INVARIANT BOOST_ASSERT -#else - #define BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(L) -#endif - - - -namespace boost { -namespace movelib { - -namespace detail_adaptive { - -static const std::size_t AdaptiveSortInsertionSortThreshold = 16; -//static const std::size_t AdaptiveSortInsertionSortThreshold = 4; -BOOST_STATIC_ASSERT((AdaptiveSortInsertionSortThreshold&(AdaptiveSortInsertionSortThreshold-1)) == 0); - -#if defined BOOST_HAS_INTPTR_T - typedef ::boost::uintptr_t uintptr_t; -#else - typedef std::size_t uintptr_t; -#endif - -template -const T &min_value(const T &a, const T &b) -{ - return a < b ? a : b; -} - -template -const T &max_value(const T &a, const T &b) -{ - return a > b ? a : b; -} - -template -bool is_sorted(ForwardIt const first, ForwardIt last, Pred pred) -{ - if (first != last) { - ForwardIt next = first, cur(first); - while (++next != last) { - if (pred(*next, *cur)) - return false; - cur = next; - } - } - return true; -} - -#if defined(BOOST_MOVE_ADAPTIVE_SORT_INVARIANTS) - -bool is_sorted(::order_perf_type *first, ::order_perf_type *last, ::order_type_less) -{ - if (first != last) { - const order_perf_type *next = first, *cur(first); - while (++next != last) { - if (!(cur->key < next->key || (cur->key == next->key && cur->val < next->val))) - return false; - cur = next; - } - } - return true; -} - -#endif //BOOST_MOVE_ADAPTIVE_SORT_INVARIANTS - -template -bool is_sorted_and_unique(ForwardIt first, ForwardIt last, Pred pred) -{ - if (first != last) { - ForwardIt next = first; - while (++next != last) { - if (!pred(*first, *next)) - return false; - first = next; - } - } - return true; -} - -template -typename iterator_traits::size_type - count_if_with(ForwardIt first, ForwardIt last, Pred pred, const V &v) -{ - typedef typename iterator_traits::size_type size_type; - size_type count = 0; - while(first != last) { - count += static_cast(0 != pred(*first, v)); - ++first; - } - return count; -} - -template -class adaptive_xbuf -{ - adaptive_xbuf(const adaptive_xbuf &); - adaptive_xbuf & operator=(const adaptive_xbuf &); - - public: - typedef T* iterator; - - adaptive_xbuf() - : m_ptr(0), m_size(0), m_capacity(0) - {} - - adaptive_xbuf(T *raw_memory, std::size_t capacity) - : m_ptr(raw_memory), m_size(0), m_capacity(capacity) - {} - - template - void move_assign(RandIt first, std::size_t n) - { - if(n <= m_size){ - boost::move(first, first+n, m_ptr); - std::size_t size = m_size; - while(size-- != n){ - m_ptr[size].~T(); - } - m_size = n; - } - else{ - T *result = boost::move(first, first+m_size, m_ptr); - boost::uninitialized_move(first+m_size, first+n, result); - m_size = n; - } - } - - template - void push_back(RandIt first, std::size_t n) - { - BOOST_ASSERT(m_capacity - m_size >= n); - boost::uninitialized_move(first, first+n, m_ptr+m_size); - m_size += n; - } - - template - iterator add(RandIt it) - { - BOOST_ASSERT(m_size < m_capacity); - T * p_ret = m_ptr + m_size; - ::new(p_ret) T(::boost::move(*it)); - ++m_size; - return p_ret; - } - - template - void insert(iterator pos, RandIt it) - { - if(pos == (m_ptr + m_size)){ - this->add(it); - } - else{ - this->add(m_ptr+m_size-1); - //m_size updated - boost::move_backward(pos, m_ptr+m_size-2, m_ptr+m_size-1); - *pos = boost::move(*it); - } - } - - void set_size(std::size_t size) - { - m_size = size; - } - - void shrink_to_fit(std::size_t const size) - { - if(m_size > size){ - for(std::size_t szt_i = size; szt_i != m_size; ++szt_i){ - m_ptr[szt_i].~T(); - } - m_size = size; - } - } - - void initialize_until(std::size_t const size, T &t) - { - BOOST_ASSERT(m_size < m_capacity); - if(m_size < size){ - ::new((void*)&m_ptr[m_size]) T(::boost::move(t)); - ++m_size; - for(; m_size != size; ++m_size){ - ::new((void*)&m_ptr[m_size]) T(::boost::move(m_ptr[m_size-1])); - } - t = ::boost::move(m_ptr[m_size-1]); - } - } - - template - bool supports_aligned_trailing(std::size_t size, std::size_t trail_count) const - { - if(this->data()){ - uintptr_t u_addr_sz = uintptr_t(this->data()+size); - uintptr_t u_addr_cp = uintptr_t(this->data()+this->capacity()); - u_addr_sz = ((u_addr_sz + sizeof(U)-1)/sizeof(U))*sizeof(U); - - return (u_addr_cp >= u_addr_sz) && ((u_addr_cp - u_addr_sz)/sizeof(U) >= trail_count); - } - return false; - } - - template - U *aligned_trailing() const - { - return this->aligned_trailing(this->size()); - } - - template - U *aligned_trailing(std::size_t pos) const - { - uintptr_t u_addr = uintptr_t(this->data()+pos); - u_addr = ((u_addr + sizeof(U)-1)/sizeof(U))*sizeof(U); - return (U*)u_addr; - } - - ~adaptive_xbuf() - { - this->clear(); - } - - std::size_t capacity() const - { return m_capacity; } - - iterator data() const - { return m_ptr; } - - iterator end() const - { return m_ptr+m_size; } - - std::size_t size() const - { return m_size; } - - bool empty() const - { return !m_size; } - - void clear() - { - this->shrink_to_fit(0u); - } - - private: - T *m_ptr; - std::size_t m_size; - std::size_t m_capacity; -}; - -template -class range_xbuf -{ - range_xbuf(const range_xbuf &); - range_xbuf & operator=(const range_xbuf &); - - public: - typedef typename iterator_traits::size_type size_type; - typedef Iterator iterator; - - range_xbuf(Iterator first, Iterator last) - : m_first(first), m_last(first), m_cap(last) - {} - - template - void move_assign(RandIt first, std::size_t n) - { - BOOST_ASSERT(size_type(n) <= size_type(m_cap-m_first)); - m_last = Op()(forward_t(), first, first+n, m_first); - } - - ~range_xbuf() - {} - - std::size_t capacity() const - { return m_cap-m_first; } - - Iterator data() const - { return m_first; } - - Iterator end() const - { return m_last; } - - std::size_t size() const - { return m_last-m_first; } - - bool empty() const - { return m_first == m_last; } - - void clear() - { - m_last = m_first; - } - - template - iterator add(RandIt it) - { - Iterator pos(m_last); - *pos = boost::move(*it); - ++m_last; - return pos; - } - - void set_size(std::size_t size) - { - m_last = m_first; - m_last += size; - } - - private: - Iterator const m_first; - Iterator m_last; - Iterator const m_cap; -}; - - -template -RandIt skip_until_merge - ( RandIt first1, RandIt const last1 - , const typename iterator_traits::value_type &next_key, Compare comp) -{ - while(first1 != last1 && !comp(next_key, *first1)){ - ++first1; - } - return first1; -} - - -template -RandItB op_buffered_partial_merge_to_range1_and_buffer - ( RandIt1 first1, RandIt1 const last1 - , RandIt2 &rfirst2, RandIt2 const last2 - , RandItB &rfirstb, Compare comp, Op op ) -{ - RandItB firstb = rfirstb; - RandItB lastb = firstb; - RandIt2 first2 = rfirst2; - - //Move to buffer while merging - //Three way moves need less moves when op is swap_op so use it - //when merging elements from range2 to the destination occupied by range1 - if(first1 != last1 && first2 != last2){ - op(three_way_t(), first2++, first1++, lastb++); - - while(true){ - if(first1 == last1){ - break; - } - if(first2 == last2){ - lastb = op(forward_t(), first1, last1, firstb); - break; - } - op(three_way_t(), comp(*first2, *firstb) ? first2++ : firstb++, first1++, lastb++); - } - rfirst2 = first2; - rfirstb = firstb; - } - - return lastb; -} - -template -void swap_and_update_key - ( bool is_next_far_away - , RandItKeys const key_next - , RandItKeys const key_range2 - , RandItKeys &key_mid - , RandIt const begin - , RandIt const end - , RandIt const with) -{ - if(is_next_far_away){ - ::boost::adl_move_swap_ranges(begin, end, with); - ::boost::adl_move_swap(*key_next, *key_range2); - if(key_next == key_mid){ - key_mid = key_range2; - } - else if(key_mid == key_range2){ - key_mid = key_next; - } - } -} - -/////////////////////////////////////////////////////////////////////////////// -// -// MERGE BUFFERLESS -// -/////////////////////////////////////////////////////////////////////////////// - -// [first1, last1) merge [last1,last2) -> [first1,last2) -template -RandIt partial_merge_bufferless_impl - (RandIt first1, RandIt last1, RandIt const last2, bool *const pis_range1_A, Compare comp) -{ - if(last1 == last2){ - return first1; - } - bool const is_range1_A = *pis_range1_A; - if(first1 != last1 && comp(*last1, last1[-1])){ - do{ - RandIt const old_last1 = last1; - last1 = lower_bound(last1, last2, *first1, comp); - first1 = rotate_gcd(first1, old_last1, last1);//old_last1 == last1 supported - if(last1 == last2){ - return first1; - } - do{ - ++first1; - } while(last1 != first1 && !comp(*last1, *first1) ); - } while(first1 != last1); - } - *pis_range1_A = !is_range1_A; - return last1; -} - -// [first1, last1) merge [last1,last2) -> [first1,last2) -template -RandIt partial_merge_bufferless - (RandIt first1, RandIt last1, RandIt const last2, bool *const pis_range1_A, Compare comp) -{ - return *pis_range1_A ? partial_merge_bufferless_impl(first1, last1, last2, pis_range1_A, comp) - : partial_merge_bufferless_impl(first1, last1, last2, pis_range1_A, antistable(comp)); -} - -template -static SizeType needed_keys_count(SizeType n_block_a, SizeType n_block_b) -{ - return n_block_a + n_block_b; -} - -template -typename iterator_traits::size_type - find_next_block - ( RandItKeys key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const ix_first_block - , typename iterator_traits::size_type const ix_last_block - , Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - typedef typename iterator_traits::value_type key_type; - BOOST_ASSERT(ix_first_block <= ix_last_block); - size_type ix_min_block = 0u; - for (size_type szt_i = ix_first_block; szt_i < ix_last_block; ++szt_i) { - const value_type &min_val = first[ix_min_block*l_block]; - const value_type &cur_val = first[szt_i*l_block]; - const key_type &min_key = key_first[ix_min_block]; - const key_type &cur_key = key_first[szt_i]; - - bool const less_than_minimum = comp(cur_val, min_val) || - (!comp(min_val, cur_val) && key_comp(cur_key, min_key)); - - if (less_than_minimum) { - ix_min_block = szt_i; - } - } - return ix_min_block; -} - -template -void merge_blocks_bufferless - ( RandItKeys key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const l_irreg1 - , typename iterator_traits::size_type const n_block_a - , typename iterator_traits::size_type const n_block_b - , typename iterator_traits::size_type const l_irreg2 - , Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - size_type const key_count = needed_keys_count(n_block_a, n_block_b); (void)key_count; - //BOOST_ASSERT(n_block_a || n_block_b); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted_and_unique(key_first, key_first + key_count, key_comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_b || n_block_a == count_if_with(key_first, key_first + key_count, key_comp, key_first[n_block_a])); - - size_type n_bef_irreg2 = 0; - bool l_irreg_pos_count = true; - RandItKeys key_mid(key_first + n_block_a); - RandIt const first_irr2 = first + l_irreg1 + (n_block_a+n_block_b)*l_block; - RandIt const last_irr2 = first_irr2 + l_irreg2; - - { //Selection sort blocks - size_type n_block_left = n_block_b + n_block_a; - RandItKeys key_range2(key_first); - - size_type min_check = n_block_a == n_block_left ? 0u : n_block_a; - size_type max_check = min_value(min_check+1, n_block_left); - for (RandIt f = first+l_irreg1; n_block_left; --n_block_left, ++key_range2, f += l_block, min_check -= min_check != 0, max_check -= max_check != 0) { - size_type const next_key_idx = find_next_block(key_range2, key_comp, f, l_block, min_check, max_check, comp); - RandItKeys const key_next(key_range2 + next_key_idx); - max_check = min_value(max_value(max_check, next_key_idx+2), n_block_left); - - RandIt const first_min = f + next_key_idx*l_block; - - //Check if irregular b block should go here. - //If so, break to the special code handling the irregular block - if (l_irreg_pos_count && l_irreg2 && comp(*first_irr2, *first_min)){ - l_irreg_pos_count = false; - } - n_bef_irreg2 += l_irreg_pos_count; - - swap_and_update_key(next_key_idx != 0, key_next, key_range2, key_mid, f, f + l_block, first_min); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(f, f+l_block, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first_min, first_min + l_block, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT((f == (first+l_irreg1)) || !comp(*f, *(f-l_block))); - } - } - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first+l_irreg1+n_bef_irreg2*l_block, first_irr2, comp)); - - RandIt first1 = first; - RandIt last1 = first+l_irreg1; - RandItKeys const key_end (key_first+n_bef_irreg2); - bool is_range1_A = true; - - for( ; key_first != key_end; ++key_first){ - bool is_range2_A = key_mid == (key_first+key_count) || key_comp(*key_first, *key_mid); - first1 = is_range1_A == is_range2_A - ? last1 : partial_merge_bufferless(first1, last1, last1 + l_block, &is_range1_A, comp); - last1 += l_block; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first, first1, comp)); - } - - merge_bufferless(is_range1_A ? first1 : last1, first_irr2, last_irr2, comp); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first, last_irr2, comp)); -} - -/////////////////////////////////////////////////////////////////////////////// -// -// BUFFERED MERGE -// -/////////////////////////////////////////////////////////////////////////////// -template -void op_buffered_merge - ( RandIt first, RandIt const middle, RandIt last - , Compare comp, Op op - , Buf &xbuf) -{ - if(first != middle && middle != last && comp(*middle, middle[-1])){ - typedef typename iterator_traits::size_type size_type; - size_type const len1 = size_type(middle-first); - size_type const len2 = size_type(last-middle); - if(len1 <= len2){ - first = upper_bound(first, middle, *middle, comp); - xbuf.move_assign(first, size_type(middle-first)); - op_merge_with_right_placed - (xbuf.data(), xbuf.end(), first, middle, last, comp, op); - } - else{ - last = lower_bound(middle, last, middle[-1], comp); - xbuf.move_assign(middle, size_type(last-middle)); - op_merge_with_left_placed - (first, middle, last, xbuf.data(), xbuf.end(), comp, op); - } - } -} - -template -void buffered_merge - ( RandIt first, RandIt const middle, RandIt last - , Compare comp - , adaptive_xbuf::value_type> &xbuf) -{ - op_buffered_merge(first, middle, last, comp, move_op(), xbuf); -} - -// Complexity: 2*distance(first, last)+max_collected^2/2 -// -// Tries to collect at most n_keys unique elements from [first, last), -// in the begining of the range, and ordered according to comp -// -// Returns the number of collected keys -template -typename iterator_traits::size_type - collect_unique - ( RandIt const first, RandIt const last - , typename iterator_traits::size_type const max_collected, Compare comp - , adaptive_xbuf::value_type> & xbuf) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - size_type h = 0; - if(max_collected){ - ++h; // first key is always here - RandIt h0 = first; - RandIt u = first; ++u; - RandIt search_end = u; - - if(xbuf.capacity() >= max_collected){ - value_type *const ph0 = xbuf.add(first); - while(u != last && h < max_collected){ - value_type * const r = lower_bound(ph0, xbuf.end(), *u, comp); - //If key not found add it to [h, h+h0) - if(r == xbuf.end() || comp(*u, *r) ){ - RandIt const new_h0 = boost::move(search_end, u, h0); - search_end = u; - ++search_end; - ++h; - xbuf.insert(r, u); - h0 = new_h0; - } - ++u; - } - boost::move_backward(first, h0, h0+h); - boost::move(xbuf.data(), xbuf.end(), first); - } - else{ - while(u != last && h < max_collected){ - RandIt const r = lower_bound(h0, search_end, *u, comp); - //If key not found add it to [h, h+h0) - if(r == search_end || comp(*u, *r) ){ - RandIt const new_h0 = rotate_gcd(h0, search_end, u); - search_end = u; - ++search_end; - ++h; - rotate_gcd(r+(new_h0-h0), u, search_end); - h0 = new_h0; - } - ++u; - } - rotate_gcd(first, h0, h0+h); - } - } - return h; -} - -template -Unsigned floor_sqrt(Unsigned const n) -{ - Unsigned x = n; - Unsigned y = x/2 + (x&1); - while (y < x){ - x = y; - y = (x + n / x)/2; - } - return x; -} - -template -Unsigned ceil_sqrt(Unsigned const n) -{ - Unsigned r = floor_sqrt(n); - return r + Unsigned((n%r) != 0); -} - -template -Unsigned floor_merge_multiple(Unsigned const n, Unsigned &base, Unsigned &pow) -{ - Unsigned s = n; - Unsigned p = 0; - while(s > AdaptiveSortInsertionSortThreshold){ - s /= 2; - ++p; - } - base = s; - pow = p; - return s << p; -} - -template -Unsigned ceil_merge_multiple(Unsigned const n, Unsigned &base, Unsigned &pow) -{ - Unsigned fm = floor_merge_multiple(n, base, pow); - - if(fm != n){ - if(base < AdaptiveSortInsertionSortThreshold){ - ++base; - } - else{ - base = AdaptiveSortInsertionSortThreshold/2 + 1; - ++pow; - } - } - return base << pow; -} - -template -Unsigned ceil_sqrt_multiple(Unsigned const n, Unsigned *pbase = 0) -{ - Unsigned const r = ceil_sqrt(n); - Unsigned pow = 0; - Unsigned base = 0; - Unsigned const res = ceil_merge_multiple(r, base, pow); - if(pbase) *pbase = base; - return res; -} - -struct less -{ - template - bool operator()(const T &l, const T &r) - { return l < r; } -}; - -/////////////////////////////////////////////////////////////////////////////// -// -// MERGE BLOCKS -// -/////////////////////////////////////////////////////////////////////////////// - -//#define ADAPTIVE_SORT_MERGE_SLOW_STABLE_SORT_IS_NLOGN - -#if defined ADAPTIVE_SORT_MERGE_SLOW_STABLE_SORT_IS_NLOGN -template -void slow_stable_sort - ( RandIt const first, RandIt const last, Compare comp) -{ - boost::movelib::inplace_stable_sort(first, last, comp); -} - -#else //ADAPTIVE_SORT_MERGE_SLOW_STABLE_SORT_IS_NLOGN - -template -void slow_stable_sort - ( RandIt const first, RandIt const last, Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - size_type L = size_type(last - first); - { //Use insertion sort to merge first elements - size_type m = 0; - while((L - m) > size_type(AdaptiveSortInsertionSortThreshold)){ - insertion_sort(first+m, first+m+size_type(AdaptiveSortInsertionSortThreshold), comp); - m += AdaptiveSortInsertionSortThreshold; - } - insertion_sort(first+m, last, comp); - } - - size_type h = AdaptiveSortInsertionSortThreshold; - for(bool do_merge = L > h; do_merge; h*=2){ - do_merge = (L - h) > h; - size_type p0 = 0; - if(do_merge){ - size_type const h_2 = 2*h; - while((L-p0) > h_2){ - merge_bufferless(first+p0, first+p0+h, first+p0+h_2, comp); - p0 += h_2; - } - } - if((L-p0) > h){ - merge_bufferless(first+p0, first+p0+h, last, comp); - } - } -} - -#endif //ADAPTIVE_SORT_MERGE_SLOW_STABLE_SORT_IS_NLOGN - -//Returns new l_block and updates use_buf -template -Unsigned lblock_for_combine - (Unsigned const l_block, Unsigned const n_keys, Unsigned const l_data, bool &use_buf) -{ - BOOST_ASSERT(l_data > 1); - - //We need to guarantee lblock >= l_merged/(n_keys/2) keys for the combination. - //We have at least 4 keys guaranteed (which are the minimum to merge 2 ranges) - //If l_block != 0, then n_keys is already enough to merge all blocks in all - //phases as we've found all needed keys for that buffer and length before. - //If l_block == 0 then see if half keys can be used as buffer and the rest - //as keys guaranteeing that n_keys >= (2*l_merged)/lblock = - if(!l_block){ - //If l_block == 0 then n_keys is power of two - //(guaranteed by build_params(...)) - BOOST_ASSERT(n_keys >= 4); - //BOOST_ASSERT(0 == (n_keys &(n_keys-1))); - - //See if half keys are at least 4 and if half keys fulfill - Unsigned const new_buf = n_keys/2; - Unsigned const new_keys = n_keys-new_buf; - use_buf = new_keys >= 4 && new_keys >= l_data/new_buf; - if(use_buf){ - return new_buf; - } - else{ - return l_data/n_keys; - } - } - else{ - use_buf = true; - return l_block; - } -} - -template -void stable_sort( RandIt first, RandIt last, Compare comp, XBuf & xbuf) -{ - typedef typename iterator_traits::size_type size_type; - size_type const len = size_type(last - first); - size_type const half_len = len/2 + (len&1); - if(std::size_t(xbuf.capacity() - xbuf.size()) >= half_len) { - merge_sort(first, last, comp, xbuf.data()+xbuf.size()); - } - else{ - slow_stable_sort(first, last, comp); - } -} - -template -void initialize_keys( RandIt first, RandIt last - , Comp comp - , XBuf & xbuf) -{ - stable_sort(first, last, comp, xbuf); -} - -template -void initialize_keys( RandIt first, RandIt last - , less - , U &) -{ - typedef typename iterator_traits::value_type value_type; - std::size_t count = std::size_t(last - first); - for(std::size_t i = 0; i != count; ++i){ - *first = value_type(i); - ++first; - } -} - -template -void move_data_backward( RandIt cur_pos - , typename iterator_traits::size_type const l_data - , RandIt new_pos - , bool const xbuf_used) -{ - //Move buffer to the total combination right - if(xbuf_used){ - boost::move_backward(cur_pos, cur_pos+l_data, new_pos+l_data); - } - else{ - boost::adl_move_swap_ranges_backward(cur_pos, cur_pos+l_data, new_pos+l_data); - //Rotate does less moves but it seems slower due to cache issues - //rotate_gcd(first-l_block, first+len-l_block, first+len); - } -} - -template -void move_data_forward( RandIt cur_pos - , typename iterator_traits::size_type const l_data - , RandIt new_pos - , bool const xbuf_used) -{ - //Move buffer to the total combination right - if(xbuf_used){ - boost::move(cur_pos, cur_pos+l_data, new_pos); - } - else{ - boost::adl_move_swap_ranges(cur_pos, cur_pos+l_data, new_pos); - //Rotate does less moves but it seems slower due to cache issues - //rotate_gcd(first-l_block, first+len-l_block, first+len); - } -} - -template -Unsigned calculate_total_combined(Unsigned const len, Unsigned const l_prev_merged, Unsigned *pl_irreg_combined = 0) -{ - typedef Unsigned size_type; - - size_type const l_combined = 2*l_prev_merged; - size_type l_irreg_combined = len%l_combined; - size_type l_total_combined = len; - if(l_irreg_combined <= l_prev_merged){ - l_total_combined -= l_irreg_combined; - l_irreg_combined = 0; - } - if(pl_irreg_combined) - *pl_irreg_combined = l_irreg_combined; - return l_total_combined; -} - -template -void combine_params - ( RandItKeys const keys - , KeyCompare key_comp - , SizeType l_combined - , SizeType const l_prev_merged - , SizeType const l_block - , XBuf & xbuf - //Output - , SizeType &n_block_a - , SizeType &n_block_b - , SizeType &l_irreg1 - , SizeType &l_irreg2 - //Options - , bool do_initialize_keys = true) -{ - typedef SizeType size_type; - - //Initial parameters for selection sort blocks - l_irreg1 = l_prev_merged%l_block; - l_irreg2 = (l_combined-l_irreg1)%l_block; - BOOST_ASSERT(((l_combined-l_irreg1-l_irreg2)%l_block) == 0); - size_type const n_reg_block = (l_combined-l_irreg1-l_irreg2)/l_block; - n_block_a = l_prev_merged/l_block; - n_block_b = n_reg_block - n_block_a; - BOOST_ASSERT(n_reg_block>=n_block_a); - - //Key initialization - if (do_initialize_keys) { - initialize_keys(keys, keys + needed_keys_count(n_block_a, n_block_b), key_comp, xbuf); - } -} - -template -RandItB op_buffered_partial_merge_and_swap_to_range1_and_buffer - ( RandIt1 first1, RandIt1 const last1 - , RandIt2 &rfirst2, RandIt2 const last2, RandIt2 &rfirst_min - , RandItB &rfirstb, Compare comp, Op op ) -{ - RandItB firstb = rfirstb; - RandItB lastb = firstb; - RandIt2 first2 = rfirst2; - - //Move to buffer while merging - //Three way moves need less moves when op is swap_op so use it - //when merging elements from range2 to the destination occupied by range1 - if(first1 != last1 && first2 != last2){ - RandIt2 first_min = rfirst_min; - op(four_way_t(), first2++, first_min++, first1++, lastb++); - - while(first1 != last1){ - if(first2 == last2){ - lastb = op(forward_t(), first1, last1, firstb); - break; - } - bool const min_less = comp(*first_min, *firstb); - - if(min_less){ - op( four_way_t(), first2++, first_min++, first1++, lastb++); - } - else{ - op(three_way_t(), firstb++, first1++, lastb++); - } - } - rfirst2 = first2; - rfirstb = firstb; - rfirst_min = first_min; - } - - return lastb; -} - -////////////////////////////////// -// -// partial_merge -// -////////////////////////////////// -template -OutputIt op_partial_merge_impl - (InputIt1 &r_first1, InputIt1 const last1, InputIt2 &r_first2, InputIt2 const last2, OutputIt d_first, Compare comp, Op op) -{ - InputIt1 first1(r_first1); - InputIt2 first2(r_first2); - if(first2 != last2 && last1 != first1) - while(1){ - if(comp(*first2, *first1)) { - op(first2++, d_first++); - if(first2 == last2){ - break; - } - } - else{ - op(first1++, d_first++); - if(first1 == last1){ - break; - } - } - } - r_first1 = first1; - r_first2 = first2; - return d_first; -} - -template -OutputIt op_partial_merge - (InputIt1 &r_first1, InputIt1 const last1, InputIt2 &r_first2, InputIt2 const last2, OutputIt d_first, Compare comp, Op op, bool is_stable) -{ - return is_stable ? op_partial_merge_impl(r_first1, last1, r_first2, last2, d_first, comp, op) - : op_partial_merge_impl(r_first1, last1, r_first2, last2, d_first, antistable(comp), op); -} - -////////////////////////////////// -// -// partial_merge_and_swap -// -////////////////////////////////// -template -OutputIt op_partial_merge_and_swap_impl - (InputIt1 &r_first1, InputIt1 const last1, InputIt2 &r_first2, InputIt2 const last2, InputIt2 &r_first_min, OutputIt d_first, Compare comp, Op op) -{ - InputIt1 first1(r_first1); - InputIt2 first2(r_first2); - - if(first2 != last2 && last1 != first1) { - InputIt2 first_min(r_first_min); - bool non_empty_ranges = true; - do{ - if(comp(*first_min, *first1)) { - op(three_way_t(), first2++, first_min++, d_first++); - non_empty_ranges = first2 != last2; - } - else{ - op(first1++, d_first++); - non_empty_ranges = first1 != last1; - } - } while(non_empty_ranges); - r_first_min = first_min; - r_first1 = first1; - r_first2 = first2; - } - return d_first; -} - -template -RandIt op_partial_merge_and_swap - (RandIt &r_first1, RandIt const last1, RandIt &r_first2, RandIt const last2, InputIt2 &r_first_min, OutputIt d_first, Compare comp, Op op, bool is_stable) -{ - return is_stable ? op_partial_merge_and_swap_impl(r_first1, last1, r_first2, last2, r_first_min, d_first, comp, op) - : op_partial_merge_and_swap_impl(r_first1, last1, r_first2, last2, r_first_min, d_first, antistable(comp), op); -} - -template -RandIt op_partial_merge_and_save_impl - ( RandIt first1, RandIt const last1, RandIt &rfirst2, RandIt last2, RandIt first_min - , RandItBuf &buf_first1_in_out, RandItBuf &buf_last1_in_out - , Compare comp, Op op - ) -{ - RandItBuf buf_first1 = buf_first1_in_out; - RandItBuf buf_last1 = buf_last1_in_out; - RandIt first2(rfirst2); - - bool const do_swap = first2 != first_min; - if(buf_first1 == buf_last1){ - //Skip any element that does not need to be moved - RandIt new_first1 = skip_until_merge(first1, last1, *first_min, comp); - buf_first1 += (new_first1-first1); - first1 = new_first1; - buf_last1 = do_swap ? op_buffered_partial_merge_and_swap_to_range1_and_buffer(first1, last1, first2, last2, first_min, buf_first1, comp, op) - : op_buffered_partial_merge_to_range1_and_buffer (first1, last1, first2, last2, buf_first1, comp, op); - first1 = last1; - } - else{ - BOOST_ASSERT((last1-first1) == (buf_last1 - buf_first1)); - } - - //Now merge from buffer - first1 = do_swap ? op_partial_merge_and_swap_impl(buf_first1, buf_last1, first2, last2, first_min, first1, comp, op) - : op_partial_merge_impl (buf_first1, buf_last1, first2, last2, first1, comp, op); - buf_first1_in_out = buf_first1; - buf_last1_in_out = buf_last1; - rfirst2 = first2; - return first1; -} - -template -RandIt op_partial_merge_and_save - ( RandIt first1, RandIt const last1, RandIt &rfirst2, RandIt last2, RandIt first_min - , RandItBuf &buf_first1_in_out - , RandItBuf &buf_last1_in_out - , Compare comp - , Op op - , bool is_stable) -{ - return is_stable - ? op_partial_merge_and_save_impl - (first1, last1, rfirst2, last2, first_min, buf_first1_in_out, buf_last1_in_out, comp, op) - : op_partial_merge_and_save_impl - (first1, last1, rfirst2, last2, first_min, buf_first1_in_out, buf_last1_in_out, antistable(comp), op) - ; -} - - - -template -OutputIt op_merge_blocks_with_irreg - ( RandItKeys key_first - , RandItKeys key_mid - , KeyCompare key_comp - , RandIt first_reg - , RandIt2 &first_irr - , RandIt2 const last_irr - , OutputIt dest - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type n_block_left - , typename iterator_traits::size_type min_check - , typename iterator_traits::size_type max_check - , Compare comp, bool const is_stable, Op op) -{ - typedef typename iterator_traits::size_type size_type; - - for(; n_block_left; --n_block_left, ++key_first, min_check -= min_check != 0, max_check -= max_check != 0){ - size_type next_key_idx = find_next_block(key_first, key_comp, first_reg, l_block, min_check, max_check, comp); - max_check = min_value(max_value(max_check, next_key_idx+2), n_block_left); - RandIt const last_reg = first_reg + l_block; - RandIt first_min = first_reg + next_key_idx*l_block; - RandIt const last_min = first_min + l_block; (void)last_min; - - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first_reg, last_reg, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!next_key_idx || is_sorted(first_min, last_min, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT((!next_key_idx || !comp(*first_reg, *first_min ))); - - OutputIt orig_dest = dest; (void)orig_dest; - dest = next_key_idx ? op_partial_merge_and_swap(first_irr, last_irr, first_reg, last_reg, first_min, dest, comp, op, is_stable) - : op_partial_merge (first_irr, last_irr, first_reg, last_reg, dest, comp, op, is_stable); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(orig_dest, dest, comp)); - - if(first_reg == dest){ - dest = next_key_idx ? ::boost::adl_move_swap_ranges(first_min, last_min, first_reg) - : last_reg; - } - else{ - dest = next_key_idx ? op(three_way_forward_t(), first_reg, last_reg, first_min, dest) - : op(forward_t(), first_reg, last_reg, dest); - } - - RandItKeys const key_next(key_first + next_key_idx); - swap_and_update_key(next_key_idx != 0, key_next, key_first, key_mid, last_reg, last_reg, first_min); - - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(orig_dest, dest, comp)); - first_reg = last_reg; - } - return dest; -} - -template -void op_merge_blocks_left - ( RandItKeys const key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const l_irreg1 - , typename iterator_traits::size_type const n_block_a - , typename iterator_traits::size_type const n_block_b - , typename iterator_traits::size_type const l_irreg2 - , Compare comp, Op op) -{ - typedef typename iterator_traits::size_type size_type; - size_type const key_count = needed_keys_count(n_block_a, n_block_b); (void)key_count; -// BOOST_ASSERT(n_block_a || n_block_b); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted_and_unique(key_first, key_first + key_count, key_comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_b || n_block_a == count_if_with(key_first, key_first + key_count, key_comp, key_first[n_block_a])); - - size_type n_block_b_left = n_block_b; - size_type n_block_a_left = n_block_a; - size_type n_block_left = n_block_b + n_block_a; - RandItKeys key_mid(key_first + n_block_a); - - RandIt buffer = first - l_block; - RandIt first1 = first; - RandIt last1 = first1 + l_irreg1; - RandIt first2 = last1; - RandIt const irreg2 = first2 + n_block_left*l_block; - bool is_range1_A = true; - - RandItKeys key_range2(key_first); - - //////////////////////////////////////////////////////////////////////////// - //Process all regular blocks before the irregular B block - //////////////////////////////////////////////////////////////////////////// - size_type min_check = n_block_a == n_block_left ? 0u : n_block_a; - size_type max_check = min_value(min_check+1, n_block_left); - for (; n_block_left; --n_block_left, ++key_range2, min_check -= min_check != 0, max_check -= max_check != 0) { - size_type const next_key_idx = find_next_block(key_range2, key_comp, first2, l_block, min_check, max_check, comp); - max_check = min_value(max_value(max_check, next_key_idx+2), n_block_left); - RandIt const first_min = first2 + next_key_idx*l_block; - RandIt const last_min = first_min + l_block; (void)last_min; - RandIt const last2 = first2 + l_block; - - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first1, last1, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first2, last2, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_left || is_sorted(first_min, last_min, comp)); - - //Check if irregular b block should go here. - //If so, break to the special code handling the irregular block - if (!n_block_b_left && - ( (l_irreg2 && comp(*irreg2, *first_min)) || (!l_irreg2 && is_range1_A)) ){ - break; - } - - RandItKeys const key_next(key_range2 + next_key_idx); - bool const is_range2_A = key_mid == (key_first+key_count) || key_comp(*key_next, *key_mid); - - bool const is_buffer_middle = last1 == buffer; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT( ( is_buffer_middle && size_type(first2-buffer) == l_block && buffer == last1) || - (!is_buffer_middle && size_type(first1-buffer) == l_block && first2 == last1)); - - if(is_range1_A == is_range2_A){ - BOOST_ASSERT((first1 == last1) || !comp(*first_min, last1[-1])); - if(!is_buffer_middle){ - buffer = op(forward_t(), first1, last1, buffer); - } - swap_and_update_key(next_key_idx != 0, key_next, key_range2, key_mid, first2, last2, first_min); - first1 = first2; - last1 = last2; - } - else { - RandIt unmerged; - RandIt buf_beg; - RandIt buf_end; - if(is_buffer_middle){ - buf_end = buf_beg = first2 - (last1-first1); - unmerged = op_partial_merge_and_save( first1, last1, first2, last2, first_min - , buf_beg, buf_end, comp, op, is_range1_A); - } - else{ - buf_beg = first1; - buf_end = last1; - unmerged = op_partial_merge_and_save - (buffer, buffer+(last1-first1), first2, last2, first_min, buf_beg, buf_end, comp, op, is_range1_A); - } - (void)unmerged; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first-l_block, unmerged, comp)); - - swap_and_update_key( next_key_idx != 0, key_next, key_range2, key_mid, first2, last2 - , last_min - size_type(last2 - first2)); - - if(buf_beg != buf_end){ //range2 exhausted: is_buffer_middle for the next iteration - first1 = buf_beg; - last1 = buf_end; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(buf_end == (last2-l_block)); - buffer = last1; - } - else{ //range1 exhausted: !is_buffer_middle for the next iteration - first1 = first2; - last1 = last2; - buffer = first2 - l_block; - is_range1_A = is_range2_A; - } - } - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT( (is_range2_A && n_block_a_left) || (!is_range2_A && n_block_b_left)); - is_range2_A ? --n_block_a_left : --n_block_b_left; - first2 = last2; - } - - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_b || n_block_a == count_if_with(key_first, key_range2 + n_block_left, key_comp, *key_mid)); - BOOST_ASSERT(!n_block_b_left); - - //////////////////////////////////////////////////////////////////////////// - //Process remaining range 1 left before the irregular B block - //////////////////////////////////////////////////////////////////////////// - bool const is_buffer_middle = last1 == buffer; - RandIt first_irr2 = irreg2; - RandIt const last_irr2 = first_irr2 + l_irreg2; - if(l_irreg2 && is_range1_A){ - if(is_buffer_middle){ - first1 = skip_until_merge(first1, last1, *first_irr2, comp); - //Even if we copy backward, no overlapping occurs so use forward copy - //that can be faster specially with trivial types - RandIt const new_first1 = first2 - (last1 - first1); - op(forward_t(), first1, last1, new_first1); - first1 = new_first1; - last1 = first2; - buffer = first1 - l_block; - } - buffer = op_partial_merge_impl(first1, last1, first_irr2, last_irr2, buffer, comp, op); - buffer = op(forward_t(), first1, last1, buffer); - } - else if(!is_buffer_middle){ - buffer = op(forward_t(), first1, last1, buffer); - } - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first-l_block, buffer, comp)); - - //////////////////////////////////////////////////////////////////////////// - //Process irregular B block and remaining A blocks - //////////////////////////////////////////////////////////////////////////// - buffer = op_merge_blocks_with_irreg - ( key_range2, key_mid, key_comp, first2, first_irr2, last_irr2 - , buffer, l_block, n_block_left, min_check, max_check, comp, false, op); - buffer = op(forward_t(), first_irr2, last_irr2, buffer);(void)buffer; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first-l_block, buffer, comp)); -} - -// first - first element to merge. -// first[-l_block, 0) - buffer (if use_buf == true) -// l_block - length of regular blocks. First nblocks are stable sorted by 1st elements and key-coded -// keys - sequence of keys, in same order as blocks. key -void merge_blocks_left - ( RandItKeys const key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const l_irreg1 - , typename iterator_traits::size_type const n_block_a - , typename iterator_traits::size_type const n_block_b - , typename iterator_traits::size_type const l_irreg2 - , Compare comp - , bool const xbuf_used) -{ - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_b || n_block_a == count_if_with(key_first, key_first + needed_keys_count(n_block_a, n_block_b), key_comp, key_first[n_block_a])); - if(xbuf_used){ - op_merge_blocks_left - (key_first, key_comp, first, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, move_op()); - } - else{ - op_merge_blocks_left - (key_first, key_comp, first, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, swap_op()); - } -} - - -// first - first element to merge. -// [first+l_block*(n_bef_irreg2+n_aft_irreg2)+l_irreg2, first+l_block*(n_bef_irreg2+n_aft_irreg2+1)+l_irreg2) - buffer -// l_block - length of regular blocks. First nblocks are stable sorted by 1st elements and key-coded -// keys - sequence of keys, in same order as blocks. key -void merge_blocks_right - ( RandItKeys const key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const n_block_a - , typename iterator_traits::size_type const n_block_b - , typename iterator_traits::size_type const l_irreg2 - , Compare comp - , bool const xbuf_used) -{ - merge_blocks_left - ( make_reverse_iterator(key_first + needed_keys_count(n_block_a, n_block_b)) - , inverse(key_comp) - , make_reverse_iterator(first + ((n_block_a+n_block_b)*l_block+l_irreg2)) - , l_block - , l_irreg2 - , n_block_b - , n_block_a - , 0 - , inverse(comp), xbuf_used); -} - -template -void op_merge_blocks_with_buf - ( RandItKeys key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const l_irreg1 - , typename iterator_traits::size_type const n_block_a - , typename iterator_traits::size_type const n_block_b - , typename iterator_traits::size_type const l_irreg2 - , Compare comp - , Op op - , RandItBuf const buf_first) -{ - typedef typename iterator_traits::size_type size_type; - size_type const key_count = needed_keys_count(n_block_a, n_block_b); (void)key_count; - //BOOST_ASSERT(n_block_a || n_block_b); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted_and_unique(key_first, key_first + key_count, key_comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_b || n_block_a == count_if_with(key_first, key_first + key_count, key_comp, key_first[n_block_a])); - - size_type n_block_b_left = n_block_b; - size_type n_block_a_left = n_block_a; - size_type n_block_left = n_block_b + n_block_a; - RandItKeys key_mid(key_first + n_block_a); - - RandItBuf buffer = buf_first; - RandItBuf buffer_end = buffer; - RandIt first1 = first; - RandIt last1 = first1 + l_irreg1; - RandIt first2 = last1; - RandIt const first_irr2 = first2 + n_block_left*l_block; - bool is_range1_A = true; - - RandItKeys key_range2(key_first); - - //////////////////////////////////////////////////////////////////////////// - //Process all regular blocks before the irregular B block - //////////////////////////////////////////////////////////////////////////// - size_type min_check = n_block_a == n_block_left ? 0u : n_block_a; - size_type max_check = min_value(min_check+1, n_block_left); - for (; n_block_left; --n_block_left, ++key_range2, min_check -= min_check != 0, max_check -= max_check != 0) { - size_type const next_key_idx = find_next_block(key_range2, key_comp, first2, l_block, min_check, max_check, comp); - max_check = min_value(max_value(max_check, next_key_idx+2), n_block_left); - RandIt first_min = first2 + next_key_idx*l_block; - RandIt const last_min = first_min + l_block; (void)last_min; - RandIt const last2 = first2 + l_block; - - bool const buffer_empty = buffer == buffer_end; (void)buffer_empty; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(buffer_empty ? is_sorted(first1, last1, comp) : is_sorted(buffer, buffer_end, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first2, last2, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!n_block_left || is_sorted(first_min, last_min, comp)); - - //Check if irregular b block should go here. - //If so, break to the special code handling the irregular block - if (!n_block_b_left && - ( (l_irreg2 && comp(*first_irr2, *first_min)) || (!l_irreg2 && is_range1_A)) ){ - break; - } - - RandItKeys const key_next(key_range2 + next_key_idx); - bool const is_range2_A = key_mid == (key_first+key_count) || key_comp(*key_next, *key_mid); - - if(is_range1_A == is_range2_A){ - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT((first1 == last1) || (buffer_empty ? !comp(*first_min, last1[-1]) : !comp(*first_min, buffer_end[-1]))); - //If buffered, put those elements in place - RandIt res = op(forward_t(), buffer, buffer_end, first1); - buffer = buffer_end = buf_first; - BOOST_ASSERT(buffer_empty || res == last1); (void)res; - swap_and_update_key(next_key_idx != 0, key_next, key_range2, key_mid, first2, last2, first_min); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first2, last2, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first_min, last_min, comp)); - first1 = first2; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first, first1, comp)); - } - else { - RandIt const unmerged = op_partial_merge_and_save(first1, last1, first2, last2, first_min, buffer, buffer_end, comp, op, is_range1_A); - bool const is_range_1_empty = buffer == buffer_end; - BOOST_ASSERT(is_range_1_empty || (buffer_end-buffer) == (last1+l_block-unmerged)); - if(is_range_1_empty){ - buffer = buffer_end = buf_first; - first_min = last_min - (last2 - first2); - } - else{ - first_min = last_min; - } - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(!is_range_1_empty || (last_min-first_min) == (last2-unmerged)); - swap_and_update_key(next_key_idx != 0, key_next, key_range2, key_mid, first2, last2, first_min); - - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first_min, last_min, comp)); - is_range1_A ^= is_range_1_empty; - first1 = unmerged; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first, unmerged, comp)); - } - BOOST_ASSERT( (is_range2_A && n_block_a_left) || (!is_range2_A && n_block_b_left)); - is_range2_A ? --n_block_a_left : --n_block_b_left; - last1 += l_block; - first2 = last2; - } - - RandIt res = op(forward_t(), buffer, buffer_end, first1); (void)res; - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first, res, comp)); - - //////////////////////////////////////////////////////////////////////////// - //Process irregular B block and remaining A blocks - //////////////////////////////////////////////////////////////////////////// - RandIt const last_irr2 = first_irr2 + l_irreg2; - op(forward_t(), first_irr2, first_irr2+l_irreg2, buf_first); - buffer = buf_first; - buffer_end = buffer+l_irreg2; - - reverse_iterator rbuf_beg(buffer_end); - RandIt dest = op_merge_blocks_with_irreg - ( make_reverse_iterator(key_first + n_block_b + n_block_a), make_reverse_iterator(key_mid), inverse(key_comp) - , make_reverse_iterator(first_irr2), rbuf_beg - , make_reverse_iterator(buffer), make_reverse_iterator(last_irr2) - , l_block, n_block_left, 0, n_block_left - , inverse(comp), true, op).base(); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(dest, last_irr2, comp)); - - buffer_end = rbuf_beg.base(); - BOOST_ASSERT((dest-last1) == (buffer_end-buffer)); - op_merge_with_left_placed(is_range1_A ? first1 : last1, last1, dest, buffer, buffer_end, comp, op); - - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(first, last_irr2, comp)); -} - -template -void merge_blocks_with_buf - ( RandItKeys key_first - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const l_block - , typename iterator_traits::size_type const l_irreg1 - , typename iterator_traits::size_type const n_block_a - , typename iterator_traits::size_type const n_block_b - , typename iterator_traits::size_type const l_irreg2 - , Compare comp - , RandItBuf const buf_first - , bool const xbuf_used) -{ - if(xbuf_used){ - op_merge_blocks_with_buf - (key_first, key_comp, first, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, move_op(), buf_first); - } - else{ - op_merge_blocks_with_buf - (key_first, key_comp, first, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, swap_op(), buf_first); - } -} - -template -typename iterator_traits::size_type - op_insertion_sort_step_left - ( RandIt const first - , typename iterator_traits::size_type const length - , typename iterator_traits::size_type const step - , Compare comp, Op op) -{ - typedef typename iterator_traits::size_type size_type; - size_type const s = min_value(step, AdaptiveSortInsertionSortThreshold); - size_type m = 0; - - while((length - m) > s){ - insertion_sort_op(first+m, first+m+s, first+m-s, comp, op); - m += s; - } - insertion_sort_op(first+m, first+length, first+m-s, comp, op); - return s; -} - -template -typename iterator_traits::size_type - insertion_sort_step - ( RandIt const first - , typename iterator_traits::size_type const length - , typename iterator_traits::size_type const step - , Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - size_type const s = min_value(step, AdaptiveSortInsertionSortThreshold); - size_type m = 0; - - while((length - m) > s){ - insertion_sort(first+m, first+m+s, comp); - m += s; - } - insertion_sort(first+m, first+length, comp); - return s; -} - -template -typename iterator_traits::size_type - op_merge_left_step_multiple - ( RandIt first_block - , typename iterator_traits::size_type const elements_in_blocks - , typename iterator_traits::size_type l_merged - , typename iterator_traits::size_type const l_build_buf - , typename iterator_traits::size_type l_left_space - , Compare comp - , Op op) -{ - typedef typename iterator_traits::size_type size_type; - for(; l_merged < l_build_buf && l_left_space >= l_merged; l_merged*=2){ - size_type p0=0; - RandIt pos = first_block; - while((elements_in_blocks - p0) > 2*l_merged) { - op_merge_left(pos-l_merged, pos, pos+l_merged, pos+2*l_merged, comp, op); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(pos-l_merged, pos+l_merged, comp)); - p0 += 2*l_merged; - pos = first_block+p0; - } - if((elements_in_blocks-p0) > l_merged) { - op_merge_left(pos-l_merged, pos, pos+l_merged, first_block+elements_in_blocks, comp, op); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(pos-l_merged, pos-l_merged+(first_block+elements_in_blocks-pos), comp)); - } - else { - op(forward_t(), pos, first_block+elements_in_blocks, pos-l_merged); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(pos-l_merged, first_block+elements_in_blocks-l_merged, comp)); - } - first_block -= l_merged; - l_left_space -= l_merged; - } - return l_merged; -} - -template -void op_merge_right_step_once - ( RandIt first_block - , typename iterator_traits::size_type const elements_in_blocks - , typename iterator_traits::size_type const l_build_buf - , Compare comp - , Op op) -{ - typedef typename iterator_traits::size_type size_type; - size_type restk = elements_in_blocks%(2*l_build_buf); - size_type p = elements_in_blocks - restk; - BOOST_ASSERT(0 == (p%(2*l_build_buf))); - - if(restk <= l_build_buf){ - op(backward_t(),first_block+p, first_block+p+restk, first_block+p+restk+l_build_buf); - } - else{ - op_merge_right(first_block+p, first_block+p+l_build_buf, first_block+p+restk, first_block+p+restk+l_build_buf, comp, op); - } - while(p>0){ - p -= 2*l_build_buf; - op_merge_right(first_block+p, first_block+p+l_build_buf, first_block+p+2*l_build_buf, first_block+p+3*l_build_buf, comp, op); - } -} - - -// build blocks of length 2*l_build_buf. l_build_buf is power of two -// input: [0, l_build_buf) elements are buffer, rest unsorted elements -// output: [0, l_build_buf) elements are buffer, blocks 2*l_build_buf and last subblock sorted -// -// First elements are merged from right to left until elements start -// at first. All old elements [first, first + l_build_buf) are placed at the end -// [first+len-l_build_buf, first+len). To achieve this: -// - If we have external memory to merge, we save elements from the buffer -// so that a non-swapping merge is used. Buffer elements are restored -// at the end of the buffer from the external memory. -// -// - When the external memory is not available or it is insufficient -// for a merge operation, left swap merging is used. -// -// Once elements are merged left to right in blocks of l_build_buf, then a single left -// to right merge step is performed to achieve merged blocks of size 2K. -// If external memory is available, usual merge is used, swap merging otherwise. -// -// As a last step, if auxiliary memory is available in-place merge is performed. -// until all is merged or auxiliary memory is not large enough. -template -typename iterator_traits::size_type - adaptive_sort_build_blocks - ( RandIt const first - , typename iterator_traits::size_type const len - , typename iterator_traits::size_type const l_base - , typename iterator_traits::size_type const l_build_buf - , adaptive_xbuf::value_type> & xbuf - , Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - BOOST_ASSERT(l_build_buf <= len); - BOOST_ASSERT(0 == ((l_build_buf / l_base)&(l_build_buf/l_base-1))); - - //Place the start pointer after the buffer - RandIt first_block = first + l_build_buf; - size_type const elements_in_blocks = len - l_build_buf; - - ////////////////////////////////// - // Start of merge to left step - ////////////////////////////////// - size_type l_merged = 0u; - - BOOST_ASSERT(l_build_buf); - //If there is no enough buffer for the insertion sort step, just avoid the external buffer - size_type kbuf = min_value(l_build_buf, size_type(xbuf.capacity())); - kbuf = kbuf < l_base ? 0 : kbuf; - - if(kbuf){ - //Backup internal buffer values in external buffer so they can be overwritten - xbuf.move_assign(first+l_build_buf-kbuf, kbuf); - l_merged = op_insertion_sort_step_left(first_block, elements_in_blocks, l_base, comp, move_op()); - - //Now combine them using the buffer. Elements from buffer can be - //overwritten since they've been saved to xbuf - l_merged = op_merge_left_step_multiple - ( first_block - l_merged, elements_in_blocks, l_merged, l_build_buf, kbuf - l_merged, comp, move_op()); - - //Restore internal buffer from external buffer unless kbuf was l_build_buf, - //in that case restoration will happen later - if(kbuf != l_build_buf){ - boost::move(xbuf.data()+kbuf-l_merged, xbuf.data() + kbuf, first_block-l_merged+elements_in_blocks); - } - } - else{ - l_merged = insertion_sort_step(first_block, elements_in_blocks, l_base, comp); - rotate_gcd(first_block - l_merged, first_block, first_block+elements_in_blocks); - } - - //Now combine elements using the buffer. Elements from buffer can't be - //overwritten since xbuf was not big enough, so merge swapping elements. - l_merged = op_merge_left_step_multiple - (first_block - l_merged, elements_in_blocks, l_merged, l_build_buf, l_build_buf - l_merged, comp, swap_op()); - - BOOST_ASSERT(l_merged == l_build_buf); - - ////////////////////////////////// - // Start of merge to right step - ////////////////////////////////// - - //If kbuf is l_build_buf then we can merge right without swapping - //Saved data is still in xbuf - if(kbuf && kbuf == l_build_buf){ - op_merge_right_step_once(first, elements_in_blocks, l_build_buf, comp, move_op()); - //Restore internal buffer from external buffer if kbuf was l_build_buf. - //as this operation was previously delayed. - boost::move(xbuf.data(), xbuf.data() + kbuf, first); - } - else{ - op_merge_right_step_once(first, elements_in_blocks, l_build_buf, comp, swap_op()); - } - xbuf.clear(); - //2*l_build_buf or total already merged - return min_value(elements_in_blocks, 2*l_build_buf); -} - -template -void adaptive_sort_combine_blocks - ( RandItKeys const keys - , KeyCompare key_comp - , RandIt const first - , typename iterator_traits::size_type const len - , typename iterator_traits::size_type const l_prev_merged - , typename iterator_traits::size_type const l_block - , bool const use_buf - , bool const xbuf_used - , XBuf & xbuf - , Compare comp - , bool merge_left) -{ - (void)xbuf; - typedef typename iterator_traits::size_type size_type; - - size_type const l_reg_combined = 2*l_prev_merged; - size_type l_irreg_combined = 0; - size_type const l_total_combined = calculate_total_combined(len, l_prev_merged, &l_irreg_combined); - size_type const n_reg_combined = len/l_reg_combined; - RandIt combined_first = first; - - (void)l_total_combined; - BOOST_ASSERT(l_total_combined <= len); - - size_type const max_i = n_reg_combined + (l_irreg_combined != 0); - - if(merge_left || !use_buf) { - for( size_type combined_i = 0; combined_i != max_i; ++combined_i, combined_first += l_reg_combined) { - //Now merge blocks - bool const is_last = combined_i==n_reg_combined; - size_type const l_cur_combined = is_last ? l_irreg_combined : l_reg_combined; - - range_xbuf rbuf( (use_buf && xbuf_used) ? (combined_first-l_block) : combined_first, combined_first); - size_type n_block_a, n_block_b, l_irreg1, l_irreg2; - combine_params( keys, key_comp, l_cur_combined - , l_prev_merged, l_block, rbuf - , n_block_a, n_block_b, l_irreg1, l_irreg2); //Outputs - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A combpar: ", len + l_block); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(combined_first, combined_first + n_block_a*l_block+l_irreg1, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(combined_first + n_block_a*l_block+l_irreg1, combined_first + n_block_a*l_block+l_irreg1+n_block_b*l_block+l_irreg2, comp)); - if(!use_buf){ - merge_blocks_bufferless - (keys, key_comp, combined_first, l_block, 0u, n_block_a, n_block_b, l_irreg2, comp); - } - else{ - merge_blocks_left - (keys, key_comp, combined_first, l_block, 0u, n_block_a, n_block_b, l_irreg2, comp, xbuf_used); - } - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" After merge_blocks_l: ", len + l_block); - } - } - else{ - combined_first += l_reg_combined*(max_i-1); - for( size_type combined_i = max_i; combined_i--; combined_first -= l_reg_combined) { - bool const is_last = combined_i==n_reg_combined; - size_type const l_cur_combined = is_last ? l_irreg_combined : l_reg_combined; - - RandIt const combined_last(combined_first+l_cur_combined); - range_xbuf rbuf(combined_last, xbuf_used ? (combined_last+l_block) : combined_last); - size_type n_block_a, n_block_b, l_irreg1, l_irreg2; - combine_params( keys, key_comp, l_cur_combined - , l_prev_merged, l_block, rbuf - , n_block_a, n_block_b, l_irreg1, l_irreg2); //Outputs - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A combpar: ", len + l_block); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(combined_first, combined_first + n_block_a*l_block+l_irreg1, comp)); - BOOST_MOVE_ADAPTIVE_SORT_INVARIANT(is_sorted(combined_first + n_block_a*l_block+l_irreg1, combined_first + n_block_a*l_block+l_irreg1+n_block_b*l_block+l_irreg2, comp)); - merge_blocks_right - (keys, key_comp, combined_first, l_block, n_block_a, n_block_b, l_irreg2, comp, xbuf_used); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" After merge_blocks_r: ", len + l_block); - } - } -} - -//Returns true if buffer is placed in -//[buffer+len-l_intbuf, buffer+len). Otherwise, buffer is -//[buffer,buffer+l_intbuf) -template -bool adaptive_sort_combine_all_blocks - ( RandIt keys - , typename iterator_traits::size_type &n_keys - , RandIt const buffer - , typename iterator_traits::size_type const l_buf_plus_data - , typename iterator_traits::size_type l_merged - , typename iterator_traits::size_type &l_intbuf - , adaptive_xbuf::value_type> & xbuf - , Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - RandIt const first = buffer + l_intbuf; - size_type const l_data = l_buf_plus_data - l_intbuf; - size_type const l_unique = l_intbuf+n_keys; - //Backup data to external buffer once if possible - bool const common_xbuf = l_data > l_merged && l_intbuf && l_intbuf <= xbuf.capacity(); - if(common_xbuf){ - xbuf.move_assign(buffer, l_intbuf); - } - - bool prev_merge_left = true; - size_type l_prev_total_combined = l_merged, l_prev_block = 0; - bool prev_use_internal_buf = true; - - for( size_type n = 0; l_data > l_merged - ; l_merged*=2 - , ++n){ - //If l_intbuf is non-zero, use that internal buffer. - // Implies l_block == l_intbuf && use_internal_buf == true - //If l_intbuf is zero, see if half keys can be reused as a reduced emergency buffer, - // Implies l_block == n_keys/2 && use_internal_buf == true - //Otherwise, just give up and and use all keys to merge using rotations (use_internal_buf = false) - bool use_internal_buf = false; - size_type const l_block = lblock_for_combine(l_intbuf, n_keys, 2*l_merged, use_internal_buf); - BOOST_ASSERT(!l_intbuf || (l_block == l_intbuf)); - BOOST_ASSERT(n == 0 || (!use_internal_buf || prev_use_internal_buf) ); - BOOST_ASSERT(n == 0 || (!use_internal_buf || l_prev_block == l_block) ); - - bool const is_merge_left = (n&1) == 0; - size_type const l_total_combined = calculate_total_combined(l_data, l_merged); - if(n && prev_use_internal_buf && prev_merge_left){ - if(is_merge_left || !use_internal_buf){ - move_data_backward(first-l_prev_block, l_prev_total_combined, first, common_xbuf); - } - else{ - //Put the buffer just after l_total_combined - RandIt const buf_end = first+l_prev_total_combined; - RandIt const buf_beg = buf_end-l_block; - if(l_prev_total_combined > l_total_combined){ - size_type const l_diff = l_prev_total_combined - l_total_combined; - move_data_backward(buf_beg-l_diff, l_diff, buf_end-l_diff, common_xbuf); - } - else if(l_prev_total_combined < l_total_combined){ - size_type const l_diff = l_total_combined - l_prev_total_combined; - move_data_forward(buf_end, l_diff, buf_beg, common_xbuf); - } - } - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" After move_data : ", l_data + l_intbuf); - } - - //Combine to form l_merged*2 segments - if(n_keys){ - adaptive_sort_combine_blocks - ( keys, comp, !use_internal_buf || is_merge_left ? first : first-l_block - , l_data, l_merged, l_block, use_internal_buf, common_xbuf, xbuf, comp, is_merge_left); - } - else{ - size_type *const uint_keys = xbuf.template aligned_trailing(); - adaptive_sort_combine_blocks - ( uint_keys, less(), !use_internal_buf || is_merge_left ? first : first-l_block - , l_data, l_merged, l_block, use_internal_buf, common_xbuf, xbuf, comp, is_merge_left); - } - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" After combine_blocks: ", l_data + l_intbuf); - prev_merge_left = is_merge_left; - l_prev_total_combined = l_total_combined; - l_prev_block = l_block; - prev_use_internal_buf = use_internal_buf; - } - BOOST_ASSERT(l_prev_total_combined == l_data); - bool const buffer_right = prev_use_internal_buf && prev_merge_left; - - l_intbuf = prev_use_internal_buf ? l_prev_block : 0u; - n_keys = l_unique - l_intbuf; - //Restore data from to external common buffer if used - if(common_xbuf){ - if(buffer_right){ - boost::move(xbuf.data(), xbuf.data() + l_intbuf, buffer+l_data); - } - else{ - boost::move(xbuf.data(), xbuf.data() + l_intbuf, buffer); - } - } - return buffer_right; -} - -template -void stable_merge - ( RandIt first, RandIt const middle, RandIt last - , Compare comp - , adaptive_xbuf::value_type> &xbuf) -{ - BOOST_ASSERT(xbuf.empty()); - typedef typename iterator_traits::size_type size_type; - size_type const len1 = size_type(middle-first); - size_type const len2 = size_type(last-middle); - size_type const l_min = min_value(len1, len2); - if(xbuf.capacity() >= l_min){ - buffered_merge(first, middle, last, comp, xbuf); - xbuf.clear(); - } - else{ - merge_bufferless(first, middle, last, comp); - } -} - - -template -void adaptive_sort_final_merge( bool buffer_right - , RandIt const first - , typename iterator_traits::size_type const l_intbuf - , typename iterator_traits::size_type const n_keys - , typename iterator_traits::size_type const len - , adaptive_xbuf::value_type> & xbuf - , Compare comp) -{ - //BOOST_ASSERT(n_keys || xbuf.size() == l_intbuf); - xbuf.clear(); - - typedef typename iterator_traits::size_type size_type; - size_type const n_key_plus_buf = l_intbuf+n_keys; - if(buffer_right){ - stable_sort(first+len-l_intbuf, first+len, comp, xbuf); - stable_merge(first+n_keys, first+len-l_intbuf, first+len, antistable(comp), xbuf); - stable_sort(first, first+n_keys, comp, xbuf); - stable_merge(first, first+n_keys, first+len, comp, xbuf); - } - else{ - stable_sort(first, first+n_key_plus_buf, comp, xbuf); - if(xbuf.capacity() >= n_key_plus_buf){ - buffered_merge(first, first+n_key_plus_buf, first+len, comp, xbuf); - } - else if(xbuf.capacity() >= min_value(l_intbuf, n_keys)){ - stable_merge(first+n_keys, first+n_key_plus_buf, first+len, comp, xbuf); - stable_merge(first, first+n_keys, first+len, comp, xbuf); - } - else{ - merge_bufferless(first, first+n_key_plus_buf, first+len, comp); - } - } - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" After final_merge : ", len); -} - -template -bool adaptive_sort_build_params - (RandIt first, Unsigned const len, Compare comp - , Unsigned &n_keys, Unsigned &l_intbuf, Unsigned &l_base, Unsigned &l_build_buf - , adaptive_xbuf & xbuf - ) -{ - typedef Unsigned size_type; - - //Calculate ideal parameters and try to collect needed unique keys - l_base = 0u; - - //Try to find a value near sqrt(len) that is 2^N*l_base where - //l_base <= AdaptiveSortInsertionSortThreshold. This property is important - //as build_blocks merges to the left iteratively duplicating the - //merged size and all the buffer must be used just before the final - //merge to right step. This guarantees "build_blocks" produces - //segments of size l_build_buf*2, maximizing the classic merge phase. - l_intbuf = size_type(ceil_sqrt_multiple(len, &l_base)); - - //The internal buffer can be expanded if there is enough external memory - while(xbuf.capacity() >= l_intbuf*2){ - l_intbuf *= 2; - } - - //This is the minimum number of keys to implement the ideal algorithm - // - //l_intbuf is used as buffer plus the key count - size_type n_min_ideal_keys = l_intbuf-1; - while(n_min_ideal_keys >= (len-l_intbuf-n_min_ideal_keys)/l_intbuf){ - --n_min_ideal_keys; - } - n_min_ideal_keys += 1; - BOOST_ASSERT(n_min_ideal_keys <= l_intbuf); - - if(xbuf.template supports_aligned_trailing(l_intbuf, (len-l_intbuf-1)/l_intbuf+1)){ - n_keys = 0u; - l_build_buf = l_intbuf; - } - else{ - //Try to achieve a l_build_buf of length l_intbuf*2, so that we can merge with that - //l_intbuf*2 buffer in "build_blocks" and use half of them as buffer and the other half - //as keys in combine_all_blocks. In that case n_keys >= n_min_ideal_keys but by a small margin. - // - //If available memory is 2*sqrt(l), then only sqrt(l) unique keys are needed, - //(to be used for keys in combine_all_blocks) as the whole l_build_buf - //will be backuped in the buffer during build_blocks. - bool const non_unique_buf = xbuf.capacity() >= l_intbuf; - size_type const to_collect = non_unique_buf ? n_min_ideal_keys : l_intbuf*2; - size_type collected = collect_unique(first, first+len, to_collect, comp, xbuf); - - //If available memory is 2*sqrt(l), then for "build_params" - //the situation is the same as if 2*l_intbuf were collected. - if(non_unique_buf && collected == n_min_ideal_keys){ - l_build_buf = l_intbuf; - n_keys = n_min_ideal_keys; - } - else if(collected == 2*l_intbuf){ - //l_intbuf*2 elements found. Use all of them in the build phase - l_build_buf = l_intbuf*2; - n_keys = l_intbuf; - } - else if(collected == (n_min_ideal_keys+l_intbuf)){ - l_build_buf = l_intbuf; - n_keys = n_min_ideal_keys; - } - //If collected keys are not enough, try to fix n_keys and l_intbuf. If no fix - //is possible (due to very low unique keys), then go to a slow sort based on rotations. - else{ - BOOST_ASSERT(collected < (n_min_ideal_keys+l_intbuf)); - if(collected < 4){ //No combination possible with less that 4 keys - return false; - } - n_keys = l_intbuf; - while(n_keys&(n_keys-1)){ - n_keys &= n_keys-1; // make it power or 2 - } - while(n_keys > collected){ - n_keys/=2; - } - //AdaptiveSortInsertionSortThreshold is always power of two so the minimum is power of two - l_base = min_value(n_keys, AdaptiveSortInsertionSortThreshold); - l_intbuf = 0; - l_build_buf = n_keys; - } - BOOST_ASSERT((n_keys+l_intbuf) >= l_build_buf); - } - - return true; -} - -template -inline void adaptive_merge_combine_blocks( RandIt first - , typename iterator_traits::size_type len1 - , typename iterator_traits::size_type len2 - , typename iterator_traits::size_type collected - , typename iterator_traits::size_type n_keys - , typename iterator_traits::size_type l_block - , bool use_internal_buf - , bool xbuf_used - , Compare comp - , adaptive_xbuf::value_type> & xbuf - ) -{ - typedef typename iterator_traits::size_type size_type; - size_type const len = len1+len2; - size_type const l_combine = len-collected; - size_type const l_combine1 = len1-collected; - - if(n_keys){ - RandIt const first_data = first+collected; - RandIt const keys = first; - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A combine: ", len); - if(xbuf_used){ - if(xbuf.size() < l_block){ - xbuf.initialize_until(l_block, *first); - } - BOOST_ASSERT(xbuf.size() >= l_block); - size_type n_block_a, n_block_b, l_irreg1, l_irreg2; - combine_params( keys, comp, l_combine - , l_combine1, l_block, xbuf - , n_block_a, n_block_b, l_irreg1, l_irreg2); //Outputs - merge_blocks_with_buf - (keys, comp, first_data, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, xbuf.data(), xbuf_used); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A mrg xbf: ", len); - } - else{ - size_type n_block_a, n_block_b, l_irreg1, l_irreg2; - combine_params( keys, comp, l_combine - , l_combine1, l_block, xbuf - , n_block_a, n_block_b, l_irreg1, l_irreg2); //Outputs - if(use_internal_buf){ - merge_blocks_with_buf - (keys, comp, first_data, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, first_data-l_block, xbuf_used); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A mrg buf: ", len); - } - else{ - merge_blocks_bufferless - (keys, comp, first_data, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A mrg nbf: ", len); - } - } - } - else{ - xbuf.shrink_to_fit(l_block); - if(xbuf.size() < l_block){ - xbuf.initialize_until(l_block, *first); - } - size_type *const uint_keys = xbuf.template aligned_trailing(l_block); - size_type n_block_a, n_block_b, l_irreg1, l_irreg2; - combine_params( uint_keys, less(), l_combine - , l_combine1, l_block, xbuf - , n_block_a, n_block_b, l_irreg1, l_irreg2, true); //Outputs - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A combine: ", len); - BOOST_ASSERT(xbuf.size() >= l_block); - merge_blocks_with_buf - (uint_keys, less(), first, l_block, l_irreg1, n_block_a, n_block_b, l_irreg2, comp, xbuf.data(), true); - xbuf.clear(); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A mrg buf: ", len); - } -} - -template -inline void adaptive_merge_final_merge( RandIt first - , typename iterator_traits::size_type len1 - , typename iterator_traits::size_type len2 - , typename iterator_traits::size_type collected - , typename iterator_traits::size_type l_intbuf - , typename iterator_traits::size_type l_block - , bool use_internal_buf - , bool xbuf_used - , Compare comp - , adaptive_xbuf::value_type> & xbuf - ) -{ - typedef typename iterator_traits::size_type size_type; - (void)l_block; - size_type n_keys = collected-l_intbuf; - size_type len = len1+len2; - if(use_internal_buf){ - if(xbuf_used){ - xbuf.clear(); - //Nothing to do - if(n_keys){ - stable_sort(first, first+n_keys, comp, xbuf); - stable_merge(first, first+n_keys, first+len, comp, xbuf); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A key mrg: ", len); - } - } - else{ - xbuf.clear(); - stable_sort(first, first+collected, comp, xbuf); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A k/b srt: ", len); - stable_merge(first, first+collected, first+len, comp, xbuf); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A k/b mrg: ", len); - } - } - else{ - xbuf.clear(); - stable_sort(first, first+collected, comp, xbuf); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A k/b srt: ", len); - stable_merge(first, first+collected, first+len1+len2, comp, xbuf); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" A k/b mrg: ", len); - } -} - -template -inline SizeType adaptive_merge_n_keys_intbuf(SizeType &rl_block, SizeType len1, SizeType len2, Xbuf & xbuf, SizeType &l_intbuf_inout) -{ - typedef SizeType size_type; - size_type l_block = rl_block; - size_type l_intbuf = xbuf.capacity() >= l_block ? 0u : l_block; - - while(xbuf.capacity() >= l_block*2){ - l_block *= 2; - } - - //This is the minimum number of keys to implement the ideal algorithm - size_type n_keys = len1/l_block+len2/l_block; - while(n_keys >= ((len1-l_intbuf-n_keys)/l_block + len2/l_block)){ - --n_keys; - } - ++n_keys; - BOOST_ASSERT(n_keys >= ((len1-l_intbuf-n_keys)/l_block + len2/l_block)); - - if(xbuf.template supports_aligned_trailing(l_block, n_keys)){ - n_keys = 0u; - } - l_intbuf_inout = l_intbuf; - rl_block = l_block; - return n_keys; -} - -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////// - -// Main explanation of the sort algorithm. -// -// csqrtlen = ceil(sqrt(len)); -// -// * First, 2*csqrtlen unique elements elements are extracted from elements to be -// sorted and placed in the beginning of the range. -// -// * Step "build_blocks": In this nearly-classic merge step, 2*csqrtlen unique elements -// will be used as auxiliary memory, so trailing len-2*csqrtlen elements are -// are grouped in blocks of sorted 4*csqrtlen elements. At the end of the step -// 2*csqrtlen unique elements are again the leading elements of the whole range. -// -// * Step "combine_blocks": pairs of previously formed blocks are merged with a different -// ("smart") algorithm to form blocks of 8*csqrtlen elements. This step is slower than the -// "build_blocks" step and repeated iteratively (forming blocks of 16*csqrtlen, 32*csqrtlen -// elements, etc) of until all trailing (len-2*csqrtlen) elements are merged. -// -// In "combine_blocks" len/csqrtlen elements used are as "keys" (markers) to -// know if elements belong to the first or second block to be merged and another -// leading csqrtlen elements are used as buffer. Explanation of the "combine_blocks" step: -// -// Iteratively until all trailing (len-2*csqrtlen) elements are merged: -// Iteratively for each pair of previously merged block: -// * Blocks are divided groups of csqrtlen elements and -// 2*merged_block/csqrtlen keys are sorted to be used as markers -// * Groups are selection-sorted by first or last element (depending wheter they -// merged to left or right) and keys are reordered accordingly as an imitation-buffer. -// * Elements of each block pair are merged using the csqrtlen buffer taking into account -// if they belong to the first half or second half (marked by the key). -// -// * In the final merge step leading elements (2*csqrtlen) are sorted and merged with -// rotations with the rest of sorted elements in the "combine_blocks" step. -// -// Corner cases: -// -// * If no 2*csqrtlen elements can be extracted: -// -// * If csqrtlen+len/csqrtlen are extracted, then only csqrtlen elements are used -// as buffer in the "build_blocks" step forming blocks of 2*csqrtlen elements. This -// means that an additional "combine_blocks" step will be needed to merge all elements. -// -// * If no csqrtlen+len/csqrtlen elements can be extracted, but still more than a minimum, -// then reduces the number of elements used as buffer and keys in the "build_blocks" -// and "combine_blocks" steps. If "combine_blocks" has no enough keys due to this reduction -// then uses a rotation based smart merge. -// -// * If the minimum number of keys can't be extracted, a rotation-based sorting is performed. -// -// * If auxiliary memory is more or equal than ceil(len/2), half-copying mergesort is used. -// -// * If auxiliary memory is more than csqrtlen+n_keys*sizeof(std::size_t), -// then only csqrtlen elements need to be extracted and "combine_blocks" will use integral -// keys to combine blocks. -// -// * If auxiliary memory is available, the "build_blocks" will be extended to build bigger blocks -// using classic merge. -template -void adaptive_sort_impl - ( RandIt first - , typename iterator_traits::size_type const len - , Compare comp - , adaptive_xbuf::value_type> & xbuf - ) -{ - typedef typename iterator_traits::size_type size_type; - - //Small sorts go directly to insertion sort - if(len <= size_type(AdaptiveSortInsertionSortThreshold)){ - insertion_sort(first, first + len, comp); - return; - } - - if((len-len/2) <= xbuf.capacity()){ - merge_sort(first, first+len, comp, xbuf.data()); - return; - } - - //Make sure it is at least four - BOOST_STATIC_ASSERT(AdaptiveSortInsertionSortThreshold >= 4); - - size_type l_base = 0; - size_type l_intbuf = 0; - size_type n_keys = 0; - size_type l_build_buf = 0; - - //Calculate and extract needed unique elements. If a minimum is not achieved - //fallback to rotation-based merge - if(!adaptive_sort_build_params(first, len, comp, n_keys, l_intbuf, l_base, l_build_buf, xbuf)){ - stable_sort(first, first+len, comp, xbuf); - return; - } - BOOST_ASSERT(l_build_buf); - //Otherwise, continue the adaptive_sort - BOOST_MOVE_ADAPTIVE_SORT_PRINT("\n After collect_unique: ", len); - size_type const n_key_plus_buf = l_intbuf+n_keys; - //l_build_buf is always power of two if l_intbuf is zero - BOOST_ASSERT(l_intbuf || (0 == (l_build_buf & (l_build_buf-1)))); - - //Classic merge sort until internal buffer and xbuf are exhausted - size_type const l_merged = adaptive_sort_build_blocks - (first+n_key_plus_buf-l_build_buf, len-n_key_plus_buf+l_build_buf, l_base, l_build_buf, xbuf, comp); - BOOST_MOVE_ADAPTIVE_SORT_PRINT(" After build_blocks: ", len); - - //Non-trivial merge - bool const buffer_right = adaptive_sort_combine_all_blocks - (first, n_keys, first+n_keys, len-n_keys, l_merged, l_intbuf, xbuf, comp); - - //Sort keys and buffer and merge the whole sequence - adaptive_sort_final_merge(buffer_right, first, l_intbuf, n_keys, len, xbuf, comp); -} - -// Main explanation of the merge algorithm. -// -// csqrtlen = ceil(sqrt(len)); -// -// * First, csqrtlen [to be used as buffer] + (len/csqrtlen - 1) [to be used as keys] => to_collect -// unique elements are extracted from elements to be sorted and placed in the beginning of the range. -// -// * Step "combine_blocks": the leading (len1-to_collect) elements plus trailing len2 elements -// are merged with a non-trivial ("smart") algorithm to form an ordered range trailing "len-to_collect" elements. -// -// Explanation of the "combine_blocks" step: -// -// * Trailing [first+to_collect, first+len1) elements are divided in groups of cqrtlen elements. -// Remaining elements that can't form a group are grouped in front of those elements. -// * Trailing [first+len1, first+len1+len2) elements are divided in groups of cqrtlen elements. -// Remaining elements that can't form a group are grouped in the back of those elements. -// * In parallel the following two steps are performed: -// * Groups are selection-sorted by first or last element (depending wheter they -// merged to left or right) and keys are reordered accordingly as an imitation-buffer. -// * Elements of each block pair are merged using the csqrtlen buffer taking into account -// if they belong to the first half or second half (marked by the key). -// -// * In the final merge step leading "to_collect" elements are merged with rotations -// with the rest of merged elements in the "combine_blocks" step. -// -// Corner cases: -// -// * If no "to_collect" elements can be extracted: -// -// * If more than a minimum number of elements is extracted -// then reduces the number of elements used as buffer and keys in the -// and "combine_blocks" steps. If "combine_blocks" has no enough keys due to this reduction -// then uses a rotation based smart merge. -// -// * If the minimum number of keys can't be extracted, a rotation-based merge is performed. -// -// * If auxiliary memory is more or equal than min(len1, len2), a buffered merge is performed. -// -// * If the len1 or len2 are less than 2*csqrtlen then a rotation-based merge is performed. -// -// * If auxiliary memory is more than csqrtlen+n_keys*sizeof(std::size_t), -// then no csqrtlen need to be extracted and "combine_blocks" will use integral -// keys to combine blocks. -template -void adaptive_merge_impl - ( RandIt first - , typename iterator_traits::size_type const len1 - , typename iterator_traits::size_type const len2 - , Compare comp - , adaptive_xbuf::value_type> & xbuf - ) -{ - typedef typename iterator_traits::size_type size_type; - - if(xbuf.capacity() >= min_value(len1, len2)){ - buffered_merge(first, first+len1, first+(len1+len2), comp, xbuf); - } - else{ - const size_type len = len1+len2; - //Calculate ideal parameters and try to collect needed unique keys - size_type l_block = size_type(ceil_sqrt(len)); - - //One range is not big enough to extract keys and the internal buffer so a - //rotation-based based merge will do just fine - if(len1 <= l_block*2 || len2 <= l_block*2){ - merge_bufferless(first, first+len1, first+len1+len2, comp); - return; - } - - //Detail the number of keys and internal buffer. If xbuf has enough memory, no - //internal buffer is needed so l_intbuf will remain 0. - size_type l_intbuf = 0; - size_type n_keys = adaptive_merge_n_keys_intbuf(l_block, len1, len2, xbuf, l_intbuf); - size_type const to_collect = l_intbuf+n_keys; - //Try to extract needed unique values from the first range - size_type const collected = collect_unique(first, first+len1, to_collect, comp, xbuf); - BOOST_MOVE_ADAPTIVE_SORT_PRINT("\n A collect: ", len); - - //Not the minimum number of keys is not available on the first range, so fallback to rotations - if(collected != to_collect && collected < 4){ - merge_bufferless(first, first+len1, first+len1+len2, comp); - return; - } - - //If not enough keys but more than minimum, adjust the internal buffer and key count - bool use_internal_buf = collected == to_collect; - if (!use_internal_buf){ - l_intbuf = 0u; - n_keys = collected; - l_block = lblock_for_combine(l_intbuf, n_keys, len, use_internal_buf); - //If use_internal_buf is false, then then internal buffer will be zero and rotation-based combination will be used - l_intbuf = use_internal_buf ? l_block : 0u; - } - - bool const xbuf_used = collected == to_collect && xbuf.capacity() >= l_block; - //Merge trailing elements using smart merges - adaptive_merge_combine_blocks(first, len1, len2, collected, n_keys, l_block, use_internal_buf, xbuf_used, comp, xbuf); - //Merge buffer and keys with the rest of the values - adaptive_merge_final_merge (first, len1, len2, collected, l_intbuf, l_block, use_internal_buf, xbuf_used, comp, xbuf); - } -} - - -} //namespace detail_adaptive { -} //namespace movelib { -} //namespace boost { - -#include - -#endif //#define BOOST_MOVE_ADAPTIVE_SORT_MERGE_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/detail/basic_op.hpp b/lib/3rdParty/boost/boost/move/algo/detail/basic_op.hpp deleted file mode 100644 index a9369e07b..000000000 --- a/lib/3rdParty/boost/boost/move/algo/detail/basic_op.hpp +++ /dev/null @@ -1,121 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_MOVE_ALGO_BASIC_OP -#define BOOST_MOVE_ALGO_BASIC_OP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include - -namespace boost { -namespace movelib { - -struct forward_t{}; -struct backward_t{}; -struct three_way_t{}; -struct three_way_forward_t{}; -struct four_way_t{}; - -struct move_op -{ - template - void operator()(SourceIt source, DestinationIt dest) - { *dest = ::boost::move(*source); } - - template - DestinationIt operator()(forward_t, SourceIt first, SourceIt last, DestinationIt dest_begin) - { return ::boost::move(first, last, dest_begin); } - - template - DestinationIt operator()(backward_t, SourceIt first, SourceIt last, DestinationIt dest_last) - { return ::boost::move_backward(first, last, dest_last); } - - template - void operator()(three_way_t, SourceIt srcit, DestinationIt1 dest1it, DestinationIt2 dest2it) - { - *dest2it = boost::move(*dest1it); - *dest1it = boost::move(*srcit); - } - - template - DestinationIt2 operator()(three_way_forward_t, SourceIt srcit, SourceIt srcitend, DestinationIt1 dest1it, DestinationIt2 dest2it) - { - //Destination2 range can overlap SourceIt range so avoid boost::move - while(srcit != srcitend){ - this->operator()(three_way_t(), srcit++, dest1it++, dest2it++); - } - return dest2it; - } - - template - void operator()(four_way_t, SourceIt srcit, DestinationIt1 dest1it, DestinationIt2 dest2it, DestinationIt3 dest3it) - { - *dest3it = boost::move(*dest2it); - *dest2it = boost::move(*dest1it); - *dest1it = boost::move(*srcit); - } -}; - -struct swap_op -{ - template - void operator()(SourceIt source, DestinationIt dest) - { boost::adl_move_swap(*dest, *source); } - - template - DestinationIt operator()(forward_t, SourceIt first, SourceIt last, DestinationIt dest_begin) - { return boost::adl_move_swap_ranges(first, last, dest_begin); } - - template - DestinationIt operator()(backward_t, SourceIt first, SourceIt last, DestinationIt dest_begin) - { return boost::adl_move_swap_ranges_backward(first, last, dest_begin); } - - template - void operator()(three_way_t, SourceIt srcit, DestinationIt1 dest1it, DestinationIt2 dest2it) - { - typename ::boost::movelib::iterator_traits::value_type tmp(boost::move(*dest2it)); - *dest2it = boost::move(*dest1it); - *dest1it = boost::move(*srcit); - *srcit = boost::move(tmp); - } - - template - DestinationIt2 operator()(three_way_forward_t, SourceIt srcit, SourceIt srcitend, DestinationIt1 dest1it, DestinationIt2 dest2it) - { - while(srcit != srcitend){ - this->operator()(three_way_t(), srcit++, dest1it++, dest2it++); - } - return dest2it; - } - - template - void operator()(four_way_t, SourceIt srcit, DestinationIt1 dest1it, DestinationIt2 dest2it, DestinationIt3 dest3it) - { - typename ::boost::movelib::iterator_traits::value_type tmp(boost::move(*dest3it)); - *dest3it = boost::move(*dest2it); - *dest2it = boost::move(*dest1it); - *dest1it = boost::move(*srcit); - *srcit = boost::move(tmp); - } -}; - - -}} //namespace boost::movelib - -#endif //BOOST_MOVE_ALGO_BASIC_OP diff --git a/lib/3rdParty/boost/boost/move/algo/detail/insertion_sort.hpp b/lib/3rdParty/boost/boost/move/algo/detail/insertion_sort.hpp deleted file mode 100644 index 15df35d9d..000000000 --- a/lib/3rdParty/boost/boost/move/algo/detail/insertion_sort.hpp +++ /dev/null @@ -1,127 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_INSERT_SORT_HPP -#define BOOST_MOVE_DETAIL_INSERT_SORT_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 - -namespace boost { namespace movelib{ - -// @cond - -template -void insertion_sort_op(ForwardIterator first1, ForwardIterator last1, BirdirectionalIterator first2, Compare comp, Op op) -{ - if (first1 != last1){ - BirdirectionalIterator last2 = first2; - op(first1, last2); - for (++last2; ++first1 != last1; ++last2){ - BirdirectionalIterator j2 = last2; - BirdirectionalIterator i2 = j2; - if (comp(*first1, *--i2)){ - op(i2, j2); - for (--j2; i2 != first2 && comp(*first1, *--i2); --j2) { - op(i2, j2); - } - } - op(first1, j2); - } - } -} - -template -void insertion_sort_swap(ForwardIterator first1, ForwardIterator last1, BirdirectionalIterator first2, Compare comp) -{ - insertion_sort_op(first1, last1, first2, comp, swap_op()); -} - - -template -void insertion_sort_copy(ForwardIterator first1, ForwardIterator last1, BirdirectionalIterator first2, Compare comp) -{ - insertion_sort_op(first1, last1, first2, comp, move_op()); -} - -// @endcond - -template -void insertion_sort(BirdirectionalIterator first, BirdirectionalIterator last, Compare comp) -{ - typedef typename boost::movelib::iterator_traits::value_type value_type; - if (first != last){ - BirdirectionalIterator i = first; - for (++i; i != last; ++i){ - BirdirectionalIterator j = i; - if (comp(*i, *--j)) { - value_type tmp(::boost::move(*i)); - *i = ::boost::move(*j); - for (BirdirectionalIterator k = j; k != first && comp(tmp, *--k); --j) { - *j = ::boost::move(*k); - } - *j = ::boost::move(tmp); - } - } - } -} - -template -void insertion_sort_uninitialized_copy - (BirdirectionalIterator first1, BirdirectionalIterator const last1 - , typename iterator_traits::value_type* const first2 - , Compare comp) -{ - typedef typename iterator_traits::value_type value_type; - if (first1 != last1){ - value_type* last2 = first2; - ::new(last2, boost_move_new_t()) value_type(move(*first1)); - destruct_n d(first2); - d.incr(); - for (++last2; ++first1 != last1; ++last2){ - value_type* j2 = last2; - value_type* k2 = j2; - if (comp(*first1, *--k2)){ - ::new(j2, boost_move_new_t()) value_type(move(*k2)); - d.incr(); - for (--j2; k2 != first2 && comp(*first1, *--k2); --j2) - *j2 = move(*k2); - *j2 = move(*first1); - } - else{ - ::new(j2, boost_move_new_t()) value_type(move(*first1)); - d.incr(); - } - } - d.release(); - } -} - -}} //namespace boost { namespace movelib{ - -#endif //#ifndef BOOST_MOVE_DETAIL_INSERT_SORT_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/detail/merge.hpp b/lib/3rdParty/boost/boost/move/algo/detail/merge.hpp deleted file mode 100644 index 988ffd35b..000000000 --- a/lib/3rdParty/boost/boost/move/algo/detail/merge.hpp +++ /dev/null @@ -1,637 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_MOVE_MERGE_HPP -#define BOOST_MOVE_MERGE_HPP - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace movelib { - -// @cond - -/* -template -inline Unsigned gcd(Unsigned x, Unsigned y) -{ - if(0 == ((x &(x-1)) | (y & (y-1)))){ - return x < y ? x : y; - } - else{ - do - { - Unsigned t = x % y; - x = y; - y = t; - } while (y); - return x; - } -} -*/ - -//Modified version from "An Optimal In-Place Array Rotation Algorithm", Ching-Kuang Shene -template -Unsigned gcd(Unsigned x, Unsigned y) -{ - if(0 == ((x &(x-1)) | (y & (y-1)))){ - return x < y ? x : y; - } - else{ - Unsigned z = 1; - while((!(x&1)) & (!(y&1))){ - z <<=1, x>>=1, y>>=1; - } - while(x && y){ - if(!(x&1)) - x >>=1; - else if(!(y&1)) - y >>=1; - else if(x >=y) - x = (x-y) >> 1; - else - y = (y-x) >> 1; - } - return z*(x+y); - } -} - -template -RandIt rotate_gcd(RandIt first, RandIt middle, RandIt last) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - - if(first == middle) - return last; - if(middle == last) - return first; - const size_type middle_pos = size_type(middle - first); - RandIt ret = last - middle_pos; - if (middle == ret){ - boost::adl_move_swap_ranges(first, middle, middle); - } - else{ - const size_type length = size_type(last - first); - for( RandIt it_i(first), it_gcd(it_i + gcd(length, middle_pos)) - ; it_i != it_gcd - ; ++it_i){ - value_type temp(boost::move(*it_i)); - RandIt it_j = it_i; - RandIt it_k = it_j+middle_pos; - do{ - *it_j = boost::move(*it_k); - it_j = it_k; - size_type const left = size_type(last - it_j); - it_k = left > middle_pos ? it_j + middle_pos : first + (middle_pos - left); - } while(it_k != it_i); - *it_j = boost::move(temp); - } - } - return ret; -} - -template -RandIt lower_bound - (RandIt first, const RandIt last, const T& key, Compare comp) -{ - typedef typename iterator_traits - ::size_type size_type; - size_type len = size_type(last - first); - RandIt middle; - - while (len) { - size_type step = len >> 1; - middle = first; - middle += step; - - if (comp(*middle, key)) { - first = ++middle; - len -= step + 1; - } - else{ - len = step; - } - } - return first; -} - -template -RandIt upper_bound - (RandIt first, const RandIt last, const T& key, Compare comp) -{ - typedef typename iterator_traits - ::size_type size_type; - size_type len = size_type(last - first); - RandIt middle; - - while (len) { - size_type step = len >> 1; - middle = first; - middle += step; - - if (!comp(key, *middle)) { - first = ++middle; - len -= step + 1; - } - else{ - len = step; - } - } - return first; -} - - -template -void op_merge_left( RandIt buf_first - , RandIt first1 - , RandIt const last1 - , RandIt const last2 - , Compare comp - , Op op) -{ - for(RandIt first2=last1; first2 != last2; ++buf_first){ - if(first1 == last1){ - op(forward_t(), first2, last2, buf_first); - return; - } - else if(comp(*first2, *first1)){ - op(first2, buf_first); - ++first2; - } - else{ - op(first1, buf_first); - ++first1; - } - } - if(buf_first != first1){//In case all remaining elements are in the same place - //(e.g. buffer is exactly the size of the second half - //and all elements from the second half are less) - op(forward_t(), first1, last1, buf_first); - } - else{ - buf_first = buf_first; - } -} - -// [buf_first, first1) -> buffer -// [first1, last1) merge [last1,last2) -> [buf_first,buf_first+(last2-first1)) -// Elements from buffer are moved to [last2 - (first1-buf_first), last2) -// Note: distance(buf_first, first1) >= distance(last1, last2), so no overlapping occurs -template -void merge_left - (RandIt buf_first, RandIt first1, RandIt const last1, RandIt const last2, Compare comp) -{ - op_merge_left(buf_first, first1, last1, last2, comp, move_op()); -} - -// [buf_first, first1) -> buffer -// [first1, last1) merge [last1,last2) -> [buf_first,buf_first+(last2-first1)) -// Elements from buffer are swapped to [last2 - (first1-buf_first), last2) -// Note: distance(buf_first, first1) >= distance(last1, last2), so no overlapping occurs -template -void swap_merge_left - (RandIt buf_first, RandIt first1, RandIt const last1, RandIt const last2, Compare comp) -{ - op_merge_left(buf_first, first1, last1, last2, comp, swap_op()); -} - -template -void op_merge_right - (RandIt const first1, RandIt last1, RandIt last2, RandIt buf_last, Compare comp, Op op) -{ - RandIt const first2 = last1; - while(first1 != last1){ - if(last2 == first2){ - op(backward_t(), first1, last1, buf_last); - return; - } - --last2; - --last1; - --buf_last; - if(comp(*last2, *last1)){ - op(last1, buf_last); - ++last2; - } - else{ - op(last2, buf_last); - ++last1; - } - } - if(last2 != buf_last){ //In case all remaining elements are in the same place - //(e.g. buffer is exactly the size of the first half - //and all elements from the second half are less) - op(backward_t(), first2, last2, buf_last); - } -} - -// [last2, buf_last) - buffer -// [first1, last1) merge [last1,last2) -> [first1+(buf_last-last2), buf_last) -// Note: distance[last2, buf_last) >= distance[first1, last1), so no overlapping occurs -template -void merge_right - (RandIt first1, RandIt last1, RandIt last2, RandIt buf_last, Compare comp) -{ - op_merge_right(first1, last1, last2, buf_last, comp, move_op()); -} - -// [last2, buf_last) - buffer -// [first1, last1) merge [last1,last2) -> [first1+(buf_last-last2), buf_last) -// Note: distance[last2, buf_last) >= distance[first1, last1), so no overlapping occurs -template -void swap_merge_right - (RandIt first1, RandIt last1, RandIt last2, RandIt buf_last, Compare comp) -{ - op_merge_right(first1, last1, last2, buf_last, comp, swap_op()); -} - -template -void merge_bufferless_ONlogN_recursive - (BidirIt first, BidirIt middle, BidirIt last, Distance len1, Distance len2, Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - while(1) { - //#define MERGE_BUFFERLESS_RECURSIVE_OPT - #ifndef MERGE_BUFFERLESS_RECURSIVE_OPT - if (len2 == 0) { - return; - } - - if (!len1) { - return; - } - - if ((len1 | len2) == 1) { - if (comp(*middle, *first)) - adl_move_swap(*first, *middle); - return; - } - #else - if (len2 == 0) { - return; - } - - if (!len1) { - return; - } - BidirIt middle_prev = middle; --middle_prev; - if(!comp(*middle, *middle_prev)) - return; - - while(true) { - if (comp(*middle, *first)) - break; - ++first; - if(--len1 == 1) - break; - } - - if (len1 == 1 && len2 == 1) { - //comp(*middle, *first) == true already tested in the loop - adl_move_swap(*first, *middle); - return; - } - #endif - - BidirIt first_cut = first; - BidirIt second_cut = middle; - Distance len11 = 0; - Distance len22 = 0; - if (len1 > len2) { - len11 = len1 / 2; - first_cut += len11; - second_cut = lower_bound(middle, last, *first_cut, comp); - len22 = size_type(second_cut - middle); - } - else { - len22 = len2 / 2; - second_cut += len22; - first_cut = upper_bound(first, middle, *second_cut, comp); - len11 = size_type(first_cut - first); - } - BidirIt new_middle = rotate_gcd(first_cut, middle, second_cut); - - //Avoid one recursive call doing a manual tail call elimination on the biggest range - const Distance len_internal = len11+len22; - if( len_internal < (len1 + len2 - len_internal) ) { - merge_bufferless_ONlogN_recursive(first, first_cut, new_middle, len11, len22, comp); - //merge_bufferless_recursive(new_middle, second_cut, last, len1 - len11, len2 - len22, comp); - first = new_middle; - middle = second_cut; - len1 -= len11; - len2 -= len22; - } - else { - //merge_bufferless_recursive(first, first_cut, new_middle, len11, len22, comp); - merge_bufferless_ONlogN_recursive(new_middle, second_cut, last, len1 - len11, len2 - len22, comp); - middle = first_cut; - last = new_middle; - len1 = len11; - len2 = len22; - } - } -} - -//Complexity: NlogN -template -void merge_bufferless_ONlogN(BidirIt first, BidirIt middle, BidirIt last, Compare comp) -{ - merge_bufferless_ONlogN_recursive - (first, middle, last, middle - first, last - middle, comp); -} - -//Complexity: min(len1,len2)^2 + max(len1,len2) -template -void merge_bufferless_ON2(RandIt first, RandIt middle, RandIt last, Compare comp) -{ - if((middle - first) < (last - middle)){ - while(first != middle){ - RandIt const old_last1 = middle; - middle = lower_bound(middle, last, *first, comp); - first = rotate_gcd(first, old_last1, middle); - if(middle == last){ - break; - } - do{ - ++first; - } while(first != middle && !comp(*middle, *first)); - } - } - else{ - while(middle != last){ - RandIt p = upper_bound(first, middle, last[-1], comp); - last = rotate_gcd(p, middle, last); - middle = p; - if(middle == first){ - break; - } - --p; - do{ - --last; - } while(middle != last && !comp(last[-1], *p)); - } - } -} - -template -void merge_bufferless(RandIt first, RandIt middle, RandIt last, Compare comp) -{ - //#define BOOST_ADAPTIVE_MERGE_NLOGN_MERGE - #ifdef BOOST_ADAPTIVE_MERGE_NLOGN_MERGE - merge_bufferless_ONlogN(first, middle, last, comp); - #else - merge_bufferless_ON2(first, middle, last, comp); - #endif //BOOST_ADAPTIVE_MERGE_NLOGN_MERGE -} - -template -struct antistable -{ - explicit antistable(Comp &comp) - : m_comp(comp) - {} - - template - bool operator()(const U &u, const V & v) - { return !m_comp(v, u); } - - private: - antistable & operator=(const antistable &); - Comp &m_comp; -}; - -template -class negate -{ - public: - negate() - {} - - explicit negate(Comp comp) - : m_comp(comp) - {} - - template - bool operator()(const T1& l, const T2& r) - { - return !m_comp(l, r); - } - - private: - Comp m_comp; -}; - - -template -class inverse -{ - public: - inverse() - {} - - explicit inverse(Comp comp) - : m_comp(comp) - {} - - template - bool operator()(const T1& l, const T2& r) - { - return m_comp(r, l); - } - - private: - Comp m_comp; -}; - -// [r_first, r_last) are already in the right part of the destination range. -template -void op_merge_with_right_placed - ( InputIterator first, InputIterator last - , InputOutIterator dest_first, InputOutIterator r_first, InputOutIterator r_last - , Compare comp, Op op) -{ - BOOST_ASSERT((last - first) == (r_first - dest_first)); - while ( first != last ) { - if (r_first == r_last) { - InputOutIterator end = op(forward_t(), first, last, dest_first); - BOOST_ASSERT(end == r_last); - (void)end; - return; - } - else if (comp(*r_first, *first)) { - op(r_first, dest_first); - ++r_first; - } - else { - op(first, dest_first); - ++first; - } - ++dest_first; - } - // Remaining [r_first, r_last) already in the correct place -} - -template -void swap_merge_with_right_placed - ( InputIterator first, InputIterator last - , InputOutIterator dest_first, InputOutIterator r_first, InputOutIterator r_last - , Compare comp) -{ - op_merge_with_right_placed(first, last, dest_first, r_first, r_last, comp, swap_op()); -} - -// [first, last) are already in the right part of the destination range. -template -void op_merge_with_left_placed - ( BidirOutIterator const first, BidirOutIterator last, BidirOutIterator dest_last - , BidirIterator const r_first, BidirIterator r_last - , Compare comp, Op op) -{ - BOOST_ASSERT((dest_last - last) == (r_last - r_first)); - while( r_first != r_last ) { - if(first == last) { - BidirOutIterator res = op(backward_t(), r_first, r_last, dest_last); - BOOST_ASSERT(last == res); - (void)res; - return; - } - --r_last; - --last; - if(comp(*r_last, *last)){ - ++r_last; - --dest_last; - op(last, dest_last); - } - else{ - ++last; - --dest_last; - op(r_last, dest_last); - } - } - // Remaining [first, last) already in the correct place -} - -// @endcond - -// [irst, last) are already in the right part of the destination range. -template -void merge_with_left_placed - ( BidirOutIterator const first, BidirOutIterator last, BidirOutIterator dest_last - , BidirIterator const r_first, BidirIterator r_last - , Compare comp) -{ - op_merge_with_left_placed(first, last, dest_last, r_first, r_last, comp, move_op()); -} - -// [r_first, r_last) are already in the right part of the destination range. -template -void merge_with_right_placed - ( InputIterator first, InputIterator last - , InputOutIterator dest_first, InputOutIterator r_first, InputOutIterator r_last - , Compare comp) -{ - op_merge_with_right_placed(first, last, dest_first, r_first, r_last, comp, move_op()); -} - -// [r_first, r_last) are already in the right part of the destination range. -// [dest_first, r_first) is uninitialized memory -template -void uninitialized_merge_with_right_placed - ( InputIterator first, InputIterator last - , InputOutIterator dest_first, InputOutIterator r_first, InputOutIterator r_last - , Compare comp) -{ - BOOST_ASSERT((last - first) == (r_first - dest_first)); - typedef typename iterator_traits::value_type value_type; - InputOutIterator const original_r_first = r_first; - - destruct_n d(&*dest_first); - - while ( first != last && dest_first != original_r_first ) { - if (r_first == r_last) { - for(; dest_first != original_r_first; ++dest_first, ++first){ - ::new(&*dest_first) value_type(::boost::move(*first)); - d.incr(); - } - d.release(); - InputOutIterator end = ::boost::move(first, last, original_r_first); - BOOST_ASSERT(end == r_last); - (void)end; - return; - } - else if (comp(*r_first, *first)) { - ::new(&*dest_first) value_type(::boost::move(*r_first)); - d.incr(); - ++r_first; - } - else { - ::new(&*dest_first) value_type(::boost::move(*first)); - d.incr(); - ++first; - } - ++dest_first; - } - d.release(); - merge_with_right_placed(first, last, original_r_first, r_first, r_last, comp); -} - -/* -// [r_first, r_last) are already in the right part of the destination range. -// [dest_first, r_first) is uninitialized memory -template -void uninitialized_merge_with_left_placed - ( BidirOutIterator dest_first, BidirOutIterator r_first, BidirOutIterator r_last - , BidirIterator first, BidirIterator last - , Compare comp) -{ - BOOST_ASSERT((last - first) == (r_last - r_first)); - typedef typename iterator_traits::value_type value_type; - BidirOutIterator const original_r_last = r_last; - - destruct_n d(&*dest_last); - - while ( first != last && dest_first != original_r_first ) { - if (r_first == r_last) { - for(; dest_first != original_r_first; ++dest_first, ++first){ - ::new(&*dest_first) value_type(::boost::move(*first)); - d.incr(); - } - d.release(); - BidirOutIterator end = ::boost::move(first, last, original_r_first); - BOOST_ASSERT(end == r_last); - (void)end; - return; - } - else if (comp(*r_first, *first)) { - ::new(&*dest_first) value_type(::boost::move(*r_first)); - d.incr(); - ++r_first; - } - else { - ::new(&*dest_first) value_type(::boost::move(*first)); - d.incr(); - ++first; - } - ++dest_first; - } - d.release(); - merge_with_right_placed(first, last, original_r_first, r_first, r_last, comp); -} -*/ - -} //namespace movelib { -} //namespace boost { - -#endif //#define BOOST_MOVE_MERGE_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/detail/merge_sort.hpp b/lib/3rdParty/boost/boost/move/algo/detail/merge_sort.hpp deleted file mode 100644 index 892639b05..000000000 --- a/lib/3rdParty/boost/boost/move/algo/detail/merge_sort.hpp +++ /dev/null @@ -1,139 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_MERGE_SORT_HPP -#define BOOST_MOVE_DETAIL_MERGE_SORT_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 - -namespace boost { -namespace movelib { - -// @cond - -static const unsigned MergeSortInsertionSortThreshold = 16; - -template -void inplace_stable_sort(RandIt first, RandIt last, Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - if (size_type(last - first) <= size_type(MergeSortInsertionSortThreshold)) { - insertion_sort(first, last, comp); - return; - } - RandIt middle = first + (last - first) / 2; - inplace_stable_sort(first, middle, comp); - inplace_stable_sort(middle, last, comp); - merge_bufferless_ONlogN_recursive - (first, middle, last, size_type(middle - first), size_type(last - middle), comp); -} - -// @endcond - -template -void merge_sort_copy( RandIt first, RandIt last - , RandIt2 dest, Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - - size_type const count = size_type(last - first); - if(count <= MergeSortInsertionSortThreshold){ - insertion_sort_copy(first, last, dest, comp); - } - else{ - size_type const half = count/2; - merge_sort_copy(first + half, last , dest+half , comp); - merge_sort_copy(first , first + half, first + half, comp); - merge_with_right_placed - ( first + half, first + half + half - , dest, dest+half, dest + count - , comp); - } -} - -template -void merge_sort_uninitialized_copy( RandIt first, RandIt last - , typename iterator_traits::value_type* uninitialized - , Compare comp) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - - size_type const count = size_type(last - first); - if(count <= MergeSortInsertionSortThreshold){ - insertion_sort_uninitialized_copy(first, last, uninitialized, comp); - } - else{ - size_type const half = count/2; - merge_sort_uninitialized_copy(first + half, last, uninitialized + half, comp); - destruct_n d(uninitialized+half); - d.incr(count-half); - merge_sort_copy(first, first + half, first + half, comp); - uninitialized_merge_with_right_placed - ( first + half, first + half + half - , uninitialized, uninitialized+half, uninitialized+count - , comp); - d.release(); - } -} - -template -void merge_sort( RandIt first, RandIt last, Compare comp - , typename iterator_traits::value_type* uninitialized) -{ - typedef typename iterator_traits::size_type size_type; - typedef typename iterator_traits::value_type value_type; - - size_type const count = size_type(last - first); - if(count <= MergeSortInsertionSortThreshold){ - insertion_sort(first, last, comp); - } - else{ - size_type const half = count/2; - size_type const rest = count - half; - RandIt const half_it = first + half; - RandIt const rest_it = first + rest; - - merge_sort_uninitialized_copy(half_it, last, uninitialized, comp); - destruct_n d(uninitialized); - d.incr(rest); - merge_sort_copy(first, half_it, rest_it, comp); - merge_with_right_placed - ( uninitialized, uninitialized + rest - , first, rest_it, last, antistable(comp)); - } -} - -}} //namespace boost { namespace movelib{ - -#include - -#endif //#ifndef BOOST_MOVE_DETAIL_MERGE_SORT_HPP diff --git a/lib/3rdParty/boost/boost/move/algo/move.hpp b/lib/3rdParty/boost/boost/move/algo/move.hpp deleted file mode 100644 index d35f04a39..000000000 --- a/lib/3rdParty/boost/boost/move/algo/move.hpp +++ /dev/null @@ -1,155 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_ALGO_MOVE_HPP -#define BOOST_MOVE_ALGO_MOVE_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -#include -#include -#include - -namespace boost { - -////////////////////////////////////////////////////////////////////////////// -// -// move -// -////////////////////////////////////////////////////////////////////////////// - -#if !defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - - //! Effects: Moves elements in the range [first,last) into the range [result,result + (last - - //! first)) starting from first and proceeding to last. For each non-negative integer n < (last-first), - //! performs *(result + n) = ::boost::move (*(first + n)). - //! - //! Effects: result + (last - first). - //! - //! Requires: result shall not be in the range [first,last). - //! - //! Complexity: Exactly last - first move assignments. - template // O models OutputIterator - O move(I f, I l, O result) - { - while (f != l) { - *result = ::boost::move(*f); - ++f; ++result; - } - return result; - } - - ////////////////////////////////////////////////////////////////////////////// - // - // move_backward - // - ////////////////////////////////////////////////////////////////////////////// - - //! Effects: Moves elements in the range [first,last) into the range - //! [result - (last-first),result) starting from last - 1 and proceeding to - //! first. For each positive integer n <= (last - first), - //! performs *(result - n) = ::boost::move(*(last - n)). - //! - //! Requires: result shall not be in the range [first,last). - //! - //! Returns: result - (last - first). - //! - //! Complexity: Exactly last - first assignments. - template // O models BidirectionalIterator - O move_backward(I f, I l, O result) - { - while (f != l) { - --l; --result; - *result = ::boost::move(*l); - } - return result; - } - -#else - - using ::std::move_backward; - -#endif //!defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - -////////////////////////////////////////////////////////////////////////////// -// -// uninitialized_move -// -////////////////////////////////////////////////////////////////////////////// - -//! Effects: -//! \code -//! for (; first != last; ++result, ++first) -//! new (static_cast(&*result)) -//! typename iterator_traits::value_type(boost::move(*first)); -//! \endcode -//! -//! Returns: result -template - // F models ForwardIterator -F uninitialized_move(I f, I l, F r - /// @cond -// ,typename ::boost::move_detail::enable_if::value_type> >::type* = 0 - /// @endcond - ) -{ - typedef typename boost::movelib::iterator_traits::value_type input_value_type; - - F back = r; - BOOST_TRY{ - while (f != l) { - void * const addr = static_cast(::boost::move_detail::addressof(*r)); - ::new(addr) input_value_type(::boost::move(*f)); - ++f; ++r; - } - } - BOOST_CATCH(...){ - for (; back != r; ++back){ - back->~input_value_type(); - } - BOOST_RETHROW; - } - BOOST_CATCH_END - return r; -} - -/// @cond -/* -template - // F models ForwardIterator -F uninitialized_move(I f, I l, F r, - typename ::boost::move_detail::disable_if::value_type> >::type* = 0) -{ - return std::uninitialized_copy(f, l, r); -} -*/ - -/// @endcond - -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_ALGO_MOVE_HPP diff --git a/lib/3rdParty/boost/boost/move/algorithm.hpp b/lib/3rdParty/boost/boost/move/algorithm.hpp deleted file mode 100644 index 825d7716c..000000000 --- a/lib/3rdParty/boost/boost/move/algorithm.hpp +++ /dev/null @@ -1,167 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_ALGORITHM_HPP -#define BOOST_MOVE_ALGORITHM_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -#include -#include -#include -#include - -#include //copy, copy_backward -#include //uninitialized_copy - -namespace boost { - -////////////////////////////////////////////////////////////////////////////// -// -// uninitialized_copy_or_move -// -////////////////////////////////////////////////////////////////////////////// - -namespace move_detail { - -template - // F models ForwardIterator -inline F uninitialized_move_move_iterator(I f, I l, F r -// ,typename ::boost::move_detail::enable_if< has_move_emulation_enabled >::type* = 0 -) -{ - return ::boost::uninitialized_move(f, l, r); -} -/* -template - // F models ForwardIterator -F uninitialized_move_move_iterator(I f, I l, F r, - typename ::boost::move_detail::disable_if< has_move_emulation_enabled >::type* = 0) -{ - return std::uninitialized_copy(f.base(), l.base(), r); -} -*/ -} //namespace move_detail { - -template - // F models ForwardIterator -inline F uninitialized_copy_or_move(I f, I l, F r, - typename ::boost::move_detail::enable_if< move_detail::is_move_iterator >::type* = 0) -{ - return ::boost::move_detail::uninitialized_move_move_iterator(f, l, r); -} - -////////////////////////////////////////////////////////////////////////////// -// -// copy_or_move -// -////////////////////////////////////////////////////////////////////////////// - -namespace move_detail { - -template - // F models ForwardIterator -inline F move_move_iterator(I f, I l, F r -// ,typename ::boost::move_detail::enable_if< has_move_emulation_enabled >::type* = 0 -) -{ - return ::boost::move(f, l, r); -} -/* -template - // F models ForwardIterator -F move_move_iterator(I f, I l, F r, - typename ::boost::move_detail::disable_if< has_move_emulation_enabled >::type* = 0) -{ - return std::copy(f.base(), l.base(), r); -} -*/ - -} //namespace move_detail { - -template - // F models ForwardIterator -inline F copy_or_move(I f, I l, F r, - typename ::boost::move_detail::enable_if< move_detail::is_move_iterator >::type* = 0) -{ - return ::boost::move_detail::move_move_iterator(f, l, r); -} - -/// @endcond - -//! Effects: -//! \code -//! for (; first != last; ++result, ++first) -//! new (static_cast(&*result)) -//! typename iterator_traits::value_type(*first); -//! \endcode -//! -//! Returns: result -//! -//! Note: This function is provided because -//! std::uninitialized_copy from some STL implementations -//! is not compatible with move_iterator -template - // F models ForwardIterator -inline F uninitialized_copy_or_move(I f, I l, F r - /// @cond - ,typename ::boost::move_detail::disable_if< move_detail::is_move_iterator >::type* = 0 - /// @endcond - ) -{ - return std::uninitialized_copy(f, l, r); -} - -//! Effects: -//! \code -//! for (; first != last; ++result, ++first) -//! *result = *first; -//! \endcode -//! -//! Returns: result -//! -//! Note: This function is provided because -//! std::uninitialized_copy from some STL implementations -//! is not compatible with move_iterator -template - // F models ForwardIterator -inline F copy_or_move(I f, I l, F r - /// @cond - ,typename ::boost::move_detail::disable_if< move_detail::is_move_iterator >::type* = 0 - /// @endcond - ) -{ - return std::copy(f, l, r); -} - -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_ALGORITHM_HPP diff --git a/lib/3rdParty/boost/boost/move/core.hpp b/lib/3rdParty/boost/boost/move/core.hpp deleted file mode 100644 index 1dd8a8c27..000000000 --- a/lib/3rdParty/boost/boost/move/core.hpp +++ /dev/null @@ -1,502 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file -//! This header implements macros to define movable classes and -//! move-aware functions - -#ifndef BOOST_MOVE_CORE_HPP -#define BOOST_MOVE_CORE_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include - -// @cond - -//boost_move_no_copy_constructor_or_assign typedef -//used to detect noncopyable types for other Boost libraries. -#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - #define BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \ - private:\ - TYPE(TYPE &);\ - TYPE& operator=(TYPE &);\ - public:\ - typedef int boost_move_no_copy_constructor_or_assign; \ - private:\ - // -#else - #define BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \ - public:\ - TYPE(TYPE const &) = delete;\ - TYPE& operator=(TYPE const &) = delete;\ - public:\ - typedef int boost_move_no_copy_constructor_or_assign; \ - private:\ - // -#endif //BOOST_NO_CXX11_DELETED_FUNCTIONS - -// @endcond - -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #include - - #if defined(BOOST_MOVE_ADDRESS_SANITIZER_ON) - #define BOOST_MOVE_TO_RV_CAST(RV_TYPE, ARG) reinterpret_cast(ARG) - #else - #define BOOST_MOVE_TO_RV_CAST(RV_TYPE, ARG) static_cast(ARG) - #endif - - //Move emulation rv breaks standard aliasing rules so add workarounds for some compilers - #if defined(__GNUC__) && (__GNUC__ >= 4) && \ - (\ - defined(BOOST_GCC) || \ - (defined(BOOST_INTEL) && (BOOST_INTEL_CXX_VERSION >= 1300)) \ - ) - #define BOOST_MOVE_ATTRIBUTE_MAY_ALIAS __attribute__((__may_alias__)) - #else - #define BOOST_MOVE_ATTRIBUTE_MAY_ALIAS - #endif - - namespace boost { - - ////////////////////////////////////////////////////////////////////////////// - // - // struct rv - // - ////////////////////////////////////////////////////////////////////////////// - template - class rv - : public ::boost::move_detail::if_c - < ::boost::move_detail::is_class::value - , T - , ::boost::move_detail::nat - >::type - { - rv(); - ~rv() throw(); - rv(rv const&); - void operator=(rv const&); - } BOOST_MOVE_ATTRIBUTE_MAY_ALIAS; - - - ////////////////////////////////////////////////////////////////////////////// - // - // is_rv - // - ////////////////////////////////////////////////////////////////////////////// - - namespace move_detail { - - template - struct is_rv - //Derive from integral constant because some Boost code assummes it has - //a "type" internal typedef - : integral_constant::value > - {}; - - template - struct is_not_rv - { - static const bool value = !is_rv::value; - }; - - } //namespace move_detail { - - ////////////////////////////////////////////////////////////////////////////// - // - // has_move_emulation_enabled - // - ////////////////////////////////////////////////////////////////////////////// - template - struct has_move_emulation_enabled - : ::boost::move_detail::has_move_emulation_enabled_impl - {}; - - template - struct has_move_emulation_disabled - { - static const bool value = !::boost::move_detail::has_move_emulation_enabled_impl::value; - }; - - } //namespace boost { - - #define BOOST_RV_REF(TYPE)\ - ::boost::rv< TYPE >& \ - // - - #define BOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\ - ::boost::rv< TYPE >& \ - // - - #define BOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\ - ::boost::rv< TYPE >& \ - // - - #define BOOST_RV_REF_BEG\ - ::boost::rv< \ - // - - #define BOOST_RV_REF_END\ - >& \ - // - - #define BOOST_RV_REF_BEG_IF_CXX11 \ - \ - // - - #define BOOST_RV_REF_END_IF_CXX11 \ - \ - // - - #define BOOST_FWD_REF(TYPE)\ - const TYPE & \ - // - - #define BOOST_COPY_ASSIGN_REF(TYPE)\ - const ::boost::rv< TYPE >& \ - // - - #define BOOST_COPY_ASSIGN_REF_BEG \ - const ::boost::rv< \ - // - - #define BOOST_COPY_ASSIGN_REF_END \ - >& \ - // - - #define BOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\ - const ::boost::rv< TYPE >& \ - // - - #define BOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\ - const ::boost::rv< TYPE >& \ - // - - #define BOOST_CATCH_CONST_RLVALUE(TYPE)\ - const ::boost::rv< TYPE >& \ - // - - namespace boost { - namespace move_detail { - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < ::boost::move_detail::is_lvalue_reference::value || - !::boost::has_move_emulation_enabled::value - , T&>::type - move_return(T& x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < !::boost::move_detail::is_lvalue_reference::value && - ::boost::has_move_emulation_enabled::value - , ::boost::rv&>::type - move_return(T& x) BOOST_NOEXCEPT - { - return *BOOST_MOVE_TO_RV_CAST(::boost::rv*, ::boost::move_detail::addressof(x)); - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < !::boost::move_detail::is_lvalue_reference::value && - ::boost::has_move_emulation_enabled::value - , ::boost::rv&>::type - move_return(::boost::rv& x) BOOST_NOEXCEPT - { - return x; - } - - } //namespace move_detail { - } //namespace boost { - - #define BOOST_MOVE_RET(RET_TYPE, REF)\ - boost::move_detail::move_return< RET_TYPE >(REF) - // - - #define BOOST_MOVE_BASE(BASE_TYPE, ARG) \ - ::boost::move((BASE_TYPE&)(ARG)) - // - - ////////////////////////////////////////////////////////////////////////////// - // - // BOOST_MOVABLE_BUT_NOT_COPYABLE - // - ////////////////////////////////////////////////////////////////////////////// - #define BOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\ - BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\ - public:\ - BOOST_MOVE_FORCEINLINE operator ::boost::rv&() \ - { return *BOOST_MOVE_TO_RV_CAST(::boost::rv*, this); }\ - BOOST_MOVE_FORCEINLINE operator const ::boost::rv&() const \ - { return *BOOST_MOVE_TO_RV_CAST(const ::boost::rv*, this); }\ - private:\ - // - - ////////////////////////////////////////////////////////////////////////////// - // - // BOOST_COPYABLE_AND_MOVABLE - // - ////////////////////////////////////////////////////////////////////////////// - - #define BOOST_COPYABLE_AND_MOVABLE(TYPE)\ - public:\ - BOOST_MOVE_FORCEINLINE TYPE& operator=(TYPE &t)\ - { this->operator=(const_cast(t)); return *this;}\ - public:\ - BOOST_MOVE_FORCEINLINE operator ::boost::rv&() \ - { return *BOOST_MOVE_TO_RV_CAST(::boost::rv*, this); }\ - BOOST_MOVE_FORCEINLINE operator const ::boost::rv&() const \ - { return *BOOST_MOVE_TO_RV_CAST(const ::boost::rv*, this); }\ - private:\ - // - - #define BOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\ - public:\ - BOOST_MOVE_FORCEINLINE operator ::boost::rv&() \ - { return *BOOST_MOVE_TO_RV_CAST(::boost::rv*, this); }\ - BOOST_MOVE_FORCEINLINE operator const ::boost::rv&() const \ - { return *BOOST_MOVE_TO_RV_CAST(const ::boost::rv*, this); }\ - private:\ - // - - namespace boost{ - namespace move_detail{ - - template< class T> - struct forward_type - { typedef const T &type; }; - - template< class T> - struct forward_type< boost::rv > - { typedef T type; }; - - }} - -#else //BOOST_NO_CXX11_RVALUE_REFERENCES - - //! This macro marks a type as movable but not copyable, disabling copy construction - //! and assignment. The user will need to write a move constructor/assignment as explained - //! in the documentation to fully write a movable but not copyable class. - #define BOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\ - BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\ - public:\ - typedef int boost_move_emulation_t;\ - private:\ - // - - //! This macro marks a type as copyable and movable. - //! The user will need to write a move constructor/assignment and a copy assignment - //! as explained in the documentation to fully write a copyable and movable class. - #define BOOST_COPYABLE_AND_MOVABLE(TYPE)\ - // - - #if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - #define BOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\ - // - #endif //#if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - namespace boost { - - //!This trait yields to a compile-time true boolean if T was marked as - //!BOOST_MOVABLE_BUT_NOT_COPYABLE or BOOST_COPYABLE_AND_MOVABLE and - //!rvalue references are not available on the platform. False otherwise. - template - struct has_move_emulation_enabled - { - static const bool value = false; - }; - - template - struct has_move_emulation_disabled - { - static const bool value = true; - }; - - } //namespace boost{ - - //!This macro is used to achieve portable syntax in move - //!constructors and assignments for classes marked as - //!BOOST_COPYABLE_AND_MOVABLE or BOOST_MOVABLE_BUT_NOT_COPYABLE - #define BOOST_RV_REF(TYPE)\ - TYPE && \ - // - - //!This macro is used to achieve portable syntax in move - //!constructors and assignments for template classes marked as - //!BOOST_COPYABLE_AND_MOVABLE or BOOST_MOVABLE_BUT_NOT_COPYABLE. - //!As macros have problems with comma-separated template arguments, - //!the template argument must be preceded with BOOST_RV_REF_BEG - //!and ended with BOOST_RV_REF_END - #define BOOST_RV_REF_BEG\ - \ - // - - //!This macro is used to achieve portable syntax in move - //!constructors and assignments for template classes marked as - //!BOOST_COPYABLE_AND_MOVABLE or BOOST_MOVABLE_BUT_NOT_COPYABLE. - //!As macros have problems with comma-separated template arguments, - //!the template argument must be preceded with BOOST_RV_REF_BEG - //!and ended with BOOST_RV_REF_END - #define BOOST_RV_REF_END\ - && \ - // - - //!This macro expands to BOOST_RV_REF_BEG if BOOST_NO_CXX11_RVALUE_REFERENCES - //!is not defined, empty otherwise - #define BOOST_RV_REF_BEG_IF_CXX11 \ - BOOST_RV_REF_BEG \ - // - - //!This macro expands to BOOST_RV_REF_END if BOOST_NO_CXX11_RVALUE_REFERENCES - //!is not defined, empty otherwise - #define BOOST_RV_REF_END_IF_CXX11 \ - BOOST_RV_REF_END \ - // - - //!This macro is used to achieve portable syntax in copy - //!assignment for classes marked as BOOST_COPYABLE_AND_MOVABLE. - #define BOOST_COPY_ASSIGN_REF(TYPE)\ - const TYPE & \ - // - - //! This macro is used to implement portable perfect forwarding - //! as explained in the documentation. - #define BOOST_FWD_REF(TYPE)\ - TYPE && \ - // - - #if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #define BOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\ - TYPE && \ - // - - #define BOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\ - TYPE && \ - // - - #define BOOST_COPY_ASSIGN_REF_BEG \ - const \ - // - - #define BOOST_COPY_ASSIGN_REF_END \ - & \ - // - - #define BOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\ - const TYPE & \ - // - - #define BOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\ - const TYPE& \ - // - - #define BOOST_CATCH_CONST_RLVALUE(TYPE)\ - const TYPE & \ - // - - #endif //#if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #if !defined(BOOST_MOVE_MSVC_AUTO_MOVE_RETURN_BUG) || defined(BOOST_MOVE_DOXYGEN_INVOKED) - - //!This macro is used to achieve portable move return semantics. - //!The C++11 Standard allows implicit move returns when the object to be returned - //!is designated by a lvalue and: - //! - The criteria for elision of a copy operation are met OR - //! - The criteria would be met save for the fact that the source object is a function parameter - //! - //!For C++11 conforming compilers this macros only yields to REF: - //! return BOOST_MOVE_RET(RET_TYPE, REF); -> return REF; - //! - //!For compilers without rvalue references - //!this macro does an explicit move if the move emulation is activated - //!and the return type (RET_TYPE) is not a reference. - //! - //!For non-conforming compilers with rvalue references like Visual 2010 & 2012, - //!an explicit move is performed if RET_TYPE is not a reference. - //! - //! Caution: When using this macro in non-conforming or C++03 - //!compilers, a move will be performed even if the C++11 standard does not allow it - //!(e.g. returning a static variable). The user is responsible for using this macro - //!only to return local objects that met C++11 criteria. - #define BOOST_MOVE_RET(RET_TYPE, REF)\ - REF - // - - #else //!defined(BOOST_MOVE_MSVC_AUTO_MOVE_RETURN_BUG) || defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #include - - namespace boost { - namespace move_detail { - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < ::boost::move_detail::is_lvalue_reference::value - , T&>::type - move_return(T& x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < !::boost::move_detail::is_lvalue_reference::value - , Ret && >::type - move_return(T&& t) BOOST_NOEXCEPT - { - return static_cast< Ret&& >(t); - } - - } //namespace move_detail { - } //namespace boost { - - #define BOOST_MOVE_RET(RET_TYPE, REF)\ - boost::move_detail::move_return< RET_TYPE >(REF) - // - - #endif //!defined(BOOST_MOVE_MSVC_AUTO_MOVE_RETURN_BUG) || defined(BOOST_MOVE_DOXYGEN_INVOKED) - - //!This macro is used to achieve portable optimal move constructors. - //! - //!When implementing the move constructor, in C++03 compilers the moved-from argument must be - //!cast to the base type before calling `::boost::move()` due to rvalue reference limitations. - //! - //!In C++11 compilers the cast from a rvalue reference of a derived type to a rvalue reference of - //!a base type is implicit. - #define BOOST_MOVE_BASE(BASE_TYPE, ARG) \ - ::boost::move((BASE_TYPE&)(ARG)) - // - - namespace boost { - namespace move_detail { - - template< class T> struct forward_type { typedef T type; }; - - }} - -#endif //BOOST_NO_CXX11_RVALUE_REFERENCES - -#include - -#endif //#ifndef BOOST_MOVE_CORE_HPP diff --git a/lib/3rdParty/boost/boost/move/default_delete.hpp b/lib/3rdParty/boost/boost/move/default_delete.hpp deleted file mode 100644 index 1c26ed924..000000000 --- a/lib/3rdParty/boost/boost/move/default_delete.hpp +++ /dev/null @@ -1,201 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_DEFAULT_DELETE_HPP_INCLUDED -#define BOOST_MOVE_DEFAULT_DELETE_HPP_INCLUDED - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include -#include -#include - -#include //For std::size_t,std::nullptr_t - -//!\file -//! Describes the default deleter (destruction policy) of unique_ptr: default_delete. - -namespace boost{ -// @cond -namespace move_upd { - -namespace bmupmu = ::boost::move_upmu; - -//////////////////////////////////////// -//// enable_def_del -//////////////////////////////////////// - -//compatible with a pointer type T*: -//When either Y* is convertible to T* -//Y is U[N] and T is U cv [] -template -struct def_del_compatible_cond - : bmupmu::is_convertible -{}; - -template -struct def_del_compatible_cond - : def_del_compatible_cond -{}; - -template -struct enable_def_del - : bmupmu::enable_if_c::value, Type> -{}; - -//////////////////////////////////////// -//// enable_defdel_call -//////////////////////////////////////// - -//When 2nd is T[N], 1st(*)[N] shall be convertible to T(*)[N]; -//When 2nd is T[], 1st(*)[] shall be convertible to T(*)[]; -//Otherwise, 1st* shall be convertible to 2nd*. - -template -struct enable_defdel_call - : public enable_def_del -{}; - -template -struct enable_defdel_call - : public enable_def_del -{}; - -template -struct enable_defdel_call - : public enable_def_del -{}; - -//////////////////////////////////////// -//// Some bool literal zero conversion utilities -//////////////////////////////////////// - -struct bool_conversion {int for_bool; int for_arg(); }; -typedef int bool_conversion::* explicit_bool_arg; - -#if !defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_CXX11_DECLTYPE) - typedef decltype(nullptr) nullptr_type; -#elif !defined(BOOST_NO_CXX11_NULLPTR) - typedef std::nullptr_t nullptr_type; -#else - typedef int (bool_conversion::*nullptr_type)(); -#endif - -} //namespace move_upd { -// @endcond - -namespace movelib { - -namespace bmupd = boost::move_upd; -namespace bmupmu = ::boost::move_upmu; - -//!The class template default_delete serves as the default deleter -//!(destruction policy) for the class template unique_ptr. -//! -//! \tparam T The type to be deleted. It may be an incomplete type -template -struct default_delete -{ - //! Default constructor. - //! - BOOST_CONSTEXPR default_delete() - //Avoid "defaulted on its first declaration must not have an exception-specification" error for GCC 4.6 - #if !defined(BOOST_GCC) || (BOOST_GCC < 40600 && BOOST_GCC >= 40700) || defined(BOOST_MOVE_DOXYGEN_INVOKED) - BOOST_NOEXCEPT - #endif - #if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_MOVE_DOXYGEN_INVOKED) - = default; - #else - {}; - #endif - - #if defined(BOOST_MOVE_DOXYGEN_INVOKED) - //! Trivial copy constructor - //! - default_delete(const default_delete&) BOOST_NOEXCEPT = default; - //! Trivial assignment - //! - default_delete &operator=(const default_delete&) BOOST_NOEXCEPT = default; - #else - typedef typename bmupmu::remove_extent::type element_type; - #endif - - //! Effects: Constructs a default_delete object from another default_delete object. - //! - //! Remarks: This constructor shall not participate in overload resolution unless: - //! - If T is not an array type and U* is implicitly convertible to T*. - //! - If T is an array type and U* is a more CV qualified pointer to remove_extent::type. - template - default_delete(const default_delete& - BOOST_MOVE_DOCIGN(BOOST_MOVE_I typename bmupd::enable_def_del::type* =0) - ) BOOST_NOEXCEPT - { - //If T is not an array type, U derives from T - //and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor::value )); - } - - //! Effects: Constructs a default_delete object from another default_delete object. - //! - //! Remarks: This constructor shall not participate in overload resolution unless: - //! - If T is not an array type and U* is implicitly convertible to T*. - //! - If T is an array type and U* is a more CV qualified pointer to remove_extent::type. - template - BOOST_MOVE_DOC1ST(default_delete&, - typename bmupd::enable_def_del::type) - operator=(const default_delete&) BOOST_NOEXCEPT - { - //If T is not an array type, U derives from T - //and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor::value )); - return *this; - } - - //! Effects: if T is not an array type, calls delete on static_cast(ptr), - //! otherwise calls delete[] on static_cast::type*>(ptr). - //! - //! Remarks: If U is an incomplete type, the program is ill-formed. - //! This operator shall not participate in overload resolution unless: - //! - T is not an array type and U* is convertible to T*, OR - //! - T is an array type, and remove_cv::type is the same type as - //! remove_cv::type>::type and U* is convertible to remove_extent::type*. - template - BOOST_MOVE_DOC1ST(void, typename bmupd::enable_defdel_call::type) - operator()(U* ptr) const BOOST_NOEXCEPT - { - //U must be a complete type - BOOST_STATIC_ASSERT(sizeof(U) > 0); - //If T is not an array type, U derives from T - //and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor::value )); - element_type * const p = static_cast(ptr); - bmupmu::is_array::value ? delete [] p : delete p; - } - - //! Effects: Same as (*this)(static_cast(nullptr)). - //! - void operator()(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) const BOOST_NOEXCEPT - { BOOST_STATIC_ASSERT(sizeof(element_type) > 0); } -}; - -} //namespace movelib { -} //namespace boost{ - -#include - -#endif //#ifndef BOOST_MOVE_DEFAULT_DELETE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/move/detail/config_begin.hpp b/lib/3rdParty/boost/boost/move/detail/config_begin.hpp deleted file mode 100644 index 637eb158b..000000000 --- a/lib/3rdParty/boost/boost/move/detail/config_begin.hpp +++ /dev/null @@ -1,21 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_CONFIG_HPP -#include -#endif - -#ifdef BOOST_MSVC -# pragma warning (push) -# pragma warning (disable : 4324) // structure was padded due to __declspec(align()) -# pragma warning (disable : 4675) // "function": resolved overload was found by argument-dependent lookup -# pragma warning (disable : 4996) // "function": was declared deprecated (_CRT_SECURE_NO_DEPRECATE/_SCL_SECURE_NO_WARNINGS) -# pragma warning (disable : 4714) // "function": marked as __forceinline not inlined -# pragma warning (disable : 4127) // conditional expression is constant -#endif diff --git a/lib/3rdParty/boost/boost/move/detail/config_end.hpp b/lib/3rdParty/boost/boost/move/detail/config_end.hpp deleted file mode 100644 index 71a99e93c..000000000 --- a/lib/3rdParty/boost/boost/move/detail/config_end.hpp +++ /dev/null @@ -1,12 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#if defined BOOST_MSVC -# pragma warning (pop) -#endif diff --git a/lib/3rdParty/boost/boost/move/detail/destruct_n.hpp b/lib/3rdParty/boost/boost/move/detail/destruct_n.hpp deleted file mode 100644 index 06f1f589e..000000000 --- a/lib/3rdParty/boost/boost/move/detail/destruct_n.hpp +++ /dev/null @@ -1,67 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2015-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_DESTRUCT_N_HPP -#define BOOST_MOVE_DETAIL_DESTRUCT_N_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -namespace boost { -namespace movelib{ - -template -class destruct_n -{ - public: - explicit destruct_n(T *raw) - : m_ptr(raw), m_size() - {} - - void incr() - { - ++m_size; - } - - void incr(std::size_t n) - { - m_size += n; - } - - void release() - { - m_size = 0u; - m_ptr = 0; - } - - ~destruct_n() - { - while(m_size--){ - m_ptr[m_size].~T(); - } - } - private: - T *m_ptr; - std::size_t m_size; -}; - -}} //namespace boost { namespace movelib{ - -#endif //#ifndef BOOST_MOVE_DETAIL_DESTRUCT_N_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/fwd_macros.hpp b/lib/3rdParty/boost/boost/move/detail/fwd_macros.hpp deleted file mode 100644 index 713243678..000000000 --- a/lib/3rdParty/boost/boost/move/detail/fwd_macros.hpp +++ /dev/null @@ -1,856 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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_MOVE_DETAIL_FWD_MACROS_HPP -#define BOOST_MOVE_DETAIL_FWD_MACROS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -namespace boost { -namespace move_detail { - -template struct unvoid { typedef T type; }; -template <> struct unvoid { struct type { }; }; -template <> struct unvoid { struct type { }; }; - -} //namespace move_detail { -} //namespace boost { - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -#if defined(BOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG) - -namespace boost { -namespace move_detail { - - template - struct mref; - - template - struct mref - { - explicit mref(T &t) : t_(t){} - T &t_; - T & get() { return t_; } - }; - - template - struct mref - { - explicit mref(T &&t) : t_(t) {} - T &t_; - T &&get() { return ::boost::move(t_); } - }; - -} //namespace move_detail { -} //namespace boost { - -#endif //BOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG -#endif //!defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -//BOOST_MOVE_REPEATN(MACRO) -#define BOOST_MOVE_REPEAT(x, MACRO) BOOST_MOVE_REPEAT_I(x,MACRO) -#define BOOST_MOVE_REPEAT_I(x, MACRO) BOOST_MOVE_REPEAT##x(MACRO) -#define BOOST_MOVE_REPEAT0(MACRO) -#define BOOST_MOVE_REPEAT1(MACRO) MACRO -#define BOOST_MOVE_REPEAT2(MACRO) BOOST_MOVE_REPEAT1(MACRO), MACRO -#define BOOST_MOVE_REPEAT3(MACRO) BOOST_MOVE_REPEAT2(MACRO), MACRO -#define BOOST_MOVE_REPEAT4(MACRO) BOOST_MOVE_REPEAT3(MACRO), MACRO -#define BOOST_MOVE_REPEAT5(MACRO) BOOST_MOVE_REPEAT4(MACRO), MACRO -#define BOOST_MOVE_REPEAT6(MACRO) BOOST_MOVE_REPEAT5(MACRO), MACRO -#define BOOST_MOVE_REPEAT7(MACRO) BOOST_MOVE_REPEAT6(MACRO), MACRO -#define BOOST_MOVE_REPEAT8(MACRO) BOOST_MOVE_REPEAT7(MACRO), MACRO -#define BOOST_MOVE_REPEAT9(MACRO) BOOST_MOVE_REPEAT8(MACRO), MACRO -#define BOOST_MOVE_REPEAT10(MACRO) BOOST_MOVE_REPEAT9(MACRO), MACRO -#define BOOST_MOVE_REPEAT11(MACRO) BOOST_MOVE_REPEAT10(MACRO), MACRO -#define BOOST_MOVE_REPEAT12(MACRO) BOOST_MOVE_REPEAT11(MACRO), MACRO -#define BOOST_MOVE_REPEAT13(MACRO) BOOST_MOVE_REPEAT12(MACRO), MACRO - -//BOOST_MOVE_FWDN -#define BOOST_MOVE_FWD0 -#define BOOST_MOVE_FWD1 ::boost::forward(p0) -#define BOOST_MOVE_FWD2 BOOST_MOVE_FWD1, ::boost::forward(p1) -#define BOOST_MOVE_FWD3 BOOST_MOVE_FWD2, ::boost::forward(p2) -#define BOOST_MOVE_FWD4 BOOST_MOVE_FWD3, ::boost::forward(p3) -#define BOOST_MOVE_FWD5 BOOST_MOVE_FWD4, ::boost::forward(p4) -#define BOOST_MOVE_FWD6 BOOST_MOVE_FWD5, ::boost::forward(p5) -#define BOOST_MOVE_FWD7 BOOST_MOVE_FWD6, ::boost::forward(p6) -#define BOOST_MOVE_FWD8 BOOST_MOVE_FWD7, ::boost::forward(p7) -#define BOOST_MOVE_FWD9 BOOST_MOVE_FWD8, ::boost::forward(p8) - -//BOOST_MOVE_FWDQN -#define BOOST_MOVE_FWDQ0 -#define BOOST_MOVE_FWDQ1 ::boost::forward(q0) -#define BOOST_MOVE_FWDQ2 BOOST_MOVE_FWDQ1, ::boost::forward(q1) -#define BOOST_MOVE_FWDQ3 BOOST_MOVE_FWDQ2, ::boost::forward(q2) -#define BOOST_MOVE_FWDQ4 BOOST_MOVE_FWDQ3, ::boost::forward(q3) -#define BOOST_MOVE_FWDQ5 BOOST_MOVE_FWDQ4, ::boost::forward(q4) -#define BOOST_MOVE_FWDQ6 BOOST_MOVE_FWDQ5, ::boost::forward(q5) -#define BOOST_MOVE_FWDQ7 BOOST_MOVE_FWDQ6, ::boost::forward(q6) -#define BOOST_MOVE_FWDQ8 BOOST_MOVE_FWDQ7, ::boost::forward(q7) -#define BOOST_MOVE_FWDQ9 BOOST_MOVE_FWDQ8, ::boost::forward(q8) - -//BOOST_MOVE_TMPL_GETN -#define BOOST_MOVE_TMPL_GET0 -#define BOOST_MOVE_TMPL_GET1 p.template get<0>() -#define BOOST_MOVE_TMPL_GET2 BOOST_MOVE_TMPL_GET1, p.template get<1>() -#define BOOST_MOVE_TMPL_GET3 BOOST_MOVE_TMPL_GET2, p.template get<2>() -#define BOOST_MOVE_TMPL_GET4 BOOST_MOVE_TMPL_GET3, p.template get<3>() -#define BOOST_MOVE_TMPL_GET5 BOOST_MOVE_TMPL_GET4, p.template get<4>() -#define BOOST_MOVE_TMPL_GET6 BOOST_MOVE_TMPL_GET5, p.template get<5>() -#define BOOST_MOVE_TMPL_GET7 BOOST_MOVE_TMPL_GET6, p.template get<6>() -#define BOOST_MOVE_TMPL_GET8 BOOST_MOVE_TMPL_GET7, p.template get<7>() -#define BOOST_MOVE_TMPL_GET9 BOOST_MOVE_TMPL_GET8, p.template get<8>() - -//BOOST_MOVE_TMPL_GETQN -#define BOOST_MOVE_TMPL_GETQ0 -#define BOOST_MOVE_TMPL_GETQ1 q.template get<0>() -#define BOOST_MOVE_TMPL_GETQ2 BOOST_MOVE_TMPL_GETQ1, q.template get<1>() -#define BOOST_MOVE_TMPL_GETQ3 BOOST_MOVE_TMPL_GETQ2, q.template get<2>() -#define BOOST_MOVE_TMPL_GETQ4 BOOST_MOVE_TMPL_GETQ3, q.template get<3>() -#define BOOST_MOVE_TMPL_GETQ5 BOOST_MOVE_TMPL_GETQ4, q.template get<4>() -#define BOOST_MOVE_TMPL_GETQ6 BOOST_MOVE_TMPL_GETQ5, q.template get<5>() -#define BOOST_MOVE_TMPL_GETQ7 BOOST_MOVE_TMPL_GETQ6, q.template get<6>() -#define BOOST_MOVE_TMPL_GETQ8 BOOST_MOVE_TMPL_GETQ7, q.template get<7>() -#define BOOST_MOVE_TMPL_GETQ9 BOOST_MOVE_TMPL_GETQ8, q.template get<8>() - -//BOOST_MOVE_GET_IDXN -#define BOOST_MOVE_GET_IDX0 -#define BOOST_MOVE_GET_IDX1 get<0>(p) -#define BOOST_MOVE_GET_IDX2 BOOST_MOVE_GET_IDX1, get<1>(p) -#define BOOST_MOVE_GET_IDX3 BOOST_MOVE_GET_IDX2, get<2>(p) -#define BOOST_MOVE_GET_IDX4 BOOST_MOVE_GET_IDX3, get<3>(p) -#define BOOST_MOVE_GET_IDX5 BOOST_MOVE_GET_IDX4, get<4>(p) -#define BOOST_MOVE_GET_IDX6 BOOST_MOVE_GET_IDX5, get<5>(p) -#define BOOST_MOVE_GET_IDX7 BOOST_MOVE_GET_IDX6, get<6>(p) -#define BOOST_MOVE_GET_IDX8 BOOST_MOVE_GET_IDX7, get<7>(p) -#define BOOST_MOVE_GET_IDX9 BOOST_MOVE_GET_IDX8, get<8>(p) - -//BOOST_MOVE_GET_IDXQN -#define BOOST_MOVE_GET_IDXQ0 -#define BOOST_MOVE_GET_IDXQ1 get<0>(q) -#define BOOST_MOVE_GET_IDXQ2 BOOST_MOVE_GET_IDXQ1, get<1>(q) -#define BOOST_MOVE_GET_IDXQ3 BOOST_MOVE_GET_IDXQ2, get<2>(q) -#define BOOST_MOVE_GET_IDXQ4 BOOST_MOVE_GET_IDXQ3, get<3>(q) -#define BOOST_MOVE_GET_IDXQ5 BOOST_MOVE_GET_IDXQ4, get<4>(q) -#define BOOST_MOVE_GET_IDXQ6 BOOST_MOVE_GET_IDXQ5, get<5>(q) -#define BOOST_MOVE_GET_IDXQ7 BOOST_MOVE_GET_IDXQ6, get<6>(q) -#define BOOST_MOVE_GET_IDXQ8 BOOST_MOVE_GET_IDXQ7, get<7>(q) -#define BOOST_MOVE_GET_IDXQ9 BOOST_MOVE_GET_IDXQ8, get<8>(q) - -//BOOST_MOVE_ARGN -#define BOOST_MOVE_ARG0 -#define BOOST_MOVE_ARG1 p0 -#define BOOST_MOVE_ARG2 BOOST_MOVE_ARG1, p1 -#define BOOST_MOVE_ARG3 BOOST_MOVE_ARG2, p2 -#define BOOST_MOVE_ARG4 BOOST_MOVE_ARG3, p3 -#define BOOST_MOVE_ARG5 BOOST_MOVE_ARG4, p4 -#define BOOST_MOVE_ARG6 BOOST_MOVE_ARG5, p5 -#define BOOST_MOVE_ARG7 BOOST_MOVE_ARG6, p6 -#define BOOST_MOVE_ARG8 BOOST_MOVE_ARG7, p7 -#define BOOST_MOVE_ARG9 BOOST_MOVE_ARG8, p8 - -//BOOST_MOVE_ARGQN -#define BOOST_MOVE_ARGQ0 -#define BOOST_MOVE_ARGQ1 q0 -#define BOOST_MOVE_ARGQ2 BOOST_MOVE_ARGQ1, q1 -#define BOOST_MOVE_ARGQ3 BOOST_MOVE_ARGQ2, q2 -#define BOOST_MOVE_ARGQ4 BOOST_MOVE_ARGQ3, q3 -#define BOOST_MOVE_ARGQ5 BOOST_MOVE_ARGQ4, q4 -#define BOOST_MOVE_ARGQ6 BOOST_MOVE_ARGQ5, q5 -#define BOOST_MOVE_ARGQ7 BOOST_MOVE_ARGQ6, q6 -#define BOOST_MOVE_ARGQ8 BOOST_MOVE_ARGQ7, q7 -#define BOOST_MOVE_ARGQ9 BOOST_MOVE_ARGQ8, q8 - -//BOOST_MOVE_DECLVALN -#define BOOST_MOVE_DECLVAL0 -#define BOOST_MOVE_DECLVAL1 ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL2 BOOST_MOVE_DECLVAL1, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL3 BOOST_MOVE_DECLVAL2, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL4 BOOST_MOVE_DECLVAL3, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL5 BOOST_MOVE_DECLVAL4, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL6 BOOST_MOVE_DECLVAL5, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL7 BOOST_MOVE_DECLVAL6, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL8 BOOST_MOVE_DECLVAL7, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVAL9 BOOST_MOVE_DECLVAL8, ::boost::move_detail::declval() - -//BOOST_MOVE_DECLVALQN -#define BOOST_MOVE_DECLVALQ0 -#define BOOST_MOVE_DECLVALQ1 ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ2 BOOST_MOVE_DECLVALQ1, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ3 BOOST_MOVE_DECLVALQ2, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ4 BOOST_MOVE_DECLVALQ3, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ5 BOOST_MOVE_DECLVALQ4, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ6 BOOST_MOVE_DECLVALQ5, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ7 BOOST_MOVE_DECLVALQ6, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ8 BOOST_MOVE_DECLVALQ7, ::boost::move_detail::declval() -#define BOOST_MOVE_DECLVALQ9 BOOST_MOVE_DECLVALQ8, ::boost::move_detail::declval() - -#ifdef BOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG - #define BOOST_MOVE_MREF(T) ::boost::move_detail::mref - #define BOOST_MOVE_MFWD(N) ::boost::forward(this->m_p##N.get()) - #define BOOST_MOVE_MFWDQ(N) ::boost::forward(this->m_q##N.get()) -#else - #define BOOST_MOVE_MREF(T) BOOST_FWD_REF(T) - #define BOOST_MOVE_MFWD(N) ::boost::forward(this->m_p##N) - #define BOOST_MOVE_MFWDQ(N) ::boost::forward(this->m_q##N) -#endif -#define BOOST_MOVE_MITFWD(N) *this->m_p##N -#define BOOST_MOVE_MINC(N) ++this->m_p##N -#define BOOST_MOVE_MITFWDQ(N) *this->m_q##N -#define BOOST_MOVE_MINCQ(N) ++this->m_q##N - - -//BOOST_MOVE_MFWDN -#define BOOST_MOVE_MFWD0 -#define BOOST_MOVE_MFWD1 BOOST_MOVE_MFWD(0) -#define BOOST_MOVE_MFWD2 BOOST_MOVE_MFWD1, BOOST_MOVE_MFWD(1) -#define BOOST_MOVE_MFWD3 BOOST_MOVE_MFWD2, BOOST_MOVE_MFWD(2) -#define BOOST_MOVE_MFWD4 BOOST_MOVE_MFWD3, BOOST_MOVE_MFWD(3) -#define BOOST_MOVE_MFWD5 BOOST_MOVE_MFWD4, BOOST_MOVE_MFWD(4) -#define BOOST_MOVE_MFWD6 BOOST_MOVE_MFWD5, BOOST_MOVE_MFWD(5) -#define BOOST_MOVE_MFWD7 BOOST_MOVE_MFWD6, BOOST_MOVE_MFWD(6) -#define BOOST_MOVE_MFWD8 BOOST_MOVE_MFWD7, BOOST_MOVE_MFWD(7) -#define BOOST_MOVE_MFWD9 BOOST_MOVE_MFWD8, BOOST_MOVE_MFWD(8) - -//BOOST_MOVE_MFWDN -#define BOOST_MOVE_MFWDQ0 -#define BOOST_MOVE_MFWDQ1 BOOST_MOVE_MFWDQ(0) -#define BOOST_MOVE_MFWDQ2 BOOST_MOVE_MFWDQ1, BOOST_MOVE_MFWDQ(1) -#define BOOST_MOVE_MFWDQ3 BOOST_MOVE_MFWDQ2, BOOST_MOVE_MFWDQ(2) -#define BOOST_MOVE_MFWDQ4 BOOST_MOVE_MFWDQ3, BOOST_MOVE_MFWDQ(3) -#define BOOST_MOVE_MFWDQ5 BOOST_MOVE_MFWDQ4, BOOST_MOVE_MFWDQ(4) -#define BOOST_MOVE_MFWDQ6 BOOST_MOVE_MFWDQ5, BOOST_MOVE_MFWDQ(5) -#define BOOST_MOVE_MFWDQ7 BOOST_MOVE_MFWDQ6, BOOST_MOVE_MFWDQ(6) -#define BOOST_MOVE_MFWDQ8 BOOST_MOVE_MFWDQ7, BOOST_MOVE_MFWDQ(7) -#define BOOST_MOVE_MFWDQ9 BOOST_MOVE_MFWDQ8, BOOST_MOVE_MFWDQ(8) - -//BOOST_MOVE_MINCN -#define BOOST_MOVE_MINC0 -#define BOOST_MOVE_MINC1 BOOST_MOVE_MINC(0) -#define BOOST_MOVE_MINC2 BOOST_MOVE_MINC1, BOOST_MOVE_MINC(1) -#define BOOST_MOVE_MINC3 BOOST_MOVE_MINC2, BOOST_MOVE_MINC(2) -#define BOOST_MOVE_MINC4 BOOST_MOVE_MINC3, BOOST_MOVE_MINC(3) -#define BOOST_MOVE_MINC5 BOOST_MOVE_MINC4, BOOST_MOVE_MINC(4) -#define BOOST_MOVE_MINC6 BOOST_MOVE_MINC5, BOOST_MOVE_MINC(5) -#define BOOST_MOVE_MINC7 BOOST_MOVE_MINC6, BOOST_MOVE_MINC(6) -#define BOOST_MOVE_MINC8 BOOST_MOVE_MINC7, BOOST_MOVE_MINC(7) -#define BOOST_MOVE_MINC9 BOOST_MOVE_MINC8, BOOST_MOVE_MINC(8) - -//BOOST_MOVE_MINCQN -#define BOOST_MOVE_MINCQ0 -#define BOOST_MOVE_MINCQ1 BOOST_MOVE_MINCQ(0) -#define BOOST_MOVE_MINCQ2 BOOST_MOVE_MINCQ1, BOOST_MOVE_MINCQ(1) -#define BOOST_MOVE_MINCQ3 BOOST_MOVE_MINCQ2, BOOST_MOVE_MINCQ(2) -#define BOOST_MOVE_MINCQ4 BOOST_MOVE_MINCQ3, BOOST_MOVE_MINCQ(3) -#define BOOST_MOVE_MINCQ5 BOOST_MOVE_MINCQ4, BOOST_MOVE_MINCQ(4) -#define BOOST_MOVE_MINCQ6 BOOST_MOVE_MINCQ5, BOOST_MOVE_MINCQ(5) -#define BOOST_MOVE_MINCQ7 BOOST_MOVE_MINCQ6, BOOST_MOVE_MINCQ(6) -#define BOOST_MOVE_MINCQ8 BOOST_MOVE_MINCQ7, BOOST_MOVE_MINCQ(7) -#define BOOST_MOVE_MINCQ9 BOOST_MOVE_MINCQ8, BOOST_MOVE_MINCQ(8) - -//BOOST_MOVE_MITFWDN -#define BOOST_MOVE_MITFWD0 -#define BOOST_MOVE_MITFWD1 BOOST_MOVE_MITFWD(0) -#define BOOST_MOVE_MITFWD2 BOOST_MOVE_MITFWD1, BOOST_MOVE_MITFWD(1) -#define BOOST_MOVE_MITFWD3 BOOST_MOVE_MITFWD2, BOOST_MOVE_MITFWD(2) -#define BOOST_MOVE_MITFWD4 BOOST_MOVE_MITFWD3, BOOST_MOVE_MITFWD(3) -#define BOOST_MOVE_MITFWD5 BOOST_MOVE_MITFWD4, BOOST_MOVE_MITFWD(4) -#define BOOST_MOVE_MITFWD6 BOOST_MOVE_MITFWD5, BOOST_MOVE_MITFWD(5) -#define BOOST_MOVE_MITFWD7 BOOST_MOVE_MITFWD6, BOOST_MOVE_MITFWD(6) -#define BOOST_MOVE_MITFWD8 BOOST_MOVE_MITFWD7, BOOST_MOVE_MITFWD(7) -#define BOOST_MOVE_MITFWD9 BOOST_MOVE_MITFWD8, BOOST_MOVE_MITFWD(8) - -//BOOST_MOVE_MITFWDQN -#define BOOST_MOVE_MITFWDQ0 -#define BOOST_MOVE_MITFWDQ1 BOOST_MOVE_MITFWDQ(0) -#define BOOST_MOVE_MITFWDQ2 BOOST_MOVE_MITFWDQ1, BOOST_MOVE_MITFWDQ(1) -#define BOOST_MOVE_MITFWDQ3 BOOST_MOVE_MITFWDQ2, BOOST_MOVE_MITFWDQ(2) -#define BOOST_MOVE_MITFWDQ4 BOOST_MOVE_MITFWDQ3, BOOST_MOVE_MITFWDQ(3) -#define BOOST_MOVE_MITFWDQ5 BOOST_MOVE_MITFWDQ4, BOOST_MOVE_MITFWDQ(4) -#define BOOST_MOVE_MITFWDQ6 BOOST_MOVE_MITFWDQ5, BOOST_MOVE_MITFWDQ(5) -#define BOOST_MOVE_MITFWDQ7 BOOST_MOVE_MITFWDQ6, BOOST_MOVE_MITFWDQ(6) -#define BOOST_MOVE_MITFWDQ8 BOOST_MOVE_MITFWDQ7, BOOST_MOVE_MITFWDQ(7) -#define BOOST_MOVE_MITFWDQ9 BOOST_MOVE_MITFWDQ8, BOOST_MOVE_MITFWDQ(8) - -//BOOST_MOVE_FWD_INITN -#define BOOST_MOVE_FWD_INIT0 -#define BOOST_MOVE_FWD_INIT1 m_p0(::boost::forward(p0)) -#define BOOST_MOVE_FWD_INIT2 BOOST_MOVE_FWD_INIT1, m_p1(::boost::forward(p1)) -#define BOOST_MOVE_FWD_INIT3 BOOST_MOVE_FWD_INIT2, m_p2(::boost::forward(p2)) -#define BOOST_MOVE_FWD_INIT4 BOOST_MOVE_FWD_INIT3, m_p3(::boost::forward(p3)) -#define BOOST_MOVE_FWD_INIT5 BOOST_MOVE_FWD_INIT4, m_p4(::boost::forward(p4)) -#define BOOST_MOVE_FWD_INIT6 BOOST_MOVE_FWD_INIT5, m_p5(::boost::forward(p5)) -#define BOOST_MOVE_FWD_INIT7 BOOST_MOVE_FWD_INIT6, m_p6(::boost::forward(p6)) -#define BOOST_MOVE_FWD_INIT8 BOOST_MOVE_FWD_INIT7, m_p7(::boost::forward(p7)) -#define BOOST_MOVE_FWD_INIT9 BOOST_MOVE_FWD_INIT8, m_p8(::boost::forward(p8)) - -//BOOST_MOVE_FWD_INITQN -#define BOOST_MOVE_FWD_INITQ0 -#define BOOST_MOVE_FWD_INITQ1 m_q0(::boost::forward(q0)) -#define BOOST_MOVE_FWD_INITQ2 BOOST_MOVE_FWD_INITQ1, m_q1(::boost::forward(q1)) -#define BOOST_MOVE_FWD_INITQ3 BOOST_MOVE_FWD_INITQ2, m_q2(::boost::forward(q2)) -#define BOOST_MOVE_FWD_INITQ4 BOOST_MOVE_FWD_INITQ3, m_q3(::boost::forward(q3)) -#define BOOST_MOVE_FWD_INITQ5 BOOST_MOVE_FWD_INITQ4, m_q4(::boost::forward(q4)) -#define BOOST_MOVE_FWD_INITQ6 BOOST_MOVE_FWD_INITQ5, m_q5(::boost::forward(q5)) -#define BOOST_MOVE_FWD_INITQ7 BOOST_MOVE_FWD_INITQ6, m_q6(::boost::forward(q6)) -#define BOOST_MOVE_FWD_INITQ8 BOOST_MOVE_FWD_INITQ7, m_q7(::boost::forward(q7)) -#define BOOST_MOVE_FWD_INITQ9 BOOST_MOVE_FWD_INITQ8, m_q8(::boost::forward(q8)) - -//BOOST_MOVE_VAL_INITN -#define BOOST_MOVE_VAL_INIT0 -#define BOOST_MOVE_VAL_INIT1 m_p0(p0) -#define BOOST_MOVE_VAL_INIT2 BOOST_MOVE_VAL_INIT1, m_p1(p1) -#define BOOST_MOVE_VAL_INIT3 BOOST_MOVE_VAL_INIT2, m_p2(p2) -#define BOOST_MOVE_VAL_INIT4 BOOST_MOVE_VAL_INIT3, m_p3(p3) -#define BOOST_MOVE_VAL_INIT5 BOOST_MOVE_VAL_INIT4, m_p4(p4) -#define BOOST_MOVE_VAL_INIT6 BOOST_MOVE_VAL_INIT5, m_p5(p5) -#define BOOST_MOVE_VAL_INIT7 BOOST_MOVE_VAL_INIT6, m_p6(p6) -#define BOOST_MOVE_VAL_INIT8 BOOST_MOVE_VAL_INIT7, m_p7(p7) -#define BOOST_MOVE_VAL_INIT9 BOOST_MOVE_VAL_INIT8, m_p8(p8) - -//BOOST_MOVE_VAL_INITQN -#define BOOST_MOVE_VAL_INITQ0 -#define BOOST_MOVE_VAL_INITQ1 m_q0(q0) -#define BOOST_MOVE_VAL_INITQ2 BOOST_MOVE_VAL_INITQ1, m_q1(q1) -#define BOOST_MOVE_VAL_INITQ3 BOOST_MOVE_VAL_INITQ2, m_q2(q2) -#define BOOST_MOVE_VAL_INITQ4 BOOST_MOVE_VAL_INITQ3, m_q3(q3) -#define BOOST_MOVE_VAL_INITQ5 BOOST_MOVE_VAL_INITQ4, m_q4(q4) -#define BOOST_MOVE_VAL_INITQ6 BOOST_MOVE_VAL_INITQ5, m_q5(q5) -#define BOOST_MOVE_VAL_INITQ7 BOOST_MOVE_VAL_INITQ6, m_q6(q6) -#define BOOST_MOVE_VAL_INITQ8 BOOST_MOVE_VAL_INITQ7, m_q7(q7) -#define BOOST_MOVE_VAL_INITQ9 BOOST_MOVE_VAL_INITQ8, m_q8(q8) - -//BOOST_MOVE_UREFN -#define BOOST_MOVE_UREF0 -#define BOOST_MOVE_UREF1 BOOST_FWD_REF(P0) p0 -#define BOOST_MOVE_UREF2 BOOST_MOVE_UREF1, BOOST_FWD_REF(P1) p1 -#define BOOST_MOVE_UREF3 BOOST_MOVE_UREF2, BOOST_FWD_REF(P2) p2 -#define BOOST_MOVE_UREF4 BOOST_MOVE_UREF3, BOOST_FWD_REF(P3) p3 -#define BOOST_MOVE_UREF5 BOOST_MOVE_UREF4, BOOST_FWD_REF(P4) p4 -#define BOOST_MOVE_UREF6 BOOST_MOVE_UREF5, BOOST_FWD_REF(P5) p5 -#define BOOST_MOVE_UREF7 BOOST_MOVE_UREF6, BOOST_FWD_REF(P6) p6 -#define BOOST_MOVE_UREF8 BOOST_MOVE_UREF7, BOOST_FWD_REF(P7) p7 -#define BOOST_MOVE_UREF9 BOOST_MOVE_UREF8, BOOST_FWD_REF(P8) p8 - -//BOOST_MOVE_UREFQN -#define BOOST_MOVE_UREFQ0 -#define BOOST_MOVE_UREFQ1 BOOST_FWD_REF(Q0) q0 -#define BOOST_MOVE_UREFQ2 BOOST_MOVE_UREFQ1, BOOST_FWD_REF(Q1) q1 -#define BOOST_MOVE_UREFQ3 BOOST_MOVE_UREFQ2, BOOST_FWD_REF(Q2) q2 -#define BOOST_MOVE_UREFQ4 BOOST_MOVE_UREFQ3, BOOST_FWD_REF(Q3) q3 -#define BOOST_MOVE_UREFQ5 BOOST_MOVE_UREFQ4, BOOST_FWD_REF(Q4) q4 -#define BOOST_MOVE_UREFQ6 BOOST_MOVE_UREFQ5, BOOST_FWD_REF(Q5) q5 -#define BOOST_MOVE_UREFQ7 BOOST_MOVE_UREFQ6, BOOST_FWD_REF(Q6) q6 -#define BOOST_MOVE_UREFQ8 BOOST_MOVE_UREFQ7, BOOST_FWD_REF(Q7) q7 -#define BOOST_MOVE_UREFQ9 BOOST_MOVE_UREFQ8, BOOST_FWD_REF(Q8) q8 - -//BOOST_MOVE_VALN -#define BOOST_MOVE_VAL0 -#define BOOST_MOVE_VAL1 BOOST_FWD_REF(P0) p0 -#define BOOST_MOVE_VAL2 BOOST_MOVE_VAL1, BOOST_FWD_REF(P1) p1 -#define BOOST_MOVE_VAL3 BOOST_MOVE_VAL2, BOOST_FWD_REF(P2) p2 -#define BOOST_MOVE_VAL4 BOOST_MOVE_VAL3, BOOST_FWD_REF(P3) p3 -#define BOOST_MOVE_VAL5 BOOST_MOVE_VAL4, BOOST_FWD_REF(P4) p4 -#define BOOST_MOVE_VAL6 BOOST_MOVE_VAL5, BOOST_FWD_REF(P5) p5 -#define BOOST_MOVE_VAL7 BOOST_MOVE_VAL6, BOOST_FWD_REF(P6) p6 -#define BOOST_MOVE_VAL8 BOOST_MOVE_VAL7, BOOST_FWD_REF(P7) p7 -#define BOOST_MOVE_VAL9 BOOST_MOVE_VAL8, BOOST_FWD_REF(P8) p8 - -//BOOST_MOVE_VALQN -#define BOOST_MOVE_VALQ0 -#define BOOST_MOVE_VALQ1 BOOST_FWD_REF(Q0) q0 -#define BOOST_MOVE_VALQ2 BOOST_MOVE_VALQ1, BOOST_FWD_REF(Q1) q1 -#define BOOST_MOVE_VALQ3 BOOST_MOVE_VALQ2, BOOST_FWD_REF(Q2) q2 -#define BOOST_MOVE_VALQ4 BOOST_MOVE_VALQ3, BOOST_FWD_REF(Q3) q3 -#define BOOST_MOVE_VALQ5 BOOST_MOVE_VALQ4, BOOST_FWD_REF(Q4) q4 -#define BOOST_MOVE_VALQ6 BOOST_MOVE_VALQ5, BOOST_FWD_REF(Q5) q5 -#define BOOST_MOVE_VALQ7 BOOST_MOVE_VALQ6, BOOST_FWD_REF(Q6) q6 -#define BOOST_MOVE_VALQ8 BOOST_MOVE_VALQ7, BOOST_FWD_REF(Q7) q7 -#define BOOST_MOVE_VALQ9 BOOST_MOVE_VALQ8, BOOST_FWD_REF(Q8) q8 - - -#define BOOST_MOVE_UNVOIDCREF(T) const typename boost::move_detail::unvoid::type& -//BOOST_MOVE_CREFN -#define BOOST_MOVE_CREF0 -#define BOOST_MOVE_CREF1 BOOST_MOVE_UNVOIDCREF(P0) p0 -#define BOOST_MOVE_CREF2 BOOST_MOVE_CREF1, BOOST_MOVE_UNVOIDCREF(P1) p1 -#define BOOST_MOVE_CREF3 BOOST_MOVE_CREF2, BOOST_MOVE_UNVOIDCREF(P2) p2 -#define BOOST_MOVE_CREF4 BOOST_MOVE_CREF3, BOOST_MOVE_UNVOIDCREF(P3) p3 -#define BOOST_MOVE_CREF5 BOOST_MOVE_CREF4, BOOST_MOVE_UNVOIDCREF(P4) p4 -#define BOOST_MOVE_CREF6 BOOST_MOVE_CREF5, BOOST_MOVE_UNVOIDCREF(P5) p5 -#define BOOST_MOVE_CREF7 BOOST_MOVE_CREF6, BOOST_MOVE_UNVOIDCREF(P6) p6 -#define BOOST_MOVE_CREF8 BOOST_MOVE_CREF7, BOOST_MOVE_UNVOIDCREF(P7) p7 -#define BOOST_MOVE_CREF9 BOOST_MOVE_CREF8, BOOST_MOVE_UNVOIDCREF(P8) p8 - -//BOOST_MOVE_CREFQN -#define BOOST_MOVE_CREFQ0 -#define BOOST_MOVE_CREFQ1 BOOST_MOVE_UNVOIDCREF(Q0) q0 -#define BOOST_MOVE_CREFQ2 BOOST_MOVE_CREFQ1, BOOST_MOVE_UNVOIDCREF(Q1) q1 -#define BOOST_MOVE_CREFQ3 BOOST_MOVE_CREFQ2, BOOST_MOVE_UNVOIDCREF(Q2) q2 -#define BOOST_MOVE_CREFQ4 BOOST_MOVE_CREFQ3, BOOST_MOVE_UNVOIDCREF(Q3) q3 -#define BOOST_MOVE_CREFQ5 BOOST_MOVE_CREFQ4, BOOST_MOVE_UNVOIDCREF(Q4) q4 -#define BOOST_MOVE_CREFQ6 BOOST_MOVE_CREFQ5, BOOST_MOVE_UNVOIDCREF(Q5) q5 -#define BOOST_MOVE_CREFQ7 BOOST_MOVE_CREFQ6, BOOST_MOVE_UNVOIDCREF(Q6) q6 -#define BOOST_MOVE_CREFQ8 BOOST_MOVE_CREFQ7, BOOST_MOVE_UNVOIDCREF(Q7) q7 -#define BOOST_MOVE_CREFQ9 BOOST_MOVE_CREFQ8, BOOST_MOVE_UNVOIDCREF(Q8) q8 - -//BOOST_MOVE_CLASSN -#define BOOST_MOVE_CLASS0 -#define BOOST_MOVE_CLASS1 class P0 -#define BOOST_MOVE_CLASS2 BOOST_MOVE_CLASS1, class P1 -#define BOOST_MOVE_CLASS3 BOOST_MOVE_CLASS2, class P2 -#define BOOST_MOVE_CLASS4 BOOST_MOVE_CLASS3, class P3 -#define BOOST_MOVE_CLASS5 BOOST_MOVE_CLASS4, class P4 -#define BOOST_MOVE_CLASS6 BOOST_MOVE_CLASS5, class P5 -#define BOOST_MOVE_CLASS7 BOOST_MOVE_CLASS6, class P6 -#define BOOST_MOVE_CLASS8 BOOST_MOVE_CLASS7, class P7 -#define BOOST_MOVE_CLASS9 BOOST_MOVE_CLASS8, class P8 - -//BOOST_MOVE_CLASSQN -#define BOOST_MOVE_CLASSQ0 -#define BOOST_MOVE_CLASSQ1 class Q0 -#define BOOST_MOVE_CLASSQ2 BOOST_MOVE_CLASSQ1, class Q1 -#define BOOST_MOVE_CLASSQ3 BOOST_MOVE_CLASSQ2, class Q2 -#define BOOST_MOVE_CLASSQ4 BOOST_MOVE_CLASSQ3, class Q3 -#define BOOST_MOVE_CLASSQ5 BOOST_MOVE_CLASSQ4, class Q4 -#define BOOST_MOVE_CLASSQ6 BOOST_MOVE_CLASSQ5, class Q5 -#define BOOST_MOVE_CLASSQ7 BOOST_MOVE_CLASSQ6, class Q6 -#define BOOST_MOVE_CLASSQ8 BOOST_MOVE_CLASSQ7, class Q7 -#define BOOST_MOVE_CLASSQ9 BOOST_MOVE_CLASSQ8, class Q8 - -//BOOST_MOVE_CLASSDFLTN -#define BOOST_MOVE_CLASSDFLT0 -#define BOOST_MOVE_CLASSDFLT1 class P0 = void -#define BOOST_MOVE_CLASSDFLT2 BOOST_MOVE_CLASSDFLT1, class P1 = void -#define BOOST_MOVE_CLASSDFLT3 BOOST_MOVE_CLASSDFLT2, class P2 = void -#define BOOST_MOVE_CLASSDFLT4 BOOST_MOVE_CLASSDFLT3, class P3 = void -#define BOOST_MOVE_CLASSDFLT5 BOOST_MOVE_CLASSDFLT4, class P4 = void -#define BOOST_MOVE_CLASSDFLT6 BOOST_MOVE_CLASSDFLT5, class P5 = void -#define BOOST_MOVE_CLASSDFLT7 BOOST_MOVE_CLASSDFLT6, class P6 = void -#define BOOST_MOVE_CLASSDFLT8 BOOST_MOVE_CLASSDFLT7, class P7 = void -#define BOOST_MOVE_CLASSDFLT9 BOOST_MOVE_CLASSDFLT8, class P8 = void - -//BOOST_MOVE_CLASSDFLTQN -#define BOOST_MOVE_CLASSDFLTQ0 -#define BOOST_MOVE_CLASSDFLTQ1 class Q0 = void -#define BOOST_MOVE_CLASSDFLTQ2 BOOST_MOVE_CLASSDFLTQ1, class Q1 = void -#define BOOST_MOVE_CLASSDFLTQ3 BOOST_MOVE_CLASSDFLTQ2, class Q2 = void -#define BOOST_MOVE_CLASSDFLTQ4 BOOST_MOVE_CLASSDFLTQ3, class Q3 = void -#define BOOST_MOVE_CLASSDFLTQ5 BOOST_MOVE_CLASSDFLTQ4, class Q4 = void -#define BOOST_MOVE_CLASSDFLTQ6 BOOST_MOVE_CLASSDFLTQ5, class Q5 = void -#define BOOST_MOVE_CLASSDFLTQ7 BOOST_MOVE_CLASSDFLTQ6, class Q6 = void -#define BOOST_MOVE_CLASSDFLTQ8 BOOST_MOVE_CLASSDFLTQ7, class Q7 = void -#define BOOST_MOVE_CLASSDFLTQ9 BOOST_MOVE_CLASSDFLTQ8, class Q8 = void - -//BOOST_MOVE_TARGN -#define BOOST_MOVE_TARG0 -#define BOOST_MOVE_TARG1 P0 -#define BOOST_MOVE_TARG2 BOOST_MOVE_TARG1, P1 -#define BOOST_MOVE_TARG3 BOOST_MOVE_TARG2, P2 -#define BOOST_MOVE_TARG4 BOOST_MOVE_TARG3, P3 -#define BOOST_MOVE_TARG5 BOOST_MOVE_TARG4, P4 -#define BOOST_MOVE_TARG6 BOOST_MOVE_TARG5, P5 -#define BOOST_MOVE_TARG7 BOOST_MOVE_TARG6, P6 -#define BOOST_MOVE_TARG8 BOOST_MOVE_TARG7, P7 -#define BOOST_MOVE_TARG9 BOOST_MOVE_TARG8, P8 - -//BOOST_MOVE_TARGQN -#define BOOST_MOVE_TARGQ0 -#define BOOST_MOVE_TARGQ1 Q0 -#define BOOST_MOVE_TARGQ2 BOOST_MOVE_TARGQ1, Q1 -#define BOOST_MOVE_TARGQ3 BOOST_MOVE_TARGQ2, Q2 -#define BOOST_MOVE_TARGQ4 BOOST_MOVE_TARGQ3, Q3 -#define BOOST_MOVE_TARGQ5 BOOST_MOVE_TARGQ4, Q4 -#define BOOST_MOVE_TARGQ6 BOOST_MOVE_TARGQ5, Q5 -#define BOOST_MOVE_TARGQ7 BOOST_MOVE_TARGQ6, Q6 -#define BOOST_MOVE_TARGQ8 BOOST_MOVE_TARGQ7, Q7 -#define BOOST_MOVE_TARGQ9 BOOST_MOVE_TARGQ8, Q8 - -//BOOST_MOVE_FWD_TN -#define BOOST_MOVE_FWD_T0 -#define BOOST_MOVE_FWD_T1 typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T2 BOOST_MOVE_FWD_T1, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T3 BOOST_MOVE_FWD_T2, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T4 BOOST_MOVE_FWD_T3, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T5 BOOST_MOVE_FWD_T4, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T6 BOOST_MOVE_FWD_T5, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T7 BOOST_MOVE_FWD_T6, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T8 BOOST_MOVE_FWD_T7, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_T9 BOOST_MOVE_FWD_T8, typename ::boost::move_detail::forward_type::type - -//BOOST_MOVE_FWD_TQN -#define BOOST_MOVE_FWD_TQ0 -#define BOOST_MOVE_FWD_TQ1 typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ2 BOOST_MOVE_FWD_TQ1, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ3 BOOST_MOVE_FWD_TQ2, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ4 BOOST_MOVE_FWD_TQ3, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ5 BOOST_MOVE_FWD_TQ4, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ6 BOOST_MOVE_FWD_TQ5, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ7 BOOST_MOVE_FWD_TQ6, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ8 BOOST_MOVE_FWD_TQ7, typename ::boost::move_detail::forward_type::type -#define BOOST_MOVE_FWD_TQ9 BOOST_MOVE_FWD_TQ8, typename ::boost::move_detail::forward_type::type - -//BOOST_MOVE_MREFX -#define BOOST_MOVE_MREF0 -#define BOOST_MOVE_MREF1 BOOST_MOVE_MREF(P0) m_p0; -#define BOOST_MOVE_MREF2 BOOST_MOVE_MREF1 BOOST_MOVE_MREF(P1) m_p1; -#define BOOST_MOVE_MREF3 BOOST_MOVE_MREF2 BOOST_MOVE_MREF(P2) m_p2; -#define BOOST_MOVE_MREF4 BOOST_MOVE_MREF3 BOOST_MOVE_MREF(P3) m_p3; -#define BOOST_MOVE_MREF5 BOOST_MOVE_MREF4 BOOST_MOVE_MREF(P4) m_p4; -#define BOOST_MOVE_MREF6 BOOST_MOVE_MREF5 BOOST_MOVE_MREF(P5) m_p5; -#define BOOST_MOVE_MREF7 BOOST_MOVE_MREF6 BOOST_MOVE_MREF(P6) m_p6; -#define BOOST_MOVE_MREF8 BOOST_MOVE_MREF7 BOOST_MOVE_MREF(P7) m_p7; -#define BOOST_MOVE_MREF9 BOOST_MOVE_MREF8 BOOST_MOVE_MREF(P8) m_p8; - -//BOOST_MOVE_MREFQX -#define BOOST_MOVE_MREFQ0 -#define BOOST_MOVE_MREFQ1 BOOST_MOVE_MREFQ(Q0) m_q0; -#define BOOST_MOVE_MREFQ2 BOOST_MOVE_MREFQ1 BOOST_MOVE_MREFQ(Q1) m_q1; -#define BOOST_MOVE_MREFQ3 BOOST_MOVE_MREFQ2 BOOST_MOVE_MREFQ(Q2) m_q2; -#define BOOST_MOVE_MREFQ4 BOOST_MOVE_MREFQ3 BOOST_MOVE_MREFQ(Q3) m_q3; -#define BOOST_MOVE_MREFQ5 BOOST_MOVE_MREFQ4 BOOST_MOVE_MREFQ(Q4) m_q4; -#define BOOST_MOVE_MREFQ6 BOOST_MOVE_MREFQ5 BOOST_MOVE_MREFQ(Q5) m_q5; -#define BOOST_MOVE_MREFQ7 BOOST_MOVE_MREFQ6 BOOST_MOVE_MREFQ(Q6) m_q6; -#define BOOST_MOVE_MREFQ8 BOOST_MOVE_MREFQ7 BOOST_MOVE_MREFQ(Q7) m_q7; -#define BOOST_MOVE_MREFQ9 BOOST_MOVE_MREFQ8 BOOST_MOVE_MREFQ(Q8) m_q8; - -//BOOST_MOVE_MEMBX -#define BOOST_MOVE_MEMB0 -#define BOOST_MOVE_MEMB1 P0 m_p0; -#define BOOST_MOVE_MEMB2 BOOST_MOVE_MEMB1 P1 m_p1; -#define BOOST_MOVE_MEMB3 BOOST_MOVE_MEMB2 P2 m_p2; -#define BOOST_MOVE_MEMB4 BOOST_MOVE_MEMB3 P3 m_p3; -#define BOOST_MOVE_MEMB5 BOOST_MOVE_MEMB4 P4 m_p4; -#define BOOST_MOVE_MEMB6 BOOST_MOVE_MEMB5 P5 m_p5; -#define BOOST_MOVE_MEMB7 BOOST_MOVE_MEMB6 P6 m_p6; -#define BOOST_MOVE_MEMB8 BOOST_MOVE_MEMB7 P7 m_p7; -#define BOOST_MOVE_MEMB9 BOOST_MOVE_MEMB8 P8 m_p8; - -//BOOST_MOVE_MEMBQX -#define BOOST_MOVE_MEMBQ0 -#define BOOST_MOVE_MEMBQ1 Q0 m_q0; -#define BOOST_MOVE_MEMBQ2 BOOST_MOVE_MEMBQ1 Q1 m_q1; -#define BOOST_MOVE_MEMBQ3 BOOST_MOVE_MEMBQ2 Q2 m_q2; -#define BOOST_MOVE_MEMBQ4 BOOST_MOVE_MEMBQ3 Q3 m_q3; -#define BOOST_MOVE_MEMBQ5 BOOST_MOVE_MEMBQ4 Q4 m_q4; -#define BOOST_MOVE_MEMBQ6 BOOST_MOVE_MEMBQ5 Q5 m_q5; -#define BOOST_MOVE_MEMBQ7 BOOST_MOVE_MEMBQ6 Q6 m_q6; -#define BOOST_MOVE_MEMBQ8 BOOST_MOVE_MEMBQ7 Q7 m_q7; -#define BOOST_MOVE_MEMBQ9 BOOST_MOVE_MEMBQ8 Q8 m_q8; - -//BOOST_MOVE_TMPL_LTN -#define BOOST_MOVE_TMPL_LT0 -#define BOOST_MOVE_TMPL_LT1 template< -#define BOOST_MOVE_TMPL_LT2 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT3 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT4 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT5 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT6 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT7 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT8 BOOST_MOVE_TMPL_LT1 -#define BOOST_MOVE_TMPL_LT9 BOOST_MOVE_TMPL_LT1 - -//BOOST_MOVE_LTN -#define BOOST_MOVE_LT0 -#define BOOST_MOVE_LT1 < -#define BOOST_MOVE_LT2 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT3 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT4 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT5 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT6 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT7 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT8 BOOST_MOVE_LT1 -#define BOOST_MOVE_LT9 BOOST_MOVE_LT1 - -//BOOST_MOVE_GTN -#define BOOST_MOVE_GT0 -#define BOOST_MOVE_GT1 > -#define BOOST_MOVE_GT2 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT3 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT4 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT5 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT6 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT7 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT8 BOOST_MOVE_GT1 -#define BOOST_MOVE_GT9 BOOST_MOVE_GT1 - -//BOOST_MOVE_LPN -#define BOOST_MOVE_LP0 -#define BOOST_MOVE_LP1 ( -#define BOOST_MOVE_LP2 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP3 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP4 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP5 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP6 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP7 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP8 BOOST_MOVE_LP1 -#define BOOST_MOVE_LP9 BOOST_MOVE_LP1 - -//BOOST_MOVE_RPN -#define BOOST_MOVE_RP0 -#define BOOST_MOVE_RP1 ) -#define BOOST_MOVE_RP2 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP3 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP4 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP5 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP6 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP7 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP8 BOOST_MOVE_RP1 -#define BOOST_MOVE_RP9 BOOST_MOVE_RP1 - -//BOOST_MOVE_IN -#define BOOST_MOVE_I0 -#define BOOST_MOVE_I1 , -#define BOOST_MOVE_I2 BOOST_MOVE_I1 -#define BOOST_MOVE_I3 BOOST_MOVE_I1 -#define BOOST_MOVE_I4 BOOST_MOVE_I1 -#define BOOST_MOVE_I5 BOOST_MOVE_I1 -#define BOOST_MOVE_I6 BOOST_MOVE_I1 -#define BOOST_MOVE_I7 BOOST_MOVE_I1 -#define BOOST_MOVE_I8 BOOST_MOVE_I1 -#define BOOST_MOVE_I9 BOOST_MOVE_I1 - -//BOOST_MOVE_BOOL -# define BOOST_MOVE_BOOL(x) BOOST_MOVE_BOOL_I(x) -# define BOOST_MOVE_BOOL_I(x) BOOST_MOVE_BOOL##x -# define BOOST_MOVE_BOOL0 0 -# define BOOST_MOVE_BOOL1 1 -# define BOOST_MOVE_BOOL2 1 -# define BOOST_MOVE_BOOL3 1 -# define BOOST_MOVE_BOOL4 1 -# define BOOST_MOVE_BOOL5 1 -# define BOOST_MOVE_BOOL6 1 -# define BOOST_MOVE_BOOL7 1 -# define BOOST_MOVE_BOOL8 1 -# define BOOST_MOVE_BOOL9 1 - -//BOOST_MOVE_I_IF -#define BOOST_MOVE_I_IF(x) BOOST_MOVE_I_IF_I (BOOST_MOVE_BOOL(x)) -#define BOOST_MOVE_I_IF_I(x) BOOST_MOVE_I_IF_I2(x) -#define BOOST_MOVE_I_IF_I2(x) BOOST_MOVE_IF_I_##x -#define BOOST_MOVE_IF_I_0 -#define BOOST_MOVE_IF_I_1 , - -//BOOST_MOVE_IF -#define BOOST_MOVE_IF(cond, t, f) BOOST_MOVE_IF_I(cond, t, f) -#define BOOST_MOVE_IF_I(cond, t, f) BOOST_MOVE_IIF(BOOST_MOVE_BOOL(cond), t, f) - -#define BOOST_MOVE_IIF(bit, t, f) BOOST_MOVE_IIF_I(bit, t, f) -#define BOOST_MOVE_IIF_I(bit, t, f) BOOST_MOVE_IIF_##bit(t, f) -#define BOOST_MOVE_IIF_0(t, f) f -#define BOOST_MOVE_IIF_1(t, f) t - -/* -#define BOOST_MOVE_IIF(bit, t, f) BOOST_MOVE_IIF_OO((bit, t, f)) -#define BOOST_MOVE_IIF_OO(par) BOOST_MOVE_IIF_I ## par -#define BOOST_MOVE_IIF_I(bit, t, f) BOOST_MOVE_IIF_II(BOOST_MOVE_IIF_ ## bit(t, f)) -#define BOOST_MOVE_IIF_II(id) id -#define BOOST_MOVE_IIF_0(t, f) f -#define BOOST_MOVE_IIF_1(t, f) t -*/ - -//BOOST_MOVE_COLON -#define BOOST_MOVE_COLON0 -#define BOOST_MOVE_COLON1 : -#define BOOST_MOVE_COLON2 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON3 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON4 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON5 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON6 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON7 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON8 BOOST_MOVE_COLON1 -#define BOOST_MOVE_COLON9 BOOST_MOVE_COLON1 - -//BOOST_MOVE_BITOR -#define BOOST_MOVE_BITOR(x,y) BOOST_MOVE_BITOR_I(x,y) -#define BOOST_MOVE_BITOR_I(x,y) BOOST_MOVE_BITOR##x##y -#define BOOST_MOVE_BITOR00 0 -#define BOOST_MOVE_BITOR01 1 -#define BOOST_MOVE_BITOR10 1 -#define BOOST_MOVE_BITOR11 1 - -//BOOST_MOVE_OR -#define BOOST_MOVE_OR(x, y) BOOST_MOVE_OR_I(x, y) -#define BOOST_MOVE_OR_I(x, y) BOOST_MOVE_BITOR(BOOST_MOVE_BOOL(x), BOOST_MOVE_BOOL(y)) - -//BOOST_MOVE_BITAND -#define BOOST_MOVE_BITAND(x,y) BOOST_MOVE_BITAND_I(x,y) -#define BOOST_MOVE_BITAND_I(x,y) BOOST_MOVE_BITAND##x##y -#define BOOST_MOVE_BITAND00 0 -#define BOOST_MOVE_BITAND01 0 -#define BOOST_MOVE_BITAND10 0 -#define BOOST_MOVE_BITAND11 1 - -//BOOST_MOVE_AND -#define BOOST_MOVE_AND(x, y) BOOST_MOVE_AND_I(x, y) -#define BOOST_MOVE_AND_I(x, y) BOOST_MOVE_BITAND(BOOST_MOVE_BOOL(x), BOOST_MOVE_BOOL(y)) - -//BOOST_MOVE_DEC -#define BOOST_MOVE_DEC(x) BOOST_MOVE_DEC_I(x) -#define BOOST_MOVE_DEC_I(x) BOOST_MOVE_DEC##x -#define BOOST_MOVE_DEC1 0 -#define BOOST_MOVE_DEC2 1 -#define BOOST_MOVE_DEC3 2 -#define BOOST_MOVE_DEC4 3 -#define BOOST_MOVE_DEC5 4 -#define BOOST_MOVE_DEC6 5 -#define BOOST_MOVE_DEC7 6 -#define BOOST_MOVE_DEC8 7 -#define BOOST_MOVE_DEC9 8 -#define BOOST_MOVE_DEC10 9 -#define BOOST_MOVE_DEC11 10 -#define BOOST_MOVE_DEC12 11 -#define BOOST_MOVE_DEC13 12 -#define BOOST_MOVE_DEC14 13 - -//BOOST_MOVE_SUB -#define BOOST_MOVE_SUB(x, y) BOOST_MOVE_SUB_I(x,y) -#define BOOST_MOVE_SUB_I(x, y) BOOST_MOVE_SUB##y(x) -#define BOOST_MOVE_SUB0(x) x -#define BOOST_MOVE_SUB1(x) BOOST_MOVE_DEC(x) -#define BOOST_MOVE_SUB2(x) BOOST_MOVE_SUB1(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB3(x) BOOST_MOVE_SUB2(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB4(x) BOOST_MOVE_SUB3(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB5(x) BOOST_MOVE_SUB4(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB6(x) BOOST_MOVE_SUB5(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB7(x) BOOST_MOVE_SUB6(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB8(x) BOOST_MOVE_SUB7(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB9(x) BOOST_MOVE_SUB8(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB10(x) BOOST_MOVE_SUB9(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB11(x) BOOST_MOVE_SUB10(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB12(x) BOOST_MOVE_SUB11(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB13(x) BOOST_MOVE_SUB12(BOOST_MOVE_DEC(x)) -#define BOOST_MOVE_SUB14(x) BOOST_MOVE_SUB13(BOOST_MOVE_DEC(x)) - -//BOOST_MOVE_INC -#define BOOST_MOVE_INC(x) BOOST_MOVE_INC_I(x) -#define BOOST_MOVE_INC_I(x) BOOST_MOVE_INC##x -#define BOOST_MOVE_INC0 1 -#define BOOST_MOVE_INC1 2 -#define BOOST_MOVE_INC2 3 -#define BOOST_MOVE_INC3 4 -#define BOOST_MOVE_INC4 5 -#define BOOST_MOVE_INC5 6 -#define BOOST_MOVE_INC6 7 -#define BOOST_MOVE_INC7 8 -#define BOOST_MOVE_INC8 9 -#define BOOST_MOVE_INC9 10 -#define BOOST_MOVE_INC10 11 -#define BOOST_MOVE_INC11 12 -#define BOOST_MOVE_INC12 13 -#define BOOST_MOVE_INC13 14 - -//BOOST_MOVE_ADD -#define BOOST_MOVE_ADD(x, y) BOOST_MOVE_ADD_I(x,y) -#define BOOST_MOVE_ADD_I(x, y) BOOST_MOVE_ADD##y(x) -#define BOOST_MOVE_ADD0(x) x -#define BOOST_MOVE_ADD1(x) BOOST_MOVE_INC(x) -#define BOOST_MOVE_ADD2(x) BOOST_MOVE_ADD1(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD3(x) BOOST_MOVE_ADD2(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD4(x) BOOST_MOVE_ADD3(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD5(x) BOOST_MOVE_ADD4(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD6(x) BOOST_MOVE_ADD5(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD7(x) BOOST_MOVE_ADD6(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD8(x) BOOST_MOVE_ADD7(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD9(x) BOOST_MOVE_ADD8(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD10(x) BOOST_MOVE_ADD9(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD11(x) BOOST_MOVE_ADD10(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD12(x) BOOST_MOVE_ADD11(BOOST_MOVE_INC(x)) -#define BOOST_MOVE_ADD13(x) BOOST_MOVE_ADD12(BOOST_MOVE_INC(x)) - -//BOOST_MOVE_ITERATE_2TON -#define BOOST_MOVE_ITERATE_2TO2(MACROFUNC) MACROFUNC(2) -#define BOOST_MOVE_ITERATE_2TO3(MACROFUNC) BOOST_MOVE_ITERATE_2TO2(MACROFUNC) MACROFUNC(3) -#define BOOST_MOVE_ITERATE_2TO4(MACROFUNC) BOOST_MOVE_ITERATE_2TO3(MACROFUNC) MACROFUNC(4) -#define BOOST_MOVE_ITERATE_2TO5(MACROFUNC) BOOST_MOVE_ITERATE_2TO4(MACROFUNC) MACROFUNC(5) -#define BOOST_MOVE_ITERATE_2TO6(MACROFUNC) BOOST_MOVE_ITERATE_2TO5(MACROFUNC) MACROFUNC(6) -#define BOOST_MOVE_ITERATE_2TO7(MACROFUNC) BOOST_MOVE_ITERATE_2TO6(MACROFUNC) MACROFUNC(7) -#define BOOST_MOVE_ITERATE_2TO8(MACROFUNC) BOOST_MOVE_ITERATE_2TO7(MACROFUNC) MACROFUNC(8) -#define BOOST_MOVE_ITERATE_2TO9(MACROFUNC) BOOST_MOVE_ITERATE_2TO8(MACROFUNC) MACROFUNC(9) - -//BOOST_MOVE_ITERATE_1TON -#define BOOST_MOVE_ITERATE_1TO1(MACROFUNC) MACROFUNC(1) -#define BOOST_MOVE_ITERATE_1TO2(MACROFUNC) BOOST_MOVE_ITERATE_1TO1(MACROFUNC) MACROFUNC(2) -#define BOOST_MOVE_ITERATE_1TO3(MACROFUNC) BOOST_MOVE_ITERATE_1TO2(MACROFUNC) MACROFUNC(3) -#define BOOST_MOVE_ITERATE_1TO4(MACROFUNC) BOOST_MOVE_ITERATE_1TO3(MACROFUNC) MACROFUNC(4) -#define BOOST_MOVE_ITERATE_1TO5(MACROFUNC) BOOST_MOVE_ITERATE_1TO4(MACROFUNC) MACROFUNC(5) -#define BOOST_MOVE_ITERATE_1TO6(MACROFUNC) BOOST_MOVE_ITERATE_1TO5(MACROFUNC) MACROFUNC(6) -#define BOOST_MOVE_ITERATE_1TO7(MACROFUNC) BOOST_MOVE_ITERATE_1TO6(MACROFUNC) MACROFUNC(7) -#define BOOST_MOVE_ITERATE_1TO8(MACROFUNC) BOOST_MOVE_ITERATE_1TO7(MACROFUNC) MACROFUNC(8) -#define BOOST_MOVE_ITERATE_1TO9(MACROFUNC) BOOST_MOVE_ITERATE_1TO8(MACROFUNC) MACROFUNC(9) - -//BOOST_MOVE_ITERATE_0TON -#define BOOST_MOVE_ITERATE_0TO0(MACROFUNC) MACROFUNC(0) -#define BOOST_MOVE_ITERATE_0TO1(MACROFUNC) BOOST_MOVE_ITERATE_0TO0(MACROFUNC) MACROFUNC(1) -#define BOOST_MOVE_ITERATE_0TO2(MACROFUNC) BOOST_MOVE_ITERATE_0TO1(MACROFUNC) MACROFUNC(2) -#define BOOST_MOVE_ITERATE_0TO3(MACROFUNC) BOOST_MOVE_ITERATE_0TO2(MACROFUNC) MACROFUNC(3) -#define BOOST_MOVE_ITERATE_0TO4(MACROFUNC) BOOST_MOVE_ITERATE_0TO3(MACROFUNC) MACROFUNC(4) -#define BOOST_MOVE_ITERATE_0TO5(MACROFUNC) BOOST_MOVE_ITERATE_0TO4(MACROFUNC) MACROFUNC(5) -#define BOOST_MOVE_ITERATE_0TO6(MACROFUNC) BOOST_MOVE_ITERATE_0TO5(MACROFUNC) MACROFUNC(6) -#define BOOST_MOVE_ITERATE_0TO7(MACROFUNC) BOOST_MOVE_ITERATE_0TO6(MACROFUNC) MACROFUNC(7) -#define BOOST_MOVE_ITERATE_0TO8(MACROFUNC) BOOST_MOVE_ITERATE_0TO7(MACROFUNC) MACROFUNC(8) -#define BOOST_MOVE_ITERATE_0TO9(MACROFUNC) BOOST_MOVE_ITERATE_0TO8(MACROFUNC) MACROFUNC(9) - -//BOOST_MOVE_ITERATE_NTON -#define BOOST_MOVE_ITERATE_1TO1(MACROFUNC) MACROFUNC(1) -#define BOOST_MOVE_ITERATE_2TO2(MACROFUNC) MACROFUNC(2) -#define BOOST_MOVE_ITERATE_3TO3(MACROFUNC) MACROFUNC(3) -#define BOOST_MOVE_ITERATE_4TO4(MACROFUNC) MACROFUNC(4) -#define BOOST_MOVE_ITERATE_5TO5(MACROFUNC) MACROFUNC(5) -#define BOOST_MOVE_ITERATE_6TO6(MACROFUNC) MACROFUNC(6) -#define BOOST_MOVE_ITERATE_7TO7(MACROFUNC) MACROFUNC(7) -#define BOOST_MOVE_ITERATE_8TO8(MACROFUNC) MACROFUNC(8) -#define BOOST_MOVE_ITERATE_9TO9(MACROFUNC) MACROFUNC(9) - -//BOOST_MOVE_ITER2D_0TOMAX -#define BOOST_MOVE_ITER2DLOW_0TOMAX0(MACROFUNC2D, M) MACROFUNC2D(M, 0) -#define BOOST_MOVE_ITER2DLOW_0TOMAX1(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX0(MACROFUNC2D, M) MACROFUNC2D(M, 1) -#define BOOST_MOVE_ITER2DLOW_0TOMAX2(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX1(MACROFUNC2D, M) MACROFUNC2D(M, 2) -#define BOOST_MOVE_ITER2DLOW_0TOMAX3(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX2(MACROFUNC2D, M) MACROFUNC2D(M, 3) -#define BOOST_MOVE_ITER2DLOW_0TOMAX4(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX3(MACROFUNC2D, M) MACROFUNC2D(M, 4) -#define BOOST_MOVE_ITER2DLOW_0TOMAX5(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX4(MACROFUNC2D, M) MACROFUNC2D(M, 5) -#define BOOST_MOVE_ITER2DLOW_0TOMAX6(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX5(MACROFUNC2D, M) MACROFUNC2D(M, 6) -#define BOOST_MOVE_ITER2DLOW_0TOMAX7(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX6(MACROFUNC2D, M) MACROFUNC2D(M, 7) -#define BOOST_MOVE_ITER2DLOW_0TOMAX8(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX7(MACROFUNC2D, M) MACROFUNC2D(M, 8) -#define BOOST_MOVE_ITER2DLOW_0TOMAX9(MACROFUNC2D, M) BOOST_MOVE_ITER2DLOW_0TOMAX8(MACROFUNC2D, M) MACROFUNC2D(M, 9) - -#define BOOST_MOVE_ITER2D_0TOMAX0(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 0) -#define BOOST_MOVE_ITER2D_0TOMAX1(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX0(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 1) -#define BOOST_MOVE_ITER2D_0TOMAX2(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX1(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 2) -#define BOOST_MOVE_ITER2D_0TOMAX3(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX2(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 3) -#define BOOST_MOVE_ITER2D_0TOMAX4(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX3(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 4) -#define BOOST_MOVE_ITER2D_0TOMAX5(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX4(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 5) -#define BOOST_MOVE_ITER2D_0TOMAX6(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX5(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 6) -#define BOOST_MOVE_ITER2D_0TOMAX7(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX6(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 7) -#define BOOST_MOVE_ITER2D_0TOMAX8(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX7(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 8) -#define BOOST_MOVE_ITER2D_0TOMAX9(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX8(MAX, MACROFUNC2D) BOOST_MOVE_ITER2DLOW_0TOMAX##MAX(MACROFUNC2D, 9) - -#define BOOST_MOVE_ITER2D_0TOMAX(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX_I (MAX, MACROFUNC2D) -#define BOOST_MOVE_ITER2D_0TOMAX_I(MAX, MACROFUNC2D) BOOST_MOVE_ITER2D_0TOMAX##MAX(MAX, MACROFUNC2D) - - - - -//BOOST_MOVE_CAT -#define BOOST_MOVE_CAT(a, b) BOOST_MOVE_CAT_I(a, b) -#define BOOST_MOVE_CAT_I(a, b) a ## b -//# define BOOST_MOVE_CAT_I(a, b) BOOST_MOVE_CAT_II(~, a ## b) -//# define BOOST_MOVE_CAT_II(p, res) res - -#endif //#ifndef BOOST_MOVE_DETAIL_FWD_MACROS_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/iterator_traits.hpp b/lib/3rdParty/boost/boost/move/detail/iterator_traits.hpp deleted file mode 100644 index 5ffcb2cf0..000000000 --- a/lib/3rdParty/boost/boost/move/detail/iterator_traits.hpp +++ /dev/null @@ -1,77 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_ITERATOR_TRAITS_HPP -#define BOOST_MOVE_DETAIL_ITERATOR_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include - -#include -BOOST_MOVE_STD_NS_BEG - -struct input_iterator_tag; -struct forward_iterator_tag; -struct bidirectional_iterator_tag; -struct random_access_iterator_tag; -struct output_iterator_tag; - -BOOST_MOVE_STD_NS_END -#include - -namespace boost{ namespace movelib{ - -template -struct iterator_traits -{ - typedef typename Iterator::difference_type difference_type; - typedef typename Iterator::value_type value_type; - typedef typename Iterator::pointer pointer; - typedef typename Iterator::reference reference; - typedef typename Iterator::iterator_category iterator_category; - typedef typename boost::move_detail::make_unsigned::type size_type; -}; - -template -struct iterator_traits -{ - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef T* pointer; - typedef T& reference; - typedef std::random_access_iterator_tag iterator_category; - typedef typename boost::move_detail::make_unsigned::type size_type; -}; - -template -struct iterator_traits -{ - typedef std::ptrdiff_t difference_type; - typedef T value_type; - typedef const T* pointer; - typedef const T& reference; - typedef std::random_access_iterator_tag iterator_category; - typedef typename boost::move_detail::make_unsigned::type size_type; -}; - -}} //namespace boost { namespace movelib{ - -#endif //#ifndef BOOST_MOVE_DETAIL_ITERATOR_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/meta_utils.hpp b/lib/3rdParty/boost/boost/move/detail/meta_utils.hpp deleted file mode 100644 index e45394c97..000000000 --- a/lib/3rdParty/boost/boost/move/detail/meta_utils.hpp +++ /dev/null @@ -1,585 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_META_UTILS_HPP -#define BOOST_MOVE_DETAIL_META_UTILS_HPP - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif -#include -#include //forceinline -#include -#include //for std::size_t - -//Small meta-typetraits to support move - -namespace boost { - -//Forward declare boost::rv -template class rv; - -namespace move_detail { - -////////////////////////////////////// -// is_different -////////////////////////////////////// -template -struct is_different -{ - static const bool value = !is_same::value; -}; - -////////////////////////////////////// -// apply -////////////////////////////////////// -template -struct apply -{ - typedef typename F::template apply::type type; -}; - -////////////////////////////////////// -// bool_ -////////////////////////////////////// - -template< bool C_ > -struct bool_ : integral_constant -{ - operator bool() const { return C_; } - bool operator()() const { return C_; } -}; - -typedef bool_ true_; -typedef bool_ false_; - -////////////////////////////////////// -// nat -////////////////////////////////////// -struct nat{}; - -////////////////////////////////////// -// yes_type/no_type -////////////////////////////////////// -typedef char yes_type; - -struct no_type -{ - char _[2]; -}; - -////////////////////////////////////// -// natify -////////////////////////////////////// -template struct natify{}; - -////////////////////////////////////// -// remove_reference -////////////////////////////////////// -template -struct remove_reference -{ - typedef T type; -}; - -template -struct remove_reference -{ - typedef T type; -}; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template -struct remove_reference -{ - typedef T type; -}; - -#else - -template -struct remove_reference< rv > -{ - typedef T type; -}; - -template -struct remove_reference< rv &> -{ - typedef T type; -}; - -template -struct remove_reference< const rv &> -{ - typedef T type; -}; - -#endif - -////////////////////////////////////// -// remove_pointer -////////////////////////////////////// - -template< class T > struct remove_pointer { typedef T type; }; -template< class T > struct remove_pointer { typedef T type; }; -template< class T > struct remove_pointer { typedef T type; }; -template< class T > struct remove_pointer { typedef T type; }; -template< class T > struct remove_pointer { typedef T type; }; - -////////////////////////////////////// -// add_pointer -////////////////////////////////////// -template< class T > -struct add_pointer -{ - typedef typename remove_reference::type* type; -}; - -////////////////////////////////////// -// add_const -////////////////////////////////////// -template -struct add_const -{ - typedef const T type; -}; - -template -struct add_const -{ - typedef const T& type; -}; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template -struct add_const -{ - typedef T&& type; -}; - -#endif - -////////////////////////////////////// -// add_lvalue_reference -////////////////////////////////////// -template -struct add_lvalue_reference -{ typedef T& type; }; - -template struct add_lvalue_reference { typedef T& type; }; -template<> struct add_lvalue_reference { typedef void type; }; -template<> struct add_lvalue_reference { typedef const void type; }; -template<> struct add_lvalue_reference { typedef volatile void type; }; -template<> struct add_lvalue_reference{ typedef const volatile void type; }; - -template -struct add_const_lvalue_reference -{ - typedef typename remove_reference::type t_unreferenced; - typedef typename add_const::type t_unreferenced_const; - typedef typename add_lvalue_reference - ::type type; -}; - -////////////////////////////////////// -// is_lvalue_reference -////////////////////////////////////// -template -struct is_lvalue_reference -{ - static const bool value = false; -}; - -template -struct is_lvalue_reference -{ - static const bool value = true; -}; - - -////////////////////////////////////// -// identity -////////////////////////////////////// -template -struct identity -{ - typedef T type; - typedef typename add_const_lvalue_reference::type reference; - reference operator()(reference t) - { return t; } -}; - -////////////////////////////////////// -// is_class_or_union -////////////////////////////////////// -template -struct is_class_or_union -{ - struct twochar { char dummy[2]; }; - template - static char is_class_or_union_tester(void(U::*)(void)); - template - static twochar is_class_or_union_tester(...); - static const bool value = sizeof(is_class_or_union_tester(0)) == sizeof(char); -}; - -////////////////////////////////////// -// addressof -////////////////////////////////////// -template -struct addr_impl_ref -{ - T & v_; - BOOST_MOVE_FORCEINLINE addr_impl_ref( T & v ): v_( v ) {} - BOOST_MOVE_FORCEINLINE operator T& () const { return v_; } - - private: - addr_impl_ref & operator=(const addr_impl_ref &); -}; - -template -struct addressof_impl -{ - BOOST_MOVE_FORCEINLINE static T * f( T & v, long ) - { - return reinterpret_cast( - &const_cast(reinterpret_cast(v))); - } - - BOOST_MOVE_FORCEINLINE static T * f( T * v, int ) - { return v; } -}; - -template -BOOST_MOVE_FORCEINLINE T * addressof( T & v ) -{ - return ::boost::move_detail::addressof_impl::f - ( ::boost::move_detail::addr_impl_ref( v ), 0 ); -} - -////////////////////////////////////// -// has_pointer_type -////////////////////////////////////// -template -struct has_pointer_type -{ - struct two { char c[2]; }; - template static two test(...); - template static char test(typename U::pointer* = 0); - static const bool value = sizeof(test(0)) == 1; -}; - -////////////////////////////////////// -// is_convertible -////////////////////////////////////// -#if defined(_MSC_VER) && (_MSC_VER >= 1400) - -//use intrinsic since in MSVC -//overaligned types can't go through ellipsis -template -struct is_convertible -{ - static const bool value = __is_convertible_to(T, U); -}; - -#else - -template -class is_convertible -{ - typedef typename add_lvalue_reference::type t_reference; - typedef char true_t; - class false_t { char dummy[2]; }; - static false_t dispatch(...); - static true_t dispatch(U); - static t_reference trigger(); - public: - static const bool value = sizeof(dispatch(trigger())) == sizeof(true_t); -}; - -#endif - -template ::value> -struct is_same_or_convertible - : is_convertible -{}; - -template -struct is_same_or_convertible -{ - static const bool value = true; -}; - -template< - bool C - , typename F1 - , typename F2 - > -struct eval_if_c - : if_c::type -{}; - -template< - typename C - , typename T1 - , typename T2 - > -struct eval_if - : if_::type -{}; - - -#if defined(BOOST_GCC) && (BOOST_GCC <= 40000) -#define BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN -#endif - -template -struct enable_if_convertible - : enable_if< is_convertible, R> -{}; - -template -struct disable_if_convertible - : disable_if< is_convertible, R> -{}; - -template -struct enable_if_same_or_convertible - : enable_if< is_same_or_convertible, R> -{}; - -template -struct disable_if_same_or_convertible - : disable_if< is_same_or_convertible, R> -{}; - -////////////////////////////////////////////////////////////////////////////// -// -// and_ -// -////////////////////////////////////////////////////////////////////////////// -template -struct and_impl - : and_impl -{}; - -template<> -struct and_impl -{ - static const bool value = true; -}; - -template -struct and_impl -{ - static const bool value = false; -}; - -template -struct and_ - : and_impl -{}; - -////////////////////////////////////////////////////////////////////////////// -// -// or_ -// -////////////////////////////////////////////////////////////////////////////// -template -struct or_impl - : or_impl -{}; - -template<> -struct or_impl -{ - static const bool value = false; -}; - -template -struct or_impl -{ - static const bool value = true; -}; - -template -struct or_ - : or_impl -{}; - -////////////////////////////////////////////////////////////////////////////// -// -// not_ -// -////////////////////////////////////////////////////////////////////////////// -template -struct not_ -{ - static const bool value = !T::value; -}; - -////////////////////////////////////////////////////////////////////////////// -// -// enable_if_and / disable_if_and / enable_if_or / disable_if_or -// -////////////////////////////////////////////////////////////////////////////// - -template -struct enable_if_and - : enable_if_c< and_::value, R> -{}; - -template -struct disable_if_and - : disable_if_c< and_::value, R> -{}; - -template -struct enable_if_or - : enable_if_c< or_::value, R> -{}; - -template -struct disable_if_or - : disable_if_c< or_::value, R> -{}; - -////////////////////////////////////////////////////////////////////////////// -// -// has_move_emulation_enabled_impl -// -////////////////////////////////////////////////////////////////////////////// -template -struct has_move_emulation_enabled_impl - : is_convertible< T, ::boost::rv& > -{}; - -template -struct has_move_emulation_enabled_impl -{ static const bool value = false; }; - -template -struct has_move_emulation_enabled_impl< ::boost::rv > -{ static const bool value = false; }; - -////////////////////////////////////////////////////////////////////////////// -// -// is_rv_impl -// -////////////////////////////////////////////////////////////////////////////// - -template -struct is_rv_impl -{ static const bool value = false; }; - -template -struct is_rv_impl< rv > -{ static const bool value = true; }; - -template -struct is_rv_impl< const rv > -{ static const bool value = true; }; - -// Code from Jeffrey Lee Hellrung, many thanks - -template< class T > -struct is_rvalue_reference -{ static const bool value = false; }; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template< class T > -struct is_rvalue_reference< T&& > -{ static const bool value = true; }; - -#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template< class T > -struct is_rvalue_reference< boost::rv& > -{ static const bool value = true; }; - -template< class T > -struct is_rvalue_reference< const boost::rv& > -{ static const bool value = true; }; - -#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template< class T > -struct add_rvalue_reference -{ typedef T&& type; }; - -#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -namespace detail_add_rvalue_reference -{ - template< class T - , bool emulation = has_move_emulation_enabled_impl::value - , bool rv = is_rv_impl::value > - struct add_rvalue_reference_impl { typedef T type; }; - - template< class T, bool emulation> - struct add_rvalue_reference_impl< T, emulation, true > { typedef T & type; }; - - template< class T, bool rv > - struct add_rvalue_reference_impl< T, true, rv > { typedef ::boost::rv& type; }; -} // namespace detail_add_rvalue_reference - -template< class T > -struct add_rvalue_reference - : detail_add_rvalue_reference::add_rvalue_reference_impl -{ }; - -template< class T > -struct add_rvalue_reference -{ typedef T & type; }; - -#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template< class T > struct remove_rvalue_reference { typedef T type; }; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template< class T > struct remove_rvalue_reference< T&& > { typedef T type; }; -#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template< class T > struct remove_rvalue_reference< rv > { typedef T type; }; - template< class T > struct remove_rvalue_reference< const rv > { typedef T type; }; - template< class T > struct remove_rvalue_reference< volatile rv > { typedef T type; }; - template< class T > struct remove_rvalue_reference< const volatile rv > { typedef T type; }; - template< class T > struct remove_rvalue_reference< rv& > { typedef T type; }; - template< class T > struct remove_rvalue_reference< const rv& > { typedef T type; }; - template< class T > struct remove_rvalue_reference< volatile rv& > { typedef T type; }; - template< class T > struct remove_rvalue_reference< const volatile rv& >{ typedef T type; }; -#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -// Ideas from Boost.Move review, Jeffrey Lee Hellrung: -// -//- TypeTraits metafunctions is_lvalue_reference, add_lvalue_reference, and remove_lvalue_reference ? -// Perhaps add_reference and remove_reference can be modified so that they behave wrt emulated rvalue -// references the same as wrt real rvalue references, i.e., add_reference< rv& > -> T& rather than -// rv& (since T&& & -> T&). -// -//- Add'l TypeTraits has_[trivial_]move_{constructor,assign}...? -// -//- An as_lvalue(T& x) function, which amounts to an identity operation in C++0x, but strips emulated -// rvalue references in C++03. This may be necessary to prevent "accidental moves". - -} //namespace move_detail { -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_DETAIL_META_UTILS_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/meta_utils_core.hpp b/lib/3rdParty/boost/boost/move/detail/meta_utils_core.hpp deleted file mode 100644 index 40dbb6efc..000000000 --- a/lib/3rdParty/boost/boost/move/detail/meta_utils_core.hpp +++ /dev/null @@ -1,132 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP -#define BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -//Small meta-typetraits to support move - -namespace boost { -namespace move_detail { - -////////////////////////////////////// -// if_c -////////////////////////////////////// -template -struct if_c -{ - typedef T1 type; -}; - -template -struct if_c -{ - typedef T2 type; -}; - -////////////////////////////////////// -// if_ -////////////////////////////////////// -template -struct if_ : if_c<0 != T1::value, T2, T3> -{}; - -////////////////////////////////////// -// enable_if_c -////////////////////////////////////// -template -struct enable_if_c -{ - typedef T type; -}; - -template -struct enable_if_c {}; - -////////////////////////////////////// -// enable_if -////////////////////////////////////// -template -struct enable_if : enable_if_c {}; - -////////////////////////////////////// -// disable_if_c -////////////////////////////////////// -template -struct disable_if_c - : enable_if_c -{}; - -////////////////////////////////////// -// disable_if -////////////////////////////////////// -template -struct disable_if : enable_if_c {}; - -////////////////////////////////////// -// integral_constant -////////////////////////////////////// -template -struct integral_constant -{ - static const T value = v; - typedef T value_type; - typedef integral_constant type; - - operator T() const { return value; } - T operator()() const { return value; } -}; - -typedef integral_constant true_type; -typedef integral_constant false_type; - - -////////////////////////////////////// -// is_same -////////////////////////////////////// -template -struct is_same -{ - static const bool value = false; -}; - -template -struct is_same -{ - static const bool value = true; -}; - -////////////////////////////////////// -// enable_if_same -////////////////////////////////////// -template -struct enable_if_same : enable_if, R> {}; - -////////////////////////////////////// -// disable_if_same -////////////////////////////////////// -template -struct disable_if_same : disable_if, R> {}; - -} //namespace move_detail { -} //namespace boost { - -#endif //#ifndef BOOST_MOVE_DETAIL_META_UTILS_CORE_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/move_helpers.hpp b/lib/3rdParty/boost/boost/move/detail/move_helpers.hpp deleted file mode 100644 index 17138444d..000000000 --- a/lib/3rdParty/boost/boost/move/detail/move_helpers.hpp +++ /dev/null @@ -1,256 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2010-2016. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_MOVE_HELPERS_HPP -#define BOOST_MOVE_MOVE_HELPERS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include - -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -#define BOOST_MOVE_CATCH_CONST(U) \ - typename ::boost::move_detail::if_< ::boost::move_detail::is_class, BOOST_CATCH_CONST_RLVALUE(U), const U &>::type -#define BOOST_MOVE_CATCH_RVALUE(U)\ - typename ::boost::move_detail::if_< ::boost::move_detail::is_class, BOOST_RV_REF(U), ::boost::move_detail::nat>::type -#define BOOST_MOVE_CATCH_FWD(U) BOOST_FWD_REF(U) -#else -#define BOOST_MOVE_CATCH_CONST(U) const U & -#define BOOST_MOVE_CATCH_RVALUE(U) U && -#define BOOST_MOVE_CATCH_FWD(U) U && -#endif - -//////////////////////////////////////// -// -// BOOST_MOVE_CONVERSION_AWARE_CATCH -// -//////////////////////////////////////// - -#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES - - template - struct boost_move_conversion_aware_catch_1 - : public ::boost::move_detail::enable_if_and - < RETURN_VALUE - , ::boost::move_detail::is_same - , ::boost::move_detail::is_class - , ::boost::has_move_emulation_disabled - > - {}; - - template - struct boost_move_conversion_aware_catch_2 - : public ::boost::move_detail::disable_if_or - < RETURN_VALUE - , ::boost::move_detail::is_same - , ::boost::move_detail::is_rv_impl - , ::boost::move_detail::and_ - < ::boost::move_detail::is_rv_impl - , ::boost::move_detail::is_class - > - > - {}; - - #define BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\ - { return FWD_FUNCTION(static_cast(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ - { return FWD_FUNCTION(::boost::move(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(TYPE &x)\ - { return FWD_FUNCTION(const_cast(x)); }\ - // - #if defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN) - #define BOOST_MOVE_CONVERSION_AWARE_CATCH(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - \ - template\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u,\ - typename boost_move_conversion_aware_catch_1< ::boost::move_detail::nat, BOOST_MOVE_TEMPL_PARAM, TYPE>::type* = 0)\ - { return FWD_FUNCTION(u); }\ - \ - template\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u,\ - typename boost_move_conversion_aware_catch_2< ::boost::move_detail::nat, BOOST_MOVE_TEMPL_PARAM, TYPE>::type* = 0)\ - {\ - TYPE t((u));\ - return FWD_FUNCTION(::boost::move(t));\ - }\ - // - #else - #define BOOST_MOVE_CONVERSION_AWARE_CATCH(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - BOOST_MOVE_CONVERSION_AWARE_CATCH_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - \ - template\ - BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_1::type\ - PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ - { return FWD_FUNCTION(u); }\ - \ - template\ - BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_2::type\ - PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ - {\ - TYPE t((u));\ - return FWD_FUNCTION(::boost::move(t));\ - }\ - // - #endif -#elif (defined(_MSC_VER) && (_MSC_VER == 1600)) - - #define BOOST_MOVE_CONVERSION_AWARE_CATCH(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\ - { return FWD_FUNCTION(static_cast(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ - { return FWD_FUNCTION(::boost::move(x)); }\ - \ - template\ - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c\ - < !::boost::move_detail::is_same::value\ - , RETURN_VALUE >::type\ - PUB_FUNCTION(const BOOST_MOVE_TEMPL_PARAM &u)\ - {\ - TYPE t((u));\ - return FWD_FUNCTION(::boost::move(t));\ - }\ - // - -#else //BOOST_NO_CXX11_RVALUE_REFERENCES - - #define BOOST_MOVE_CONVERSION_AWARE_CATCH(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION)\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_CONST(TYPE) x)\ - { return FWD_FUNCTION(x); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ - { return FWD_FUNCTION(::boost::move(x)); }\ - // - -#endif //BOOST_NO_CXX11_RVALUE_REFERENCES - -//////////////////////////////////////// -// -// BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG -// -//////////////////////////////////////// - -#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES - - template - struct boost_move_conversion_aware_catch_1arg_1 - : public ::boost::move_detail::enable_if_and - < RETURN_VALUE - , ::boost::move_detail::not_< ::boost::move_detail::is_same_or_convertible > - , ::boost::move_detail::is_same - , ::boost::has_move_emulation_disabled - > - {}; - - template - struct boost_move_conversion_aware_catch_1arg_2 - : public ::boost::move_detail::disable_if_or - < RETURN_VALUE - , ::boost::move_detail::is_same_or_convertible< BOOST_MOVE_TEMPL_PARAM, UNLESS_CONVERTIBLE_TO> - , ::boost::move_detail::is_rv_impl - , ::boost::move_detail::is_same - > - {}; - - #define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_CONST(TYPE) x)\ - { return FWD_FUNCTION(arg1, static_cast(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ - { return FWD_FUNCTION(arg1, ::boost::move(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, TYPE &x)\ - { return FWD_FUNCTION(arg1, const_cast(x)); }\ - // - #if defined(BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN) - #define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - \ - template\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u,\ - typename boost_move_conversion_aware_catch_1arg_1::type* = 0)\ - { return FWD_FUNCTION(arg1, u); }\ - \ - template\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u,\ - typename boost_move_conversion_aware_catch_1arg_2::type* = 0)\ - {\ - TYPE t((u));\ - return FWD_FUNCTION(arg1, ::boost::move(t));\ - }\ - // - #else - #define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG_COMMON(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - \ - template\ - BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_1arg_1::type\ - PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\ - { return FWD_FUNCTION(arg1, u); }\ - \ - template\ - BOOST_MOVE_FORCEINLINE typename boost_move_conversion_aware_catch_1arg_2::type\ - PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\ - {\ - TYPE t((u));\ - return FWD_FUNCTION(arg1, ::boost::move(t));\ - }\ - // - #endif - -#elif (defined(_MSC_VER) && (_MSC_VER == 1600)) - - #define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_CONST(TYPE) x)\ - { return FWD_FUNCTION(arg1, static_cast(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ - { return FWD_FUNCTION(arg1, ::boost::move(x)); }\ - \ - template\ - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::disable_if_or\ - < RETURN_VALUE \ - , ::boost::move_detail::is_same \ - , ::boost::move_detail::is_same_or_convertible \ - >::type\ - PUB_FUNCTION(ARG1 arg1, const BOOST_MOVE_TEMPL_PARAM &u)\ - {\ - TYPE t((u));\ - return FWD_FUNCTION(arg1, ::boost::move(t));\ - }\ - // - -#else - - #define BOOST_MOVE_CONVERSION_AWARE_CATCH_1ARG(PUB_FUNCTION, TYPE, RETURN_VALUE, FWD_FUNCTION, ARG1, UNLESS_CONVERTIBLE_TO)\ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_CONST(TYPE) x)\ - { return FWD_FUNCTION(arg1, static_cast(x)); }\ - \ - BOOST_MOVE_FORCEINLINE RETURN_VALUE PUB_FUNCTION(ARG1 arg1, BOOST_MOVE_CATCH_RVALUE(TYPE) x) \ - { return FWD_FUNCTION(arg1, ::boost::move(x)); }\ - // - -#endif - -#endif //#ifndef BOOST_MOVE_MOVE_HELPERS_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/placement_new.hpp b/lib/3rdParty/boost/boost/move/detail/placement_new.hpp deleted file mode 100644 index 69d33328c..000000000 --- a/lib/3rdParty/boost/boost/move/detail/placement_new.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef BOOST_MOVE_DETAIL_PLACEMENT_NEW_HPP -#define BOOST_MOVE_DETAIL_PLACEMENT_NEW_HPP -/////////////////////////////////////////////////////////////////////////////// -// -// (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_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -struct boost_move_new_t{}; - -//avoid including -inline void *operator new(std::size_t, void *p, boost_move_new_t) -{ return p; } - -inline void operator delete(void *, void *, boost_move_new_t) -{} - -#endif //BOOST_MOVE_DETAIL_PLACEMENT_NEW_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/reverse_iterator.hpp b/lib/3rdParty/boost/boost/move/detail/reverse_iterator.hpp deleted file mode 100644 index 73f59ce79..000000000 --- a/lib/3rdParty/boost/boost/move/detail/reverse_iterator.hpp +++ /dev/null @@ -1,171 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// -// (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/move for documentation. -// -///////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_DETAIL_REVERSE_ITERATOR_HPP -#define BOOST_MOVE_DETAIL_REVERSE_ITERATOR_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include - -namespace boost { -namespace movelib { - -template -class reverse_iterator -{ - public: - typedef typename boost::movelib::iterator_traits::pointer pointer; - typedef typename boost::movelib::iterator_traits::reference reference; - typedef typename boost::movelib::iterator_traits::difference_type difference_type; - typedef typename boost::movelib::iterator_traits::iterator_category iterator_category; - typedef typename boost::movelib::iterator_traits::value_type value_type; - - - typedef It iterator_type; - - reverse_iterator() - : m_current() //Value initialization to achieve "null iterators" (N3644) - {} - - explicit reverse_iterator(It r) - : m_current(r) - {} - - reverse_iterator(const reverse_iterator& r) - : m_current(r.base()) - {} - - template - reverse_iterator( const reverse_iterator& r - , typename boost::move_detail::enable_if_convertible::type* =0 - ) - : m_current(r.base()) - {} - - reverse_iterator & operator=( const reverse_iterator& r) - { m_current = r.base(); return *this; } - - template - typename boost::move_detail::enable_if_convertible::type - operator=( const reverse_iterator& r) - { m_current = r.base(); return *this; } - - It base() const - { return m_current; } - - reference operator*() const - { - It temp(m_current); - --temp; - reference r = *temp; - return r; - } - - pointer operator->() const - { - It temp(m_current); - --temp; - return iterator_arrow_result(temp); - } - - reference operator[](difference_type off) const - { - return this->m_current[-off - 1]; - } - - reverse_iterator& operator++() - { - --m_current; - return *this; - } - - reverse_iterator operator++(int) - { - reverse_iterator temp((*this)); - --m_current; - return temp; - } - - reverse_iterator& operator--() - { - ++m_current; - return *this; - } - - reverse_iterator operator--(int) - { - reverse_iterator temp((*this)); - ++m_current; - return temp; - } - - friend bool operator==(const reverse_iterator& l, const reverse_iterator& r) - { return l.m_current == r.m_current; } - - friend bool operator!=(const reverse_iterator& l, const reverse_iterator& r) - { return l.m_current != r.m_current; } - - friend bool operator<(const reverse_iterator& l, const reverse_iterator& r) - { return l.m_current > r.m_current; } - - friend bool operator<=(const reverse_iterator& l, const reverse_iterator& r) - { return l.m_current >= r.m_current; } - - friend bool operator>(const reverse_iterator& l, const reverse_iterator& r) - { return l.m_current < r.m_current; } - - friend bool operator>=(const reverse_iterator& l, const reverse_iterator& r) - { return l.m_current <= r.m_current; } - - reverse_iterator& operator+=(difference_type off) - { m_current -= off; return *this; } - - reverse_iterator& operator-=(difference_type off) - { m_current += off; return *this; } - - friend reverse_iterator operator+(reverse_iterator l, difference_type off) - { return (l += off); } - - friend reverse_iterator operator+(difference_type off, reverse_iterator r) - { return (r += off); } - - friend reverse_iterator operator-(reverse_iterator l, difference_type off) - { return (l-= off); } - - friend difference_type operator-(const reverse_iterator& l, const reverse_iterator& r) - { return r.m_current - l.m_current; } - - private: - It m_current; // the wrapped iterator -}; - -template< class Iterator > -reverse_iterator make_reverse_iterator( Iterator i ) -{ - return reverse_iterator(i); -} - -} //namespace movelib { -} //namespace boost { - -#include - -#endif //BOOST_MOVE_DETAIL_REVERSE_ITERATOR_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/std_ns_begin.hpp b/lib/3rdParty/boost/boost/move/detail/std_ns_begin.hpp deleted file mode 100644 index a768e61a1..000000000 --- a/lib/3rdParty/boost/boost/move/detail/std_ns_begin.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#////////////////////////////////////////////////////////////////////////////// -#// -#// (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/move for documentation. -#// -#////////////////////////////////////////////////////////////////////////////// -# -#if defined(_LIBCPP_VERSION) - #if defined(__clang__) - #define BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wc++11-extensions" - #endif - #define BOOST_MOVE_STD_NS_BEG _LIBCPP_BEGIN_NAMESPACE_STD - #define BOOST_MOVE_STD_NS_END _LIBCPP_END_NAMESPACE_STD -#elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE_VERSION) //GCC >= 4.6 - #define BOOST_MOVE_STD_NS_BEG namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION - #define BOOST_MOVE_STD_NS_END _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE) //GCC >= 4.2 - #define BOOST_MOVE_STD_NS_BEG _GLIBCXX_BEGIN_NAMESPACE(std) - #define BOOST_MOVE_STD_NS_END _GLIBCXX_END_NAMESPACE -#else - #define BOOST_MOVE_STD_NS_BEG namespace std{ - #define BOOST_MOVE_STD_NS_END } -#endif - diff --git a/lib/3rdParty/boost/boost/move/detail/std_ns_end.hpp b/lib/3rdParty/boost/boost/move/detail/std_ns_end.hpp deleted file mode 100644 index 097505995..000000000 --- a/lib/3rdParty/boost/boost/move/detail/std_ns_end.hpp +++ /dev/null @@ -1,14 +0,0 @@ -#////////////////////////////////////////////////////////////////////////////// -#// -#// (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/move for documentation. -#// -#////////////////////////////////////////////////////////////////////////////// -#ifdef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH - #pragma GCC diagnostic pop - #undef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH -#endif //BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH diff --git a/lib/3rdParty/boost/boost/move/detail/type_traits.hpp b/lib/3rdParty/boost/boost/move/detail/type_traits.hpp deleted file mode 100644 index 1b5d8388e..000000000 --- a/lib/3rdParty/boost/boost/move/detail/type_traits.hpp +++ /dev/null @@ -1,1072 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// (C) Copyright John Maddock 2000. -// (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/move for documentation. -// -// The alignment and Type traits implementation comes from -// John Maddock's TypeTraits library. -// -// Some other tricks come from Howard Hinnant's papers and StackOverflow replies -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_MOVE_DETAIL_TYPE_TRAITS_HPP -#define BOOST_MOVE_DETAIL_TYPE_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include - -// move/detail -#include -// other -#include -#include -// std -#include - -//Use of Boost.TypeTraits leads to long preprocessed source code due to -//MPL dependencies. We'll use intrinsics directly and make or own -//simplified version of TypeTraits. -//If someday Boost.TypeTraits dependencies are minimized, we should -//revisit this file redirecting code to Boost.TypeTraits traits. - -//These traits don't care about volatile, reference or other checks -//made by Boost.TypeTraits because no volatile or reference types -//can be hold in Boost.Containers. This helps to avoid any Boost.TypeTraits -//dependency. - -// Helper macros for builtin compiler support. -// If your compiler has builtin support for any of the following -// traits concepts, then redefine the appropriate macros to pick -// up on the compiler support: -// -// (these should largely ignore cv-qualifiers) -// BOOST_MOVE_IS_POD(T) should evaluate to true if T is a POD type -// BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect -// BOOST_MOVE_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy -// (Note: this trait does not guarantee T is copy constructible, the copy constructor could be deleted but still be trivial) -// BOOST_MOVE_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(boost::move(t)) <==> memcpy -// BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy -// (Note: this trait does not guarantee T is assignable , the copy assignmen could be deleted but still be trivial) -// BOOST_MOVE_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = boost::move(u) <==> memcpy -// BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect -// BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw -// BOOST_MOVE_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw -// BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw -// BOOST_MOVE_IS_ENUM(T) should evaluate to true it t is a union type. -// -// The following can also be defined: when detected our implementation is greatly simplified. -// -// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T. - -#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000) - // Metrowerks compiler is acquiring intrinsic type traits support - // post version 8. We hook into the published interface to pick up - // user defined specializations as well as compiler intrinsics as - // and when they become available: -# include -# define BOOST_MOVE_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union::value -# define BOOST_MOVE_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD::value -# define BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor::value -# define BOOST_MOVE_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor::value -# define BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment::value -# define BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor::value -#endif - -#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\ - || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500)) -# define BOOST_MOVE_IS_UNION(T) __is_union(T) -# define BOOST_MOVE_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T)) -# define BOOST_MOVE_IS_EMPTY(T) __is_empty(T) -# define BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define BOOST_MOVE_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)|| ::boost::move_detail::is_pod::value) -# define BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ::boost::move_detail::is_pod::value) -# define BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::boost::move_detail::is_pod::value) -# define BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::boost::move_detail::is_trivially_default_constructible::value) -# define BOOST_MOVE_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) || ::boost::move_detail::is_trivially_copy_constructible::value) -# define BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::boost::move_detail::is_trivially_copy_assignable::value) - -# define BOOST_MOVE_IS_ENUM(T) __is_enum(T) -# if defined(_MSC_VER) && (_MSC_VER >= 1700) -# define BOOST_MOVE_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) (__has_trivial_move_constructor(T) || ::boost::move_detail::is_pod::value) -# define BOOST_MOVE_HAS_TRIVIAL_MOVE_ASSIGN(T) (__has_trivial_move_assign(T) || ::boost::move_detail::is_pod::value) -# endif -#endif - -#if defined(BOOST_CLANG) && defined(__has_feature) - -# if __has_feature(is_union) -# define BOOST_MOVE_IS_UNION(T) __is_union(T) -# endif -# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod) -# define BOOST_MOVE_IS_POD(T) __is_pod(T) -# endif -# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty) -# define BOOST_MOVE_IS_EMPTY(T) __is_empty(T) -# endif -# if __has_feature(has_trivial_constructor) -# define BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# endif -# if __has_feature(has_trivial_copy) -# define BOOST_MOVE_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T) -# endif -# if __has_feature(has_trivial_assign) -# define BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) ) -# endif -# if __has_feature(has_trivial_destructor) -# define BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) -# endif -# if __has_feature(has_nothrow_constructor) -# define BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) -# endif -# if __has_feature(has_nothrow_copy) -# define BOOST_MOVE_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T)) -# endif -# if __has_feature(is_nothrow_copy_assignable) -# define BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T)) -# endif -# if __has_feature(is_enum) -# define BOOST_MOVE_IS_ENUM(T) __is_enum(T) -# endif -# if __has_feature(has_trivial_move_constructor) -# define BOOST_MOVE_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T) -# endif -# if __has_feature(has_trivial_move_assign) -# define BOOST_MOVE_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T) -# endif -# define BOOST_MOVE_ALIGNMENT_OF(T) __alignof(T) -#endif - -#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG) - -#ifdef BOOST_INTEL -# define BOOST_MOVE_INTEL_TT_OPTS || ::boost::move_detail::is_pod::value -#else -# define BOOST_MOVE_INTEL_TT_OPTS -#endif - -# define BOOST_MOVE_IS_UNION(T) __is_union(T) -# define BOOST_MOVE_IS_POD(T) __is_pod(T) -# define BOOST_MOVE_IS_EMPTY(T) __is_empty(T) -# define BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) BOOST_MOVE_INTEL_TT_OPTS)) -# define BOOST_MOVE_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) BOOST_MOVE_INTEL_TT_OPTS)) -# define BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_MOVE_INTEL_TT_OPTS) ) -# define BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_MOVE_INTEL_TT_OPTS) -# define BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) BOOST_MOVE_INTEL_TT_OPTS) -# define BOOST_MOVE_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_MOVE_INTEL_TT_OPTS)) -# define BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_MOVE_INTEL_TT_OPTS)) - -# define BOOST_MOVE_IS_ENUM(T) __is_enum(T) -# if (!defined(unix) && !defined(__unix__)) || defined(__LP64__) - // GCC sometimes lies about alignment requirements - // of type double on 32-bit unix platforms, use the - // old implementation instead in that case: -# define BOOST_MOVE_ALIGNMENT_OF(T) __alignof__(T) -# endif -#endif - -#if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600) - -# define BOOST_MOVE_IS_UNION(T) __is_union(T) -# define BOOST_MOVE_IS_POD(T) __is_pod(T) -# define BOOST_MOVE_IS_EMPTY(T) __is_empty(T) -# define BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define BOOST_MOVE_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)) -# define BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T)) -# define BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) -# define BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) -# define BOOST_MOVE_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T)) -# define BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T)) - -# define BOOST_MOVE_IS_ENUM(T) __is_enum(T) -# define BOOST_MOVE_ALIGNMENT_OF(T) __alignof__(T) -#endif - -# if defined(__CODEGEARC__) -# define BOOST_MOVE_IS_UNION(T) __is_union(T) -# define BOOST_MOVE_IS_POD(T) __is_pod(T) -# define BOOST_MOVE_IS_EMPTY(T) __is_empty(T) -# define BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T)) -# define BOOST_MOVE_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T)) -# define BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T)) -# define BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T)) -# define BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T)) -# define BOOST_MOVE_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T)) -# define BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T)) - -# define BOOST_MOVE_IS_ENUM(T) __is_enum(T) -# define BOOST_MOVE_ALIGNMENT_OF(T) alignof(T) - -#endif - -//Fallback definitions - -#ifdef BOOST_MOVE_IS_UNION - #define BOOST_MOVE_IS_UNION_IMPL(T) BOOST_MOVE_IS_UNION(T) -#else - #define BOOST_MOVE_IS_UNION_IMPL(T) false -#endif - -#ifdef BOOST_MOVE_IS_POD - //in some compilers the intrinsic is limited to class types so add scalar and void - #define BOOST_MOVE_IS_POD_IMPL(T) (::boost::move_detail::is_scalar::value ||\ - ::boost::move_detail::is_void::value ||\ - BOOST_MOVE_IS_POD(T)) -#else - #define BOOST_MOVE_IS_POD_IMPL(T) \ - (::boost::move_detail::is_scalar::value || ::boost::move_detail::is_void::value) -#endif - -#ifdef BOOST_MOVE_IS_EMPTY - #define BOOST_MOVE_IS_EMPTY_IMPL(T) BOOST_MOVE_IS_EMPTY(T) -#else - #define BOOST_MOVE_IS_EMPTY_IMPL(T) ::boost::move_detail::is_empty_nonintrinsic::value -#endif - -#ifdef BOOST_MOVE_HAS_TRIVIAL_COPY - #define BOOST_MOVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value ||\ - (::boost::move_detail::is_copy_constructible::value &&\ - BOOST_MOVE_HAS_TRIVIAL_COPY(T)) -#else - #define BOOST_MOVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR - #define BOOST_MOVE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE(T) BOOST_MOVE_HAS_TRIVIAL_CONSTRUCTOR(T) -#else - #define BOOST_MOVE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_TRIVIAL_MOVE_CONSTRUCTOR - #define BOOST_MOVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE(T) BOOST_MOVE_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) -#else - #define BOOST_MOVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_TRIVIAL_ASSIGN - #define BOOST_MOVE_IS_TRIVIALLY_COPY_ASSIGNABLE(T) ::boost::move_detail::is_pod::value ||\ - ( ::boost::move_detail::is_copy_assignable::value &&\ - BOOST_MOVE_HAS_TRIVIAL_ASSIGN(T)) -#else - #define BOOST_MOVE_IS_TRIVIALLY_COPY_ASSIGNABLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_TRIVIAL_MOVE_ASSIGN - #define BOOST_MOVE_IS_TRIVIALLY_MOVE_ASSIGNABLE(T) BOOST_MOVE_HAS_TRIVIAL_MOVE_ASSIGN(T) -#else - #define BOOST_MOVE_IS_TRIVIALLY_MOVE_ASSIGNABLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR - #define BOOST_MOVE_IS_TRIVIALLY_DESTRUCTIBLE(T) BOOST_MOVE_HAS_TRIVIAL_DESTRUCTOR(T) -#else - #define BOOST_MOVE_IS_TRIVIALLY_DESTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR - #define BOOST_MOVE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE(T) BOOST_MOVE_HAS_NOTHROW_CONSTRUCTOR(T) -#else - #define BOOST_MOVE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_NOTHROW_COPY - #define BOOST_MOVE_IS_NOTHROW_COPY_CONSTRUCTIBLE(T) BOOST_MOVE_HAS_NOTHROW_COPY(T) -#else - #define BOOST_MOVE_IS_NOTHROW_COPY_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_NOTHROW_MOVE - #define BOOST_MOVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE(T) BOOST_MOVE_HAS_NOTHROW_MOVE(T) -#else - #define BOOST_MOVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_NOTHROW_ASSIGN - #define BOOST_MOVE_IS_NOTHROW_COPY_ASSIGNABLE(T) BOOST_MOVE_HAS_NOTHROW_ASSIGN(T) -#else - #define BOOST_MOVE_IS_NOTHROW_COPY_ASSIGNABLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_HAS_NOTHROW_MOVE_ASSIGN - #define BOOST_MOVE_IS_NOTHROW_MOVE_ASSIGNABLE(T) BOOST_MOVE_HAS_NOTHROW_MOVE_ASSIGN(T) -#else - #define BOOST_MOVE_IS_NOTHROW_MOVE_ASSIGNABLE(T) ::boost::move_detail::is_pod::value -#endif - -#ifdef BOOST_MOVE_IS_ENUM - #define BOOST_MOVE_IS_ENUM_IMPL(T) BOOST_MOVE_IS_ENUM(T) -#else - #define BOOST_MOVE_IS_ENUM_IMPL(T) ::boost::move_detail::is_enum_nonintrinsic::value -#endif - -namespace boost { -namespace move_detail { - -////////////////////////// -// is_reference -////////////////////////// -template -struct is_reference -{ static const bool value = false; }; - -template -struct is_reference -{ static const bool value = true; }; - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -template -struct is_reference -{ static const bool value = true; }; -#endif - -////////////////////////// -// is_pointer -////////////////////////// -template -struct is_pointer -{ static const bool value = false; }; - -template -struct is_pointer -{ static const bool value = true; }; - -////////////////////////// -// is_const -////////////////////////// -template -struct is_const -{ static const bool value = false; }; - -template -struct is_const -{ static const bool value = true; }; - -////////////////////////// -// unvoid_ref -////////////////////////// -template struct unvoid_ref : add_lvalue_reference{}; -template <> struct unvoid_ref { typedef unvoid_ref & type; }; -template <> struct unvoid_ref { typedef unvoid_ref & type; }; -template <> struct unvoid_ref { typedef unvoid_ref & type; }; -template <> struct unvoid_ref { typedef unvoid_ref & type; }; - -template -struct add_reference : add_lvalue_reference -{}; - -////////////////////////// -// add_const_reference -////////////////////////// -template -struct add_const_reference -{ typedef const T &type; }; - -template -struct add_const_reference -{ typedef T& type; }; - -////////////////////////// -// add_const_if_c -////////////////////////// -template -struct add_const_if_c - : if_c::type, T> -{}; - -////////////////////////// -// remove_const -////////////////////////// -template -struct remove_const -{ typedef T type; }; - -template -struct remove_const< const T> -{ typedef T type; }; - -////////////////////////// -// remove_cv -////////////////////////// -template struct remove_cv { typedef T type; }; -template struct remove_cv { typedef T type; }; -template struct remove_cv { typedef T type; }; -template struct remove_cv { typedef T type; }; - -////////////////////////// -// make_unsigned -////////////////////////// -template -struct make_unsigned_impl { typedef T type; }; -template <> struct make_unsigned_impl { typedef unsigned char type; }; -template <> struct make_unsigned_impl { typedef unsigned short type; }; -template <> struct make_unsigned_impl { typedef unsigned int type; }; -template <> struct make_unsigned_impl { typedef unsigned long type; }; -#ifdef BOOST_HAS_LONG_LONG -template <> struct make_unsigned_impl< ::boost::long_long_type > { typedef ::boost::ulong_long_type type; }; -#endif - -template -struct make_unsigned - : make_unsigned_impl::type> -{}; - -////////////////////////// -// is_floating_point -////////////////////////// -template struct is_floating_point_cv { static const bool value = false; }; -template<> struct is_floating_point_cv { static const bool value = true; }; -template<> struct is_floating_point_cv { static const bool value = true; }; -template<> struct is_floating_point_cv { static const bool value = true; }; - -template -struct is_floating_point - : is_floating_point_cv::type> -{}; - -////////////////////////// -// is_integral -////////////////////////// -template struct is_integral_cv { static const bool value = false; }; -template<> struct is_integral_cv< bool>{ static const bool value = true; }; -template<> struct is_integral_cv< char>{ static const bool value = true; }; -template<> struct is_integral_cv< unsigned char>{ static const bool value = true; }; -template<> struct is_integral_cv< signed char>{ static const bool value = true; }; -#ifndef BOOST_NO_CXX11_CHAR16_T -template<> struct is_integral_cv< char16_t>{ static const bool value = true; }; -#endif -#ifndef BOOST_NO_CXX11_CHAR32_T -template<> struct is_integral_cv< char32_t>{ static const bool value = true; }; -#endif -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template<> struct is_integral_cv< wchar_t>{ static const bool value = true; }; -#endif -template<> struct is_integral_cv< short>{ static const bool value = true; }; -template<> struct is_integral_cv< unsigned short>{ static const bool value = true; }; -template<> struct is_integral_cv< int>{ static const bool value = true; }; -template<> struct is_integral_cv< unsigned int>{ static const bool value = true; }; -template<> struct is_integral_cv< long>{ static const bool value = true; }; -template<> struct is_integral_cv< unsigned long>{ static const bool value = true; }; -#ifdef BOOST_HAS_LONG_LONG -template<> struct is_integral_cv< ::boost:: long_long_type>{ static const bool value = true; }; -template<> struct is_integral_cv< ::boost::ulong_long_type>{ static const bool value = true; }; -#endif - -template -struct is_integral - : public is_integral_cv::type> -{}; - -////////////////////////////////////// -// remove_all_extents -////////////////////////////////////// -template -struct remove_all_extents -{ typedef T type;}; - -template -struct remove_all_extents -{ typedef typename remove_all_extents::type type; }; - -template -struct remove_all_extents -{ typedef typename remove_all_extents::type type;}; - -////////////////////////// -// is_scalar -////////////////////////// -template -struct is_scalar -{ static const bool value = is_integral::value || is_floating_point::value; }; - -////////////////////////// -// is_void -////////////////////////// -template -struct is_void_cv -{ static const bool value = false; }; - -template<> -struct is_void_cv -{ static const bool value = true; }; - -template -struct is_void - : is_void_cv::type> -{}; - -////////////////////////////////////// -// is_array -////////////////////////////////////// -template -struct is_array -{ static const bool value = false; }; - -template -struct is_array -{ static const bool value = true; }; - -template -struct is_array -{ static const bool value = true; }; - -////////////////////////////////////// -// is_member_pointer -////////////////////////////////////// -template struct is_member_pointer_cv { static const bool value = false; }; -template struct is_member_pointer_cv { static const bool value = true; }; - -template -struct is_member_pointer - : is_member_pointer_cv::type> -{}; - -////////////////////////////////////// -// is_nullptr_t -////////////////////////////////////// -template -struct is_nullptr_t_cv -{ static const bool value = false; }; - -#if !defined(BOOST_NO_CXX11_NULLPTR) -template <> -struct is_nullptr_t_cv - #if !defined(BOOST_NO_CXX11_DECLTYPE) - - #else - - #endif -{ static const bool value = true; }; -#endif - -template -struct is_nullptr_t - : is_nullptr_t_cv::type> -{}; - -////////////////////////////////////// -// is_function -////////////////////////////////////// -//Inspired by libc++, thanks to Howard Hinnant -//For a function to pointer an lvalue of function type T can be implicitly converted to a prvalue -//pointer to that function. This does not apply to non-static member functions because lvalues -//that refer to non-static member functions do not exist. -template -struct is_reference_convertible_to_pointer -{ - struct twochar { char dummy[2]; }; - template static char test(U*); - template static twochar test(...); - static T& source(); - static const bool value = sizeof(char) == sizeof(test(source())); -}; -//Filter out: -// - class types that might have implicit conversions -// - void (to avoid forming a reference to void later) -// - references (e.g.: filtering reference to functions) -// - nullptr_t (convertible to pointer) -template < class T - , bool Filter = is_class_or_union::value || - is_void::value || - is_reference::value || - is_nullptr_t::value > -struct is_function_impl -{ static const bool value = is_reference_convertible_to_pointer::value; }; - -template -struct is_function_impl -{ static const bool value = false; }; - -template -struct is_function - : is_function_impl -{}; - -////////////////////////////////////// -// is_union -////////////////////////////////////// -template -struct is_union_noextents_cv -{ static const bool value = BOOST_MOVE_IS_UNION_IMPL(T); }; - -template -struct is_union - : is_union_noextents_cv::type>::type> -{}; - -////////////////////////////////////// -// is_class -////////////////////////////////////// -template -struct is_class -{ - static const bool value = is_class_or_union::value && ! is_union::value; -}; - - -////////////////////////////////////// -// is_arithmetic -////////////////////////////////////// -template -struct is_arithmetic -{ - static const bool value = is_floating_point::value || - is_integral::value; -}; - -////////////////////////////////////// -// is_member_function_pointer -////////////////////////////////////// -template -struct is_member_function_pointer_cv -{ - static const bool value = false; -}; - -template -struct is_member_function_pointer_cv - : is_function -{}; - -template -struct is_member_function_pointer - : is_member_function_pointer_cv::type> -{}; - -////////////////////////////////////// -// is_enum -////////////////////////////////////// -#if !defined(BOOST_MOVE_IS_ENUM) -//Based on (http://howardhinnant.github.io/TypeHiearchy.pdf) -template -struct is_enum_nonintrinsic -{ - static const bool value = !is_arithmetic::value && - !is_reference::value && - !is_class_or_union::value && - !is_array::value && - !is_void::value && - !is_nullptr_t::value && - !is_member_pointer::value && - !is_pointer::value && - !is_function::value; -}; -#endif - -template -struct is_enum -{ static const bool value = BOOST_MOVE_IS_ENUM_IMPL(T); }; - -////////////////////////////////////// -// is_pod -////////////////////////////////////// -template -struct is_pod_noextents_cv //for non-c++11 compilers, a safe fallback -{ static const bool value = BOOST_MOVE_IS_POD_IMPL(T); }; - -template -struct is_pod - : is_pod_noextents_cv::type>::type> -{}; - -////////////////////////////////////// -// is_empty -////////////////////////////////////// -#if !defined(BOOST_MOVE_IS_EMPTY) - -template -struct empty_helper_t1 : public T -{ - empty_helper_t1(); // hh compiler bug workaround - int i[256]; - private: - - empty_helper_t1(const empty_helper_t1&); - empty_helper_t1& operator=(const empty_helper_t1&); -}; - -struct empty_helper_t2 { int i[256]; }; - -template ::value > -struct is_empty_nonintrinsic -{ - static const bool value = false; -}; - -template -struct is_empty_nonintrinsic -{ - static const bool value = sizeof(empty_helper_t1) == sizeof(empty_helper_t2); -}; -#endif - -template -struct is_empty -{ static const bool value = BOOST_MOVE_IS_EMPTY_IMPL(T); }; - - -template -struct has_boost_move_no_copy_constructor_or_assign_type -{ - template - static yes_type test(typename U::boost_move_no_copy_constructor_or_assign*); - - template - static no_type test(...); - - static const bool value = sizeof(test(0)) == sizeof(yes_type); -}; - -////////////////////////////////////// -// is_copy_constructible -////////////////////////////////////// -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_CXX11_DECLTYPE) \ - && !defined(BOOST_INTEL_CXX_VERSION) && \ - !(defined(BOOST_MSVC) && _MSC_VER == 1800) -#define BOOST_MOVE_TT_CXX11_IS_COPY_CONSTRUCTIBLE -#endif - -template -struct is_copy_constructible -{ - // Intel compiler has problems with SFINAE for copy constructors and deleted functions: - // - // error: function *function_name* cannot be referenced -- it is a deleted function - // static yes_type test(U&, decltype(U(boost::declval()))* = 0); - // ^ - // MSVC 12.0 (Visual 2013) has problems when the copy constructor has been deleted. See: - // https://connect.microsoft.com/VisualStudio/feedback/details/800328/std-is-copy-constructible-is-broken - #if defined(BOOST_MOVE_TT_CXX11_IS_COPY_CONSTRUCTIBLE) - template static typename add_reference::type source(); - static no_type test(...); - #ifdef BOOST_NO_CXX11_DECLTYPE - template - static yes_type test(U&, bool_()))>* = 0); - #else - template - static yes_type test(U&, decltype(U(source()))* = 0); - #endif - static const bool value = sizeof(test(source())) == sizeof(yes_type); - #else - static const bool value = !has_boost_move_no_copy_constructor_or_assign_type::value; - #endif -}; - - -////////////////////////////////////// -// is_copy_assignable -////////////////////////////////////// -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_CXX11_DECLTYPE) \ - && !defined(BOOST_INTEL_CXX_VERSION) && \ - !(defined(BOOST_MSVC) && _MSC_VER == 1800) -#define BOOST_MOVE_TT_CXX11_IS_COPY_ASSIGNABLE -#endif - -template -struct is_copy_assignable -{ -// Intel compiler has problems with SFINAE for copy constructors and deleted functions: -// -// error: function *function_name* cannot be referenced -- it is a deleted function -// static boost::type_traits::yes_type test(T1&, decltype(T1(boost::declval()))* = 0); -// ^ -// -// MSVC 12.0 (Visual 2013) has problems when the copy constructor has been deleted. See: -// https://connect.microsoft.com/VisualStudio/feedback/details/800328/std-is-copy-constructible-is-broken -#if defined(BOOST_MOVE_TT_CXX11_IS_COPY_ASSIGNABLE) - typedef char yes_type; - struct no_type { char dummy[2]; }; - - template static typename add_reference::type source(); - template static decltype(source() = source(), yes_type() ) test(int); - template static no_type test(...); - - static const bool value = sizeof(test(0)) == sizeof(yes_type); -#else - static const bool value = !has_boost_move_no_copy_constructor_or_assign_type::value; -#endif -}; - -////////////////////////////////////// -// is_trivially_destructible -////////////////////////////////////// -template -struct is_trivially_destructible -{ static const bool value = BOOST_MOVE_IS_TRIVIALLY_DESTRUCTIBLE(T); }; - -////////////////////////////////////// -// is_trivially_default_constructible -////////////////////////////////////// -template -struct is_trivially_default_constructible -{ static const bool value = BOOST_MOVE_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE(T); }; - -////////////////////////////////////// -// is_trivially_copy_constructible -////////////////////////////////////// -template -struct is_trivially_copy_constructible -{ - //In several compilers BOOST_MOVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE return true even with - //deleted copy constructors so make sure the type is copy constructible. - static const bool value = BOOST_MOVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE(T); -}; - -////////////////////////////////////// -// is_trivially_move_constructible -////////////////////////////////////// -template -struct is_trivially_move_constructible -{ static const bool value = BOOST_MOVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE(T); }; - -////////////////////////////////////// -// is_trivially_copy_assignable -////////////////////////////////////// -template -struct is_trivially_copy_assignable -{ - //In several compilers BOOST_MOVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE return true even with - //deleted copy constructors so make sure the type is copy constructible. - static const bool value = BOOST_MOVE_IS_TRIVIALLY_COPY_ASSIGNABLE(T); -}; - -////////////////////////////////////// -// is_trivially_move_assignable -////////////////////////////////////// -template -struct is_trivially_move_assignable -{ static const bool value = BOOST_MOVE_IS_TRIVIALLY_MOVE_ASSIGNABLE(T); }; - -////////////////////////////////////// -// is_nothrow_default_constructible -////////////////////////////////////// -template -struct is_nothrow_default_constructible - : is_pod -{ static const bool value = BOOST_MOVE_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE(T); }; - -////////////////////////////////////// -// is_nothrow_copy_constructible -////////////////////////////////////// -template -struct is_nothrow_copy_constructible -{ static const bool value = BOOST_MOVE_IS_NOTHROW_COPY_CONSTRUCTIBLE(T); }; - -////////////////////////////////////// -// is_nothrow_move_constructible -////////////////////////////////////// -template -struct is_nothrow_move_constructible -{ static const bool value = BOOST_MOVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE(T); }; - -////////////////////////////////////// -// is_nothrow_copy_assignable -////////////////////////////////////// -template -struct is_nothrow_copy_assignable -{ static const bool value = BOOST_MOVE_IS_NOTHROW_COPY_ASSIGNABLE(T); }; - -////////////////////////////////////// -// is_nothrow_move_assignable -////////////////////////////////////// -template -struct is_nothrow_move_assignable -{ static const bool value = BOOST_MOVE_IS_NOTHROW_MOVE_ASSIGNABLE(T); }; - -////////////////////////////////////// -// is_nothrow_swappable -////////////////////////////////////// -template -struct is_nothrow_swappable -{ - static const bool value = is_empty::value || is_pod::value; -}; - -////////////////////////////////////// -// alignment_of -////////////////////////////////////// -template -struct alignment_of_hack -{ - T t1; - char c; - T t2; - alignment_of_hack(); -}; - -template -struct alignment_logic -{ static const std::size_t value = A < S ? A : S; }; - -template< typename T > -struct alignment_of_impl -#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) - // With MSVC both the native __alignof operator - // and our own logic gets things wrong from time to time :-( - // Using a combination of the two seems to make the most of a bad job: - : alignment_logic< sizeof(alignment_of_hack) - 2*sizeof(T), __alignof(T)> -{}; -#elif !defined(BOOST_MOVE_ALIGNMENT_OF) - : alignment_logic< sizeof(alignment_of_hack) - 2*sizeof(T), sizeof(T)> -{}; -#else -{ static const std::size_t value = BOOST_MOVE_ALIGNMENT_OF(T); }; -#endif - -template< typename T > -struct alignment_of - : alignment_of_impl -{}; - -class alignment_dummy; -typedef void (*function_ptr)(); -typedef int (alignment_dummy::*member_ptr); -typedef int (alignment_dummy::*member_function_ptr)(); -struct alignment_struct -{ long double dummy[4]; }; - -///////////////////////////// -// max_align_t -///////////////////////////// -//This is not standard, but should work with all compilers -union max_align -{ - char char_; - short short_; - int int_; - long long_; - #ifdef BOOST_HAS_LONG_LONG - ::boost::long_long_type long_long_; - #endif - float float_; - double double_; - void * void_ptr_; - long double long_double_[4]; - alignment_dummy *unknown_class_ptr_; - function_ptr function_ptr_; - member_function_ptr member_function_ptr_; - alignment_struct alignment_struct_; -}; - -typedef union max_align max_align_t; - -///////////////////////////// -// aligned_storage -///////////////////////////// - -#if !defined(BOOST_NO_ALIGNMENT) - -template -struct aligned_storage_impl; - -#define BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(A)\ -template\ -struct BOOST_ALIGNMENT(A) aligned_storage_impl\ -{\ - char dummy[Len];\ - typedef aligned_storage_impl type;\ -};\ -// - -//Up to 4K alignment (typical page size) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x1) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x2) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x4) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x8) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x10) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x20) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x40) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x80) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x100) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x200) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x400) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x800) -BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x1000) - -#undef BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT - -#else //BOOST_NO_ALIGNMENT - -template -union aligned_union -{ - T aligner; - char dummy[Len]; -}; - -template -struct aligned_next; - -template -struct aligned_next -{ - BOOST_STATIC_ASSERT((alignment_of::value == Align)); - typedef aligned_union type; -}; - -//End of search defaults to max_align_t -template -struct aligned_next -{ typedef aligned_union type; }; - -//Now define a search list through types -#define BOOST_MOVE_ALIGNED_NEXT_STEP(TYPE, NEXT_TYPE)\ - template\ - struct aligned_next\ - : aligned_next::value>\ - {};\ - // - BOOST_MOVE_ALIGNED_NEXT_STEP(long double, max_align_t) - BOOST_MOVE_ALIGNED_NEXT_STEP(double, long double) - #ifdef BOOST_HAS_LONG_LONG - BOOST_MOVE_ALIGNED_NEXT_STEP(::boost::long_long_type, double) - BOOST_MOVE_ALIGNED_NEXT_STEP(long, ::boost::long_long_type) - #else - BOOST_MOVE_ALIGNED_NEXT_STEP(long, double) - #endif - BOOST_MOVE_ALIGNED_NEXT_STEP(int, long) - BOOST_MOVE_ALIGNED_NEXT_STEP(short, int) - BOOST_MOVE_ALIGNED_NEXT_STEP(char, short) -#undef BOOST_MOVE_ALIGNED_NEXT_STEP - -template -struct aligned_storage_impl - : aligned_next::value> -{}; - -#endif - -template::value> -struct aligned_storage -{ - //Sanity checks for input parameters - BOOST_STATIC_ASSERT(Align > 0); - - //Sanity checks for output type - typedef typename aligned_storage_impl::type type; - static const std::size_t value = alignment_of::value; - BOOST_STATIC_ASSERT(value >= Align); - BOOST_STATIC_ASSERT((value % Align) == 0); - - //Just in case someone instantiates aligned_storage - //instead of aligned_storage::type (typical error). - private: - aligned_storage(); -}; - -} //namespace move_detail { -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_DETAIL_TYPE_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/unique_ptr_meta_utils.hpp b/lib/3rdParty/boost/boost/move/detail/unique_ptr_meta_utils.hpp deleted file mode 100644 index 33720683d..000000000 --- a/lib/3rdParty/boost/boost/move/detail/unique_ptr_meta_utils.hpp +++ /dev/null @@ -1,591 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_UNIQUE_PTR_DETAIL_META_UTILS_HPP -#define BOOST_MOVE_UNIQUE_PTR_DETAIL_META_UTILS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include //for std::size_t - -//Small meta-typetraits to support move - -namespace boost { - -namespace movelib { - -template -struct default_delete; - -} //namespace movelib { - -#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES -//Forward declare boost::rv -template class rv; -#endif - -namespace move_upmu { - -////////////////////////////////////// -// nat -////////////////////////////////////// -struct nat{}; - -////////////////////////////////////// -// natify -////////////////////////////////////// -template struct natify{}; - -////////////////////////////////////// -// if_c -////////////////////////////////////// -template -struct if_c -{ - typedef T1 type; -}; - -template -struct if_c -{ - typedef T2 type; -}; - -////////////////////////////////////// -// if_ -////////////////////////////////////// -template -struct if_ : if_c<0 != T1::value, T2, T3> -{}; - -//enable_if_ -template -struct enable_if_c -{ - typedef T type; -}; - -////////////////////////////////////// -// enable_if_c -////////////////////////////////////// -template -struct enable_if_c {}; - -////////////////////////////////////// -// enable_if -////////////////////////////////////// -template -struct enable_if : public enable_if_c {}; - -////////////////////////////////////// -// remove_reference -////////////////////////////////////// -template -struct remove_reference -{ - typedef T type; -}; - -template -struct remove_reference -{ - typedef T type; -}; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template -struct remove_reference -{ - typedef T type; -}; - -#else - -template -struct remove_reference< rv > -{ - typedef T type; -}; - -template -struct remove_reference< rv &> -{ - typedef T type; -}; - -template -struct remove_reference< const rv &> -{ - typedef T type; -}; - - -#endif - -////////////////////////////////////// -// remove_const -////////////////////////////////////// -template< class T > -struct remove_const -{ - typedef T type; -}; - -template< class T > -struct remove_const -{ - typedef T type; -}; - -////////////////////////////////////// -// remove_volatile -////////////////////////////////////// -template< class T > -struct remove_volatile -{ - typedef T type; -}; - -template< class T > -struct remove_volatile -{ - typedef T type; -}; - -////////////////////////////////////// -// remove_cv -////////////////////////////////////// -template< class T > -struct remove_cv -{ - typedef typename remove_volatile - ::type>::type type; -}; - -////////////////////////////////////// -// remove_extent -////////////////////////////////////// -template -struct remove_extent -{ - typedef T type; -}; - -template -struct remove_extent -{ - typedef T type; -}; - -template -struct remove_extent -{ - typedef T type; -}; - -////////////////////////////////////// -// extent -////////////////////////////////////// - -template -struct extent -{ - static const std::size_t value = 0; -}; - -template -struct extent -{ - static const std::size_t value = 0; -}; - -template -struct extent -{ - static const std::size_t value = extent::value; -}; - -template -struct extent -{ - static const std::size_t value = N; -}; - -template -struct extent -{ - static const std::size_t value = extent::value; -}; - -////////////////////////////////////// -// add_lvalue_reference -////////////////////////////////////// -template -struct add_lvalue_reference -{ - typedef T& type; -}; - -template -struct add_lvalue_reference -{ - typedef T& type; -}; - -template<> -struct add_lvalue_reference -{ - typedef void type; -}; - -template<> -struct add_lvalue_reference -{ - typedef const void type; -}; - -template<> -struct add_lvalue_reference -{ - typedef volatile void type; -}; - -template<> -struct add_lvalue_reference -{ - typedef const volatile void type; -}; - -template -struct add_const_lvalue_reference -{ - typedef typename remove_reference::type t_unreferenced; - typedef const t_unreferenced t_unreferenced_const; - typedef typename add_lvalue_reference - ::type type; -}; - -////////////////////////////////////// -// is_same -////////////////////////////////////// -template -struct is_same -{ - static const bool value = false; -}; - -template -struct is_same -{ - static const bool value = true; -}; - -////////////////////////////////////// -// is_pointer -////////////////////////////////////// -template< class T > -struct is_pointer -{ - static const bool value = false; -}; - -template< class T > -struct is_pointer -{ - static const bool value = true; -}; - -////////////////////////////////////// -// is_reference -////////////////////////////////////// -template< class T > -struct is_reference -{ - static const bool value = false; -}; - -template< class T > -struct is_reference -{ - static const bool value = true; -}; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - -template< class T > -struct is_reference -{ - static const bool value = true; -}; - -#endif - -////////////////////////////////////// -// is_lvalue_reference -////////////////////////////////////// -template -struct is_lvalue_reference -{ - static const bool value = false; -}; - -template -struct is_lvalue_reference -{ - static const bool value = true; -}; - -////////////////////////////////////// -// is_array -////////////////////////////////////// -template -struct is_array -{ - static const bool value = false; -}; - -template -struct is_array -{ - static const bool value = true; -}; - -template -struct is_array -{ - static const bool value = true; -}; - -////////////////////////////////////// -// has_pointer_type -////////////////////////////////////// -template -struct has_pointer_type -{ - struct two { char c[2]; }; - template static two test(...); - template static char test(typename U::pointer* = 0); - static const bool value = sizeof(test(0)) == 1; -}; - -////////////////////////////////////// -// pointer_type -////////////////////////////////////// -template ::value> -struct pointer_type_imp -{ - typedef typename D::pointer type; -}; - -template -struct pointer_type_imp -{ - typedef typename remove_extent::type* type; -}; - -template -struct pointer_type -{ - typedef typename pointer_type_imp - ::type, typename remove_reference::type>::type type; -}; - -////////////////////////////////////// -// is_convertible -////////////////////////////////////// -#if defined(_MSC_VER) && (_MSC_VER >= 1400) - -//use intrinsic since in MSVC -//overaligned types can't go through ellipsis -template -struct is_convertible -{ - static const bool value = __is_convertible_to(T, U); -}; - -#else - -template -class is_convertible -{ - typedef typename add_lvalue_reference::type t_reference; - typedef char true_t; - class false_t { char dummy[2]; }; - static false_t dispatch(...); - static true_t dispatch(U); - static t_reference trigger(); - public: - static const bool value = sizeof(dispatch(trigger())) == sizeof(true_t); -}; - -#endif - -////////////////////////////////////// -// is_unary_function -////////////////////////////////////// -#if defined(BOOST_MSVC) || defined(__BORLANDC_) -#define BOOST_MOVE_TT_DECL __cdecl -#else -#define BOOST_MOVE_TT_DECL -#endif - -#if defined(_MSC_EXTENSIONS) && !defined(__BORLAND__) && !defined(_WIN64) && !defined(_M_ARM) && !defined(UNDER_CE) -#define BOOST_MOVE_TT_TEST_MSC_FUNC_SIGS -#endif - -template -struct is_unary_function_impl -{ static const bool value = false; }; - -// avoid duplicate definitions of is_unary_function_impl -#ifndef BOOST_MOVE_TT_TEST_MSC_FUNC_SIGS - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#else // BOOST_MOVE_TT_TEST_MSC_FUNC_SIGS - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#ifndef _MANAGED - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#endif - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#endif - -// avoid duplicate definitions of is_unary_function_impl -#ifndef BOOST_MOVE_TT_TEST_MSC_FUNC_SIGS - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#else // BOOST_MOVE_TT_TEST_MSC_FUNC_SIGS - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#ifndef _MANAGED - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#endif - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -template -struct is_unary_function_impl -{ static const bool value = true; }; - -#endif - -template -struct is_unary_function_impl -{ static const bool value = false; }; - -template -struct is_unary_function -{ static const bool value = is_unary_function_impl::value; }; - -////////////////////////////////////// -// has_virtual_destructor -////////////////////////////////////// -#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\ - || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500)) -# define BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -#elif defined(BOOST_CLANG) && defined(__has_feature) -# if __has_feature(has_virtual_destructor) -# define BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -# endif -#elif defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG) -# define BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -#elif defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600) -# define BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -#elif defined(__CODEGEARC__) -# define BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -#endif - -#ifdef BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR - template - struct has_virtual_destructor{ static const bool value = BOOST_MOVEUP_HAS_VIRTUAL_DESTRUCTOR(T); }; -#else - //If no intrinsic is available you trust the programmer knows what is doing - template - struct has_virtual_destructor{ static const bool value = true; }; -#endif - -////////////////////////////////////// -// missing_virtual_destructor -////////////////////////////////////// - -template< class T, class U - , bool enable = is_convertible< U*, T*>::value && - !is_array::value && - !is_same::type, void>::value && - !is_same::type, typename remove_cv::type>::value - > -struct missing_virtual_destructor_default_delete -{ static const bool value = !has_virtual_destructor::value; }; - -template -struct missing_virtual_destructor_default_delete -{ static const bool value = false; }; - -template -struct missing_virtual_destructor -{ static const bool value = false; }; - -template -struct missing_virtual_destructor< ::boost::movelib::default_delete, U > - : missing_virtual_destructor_default_delete -{}; - -} //namespace move_upmu { -} //namespace boost { - -#endif //#ifndef BOOST_MOVE_UNIQUE_PTR_DETAIL_META_UTILS_HPP diff --git a/lib/3rdParty/boost/boost/move/detail/workaround.hpp b/lib/3rdParty/boost/boost/move/detail/workaround.hpp deleted file mode 100644 index 1d16f2433..000000000 --- a/lib/3rdParty/boost/boost/move/detail/workaround.hpp +++ /dev/null @@ -1,69 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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/interprocess for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_DETAIL_WORKAROUND_HPP -#define BOOST_MOVE_DETAIL_WORKAROUND_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - #define BOOST_MOVE_PERFECT_FORWARDING -#endif - -#if defined(__has_feature) - #define BOOST_MOVE_HAS_FEATURE __has_feature -#else - #define BOOST_MOVE_HAS_FEATURE(x) 0 -#endif - -#if BOOST_MOVE_HAS_FEATURE(address_sanitizer) || defined(__SANITIZE_ADDRESS__) - #define BOOST_MOVE_ADDRESS_SANITIZER_ON -#endif - -//Macros for documentation purposes. For code, expands to the argument -#define BOOST_MOVE_IMPDEF(TYPE) TYPE -#define BOOST_MOVE_SEEDOC(TYPE) TYPE -#define BOOST_MOVE_DOC0PTR(TYPE) TYPE -#define BOOST_MOVE_DOC1ST(TYPE1, TYPE2) TYPE2 -#define BOOST_MOVE_I , -#define BOOST_MOVE_DOCIGN(T1) T1 - -#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5) && !defined(__clang__) - //Pre-standard rvalue binding rules - #define BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES -#elif defined(_MSC_VER) && (_MSC_VER == 1600) - //Standard rvalue binding rules but with some bugs - #define BOOST_MOVE_MSVC_10_MEMBER_RVALUE_REF_BUG - #define BOOST_MOVE_MSVC_AUTO_MOVE_RETURN_BUG -#elif defined(_MSC_VER) && (_MSC_VER == 1700) - #define BOOST_MOVE_MSVC_AUTO_MOVE_RETURN_BUG -#endif - -#if defined(BOOST_MOVE_DISABLE_FORCEINLINE) - #define BOOST_MOVE_FORCEINLINE inline -#elif defined(BOOST_MOVE_FORCEINLINE_IS_BOOST_FORCELINE) - #define BOOST_MOVE_FORCEINLINE BOOST_FORCEINLINE -#elif defined(BOOST_MSVC) && defined(_DEBUG) - //"__forceinline" and MSVC seems to have some bugs in debug mode - #define BOOST_MOVE_FORCEINLINE inline -#elif defined(__GNUC__) && ((__GNUC__ < 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ < 5))) - //Older GCCs have problems with forceinline - #define BOOST_MOVE_FORCEINLINE inline -#else - #define BOOST_MOVE_FORCEINLINE BOOST_FORCEINLINE -#endif - -#endif //#ifndef BOOST_MOVE_DETAIL_WORKAROUND_HPP diff --git a/lib/3rdParty/boost/boost/move/iterator.hpp b/lib/3rdParty/boost/boost/move/iterator.hpp deleted file mode 100644 index f36df23c0..000000000 --- a/lib/3rdParty/boost/boost/move/iterator.hpp +++ /dev/null @@ -1,311 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_ITERATOR_HPP -#define BOOST_MOVE_ITERATOR_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include //forceinline -#include -#include - -namespace boost { - -////////////////////////////////////////////////////////////////////////////// -// -// move_iterator -// -////////////////////////////////////////////////////////////////////////////// - -//! Class template move_iterator is an iterator adaptor with the same behavior -//! as the underlying iterator except that its dereference operator implicitly -//! converts the value returned by the underlying iterator's dereference operator -//! to an rvalue reference. Some generic algorithms can be called with move -//! iterators to replace copying with moving. -template -class move_iterator -{ - public: - typedef It iterator_type; - typedef typename boost::movelib::iterator_traits::value_type value_type; - #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_DOXYGEN_INVOKED) - typedef value_type && reference; - #else - typedef typename ::boost::move_detail::if_ - < ::boost::has_move_emulation_enabled - , ::boost::rv& - , value_type & >::type reference; - #endif - typedef It pointer; - typedef typename boost::movelib::iterator_traits::difference_type difference_type; - typedef typename boost::movelib::iterator_traits::iterator_category iterator_category; - - BOOST_MOVE_FORCEINLINE move_iterator() - : m_it() - {} - - BOOST_MOVE_FORCEINLINE explicit move_iterator(const It &i) - : m_it(i) - {} - - template - BOOST_MOVE_FORCEINLINE move_iterator(const move_iterator& u) - : m_it(u.m_it) - {} - - BOOST_MOVE_FORCEINLINE reference operator*() const - { - #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES) - return *m_it; - #else - return ::boost::move(*m_it); - #endif - } - - BOOST_MOVE_FORCEINLINE pointer operator->() const - { return m_it; } - - BOOST_MOVE_FORCEINLINE move_iterator& operator++() - { ++m_it; return *this; } - - BOOST_MOVE_FORCEINLINE move_iterator operator++(int) - { move_iterator tmp(*this); ++(*this); return tmp; } - - BOOST_MOVE_FORCEINLINE move_iterator& operator--() - { --m_it; return *this; } - - BOOST_MOVE_FORCEINLINE move_iterator operator--(int) - { move_iterator tmp(*this); --(*this); return tmp; } - - move_iterator operator+ (difference_type n) const - { return move_iterator(m_it + n); } - - BOOST_MOVE_FORCEINLINE move_iterator& operator+=(difference_type n) - { m_it += n; return *this; } - - BOOST_MOVE_FORCEINLINE move_iterator operator- (difference_type n) const - { return move_iterator(m_it - n); } - - BOOST_MOVE_FORCEINLINE move_iterator& operator-=(difference_type n) - { m_it -= n; return *this; } - - BOOST_MOVE_FORCEINLINE reference operator[](difference_type n) const - { - #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES) - return m_it[n]; - #else - return ::boost::move(m_it[n]); - #endif - } - - BOOST_MOVE_FORCEINLINE friend bool operator==(const move_iterator& x, const move_iterator& y) - { return x.m_it == y.m_it; } - - BOOST_MOVE_FORCEINLINE friend bool operator!=(const move_iterator& x, const move_iterator& y) - { return x.m_it != y.m_it; } - - BOOST_MOVE_FORCEINLINE friend bool operator< (const move_iterator& x, const move_iterator& y) - { return x.m_it < y.m_it; } - - BOOST_MOVE_FORCEINLINE friend bool operator<=(const move_iterator& x, const move_iterator& y) - { return x.m_it <= y.m_it; } - - BOOST_MOVE_FORCEINLINE friend bool operator> (const move_iterator& x, const move_iterator& y) - { return x.m_it > y.m_it; } - - BOOST_MOVE_FORCEINLINE friend bool operator>=(const move_iterator& x, const move_iterator& y) - { return x.m_it >= y.m_it; } - - BOOST_MOVE_FORCEINLINE friend difference_type operator-(const move_iterator& x, const move_iterator& y) - { return x.m_it - y.m_it; } - - BOOST_MOVE_FORCEINLINE friend move_iterator operator+(difference_type n, const move_iterator& x) - { return move_iterator(x.m_it + n); } - - private: - It m_it; -}; - -//is_move_iterator -namespace move_detail { - -template -struct is_move_iterator -{ - static const bool value = false; -}; - -template -struct is_move_iterator< ::boost::move_iterator > -{ - static const bool value = true; -}; - -} //namespace move_detail { - -////////////////////////////////////////////////////////////////////////////// -// -// move_iterator -// -////////////////////////////////////////////////////////////////////////////// - -//! -//! Returns: move_iterator(i). -template -inline move_iterator make_move_iterator(const It &it) -{ return move_iterator(it); } - -////////////////////////////////////////////////////////////////////////////// -// -// back_move_insert_iterator -// -////////////////////////////////////////////////////////////////////////////// - - -//! A move insert iterator that move constructs elements at the -//! back of a container -template // C models Container -class back_move_insert_iterator -{ - C* container_m; - - public: - typedef C container_type; - typedef typename C::value_type value_type; - typedef typename C::reference reference; - typedef typename C::pointer pointer; - typedef typename C::difference_type difference_type; - typedef std::output_iterator_tag iterator_category; - - explicit back_move_insert_iterator(C& x) : container_m(&x) { } - - back_move_insert_iterator& operator=(reference x) - { container_m->push_back(boost::move(x)); return *this; } - - back_move_insert_iterator& operator=(BOOST_RV_REF(value_type) x) - { reference rx = x; return this->operator=(rx); } - - back_move_insert_iterator& operator*() { return *this; } - back_move_insert_iterator& operator++() { return *this; } - back_move_insert_iterator& operator++(int) { return *this; } -}; - -//! -//! Returns: back_move_insert_iterator(x). -template // C models Container -inline back_move_insert_iterator back_move_inserter(C& x) -{ - return back_move_insert_iterator(x); -} - -////////////////////////////////////////////////////////////////////////////// -// -// front_move_insert_iterator -// -////////////////////////////////////////////////////////////////////////////// - -//! A move insert iterator that move constructs elements int the -//! front of a container -template // C models Container -class front_move_insert_iterator -{ - C* container_m; - -public: - typedef C container_type; - typedef typename C::value_type value_type; - typedef typename C::reference reference; - typedef typename C::pointer pointer; - typedef typename C::difference_type difference_type; - typedef std::output_iterator_tag iterator_category; - - explicit front_move_insert_iterator(C& x) : container_m(&x) { } - - front_move_insert_iterator& operator=(reference x) - { container_m->push_front(boost::move(x)); return *this; } - - front_move_insert_iterator& operator=(BOOST_RV_REF(value_type) x) - { reference rx = x; return this->operator=(rx); } - - front_move_insert_iterator& operator*() { return *this; } - front_move_insert_iterator& operator++() { return *this; } - front_move_insert_iterator& operator++(int) { return *this; } -}; - -//! -//! Returns: front_move_insert_iterator(x). -template // C models Container -inline front_move_insert_iterator front_move_inserter(C& x) -{ - return front_move_insert_iterator(x); -} - -////////////////////////////////////////////////////////////////////////////// -// -// insert_move_iterator -// -////////////////////////////////////////////////////////////////////////////// -template // C models Container -class move_insert_iterator -{ - C* container_m; - typename C::iterator pos_; - - public: - typedef C container_type; - typedef typename C::value_type value_type; - typedef typename C::reference reference; - typedef typename C::pointer pointer; - typedef typename C::difference_type difference_type; - typedef std::output_iterator_tag iterator_category; - - explicit move_insert_iterator(C& x, typename C::iterator pos) - : container_m(&x), pos_(pos) - {} - - move_insert_iterator& operator=(reference x) - { - pos_ = container_m->insert(pos_, ::boost::move(x)); - ++pos_; - return *this; - } - - move_insert_iterator& operator=(BOOST_RV_REF(value_type) x) - { reference rx = x; return this->operator=(rx); } - - move_insert_iterator& operator*() { return *this; } - move_insert_iterator& operator++() { return *this; } - move_insert_iterator& operator++(int) { return *this; } -}; - -//! -//! Returns: move_insert_iterator(x, it). -template // C models Container -inline move_insert_iterator move_inserter(C& x, typename C::iterator it) -{ - return move_insert_iterator(x, it); -} - -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_ITERATOR_HPP diff --git a/lib/3rdParty/boost/boost/move/make_unique.hpp b/lib/3rdParty/boost/boost/move/make_unique.hpp deleted file mode 100644 index ef106dbb5..000000000 --- a/lib/3rdParty/boost/boost/move/make_unique.hpp +++ /dev/null @@ -1,238 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2006-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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_MAKE_UNIQUE_HPP_INCLUDED -#define BOOST_MOVE_MAKE_UNIQUE_HPP_INCLUDED - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include -#include -#include //for std::size_t -#include -#ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES -# include -#endif - -//!\file -//! Defines "make_unique" functions, which are factories to create instances -//! of unique_ptr depending on the passed arguments. -//! -//! This header can be a bit heavyweight in C++03 compilers due to the use of the -//! preprocessor library, that's why it's a a separate header from unique_ptr.hpp - -#if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - -namespace std { //no namespace versioning in clang+libc++ - -struct nothrow_t; - -} //namespace std { - -namespace boost{ -namespace move_upmu { - -//Compile time switch between -//single element, unknown bound array -//and known bound array -template -struct unique_ptr_if -{ - typedef ::boost::movelib::unique_ptr t_is_not_array; -}; - -template -struct unique_ptr_if -{ - typedef ::boost::movelib::unique_ptr t_is_array_of_unknown_bound; -}; - -template -struct unique_ptr_if -{ - typedef void t_is_array_of_known_bound; -}; - -template -struct nothrow_holder -{ - static std::nothrow_t *pnothrow; -}; - -template -std::nothrow_t *nothrow_holder::pnothrow = - reinterpret_cast(0x1234); //Avoid reference to null errors in sanitizers - -} //namespace move_upmu { -} //namespace boost{ - -#endif //!defined(BOOST_MOVE_DOXYGEN_INVOKED) - -namespace boost{ -namespace movelib { - -#if defined(BOOST_MOVE_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -//! Remarks: This function shall not participate in overload resolution unless T is not an array. -//! -//! Returns: unique_ptr(new T(std::forward(args)...)). -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_not_array) - make_unique(BOOST_FWD_REF(Args)... args) -{ return unique_ptr(new T(::boost::forward(args)...)); } - -//! Remarks: This function shall not participate in overload resolution unless T is not an array. -//! -//! Returns: unique_ptr(new T(std::nothrow)(std::forward(args)...)). -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_not_array) - make_unique_nothrow(BOOST_FWD_REF(Args)... args) -{ return unique_ptr(new (*boost::move_upmu::nothrow_holder<>::pnothrow)T(::boost::forward(args)...)); } - -#else - #define BOOST_MOVE_MAKE_UNIQUE_CODE(N)\ - template\ - typename ::boost::move_upmu::unique_ptr_if::t_is_not_array\ - make_unique( BOOST_MOVE_UREF##N)\ - { return unique_ptr( new T( BOOST_MOVE_FWD##N ) ); }\ - \ - template\ - typename ::boost::move_upmu::unique_ptr_if::t_is_not_array\ - make_unique_nothrow( BOOST_MOVE_UREF##N)\ - { return unique_ptr( new (*boost::move_upmu::nothrow_holder<>::pnothrow)T ( BOOST_MOVE_FWD##N ) ); }\ - // - BOOST_MOVE_ITERATE_0TO9(BOOST_MOVE_MAKE_UNIQUE_CODE) - #undef BOOST_MOVE_MAKE_UNIQUE_CODE - -#endif - -//! Remarks: This function shall not participate in overload resolution unless T is not an array. -//! -//! Returns: unique_ptr(new T) (default initialization) -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_not_array) - make_unique_definit() -{ - return unique_ptr(new T); -} - -//! Remarks: This function shall not participate in overload resolution unless T is not an array. -//! -//! Returns: unique_ptr(new T(std::nothrow) (default initialization) -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_not_array) - make_unique_nothrow_definit() -{ - return unique_ptr(new (*boost::move_upmu::nothrow_holder<>::pnothrow)T); -} - -//! Remarks: This function shall not participate in overload resolution unless T is an array of -//! unknown bound. -//! -//! Returns: unique_ptr(new remove_extent_t[n]()) (value initialization) -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_unknown_bound) - make_unique(std::size_t n) -{ - typedef typename ::boost::move_upmu::remove_extent::type U; - return unique_ptr(new U[n]()); -} - -//! Remarks: This function shall not participate in overload resolution unless T is an array of -//! unknown bound. -//! -//! Returns: unique_ptr(new (std::nothrow)remove_extent_t[n]()) (value initialization) -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_unknown_bound) - make_unique_nothrow(std::size_t n) -{ - typedef typename ::boost::move_upmu::remove_extent::type U; - return unique_ptr(new (*boost::move_upmu::nothrow_holder<>::pnothrow)U[n]()); -} - -//! Remarks: This function shall not participate in overload resolution unless T is an array of -//! unknown bound. -//! -//! Returns: unique_ptr(new remove_extent_t[n]) (default initialization) -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_unknown_bound) - make_unique_definit(std::size_t n) -{ - typedef typename ::boost::move_upmu::remove_extent::type U; - return unique_ptr(new U[n]); -} - -//! Remarks: This function shall not participate in overload resolution unless T is an array of -//! unknown bound. -//! -//! Returns: unique_ptr(new (std::nothrow)remove_extent_t[n]) (default initialization) -template -inline BOOST_MOVE_DOC1ST(unique_ptr, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_unknown_bound) - make_unique_nothrow_definit(std::size_t n) -{ - typedef typename ::boost::move_upmu::remove_extent::type U; - return unique_ptr(new (*boost::move_upmu::nothrow_holder<>::pnothrow) U[n]); -} - -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) - -//! Remarks: This function shall not participate in overload resolution unless T is -//! an array of known bound. -template -inline BOOST_MOVE_DOC1ST(unspecified, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_known_bound) - make_unique(BOOST_FWD_REF(Args) ...) = delete; - -//! Remarks: This function shall not participate in overload resolution unless T is -//! an array of known bound. -template -inline BOOST_MOVE_DOC1ST(unspecified, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_known_bound) - make_unique_definit(BOOST_FWD_REF(Args) ...) = delete; - -//! Remarks: This function shall not participate in overload resolution unless T is -//! an array of known bound. -template -inline BOOST_MOVE_DOC1ST(unspecified, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_known_bound) - make_unique_nothrow(BOOST_FWD_REF(Args) ...) = delete; - -//! Remarks: This function shall not participate in overload resolution unless T is -//! an array of known bound. -template -inline BOOST_MOVE_DOC1ST(unspecified, - typename ::boost::move_upmu::unique_ptr_if::t_is_array_of_known_bound) - make_unique_nothrow_definit(BOOST_FWD_REF(Args) ...) = delete; - -#endif - -} //namespace movelib { - -} //namespace boost{ - -#include - -#endif //#ifndef BOOST_MOVE_MAKE_UNIQUE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/move/move.hpp b/lib/3rdParty/boost/boost/move/move.hpp deleted file mode 100644 index 62dddbc95..000000000 --- a/lib/3rdParty/boost/boost/move/move.hpp +++ /dev/null @@ -1,35 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright David Abrahams, Vicente Botet 2009. -// (C) Copyright Ion Gaztanaga 2009-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file -//! A general library header that includes -//! the rest of top-level headers. - -#ifndef BOOST_MOVE_MOVE_HPP -#define BOOST_MOVE_MOVE_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include - -#endif //#ifndef BOOST_MOVE_MOVE_HPP diff --git a/lib/3rdParty/boost/boost/move/traits.hpp b/lib/3rdParty/boost/boost/move/traits.hpp deleted file mode 100644 index b48b8f61d..000000000 --- a/lib/3rdParty/boost/boost/move/traits.hpp +++ /dev/null @@ -1,77 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2009-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file - -#ifndef BOOST_MOVE_TRAITS_HPP -#define BOOST_MOVE_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -#include -#endif -#include -#include - -namespace boost { - -//! If this trait yields to true -//! (has_trivial_destructor_after_move <T>::value == true) -//! means that if T is used as argument of a move construction/assignment, -//! there is no need to call T's destructor. -//! This optimization tipically is used to improve containers' performance. -//! -//! By default this trait is true if the type has trivial destructor, -//! every class should specialize this trait if it wants to improve performance -//! when inserted in containers. -template -struct has_trivial_destructor_after_move - : ::boost::move_detail::is_trivially_destructible -{}; - -//! By default this traits returns -//!
boost::is_nothrow_move_constructible::value && boost::is_nothrow_move_assignable::value 
. -//! Classes with non-throwing move constructor -//! and assignment can specialize this trait to obtain some performance improvements. -template -struct has_nothrow_move -{ - static const bool value = boost::move_detail::is_nothrow_move_constructible::value && - boost::move_detail::is_nothrow_move_assignable::value; -}; - -namespace move_detail { - -template -struct is_nothrow_move_constructible_or_uncopyable -{ - //The standard requires is_nothrow_move_constructible for move_if_noexcept - //but a user (usually in C++03) might specialize has_nothrow_move which includes it - static const bool value = is_nothrow_move_constructible::value || - has_nothrow_move::value || - !is_copy_constructible::value; -}; - -} //move_detail { -} //namespace boost { - -#include - -#endif //#ifndef BOOST_MOVE_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/move/unique_ptr.hpp b/lib/3rdParty/boost/boost/move/unique_ptr.hpp deleted file mode 100644 index 2d794e8ed..000000000 --- a/lib/3rdParty/boost/boost/move/unique_ptr.hpp +++ /dev/null @@ -1,871 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_MOVE_UNIQUE_PTR_HPP_INCLUDED -#define BOOST_MOVE_UNIQUE_PTR_HPP_INCLUDED - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include //forceinline -#include -#include -#include -#include -#include -#include - -#include //For std::nullptr_t and std::size_t - -//!\file -//! Describes the smart pointer unique_ptr, a drop-in replacement for std::unique_ptr, -//! usable also from C++03 compilers. -//! -//! Main differences from std::unique_ptr to avoid heavy dependencies, -//! specially in C++03 compilers: -//! - operator < uses pointer operator < instead of std::less. -//! This avoids dependencies on std::common_type and std::less -//! (/ headers). In C++03 this avoid pulling Boost.Typeof and other -//! cascading dependencies. As in all Boost platforms operator < on raw pointers and -//! other smart pointers provides strict weak ordering in practice this should not be a problem for users. -//! - assignable from literal 0 for compilers without nullptr -//! - unique_ptr is constructible and assignable from unique_ptr if -//! cv-less T and cv-less U are the same type and T is more CV qualified than U. - -namespace boost{ -// @cond -namespace move_upd { - -//////////////////////////////////////////// -// deleter types -//////////////////////////////////////////// -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -template -class is_noncopyable -{ - typedef char true_t; - class false_t { char dummy[2]; }; - template static false_t dispatch(...); - template static true_t dispatch(typename U::boost_move_no_copy_constructor_or_assign*); - public: - static const bool value = sizeof(dispatch(0)) == sizeof(true_t); -}; -#endif //defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -template -struct deleter_types -{ - typedef typename bmupmu::add_lvalue_reference::type del_ref; - typedef typename bmupmu::add_const_lvalue_reference::type del_cref; - #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - typedef typename bmupmu::if_c - < bmupmu::is_lvalue_reference::value, D, del_cref >::type deleter_arg_type1; - typedef typename bmupmu::remove_reference::type && deleter_arg_type2; - #else - typedef typename bmupmu::if_c - < is_noncopyable::value, bmupmu::nat, del_cref>::type non_ref_deleter_arg1; - typedef typename bmupmu::if_c< bmupmu::is_lvalue_reference::value - , D, non_ref_deleter_arg1 >::type deleter_arg_type1; - typedef ::boost::rv & deleter_arg_type2; - #endif -}; - -//////////////////////////////////////////// -// unique_ptr_data -//////////////////////////////////////////// -template ::value || bmupmu::is_reference::value > -struct unique_ptr_data -{ - typedef typename deleter_types::deleter_arg_type1 deleter_arg_type1; - typedef typename deleter_types::del_ref del_ref; - typedef typename deleter_types::del_cref del_cref; - - BOOST_MOVE_FORCEINLINE unique_ptr_data() BOOST_NOEXCEPT - : m_p(), d() - {} - - BOOST_MOVE_FORCEINLINE explicit unique_ptr_data(P p) BOOST_NOEXCEPT - : m_p(p), d() - {} - - BOOST_MOVE_FORCEINLINE unique_ptr_data(P p, deleter_arg_type1 d1) BOOST_NOEXCEPT - : m_p(p), d(d1) - {} - - template - BOOST_MOVE_FORCEINLINE unique_ptr_data(P p, BOOST_FWD_REF(U) d1) BOOST_NOEXCEPT - : m_p(p), d(::boost::forward(d1)) - {} - - BOOST_MOVE_FORCEINLINE del_ref deleter() { return d; } - BOOST_MOVE_FORCEINLINE del_cref deleter() const{ return d; } - - P m_p; - D d; - - private: - unique_ptr_data& operator=(const unique_ptr_data&); - unique_ptr_data(const unique_ptr_data&); -}; - -template -struct unique_ptr_data - : private D -{ - typedef typename deleter_types::deleter_arg_type1 deleter_arg_type1; - typedef typename deleter_types::del_ref del_ref; - typedef typename deleter_types::del_cref del_cref; - - BOOST_MOVE_FORCEINLINE unique_ptr_data() BOOST_NOEXCEPT - : D(), m_p() - {} - - BOOST_MOVE_FORCEINLINE explicit unique_ptr_data(P p) BOOST_NOEXCEPT - : D(), m_p(p) - {} - - BOOST_MOVE_FORCEINLINE unique_ptr_data(P p, deleter_arg_type1 d1) BOOST_NOEXCEPT - : D(d1), m_p(p) - {} - - template - BOOST_MOVE_FORCEINLINE unique_ptr_data(P p, BOOST_FWD_REF(U) d) BOOST_NOEXCEPT - : D(::boost::forward(d)), m_p(p) - {} - - BOOST_MOVE_FORCEINLINE del_ref deleter() BOOST_NOEXCEPT { return static_cast(*this); } - BOOST_MOVE_FORCEINLINE del_cref deleter() const BOOST_NOEXCEPT { return static_cast(*this); } - - P m_p; - - private: - unique_ptr_data& operator=(const unique_ptr_data&); - unique_ptr_data(const unique_ptr_data&); -}; - -//////////////////////////////////////////// -// is_unique_ptr_convertible -//////////////////////////////////////////// - -//Although non-standard, we avoid using pointer_traits -//to avoid heavy dependencies -template -struct get_element_type -{ - struct DefaultWrap { typedef bmupmu::natify element_type; }; - template static char test(int, typename X::element_type*); - template static int test(...); - static const bool value = (1 == sizeof(test(0, 0))); - typedef typename bmupmu::if_c::type::element_type type; -}; - -template -struct get_element_type -{ - typedef T type; -}; - -template -struct get_cvelement - : bmupmu::remove_cv::type> -{}; - -template -struct is_same_cvelement_and_convertible -{ - typedef typename bmupmu::remove_reference::type arg1; - typedef typename bmupmu::remove_reference::type arg2; - static const bool same_cvless = - bmupmu::is_same::type,typename get_cvelement::type>::value; - static const bool value = same_cvless && bmupmu::is_convertible::value; -}; - -template -struct is_unique_ptr_convertible - : is_same_cvelement_and_convertible -{}; - -template -struct is_unique_ptr_convertible - : bmupmu::is_convertible -{}; - -//////////////////////////////////////// -//// enable_up_moveconv_assign -//////////////////////////////////////// - -template -struct enable_up_ptr - : bmupmu::enable_if_c< is_unique_ptr_convertible - < bmupmu::is_array::value, FromPointer, ThisPointer>::value, Type> -{}; - -//////////////////////////////////////// -//// enable_up_moveconv_assign -//////////////////////////////////////// - -template -struct unique_moveconvert_assignable -{ - static const bool t_is_array = bmupmu::is_array::value; - static const bool value = - t_is_array == bmupmu::is_array::value && - bmupmu::extent::value == bmupmu::extent::value && - is_unique_ptr_convertible - < t_is_array - , typename bmupmu::pointer_type::type, typename bmupmu::pointer_type::type - >::value; -}; - -template -struct unique_moveconvert_assignable - : unique_moveconvert_assignable -{}; - -template -struct enable_up_moveconv_assign - : bmupmu::enable_if_c::value, Type> -{}; - -//////////////////////////////////////// -//// enable_up_moveconv_constr -//////////////////////////////////////// - -template::value> -struct unique_deleter_is_initializable - : bmupmu::is_same -{}; - -template -class is_rvalue_convertible -{ - #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - typedef typename bmupmu::remove_reference::type&& t_from; - #else - typedef typename bmupmu::if_c - < ::boost::has_move_emulation_enabled::value && !bmupmu::is_reference::value - , ::boost::rv& - , typename bmupmu::add_lvalue_reference::type - >::type t_from; - #endif - - typedef char true_t; - class false_t { char dummy[2]; }; - static false_t dispatch(...); - static true_t dispatch(U); - static t_from trigger(); - public: - static const bool value = sizeof(dispatch(trigger())) == sizeof(true_t); -}; - -template -struct unique_deleter_is_initializable -{ - #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - //Clang has some problems with is_rvalue_convertible with non-copyable types - //so use intrinsic if available - #if defined(BOOST_CLANG) - #if __has_feature(is_convertible_to) - static const bool value = __is_convertible_to(E, D); - #else - static const bool value = is_rvalue_convertible::value; - #endif - #else - static const bool value = is_rvalue_convertible::value; - #endif - - #else //!defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - //No hope for compilers with move emulation for now. In several compilers is_convertible - // leads to errors, so just move the Deleter and see if the conversion works - static const bool value = true; /*is_rvalue_convertible::value*/ - #endif -}; - -template -struct enable_up_moveconv_constr - : bmupmu::enable_if_c - < unique_moveconvert_assignable::value && unique_deleter_is_initializable::value - , Type> -{}; - -} //namespace move_upd { -// @endcond - -namespace movelib { - -//! A unique pointer is an object that owns another object and -//! manages that other object through a pointer. -//! -//! More precisely, a unique pointer is an object u that stores a pointer to a second object p and will dispose -//! of p when u is itself destroyed (e.g., when leaving block scope). In this context, u is said to own p. -//! -//! The mechanism by which u disposes of p is known as p's associated deleter, a function object whose correct -//! invocation results in p's appropriate disposition (typically its deletion). -//! -//! Let the notation u.p denote the pointer stored by u, and let u.d denote the associated deleter. Upon request, -//! u can reset (replace) u.p and u.d with another pointer and deleter, but must properly dispose of its owned -//! object via the associated deleter before such replacement is considered completed. -//! -//! Additionally, u can, upon request, transfer ownership to another unique pointer u2. Upon completion of -//! such a transfer, the following postconditions hold: -//! - u2.p is equal to the pre-transfer u.p, -//! - u.p is equal to nullptr, and -//! - if the pre-transfer u.d maintained state, such state has been transferred to u2.d. -//! -//! As in the case of a reset, u2 must properly dispose of its pre-transfer owned object via the pre-transfer -//! associated deleter before the ownership transfer is considered complete. -//! -//! Each object of a type U instantiated from the unique_ptr template specified in this subclause has the strict -//! ownership semantics, specified above, of a unique pointer. In partial satisfaction of these semantics, each -//! such U is MoveConstructible and MoveAssignable, but is not CopyConstructible nor CopyAssignable. -//! The template parameter T of unique_ptr may be an incomplete type. -//! -//! The uses of unique_ptr include providing exception safety for dynamically allocated memory, passing -//! ownership of dynamically allocated memory to a function, and returning dynamically allocated memory from -//! a function. -//! -//! If T is an array type (e.g. unique_ptr) the interface is slightly altered: -//! - Pointers to types derived from T are rejected by the constructors, and by reset. -//! - The observers operator* and operator-> are not provided. -//! - The indexing observer operator[] is provided. -//! -//! \tparam T Provides the type of the stored pointer. -//! \tparam D The deleter type: -//! - The default type for the template parameter D is default_delete. A client-supplied template argument -//! D shall be a function object type, lvalue-reference to function, or lvalue-reference to function object type -//! for which, given a value d of type D and a value ptr of type unique_ptr::pointer, the expression -//! d(ptr) is valid and has the effect of disposing of the pointer as appropriate for that deleter. -//! - If the deleter's type D is not a reference type, D shall satisfy the requirements of Destructible. -//! - If the type remove_reference::type::pointer exists, it shall satisfy the requirements of NullablePointer. -template > -class unique_ptr -{ - #if defined(BOOST_MOVE_DOXYGEN_INVOKED) - public: - unique_ptr(const unique_ptr&) = delete; - unique_ptr& operator=(const unique_ptr&) = delete; - private: - #else - BOOST_MOVABLE_BUT_NOT_COPYABLE(unique_ptr) - - typedef bmupmu::pointer_type pointer_type_obtainer; - typedef bmupd::unique_ptr_data - data_type; - typedef typename bmupd::deleter_types::deleter_arg_type1 deleter_arg_type1; - typedef typename bmupd::deleter_types::deleter_arg_type2 deleter_arg_type2; - data_type m_data; - #endif - - public: - //! If the type remove_reference::type::pointer exists, then it shall be a - //! synonym for remove_reference::type::pointer. Otherwise it shall be a - //! synonym for T*. - typedef typename BOOST_MOVE_SEEDOC(pointer_type_obtainer::type) pointer; - //! If T is an array type, then element_type is equal to T. Otherwise, if T is a type - //! in the form U[], element_type is equal to U. - typedef typename BOOST_MOVE_SEEDOC(bmupmu::remove_extent::type) element_type; - typedef D deleter_type; - - //! Requires: D shall satisfy the requirements of DefaultConstructible, and - //! that construction shall not throw an exception. - //! - //! Effects: Constructs a unique_ptr object that owns nothing, value-initializing the - //! stored pointer and the stored deleter. - //! - //! Postconditions: get() == nullptr. get_deleter() returns a reference to the stored deleter. - //! - //! Remarks: If this constructor is instantiated with a pointer type or reference type - //! for the template argument D, the program is ill-formed. - BOOST_MOVE_FORCEINLINE BOOST_CONSTEXPR unique_ptr() BOOST_NOEXCEPT - : m_data() - { - //If this constructor is instantiated with a pointer type or reference type - //for the template argument D, the program is ill-formed. - BOOST_STATIC_ASSERT(!bmupmu::is_pointer::value); - BOOST_STATIC_ASSERT(!bmupmu::is_reference::value); - } - - //! Effects: Same as unique_ptr() (default constructor). - //! - BOOST_MOVE_FORCEINLINE BOOST_CONSTEXPR unique_ptr(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) BOOST_NOEXCEPT - : m_data() - { - //If this constructor is instantiated with a pointer type or reference type - //for the template argument D, the program is ill-formed. - BOOST_STATIC_ASSERT(!bmupmu::is_pointer::value); - BOOST_STATIC_ASSERT(!bmupmu::is_reference::value); - } - - //! Requires: D shall satisfy the requirements of DefaultConstructible, and - //! that construction shall not throw an exception. - //! - //! Effects: Constructs a unique_ptr which owns p, initializing the stored pointer - //! with p and value initializing the stored deleter. - //! - //! Postconditions: get() == p. get_deleter() returns a reference to the stored deleter. - //! - //! Remarks: If this constructor is instantiated with a pointer type or reference type - //! for the template argument D, the program is ill-formed. - //! This constructor shall not participate in overload resolution unless: - //! - If T is not an array type and Pointer is implicitly convertible to pointer. - //! - If T is an array type and Pointer is a more CV qualified pointer to element_type. - template - BOOST_MOVE_FORCEINLINE explicit unique_ptr(Pointer p - BOOST_MOVE_DOCIGN(BOOST_MOVE_I typename bmupd::enable_up_ptr::type* =0) - ) BOOST_NOEXCEPT - : m_data(p) - { - //If T is not an array type, element_type_t derives from T - //it uses the default deleter and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor - ::type>::value )); - //If this constructor is instantiated with a pointer type or reference type - //for the template argument D, the program is ill-formed. - BOOST_STATIC_ASSERT(!bmupmu::is_pointer::value); - BOOST_STATIC_ASSERT(!bmupmu::is_reference::value); - } - - //!The signature of this constructor depends upon whether D is a reference type. - //! - If D is non-reference type A, then the signature is unique_ptr(pointer p, const A& d). - //! - If D is an lvalue-reference type A&, then the signature is unique_ptr(pointer p, A& d). - //! - If D is an lvalue-reference type const A&, then the signature is unique_ptr(pointer p, const A& d). - //! - //! - //! Requires: Either - //! - D is not an lvalue-reference type and d is an lvalue or const rvalue. - //! D shall satisfy the requirements of CopyConstructible, and the copy constructor of D - //! shall not throw an exception. This unique_ptr will hold a copy of d. - //! - D is an lvalue-reference type and d is an lvalue. the type which D references need not be CopyConstructible nor - //! MoveConstructible. This unique_ptr will hold a D which refers to the lvalue d. - //! - //! Effects: Constructs a unique_ptr object which owns p, initializing the stored pointer with p and - //! initializing the deleter as described above. - //! - //! Postconditions: get() == p. get_deleter() returns a reference to the stored deleter. If D is a - //! reference type then get_deleter() returns a reference to the lvalue d. - //! - //! Remarks: This constructor shall not participate in overload resolution unless: - //! - If T is not an array type and Pointer is implicitly convertible to pointer. - //! - If T is an array type and Pointer is a more CV qualified pointer to element_type. - template - BOOST_MOVE_FORCEINLINE unique_ptr(Pointer p, BOOST_MOVE_SEEDOC(deleter_arg_type1) d1 - BOOST_MOVE_DOCIGN(BOOST_MOVE_I typename bmupd::enable_up_ptr::type* =0) - ) BOOST_NOEXCEPT - : m_data(p, d1) - { - //If T is not an array type, element_type_t derives from T - //it uses the default deleter and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor - ::type>::value )); - } - - //! Effects: Same effects as template unique_ptr(Pointer p, deleter_arg_type1 d1) - //! and additionally get() == nullptr - BOOST_MOVE_FORCEINLINE unique_ptr(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), BOOST_MOVE_SEEDOC(deleter_arg_type1) d1) BOOST_NOEXCEPT - : m_data(pointer(), d1) - {} - - //! The signature of this constructor depends upon whether D is a reference type. - //! - If D is non-reference type A, then the signature is unique_ptr(pointer p, A&& d). - //! - If D is an lvalue-reference type A&, then the signature is unique_ptr(pointer p, A&& d). - //! - If D is an lvalue-reference type const A&, then the signature is unique_ptr(pointer p, const A&& d). - //! - //! Requires: Either - //! - D is not an lvalue-reference type and d is a non-const rvalue. D - //! shall satisfy the requirements of MoveConstructible, and the move constructor - //! of D shall not throw an exception. This unique_ptr will hold a value move constructed from d. - //! - D is an lvalue-reference type and d is an rvalue, the program is ill-formed. - //! - //! Effects: Constructs a unique_ptr object which owns p, initializing the stored pointer with p and - //! initializing the deleter as described above. - //! - //! Postconditions: get() == p. get_deleter() returns a reference to the stored deleter. If D is a - //! reference type then get_deleter() returns a reference to the lvalue d. - //! - //! Remarks: This constructor shall not participate in overload resolution unless: - //! - If T is not an array type and Pointer is implicitly convertible to pointer. - //! - If T is an array type and Pointer is a more CV qualified pointer to element_type. - template - BOOST_MOVE_FORCEINLINE unique_ptr(Pointer p, BOOST_MOVE_SEEDOC(deleter_arg_type2) d2 - BOOST_MOVE_DOCIGN(BOOST_MOVE_I typename bmupd::enable_up_ptr::type* =0) - ) BOOST_NOEXCEPT - : m_data(p, ::boost::move(d2)) - { - //If T is not an array type, element_type_t derives from T - //it uses the default deleter and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor - ::type>::value )); - } - - //! Effects: Same effects as template unique_ptr(Pointer p, deleter_arg_type2 d2) - //! and additionally get() == nullptr - BOOST_MOVE_FORCEINLINE unique_ptr(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), BOOST_MOVE_SEEDOC(deleter_arg_type2) d2) BOOST_NOEXCEPT - : m_data(pointer(), ::boost::move(d2)) - {} - - //! Requires: If D is not a reference type, D shall satisfy the requirements of MoveConstructible. - //! Construction of the deleter from an rvalue of type D shall not throw an exception. - //! - //! Effects: Constructs a unique_ptr by transferring ownership from u to *this. If D is a reference type, - //! this deleter is copy constructed from u's deleter; otherwise, this deleter is move constructed from u's - //! deleter. - //! - //! Postconditions: get() yields the value u.get() yielded before the construction. get_deleter() - //! returns a reference to the stored deleter that was constructed from u.get_deleter(). If D is a - //! reference type then get_deleter() and u.get_deleter() both reference the same lvalue deleter. - BOOST_MOVE_FORCEINLINE unique_ptr(BOOST_RV_REF(unique_ptr) u) BOOST_NOEXCEPT - : m_data(u.release(), ::boost::move_if_not_lvalue_reference(u.get_deleter())) - {} - - //! Requires: If E is not a reference type, construction of the deleter from an rvalue of type E shall be - //! well formed and shall not throw an exception. Otherwise, E is a reference type and construction of the - //! deleter from an lvalue of type E shall be well formed and shall not throw an exception. - //! - //! Remarks: This constructor shall not participate in overload resolution unless: - //! - unique_ptr::pointer is implicitly convertible to pointer, - //! - U is not an array type, and - //! - either D is a reference type and E is the same type as D, or D is not a reference type and E is - //! implicitly convertible to D. - //! - //! Effects: Constructs a unique_ptr by transferring ownership from u to *this. If E is a reference type, - //! this deleter is copy constructed from u's deleter; otherwise, this deleter is move constructed from u's deleter. - //! - //! Postconditions: get() yields the value u.get() yielded before the construction. get_deleter() - //! returns a reference to the stored deleter that was constructed from u.get_deleter(). - template - BOOST_MOVE_FORCEINLINE unique_ptr( BOOST_RV_REF_BEG_IF_CXX11 unique_ptr BOOST_RV_REF_END_IF_CXX11 u - BOOST_MOVE_DOCIGN(BOOST_MOVE_I typename bmupd::enable_up_moveconv_constr::type* =0) - ) BOOST_NOEXCEPT - : m_data(u.release(), ::boost::move_if_not_lvalue_reference(u.get_deleter())) - { - //If T is not an array type, U derives from T - //it uses the default deleter and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor - ::pointer>::value )); - } - - //! Requires: The expression get_deleter()(get()) shall be well formed, shall have well-defined behavior, - //! and shall not throw exceptions. - //! - //! Effects: If get() == nullpt1r there are no effects. Otherwise get_deleter()(get()). - //! - //! Note: The use of default_delete requires T to be a complete type - ~unique_ptr() - { if(m_data.m_p) m_data.deleter()(m_data.m_p); } - - //! Requires: If D is not a reference type, D shall satisfy the requirements of MoveAssignable - //! and assignment of the deleter from an rvalue of type D shall not throw an exception. Otherwise, D - //! is a reference type; remove_reference::type shall satisfy the CopyAssignable requirements and - //! assignment of the deleter from an lvalue of type D shall not throw an exception. - //! - //! Effects: Transfers ownership from u to *this as if by calling reset(u.release()) followed - //! by get_deleter() = std::forward(u.get_deleter()). - //! - //! Returns: *this. - unique_ptr& operator=(BOOST_RV_REF(unique_ptr) u) BOOST_NOEXCEPT - { - this->reset(u.release()); - m_data.deleter() = ::boost::move_if_not_lvalue_reference(u.get_deleter()); - return *this; - } - - //! Requires: If E is not a reference type, assignment of the deleter from an rvalue of type E shall be - //! well-formed and shall not throw an exception. Otherwise, E is a reference type and assignment of the - //! deleter from an lvalue of type E shall be well-formed and shall not throw an exception. - //! - //! Remarks: This operator shall not participate in overload resolution unless: - //! - unique_ptr::pointer is implicitly convertible to pointer and - //! - U is not an array type. - //! - //! Effects: Transfers ownership from u to *this as if by calling reset(u.release()) followed by - //! get_deleter() = std::forward(u.get_deleter()). - //! - //! Returns: *this. - template - BOOST_MOVE_DOC1ST(unique_ptr&, typename bmupd::enable_up_moveconv_assign - ::type) - operator=(BOOST_RV_REF_BEG unique_ptr BOOST_RV_REF_END u) BOOST_NOEXCEPT - { - this->reset(u.release()); - m_data.deleter() = ::boost::move_if_not_lvalue_reference(u.get_deleter()); - return *this; - } - - //! Effects: reset(). - //! - //! Postcondition: get() == nullptr - //! - //! Returns: *this. - unique_ptr& operator=(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) BOOST_NOEXCEPT - { this->reset(); return *this; } - - //! Requires: get() != nullptr. - //! - //! Returns: *get(). - //! - //! Remarks::type) - operator*() const BOOST_NOEXCEPT - { - BOOST_STATIC_ASSERT((!bmupmu::is_array::value)); - return *m_data.m_p; - } - - //! Requires: i < the number of elements in the array to which the stored pointer points. - //! - //! Returns: get()[i]. - //! - //! Remarks::type) - operator[](std::size_t i) const BOOST_NOEXCEPT - { - BOOST_ASSERT( bmupmu::extent::value == 0 || i < bmupmu::extent::value ); - BOOST_ASSERT(m_data.m_p); - return m_data.m_p[i]; - } - - //! Requires: get() != nullptr. - //! - //! Returns: get(). - //! - //! Note: use typically requires that T be a complete type. - //! - //! Remarks() const BOOST_NOEXCEPT - { - BOOST_STATIC_ASSERT((!bmupmu::is_array::value)); - BOOST_ASSERT(m_data.m_p); - return m_data.m_p; - } - - //! Returns: The stored pointer. - //! - BOOST_MOVE_FORCEINLINE pointer get() const BOOST_NOEXCEPT - { return m_data.m_p; } - - //! Returns: A reference to the stored deleter. - //! - BOOST_MOVE_FORCEINLINE BOOST_MOVE_DOC1ST(D&, typename bmupmu::add_lvalue_reference::type) - get_deleter() BOOST_NOEXCEPT - { return m_data.deleter(); } - - //! Returns: A reference to the stored deleter. - //! - BOOST_MOVE_FORCEINLINE BOOST_MOVE_DOC1ST(const D&, typename bmupmu::add_const_lvalue_reference::type) - get_deleter() const BOOST_NOEXCEPT - { return m_data.deleter(); } - - #ifdef BOOST_MOVE_DOXYGEN_INVOKED - //! Returns: Returns: get() != nullptr. - //! - BOOST_MOVE_FORCEINLINE explicit operator bool - #else - BOOST_MOVE_FORCEINLINE operator bmupd::explicit_bool_arg - #endif - ()const BOOST_NOEXCEPT - { - return m_data.m_p - ? &bmupd::bool_conversion::for_bool - : bmupd::explicit_bool_arg(0); - } - - //! Postcondition: get() == nullptr. - //! - //! Returns: The value get() had at the start of the call to release. - BOOST_MOVE_FORCEINLINE pointer release() BOOST_NOEXCEPT - { - const pointer tmp = m_data.m_p; - m_data.m_p = pointer(); - return tmp; - } - - //! Requires: The expression get_deleter()(get()) shall be well formed, shall have well-defined behavior, - //! and shall not throw exceptions. - //! - //! Effects: assigns p to the stored pointer, and then if the old value of the stored pointer, old_p, was not - //! equal to nullptr, calls get_deleter()(old_p). Note: The order of these operations is significant - //! because the call to get_deleter() may destroy *this. - //! - //! Postconditions: get() == p. Note: The postcondition does not hold if the call to get_deleter() - //! destroys *this since this->get() is no longer a valid expression. - //! - //! Remarks: This constructor shall not participate in overload resolution unless: - //! - If T is not an array type and Pointer is implicitly convertible to pointer. - //! - If T is an array type and Pointer is a more CV qualified pointer to element_type. - template - BOOST_MOVE_DOC1ST(void, typename bmupd::enable_up_ptr::type) - reset(Pointer p) BOOST_NOEXCEPT - { - //If T is not an array type, element_type_t derives from T - //it uses the default deleter and T has no virtual destructor, then you have a problem - BOOST_STATIC_ASSERT(( !::boost::move_upmu::missing_virtual_destructor - ::type>::value )); - pointer tmp = m_data.m_p; - m_data.m_p = p; - if(tmp) m_data.deleter()(tmp); - } - - //! Requires: The expression get_deleter()(get()) shall be well formed, shall have well-defined behavior, - //! and shall not throw exceptions. - //! - //! Effects: assigns nullptr to the stored pointer, and then if the old value of the stored pointer, old_p, was not - //! equal to nullptr, calls get_deleter()(old_p). Note: The order of these operations is significant - //! because the call to get_deleter() may destroy *this. - //! - //! Postconditions: get() == p. Note: The postcondition does not hold if the call to get_deleter() - //! destroys *this since this->get() is no longer a valid expression. - void reset() BOOST_NOEXCEPT - { this->reset(pointer()); } - - //! Effects: Same as reset() - //! - void reset(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) BOOST_NOEXCEPT - { this->reset(); } - - //! Requires: get_deleter() shall be swappable and shall not throw an exception under swap. - //! - //! Effects: Invokes swap on the stored pointers and on the stored deleters of *this and u. - void swap(unique_ptr& u) BOOST_NOEXCEPT - { - ::boost::adl_move_swap(m_data.m_p, u.m_data.m_p); - ::boost::adl_move_swap(m_data.deleter(), u.m_data.deleter()); - } -}; - -//! Effects: Calls x.swap(y). -//! -template -BOOST_MOVE_FORCEINLINE void swap(unique_ptr &x, unique_ptr &y) BOOST_NOEXCEPT -{ x.swap(y); } - -//! Returns: x.get() == y.get(). -//! -template -BOOST_MOVE_FORCEINLINE bool operator==(const unique_ptr &x, const unique_ptr &y) -{ return x.get() == y.get(); } - -//! Returns: x.get() != y.get(). -//! -template -BOOST_MOVE_FORCEINLINE bool operator!=(const unique_ptr &x, const unique_ptr &y) -{ return x.get() != y.get(); } - -//! Returns: x.get() < y.get(). -//! -//! Remarks: This comparison shall induce a -//! strict weak ordering betwen pointers. -template -BOOST_MOVE_FORCEINLINE bool operator<(const unique_ptr &x, const unique_ptr &y) -{ return x.get() < y.get(); } - -//! Returns: !(y < x). -//! -template -BOOST_MOVE_FORCEINLINE bool operator<=(const unique_ptr &x, const unique_ptr &y) -{ return !(y < x); } - -//! Returns: y < x. -//! -template -BOOST_MOVE_FORCEINLINE bool operator>(const unique_ptr &x, const unique_ptr &y) -{ return y < x; } - -//! Returns:!(x < y). -//! -template -BOOST_MOVE_FORCEINLINE bool operator>=(const unique_ptr &x, const unique_ptr &y) -{ return !(x < y); } - -//! Returns:!x. -//! -template -BOOST_MOVE_FORCEINLINE bool operator==(const unique_ptr &x, BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) BOOST_NOEXCEPT -{ return !x; } - -//! Returns:!x. -//! -template -BOOST_MOVE_FORCEINLINE bool operator==(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), const unique_ptr &x) BOOST_NOEXCEPT -{ return !x; } - -//! Returns: (bool)x. -//! -template -BOOST_MOVE_FORCEINLINE bool operator!=(const unique_ptr &x, BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) BOOST_NOEXCEPT -{ return !!x; } - -//! Returns: (bool)x. -//! -template -BOOST_MOVE_FORCEINLINE bool operator!=(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), const unique_ptr &x) BOOST_NOEXCEPT -{ return !!x; } - -//! Requires: operator shall induce a strict weak ordering on unique_ptr::pointer values. -//! -//! Returns: Returns x.get() < pointer(). -template -BOOST_MOVE_FORCEINLINE bool operator<(const unique_ptr &x, BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) -{ return x.get() < typename unique_ptr::pointer(); } - -//! Requires: operator shall induce a strict weak ordering on unique_ptr::pointer values. -//! -//! Returns: Returns pointer() < x.get(). -template -BOOST_MOVE_FORCEINLINE bool operator<(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), const unique_ptr &x) -{ return typename unique_ptr::pointer() < x.get(); } - -//! Returns: nullptr < x. -//! -template -BOOST_MOVE_FORCEINLINE bool operator>(const unique_ptr &x, BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) -{ return x.get() > typename unique_ptr::pointer(); } - -//! Returns: x < nullptr. -//! -template -BOOST_MOVE_FORCEINLINE bool operator>(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), const unique_ptr &x) -{ return typename unique_ptr::pointer() > x.get(); } - -//! Returns: !(nullptr < x). -//! -template -BOOST_MOVE_FORCEINLINE bool operator<=(const unique_ptr &x, BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) -{ return !(bmupd::nullptr_type() < x); } - -//! Returns: !(x < nullptr). -//! -template -BOOST_MOVE_FORCEINLINE bool operator<=(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), const unique_ptr &x) -{ return !(x < bmupd::nullptr_type()); } - -//! Returns: !(x < nullptr). -//! -template -BOOST_MOVE_FORCEINLINE bool operator>=(const unique_ptr &x, BOOST_MOVE_DOC0PTR(bmupd::nullptr_type)) -{ return !(x < bmupd::nullptr_type()); } - -//! Returns: !(nullptr < x). -//! -template -BOOST_MOVE_FORCEINLINE bool operator>=(BOOST_MOVE_DOC0PTR(bmupd::nullptr_type), const unique_ptr &x) -{ return !(bmupd::nullptr_type() < x); } - -} //namespace movelib { -} //namespace boost{ - -#include - -#endif //#ifndef BOOST_MOVE_UNIQUE_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/move/utility.hpp b/lib/3rdParty/boost/boost/move/utility.hpp deleted file mode 100644 index 28de7935c..000000000 --- a/lib/3rdParty/boost/boost/move/utility.hpp +++ /dev/null @@ -1,150 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file -//! This header includes core utilities from and defines -//! some more advanced utilities such as: - -#ifndef BOOST_MOVE_MOVE_UTILITY_HPP -#define BOOST_MOVE_MOVE_UTILITY_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include //forceinline -#include -#include - -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - namespace boost { - - ////////////////////////////////////////////////////////////////////////////// - // - // move_if_noexcept() - // - ////////////////////////////////////////////////////////////////////////////// - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < enable_move_utility_emulation::value && !has_move_emulation_enabled::value - , typename ::boost::move_detail::add_const::type & - >::type - move_if_noexcept(T& x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < enable_move_utility_emulation::value && has_move_emulation_enabled::value - && ::boost::move_detail::is_nothrow_move_constructible_or_uncopyable::value, rv&>::type - move_if_noexcept(T& x) BOOST_NOEXCEPT - { - return *static_cast* >(::boost::move_detail::addressof(x)); - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < enable_move_utility_emulation::value && has_move_emulation_enabled::value - && ::boost::move_detail::is_nothrow_move_constructible_or_uncopyable::value - , rv& - >::type - move_if_noexcept(rv& x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < enable_move_utility_emulation::value && has_move_emulation_enabled::value - && !::boost::move_detail::is_nothrow_move_constructible_or_uncopyable::value - , typename ::boost::move_detail::add_const::type & - >::type - move_if_noexcept(T& x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < enable_move_utility_emulation::value && has_move_emulation_enabled::value - && !::boost::move_detail::is_nothrow_move_constructible_or_uncopyable::value - , typename ::boost::move_detail::add_const::type & - >::type - move_if_noexcept(rv& x) BOOST_NOEXCEPT - { - return x; - } - - } //namespace boost - -#else //#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - #include - - namespace boost{ - - using ::std::move_if_noexcept; - - } //namespace boost - - #else //!BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE - - namespace boost { - - ////////////////////////////////////////////////////////////////////////////// - // - // move_if_noexcept() - // - ////////////////////////////////////////////////////////////////////////////// - #if defined(BOOST_MOVE_DOXYGEN_INVOKED) - //! This function provides a way to convert a reference into a rvalue reference - //! in compilers with rvalue references. For other compilers converts T & into - //! ::boost::rv & so that move emulation is activated. Reference - //! would be converted to rvalue reference only if input type is nothrow move - //! constructible or if it has no copy constructor. In all other cases const - //! reference would be returned - template - rvalue_reference_or_const_lvalue_reference move_if_noexcept(input_reference) noexcept; - - #else //BOOST_MOVE_DOXYGEN_INVOKED - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < ::boost::move_detail::is_nothrow_move_constructible_or_uncopyable::value, T&&>::type - move_if_noexcept(T& x) BOOST_NOEXCEPT - { return ::boost::move(x); } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_c - < !::boost::move_detail::is_nothrow_move_constructible_or_uncopyable::value, const T&>::type - move_if_noexcept(T& x) BOOST_NOEXCEPT - { return x; } - - #endif //BOOST_MOVE_DOXYGEN_INVOKED - - } //namespace boost { - - #endif //#if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - -#endif //BOOST_NO_CXX11_RVALUE_REFERENCES - -#include - -#endif //#ifndef BOOST_MOVE_MOVE_UTILITY_HPP diff --git a/lib/3rdParty/boost/boost/move/utility_core.hpp b/lib/3rdParty/boost/boost/move/utility_core.hpp deleted file mode 100644 index 55042a9bb..000000000 --- a/lib/3rdParty/boost/boost/move/utility_core.hpp +++ /dev/null @@ -1,318 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2012-2012. -// 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/move for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -//! \file -//! This header defines core utilities to ease the development -//! of move-aware functions. This header minimizes dependencies -//! from other libraries. - -#ifndef BOOST_MOVE_MOVE_UTILITY_CORE_HPP -#define BOOST_MOVE_MOVE_UTILITY_CORE_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif -# -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include //forceinline -#include -#include -#include - -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - namespace boost { - - template - struct enable_move_utility_emulation - { - static const bool value = true; - }; - - ////////////////////////////////////////////////////////////////////////////// - // - // move() - // - ////////////////////////////////////////////////////////////////////////////// - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < T & - , enable_move_utility_emulation - , has_move_emulation_disabled - >::type - move(T& x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < rv& - , enable_move_utility_emulation - , has_move_emulation_enabled - >::type - move(T& x) BOOST_NOEXCEPT - { - return *BOOST_MOVE_TO_RV_CAST(::boost::rv*, ::boost::move_detail::addressof(x) ); - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < rv& - , enable_move_utility_emulation - , has_move_emulation_enabled - >::type - move(rv& x) BOOST_NOEXCEPT - { - return x; - } - - ////////////////////////////////////////////////////////////////////////////// - // - // forward() - // - ////////////////////////////////////////////////////////////////////////////// - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < T & - , enable_move_utility_emulation - , ::boost::move_detail::is_rv - >::type - forward(const typename ::boost::move_detail::identity::type &x) BOOST_NOEXCEPT - { - return const_cast(x); - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < const T & - , enable_move_utility_emulation - , ::boost::move_detail::is_not_rv - >::type - forward(const typename ::boost::move_detail::identity::type &x) BOOST_NOEXCEPT - { - return x; - } - - ////////////////////////////////////////////////////////////////////////////// - // - // move_if_not_lvalue_reference() - // - ////////////////////////////////////////////////////////////////////////////// - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < T & - , enable_move_utility_emulation - , ::boost::move_detail::is_rv - >::type - move_if_not_lvalue_reference(const typename ::boost::move_detail::identity::type &x) BOOST_NOEXCEPT - { - return const_cast(x); - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < typename ::boost::move_detail::add_lvalue_reference::type - , enable_move_utility_emulation - , ::boost::move_detail::is_not_rv - , ::boost::move_detail::or_ - < ::boost::move_detail::is_lvalue_reference - , has_move_emulation_disabled - > - >::type - move_if_not_lvalue_reference(typename ::boost::move_detail::remove_reference::type &x) BOOST_NOEXCEPT - { - return x; - } - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::enable_if_and - < rv& - , enable_move_utility_emulation - , ::boost::move_detail::is_not_rv - , ::boost::move_detail::and_ - < ::boost::move_detail::not_< ::boost::move_detail::is_lvalue_reference > - , has_move_emulation_enabled - > - >::type - move_if_not_lvalue_reference(typename ::boost::move_detail::remove_reference::type &x) BOOST_NOEXCEPT - { - return move(x); - } - - } //namespace boost - -#else //#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - #if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - #include - - namespace boost{ - - using ::std::move; - using ::std::forward; - - } //namespace boost - - #else //!BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE - - namespace boost { - - //! This trait's internal boolean `value` is false in compilers with rvalue references - //! and true in compilers without rvalue references. - //! - //! A user can specialize this trait for a type T to false to SFINAE out `move` and `forward` - //! so that the user can define a different move emulation for that type in namespace boost - //! (e.g. another Boost library for its types) and avoid any overload ambiguity. - template - struct enable_move_utility_emulation - { - static const bool value = false; - }; - - ////////////////////////////////////////////////////////////////////////////// - // - // move - // - ////////////////////////////////////////////////////////////////////////////// - - #if defined(BOOST_MOVE_DOXYGEN_INVOKED) - //! This function provides a way to convert a reference into a rvalue reference - //! in compilers with rvalue references. For other compilers if `T` is Boost.Move - //! enabled type then it converts `T&` into ::boost::rv & so that - //! move emulation is activated, else it returns `T &`. - template - rvalue_reference move(input_reference) noexcept; - - #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES) - - //Old move approach, lvalues could bind to rvalue references - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::remove_reference::type && move(T&& t) BOOST_NOEXCEPT - { return t; } - - #else //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES - - template - BOOST_MOVE_FORCEINLINE typename ::boost::move_detail::remove_reference::type && move(T&& t) BOOST_NOEXCEPT - { return static_cast::type &&>(t); } - - #endif //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES - - ////////////////////////////////////////////////////////////////////////////// - // - // forward - // - ////////////////////////////////////////////////////////////////////////////// - - - #if defined(BOOST_MOVE_DOXYGEN_INVOKED) - //! This function provides limited form of forwarding that is usually enough for - //! in-place construction and avoids the exponential overloading for - //! achieve the limited forwarding in C++03. - //! - //! For compilers with rvalue references this function provides perfect forwarding. - //! - //! Otherwise: - //! * If input_reference binds to const ::boost::rv & then it output_reference is - //! ::boost::rv & - //! - //! * Else, output_reference is equal to input_reference. - template output_reference forward(input_reference) noexcept; - #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES) - - //Old move approach, lvalues could bind to rvalue references - - template - BOOST_MOVE_FORCEINLINE T&& forward(typename ::boost::move_detail::identity::type&& t) BOOST_NOEXCEPT - { return t; } - - #else //Old move - - template - BOOST_MOVE_FORCEINLINE T&& forward(typename ::boost::move_detail::remove_reference::type& t) BOOST_NOEXCEPT - { return static_cast(t); } - - template - BOOST_MOVE_FORCEINLINE T&& forward(typename ::boost::move_detail::remove_reference::type&& t) BOOST_NOEXCEPT - { - //"boost::forward error: 'T' is a lvalue reference, can't forward as rvalue."; - BOOST_STATIC_ASSERT(!boost::move_detail::is_lvalue_reference::value); - return static_cast(t); - } - - #endif //BOOST_MOVE_DOXYGEN_INVOKED - - ////////////////////////////////////////////////////////////////////////////// - // - // move_if_not_lvalue_reference - // - ////////////////////////////////////////////////////////////////////////////// - - - #if defined(BOOST_MOVE_DOXYGEN_INVOKED) - //! Effects: Calls `boost::move` if `input_reference` is not a lvalue reference. - //! Otherwise returns the reference - template output_reference move_if_not_lvalue_reference(input_reference) noexcept; - #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES) - - //Old move approach, lvalues could bind to rvalue references - - template - BOOST_MOVE_FORCEINLINE T&& move_if_not_lvalue_reference(typename ::boost::move_detail::identity::type&& t) BOOST_NOEXCEPT - { return t; } - - #else //Old move - - template - BOOST_MOVE_FORCEINLINE T&& move_if_not_lvalue_reference(typename ::boost::move_detail::remove_reference::type& t) BOOST_NOEXCEPT - { return static_cast(t); } - - template - BOOST_MOVE_FORCEINLINE T&& move_if_not_lvalue_reference(typename ::boost::move_detail::remove_reference::type&& t) BOOST_NOEXCEPT - { - //"boost::forward error: 'T' is a lvalue reference, can't forward as rvalue."; - BOOST_STATIC_ASSERT(!boost::move_detail::is_lvalue_reference::value); - return static_cast(t); - } - - #endif //BOOST_MOVE_DOXYGEN_INVOKED - - } //namespace boost { - - #endif //#if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE) - -#endif //BOOST_NO_CXX11_RVALUE_REFERENCES - -#if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - -namespace boost{ -namespace move_detail{ - -template -typename boost::move_detail::add_rvalue_reference::type declval(); - -} //namespace move_detail{ -} //namespace boost{ - -#endif //#if !defined(BOOST_MOVE_DOXYGEN_INVOKED) - - -#include - -#endif //#ifndef BOOST_MOVE_MOVE_UTILITY_CORE_HPP diff --git a/lib/3rdParty/boost/boost/mpl/O1_size.hpp b/lib/3rdParty/boost/boost/mpl/O1_size.hpp deleted file mode 100644 index 98bd3a745..000000000 --- a/lib/3rdParty/boost/boost/mpl/O1_size.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_O1_SIZE_HPP_INCLUDED -#define BOOST_MPL_O1_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// returns sequence size if it's an O(1) operation; otherwise returns -1 -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct O1_size - : O1_size_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, O1_size, (Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, O1_size) - -}} - -#endif // BOOST_MPL_O1_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/O1_size_fwd.hpp b/lib/3rdParty/boost/boost/mpl/O1_size_fwd.hpp deleted file mode 100644 index c84a7a56a..000000000 --- a/lib/3rdParty/boost/boost/mpl/O1_size_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED -#define BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct O1_size_impl; -template< typename Sequence > struct O1_size; - -}} - -#endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/accumulate.hpp b/lib/3rdParty/boost/boost/mpl/accumulate.hpp deleted file mode 100644 index dc2c75ecb..000000000 --- a/lib/3rdParty/boost/boost/mpl/accumulate.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_ACCUMULATE_HPP_INCLUDED -#define BOOST_MPL_ACCUMULATE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(State) - , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp) - > -struct accumulate - : fold -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,accumulate,(Sequence,State,ForwardOp)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, accumulate) - -}} - -#endif // BOOST_MPL_ACCUMULATE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/advance.hpp b/lib/3rdParty/boost/boost/mpl/advance.hpp deleted file mode 100644 index 1af600417..000000000 --- a/lib/3rdParty/boost/boost/mpl/advance.hpp +++ /dev/null @@ -1,76 +0,0 @@ - -#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED -#define BOOST_MPL_ADVANCE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation for forward/bidirectional iterators -template< typename Tag > -struct advance_impl -{ - template< typename Iterator, typename N > struct apply - { - typedef typename less< N,long_<0> >::type backward_; - typedef typename if_< backward_, negate, N >::type offset_; - - typedef typename if_< - backward_ - , aux::advance_backward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value > - , aux::advance_forward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value > - >::type f_; - - typedef typename apply_wrap1::type type; - }; -}; - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Iterator) - , typename BOOST_MPL_AUX_NA_PARAM(N) - > -struct advance - : advance_impl< typename tag::type > - ::template apply -{ -}; - -template< - typename Iterator - , BOOST_MPL_AUX_NTTP_DECL(long, N) - > -struct advance_c - : advance_impl< typename tag::type > - ::template apply > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(2, advance) - -}} - -#endif // BOOST_MPL_ADVANCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/advance_fwd.hpp b/lib/3rdParty/boost/boost/mpl/advance_fwd.hpp deleted file mode 100644 index 803841019..000000000 --- a/lib/3rdParty/boost/boost/mpl/advance_fwd.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED -#define BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(advance) - -template< typename Tag > struct advance_impl; -template< typename Iterator, typename N > struct advance; - -}} - -#endif // BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/alias.hpp b/lib/3rdParty/boost/boost/mpl/alias.hpp deleted file mode 100644 index f0fe0caf4..000000000 --- a/lib/3rdParty/boost/boost/mpl/alias.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_ALIAS_HPP_INCLUDED -#define BOOST_MPL_ALIAS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace { -namespace mpl = boost::mpl; -} - -#endif // BOOST_MPL_ALIAS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/always.hpp b/lib/3rdParty/boost/boost/mpl/always.hpp deleted file mode 100644 index 5fe71321e..000000000 --- a/lib/3rdParty/boost/boost/mpl/always.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED -#define BOOST_MPL_ALWAYS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Value > struct always -{ - template< - BOOST_MPL_PP_DEFAULT_PARAMS(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, typename T, na) - > - struct apply - { - typedef Value type; - }; -}; - -BOOST_MPL_AUX_ARITY_SPEC(0, always) - -}} - -#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/and.hpp b/lib/3rdParty/boost/boost/mpl/and.hpp deleted file mode 100644 index 454aaf2e9..000000000 --- a/lib/3rdParty/boost/boost/mpl/and.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_AND_HPP_INCLUDED -#define BOOST_MPL_AND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# include -# include -# include -# include - -// agurt, 19/may/04: workaround a conflict with header's -// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)' -// has to be checked in a separate condition, otherwise GCC complains -// about 'and' being an alternative token -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(and) -# pragma push_macro("and") -# undef and -# define and(x) -#endif -#endif -#endif - -# define BOOST_MPL_PREPROCESSED_HEADER and.hpp -# include - -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(and) -# pragma pop_macro("and") -#endif -#endif -#endif - -#else - -# define AUX778076_OP_NAME and_ -# define AUX778076_OP_VALUE1 false -# define AUX778076_OP_VALUE2 true -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/apply.hpp b/lib/3rdParty/boost/boost/mpl/apply.hpp deleted file mode 100644 index 581eb6810..000000000 --- a/lib/3rdParty/boost/boost/mpl/apply.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_APPLY_HPP_INCLUDED -#define BOOST_MPL_APPLY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER apply.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_APPLY_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ - -# define AUX778076_APPLY_DEF_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ - -# define AUX778076_APPLY_N_PARAMS(n, param) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(n, param, def) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ - /**/ - -# define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \ - BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ - /**/ - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) -// real C++ version is already taken care of -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -namespace aux { -// apply_count_args -#define AUX778076_COUNT_ARGS_PREFIX apply -#define AUX778076_COUNT_ARGS_DEFAULT na -#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#include -} - - -template< - typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) - > -struct apply - : aux::apply_chooser< - aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value - >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type -{ -}; - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE - -# undef AUX778076_APPLY_N_SPEC_PARAMS -# undef AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS -# undef AUX778076_APPLY_N_COMMA_PARAMS -# undef AUX778076_APPLY_N_PARAMS -# undef AUX778076_APPLY_DEF_PARAMS -# undef AUX778076_APPLY_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_APPLY_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply,i_) -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - : BOOST_PP_CAT(apply_wrap,i_)< - typename lambda::type - AUX778076_APPLY_N_COMMA_PARAMS(i_, T) - > -{ -#else -{ - typedef typename BOOST_PP_CAT(apply_wrap,i_)< - typename lambda::type - AUX778076_APPLY_N_COMMA_PARAMS(i_, T) - >::type type; -#endif - BOOST_MPL_AUX_LAMBDA_SUPPORT( - BOOST_PP_INC(i_) - , BOOST_PP_CAT(apply,i_) - , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T)) - ) -}; - - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -/// workaround for ETI bug -template<> -struct BOOST_PP_CAT(apply,i_) -{ - typedef int type; -}; -#endif - -# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY -/// primary template (not a specialization!) -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct apply - : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) > -{ -}; -#else -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) > - : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) > -{ -}; -#endif - -# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) -namespace aux { - -template<> -struct apply_chooser -{ - template< - typename F, AUX778076_APPLY_PARAMS(typename T) - > - struct result_ - { - typedef BOOST_PP_CAT(apply,i_)< - F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) - > type; - }; -}; - -} // namespace aux -#endif - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE - -# undef i_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/apply_fwd.hpp deleted file mode 100644 index 5f5fa7891..000000000 --- a/lib/3rdParty/boost/boost/mpl/apply_fwd.hpp +++ /dev/null @@ -1,107 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED -#define BOOST_MPL_APPLY_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp -# include - -#else - -# include -# include -# include -# include -# include - -# include -# include -# include - -// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC -// (for known reasons) -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE -#endif - -namespace boost { namespace mpl { - -// local macro, #undef-ined at the end of the header -# define AUX778076_APPLY_DEF_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ - -# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -// forward declaration -template< - typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) - > -struct apply; -#else -namespace aux { -template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser; -} -#endif - -# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - - -# undef AUX778076_APPLY_N_COMMA_PARAMS -# undef AUX778076_APPLY_DEF_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply,i_); - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/apply_wrap.hpp deleted file mode 100644 index b807779cf..000000000 --- a/lib/3rdParty/boost/boost/mpl/apply_wrap.hpp +++ /dev/null @@ -1,234 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED -#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_APPLY_WRAP_PARAMS(n, param) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \ - BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ - /**/ - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - - -# undef AUX778076_APPLY_WRAP_SPEC_PARAMS -# undef AUX778076_APPLY_WRAP_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -// MSVC version - -#define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_) -#define AUX778076_MSVC_DTW_ORIGINAL_NAME apply -#define AUX778076_MSVC_DTW_ARITY i_ -#include - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap,i_) -{ - // Metafunction forwarding confuses vc6 - typedef typename BOOST_PP_CAT(msvc_apply,i_)::template result_< - AUX778076_APPLY_WRAP_PARAMS(i_, T) - >::type type; -}; - -# elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -// MWCW/Borland version - -template< - int N, typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap_impl,i_); - -#define BOOST_PP_ITERATION_PARAMS_2 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, )) -#include BOOST_PP_ITERATE() - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap,i_) - : BOOST_PP_CAT(apply_wrap_impl,i_)< - ::boost::mpl::aux::arity::value - , F - BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) - >::type -{ -}; - -# else -// ISO98 C++, with minor concession to vc7 - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) -#if i_ == 0 - , typename has_apply_ = typename aux::has_apply::type -#endif - > -struct BOOST_PP_CAT(apply_wrap,i_) -// metafunction forwarding confuses MSVC 7.0 -#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300) - : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) > -{ -#else -{ - typedef typename F::template apply< - AUX778076_APPLY_WRAP_PARAMS(i_, T) - >::type type; -#endif -}; - -#if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename F > -struct BOOST_PP_CAT(apply_wrap,i_) - : F::apply -{ -}; -#endif - -# endif // workarounds - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -/// workaround for ETI bug -template<> -struct BOOST_PP_CAT(apply_wrap,i_) -{ - typedef int type; -}; -#endif - -# undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define j_ BOOST_PP_FRAME_ITERATION(2) - -#if i_ == 0 && j_ == 0 \ - && defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ - && !defined(BOOST_MPL_CFG_NO_HAS_APPLY) - -template< typename F, bool F_has_apply > -struct apply_wrap_impl0_bcb { - typedef typename F::template apply< na > type; -}; - -template< typename F > -struct apply_wrap_impl0_bcb< F, true > { - typedef typename F::apply type; -}; - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap_impl,i_)< - BOOST_MPL_PP_ADD(i_, j_) - , F - BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) - > -{ - typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type; -}; -#else - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap_impl,i_)< - BOOST_MPL_PP_ADD(i_, j_) - , F - BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) - > -{ - typedef typename F::template apply< - AUX778076_APPLY_WRAP_PARAMS(i_, T) -#if i_ == 0 && j_ == 0 -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na -#else - BOOST_PP_COMMA_IF(BOOST_PP_AND(i_, j_)) BOOST_MPL_PP_ENUM(j_, na) -#endif - > type; -}; - -#endif - -# undef j_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/arg.hpp b/lib/3rdParty/boost/boost/mpl/arg.hpp deleted file mode 100644 index f51adfaea..000000000 --- a/lib/3rdParty/boost/boost/mpl/arg.hpp +++ /dev/null @@ -1,131 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_ARG_HPP_INCLUDED -#define BOOST_MPL_ARG_HPP_INCLUDED - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -#endif - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER arg.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - -# include -# include -# include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -// local macro, #undef-ined at the end of the header -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ -#else -# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ -#endif - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - - -# undef AUX778076_ARG_N_DEFAULT_PARAMS - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_ARG_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -#if i_ > 0 - -template<> struct arg -{ - BOOST_STATIC_CONSTANT(int, value = i_); - typedef arg next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - typedef BOOST_PP_CAT(U,i_) type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -#else - -template<> struct arg<-1> -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -#endif // i_ > 0 - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/arg_fwd.hpp b/lib/3rdParty/boost/boost/mpl/arg_fwd.hpp deleted file mode 100644 index 7346dc355..000000000 --- a/lib/3rdParty/boost/boost/mpl/arg_fwd.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED -#define BOOST_MPL_ARG_FWD_HPP_INCLUDED - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(arg) - -#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/arithmetic.hpp b/lib/3rdParty/boost/boost/mpl/arithmetic.hpp deleted file mode 100644 index 7729fd292..000000000 --- a/lib/3rdParty/boost/boost/mpl/arithmetic.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_ARITHMETIC_HPP_INCLUDED -#define BOOST_MPL_ARITHMETIC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include // deprecated - -#endif // BOOST_MPL_ARITHMETIC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/as_sequence.hpp b/lib/3rdParty/boost/boost/mpl/as_sequence.hpp deleted file mode 100644 index 7e671b0fd..000000000 --- a/lib/3rdParty/boost/boost/mpl/as_sequence.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_AS_SEQUENCE_HPP_INCLUDED -#define BOOST_MPL_AS_SEQUENCE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct as_sequence - : if_< is_sequence, T, single_view > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,as_sequence,(T)) -}; - -BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, as_sequence) - -}} - -#endif // BOOST_MPL_AS_SEQUENCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/assert.hpp b/lib/3rdParty/boost/boost/mpl/assert.hpp deleted file mode 100644 index 4d860a4ca..000000000 --- a/lib/3rdParty/boost/boost/mpl/assert.hpp +++ /dev/null @@ -1,439 +0,0 @@ - -#ifndef BOOST_MPL_ASSERT_HPP_INCLUDED -#define BOOST_MPL_ASSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include // make sure 'size_t' is placed into 'std' -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1700) -#include -#endif - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || (BOOST_MPL_CFG_GCC != 0) \ - || BOOST_WORKAROUND(__IBMCPP__, <= 600) -# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES -#endif - -#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER -#endif - -// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants) -// and GCC (which issues "unused variable" warnings when static constants are used -// at a function scope) -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || (BOOST_MPL_CFG_GCC != 0) || (BOOST_MPL_CFG_GPU != 0) -# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr } -#else -# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr) -#endif - - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -struct failed {}; - -// agurt, 24/aug/04: MSVC 7.1 workaround here and below: return/accept -// 'assert' by reference; can't apply it unconditionally -- apparently it -// degrades the quality of GCC diagnostics -#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) -# define AUX778076_ASSERT_ARG(x) x& -#else -# define AUX778076_ASSERT_ARG(x) x -#endif - -template< bool C > struct assert { typedef void* type; }; -template<> struct assert { typedef AUX778076_ASSERT_ARG(assert) type; }; - -template< bool C > -int assertion_failed( typename assert::type ); - -template< bool C > -struct assertion -{ - static int failed( assert ); -}; - -template<> -struct assertion -{ - static int failed( void* ); -}; - -struct assert_ -{ -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) - template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {}; -#endif - static assert_ const arg; - enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal }; -}; - - -#if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) - -bool operator==( failed, failed ); -bool operator!=( failed, failed ); -bool operator>( failed, failed ); -bool operator>=( failed, failed ); -bool operator<( failed, failed ); -bool operator<=( failed, failed ); - -#if defined(__EDG_VERSION__) -template< bool (*)(failed, failed), long x, long y > struct assert_relation {}; -# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation -#else -template< BOOST_MPL_AUX_NTTP_DECL(long, x), BOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > -struct assert_relation {}; -# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation -#endif - -#else // BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES - -boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ ); -boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ ); -boost::mpl::aux::weighted_tag<3>::type operator>( assert_, assert_ ); -boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ ); -boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ ); -boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ ); - -template< assert_::relations r, long x, long y > struct assert_relation {}; - -#endif - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1700) - -template -struct extract_assert_pred; - -template -struct extract_assert_pred { typedef Pred type; }; - -template -struct eval_assert { - typedef typename extract_assert_pred::type P; - typedef typename P::type p_type; - typedef typename ::boost::mpl::if_c), - failed ************ P::************ - >::type type; -}; - -template -struct eval_assert_not { - typedef typename extract_assert_pred::type P; - typedef typename P::type p_type; - typedef typename ::boost::mpl::if_c), - failed ************ ::boost::mpl::not_

::************ - >::type type; -}; - -template< typename T > -T make_assert_arg(); - -#elif !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) - -template< bool > struct assert_arg_pred_impl { typedef int type; }; -template<> struct assert_arg_pred_impl { typedef void* type; }; - -template< typename P > struct assert_arg_pred -{ - typedef typename P::type p_type; - typedef typename assert_arg_pred_impl< p_type::value >::type type; -}; - -template< typename P > struct assert_arg_pred_not -{ - typedef typename P::type p_type; - BOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value ); - typedef typename assert_arg_pred_impl

::type type; -}; - -template< typename Pred > -failed ************ (Pred::************ - assert_arg( void (*)(Pred), typename assert_arg_pred::type ) - ); - -template< typename Pred > -failed ************ (boost::mpl::not_::************ - assert_not_arg( void (*)(Pred), typename assert_arg_pred_not::type ) - ); - -template< typename Pred > -AUX778076_ASSERT_ARG(assert) -assert_arg( void (*)(Pred), typename assert_arg_pred_not::type ); - -template< typename Pred > -AUX778076_ASSERT_ARG(assert) -assert_not_arg( void (*)(Pred), typename assert_arg_pred::type ); - - -#else // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER - -template< bool c, typename Pred > struct assert_arg_type_impl -{ - typedef failed ************ Pred::* mwcw83_wknd; - typedef mwcw83_wknd ************* type; -}; - -template< typename Pred > struct assert_arg_type_impl -{ - typedef AUX778076_ASSERT_ARG(assert) type; -}; - -template< typename Pred > struct assert_arg_type - : assert_arg_type_impl< BOOST_MPL_AUX_VALUE_WKND(BOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred > -{ -}; - -template< typename Pred > -typename assert_arg_type::type -assert_arg(void (*)(Pred), int); - -template< typename Pred > -typename assert_arg_type< boost::mpl::not_ >::type -assert_not_arg(void (*)(Pred), int); - -# if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) -template< long x, long y, bool (*r)(failed, failed) > -typename assert_arg_type_impl< false,BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type -assert_rel_arg( BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) ); -# else -template< assert_::relations r, long x, long y > -typename assert_arg_type_impl< false,assert_relation >::type -assert_rel_arg( assert_relation ); -# endif - -#endif // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER - -#undef AUX778076_ASSERT_ARG - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1700) - -// BOOST_MPL_ASSERT((pred)) - -#define BOOST_MPL_ASSERT(pred) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::make_assert_arg< \ - typename boost::mpl::eval_assert::type \ - >() \ - ) \ - ) \ - ) \ -/**/ - -// BOOST_MPL_ASSERT_NOT((pred)) - -#define BOOST_MPL_ASSERT_NOT(pred) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::make_assert_arg< \ - typename boost::mpl::eval_assert_not::type \ - >() \ - ) \ - ) \ - ) \ -/**/ - -#else - -// BOOST_MPL_ASSERT((pred)) - -#define BOOST_MPL_ASSERT(pred) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::assert_arg( (void (*) pred)0, 1 ) \ - ) \ - ) \ - ) \ -/**/ - -// BOOST_MPL_ASSERT_NOT((pred)) - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# define BOOST_MPL_ASSERT_NOT(pred) \ -enum { \ - BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion::failed( \ - boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \ - ) \ - ) \ -}\ -/**/ -#else -# define BOOST_MPL_ASSERT_NOT(pred) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \ - ) \ - ) \ - ) \ -/**/ -#endif - -#endif - -// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y) - -#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) - -# if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) -// agurt, 9/nov/06: 'enum' below is a workaround for gcc 4.0.4/4.1.1 bugs #29522 and #29518 -# define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y) \ -enum { BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) }; \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion_failed( \ - (boost::mpl::failed ************ ( boost::mpl::assert_relation< \ - boost::mpl::assert_::relations( sizeof( \ - boost::mpl::assert_::arg rel boost::mpl::assert_::arg \ - ) ) \ - , x \ - , y \ - >::************)) 0 ) \ - ) \ - ) \ -/**/ -# else -# define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \ - boost::mpl::assert_::arg rel boost::mpl::assert_::arg \ - ) \ - ); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( bool, BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) ); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::assert_rel_arg( boost::mpl::assert_relation< \ - boost::mpl::assert_::relations(BOOST_PP_CAT(mpl_assert_rel,counter)) \ - , x \ - , y \ - >() ) \ - ) \ - ) \ - ) \ -/**/ -# endif - -# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ -BOOST_MPL_ASSERT_RELATION_IMPL(BOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \ -/**/ - -#else // !BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES - -# if defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) -# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed<(x rel y)>( boost::mpl::assert_rel_arg( \ - boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))() \ - ) ) \ - ) \ - ) \ -/**/ -# else -# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed<(x rel y)>( (boost::mpl::failed ************ ( \ - boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))::************))0 ) \ - ) \ - ) \ -/**/ -# endif - -#endif - - -// BOOST_MPL_ASSERT_MSG( (pred::value), USER_PROVIDED_MESSAGE, (types) ) - -#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) -# define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \ -struct msg; \ -typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \ -{ \ - using boost::mpl::assert_::types; \ - static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ - { return 0; } \ -} BOOST_PP_CAT(mpl_assert_arg,counter); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \ - ) \ - ) \ -/**/ -#else -# define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \ -struct msg; \ -typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \ -{ \ - static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ - { return 0; } \ -} BOOST_PP_CAT(mpl_assert_arg,counter); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \ - ) \ - ) \ -/**/ -#endif - -#define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \ -BOOST_MPL_ASSERT_MSG_IMPL( BOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \ -/**/ - -#endif // BOOST_MPL_ASSERT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/at.hpp b/lib/3rdParty/boost/boost/mpl/at.hpp deleted file mode 100644 index aa90e59c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/at.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_AT_HPP_INCLUDED -#define BOOST_MPL_AT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(N) - > -struct at - : at_impl< typename sequence_tag::type > - ::template apply< Sequence,N > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N)) -}; - -template< - typename Sequence - , BOOST_MPL_AUX_NTTP_DECL(long, N) - > -struct at_c - : at_impl< typename sequence_tag::type > - ::template apply< Sequence,mpl::long_ > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(2, at) - -}} - -#endif // BOOST_MPL_AT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/at_fwd.hpp b/lib/3rdParty/boost/boost/mpl/at_fwd.hpp deleted file mode 100644 index 6aaae3835..000000000 --- a/lib/3rdParty/boost/boost/mpl/at_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED -#define BOOST_MPL_AT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct at_impl; -template< typename Sequence, typename N > struct at; - -}} - -#endif // BOOST_MPL_AT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/O1_size_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/O1_size_impl.hpp deleted file mode 100644 index 3bcbd0f78..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/O1_size_impl.hpp +++ /dev/null @@ -1,87 +0,0 @@ - -#ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED -#define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation - returns 'Sequence::size' if sequence has a 'size' -// member, and -1 otherwise; conrete sequences might override it by -// specializing either the 'O1_size_impl' or the primary 'O1_size' template - -# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \ - && !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - -namespace aux { -template< typename Sequence > struct O1_size_impl - : Sequence::size -{ -}; -} - -template< typename Tag > -struct O1_size_impl -{ - template< typename Sequence > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : if_< - aux::has_size - , aux::O1_size_impl - , long_<-1> - >::type - { -#else - { - typedef typename if_< - aux::has_size - , aux::O1_size_impl - , long_<-1> - >::type type; - - BOOST_STATIC_CONSTANT(long, value = - (if_< - aux::has_size - , aux::O1_size_impl - , long_<-1> - >::type::value) - ); -#endif - }; -}; - -# else // BOOST_MSVC - -template< typename Tag > -struct O1_size_impl -{ - template< typename Sequence > struct apply - : long_<-1> - { - }; -}; - -# endif - -}} - -#endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/adl_barrier.hpp b/lib/3rdParty/boost/boost/mpl/aux_/adl_barrier.hpp deleted file mode 100644 index 3968c242a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/adl_barrier.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED -#define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) - -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_ -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ { -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE } -# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \ - namespace boost { namespace mpl { \ - using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \ - } } \ -/**/ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} } -namespace boost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; -namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; } -}} -#endif - -#else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE - -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE boost::mpl -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace boost { namespace mpl { -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }} -# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/ - -#endif - -#endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/advance_backward.hpp deleted file mode 100644 index df5679321..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/advance_backward.hpp +++ /dev/null @@ -1,128 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED -#define BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp -# include - -#else - -# include -# include -# include - -# include -# include -# include - -namespace boost { namespace mpl { namespace aux { - -// forward declaration -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward; - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - BOOST_MPL_LIMIT_UNROLLING) < 0 - ? 0 - : N - BOOST_MPL_LIMIT_UNROLLING - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template<> -struct advance_backward< BOOST_PP_FRAME_ITERATION(1) > -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - -#if i_ > 0 -# define BOOST_PP_ITERATION_PARAMS_2 \ - (3,(1, BOOST_PP_FRAME_ITERATION(1), )) -# include BOOST_PP_ITERATE() -#endif - - typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct apply - { - typedef int type; - }; -#endif -}; - -#undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2))) -# define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2)) - - typedef typename prior::type AUX778076_ITER_1; - -# undef AUX778076_ITER_1 -# undef AUX778076_ITER_0 - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/advance_forward.hpp deleted file mode 100644 index 62b0101c6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/advance_forward.hpp +++ /dev/null @@ -1,127 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED -#define BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp -# include - -#else - -# include -# include -# include - -# include -# include -# include - -namespace boost { namespace mpl { namespace aux { - -// forward declaration -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward; - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - BOOST_MPL_LIMIT_UNROLLING) < 0 - ? 0 - : N - BOOST_MPL_LIMIT_UNROLLING - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template<> -struct advance_forward< BOOST_PP_FRAME_ITERATION(1) > -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - -#if i_ > 0 -# define BOOST_PP_ITERATION_PARAMS_2 \ - (3,(1, i_, )) -# include BOOST_PP_ITERATE() -#endif - typedef BOOST_PP_CAT(iter,i_) type; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct apply - { - typedef int type; - }; -#endif -}; - -#undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2))) -# define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2)) - - typedef typename next::type AUX778076_ITER_1; - -# undef AUX778076_ITER_1 -# undef AUX778076_ITER_0 - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/apply_1st.hpp b/lib/3rdParty/boost/boost/mpl/aux_/apply_1st.hpp deleted file mode 100644 index b5677482b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/apply_1st.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED -#define BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { - -struct apply_1st -{ - template< typename Pair, typename T > struct apply - : apply2< - typename Pair::first - , typename Pair::second - , T - > - { - }; -}; - -}}} - -#endif // BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/arg_typedef.hpp b/lib/3rdParty/boost/boost/mpl/aux_/arg_typedef.hpp deleted file mode 100644 index 362db1600..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/arg_typedef.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED -#define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - -# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name; - -#else - -# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/ - -#endif - -#endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/arithmetic_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/arithmetic_op.hpp deleted file mode 100644 index 0171db5db..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/arithmetic_op.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -#endif - -#if !defined(AUX778076_OP_PREFIX) -# define AUX778076_OP_PREFIX AUX778076_OP_NAME -#endif - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp -# include - -#else - -# include -# include - - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) -namespace aux { -template< typename T, T n1, T n2 > -struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd) -{ - BOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2)); - typedef integral_c type; -}; -} -#endif - -template<> -struct AUX778076_OP_IMPL_NAME -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > -#else - : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type -#endif - { - }; -}; - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#undef AUX778076_OP_TAG_NAME -#undef AUX778076_OP_IMPL_NAME -#undef AUX778076_OP_ARITY -#undef AUX778076_OP_PREFIX -#undef AUX778076_OP_NAME -#undef AUX778076_OP_TOKEN diff --git a/lib/3rdParty/boost/boost/mpl/aux_/arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/arity.hpp deleted file mode 100644 index d13ab4ade..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/arity.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED -#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) - -# include -# include - -namespace boost { namespace mpl { namespace aux { - -// agurt, 15/mar/02: it's possible to implement the template so that it will -// "just work" and do not require any specialization, but not on the compilers -// that require the arity workaround in the first place -template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct arity -{ - BOOST_STATIC_CONSTANT(int, value = N); -}; - -}}} - -#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES - -#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/arity_spec.hpp b/lib/3rdParty/boost/boost/mpl/aux_/arity_spec.hpp deleted file mode 100644 index 7c8221428..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/arity_spec.hpp +++ /dev/null @@ -1,67 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED -#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \ -namespace aux { \ -template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \ -struct arity< \ - name< BOOST_MPL_PP_PARAMS(i,T) > \ - , N \ - > \ -{ \ - BOOST_STATIC_CONSTANT(int \ - , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - ); \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/ -#endif - -# define BOOST_MPL_AUX_ARITY_SPEC(i,name) \ - BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \ -/**/ - - -#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ - && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \ -namespace aux { \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -struct template_arity< name > \ - : int_ \ -{ \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ -#endif - - -#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/at_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/at_impl.hpp deleted file mode 100644 index 923937480..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/at_impl.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'at_impl' or the primary 'at' template - -template< typename Tag > -struct at_impl -{ - template< typename Sequence, typename N > struct apply - { - typedef typename advance< - typename begin::type - , N - >::type iter_; - - typedef typename deref::type type; - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl) - -}} - -#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/back_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/back_impl.hpp deleted file mode 100644 index a3c7248df..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/back_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation, requires at least bi-directional iterators; -// conrete sequences might override it by specializing either the -// 'back_impl' or the primary 'back' template - -template< typename Tag > -struct back_impl -{ - template< typename Sequence > struct apply - { - typedef typename end::type end_; - typedef typename prior::type last_; - typedef typename deref::type type; - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, back_impl) - -}} - -#endif // BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/basic_bind.hpp deleted file mode 100644 index 6c1f64344..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/basic_bind.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_AUX_BASIC_BIND_HPP_INCLUDED -#define BOOST_MPL_AUX_BASIC_BIND_HPP_INCLUDED - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT -#include - -#endif // BOOST_MPL_AUX_BASIC_BIND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/begin_end_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/begin_end_impl.hpp deleted file mode 100644 index 58b70dd10..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/begin_end_impl.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -#ifndef BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - - -namespace aux { - -template< typename Sequence > -struct begin_type -{ - typedef typename Sequence::begin type; -}; -template< typename Sequence > -struct end_type -{ - typedef typename Sequence::end type; -}; - -} - -// default implementation; conrete sequences might override it by -// specializing either the 'begin_impl/end_impl' or the primary -// 'begin/end' templates - -template< typename Tag > -struct begin_impl -{ - template< typename Sequence > struct apply - { - typedef typename eval_if, - aux::begin_type, void_>::type type; - }; -}; - -template< typename Tag > -struct end_impl -{ - template< typename Sequence > struct apply - { - typedef typename eval_if, - aux::end_type, void_>::type type; - }; -}; - -// specialize 'begin_trait/end_trait' for two pre-defined tags - -# define AUX778076_IMPL_SPEC(name, tag, result) \ -template<> \ -struct name##_impl \ -{ \ - template< typename Sequence > struct apply \ - { \ - typedef result type; \ - }; \ -}; \ -/**/ - -// a sequence with nested 'begin/end' typedefs; just query them -AUX778076_IMPL_SPEC(begin, nested_begin_end_tag, typename Sequence::begin) -AUX778076_IMPL_SPEC(end, nested_begin_end_tag, typename Sequence::end) - -// if a type 'T' does not contain 'begin/end' or 'tag' members -// and doesn't specialize either 'begin/end' or 'begin_impl/end_impl' -// templates, then we end up here -AUX778076_IMPL_SPEC(begin, non_sequence_tag, void_) -AUX778076_IMPL_SPEC(end, non_sequence_tag, void_) -AUX778076_IMPL_SPEC(begin, na, void_) -AUX778076_IMPL_SPEC(end, na, void_) - -# undef AUX778076_IMPL_SPEC - - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,begin_impl) -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,end_impl) - -}} - -#endif // BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/clear_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/clear_impl.hpp deleted file mode 100644 index 20b270c0c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/clear_impl.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -// no default implementation; the definition is needed to make MSVC happy - -template< typename Tag > -struct clear_impl -{ - template< typename Sequence > struct apply; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl) - -}} - -#endif // BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/common_name_wknd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/common_name_wknd.hpp deleted file mode 100644 index 00758b243..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/common_name_wknd.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED -#define BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if BOOST_WORKAROUND(__BORLANDC__, < 0x561) -// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class -// and function named 'xxx'" diagnostic -# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \ -namespace name_##wknd { \ -template< typename > void name(); \ -} \ -/**/ - -#else - -# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/ - -#endif // __BORLANDC__ - -#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/comparison_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/comparison_op.hpp deleted file mode 100644 index 2df72d300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/comparison_op.hpp +++ /dev/null @@ -1,83 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#if !defined(AUX778076_OP_PREFIX) -# define AUX778076_OP_PREFIX AUX778076_OP_NAME -#endif - -#define AUX778076_OP_ARITY 2 - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp -# include - -#else - -# include -# include - -namespace boost { namespace mpl { - -// MSVC workaround: implement less in terms of greater -#if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0) -# define AUX778076_OP(N1, N2) \ - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \ -/**/ -#else -# define AUX778076_OP(N1, N2) \ - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \ - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \ - ) \ -/**/ -#endif - -template<> -struct AUX778076_OP_IMPL_NAME -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : bool_< AUX778076_OP(N1, N2) > - { -#else - { - BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2)); - typedef bool_ type; -#endif - }; -}; - -#undef AUX778076_OP - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#undef AUX778076_OP_TAG_NAME -#undef AUX778076_OP_IMPL_NAME -#undef AUX778076_OP_ARITY -#undef AUX778076_OP_PREFIX -#undef AUX778076_OP_NAME -#undef AUX778076_OP_TOKEN diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/adl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/adl.hpp deleted file mode 100644 index e9bdf1156..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/adl.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -// agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC, -// but putting everything expect public, user-specializable metafunctions into -// a separate global namespace has a nice side effect of reducing the length -// of template instantiation symbols, so we apply the workaround on all -// platforms that can handle it - -#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ - || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ - || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \ - ) - -# define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/arrays.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/arrays.hpp deleted file mode 100644 index a9ea68ad6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/arrays.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - ) - -# define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/bcc.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/bcc.hpp deleted file mode 100644 index fe4941a59..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/bcc.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $ -// $Revision: 24874 $ - -#include - -#if !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_BCC590_WORKAROUNDS - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/bind.hpp deleted file mode 100644 index 10bcb94b8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/bind.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED - -// Copyright David Abrahams 2002 -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - ) - -# define BOOST_MPL_CFG_NO_BIND_TEMPLATE - -#endif - -//#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -#endif // BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/compiler.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/compiler.hpp deleted file mode 100644 index 7d3e3b662..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/compiler.hpp +++ /dev/null @@ -1,66 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_CFG_COMPILER_DIR) - -# include -# include -# include -# include -# include -# include - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_CFG_COMPILER_DIR msvc60 - -# elif BOOST_WORKAROUND(BOOST_MSVC, == 1300) -# define BOOST_MPL_CFG_COMPILER_DIR msvc70 - -# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) -# define BOOST_MPL_CFG_COMPILER_DIR gcc - -# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_CFG_COMPILER_DIR bcc551 -# elif BOOST_WORKAROUND(__BORLANDC__, >= 0x590) -# define BOOST_MPL_CFG_COMPILER_DIR bcc -# else -# define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590 -# endif - -# elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_MPL_CFG_COMPILER_DIR dmc - -# elif defined(__MWERKS__) -# if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_CFG_COMPILER_DIR mwcw -# else -# define BOOST_MPL_CFG_COMPILER_DIR plain -# endif - -# elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# define BOOST_MPL_CFG_COMPILER_DIR no_ctps - -# elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) -# define BOOST_MPL_CFG_COMPILER_DIR no_ttp - -# else -# define BOOST_MPL_CFG_COMPILER_DIR plain -# endif - -#endif // BOOST_MPL_CFG_COMPILER_DIR - -#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/ctps.hpp deleted file mode 100644 index af78f47ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/ctps.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, < 0x582) - -# define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC - -#endif - -// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in - -#endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/dependent_nttp.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/dependent_nttp.hpp deleted file mode 100644 index 5c2e24dbb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/dependent_nttp.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -// GCC and EDG-based compilers incorrectly reject the following code: -// template< typename T, T n > struct a; -// template< typename T > struct b; -// template< typename T, T n > struct b< a > {}; - -#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_NONTYPE_PARAMETER_IN_PARTIAL_SPEC) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__EDG_VERSION__, BOOST_TESTED_AT(300)) \ - || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ - ) - -# define BOOST_MPL_CFG_NO_DEPENDENT_NONTYPE_PARAMETER_IN_PARTIAL_SPEC - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp deleted file mode 100644 index 9f8ea8c67..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - -# define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/dtp.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/dtp.hpp deleted file mode 100644 index 4379b6b2f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/dtp.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -// MWCW 7.x-8.0 "losts" default template parameters of nested class -// templates when their owner classes are passed as arguments to other -// templates; Borland 5.5.1 "forgets" them from the very beginning (if -// the owner class is a class template), and Borland 5.6 isn't even -// able to compile a definition of nested class template with DTP - -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES - -#endif - - -#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ - ) - -# define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/eti.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/eti.hpp deleted file mode 100644 index 519d433d3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/eti.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -// flags for MSVC 6.5's so-called "early template instantiation bug" -#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -# define BOOST_MPL_CFG_MSVC_60_ETI_BUG - -#endif - -#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(BOOST_MSVC, == 1300) - -# define BOOST_MPL_CFG_MSVC_70_ETI_BUG - -#endif - -#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ - || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ - ) - -# define BOOST_MPL_CFG_MSVC_ETI_BUG - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/forwarding.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/forwarding.hpp deleted file mode 100644 index b4296ad96..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/forwarding.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_NO_NESTED_FORWARDING - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/gcc.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/gcc.hpp deleted file mode 100644 index 080495de1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/gcc.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if defined(__GNUC__) && !defined(__EDG_VERSION__) -# define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) -#else -# define BOOST_MPL_CFG_GCC 0 -#endif - -#endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/gpu.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/gpu.hpp deleted file mode 100644 index 0e5ed784c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/gpu.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED - -// Copyright Eric Niebler 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_GPU_ENABLED) \ - -# define BOOST_MPL_CFG_GPU_ENABLED BOOST_GPU_ENABLED - -#endif - -#if defined __CUDACC__ - -# define BOOST_MPL_CFG_GPU 1 - -#else - -# define BOOST_MPL_CFG_GPU 0 - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/has_apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/has_apply.hpp deleted file mode 100644 index 4dc01c664..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/has_apply.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) \ - && ( defined(BOOST_MPL_CFG_NO_HAS_XXX) \ - || BOOST_WORKAROUND(__EDG_VERSION__, < 300) \ - || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ - ) - -# define BOOST_MPL_CFG_NO_HAS_APPLY - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/has_xxx.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/has_xxx.hpp deleted file mode 100644 index b0f2f8c23..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/has_xxx.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// Copyright David Abrahams 2002-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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -// agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation - -#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) \ - && ( defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ - || BOOST_WORKAROUND(__GNUC__, <= 2) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ - ) - -# define BOOST_MPL_CFG_NO_HAS_XXX -# define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/integral.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/integral.hpp deleted file mode 100644 index 144542d9c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/integral.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS - -#endif - -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ - ) - -# define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/intel.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/intel.hpp deleted file mode 100644 index 5bd915917..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/intel.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - - -// BOOST_INTEL_CXX_VERSION is defined here: -#include - -#endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/lambda.hpp deleted file mode 100644 index 93fbafe07..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/lambda.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -// agurt, 15/jan/02: full-fledged implementation requires both -// template template parameters _and_ partial specialization - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ - && ( defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ - || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - ) - -# define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/msvc.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/msvc.hpp deleted file mode 100644 index 8a6b92462..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/msvc.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - - -// BOOST_MSVC is defined here: -#include - -#endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/msvc_typename.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/msvc_typename.hpp deleted file mode 100644 index feedc16db..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/msvc_typename.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# define BOOST_MSVC_TYPENAME -#else -# define BOOST_MSVC_TYPENAME typename -#endif - -#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/nttp.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/nttp.hpp deleted file mode 100644 index 11125a9bf..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/nttp.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp" -// for a workaround): -// -// namespace std { -// template< typename Char > struct string; -// } -// -// void foo(std::string); -// -// namespace boost { namespace mpl { -// template< int > struct arg; -// }} - -#if !defined(BOOST_MPL_CFG_NTTP_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -# define BOOST_MPL_CFG_NTTP_BUG - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/operators.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/operators.hpp deleted file mode 100644 index 3fb9db305..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/operators.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \ - || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \ - || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \ - || BOOST_WORKAROUND(__NVCC__, BOOST_TESTED_AT(1)) \ - ) - -# define BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/overload_resolution.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/overload_resolution.hpp deleted file mode 100644 index 61e4486e9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/overload_resolution.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \ - || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ - ) - -# define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/pp_counter.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/pp_counter.hpp deleted file mode 100644 index e7fb8d66c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/pp_counter.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_AUX_PP_COUNTER) -# include -# if BOOST_WORKAROUND(BOOST_MSVC, >= 1300) -# define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__ -# else -# define BOOST_MPL_AUX_PP_COUNTER() __LINE__ -# endif -#endif - -#endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/preprocessor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/preprocessor.hpp deleted file mode 100644 index 82ebc68fe..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/preprocessor.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \ - && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \ - || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \ - || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ - ) - -# define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION - -#endif - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) -# define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES -#endif - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \ - && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING -#endif - - -#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/static_constant.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/static_constant.hpp deleted file mode 100644 index ece38fb0e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/static_constant.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -// BOOST_STATIC_CONSTANT is defined here: -# include -#else -// undef the macro for the preprocessing mode -# undef BOOST_STATIC_CONSTANT -#endif - -#endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/ttp.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/ttp.hpp deleted file mode 100644 index 3aff3f84d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/ttp.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ - && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \ - || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \ - ) - -# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS - -#endif - - -#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - ) - -# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/typeof.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/typeof.hpp deleted file mode 100644 index cde6179c6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/typeof.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_HAS_TYPEOF) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( defined(BOOST_MPL_CFG_GCC) && BOOST_MPL_CFG_GCC >= 0x0302 \ - || defined(__MWERKS__) && __MWERKS__ >= 0x3000 \ - ) - -# define BOOST_MPL_CFG_HAS_TYPEOF - -#endif - - -#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && defined(BOOST_MPL_CFG_HAS_TYPEOF) - -# define BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/use_preprocessed.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/use_preprocessed.hpp deleted file mode 100644 index 8fd5c6075..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/use_preprocessed.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/config/workaround.hpp b/lib/3rdParty/boost/boost/mpl/aux_/config/workaround.hpp deleted file mode 100644 index 82c632982..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/config/workaround.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/contains_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/contains_impl.hpp deleted file mode 100644 index b80caeafe..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/contains_impl.hpp +++ /dev/null @@ -1,61 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED - -// Copyright Eric Friedman 2002 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -template< typename Tag > -struct contains_impl -{ - template< typename Sequence, typename T > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : not_< is_same< - typename find::type - , typename end::type - > > - { -#else - { - typedef not_< is_same< - typename find::type - , typename end::type - > > type; - - BOOST_STATIC_CONSTANT(bool, value = - (not_< is_same< - typename find::type - , typename end::type - > >::value) - ); -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,contains_impl) - -}} - -#endif // BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/count_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/count_args.hpp deleted file mode 100644 index b432d370e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/count_args.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(AUX778076_COUNT_ARGS_PARAM_NAME) -# define AUX778076_COUNT_ARGS_PARAM_NAME T -#endif - -#if !defined(AUX778076_COUNT_ARGS_TEMPLATE_PARAM) -# define AUX778076_COUNT_ARGS_TEMPLATE_PARAM typename AUX778076_COUNT_ARGS_PARAM_NAME -#endif - -// local macros, #undef-ined at the end of the header - -#if !defined(AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES) - -# include -# include - -# define AUX778076_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT -# define AUX778076_COUNT_ARGS_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - AUX778076_COUNT_ARGS_ARITY \ - , param \ - ) \ - /**/ - -#else - -# include -# include -# include - -# define AUX778076_COUNT_ARGS_REPEAT BOOST_PP_REPEAT -# define AUX778076_COUNT_ARGS_PARAMS(param) \ - BOOST_PP_ENUM_SHIFTED_PARAMS( \ - BOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \ - , param \ - ) \ - /**/ - -#endif // AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES - - -#define AUX778076_IS_ARG_TEMPLATE_NAME \ - BOOST_PP_CAT(is_,BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \ -/**/ - -#define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \ - BOOST_PP_EXPR_IF(i, +) \ - AUX778076_IS_ARG_TEMPLATE_NAME::value \ -/**/ - -// is__arg -template< AUX778076_COUNT_ARGS_TEMPLATE_PARAM > -struct AUX778076_IS_ARG_TEMPLATE_NAME -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct AUX778076_IS_ARG_TEMPLATE_NAME -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// _count_args -template< - AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM) - > -struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args) -{ - BOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT( - AUX778076_COUNT_ARGS_ARITY - , AUX778076_COUNT_ARGS_FUNC - , AUX778076_COUNT_ARGS_PARAM_NAME - )); -}; - -#undef AUX778076_COUNT_ARGS_FUNC -#undef AUX778076_IS_ARG_TEMPLATE_NAME -#undef AUX778076_COUNT_ARGS_PARAMS -#undef AUX778076_COUNT_ARGS_REPEAT - -#undef AUX778076_COUNT_ARGS_ARITY -#undef AUX778076_COUNT_ARGS_DEFAULT -#undef AUX778076_COUNT_ARGS_PREFIX -#undef AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES -#undef AUX778076_COUNT_ARGS_TEMPLATE_PARAM -#undef AUX778076_COUNT_ARGS_PARAM_NAME diff --git a/lib/3rdParty/boost/boost/mpl/aux_/count_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/count_impl.hpp deleted file mode 100644 index 2f1200c6c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/count_impl.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Tag > struct count_impl -{ - template< typename Sequence, typename T > struct apply -#if BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x561)) - { - typedef typename count_if< Sequence,same_as >::type type; - BOOST_STATIC_CONSTANT(int, value = BOOST_MPL_AUX_VALUE_WKND(type)::value); -#else - : count_if< Sequence,same_as > - { -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,count_impl) - -}} - -#endif // BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/empty_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/empty_impl.hpp deleted file mode 100644 index cfe55ae25..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/empty_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'empty_impl' or the primary 'empty' template - -template< typename Tag > -struct empty_impl -{ - template< typename Sequence > struct apply - : is_same< - typename begin::type - , typename end::type - > - { - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,empty_impl) - -}} - -#endif // BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/erase_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/erase_impl.hpp deleted file mode 100644 index ab763be5a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/erase_impl.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'erase_impl' or the primary 'erase' template - -template< typename Tag > -struct erase_impl -{ - template< - typename Sequence - , typename First - , typename Last - > - struct apply - { - typedef typename if_na< Last,typename next::type >::type last_; - - // 1st half: [begin, first) - typedef iterator_range< - typename begin::type - , First - > first_half_; - - // 2nd half: [last, end) ... that is, [last + 1, end) - typedef iterator_range< - last_ - , typename end::type - > second_half_; - - typedef typename reverse_fold< - second_half_ - , typename clear::type - , push_front<_,_> - >::type half_sequence_; - - typedef typename reverse_fold< - first_half_ - , half_sequence_ - , push_front<_,_> - >::type type; - }; -}; - -}} - -#endif // BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/erase_key_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/erase_key_impl.hpp deleted file mode 100644 index 4d213a543..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/erase_key_impl.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ERASE_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ERASE_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< typename Tag > -struct erase_key_impl -{ - template< typename Sequence, typename Key > struct apply; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, erase_key_impl) - -}} - -#endif // BOOST_MPL_AUX_ERASE_KEY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/filter_iter.hpp b/lib/3rdParty/boost/boost/mpl/aux_/filter_iter.hpp deleted file mode 100644 index e4237f19a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/filter_iter.hpp +++ /dev/null @@ -1,140 +0,0 @@ - -#ifndef BOOST_MPL_AUX_FILTER_ITER_HPP_INCLUDED -#define BOOST_MPL_AUX_FILTER_ITER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Iterator - , typename LastIterator - , typename Predicate - > -struct filter_iter; - -template< - typename Iterator - , typename LastIterator - , typename Predicate - > -struct next_filter_iter -{ - typedef typename find_if< - iterator_range - , Predicate - >::type base_iter_; - - typedef filter_iter type; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename Iterator - , typename LastIterator - , typename Predicate - > -struct filter_iter -{ - typedef Iterator base; - typedef forward_iterator_tag category; - typedef typename aux::next_filter_iter< - typename mpl::next::type - , LastIterator - , Predicate - >::type next; - - typedef typename deref::type type; -}; - -template< - typename LastIterator - , typename Predicate - > -struct filter_iter< LastIterator,LastIterator,Predicate > -{ - typedef LastIterator base; - typedef forward_iterator_tag category; -}; - -#else - -template< bool > -struct filter_iter_impl -{ - template< - typename Iterator - , typename LastIterator - , typename Predicate - > - struct result_ - { - typedef Iterator base; - typedef forward_iterator_tag category; - typedef typename next_filter_iter< - typename mpl::next::type - , LastIterator - , Predicate - >::type next; - - typedef typename deref::type type; - }; -}; - -template<> -struct filter_iter_impl< true > -{ - template< - typename Iterator - , typename LastIterator - , typename Predicate - > - struct result_ - { - typedef Iterator base; - typedef forward_iterator_tag category; - }; -}; - -template< - typename Iterator - , typename LastIterator - , typename Predicate - > -struct filter_iter - : filter_iter_impl< - ::boost::is_same::value - >::template result_< Iterator,LastIterator,Predicate > -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::filter_iter) - -}} - -#endif // BOOST_MPL_AUX_FILTER_ITER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/find_if_pred.hpp b/lib/3rdParty/boost/boost/mpl/aux_/find_if_pred.hpp deleted file mode 100644 index c07d89d6c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/find_if_pred.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED -#define BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Eric Friedman 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename Predicate > -struct find_if_pred -{ - template< typename Iterator > - struct apply - { - typedef not_< aux::iter_apply1 > type; - }; -}; - -}}} - -#endif // BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/fold_impl.hpp deleted file mode 100644 index 97c88c5b2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/fold_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include -# include -# endif -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp -# include - -#else - -# define AUX778076_FOLD_IMPL_OP(iter) typename deref::type -# define AUX778076_FOLD_IMPL_NAME_PREFIX fold -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/fold_impl_body.hpp b/lib/3rdParty/boost/boost/mpl/aux_/fold_impl_body.hpp deleted file mode 100644 index 02dd645f7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/fold_impl_body.hpp +++ /dev/null @@ -1,365 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if !defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -# include -# include -# include -# include -# include -# include - -# include -# include -# include - -// local macros, #undef-ined at the end of the header - -# define AUX778076_ITER_FOLD_STEP(unused, i, unused2) \ - typedef typename apply2< \ - ForwardOp \ - , BOOST_PP_CAT(state,i) \ - , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,i)) \ - >::type BOOST_PP_CAT(state,BOOST_PP_INC(i)); \ - typedef typename mpl::next::type \ - BOOST_PP_CAT(iter,BOOST_PP_INC(i)); \ - /**/ - -# define AUX778076_FOLD_IMPL_NAME \ - BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \ - /**/ - -# define AUX778076_FOLD_CHUNK_NAME \ - BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \ - /**/ - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration -template< - BOOST_MPL_AUX_NTTP_DECL(int, N) - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -# if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< - BOOST_MPL_AUX_NTTP_DECL(int, N) - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME -{ - typedef AUX778076_FOLD_IMPL_NAME< - BOOST_MPL_LIMIT_UNROLLING - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef AUX778076_FOLD_IMPL_NAME< - ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -// fallback implementation for sequences of unknown size -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,ForwardOp> - : AUX778076_FOLD_IMPL_NAME< - -1 - , typename mpl::next::type - , Last - , typename apply2::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,ForwardOp> -{ - typedef State state; - typedef Last iterator; -}; - -# else // BOOST_WORKAROUND(__BORLANDC__, < 0x600) - -// Borland have some serious problems with the unrolled version, so -// we always use a basic implementation -template< - BOOST_MPL_AUX_NTTP_DECL(int, N) - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME -{ - typedef AUX778076_FOLD_IMPL_NAME< - -1 - , typename mpl::next::type - , Last - , typename apply2::type - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - typedef state type; -}; - -template< - BOOST_MPL_AUX_NTTP_DECL(int, N) - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME -{ - typedef State state; - typedef Last iterator; - typedef state type; -}; - -# endif // BOOST_WORKAROUND(__BORLANDC__, < 0x600) - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct AUX778076_FOLD_CHUNK_NAME; - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct AUX778076_FOLD_CHUNK_NAME -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef AUX778076_FOLD_IMPL_NAME< - BOOST_MPL_LIMIT_UNROLLING - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef AUX778076_FOLD_IMPL_NAME< - ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -// fallback implementation for sequences of unknown size -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step); - -template< - typename Last - , typename State - > -struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step) -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct AUX778076_FOLD_CHUNK_NAME<-1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same::type - , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step) - , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step) - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct result_ - { - typedef int state; - typedef int iterator; - }; -#endif -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step) -{ - // can't inherit here - it breaks MSVC 7.0 - typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_< - typename mpl::next::type - , Last - , typename apply2::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - BOOST_MPL_AUX_NTTP_DECL(int, N) - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME - : AUX778076_FOLD_CHUNK_NAME - ::template result_ -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}}} - -# undef AUX778076_FOLD_IMPL_NAME -# undef AUX778076_FOLD_CHUNK_NAME -# undef AUX778076_ITER_FOLD_STEP - -#undef AUX778076_FOLD_IMPL_OP -#undef AUX778076_FOLD_IMPL_NAME_PREFIX - -///// iteration - -#else - -# define n_ BOOST_PP_FRAME_ITERATION(1) - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME -{ - typedef First iter0; - typedef State state0; - - BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused) - - typedef BOOST_PP_CAT(state,n_) state; - typedef BOOST_PP_CAT(iter,n_) iterator; -}; - -#else - -template<> struct AUX778076_FOLD_CHUNK_NAME -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - - BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused) - - typedef BOOST_PP_CAT(state,n_) state; - typedef BOOST_PP_CAT(iter,n_) iterator; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct result_ - { - typedef int state; - typedef int iterator; - }; -#endif -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -# undef n_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/fold_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/fold_op.hpp deleted file mode 100644 index 722c22c01..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/fold_op.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED -#define BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { - -// hand-written version is more efficient than bind/lambda expression -template< typename Op > -struct fold_op -{ - template< typename T1, typename T2 > struct apply - { - typedef typename apply2< - Op - , T1 - , typename T2::type - >::type type; - }; -}; - -}}} - -#endif // BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/fold_pred.hpp b/lib/3rdParty/boost/boost/mpl/aux_/fold_pred.hpp deleted file mode 100644 index 315640030..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/fold_pred.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED -#define BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename Last > -struct fold_pred -{ - template< - typename State - , typename Iterator - > - struct apply - : not_same_as::template apply - { - }; -}; - -}}} - -#endif // BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/front_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/front_impl.hpp deleted file mode 100644 index 9493c1c4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/front_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'front_impl' or the primary 'front' template - -template< typename Tag > -struct front_impl -{ - template< typename Sequence > struct apply - { - typedef typename begin::type iter_; - typedef typename deref::type type; - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,front_impl) - -}} - -#endif // BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/full_lambda.hpp deleted file mode 100644 index 918aff5c0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/full_lambda.hpp +++ /dev/null @@ -1,354 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED -#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -# include -# endif -#endif - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_LAMBDA_PARAMS(i_, param) \ - BOOST_MPL_PP_PARAMS(i_, param) \ - /**/ - -# define AUX778076_BIND_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ - -# define AUX778076_BIND_N_PARAMS(i_, param) \ - BOOST_PP_COMMA_IF(i_) \ - BOOST_MPL_PP_PARAMS(i_, param) \ - /**/ - -# define AUX778076_ARITY_PARAM(param) \ - BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \ - /**/ - - -#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY -namespace aux { - -template< - BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false) - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) > - : false_ -{ -}; - -} // namespace aux -#undef n_ - -template< - typename T - , typename Tag - AUX778076_ARITY_PARAM(typename Arity) - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - - -template< int N, typename Tag > -struct lambda< arg,Tag AUX778076_ARITY_PARAM(int_<-1>) > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag AUX778076_ARITY_PARAM(int_<1>) > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form -template< - typename F, AUX778076_BIND_PARAMS(typename T) - , typename Tag - > -struct lambda< - bind - , Tag - AUX778076_ARITY_PARAM(int_) - > -{ - typedef false_ is_le; - typedef bind result_; - typedef result_ type; -}; - - -#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_::type,Tag2 > l3; - - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -#elif !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -#endif - -# undef AUX778076_ARITY_PARAM -# undef AUX778076_BIND_N_PARAMS -# undef AUX778076_BIND_PARAMS -# undef AUX778076_LAMBDA_PARAMS - -#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -BOOST_MPL_AUX_NA_SPEC(2, lambda) -#else -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) -#endif - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 -#define i_ BOOST_PP_FRAME_ITERATION(1) - -#if i_ > 0 - -namespace aux { - -# define AUX778076_RESULT(unused, i_, T) \ - BOOST_PP_COMMA_IF(i_) \ - typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::result_ \ - /**/ - -# define AUX778076_TYPE(unused, i_, T) \ - BOOST_PP_COMMA_IF(i_) \ - typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::type \ - /**/ - -template< - typename IsLE, typename Tag - , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F - , AUX778076_LAMBDA_PARAMS(i_, typename L) - > -struct BOOST_PP_CAT(le_result,i_) -{ - typedef F< - BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L) - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F - , AUX778076_LAMBDA_PARAMS(i_, typename L) - > -struct BOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) > -{ - typedef BOOST_PP_CAT(bind,i_)< - BOOST_PP_CAT(quote,i_) - , BOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L) - > result_; - - typedef mpl::protect type; -}; - -# undef AUX778076_TYPE -# undef AUX778076_RESULT - -} // namespace aux - - -# define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \ - typedef lambda< BOOST_PP_CAT(T, BOOST_PP_INC(i_)), Tag > \ - BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \ -/**/ - -# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \ - typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \ - BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \ -/**/ - -# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \ - BOOST_PP_COMMA_IF(i_) \ - BOOST_PP_CAT(is_le,BOOST_PP_INC(i_))::value \ -/**/ - -template< - template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F - , AUX778076_LAMBDA_PARAMS(i_, typename T) - , typename Tag - > -struct lambda< - F - , Tag - AUX778076_ARITY_PARAM(int_) - > -{ - BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T) - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused) - - typedef typename aux::lambda_or< - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused) - >::type is_le; - - typedef aux::BOOST_PP_CAT(le_result,i_)< - is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l) - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - - -# undef AUX778076_IS_LAMBDA_EXPR -# undef AUX778076_IS_LE_TYPEDEF -# undef AUX778076_LAMBDA_TYPEDEF - -#endif // i_ > 0 - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) - , typename Tag - > -struct lambda< - BOOST_PP_CAT(bind,i_) - , Tag - AUX778076_ARITY_PARAM(int_) - > -{ - typedef false_ is_le; - typedef BOOST_PP_CAT(bind,i_)< - F - AUX778076_BIND_N_PARAMS(i_, T) - > result_; - - typedef result_ type; -}; - -#undef i_ -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_apply.hpp deleted file mode 100644 index 9c16a3549..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_apply.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { -#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false) -#else -template< typename T, typename fallback_ = false_ > -struct has_apply - : fallback_ -{ -}; -#endif -}}} - -#endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_begin.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_begin.hpp deleted file mode 100644 index 4ee415cbb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_begin.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true) -}}} - -#endif // BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_key_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_key_impl.hpp deleted file mode 100644 index 7a0e9b558..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_key_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// Copyright David Abrahams 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -// no default implementation; the definition is needed to make MSVC happy - -template< typename Tag > struct has_key_impl -{ - template< typename AssociativeSequence, typename Key > struct apply; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,has_key_impl) - -}} - -#endif // BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_rebind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_rebind.hpp deleted file mode 100644 index eb4eda613..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_rebind.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) -# include -#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# include -# include -# include -# include -#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# include -# include -# include -# include -# include -#else -# include -# include -# include -#endif - -namespace boost { namespace mpl { namespace aux { - -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) - -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false) - -#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false) - -template< typename T > -struct has_rebind - : if_< - msvc_is_class - , has_rebind_impl - , bool_ - >::type -{ -}; - -#else // the rest - -template< typename T > struct has_rebind_tag {}; -no_tag operator|(has_rebind_tag, void const volatile*); - -# if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -template< typename T > -struct has_rebind -{ - static has_rebind_tag* get(); - BOOST_STATIC_CONSTANT(bool, value = - sizeof(has_rebind_tag() | get()) == sizeof(yes_tag) - ); -}; -# else // __BORLANDC__ -template< typename T > -struct has_rebind_impl -{ - static T* get(); - BOOST_STATIC_CONSTANT(bool, value = - sizeof(has_rebind_tag() | get()) == sizeof(yes_tag) - ); -}; - -template< typename T > -struct has_rebind - : if_< - is_class - , has_rebind_impl - , bool_ - >::type -{ -}; -# endif // __BORLANDC__ - -#endif - -}}} - -#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_size.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_size.hpp deleted file mode 100644 index ff29913f9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_size.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_DEF(size) -}}} - -#endif // BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_tag.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_tag.hpp deleted file mode 100644 index 3912a76af..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_tag.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false) -}}} - -#endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/has_type.hpp b/lib/3rdParty/boost/boost/mpl/aux_/has_type.hpp deleted file mode 100644 index 6744ef5b0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/has_type.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true) -}}} - -#endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/include_preprocessed.hpp b/lib/3rdParty/boost/boost/mpl/aux_/include_preprocessed.hpp deleted file mode 100644 index c13434c8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/include_preprocessed.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_PREPROCESSED_HEADER \ - BOOST_MPL_CFG_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#else -# define AUX778076_PREPROCESSED_HEADER \ - BOOST_PP_CAT(BOOST_MPL_CFG_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#endif - -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) -# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER) -# include AUX778076_INCLUDE_STRING -# undef AUX778076_INCLUDE_STRING -#else -# include BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER) -#endif - -# undef AUX778076_PREPROCESSED_HEADER - -#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/lib/3rdParty/boost/boost/mpl/aux_/insert_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/insert_impl.hpp deleted file mode 100644 index 03a304b58..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/insert_impl.hpp +++ /dev/null @@ -1,68 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_IMPL_HPP_INCLUDED -#define BOOST_MPL_INSERT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'insert_impl' or the primary 'insert' template - -template< typename Tag > -struct insert_impl -{ - template< - typename Sequence - , typename Pos - , typename T - > - struct apply - { - typedef iterator_range< - typename begin::type - , Pos - > first_half_; - - typedef iterator_range< - Pos - , typename end::type - > second_half_; - - typedef typename reverse_fold< - second_half_ - , typename clear::type - , push_front<_,_> - >::type half_sequence_; - - typedef typename reverse_fold< - first_half_ - , typename push_front::type - , push_front<_,_> - >::type type; - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_impl) - -}} - -#endif // BOOST_MPL_INSERT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/insert_range_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/insert_range_impl.hpp deleted file mode 100644 index fa4331562..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/insert_range_impl.hpp +++ /dev/null @@ -1,80 +0,0 @@ - -#ifndef BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'insert_range_impl' or the primary -// 'insert_range' template - - -template< typename Tag > -struct insert_range_impl -{ - template< - typename Sequence - , typename Pos - , typename Range - > - struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : reverse_fold< - joint_view< - iterator_range::type,Pos> - , joint_view< - Range - , iterator_range::type> - > - > - , typename clear::type - , insert<_1, begin<_1>, _2> - > - { -#else - { - typedef typename reverse_fold< - joint_view< - iterator_range::type,Pos> - , joint_view< - Range - , iterator_range::type> - > - > - , typename clear::type - , insert<_1, begin<_1>, _2> - >::type type; -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_range_impl) - -}} - -#endif // BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/inserter_algorithm.hpp b/lib/3rdParty/boost/boost/mpl/aux_/inserter_algorithm.hpp deleted file mode 100644 index 20ae8161c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/inserter_algorithm.hpp +++ /dev/null @@ -1,159 +0,0 @@ - -#ifndef BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED -#define BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -# define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \ -BOOST_MPL_AUX_COMMON_NAME_WKND(name) \ -template< \ - BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \ - > \ -struct name \ - : aux::name##_impl \ -{ \ -}; \ -\ -template< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \ - > \ -struct name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \ - : if_< has_push_back< typename clear::type> \ - , aux::name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , back_inserter< typename clear::type > \ - > \ - , aux::reverse_##name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , front_inserter< typename clear::type > \ - > \ - >::type \ -{ \ -}; \ -\ -template< \ - BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \ - > \ -struct reverse_##name \ - : aux::reverse_##name##_impl \ -{ \ -}; \ -\ -template< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \ - > \ -struct reverse_##name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \ - : if_< has_push_back \ - , aux::reverse_##name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , back_inserter< typename clear::type > \ - > \ - , aux::name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , front_inserter< typename clear::type > \ - > \ - >::type \ -{ \ -}; \ -BOOST_MPL_AUX_NA_SPEC(arity, name) \ -BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \ -/**/ - -#else - -# define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \ -BOOST_MPL_AUX_COMMON_NAME_WKND(name) \ -template< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \ - > \ -struct def_##name##_impl \ - : if_< has_push_back \ - , aux::name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , back_inserter< typename clear::type > \ - > \ - , aux::reverse_##name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , front_inserter< typename clear::type > \ - > \ - >::type \ -{ \ -}; \ -\ -template< \ - BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \ - > \ -struct name \ -{ \ - typedef typename eval_if< \ - is_na \ - , def_##name##_impl \ - , aux::name##_impl \ - >::type type; \ -}; \ -\ -template< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \ - > \ -struct def_reverse_##name##_impl \ - : if_< has_push_back \ - , aux::reverse_##name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , back_inserter< typename clear::type > \ - > \ - , aux::name##_impl< \ - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \ - , front_inserter< typename clear::type > \ - > \ - >::type \ -{ \ -}; \ -template< \ - BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \ - > \ -struct reverse_##name \ -{ \ - typedef typename eval_if< \ - is_na \ - , def_reverse_##name##_impl \ - , aux::reverse_##name##_impl \ - >::type type; \ -}; \ -BOOST_MPL_AUX_NA_SPEC(arity, name) \ -BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \ -/**/ - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/integral_wrapper.hpp b/lib/3rdParty/boost/boost/mpl/aux_/integral_wrapper.hpp deleted file mode 100644 index 6bc05f7e9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/integral_wrapper.hpp +++ /dev/null @@ -1,93 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#include -#include -#include -#include -#include - -#include - -#if !defined(AUX_WRAPPER_NAME) -# define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_) -#endif - -#if !defined(AUX_WRAPPER_PARAMS) -# define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N) -#endif - -#if !defined(AUX_WRAPPER_INST) -# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) -# define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value > -# else -# define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value > -# endif -#endif - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< AUX_WRAPPER_PARAMS(N) > -struct AUX_WRAPPER_NAME -{ - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N); -// agurt, 08/mar/03: SGI MIPSpro C++ workaround, have to #ifdef because some -// other compilers (e.g. MSVC) are not particulary happy about it -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - typedef struct AUX_WRAPPER_NAME type; -#else - typedef AUX_WRAPPER_NAME type; -#endif - typedef AUX_WRAPPER_VALUE_TYPE value_type; - typedef integral_c_tag tag; - -// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), -// while some other don't like 'value + 1' (Borland), and some don't like -// either -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) - private: - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); - public: - typedef AUX_WRAPPER_INST(next_value) next; - typedef AUX_WRAPPER_INST(prior_value) prior; -#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ - || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ - || (BOOST_WORKAROUND(__HP_aCC, <= 53800) && (BOOST_WORKAROUND(__hpxstd98, != 1))) - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next; - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior; -#else - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next; - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; -#endif - - // enables uniform function call syntax for families of overloaded - // functions that return objects of both arithmetic ('int', 'long', - // 'double', etc.) and wrapped integral types (for an example, see - // "mpl/example/power.cpp") - BOOST_CONSTEXPR operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast(this->value); } -}; - -#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) -template< AUX_WRAPPER_PARAMS(N) > -AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value; -#endif - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -#undef AUX_WRAPPER_NAME -#undef AUX_WRAPPER_PARAMS -#undef AUX_WRAPPER_INST -#undef AUX_WRAPPER_VALUE_TYPE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp deleted file mode 100644 index 4989940ba..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp +++ /dev/null @@ -1,64 +0,0 @@ - -#ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED -#define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - -template< typename T > -struct is_msvc_eti_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#else // BOOST_MPL_CFG_MSVC_60_ETI_BUG - -struct eti_int_convertible -{ - eti_int_convertible(int); -}; - -template< typename T > -struct is_msvc_eti_arg -{ - static no_tag test(...); - static yes_tag test(eti_int_convertible); - static T& get(); - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(test(get())) == sizeof(yes_tag) - ); -}; - -#endif - -template<> -struct is_msvc_eti_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -#endif // BOOST_MPL_CFG_MSVC_ETI_BUG - -}}} - -#endif // BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/iter_apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/iter_apply.hpp deleted file mode 100644 index 41dfdfadd..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/iter_apply.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -#ifndef BOOST_MPL_ITER_APPLY_HPP_INCLUDED -#define BOOST_MPL_ITER_APPLY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< - typename F - , typename Iterator - > -struct iter_apply1 - : apply1< F,typename deref::type > -{ -}; - -template< - typename F - , typename Iterator1 - , typename Iterator2 - > -struct iter_apply2 - : apply2< - F - , typename deref::type - , typename deref::type - > -{ -}; - -}}} - -#endif // BOOST_MPL_ITER_APPLY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/iter_fold_if_impl.hpp deleted file mode 100644 index 6372e83de..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/iter_fold_if_impl.hpp +++ /dev/null @@ -1,210 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -// agurt, 25/jun/02: MSVC 6.5 workaround, had to get rid of inheritance -// here and in 'iter_fold_if_backward_step', because sometimes it interfered -// with the "early template instantiation bug" in _really_ ugly ways -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp,mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp,identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - - -// local macros, #undef-ined at the end of the header - -# define AUX_ITER_FOLD_FORWARD_STEP(unused, i, unused2) \ - typedef iter_fold_if_forward_step< \ - typename BOOST_PP_CAT(forward_step,i)::iterator \ - , typename BOOST_PP_CAT(forward_step,i)::state \ - , ForwardOp \ - , ForwardPredicate \ - > BOOST_PP_CAT(forward_step, BOOST_PP_INC(i)); \ - /**/ - -# define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \ - typedef iter_fold_if_backward_step< \ - typename BOOST_PP_CAT(forward_step,BOOST_PP_DEC(i))::iterator \ - , typename BOOST_PP_CAT(backward_step,i)::state \ - , BackwardOp \ - , BackwardPredicate \ - > BOOST_PP_CAT(backward_step,BOOST_PP_DEC(i)); \ - /**/ - -# define AUX_ITER_FOLD_BACKWARD_STEP(unused, i, unused2) \ - AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \ - BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_UNROLLING,i) \ - ) \ - /**/ - -# define AUX_LAST_FORWARD_STEP \ - BOOST_PP_CAT(forward_step, BOOST_MPL_LIMIT_UNROLLING) \ - /**/ - -# define AUX_LAST_BACKWARD_STEP \ - BOOST_PP_CAT(backward_step, BOOST_MPL_LIMIT_UNROLLING) \ - /**/ - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step forward_step0; - BOOST_PP_REPEAT( - BOOST_MPL_LIMIT_UNROLLING - , AUX_ITER_FOLD_FORWARD_STEP - , unused - ) - - typedef typename if_< - typename AUX_LAST_FORWARD_STEP::not_last - , iter_fold_if_impl< - typename AUX_LAST_FORWARD_STEP::iterator - , typename AUX_LAST_FORWARD_STEP::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename AUX_LAST_FORWARD_STEP::iterator - , typename AUX_LAST_FORWARD_STEP::state - > - >::type AUX_LAST_BACKWARD_STEP; - - BOOST_PP_REPEAT( - BOOST_MPL_LIMIT_UNROLLING - , AUX_ITER_FOLD_BACKWARD_STEP - , unused - ) - - public: - typedef typename backward_step0::state state; - typedef typename AUX_LAST_BACKWARD_STEP::iterator iterator; -}; - -# undef AUX_LAST_BACKWARD_STEP -# undef AUX_LAST_FORWARD_STEP -# undef AUX_ITER_FOLD_BACKWARD_STEP -# undef AUX_ITER_FOLD_BACKWARD_STEP_FUNC -# undef AUX_ITER_FOLD_FORWARD_STEP - -}}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/iter_fold_impl.hpp deleted file mode 100644 index b4d2922f5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/iter_fold_impl.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include -# include -# endif -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp -# include - -#else - -# define AUX778076_FOLD_IMPL_OP(iter) iter -# define AUX778076_FOLD_IMPL_NAME_PREFIX iter_fold -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/iter_push_front.hpp b/lib/3rdParty/boost/boost/mpl/aux_/iter_push_front.hpp deleted file mode 100644 index 35ccc4dfb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/iter_push_front.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED -#define BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< - typename Sequence - , typename Iterator - > -struct iter_push_front -{ - typedef typename push_front< - Sequence - , typename deref::type - >::type type; -}; - -}}} - -#endif // BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/joint_iter.hpp b/lib/3rdParty/boost/boost/mpl/aux_/joint_iter.hpp deleted file mode 100644 index 277580eeb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/joint_iter.hpp +++ /dev/null @@ -1,120 +0,0 @@ - -#ifndef BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED -#define BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include -#endif - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename Iterator1 - , typename LastIterator1 - , typename Iterator2 - > -struct joint_iter -{ - typedef Iterator1 base; - typedef forward_iterator_tag category; -}; - -template< - typename LastIterator1 - , typename Iterator2 - > -struct joint_iter -{ - typedef Iterator2 base; - typedef forward_iterator_tag category; -}; - - -template< typename I1, typename L1, typename I2 > -struct deref< joint_iter > -{ - typedef typename joint_iter::base base_; - typedef typename deref::type type; -}; - -template< typename I1, typename L1, typename I2 > -struct next< joint_iter > -{ - typedef joint_iter< typename mpl::next::type,L1,I2 > type; -}; - -template< typename L1, typename I2 > -struct next< joint_iter > -{ - typedef joint_iter< L1,L1,typename mpl::next::type > type; -}; - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template< - typename Iterator1 - , typename LastIterator1 - , typename Iterator2 - > -struct joint_iter; - -template< bool > struct joint_iter_impl -{ - template< typename I1, typename L1, typename I2 > struct result_ - { - typedef I1 base; - typedef forward_iterator_tag category; - typedef joint_iter< typename mpl::next::type,L1,I2 > next; - typedef typename deref::type type; - }; -}; - -template<> struct joint_iter_impl -{ - template< typename I1, typename L1, typename I2 > struct result_ - { - typedef I2 base; - typedef forward_iterator_tag category; - typedef joint_iter< L1,L1,typename mpl::next::type > next; - typedef typename deref::type type; - }; -}; - -template< - typename Iterator1 - , typename LastIterator1 - , typename Iterator2 - > -struct joint_iter - : joint_iter_impl< is_same::value > - ::template result_ -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, joint_iter) - -}} - -#endif // BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/lambda_arity_param.hpp b/lib/3rdParty/boost/boost/mpl/aux_/lambda_arity_param.hpp deleted file mode 100644 index 63cfcd4f1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/lambda_arity_param.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) -#else -# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param -#endif - -#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/lambda_no_ctps.hpp deleted file mode 100644 index 9e0d0203a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/lambda_no_ctps.hpp +++ /dev/null @@ -1,193 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -# define AUX778076_LAMBDA_PARAMS(i_, param) \ - BOOST_MPL_PP_PARAMS(i_, param) \ - /**/ - -namespace aux { - -#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY -template< - BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false) - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) > - : false_ -{ -}; -#undef n_ - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -# undef AUX778076_LAMBDA_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED - -///// iteration, depth == 1 - -#else - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -# define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \ - typedef lambda< \ - typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i_)) \ - , Tag \ - , false_ \ - > BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \ - /**/ - -# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \ - typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \ - BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \ - /**/ - -# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \ - BOOST_PP_COMMA_IF(i_) \ - BOOST_MPL_AUX_MSVC_VALUE_WKND(BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)))::value \ - /**/ - -# define AUX778076_LAMBDA_RESULT(unused, i_, unused2) \ - , typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::type \ - /**/ - -template<> struct lambda_impl< int_ > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F) - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused) - - typedef aux::lambda_or< - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused) - > is_le; - - typedef BOOST_PP_CAT(bind,i_)< - typename F::rebind - BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused) - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -# undef AUX778076_LAMBDA_RESULT -# undef AUX778076_IS_LAMBDA_EXPR -# undef AUX778076_IS_LE_TYPEDEF -# undef AUX778076_LAMBDA_TYPEDEF - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/lambda_spec.hpp b/lib/3rdParty/boost/boost/mpl/aux_/lambda_spec.hpp deleted file mode 100644 index 6ffacc0a6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/lambda_spec.hpp +++ /dev/null @@ -1,49 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2007 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) - -# define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \ -template< \ - BOOST_MPL_PP_PARAMS(i, typename T) \ - , typename Tag \ - > \ -struct lambda< \ - name< BOOST_MPL_PP_PARAMS(i, T) > \ - , Tag \ - BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_) \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_PP_PARAMS(i, T) > result_; \ - typedef result_ type; \ -}; \ -/**/ - -#else - -# define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/ - -#endif - -#endif // BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/lambda_support.hpp b/lib/3rdParty/boost/boost/mpl/aux_/lambda_support.hpp deleted file mode 100644 index 5b2af5858..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/lambda_support.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/ -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/ - -#else - -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \ - typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \ - /**/ - -// agurt, 07/mar/03: restore an old revision for the sake of SGI MIPSpro C++ -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ - BOOST_PP_LIST_FOR_EACH_I_R( \ - 1 \ - , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ - , typedef \ - , BOOST_PP_TUPLE_TO_LIST(i,params) \ - ) \ - struct rebind \ - { \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - : name< BOOST_MPL_PP_PARAMS(i,U) > \ - { \ - }; \ - }; \ - /**/ - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - /**/ - -#elif BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) -// agurt, 18/jan/03: old EDG-based compilers actually enforce 11.4 para 9 -// (in strict mode), so we have to provide an alternative to the -// MSVC-optimized implementation - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ - BOOST_PP_LIST_FOR_EACH_I_R( \ - 1 \ - , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ - , typedef \ - , BOOST_PP_TUPLE_TO_LIST(i,params) \ - ) \ - struct rebind; \ -/**/ - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ -}; \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -struct name::rebind \ -{ \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - : name< BOOST_MPL_PP_PARAMS(i,U) > \ - { \ - }; \ -/**/ - -#else // __EDG_VERSION__ - -namespace boost { namespace mpl { namespace aux { -template< typename T > struct has_rebind_tag; -}}} - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ - BOOST_PP_LIST_FOR_EACH_I_R( \ - 1 \ - , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ - , typedef \ - , BOOST_PP_TUPLE_TO_LIST(i,params) \ - ) \ - friend class BOOST_PP_CAT(name,_rebind); \ - typedef BOOST_PP_CAT(name,_rebind) rebind; \ -/**/ - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -::boost::mpl::aux::yes_tag operator|( \ - ::boost::mpl::aux::has_rebind_tag \ - , name* \ - ); \ -::boost::mpl::aux::no_tag operator|( \ - ::boost::mpl::aux::has_rebind_tag \ - , name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \ - ); \ -/**/ -#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -::boost::mpl::aux::yes_tag operator|( \ - ::boost::mpl::aux::has_rebind_tag \ - , ::boost::mpl::aux::has_rebind_tag< name >* \ - ); \ -/**/ -#else -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/ -#endif - -# if !defined(__BORLANDC__) -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ -}; \ -BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -class BOOST_PP_CAT(name,_rebind) \ -{ \ - public: \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - : name< BOOST_MPL_PP_PARAMS(i,U) > \ - { \ - }; \ -/**/ -# else -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ -}; \ -BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -class BOOST_PP_CAT(name,_rebind) \ -{ \ - public: \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - { \ - typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \ - }; \ -/**/ -# endif // __BORLANDC__ - -#endif // __EDG_VERSION__ - -#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/largest_int.hpp b/lib/3rdParty/boost/boost/mpl/aux_/largest_int.hpp deleted file mode 100644 index feaa1eca7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/largest_int.hpp +++ /dev/null @@ -1,63 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED -#define BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename T > struct integral_rank; - -template<> struct integral_rank : int_<1> {}; -template<> struct integral_rank : int_<2> {}; -template<> struct integral_rank : int_<3> {}; -template<> struct integral_rank : int_<4> {}; -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) -template<> struct integral_rank : int_<5> {}; -#endif -template<> struct integral_rank : int_<6> {}; -template<> struct integral_rank : int_<7> {}; -template<> struct integral_rank : int_<8> {}; -template<> struct integral_rank : int_<9> {}; -template<> struct integral_rank : int_<10> {}; -template<> struct integral_rank : int_<11> {}; - -#if defined(BOOST_HAS_LONG_LONG) -template<> struct integral_rank : int_<12> {}; -template<> struct integral_rank: int_<13> {}; -#endif - -template< typename T1, typename T2 > struct largest_int -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : if_c< - ( integral_rank::value >= integral_rank::value ) - , T1 - , T2 - > -{ -#else -{ - enum { rank1 = integral_rank::value }; - enum { rank2 = integral_rank::value }; - typedef typename if_c< (rank1 >= rank2),T1,T2 >::type type; -#endif -}; - -}}} - -#endif // BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/logical_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/logical_op.hpp deleted file mode 100644 index 0ba251026..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/logical_op.hpp +++ /dev/null @@ -1,165 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { namespace mpl { - -# define AUX778076_PARAMS(param, sub) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \ - , param \ - ) \ - /**/ - -# define AUX778076_SHIFTED_PARAMS(param, sub) \ - BOOST_MPL_PP_EXT_PARAMS( \ - 2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \ - , param \ - ) \ - /**/ - -# define AUX778076_SPEC_PARAMS(param) \ - BOOST_MPL_PP_ENUM( \ - BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \ - , param \ - ) \ - /**/ - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< bool C_, AUX778076_PARAMS(typename T, 1) > -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) - : BOOST_PP_CAT(AUX778076_OP_VALUE1,_) -{ -}; - -template< AUX778076_PARAMS(typename T, 1) > -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) > - : BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , AUX778076_SHIFTED_PARAMS(T, 1) - , BOOST_PP_CAT(AUX778076_OP_VALUE2,_) - > -{ -}; - -template<> -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - AUX778076_OP_VALUE2 - , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) - > - : BOOST_PP_CAT(AUX778076_OP_VALUE2,_) -{ -}; - -#else - -template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) -{ - template< AUX778076_PARAMS(typename T, 1) > struct result_ - : BOOST_PP_CAT(AUX778076_OP_VALUE1,_) - { - }; -}; - -template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) -{ - template< AUX778076_PARAMS(typename T, 1) > struct result_ - : BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) > - { - }; - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - template<> struct result_ - : BOOST_PP_CAT(AUX778076_OP_VALUE2,_) - { - }; -}; -#else -}; - -template<> -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) - ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) > - : BOOST_PP_CAT(AUX778076_OP_VALUE2,_) -{ -}; -#endif // BOOST_MSVC == 1300 - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) - > -struct AUX778076_OP_NAME -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , AUX778076_SHIFTED_PARAMS(T,0) - > -#else - : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< AUX778076_SHIFTED_PARAMS(T,0) > -#endif -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - BOOST_MPL_LIMIT_METAFUNCTION_ARITY - , AUX778076_OP_NAME - , (AUX778076_PARAMS(T, 0)) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , BOOST_MPL_LIMIT_METAFUNCTION_ARITY - , AUX778076_OP_NAME - ) - -}} - -#undef AUX778076_SPEC_PARAMS -#undef AUX778076_SHIFTED_PARAMS -#undef AUX778076_PARAMS -#undef AUX778076_OP_NAME -#undef AUX778076_OP_VALUE1 -#undef AUX778076_OP_VALUE2 diff --git a/lib/3rdParty/boost/boost/mpl/aux_/msvc_dtw.hpp b/lib/3rdParty/boost/boost/mpl/aux_/msvc_dtw.hpp deleted file mode 100644 index d595b231f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/msvc_dtw.hpp +++ /dev/null @@ -1,68 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#include - -// local macros, #undef-ined at the end of the header -#define AUX778076_DTW_PARAMS(param) \ - BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \ -/**/ - -#define AUX778076_DTW_ORIGINAL_NAME \ - AUX778076_MSVC_DTW_ORIGINAL_NAME \ -/**/ - -// warning: not a well-formed C++ -// workaround for MSVC 6.5's "dependent template typedef bug" - -template< typename F> -struct AUX778076_MSVC_DTW_NAME -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { -#if AUX778076_MSVC_DTW_ARITY > 0 - template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME - { - typedef int type; - }; - }; - - template< AUX778076_DTW_PARAMS(typename T) > struct result_ - : f_< aux::msvc_never_true::value > - ::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) > - { - }; -#else - template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME - { - typedef int type; - }; - }; - - template< typename T = int > struct result_ - : f_< aux::msvc_never_true::value > - ::template AUX778076_DTW_ORIGINAL_NAME<> - { - }; -#endif -}; - -#undef AUX778076_DTW_ORIGINAL_NAME -#undef AUX778076_DTW_PARAMS - -#undef AUX778076_MSVC_DTW_NAME -#undef AUX778076_MSVC_DTW_ORIGINAL_NAME -#undef AUX778076_MSVC_DTW_ARITY diff --git a/lib/3rdParty/boost/boost/mpl/aux_/msvc_eti_base.hpp b/lib/3rdParty/boost/boost/mpl/aux_/msvc_eti_base.hpp deleted file mode 100644 index 0d8ace696..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/msvc_eti_base.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - -template< bool > struct msvc_eti_base_impl -{ - template< typename T > struct result_ - : T - { - typedef T type; - }; -}; - -template<> struct msvc_eti_base_impl -{ - template< typename T > struct result_ - { - typedef result_ type; - typedef result_ first; - typedef result_ second; - typedef result_ tag; - enum { value = 0 }; - }; -}; - -template< typename T > struct msvc_eti_base - : msvc_eti_base_impl< is_msvc_eti_arg::value > - ::template result_ -{ -}; - -#else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG - -template< typename T > struct msvc_eti_base - : T -{ -#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) - msvc_eti_base(); -#endif - typedef T type; -}; - -#endif - -template<> struct msvc_eti_base -{ - typedef msvc_eti_base type; - typedef msvc_eti_base first; - typedef msvc_eti_base second; - typedef msvc_eti_base tag; - enum { value = 0 }; -}; - -}}} - -#endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/msvc_is_class.hpp b/lib/3rdParty/boost/boost/mpl/aux_/msvc_is_class.hpp deleted file mode 100644 index acd40e330..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/msvc_is_class.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename T > struct is_class_helper -{ - typedef int (T::* type)(); -}; - -// MSVC 6.x-specific lightweight 'is_class' implementation; -// Distinguishing feature: does not instantiate the type being tested. -template< typename T > -struct msvc_is_class_impl -{ - template< typename U> - static yes_tag test(type_wrapper*, /*typename*/ is_class_helper::type = 0); - static no_tag test(void const volatile*, ...); - - enum { value = sizeof(test((type_wrapper*)0)) == sizeof(yes_tag) }; - typedef bool_ type; -}; - -// agurt, 17/sep/04: have to check for 'is_reference' upfront to avoid ICEs in -// complex metaprograms -template< typename T > -struct msvc_is_class - : if_< - is_reference - , false_ - , msvc_is_class_impl - >::type -{ -}; - -}}} - -#endif // BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/msvc_never_true.hpp b/lib/3rdParty/boost/boost/mpl/aux_/msvc_never_true.hpp deleted file mode 100644 index 2df9b8117..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/msvc_never_true.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -namespace boost { namespace mpl { namespace aux { - -template< typename T > -struct msvc_never_true -{ - enum { value = false }; -}; - -}}} - -#endif // BOOST_MSVC - -#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/msvc_type.hpp b/lib/3rdParty/boost/boost/mpl/aux_/msvc_type.hpp deleted file mode 100644 index bea244f31..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/msvc_type.hpp +++ /dev/null @@ -1,62 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - -template< bool > struct msvc_type_impl -{ - template< typename T > struct result_ - { - typedef typename T::type type; - }; -}; - -template<> struct msvc_type_impl -{ - template< typename T > struct result_ - { - typedef result_ type; - }; -}; - -template< typename T > struct msvc_type - : msvc_type_impl< is_msvc_eti_arg::value > - ::template result_ -{ -}; - -#else // BOOST_MPL_CFG_MSVC_70_ETI_BUG - -template< typename T > struct msvc_type -{ - typedef typename T::type type; -}; - -template<> struct msvc_type -{ - typedef int type; -}; - -#endif - -}}} - -#endif // BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/na.hpp b/lib/3rdParty/boost/boost/mpl/aux_/na.hpp deleted file mode 100644 index f079c1e78..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/na.hpp +++ /dev/null @@ -1,95 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename T > -struct is_na - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -template<> -struct is_na - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -template< typename T > -struct is_not_na - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -template<> -struct is_not_na - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename T, typename U > struct if_na -{ - typedef T type; -}; - -template< typename U > struct if_na -{ - typedef U type; -}; -#else -template< typename T > struct if_na_impl -{ - template< typename U > struct apply - { - typedef T type; - }; -}; - -template<> struct if_na_impl -{ - template< typename U > struct apply - { - typedef U type; - }; -}; - -template< typename T, typename U > struct if_na - : if_na_impl::template apply -{ -}; -#endif - -}} - -#endif // BOOST_MPL_AUX_NA_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/na_assert.hpp b/lib/3rdParty/boost/boost/mpl/aux_/na_assert.hpp deleted file mode 100644 index 1983c0906..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/na_assert.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !BOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) -# include -# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \ - BOOST_MPL_ASSERT_NOT((boost::mpl::is_na)) \ -/**/ -#else -# include -# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \ - BOOST_STATIC_ASSERT(!boost::mpl::is_na::value) \ -/**/ -#endif - -#endif // BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/na_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/na_fwd.hpp deleted file mode 100644 index 438824193..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/na_fwd.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -// n.a. == not available -struct na -{ - typedef na type; - enum { value = 0 }; -}; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(na) - -#endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/na_spec.hpp b/lib/3rdParty/boost/boost/mpl/aux_/na_spec.hpp deleted file mode 100644 index d052fce18..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/na_spec.hpp +++ /dev/null @@ -1,175 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#define BOOST_MPL_AUX_NA_PARAMS(i) \ - BOOST_MPL_PP_ENUM(i, na) \ -/**/ - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ -namespace aux { \ -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > \ -struct arity< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , N \ - > \ - : int_< BOOST_MPL_LIMIT_METAFUNCTION_ARITY > \ -{ \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/ -#endif - -#define BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ -template<> \ -struct name< BOOST_MPL_AUX_NA_PARAMS(i) > \ -{ \ - template< \ - BOOST_MPL_PP_PARAMS(i, typename T) \ - BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \ - > \ - struct apply \ - : name< BOOST_MPL_PP_PARAMS(i, T) > \ - { \ - }; \ -}; \ -/**/ - -#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -template<> \ -struct lambda< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , void_ \ - , true_ \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ -}; \ -template<> \ -struct lambda< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , void_ \ - , false_ \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ -}; \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -template< typename Tag > \ -struct lambda< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , Tag \ - BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > result_; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ -}; \ -/**/ -#endif - -#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ - || defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ - && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) -# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \ -namespace aux { \ -template< BOOST_MPL_PP_PARAMS(j, typename T) > \ -struct template_arity< \ - name< BOOST_MPL_PP_PARAMS(j, T) > \ - > \ - : int_ \ -{ \ -}; \ -\ -template<> \ -struct template_arity< \ - name< BOOST_MPL_PP_ENUM(i, na) > \ - > \ - : int_<-1> \ -{ \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/ -#endif - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ -template<> \ -struct name< BOOST_MPL_PP_ENUM(i, int) > \ -{ \ - typedef int type; \ - enum { value = 0 }; \ -}; \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/ -#endif - -#define BOOST_MPL_AUX_NA_PARAM(param) param = na - -#define BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \ -BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ -BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \ -/**/ - -#define BOOST_MPL_AUX_NA_SPEC(i, name) \ -BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ -/**/ - -#define BOOST_MPL_AUX_NA_SPEC2(i, j, name) \ -BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ -BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \ -/**/ - - -#endif // BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/nested_type_wknd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/nested_type_wknd.hpp deleted file mode 100644 index 4207abdbc..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/nested_type_wknd.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED -#define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - -namespace boost { namespace mpl { namespace aux { -template< typename T > struct nested_type_wknd - : T::type -{ -}; -}}} - -#if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \ - aux::nested_type_wknd \ -/**/ -#else -# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \ - ::boost::mpl::aux::nested_type_wknd \ -/**/ -#endif - -#else // !BOOST_MPL_CFG_GCC et al. - -# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type - -#endif - -#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/nttp_decl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/nttp_decl.hpp deleted file mode 100644 index 8c344d874..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/nttp_decl.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED -#define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if defined(BOOST_MPL_CFG_NTTP_BUG) - -typedef bool _mpl_nttp_bool; -typedef int _mpl_nttp_int; -typedef unsigned _mpl_nttp_unsigned; -typedef long _mpl_nttp_long; - -# include -# define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/ - -#else - -# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ - -#endif - -#endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/numeric_cast_utils.hpp b/lib/3rdParty/boost/boost/mpl/aux_/numeric_cast_utils.hpp deleted file mode 100644 index a7ac85a99..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/numeric_cast_utils.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED -#define BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< - typename F - , typename Tag1 - , typename Tag2 - > -struct cast1st_impl -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : apply_wrap2< - F - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N1 >::type - , N2 - > - { -#else - { - typedef typename apply_wrap2< - F - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N1 >::type - , N2 - >::type type; -#endif - }; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - > -struct cast2nd_impl -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : apply_wrap2< - F - , N1 - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N2 >::type - > - { -#else - { - typedef typename apply_wrap2< - F - , N1 - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N2 >::type - >::type type; -#endif - }; -}; - -}}} - -#endif // BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/numeric_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/numeric_op.hpp deleted file mode 100644 index 549255701..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/numeric_op.hpp +++ /dev/null @@ -1,315 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif - -#include - -#if defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - || defined(BOOST_MPL_PREPROCESSING_MODE) - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - - -#if !defined(AUX778076_OP_ARITY) -# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#endif - -#if !defined(AUX778076_OP_IMPL_NAME) -# define AUX778076_OP_IMPL_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_impl) -#endif - -#if !defined(AUX778076_OP_TAG_NAME) -# define AUX778076_OP_TAG_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_tag) -#endif - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct AUX778076_OP_IMPL_NAME - : if_c< - ( tag1_ > tag2_ ) -#else - > -struct AUX778076_OP_IMPL_NAME - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) -#endif - , aux::cast2nd_impl< AUX778076_OP_IMPL_NAME,Tag1,Tag2 > - , aux::cast1st_impl< AUX778076_OP_IMPL_NAME,Tag1,Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename Tag > struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; -#else -template<> struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; -#endif - - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && BOOST_WORKAROUND(BOOST_MSVC, >= 1300) -template< typename T > struct AUX778076_OP_TAG_NAME - : tag -{ -}; -#else -template< typename T > struct AUX778076_OP_TAG_NAME -{ - typedef typename T::tag type; -}; -#endif - - -#if AUX778076_OP_ARITY != 2 - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -# define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))> -# define AUX778076_OP_N_CALLS(i, N) \ - BOOST_MPL_PP_REPEAT( BOOST_PP_DEC(i), BOOST_MPL_PP_REPEAT_IDENTITY_FUNC, AUX778076_OP_NAME< ) \ - N1 BOOST_MPL_PP_REPEAT( BOOST_MPL_PP_SUB(i, 1), AUX778076_OP_RIGHT_OPERAND, N ) \ -/**/ - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na) - > -struct AUX778076_OP_NAME - : AUX778076_OP_N_CALLS(AUX778076_OP_ARITY, N) -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) ) - ) -}; - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,( BOOST_PP_DEC(AUX778076_OP_ARITY), 2, )) -#include BOOST_PP_ITERATE() - -# undef AUX778076_OP_N_CALLS -# undef AUX778076_OP_RIGHT_OPERAND - -# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -/// forward declaration -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct BOOST_PP_CAT(AUX778076_OP_NAME,2); - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na) - > -struct AUX778076_OP_NAME -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - : aux::msvc_eti_base< typename if_< -#else - : if_< -#endif - is_na - , BOOST_PP_CAT(AUX778076_OP_NAME,2) - , AUX778076_OP_NAME< - BOOST_PP_CAT(AUX778076_OP_NAME,2) - , BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N) - > - >::type -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - > -#endif -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct BOOST_PP_CAT(AUX778076_OP_NAME,2) - -#endif - -#else // AUX778076_OP_ARITY == 2 - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct AUX778076_OP_NAME - -#endif - -#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - : AUX778076_OP_IMPL_NAME< - typename AUX778076_OP_TAG_NAME::type - , typename AUX778076_OP_TAG_NAME::type - >::template apply::type -#else - : aux::msvc_eti_base< typename apply_wrap2< - AUX778076_OP_IMPL_NAME< - typename AUX778076_OP_TAG_NAME::type - , typename AUX778076_OP_TAG_NAME::type - > - , N1 - , N2 - >::type >::type -#endif -{ -#if AUX778076_OP_ARITY != 2 - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) ) - ) -# else - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, BOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2)) -# endif - -#else - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2)) -#endif -}; - -BOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME) - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - BOOST_MPL_PP_PARAMS(i_, typename N) - > -struct AUX778076_OP_NAME -#if i_ != 2 - : AUX778076_OP_N_CALLS(i_, N) -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) ) - ) -}; -#endif - -# undef i_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/order_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/order_impl.hpp deleted file mode 100644 index 2c145212d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/order_impl.hpp +++ /dev/null @@ -1,76 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ORDER_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ORDER_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; requires 'Seq' to provide corresponding overloads -// of BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY - -template< typename Seq, typename Key > struct x_order_impl -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) -{ - BOOST_STATIC_CONSTANT(long, value = - sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY( - Seq - , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*, 0) - ) ) - ); - - typedef long_ type; - -#else // ISO98 C++ - : long_< - sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY( - Seq - , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*, 0) - ) ) - > -{ -#endif -}; - -template< typename Tag > -struct order_impl -{ - template< typename Seq, typename Key > struct apply - : if_< - typename has_key_impl::template apply - , x_order_impl - , void_ - >::type - { - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,order_impl) - -}} - -#endif // BOOST_MPL_AUX_ORDER_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/overload_names.hpp b/lib/3rdParty/boost/boost/mpl/aux_/overload_names.hpp deleted file mode 100644 index f9bbb3916..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/overload_names.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED -#define BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) - -# include - -# define BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY operator/ -# define BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER operator| -# define BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY operator|| -# define BOOST_MPL_AUX_OVERLOAD_IS_MASKED operator% - -# define BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) / x -# define BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) | x -# define BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) || x -# define BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(T, x) BOOST_MPL_AUX_PTR_TO_REF(T) % x - -#else - -# define BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY value_by_key_ -# define BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER item_by_order_ -# define BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY order_by_key_ -# define BOOST_MPL_AUX_OVERLOAD_IS_MASKED is_masked_ - -# define BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(T, x) T::BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY( BOOST_MPL_AUX_PTR_TO_REF(T), x ) -# define BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(T, x) T::BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER( BOOST_MPL_AUX_PTR_TO_REF(T), x ) -# define BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(T, x) T::BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY( BOOST_MPL_AUX_PTR_TO_REF(T), x ) -# define BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(T, x) T::BOOST_MPL_AUX_OVERLOAD_IS_MASKED( BOOST_MPL_AUX_PTR_TO_REF(T), x ) - -#endif - -#endif // BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/partition_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/partition_op.hpp deleted file mode 100644 index 79d49370f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/partition_op.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED -#define BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED - -// Copyright Eric Friedman 2003 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< typename Pred, typename In1Op, typename In2Op > -struct partition_op -{ - template< typename State, typename T > - struct apply - { - typedef typename State::first first_; - typedef typename State::second second_; - typedef typename apply1< Pred,T >::type pred_; - - typedef typename eval_if< - pred_ - , apply2 - , apply2 - >::type result_; - - typedef typename if_< - pred_ - , pair< result_,second_ > - , pair< first_,result_ > - >::type type; - }; -}; - -} // namespace aux - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::partition_op) - -}} - -#endif // BOOST_MPL_AUX_PARTITION_OP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/pop_back_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/pop_back_impl.hpp deleted file mode 100644 index 2b54e0f83..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/pop_back_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -// no default implementation; the definition is needed to make MSVC happy - -template< typename Tag > -struct pop_back_impl -{ - template< typename Sequence > struct apply; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, pop_back_impl) - -}} - -#endif // BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/pop_front_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/pop_front_impl.hpp deleted file mode 100644 index 7697b1f59..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/pop_front_impl.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// no default implementation; the definition is needed to make MSVC happy - -template< typename Tag > -struct pop_front_impl -{ - template< typename Sequence > struct apply - // conservatively placed, but maybe should go outside surrounding - // braces. -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - { - typedef int type; - } -#endif - ; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, pop_front_impl) - -}} - -#endif // BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp deleted file mode 100644 index 5cb50dc0c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp deleted file mode 100644 index 9654ee330..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/and.hpp deleted file mode 100644 index f34568902..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp deleted file mode 100644 index bce7c2c3a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp deleted file mode 100644 index 1ba706ff2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp deleted file mode 100644 index 45b75c78e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +++ /dev/null @@ -1,461 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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) -// - -// *Preprocessed* version of the main "apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< typename F, bool F_has_apply > -struct apply_wrap_impl0_bcb { - typedef typename F::template apply type; -}; - -template< typename F > -struct apply_wrap_impl0_bcb< F,true > { - typedef typename F::apply type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef apply_wrap_impl0_bcb< F, aux::has_apply::value >::type type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp deleted file mode 100644 index 3ac43401a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp +++ /dev/null @@ -1,117 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp deleted file mode 100644 index 74b002991..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +++ /dev/null @@ -1,300 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp deleted file mode 100644 index e769a0cb9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp +++ /dev/null @@ -1,397 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp deleted file mode 100644 index 962b5c98b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp deleted file mode 100644 index 527b6894f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp deleted file mode 100644 index 3f0d5caa5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp deleted file mode 100644 index 06996c03b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp deleted file mode 100644 index 06505c936..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp deleted file mode 100644 index 6b4178a9c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp deleted file mode 100644 index 901a93c2f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp deleted file mode 100644 index 45ab4e7c6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp deleted file mode 100644 index 8b2bf5906..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp deleted file mode 100644 index 3d1c3dcea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp deleted file mode 100644 index fb011866e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp deleted file mode 100644 index 6adcc0142..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1, typename T2, typename T3, typename T4, typename T5 - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp deleted file mode 100644 index b767e9586..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp deleted file mode 100644 index 1dd216c8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp deleted file mode 100644 index 75b30ce32..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/less.hpp deleted file mode 100644 index 0b6ce1d4b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp deleted file mode 100644 index 0010e0845..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/list.hpp deleted file mode 100644 index cbd58acd8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp deleted file mode 100644 index 495c3f7f1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/map.hpp deleted file mode 100644 index 80ef156e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp deleted file mode 100644 index cfddc15b7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp deleted file mode 100644 index eb5eff07e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp deleted file mode 100644 index 68356eee4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/or.hpp deleted file mode 100644 index ff7ce9fd5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp deleted file mode 100644 index b306bbbcb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// *Preprocessed* version of the main "placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp deleted file mode 100644 index 82539abc4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp deleted file mode 100644 index 677a3f9ba..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp +++ /dev/null @@ -1,119 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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) -// - -// *Preprocessed* version of the main "quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl - -{ - typedef typename T::type type; -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - { - typedef typename quote_impl< - F - , aux::has_type< F >::value - >::type type; - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - { - typedef typename quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - >::type type; - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - { - typedef typename quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - >::type type; - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - { - typedef typename quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - >::type type; - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - { - typedef typename quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - >::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp deleted file mode 100644 index 372f0d260..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp deleted file mode 100644 index 44aadf7a6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/set.hpp deleted file mode 100644 index ace3a4f07..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp deleted file mode 100644 index 4e6993ce2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp deleted file mode 100644 index 6d19e94ed..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp deleted file mode 100644 index dd31d97ce..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp deleted file mode 100644 index b24a0a7e7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/times.hpp deleted file mode 100644 index ab100f1cb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp deleted file mode 100644 index f391dc1ab..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// *Preprocessed* version of the main "unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; - - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp deleted file mode 100644 index 803e21785..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp deleted file mode 100644 index 643b7fd63..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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) -// - -// *Preprocessed* version of the main "vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp deleted file mode 100644 index 010ad1fc8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp deleted file mode 100644 index e08eaccf0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp deleted file mode 100644 index b2ed5d513..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp deleted file mode 100644 index 2ffe7091b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +++ /dev/null @@ -1,456 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef typename F::template apply< - -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp deleted file mode 100644 index a29daa0bc..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +++ /dev/null @@ -1,306 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp deleted file mode 100644 index 34b1b5c8b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +++ /dev/null @@ -1,403 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp deleted file mode 100644 index 022cba346..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp deleted file mode 100644 index 0bbf54ea2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp deleted file mode 100644 index 55b31cb8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp deleted file mode 100644 index ec1939151..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp deleted file mode 100644 index de67398a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp deleted file mode 100644 index 86f16826f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp deleted file mode 100644 index 62c994589..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp deleted file mode 100644 index 9e7a29300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp deleted file mode 100644 index e3eef71b1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp deleted file mode 100644 index 14d8e08bf..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp deleted file mode 100644 index 2603f9184..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp deleted file mode 100644 index 00f31c422..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp deleted file mode 100644 index 805790e86..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp deleted file mode 100644 index 4fe3cd17c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp deleted file mode 100644 index ca2894f6f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp deleted file mode 100644 index 4e8ad53d2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp deleted file mode 100644 index 0b48a7f8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp deleted file mode 100644 index 837e01377..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp deleted file mode 100644 index 71d491376..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp deleted file mode 100644 index 224b34930..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp deleted file mode 100644 index 98b21b1e2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp deleted file mode 100644 index 31e1aaa4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp deleted file mode 100644 index a9f6ee79a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp deleted file mode 100644 index e7a7f0019..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp deleted file mode 100644 index 7a07414ad..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp deleted file mode 100644 index 39a4057b7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp deleted file mode 100644 index 5721922e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp deleted file mode 100644 index cbeb932c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp deleted file mode 100644 index b5b181ce1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp deleted file mode 100644 index f7a342e98..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp deleted file mode 100644 index 1164f0f8c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp deleted file mode 100644 index cb97cc4e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp deleted file mode 100644 index ef7c2b016..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; - - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp deleted file mode 100644 index bfa9565a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp deleted file mode 100644 index 0f1560d7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp deleted file mode 100644 index 5cb50dc0c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp deleted file mode 100644 index 9654ee330..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp deleted file mode 100644 index f34568902..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp deleted file mode 100644 index bce7c2c3a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp deleted file mode 100644 index 1ba706ff2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp deleted file mode 100644 index d88129dad..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp +++ /dev/null @@ -1,456 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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) -// - -// *Preprocessed* version of the main "apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef typename F::template apply< - -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp deleted file mode 100644 index 3ac43401a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp +++ /dev/null @@ -1,117 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp deleted file mode 100644 index 74b002991..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp +++ /dev/null @@ -1,300 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp deleted file mode 100644 index e769a0cb9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp +++ /dev/null @@ -1,397 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp deleted file mode 100644 index 962b5c98b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp deleted file mode 100644 index 527b6894f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp deleted file mode 100644 index 3f0d5caa5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp deleted file mode 100644 index 06996c03b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp deleted file mode 100644 index 06505c936..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp deleted file mode 100644 index 6b4178a9c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp deleted file mode 100644 index 901a93c2f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp deleted file mode 100644 index 45ab4e7c6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp deleted file mode 100644 index 8b2bf5906..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp deleted file mode 100644 index 3d1c3dcea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp deleted file mode 100644 index fb011866e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp deleted file mode 100644 index 6adcc0142..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1, typename T2, typename T3, typename T4, typename T5 - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp deleted file mode 100644 index b767e9586..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp deleted file mode 100644 index 1dd216c8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp deleted file mode 100644 index 75b30ce32..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp deleted file mode 100644 index 0b6ce1d4b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp deleted file mode 100644 index 0010e0845..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp deleted file mode 100644 index cbd58acd8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp deleted file mode 100644 index 495c3f7f1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp deleted file mode 100644 index 80ef156e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp deleted file mode 100644 index cfddc15b7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp deleted file mode 100644 index eb5eff07e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp deleted file mode 100644 index 68356eee4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp deleted file mode 100644 index ff7ce9fd5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp deleted file mode 100644 index b306bbbcb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// *Preprocessed* version of the main "placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp deleted file mode 100644 index 82539abc4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp deleted file mode 100644 index 7f9d18bc3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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) -// - -// *Preprocessed* version of the main "quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp deleted file mode 100644 index 372f0d260..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp deleted file mode 100644 index 44aadf7a6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp deleted file mode 100644 index ace3a4f07..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp deleted file mode 100644 index 4e6993ce2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp deleted file mode 100644 index 6d19e94ed..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp deleted file mode 100644 index dd31d97ce..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp deleted file mode 100644 index b24a0a7e7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp deleted file mode 100644 index ab100f1cb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp deleted file mode 100644 index f391dc1ab..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// *Preprocessed* version of the main "unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; - - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp deleted file mode 100644 index 803e21785..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// *Preprocessed* version of the main "vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp deleted file mode 100644 index 643b7fd63..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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) -// - -// *Preprocessed* version of the main "vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/and.hpp deleted file mode 100644 index 010ad1fc8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp deleted file mode 100644 index e08eaccf0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp deleted file mode 100644 index b2ed5d513..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp deleted file mode 100644 index 34d51a1a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< typename F > -struct apply_wrap0< F,true_ > - : F::apply -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp deleted file mode 100644 index 1e7342941..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +++ /dev/null @@ -1,406 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F, int dummy_ - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, int dummy_ - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1, int dummy_ - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, int dummy_ - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp deleted file mode 100644 index 94bfe1fef..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp +++ /dev/null @@ -1,515 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F, int dummy_ - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, int dummy_ - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1, int dummy_ - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, int dummy_ - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp deleted file mode 100644 index 181bc77fa..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, int dummy_ = 0 - > -struct bind; - -template< - typename F, int dummy_ = 0 - > -struct bind0; - -template< - typename F, typename T1, int dummy_ = 0 - > -struct bind1; - -template< - typename F, typename T1, typename T2, int dummy_ = 0 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ = 0 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ = 0 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ = 0 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp deleted file mode 100644 index 0bbf54ea2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp deleted file mode 100644 index 55b31cb8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp deleted file mode 100644 index ec1939151..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp deleted file mode 100644 index de67398a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp deleted file mode 100644 index 86f16826f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp deleted file mode 100644 index 62c994589..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp deleted file mode 100644 index 9e7a29300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp deleted file mode 100644 index 026418ccc..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +++ /dev/null @@ -1,536 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp deleted file mode 100644 index 14d8e08bf..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp deleted file mode 100644 index 2603f9184..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp deleted file mode 100644 index 00f31c422..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp deleted file mode 100644 index 805790e86..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/less.hpp deleted file mode 100644 index 4fe3cd17c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp deleted file mode 100644 index ca2894f6f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/list.hpp deleted file mode 100644 index 4e8ad53d2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp deleted file mode 100644 index 0b48a7f8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/map.hpp deleted file mode 100644 index 837e01377..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp deleted file mode 100644 index 71d491376..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp deleted file mode 100644 index 224b34930..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp deleted file mode 100644 index 98b21b1e2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/or.hpp deleted file mode 100644 index 31e1aaa4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp deleted file mode 100644 index a9f6ee79a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp deleted file mode 100644 index d7d0420e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl - : T -{ -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< - F - , aux::has_type< F >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - > - - { - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp deleted file mode 100644 index c468684c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/set.hpp deleted file mode 100644 index 5721922e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp deleted file mode 100644 index cbeb932c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp deleted file mode 100644 index b5b181ce1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp deleted file mode 100644 index f7a342e98..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp deleted file mode 100644 index a23fc2384..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/times.hpp deleted file mode 100644 index cb97cc4e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp deleted file mode 100644 index 2194ce9d1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp deleted file mode 100644 index bfa9565a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp deleted file mode 100644 index 0f1560d7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/and.hpp deleted file mode 100644 index 010ad1fc8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp deleted file mode 100644 index e08eaccf0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp deleted file mode 100644 index b2ed5d513..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp deleted file mode 100644 index 34d51a1a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< typename F > -struct apply_wrap0< F,true_ > - : F::apply -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp deleted file mode 100644 index b0702324a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +++ /dev/null @@ -1,440 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp deleted file mode 100644 index 0e9513a64..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp +++ /dev/null @@ -1,561 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp deleted file mode 100644 index c4a5060ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct bind; - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp deleted file mode 100644 index 0bbf54ea2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp deleted file mode 100644 index 55b31cb8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp deleted file mode 100644 index ec1939151..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp deleted file mode 100644 index de67398a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp deleted file mode 100644 index 86f16826f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp deleted file mode 100644 index 62c994589..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp deleted file mode 100644 index 9e7a29300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp deleted file mode 100644 index e3eef71b1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp deleted file mode 100644 index 14d8e08bf..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp deleted file mode 100644 index 2603f9184..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp deleted file mode 100644 index 00f31c422..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp deleted file mode 100644 index 805790e86..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/less.hpp deleted file mode 100644 index 4fe3cd17c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp deleted file mode 100644 index ca2894f6f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/list.hpp deleted file mode 100644 index 4e8ad53d2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp deleted file mode 100644 index 0b48a7f8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/map.hpp deleted file mode 100644 index 837e01377..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp deleted file mode 100644 index 71d491376..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp deleted file mode 100644 index 224b34930..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp deleted file mode 100644 index 98b21b1e2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/or.hpp deleted file mode 100644 index 31e1aaa4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp deleted file mode 100644 index a9f6ee79a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp deleted file mode 100644 index 020f09396..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl -{ - typedef typename T::type type; -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< - F - , aux::has_type< F >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - > - - { - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp deleted file mode 100644 index c468684c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/set.hpp deleted file mode 100644 index 5721922e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp deleted file mode 100644 index cbeb932c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp deleted file mode 100644 index b5b181ce1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp deleted file mode 100644 index f7a342e98..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp deleted file mode 100644 index daec4b8a8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// *Preprocessed* version of the main "template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { -template< int N > struct arity_tag -{ - typedef char (&type)[N + 1]; -}; - -template< - int C1, int C2, int C3, int C4, int C5, int C6 - > -struct max_arity -{ - BOOST_STATIC_CONSTANT(int, value = - ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) ) - ); -}; - -arity_tag<0>::type arity_helper(...); - -template< - template< typename P1 > class F - , typename T1 - > -typename arity_tag<1>::type -arity_helper(type_wrapper< F >, arity_tag<1>); - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - > -typename arity_tag<2>::type -arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>); - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - > -typename arity_tag<3>::type -arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>); - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - > -typename arity_tag<4>::type -arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>); - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - > -typename arity_tag<5>::type -arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>); - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6 - > -typename arity_tag<6>::type -arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>); -template< typename F, int N > -struct template_arity_impl -{ - BOOST_STATIC_CONSTANT(int, value = - sizeof(::boost::mpl::aux::arity_helper(type_wrapper(), arity_tag())) - 1 - ); -}; - -template< typename F > -struct template_arity -{ - BOOST_STATIC_CONSTANT(int, value = ( - max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value - )); - typedef mpl::int_ type; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/times.hpp deleted file mode 100644 index cb97cc4e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp deleted file mode 100644 index 2194ce9d1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp deleted file mode 100644 index bfa9565a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp deleted file mode 100644 index 0f1560d7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp deleted file mode 100644 index 36337c8a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +++ /dev/null @@ -1,132 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp deleted file mode 100644 index 4ffbe78da..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +++ /dev/null @@ -1,132 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp deleted file mode 100644 index 555c80016..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : false_ - { - }; -}; - -template<> struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,true_ > - { - }; -}; - -template<> -struct and_impl - ::result_< true_,true_,true_,true_ > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp deleted file mode 100644 index a3e2929ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - -{ - typedef typename apply_wrap0< - typename lambda::type - - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -/// workaround for ETI bug -template<> -struct apply0 -{ - typedef int type; -}; - -template< - typename F, typename T1 - > -struct apply1 - -{ - typedef typename apply_wrap1< - typename lambda::type - , T1 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -/// workaround for ETI bug -template<> -struct apply1< int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - -{ - typedef typename apply_wrap2< - typename lambda::type - , T1, T2 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -/// workaround for ETI bug -template<> -struct apply2< int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - -{ - typedef typename apply_wrap3< - typename lambda::type - , T1, T2, T3 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -/// workaround for ETI bug -template<> -struct apply3< int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - -{ - typedef typename apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -/// workaround for ETI bug -template<> -struct apply4< int,int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - -{ - typedef typename apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// workaround for ETI bug -template<> -struct apply5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp deleted file mode 100644 index f0f86c176..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp deleted file mode 100644 index 4e89507d9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +++ /dev/null @@ -1,247 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename F> -struct msvc_apply0 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P = int > struct apply - { - typedef int type; - }; - }; - - template< typename T = int > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply<> - { - }; - -}; - -template< - typename F - > -struct apply_wrap0 -{ - typedef typename msvc_apply0::template result_< - - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap0 -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply1 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P1 > struct apply - { - typedef int type; - }; - }; - - template< typename T1 > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply - { - }; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 -{ - typedef typename msvc_apply1::template result_< - T1 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap1< int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply2 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P1, typename P2 > struct apply - { - typedef int type; - }; - }; - - template< typename T1, typename T2 > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2 > - { - }; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 -{ - typedef typename msvc_apply2::template result_< - T1, T2 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap2< int,int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply3 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P1, typename P2, typename P3 > struct apply - { - typedef int type; - }; - }; - - template< typename T1, typename T2, typename T3 > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2,T3 > - { - }; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 -{ - typedef typename msvc_apply3::template result_< - T1, T2, T3 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap3< int,int,int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply4 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< - typename P1, typename P2, typename P3, typename P4 - > - struct apply - { - typedef int type; - }; - }; - - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2,T3,T4 > - { - }; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 -{ - typedef typename msvc_apply4::template result_< - T1, T2, T3, T4 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap4< int,int,int,int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply5 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - struct apply - { - typedef int type; - }; - }; - - template< - typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2,T3,T4,T5 > - { - }; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 -{ - typedef typename msvc_apply5::template result_< - T1, T2, T3, T4, T5 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp deleted file mode 100644 index 4f12a40f0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp deleted file mode 100644 index 53c76e8f2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +++ /dev/null @@ -1,432 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg< -1 > > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp deleted file mode 100644 index 022cba346..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp deleted file mode 100644 index e96cf1a72..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitand_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitand_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - - : if_< - - is_na - , bitand_2< N1,N2 > - , bitand_< - bitand_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitand_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitand_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 & n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitand_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp deleted file mode 100644 index bbc96ab7a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - - : if_< - - is_na - , bitor_2< N1,N2 > - , bitor_< - bitor_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 | n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp deleted file mode 100644 index 4c1429712..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitxor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitxor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - - : if_< - - is_na - , bitxor_2< N1,N2 > - , bitxor_< - bitxor_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitxor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitxor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitxor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp deleted file mode 100644 index a0445d9df..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct deque_chooser; - -} - -namespace aux { - -template<> -struct deque_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct deque_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque_impl -{ - typedef aux::deque_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::deque_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque - : aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp deleted file mode 100644 index 768149192..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct divides_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct divides2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - - : if_< - - is_na - , divides2< N1,N2 > - , divides< - divides2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct divides2 - : aux::msvc_eti_base< typename apply_wrap2< - divides_impl< - typename divides_tag::type - , typename divides_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct divides_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 / n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::divides_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp deleted file mode 100644 index 64e906502..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - : aux::msvc_eti_base< typename apply_wrap2< - equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp deleted file mode 100644 index 4b3c69076..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +++ /dev/null @@ -1,293 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< int N > -struct fold_chunk; - -template<> struct fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< int N > -struct fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step; - -template< - typename Last - , typename State - > -struct fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , fold_null_step< Last,State > - , fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step -{ - typedef fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl - : fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp deleted file mode 100644 index bf818731e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp deleted file mode 100644 index 5f5662ded..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - : aux::msvc_eti_base< typename apply_wrap2< - greater_impl< - typename greater_tag::type - , typename greater_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp deleted file mode 100644 index ae776fcc5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - : aux::msvc_eti_base< typename apply_wrap2< - greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp deleted file mode 100644 index 233a1ec30..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C1, bool C2 > -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1, T2 - { - typedef Derived type_; - }; -}; - -template<> -struct inherit2_impl< false,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1 - { - typedef T1 type_; - }; -}; - -template<> -struct inherit2_impl< true,false > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T2 - { - typedef T2 type_; - }; -}; - -template<> -struct inherit2_impl< true,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - { - typedef T1 type_; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : aux::inherit2_impl< - is_empty_base::value - , is_empty_base::value - >::template result_< inherit2< T1,T2 >,T1, T2 > -{ - typedef typename inherit2::type_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp deleted file mode 100644 index 69aadc46b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +++ /dev/null @@ -1,293 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< int N > -struct iter_fold_chunk; - -template<> struct iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< int N > -struct iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step; - -template< - typename Last - , typename State - > -struct iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , iter_fold_null_step< Last,State > - , iter_fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step -{ - typedef iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl - : iter_fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp deleted file mode 100644 index 951f06082..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - : aux::msvc_eti_base< typename apply_wrap2< - less_impl< - typename less_tag::type - , typename less_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp deleted file mode 100644 index a56e692e3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - : aux::msvc_eti_base< typename apply_wrap2< - less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp deleted file mode 100644 index e5ea456c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_chooser; - -} - -namespace aux { - -template<> -struct list_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef list0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct list_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list_impl -{ - typedef aux::list_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::list_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list - : aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp deleted file mode 100644 index ab25482f5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_c_chooser; - -} - -namespace aux { - -template<> -struct list_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct list_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c_impl -{ - typedef aux::list_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::list_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c - : aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp deleted file mode 100644 index 970e0b760..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct map_chooser; - -} - -namespace aux { - -template<> -struct map_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef map0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct map_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map_impl -{ - typedef aux::map_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::map_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map - : aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp deleted file mode 100644 index b47f32857..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct minus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct minus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - - : if_< - - is_na - , minus2< N1,N2 > - , minus< - minus2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct minus2 - : aux::msvc_eti_base< typename apply_wrap2< - minus_impl< - typename minus_tag::type - , typename minus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct minus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 - n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::minus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp deleted file mode 100644 index c12b3f9ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +++ /dev/null @@ -1,115 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct modulus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - : aux::msvc_eti_base< typename apply_wrap2< - modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct modulus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 % n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::modulus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp deleted file mode 100644 index 6e56b1e89..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct not_equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - : aux::msvc_eti_base< typename apply_wrap2< - not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp deleted file mode 100644 index 3f7394e7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : true_ - { - }; -}; - -template<> struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,false_ > - { - }; -}; - -template<> -struct or_impl - ::result_< false_,false_,false_,false_ > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp deleted file mode 100644 index 105233537..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct plus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct plus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - - : if_< - - is_na - , plus2< N1,N2 > - , plus< - plus2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct plus2 - : aux::msvc_eti_base< typename apply_wrap2< - plus_impl< - typename plus_tag::type - , typename plus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct plus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 + n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::plus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp deleted file mode 100644 index e7a7f0019..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp deleted file mode 100644 index adf15b633..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +++ /dev/null @@ -1,343 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp deleted file mode 100644 index 208ad9706..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,343 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp deleted file mode 100644 index 95aaa5cbd..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_chooser; - -} - -namespace aux { - -template<> -struct set_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef set0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct set_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set_impl -{ - typedef aux::set_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::set_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set - : aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp deleted file mode 100644 index 1ff34f903..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_c_chooser; - -} - -namespace aux { - -template<> -struct set_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct set_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c_impl -{ - typedef aux::set_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::set_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c - : aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp deleted file mode 100644 index 3861ca1db..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct shift_left_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - : aux::msvc_eti_base< typename apply_wrap2< - shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_left_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n << s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_left_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp deleted file mode 100644 index 24ea0948e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct shift_right_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - : aux::msvc_eti_base< typename apply_wrap2< - shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_right_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n >> s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_right_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp deleted file mode 100644 index 166877134..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -template<> -struct template_arity - : mpl::int_< -1 > -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp deleted file mode 100644 index dee7fd442..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct times_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct times2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - - : if_< - - is_na - , times2< N1,N2 > - , times< - times2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct times2 - : aux::msvc_eti_base< typename apply_wrap2< - times_impl< - typename times_tag::type - , typename times_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct times_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 * n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::times_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp deleted file mode 100644 index 26533dd42..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +++ /dev/null @@ -1,109 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl -{ - template< typename F, typename Args > struct apply; -}; - -template<> struct unpack_args_impl<0> -{ - template< typename F, typename Args > struct apply - : apply0< - F - > - { - }; -}; - -template<> struct unpack_args_impl<1> -{ - template< typename F, typename Args > struct apply - : apply1< - F - , typename at_c< Args,0 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<2> -{ - template< typename F, typename Args > struct apply - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<3> -{ - template< typename F, typename Args > struct apply - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<4> -{ - template< typename F, typename Args > struct apply - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<5> -{ - template< typename F, typename Args > struct apply - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > - { - }; -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value > - ::template apply< F,Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp deleted file mode 100644 index a6c7b6219..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_chooser; - -} - -namespace aux { - -template<> -struct vector_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct vector_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector_impl -{ - typedef aux::vector_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::vector_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector - : aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp deleted file mode 100644 index c522d0826..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_c_chooser; - -} - -namespace aux { - -template<> -struct vector_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector1_c< - T, T(C0) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector2_c< - T, T(C0), T(C1) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector3_c< - T, T(C0), T(C1), T(C2) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector4_c< - T, T(C0), T(C1), T(C2), T(C3) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector5_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector6_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector7_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector8_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector9_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector10_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector11_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector12_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector13_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector14_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector15_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector16_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector17_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector18_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector19_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector20_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct vector_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c_impl -{ - typedef aux::vector_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::vector_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c - : aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp deleted file mode 100644 index e58640a41..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : false_ - { - }; -}; - -template<> struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,true_ > - { - }; - - template<> struct result_< true_,true_,true_,true_ > - : true_ - { - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp deleted file mode 100644 index d46d03096..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +++ /dev/null @@ -1,160 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -/// workaround for ETI bug -template<> -struct apply0 -{ - typedef int type; -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -/// workaround for ETI bug -template<> -struct apply1< int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -/// workaround for ETI bug -template<> -struct apply2< int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -/// workaround for ETI bug -template<> -struct apply3< int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -/// workaround for ETI bug -template<> -struct apply4< int,int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// workaround for ETI bug -template<> -struct apply5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp deleted file mode 100644 index f0f86c176..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp deleted file mode 100644 index d30751793..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +++ /dev/null @@ -1,138 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - -{ - typedef typename F::template apply< - - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap0 -{ - typedef int type; -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - -{ - typedef typename F::template apply< - T1 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap1< int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - -{ - typedef typename F::template apply< - T1, T2 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap2< int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - -{ - typedef typename F::template apply< - T1, T2, T3 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap3< int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - -{ - typedef typename F::template apply< - T1, T2, T3, T4 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap4< int,int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp deleted file mode 100644 index 4f12a40f0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp deleted file mode 100644 index 53c76e8f2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +++ /dev/null @@ -1,432 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg< -1 > > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp deleted file mode 100644 index 022cba346..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp deleted file mode 100644 index e54b4ce1d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitand_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitand_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - - : aux::msvc_eti_base< typename if_< - - is_na - , bitand_2< N1,N2 > - , bitand_< - bitand_2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitand_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitand_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 & n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitand_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp deleted file mode 100644 index 3b465b332..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - - : aux::msvc_eti_base< typename if_< - - is_na - , bitor_2< N1,N2 > - , bitor_< - bitor_2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 | n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp deleted file mode 100644 index f7c5d439c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitxor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitxor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - - : aux::msvc_eti_base< typename if_< - - is_na - , bitxor_2< N1,N2 > - , bitxor_< - bitxor_2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitxor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitxor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitxor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp deleted file mode 100644 index a0445d9df..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct deque_chooser; - -} - -namespace aux { - -template<> -struct deque_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct deque_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque_impl -{ - typedef aux::deque_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::deque_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque - : aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp deleted file mode 100644 index 0c60c4317..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct divides_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct divides2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - - : aux::msvc_eti_base< typename if_< - - is_na - , divides2< N1,N2 > - , divides< - divides2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct divides2 - : aux::msvc_eti_base< typename apply_wrap2< - divides_impl< - typename divides_tag::type - , typename divides_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct divides_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 / n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::divides_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp deleted file mode 100644 index 107912b17..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - : aux::msvc_eti_base< typename apply_wrap2< - equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp deleted file mode 100644 index 58066d81f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +++ /dev/null @@ -1,245 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< int N > -struct fold_chunk; - -template<> struct fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; -}; - -template<> struct fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; -}; - -template<> struct fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; -}; - -template<> struct fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; -}; - -template< int N > -struct fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step; - -template< - typename Last - , typename State - > -struct fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , fold_null_step< Last,State > - , fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step -{ - typedef fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl - : fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp deleted file mode 100644 index bf818731e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp deleted file mode 100644 index f60a86064..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - : aux::msvc_eti_base< typename apply_wrap2< - greater_impl< - typename greater_tag::type - , typename greater_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp deleted file mode 100644 index 2ab09fd56..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - : aux::msvc_eti_base< typename apply_wrap2< - greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp deleted file mode 100644 index 233a1ec30..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C1, bool C2 > -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1, T2 - { - typedef Derived type_; - }; -}; - -template<> -struct inherit2_impl< false,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1 - { - typedef T1 type_; - }; -}; - -template<> -struct inherit2_impl< true,false > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T2 - { - typedef T2 type_; - }; -}; - -template<> -struct inherit2_impl< true,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - { - typedef T1 type_; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : aux::inherit2_impl< - is_empty_base::value - , is_empty_base::value - >::template result_< inherit2< T1,T2 >,T1, T2 > -{ - typedef typename inherit2::type_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp deleted file mode 100644 index 50ea754f2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +++ /dev/null @@ -1,245 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< int N > -struct iter_fold_chunk; - -template<> struct iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; -}; - -template<> struct iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; -}; - -template<> struct iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; -}; - -template<> struct iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; -}; - -template< int N > -struct iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step; - -template< - typename Last - , typename State - > -struct iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , iter_fold_null_step< Last,State > - , iter_fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step -{ - typedef iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl - : iter_fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp deleted file mode 100644 index 72338def7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - : aux::msvc_eti_base< typename apply_wrap2< - less_impl< - typename less_tag::type - , typename less_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp deleted file mode 100644 index b58869755..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - : aux::msvc_eti_base< typename apply_wrap2< - less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp deleted file mode 100644 index e5ea456c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_chooser; - -} - -namespace aux { - -template<> -struct list_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef list0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct list_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list_impl -{ - typedef aux::list_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::list_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list - : aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp deleted file mode 100644 index ab25482f5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_c_chooser; - -} - -namespace aux { - -template<> -struct list_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct list_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c_impl -{ - typedef aux::list_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::list_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c - : aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp deleted file mode 100644 index 970e0b760..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct map_chooser; - -} - -namespace aux { - -template<> -struct map_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef map0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct map_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map_impl -{ - typedef aux::map_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::map_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map - : aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp deleted file mode 100644 index 3237fa684..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct minus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct minus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - - : aux::msvc_eti_base< typename if_< - - is_na - , minus2< N1,N2 > - , minus< - minus2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct minus2 - : aux::msvc_eti_base< typename apply_wrap2< - minus_impl< - typename minus_tag::type - , typename minus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct minus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 - n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::minus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp deleted file mode 100644 index 9c672c0f1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +++ /dev/null @@ -1,115 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct modulus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - : aux::msvc_eti_base< typename apply_wrap2< - modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct modulus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 % n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::modulus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp deleted file mode 100644 index 1e48e7f7a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct not_equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - : aux::msvc_eti_base< typename apply_wrap2< - not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp deleted file mode 100644 index 8d0ba0a47..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : true_ - { - }; -}; - -template<> struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,false_ > - { - }; - - template<> struct result_< false_,false_,false_,false_ > - : false_ - { - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp deleted file mode 100644 index c8f3355e7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct plus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct plus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - - : aux::msvc_eti_base< typename if_< - - is_na - , plus2< N1,N2 > - , plus< - plus2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct plus2 - : aux::msvc_eti_base< typename apply_wrap2< - plus_impl< - typename plus_tag::type - , typename plus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct plus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 + n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::plus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp deleted file mode 100644 index b85880ffd..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +++ /dev/null @@ -1,116 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { -template< bool > struct quote_impl -{ - template< typename T > struct result_ - : T - { - }; -}; - -template<> struct quote_impl -{ - template< typename T > struct result_ - { - typedef T type; - }; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< aux::has_type< F >::value > - ::template result_< F > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< aux::has_type< F< U1,U2 > >::value > - ::template result_< F< U1,U2 > > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3 > >::value > - ::template result_< F< U1,U2,U3 > > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value > - ::template result_< F< U1,U2,U3,U4 > > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value > - ::template result_< F< U1,U2,U3,U4,U5 > > - - { - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp deleted file mode 100644 index 7a07414ad..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp deleted file mode 100644 index 39a4057b7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/set.hpp deleted file mode 100644 index 95aaa5cbd..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/set.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_chooser; - -} - -namespace aux { - -template<> -struct set_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef set0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct set_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set_impl -{ - typedef aux::set_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::set_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set - : aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp deleted file mode 100644 index 1ff34f903..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_c_chooser; - -} - -namespace aux { - -template<> -struct set_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct set_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c_impl -{ - typedef aux::set_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::set_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c - : aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp deleted file mode 100644 index 176fc0000..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct shift_left_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - : aux::msvc_eti_base< typename apply_wrap2< - shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_left_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n << s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_left_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp deleted file mode 100644 index 6b6e01ff3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct shift_right_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - : aux::msvc_eti_base< typename apply_wrap2< - shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_right_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n >> s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_right_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp deleted file mode 100644 index 166877134..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -template<> -struct template_arity - : mpl::int_< -1 > -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/times.hpp deleted file mode 100644 index a6ae333cc..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/times.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct times_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct times2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - - : aux::msvc_eti_base< typename if_< - - is_na - , times2< N1,N2 > - , times< - times2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct times2 - : aux::msvc_eti_base< typename apply_wrap2< - times_impl< - typename times_tag::type - , typename times_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct times_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 * n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::times_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp deleted file mode 100644 index 26533dd42..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +++ /dev/null @@ -1,109 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl -{ - template< typename F, typename Args > struct apply; -}; - -template<> struct unpack_args_impl<0> -{ - template< typename F, typename Args > struct apply - : apply0< - F - > - { - }; -}; - -template<> struct unpack_args_impl<1> -{ - template< typename F, typename Args > struct apply - : apply1< - F - , typename at_c< Args,0 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<2> -{ - template< typename F, typename Args > struct apply - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<3> -{ - template< typename F, typename Args > struct apply - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<4> -{ - template< typename F, typename Args > struct apply - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<5> -{ - template< typename F, typename Args > struct apply - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > - { - }; -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value > - ::template apply< F,Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/vector.hpp deleted file mode 100644 index a6c7b6219..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_chooser; - -} - -namespace aux { - -template<> -struct vector_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct vector_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector_impl -{ - typedef aux::vector_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::vector_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector - : aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp deleted file mode 100644 index c522d0826..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_c_chooser; - -} - -namespace aux { - -template<> -struct vector_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector1_c< - T, T(C0) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector2_c< - T, T(C0), T(C1) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector3_c< - T, T(C0), T(C1), T(C2) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector4_c< - T, T(C0), T(C1), T(C2), T(C3) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector5_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector6_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector7_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector8_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector9_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector10_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector11_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector12_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector13_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector14_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector15_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector16_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector17_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector18_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector19_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector20_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct vector_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c_impl -{ - typedef aux::vector_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::vector_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c - : aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/and.hpp deleted file mode 100644 index 010ad1fc8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply.hpp deleted file mode 100644 index e08eaccf0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp deleted file mode 100644 index b2ed5d513..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp deleted file mode 100644 index 2ffe7091b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +++ /dev/null @@ -1,456 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef typename F::template apply< - -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp deleted file mode 100644 index b0702324a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +++ /dev/null @@ -1,440 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bind.hpp deleted file mode 100644 index 0e9513a64..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +++ /dev/null @@ -1,561 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp deleted file mode 100644 index c4a5060ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct bind; - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp deleted file mode 100644 index 0bbf54ea2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp deleted file mode 100644 index 55b31cb8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp deleted file mode 100644 index ec1939151..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/deque.hpp deleted file mode 100644 index de67398a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/divides.hpp deleted file mode 100644 index 86f16826f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp deleted file mode 100644 index 62c994589..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp deleted file mode 100644 index 9e7a29300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp deleted file mode 100644 index bf818731e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/greater.hpp deleted file mode 100644 index 14d8e08bf..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp deleted file mode 100644 index 2603f9184..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp deleted file mode 100644 index 00f31c422..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp deleted file mode 100644 index 805790e86..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/less.hpp deleted file mode 100644 index 4fe3cd17c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp deleted file mode 100644 index ca2894f6f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/list.hpp deleted file mode 100644 index 4e8ad53d2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp deleted file mode 100644 index 0b48a7f8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/map.hpp deleted file mode 100644 index 837e01377..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/minus.hpp deleted file mode 100644 index 71d491376..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp deleted file mode 100644 index 224b34930..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp deleted file mode 100644 index 98b21b1e2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp deleted file mode 100644 index 31e1aaa4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/plus.hpp deleted file mode 100644 index a9f6ee79a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/quote.hpp deleted file mode 100644 index d7d0420e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl - : T -{ -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< - F - , aux::has_type< F >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - > - - { - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp deleted file mode 100644 index c468684c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/set.hpp deleted file mode 100644 index 5721922e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp deleted file mode 100644 index cbeb932c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp deleted file mode 100644 index b5b181ce1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp deleted file mode 100644 index f7a342e98..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp deleted file mode 100644 index a23fc2384..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/times.hpp deleted file mode 100644 index cb97cc4e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp deleted file mode 100644 index 2194ce9d1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/vector.hpp deleted file mode 100644 index bfa9565a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp deleted file mode 100644 index 0f1560d7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/and.hpp deleted file mode 100644 index 555c80016..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : false_ - { - }; -}; - -template<> struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,true_ > - { - }; -}; - -template<> -struct and_impl - ::result_< true_,true_,true_,true_ > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp deleted file mode 100644 index 9838e799b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +++ /dev/null @@ -1,268 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -namespace aux { - -template<> -struct apply_chooser<0> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef apply0< - F - > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -namespace aux { - -template<> -struct apply_chooser<1> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef apply1< - F, T1 - > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -namespace aux { - -template<> -struct apply_chooser<2> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef apply2< - F, T1, T2 - > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -namespace aux { - -template<> -struct apply_chooser<3> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef apply3< - F, T1, T2, T3 - > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -namespace aux { - -template<> -struct apply_chooser<4> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef apply4< - F, T1, T2, T3, T4 - > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -namespace aux { - -template<> -struct apply_chooser<5> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef apply5< - F, T1, T2, T3, T4, T5 - > type; - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_apply_arg -{ - static bool const value = true; -}; - -template<> -struct is_apply_arg -{ - static bool const value = false; -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - > -struct apply_count_args -{ - static int const value = is_apply_arg::value + is_apply_arg::value + is_apply_arg::value + is_apply_arg::value + is_apply_arg::value; - -}; - -} - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply - : aux::apply_chooser< - aux::apply_count_args< T1,T2,T3,T4,T5 >::value - >::template result_< F,T1,T2,T3,T4,T5 >::type -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp deleted file mode 100644 index 7de6dad08..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +++ /dev/null @@ -1,50 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser; -} - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp deleted file mode 100644 index efa213dfe..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +++ /dev/null @@ -1,78 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp deleted file mode 100644 index 254e5b888..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +++ /dev/null @@ -1,486 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -namespace aux { - -template<> -struct bind_chooser<0> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind0 type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -namespace aux { - -template<> -struct bind_chooser<1> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind1< F,T1 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -namespace aux { - -template<> -struct bind_chooser<2> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind2< F,T1,T2 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -namespace aux { - -template<> -struct bind_chooser<3> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind3< F,T1,T2,T3 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -namespace aux { - -template<> -struct bind_chooser<4> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind4< F,T1,T2,T3,T4 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -namespace aux { - -template<> -struct bind_chooser<5> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind5< F,T1,T2,T3,T4,T5 > type; - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_bind_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_bind_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - > -struct bind_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_bind_arg::value + is_bind_arg::value - + is_bind_arg::value + is_bind_arg::value - + is_bind_arg::value - ); - -}; - -} - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : aux::bind_chooser< - aux::bind_count_args< T1,T2,T3,T4,T5 >::value - >::template result_< F,T1,T2,T3,T4,T5 >::type -{ -}; - -BOOST_MPL_AUX_ARITY_SPEC( - 6 - , bind - ) - -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( - 6 - , bind - ) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp deleted file mode 100644 index 12062b425..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +++ /dev/null @@ -1,590 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg< -1 > > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -namespace aux { - -template<> -struct bind_chooser<0> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind0 type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -namespace aux { - -template<> -struct bind_chooser<1> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind1< F,T1 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -namespace aux { - -template<> -struct bind_chooser<2> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind2< F,T1,T2 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -namespace aux { - -template<> -struct bind_chooser<3> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind3< F,T1,T2,T3 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -namespace aux { - -template<> -struct bind_chooser<4> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind4< F,T1,T2,T3,T4 > type; - }; -}; - -} // namespace aux - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -namespace aux { - -template<> -struct bind_chooser<5> -{ - template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - { - typedef bind5< F,T1,T2,T3,T4,T5 > type; - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_bind_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_bind_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - > -struct bind_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_bind_arg::value + is_bind_arg::value - + is_bind_arg::value + is_bind_arg::value - + is_bind_arg::value - ); - -}; - -} - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : aux::bind_chooser< - aux::bind_count_args< T1,T2,T3,T4,T5 >::value - >::template result_< F,T1,T2,T3,T4,T5 >::type -{ -}; - -BOOST_MPL_AUX_ARITY_SPEC( - 6 - , bind - ) - -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( - 6 - , bind - ) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp deleted file mode 100644 index c4a5060ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct bind; - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp deleted file mode 100644 index 020d6ba4c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +++ /dev/null @@ -1,134 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitand_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - - : if_< - - is_na - , bitand_2< N1,N2 > - , bitand_< - bitand_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitand_2 - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp deleted file mode 100644 index 047487767..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +++ /dev/null @@ -1,134 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - - : if_< - - is_na - , bitor_2< N1,N2 > - , bitor_< - bitor_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitor_2 - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp deleted file mode 100644 index 42a9758bb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +++ /dev/null @@ -1,134 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitxor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - - : if_< - - is_na - , bitxor_2< N1,N2 > - , bitxor_< - bitxor_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitxor_2 - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp deleted file mode 100644 index a0445d9df..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct deque_chooser; - -} - -namespace aux { - -template<> -struct deque_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct deque_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque_impl -{ - typedef aux::deque_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::deque_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque - : aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp deleted file mode 100644 index 00636dcbf..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct divides2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - - : if_< - - is_na - , divides2< N1,N2 > - , divides< - divides2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct divides2 - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp deleted file mode 100644 index b14cdda3b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp deleted file mode 100644 index 58066d81f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +++ /dev/null @@ -1,245 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< int N > -struct fold_chunk; - -template<> struct fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; -}; - -template<> struct fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; -}; - -template<> struct fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; -}; - -template<> struct fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; -}; - -template< int N > -struct fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step; - -template< - typename Last - , typename State - > -struct fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , fold_null_step< Last,State > - , fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step -{ - typedef fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl - : fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp deleted file mode 100644 index bf818731e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp deleted file mode 100644 index 6fdf8badb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp deleted file mode 100644 index f848eef98..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp deleted file mode 100644 index 233a1ec30..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C1, bool C2 > -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1, T2 - { - typedef Derived type_; - }; -}; - -template<> -struct inherit2_impl< false,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1 - { - typedef T1 type_; - }; -}; - -template<> -struct inherit2_impl< true,false > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T2 - { - typedef T2 type_; - }; -}; - -template<> -struct inherit2_impl< true,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - { - typedef T1 type_; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : aux::inherit2_impl< - is_empty_base::value - , is_empty_base::value - >::template result_< inherit2< T1,T2 >,T1, T2 > -{ - typedef typename inherit2::type_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp deleted file mode 100644 index 50ea754f2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +++ /dev/null @@ -1,245 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< int N > -struct iter_fold_chunk; - -template<> struct iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; -}; - -template<> struct iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; -}; - -template<> struct iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; -}; - -template<> struct iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; -}; - -template< int N > -struct iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step; - -template< - typename Last - , typename State - > -struct iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , iter_fold_null_step< Last,State > - , iter_fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step -{ - typedef iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl - : iter_fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/less.hpp deleted file mode 100644 index 7fb35e107..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp deleted file mode 100644 index 206ecdcf9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/list.hpp deleted file mode 100644 index e5ea456c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_chooser; - -} - -namespace aux { - -template<> -struct list_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef list0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct list_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list_impl -{ - typedef aux::list_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::list_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list - : aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp deleted file mode 100644 index ab25482f5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_c_chooser; - -} - -namespace aux { - -template<> -struct list_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct list_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c_impl -{ - typedef aux::list_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::list_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c - : aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/map.hpp deleted file mode 100644 index 970e0b760..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct map_chooser; - -} - -namespace aux { - -template<> -struct map_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef map0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct map_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map_impl -{ - typedef aux::map_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::map_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map - : aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp deleted file mode 100644 index 7b49450a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct minus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - - : if_< - - is_na - , minus2< N1,N2 > - , minus< - minus2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct minus2 - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp deleted file mode 100644 index 8badbab5b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp deleted file mode 100644 index d87d8cd11..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/or.hpp deleted file mode 100644 index 3f7394e7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : true_ - { - }; -}; - -template<> struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,false_ > - { - }; -}; - -template<> -struct or_impl - ::result_< false_,false_,false_,false_ > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp deleted file mode 100644 index a55b24c45..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct plus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - - : if_< - - is_na - , plus2< N1,N2 > - , plus< - plus2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct plus2 - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp deleted file mode 100644 index b85880ffd..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +++ /dev/null @@ -1,116 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { -template< bool > struct quote_impl -{ - template< typename T > struct result_ - : T - { - }; -}; - -template<> struct quote_impl -{ - template< typename T > struct result_ - { - typedef T type; - }; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< aux::has_type< F >::value > - ::template result_< F > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< aux::has_type< F< U1,U2 > >::value > - ::template result_< F< U1,U2 > > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3 > >::value > - ::template result_< F< U1,U2,U3 > > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value > - ::template result_< F< U1,U2,U3,U4 > > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value > - ::template result_< F< U1,U2,U3,U4,U5 > > - - { - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp deleted file mode 100644 index 7a07414ad..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp deleted file mode 100644 index 39a4057b7..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/set.hpp deleted file mode 100644 index 95aaa5cbd..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_chooser; - -} - -namespace aux { - -template<> -struct set_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef set0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct set_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set_impl -{ - typedef aux::set_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::set_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set - : aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp deleted file mode 100644 index 1ff34f903..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_c_chooser; - -} - -namespace aux { - -template<> -struct set_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct set_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c_impl -{ - typedef aux::set_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::set_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c - : aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp deleted file mode 100644 index d14a5e488..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp deleted file mode 100644 index 08c4915eb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp deleted file mode 100644 index 1164f0f8c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/times.hpp deleted file mode 100644 index fd773cc84..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct times2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - - : if_< - - is_na - , times2< N1,N2 > - , times< - times2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct times2 - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp deleted file mode 100644 index 26533dd42..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +++ /dev/null @@ -1,109 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl -{ - template< typename F, typename Args > struct apply; -}; - -template<> struct unpack_args_impl<0> -{ - template< typename F, typename Args > struct apply - : apply0< - F - > - { - }; -}; - -template<> struct unpack_args_impl<1> -{ - template< typename F, typename Args > struct apply - : apply1< - F - , typename at_c< Args,0 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<2> -{ - template< typename F, typename Args > struct apply - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<3> -{ - template< typename F, typename Args > struct apply - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<4> -{ - template< typename F, typename Args > struct apply - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<5> -{ - template< typename F, typename Args > struct apply - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > - { - }; -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value > - ::template apply< F,Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp deleted file mode 100644 index a6c7b6219..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_chooser; - -} - -namespace aux { - -template<> -struct vector_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct vector_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector_impl -{ - typedef aux::vector_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::vector_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector - : aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp deleted file mode 100644 index c522d0826..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_c_chooser; - -} - -namespace aux { - -template<> -struct vector_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector1_c< - T, T(C0) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector2_c< - T, T(C0), T(C1) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector3_c< - T, T(C0), T(C1), T(C2) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector4_c< - T, T(C0), T(C1), T(C2), T(C3) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector5_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector6_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector7_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector8_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector9_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector10_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector11_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector12_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector13_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector14_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector15_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector16_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector17_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector18_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector19_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector20_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct vector_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c_impl -{ - typedef aux::vector_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::vector_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c - : aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/and.hpp deleted file mode 100644 index 010ad1fc8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp deleted file mode 100644 index e08eaccf0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp deleted file mode 100644 index b2ed5d513..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp deleted file mode 100644 index 34d51a1a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< typename F > -struct apply_wrap0< F,true_ > - : F::apply -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp deleted file mode 100644 index 095b84dd9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +++ /dev/null @@ -1,369 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp deleted file mode 100644 index 28914408a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +++ /dev/null @@ -1,466 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp deleted file mode 100644 index c4a5060ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct bind; - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp deleted file mode 100644 index 282771bce..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +++ /dev/null @@ -1,157 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitand_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 & n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitand_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp deleted file mode 100644 index bc9c1989d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +++ /dev/null @@ -1,157 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 | n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp deleted file mode 100644 index 76ce540b4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +++ /dev/null @@ -1,157 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitxor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitxor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp deleted file mode 100644 index de67398a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp deleted file mode 100644 index 9bc7fb192..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +++ /dev/null @@ -1,156 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct divides_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 / n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::divides_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp deleted file mode 100644 index fa2dc4a25..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp deleted file mode 100644 index 9e7a29300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp deleted file mode 100644 index bf818731e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp deleted file mode 100644 index faa3f2ba9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp deleted file mode 100644 index 392d142d9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp deleted file mode 100644 index 00f31c422..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp deleted file mode 100644 index 805790e86..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp deleted file mode 100644 index 890a198a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/less.hpp deleted file mode 100644 index 6451680fe..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp deleted file mode 100644 index 00ae0d3ec..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/list.hpp deleted file mode 100644 index 4e8ad53d2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp deleted file mode 100644 index 0b48a7f8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/map.hpp deleted file mode 100644 index 837e01377..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp deleted file mode 100644 index bb67c59a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +++ /dev/null @@ -1,156 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct minus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 - n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::minus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp deleted file mode 100644 index 6fd0cab37..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +++ /dev/null @@ -1,111 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct modulus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 % n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::modulus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp deleted file mode 100644 index 7c940a5b0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/or.hpp deleted file mode 100644 index 31e1aaa4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp deleted file mode 100644 index cecead75a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +++ /dev/null @@ -1,156 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct plus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 + n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::plus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp deleted file mode 100644 index e7a7f0019..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp deleted file mode 100644 index c468684c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/set.hpp deleted file mode 100644 index 5721922e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp deleted file mode 100644 index cbeb932c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp deleted file mode 100644 index 7ef467252..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +++ /dev/null @@ -1,110 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_left_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n << s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_left_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp deleted file mode 100644 index 91a98f738..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +++ /dev/null @@ -1,110 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_right_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n >> s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_right_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp deleted file mode 100644 index 1164f0f8c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/times.hpp deleted file mode 100644 index d019b5724..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +++ /dev/null @@ -1,156 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct times_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 * n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::times_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp deleted file mode 100644 index 2194ce9d1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp deleted file mode 100644 index bfa9565a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp deleted file mode 100644 index 0f1560d7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp deleted file mode 100644 index 26de94cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp deleted file mode 100644 index b137cc72a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/and.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/and.hpp deleted file mode 100644 index 163913f81..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/and.hpp +++ /dev/null @@ -1,64 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply.hpp deleted file mode 100644 index 89d9e4b4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp deleted file mode 100644 index b2ed5d513..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp deleted file mode 100644 index 34d51a1a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< typename F > -struct apply_wrap0< F,true_ > - : F::apply -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/arg.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/arg.hpp deleted file mode 100644 index 6f2f8a807..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp deleted file mode 100644 index b0702324a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +++ /dev/null @@ -1,440 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bind.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bind.hpp deleted file mode 100644 index 0e9513a64..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bind.hpp +++ /dev/null @@ -1,561 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp deleted file mode 100644 index c4a5060ff..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct bind; - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitand.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitand.hpp deleted file mode 100644 index ee40fb3d3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitand.hpp +++ /dev/null @@ -1,142 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitor.hpp deleted file mode 100644 index 1e28d3b07..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitor.hpp +++ /dev/null @@ -1,142 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitxor.hpp deleted file mode 100644 index 2ba879d67..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +++ /dev/null @@ -1,142 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/deque.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/deque.hpp deleted file mode 100644 index de67398a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/divides.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/divides.hpp deleted file mode 100644 index f365d62df..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/divides.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/equal_to.hpp deleted file mode 100644 index bbc6bf0dc..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp deleted file mode 100644 index 9e7a29300..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp deleted file mode 100644 index bf818731e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/greater.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/greater.hpp deleted file mode 100644 index 38c8bb3ad..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/greater.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp deleted file mode 100644 index 2aa8370f0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/inherit.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/inherit.hpp deleted file mode 100644 index 8b34e718c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/inherit.hpp +++ /dev/null @@ -1,125 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp deleted file mode 100644 index 695179584..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp deleted file mode 100644 index 805790e86..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp deleted file mode 100644 index f8f109c2b..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +++ /dev/null @@ -1,228 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/less.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/less.hpp deleted file mode 100644 index 928d0e308..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/less.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/less_equal.hpp deleted file mode 100644 index 364cd967a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/list.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/list.hpp deleted file mode 100644 index 4e8ad53d2..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/list_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/list_c.hpp deleted file mode 100644 index 0b48a7f8e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/map.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/map.hpp deleted file mode 100644 index 837e01377..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/minus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/minus.hpp deleted file mode 100644 index 0b8b5ceeb..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/minus.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/modulus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/modulus.hpp deleted file mode 100644 index 6a64e49a8..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/modulus.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp deleted file mode 100644 index c08d7f06d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/or.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/or.hpp deleted file mode 100644 index 986b2e0ea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/or.hpp +++ /dev/null @@ -1,64 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/placeholders.hpp deleted file mode 100644 index ff97364b9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/plus.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/plus.hpp deleted file mode 100644 index ed2e432dc..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/plus.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/quote.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/quote.hpp deleted file mode 100644 index d7d0420e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/quote.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl - : T -{ -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< - F - , aux::has_type< F >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - > - - { - }; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp deleted file mode 100644 index c468684c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/set.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/set.hpp deleted file mode 100644 index 5721922e1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/set_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/set_c.hpp deleted file mode 100644 index cbeb932c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/shift_left.hpp deleted file mode 100644 index cf9c837d6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/shift_right.hpp deleted file mode 100644 index 477229f24..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/template_arity.hpp deleted file mode 100644 index a23fc2384..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/times.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/times.hpp deleted file mode 100644 index ca88d405f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/times.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp deleted file mode 100644 index 2194ce9d1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/vector.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/vector.hpp deleted file mode 100644 index bfa9565a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/vector_c.hpp deleted file mode 100644 index 0f1560d7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/add.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/add.hpp deleted file mode 100644 index 53e646ef6..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/add.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include - -#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) -# include - -# define BOOST_MPL_PP_ADD(i,j) \ - BOOST_MPL_PP_ADD_DELAY(i,j) \ - /**/ - -# define BOOST_MPL_PP_ADD_DELAY(i,j) \ - BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_ADD_##j) \ - /**/ -#else -# define BOOST_MPL_PP_ADD(i,j) \ - BOOST_MPL_PP_ADD_DELAY(i,j) \ - /**/ - -# define BOOST_MPL_PP_ADD_DELAY(i,j) \ - BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_ADD_##j \ - /**/ -#endif - -# define BOOST_MPL_PP_ADD_0 (0,1,2,3,4,5,6,7,8,9,10) -# define BOOST_MPL_PP_ADD_1 (1,2,3,4,5,6,7,8,9,10,0) -# define BOOST_MPL_PP_ADD_2 (2,3,4,5,6,7,8,9,10,0,0) -# define BOOST_MPL_PP_ADD_3 (3,4,5,6,7,8,9,10,0,0,0) -# define BOOST_MPL_PP_ADD_4 (4,5,6,7,8,9,10,0,0,0,0) -# define BOOST_MPL_PP_ADD_5 (5,6,7,8,9,10,0,0,0,0,0) -# define BOOST_MPL_PP_ADD_6 (6,7,8,9,10,0,0,0,0,0,0) -# define BOOST_MPL_PP_ADD_7 (7,8,9,10,0,0,0,0,0,0,0) -# define BOOST_MPL_PP_ADD_8 (8,9,10,0,0,0,0,0,0,0,0) -# define BOOST_MPL_PP_ADD_9 (9,10,0,0,0,0,0,0,0,0,0) -# define BOOST_MPL_PP_ADD_10 (10,0,0,0,0,0,0,0,0,0,0) - -#else - -# include - -# define BOOST_MPL_PP_ADD(i,j) \ - BOOST_PP_ADD(i,j) \ - /**/ - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp deleted file mode 100644 index cab3989d1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#include -#include -#include -#include - -// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value -// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value -// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include -# include - -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \ - BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \ - i \ - , BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \ - , param \ - , value_func \ - ) \ - /**/ - -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i, n, param, value_func) \ - BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,param,value_func) \ - /**/ - -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i, n, param, value_func) \ - BOOST_PP_COMMA_IF(BOOST_PP_AND(i,n)) \ - BOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,param,value_func) \ - /**/ - -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_0(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1 v(),p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v()) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6,p7) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9 v(),p1,p2,p3,p4,p5,p6,p7,p8) -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9) - -#else - -# include -# include -# include -# include -# include -# include - -# define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \ - , BOOST_PP_CAT( \ - BOOST_PP_TUPLE_ELEM(3, 1, op) \ - , BOOST_PP_ADD_D(1, i, BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, op))) \ - ) BOOST_PP_TUPLE_ELEM(3, 2, op)() \ - /**/ - -# define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \ - BOOST_PP_REPEAT( \ - BOOST_PP_SUB_D(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \ - , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \ - , (i, param, value_func) \ - ) \ - /**/ - - -#endif // BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES - -#define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \ - BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \ - /**/ - -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \ - BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \ - /**/ -#else -# define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \ - BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_EMPTY) \ - /**/ -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/default_params.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/default_params.hpp deleted file mode 100644 index c3548c6c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/default_params.hpp +++ /dev/null @@ -1,67 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -// BOOST_MPL_PP_DEFAULT_PARAMS(0,T,int): -// BOOST_MPL_PP_DEFAULT_PARAMS(1,T,int): T1 = int -// BOOST_MPL_PP_DEFAULT_PARAMS(2,T,int): T1 = int, T2 = int -// BOOST_MPL_PP_DEFAULT_PARAMS(n,T,int): T1 = int, T2 = int, .., Tn = int - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include - -# define BOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \ - BOOST_PP_CAT(BOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,v) \ - /**/ - -# define BOOST_MPL_PP_DEFAULT_PARAMS_0(p,v) -# define BOOST_MPL_PP_DEFAULT_PARAMS_1(p,v) p##1=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_2(p,v) p##1=v,p##2=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_3(p,v) p##1=v,p##2=v,p##3=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_4(p,v) p##1=v,p##2=v,p##3=v,p##4=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_5(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_6(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_7(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_8(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v -# define BOOST_MPL_PP_DEFAULT_PARAMS_9(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v,p##9=v - -#else - -# include -# include -# include -# include -# include - -# define BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC(unused, i, pv) \ - BOOST_PP_COMMA_IF(i) \ - BOOST_PP_CAT( BOOST_PP_TUPLE_ELEM(2,0,pv), BOOST_PP_INC(i) ) \ - = BOOST_PP_TUPLE_ELEM(2,1,pv) \ - /**/ - -# define BOOST_MPL_PP_DEFAULT_PARAMS(n, param, value) \ - BOOST_PP_REPEAT( \ - n \ - , BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \ - , (param,value) \ - ) \ - /**/ - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/enum.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/enum.hpp deleted file mode 100644 index 64c5e6a8f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/enum.hpp +++ /dev/null @@ -1,62 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -// BOOST_MPL_PP_ENUM(0,int): -// BOOST_MPL_PP_ENUM(1,int): int -// BOOST_MPL_PP_ENUM(2,int): int, int -// BOOST_MPL_PP_ENUM(n,int): int, int, .., int - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include - -# define BOOST_MPL_PP_ENUM(n, param) \ - BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \ - /**/ - -# define BOOST_MPL_PP_ENUM_0(p) -# define BOOST_MPL_PP_ENUM_1(p) p -# define BOOST_MPL_PP_ENUM_2(p) p,p -# define BOOST_MPL_PP_ENUM_3(p) p,p,p -# define BOOST_MPL_PP_ENUM_4(p) p,p,p,p -# define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p -# define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p -# define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p -# define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p -# define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p - -#else - -# include -# include - -# define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \ - BOOST_PP_COMMA_IF(i) param \ - /**/ - -# define BOOST_MPL_PP_ENUM(n, param) \ - BOOST_PP_REPEAT( \ - n \ - , BOOST_MPL_PP_AUX_ENUM_FUNC \ - , param \ - ) \ - /**/ - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/ext_params.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/ext_params.hpp deleted file mode 100644 index f5e6e502c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/ext_params.hpp +++ /dev/null @@ -1,78 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -// BOOST_MPL_PP_EXT_PARAMS(2,2,T): -// BOOST_MPL_PP_EXT_PARAMS(2,3,T): T2 -// BOOST_MPL_PP_EXT_PARAMS(2,4,T): T2, T3 -// BOOST_MPL_PP_EXT_PARAMS(2,n,T): T2, T3, .., Tn-1 - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include -# include - -# define BOOST_MPL_PP_EXT_PARAMS(i,j,p) \ - BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,BOOST_MPL_PP_SUB(j,i),p) \ - /**/ - -# define BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \ - BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \ - /**/ - -# define BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \ - BOOST_MPL_PP_EXT_PARAMS_##i(n,p) \ - /**/ - -# define BOOST_MPL_PP_EXT_PARAMS_1(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9) -# define BOOST_MPL_PP_EXT_PARAMS_2(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1) -# define BOOST_MPL_PP_EXT_PARAMS_3(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1,p2) -# define BOOST_MPL_PP_EXT_PARAMS_4(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4,p##5,p##6,p##7,p##8,p##9,p1,p2,p3) -# define BOOST_MPL_PP_EXT_PARAMS_5(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5,p##6,p##7,p##8,p##9,p1,p2,p3,p4) -# define BOOST_MPL_PP_EXT_PARAMS_6(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6,p##7,p##8,p##9,p1,p2,p3,p4,p5) -# define BOOST_MPL_PP_EXT_PARAMS_7(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7,p##8,p##9,p1,p2,p3,p4,p5,p6) -# define BOOST_MPL_PP_EXT_PARAMS_8(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8,p##9,p1,p2,p3,p4,p5,p6,p7) -# define BOOST_MPL_PP_EXT_PARAMS_9(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9,p1,p2,p3,p4,p5,p6,p7,p8) - -#else - -# include -# include -# include -# include -# include -# include - -# define BOOST_MPL_PP_AUX_EXT_PARAM_FUNC(unused, i, op) \ - BOOST_PP_COMMA_IF(i) \ - BOOST_PP_CAT( \ - BOOST_PP_TUPLE_ELEM(2,1,op) \ - , BOOST_PP_ADD_D(1, i, BOOST_PP_TUPLE_ELEM(2,0,op)) \ - ) \ - /**/ - -# define BOOST_MPL_PP_EXT_PARAMS(i, j, param) \ - BOOST_PP_REPEAT( \ - BOOST_PP_SUB_D(1,j,i) \ - , BOOST_MPL_PP_AUX_EXT_PARAM_FUNC \ - , (i,param) \ - ) \ - /**/ - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/filter_params.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/filter_params.hpp deleted file mode 100644 index 7c0df4f7d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/filter_params.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) -#define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1 -#define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2 -#define BOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3 -#define BOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4 -#define BOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5 -#define BOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6 -#define BOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7 -#define BOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8 -#define BOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9 - -#endif // BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/is_seq.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/is_seq.hpp deleted file mode 100644 index cb6dcb98c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/is_seq.hpp +++ /dev/null @@ -1,54 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_IS_SEQ_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_IS_SEQ_HPP_INCLUDED - -// Copyright Paul Mensonides 2003 -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -// returns 1 if 'seq' is a PP-sequence, 0 otherwise: -// -// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_IS_SEQ( int ) ) ) -// BOOST_PP_ASSERT( BOOST_MPL_PP_IS_SEQ( (int) ) ) -// BOOST_PP_ASSERT( BOOST_MPL_PP_IS_SEQ( (1)(2) ) ) - -#if (BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()) || defined(_MSC_VER) && defined(__INTEL_COMPILER) && __INTEL_COMPILER == 1010 - -# define BOOST_MPL_PP_IS_SEQ(seq) BOOST_PP_DEC( BOOST_PP_SEQ_SIZE( BOOST_MPL_PP_IS_SEQ_(seq) ) ) -# define BOOST_MPL_PP_IS_SEQ_(seq) BOOST_MPL_PP_IS_SEQ_SEQ_( BOOST_MPL_PP_IS_SEQ_SPLIT_ seq ) -# define BOOST_MPL_PP_IS_SEQ_SEQ_(x) (x) -# define BOOST_MPL_PP_IS_SEQ_SPLIT_(unused) unused)((unused) - -#else - -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_MPL_PP_IS_SEQ(seq) BOOST_MPL_PP_IS_SEQ_MWCC_((seq)) -# define BOOST_MPL_PP_IS_SEQ_MWCC_(args) BOOST_MPL_PP_IS_SEQ_ ## args -# else -# define BOOST_MPL_PP_IS_SEQ(seq) BOOST_MPL_PP_IS_SEQ_(seq) -# endif - -# define BOOST_MPL_PP_IS_SEQ_(seq) BOOST_PP_CAT(BOOST_MPL_PP_IS_SEQ_, BOOST_MPL_PP_IS_SEQ_0 seq BOOST_PP_RPAREN()) -# define BOOST_MPL_PP_IS_SEQ_0(x) BOOST_MPL_PP_IS_SEQ_1(x -# define BOOST_MPL_PP_IS_SEQ_ALWAYS_0(unused) 0 -# define BOOST_MPL_PP_IS_SEQ_BOOST_MPL_PP_IS_SEQ_0 BOOST_MPL_PP_IS_SEQ_ALWAYS_0( -# define BOOST_MPL_PP_IS_SEQ_BOOST_MPL_PP_IS_SEQ_1(unused) 1 - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_IS_SEQ_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/params.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/params.hpp deleted file mode 100644 index acad32190..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/params.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -// BOOST_MPL_PP_PARAMS(0,T): -// BOOST_MPL_PP_PARAMS(1,T): T1 -// BOOST_MPL_PP_PARAMS(2,T): T1, T2 -// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include - -# define BOOST_MPL_PP_PARAMS(n,p) \ - BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \ - /**/ - -# define BOOST_MPL_PP_PARAMS_0(p) -# define BOOST_MPL_PP_PARAMS_1(p) p##1 -# define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2 -# define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3 -# define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4 -# define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5 -# define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6 -# define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7 -# define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8 -# define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9 - -#else - -# include -# include -# include -# include - -# define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \ - BOOST_PP_COMMA_IF(i) \ - BOOST_PP_CAT(param, BOOST_PP_INC(i)) \ - /**/ - -# define BOOST_MPL_PP_PARAMS(n, param) \ - BOOST_PP_REPEAT( \ - n \ - , BOOST_MPL_PP_AUX_PARAM_FUNC \ - , param \ - ) \ - /**/ - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp deleted file mode 100644 index de5535cea..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -#define BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ -BOOST_MPL_PP_PARAMS(n, param) \ -BOOST_PP_COMMA_IF(BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n)) \ -BOOST_MPL_PP_ENUM( \ - BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n) \ - , def \ - ) \ -/**/ - -#endif // BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/range.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/range.hpp deleted file mode 100644 index d66eeb559..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/range.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#define BOOST_MPL_PP_RANGE_ITEM(z,n,_) (n) - -#define BOOST_MPL_PP_RANGE(first, length) \ - BOOST_PP_SEQ_SUBSEQ( \ - BOOST_PP_REPEAT(BOOST_PP_ADD(first,length), BOOST_MPL_PP_RANGE_ITEM, _), \ - first, length \ - ) \ -/**/ - -#endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/repeat.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/repeat.hpp deleted file mode 100644 index 051136766..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/repeat.hpp +++ /dev/null @@ -1,51 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include - -# define BOOST_MPL_PP_REPEAT(n,f,param) \ - BOOST_PP_CAT(BOOST_MPL_PP_REPEAT_,n)(f,param) \ - /**/ - -# define BOOST_MPL_PP_REPEAT_0(f,p) -# define BOOST_MPL_PP_REPEAT_1(f,p) f(0,0,p) -# define BOOST_MPL_PP_REPEAT_2(f,p) f(0,0,p) f(0,1,p) -# define BOOST_MPL_PP_REPEAT_3(f,p) f(0,0,p) f(0,1,p) f(0,2,p) -# define BOOST_MPL_PP_REPEAT_4(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) -# define BOOST_MPL_PP_REPEAT_5(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) -# define BOOST_MPL_PP_REPEAT_6(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) -# define BOOST_MPL_PP_REPEAT_7(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) -# define BOOST_MPL_PP_REPEAT_8(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) -# define BOOST_MPL_PP_REPEAT_9(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p) -# define BOOST_MPL_PP_REPEAT_10(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p) f(0,9,p) - -#else - -# include - -# define BOOST_MPL_PP_REPEAT(n,f,param) \ - BOOST_PP_REPEAT(n,f,param) \ - /**/ - -#endif - -#define BOOST_MPL_PP_REPEAT_IDENTITY_FUNC(unused1, unused2, x) x - -#endif // BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/sub.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/sub.hpp deleted file mode 100644 index c794c749f..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/sub.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) - -# include - -#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) -# include - -# define BOOST_MPL_PP_SUB(i,j) \ - BOOST_MPL_PP_SUB_DELAY(i,j) \ - /**/ - -# define BOOST_MPL_PP_SUB_DELAY(i,j) \ - BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_SUB_##j) \ - /**/ -#else -# define BOOST_MPL_PP_SUB(i,j) \ - BOOST_MPL_PP_SUB_DELAY(i,j) \ - /**/ - -# define BOOST_MPL_PP_SUB_DELAY(i,j) \ - BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_SUB_##j \ - /**/ -#endif - -# define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10) -# define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9) -# define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8) -# define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7) -# define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6) -# define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5) -# define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4) -# define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0,1,2,3) -# define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2) -# define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1) -# define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0) - -#else - -# include - -# define BOOST_MPL_PP_SUB(i,j) \ - BOOST_PP_SUB(i,j) \ - /**/ - -#endif - -#endif // BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/token_equal.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/token_equal.hpp deleted file mode 100644 index ffdb20f9e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/token_equal.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_TOKEN_EQUAL_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_TOKEN_EQUAL_HPP_INCLUDED - -// Copyright Paul Mensonides 2003 -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#include -#include -#include -#include -#include - -// compares tokens 'a' and 'b' for equality: -// -// #define BOOST_MPL_PP_TOKEN_EQUAL_apple(x) x -// #define BOOST_MPL_PP_TOKEN_EQUAL_orange(x) x -// -// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_TOKEN_EQUAL(apple, abc) ) ) -// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_TOKEN_EQUAL(abc, apple) ) ) -// BOOST_PP_ASSERT( BOOST_PP_NOT( BOOST_MPL_PP_TOKEN_EQUAL(apple, orange) ) ) -// BOOST_PP_ASSERT( BOOST_MPL_PP_TOKEN_EQUAL(apple, apple) ) -// BOOST_PP_ASSERT( BOOST_MPL_PP_TOKEN_EQUAL(orange, orange) ) - -#define BOOST_MPL_PP_TOKEN_EQUAL(a, b) \ - BOOST_PP_IIF( \ - BOOST_PP_BITAND( \ - BOOST_MPL_PP_IS_SEQ( BOOST_PP_CAT(BOOST_MPL_PP_TOKEN_EQUAL_, a)((unused)) ) \ - , BOOST_MPL_PP_IS_SEQ( BOOST_PP_CAT(BOOST_MPL_PP_TOKEN_EQUAL_, b)((unused)) ) \ - ) \ - , BOOST_MPL_PP_TOKEN_EQUAL_I \ - , 0 BOOST_PP_TUPLE_EAT(2) \ - )(a, b) \ -/**/ - -#define BOOST_MPL_PP_TOKEN_EQUAL_I(a, b) \ - BOOST_PP_COMPL(BOOST_MPL_PP_IS_SEQ( \ - BOOST_MPL_PP_TOKEN_EQUAL_ ## a( \ - BOOST_MPL_PP_TOKEN_EQUAL_ ## b \ - )((unused)) \ - )) \ -/**/ - -#endif // BOOST_MPL_AUX_PREPROCESSOR_TOKEN_EQUAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/tuple.hpp b/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/tuple.hpp deleted file mode 100644 index 755bbc58e..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/preprocessor/tuple.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED -#define BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0 -#define BOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1 -#define BOOST_MPL_PP_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2 -#define BOOST_MPL_PP_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3 -#define BOOST_MPL_PP_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4 -#define BOOST_MPL_PP_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5 -#define BOOST_MPL_PP_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6 -#define BOOST_MPL_PP_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7 -#define BOOST_MPL_PP_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8 -#define BOOST_MPL_PP_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9 -#define BOOST_MPL_PP_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10 - -#endif // BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/ptr_to_ref.hpp b/lib/3rdParty/boost/boost/mpl/aux_/ptr_to_ref.hpp deleted file mode 100644 index 8517b3029..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/ptr_to_ref.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED -#define BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || ( BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \ - && !(defined(__STD_STRICT_ANSI) \ - || defined(__STD_STRICT_ANSI_ERRORS)) ) - -# define BOOST_MPL_AUX_PTR_TO_REF(X) \ - *BOOST_MPL_AUX_STATIC_CAST(X*, 0) \ -/**/ - -#else - -# define BOOST_MPL_AUX_PTR_TO_REF(X) \ - aux::ptr_to_ref(BOOST_MPL_AUX_STATIC_CAST(X*, 0)) \ -/**/ - -#endif - - -namespace boost { namespace mpl { namespace aux { - -template< typename T > static T const& ptr_to_ref(T*); - -}}} - -#endif // BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/push_back_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/push_back_impl.hpp deleted file mode 100644 index 27e7a6044..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/push_back_impl.hpp +++ /dev/null @@ -1,70 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -struct has_push_back_arg {}; - -// agurt 05/feb/04: no default implementation; the stub definition is needed -// to enable the default 'has_push_back' implementation below -template< typename Tag > -struct push_back_impl -{ - template< typename Sequence, typename T > struct apply - { - // should be instantiated only in the context of 'has_push_back_impl'; - // if you've got an assert here, you are requesting a 'push_back' - // specialization that doesn't exist. - BOOST_MPL_ASSERT_MSG( - ( boost::is_same< T, has_push_back_arg >::value ) - , REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST - , ( Sequence ) - ); - }; -}; - -template< typename Tag > -struct has_push_back_impl -{ - template< typename Seq > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : aux::has_type< push_back< Seq, has_push_back_arg > > - { -#else - { - typedef aux::has_type< push_back< Seq, has_push_back_arg > > type; - BOOST_STATIC_CONSTANT(bool, value = - (aux::has_type< push_back< Seq, has_push_back_arg > >::value) - ); -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_back_impl) -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_back_impl) - -}} - -#endif // BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/push_front_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/push_front_impl.hpp deleted file mode 100644 index 5b83ee764..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/push_front_impl.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -struct has_push_front_arg {}; - -// agurt 05/feb/04: no default implementation; the stub definition is needed -// to enable the default 'has_push_front' implementation below - -template< typename Tag > -struct push_front_impl -{ - template< typename Sequence, typename T > struct apply - { - // should be instantiated only in the context of 'has_push_front_impl'; - // if you've got an assert here, you are requesting a 'push_front' - // specialization that doesn't exist. - BOOST_MPL_ASSERT_MSG( - ( boost::is_same< T, has_push_front_arg >::value ) - , REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST - , ( Sequence ) - ); - }; -}; - -template< typename Tag > -struct has_push_front_impl -{ - template< typename Seq > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : aux::has_type< push_front< Seq, has_push_front_arg > > - { -#else - { - typedef aux::has_type< push_front< Seq, has_push_front_arg > > type; - BOOST_STATIC_CONSTANT(bool, value = - (aux::has_type< push_front< Seq, has_push_front_arg > >::value) - ); -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl) -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl) - -}} - -#endif // BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/O1_size.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/O1_size.hpp deleted file mode 100644 index 9b393e849..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/O1_size.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct O1_size_impl< aux::half_open_range_tag > - : size_impl< aux::half_open_range_tag > -{ -}; - -}} - -#endif // BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/back.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/back.hpp deleted file mode 100644 index 549010876..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/back.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct back_impl< aux::half_open_range_tag > -{ - template< typename Range > struct apply - { - typedef typename prior< typename Range::finish >::type type; - }; -}; - -}} - -#endif // BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/empty.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/empty.hpp deleted file mode 100644 index 574bdf2a9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/empty.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct empty_impl< aux::half_open_range_tag > -{ - template< typename Range > struct apply - : equal_to< - typename Range::start - , typename Range::finish - > - { - }; -}; - -}} - -#endif // BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/front.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/front.hpp deleted file mode 100644 index 2964ab505..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/front.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct front_impl< aux::half_open_range_tag > -{ - template< typename Range > struct apply - { - typedef typename Range::start type; - }; -}; - -}} - -#endif // BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/iterator.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/iterator.hpp deleted file mode 100644 index 2c5290528..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/iterator.hpp +++ /dev/null @@ -1,106 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// theoretically will work on any discrete numeric type -template< typename N > struct r_iter -{ - typedef aux::r_iter_tag tag; - typedef random_access_iterator_tag category; - typedef N type; - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - typedef r_iter< typename mpl::next::type > next; - typedef r_iter< typename mpl::prior::type > prior; -#endif -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename N - > -struct next< r_iter > -{ - typedef r_iter< typename mpl::next::type > type; -}; - -template< - typename N - > -struct prior< r_iter > -{ - typedef r_iter< typename mpl::prior::type > type; -}; - -#endif - - -template<> struct advance_impl -{ - template< typename Iter, typename Dist > struct apply - { - typedef typename deref::type n_; -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - typedef typename plus_impl - ::template apply::type m_; -#else - typedef typename plus::type m_; -#endif - // agurt, 10/nov/04: to be generic, the code have to do something along - // the lines below... - // - // typedef typename apply_wrap1< - // numeric_cast< typename m_::tag, typename n_::tag > - // , m_ - // >::type result_; - // - // ... meanwhile: - - typedef integral_c< - typename aux::value_type_wknd::type - , BOOST_MPL_AUX_VALUE_WKND(m_)::value - > result_; - - typedef r_iter type; - }; -}; - -template<> struct distance_impl -{ - template< typename Iter1, typename Iter2 > struct apply - : minus< - typename Iter2::type - , typename Iter1::type - > - { - }; -}; - -}} - -#endif // BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/size.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/size.hpp deleted file mode 100644 index 761a97cc1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/size.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct size_impl< aux::half_open_range_tag > -{ - template< typename Range > struct apply - : minus< - typename Range::finish - , typename Range::start - > - { - }; -}; - -}} - -#endif // BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/range_c/tag.hpp b/lib/3rdParty/boost/boost/mpl/aux_/range_c/tag.hpp deleted file mode 100644 index 7f8fdde0a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/range_c/tag.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED -#define BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { namespace aux { - -struct half_open_range_tag; -struct r_iter_tag; - -}}} - -#endif // BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/reverse_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/reverse_fold_impl.hpp deleted file mode 100644 index a27a35fa1..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/reverse_fold_impl.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) -# include -# include -# endif -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER reverse_fold_impl.hpp -# include - -#else - -# define AUX778076_FOLD_IMPL_OP(iter) typename deref::type -# define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_fold -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp b/lib/3rdParty/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp deleted file mode 100644 index 0f8001066..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/reverse_fold_impl_body.hpp +++ /dev/null @@ -1,412 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#if !defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -# include -# include -# include -# include - -# include -# include -# include -# include -# include - -// local macros, #undef-ined at the end of the header - -# define AUX778076_ITER_FOLD_FORWARD_STEP(unused, n_, unused2) \ - typedef typename apply2< \ - ForwardOp \ - , BOOST_PP_CAT(fwd_state,n_) \ - , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,n_)) \ - >::type BOOST_PP_CAT(fwd_state,BOOST_PP_INC(n_)); \ - typedef typename mpl::next::type \ - BOOST_PP_CAT(iter,BOOST_PP_INC(n_)); \ - /**/ - -# define AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC(n_) \ - typedef typename apply2< \ - BackwardOp \ - , BOOST_PP_CAT(bkwd_state,n_) \ - , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,BOOST_PP_DEC(n_))) \ - >::type BOOST_PP_CAT(bkwd_state,BOOST_PP_DEC(n_)); \ - /**/ - -# define AUX778076_ITER_FOLD_BACKWARD_STEP(unused, n_, j) \ - AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC( \ - BOOST_PP_SUB_D(1,j,n_) \ - ) \ - /**/ - -# define AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(n_) \ - typedef typename nested_chunk::state BOOST_PP_CAT(bkwd_state,n_); - /**/ - -# define AUX778076_FOLD_IMPL_NAME \ - BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \ - /**/ - -# define AUX778076_FOLD_CHUNK_NAME \ - BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \ - /**/ - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration -template< - BOOST_MPL_AUX_NTTP_DECL(long, N) - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< - BOOST_MPL_AUX_NTTP_DECL(long, N) - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME -{ - typedef First iter0; - typedef State fwd_state0; - - BOOST_MPL_PP_REPEAT( - BOOST_MPL_LIMIT_UNROLLING - , AUX778076_ITER_FOLD_FORWARD_STEP - , unused - ) - - typedef AUX778076_FOLD_IMPL_NAME< - ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING ) - , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING) - , Last - , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING) - , BackwardOp - , ForwardOp - > nested_chunk; - - AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING) - - BOOST_MPL_PP_REPEAT( - BOOST_MPL_LIMIT_UNROLLING - , AUX778076_ITER_FOLD_BACKWARD_STEP - , BOOST_MPL_LIMIT_UNROLLING - ) - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -// fallback implementation for sequences of unknown size -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,BackwardOp,ForwardOp> -{ - typedef AUX778076_FOLD_IMPL_NAME< - -1 - , typename mpl::next::type - , Last - , typename apply2::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , AUX778076_FOLD_IMPL_OP(First) - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,BackwardOp,ForwardOp> -{ - typedef State state; - typedef Last iterator; -}; - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > -struct AUX778076_FOLD_CHUNK_NAME; - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > -struct AUX778076_FOLD_CHUNK_NAME -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - - BOOST_MPL_PP_REPEAT( - BOOST_MPL_LIMIT_UNROLLING - , AUX778076_ITER_FOLD_FORWARD_STEP - , unused - ) - - typedef AUX778076_FOLD_IMPL_NAME< - ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING ) - , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING) - , Last - , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING) - , BackwardOp - , ForwardOp - > nested_chunk; - - AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING) - - BOOST_MPL_PP_REPEAT( - BOOST_MPL_LIMIT_UNROLLING - , AUX778076_ITER_FOLD_BACKWARD_STEP - , BOOST_MPL_LIMIT_UNROLLING - ) - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -// fallback implementation for sequences of unknown size -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step); - -template< - typename Last - , typename State - > -struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step) -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct AUX778076_FOLD_CHUNK_NAME<-1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same::type - , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step) - , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step) - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct result_ - { - typedef int state; - typedef int iterator; - }; -#endif -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step) -{ - typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_< - typename mpl::next::type - , Last - , typename apply2::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , AUX778076_FOLD_IMPL_OP(First) - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - BOOST_MPL_AUX_NTTP_DECL(long, N) - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME - : AUX778076_FOLD_CHUNK_NAME - ::template result_ -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}}} - -# undef AUX778076_FIRST_BACKWARD_STATE_TYPEDEF -# undef AUX778076_ITER_FOLD_BACKWARD_STEP -# undef AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC -# undef AUX778076_ITER_FOLD_FORWARD_STEP - -#undef AUX778076_FOLD_IMPL_OP -#undef AUX778076_FOLD_IMPL_NAME_PREFIX - -///// iteration - -#else - -# define n_ BOOST_PP_FRAME_ITERATION(1) - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct AUX778076_FOLD_IMPL_NAME -{ - typedef First iter0; - typedef State fwd_state0; - - BOOST_MPL_PP_REPEAT( - n_ - , AUX778076_ITER_FOLD_FORWARD_STEP - , unused - ) - - typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_); - - BOOST_MPL_PP_REPEAT( - n_ - , AUX778076_ITER_FOLD_BACKWARD_STEP - , n_ - ) - - typedef bkwd_state0 state; - typedef BOOST_PP_CAT(iter,n_) iterator; -}; - -#else - -template<> struct AUX778076_FOLD_CHUNK_NAME -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - - BOOST_MPL_PP_REPEAT( - n_ - , AUX778076_ITER_FOLD_FORWARD_STEP - , unused - ) - - typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_); - - BOOST_MPL_PP_REPEAT( - n_ - , AUX778076_ITER_FOLD_BACKWARD_STEP - , n_ - ) - - typedef bkwd_state0 state; - typedef BOOST_PP_CAT(iter,n_) iterator; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct result_ - { - typedef int state; - typedef int iterator; - }; -#endif -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -# undef n_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/reverse_iter_fold_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/reverse_iter_fold_impl.hpp deleted file mode 100644 index 83182a2e9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) -# include -# include -# endif -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER reverse_iter_fold_impl.hpp -# include - -#else - -# define AUX778076_FOLD_IMPL_OP(iter) iter -# define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_iter_fold -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/sequence_wrapper.hpp b/lib/3rdParty/boost/boost/mpl/aux_/sequence_wrapper.hpp deleted file mode 100644 index 3f5e55303..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/sequence_wrapper.hpp +++ /dev/null @@ -1,292 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -# include -# include -# include - -# include -# include -# include -# include -# include -# include -# include -# include - -#if defined(BOOST_MPL_PREPROCESSING_MODE) -# undef LONG_MAX -#endif - -namespace boost { namespace mpl { - -#if !defined(AUX778076_SEQUENCE_BASE_NAME) -# define AUX778076_SEQUENCE_BASE_NAME AUX778076_SEQUENCE_NAME -#endif - -#if !defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER) - -# define AUX778076_SEQUENCE_PARAM_NAME T -# define AUX778076_SEQUENCE_TEMPLATE_PARAM typename T -# define AUX778076_SEQUENCE_DEFAULT na - -# define AUX778076_SEQUENCE_NAME_N(n) \ - BOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \ - /**/ - -# define AUX778076_SEQUENCE_PARAMS() \ - BOOST_PP_ENUM_PARAMS( \ - AUX778076_SEQUENCE_LIMIT \ - , AUX778076_SEQUENCE_TEMPLATE_PARAM \ - ) \ - /**/ - -# define AUX778076_SEQUENCE_ARGS() \ - BOOST_PP_ENUM_PARAMS( \ - AUX778076_SEQUENCE_LIMIT \ - , T \ - ) \ - /**/ - -# define AUX778076_SEQUENCE_DEFAULT_PARAMS() \ - BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \ - AUX778076_SEQUENCE_LIMIT \ - , AUX778076_SEQUENCE_TEMPLATE_PARAM \ - , AUX778076_SEQUENCE_DEFAULT \ - ) \ - /**/ - -# define AUX778076_SEQUENCE_N_PARAMS(n) \ - BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \ - /**/ - -# define AUX778076_SEQUENCE_N_ARGS(n) \ - BOOST_PP_ENUM_PARAMS(n, T) \ - /**/ - -# define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \ - BOOST_PP_ENUM_PARAMS(n, T) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_PP_ENUM( \ - BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \ - , BOOST_PP_TUPLE_ELEM_3_2 \ - , AUX778076_SEQUENCE_DEFAULT \ - ) \ - /**/ - -#else // AUX778076_SEQUENCE_INTEGRAL_WRAPPER - -# define AUX778076_SEQUENCE_PARAM_NAME C -# define AUX778076_SEQUENCE_TEMPLATE_PARAM BOOST_MPL_AUX_NTTP_DECL(long, C) -# define AUX778076_SEQUENCE_DEFAULT LONG_MAX - -# define AUX778076_SEQUENCE_PARAMS() \ - typename T, BOOST_PP_ENUM_PARAMS( \ - AUX778076_SEQUENCE_LIMIT \ - , AUX778076_SEQUENCE_TEMPLATE_PARAM \ - ) \ - /**/ - -# define AUX778076_SEQUENCE_ARGS() \ - T, BOOST_PP_ENUM_PARAMS( \ - AUX778076_SEQUENCE_LIMIT \ - , C \ - ) \ - /**/ - -# define AUX778076_SEQUENCE_DEFAULT_PARAMS() \ - typename T, \ - BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \ - AUX778076_SEQUENCE_LIMIT \ - , AUX778076_SEQUENCE_TEMPLATE_PARAM \ - , AUX778076_SEQUENCE_DEFAULT \ - ) \ - /**/ - -# define AUX778076_SEQUENCE_N_PARAMS(n) \ - typename T BOOST_PP_COMMA_IF(n) \ - BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \ - /**/ - -# if !defined(AUX778076_SEQUENCE_CONVERT_CN_TO) -# define AUX778076_SEQUENCE_CONVERT_CN_TO(z,n,TARGET) BOOST_PP_CAT(C,n) -# endif - -# define AUX778076_SEQUENCE_N_ARGS(n) \ - T BOOST_PP_COMMA_IF(n) \ - BOOST_PP_ENUM(n,AUX778076_SEQUENCE_CONVERT_CN_TO,T) \ - /**/ - -# define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \ - T, BOOST_PP_ENUM_PARAMS(n, C) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_PP_ENUM( \ - BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \ - , BOOST_PP_TUPLE_ELEM_3_2 \ - , AUX778076_SEQUENCE_DEFAULT \ - ) \ - /**/ - -#endif // AUX778076_SEQUENCE_INTEGRAL_WRAPPER - - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -// forward declaration -template< - AUX778076_SEQUENCE_DEFAULT_PARAMS() - > -struct AUX778076_SEQUENCE_NAME; -#else -namespace aux { -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser); -} -#endif - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, AUX778076_SEQUENCE_LIMIT, )) -#include BOOST_PP_ITERATE() - -// real C++ version is already taken care of -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -namespace aux { -// ???_count_args -#define AUX778076_COUNT_ARGS_PREFIX AUX778076_SEQUENCE_NAME -#define AUX778076_COUNT_ARGS_DEFAULT AUX778076_SEQUENCE_DEFAULT -#define AUX778076_COUNT_ARGS_PARAM_NAME AUX778076_SEQUENCE_PARAM_NAME -#define AUX778076_COUNT_ARGS_TEMPLATE_PARAM AUX778076_SEQUENCE_TEMPLATE_PARAM -#define AUX778076_COUNT_ARGS_ARITY AUX778076_SEQUENCE_LIMIT -#define AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES -#include - -template< - AUX778076_SEQUENCE_PARAMS() - > -struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl) -{ - typedef aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_count_args)< - BOOST_PP_ENUM_PARAMS(AUX778076_SEQUENCE_LIMIT, AUX778076_SEQUENCE_PARAM_NAME) - > arg_num_; - - typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)< arg_num_::value > - ::template result_< AUX778076_SEQUENCE_ARGS() >::type type; -}; - -} // namespace aux - -template< - AUX778076_SEQUENCE_DEFAULT_PARAMS() - > -struct AUX778076_SEQUENCE_NAME - : aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)< - AUX778076_SEQUENCE_ARGS() - >::type -{ - typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)< - AUX778076_SEQUENCE_ARGS() - >::type type; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -# undef AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS -# undef AUX778076_SEQUENCE_N_ARGS -# undef AUX778076_SEQUENCE_CONVERT_CN_TO -# undef AUX778076_SEQUENCE_N_PARAMS -# undef AUX778076_SEQUENCE_DEFAULT_PARAMS -# undef AUX778076_SEQUENCE_ARGS -# undef AUX778076_SEQUENCE_PARAMS -# undef AUX778076_SEQUENCE_NAME_N -# undef AUX778076_SEQUENCE_DEFAULT -# undef AUX778076_SEQUENCE_TEMPLATE_PARAM -# undef AUX778076_SEQUENCE_PARAM_NAME -# undef AUX778076_SEQUENCE_LIMIT -# undef AUX778076_SEQUENCE_BASE_NAME -# undef AUX778076_SEQUENCE_NAME -# undef AUX778076_SEQUENCE_INTEGRAL_WRAPPER - -}} - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -#if i_ == AUX778076_SEQUENCE_LIMIT - -/// primary template (not a specialization!) -template< - AUX778076_SEQUENCE_N_PARAMS(i_) - > -struct AUX778076_SEQUENCE_NAME - : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) > -{ - typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type; -}; - -#else - -template< - AUX778076_SEQUENCE_N_PARAMS(i_) - > -struct AUX778076_SEQUENCE_NAME< AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(i_) > - : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) > -{ -#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER) - typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type; -#else - typedef AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type; -#endif -}; - -#endif // i_ == AUX778076_SEQUENCE_LIMIT - -# else - -namespace aux { - -template<> -struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser) -{ - template< - AUX778076_SEQUENCE_PARAMS() - > - struct result_ - { -#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER) - typedef typename AUX778076_SEQUENCE_NAME_N(i_)< - AUX778076_SEQUENCE_N_ARGS(i_) - >::type type; -#else - typedef AUX778076_SEQUENCE_NAME_N(i_)< - AUX778076_SEQUENCE_N_ARGS(i_) - >::type type; -#endif - }; -}; - -} // namespace aux - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/shift_op.hpp b/lib/3rdParty/boost/boost/mpl/aux_/shift_op.hpp deleted file mode 100644 index b9840bf5c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/shift_op.hpp +++ /dev/null @@ -1,87 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#if !defined(AUX778076_OP_PREFIX) -# define AUX778076_OP_PREFIX AUX778076_OP_NAME -#endif - -#define AUX778076_OP_ARITY 2 - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp -# include - -#else - -# include -# include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd) -{ - BOOST_STATIC_CONSTANT(T, value = (n AUX778076_OP_TOKEN s)); - typedef integral_c type; -}; -} -#endif - -template<> -struct AUX778076_OP_IMPL_NAME -{ - template< typename N, typename S > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > -#else - : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type -#endif - { - }; -}; - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#undef AUX778076_OP_TAG_NAME -#undef AUX778076_OP_IMPL_NAME -#undef AUX778076_OP_ARITY -#undef AUX778076_OP_PREFIX -#undef AUX778076_OP_NAME -#undef AUX778076_OP_TOKEN diff --git a/lib/3rdParty/boost/boost/mpl/aux_/single_element_iter.hpp b/lib/3rdParty/boost/boost/mpl/aux_/single_element_iter.hpp deleted file mode 100644 index 9aceb7474..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/single_element_iter.hpp +++ /dev/null @@ -1,118 +0,0 @@ - -#ifndef BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED -#define BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -namespace aux { - -template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_) > -struct sel_iter; - -template< typename T > -struct sel_iter -{ - typedef random_access_iterator_tag category; - typedef sel_iter next; - typedef T type; -}; - -template< typename T > -struct sel_iter -{ - typedef random_access_iterator_tag category; - typedef sel_iter prior; -}; - -} // namespace aux - -template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_), typename Distance > -struct advance< aux::sel_iter,Distance> -{ - typedef aux::sel_iter< - T - , ( is_last_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Distance) ) - > type; -}; - -template< - typename T - , BOOST_MPL_AUX_NTTP_DECL(int, l1) - , BOOST_MPL_AUX_NTTP_DECL(int, l2) - > -struct distance< aux::sel_iter, aux::sel_iter > - : int_<( l2 - l1 )> -{ -}; - -#else - -namespace aux { - -struct sel_iter_tag; - -template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, is_last_) > -struct sel_iter -{ - enum { pos_ = is_last_ }; - typedef aux::sel_iter_tag tag; - typedef random_access_iterator_tag category; - - typedef sel_iter next; - typedef sel_iter prior; - typedef T type; -}; - -} // namespace aux - -template<> struct advance_impl -{ - template< typename Iterator, typename N > struct apply - { - enum { pos_ = Iterator::pos_, n_ = N::value }; - typedef aux::sel_iter< - typename Iterator::type - , (pos_ + n_) - > type; - }; -}; - -template<> struct distance_impl -{ - template< typename Iter1, typename Iter2 > struct apply - { - enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ }; - typedef int_<( pos2_ - pos1_ )> type; - BOOST_STATIC_CONSTANT(int, value = ( pos2_ - pos1_ )); - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}} - -#endif // BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/size_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/size_impl.hpp deleted file mode 100644 index 50f5ee918..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/size_impl.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'size_impl' or the primary 'size' template - -template< typename Tag > -struct size_impl -{ - template< typename Sequence > struct apply -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) - : distance< - typename begin::type - , typename end::type - > - { -#else - { - typedef typename distance< - typename begin::type - , typename end::type - >::type type; -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl) - -}} - -#endif // BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/sort_impl.hpp b/lib/3rdParty/boost/boost/mpl/aux_/sort_impl.hpp deleted file mode 100644 index 382042190..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/sort_impl.hpp +++ /dev/null @@ -1,121 +0,0 @@ - -#ifndef BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED - -// Copyright Eric Friedman 2002-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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename Seq, typename Pred > -struct quick_sort; - -// agurt, 10/nov/04: for the sake of deficeint compilers -template< typename Pred, typename Pivot > -struct quick_sort_pred -{ - template< typename T > struct apply - { - typedef typename apply2::type type; - }; -}; - -template< - typename Seq - , typename Pred - > -struct quick_sort_impl -{ - typedef typename begin::type pivot; - typedef typename partition< - iterator_range< - typename next::type - , typename end::type - > - , protect< aux::quick_sort_pred< Pred, typename deref::type > > - , back_inserter< vector<> > - , back_inserter< vector<> > - >::type partitioned; - - typedef typename quick_sort< typename partitioned::first, Pred >::type part1; - typedef typename quick_sort< typename partitioned::second, Pred >::type part2; - - typedef joint_view< - joint_view< part1, single_view< typename deref::type > > - , part2 - > type; -}; - -template< - typename Seq - , typename Pred - > -struct quick_sort - : eval_if< - empty - , identity - , quick_sort_impl - > -{ -}; - - -template < - typename Sequence - , typename Pred - , typename In - > -struct sort_impl -{ - typedef typename quick_sort< - Sequence - , typename if_na >::type - >::type result_; - - typedef typename copy::type type; -}; - -template < - typename Sequence - , typename Pred - , typename In - > -struct reverse_sort_impl -{ - typedef typename quick_sort< - Sequence - , typename if_na >::type - >::type result_; - - typedef typename reverse_copy::type type; -}; - -}}} - -#endif // BOOST_MPL_AUX_SORT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/static_cast.hpp b/lib/3rdParty/boost/boost/mpl/aux_/static_cast.hpp deleted file mode 100644 index f72d1c7c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/static_cast.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED -#define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ - || BOOST_WORKAROUND(__GNUC__, < 3) \ - || BOOST_WORKAROUND(__MWERKS__, <= 0x3001) -# define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr) -#else -# define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast(expr) -#endif - -#endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/template_arity.hpp b/lib/3rdParty/boost/boost/mpl/aux_/template_arity.hpp deleted file mode 100644 index f01115982..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/template_arity.hpp +++ /dev/null @@ -1,189 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED -#define BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -# include -# endif -# else -# include -# endif -#endif - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER template_arity.hpp -# include - -#else - -# if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) - -# include -# include -# include -# include -# include - -# include -# include -# include -# include -# include - -# define AUX778076_ARITY BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) - -namespace boost { namespace mpl { namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag -{ - typedef char (&type)[N + 1]; -}; - -# define AUX778076_MAX_ARITY_OP(unused, state, i_) \ - ( BOOST_PP_CAT(C,i_) > 0 ? BOOST_PP_CAT(C,i_) : state ) \ -/**/ - -template< - BOOST_MPL_PP_PARAMS(AUX778076_ARITY, BOOST_MPL_AUX_NTTP_DECL(int, C)) - > -struct max_arity -{ - BOOST_STATIC_CONSTANT(int, value = - BOOST_PP_SEQ_FOLD_LEFT( - AUX778076_MAX_ARITY_OP - , -1 - , BOOST_MPL_PP_RANGE(1, AUX778076_ARITY) - ) - ); -}; - -# undef AUX778076_MAX_ARITY_OP - -arity_tag<0>::type arity_helper(...); - -# define BOOST_PP_ITERATION_LIMITS (1, AUX778076_ARITY) -# define BOOST_PP_FILENAME_1 -# include BOOST_PP_ITERATE() - -template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct template_arity_impl -{ - BOOST_STATIC_CONSTANT(int, value = - sizeof(::boost::mpl::aux::arity_helper(type_wrapper(),arity_tag())) - 1 - ); -}; - -# define AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION(unused, i_, F) \ - BOOST_PP_COMMA_IF(i_) template_arity_impl::value \ -/**/ - -template< typename F > -struct template_arity -{ - BOOST_STATIC_CONSTANT(int, value = ( - max_arity< BOOST_MPL_PP_REPEAT( - AUX778076_ARITY - , AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION - , F - ) >::value - )); - - typedef mpl::int_ type; -}; - -# undef AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION - -# undef AUX778076_ARITY - -}}} - -# endif // BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING -# else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -# include - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_<-1> - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -template<> -struct template_arity - : mpl::int_<-1> -{ -}; -#endif - -}}} - -# endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F - , BOOST_MPL_PP_PARAMS(i_, typename T) - > -typename arity_tag::type -arity_helper(type_wrapper< F >, arity_tag); - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/aux_/template_arity_fwd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/template_arity_fwd.hpp deleted file mode 100644 index 19d63a396..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/template_arity_fwd.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED -#define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { namespace aux { - -template< typename F > struct template_arity; - -}}} - -#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/test.hpp b/lib/3rdParty/boost/boost/mpl/aux_/test.hpp deleted file mode 100644 index 8d1dea62c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/test.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TEST_HPP_INCLUDED -#define BOOST_MPL_AUX_TEST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#include - -int main() -{ - return boost::report_errors(); -} - -using namespace boost; -using namespace mpl; - -#endif // BOOST_MPL_AUX_TEST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/test/assert.hpp b/lib/3rdParty/boost/boost/mpl/aux_/test/assert.hpp deleted file mode 100644 index 3bd8ba09c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/test/assert.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TEST_ASSERT_HPP_INCLUDED -#define BOOST_MPL_AUX_TEST_ASSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#define MPL_ASSERT(pred) BOOST_MPL_ASSERT(pred) -#define MPL_ASSERT_NOT(pred) BOOST_MPL_ASSERT_NOT(pred) -#define MPL_ASSERT_MSG(c, msg, types) BOOST_MPL_ASSERT_MSG(c, msg, types) -#define MPL_ASSERT_RELATION(x, rel, y) BOOST_MPL_ASSERT_RELATION(x, rel, y) - -#define MPL_ASSERT_INSTANTIATION(x) \ - enum { BOOST_PP_CAT(instantiation_test, __LINE__) = sizeof( x ) } \ -/**/ - -#endif // BOOST_MPL_AUX_TEST_ASSERT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/test/data.hpp b/lib/3rdParty/boost/boost/mpl/aux_/test/data.hpp deleted file mode 100644 index 373e6c326..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/test/data.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TEST_DATA_HPP_INCLUDED -#define BOOST_MPL_AUX_TEST_DATA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -enum enum_ {}; -struct UDT {}; -struct incomplete; -class abstract { public: virtual ~abstract() = 0; }; -using boost::noncopyable; - -#endif // BOOST_MPL_AUX_TEST_DATA_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/test/test_case.hpp b/lib/3rdParty/boost/boost/mpl/aux_/test/test_case.hpp deleted file mode 100644 index b168a005a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/test/test_case.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TEST_TEST_CASE_HPP_INCLUDED -#define BOOST_MPL_AUX_TEST_TEST_CASE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#define MPL_TEST_CASE() void BOOST_PP_CAT(test,__LINE__)() - -#endif // BOOST_MPL_AUX_TEST_TEST_CASE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/traits_lambda_spec.hpp b/lib/3rdParty/boost/boost/mpl/aux_/traits_lambda_spec.hpp deleted file mode 100644 index 4a7ff26b5..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/traits_lambda_spec.hpp +++ /dev/null @@ -1,63 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED -#define BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) - -# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) /**/ - -#elif !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - -# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \ -template<> struct trait \ -{ \ - template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \ - { \ - }; \ -}; \ -/**/ - -#else - -# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \ -template<> struct trait \ -{ \ - template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \ - { \ - }; \ -}; \ -template<> struct trait \ -{ \ - template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \ - { \ - typedef int type; \ - }; \ -}; \ -/**/ - -#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - - -#define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \ - BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \ - template<> struct trait {}; \ -/**/ - -#endif // BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/transform_iter.hpp b/lib/3rdParty/boost/boost/mpl/aux_/transform_iter.hpp deleted file mode 100644 index e42fcc6b0..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/transform_iter.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TRANSFORM_ITER_HPP_INCLUDED -#define BOOST_MPL_AUX_TRANSFORM_ITER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename Iterator - , typename LastIterator - , typename F - > -struct transform_iter -{ - typedef Iterator base; - typedef forward_iterator_tag category; - typedef transform_iter< typename mpl::next::type,LastIterator,F > next; - - typedef typename apply1< - F - , typename deref::type - >::type type; -}; - -template< - typename LastIterator - , typename F - > -struct transform_iter< LastIterator,LastIterator,F > -{ - typedef LastIterator base; - typedef forward_iterator_tag category; -}; - -#else - -template< - typename Iterator - , typename LastIterator - , typename F - > -struct transform_iter; - -template< bool > -struct transform_iter_impl -{ - template< - typename Iterator - , typename LastIterator - , typename F - > - struct result_ - { - typedef Iterator base; - typedef forward_iterator_tag category; - typedef transform_iter< typename mpl::next::type,LastIterator,F > next; - - typedef typename apply1< - F - , typename deref::type - >::type type; - }; -}; - -template<> -struct transform_iter_impl -{ - template< - typename Iterator - , typename LastIterator - , typename F - > - struct result_ - { - typedef Iterator base; - typedef forward_iterator_tag category; - }; -}; - -template< - typename Iterator - , typename LastIterator - , typename F - > -struct transform_iter - : transform_iter_impl< - ::boost::is_same::value - >::template result_< Iterator,LastIterator,F > -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, aux::transform_iter) - -}} - -#endif // BOOST_MPL_AUX_TRANSFORM_ITER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/type_wrapper.hpp b/lib/3rdParty/boost/boost/mpl/aux_/type_wrapper.hpp deleted file mode 100644 index f3ac3079a..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/type_wrapper.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -#ifndef BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED -#define BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Peter Dimov 2000-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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename T > struct type_wrapper -{ - typedef T type; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -// agurt 08/may/03: a complicated way to extract the wrapped type; need it -// mostly for the sake of GCC (3.2.x), which ICEs if you try to extract the -// nested 'type' from 'type_wrapper' when the latter was the result of a -// 'typeof' expression -template< typename T > struct wrapped_type; - -template< typename T > struct wrapped_type< type_wrapper > -{ - typedef T type; -}; -#else -template< typename W > struct wrapped_type -{ - typedef typename W::type type; -}; -#endif - -}}} - -#endif // BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/unwrap.hpp b/lib/3rdParty/boost/boost/mpl/aux_/unwrap.hpp deleted file mode 100644 index caeb97d7d..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/unwrap.hpp +++ /dev/null @@ -1,51 +0,0 @@ - -#ifndef BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED -#define BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED - -// Copyright Peter Dimov and Multi Media Ltd 2001, 2002 -// Copyright David Abrahams 2001 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename F > -BOOST_MPL_CFG_GPU_ENABLED -inline -F& unwrap(F& f, long) -{ - return f; -} - -template< typename F > -BOOST_MPL_CFG_GPU_ENABLED -inline -F& -unwrap(reference_wrapper& f, int) -{ - return f; -} - -template< typename F > -BOOST_MPL_CFG_GPU_ENABLED -inline -F& -unwrap(reference_wrapper const& f, int) -{ - return f; -} - -}}} - -#endif // BOOST_MPL_AUX_UNWRAP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/value_wknd.hpp b/lib/3rdParty/boost/boost/mpl/aux_/value_wknd.hpp deleted file mode 100644 index 23fefde02..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/value_wknd.hpp +++ /dev/null @@ -1,89 +0,0 @@ - -#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED -#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ - || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - -# include - -namespace boost { namespace mpl { namespace aux { -template< typename C_ > struct value_wknd - : C_ -{ -}; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) -template<> struct value_wknd - : int_<1> -{ - using int_<1>::value; -}; -#endif -}}} - - -#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) -# define BOOST_MPL_AUX_VALUE_WKND(C) \ - ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \ -/**/ -# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C) -#else -# define BOOST_MPL_AUX_VALUE_WKND(C) C -# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \ - ::boost::mpl::aux::value_wknd< C > \ -/**/ -#endif - -#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS - -# define BOOST_MPL_AUX_VALUE_WKND(C) C -# define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C - -#endif - -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) -# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ - BOOST_MPL_AUX_STATIC_CAST(T, C::value) \ -/**/ -#else -# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ - BOOST_MPL_AUX_VALUE_WKND(C)::value \ -/**/ -#endif - - -namespace boost { namespace mpl { namespace aux { - -template< typename T > struct value_type_wknd -{ - typedef typename T::value_type type; -}; - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -template<> struct value_type_wknd -{ - typedef int type; -}; -#endif - -}}} - -#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/aux_/yes_no.hpp b/lib/3rdParty/boost/boost/mpl/aux_/yes_no.hpp deleted file mode 100644 index 21a18a21c..000000000 --- a/lib/3rdParty/boost/boost/mpl/aux_/yes_no.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED -#define BOOST_MPL_AUX_YES_NO_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - - -namespace boost { namespace mpl { namespace aux { - -typedef char (&no_tag)[1]; -typedef char (&yes_tag)[2]; - -template< bool C_ > struct yes_no_tag -{ - typedef no_tag type; -}; - -template<> struct yes_no_tag -{ - typedef yes_tag type; -}; - - -template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag -{ -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - typedef char (&type)[n]; -#else - char buf[n]; - typedef weighted_tag type; -#endif -}; - -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) -template<> struct weighted_tag<0> -{ - typedef char (&type)[1]; -}; -#endif - -}}} - -#endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/back.hpp b/lib/3rdParty/boost/boost/mpl/back.hpp deleted file mode 100644 index 2778c427c..000000000 --- a/lib/3rdParty/boost/boost/mpl/back.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_BACK_HPP_INCLUDED -#define BOOST_MPL_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct back - : back_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,back,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, back) - -}} - -#endif // BOOST_MPL_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/back_fwd.hpp b/lib/3rdParty/boost/boost/mpl/back_fwd.hpp deleted file mode 100644 index 119722c31..000000000 --- a/lib/3rdParty/boost/boost/mpl/back_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_BACK_FWD_HPP_INCLUDED -#define BOOST_MPL_BACK_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct back_impl; -template< typename Sequence > struct back; - -}} - -#endif // BOOST_MPL_BACK_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/back_inserter.hpp b/lib/3rdParty/boost/boost/mpl/back_inserter.hpp deleted file mode 100644 index 8fc4083c3..000000000 --- a/lib/3rdParty/boost/boost/mpl/back_inserter.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_BACK_INSERTER_HPP_INCLUDED -#define BOOST_MPL_BACK_INSERTER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { -namespace mpl { - -template< - typename Sequence - > -struct back_inserter - : inserter< Sequence,push_back<> > -{ -}; - -}} - -#endif // BOOST_MPL_BACK_INSERTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/base.hpp b/lib/3rdParty/boost/boost/mpl/base.hpp deleted file mode 100644 index 8f438490e..000000000 --- a/lib/3rdParty/boost/boost/mpl/base.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_BASE_HPP_INCLUDED -#define BOOST_MPL_BASE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct base -{ - typedef typename T::base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,base,(T)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, base) - -}} - -#endif // BOOST_MPL_BASE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/begin.hpp b/lib/3rdParty/boost/boost/mpl/begin.hpp deleted file mode 100644 index 15bdf7e38..000000000 --- a/lib/3rdParty/boost/boost/mpl/begin.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_BEGIN_HPP_INCLUDED -#define BOOST_MPL_BEGIN_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_BEGIN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/begin_end.hpp b/lib/3rdParty/boost/boost/mpl/begin_end.hpp deleted file mode 100644 index b7074afd2..000000000 --- a/lib/3rdParty/boost/boost/mpl/begin_end.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED -#define BOOST_MPL_BEGIN_END_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more -// happy this way (less ETI-related errors), and it doesn't affect -// anything else -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct begin -{ - typedef typename sequence_tag::type tag_; - typedef typename begin_impl< tag_ > - ::template apply< Sequence >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence)) -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct end -{ - typedef typename sequence_tag::type tag_; - typedef typename end_impl< tag_ > - ::template apply< Sequence >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, begin) -BOOST_MPL_AUX_NA_SPEC(1, end) - -}} - -#endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/begin_end_fwd.hpp b/lib/3rdParty/boost/boost/mpl/begin_end_fwd.hpp deleted file mode 100644 index 70ef9efec..000000000 --- a/lib/3rdParty/boost/boost/mpl/begin_end_fwd.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED -#define BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct begin_impl; -template< typename Tag > struct end_impl; - -template< typename Sequence > struct begin; -template< typename Sequence > struct end; - -}} - -#endif // BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/bind.hpp b/lib/3rdParty/boost/boost/mpl/bind.hpp deleted file mode 100644 index 63ee3f27e..000000000 --- a/lib/3rdParty/boost/boost/mpl/bind.hpp +++ /dev/null @@ -1,551 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_BIND_HPP_INCLUDED -#define BOOST_MPL_BIND_HPP_INCLUDED - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include -# endif -#endif - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# if defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) -# define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp -# else -# define BOOST_MPL_PREPROCESSED_HEADER bind.hpp -# endif -# include - -#else - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_APPLY \ - BOOST_PP_CAT(apply_wrap,BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \ - /**/ - -# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) -# define AUX778076_DMC_PARAM() , int dummy_ -# else -# define AUX778076_DMC_PARAM() -# endif - -# define AUX778076_BIND_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ - -# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ - -# define AUX778076_BIND_N_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ - /**/ - -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \ - AUX778076_BIND_DEFAULT_PARAMS(param, value) \ - /**/ -#else -# define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \ - AUX778076_BIND_PARAMS(param) \ - /**/ -#endif - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename T, AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg -{ - typedef T type; -}; - -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg<-1>,Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -template< - BOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg< arg,AUX778076_BIND_PARAMS(U) > -{ - typedef typename AUX778076_APPLY, AUX778076_BIND_PARAMS(U)>::type type; -}; - -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -template< - typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg< bind,AUX778076_BIND_PARAMS(U) > -{ - typedef bind f_; - typedef typename AUX778076_APPLY::type type; -}; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -// agurt, 15/jan/02: it's not a intended to be used as a function class, and -// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't -// work), so I went with the 'result_' here, and in all other similar cases -template< bool > -struct resolve_arg_impl -{ - template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ - { - typedef typename AUX778076_APPLY< - T - , AUX778076_BIND_PARAMS(U) - >::type type; - }; -}; - -// for 'resolve_bind_arg' -template< typename T > struct is_bind_template; - -template< - typename T, AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,AUX778076_BIND_PARAMS(U) > -{ -}; - -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg<-1> > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -// agurt, 10/mar/02: the forward declaration has to appear before any of -// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it -template< BOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -// overload for "main" form -// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload -// in case if we use 'aux::type_wrapper< bind<...> >' here, and all -// 'bind' instantiations form a complete type anyway -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -template< - typename F, AUX778076_BIND_PARAMS(typename T) - > -aux::yes_tag is_bind_helper(bind*); -#endif - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) -/// if_/eval_if specializations -# define AUX778076_SPEC_NAME if_ -# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, )) -# include BOOST_PP_ITERATE() - -#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) -# define AUX778076_SPEC_NAME eval_if -# define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, )) -# include BOOST_PP_ITERATE() -#endif -#endif - -// real C++ version is already taken care of -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) - -namespace aux { -// apply_count_args -#define AUX778076_COUNT_ARGS_PREFIX bind -#define AUX778076_COUNT_ARGS_DEFAULT na -#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#include -} - -// bind -template< - typename F, AUX778076_BIND_PARAMS(typename T) AUX778076_DMC_PARAM() - > -struct bind - : aux::bind_chooser< - aux::bind_count_args::value - >::template result_< F,AUX778076_BIND_PARAMS(T) >::type -{ -}; - -BOOST_MPL_AUX_ARITY_SPEC( - BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) - , bind - ) - -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC( - BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) - , bind - ) - - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -# undef AUX778076_BIND_NESTED_DEFAULT_PARAMS -# undef AUX778076_BIND_N_SPEC_PARAMS -# undef AUX778076_BIND_N_PARAMS -# undef AUX778076_BIND_DEFAULT_PARAMS -# undef AUX778076_BIND_PARAMS -# undef AUX778076_DMC_PARAM -# undef AUX778076_APPLY - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_BIND_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -#if defined(AUX778076_SPEC_NAME) - -// lazy metafunction specialization -template< template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag > -struct BOOST_PP_CAT(quote,i_); - -template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME; - -template< - typename Tag AUX778076_BIND_N_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(bind,i_)< - BOOST_PP_CAT(quote,i_) - AUX778076_BIND_N_PARAMS(i_,T) - > -{ - template< - AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - private: - typedef mpl::arg<1> n1; -# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, )) -# include BOOST_PP_ITERATE() - - typedef typename AUX778076_SPEC_NAME< - typename t1::type - , BOOST_MPL_PP_EXT_PARAMS(2, BOOST_PP_INC(i_), t) - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -#undef AUX778076_SPEC_NAME - -#else // AUX778076_SPEC_NAME - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() - > -struct BOOST_PP_CAT(bind,i_) -{ - template< - AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - private: -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - - typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg::type f_; - /// -# else - typedef typename aux::resolve_bind_arg::type f_; - -# endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -# if i_ > 0 -# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, )) -# include BOOST_PP_ITERATE() -# endif - - public: - -# define AUX778076_ARG(unused, i_, t) \ - BOOST_PP_COMMA_IF(i_) \ - typename BOOST_PP_CAT(t,BOOST_PP_INC(i_))::type \ -/**/ - - typedef typename BOOST_PP_CAT(apply_wrap,i_)< - f_ - BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t) - >::type type; - -# undef AUX778076_ARG - }; -}; - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U) - > -struct resolve_bind_arg< - BOOST_PP_CAT(bind,i_),AUX778076_BIND_PARAMS(U) - > -{ - typedef BOOST_PP_CAT(bind,i_) f_; - typedef typename AUX778076_APPLY::type type; -}; - -#else - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) - > -aux::yes_tag -is_bind_helper(BOOST_PP_CAT(bind,i_)*); - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_)) - -# if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY -/// primary template (not a specialization!) -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() - > -struct bind - : BOOST_PP_CAT(bind,i_) -{ -}; -#else -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM() - > -struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) > - : BOOST_PP_CAT(bind,i_) -{ -}; -#endif - -# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -namespace aux { - -template<> -struct bind_chooser -{ - template< - typename F, AUX778076_BIND_PARAMS(typename T) - > - struct result_ - { - typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type; - }; -}; - -} // namespace aux - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE - -#endif // AUX778076_SPEC_NAME - -# undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define j_ BOOST_PP_FRAME_ITERATION(2) -# if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) - - typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j_),BOOST_PP_CAT(n,j_) > BOOST_PP_CAT(r,j_); - typedef typename BOOST_PP_CAT(r,j_)::type BOOST_PP_CAT(a,j_); - typedef typename BOOST_PP_CAT(r,j_)::next BOOST_PP_CAT(n,BOOST_PP_INC(j_)); - typedef aux::resolve_bind_arg BOOST_PP_CAT(t,j_); - /// -# else - typedef aux::resolve_bind_arg< BOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_); - -# endif -# undef j_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/bind_fwd.hpp b/lib/3rdParty/boost/boost/mpl/bind_fwd.hpp deleted file mode 100644 index 4746edd60..000000000 --- a/lib/3rdParty/boost/boost/mpl/bind_fwd.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED -#define BOOST_MPL_BIND_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp -# include - -#else - -# include -# include -# include -# include - -# include -# include -# include - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header - -# if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) -# define AUX778076_DMC_PARAM() , int dummy_ = 0 -# else -# define AUX778076_DMC_PARAM() -# endif - -# define AUX778076_BIND_DEFAULT_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - AUX778076_DMC_PARAM() \ - /**/ - -# define AUX778076_BIND_N_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \ - AUX778076_DMC_PARAM() \ - /**/ - -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) -template< - typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na) - > -struct bind; -#endif - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -# undef AUX778076_BIND_N_PARAMS -# undef AUX778076_BIND_DEFAULT_PARAMS -# undef AUX778076_DMC_PARAM -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(bind,i_); - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/bitand.hpp b/lib/3rdParty/boost/boost/mpl/bitand.hpp deleted file mode 100644 index 9c31c7929..000000000 --- a/lib/3rdParty/boost/boost/mpl/bitand.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_BITAND_HPP_INCLUDED -#define BOOST_MPL_BITAND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2009 -// Copyright Jaap Suter 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// agurt, 23/jan/10: workaround a conflict with header's -// macros, see http://tinyurl.com/ycwdxco; 'defined(bitand)' -// has to be checked in a separate condition, otherwise GCC complains -// about 'bitand' being an alternative token -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(bitand) -# pragma push_macro("bitand") -# undef bitand -# define bitand(x) -#endif -#endif -#endif - -#define AUX778076_OP_NAME bitand_ -#define AUX778076_OP_PREFIX bitand -#define AUX778076_OP_TOKEN & -#include - -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(bitand) -# pragma pop_macro("bitand") -#endif -#endif -#endif - -#endif // BOOST_MPL_BITAND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/bitor.hpp b/lib/3rdParty/boost/boost/mpl/bitor.hpp deleted file mode 100644 index f00974377..000000000 --- a/lib/3rdParty/boost/boost/mpl/bitor.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_BITOR_HPP_INCLUDED -#define BOOST_MPL_BITOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2009 -// Copyright Jaap Suter 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// agurt, 23/jan/10: workaround a conflict with header's -// macros, see http://tinyurl.com/ycwdxco; 'defined(bitor)' -// has to be checked in a separate condition, otherwise GCC complains -// about 'bitor' being an alternative token -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(bitor) -# pragma push_macro("bitor") -# undef bitor -# define bitor(x) -#endif -#endif -#endif - -#define AUX778076_OP_NAME bitor_ -#define AUX778076_OP_PREFIX bitor -#define AUX778076_OP_TOKEN | -#include - -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(bitor) -# pragma pop_macro("bitor") -#endif -#endif -#endif - -#endif // BOOST_MPL_BITOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/bitwise.hpp b/lib/3rdParty/boost/boost/mpl/bitwise.hpp deleted file mode 100644 index 9deb23ef2..000000000 --- a/lib/3rdParty/boost/boost/mpl/bitwise.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_BITWISE_HPP_INCLUDED -#define BOOST_MPL_BITWISE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright Jaap Suter 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -#endif // BOOST_MPL_BITWISE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/bitxor.hpp b/lib/3rdParty/boost/boost/mpl/bitxor.hpp deleted file mode 100644 index 7f98f1737..000000000 --- a/lib/3rdParty/boost/boost/mpl/bitxor.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_BITXOR_HPP_INCLUDED -#define BOOST_MPL_BITXOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME bitxor_ -#define AUX778076_OP_PREFIX bitxor -#define AUX778076_OP_TOKEN ^ -#include - -#endif // BOOST_MPL_BITXOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/bool.hpp b/lib/3rdParty/boost/boost/mpl/bool.hpp deleted file mode 100644 index 0a6180ced..000000000 --- a/lib/3rdParty/boost/boost/mpl/bool.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_BOOL_HPP_INCLUDED -#define BOOST_MPL_BOOL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< bool C_ > struct bool_ -{ - BOOST_STATIC_CONSTANT(bool, value = C_); - typedef integral_c_tag tag; - typedef bool_ type; - typedef bool value_type; - BOOST_CONSTEXPR operator bool() const { return this->value; } -}; - -#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) -template< bool C_ > -bool const bool_::value; -#endif - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -#endif // BOOST_MPL_BOOL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/bool_fwd.hpp b/lib/3rdParty/boost/boost/mpl/bool_fwd.hpp deleted file mode 100644 index e62925284..000000000 --- a/lib/3rdParty/boost/boost/mpl/bool_fwd.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED -#define BOOST_MPL_BOOL_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< bool C_ > struct bool_; - -// shorcuts -typedef bool_ true_; -typedef bool_ false_; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_) -BOOST_MPL_AUX_ADL_BARRIER_DECL(true_) -BOOST_MPL_AUX_ADL_BARRIER_DECL(false_) - -#endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/char.hpp b/lib/3rdParty/boost/boost/mpl/char.hpp deleted file mode 100644 index 08828c247..000000000 --- a/lib/3rdParty/boost/boost/mpl/char.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_CHAR_HPP_INCLUDED -#define BOOST_MPL_CHAR_HPP_INCLUDED - -// Copyright Eric Niebler 2008 -// -// 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/mpl for documentation. - -// $Source$ -// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $ -// $Revision: 24874 $ - -#include - -#define AUX_WRAPPER_VALUE_TYPE char -#include - -#endif // BOOST_MPL_CHAR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/char_fwd.hpp b/lib/3rdParty/boost/boost/mpl/char_fwd.hpp deleted file mode 100644 index 442d0a161..000000000 --- a/lib/3rdParty/boost/boost/mpl/char_fwd.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_CHAR_FWD_HPP_INCLUDED -#define BOOST_MPL_CHAR_FWD_HPP_INCLUDED - -// Copyright Eric Niebler 2008 -// -// 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/mpl for documentation. - -// $Source$ -// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $ -// $Revision: 24874 $ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< BOOST_MPL_AUX_NTTP_DECL(char, N) > struct char_; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(char_) - -#endif // BOOST_MPL_CHAR_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/clear.hpp b/lib/3rdParty/boost/boost/mpl/clear.hpp deleted file mode 100644 index c6b95edf4..000000000 --- a/lib/3rdParty/boost/boost/mpl/clear.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_CLEAR_HPP_INCLUDED -#define BOOST_MPL_CLEAR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct clear - : clear_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, clear) - -}} - -#endif // BOOST_MPL_CLEAR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/clear_fwd.hpp b/lib/3rdParty/boost/boost/mpl/clear_fwd.hpp deleted file mode 100644 index d14a1d2b2..000000000 --- a/lib/3rdParty/boost/boost/mpl/clear_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_CLEAR_FWD_HPP_INCLUDED -#define BOOST_MPL_CLEAR_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct clear_impl; -template< typename Sequence > struct clear; - -}} - -#endif // BOOST_MPL_CLEAR_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/comparison.hpp b/lib/3rdParty/boost/boost/mpl/comparison.hpp deleted file mode 100644 index 99dca9dd8..000000000 --- a/lib/3rdParty/boost/boost/mpl/comparison.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED -#define BOOST_MPL_COMPARISON_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/contains.hpp b/lib/3rdParty/boost/boost/mpl/contains.hpp deleted file mode 100644 index 02c2aa4f8..000000000 --- a/lib/3rdParty/boost/boost/mpl/contains.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_CONTAINS_HPP_INCLUDED -#define BOOST_MPL_CONTAINS_HPP_INCLUDED - -// Copyright Eric Friedman 2002 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct contains - : contains_impl< typename sequence_tag::type > - ::template apply< Sequence,T > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, contains) - -}} - -#endif // BOOST_MPL_CONTAINS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/contains_fwd.hpp b/lib/3rdParty/boost/boost/mpl/contains_fwd.hpp deleted file mode 100644 index c7c667285..000000000 --- a/lib/3rdParty/boost/boost/mpl/contains_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED -#define BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED - -// Copyright Eric Friedman 2002 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct contains_impl; -template< typename Sequence, typename T > struct contains; - -}} - -#endif // BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/copy.hpp b/lib/3rdParty/boost/boost/mpl/copy.hpp deleted file mode 100644 index 6eafba398..000000000 --- a/lib/3rdParty/boost/boost/mpl/copy.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_COPY_HPP_INCLUDED -#define BOOST_MPL_COPY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Sequence - , typename Inserter - > -struct copy_impl - : fold< - Sequence - , typename Inserter::state - , typename Inserter::operation - > -{ -}; - -template< - typename Sequence - , typename Inserter - > -struct reverse_copy_impl - : reverse_fold< - Sequence - , typename Inserter::state - , typename Inserter::operation - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy) - -}} - -#endif // BOOST_MPL_COPY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/copy_if.hpp b/lib/3rdParty/boost/boost/mpl/copy_if.hpp deleted file mode 100644 index 96d9172df..000000000 --- a/lib/3rdParty/boost/boost/mpl/copy_if.hpp +++ /dev/null @@ -1,96 +0,0 @@ - -#ifndef BOOST_MPL_COPY_IF_HPP_INCLUDED -#define BOOST_MPL_COPY_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Operation - , typename Predicate - > -struct copy_if_op -{ - template< typename Sequence, typename T > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : eval_if< - typename apply1::type - , apply2 - , identity - > - { -#else - { - typedef typename eval_if< - typename apply1::type - , apply2 - , identity - >::type type; -#endif - }; -}; - -template< - typename Sequence - , typename Predicate - , typename Inserter - > -struct copy_if_impl - : fold< - Sequence - , typename Inserter::state - , protect< aux::copy_if_op< - typename Inserter::operation - , Predicate - > > - > -{ -}; - -template< - typename Sequence - , typename Predicate - , typename Inserter - > -struct reverse_copy_if_impl - : reverse_fold< - Sequence - , typename Inserter::state - , protect< aux::copy_if_op< - typename Inserter::operation - , Predicate - > > - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, copy_if) - -}} - -#endif // BOOST_MPL_COPY_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/count.hpp b/lib/3rdParty/boost/boost/mpl/count.hpp deleted file mode 100644 index c845662c2..000000000 --- a/lib/3rdParty/boost/boost/mpl/count.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_COUNT_HPP_INCLUDED -#define BOOST_MPL_COUNT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct count - : count_impl< typename sequence_tag::type > - ::template apply -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count,(Sequence,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, count) - -}} - -#endif // BOOST_MPL_COUNT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/count_fwd.hpp b/lib/3rdParty/boost/boost/mpl/count_fwd.hpp deleted file mode 100644 index 7d1ee17fa..000000000 --- a/lib/3rdParty/boost/boost/mpl/count_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_COUNT_FWD_HPP_INCLUDED -#define BOOST_MPL_COUNT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct count_impl; -template< typename Sequence, typename T > struct count; - -}} - -#endif // BOOST_MPL_COUNT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/count_if.hpp b/lib/3rdParty/boost/boost/mpl/count_if.hpp deleted file mode 100644 index d81c39570..000000000 --- a/lib/3rdParty/boost/boost/mpl/count_if.hpp +++ /dev/null @@ -1,79 +0,0 @@ - -#ifndef BOOST_MPL_COUNT_IF_HPP_INCLUDED -#define BOOST_MPL_COUNT_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< typename Predicate > -struct next_if -{ - template< - typename N - , typename T - > - struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : eval_if< - typename apply1::type - , next - , identity - > - { -#else - { - typedef typename eval_if< - typename apply1::type - , next - , identity - >::type type; -#endif - }; -}; - -} // namespace aux - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Predicate) - > -struct count_if - : aux::msvc_eti_base< typename fold< - Sequence - , integral_c - , protect< aux::next_if > - >::type > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count_if,(Sequence,Predicate)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, count_if) - -}} - -#endif // BOOST_MPL_COUNT_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/deque.hpp b/lib/3rdParty/boost/boost/mpl/deque.hpp deleted file mode 100644 index 729bae97b..000000000 --- a/lib/3rdParty/boost/boost/mpl/deque.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_DEQUE_HPP_INCLUDED -#define BOOST_MPL_DEQUE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_DEQUE_HEADER \ - BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \ - /**/ -#else -# define AUX778076_DEQUE_HEADER \ - BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_DEQUE_HEADER) -# undef AUX778076_DEQUE_HEADER -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER deque.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME deque -# define AUX778076_SEQUENCE_BASE_NAME vector -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_DEQUE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/deref.hpp b/lib/3rdParty/boost/boost/mpl/deref.hpp deleted file mode 100644 index 1105ec903..000000000 --- a/lib/3rdParty/boost/boost/mpl/deref.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_DEREF_HPP_INCLUDED -#define BOOST_MPL_DEREF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Iterator) - > -struct deref -{ -#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - typedef typename Iterator::type type; -#else - typedef typename aux::msvc_type::type type; -#endif - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, deref) - -}} - -#endif // BOOST_MPL_DEREF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/distance.hpp b/lib/3rdParty/boost/boost/mpl/distance.hpp deleted file mode 100644 index 95f4f3351..000000000 --- a/lib/3rdParty/boost/boost/mpl/distance.hpp +++ /dev/null @@ -1,78 +0,0 @@ - -#ifndef BOOST_MPL_DISTANCE_HPP_INCLUDED -#define BOOST_MPL_DISTANCE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -namespace boost { namespace mpl { - -// default implementation for forward/bidirectional iterators -template< typename Tag > struct distance_impl -{ - template< typename First, typename Last > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : aux::msvc_eti_base< typename iter_fold< - iterator_range - , mpl::long_<0> - , next<> - >::type > - { -#else - { - typedef typename iter_fold< - iterator_range - , mpl::long_<0> - , next<> - >::type type; - - BOOST_STATIC_CONSTANT(long, value = - (iter_fold< - iterator_range - , mpl::long_<0> - , next<> - >::type::value) - ); -#endif - }; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(First) - , typename BOOST_MPL_AUX_NA_PARAM(Last) - > -struct distance - : distance_impl< typename tag::type > - ::template apply -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, distance, (First, Last)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, distance) - -}} - -#endif // BOOST_MPL_DISTANCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/distance_fwd.hpp b/lib/3rdParty/boost/boost/mpl/distance_fwd.hpp deleted file mode 100644 index a69a7c514..000000000 --- a/lib/3rdParty/boost/boost/mpl/distance_fwd.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED -#define BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(distance) - -template< typename Tag > struct distance_impl; -template< typename First, typename Last > struct distance; - -}} - -#endif // BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/divides.hpp b/lib/3rdParty/boost/boost/mpl/divides.hpp deleted file mode 100644 index 55c8b0d10..000000000 --- a/lib/3rdParty/boost/boost/mpl/divides.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_DIVIDES_HPP_INCLUDED -#define BOOST_MPL_DIVIDES_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME divides -#define AUX778076_OP_TOKEN / -#include - -#endif // BOOST_MPL_DIVIDES_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/empty.hpp b/lib/3rdParty/boost/boost/mpl/empty.hpp deleted file mode 100644 index 1185324c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/empty.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_EMPTY_HPP_INCLUDED -#define BOOST_MPL_EMPTY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct empty - : empty_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,empty,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, empty) - -}} - -#endif // BOOST_MPL_EMPTY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/empty_base.hpp b/lib/3rdParty/boost/boost/mpl/empty_base.hpp deleted file mode 100644 index cb56ef676..000000000 --- a/lib/3rdParty/boost/boost/mpl/empty_base.hpp +++ /dev/null @@ -1,63 +0,0 @@ - -#ifndef BOOST_MPL_EMPTY_BASE_HPP_INCLUDED -#define BOOST_MPL_EMPTY_BASE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#include -#include - -namespace boost { namespace mpl { - -// empty base class, guaranteed to have no members; inheritance from -// 'empty_base' through the 'inherit' metafunction is a no-op - see -// "mpl/inherit.hpp> header for the details -struct empty_base {}; - -template< typename T > -struct is_empty_base - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -template<> -struct is_empty_base - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -}} - -namespace boost { - -template<> struct is_empty< mpl::empty_base > - : public ::boost::integral_constant -{ -public: - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,is_empty,(mpl::empty_base)) -}; - -} - -#endif // BOOST_MPL_EMPTY_BASE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/empty_fwd.hpp b/lib/3rdParty/boost/boost/mpl/empty_fwd.hpp deleted file mode 100644 index 551c9660a..000000000 --- a/lib/3rdParty/boost/boost/mpl/empty_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_EMPTY_FWD_HPP_INCLUDED -#define BOOST_MPL_EMPTY_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct empty_impl; -template< typename Sequence > struct empty; - -}} - -#endif // BOOST_MPL_EMPTY_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/empty_sequence.hpp b/lib/3rdParty/boost/boost/mpl/empty_sequence.hpp deleted file mode 100644 index f32cc6ee8..000000000 --- a/lib/3rdParty/boost/boost/mpl/empty_sequence.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_EMPTY_SEQUENCE_HPP_INCLUDED -#define BOOST_MPL_EMPTY_SEQUENCE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// Copyright Alexander Nasonov 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -struct empty_sequence -{ - struct tag; - typedef empty_sequence type; - struct begin { typedef random_access_iterator_tag category; }; - typedef begin end; -}; - -template<> -struct size_impl -{ - template< typename Sequence > struct apply - : int_<0> - { - }; -}; - -}} - -#endif // #ifndef BOOST_MPL_EMPTY_SEQUENCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/end.hpp b/lib/3rdParty/boost/boost/mpl/end.hpp deleted file mode 100644 index cb8d525f5..000000000 --- a/lib/3rdParty/boost/boost/mpl/end.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_END_HPP_INCLUDED -#define BOOST_MPL_END_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_END_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/equal.hpp b/lib/3rdParty/boost/boost/mpl/equal.hpp deleted file mode 100644 index 8937ef3a1..000000000 --- a/lib/3rdParty/boost/boost/mpl/equal.hpp +++ /dev/null @@ -1,112 +0,0 @@ - -#ifndef BOOST_MPL_EQUAL_HPP_INCLUDED -#define BOOST_MPL_EQUAL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Predicate - , typename LastIterator1 - , typename LastIterator2 - > -struct equal_pred -{ - template< - typename Iterator2 - , typename Iterator1 - > - struct apply - { - typedef typename and_< - not_< is_same > - , not_< is_same > - , aux::iter_apply2 - >::type type; - }; -}; - -template< - typename Sequence1 - , typename Sequence2 - , typename Predicate - > -struct equal_impl -{ - typedef typename begin::type first1_; - typedef typename begin::type first2_; - typedef typename end::type last1_; - typedef typename end::type last2_; - - typedef aux::iter_fold_if_impl< - first1_ - , first2_ - , next<> - , protect< aux::equal_pred > - , void_ - , always - > fold_; - - typedef typename fold_::iterator iter1_; - typedef typename fold_::state iter2_; - typedef and_< - is_same - , is_same - > result_; - - typedef typename result_::type type; -}; - - -} // namespace aux - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence1) - , typename BOOST_MPL_AUX_NA_PARAM(Sequence2) - , typename Predicate = is_same<_,_> - > -struct equal - : aux::msvc_eti_base< - typename aux::equal_impl::type - >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,equal,(Sequence1,Sequence2)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, equal) - -}} - -#endif // BOOST_MPL_EQUAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/equal_to.hpp b/lib/3rdParty/boost/boost/mpl/equal_to.hpp deleted file mode 100644 index 5dfc87dbe..000000000 --- a/lib/3rdParty/boost/boost/mpl/equal_to.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED -#define BOOST_MPL_EQUAL_TO_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME equal_to -#define AUX778076_OP_TOKEN == -#include - -#endif // BOOST_MPL_EQUAL_TO_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/erase.hpp b/lib/3rdParty/boost/boost/mpl/erase.hpp deleted file mode 100644 index abcfdbd87..000000000 --- a/lib/3rdParty/boost/boost/mpl/erase.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_ERASE_HPP_INCLUDED -#define BOOST_MPL_ERASE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(First) - , typename BOOST_MPL_AUX_NA_PARAM(Last) - > -struct erase - : erase_impl< typename sequence_tag::type > - ::template apply< Sequence,First,Last > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,erase,(Sequence,First,Last)) -}; - -BOOST_MPL_AUX_NA_SPEC(3,erase) - -}} - -#endif // BOOST_MPL_ERASE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/erase_fwd.hpp b/lib/3rdParty/boost/boost/mpl/erase_fwd.hpp deleted file mode 100644 index 44e38eac2..000000000 --- a/lib/3rdParty/boost/boost/mpl/erase_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_ERASE_FWD_HPP_INCLUDED -#define BOOST_MPL_ERASE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct erase_impl; -template< typename Sequence, typename First, typename Last > struct erase; - -}} - -#endif // BOOST_MPL_ERASE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/erase_key.hpp b/lib/3rdParty/boost/boost/mpl/erase_key.hpp deleted file mode 100644 index 0e7b820e9..000000000 --- a/lib/3rdParty/boost/boost/mpl/erase_key.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_ERASE_KEY_HPP_INCLUDED -#define BOOST_MPL_ERASE_KEY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Key) - > -struct erase_key - : erase_key_impl< typename sequence_tag::type > - ::template apply< Sequence,Key > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,erase_key,(Sequence,Key)) -}; - -BOOST_MPL_AUX_NA_SPEC(2,erase_key) - -}} - -#endif // BOOST_MPL_ERASE_KEY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/erase_key_fwd.hpp b/lib/3rdParty/boost/boost/mpl/erase_key_fwd.hpp deleted file mode 100644 index 54265eef8..000000000 --- a/lib/3rdParty/boost/boost/mpl/erase_key_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED -#define BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct erase_key_impl; -template< typename Sequence, typename Key > struct erase_key; - -}} - -#endif // BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/eval_if.hpp b/lib/3rdParty/boost/boost/mpl/eval_if.hpp deleted file mode 100644 index e892703fd..000000000 --- a/lib/3rdParty/boost/boost/mpl/eval_if.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED -#define BOOST_MPL_EVAL_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(C) - , typename BOOST_MPL_AUX_NA_PARAM(F1) - , typename BOOST_MPL_AUX_NA_PARAM(F2) - > -struct eval_if -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \ - && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \ - ) -{ - typedef typename if_::type f_; - typedef typename f_::type type; -#else - : if_::type -{ -#endif - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2)) -}; - -// (almost) copy & paste in order to save one more -// recursively nested template instantiation to user -template< - bool C - , typename F1 - , typename F2 - > -struct eval_if_c -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \ - && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \ - ) -{ - typedef typename if_c::type f_; - typedef typename f_::type type; -#else - : if_c::type -{ -#endif -}; - -BOOST_MPL_AUX_NA_SPEC(3, eval_if) - -}} - -#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/filter_view.hpp b/lib/3rdParty/boost/boost/mpl/filter_view.hpp deleted file mode 100644 index e2830d00c..000000000 --- a/lib/3rdParty/boost/boost/mpl/filter_view.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_FILTER_VIEW_HPP_INCLUDED -#define BOOST_MPL_FILTER_VIEW_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Predicate) - > -struct filter_view -{ - private: - typedef typename lambda::type pred_; - typedef typename begin::type first_; - typedef typename end::type last_; - - public: - struct tag; - typedef filter_view type; - typedef typename aux::next_filter_iter< first_,last_,pred_ >::type begin; - typedef aux::filter_iter< last_,last_,pred_ > end; -}; - -BOOST_MPL_AUX_NA_SPEC(2, filter_view) - -}} - -#endif // BOOST_MPL_FILTER_VIEW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/find.hpp b/lib/3rdParty/boost/boost/mpl/find.hpp deleted file mode 100644 index 31a8b0eb8..000000000 --- a/lib/3rdParty/boost/boost/mpl/find.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_FIND_HPP_INCLUDED -#define BOOST_MPL_FIND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct find - : find_if< Sequence,same_as > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, find) - -}} - -#endif // BOOST_MPL_FIND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/find_if.hpp b/lib/3rdParty/boost/boost/mpl/find_if.hpp deleted file mode 100644 index 83a007e77..000000000 --- a/lib/3rdParty/boost/boost/mpl/find_if.hpp +++ /dev/null @@ -1,50 +0,0 @@ - -#ifndef BOOST_MPL_FIND_IF_HPP_INCLUDED -#define BOOST_MPL_FIND_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(find_if) - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Predicate) - > -struct find_if -{ - typedef typename iter_fold_if< - Sequence - , void - , mpl::arg<1> // ignore - , protect< aux::find_if_pred > - >::type result_; - - typedef typename second::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate)) -}; - -BOOST_MPL_AUX_NA_SPEC(2,find_if) - -}} - -#endif // BOOST_MPL_FIND_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/fold.hpp b/lib/3rdParty/boost/boost/mpl/fold.hpp deleted file mode 100644 index 0bc67ef3d..000000000 --- a/lib/3rdParty/boost/boost/mpl/fold.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_FOLD_HPP_INCLUDED -#define BOOST_MPL_FOLD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(State) - , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp) - > -struct fold -{ - typedef typename aux::fold_impl< - ::boost::mpl::O1_size::value - , typename begin::type - , typename end::type - , State - , ForwardOp - >::state type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, fold) - -}} - -#endif // BOOST_MPL_FOLD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/for_each.hpp b/lib/3rdParty/boost/boost/mpl/for_each.hpp deleted file mode 100644 index 6b40ce166..000000000 --- a/lib/3rdParty/boost/boost/mpl/for_each.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -#ifndef BOOST_MPL_FOR_EACH_HPP_INCLUDED -#define BOOST_MPL_FOR_EACH_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< bool done = true > -struct for_each_impl -{ - template< - typename Iterator - , typename LastIterator - , typename TransformFunc - , typename F - > - BOOST_MPL_CFG_GPU_ENABLED - static void execute( - Iterator* - , LastIterator* - , TransformFunc* - , F - ) - { - } -}; - -template<> -struct for_each_impl -{ - template< - typename Iterator - , typename LastIterator - , typename TransformFunc - , typename F - > - BOOST_MPL_CFG_GPU_ENABLED - static void execute( - Iterator* - , LastIterator* - , TransformFunc* - , F f - ) - { - typedef typename deref::type item; - typedef typename apply1::type arg; - - // dwa 2002/9/10 -- make sure not to invoke undefined behavior - // when we pass arg. - value_initialized x; - aux::unwrap(f, 0)(boost::get(x)); - - typedef typename mpl::next::type iter; - for_each_impl::value> - ::execute( static_cast(0), static_cast(0), static_cast(0), f); - } -}; - -} // namespace aux - -// agurt, 17/mar/02: pointer default parameters are necessary to workaround -// MSVC 6.5 function template signature's mangling bug -template< - typename Sequence - , typename TransformOp - , typename F - > -BOOST_MPL_CFG_GPU_ENABLED -inline -void for_each(F f, Sequence* = 0, TransformOp* = 0) -{ - BOOST_MPL_ASSERT(( is_sequence )); - - typedef typename begin::type first; - typedef typename end::type last; - - aux::for_each_impl< boost::is_same::value > - ::execute(static_cast(0), static_cast(0), static_cast(0), f); -} - -template< - typename Sequence - , typename F - > -BOOST_MPL_CFG_GPU_ENABLED -inline -void for_each(F f, Sequence* = 0) -{ - // jfalcou: fully qualifying this call so it doesnt clash with phoenix::for_each - // ons ome compilers -- done on 02/28/2011 - boost::mpl::for_each >(f); -} - -}} - -#endif // BOOST_MPL_FOR_EACH_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/front.hpp b/lib/3rdParty/boost/boost/mpl/front.hpp deleted file mode 100644 index b222ff254..000000000 --- a/lib/3rdParty/boost/boost/mpl/front.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_FRONT_HPP_INCLUDED -#define BOOST_MPL_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct front - : front_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,front,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, front) - -}} - -#endif // BOOST_MPL_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/front_fwd.hpp b/lib/3rdParty/boost/boost/mpl/front_fwd.hpp deleted file mode 100644 index f01282a77..000000000 --- a/lib/3rdParty/boost/boost/mpl/front_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_FRONT_FWD_HPP_INCLUDED -#define BOOST_MPL_FRONT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct front_impl; -template< typename Sequence > struct front; - -}} - -#endif // BOOST_MPL_FRONT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/front_inserter.hpp b/lib/3rdParty/boost/boost/mpl/front_inserter.hpp deleted file mode 100644 index 0a6b197ef..000000000 --- a/lib/3rdParty/boost/boost/mpl/front_inserter.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED -#define BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< - typename Sequence - > -struct front_inserter - : inserter< Sequence,push_front<> > -{ -}; - -}} - -#endif // BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/greater.hpp b/lib/3rdParty/boost/boost/mpl/greater.hpp deleted file mode 100644 index b1f0a2cf1..000000000 --- a/lib/3rdParty/boost/boost/mpl/greater.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_GREATER_HPP_INCLUDED -#define BOOST_MPL_GREATER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME greater -#define AUX778076_OP_TOKEN > -#include - -#endif // BOOST_MPL_GREATER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/greater_equal.hpp b/lib/3rdParty/boost/boost/mpl/greater_equal.hpp deleted file mode 100644 index 7a06a62e8..000000000 --- a/lib/3rdParty/boost/boost/mpl/greater_equal.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED -#define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME greater_equal -#define AUX778076_OP_TOKEN >= -#include - -#endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/has_key.hpp b/lib/3rdParty/boost/boost/mpl/has_key.hpp deleted file mode 100644 index ac3a5c7bb..000000000 --- a/lib/3rdParty/boost/boost/mpl/has_key.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_HAS_KEY_HPP_INCLUDED -#define BOOST_MPL_HAS_KEY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence) - , typename BOOST_MPL_AUX_NA_PARAM(Key) - > -struct has_key - : has_key_impl< typename sequence_tag::type > - ::template apply -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,has_key,(AssociativeSequence,Key)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, has_key) - -}} - -#endif // BOOST_MPL_HAS_KEY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/has_key_fwd.hpp b/lib/3rdParty/boost/boost/mpl/has_key_fwd.hpp deleted file mode 100644 index 54b7ed622..000000000 --- a/lib/3rdParty/boost/boost/mpl/has_key_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED -#define BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct has_key_impl; -template< typename AssociativeSequence, typename Key > struct has_key; - -}} - -#endif // BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/has_xxx.hpp b/lib/3rdParty/boost/boost/mpl/has_xxx.hpp deleted file mode 100644 index 82e67ddca..000000000 --- a/lib/3rdParty/boost/boost/mpl/has_xxx.hpp +++ /dev/null @@ -1,647 +0,0 @@ - -#ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED -#define BOOST_MPL_HAS_XXX_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2006 -// Copyright David Abrahams 2002-2003 -// Copyright Daniel Walker 2007 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) ) -# include -#endif - -#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) - -# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -// agurt, 11/sep/02: MSVC-specific version (< 7.1), based on a USENET -// newsgroup's posting by John Madsen (comp.lang.c++.moderated, -// 1999-11-12 19:17:06 GMT); the code is _not_ standard-conforming, but -// it works way more reliably than the SFINAE-based implementation - -// Modified dwa 8/Oct/02 to handle reference types. - -# include -# include - -namespace boost { namespace mpl { namespace aux { - -struct has_xxx_tag; - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) -template< typename U > struct msvc_incomplete_array -{ - typedef char (&type)[sizeof(U) + 1]; -}; -#endif - -template< typename T > -struct msvc_is_incomplete -{ - // MSVC is capable of some kinds of SFINAE. If U is an incomplete - // type, it won't pick the second overload - static char tester(...); - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - template< typename U > - static typename msvc_incomplete_array::type tester(type_wrapper); -#else - template< typename U > - static char (& tester(type_wrapper) )[sizeof(U)+1]; -#endif - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(tester(type_wrapper())) == 1 - ); -}; - -template<> -struct msvc_is_incomplete -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -}}} - -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \ -template< typename T, typename name = ::boost::mpl::aux::has_xxx_tag > \ -struct BOOST_PP_CAT(trait,_impl) : T \ -{ \ - static boost::mpl::aux::no_tag \ - test(void(*)(::boost::mpl::aux::has_xxx_tag)); \ - \ - static boost::mpl::aux::yes_tag test(...); \ - \ - BOOST_STATIC_CONSTANT(bool, value = \ - sizeof(test(static_cast(0))) \ - != sizeof(boost::mpl::aux::no_tag) \ - ); \ - typedef boost::mpl::bool_ type; \ -}; \ -\ -template< typename T, typename fallback_ = boost::mpl::bool_ > \ -struct trait \ - : boost::mpl::if_c< \ - boost::mpl::aux::msvc_is_incomplete::value \ - , boost::mpl::bool_ \ - , BOOST_PP_CAT(trait,_impl) \ - >::type \ -{ \ -}; \ -\ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, void) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, bool) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, char) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed char) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned char) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed short) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned short) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed int) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned int) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed long) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned long) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, float) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, double) \ -BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, long double) \ -/**/ - -# define BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \ -template<> struct trait \ -{ \ - BOOST_STATIC_CONSTANT(bool, value = false); \ - typedef boost::mpl::bool_ type; \ -}; \ -/**/ - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \ - BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \ - BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, wchar_t) \ -/**/ -#else -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \ - BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \ -/**/ -#endif - - -// SFINAE-based implementations below are derived from a USENET newsgroup's -// posting by Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST) - -# elif BOOST_WORKAROUND(BOOST_MSVC, <= 1400) \ - || (BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) && defined(__CUDACC__)) \ - || BOOST_WORKAROUND(__IBMCPP__, <= 700) - -// MSVC 7.1 & MSVC 8.0 & VACPP - -// agurt, 15/jun/05: replace overload-based SFINAE implementation with SFINAE -// applied to partial specialization to fix some apparently random failures -// (thanks to Daniel Wallin for researching this!) - -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ -template< typename T > \ -struct BOOST_PP_CAT(trait, _msvc_sfinae_helper) \ -{ \ - typedef void type; \ -};\ -\ -template< typename T, typename U = void > \ -struct BOOST_PP_CAT(trait,_impl_) \ -{ \ - BOOST_STATIC_CONSTANT(bool, value = false); \ - typedef boost::mpl::bool_ type; \ -}; \ -\ -template< typename T > \ -struct BOOST_PP_CAT(trait,_impl_)< \ - T \ - , typename BOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \ - > \ -{ \ - BOOST_STATIC_CONSTANT(bool, value = true); \ - typedef boost::mpl::bool_ type; \ -}; \ -\ -template< typename T, typename fallback_ = boost::mpl::bool_ > \ -struct trait \ - : BOOST_PP_CAT(trait,_impl_) \ -{ \ -}; \ -/**/ - -# elif BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) ) - -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \ -template< typename T, bool IS_CLASS > \ -struct trait_tester \ -{ \ - BOOST_STATIC_CONSTANT( bool, value = false ); \ -}; \ -template< typename T > \ -struct trait_tester< T, true > \ -{ \ - struct trait_tester_impl \ - { \ - template < class U > \ - static int resolve( boost::mpl::aux::type_wrapper const volatile * \ - , boost::mpl::aux::type_wrapper* = 0 ); \ - static char resolve( ... ); \ - }; \ - typedef boost::mpl::aux::type_wrapper t_; \ - BOOST_STATIC_CONSTANT( bool, value = ( sizeof( trait_tester_impl::resolve( static_cast< t_ * >(0) ) ) == sizeof(int) ) ); \ -}; \ -template< typename T, typename fallback_ = boost::mpl::bool_ > \ -struct trait \ -{ \ - BOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, boost::is_class< T >::value >::value) ); \ - typedef boost::mpl::bool_< trait< T, fallback_ >::value > type; \ -}; - -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ - BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF( trait \ - , BOOST_PP_CAT(trait,_tester) \ - , name \ - , default_ ) \ -/**/ - -# else // other SFINAE-capable compilers - -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ -template< typename T, typename fallback_ = boost::mpl::bool_ > \ -struct trait \ -{ \ - struct gcc_3_2_wknd \ - { \ - template< typename U > \ - static boost::mpl::aux::yes_tag test( \ - boost::mpl::aux::type_wrapper const volatile* \ - , boost::mpl::aux::type_wrapper* = 0 \ - ); \ - \ - static boost::mpl::aux::no_tag test(...); \ - }; \ - \ - typedef boost::mpl::aux::type_wrapper t_; \ - BOOST_STATIC_CONSTANT(bool, value = \ - sizeof(gcc_3_2_wknd::test(static_cast(0))) \ - == sizeof(boost::mpl::aux::yes_tag) \ - ); \ - typedef boost::mpl::bool_ type; \ -}; \ -/**/ - -# endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - - -#else // BOOST_MPL_CFG_NO_HAS_XXX - -// placeholder implementation - -# define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ -template< typename T, typename fallback_ = boost::mpl::bool_ > \ -struct trait \ -{ \ - BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \ - typedef fallback_ type; \ -}; \ -/**/ - -#endif - -#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \ - BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(has_,name), name, false) \ -/**/ - - -#if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) - -// Create a boolean Metafunction to detect a nested template -// member. This implementation is based on a USENET newsgroup's -// posting by Aleksey Gurtovoy (comp.lang.c++.moderated, 2002-03-19), -// Rani Sharoni's USENET posting cited above, the non-template has_xxx -// implementations above, and discussion on the Boost mailing list. - -# if !defined(BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES) -# if BOOST_WORKAROUND(BOOST_MSVC, <= 1400) -# define BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES 1 -# else -# define BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES 0 -# endif -# endif - -# if !defined(BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION) -# if (defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS)) -# define BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION 1 -# else -# define BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION 0 -# endif -# endif - -# if !defined(BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE) -# if BOOST_WORKAROUND(BOOST_MSVC, <= 1400) -# define BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE 1 -# else -# define BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE 0 -# endif -# endif - -// NOTE: Many internal implementation macros take a Boost.Preprocessor -// array argument called args which is of the following form. -// ( 4, ( trait, name, max_arity, default_ ) ) - -# define BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \ - BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _introspect) \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \ - BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _substitute), n) \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) \ - BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _test) \ - /**/ - -// Thanks to Guillaume Melquiond for pointing out the need for the -// "substitute" template as an argument to the overloaded test -// functions to get SFINAE to work for member templates with the -// correct name but different number of arguments. -# define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \ - template< \ - template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename V) > class V \ - > \ - struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \ - }; \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \ - BOOST_PP_REPEAT( \ - BOOST_PP_ARRAY_ELEM(2, args) \ - , BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE \ - , args \ - ) \ - /**/ - -# if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION -# define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \ - template< typename V > \ - static boost::mpl::aux::no_tag \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \ - /**/ -# else -# define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \ - static boost::mpl::aux::no_tag \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \ - /**/ -# endif - -# if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES -# define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT(z, n, args) \ - template< typename V > \ - static boost::mpl::aux::yes_tag \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \ - boost::mpl::aux::type_wrapper< V > const volatile* \ - , BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) < \ - V::template BOOST_PP_ARRAY_ELEM(1, args) \ - >* = 0 \ - ); \ - /**/ -# define BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \ - BOOST_PP_REPEAT( \ - BOOST_PP_ARRAY_ELEM(2, args) \ - , BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT \ - , args \ - ) \ - /**/ -# else -# define BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \ - template< typename V > \ - static boost::mpl::aux::yes_tag \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \ - V const volatile* \ - , member_macro(args, V, T)* = 0 \ - ); \ - /**/ -# endif - -# if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION -# define BOOST_MPL_HAS_MEMBER_TEST(args) \ - sizeof(BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U >(0)) \ - == sizeof(boost::mpl::aux::yes_tag) \ - /**/ -# else -# if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES -# define BOOST_MPL_HAS_MEMBER_TEST(args) \ - sizeof( \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \ - static_cast< boost::mpl::aux::type_wrapper< U >* >(0) \ - ) \ - ) == sizeof(boost::mpl::aux::yes_tag) \ - /**/ -# else -# define BOOST_MPL_HAS_MEMBER_TEST(args) \ - sizeof( \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \ - static_cast< U* >(0) \ - ) \ - ) == sizeof(boost::mpl::aux::yes_tag) \ - /**/ -# endif -# endif - -# define BOOST_MPL_HAS_MEMBER_INTROSPECT( \ - args, substitute_macro, member_macro \ - ) \ - template< typename U > \ - struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) { \ - BOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \ - BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \ - BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \ - BOOST_STATIC_CONSTANT( \ - bool, value = BOOST_MPL_HAS_MEMBER_TEST(args) \ - ); \ - typedef boost::mpl::bool_< value > type; \ - }; \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \ - args, introspect_macro, substitute_macro, member_macro \ - ) \ - template< \ - typename T \ - , typename fallback_ \ - = boost::mpl::bool_< BOOST_PP_ARRAY_ELEM(3, args) > \ - > \ - class BOOST_PP_ARRAY_ELEM(0, args) { \ - introspect_macro(args, substitute_macro, member_macro) \ - public: \ - static const bool value \ - = BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< T >::value; \ - typedef typename BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< \ - T \ - >::type type; \ - }; \ - /**/ - -// BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE expands to the full -// implementation of the function-based metafunction. Compile with -E -// to see the preprocessor output for this macro. -# define BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \ - args, substitute_macro, member_macro \ - ) \ - BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \ - args \ - , BOOST_MPL_HAS_MEMBER_INTROSPECT \ - , substitute_macro \ - , member_macro \ - ) \ - /**/ - -# if BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE - -# if !defined(BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE) -# if BOOST_WORKAROUND(BOOST_MSVC, <= 1400) -# define BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE 1 -# endif -# endif - -# if !BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE -# define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \ - args, n \ - ) \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \ - /**/ -# else -# define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \ - args, n \ - ) \ - BOOST_PP_CAT( \ - boost_mpl_has_xxx_ \ - , BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \ - ) \ - /**/ -# endif - -# define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME( \ - args \ - ) \ - BOOST_PP_CAT( \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \ - args, 0 \ - ) \ - , _tag \ - ) \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \ - z, n, args \ - ) \ - template< \ - template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename U) > class U \ - > \ - struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \ - args, n \ - ) { \ - typedef \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \ - type; \ - }; \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \ - args, substitute_macro \ - ) \ - typedef void \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args); \ - BOOST_PP_REPEAT( \ - BOOST_PP_ARRAY_ELEM(2, args) \ - , BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE \ - , args \ - ) \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE( \ - args, member_macro \ - ) \ - template< \ - typename U \ - , typename V \ - = BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \ - > \ - struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) { \ - BOOST_STATIC_CONSTANT(bool, value = false); \ - typedef boost::mpl::bool_< value > type; \ - }; \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE( \ - z, n, args \ - ) \ - template< typename U > \ - struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< \ - U \ - , typename \ - BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \ - args, n \ - )< \ - BOOST_MSVC_TYPENAME U::BOOST_PP_ARRAY_ELEM(1, args)< > \ - >::type \ - > { \ - BOOST_STATIC_CONSTANT(bool, value = true); \ - typedef boost::mpl::bool_< value > type; \ - }; \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE( \ - args, member_macro \ - ) \ - BOOST_PP_REPEAT( \ - BOOST_PP_ARRAY_ELEM(2, args) \ - , BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE \ - , args \ - ) \ - /**/ - -# define BOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE( \ - args, substitute_macro, member_macro \ - ) \ - BOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE(args, member_macro) \ - BOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE(args, member_macro) \ - template< typename U > \ - struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \ - : BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U > { \ - }; \ - /**/ - -// BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE expands to the full -// implementation of the template-based metafunction. Compile with -E -// to see the preprocessor output for this macro. -// -// Note that if BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE is -// defined BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE needs -// to be expanded at namespace level before -// BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE can be used. -# define BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \ - args, substitute_macro, member_macro \ - ) \ - BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \ - args, substitute_macro \ - ) \ - BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \ - args \ - , BOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE \ - , substitute_macro \ - , member_macro \ - ) \ - /**/ - -# endif // BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE - -// Note: In the current implementation the parameter and access macros -// are no longer expanded. -# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400) -# define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \ - BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \ - ( 4, ( trait, name, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \ - , BOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \ - , BOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \ - ) \ - /**/ -# else -# define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \ - BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \ - ( 4, ( trait, name, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \ - , BOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \ - , BOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \ - ) \ - /**/ -# endif - -#else // BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE - -// placeholder implementation - -# define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \ - template< typename T \ - , typename fallback_ = boost::mpl::bool_< default_ > > \ - struct trait { \ - BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \ - typedef fallback_ type; \ - }; \ - /**/ - -#endif // BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE - -# define BOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) \ - BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( \ - BOOST_PP_CAT(has_, name), name, false \ - ) \ - /**/ - -#endif // BOOST_MPL_HAS_XXX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/identity.hpp b/lib/3rdParty/boost/boost/mpl/identity.hpp deleted file mode 100644 index 190d2f53f..000000000 --- a/lib/3rdParty/boost/boost/mpl/identity.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED -#define BOOST_MPL_IDENTITY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct identity -{ - typedef T type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T)) -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct make_identity -{ - typedef identity type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T)) -}; - -BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity) -BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity) - -}} - -#endif // BOOST_MPL_IDENTITY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/if.hpp b/lib/3rdParty/boost/boost/mpl/if.hpp deleted file mode 100644 index b6bdf6c69..000000000 --- a/lib/3rdParty/boost/boost/mpl/if.hpp +++ /dev/null @@ -1,135 +0,0 @@ - -#ifndef BOOST_MPL_IF_HPP_INCLUDED -#define BOOST_MPL_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - bool C - , typename T1 - , typename T2 - > -struct if_c -{ - typedef T1 type; -}; - -template< - typename T1 - , typename T2 - > -struct if_c -{ - typedef T2 type; -}; - -// agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars -// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959 -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename BOOST_MPL_AUX_NA_PARAM(T3) - > -struct if_ -{ - private: - // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC - typedef if_c< -#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) - BOOST_MPL_AUX_VALUE_WKND(T1)::value -#else - BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value) -#endif - , T2 - , T3 - > almost_type_; - - public: - typedef typename almost_type_::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3)) -}; - -#else - -// no partial class template specialization - -namespace aux { - -template< bool C > -struct if_impl -{ - template< typename T1, typename T2 > struct result_ - { - typedef T1 type; - }; -}; - -template<> -struct if_impl -{ - template< typename T1, typename T2 > struct result_ - { - typedef T2 type; - }; -}; - -} // namespace aux - -template< - bool C_ - , typename T1 - , typename T2 - > -struct if_c -{ - typedef typename aux::if_impl< C_ > - ::template result_::type type; -}; - -// (almost) copy & paste in order to save one more -// recursively nested template instantiation to user -template< - typename BOOST_MPL_AUX_NA_PARAM(C_) - , typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct if_ -{ - enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value }; - - typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) > - ::template result_::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2)) -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -BOOST_MPL_AUX_NA_SPEC(3, if_) - -}} - -#endif // BOOST_MPL_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/index_if.hpp b/lib/3rdParty/boost/boost/mpl/index_if.hpp deleted file mode 100644 index a44473d2c..000000000 --- a/lib/3rdParty/boost/boost/mpl/index_if.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_INDEX_IF_HPP_INCLUDED -#define BOOST_MPL_INDEX_IF_HPP_INCLUDED - -// Copyright Eric Friedman 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Predicate) - > -struct index_if -{ - typedef typename iter_fold_if< - Sequence - , int_<0> - , next<> - , aux::find_if_pred - >::type result_; - - typedef typename end::type not_found_; - typedef typename first::type result_index_; - typedef typename second::type result_iterator_; - - typedef typename if_< - is_same< result_iterator_,not_found_ > - , void_ - , result_index_ - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,index_if,(Sequence,Predicate)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, index_if) - -}} - -#endif // BOOST_MPL_INDEX_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/index_of.hpp b/lib/3rdParty/boost/boost/mpl/index_of.hpp deleted file mode 100644 index cc86a12e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/index_of.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_INDEX_OF_HPP_INCLUDED -#define BOOST_MPL_INDEX_OF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright Eric Friedman 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct index_of - : index_if< Sequence,same_as > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,index_of,(Sequence,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, index_of) - -}} - -#endif // BOOST_MPL_INDEX_OF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/inherit.hpp b/lib/3rdParty/boost/boost/mpl/inherit.hpp deleted file mode 100644 index b5427371d..000000000 --- a/lib/3rdParty/boost/boost/mpl/inherit.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_INHERIT_HPP_INCLUDED -#define BOOST_MPL_INHERIT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER inherit.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - -# include -# include -# include - -namespace boost { namespace mpl { - -// 'inherit' metafunction; returns an unspecified class type -// produced by public derivation from all metafunction's parameters -// (T1,T2,..,Tn), except the parameters of 'empty_base' class type; -// regardless the position and number of 'empty_base' parameters in the -// metafunction's argument list, derivation from them is always a no-op; -// for instance: -// inherit::type == her -// inherit::type == struct unspecified : her, my {}; -// inherit::type == her -// inherit::type == her -// inherit::type == struct unspecified : her, my {}; -// inherit::type == empty_base - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1,T2)) -}; - -template< typename T1 > -struct inherit2 -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1,empty_base)) -}; - -template< typename T2 > -struct inherit2 -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base,T2)) -}; - -// needed to disambiguate the previous two in case when both -// T1 and T2 == empty_base -template<> -struct inherit2 -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base,empty_base)) -}; - -#else - -namespace aux { - -template< bool C1, bool C2 > -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1, T2 - { - typedef Derived type_; - }; -}; - -template<> -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1 - { - typedef T1 type_; - }; -}; - -template<> -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T2 - { - typedef T2 type_; - }; -}; - -template<> -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - { - typedef T1 type_; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : aux::inherit2_impl< - is_empty_base::value - , is_empty_base::value - >::template result_< inherit2,T1,T2 > -{ - typedef typename inherit2::type_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1,T2)) -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(3, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_INHERIT_HPP_INCLUDED - -///// iteration - -#else -#define n_ BOOST_PP_FRAME_ITERATION(1) - -template< - BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, na) - > -struct BOOST_PP_CAT(inherit,n_) - : inherit2< - typename BOOST_PP_CAT(inherit,BOOST_PP_DEC(n_))< - BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(n_), T) - >::type - , BOOST_PP_CAT(T,n_) - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - n_ - , BOOST_PP_CAT(inherit,n_) - , (BOOST_MPL_PP_PARAMS(n_, T)) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(n_, BOOST_PP_CAT(inherit,n_)) - -#if n_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY -/// primary template -template< - BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, empty_base) - > -struct inherit - : BOOST_PP_CAT(inherit,n_) -{ -}; - -// 'na' specialization -template<> -struct inherit< BOOST_MPL_PP_ENUM(5, na) > -{ - template< -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) - BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, empty_base) -#else - BOOST_MPL_PP_PARAMS(n_, typename T) -#endif - > - struct apply - : inherit< BOOST_MPL_PP_PARAMS(n_, T) > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(n_, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(n_, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(n_, n_, inherit) -#endif - -#undef n_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/inherit_linearly.hpp b/lib/3rdParty/boost/boost/mpl/inherit_linearly.hpp deleted file mode 100644 index fa58480b8..000000000 --- a/lib/3rdParty/boost/boost/mpl/inherit_linearly.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_INHERIT_FRONT_TO_BACK_HPP_INCLUDED -#define BOOST_MPL_INHERIT_FRONT_TO_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Types_) - , typename BOOST_MPL_AUX_NA_PARAM(Node_) - , typename Root_ = empty_base - > -struct inherit_linearly - : fold -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,inherit_linearly,(Types_,Node_,Root_)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit_linearly) - -}} - -#endif // BOOST_MPL_INHERIT_FRONT_TO_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/insert.hpp b/lib/3rdParty/boost/boost/mpl/insert.hpp deleted file mode 100644 index 5e379a497..000000000 --- a/lib/3rdParty/boost/boost/mpl/insert.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_HPP_INCLUDED -#define BOOST_MPL_INSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Pos_or_T) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct insert - : insert_impl< typename sequence_tag::type > - ::template apply< Sequence,Pos_or_T,T > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert,(Sequence,Pos_or_T,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, insert) - -}} - -#endif // BOOST_MPL_INSERT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/insert_fwd.hpp b/lib/3rdParty/boost/boost/mpl/insert_fwd.hpp deleted file mode 100644 index ba6b16176..000000000 --- a/lib/3rdParty/boost/boost/mpl/insert_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_FWD_HPP_INCLUDED -#define BOOST_MPL_INSERT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct insert_impl; -template< typename Sequence, typename Pos_or_T, typename T > struct insert; - -}} - -#endif // BOOST_MPL_INSERT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/insert_range.hpp b/lib/3rdParty/boost/boost/mpl/insert_range.hpp deleted file mode 100644 index 0c362f5ae..000000000 --- a/lib/3rdParty/boost/boost/mpl/insert_range.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_RANGE_HPP_INCLUDED -#define BOOST_MPL_INSERT_RANGE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Pos) - , typename BOOST_MPL_AUX_NA_PARAM(Range) - > -struct insert_range - : insert_range_impl< typename sequence_tag::type > - ::template apply< Sequence,Pos,Range > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert_range,(Sequence,Pos,Range)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, insert_range) - -}} - -#endif // BOOST_MPL_INSERT_RANGE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/insert_range_fwd.hpp b/lib/3rdParty/boost/boost/mpl/insert_range_fwd.hpp deleted file mode 100644 index d9c946f2a..000000000 --- a/lib/3rdParty/boost/boost/mpl/insert_range_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED -#define BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct insert_range_impl; -template< typename Sequence, typename Pos, typename Range > struct insert_range; - -}} - -#endif // BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/inserter.hpp b/lib/3rdParty/boost/boost/mpl/inserter.hpp deleted file mode 100644 index 964df7f69..000000000 --- a/lib/3rdParty/boost/boost/mpl/inserter.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_INSERTER_HPP_INCLUDED -#define BOOST_MPL_INSERTER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< - typename Sequence - , typename Operation - > -struct inserter -{ - typedef Sequence state; - typedef Operation operation; -}; - -}} - -#endif // BOOST_MPL_INSERTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/int.hpp b/lib/3rdParty/boost/boost/mpl/int.hpp deleted file mode 100644 index b7fa0a765..000000000 --- a/lib/3rdParty/boost/boost/mpl/int.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_INT_HPP_INCLUDED -#define BOOST_MPL_INT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#define AUX_WRAPPER_VALUE_TYPE int -#include - -#endif // BOOST_MPL_INT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/int_fwd.hpp b/lib/3rdParty/boost/boost/mpl/int_fwd.hpp deleted file mode 100644 index 03d20c1cd..000000000 --- a/lib/3rdParty/boost/boost/mpl/int_fwd.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED -#define BOOST_MPL_INT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(int_) - -#endif // BOOST_MPL_INT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/integral_c.hpp b/lib/3rdParty/boost/boost/mpl/integral_c.hpp deleted file mode 100644 index 7a692dcab..000000000 --- a/lib/3rdParty/boost/boost/mpl/integral_c.hpp +++ /dev/null @@ -1,51 +0,0 @@ - -#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED -#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#if BOOST_WORKAROUND(__HP_aCC, <= 53800) -// the type of non-type template arguments may not depend on template arguments -# define AUX_WRAPPER_PARAMS(N) typename T, long N -#else -# define AUX_WRAPPER_PARAMS(N) typename T, T N -#endif - -#define AUX_WRAPPER_NAME integral_c -#define AUX_WRAPPER_VALUE_TYPE T -#define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value > -#include - - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551) -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -// 'bool' constant doesn't have 'next'/'prior' members -template< bool C > -struct integral_c -{ - BOOST_STATIC_CONSTANT(bool, value = C); - typedef integral_c_tag tag; - typedef integral_c type; - typedef bool value_type; - operator bool() const { return this->value; } -}; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -#endif - -#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/integral_c_fwd.hpp b/lib/3rdParty/boost/boost/mpl/integral_c_fwd.hpp deleted file mode 100644 index 05e311daa..000000000 --- a/lib/3rdParty/boost/boost/mpl/integral_c_fwd.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED -#define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -#if BOOST_WORKAROUND(__HP_aCC, <= 53800) -// the type of non-type template arguments may not depend on template arguments -template< typename T, long N > struct integral_c; -#else -template< typename T, T N > struct integral_c; -#endif - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c) - -#endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/integral_c_tag.hpp b/lib/3rdParty/boost/boost/mpl/integral_c_tag.hpp deleted file mode 100644 index b6046920f..000000000 --- a/lib/3rdParty/boost/boost/mpl/integral_c_tag.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED -#define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); }; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag) - -#endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/is_placeholder.hpp b/lib/3rdParty/boost/boost/mpl/is_placeholder.hpp deleted file mode 100644 index 9f79ef102..000000000 --- a/lib/3rdParty/boost/boost/mpl/is_placeholder.hpp +++ /dev/null @@ -1,67 +0,0 @@ - -#ifndef BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED -#define BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename T > -struct is_placeholder - : bool_ -{ -}; - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct is_placeholder< arg > - : bool_ -{ -}; - -#else - -namespace aux { - -aux::no_tag is_placeholder_helper(...); - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > -aux::yes_tag is_placeholder_helper(aux::type_wrapper< arg >*); - -} // namespace aux - -template< typename T > -struct is_placeholder -{ - static aux::type_wrapper* get(); - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_placeholder_helper(get())) == sizeof(aux::yes_tag) - ); - - typedef bool_ type; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}} - -#endif // BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/is_sequence.hpp b/lib/3rdParty/boost/boost/mpl/is_sequence.hpp deleted file mode 100644 index 68e036fa9..000000000 --- a/lib/3rdParty/boost/boost/mpl/is_sequence.hpp +++ /dev/null @@ -1,112 +0,0 @@ - -#ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED -#define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# include -#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300) -# include -#endif - -#include - -namespace boost { namespace mpl { - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -namespace aux { - -// agurt, 11/jun/03: -// MSVC 6.5/7.0 fails if 'has_begin' is instantiated on a class type that has a -// 'begin' member that doesn't name a type; e.g. 'has_begin< std::vector >' -// would fail; requiring 'T' to have _both_ 'tag' and 'begin' members workarounds -// the issue for most real-world cases -template< typename T > struct is_sequence_impl - : and_< - identity< aux::has_tag > - , identity< aux::has_begin > - > -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct is_sequence - : if_< -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - aux::msvc_is_class -#else - boost::is_class -#endif - , aux::is_sequence_impl - , bool_ - >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T)) -}; - -#elif defined(BOOST_MPL_CFG_NO_HAS_XXX) - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct is_sequence - : bool_ -{ -}; - -#else - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct is_sequence - : not_< is_same< typename begin::type, void_ > > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T)) -}; - -#endif // BOOST_MSVC - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) -template<> struct is_sequence - : bool_ -{ -}; -#endif - -BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence) - -}} - -#endif // BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/iter_fold.hpp b/lib/3rdParty/boost/boost/mpl/iter_fold.hpp deleted file mode 100644 index 1b56b7904..000000000 --- a/lib/3rdParty/boost/boost/mpl/iter_fold.hpp +++ /dev/null @@ -1,49 +0,0 @@ - -#ifndef BOOST_MPL_ITER_FOLD_HPP_INCLUDED -#define BOOST_MPL_ITER_FOLD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(State) - , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp) - > -struct iter_fold -{ - typedef typename aux::iter_fold_impl< - ::boost::mpl::O1_size::value - , typename begin::type - , typename end::type - , State - , typename lambda::type - >::state type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, iter_fold) - -}} - -#endif // BOOST_MPL_ITER_FOLD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/iter_fold_if.hpp b/lib/3rdParty/boost/boost/mpl/iter_fold_if.hpp deleted file mode 100644 index 0115b7b22..000000000 --- a/lib/3rdParty/boost/boost/mpl/iter_fold_if.hpp +++ /dev/null @@ -1,117 +0,0 @@ - -#ifndef BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED -#define BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright Eric Friedman 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< typename Predicate, typename LastIterator > -struct iter_fold_if_pred -{ - template< typename State, typename Iterator > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : and_< - not_< is_same > - , apply1 - > - { -#else - { - typedef and_< - not_< is_same > - , apply1 - > type; -#endif - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(State) - , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp) - , typename BOOST_MPL_AUX_NA_PARAM(ForwardPredicate) - , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp) - , typename BOOST_MPL_AUX_NA_PARAM(BackwardPredicate) - > -struct iter_fold_if -{ - - typedef typename begin::type first_; - typedef typename end::type last_; - - typedef typename eval_if< - is_na - , if_< is_na, always, always > - , identity - >::type backward_pred_; - -// cwpro8 doesn't like 'cut-off' type here (use typedef instead) -#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) - struct result_ : -#else - typedef -#endif - aux::iter_fold_if_impl< - first_ - , State - , ForwardOp - , protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > > - , BackwardOp - , backward_pred_ - > -#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) - { }; -#else - result_; -#endif - -public: - - typedef pair< - typename result_::state - , typename result_::iterator - > type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , iter_fold_if - , (Sequence,State,ForwardOp,ForwardPredicate,BackwardOp,BackwardPredicate) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(6, iter_fold_if) - -}} - -#endif // BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/iterator_category.hpp b/lib/3rdParty/boost/boost/mpl/iterator_category.hpp deleted file mode 100644 index d5ea4afee..000000000 --- a/lib/3rdParty/boost/boost/mpl/iterator_category.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED -#define BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Iterator) - > -struct iterator_category -{ - typedef typename Iterator::category type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,iterator_category,(Iterator)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, iterator_category) - -}} - -#endif // BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/iterator_range.hpp b/lib/3rdParty/boost/boost/mpl/iterator_range.hpp deleted file mode 100644 index a637e2241..000000000 --- a/lib/3rdParty/boost/boost/mpl/iterator_range.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED -#define BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -struct iterator_range_tag; - -template< - typename BOOST_MPL_AUX_NA_PARAM(First) - , typename BOOST_MPL_AUX_NA_PARAM(Last) - > -struct iterator_range -{ - typedef iterator_range_tag tag; - typedef iterator_range type; - typedef First begin; - typedef Last end; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, iterator_range) - -}} - -#endif // BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/iterator_tags.hpp b/lib/3rdParty/boost/boost/mpl/iterator_tags.hpp deleted file mode 100644 index 7c3116ab4..000000000 --- a/lib/3rdParty/boost/boost/mpl/iterator_tags.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED -#define BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { - -struct forward_iterator_tag : int_<0> { typedef forward_iterator_tag type; }; -struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; }; -struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; }; - -}} - -#endif // BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/joint_view.hpp b/lib/3rdParty/boost/boost/mpl/joint_view.hpp deleted file mode 100644 index cd9cddac7..000000000 --- a/lib/3rdParty/boost/boost/mpl/joint_view.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED -#define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { -struct joint_view_tag; -} - -template<> -struct size_impl< aux::joint_view_tag > -{ - template < typename JointView > struct apply - : plus< - size - , size - > - {}; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence1_) - , typename BOOST_MPL_AUX_NA_PARAM(Sequence2_) - > -struct joint_view -{ - typedef typename mpl::begin::type first1_; - typedef typename mpl::end::type last1_; - typedef typename mpl::begin::type first2_; - typedef typename mpl::end::type last2_; - - // agurt, 25/may/03: for the 'size_traits' implementation above - typedef Sequence1_ sequence1_; - typedef Sequence2_ sequence2_; - - typedef joint_view type; - typedef aux::joint_view_tag tag; - typedef joint_iter begin; - typedef joint_iter end; -}; - -BOOST_MPL_AUX_NA_SPEC(2, joint_view) - -}} - -#endif // BOOST_MPL_JOINT_VIEW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/key_type.hpp b/lib/3rdParty/boost/boost/mpl/key_type.hpp deleted file mode 100644 index 77bb37f19..000000000 --- a/lib/3rdParty/boost/boost/mpl/key_type.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_KEY_TYPE_HPP_INCLUDED -#define BOOST_MPL_KEY_TYPE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct key_type - : apply_wrap2< - key_type_impl< typename sequence_tag::type > - , AssociativeSequence, T> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,key_type,(AssociativeSequence,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, key_type) - -}} - -#endif // BOOST_MPL_KEY_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/key_type_fwd.hpp b/lib/3rdParty/boost/boost/mpl/key_type_fwd.hpp deleted file mode 100644 index 1e86b782c..000000000 --- a/lib/3rdParty/boost/boost/mpl/key_type_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED -#define BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct key_type_impl; -template< typename AssociativeSequence, typename T > struct key_type; - -}} - -#endif // BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/lambda.hpp b/lib/3rdParty/boost/boost/mpl/lambda.hpp deleted file mode 100644 index cc8f6075c..000000000 --- a/lib/3rdParty/boost/boost/mpl/lambda.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED -#define BOOST_MPL_LAMBDA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# include -#else -# include -# include -# define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS -#endif - -#endif // BOOST_MPL_LAMBDA_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/lambda_fwd.hpp b/lib/3rdParty/boost/boost/mpl/lambda_fwd.hpp deleted file mode 100644 index 57b042641..000000000 --- a/lib/3rdParty/boost/boost/mpl/lambda_fwd.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED -#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) - -# include -# include -# include - -namespace boost { namespace mpl { - -template< - typename T = na - , typename Tag = void_ - BOOST_MPL_AUX_LAMBDA_ARITY_PARAM( - typename Arity = int_< aux::template_arity::value > - ) - > -struct lambda; - -}} - -#else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -# include - -namespace boost { namespace mpl { - -template< - typename T = na - , typename Tag = void_ - , typename Protect = true_ - > -struct lambda; - -}} - -#endif - -#endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/less.hpp b/lib/3rdParty/boost/boost/mpl/less.hpp deleted file mode 100644 index 63da5aa4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/less.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LESS_HPP_INCLUDED -#define BOOST_MPL_LESS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME less -#define AUX778076_OP_TOKEN < -#include - -#endif // BOOST_MPL_LESS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/less_equal.hpp b/lib/3rdParty/boost/boost/mpl/less_equal.hpp deleted file mode 100644 index 3d668c279..000000000 --- a/lib/3rdParty/boost/boost/mpl/less_equal.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED -#define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME less_equal -#define AUX778076_OP_TOKEN <= -#include - -#endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/arity.hpp b/lib/3rdParty/boost/boost/mpl/limits/arity.hpp deleted file mode 100644 index 8c3eb362c..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/arity.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED -#define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) -# define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5 -#endif - -#endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/list.hpp b/lib/3rdParty/boost/boost/mpl/limits/list.hpp deleted file mode 100644 index b22d6a7b8..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/list.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED -#define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_LIMIT_LIST_SIZE) -# define BOOST_MPL_LIMIT_LIST_SIZE 20 -#endif - -#endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/map.hpp b/lib/3rdParty/boost/boost/mpl/limits/map.hpp deleted file mode 100644 index bedba6331..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/map.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_MAP_HPP_INCLUDED -#define BOOST_MPL_LIMITS_MAP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_LIMIT_MAP_SIZE) -# define BOOST_MPL_LIMIT_MAP_SIZE 20 -#endif - -#endif // BOOST_MPL_LIMITS_MAP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/set.hpp b/lib/3rdParty/boost/boost/mpl/limits/set.hpp deleted file mode 100644 index dbc9bd0c0..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/set.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_SET_HPP_INCLUDED -#define BOOST_MPL_LIMITS_SET_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_LIMIT_SET_SIZE) -# define BOOST_MPL_LIMIT_SET_SIZE 20 -#endif - -#endif // BOOST_MPL_LIMITS_SET_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/string.hpp b/lib/3rdParty/boost/boost/mpl/limits/string.hpp deleted file mode 100644 index eb85aa389..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/string.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_STRING_HPP_INCLUDED -#define BOOST_MPL_LIMITS_STRING_HPP_INCLUDED - -// Copyright Eric Niebler 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $ -// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $ -// $Revision: 49239 $ - -#if !defined(BOOST_MPL_LIMIT_STRING_SIZE) -# define BOOST_MPL_LIMIT_STRING_SIZE 32 -#endif - -#endif // BOOST_MPL_LIMITS_STRING_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/unrolling.hpp b/lib/3rdParty/boost/boost/mpl/limits/unrolling.hpp deleted file mode 100644 index 6dba94222..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/unrolling.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED -#define BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_LIMIT_UNROLLING) -# define BOOST_MPL_LIMIT_UNROLLING 4 -#endif - -#endif // BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/limits/vector.hpp b/lib/3rdParty/boost/boost/mpl/limits/vector.hpp deleted file mode 100644 index 900758916..000000000 --- a/lib/3rdParty/boost/boost/mpl/limits/vector.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED -#define BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_LIMIT_VECTOR_SIZE) -# define BOOST_MPL_LIMIT_VECTOR_SIZE 20 -#endif - -#endif // BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list.hpp b/lib/3rdParty/boost/boost/mpl/list.hpp deleted file mode 100644 index cff8a4ddd..000000000 --- a/lib/3rdParty/boost/boost/mpl/list.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef BOOST_MPL_LIST_HPP_INCLUDED -#define BOOST_MPL_LIST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_LIST_HEADER \ - BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \ - /**/ -#else -# define AUX778076_LIST_HEADER \ - BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER) -# undef AUX778076_LIST_HEADER -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME list -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_LIST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/O1_size.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/O1_size.hpp deleted file mode 100644 index ccbc3f1b3..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/O1_size.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct O1_size_impl< aux::list_tag > -{ - template< typename List > struct apply - : List::size - { - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/begin_end.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/begin_end.hpp deleted file mode 100644 index b568bee21..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/begin_end.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct begin_impl< aux::list_tag > -{ - template< typename List > struct apply - { - typedef l_iter type; - }; -}; - -template<> -struct end_impl< aux::list_tag > -{ - template< typename > struct apply - { - typedef l_iter type; - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/clear.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/clear.hpp deleted file mode 100644 index b16162f7c..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/clear.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct clear_impl< aux::list_tag > -{ - template< typename List > struct apply - { - typedef l_end type; - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/empty.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/empty.hpp deleted file mode 100644 index 95f924394..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/empty.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct empty_impl< aux::list_tag > -{ - template< typename List > struct apply - : not_ - { - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/front.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/front.hpp deleted file mode 100644 index 9bea1fd34..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/front.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct front_impl< aux::list_tag > -{ - template< typename List > struct apply - { - typedef typename List::item type; - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/include_preprocessed.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/include_preprocessed.hpp deleted file mode 100644 index 4f7cab260..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/include_preprocessed.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#include - -#include -#include - -# define AUX778076_HEADER \ - aux_/preprocessed/plain/BOOST_MPL_PREPROCESSED_HEADER \ -/**/ - -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) -# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER) -# include AUX778076_INCLUDE_STRING -# undef AUX778076_INCLUDE_STRING -#else -# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER) -#endif - -# undef AUX778076_HEADER - -#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/item.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/item.hpp deleted file mode 100644 index 8505deb28..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/item.hpp +++ /dev/null @@ -1,55 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename Size - , typename T - , typename Next - > -struct l_item -{ -// agurt, 17/jul/03: to facilitate the deficient 'is_sequence' implementation -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - typedef int begin; -#endif - typedef aux::list_tag tag; - typedef l_item type; - - typedef Size size; - typedef T item; - typedef Next next; -}; - -struct l_end -{ -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - typedef int begin; -#endif - typedef aux::list_tag tag; - typedef l_end type; - typedef long_<0> size; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/iterator.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/iterator.hpp deleted file mode 100644 index 6b5ea7863..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/iterator.hpp +++ /dev/null @@ -1,76 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Node > -struct l_iter -{ - typedef aux::l_iter_tag tag; - typedef forward_iterator_tag category; -}; - -template< typename Node > -struct deref< l_iter > -{ - typedef typename Node::item type; -}; - -template< typename Node > -struct next< l_iter > -{ - typedef l_iter< typename Node::next > type; -}; - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template< typename Node > -struct l_iter -{ - typedef aux::l_iter_tag tag; - typedef forward_iterator_tag category; - typedef typename Node::item type; - typedef l_iter< typename mpl::next::type > next; -}; - -#endif - - -template<> struct l_iter -{ - typedef aux::l_iter_tag tag; - typedef forward_iterator_tag category; -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - typedef na type; - typedef l_iter next; -#endif -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter) - -}} - -#endif // BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/numbered.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/numbered.hpp deleted file mode 100644 index 0cd49a6d3..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/numbered.hpp +++ /dev/null @@ -1,68 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Peter Dimov 2000-2002 -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if defined(BOOST_PP_IS_ITERATING) - -#include -#include -#include -#include - -#define i BOOST_PP_FRAME_ITERATION(1) - -#if i == 1 - -template< - BOOST_PP_ENUM_PARAMS(i, typename T) - > -struct list1 - : l_item< - long_<1> - , T0 - , l_end - > -{ - typedef list1 type; -}; - -#else - -# define MPL_AUX_LIST_TAIL(list, i, T) \ - BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \ - BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \ - > \ - /**/ - -template< - BOOST_PP_ENUM_PARAMS(i, typename T) - > -struct BOOST_PP_CAT(list,i) - : l_item< - long_ - , T0 - , MPL_AUX_LIST_TAIL(list,i,T) - > -{ - typedef BOOST_PP_CAT(list,i) type; -}; - -# undef MPL_AUX_LIST_TAIL - -#endif // i == 1 - -#undef i - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/numbered_c.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/numbered_c.hpp deleted file mode 100644 index 0006fd6cf..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/numbered_c.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if defined(BOOST_PP_IS_ITERATING) - -#include -#include -#include -#include - -#define i BOOST_PP_FRAME_ITERATION(1) - -#if i == 1 - -template< - typename T - , BOOST_PP_ENUM_PARAMS(i, T C) - > -struct list1_c - : l_item< - long_<1> - , integral_c - , l_end - > -{ - typedef list1_c type; - typedef T value_type; -}; - -#else - -# define MPL_AUX_LIST_C_TAIL(list, i, C) \ - BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c) \ - /**/ - -template< - typename T - , BOOST_PP_ENUM_PARAMS(i, T C) - > -struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) - : l_item< - long_ - , integral_c - , MPL_AUX_LIST_C_TAIL(list,i,C) - > -{ - typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type; - typedef T value_type; -}; - -# undef MPL_AUX_LIST_C_TAIL - -#endif // i == 1 - -#undef i - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/pop_front.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/pop_front.hpp deleted file mode 100644 index 46a041456..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/pop_front.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct pop_front_impl< aux::list_tag > -{ - template< typename List > struct apply - { - typedef typename mpl::next::type type; - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list10.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list10.hpp deleted file mode 100644 index 99368d2c1..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 - > -struct list1 - : l_item< - long_<1> - , T0 - , l_end - > -{ - typedef list1 type; -}; - -template< - typename T0, typename T1 - > -struct list2 - : l_item< - long_<2> - , T0 - , list1 - > -{ - typedef list2 type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list3 - : l_item< - long_<3> - , T0 - , list2< T1,T2 > - > -{ - typedef list3 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list4 - : l_item< - long_<4> - , T0 - , list3< T1,T2,T3 > - > -{ - typedef list4 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list5 - : l_item< - long_<5> - , T0 - , list4< T1,T2,T3,T4 > - > -{ - typedef list5 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list6 - : l_item< - long_<6> - , T0 - , list5< T1,T2,T3,T4,T5 > - > -{ - typedef list6 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list7 - : l_item< - long_<7> - , T0 - , list6< T1,T2,T3,T4,T5,T6 > - > -{ - typedef list7 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list8 - : l_item< - long_<8> - , T0 - , list7< T1,T2,T3,T4,T5,T6,T7 > - > -{ - typedef list8 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list9 - : l_item< - long_<9> - , T0 - , list8< T1,T2,T3,T4,T5,T6,T7,T8 > - > -{ - typedef list9 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list10 - : l_item< - long_<10> - , T0 - , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > - > -{ - typedef list10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp deleted file mode 100644 index 7133d7121..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +++ /dev/null @@ -1,164 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list10_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0 - > -struct list1_c - : l_item< - long_<1> - , integral_c< T,C0 > - , l_end - > -{ - typedef list1_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1 - > -struct list2_c - : l_item< - long_<2> - , integral_c< T,C0 > - , list1_c< T,C1 > - > -{ - typedef list2_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2 - > -struct list3_c - : l_item< - long_<3> - , integral_c< T,C0 > - , list2_c< T,C1,C2 > - > -{ - typedef list3_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3 - > -struct list4_c - : l_item< - long_<4> - , integral_c< T,C0 > - , list3_c< T,C1,C2,C3 > - > -{ - typedef list4_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4 - > -struct list5_c - : l_item< - long_<5> - , integral_c< T,C0 > - , list4_c< T,C1,C2,C3,C4 > - > -{ - typedef list5_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5 - > -struct list6_c - : l_item< - long_<6> - , integral_c< T,C0 > - , list5_c< T,C1,C2,C3,C4,C5 > - > -{ - typedef list6_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6 - > -struct list7_c - : l_item< - long_<7> - , integral_c< T,C0 > - , list6_c< T,C1,C2,C3,C4,C5,C6 > - > -{ - typedef list7_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 - > -struct list8_c - : l_item< - long_<8> - , integral_c< T,C0 > - , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > - > -{ - typedef list8_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 - > -struct list9_c - : l_item< - long_<9> - , integral_c< T,C0 > - , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > - > -{ - typedef list9_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 - > -struct list10_c - : l_item< - long_<10> - , integral_c< T,C0 > - , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > - > -{ - typedef list10_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list20.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list20.hpp deleted file mode 100644 index 750e495f3..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list11 - : l_item< - long_<11> - , T0 - , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > - > -{ - typedef list11 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list12 - : l_item< - long_<12> - , T0 - , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > - > -{ - typedef list12 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list13 - : l_item< - long_<13> - , T0 - , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > - > -{ - typedef list13 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list14 - : l_item< - long_<14> - , T0 - , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > - > -{ - typedef list14 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list15 - : l_item< - long_<15> - , T0 - , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > - > -{ - typedef list15 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list16 - : l_item< - long_<16> - , T0 - , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > - > -{ - typedef list16 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list17 - : l_item< - long_<17> - , T0 - , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > - > -{ - typedef list17 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list18 - : l_item< - long_<18> - , T0 - , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > - > -{ - typedef list18 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list19 - : l_item< - long_<19> - , T0 - , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > - > -{ - typedef list19 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list20 - : l_item< - long_<20> - , T0 - , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > - > -{ - typedef list20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp deleted file mode 100644 index 7f15acf3e..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +++ /dev/null @@ -1,173 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list20_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - > -struct list11_c - : l_item< - long_<11> - , integral_c< T,C0 > - , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > - > -{ - typedef list11_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11 - > -struct list12_c - : l_item< - long_<12> - , integral_c< T,C0 > - , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > - > -{ - typedef list12_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12 - > -struct list13_c - : l_item< - long_<13> - , integral_c< T,C0 > - , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > - > -{ - typedef list13_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13 - > -struct list14_c - : l_item< - long_<14> - , integral_c< T,C0 > - , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > - > -{ - typedef list14_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14 - > -struct list15_c - : l_item< - long_<15> - , integral_c< T,C0 > - , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > - > -{ - typedef list15_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15 - > -struct list16_c - : l_item< - long_<16> - , integral_c< T,C0 > - , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > - > -{ - typedef list16_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16 - > -struct list17_c - : l_item< - long_<17> - , integral_c< T,C0 > - , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > - > -{ - typedef list17_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17 - > -struct list18_c - : l_item< - long_<18> - , integral_c< T,C0 > - , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > - > -{ - typedef list18_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 - > -struct list19_c - : l_item< - long_<19> - , integral_c< T,C0 > - , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > - > -{ - typedef list19_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 - > -struct list20_c - : l_item< - long_<20> - , integral_c< T,C0 > - , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > - > -{ - typedef list20_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list30.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list30.hpp deleted file mode 100644 index 545910119..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +++ /dev/null @@ -1,189 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20 - > -struct list21 - : l_item< - long_<21> - , T0 - , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > - > -{ - typedef list21 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21 - > -struct list22 - : l_item< - long_<22> - , T0 - , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > - > -{ - typedef list22 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22 - > -struct list23 - : l_item< - long_<23> - , T0 - , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > - > -{ - typedef list23 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23 - > -struct list24 - : l_item< - long_<24> - , T0 - , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > - > -{ - typedef list24 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - > -struct list25 - : l_item< - long_<25> - , T0 - , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > - > -{ - typedef list25 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25 - > -struct list26 - : l_item< - long_<26> - , T0 - , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > - > -{ - typedef list26 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26 - > -struct list27 - : l_item< - long_<27> - , T0 - , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > - > -{ - typedef list27 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27 - > -struct list28 - : l_item< - long_<28> - , T0 - , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > - > -{ - typedef list28 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28 - > -struct list29 - : l_item< - long_<29> - , T0 - , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > - > -{ - typedef list29 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - > -struct list30 - : l_item< - long_<30> - , T0 - , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > - > -{ - typedef list30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp deleted file mode 100644 index 5393d792b..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +++ /dev/null @@ -1,183 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list30_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - > -struct list21_c - : l_item< - long_<21> - , integral_c< T,C0 > - , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > - > -{ - typedef list21_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21 - > -struct list22_c - : l_item< - long_<22> - , integral_c< T,C0 > - , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > - > -{ - typedef list22_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22 - > -struct list23_c - : l_item< - long_<23> - , integral_c< T,C0 > - , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > - > -{ - typedef list23_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23 - > -struct list24_c - : l_item< - long_<24> - , integral_c< T,C0 > - , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > - > -{ - typedef list24_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24 - > -struct list25_c - : l_item< - long_<25> - , integral_c< T,C0 > - , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > - > -{ - typedef list25_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25 - > -struct list26_c - : l_item< - long_<26> - , integral_c< T,C0 > - , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > - > -{ - typedef list26_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26 - > -struct list27_c - : l_item< - long_<27> - , integral_c< T,C0 > - , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > - > -{ - typedef list27_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27 - > -struct list28_c - : l_item< - long_<28> - , integral_c< T,C0 > - , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > - > -{ - typedef list28_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 - > -struct list29_c - : l_item< - long_<29> - , integral_c< T,C0 > - , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > - > -{ - typedef list29_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 - > -struct list30_c - : l_item< - long_<30> - , integral_c< T,C0 > - , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > - > -{ - typedef list30_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list40.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list40.hpp deleted file mode 100644 index 68c676136..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +++ /dev/null @@ -1,209 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30 - > -struct list31 - : l_item< - long_<31> - , T0 - , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > - > -{ - typedef list31 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31 - > -struct list32 - : l_item< - long_<32> - , T0 - , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > - > -{ - typedef list32 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32 - > -struct list33 - : l_item< - long_<33> - , T0 - , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > - > -{ - typedef list33 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33 - > -struct list34 - : l_item< - long_<34> - , T0 - , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > - > -{ - typedef list34 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - > -struct list35 - : l_item< - long_<35> - , T0 - , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > - > -{ - typedef list35 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35 - > -struct list36 - : l_item< - long_<36> - , T0 - , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > - > -{ - typedef list36 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36 - > -struct list37 - : l_item< - long_<37> - , T0 - , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > - > -{ - typedef list37 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37 - > -struct list38 - : l_item< - long_<38> - , T0 - , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > - > -{ - typedef list38 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38 - > -struct list39 - : l_item< - long_<39> - , T0 - , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > - > -{ - typedef list39 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - > -struct list40 - : l_item< - long_<40> - , T0 - , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > - > -{ - typedef list40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp deleted file mode 100644 index 0c51ba209..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +++ /dev/null @@ -1,193 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list40_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - > -struct list31_c - : l_item< - long_<31> - , integral_c< T,C0 > - , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > - > -{ - typedef list31_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31 - > -struct list32_c - : l_item< - long_<32> - , integral_c< T,C0 > - , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > - > -{ - typedef list32_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32 - > -struct list33_c - : l_item< - long_<33> - , integral_c< T,C0 > - , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > - > -{ - typedef list33_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33 - > -struct list34_c - : l_item< - long_<34> - , integral_c< T,C0 > - , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > - > -{ - typedef list34_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34 - > -struct list35_c - : l_item< - long_<35> - , integral_c< T,C0 > - , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > - > -{ - typedef list35_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35 - > -struct list36_c - : l_item< - long_<36> - , integral_c< T,C0 > - , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > - > -{ - typedef list36_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36 - > -struct list37_c - : l_item< - long_<37> - , integral_c< T,C0 > - , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > - > -{ - typedef list37_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37 - > -struct list38_c - : l_item< - long_<38> - , integral_c< T,C0 > - , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > - > -{ - typedef list38_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 - > -struct list39_c - : l_item< - long_<39> - , integral_c< T,C0 > - , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > - > -{ - typedef list39_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 - > -struct list40_c - : l_item< - long_<40> - , integral_c< T,C0 > - , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > - > -{ - typedef list40_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list50.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list50.hpp deleted file mode 100644 index 4cc22da27..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40 - > -struct list41 - : l_item< - long_<41> - , T0 - , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > - > -{ - typedef list41 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41 - > -struct list42 - : l_item< - long_<42> - , T0 - , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > - > -{ - typedef list42 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42 - > -struct list43 - : l_item< - long_<43> - , T0 - , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > - > -{ - typedef list43 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43 - > -struct list44 - : l_item< - long_<44> - , T0 - , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > - > -{ - typedef list44 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - > -struct list45 - : l_item< - long_<45> - , T0 - , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > - > -{ - typedef list45 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45 - > -struct list46 - : l_item< - long_<46> - , T0 - , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > - > -{ - typedef list46 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46 - > -struct list47 - : l_item< - long_<47> - , T0 - , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > - > -{ - typedef list47 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47 - > -struct list48 - : l_item< - long_<48> - , T0 - , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > - > -{ - typedef list48 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48 - > -struct list49 - : l_item< - long_<49> - , T0 - , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > - > -{ - typedef list49 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48, typename T49 - > -struct list50 - : l_item< - long_<50> - , T0 - , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > - > -{ - typedef list50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp deleted file mode 100644 index 28c061d5b..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +++ /dev/null @@ -1,203 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/list/list50_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - > -struct list41_c - : l_item< - long_<41> - , integral_c< T,C0 > - , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > - > -{ - typedef list41_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41 - > -struct list42_c - : l_item< - long_<42> - , integral_c< T,C0 > - , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > - > -{ - typedef list42_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42 - > -struct list43_c - : l_item< - long_<43> - , integral_c< T,C0 > - , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > - > -{ - typedef list43_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43 - > -struct list44_c - : l_item< - long_<44> - , integral_c< T,C0 > - , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > - > -{ - typedef list44_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44 - > -struct list45_c - : l_item< - long_<45> - , integral_c< T,C0 > - , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > - > -{ - typedef list45_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45 - > -struct list46_c - : l_item< - long_<46> - , integral_c< T,C0 > - , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > - > -{ - typedef list46_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46 - > -struct list47_c - : l_item< - long_<47> - , integral_c< T,C0 > - , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > - > -{ - typedef list47_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47 - > -struct list48_c - : l_item< - long_<48> - , integral_c< T,C0 > - , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > - > -{ - typedef list48_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 - > -struct list49_c - : l_item< - long_<49> - , integral_c< T,C0 > - , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > - > -{ - typedef list49_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 - > -struct list50_c - : l_item< - long_<50> - , integral_c< T,C0 > - , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > - > -{ - typedef list50_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/push_back.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/push_back.hpp deleted file mode 100644 index 8f3b73e43..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/push_back.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Tag > struct has_push_back_impl; - -template<> -struct has_push_back_impl< aux::list_tag > -{ - template< typename Seq > struct apply - : false_ - { - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/push_front.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/push_front.hpp deleted file mode 100644 index fcfbe4ab3..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/push_front.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct push_front_impl< aux::list_tag > -{ - template< typename List, typename T > struct apply - { - typedef l_item< - typename next::type - , T - , typename List::type - > type; - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/size.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/size.hpp deleted file mode 100644 index f5e7feafd..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/size.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct size_impl< aux::list_tag > -{ - template< typename List > struct apply - : List::size - { - }; -}; - -}} - -#endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/aux_/tag.hpp b/lib/3rdParty/boost/boost/mpl/list/aux_/tag.hpp deleted file mode 100644 index f5ed2bbfe..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/aux_/tag.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED -#define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { namespace aux { - -struct list_tag; -struct l_iter_tag; - -}}} - -#endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list0.hpp b/lib/3rdParty/boost/boost/mpl/list/list0.hpp deleted file mode 100644 index 8e06b8d08..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list0.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST0_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Dummy = na > struct list0; - -template<> struct list0 - : l_end -{ - typedef l_end type; -}; - -}} - -#endif // BOOST_MPL_LIST_LIST0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list0_c.hpp b/lib/3rdParty/boost/boost/mpl/list/list0_c.hpp deleted file mode 100644 index 807ca1c2c..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list0_c.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< typename T > struct list0_c - : l_end -{ - typedef l_end type; - typedef T value_type; -}; - -}} - -#endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list10.hpp b/lib/3rdParty/boost/boost/mpl/list/list10.hpp deleted file mode 100644 index d32d0d8c7..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list10.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST10_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST10_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list10.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST10_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list10_c.hpp b/lib/3rdParty/boost/boost/mpl/list/list10_c.hpp deleted file mode 100644 index 25c8f9def..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list10_c.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list10_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list20.hpp b/lib/3rdParty/boost/boost/mpl/list/list20.hpp deleted file mode 100644 index 724cabd23..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list20.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST20_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST20_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list20.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST20_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list20_c.hpp b/lib/3rdParty/boost/boost/mpl/list/list20_c.hpp deleted file mode 100644 index 0026f695a..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list20_c.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list20_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list30.hpp b/lib/3rdParty/boost/boost/mpl/list/list30.hpp deleted file mode 100644 index a9004c737..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list30.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST30_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST30_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list30.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST30_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list30_c.hpp b/lib/3rdParty/boost/boost/mpl/list/list30_c.hpp deleted file mode 100644 index c99657477..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list30_c.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list30_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list40.hpp b/lib/3rdParty/boost/boost/mpl/list/list40.hpp deleted file mode 100644 index 02f869efb..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list40.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST40_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST40_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list40.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST40_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list40_c.hpp b/lib/3rdParty/boost/boost/mpl/list/list40_c.hpp deleted file mode 100644 index 808d599dd..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list40_c.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list50.hpp b/lib/3rdParty/boost/boost/mpl/list/list50.hpp deleted file mode 100644 index f16c68ceb..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list50.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST50_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST50_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list50.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST50_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list/list50_c.hpp b/lib/3rdParty/boost/boost/mpl/list/list50_c.hpp deleted file mode 100644 index 20692d898..000000000 --- a/lib/3rdParty/boost/boost/mpl/list/list50_c.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED -#define BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list50_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/list_c.hpp b/lib/3rdParty/boost/boost/mpl/list_c.hpp deleted file mode 100644 index 6c01fc66e..000000000 --- a/lib/3rdParty/boost/boost/mpl/list_c.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_LIST_C_HPP_INCLUDED -#define BOOST_MPL_LIST_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_LIST_C_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE),_c).hpp \ - /**/ -#else -# define AUX778076_LIST_C_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE),_c)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_C_HEADER) -# undef AUX778076_LIST_C_HEADER -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER list_c.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME list_c -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE -# define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(list,n),_c) -# define AUX778076_SEQUENCE_INTEGRAL_WRAPPER -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_LIST_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/logical.hpp b/lib/3rdParty/boost/boost/mpl/logical.hpp deleted file mode 100644 index c8236b5fe..000000000 --- a/lib/3rdParty/boost/boost/mpl/logical.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED -#define BOOST_MPL_LOGICAL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#endif // BOOST_MPL_LOGICAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/long.hpp b/lib/3rdParty/boost/boost/mpl/long.hpp deleted file mode 100644 index c45526734..000000000 --- a/lib/3rdParty/boost/boost/mpl/long.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_LONG_HPP_INCLUDED -#define BOOST_MPL_LONG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#define AUX_WRAPPER_VALUE_TYPE long -#include - -#endif // BOOST_MPL_LONG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/long_fwd.hpp b/lib/3rdParty/boost/boost/mpl/long_fwd.hpp deleted file mode 100644 index 5f62f2b81..000000000 --- a/lib/3rdParty/boost/boost/mpl/long_fwd.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_LONG_FWD_HPP_INCLUDED -#define BOOST_MPL_LONG_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct long_; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(long_) - -#endif // BOOST_MPL_LONG_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/lower_bound.hpp b/lib/3rdParty/boost/boost/mpl/lower_bound.hpp deleted file mode 100644 index 75eae9add..000000000 --- a/lib/3rdParty/boost/boost/mpl/lower_bound.hpp +++ /dev/null @@ -1,143 +0,0 @@ - -#ifndef BOOST_MPL_LOWER_BOUND_HPP_INCLUDED -#define BOOST_MPL_LOWER_BOUND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# define BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL -#endif - -#if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#else -# include -# include -# include -#endif - -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL) - -// agurt 23/oct/02: has a wrong complexity etc., but at least it works -// feel free to contribute a better implementation! -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - , typename Predicate = less<> - , typename pred_ = typename lambda::type - > -struct lower_bound - : find_if< Sequence, bind1< not_<>, bind2 > > -{ -}; - -#else - -namespace aux { - -template< - typename Distance - , typename Predicate - , typename T - , typename DeferredIterator - > -struct lower_bound_step_impl; - -template< - typename Distance - , typename Predicate - , typename T - , typename DeferredIterator - > -struct lower_bound_step -{ - typedef typename eval_if< - Distance - , lower_bound_step_impl - , DeferredIterator - >::type type; -}; - -template< - typename Distance - , typename Predicate - , typename T - , typename DeferredIterator - > -struct lower_bound_step_impl -{ - typedef typename divides< Distance, long_<2> >::type offset_; - typedef typename DeferredIterator::type iter_; - typedef typename advance< iter_,offset_ >::type middle_; - typedef typename apply2< - Predicate - , typename deref::type - , T - >::type cond_; - - typedef typename prior< minus< Distance, offset_> >::type step_; - typedef lower_bound_step< offset_,Predicate,T,DeferredIterator > step_forward_; - typedef lower_bound_step< step_,Predicate,T,next > step_backward_; - typedef typename eval_if< - cond_ - , step_backward_ - , step_forward_ - >::type type; -}; - - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - , typename Predicate = less<> - > -struct lower_bound -{ - private: - typedef typename lambda::type pred_; - typedef typename size::type size_; - - public: - typedef typename aux::lower_bound_step< - size_,pred_,T,begin - >::type type; -}; - -#endif // BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL - -BOOST_MPL_AUX_NA_SPEC(2, lower_bound) - -}} - -#endif // BOOST_MPL_LOWER_BOUND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map.hpp b/lib/3rdParty/boost/boost/mpl/map.hpp deleted file mode 100644 index 01012964f..000000000 --- a/lib/3rdParty/boost/boost/mpl/map.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef BOOST_MPL_MAP_HPP_INCLUDED -#define BOOST_MPL_MAP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_MAP_HEADER \ - BOOST_PP_CAT(map, BOOST_MPL_LIMIT_MAP_SIZE).hpp \ - /**/ -#else -# define AUX778076_MAP_HEADER \ - BOOST_PP_CAT(map, BOOST_MPL_LIMIT_MAP_SIZE)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/map/AUX778076_MAP_HEADER) -# undef AUX778076_MAP_HEADER -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER map.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME map -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_MAP_SIZE -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_MAP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/at_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/at_impl.hpp deleted file mode 100644 index 03f125852..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/at_impl.hpp +++ /dev/null @@ -1,144 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_AT_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_AT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) -# include -# include -# include -# include -#endif - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template< typename Map, typename Key > -struct m_at -{ - typedef aux::type_wrapper key_; - typedef __typeof__( BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY( - Map - , BOOST_MPL_AUX_STATIC_CAST(key_*, 0) - ) ) type; -}; - -template<> -struct at_impl< aux::map_tag > -{ - template< typename Map, typename Key > struct apply - : aux::wrapped_type< typename m_at< - Map - , Key - >::type > - { - }; -}; - -// agurt 31/jan/04: two-step implementation for the sake of GCC 3.x -template< typename Map, long order > -struct item_by_order_impl -{ - typedef __typeof__( BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER( - Map - , BOOST_MPL_AUX_STATIC_CAST(long_*, 0) - ) ) type; -}; - -template< typename Map, long order > -struct item_by_order - : aux::wrapped_type< - typename item_by_order_impl::type - > -{ -}; - -#else // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Map, long n > struct m_at -{ - typedef void_ type; -}; - -# else - -template< long n > struct m_at_impl -{ - template< typename Map > struct result_ - { - typedef void_ type; - }; -}; - -template< typename Map, long n > struct m_at -{ - typedef typename m_at_impl::result_::type type; -}; - -# endif - - -template<> -struct at_impl< aux::map_tag > -{ - template< typename Map, typename Key > struct apply - { - typedef typename m_at< Map, (x_order_impl::value - 2) >::type item_; - typedef typename eval_if< - is_void_ - , void_ - , second - >::type type; - }; -}; - -template< typename Map, long order > struct is_item_masked -{ - BOOST_STATIC_CONSTANT(bool, value = - sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED( - Map - , BOOST_MPL_AUX_STATIC_CAST(long_*, 0) - ) ) == sizeof(aux::yes_tag) - ); -}; - -template< typename Map, long order > struct item_by_order -{ - typedef typename eval_if_c< - is_item_masked::value - , void_ - , m_at - >::type type; -}; - -#endif - -}} - -#endif // BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/begin_end_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/begin_end_impl.hpp deleted file mode 100644 index aeb72fa57..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/begin_end_impl.hpp +++ /dev/null @@ -1,50 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_BEGIN_END_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_BEGIN_END_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct begin_impl< aux::map_tag > -{ - template< typename Map > struct apply - { - typedef typename next< typename Map::order >::type max_order_; - typedef m_iter< - Map - , next_order::value - , max_order_::value - > type; - }; -}; - -template<> -struct end_impl< aux::map_tag > -{ - template< typename Map > struct apply - { - typedef typename next< typename Map::order >::type max_order_; - typedef m_iter< Map,max_order_::value,max_order_::value > type; - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_BEGIN_END_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/clear_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/clear_impl.hpp deleted file mode 100644 index 226ae89e3..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/clear_impl.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_CLEAR_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_CLEAR_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct clear_impl< aux::map_tag > -{ - template< typename Map > struct apply - { - typedef map0<> type; - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_CLEAR_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/contains_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/contains_impl.hpp deleted file mode 100644 index 94007807d..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/contains_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_CONTAINS_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_CONTAINS_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -template<> -struct contains_impl< aux::map_tag > -{ - template< typename Map, typename Pair > struct apply - : is_same< - typename at_impl::apply< - Map - , typename Pair::first - >::type - , typename Pair::second - > - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_CONTAINS_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/empty_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/empty_impl.hpp deleted file mode 100644 index ab4fa4f98..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/empty_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_EMPTY_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_EMPTY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct empty_impl< aux::map_tag > -{ - template< typename Map > struct apply - : not_< typename Map::size > - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_EMPTY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/erase_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/erase_impl.hpp deleted file mode 100644 index 978ca2f42..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/erase_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_ERASE_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_ERASE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct erase_impl< aux::map_tag > -{ - template< - typename Map - , typename Pos - , typename unused_ - > - struct apply - : erase_key_impl - ::apply - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_ERASE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/erase_key_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/erase_key_impl.hpp deleted file mode 100644 index 5e0775da5..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/erase_key_impl.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_ERASE_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_ERASE_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -template<> -struct erase_key_impl< aux::map_tag > -{ - template< - typename Map - , typename Key - > - struct apply - : eval_if< - has_key_impl::apply - , eval_if< - is_same< Key,typename Map::key_ > - , base - , identity< m_mask > - > - , identity - > - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_ERASE_KEY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/has_key_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/has_key_impl.hpp deleted file mode 100644 index a463d8bcb..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/has_key_impl.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_HAS_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_HAS_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct has_key_impl< aux::map_tag > -{ - template< typename Map, typename Key > struct apply -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - : is_not_void_< - typename at_impl - ::apply::type - > -#else - : bool_< ( x_order_impl::value > 1 ) > -#endif - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_HAS_KEY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/include_preprocessed.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/include_preprocessed.hpp deleted file mode 100644 index 07873d0ac..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/include_preprocessed.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#include -#include -#include -#include - -#include -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) -# define AUX778076_INCLUDE_DIR typeof_based -#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# define AUX778076_INCLUDE_DIR no_ctps -#else -# define AUX778076_INCLUDE_DIR plain -#endif - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ - AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#else -# define AUX778076_HEADER \ - BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#endif - -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) -# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/map/aux_/preprocessed/AUX778076_HEADER) -# include AUX778076_INCLUDE_STRING -# undef AUX778076_INCLUDE_STRING -#else -# include BOOST_PP_STRINGIZE(boost/mpl/map/aux_/preprocessed/AUX778076_HEADER) -#endif - -# undef AUX778076_HEADER -# undef AUX778076_INCLUDE_DIR - -#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/insert_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/insert_impl.hpp deleted file mode 100644 index fb61ed961..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/insert_impl.hpp +++ /dev/null @@ -1,72 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { -template< typename Map, typename Pair > -struct map_insert_impl - : if_< - contains_impl::apply - , Map -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - , m_item< - typename Pair::first - , typename Pair::second - , Map - > -#else - , m_item< - Map::order::value - , typename Pair::first - , typename Pair::second - , Map - > -#endif - > -{ -}; -} - -template<> -struct insert_impl< aux::map_tag > -{ - template< - typename Map - , typename PosOrKey - , typename KeyOrNA - > - struct apply - : aux::map_insert_impl< - Map - , typename if_na::type - > - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_INSERT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/insert_range_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/insert_range_impl.hpp deleted file mode 100644 index f1f0437c3..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/insert_range_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED - -// Copyright Bruno Dutra 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct insert_range_impl< aux::map_tag > -{ - template< - typename Sequence - , typename /*Pos*/ - , typename Range - > - struct apply - : fold > - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/item.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/item.hpp deleted file mode 100644 index a0a98ca8b..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/item.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_ITEM_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_ITEM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template< typename Key, typename T, typename Base > -struct m_item - : Base -{ - typedef Key key_; - typedef pair item; - typedef Base base; - typedef m_item type; - - typedef typename next< typename Base::size >::type size; - typedef typename next< typename Base::order >::type order; - -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - typedef typename aux::weighted_tag::type order_tag_; -#else - typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value]; -#endif - - BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper, VALUE_BY_KEY, m_item, aux::type_wrapper* ); - BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper, ITEM_BY_ORDER, m_item, order* ); - BOOST_MPL_AUX_MAP_OVERLOAD( order_tag_, ORDER_BY_KEY, m_item, aux::type_wrapper* ); -}; - - -template< typename Key, typename Base > -struct m_mask - : Base -{ - typedef void_ key_; - typedef Base base; - typedef m_mask type; - - typedef typename prior< typename Base::size >::type size; - typedef typename x_order_impl::type key_order_; - - BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper, VALUE_BY_KEY, m_mask, aux::type_wrapper* ); - BOOST_MPL_AUX_MAP_OVERLOAD( aux::type_wrapper, ITEM_BY_ORDER, m_mask, key_order_* ); -}; - -#else // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< long n, typename Key, typename T, typename Base > -struct m_item; - -# else - -template< long n > -struct m_item_impl -{ - template< typename Key, typename T, typename Base > - struct result_; -}; - -template< long n, typename Key, typename T, typename Base > -struct m_item - : m_item_impl::result_ -{ -}; - - -# endif - - -template< typename Key, typename T, typename Base > -struct m_item_ - : Base -{ - typedef Key key_; - typedef Base base; - typedef m_item_ type; - - typedef typename next< typename Base::size >::type size; - typedef typename next< typename Base::order >::type order; - -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - typedef typename aux::weighted_tag::type order_tag_; -#else - typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value]; -#endif - - BOOST_MPL_AUX_MAP_OVERLOAD( order_tag_, ORDER_BY_KEY, m_item_, aux::type_wrapper* ); -}; - -template< typename Key, typename Base > -struct m_mask - : Base -{ - typedef void_ key_; - typedef Base base; - typedef m_mask type; - - typedef typename prior< typename Base::size >::type size; - typedef typename x_order_impl::type key_order_; - - BOOST_MPL_AUX_MAP_OVERLOAD( aux::no_tag, ORDER_BY_KEY, m_mask, aux::type_wrapper* ); - BOOST_MPL_AUX_MAP_OVERLOAD( aux::yes_tag, IS_MASKED, m_mask, key_order_* ); -}; - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_MAP_AUX_ITEM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/iterator.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/iterator.hpp deleted file mode 100644 index 93d9ebdd5..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/iterator.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_ITERATOR_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_ITERATOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename Map - , long order - , long max_order - > -struct next_order - : if_< - is_void_< typename item_by_order::type > - , next_order - , long_ - >::type -{ -}; - -template< - typename Map - , long max_order - > -struct next_order - : long_ -{ -}; - - -template< typename Map, long order, long max_order > -struct m_iter -{ - typedef forward_iterator_tag category; - typedef typename item_by_order::type type; -}; - -template< typename Map, long max_order > -struct m_iter -{ - typedef forward_iterator_tag category; -}; - - -template< typename Map, long order, long max_order > -struct next< m_iter > -{ - typedef m_iter< - Map - , next_order::value - , max_order - > type; -}; - -template< typename Map, long max_order > -struct next< m_iter > -{ -}; - -#else - -template< - typename Map - , BOOST_MPL_AUX_NTTP_DECL(long, order) - , BOOST_MPL_AUX_NTTP_DECL(long, max_order) - > -struct next_order; - -template< - typename Map - , BOOST_MPL_AUX_NTTP_DECL(long, order) - , BOOST_MPL_AUX_NTTP_DECL(long, max_order) - > -struct next_order_impl - : if_< - is_void_< typename item_by_order::type > - , next_order - , long_ - >::type - { - }; - -template< - typename Map - , BOOST_MPL_AUX_NTTP_DECL(long, order) - , BOOST_MPL_AUX_NTTP_DECL(long, max_order) - > -struct next_order - : if_c< - (order != max_order) - , next_order_impl - , long_ - >::type -{ -}; - - -template< - typename Map - , BOOST_MPL_AUX_NTTP_DECL(long, order) - , BOOST_MPL_AUX_NTTP_DECL(long, max_order) - > -struct m_iter; - -struct m_iter_empty_base {}; - -template< - typename Map - , BOOST_MPL_AUX_NTTP_DECL(long, order) - , BOOST_MPL_AUX_NTTP_DECL(long, max_order) - > -struct m_iter_base -{ - typedef typename item_by_order::type type; - - typedef m_iter< - Map - , next_order::value - , max_order - > next; -}; - -template< - typename Map - , BOOST_MPL_AUX_NTTP_DECL(long, order) - , BOOST_MPL_AUX_NTTP_DECL(long, max_order) - > -struct m_iter - : if_c< - (order == max_order) - , m_iter_empty_base - , m_iter_base - >::type -{ - typedef forward_iterator_tag category; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}} - -#endif // BOOST_MPL_MAP_AUX_ITERATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/key_type_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/key_type_impl.hpp deleted file mode 100644 index f5ce0c760..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/key_type_impl.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_KEY_TYPE_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_KEY_TYPE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { -namespace mpl { - -template<> -struct key_type_impl< aux::map_tag > -{ - template< typename Map, typename T > struct apply - : first - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_KEY_TYPE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/map0.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/map0.hpp deleted file mode 100644 index fd885dd37..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/map0.hpp +++ /dev/null @@ -1,74 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) - -# define BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \ - friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \ -/**/ - -# define BOOST_MPL_AUX_MAP_OVERLOAD(R, f, X, T) \ - BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \ -/**/ - -#else - -# define BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T) \ - static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \ -/**/ - -# define BOOST_MPL_AUX_MAP_OVERLOAD(R, f, X, T) \ - BOOST_MPL_AUX_MAP0_OVERLOAD(R, f, X, T); \ - using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \ -/**/ - -#endif - - -template< typename Dummy = na > struct map0 -{ - typedef map0 type; - typedef aux::map_tag tag; - typedef void_ key_; - typedef long_<1> order; - typedef long_<0> size; - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - BOOST_MPL_AUX_MAP0_OVERLOAD( aux::type_wrapper, VALUE_BY_KEY, map0<>, void const volatile* ); - BOOST_MPL_AUX_MAP0_OVERLOAD( aux::type_wrapper, ITEM_BY_ORDER, map0<>, long_<1>* ); - BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, map0<>, void const volatile* ); -#else - BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, map0<>, void const volatile* ); - BOOST_MPL_AUX_MAP0_OVERLOAD( aux::no_tag, IS_MASKED, map0<>, void const volatile* ); -#endif -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_MAP0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/numbered.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/numbered.hpp deleted file mode 100644 index f4512a5f4..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/numbered.hpp +++ /dev/null @@ -1,110 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if !defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#else - -#include -#include -#include -#include -#include - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -# define AUX778076_MAP_TAIL(map, i_, P) \ - BOOST_PP_CAT(map,i_)< \ - BOOST_PP_ENUM_PARAMS(i_, P) \ - > \ - /**/ - - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template< - BOOST_PP_ENUM_PARAMS(i_, typename P) - > -struct BOOST_PP_CAT(map,i_) - : m_item< - typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first - , typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second - , AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P) - > -{ - typedef BOOST_PP_CAT(map,i_) type; -}; - -#else // "brute force" implementation - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Map> -struct m_at -{ - typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type; -}; - -template< typename Key, typename T, typename Base > -struct m_item - : m_item_ -{ - typedef pair BOOST_PP_CAT(item,BOOST_PP_DEC(i_)); -}; - -# else - -template<> -struct m_at_impl -{ - template< typename Map > struct result_ - { - typedef typename Map::BOOST_PP_CAT(item,BOOST_PP_DEC(i_)) type; - }; -}; - -template<> -struct m_item_impl -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_ - { - typedef pair BOOST_PP_CAT(item,BOOST_PP_DEC(i_)); - }; -}; - -# endif - -template< - BOOST_PP_ENUM_PARAMS(i_, typename P) - > -struct BOOST_PP_CAT(map,i_) - : m_item< - i_ - , typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first - , typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second - , AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P) - > -{ - typedef BOOST_PP_CAT(map,i_) type; -}; - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -# undef AUX778076_MAP_TAIL - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp deleted file mode 100644 index 626c45636..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +++ /dev/null @@ -1,350 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template<> -struct m_at_impl<0> -{ - template< typename Map > struct result_ - { - typedef typename Map::item0 type; - }; -}; - -template<> -struct m_item_impl<1> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item0; - }; -}; - -template< - typename P0 - > -struct map1 - : m_item< - 1 - , typename P0::first - , typename P0::second - , map0< > - > -{ - typedef map1 type; -}; - -template<> -struct m_at_impl<1> -{ - template< typename Map > struct result_ - { - typedef typename Map::item1 type; - }; -}; - -template<> -struct m_item_impl<2> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item1; - }; -}; - -template< - typename P0, typename P1 - > -struct map2 - : m_item< - 2 - , typename P1::first - , typename P1::second - , map1 - > -{ - typedef map2 type; -}; - -template<> -struct m_at_impl<2> -{ - template< typename Map > struct result_ - { - typedef typename Map::item2 type; - }; -}; - -template<> -struct m_item_impl<3> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item2; - }; -}; - -template< - typename P0, typename P1, typename P2 - > -struct map3 - : m_item< - 3 - , typename P2::first - , typename P2::second - , map2< P0,P1 > - > -{ - typedef map3 type; -}; - -template<> -struct m_at_impl<3> -{ - template< typename Map > struct result_ - { - typedef typename Map::item3 type; - }; -}; - -template<> -struct m_item_impl<4> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item3; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3 - > -struct map4 - : m_item< - 4 - , typename P3::first - , typename P3::second - , map3< P0,P1,P2 > - > -{ - typedef map4 type; -}; - -template<> -struct m_at_impl<4> -{ - template< typename Map > struct result_ - { - typedef typename Map::item4 type; - }; -}; - -template<> -struct m_item_impl<5> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item4; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - > -struct map5 - : m_item< - 5 - , typename P4::first - , typename P4::second - , map4< P0,P1,P2,P3 > - > -{ - typedef map5 type; -}; - -template<> -struct m_at_impl<5> -{ - template< typename Map > struct result_ - { - typedef typename Map::item5 type; - }; -}; - -template<> -struct m_item_impl<6> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item5; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5 - > -struct map6 - : m_item< - 6 - , typename P5::first - , typename P5::second - , map5< P0,P1,P2,P3,P4 > - > -{ - typedef map6 type; -}; - -template<> -struct m_at_impl<6> -{ - template< typename Map > struct result_ - { - typedef typename Map::item6 type; - }; -}; - -template<> -struct m_item_impl<7> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item6; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6 - > -struct map7 - : m_item< - 7 - , typename P6::first - , typename P6::second - , map6< P0,P1,P2,P3,P4,P5 > - > -{ - typedef map7 type; -}; - -template<> -struct m_at_impl<7> -{ - template< typename Map > struct result_ - { - typedef typename Map::item7 type; - }; -}; - -template<> -struct m_item_impl<8> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item7; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7 - > -struct map8 - : m_item< - 8 - , typename P7::first - , typename P7::second - , map7< P0,P1,P2,P3,P4,P5,P6 > - > -{ - typedef map8 type; -}; - -template<> -struct m_at_impl<8> -{ - template< typename Map > struct result_ - { - typedef typename Map::item8 type; - }; -}; - -template<> -struct m_item_impl<9> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item8; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8 - > -struct map9 - : m_item< - 9 - , typename P8::first - , typename P8::second - , map8< P0,P1,P2,P3,P4,P5,P6,P7 > - > -{ - typedef map9 type; -}; - -template<> -struct m_at_impl<9> -{ - template< typename Map > struct result_ - { - typedef typename Map::item9 type; - }; -}; - -template<> -struct m_item_impl<10> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item9; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - > -struct map10 - : m_item< - 10 - , typename P9::first - , typename P9::second - , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 > - > -{ - typedef map10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp deleted file mode 100644 index ac9e3791c..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +++ /dev/null @@ -1,370 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template<> -struct m_at_impl<10> -{ - template< typename Map > struct result_ - { - typedef typename Map::item10 type; - }; -}; - -template<> -struct m_item_impl<11> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item10; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10 - > -struct map11 - : m_item< - 11 - , typename P10::first - , typename P10::second - , map10< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 > - > -{ - typedef map11 type; -}; - -template<> -struct m_at_impl<11> -{ - template< typename Map > struct result_ - { - typedef typename Map::item11 type; - }; -}; - -template<> -struct m_item_impl<12> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item11; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11 - > -struct map12 - : m_item< - 12 - , typename P11::first - , typename P11::second - , map11< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 > - > -{ - typedef map12 type; -}; - -template<> -struct m_at_impl<12> -{ - template< typename Map > struct result_ - { - typedef typename Map::item12 type; - }; -}; - -template<> -struct m_item_impl<13> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item12; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12 - > -struct map13 - : m_item< - 13 - , typename P12::first - , typename P12::second - , map12< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11 > - > -{ - typedef map13 type; -}; - -template<> -struct m_at_impl<13> -{ - template< typename Map > struct result_ - { - typedef typename Map::item13 type; - }; -}; - -template<> -struct m_item_impl<14> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item13; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13 - > -struct map14 - : m_item< - 14 - , typename P13::first - , typename P13::second - , map13< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 > - > -{ - typedef map14 type; -}; - -template<> -struct m_at_impl<14> -{ - template< typename Map > struct result_ - { - typedef typename Map::item14 type; - }; -}; - -template<> -struct m_item_impl<15> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item14; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - > -struct map15 - : m_item< - 15 - , typename P14::first - , typename P14::second - , map14< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13 > - > -{ - typedef map15 type; -}; - -template<> -struct m_at_impl<15> -{ - template< typename Map > struct result_ - { - typedef typename Map::item15 type; - }; -}; - -template<> -struct m_item_impl<16> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item15; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15 - > -struct map16 - : m_item< - 16 - , typename P15::first - , typename P15::second - , map15< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 > - > -{ - typedef map16 type; -}; - -template<> -struct m_at_impl<16> -{ - template< typename Map > struct result_ - { - typedef typename Map::item16 type; - }; -}; - -template<> -struct m_item_impl<17> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item16; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16 - > -struct map17 - : m_item< - 17 - , typename P16::first - , typename P16::second - , map16< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15 > - > -{ - typedef map17 type; -}; - -template<> -struct m_at_impl<17> -{ - template< typename Map > struct result_ - { - typedef typename Map::item17 type; - }; -}; - -template<> -struct m_item_impl<18> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item17; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17 - > -struct map18 - : m_item< - 18 - , typename P17::first - , typename P17::second - , map17< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 > - > -{ - typedef map18 type; -}; - -template<> -struct m_at_impl<18> -{ - template< typename Map > struct result_ - { - typedef typename Map::item18 type; - }; -}; - -template<> -struct m_item_impl<19> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item18; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18 - > -struct map19 - : m_item< - 19 - , typename P18::first - , typename P18::second - , map18< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17 > - > -{ - typedef map19 type; -}; - -template<> -struct m_at_impl<19> -{ - template< typename Map > struct result_ - { - typedef typename Map::item19 type; - }; -}; - -template<> -struct m_item_impl<20> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item19; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - > -struct map20 - : m_item< - 20 - , typename P19::first - , typename P19::second - , map19< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18 > - > -{ - typedef map20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp deleted file mode 100644 index 5aa118f22..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +++ /dev/null @@ -1,390 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template<> -struct m_at_impl<20> -{ - template< typename Map > struct result_ - { - typedef typename Map::item20 type; - }; -}; - -template<> -struct m_item_impl<21> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item20; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20 - > -struct map21 - : m_item< - 21 - , typename P20::first - , typename P20::second - , map20< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 > - > -{ - typedef map21 type; -}; - -template<> -struct m_at_impl<21> -{ - template< typename Map > struct result_ - { - typedef typename Map::item21 type; - }; -}; - -template<> -struct m_item_impl<22> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item21; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21 - > -struct map22 - : m_item< - 22 - , typename P21::first - , typename P21::second - , map21< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20 > - > -{ - typedef map22 type; -}; - -template<> -struct m_at_impl<22> -{ - template< typename Map > struct result_ - { - typedef typename Map::item22 type; - }; -}; - -template<> -struct m_item_impl<23> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item22; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22 - > -struct map23 - : m_item< - 23 - , typename P22::first - , typename P22::second - , map22< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21 > - > -{ - typedef map23 type; -}; - -template<> -struct m_at_impl<23> -{ - template< typename Map > struct result_ - { - typedef typename Map::item23 type; - }; -}; - -template<> -struct m_item_impl<24> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item23; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23 - > -struct map24 - : m_item< - 24 - , typename P23::first - , typename P23::second - , map23< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22 > - > -{ - typedef map24 type; -}; - -template<> -struct m_at_impl<24> -{ - template< typename Map > struct result_ - { - typedef typename Map::item24 type; - }; -}; - -template<> -struct m_item_impl<25> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item24; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - > -struct map25 - : m_item< - 25 - , typename P24::first - , typename P24::second - , map24< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23 > - > -{ - typedef map25 type; -}; - -template<> -struct m_at_impl<25> -{ - template< typename Map > struct result_ - { - typedef typename Map::item25 type; - }; -}; - -template<> -struct m_item_impl<26> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item25; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25 - > -struct map26 - : m_item< - 26 - , typename P25::first - , typename P25::second - , map25< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24 > - > -{ - typedef map26 type; -}; - -template<> -struct m_at_impl<26> -{ - template< typename Map > struct result_ - { - typedef typename Map::item26 type; - }; -}; - -template<> -struct m_item_impl<27> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item26; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26 - > -struct map27 - : m_item< - 27 - , typename P26::first - , typename P26::second - , map26< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25 > - > -{ - typedef map27 type; -}; - -template<> -struct m_at_impl<27> -{ - template< typename Map > struct result_ - { - typedef typename Map::item27 type; - }; -}; - -template<> -struct m_item_impl<28> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item27; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27 - > -struct map28 - : m_item< - 28 - , typename P27::first - , typename P27::second - , map27< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26 > - > -{ - typedef map28 type; -}; - -template<> -struct m_at_impl<28> -{ - template< typename Map > struct result_ - { - typedef typename Map::item28 type; - }; -}; - -template<> -struct m_item_impl<29> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item28; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28 - > -struct map29 - : m_item< - 29 - , typename P28::first - , typename P28::second - , map28< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27 > - > -{ - typedef map29 type; -}; - -template<> -struct m_at_impl<29> -{ - template< typename Map > struct result_ - { - typedef typename Map::item29 type; - }; -}; - -template<> -struct m_item_impl<30> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item29; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - > -struct map30 - : m_item< - 30 - , typename P29::first - , typename P29::second - , map29< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28 > - > -{ - typedef map30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp deleted file mode 100644 index dca60d5e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +++ /dev/null @@ -1,410 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template<> -struct m_at_impl<30> -{ - template< typename Map > struct result_ - { - typedef typename Map::item30 type; - }; -}; - -template<> -struct m_item_impl<31> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item30; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30 - > -struct map31 - : m_item< - 31 - , typename P30::first - , typename P30::second - , map30< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29 > - > -{ - typedef map31 type; -}; - -template<> -struct m_at_impl<31> -{ - template< typename Map > struct result_ - { - typedef typename Map::item31 type; - }; -}; - -template<> -struct m_item_impl<32> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item31; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31 - > -struct map32 - : m_item< - 32 - , typename P31::first - , typename P31::second - , map31< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30 > - > -{ - typedef map32 type; -}; - -template<> -struct m_at_impl<32> -{ - template< typename Map > struct result_ - { - typedef typename Map::item32 type; - }; -}; - -template<> -struct m_item_impl<33> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item32; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32 - > -struct map33 - : m_item< - 33 - , typename P32::first - , typename P32::second - , map32< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31 > - > -{ - typedef map33 type; -}; - -template<> -struct m_at_impl<33> -{ - template< typename Map > struct result_ - { - typedef typename Map::item33 type; - }; -}; - -template<> -struct m_item_impl<34> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item33; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33 - > -struct map34 - : m_item< - 34 - , typename P33::first - , typename P33::second - , map33< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32 > - > -{ - typedef map34 type; -}; - -template<> -struct m_at_impl<34> -{ - template< typename Map > struct result_ - { - typedef typename Map::item34 type; - }; -}; - -template<> -struct m_item_impl<35> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item34; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - > -struct map35 - : m_item< - 35 - , typename P34::first - , typename P34::second - , map34< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33 > - > -{ - typedef map35 type; -}; - -template<> -struct m_at_impl<35> -{ - template< typename Map > struct result_ - { - typedef typename Map::item35 type; - }; -}; - -template<> -struct m_item_impl<36> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item35; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35 - > -struct map36 - : m_item< - 36 - , typename P35::first - , typename P35::second - , map35< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 > - > -{ - typedef map36 type; -}; - -template<> -struct m_at_impl<36> -{ - template< typename Map > struct result_ - { - typedef typename Map::item36 type; - }; -}; - -template<> -struct m_item_impl<37> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item36; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36 - > -struct map37 - : m_item< - 37 - , typename P36::first - , typename P36::second - , map36< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35 > - > -{ - typedef map37 type; -}; - -template<> -struct m_at_impl<37> -{ - template< typename Map > struct result_ - { - typedef typename Map::item37 type; - }; -}; - -template<> -struct m_item_impl<38> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item37; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37 - > -struct map38 - : m_item< - 38 - , typename P37::first - , typename P37::second - , map37< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36 > - > -{ - typedef map38 type; -}; - -template<> -struct m_at_impl<38> -{ - template< typename Map > struct result_ - { - typedef typename Map::item38 type; - }; -}; - -template<> -struct m_item_impl<39> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item38; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38 - > -struct map39 - : m_item< - 39 - , typename P38::first - , typename P38::second - , map38< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37 > - > -{ - typedef map39 type; -}; - -template<> -struct m_at_impl<39> -{ - template< typename Map > struct result_ - { - typedef typename Map::item39 type; - }; -}; - -template<> -struct m_item_impl<40> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item39; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - > -struct map40 - : m_item< - 40 - , typename P39::first - , typename P39::second - , map39< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38 > - > -{ - typedef map40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp deleted file mode 100644 index cd8190887..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +++ /dev/null @@ -1,430 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template<> -struct m_at_impl<40> -{ - template< typename Map > struct result_ - { - typedef typename Map::item40 type; - }; -}; - -template<> -struct m_item_impl<41> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item40; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40 - > -struct map41 - : m_item< - 41 - , typename P40::first - , typename P40::second - , map40< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39 > - > -{ - typedef map41 type; -}; - -template<> -struct m_at_impl<41> -{ - template< typename Map > struct result_ - { - typedef typename Map::item41 type; - }; -}; - -template<> -struct m_item_impl<42> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item41; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41 - > -struct map42 - : m_item< - 42 - , typename P41::first - , typename P41::second - , map41< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40 > - > -{ - typedef map42 type; -}; - -template<> -struct m_at_impl<42> -{ - template< typename Map > struct result_ - { - typedef typename Map::item42 type; - }; -}; - -template<> -struct m_item_impl<43> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item42; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42 - > -struct map43 - : m_item< - 43 - , typename P42::first - , typename P42::second - , map42< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41 > - > -{ - typedef map43 type; -}; - -template<> -struct m_at_impl<43> -{ - template< typename Map > struct result_ - { - typedef typename Map::item43 type; - }; -}; - -template<> -struct m_item_impl<44> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item43; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43 - > -struct map44 - : m_item< - 44 - , typename P43::first - , typename P43::second - , map43< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42 > - > -{ - typedef map44 type; -}; - -template<> -struct m_at_impl<44> -{ - template< typename Map > struct result_ - { - typedef typename Map::item44 type; - }; -}; - -template<> -struct m_item_impl<45> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item44; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - > -struct map45 - : m_item< - 45 - , typename P44::first - , typename P44::second - , map44< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43 > - > -{ - typedef map45 type; -}; - -template<> -struct m_at_impl<45> -{ - template< typename Map > struct result_ - { - typedef typename Map::item45 type; - }; -}; - -template<> -struct m_item_impl<46> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item45; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45 - > -struct map46 - : m_item< - 46 - , typename P45::first - , typename P45::second - , map45< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44 > - > -{ - typedef map46 type; -}; - -template<> -struct m_at_impl<46> -{ - template< typename Map > struct result_ - { - typedef typename Map::item46 type; - }; -}; - -template<> -struct m_item_impl<47> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item46; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46 - > -struct map47 - : m_item< - 47 - , typename P46::first - , typename P46::second - , map46< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45 > - > -{ - typedef map47 type; -}; - -template<> -struct m_at_impl<47> -{ - template< typename Map > struct result_ - { - typedef typename Map::item47 type; - }; -}; - -template<> -struct m_item_impl<48> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item47; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47 - > -struct map48 - : m_item< - 48 - , typename P47::first - , typename P47::second - , map47< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46 > - > -{ - typedef map48 type; -}; - -template<> -struct m_at_impl<48> -{ - template< typename Map > struct result_ - { - typedef typename Map::item48 type; - }; -}; - -template<> -struct m_item_impl<49> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item48; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47, typename P48 - > -struct map49 - : m_item< - 49 - , typename P48::first - , typename P48::second - , map48< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47 > - > -{ - typedef map49 type; -}; - -template<> -struct m_at_impl<49> -{ - template< typename Map > struct result_ - { - typedef typename Map::item49 type; - }; -}; - -template<> -struct m_item_impl<50> -{ - template< typename Key, typename T, typename Base > struct result_ - : m_item_< Key,T,Base > - { - typedef pair< Key,T > item49; - }; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47, typename P48, typename P49 - > -struct map50 - : m_item< - 50 - , typename P49::first - , typename P49::second - , map49< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48 > - > -{ - typedef map50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map10.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map10.hpp deleted file mode 100644 index ce0d2fb86..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +++ /dev/null @@ -1,290 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename Map> -struct m_at< Map,0 > -{ - typedef typename Map::item0 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 1,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item0; -}; - -template< - typename P0 - > -struct map1 - : m_item< - 1 - , typename P0::first - , typename P0::second - , map0< > - > -{ - typedef map1 type; -}; - -template< typename Map> -struct m_at< Map,1 > -{ - typedef typename Map::item1 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 2,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item1; -}; - -template< - typename P0, typename P1 - > -struct map2 - : m_item< - 2 - , typename P1::first - , typename P1::second - , map1 - > -{ - typedef map2 type; -}; - -template< typename Map> -struct m_at< Map,2 > -{ - typedef typename Map::item2 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 3,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item2; -}; - -template< - typename P0, typename P1, typename P2 - > -struct map3 - : m_item< - 3 - , typename P2::first - , typename P2::second - , map2< P0,P1 > - > -{ - typedef map3 type; -}; - -template< typename Map> -struct m_at< Map,3 > -{ - typedef typename Map::item3 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 4,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item3; -}; - -template< - typename P0, typename P1, typename P2, typename P3 - > -struct map4 - : m_item< - 4 - , typename P3::first - , typename P3::second - , map3< P0,P1,P2 > - > -{ - typedef map4 type; -}; - -template< typename Map> -struct m_at< Map,4 > -{ - typedef typename Map::item4 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 5,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item4; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - > -struct map5 - : m_item< - 5 - , typename P4::first - , typename P4::second - , map4< P0,P1,P2,P3 > - > -{ - typedef map5 type; -}; - -template< typename Map> -struct m_at< Map,5 > -{ - typedef typename Map::item5 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 6,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item5; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5 - > -struct map6 - : m_item< - 6 - , typename P5::first - , typename P5::second - , map5< P0,P1,P2,P3,P4 > - > -{ - typedef map6 type; -}; - -template< typename Map> -struct m_at< Map,6 > -{ - typedef typename Map::item6 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 7,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item6; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6 - > -struct map7 - : m_item< - 7 - , typename P6::first - , typename P6::second - , map6< P0,P1,P2,P3,P4,P5 > - > -{ - typedef map7 type; -}; - -template< typename Map> -struct m_at< Map,7 > -{ - typedef typename Map::item7 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 8,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item7; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7 - > -struct map8 - : m_item< - 8 - , typename P7::first - , typename P7::second - , map7< P0,P1,P2,P3,P4,P5,P6 > - > -{ - typedef map8 type; -}; - -template< typename Map> -struct m_at< Map,8 > -{ - typedef typename Map::item8 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 9,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item8; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8 - > -struct map9 - : m_item< - 9 - , typename P8::first - , typename P8::second - , map8< P0,P1,P2,P3,P4,P5,P6,P7 > - > -{ - typedef map9 type; -}; - -template< typename Map> -struct m_at< Map,9 > -{ - typedef typename Map::item9 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 10,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item9; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - > -struct map10 - : m_item< - 10 - , typename P9::first - , typename P9::second - , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 > - > -{ - typedef map10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map20.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map20.hpp deleted file mode 100644 index e0a147cbd..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +++ /dev/null @@ -1,310 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename Map> -struct m_at< Map,10 > -{ - typedef typename Map::item10 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 11,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item10; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10 - > -struct map11 - : m_item< - 11 - , typename P10::first - , typename P10::second - , map10< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 > - > -{ - typedef map11 type; -}; - -template< typename Map> -struct m_at< Map,11 > -{ - typedef typename Map::item11 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 12,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item11; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11 - > -struct map12 - : m_item< - 12 - , typename P11::first - , typename P11::second - , map11< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 > - > -{ - typedef map12 type; -}; - -template< typename Map> -struct m_at< Map,12 > -{ - typedef typename Map::item12 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 13,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item12; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12 - > -struct map13 - : m_item< - 13 - , typename P12::first - , typename P12::second - , map12< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11 > - > -{ - typedef map13 type; -}; - -template< typename Map> -struct m_at< Map,13 > -{ - typedef typename Map::item13 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 14,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item13; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13 - > -struct map14 - : m_item< - 14 - , typename P13::first - , typename P13::second - , map13< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 > - > -{ - typedef map14 type; -}; - -template< typename Map> -struct m_at< Map,14 > -{ - typedef typename Map::item14 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 15,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item14; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - > -struct map15 - : m_item< - 15 - , typename P14::first - , typename P14::second - , map14< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13 > - > -{ - typedef map15 type; -}; - -template< typename Map> -struct m_at< Map,15 > -{ - typedef typename Map::item15 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 16,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item15; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15 - > -struct map16 - : m_item< - 16 - , typename P15::first - , typename P15::second - , map15< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 > - > -{ - typedef map16 type; -}; - -template< typename Map> -struct m_at< Map,16 > -{ - typedef typename Map::item16 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 17,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item16; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16 - > -struct map17 - : m_item< - 17 - , typename P16::first - , typename P16::second - , map16< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15 > - > -{ - typedef map17 type; -}; - -template< typename Map> -struct m_at< Map,17 > -{ - typedef typename Map::item17 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 18,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item17; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17 - > -struct map18 - : m_item< - 18 - , typename P17::first - , typename P17::second - , map17< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 > - > -{ - typedef map18 type; -}; - -template< typename Map> -struct m_at< Map,18 > -{ - typedef typename Map::item18 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 19,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item18; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18 - > -struct map19 - : m_item< - 19 - , typename P18::first - , typename P18::second - , map18< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17 > - > -{ - typedef map19 type; -}; - -template< typename Map> -struct m_at< Map,19 > -{ - typedef typename Map::item19 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 20,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item19; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - > -struct map20 - : m_item< - 20 - , typename P19::first - , typename P19::second - , map19< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18 > - > -{ - typedef map20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map30.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map30.hpp deleted file mode 100644 index d2f2e17b1..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +++ /dev/null @@ -1,330 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename Map> -struct m_at< Map,20 > -{ - typedef typename Map::item20 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 21,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item20; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20 - > -struct map21 - : m_item< - 21 - , typename P20::first - , typename P20::second - , map20< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 > - > -{ - typedef map21 type; -}; - -template< typename Map> -struct m_at< Map,21 > -{ - typedef typename Map::item21 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 22,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item21; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21 - > -struct map22 - : m_item< - 22 - , typename P21::first - , typename P21::second - , map21< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20 > - > -{ - typedef map22 type; -}; - -template< typename Map> -struct m_at< Map,22 > -{ - typedef typename Map::item22 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 23,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item22; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22 - > -struct map23 - : m_item< - 23 - , typename P22::first - , typename P22::second - , map22< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21 > - > -{ - typedef map23 type; -}; - -template< typename Map> -struct m_at< Map,23 > -{ - typedef typename Map::item23 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 24,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item23; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23 - > -struct map24 - : m_item< - 24 - , typename P23::first - , typename P23::second - , map23< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22 > - > -{ - typedef map24 type; -}; - -template< typename Map> -struct m_at< Map,24 > -{ - typedef typename Map::item24 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 25,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item24; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - > -struct map25 - : m_item< - 25 - , typename P24::first - , typename P24::second - , map24< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23 > - > -{ - typedef map25 type; -}; - -template< typename Map> -struct m_at< Map,25 > -{ - typedef typename Map::item25 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 26,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item25; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25 - > -struct map26 - : m_item< - 26 - , typename P25::first - , typename P25::second - , map25< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24 > - > -{ - typedef map26 type; -}; - -template< typename Map> -struct m_at< Map,26 > -{ - typedef typename Map::item26 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 27,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item26; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26 - > -struct map27 - : m_item< - 27 - , typename P26::first - , typename P26::second - , map26< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25 > - > -{ - typedef map27 type; -}; - -template< typename Map> -struct m_at< Map,27 > -{ - typedef typename Map::item27 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 28,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item27; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27 - > -struct map28 - : m_item< - 28 - , typename P27::first - , typename P27::second - , map27< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26 > - > -{ - typedef map28 type; -}; - -template< typename Map> -struct m_at< Map,28 > -{ - typedef typename Map::item28 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 29,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item28; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28 - > -struct map29 - : m_item< - 29 - , typename P28::first - , typename P28::second - , map28< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27 > - > -{ - typedef map29 type; -}; - -template< typename Map> -struct m_at< Map,29 > -{ - typedef typename Map::item29 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 30,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item29; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - > -struct map30 - : m_item< - 30 - , typename P29::first - , typename P29::second - , map29< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28 > - > -{ - typedef map30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map40.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map40.hpp deleted file mode 100644 index 692f014c6..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +++ /dev/null @@ -1,350 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename Map> -struct m_at< Map,30 > -{ - typedef typename Map::item30 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 31,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item30; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30 - > -struct map31 - : m_item< - 31 - , typename P30::first - , typename P30::second - , map30< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29 > - > -{ - typedef map31 type; -}; - -template< typename Map> -struct m_at< Map,31 > -{ - typedef typename Map::item31 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 32,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item31; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31 - > -struct map32 - : m_item< - 32 - , typename P31::first - , typename P31::second - , map31< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30 > - > -{ - typedef map32 type; -}; - -template< typename Map> -struct m_at< Map,32 > -{ - typedef typename Map::item32 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 33,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item32; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32 - > -struct map33 - : m_item< - 33 - , typename P32::first - , typename P32::second - , map32< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31 > - > -{ - typedef map33 type; -}; - -template< typename Map> -struct m_at< Map,33 > -{ - typedef typename Map::item33 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 34,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item33; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33 - > -struct map34 - : m_item< - 34 - , typename P33::first - , typename P33::second - , map33< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32 > - > -{ - typedef map34 type; -}; - -template< typename Map> -struct m_at< Map,34 > -{ - typedef typename Map::item34 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 35,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item34; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - > -struct map35 - : m_item< - 35 - , typename P34::first - , typename P34::second - , map34< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33 > - > -{ - typedef map35 type; -}; - -template< typename Map> -struct m_at< Map,35 > -{ - typedef typename Map::item35 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 36,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item35; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35 - > -struct map36 - : m_item< - 36 - , typename P35::first - , typename P35::second - , map35< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 > - > -{ - typedef map36 type; -}; - -template< typename Map> -struct m_at< Map,36 > -{ - typedef typename Map::item36 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 37,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item36; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36 - > -struct map37 - : m_item< - 37 - , typename P36::first - , typename P36::second - , map36< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35 > - > -{ - typedef map37 type; -}; - -template< typename Map> -struct m_at< Map,37 > -{ - typedef typename Map::item37 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 38,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item37; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37 - > -struct map38 - : m_item< - 38 - , typename P37::first - , typename P37::second - , map37< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36 > - > -{ - typedef map38 type; -}; - -template< typename Map> -struct m_at< Map,38 > -{ - typedef typename Map::item38 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 39,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item38; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38 - > -struct map39 - : m_item< - 39 - , typename P38::first - , typename P38::second - , map38< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37 > - > -{ - typedef map39 type; -}; - -template< typename Map> -struct m_at< Map,39 > -{ - typedef typename Map::item39 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 40,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item39; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - > -struct map40 - : m_item< - 40 - , typename P39::first - , typename P39::second - , map39< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38 > - > -{ - typedef map40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map50.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map50.hpp deleted file mode 100644 index 3bd2a25a3..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +++ /dev/null @@ -1,370 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename Map> -struct m_at< Map,40 > -{ - typedef typename Map::item40 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 41,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item40; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40 - > -struct map41 - : m_item< - 41 - , typename P40::first - , typename P40::second - , map40< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39 > - > -{ - typedef map41 type; -}; - -template< typename Map> -struct m_at< Map,41 > -{ - typedef typename Map::item41 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 42,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item41; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41 - > -struct map42 - : m_item< - 42 - , typename P41::first - , typename P41::second - , map41< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40 > - > -{ - typedef map42 type; -}; - -template< typename Map> -struct m_at< Map,42 > -{ - typedef typename Map::item42 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 43,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item42; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42 - > -struct map43 - : m_item< - 43 - , typename P42::first - , typename P42::second - , map42< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41 > - > -{ - typedef map43 type; -}; - -template< typename Map> -struct m_at< Map,43 > -{ - typedef typename Map::item43 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 44,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item43; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43 - > -struct map44 - : m_item< - 44 - , typename P43::first - , typename P43::second - , map43< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42 > - > -{ - typedef map44 type; -}; - -template< typename Map> -struct m_at< Map,44 > -{ - typedef typename Map::item44 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 45,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item44; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - > -struct map45 - : m_item< - 45 - , typename P44::first - , typename P44::second - , map44< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43 > - > -{ - typedef map45 type; -}; - -template< typename Map> -struct m_at< Map,45 > -{ - typedef typename Map::item45 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 46,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item45; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45 - > -struct map46 - : m_item< - 46 - , typename P45::first - , typename P45::second - , map45< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44 > - > -{ - typedef map46 type; -}; - -template< typename Map> -struct m_at< Map,46 > -{ - typedef typename Map::item46 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 47,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item46; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46 - > -struct map47 - : m_item< - 47 - , typename P46::first - , typename P46::second - , map46< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45 > - > -{ - typedef map47 type; -}; - -template< typename Map> -struct m_at< Map,47 > -{ - typedef typename Map::item47 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 48,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item47; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47 - > -struct map48 - : m_item< - 48 - , typename P47::first - , typename P47::second - , map47< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46 > - > -{ - typedef map48 type; -}; - -template< typename Map> -struct m_at< Map,48 > -{ - typedef typename Map::item48 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 49,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item48; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47, typename P48 - > -struct map49 - : m_item< - 49 - , typename P48::first - , typename P48::second - , map48< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47 > - > -{ - typedef map49 type; -}; - -template< typename Map> -struct m_at< Map,49 > -{ - typedef typename Map::item49 type; -}; - -template< typename Key, typename T, typename Base > -struct m_item< 50,Key,T,Base > - : m_item_< Key,T,Base > -{ - typedef pair< Key,T > item49; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47, typename P48, typename P49 - > -struct map50 - : m_item< - 50 - , typename P49::first - , typename P49::second - , map49< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48 > - > -{ - typedef map50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp deleted file mode 100644 index e48e9919c..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename P0 - > -struct map1 - : m_item< - typename P0::first - , typename P0::second - , map0< > - > -{ - typedef map1 type; -}; - -template< - typename P0, typename P1 - > -struct map2 - : m_item< - typename P1::first - , typename P1::second - , map1 - > -{ - typedef map2 type; -}; - -template< - typename P0, typename P1, typename P2 - > -struct map3 - : m_item< - typename P2::first - , typename P2::second - , map2< P0,P1 > - > -{ - typedef map3 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3 - > -struct map4 - : m_item< - typename P3::first - , typename P3::second - , map3< P0,P1,P2 > - > -{ - typedef map4 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - > -struct map5 - : m_item< - typename P4::first - , typename P4::second - , map4< P0,P1,P2,P3 > - > -{ - typedef map5 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5 - > -struct map6 - : m_item< - typename P5::first - , typename P5::second - , map5< P0,P1,P2,P3,P4 > - > -{ - typedef map6 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6 - > -struct map7 - : m_item< - typename P6::first - , typename P6::second - , map6< P0,P1,P2,P3,P4,P5 > - > -{ - typedef map7 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7 - > -struct map8 - : m_item< - typename P7::first - , typename P7::second - , map7< P0,P1,P2,P3,P4,P5,P6 > - > -{ - typedef map8 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8 - > -struct map9 - : m_item< - typename P8::first - , typename P8::second - , map8< P0,P1,P2,P3,P4,P5,P6,P7 > - > -{ - typedef map9 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - > -struct map10 - : m_item< - typename P9::first - , typename P9::second - , map9< P0,P1,P2,P3,P4,P5,P6,P7,P8 > - > -{ - typedef map10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp deleted file mode 100644 index bb8d3881e..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +++ /dev/null @@ -1,170 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10 - > -struct map11 - : m_item< - typename P10::first - , typename P10::second - , map10< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9 > - > -{ - typedef map11 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11 - > -struct map12 - : m_item< - typename P11::first - , typename P11::second - , map11< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10 > - > -{ - typedef map12 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12 - > -struct map13 - : m_item< - typename P12::first - , typename P12::second - , map12< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11 > - > -{ - typedef map13 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13 - > -struct map14 - : m_item< - typename P13::first - , typename P13::second - , map13< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12 > - > -{ - typedef map14 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - > -struct map15 - : m_item< - typename P14::first - , typename P14::second - , map14< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13 > - > -{ - typedef map15 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15 - > -struct map16 - : m_item< - typename P15::first - , typename P15::second - , map15< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14 > - > -{ - typedef map16 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16 - > -struct map17 - : m_item< - typename P16::first - , typename P16::second - , map16< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15 > - > -{ - typedef map17 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17 - > -struct map18 - : m_item< - typename P17::first - , typename P17::second - , map17< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 > - > -{ - typedef map18 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18 - > -struct map19 - : m_item< - typename P18::first - , typename P18::second - , map18< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17 > - > -{ - typedef map19 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - > -struct map20 - : m_item< - typename P19::first - , typename P19::second - , map19< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18 > - > -{ - typedef map20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp deleted file mode 100644 index 6a45c0d6a..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +++ /dev/null @@ -1,190 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20 - > -struct map21 - : m_item< - typename P20::first - , typename P20::second - , map20< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 > - > -{ - typedef map21 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21 - > -struct map22 - : m_item< - typename P21::first - , typename P21::second - , map21< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20 > - > -{ - typedef map22 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22 - > -struct map23 - : m_item< - typename P22::first - , typename P22::second - , map22< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21 > - > -{ - typedef map23 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23 - > -struct map24 - : m_item< - typename P23::first - , typename P23::second - , map23< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22 > - > -{ - typedef map24 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - > -struct map25 - : m_item< - typename P24::first - , typename P24::second - , map24< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23 > - > -{ - typedef map25 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25 - > -struct map26 - : m_item< - typename P25::first - , typename P25::second - , map25< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24 > - > -{ - typedef map26 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26 - > -struct map27 - : m_item< - typename P26::first - , typename P26::second - , map26< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25 > - > -{ - typedef map27 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27 - > -struct map28 - : m_item< - typename P27::first - , typename P27::second - , map27< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26 > - > -{ - typedef map28 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28 - > -struct map29 - : m_item< - typename P28::first - , typename P28::second - , map28< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27 > - > -{ - typedef map29 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - > -struct map30 - : m_item< - typename P29::first - , typename P29::second - , map29< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28 > - > -{ - typedef map30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp deleted file mode 100644 index 6fc4f4b4a..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +++ /dev/null @@ -1,210 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30 - > -struct map31 - : m_item< - typename P30::first - , typename P30::second - , map30< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29 > - > -{ - typedef map31 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31 - > -struct map32 - : m_item< - typename P31::first - , typename P31::second - , map31< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30 > - > -{ - typedef map32 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32 - > -struct map33 - : m_item< - typename P32::first - , typename P32::second - , map32< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31 > - > -{ - typedef map33 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33 - > -struct map34 - : m_item< - typename P33::first - , typename P33::second - , map33< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32 > - > -{ - typedef map34 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - > -struct map35 - : m_item< - typename P34::first - , typename P34::second - , map34< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33 > - > -{ - typedef map35 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35 - > -struct map36 - : m_item< - typename P35::first - , typename P35::second - , map35< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34 > - > -{ - typedef map36 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36 - > -struct map37 - : m_item< - typename P36::first - , typename P36::second - , map36< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35 > - > -{ - typedef map37 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37 - > -struct map38 - : m_item< - typename P37::first - , typename P37::second - , map37< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36 > - > -{ - typedef map38 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38 - > -struct map39 - : m_item< - typename P38::first - , typename P38::second - , map38< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37 > - > -{ - typedef map39 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - > -struct map40 - : m_item< - typename P39::first - , typename P39::second - , map39< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38 > - > -{ - typedef map40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp deleted file mode 100644 index 7b3980dfa..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +++ /dev/null @@ -1,230 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/map/map50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40 - > -struct map41 - : m_item< - typename P40::first - , typename P40::second - , map40< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39 > - > -{ - typedef map41 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41 - > -struct map42 - : m_item< - typename P41::first - , typename P41::second - , map41< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40 > - > -{ - typedef map42 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42 - > -struct map43 - : m_item< - typename P42::first - , typename P42::second - , map42< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41 > - > -{ - typedef map43 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43 - > -struct map44 - : m_item< - typename P43::first - , typename P43::second - , map43< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42 > - > -{ - typedef map44 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - > -struct map45 - : m_item< - typename P44::first - , typename P44::second - , map44< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43 > - > -{ - typedef map45 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45 - > -struct map46 - : m_item< - typename P45::first - , typename P45::second - , map45< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44 > - > -{ - typedef map46 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46 - > -struct map47 - : m_item< - typename P46::first - , typename P46::second - , map46< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45 > - > -{ - typedef map47 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47 - > -struct map48 - : m_item< - typename P47::first - , typename P47::second - , map47< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46 > - > -{ - typedef map48 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47, typename P48 - > -struct map49 - : m_item< - typename P48::first - , typename P48::second - , map48< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47 > - > -{ - typedef map49 type; -}; - -template< - typename P0, typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6, typename P7, typename P8, typename P9 - , typename P10, typename P11, typename P12, typename P13, typename P14 - , typename P15, typename P16, typename P17, typename P18, typename P19 - , typename P20, typename P21, typename P22, typename P23, typename P24 - , typename P25, typename P26, typename P27, typename P28, typename P29 - , typename P30, typename P31, typename P32, typename P33, typename P34 - , typename P35, typename P36, typename P37, typename P38, typename P39 - , typename P40, typename P41, typename P42, typename P43, typename P44 - , typename P45, typename P46, typename P47, typename P48, typename P49 - > -struct map50 - : m_item< - typename P49::first - , typename P49::second - , map49< P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30,P31,P32,P33,P34,P35,P36,P37,P38,P39,P40,P41,P42,P43,P44,P45,P46,P47,P48 > - > -{ - typedef map50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/size_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/size_impl.hpp deleted file mode 100644 index fd46a1cde..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/size_impl.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_SIZE_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_SIZE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct size_impl< aux::map_tag > -{ - template< typename Map > struct apply - : Map::size - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_SIZE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/tag.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/tag.hpp deleted file mode 100644 index 6e3b7f466..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/tag.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_TAG_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { namespace aux { - -struct map_tag; - -}}} - -#endif // BOOST_MPL_MAP_AUX_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/aux_/value_type_impl.hpp b/lib/3rdParty/boost/boost/mpl/map/aux_/value_type_impl.hpp deleted file mode 100644 index 5451b14b3..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/aux_/value_type_impl.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_MAP_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED -#define BOOST_MPL_MAP_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { -namespace mpl { - -template<> -struct value_type_impl< aux::map_tag > -{ - template< typename Map, typename T > struct apply - : second - { - }; -}; - -}} - -#endif // BOOST_MPL_MAP_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/map0.hpp b/lib/3rdParty/boost/boost/mpl/map/map0.hpp deleted file mode 100644 index 88ed4b7c8..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/map0.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef BOOST_MPL_MAP_MAP0_HPP_INCLUDED -#define BOOST_MPL_MAP_MAP0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_MPL_MAP_MAP0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/map10.hpp b/lib/3rdParty/boost/boost/mpl/map/map10.hpp deleted file mode 100644 index 7c53f3c8c..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/map10.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_MAP_MAP10_HPP_INCLUDED -#define BOOST_MPL_MAP_MAP10_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER map10.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_MAP_MAP10_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/map20.hpp b/lib/3rdParty/boost/boost/mpl/map/map20.hpp deleted file mode 100644 index f5e61b844..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/map20.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_MAP_MAP20_HPP_INCLUDED -#define BOOST_MPL_MAP_MAP20_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER map20.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_MAP_MAP20_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/map30.hpp b/lib/3rdParty/boost/boost/mpl/map/map30.hpp deleted file mode 100644 index 4e632b553..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/map30.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_MAP_MAP30_HPP_INCLUDED -#define BOOST_MPL_MAP_MAP30_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER map30.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_MAP_MAP30_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/map40.hpp b/lib/3rdParty/boost/boost/mpl/map/map40.hpp deleted file mode 100644 index db66f7a6b..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/map40.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_MAP_MAP40_HPP_INCLUDED -#define BOOST_MPL_MAP_MAP40_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER map40.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_MAP_MAP40_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/map/map50.hpp b/lib/3rdParty/boost/boost/mpl/map/map50.hpp deleted file mode 100644 index 1c2ef5867..000000000 --- a/lib/3rdParty/boost/boost/mpl/map/map50.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_MAP_MAP50_HPP_INCLUDED -#define BOOST_MPL_MAP_MAP50_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER map50.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_MAP_MAP50_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/math/fixed_c.hpp b/lib/3rdParty/boost/boost/mpl/math/fixed_c.hpp deleted file mode 100644 index 1d78e51d0..000000000 --- a/lib/3rdParty/boost/boost/mpl/math/fixed_c.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_FIXED_C_HPP_INCLUDED -#define BOOST_MPL_FIXED_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { - -template< - long IntegerPart - , unsigned long FractionPart - > -struct fixed_c -{ - BOOST_STATIC_CONSTANT(long, integer_part = IntegerPart); - BOOST_STATIC_CONSTANT(unsigned long, fraction_part = FractionPart); - typedef fixed_c type; - - fixed_c() {} -}; - -}} - -#endif // BOOST_MPL_FIXED_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/math/is_even.hpp b/lib/3rdParty/boost/boost/mpl/math/is_even.hpp deleted file mode 100644 index a39de5bd3..000000000 --- a/lib/3rdParty/boost/boost/mpl/math/is_even.hpp +++ /dev/null @@ -1,54 +0,0 @@ - -#ifndef BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED -#define BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -namespace aux -{ - template - struct is_even_base - { - enum { value = (N::value % 2) == 0 }; - typedef bool_ type; - }; -} -#endif - -template< - typename BOOST_MPL_AUX_NA_PARAM(N) - > -struct is_even -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - : aux::is_even_base::type -#else - : bool_<((N::value % 2) == 0)> -#endif -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_even,(N)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, is_even) - -}} - -#endif // BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/math/rational_c.hpp b/lib/3rdParty/boost/boost/mpl/math/rational_c.hpp deleted file mode 100644 index dd1ac3f54..000000000 --- a/lib/3rdParty/boost/boost/mpl/math/rational_c.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef BOOST_MPL_RATIONAL_C_HPP_INCLUDED -#define BOOST_MPL_RATIONAL_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -namespace boost { namespace mpl { - -template< - typename IntegerType - , IntegerType N - , IntegerType D = 1 - > -struct rational_c -{ - BOOST_STATIC_CONSTANT(IntegerType, numerator = N); - BOOST_STATIC_CONSTANT(IntegerType, denominator = D); - - typedef rational_c type; - rational_c() {} -}; - -}} - -#endif // BOOST_MPL_RATIONAL_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/max.hpp b/lib/3rdParty/boost/boost/mpl/max.hpp deleted file mode 100644 index 4a4c8c1c0..000000000 --- a/lib/3rdParty/boost/boost/mpl/max.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_MAX_HPP_INCLUDED -#define BOOST_MPL_MAX_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_MAX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/max_element.hpp b/lib/3rdParty/boost/boost/mpl/max_element.hpp deleted file mode 100644 index 33244f36d..000000000 --- a/lib/3rdParty/boost/boost/mpl/max_element.hpp +++ /dev/null @@ -1,72 +0,0 @@ - -#ifndef BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED -#define BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(max_element) - -namespace aux { - -template< typename Predicate > -struct select_max -{ - template< typename OldIterator, typename Iterator > - struct apply - { - typedef typename apply2< - Predicate - , typename deref::type - , typename deref::type - >::type condition_; - - typedef typename if_< - condition_ - , Iterator - , OldIterator - >::type type; - }; -}; - -} // namespace aux - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename Predicate = less<_,_> - > -struct max_element - : iter_fold< - Sequence - , typename begin::type - , protect< aux::select_max > - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(1, max_element) - -}} - -#endif // BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/min.hpp b/lib/3rdParty/boost/boost/mpl/min.hpp deleted file mode 100644 index d35c2c289..000000000 --- a/lib/3rdParty/boost/boost/mpl/min.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_MIN_HPP_INCLUDED -#define BOOST_MPL_MIN_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_MIN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/min_element.hpp b/lib/3rdParty/boost/boost/mpl/min_element.hpp deleted file mode 100644 index 078ee1de1..000000000 --- a/lib/3rdParty/boost/boost/mpl/min_element.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_MIN_ELEMENT_HPP_INCLUDED -#define BOOST_MPL_MIN_ELEMENT_HPP_INCLUDED - -// Copyright David Abrahams 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(min_element) - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename Predicate = less<_,_> - > -struct min_element - : max_element< - Sequence - , mpl::not_ - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(1, min_element) - -}} - -#endif // BOOST_MPL_MIN_ELEMENT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/min_max.hpp b/lib/3rdParty/boost/boost/mpl/min_max.hpp deleted file mode 100644 index 77545cd35..000000000 --- a/lib/3rdParty/boost/boost/mpl/min_max.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_MIN_MAX_HPP_INCLUDED -#define BOOST_MPL_MIN_MAX_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct min - : if_< less,N1,N2 > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct max - : if_< less,N2,N1 > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(2, min) -BOOST_MPL_AUX_NA_SPEC(2, max) - -}} - -#endif // BOOST_MPL_MIN_MAX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/minus.hpp b/lib/3rdParty/boost/boost/mpl/minus.hpp deleted file mode 100644 index 9f29f74b5..000000000 --- a/lib/3rdParty/boost/boost/mpl/minus.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_MINUS_HPP_INCLUDED -#define BOOST_MPL_MINUS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME minus -#define AUX778076_OP_TOKEN - -#include - -#endif // BOOST_MPL_MINUS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/modulus.hpp b/lib/3rdParty/boost/boost/mpl/modulus.hpp deleted file mode 100644 index 5cc2eccb8..000000000 --- a/lib/3rdParty/boost/boost/mpl/modulus.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_MODULUS_HPP_INCLUDED -#define BOOST_MPL_MODULUS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME modulus -#define AUX778076_OP_TOKEN % -#define AUX778076_OP_ARITY 2 -#include - -#endif // BOOST_MPL_MODULUS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiplies.hpp b/lib/3rdParty/boost/boost/mpl/multiplies.hpp deleted file mode 100644 index 53c39d98a..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiplies.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -#ifndef BOOST_MPL_MULTIPLIES_HPP_INCLUDED -#define BOOST_MPL_MULTIPLIES_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -// backward compatibility header, deprecated - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#else -# define AUX778076_OP_ARITY 2 -#endif - -template< - BOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na) - > -struct multiplies - : times< BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - AUX778076_OP_ARITY - , multiplies - , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) ) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(AUX778076_OP_ARITY, multiplies) - -#undef AUX778076_OP_ARITY - -}} - -#endif // BOOST_MPL_MULTIPLIES_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiset/aux_/count_impl.hpp b/lib/3rdParty/boost/boost/mpl/multiset/aux_/count_impl.hpp deleted file mode 100644 index 6cd4a5bd2..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiset/aux_/count_impl.hpp +++ /dev/null @@ -1,82 +0,0 @@ - -#ifndef BOOST_MPL_MULTISET_AUX_COUNT_IMPL_HPP_INCLUDED -#define BOOST_MPL_MULTISET_AUX_COUNT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# include -# include -#endif - -namespace boost { namespace mpl { - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -namespace aux { -template< typename S, typename U > -struct multiset_count_impl - : int_< sizeof(S::key_count(BOOST_MPL_AUX_STATIC_CAST(U*,0))) - 1 > -{ -}; - -template< typename S, typename U > -struct multiset_count_ref_impl -{ - typedef U (* u_)(); - typedef int_< sizeof(S::ref_key_count(BOOST_MPL_AUX_STATIC_CAST(u_,0))) - 1 > type_; - BOOST_STATIC_CONSTANT(int, value = type_::value); - typedef type_ type; -}; -} - -template<> -struct count_impl< aux::multiset_tag > -{ - template< typename Set, typename Key > struct apply - : if_< - is_reference - , aux::multiset_count_ref_impl - , aux::multiset_count_impl - >::type - { - }; -}; - -#else - -template<> -struct count_impl< aux::multiset_tag > -{ - template< typename Set, typename Key > struct apply - { - enum { msvc71_wknd_ = sizeof(Set::key_count(BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*,0))) - 1 }; - typedef int_< msvc71_wknd_ > type; - BOOST_STATIC_CONSTANT(int, value = msvc71_wknd_); - }; -}; - -#endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -}} - -#endif // BOOST_MPL_MULTISET_AUX_COUNT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiset/aux_/insert_impl.hpp b/lib/3rdParty/boost/boost/mpl/multiset/aux_/insert_impl.hpp deleted file mode 100644 index 208da2884..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiset/aux_/insert_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_MULTISET_AUX_INSERT_IMPL_HPP_INCLUDED -#define BOOST_MPL_MULTISET_AUX_INSERT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct insert_impl< aux::multiset_tag > -{ - template< typename Set, typename Key, typename unused_ > struct apply - { - typedef ms_item type; - }; -}; - -}} - -#endif // BOOST_MPL_MULTISET_AUX_INSERT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiset/aux_/item.hpp b/lib/3rdParty/boost/boost/mpl/multiset/aux_/item.hpp deleted file mode 100644 index eca21ad96..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiset/aux_/item.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -#ifndef BOOST_MPL_MULTISET_AUX_ITEM_HPP_INCLUDED -#define BOOST_MPL_MULTISET_AUX_ITEM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# include -# include -# include -#endif - - -namespace boost { namespace mpl { - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -template< typename T, typename Base > -struct ms_item -{ - typedef aux::multiset_tag tag; - - template< typename U > struct prior_count - { - enum { msvc70_wknd_ = sizeof(Base::key_count(BOOST_MPL_AUX_STATIC_CAST(U*,0))) }; - typedef int_< msvc70_wknd_ > count_; - typedef typename eval_if< is_same, next, count_ >::type c_; -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - typedef typename aux::weighted_tag::type type; -#else - typedef char (&type)[BOOST_MPL_AUX_MSVC_VALUE_WKND(c_)::value]; -#endif - }; - - template< typename U > struct prior_ref_count - { - typedef U (* u_)(); - enum { msvc70_wknd_ = sizeof(Base::ref_key_count(BOOST_MPL_AUX_STATIC_CAST(u_,0))) }; - typedef int_< msvc70_wknd_ > count_; - typedef typename eval_if< is_same, next, count_ >::type c_; -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - typedef typename aux::weighted_tag::type type; -#else - typedef char (&type)[BOOST_MPL_AUX_MSVC_VALUE_WKND(c_)::value]; -#endif - }; - - template< typename U > - static typename prior_count::type key_count(U*); - - template< typename U > - static typename prior_ref_count::type ref_key_count(U (*)()); -}; - -#else // BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -namespace aux { -template< typename U, typename Base > -struct prior_key_count -{ - enum { msvc71_wknd_ = sizeof(Base::key_count(BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*,0))) }; - typedef int_< msvc71_wknd_ > count_; -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - typedef typename aux::weighted_tag< BOOST_MPL_AUX_VALUE_WKND(count_)::value >::type type; -#else - typedef char (&type)[count_::value]; -#endif -}; -} - -template< typename T, typename Base > -struct ms_item -{ - typedef aux::multiset_tag tag; - - enum { msvc71_wknd_ = sizeof(Base::key_count(BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*,0))) + 1 }; - typedef int_< msvc71_wknd_ > count_; -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - static - typename aux::weighted_tag< BOOST_MPL_AUX_VALUE_WKND(count_)::value >::type - key_count(aux::type_wrapper*); -#else - static char (& key_count(aux::type_wrapper*) )[count_::value]; -#endif - - template< typename U > - static typename aux::prior_key_count::type key_count(aux::type_wrapper*); -}; - -#endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -}} - -#endif // BOOST_MPL_MULTISET_AUX_ITEM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiset/aux_/multiset0.hpp b/lib/3rdParty/boost/boost/mpl/multiset/aux_/multiset0.hpp deleted file mode 100644 index e8cb9d2a4..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiset/aux_/multiset0.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_MULTISET_AUX_MULTISET0_HPP_INCLUDED -#define BOOST_MPL_MULTISET_AUX_MULTISET0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< int dummy_ = 0 > -struct multiset0 -{ - typedef aux::multiset_tag tag; - - typedef int_<1> count_; - static char (& key_count(...) )[count_::value]; - static char (& ref_key_count(...) )[count_::value]; -}; - -}} - -#endif // BOOST_MPL_MULTISET_AUX_MULTISET0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiset/aux_/tag.hpp b/lib/3rdParty/boost/boost/mpl/multiset/aux_/tag.hpp deleted file mode 100644 index 3988ca103..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiset/aux_/tag.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_MULTISET_AUX_TAG_HPP_INCLUDED -#define BOOST_MPL_MULTISET_AUX_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { namespace aux { - -struct multiset_tag; - -}}} - -#endif // BOOST_MPL_MULTISET_AUX_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/multiset/multiset0.hpp b/lib/3rdParty/boost/boost/mpl/multiset/multiset0.hpp deleted file mode 100644 index 62a3c7442..000000000 --- a/lib/3rdParty/boost/boost/mpl/multiset/multiset0.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_MULTISET_MULTISET0_HPP_INCLUDED -#define BOOST_MPL_MULTISET_MULTISET0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -#include -#include -//#include -//#include -//#include -#include -#include -#include - -#endif // BOOST_MPL_MULTISET_MULTISET0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/negate.hpp b/lib/3rdParty/boost/boost/mpl/negate.hpp deleted file mode 100644 index d6aa06545..000000000 --- a/lib/3rdParty/boost/boost/mpl/negate.hpp +++ /dev/null @@ -1,81 +0,0 @@ - -#ifndef BOOST_MPL_NEGATE_HPP_INCLUDED -#define BOOST_MPL_NEGATE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Tag > struct negate_impl; - -template< typename T > struct negate_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N) - > -struct negate -#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - : negate_impl< - typename negate_tag::type - >::template apply::type -#else - : aux::msvc_eti_base< typename apply_wrap1< - negate_impl< typename negate_tag::type > - , N - >::type >::type -#endif -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, negate) - - -#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) -namespace aux { -template< typename T, T n > struct negate_wknd -{ - BOOST_STATIC_CONSTANT(T, value = -n); - typedef integral_c type; -}; -} -#endif - -template<> -struct negate_impl -{ -#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - template< typename N > struct apply - : aux::negate_wknd< typename N::value_type, N::value > -#else - template< typename N > struct apply - : integral_c< typename N::value_type, (-N::value) > -#endif - { - }; -}; - -}} - -#endif // BOOST_MPL_NEGATE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/next.hpp b/lib/3rdParty/boost/boost/mpl/next.hpp deleted file mode 100644 index 954b2226c..000000000 --- a/lib/3rdParty/boost/boost/mpl/next.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_NEXT_HPP_INCLUDED -#define BOOST_MPL_NEXT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_NEXT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/next_prior.hpp b/lib/3rdParty/boost/boost/mpl/next_prior.hpp deleted file mode 100644 index d45fa20ea..000000000 --- a/lib/3rdParty/boost/boost/mpl/next_prior.hpp +++ /dev/null @@ -1,49 +0,0 @@ - -#ifndef BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED -#define BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(next) -BOOST_MPL_AUX_COMMON_NAME_WKND(prior) - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct next -{ - typedef typename T::next type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T)) -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct prior -{ - typedef typename T::prior type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, next) -BOOST_MPL_AUX_NA_SPEC(1, prior) - -}} - -#endif // BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/not.hpp b/lib/3rdParty/boost/boost/mpl/not.hpp deleted file mode 100644 index d5f602557..000000000 --- a/lib/3rdParty/boost/boost/mpl/not.hpp +++ /dev/null @@ -1,51 +0,0 @@ - -#ifndef BOOST_MPL_NOT_HPP_INCLUDED -#define BOOST_MPL_NOT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here -struct not_impl - : bool_ -{ -}; - -} // namespace aux - - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct not_ - : aux::not_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T)) -}; - -BOOST_MPL_AUX_NA_SPEC(1,not_) - -}} - -#endif // BOOST_MPL_NOT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/not_equal_to.hpp b/lib/3rdParty/boost/boost/mpl/not_equal_to.hpp deleted file mode 100644 index 11ef3424c..000000000 --- a/lib/3rdParty/boost/boost/mpl/not_equal_to.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED -#define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME not_equal_to -#define AUX778076_OP_TOKEN != -#include - -#endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/numeric_cast.hpp b/lib/3rdParty/boost/boost/mpl/numeric_cast.hpp deleted file mode 100644 index 654147044..000000000 --- a/lib/3rdParty/boost/boost/mpl/numeric_cast.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED -#define BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -// agurt 21/sep/04: portability macro for the sake of MSVC 6.x-7.0; -// resolves conflicts with 'boost::numeric_cast' function template. -// use it in your own code _only_ if you care about compatibility with -// these outdated compilers! -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) ) -# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_ -#else -# define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast -#endif - -namespace boost { namespace mpl { - -// no default implementation; the definition is needed to make MSVC happy - -template< typename SourceTag, typename TargetTag > struct BOOST_MPL_AUX_NUMERIC_CAST -{ - template< typename N > struct apply; -}; - -}} - -#endif // BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/or.hpp b/lib/3rdParty/boost/boost/mpl/or.hpp deleted file mode 100644 index f9704d516..000000000 --- a/lib/3rdParty/boost/boost/mpl/or.hpp +++ /dev/null @@ -1,61 +0,0 @@ - -#ifndef BOOST_MPL_OR_HPP_INCLUDED -#define BOOST_MPL_OR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# include -# include -# include -# include -# include - -// agurt, 19/may/04: workaround a conflict with header's -// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)' -// has to be checked in a separate condition, otherwise GCC complains -// about 'or' being an alternative token -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(or) -# pragma push_macro("or") -# undef or -# define or(x) -#endif -#endif -#endif - -# define BOOST_MPL_PREPROCESSED_HEADER or.hpp -# include - -#if defined(_MSC_VER) && !defined(__clang__) -#ifndef __GCCXML__ -#if defined(or) -# pragma pop_macro("or") -#endif -#endif -#endif - -#else - -# define AUX778076_OP_NAME or_ -# define AUX778076_OP_VALUE1 true -# define AUX778076_OP_VALUE2 false -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_OR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/order.hpp b/lib/3rdParty/boost/boost/mpl/order.hpp deleted file mode 100644 index 50da7102b..000000000 --- a/lib/3rdParty/boost/boost/mpl/order.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_ORDER_HPP_INCLUDED -#define BOOST_MPL_ORDER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence) - , typename BOOST_MPL_AUX_NA_PARAM(Key) - > -struct order - : order_impl< typename sequence_tag::type > - ::template apply -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,order,(AssociativeSequence,Key)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, order) - -}} - -#endif // BOOST_MPL_ORDER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/order_fwd.hpp b/lib/3rdParty/boost/boost/mpl/order_fwd.hpp deleted file mode 100644 index d89fef110..000000000 --- a/lib/3rdParty/boost/boost/mpl/order_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_ORDER_FWD_HPP_INCLUDED -#define BOOST_MPL_ORDER_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct order_impl; -template< typename AssociativeSequence, typename Key > struct order; - -}} - -#endif // BOOST_MPL_ORDER_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/pair.hpp b/lib/3rdParty/boost/boost/mpl/pair.hpp deleted file mode 100644 index 67c01d73c..000000000 --- a/lib/3rdParty/boost/boost/mpl/pair.hpp +++ /dev/null @@ -1,70 +0,0 @@ - -#ifndef BOOST_MPL_PAIR_HPP_INCLUDED -#define BOOST_MPL_PAIR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct pair -{ - typedef pair type; - typedef T1 first; - typedef T2 second; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2)) -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(P) - > -struct first -{ -#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - typedef typename P::first type; -#else - typedef typename aux::msvc_eti_base

::first type; -#endif - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,first,(P)) -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(P) - > -struct second -{ -#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - typedef typename P::second type; -#else - typedef typename aux::msvc_eti_base

::second type; -#endif - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,second,(P)) -}; - - -BOOST_MPL_AUX_NA_SPEC_NO_ETI(2, pair) -BOOST_MPL_AUX_NA_SPEC(1, first) -BOOST_MPL_AUX_NA_SPEC(1, second) - -}} - -#endif // BOOST_MPL_PAIR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/pair_view.hpp b/lib/3rdParty/boost/boost/mpl/pair_view.hpp deleted file mode 100644 index a72cf9287..000000000 --- a/lib/3rdParty/boost/boost/mpl/pair_view.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -#ifndef BOOST_MPL_PAIR_VIEW_HPP_INCLUDED -#define BOOST_MPL_PAIR_VIEW_HPP_INCLUDED - -// Copyright David Abrahams 2003-2004 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { -struct pair_iter_tag; - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Iter1, typename Iter2, typename Category > -struct pair_iter; - -template< typename Category > struct prior_pair_iter -{ - template< typename Iter1, typename Iter2 > struct apply - { - typedef typename mpl::prior::type i1_; - typedef typename mpl::prior::type i2_; - typedef pair_iter type; - }; -}; - -template<> struct prior_pair_iter -{ - template< typename Iter1, typename Iter2 > struct apply - { - typedef pair_iter type; - }; -}; - -#endif -} - -template< - typename Iter1 - , typename Iter2 - , typename Category - > -struct pair_iter -{ - typedef aux::pair_iter_tag tag; - typedef Category category; - typedef Iter1 first; - typedef Iter2 second; - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - typedef pair< - typename deref::type - , typename deref::type - > type; - - typedef typename mpl::next::type i1_; - typedef typename mpl::next::type i2_; - typedef pair_iter next; - - typedef apply_wrap2< aux::prior_pair_iter,Iter1,Iter2 >::type prior; -#endif -}; - - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Iter1, typename Iter2, typename C > -struct deref< pair_iter > -{ - typedef pair< - typename deref::type - , typename deref::type - > type; -}; - -template< typename Iter1, typename Iter2, typename C > -struct next< pair_iter > -{ - typedef typename mpl::next::type i1_; - typedef typename mpl::next::type i2_; - typedef pair_iter type; -}; - -template< typename Iter1, typename Iter2, typename C > -struct prior< pair_iter > -{ - typedef typename mpl::prior::type i1_; - typedef typename mpl::prior::type i2_; - typedef pair_iter type; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - -template<> struct advance_impl -{ - template< typename Iter, typename D > struct apply - { - typedef typename mpl::advance< typename Iter::first,D >::type i1_; - typedef typename mpl::advance< typename Iter::second,D >::type i2_; - typedef pair_iter type; - }; -}; - -template<> struct distance_impl -{ - template< typename Iter1, typename Iter2 > struct apply - { - // agurt, 10/nov/04: MSVC 6.5 ICE-s on forwarding - typedef typename mpl::distance< - typename first::type - , typename first::type - >::type type; - }; -}; - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence1) - , typename BOOST_MPL_AUX_NA_PARAM(Sequence2) - > -struct pair_view -{ - typedef nested_begin_end_tag tag; - - typedef typename begin::type iter1_; - typedef typename begin::type iter2_; - typedef typename min< - typename iterator_category::type - , typename iterator_category::type - >::type category_; - - typedef pair_iter begin; - - typedef pair_iter< - typename end::type - , typename end::type - , category_ - > end; -}; - -BOOST_MPL_AUX_NA_SPEC(2, pair_view) - -}} - -#endif // BOOST_MPL_PAIR_VIEW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/partition.hpp b/lib/3rdParty/boost/boost/mpl/partition.hpp deleted file mode 100644 index 795a39bbe..000000000 --- a/lib/3rdParty/boost/boost/mpl/partition.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -#ifndef BOOST_MPL_PARTITION_HPP_INCLUDED -#define BOOST_MPL_PARTITION_HPP_INCLUDED - -// Copyright Eric Friedman 2002-2003 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template < - typename Sequence - , typename Pred - , typename In1 - , typename In2 - > -struct partition_impl - : stable_partition_impl -{ -}; - -template < - typename Sequence - , typename Pred - , typename In1 - , typename In2 - > -struct reverse_partition_impl - : reverse_stable_partition_impl -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, partition) - -}} - -#endif // BOOST_MPL_PARTITION_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/placeholders.hpp b/lib/3rdParty/boost/boost/mpl/placeholders.hpp deleted file mode 100644 index df0373ca5..000000000 --- a/lib/3rdParty/boost/boost/mpl/placeholders.hpp +++ /dev/null @@ -1,100 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED -#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include - -# if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) -# define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \ - using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \ - /**/ -# else -# define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/ -# endif - -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp -# include - -#else - -# include -# include -# include -# include - -// watch out for GNU gettext users, who #define _(x) -#if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<-1> _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} -#endif - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, )) -#include BOOST_PP_ITERATE() - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -typedef arg BOOST_PP_CAT(_,i_); - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_)) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_); -} - -}} - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/plus.hpp b/lib/3rdParty/boost/boost/mpl/plus.hpp deleted file mode 100644 index 455920b5d..000000000 --- a/lib/3rdParty/boost/boost/mpl/plus.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_PLUS_HPP_INCLUDED -#define BOOST_MPL_PLUS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME plus -#define AUX778076_OP_TOKEN + -#include - -#endif // BOOST_MPL_PLUS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/pop_back.hpp b/lib/3rdParty/boost/boost/mpl/pop_back.hpp deleted file mode 100644 index 92fb4f1d3..000000000 --- a/lib/3rdParty/boost/boost/mpl/pop_back.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_POP_BACK_HPP_INCLUDED -#define BOOST_MPL_POP_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct pop_back - : pop_back_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_back,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, pop_back) - -}} - -#endif // BOOST_MPL_POP_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/pop_back_fwd.hpp b/lib/3rdParty/boost/boost/mpl/pop_back_fwd.hpp deleted file mode 100644 index 70957046c..000000000 --- a/lib/3rdParty/boost/boost/mpl/pop_back_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED -#define BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct pop_back_impl; -template< typename Sequence > struct pop_back; - -}} - -#endif // BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/pop_front.hpp b/lib/3rdParty/boost/boost/mpl/pop_front.hpp deleted file mode 100644 index 76dfbca40..000000000 --- a/lib/3rdParty/boost/boost/mpl/pop_front.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_POP_FRONT_HPP_INCLUDED -#define BOOST_MPL_POP_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct pop_front - : pop_front_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_front,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, pop_front) - -}} - -#endif // BOOST_MPL_POP_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/pop_front_fwd.hpp b/lib/3rdParty/boost/boost/mpl/pop_front_fwd.hpp deleted file mode 100644 index 719c8b218..000000000 --- a/lib/3rdParty/boost/boost/mpl/pop_front_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED -#define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct pop_front_impl; -template< typename Sequence > struct pop_front; - -}} - -#endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/print.hpp b/lib/3rdParty/boost/boost/mpl/print.hpp deleted file mode 100644 index 36e25cd3e..000000000 --- a/lib/3rdParty/boost/boost/mpl/print.hpp +++ /dev/null @@ -1,78 +0,0 @@ - -#ifndef BOOST_MPL_PRINT_HPP_INCLUDED -#define BOOST_MPL_PRINT_HPP_INCLUDED - -// Copyright David Abrahams 2003 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -namespace aux { -#if defined(BOOST_MSVC) -# pragma warning(push, 3) -// we only want one warning from MSVC, so turn off the other one -# pragma warning(disable: 4307) -#elif defined(__MWERKS__) -# pragma warn_hidevirtual on - struct print_base { virtual void f() {} }; -#endif - -#if defined(__EDG_VERSION__) - template - struct dependent_unsigned - { - static const unsigned value = 1; - }; -#endif -} // namespace aux - -template -struct print - : mpl::identity -#if defined(__MWERKS__) - , aux::print_base -#endif -{ -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wc++11-extensions" - const int m_x = 1 / (sizeof(T) - sizeof(T)); -# pragma clang diagnostic pop -#elif defined(BOOST_MSVC) - enum { n = sizeof(T) + -1 }; -#elif defined(__MWERKS__) - void f(int); -#else - enum { - n = -# if defined(__EDG_VERSION__) - aux::dependent_unsigned::value > -1 -# else - sizeof(T) > -1 -# endif - }; -#endif -}; - -#if defined(BOOST_MSVC) -# pragma warning(pop) -#elif defined(__MWERKS__) -# pragma warn_hidevirtual reset -#endif - -}} - -#endif // BOOST_MPL_PRINT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/prior.hpp b/lib/3rdParty/boost/boost/mpl/prior.hpp deleted file mode 100644 index 849802cfa..000000000 --- a/lib/3rdParty/boost/boost/mpl/prior.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_PRIOR_HPP_INCLUDED -#define BOOST_MPL_PRIOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#endif // BOOST_MPL_PRIOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/protect.hpp b/lib/3rdParty/boost/boost/mpl/protect.hpp deleted file mode 100644 index 80574c275..000000000 --- a/lib/3rdParty/boost/boost/mpl/protect.hpp +++ /dev/null @@ -1,55 +0,0 @@ - -#ifndef BOOST_MPL_PROTECT_HPP_INCLUDED -#define BOOST_MPL_PROTECT_HPP_INCLUDED - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - , int not_le_ = 0 - > -struct protect : T -{ -#if BOOST_WORKAROUND(__EDG_VERSION__, == 238) - typedef mpl::protect type; -#else - typedef protect type; -#endif -}; - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -namespace aux { -template< BOOST_MPL_AUX_NTTP_DECL(int, N), typename T > -struct arity< protect, N > - : arity -{ -}; -} // namespace aux -#endif - -BOOST_MPL_AUX_NA_SPEC_MAIN(1, protect) -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(1, 1, protect) -#endif - -}} - -#endif // BOOST_MPL_PROTECT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/push_back.hpp b/lib/3rdParty/boost/boost/mpl/push_back.hpp deleted file mode 100644 index 95a2587be..000000000 --- a/lib/3rdParty/boost/boost/mpl/push_back.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -#ifndef BOOST_MPL_PUSH_BACK_HPP_INCLUDED -#define BOOST_MPL_PUSH_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct push_back - : push_back_impl< typename sequence_tag::type > - ::template apply< Sequence,T > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T)) -}; - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct has_push_back - : has_push_back_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence)) -}; - - -BOOST_MPL_AUX_NA_SPEC(2, push_back) -BOOST_MPL_AUX_NA_SPEC(1, has_push_back) - -}} - -#endif // BOOST_MPL_PUSH_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/push_back_fwd.hpp b/lib/3rdParty/boost/boost/mpl/push_back_fwd.hpp deleted file mode 100644 index 7a4f7a754..000000000 --- a/lib/3rdParty/boost/boost/mpl/push_back_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED -#define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct push_back_impl; -template< typename Sequence, typename T > struct push_back; - -}} - -#endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/push_front.hpp b/lib/3rdParty/boost/boost/mpl/push_front.hpp deleted file mode 100644 index e4d0dfb7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/push_front.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_PUSH_FRONT_HPP_INCLUDED -#define BOOST_MPL_PUSH_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct push_front - : push_front_impl< typename sequence_tag::type > - ::template apply< Sequence,T > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T)) -}; - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct has_push_front - : has_push_front_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, push_front) -BOOST_MPL_AUX_NA_SPEC(1, has_push_front) - -}} - -#endif // BOOST_MPL_PUSH_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/push_front_fwd.hpp b/lib/3rdParty/boost/boost/mpl/push_front_fwd.hpp deleted file mode 100644 index d6ad5af57..000000000 --- a/lib/3rdParty/boost/boost/mpl/push_front_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED -#define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct push_front_impl; -template< typename Sequence, typename T > struct push_front; - -}} - -#endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/quote.hpp b/lib/3rdParty/boost/boost/mpl/quote.hpp deleted file mode 100644 index 242c2e7af..000000000 --- a/lib/3rdParty/boost/boost/mpl/quote.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_QUOTE_HPP_INCLUDED -#define BOOST_MPL_QUOTE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include -#include - -#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ - && !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) -# define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE -#endif - -#if !defined(BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \ - && defined(BOOST_MPL_CFG_NO_HAS_XXX) -# define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER quote.hpp -# include - -#else - -# include -# include -# include -# include - -# include -# include - -#if !defined(BOOST_MPL_CFG_NO_QUOTE_TEMPLATE) - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename T, bool has_type_ > -struct quote_impl -// GCC has a problem with metafunction forwarding when T is a -// specialization of a template called 'type'. -# if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \ - && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(0)) \ - && BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, BOOST_TESTED_AT(2)) -{ - typedef typename T::type type; -}; -# else - : T -{ -}; -# endif - -template< typename T > -struct quote_impl -{ - typedef T type; -}; - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template< bool > struct quote_impl -{ - template< typename T > struct result_ - : T - { - }; -}; - -template<> struct quote_impl -{ - template< typename T > struct result_ - { - typedef T type; - }; -}; - -#endif - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_QUOTE_TEMPLATE - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_QUOTE_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F - , typename Tag = void_ - > -struct BOOST_PP_CAT(quote,i_) -{ - template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply -#if defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) - { - typedef typename quote_impl< - F< BOOST_MPL_PP_PARAMS(i_, U) > - , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value - >::type type; - }; -#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - : quote_impl< - F< BOOST_MPL_PP_PARAMS(i_, U) > - , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value - > - { - }; -#else - : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value > - ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > > - { - }; -#endif -}; - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/range_c.hpp b/lib/3rdParty/boost/boost/mpl/range_c.hpp deleted file mode 100644 index ba95062d6..000000000 --- a/lib/3rdParty/boost/boost/mpl/range_c.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_RANGE_C_HPP_INCLUDED -#define BOOST_MPL_RANGE_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename T - , T Start - , T Finish - > -struct range_c -{ - typedef aux::half_open_range_tag tag; - typedef T value_type; - typedef range_c type; - - typedef integral_c start; - typedef integral_c finish; - - typedef r_iter begin; - typedef r_iter end; -}; - -}} - -#endif // BOOST_MPL_RANGE_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/remove.hpp b/lib/3rdParty/boost/boost/mpl/remove.hpp deleted file mode 100644 index 9c72f9e6f..000000000 --- a/lib/3rdParty/boost/boost/mpl/remove.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_REMOVE_HPP_INCLUDED -#define BOOST_MPL_REMOVE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Sequence - , typename T - , typename Inserter - > -struct remove_impl - : remove_if_impl< Sequence, same_as, Inserter > -{ -}; - -template< - typename Sequence - , typename T - , typename Inserter - > -struct reverse_remove_impl - : reverse_remove_if_impl< Sequence, same_as, Inserter > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove) - -}} - -#endif // BOOST_MPL_REMOVE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/remove_if.hpp b/lib/3rdParty/boost/boost/mpl/remove_if.hpp deleted file mode 100644 index bbe6564b0..000000000 --- a/lib/3rdParty/boost/boost/mpl/remove_if.hpp +++ /dev/null @@ -1,83 +0,0 @@ - -#ifndef BOOST_MPL_REMOVE_IF_HPP_INCLUDED -#define BOOST_MPL_REMOVE_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< typename Pred, typename InsertOp > struct remove_if_helper -{ - template< typename Sequence, typename U > struct apply - { - typedef typename eval_if< - typename apply1::type - , identity - , apply2 - >::type type; - }; -}; - -template< - typename Sequence - , typename Predicate - , typename Inserter - > -struct remove_if_impl - : fold< - Sequence - , typename Inserter::state - , protect< aux::remove_if_helper< - typename lambda::type - , typename Inserter::operation - > > - > -{ -}; - -template< - typename Sequence - , typename Predicate - , typename Inserter - > -struct reverse_remove_if_impl - : reverse_fold< - Sequence - , typename Inserter::state - , protect< aux::remove_if_helper< - typename lambda::type - , typename Inserter::operation - > > - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if) - -}} - -#endif // BOOST_MPL_REMOVE_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/replace.hpp b/lib/3rdParty/boost/boost/mpl/replace.hpp deleted file mode 100644 index bb46dfb85..000000000 --- a/lib/3rdParty/boost/boost/mpl/replace.hpp +++ /dev/null @@ -1,55 +0,0 @@ - -#ifndef BOOST_MPL_REPLACE_HPP_INCLUDED -#define BOOST_MPL_REPLACE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright John R. Bandela 2000-2002 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Sequence - , typename OldType - , typename NewType - , typename Inserter - > -struct replace_impl - : replace_if_impl< Sequence, same_as, NewType, Inserter > -{ -}; - -template< - typename Sequence - , typename OldType - , typename NewType - , typename Inserter - > -struct reverse_replace_impl - : reverse_replace_if_impl< Sequence, same_as, NewType, Inserter > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, replace) - -}} - -#endif // BOOST_MPL_REPLACE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/replace_if.hpp b/lib/3rdParty/boost/boost/mpl/replace_if.hpp deleted file mode 100644 index 79466c712..000000000 --- a/lib/3rdParty/boost/boost/mpl/replace_if.hpp +++ /dev/null @@ -1,88 +0,0 @@ - -#ifndef BOOST_MPL_REPLACE_IF_HPP_INCLUDED -#define BOOST_MPL_REPLACE_IF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright John R. Bandela 2000-2002 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< typename Predicate, typename T > -struct replace_if_op -{ - template< typename U > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : if_< - typename apply1::type - , T - , U - > - { -#else - { - typedef typename if_< - typename apply1::type - , T - , U - >::type type; -#endif - }; -}; - - -template< - typename Sequence - , typename Predicate - , typename T - , typename Inserter - > -struct replace_if_impl - : transform1_impl< - Sequence - , protect< aux::replace_if_op > - , Inserter - > -{ -}; - -template< - typename Sequence - , typename Predicate - , typename T - , typename Inserter - > -struct reverse_replace_if_impl - : reverse_transform1_impl< - Sequence - , protect< aux::replace_if_op > - , Inserter - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, replace_if) - -}} - -#endif // BOOST_MPL_REPLACE_IF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/reverse.hpp b/lib/3rdParty/boost/boost/mpl/reverse.hpp deleted file mode 100644 index dd1fc18bb..000000000 --- a/lib/3rdParty/boost/boost/mpl/reverse.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_REVERSE_HPP_INCLUDED -#define BOOST_MPL_REVERSE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Inserter) - > -struct reverse - : reverse_copy< - Sequence - , Inserter - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(1, reverse) - -}} - -#endif // BOOST_MPL_REVERSE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/reverse_fold.hpp b/lib/3rdParty/boost/boost/mpl/reverse_fold.hpp deleted file mode 100644 index 87c26a9a8..000000000 --- a/lib/3rdParty/boost/boost/mpl/reverse_fold.hpp +++ /dev/null @@ -1,50 +0,0 @@ - -#ifndef BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED -#define BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David Abrahams 2001-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(State) - , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp) - , typename ForwardOp = arg<1> - > -struct reverse_fold -{ - typedef typename aux::reverse_fold_impl< - ::boost::mpl::O1_size::value - , typename begin::type - , typename end::type - , State - , BackwardOp - , ForwardOp - >::state type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, reverse_fold) - -}} - -#endif // BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/reverse_iter_fold.hpp b/lib/3rdParty/boost/boost/mpl/reverse_iter_fold.hpp deleted file mode 100644 index 348f295ee..000000000 --- a/lib/3rdParty/boost/boost/mpl/reverse_iter_fold.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -#ifndef BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED -#define BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Dave Abrahams 2001-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(State) - , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp) - , typename ForwardOp = arg<1> - > -struct reverse_iter_fold -{ - typedef typename aux::reverse_iter_fold_impl< - ::boost::mpl::O1_size::value - , typename begin::type - , typename end::type - , State - , typename lambda::type - , typename lambda::type - >::state type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , reverse_iter_fold - , (Sequence,State,BackwardOp,ForwardOp) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, reverse_iter_fold) - -}} - -#endif // BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/same_as.hpp b/lib/3rdParty/boost/boost/mpl/same_as.hpp deleted file mode 100644 index 4be20bc33..000000000 --- a/lib/3rdParty/boost/boost/mpl/same_as.hpp +++ /dev/null @@ -1,55 +0,0 @@ - -#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED -#define BOOST_MPL_SAME_AS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -template< typename T1 > -struct same_as -{ - template< typename T2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : is_same - { -#else - { - typedef typename is_same::type type; -#endif - }; -}; - -template< typename T1 > -struct not_same_as -{ - template< typename T2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : not_< is_same > - { -#else - { - typedef typename not_< is_same >::type type; -#endif - }; -}; - -}} - -#endif // BOOST_MPL_SAME_AS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/sequence_tag.hpp b/lib/3rdParty/boost/boost/mpl/sequence_tag.hpp deleted file mode 100644 index f87d92b28..000000000 --- a/lib/3rdParty/boost/boost/mpl/sequence_tag.hpp +++ /dev/null @@ -1,124 +0,0 @@ - -#ifndef BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED -#define BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation -// on MSVC to avoid dreadful "internal structure overflow" error -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) \ - || defined(BOOST_MPL_CFG_NO_HAS_XXX) - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct sequence_tag -{ - typedef typename Sequence::tag type; -}; - -#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300) - -// agurt, 07/feb/03: workaround for what seems to be MSVC 7.0-specific ETI issue - -namespace aux { - -template< bool > -struct sequence_tag_impl -{ - template< typename Sequence > struct result_ - { - typedef typename Sequence::tag type; - }; -}; - -template<> -struct sequence_tag_impl -{ - template< typename Sequence > struct result_ - { - typedef int type; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct sequence_tag - : aux::sequence_tag_impl< !aux::is_msvc_eti_arg::value > - ::template result_ -{ -}; - -#else - -namespace aux { - -template< bool has_tag_, bool has_begin_ > -struct sequence_tag_impl -{ - // agurt 24/nov/02: MSVC 6.5 gets confused in 'sequence_tag_impl' - // specialization below, if we name it 'result_' here - template< typename Sequence > struct result2_; -}; - -# define AUX_CLASS_SEQUENCE_TAG_SPEC(has_tag, has_begin, result_type) \ -template<> struct sequence_tag_impl \ -{ \ - template< typename Sequence > struct result2_ \ - { \ - typedef result_type type; \ - }; \ -}; \ -/**/ - -AUX_CLASS_SEQUENCE_TAG_SPEC(true, true, typename Sequence::tag) -AUX_CLASS_SEQUENCE_TAG_SPEC(true, false, typename Sequence::tag) -AUX_CLASS_SEQUENCE_TAG_SPEC(false, true, nested_begin_end_tag) -AUX_CLASS_SEQUENCE_TAG_SPEC(false, false, non_sequence_tag) - -# undef AUX_CLASS_SEQUENCE_TAG_SPEC - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct sequence_tag - : aux::sequence_tag_impl< - ::boost::mpl::aux::has_tag::value - , ::boost::mpl::aux::has_begin::value - >::template result2_ -{ -}; - -#endif // BOOST_MSVC - -BOOST_MPL_AUX_NA_SPEC(1, sequence_tag) - -}} - -#endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/sequence_tag_fwd.hpp b/lib/3rdParty/boost/boost/mpl/sequence_tag_fwd.hpp deleted file mode 100644 index 4b0ed6f6b..000000000 --- a/lib/3rdParty/boost/boost/mpl/sequence_tag_fwd.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED -#define BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -struct nested_begin_end_tag; -struct non_sequence_tag; - -template< typename Sequence > struct sequence_tag; - -}} - -#endif // BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set.hpp b/lib/3rdParty/boost/boost/mpl/set.hpp deleted file mode 100644 index 75f56dce4..000000000 --- a/lib/3rdParty/boost/boost/mpl/set.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef BOOST_MPL_SET_HPP_INCLUDED -#define BOOST_MPL_SET_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_SET_HEADER \ - BOOST_PP_CAT(set, BOOST_MPL_LIMIT_SET_SIZE).hpp \ - /**/ -#else -# define AUX778076_SET_HEADER \ - BOOST_PP_CAT(set, BOOST_MPL_LIMIT_SET_SIZE)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/set/AUX778076_SET_HEADER) -# undef AUX778076_SET_HEADER -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME set -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_SET_SIZE -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_SET_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/at_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/at_impl.hpp deleted file mode 100644 index 89119c4a5..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/at_impl.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct at_impl< aux::set_tag > -{ - template< typename Set, typename T > struct apply - { - typedef typename if_< - has_key_impl::apply - , T - , void_ - >::type type; - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/begin_end_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/begin_end_impl.hpp deleted file mode 100644 index 259528053..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/begin_end_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct begin_impl< aux::set_tag > -{ - template< typename Set > struct apply - : s_iter_get - { - }; -}; - -template<> -struct end_impl< aux::set_tag > -{ - template< typename Set > struct apply - { - typedef s_iter< Set,set0<> > type; - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/clear_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/clear_impl.hpp deleted file mode 100644 index 9c6c76030..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/clear_impl.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct clear_impl< aux::set_tag > -{ - template< typename Set > struct apply - { - typedef set0<> type; - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/empty_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/empty_impl.hpp deleted file mode 100644 index 997ff023a..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/empty_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct empty_impl< aux::set_tag > -{ - template< typename Set > struct apply - : not_< typename Set::size > - { - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/erase_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/erase_impl.hpp deleted file mode 100644 index c4a95b4a8..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/erase_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct erase_impl< aux::set_tag > -{ - template< - typename Set - , typename Pos - , typename unused_ - > - struct apply - : erase_key_impl - ::apply - { - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/erase_key_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/erase_key_impl.hpp deleted file mode 100644 index f945d4fb3..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/erase_key_impl.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -template<> -struct erase_key_impl< aux::set_tag > -{ - template< - typename Set - , typename T - > - struct apply - : eval_if< - has_key_impl::apply - , eval_if< - is_same< T,typename Set::item_type_ > - , base - , identity< s_mask > - > - , identity - > - { - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/has_key_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/has_key_impl.hpp deleted file mode 100644 index bdc327318..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/has_key_impl.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct has_key_impl< aux::set_tag > -{ - template< typename Set, typename T > struct apply -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) - { - BOOST_STATIC_CONSTANT(bool, value = - ( sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED( - Set - , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*, 0) - ) ) == sizeof(aux::no_tag) ) - ); - - typedef bool_ type; - -#else // ISO98 C++ - : bool_< - ( sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED( - Set - , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper*, 0) - ) ) == sizeof(aux::no_tag) ) - > - { -#endif - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/include_preprocessed.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/include_preprocessed.hpp deleted file mode 100644 index ffeb9c6b0..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/include_preprocessed.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2001-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#include -#include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ - plain/BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#else -# define AUX778076_HEADER \ - BOOST_PP_CAT(plain,/)##BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#endif - -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) -# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/set/aux_/preprocessed/AUX778076_HEADER) -# include AUX778076_INCLUDE_STRING -# undef AUX778076_INCLUDE_STRING -#else -# include BOOST_PP_STRINGIZE(boost/mpl/set/aux_/preprocessed/AUX778076_HEADER) -#endif - -# undef AUX778076_HEADER - -#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/insert_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/insert_impl.hpp deleted file mode 100644 index ff180acaa..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/insert_impl.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -namespace aux { -template< typename Set, typename T > struct set_insert_impl - : eval_if< - has_key_impl::apply - , identity - , eval_if< - is_same< T,typename Set::last_masked_ > - , base - , identity< s_item > - > - > -{ -}; -} - -template<> -struct insert_impl< aux::set_tag > -{ - template< - typename Set - , typename PosOrKey - , typename KeyOrNA - > - struct apply - : aux::set_insert_impl< - Set - , typename if_na::type - > - { - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/insert_range_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/insert_range_impl.hpp deleted file mode 100644 index f7150a871..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/insert_range_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED - -// Copyright Bruno Dutra 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template<> -struct insert_range_impl< aux::set_tag > -{ - template< - typename Sequence - , typename /*Pos*/ - , typename Range - > - struct apply - : fold > - { - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/item.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/item.hpp deleted file mode 100644 index bd5bc953f..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/item.hpp +++ /dev/null @@ -1,82 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename T, typename Base > -struct s_item - : Base -{ - typedef s_item item_; - typedef void_ last_masked_; - typedef T item_type_; - typedef typename Base::item_ base; - typedef s_item type; - - typedef typename next< typename Base::size >::type size; - typedef typename next< typename Base::order >::type order; - -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) - typedef typename aux::weighted_tag::type order_tag_; -#else - typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value]; -#endif - - BOOST_MPL_AUX_SET_OVERLOAD( order_tag_, ORDER_BY_KEY, s_item, aux::type_wrapper* ); - BOOST_MPL_AUX_SET_OVERLOAD( aux::no_tag, IS_MASKED, s_item, aux::type_wrapper* ); -}; - - -template< typename T, typename Base > -struct s_mask - : Base -{ - typedef s_mask item_; - typedef T last_masked_; - typedef void_ item_type_; - typedef typename Base::item_ base; - typedef typename prior< typename Base::size >::type size; - typedef s_mask type; - - BOOST_MPL_AUX_SET_OVERLOAD( aux::yes_tag, IS_MASKED, s_mask, aux::type_wrapper* ); -}; - - -template< typename T, typename Base > -struct s_unmask - : Base -{ - typedef s_unmask item_; - typedef void_ last_masked_; - typedef T item_type_; - typedef typename Base::item_ base; - typedef typename next< typename Base::size >::type size; - - BOOST_MPL_AUX_SET_OVERLOAD( aux::no_tag, IS_MASKED, s_unmask, aux::type_wrapper* ); -}; - -}} - -#endif // BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/iterator.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/iterator.hpp deleted file mode 100644 index 9a58a25f2..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/iterator.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// used by 's_iter_get' -template< typename Set, typename Tail > struct s_iter; - -template< typename Set, typename Tail > struct s_iter_get - : eval_if< - has_key< Set,typename Tail::item_type_ > - , identity< s_iter > - , next< s_iter > - > -{ -}; - -template< typename Set, typename Tail > struct s_iter_impl -{ - typedef Tail tail_; - typedef forward_iterator_tag category; - typedef typename Tail::item_type_ type; - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - typedef typename s_iter_get< Set,typename Tail::base >::type next; -#endif -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Set, typename Tail > -struct next< s_iter > - : s_iter_get< Set,typename Tail::base > -{ -}; - -template< typename Set > -struct next< s_iter > > -{ - typedef s_iter > type; -}; - -template< typename Set, typename Tail > struct s_iter - : s_iter_impl -{ -}; - -template< typename Set > struct s_iter > -{ - typedef forward_iterator_tag category; -}; - -#else - -template< typename Set > -struct s_end_iter -{ - typedef forward_iterator_tag category; - typedef s_iter > next; -}; - -template< typename Set, typename Tail > struct s_iter - : if_< - is_same< Tail,set0<> > - , s_end_iter - , s_iter_impl - >::type -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}} - -#endif // BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/key_type_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/key_type_impl.hpp deleted file mode 100644 index 8e8a09054..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/key_type_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct key_type_impl< aux::set_tag > -{ - template< typename Set, typename T > struct apply - { - typedef T type; - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/numbered.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/numbered.hpp deleted file mode 100644 index edd839d8a..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/numbered.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -# define AUX778076_SET_TAIL(set, i_, T) \ - typename BOOST_PP_CAT(set,i_)< \ - BOOST_PP_ENUM_PARAMS(i_, T) \ - >::item_ \ - /**/ - -#if i_ > 0 -template< - BOOST_PP_ENUM_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(set,i_) - : s_item< - BOOST_PP_CAT(T,BOOST_PP_DEC(i_)) - , AUX778076_SET_TAIL(set,BOOST_PP_DEC(i_),T) - > -{ - typedef BOOST_PP_CAT(set,i_) type; -}; -#endif - -# undef AUX778076_SET_TAIL - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/numbered_c.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/numbered_c.hpp deleted file mode 100644 index 130cf5d70..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/numbered_c.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -# define AUX778076_SET_C_TAIL(set, i_, T, C) \ - BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c)< \ - T BOOST_PP_ENUM_TRAILING_PARAMS(i_, C) \ - > \ - /**/ - -template< - typename T - , BOOST_PP_ENUM_PARAMS(i_, T C) - > -struct BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c) - : s_item< - integral_c - , AUX778076_SET_C_TAIL(set,BOOST_PP_DEC(i_), T, C) - > -{ - typedef BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c) type; -}; - -# undef AUX778076_SET_C_TAIL - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set10.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set10.hpp deleted file mode 100644 index 2c42b3839..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +++ /dev/null @@ -1,140 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 - > -struct set1 - : s_item< - T0 - , typename set0< >::item_ - > -{ - typedef set1 type; -}; - -template< - typename T0, typename T1 - > -struct set2 - : s_item< - T1 - , typename set1::item_ - > -{ - typedef set2 type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set3 - : s_item< - T2 - , typename set2< T0,T1 >::item_ - > -{ - typedef set3 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set4 - : s_item< - T3 - , typename set3< T0,T1,T2 >::item_ - > -{ - typedef set4 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set5 - : s_item< - T4 - , typename set4< T0,T1,T2,T3 >::item_ - > -{ - typedef set5 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set6 - : s_item< - T5 - , typename set5< T0,T1,T2,T3,T4 >::item_ - > -{ - typedef set6 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set7 - : s_item< - T6 - , typename set6< T0,T1,T2,T3,T4,T5 >::item_ - > -{ - typedef set7 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set8 - : s_item< - T7 - , typename set7< T0,T1,T2,T3,T4,T5,T6 >::item_ - > -{ - typedef set8 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set9 - : s_item< - T8 - , typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::item_ - > -{ - typedef set9 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set10 - : s_item< - T9 - , typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::item_ - > -{ - typedef set10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp deleted file mode 100644 index e9bdb29eb..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +++ /dev/null @@ -1,145 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set10_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0 - > -struct set1_c - : s_item< - integral_c< T,C0 > - , set0_c - > -{ - typedef set1_c type; -}; - -template< - typename T - , T C0, T C1 - > -struct set2_c - : s_item< - integral_c< T,C1 > - , set1_c< T,C0 > - > -{ - typedef set2_c type; -}; - -template< - typename T - , T C0, T C1, T C2 - > -struct set3_c - : s_item< - integral_c< T,C2 > - , set2_c< T,C0,C1 > - > -{ - typedef set3_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3 - > -struct set4_c - : s_item< - integral_c< T,C3 > - , set3_c< T,C0,C1,C2 > - > -{ - typedef set4_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4 - > -struct set5_c - : s_item< - integral_c< T,C4 > - , set4_c< T,C0,C1,C2,C3 > - > -{ - typedef set5_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5 - > -struct set6_c - : s_item< - integral_c< T,C5 > - , set5_c< T,C0,C1,C2,C3,C4 > - > -{ - typedef set6_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6 - > -struct set7_c - : s_item< - integral_c< T,C6 > - , set6_c< T,C0,C1,C2,C3,C4,C5 > - > -{ - typedef set7_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 - > -struct set8_c - : s_item< - integral_c< T,C7 > - , set7_c< T,C0,C1,C2,C3,C4,C5,C6 > - > -{ - typedef set8_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 - > -struct set9_c - : s_item< - integral_c< T,C8 > - , set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > - > -{ - typedef set9_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 - > -struct set10_c - : s_item< - integral_c< T,C9 > - , set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > - > -{ - typedef set10_c type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set20.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set20.hpp deleted file mode 100644 index cb4e46668..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +++ /dev/null @@ -1,168 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set11 - : s_item< - T10 - , typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::item_ - > -{ - typedef set11 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set12 - : s_item< - T11 - , typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::item_ - > -{ - typedef set12 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set13 - : s_item< - T12 - , typename set12< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - , T11 >::item_ - > -{ - typedef set13 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set14 - : s_item< - T13 - , typename set13< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12 >::item_ - > -{ - typedef set14 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set15 - : s_item< - T14 - , typename set14< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13 >::item_ - > -{ - typedef set15 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set16 - : s_item< - T15 - , typename set15< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14 >::item_ - > -{ - typedef set16 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set17 - : s_item< - T16 - , typename set16< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15 >::item_ - > -{ - typedef set17 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set18 - : s_item< - T17 - , typename set17< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16 >::item_ - > -{ - typedef set18 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set19 - : s_item< - T18 - , typename set18< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17 >::item_ - > -{ - typedef set19 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set20 - : s_item< - T19 - , typename set19< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18 >::item_ - > -{ - typedef set20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp deleted file mode 100644 index 445b5467c..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +++ /dev/null @@ -1,154 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set20_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - > -struct set11_c - : s_item< - integral_c< T,C10 > - , set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > - > -{ - typedef set11_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11 - > -struct set12_c - : s_item< - integral_c< T,C11 > - , set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > - > -{ - typedef set12_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12 - > -struct set13_c - : s_item< - integral_c< T,C12 > - , set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > - > -{ - typedef set13_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13 - > -struct set14_c - : s_item< - integral_c< T,C13 > - , set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > - > -{ - typedef set14_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14 - > -struct set15_c - : s_item< - integral_c< T,C14 > - , set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > - > -{ - typedef set15_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15 - > -struct set16_c - : s_item< - integral_c< T,C15 > - , set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > - > -{ - typedef set16_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16 - > -struct set17_c - : s_item< - integral_c< T,C16 > - , set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > - > -{ - typedef set17_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17 - > -struct set18_c - : s_item< - integral_c< T,C17 > - , set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > - > -{ - typedef set18_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 - > -struct set19_c - : s_item< - integral_c< T,C18 > - , set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > - > -{ - typedef set19_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 - > -struct set20_c - : s_item< - integral_c< T,C19 > - , set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > - > -{ - typedef set20_c type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set30.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set30.hpp deleted file mode 100644 index 08f2cda27..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +++ /dev/null @@ -1,195 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20 - > -struct set21 - : s_item< - T20 - , typename set20< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19 >::item_ - > -{ - typedef set21 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21 - > -struct set22 - : s_item< - T21 - , typename set21< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20 >::item_ - > -{ - typedef set22 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22 - > -struct set23 - : s_item< - T22 - , typename set22< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 >::item_ - > -{ - typedef set23 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23 - > -struct set24 - : s_item< - T23 - , typename set23< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 >::item_ - > -{ - typedef set24 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - > -struct set25 - : s_item< - T24 - , typename set24< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 >::item_ - > -{ - typedef set25 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25 - > -struct set26 - : s_item< - T25 - , typename set25< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 - , T24 >::item_ - > -{ - typedef set26 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26 - > -struct set27 - : s_item< - T26 - , typename set26< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 - , T25 >::item_ - > -{ - typedef set27 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27 - > -struct set28 - : s_item< - T27 - , typename set27< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26 >::item_ - > -{ - typedef set28 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28 - > -struct set29 - : s_item< - T28 - , typename set28< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27 >::item_ - > -{ - typedef set29 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - > -struct set30 - : s_item< - T29 - , typename set29< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28 >::item_ - > -{ - typedef set30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp deleted file mode 100644 index 7c0150ca3..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +++ /dev/null @@ -1,164 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set30_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - > -struct set21_c - : s_item< - integral_c< T,C20 > - , set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > - > -{ - typedef set21_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21 - > -struct set22_c - : s_item< - integral_c< T,C21 > - , set21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > - > -{ - typedef set22_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22 - > -struct set23_c - : s_item< - integral_c< T,C22 > - , set22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > - > -{ - typedef set23_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23 - > -struct set24_c - : s_item< - integral_c< T,C23 > - , set23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > - > -{ - typedef set24_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24 - > -struct set25_c - : s_item< - integral_c< T,C24 > - , set24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > - > -{ - typedef set25_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25 - > -struct set26_c - : s_item< - integral_c< T,C25 > - , set25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > - > -{ - typedef set26_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26 - > -struct set27_c - : s_item< - integral_c< T,C26 > - , set26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > - > -{ - typedef set27_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27 - > -struct set28_c - : s_item< - integral_c< T,C27 > - , set27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > - > -{ - typedef set28_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 - > -struct set29_c - : s_item< - integral_c< T,C28 > - , set28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > - > -{ - typedef set29_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 - > -struct set30_c - : s_item< - integral_c< T,C29 > - , set29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > - > -{ - typedef set30_c type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set40.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set40.hpp deleted file mode 100644 index a8571a61f..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +++ /dev/null @@ -1,221 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30 - > -struct set31 - : s_item< - T30 - , typename set30< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29 >::item_ - > -{ - typedef set31 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31 - > -struct set32 - : s_item< - T31 - , typename set31< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30 >::item_ - > -{ - typedef set32 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32 - > -struct set33 - : s_item< - T32 - , typename set32< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31 >::item_ - > -{ - typedef set33 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33 - > -struct set34 - : s_item< - T33 - , typename set33< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32 >::item_ - > -{ - typedef set34 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - > -struct set35 - : s_item< - T34 - , typename set34< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33 >::item_ - > -{ - typedef set35 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35 - > -struct set36 - : s_item< - T35 - , typename set35< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34 >::item_ - > -{ - typedef set36 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36 - > -struct set37 - : s_item< - T36 - , typename set36< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35 >::item_ - > -{ - typedef set37 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37 - > -struct set38 - : s_item< - T37 - , typename set37< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36 >::item_ - > -{ - typedef set38 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38 - > -struct set39 - : s_item< - T38 - , typename set38< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37 >::item_ - > -{ - typedef set39 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - > -struct set40 - : s_item< - T39 - , typename set39< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37 - , T38 >::item_ - > -{ - typedef set40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp deleted file mode 100644 index 0b0e49cdd..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +++ /dev/null @@ -1,174 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set40_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - > -struct set31_c - : s_item< - integral_c< T,C30 > - , set30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > - > -{ - typedef set31_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31 - > -struct set32_c - : s_item< - integral_c< T,C31 > - , set31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > - > -{ - typedef set32_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32 - > -struct set33_c - : s_item< - integral_c< T,C32 > - , set32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > - > -{ - typedef set33_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33 - > -struct set34_c - : s_item< - integral_c< T,C33 > - , set33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > - > -{ - typedef set34_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34 - > -struct set35_c - : s_item< - integral_c< T,C34 > - , set34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > - > -{ - typedef set35_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35 - > -struct set36_c - : s_item< - integral_c< T,C35 > - , set35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > - > -{ - typedef set36_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36 - > -struct set37_c - : s_item< - integral_c< T,C36 > - , set36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > - > -{ - typedef set37_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37 - > -struct set38_c - : s_item< - integral_c< T,C37 > - , set37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > - > -{ - typedef set38_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 - > -struct set39_c - : s_item< - integral_c< T,C38 > - , set38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > - > -{ - typedef set39_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 - > -struct set40_c - : s_item< - integral_c< T,C39 > - , set39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > - > -{ - typedef set40_c type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set50.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set50.hpp deleted file mode 100644 index 79798ab49..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +++ /dev/null @@ -1,250 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40 - > -struct set41 - : s_item< - T40 - , typename set40< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38 - , T39 >::item_ - > -{ - typedef set41 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41 - > -struct set42 - : s_item< - T41 - , typename set41< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40 >::item_ - > -{ - typedef set42 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42 - > -struct set43 - : s_item< - T42 - , typename set42< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41 >::item_ - > -{ - typedef set43 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43 - > -struct set44 - : s_item< - T43 - , typename set43< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42 >::item_ - > -{ - typedef set44 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - > -struct set45 - : s_item< - T44 - , typename set44< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42, T43 >::item_ - > -{ - typedef set45 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45 - > -struct set46 - : s_item< - T45 - , typename set45< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42, T43, T44 >::item_ - > -{ - typedef set46 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46 - > -struct set47 - : s_item< - T46 - , typename set46< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42, T43, T44, T45 >::item_ - > -{ - typedef set47 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47 - > -struct set48 - : s_item< - T47 - , typename set47< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42, T43, T44, T45, T46 >::item_ - > -{ - typedef set48 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48 - > -struct set49 - : s_item< - T48 - , typename set48< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42, T43, T44, T45, T46, T47 >::item_ - > -{ - typedef set49 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48, typename T49 - > -struct set50 - : s_item< - T49 - , typename set49< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - , T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25 - , T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39 - , T40, T41, T42, T43, T44, T45, T46, T47, T48 >::item_ - > -{ - typedef set50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp deleted file mode 100644 index 83627fa13..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +++ /dev/null @@ -1,184 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/set/set50_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - > -struct set41_c - : s_item< - integral_c< T,C40 > - , set40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > - > -{ - typedef set41_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41 - > -struct set42_c - : s_item< - integral_c< T,C41 > - , set41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > - > -{ - typedef set42_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42 - > -struct set43_c - : s_item< - integral_c< T,C42 > - , set42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > - > -{ - typedef set43_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43 - > -struct set44_c - : s_item< - integral_c< T,C43 > - , set43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > - > -{ - typedef set44_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44 - > -struct set45_c - : s_item< - integral_c< T,C44 > - , set44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > - > -{ - typedef set45_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45 - > -struct set46_c - : s_item< - integral_c< T,C45 > - , set45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > - > -{ - typedef set46_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46 - > -struct set47_c - : s_item< - integral_c< T,C46 > - , set46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > - > -{ - typedef set47_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47 - > -struct set48_c - : s_item< - integral_c< T,C47 > - , set47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > - > -{ - typedef set48_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 - > -struct set49_c - : s_item< - integral_c< T,C48 > - , set48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > - > -{ - typedef set49_c type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 - > -struct set50_c - : s_item< - integral_c< T,C49 > - , set49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > - > -{ - typedef set50_c type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/set0.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/set0.hpp deleted file mode 100644 index 65f52a817..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/set0.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) - -# define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \ - friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \ -/**/ - -# define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \ - BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \ -/**/ - -#else - -# define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \ - static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \ -/**/ - -# define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \ - BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T); \ - using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \ -/**/ - -#endif - -template< typename Dummy = na > struct set0 -{ - typedef set0<> item_; - typedef item_ type; - typedef aux::set_tag tag; - typedef void_ last_masked_; - typedef void_ item_type_; - typedef long_<0> size; - typedef long_<1> order; - - BOOST_MPL_AUX_SET0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, set0<>, void const volatile* ); - BOOST_MPL_AUX_SET0_OVERLOAD( aux::yes_tag, IS_MASKED, set0<>, void const volatile* ); -}; - -}} - -#endif // BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/size_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/size_impl.hpp deleted file mode 100644 index e86559669..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/size_impl.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct size_impl< aux::set_tag > -{ - template< typename Set > struct apply - : Set::size - { - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/tag.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/tag.hpp deleted file mode 100644 index f11fc2bbe..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/tag.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { namespace aux { - -struct set_tag; - -}}} - -#endif // BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/aux_/value_type_impl.hpp b/lib/3rdParty/boost/boost/mpl/set/aux_/value_type_impl.hpp deleted file mode 100644 index 91cf0d00c..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/aux_/value_type_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template<> -struct value_type_impl< aux::set_tag > -{ - template< typename Set, typename T > struct apply - { - typedef T type; - }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set0.hpp b/lib/3rdParty/boost/boost/mpl/set/set0.hpp deleted file mode 100644 index 1c424e464..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set0.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET0_HPP_INCLUDED -#define BOOST_MPL_SET_SET0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_MPL_SET_SET0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set0_c.hpp b/lib/3rdParty/boost/boost/mpl/set/set0_c.hpp deleted file mode 100644 index 7e7f77a96..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set0_c.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET0_C_HPP_INCLUDED -#define BOOST_MPL_SET_SET0_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< typename T > struct set0_c - : set0<> -{ - typedef set0_c type; - typedef T value_type; -}; - -}} - -#endif // BOOST_MPL_SET_SET0_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set10.hpp b/lib/3rdParty/boost/boost/mpl/set/set10.hpp deleted file mode 100644 index fa876b25e..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set10.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET10_HPP_INCLUDED -#define BOOST_MPL_SET_SET10_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set10.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET10_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set10_c.hpp b/lib/3rdParty/boost/boost/mpl/set/set10_c.hpp deleted file mode 100644 index 34abd9840..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set10_c.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET10_C_HPP_INCLUDED -#define BOOST_MPL_SET_SET10_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set10_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET10_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set20.hpp b/lib/3rdParty/boost/boost/mpl/set/set20.hpp deleted file mode 100644 index 0cdff4780..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set20.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET20_HPP_INCLUDED -#define BOOST_MPL_SET_SET20_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set20.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET20_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set20_c.hpp b/lib/3rdParty/boost/boost/mpl/set/set20_c.hpp deleted file mode 100644 index e3de0447e..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set20_c.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET20_C_HPP_INCLUDED -#define BOOST_MPL_SET_SET20_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set20_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET20_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set30.hpp b/lib/3rdParty/boost/boost/mpl/set/set30.hpp deleted file mode 100644 index b0344546a..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set30.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET30_HPP_INCLUDED -#define BOOST_MPL_SET_SET30_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set30.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET30_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set30_c.hpp b/lib/3rdParty/boost/boost/mpl/set/set30_c.hpp deleted file mode 100644 index e006e1cd6..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set30_c.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET30_C_HPP_INCLUDED -#define BOOST_MPL_SET_SET30_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set30_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET30_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set40.hpp b/lib/3rdParty/boost/boost/mpl/set/set40.hpp deleted file mode 100644 index 5fa2cd0e4..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set40.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET40_HPP_INCLUDED -#define BOOST_MPL_SET_SET40_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set40.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET40_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set40_c.hpp b/lib/3rdParty/boost/boost/mpl/set/set40_c.hpp deleted file mode 100644 index bce5a80dc..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set40_c.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET40_C_HPP_INCLUDED -#define BOOST_MPL_SET_SET40_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set40_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET40_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set50.hpp b/lib/3rdParty/boost/boost/mpl/set/set50.hpp deleted file mode 100644 index 0c2bfc01a..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set50.hpp +++ /dev/null @@ -1,44 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET50_HPP_INCLUDED -#define BOOST_MPL_SET_SET50_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set50.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET50_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set/set50_c.hpp b/lib/3rdParty/boost/boost/mpl/set/set50_c.hpp deleted file mode 100644 index 077dbf762..000000000 --- a/lib/3rdParty/boost/boost/mpl/set/set50_c.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET50_C_HPP_INCLUDED -#define BOOST_MPL_SET_SET50_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set50_c.hpp -# include - -#else - -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_SET_SET50_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/set_c.hpp b/lib/3rdParty/boost/boost/mpl/set_c.hpp deleted file mode 100644 index c0f8e37fa..000000000 --- a/lib/3rdParty/boost/boost/mpl/set_c.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_SET_C_HPP_INCLUDED -#define BOOST_MPL_SET_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_SET_C_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_SET_SIZE),_c).hpp \ - /**/ -#else -# define AUX778076_SET_C_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(set,BOOST_MPL_LIMIT_SET_SIZE),_c)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/set/AUX778076_SET_C_HEADER) -# undef AUX778076_SET_C_HEADER -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER set_c.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME set_c -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_SET_SIZE -# define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(set,n),_c) -# define AUX778076_SEQUENCE_INTEGRAL_WRAPPER -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_SET_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/shift_left.hpp b/lib/3rdParty/boost/boost/mpl/shift_left.hpp deleted file mode 100644 index 55e4f649d..000000000 --- a/lib/3rdParty/boost/boost/mpl/shift_left.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED -#define BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME shift_left -#define AUX778076_OP_TOKEN << -#include - -#endif // BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/shift_right.hpp b/lib/3rdParty/boost/boost/mpl/shift_right.hpp deleted file mode 100644 index 1ae1e35eb..000000000 --- a/lib/3rdParty/boost/boost/mpl/shift_right.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED -#define BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME shift_right -#define AUX778076_OP_TOKEN >> -#include - -#endif // BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/single_view.hpp b/lib/3rdParty/boost/boost/mpl/single_view.hpp deleted file mode 100644 index a872bb1fc..000000000 --- a/lib/3rdParty/boost/boost/mpl/single_view.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_SINGLE_VIEW_HPP_INCLUDED -#define BOOST_MPL_SINGLE_VIEW_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct single_view - : iterator_range< - aux::sel_iter - , aux::sel_iter - > -{ -}; - -BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, single_view) - -}} - -#endif // BOOST_MPL_SINGLE_VIEW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/size.hpp b/lib/3rdParty/boost/boost/mpl/size.hpp deleted file mode 100644 index 12ffefbb7..000000000 --- a/lib/3rdParty/boost/boost/mpl/size.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_SIZE_HPP_INCLUDED -#define BOOST_MPL_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct size - : aux::msvc_eti_base< - typename size_impl< typename sequence_tag::type > - ::template apply< Sequence >::type - >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1, size, (Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, size) - -}} - -#endif // BOOST_MPL_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/size_fwd.hpp b/lib/3rdParty/boost/boost/mpl/size_fwd.hpp deleted file mode 100644 index c72628dd1..000000000 --- a/lib/3rdParty/boost/boost/mpl/size_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_SIZE_FWD_HPP_INCLUDED -#define BOOST_MPL_SIZE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct size_impl; -template< typename Sequence > struct size; - -}} - -#endif // BOOST_MPL_SIZE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/size_t.hpp b/lib/3rdParty/boost/boost/mpl/size_t.hpp deleted file mode 100644 index 99e9b41d0..000000000 --- a/lib/3rdParty/boost/boost/mpl/size_t.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED -#define BOOST_MPL_SIZE_T_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#define AUX_WRAPPER_VALUE_TYPE std::size_t -#define AUX_WRAPPER_NAME size_t -#define AUX_WRAPPER_PARAMS(N) std::size_t N - -#include - -#endif // BOOST_MPL_SIZE_T_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/size_t_fwd.hpp b/lib/3rdParty/boost/boost/mpl/size_t_fwd.hpp deleted file mode 100644 index ffdf4b32d..000000000 --- a/lib/3rdParty/boost/boost/mpl/size_t_fwd.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED -#define BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include // make sure 'size_t' is placed into 'std' -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< std::size_t N > struct size_t; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t) - -#endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/sizeof.hpp b/lib/3rdParty/boost/boost/mpl/sizeof.hpp deleted file mode 100644 index cf5e41c65..000000000 --- a/lib/3rdParty/boost/boost/mpl/sizeof.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_SIZEOF_HPP_INCLUDED -#define BOOST_MPL_SIZEOF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-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/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct sizeof_ - : mpl::size_t< sizeof(T) > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,sizeof_,(T)) -}; - -BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, sizeof_) - -}} - -#endif // BOOST_MPL_SIZEOF_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/sort.hpp b/lib/3rdParty/boost/boost/mpl/sort.hpp deleted file mode 100644 index 961aeab8c..000000000 --- a/lib/3rdParty/boost/boost/mpl/sort.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_SORT_HPP_INCLUDED -#define BOOST_MPL_SORT_HPP_INCLUDED - -// Copyright Eric Friedman 2002-2003 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, sort) - -}} - -#endif // BOOST_MPL_SORT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/stable_partition.hpp b/lib/3rdParty/boost/boost/mpl/stable_partition.hpp deleted file mode 100644 index e010de3cf..000000000 --- a/lib/3rdParty/boost/boost/mpl/stable_partition.hpp +++ /dev/null @@ -1,75 +0,0 @@ - -#ifndef BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED -#define BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED - -// Copyright Eric Friedman 2002-2003 -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template < - typename Sequence - , typename Pred - , typename In - , typename In2 - , typename In1 = typename if_na::type - > -struct stable_partition_impl - : fold< - Sequence - , pair< typename In1::state, typename In2::state > - , protect< partition_op< - Pred - , typename In1::operation - , typename In2::operation - > > - > -{ -}; - -template < - typename Sequence - , typename Pred - , typename In - , typename In2 - , typename In1 = typename if_na::type - > -struct reverse_stable_partition_impl - : reverse_fold< - Sequence - , pair< typename In1::state, typename In2::state > - , protect< partition_op< - Pred - , typename In1::operation - , typename In2::operation - > > - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, stable_partition) - -}} - -#endif // BOOST_MPL_STABLE_PARTITION_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/string.hpp b/lib/3rdParty/boost/boost/mpl/string.hpp deleted file mode 100644 index e7898562d..000000000 --- a/lib/3rdParty/boost/boost/mpl/string.hpp +++ /dev/null @@ -1,607 +0,0 @@ - -#ifndef BOOST_MPL_STRING_HPP_INCLUDED -#define BOOST_MPL_STRING_HPP_INCLUDED - -// Copyright Eric Niebler 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $ -// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $ -// $Revision: 49239 $ -// -// Thanks to: -// Dmitry Goncharov for porting this to the Sun compiler - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include // for bidirectional_iterator_tag -#include - -namespace boost { namespace mpl -{ - #define BOOST_MPL_STRING_MAX_PARAMS \ - BOOST_PP_DIV(BOOST_PP_ADD(BOOST_MPL_LIMIT_STRING_SIZE, 3), 4) - - // Low-level bit-twiddling is done by macros. Any implementation-defined behavior of - // multi-character literals should be localized to these macros. - - #define BOOST_MPL_MULTICHAR_LENGTH(c) \ - (std::size_t)((c0xffffff)+(c>0xffff)+(c>0xff)+1)) - - #if BOOST_ENDIAN_LITTLE_BYTE && defined(__SUNPRO_CC) - - #define BOOST_MPL_MULTICHAR_AT(c,i) \ - (char)(0xff&((unsigned)(c)>>(8*(std::size_t)(i)))) - - #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i) \ - ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c)) - - #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i) \ - (((unsigned)(c)<<8)|(unsigned char)(i)) - - #define BOOST_MPL_MULTICHAR_POP_BACK(c) \ - (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c)) - - #define BOOST_MPL_MULTICHAR_POP_FRONT(c) \ - ((unsigned)(c)>>8) - - #else - - #define BOOST_MPL_MULTICHAR_AT(c,i) \ - (char)(0xff&((unsigned)(c)>>(8*(BOOST_MPL_MULTICHAR_LENGTH(c)-(std::size_t)(i)-1)))) - - #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i) \ - (((unsigned)(c)<<8)|(unsigned char)(i)) - - #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i) \ - ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c)) - - #define BOOST_MPL_MULTICHAR_POP_BACK(c) \ - ((unsigned)(c)>>8) - - #define BOOST_MPL_MULTICHAR_POP_FRONT(c) \ - (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c)) - - #endif - - struct string_tag; - struct string_iterator_tag; - - template - struct string; - - template - struct string_iterator; - - template - struct sequence_tag; - - template - struct size_impl; - - template<> - struct size_impl - { - template - struct apply; - - #define M0(z, n, data) \ - + BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C,n)) - - #define M1(z, n, data) \ - template \ - struct apply > \ - : mpl::size_t<(0 BOOST_PP_REPEAT_ ## z(n, M0, ~))> \ - {}; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M1, ~) - #undef M0 - #undef M1 - }; - - template<> - struct size_impl::apply > - : mpl::size_t<0> - {}; - - template - struct begin_impl; - - template<> - struct begin_impl - { - template - struct apply - { - typedef mpl::string_iterator type; - }; - }; - - template - struct end_impl; - - template<> - struct end_impl - { - template - struct apply; - - #define M0(z,n,data) \ - template \ - struct apply > \ - { \ - typedef mpl::string_iterator, n, 0> type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~) - #undef M0 - }; - - template<> - struct end_impl::apply > - { - typedef mpl::string_iterator, 0, 0> type; - }; - - template - struct push_back_impl; - - template<> - struct push_back_impl - { - template - struct apply - { - BOOST_MPL_ASSERT_MSG( - (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size::type::value) - , PUSH_BACK_FAILED_MPL_STRING_IS_FULL - , (Sequence) - ); - // If the above assertion didn't fire, then the string is sparse. - // Repack the string and retry the push_back - typedef - typename mpl::push_back< - typename mpl::copy< - Sequence - , mpl::back_inserter > - >::type - , Value - >::type - type; - }; - - template - struct apply, Value, false> - { - typedef mpl::string<(char)Value::value> type; - }; - - #define M0(z,n,data) \ - template \ - struct apply, Value, false> \ - { \ - typedef \ - mpl::string< \ - BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C) \ - BOOST_PP_COMMA_IF(BOOST_PP_DEC(n)) \ - ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff) \ - ?BOOST_PP_CAT(C,BOOST_PP_DEC(n)) \ - :BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n)), Value::value) \ - , ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff) \ - ?(char)Value::value \ - :0 \ - > \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct apply, Value, false> - { - typedef - mpl::string< - BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS), C) - , BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)), Value::value) - > - type; - }; - }; - - template - struct has_push_back_impl; - - template<> - struct has_push_back_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct pop_back_impl; - - template<> - struct pop_back_impl - { - template - struct apply; - - #define M0(z,n,data) \ - template \ - struct apply > \ - { \ - BOOST_MPL_ASSERT_MSG((C0 != 0), POP_BACK_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>)); \ - typedef \ - mpl::string< \ - BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C) \ - BOOST_PP_COMMA_IF(BOOST_PP_DEC(n)) \ - BOOST_MPL_MULTICHAR_POP_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n))) \ - > \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~) - #undef M0 - }; - - template - struct has_pop_back_impl; - - template<> - struct has_pop_back_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct push_front_impl; - - template<> - struct push_front_impl - { - template - struct apply - { - BOOST_MPL_ASSERT_MSG( - (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size::type::value) - , PUSH_FRONT_FAILED_MPL_STRING_IS_FULL - , (Sequence) - ); - // If the above assertion didn't fire, then the string is sparse. - // Repack the string and retry the push_front. - typedef - typename mpl::push_front< - typename mpl::reverse_copy< - Sequence - , mpl::front_inserter > - >::type - , Value - >::type - type; - }; - - #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - template - struct apply, Value, false> - { - typedef mpl::string<(char)Value::value> type; - }; - #endif - - #define M0(z,n,data) \ - template \ - struct apply, Value, true> \ - { \ - typedef \ - mpl::string< \ - (char)Value::value \ - BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, C) \ - > \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct apply, Value, false> - { - typedef - mpl::string< - BOOST_MPL_MULTICHAR_PUSH_FRONT(C0, Value::value) - , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C) - > - type0; - - #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - typedef - typename mpl::if_< - mpl::empty > - , mpl::string<(char)Value::value> - , type0 - >::type - type; - #else - typedef type0 type; - #endif - }; - }; - - template - struct has_push_front_impl; - - template<> - struct has_push_front_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct pop_front_impl; - - template<> - struct pop_front_impl - { - template - struct apply; - - #define M0(z,n,data) \ - template \ - struct apply, true> \ - { \ - BOOST_MPL_ASSERT_MSG((C0 != 0), POP_FRONT_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>)); \ - typedef \ - mpl::string \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct apply, false> - { - typedef - mpl::string< - BOOST_MPL_MULTICHAR_POP_FRONT(C0) - , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C) - > - type; - }; - }; - - template - struct has_pop_front_impl; - - template<> - struct has_pop_front_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct insert_range_impl; - - template<> - struct insert_range_impl - { - template - struct apply - : mpl::copy< - mpl::joint_view< - mpl::iterator_range< - mpl::string_iterator - , Pos - > - , mpl::joint_view< - Range - , mpl::iterator_range< - Pos - , typename mpl::end::type - > - > - > - , mpl::back_inserter > - > - {}; - }; - - template - struct insert_impl; - - template<> - struct insert_impl - { - template - struct apply - : mpl::insert_range > - {}; - }; - - template - struct erase_impl; - - template<> - struct erase_impl - { - template - struct apply - : mpl::copy< - mpl::joint_view< - mpl::iterator_range< - mpl::string_iterator - , First - > - , mpl::iterator_range< - typename mpl::if_na::type>::type - , typename mpl::end::type - > - > - , mpl::back_inserter > - > - {}; - }; - - template - struct clear_impl; - - template<> - struct clear_impl - { - template - struct apply - { - typedef mpl::string<> type; - }; - }; - - #define M0(z, n, data) \ - template \ - struct string_iterator, n, J> \ - { \ - enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) }; \ - typedef mpl::string string; \ - typedef std::bidirectional_iterator_tag category; \ - typedef \ - mpl::string_iterator \ - next; \ - typedef \ - mpl::string_iterator \ - prior; \ - typedef mpl::char_ type; \ - }; \ - template \ - struct string_iterator, n, 0> \ - { \ - enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) }; \ - typedef mpl::string string; \ - typedef std::bidirectional_iterator_tag category; \ - typedef \ - mpl::string_iterator \ - next; \ - typedef \ - mpl::string_iterator< \ - string \ - , n - 1 \ - , BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, BOOST_PP_DEC(n))) - 1 \ - > \ - prior; \ - typedef mpl::char_ type; \ - }; - - BOOST_PP_REPEAT(BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct string - { - /// INTERNAL ONLY - enum - { - front_ = C0 - , back_ = BOOST_PP_CAT(C, BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)) - }; - - typedef char value_type; - typedef string type; - typedef string_tag tag; - }; - - namespace aux_ - { - template - struct next_unless - : mpl::next - {}; - - template - struct next_unless - { - typedef End type; - }; - - template - struct deref_unless - : mpl::deref - {}; - - template - struct deref_unless - { - typedef mpl::char_<'\0'> type; - }; - } - - template - struct c_str - { - typedef typename mpl::end::type iend; - typedef typename mpl::begin::type i0; - #define M0(z, n, data) \ - typedef \ - typename mpl::aux_::next_unless::type \ - BOOST_PP_CAT(i, BOOST_PP_INC(n)); - BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) - #undef M0 - - typedef c_str type; - static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1]; - }; - - template - typename Sequence::value_type const c_str::value[BOOST_MPL_LIMIT_STRING_SIZE+1] = - { - #define M0(z, n, data) \ - mpl::aux_::deref_unless::type::value, - BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) - #undef M0 - '\0' - }; - -}} // namespace boost - -#endif // BOOST_MPL_STRING_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/switch.hpp b/lib/3rdParty/boost/boost/mpl/switch.hpp deleted file mode 100644 index 8edc38fad..000000000 --- a/lib/3rdParty/boost/boost/mpl/switch.hpp +++ /dev/null @@ -1,49 +0,0 @@ - -#ifndef BOOST_MPL_SWITCH_HPP_INCLUDED -#define BOOST_MPL_SWITCH_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Body) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct switch_ -{ - typedef typename find_if< - Body - , apply1< lambda< first<_1> >, T > - >::type iter_; - - typedef typename deref::type pair_; - typedef typename lambda< typename second::type >::type f_; - typedef typename apply1::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,switch_,(Body,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, switch_) - -}} - -#endif // BOOST_MPL_SWITCH_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/tag.hpp b/lib/3rdParty/boost/boost/mpl/tag.hpp deleted file mode 100644 index 858627753..000000000 --- a/lib/3rdParty/boost/boost/mpl/tag.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_TAG_HPP_INCLUDED -#define BOOST_MPL_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { -template< typename T > struct tag_impl -{ - typedef typename T::tag type; -}; -} - -template< typename T, typename Default = void_ > struct tag -#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - : if_< - aux::has_tag - , aux::tag_impl - , Default - >::type -{ -#else -{ - typedef typename eval_if< - aux::has_tag - , aux::tag_impl - , Default - >::type type; - -#endif -}; - -}} - -#endif // BOOST_MPL_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/times.hpp b/lib/3rdParty/boost/boost/mpl/times.hpp deleted file mode 100644 index f309557c6..000000000 --- a/lib/3rdParty/boost/boost/mpl/times.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_TIMES_HPP_INCLUDED -#define BOOST_MPL_TIMES_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#define AUX778076_OP_NAME times -#define AUX778076_OP_TOKEN * -#include - -#endif // BOOST_MPL_TIMES_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/transform.hpp b/lib/3rdParty/boost/boost/mpl/transform.hpp deleted file mode 100644 index 4d3e2a049..000000000 --- a/lib/3rdParty/boost/boost/mpl/transform.hpp +++ /dev/null @@ -1,145 +0,0 @@ - -#ifndef BOOST_MPL_TRANSFORM_HPP_INCLUDED -#define BOOST_MPL_TRANSFORM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Seq - , typename Op - , typename In - > -struct transform1_impl - : fold< - Seq - , typename In::state - , bind2< typename lambda< typename In::operation >::type - , _1 - , bind1< typename lambda::type, _2> - > - > -{ -}; - -template< - typename Seq - , typename Op - , typename In - > -struct reverse_transform1_impl - : reverse_fold< - Seq - , typename In::state - , bind2< typename lambda< typename In::operation >::type - , _1 - , bind1< typename lambda::type, _2> - > - > -{ -}; - -template< - typename Seq1 - , typename Seq2 - , typename Op - , typename In - > -struct transform2_impl - : fold< - pair_view - , typename In::state - , bind2< typename lambda< typename In::operation >::type - , _1 - , bind2< - typename lambda::type - , bind1,_2> - , bind1,_2> - > - > - > -{ -}; - -template< - typename Seq1 - , typename Seq2 - , typename Op - , typename In - > -struct reverse_transform2_impl - : reverse_fold< - pair_view - , typename In::state - , bind2< typename lambda< typename In::operation >::type - , _1 - , bind2< typename lambda< Op >::type - , bind1,_2> - , bind1,_2> - > - > - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, transform1) -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(4, transform2) - -#define AUX778076_TRANSFORM_DEF(name) \ -template< \ - typename BOOST_MPL_AUX_NA_PARAM(Seq1) \ - , typename BOOST_MPL_AUX_NA_PARAM(Seq2OrOperation) \ - , typename BOOST_MPL_AUX_NA_PARAM(OperationOrInserter) \ - , typename BOOST_MPL_AUX_NA_PARAM(Inserter) \ - > \ -struct name \ -{ \ - typedef typename eval_if< \ - or_< \ - is_na \ - , is_lambda_expression< Seq2OrOperation > \ - , not_< is_sequence > \ - > \ - , name##1 \ - , name##2 \ - >::type type; \ -}; \ -BOOST_MPL_AUX_NA_SPEC(4, name) \ -/**/ - -AUX778076_TRANSFORM_DEF(transform) -AUX778076_TRANSFORM_DEF(reverse_transform) - -#undef AUX778076_TRANSFORM_DEF - -}} - -#endif // BOOST_MPL_TRANSFORM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/transform_view.hpp b/lib/3rdParty/boost/boost/mpl/transform_view.hpp deleted file mode 100644 index 6c0e0b6dd..000000000 --- a/lib/3rdParty/boost/boost/mpl/transform_view.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED -#define BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(F) - > -struct transform_view -{ - private: - typedef typename lambda::type f_; - typedef typename begin::type first_; - typedef typename end::type last_; - - public: - struct tag; - typedef transform_view type; - typedef aux::transform_iter< first_,last_,f_ > begin; - typedef aux::transform_iter< last_,last_,f_ > end; -}; - -BOOST_MPL_AUX_NA_SPEC(2, transform_view) - -}} - -#endif // BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/unique.hpp b/lib/3rdParty/boost/boost/mpl/unique.hpp deleted file mode 100644 index 80a27da4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/unique.hpp +++ /dev/null @@ -1,85 +0,0 @@ - -#ifndef BOOST_MPL_UNIQUE_HPP_INCLUDED -#define BOOST_MPL_UNIQUE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright John R. Bandela 2000-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< typename Predicate, typename Operation > -struct unique_op -{ - template< typename Pair, typename T > struct apply - { - typedef typename Pair::first seq_; - typedef typename Pair::second prior_; - typedef typename eval_if< - and_< is_not_na, apply2 > - , identity - , apply2 - >::type new_seq_; - - typedef pair type; - }; -}; - -template< - typename Sequence - , typename Predicate - , typename Inserter - > -struct unique_impl - : first< typename fold< - Sequence - , pair< typename Inserter::state,na > - , protect< aux::unique_op > - >::type > -{ -}; - -template< - typename Sequence - , typename Predicate - , typename Inserter - > -struct reverse_unique_impl - : first< typename reverse_fold< - Sequence - , pair< typename Inserter::state,na > - , protect< aux::unique_op > - >::type > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, unique) - -}} - -#endif // BOOST_MPL_UNIQUE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/unpack_args.hpp b/lib/3rdParty/boost/boost/mpl/unpack_args.hpp deleted file mode 100644 index f64ace338..000000000 --- a/lib/3rdParty/boost/boost/mpl/unpack_args.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_UNPACK_ARGS_HPP_INCLUDED -#define BOOST_MPL_UNPACK_ARGS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER unpack_args.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header - -# define AUX778076_UNPACK(unused, i, Args) \ - , typename at_c::type \ - /**/ - -# define AUX778076_UNPACKED_ARGS(n, Args) \ - BOOST_MPL_PP_REPEAT(n, AUX778076_UNPACK, Args) \ - /**/ - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< int size, typename F, typename Args > -struct unpack_args_impl; -#else -template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl -{ - template< typename F, typename Args > struct apply; -}; -#endif - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - : aux::unpack_args_impl< size::value,F,Args > -# else - : aux::unpack_args_impl< size::value > - ::template apply< F,Args > -# endif - { -#else // BOOST_MPL_CFG_NO_NESTED_FORWARDING - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; -#endif - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -# undef AUX778076_UNPACK -# undef AUX778076_UNPACKED_ARGS - -}} - -#endif // BOOST_MPL_CFG_USE_PREPROCESSED_HEADERS -#endif // BOOST_MPL_UNPACK_ARGS_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename F, typename Args > -struct unpack_args_impl - : BOOST_PP_CAT(apply,i_)< - F - AUX778076_UNPACKED_ARGS(i_, Args) - > -{ -}; - -#else - -template<> struct unpack_args_impl -{ - template< typename F, typename Args > struct apply - : BOOST_PP_CAT(apply,i_)< - F - AUX778076_UNPACKED_ARGS(i_, Args) - > - { - }; -}; - -#endif - -# undef i_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/upper_bound.hpp b/lib/3rdParty/boost/boost/mpl/upper_bound.hpp deleted file mode 100644 index ff943e60e..000000000 --- a/lib/3rdParty/boost/boost/mpl/upper_bound.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -#ifndef BOOST_MPL_UPPER_BOUND_HPP_INCLUDED -#define BOOST_MPL_UPPER_BOUND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# define BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL -#endif - -#if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#else -# include -# include -#endif - -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL) - -// agurt 23/oct/02: has a wrong complexity etc., but at least it works; -// feel free to contribute a better implementation! -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - , typename Predicate = less<> - , typename pred_ = typename lambda::type - > -struct upper_bound - : find_if< Sequence, bind2 > -{ -}; - -#else - -namespace aux { - -template< - typename Distance - , typename Predicate - , typename T - , typename DeferredIterator - > -struct upper_bound_step_impl; - -template< - typename Distance - , typename Predicate - , typename T - , typename DeferredIterator - > -struct upper_bound_step -{ - typedef typename eval_if< - Distance - , upper_bound_step_impl - , DeferredIterator - >::type type; -}; - -template< - typename Distance - , typename Predicate - , typename T - , typename DeferredIterator - > -struct upper_bound_step_impl -{ - typedef typename divides< Distance, long_<2> >::type offset_; - typedef typename DeferredIterator::type iter_; - typedef typename advance< iter_,offset_ >::type middle_; - typedef typename apply2< - Predicate - , T - , typename deref::type - >::type cond_; - - typedef typename prior< minus< Distance, offset_ > >::type step_; - typedef upper_bound_step< offset_,Predicate,T,DeferredIterator > step_forward_; - typedef upper_bound_step< step_,Predicate,T,next > step_backward_; - typedef typename eval_if< - cond_ - , step_forward_ - , step_backward_ - >::type type; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - , typename Predicate = less<> - > -struct upper_bound -{ - private: - typedef typename lambda::type pred_; - typedef typename size::type size_; - - public: - typedef typename aux::upper_bound_step< - size_,pred_,T,begin - >::type type; -}; - -#endif // BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL - -BOOST_MPL_AUX_NA_SPEC(2, upper_bound) - -}} - -#endif // BOOST_MPL_UPPER_BOUND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/value_type.hpp b/lib/3rdParty/boost/boost/mpl/value_type.hpp deleted file mode 100644 index 5b8c822e3..000000000 --- a/lib/3rdParty/boost/boost/mpl/value_type.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef BOOST_MPL_VALUE_TYPE_HPP_INCLUDED -#define BOOST_MPL_VALUE_TYPE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct value_type - : apply_wrap2< - value_type_impl< typename sequence_tag::type > - , AssociativeSequence, T > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,value_type,(AssociativeSequence,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, value_type) - -}} - -#endif // BOOST_MPL_VALUE_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/value_type_fwd.hpp b/lib/3rdParty/boost/boost/mpl/value_type_fwd.hpp deleted file mode 100644 index d8635bfe4..000000000 --- a/lib/3rdParty/boost/boost/mpl/value_type_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED -#define BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2004 -// Copyright David Abrahams 2003-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct value_type_impl; -template< typename AssociativeSequence, typename T > struct value_type; - -}} - -#endif // BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector.hpp b/lib/3rdParty/boost/boost/mpl/vector.hpp deleted file mode 100644 index 479983d5c..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_HPP_INCLUDED -#define BOOST_MPL_VECTOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_VECTOR_HEADER \ - BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \ - /**/ -#else -# define AUX778076_VECTOR_HEADER \ - BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_HEADER) -# undef AUX778076_VECTOR_HEADER -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME vector -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_VECTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/O1_size.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/O1_size.hpp deleted file mode 100644 index ac9e3cf88..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/O1_size.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template<> -struct O1_size_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : Vector::size - { - }; -}; - -#else - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< long N > -struct O1_size_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : mpl::long_ - { - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/at.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/at.hpp deleted file mode 100644 index 0a7583ccf..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/at.hpp +++ /dev/null @@ -1,116 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template< typename Vector, long n_ > -struct v_at_impl -{ - typedef long_< (Vector::lower_bound_::value + n_) > index_; - typedef __typeof__( Vector::item_(index_()) ) type; -}; - - -template< typename Vector, long n_ > -struct v_at - : aux::wrapped_type< typename v_at_impl::type > -{ -}; - -template<> -struct at_impl< aux::vector_tag > -{ - template< typename Vector, typename N > struct apply - : v_at< - Vector - , BOOST_MPL_AUX_VALUE_WKND(N)::value - > - { - }; -}; - -#else - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) - -template< typename Vector, BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at; - -template< BOOST_MPL_AUX_NTTP_DECL(long, n_) > -struct at_impl< aux::vector_tag > -{ - template< typename Vector, typename N > struct apply -#if !defined(__BORLANDC__) - : v_at< - Vector - , BOOST_MPL_AUX_VALUE_WKND(N)::value - > - { -#else - { - typedef typename v_at< - Vector - , BOOST_MPL_AUX_VALUE_WKND(N)::value - >::type type; -#endif - }; -}; - -# else - -namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at_impl -{ - template< typename V > struct result_; -}; - -// to work around ETI, etc. -template<> struct v_at_impl<-1> -{ - template< typename V > struct result_ - { - typedef void_ type; - }; -}; - -} // namespace aux - -template< typename T, BOOST_MPL_AUX_NTTP_DECL(long, n_) > -struct v_at - : aux::v_at_impl::template result_ -{ -}; - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/back.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/back.hpp deleted file mode 100644 index b66363ec1..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/back.hpp +++ /dev/null @@ -1,59 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template<> -struct back_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : v_at< - Vector - , prior::type::value - > - { - }; -}; - -#else - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< long n_ > -struct back_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/begin_end.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/begin_end.hpp deleted file mode 100644 index aa3445156..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/begin_end.hpp +++ /dev/null @@ -1,49 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# include -# include -# include - -namespace boost { namespace mpl { - -template<> -struct begin_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef v_iter type; - }; -}; - -template<> -struct end_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef v_iter type; - }; -}; - -}} - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#endif // BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/clear.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/clear.hpp deleted file mode 100644 index b06d8be75..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/clear.hpp +++ /dev/null @@ -1,55 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template<> -struct clear_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -#else - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< long N > -struct clear_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/empty.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/empty.hpp deleted file mode 100644 index 5490a5f72..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/empty.hpp +++ /dev/null @@ -1,68 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template<> -struct empty_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : is_same< - typename Vector::lower_bound_ - , typename Vector::upper_bound_ - > - { - }; -}; - -#else - -template<> -struct empty_impl< aux::vector_tag<0> > -{ - template< typename Vector > struct apply - : true_ - { - }; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< long N > -struct empty_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/front.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/front.hpp deleted file mode 100644 index a358db52c..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/front.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template<> -struct front_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : v_at - { - }; -}; - -#else - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< BOOST_MPL_AUX_NTTP_DECL(long, n_) > -struct front_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/include_preprocessed.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/include_preprocessed.hpp deleted file mode 100644 index a676116f6..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/include_preprocessed.hpp +++ /dev/null @@ -1,55 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#include -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) -# define AUX778076_INCLUDE_DIR typeof_based -#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) -# define AUX778076_INCLUDE_DIR no_ctps -#else -# define AUX778076_INCLUDE_DIR plain -#endif - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_HEADER \ - AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#else -# define AUX778076_HEADER \ - BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#endif - - -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) -# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX778076_HEADER) -# include AUX778076_INCLUDE_STRING -# undef AUX778076_INCLUDE_STRING -#else -# include BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX778076_HEADER) -#endif - -# undef AUX778076_HEADER -# undef AUX778076_INCLUDE_DIR - -#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/item.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/item.hpp deleted file mode 100644 index 71538ceb4..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/item.hpp +++ /dev/null @@ -1,103 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template< - typename T - , typename Base - , int at_front = 0 - > -struct v_item - : Base -{ - typedef typename Base::upper_bound_ index_; - typedef typename next::type upper_bound_; - typedef typename next::type size; - typedef Base base; - typedef v_item type; - - // agurt 10/sep/04: MWCW <= 9.3 workaround here and below; the compiler - // breaks if using declaration comes _before_ the new overload - static aux::type_wrapper item_(index_); - using Base::item_; -}; - -template< - typename T - , typename Base - > -struct v_item - : Base -{ - typedef typename prior::type index_; - typedef index_ lower_bound_; - typedef typename next::type size; - typedef Base base; - typedef v_item type; - - static aux::type_wrapper item_(index_); - using Base::item_; -}; - -// "erasure" item -template< - typename Base - , int at_front - > -struct v_mask - : Base -{ - typedef typename prior::type index_; - typedef index_ upper_bound_; - typedef typename prior::type size; - typedef Base base; - typedef v_mask type; - - static aux::type_wrapper item_(index_); - using Base::item_; -}; - -template< - typename Base - > -struct v_mask - : Base -{ - typedef typename Base::lower_bound_ index_; - typedef typename next::type lower_bound_; - typedef typename prior::type size; - typedef Base base; - typedef v_mask type; - - static aux::type_wrapper item_(index_); - using Base::item_; -}; - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/iterator.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/iterator.hpp deleted file mode 100644 index 32df31569..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/iterator.hpp +++ /dev/null @@ -1,130 +0,0 @@ - -#ifndef BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED -#define BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename Vector - , BOOST_MPL_AUX_NTTP_DECL(long, n_) - > -struct v_iter -{ - typedef aux::v_iter_tag tag; - typedef random_access_iterator_tag category; - typedef typename v_at::type type; - - typedef Vector vector_; - typedef mpl::long_ pos; - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - enum { - next_ = n_ + 1 - , prior_ = n_ - 1 - , pos_ = n_ - }; - - typedef v_iter next; - typedef v_iter prior; -#endif - -}; - - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename Vector - , BOOST_MPL_AUX_NTTP_DECL(long, n_) - > -struct next< v_iter > -{ - typedef v_iter type; -}; - -template< - typename Vector - , BOOST_MPL_AUX_NTTP_DECL(long, n_) - > -struct prior< v_iter > -{ - typedef v_iter type; -}; - -template< - typename Vector - , BOOST_MPL_AUX_NTTP_DECL(long, n_) - , typename Distance - > -struct advance< v_iter,Distance> -{ - typedef v_iter< - Vector - , (n_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(long, Distance)) - > type; -}; - -template< - typename Vector - , BOOST_MPL_AUX_NTTP_DECL(long, n_) - , BOOST_MPL_AUX_NTTP_DECL(long, m_) - > -struct distance< v_iter, v_iter > - : mpl::long_<(m_ - n_)> -{ -}; - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template<> struct advance_impl -{ - template< typename Iterator, typename N > struct apply - { - enum { pos_ = Iterator::pos_, n_ = N::value }; - typedef v_iter< - typename Iterator::vector_ - , (pos_ + n_) - > type; - }; -}; - -template<> struct distance_impl -{ - template< typename Iter1, typename Iter2 > struct apply - { - enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ }; - typedef long_<( pos2_ - pos1_ )> type; - BOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ )); - }; -}; - -#endif - -}} - -#endif // BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/numbered.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/numbered.hpp deleted file mode 100644 index b3f03873b..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/numbered.hpp +++ /dev/null @@ -1,218 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# define AUX778076_VECTOR_TAIL(vector, i_, T) \ - BOOST_PP_CAT(vector,i_)< \ - BOOST_PP_ENUM_PARAMS(i_, T) \ - > \ - /**/ - -#if i_ > 0 -template< - BOOST_PP_ENUM_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(vector,i_) - : v_item< - BOOST_PP_CAT(T,BOOST_PP_DEC(i_)) - , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),T) - > -{ - typedef BOOST_PP_CAT(vector,i_) type; -}; -#endif - -# undef AUX778076_VECTOR_TAIL - -#else // "brute force" implementation - -# if i_ > 0 - -template< - BOOST_PP_ENUM_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(vector,i_) -{ - typedef aux::vector_tag tag; - typedef BOOST_PP_CAT(vector,i_) type; - -# define AUX778076_VECTOR_ITEM(unused, i_, unused2) \ - typedef BOOST_PP_CAT(T,i_) BOOST_PP_CAT(item,i_); \ - /**/ - - BOOST_PP_REPEAT(i_, AUX778076_VECTOR_ITEM, unused) -# undef AUX778076_VECTOR_ITEM - typedef void_ BOOST_PP_CAT(item,i_); - typedef BOOST_PP_CAT(T,BOOST_PP_DEC(i_)) back; - - // Borland forces us to use 'type' here (instead of the class name) - typedef v_iter begin; - typedef v_iter end; -}; - -template<> -struct push_front_impl< aux::vector_tag > -{ - template< typename Vector, typename T > struct apply - { - typedef BOOST_PP_CAT(vector,i_)< - T - BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_)) - BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item) - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))< - BOOST_PP_ENUM_SHIFTED_PARAMS(i_, typename Vector::item) - > type; - }; -}; - - -template<> -struct push_back_impl< aux::vector_tag > -{ - template< typename Vector, typename T > struct apply - { - typedef BOOST_PP_CAT(vector,i_)< - BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item) - BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_)) - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))< - BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item) - > type; - }; -}; - -# endif // i_ > 0 - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) - -template< typename V > -struct v_at -{ - typedef typename V::BOOST_PP_CAT(item,i_) type; -}; - -# else - -namespace aux { -template<> struct v_at_impl -{ - template< typename V_ > struct result_ - { - typedef typename V_::BOOST_PP_CAT(item,i_) type; - }; -}; -} - -template<> -struct at_impl< aux::vector_tag > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -#if i_ > 0 -template<> -struct front_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; -#endif - -template<> -struct size_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - : long_ - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag > - : size_impl< aux::vector_tag > -{ -}; - -template<> -struct clear_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/numbered_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/numbered_c.hpp deleted file mode 100644 index 4c159f948..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/numbered_c.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -#if defined(BOOST_PP_IS_ITERATING) - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# define AUX778076_VECTOR_TAIL(vector, i_, C) \ - BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) \ - /**/ - -#if i_ > 0 -template< - typename T - , BOOST_PP_ENUM_PARAMS(i_, T C) - > -struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) - : v_item< - integral_c - , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),C) - > -{ - typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type; - typedef T value_type; -}; -#endif - -# undef AUX778076_VECTOR_TAIL - -#else // "brute force" implementation - -# define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \ - BOOST_PP_COMMA_IF(i_) \ - integral_c \ - /**/ - -template< - typename T - , BOOST_PP_ENUM_PARAMS(i_, T C) - > -struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) - : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) > -{ - typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type; - typedef T value_type; -}; - -# undef AUX778076_VECTOR_C_PARAM_FUNC - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/pop_back.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/pop_back.hpp deleted file mode 100644 index 1d95e355c..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/pop_back.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# include -# include - -namespace boost { namespace mpl { - -template<> -struct pop_back_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef v_mask type; - }; -}; - -}} - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#endif // BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/pop_front.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/pop_front.hpp deleted file mode 100644 index c94b8711c..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/pop_front.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# include -# include - -namespace boost { namespace mpl { - -template<> -struct pop_front_impl< aux::vector_tag > -{ - template< typename Vector > struct apply - { - typedef v_mask type; - }; -}; - -}} - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#endif // BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp deleted file mode 100644 index c79a1ac60..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +++ /dev/null @@ -1,1528 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template<> struct v_at_impl<0> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item0 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<0> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct size_impl< aux::vector_tag<0> > -{ - template< typename Vector > struct apply - : long_<0> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<0> > - : size_impl< aux::vector_tag<0> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<0> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0 - > -struct vector1 -{ - typedef aux::vector_tag<1> tag; - typedef vector1 type; - typedef T0 item0; - typedef void_ item1; - typedef T0 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,1 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<0> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector1< - T - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef vector0< - - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<0> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector1< - - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef vector0< - - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<1> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item1 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<1> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - : long_<1> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<1> > - : size_impl< aux::vector_tag<1> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1 - > -struct vector2 -{ - typedef aux::vector_tag<2> tag; - typedef vector2 type; - typedef T0 item0; - typedef T1 item1; - - - typedef void_ item2; - typedef T1 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,2 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<1> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector2< - T - , - typename Vector::item0 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef vector1< - typename Vector::item1 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<1> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector2< - typename Vector::item0 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef vector1< - typename Vector::item0 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<2> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item2 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<2> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - : long_<2> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<2> > - : size_impl< aux::vector_tag<2> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector3 -{ - typedef aux::vector_tag<3> tag; - typedef vector3 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - - - typedef void_ item3; - typedef T2 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,3 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<2> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector3< - T - , - typename Vector::item0, typename Vector::item1 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef vector2< - typename Vector::item1, typename Vector::item2 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<2> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector3< - typename Vector::item0, typename Vector::item1 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef vector2< - typename Vector::item0, typename Vector::item1 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<3> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item3 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<3> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - : long_<3> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<3> > - : size_impl< aux::vector_tag<3> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector4 -{ - typedef aux::vector_tag<4> tag; - typedef vector4 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - - - typedef void_ item4; - typedef T3 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,4 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<3> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector4< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef vector3< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<3> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector4< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef vector3< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<4> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item4 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<4> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - : long_<4> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<4> > - : size_impl< aux::vector_tag<4> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector5 -{ - typedef aux::vector_tag<5> tag; - typedef vector5 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - - - typedef void_ item5; - typedef T4 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,5 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<4> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector5< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef vector4< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<4> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector5< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef vector4< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<5> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item5 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<5> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - : long_<5> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<5> > - : size_impl< aux::vector_tag<5> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector6 -{ - typedef aux::vector_tag<6> tag; - typedef vector6 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - - - typedef void_ item6; - typedef T5 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,6 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<5> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector6< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef vector5< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<5> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector6< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef vector5< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<6> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item6 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<6> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - : long_<6> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<6> > - : size_impl< aux::vector_tag<6> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector7 -{ - typedef aux::vector_tag<7> tag; - typedef vector7 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - - - typedef void_ item7; - typedef T6 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,7 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<6> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector7< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef vector6< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<6> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector7< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef vector6< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<7> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item7 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<7> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - : long_<7> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<7> > - : size_impl< aux::vector_tag<7> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector8 -{ - typedef aux::vector_tag<8> tag; - typedef vector8 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - - - typedef void_ item8; - typedef T7 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,8 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<7> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector8< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef vector7< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<7> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector8< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef vector7< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<8> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item8 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<8> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - : long_<8> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<8> > - : size_impl< aux::vector_tag<8> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector9 -{ - typedef aux::vector_tag<9> tag; - typedef vector9 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - - - typedef void_ item9; - typedef T8 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,9 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<8> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector9< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef vector8< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<8> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector9< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef vector8< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<9> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item9 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<9> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - : long_<9> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<9> > - : size_impl< aux::vector_tag<9> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector10 -{ - typedef aux::vector_tag<10> tag; - typedef vector10 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - - - typedef void_ item10; - typedef T9 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,10 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<9> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector10< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef vector9< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<9> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector10< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef vector9< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<10> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item10 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<10> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - : long_<10> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<10> > - : size_impl< aux::vector_tag<10> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp deleted file mode 100644 index 8b36f6a3e..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector10_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0 - > -struct vector1_c - : vector1< integral_c< T,C0 > > -{ - typedef vector1_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1 - > -struct vector2_c - : vector2< integral_c< T,C0 >, integral_c< T,C1 > > -{ - typedef vector2_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2 - > -struct vector3_c - : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > > -{ - typedef vector3_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3 - > -struct vector4_c - : vector4< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c - > -{ - typedef vector4_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4 - > -struct vector5_c - : vector5< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 > - > -{ - typedef vector5_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5 - > -struct vector6_c - : vector6< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > - > -{ - typedef vector6_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6 - > -struct vector7_c - : vector7< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c - > -{ - typedef vector7_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 - > -struct vector8_c - : vector8< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 > - > -{ - typedef vector8_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 - > -struct vector9_c - : vector9< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 > - > -{ - typedef vector9_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 - > -struct vector10_c - : vector10< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - > -{ - typedef vector10_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp deleted file mode 100644 index eb92a7814..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +++ /dev/null @@ -1,1804 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector11 -{ - typedef aux::vector_tag<11> tag; - typedef vector11 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - - - typedef void_ item11; - typedef T10 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,11 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<10> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector11< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef vector10< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<10> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector11< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef vector10< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<11> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item11 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<11> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - : long_<11> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<11> > - : size_impl< aux::vector_tag<11> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector12 -{ - typedef aux::vector_tag<12> tag; - typedef vector12 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - - - typedef void_ item12; - typedef T11 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,12 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<11> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector12< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef vector11< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<11> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector12< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef vector11< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<12> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item12 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<12> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - : long_<12> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<12> > - : size_impl< aux::vector_tag<12> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector13 -{ - typedef aux::vector_tag<13> tag; - typedef vector13 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - - - typedef void_ item13; - typedef T12 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,13 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<12> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector13< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef vector12< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<12> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector13< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef vector12< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<13> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item13 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<13> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - : long_<13> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<13> > - : size_impl< aux::vector_tag<13> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector14 -{ - typedef aux::vector_tag<14> tag; - typedef vector14 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - - - typedef void_ item14; - typedef T13 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,14 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<13> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector14< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef vector13< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<13> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector14< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef vector13< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<14> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item14 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<14> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - : long_<14> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<14> > - : size_impl< aux::vector_tag<14> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector15 -{ - typedef aux::vector_tag<15> tag; - typedef vector15 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - - - typedef void_ item15; - typedef T14 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,15 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<14> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector15< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef vector14< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<14> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector15< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef vector14< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<15> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item15 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<15> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - : long_<15> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<15> > - : size_impl< aux::vector_tag<15> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector16 -{ - typedef aux::vector_tag<16> tag; - typedef vector16 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - - - typedef void_ item16; - typedef T15 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,16 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<15> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector16< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef vector15< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<15> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector16< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef vector15< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<16> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item16 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<16> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - : long_<16> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<16> > - : size_impl< aux::vector_tag<16> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector17 -{ - typedef aux::vector_tag<17> tag; - typedef vector17 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - - - typedef void_ item17; - typedef T16 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,17 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<16> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector17< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef vector16< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<16> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector17< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef vector16< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<17> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item17 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<17> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - : long_<17> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<17> > - : size_impl< aux::vector_tag<17> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector18 -{ - typedef aux::vector_tag<18> tag; - typedef vector18 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - - - typedef void_ item18; - typedef T17 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,18 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<17> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector18< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef vector17< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<17> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector18< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef vector17< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<18> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item18 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<18> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - : long_<18> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<18> > - : size_impl< aux::vector_tag<18> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector19 -{ - typedef aux::vector_tag<19> tag; - typedef vector19 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - - - typedef void_ item19; - typedef T18 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,19 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<18> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector19< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef vector18< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<18> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector19< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef vector18< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<19> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item19 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<19> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - : long_<19> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<19> > - : size_impl< aux::vector_tag<19> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector20 -{ - typedef aux::vector_tag<20> tag; - typedef vector20 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - - - typedef void_ item20; - typedef T19 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,20 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<19> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector20< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef vector19< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<19> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector20< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef vector19< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<20> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item20 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<20> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - : long_<20> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<20> > - : size_impl< aux::vector_tag<20> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp deleted file mode 100644 index 56ca53f4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +++ /dev/null @@ -1,195 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector20_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - > -struct vector11_c - : vector11< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c - > -{ - typedef vector11_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11 - > -struct vector12_c - : vector12< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 > - > -{ - typedef vector12_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12 - > -struct vector13_c - : vector13< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - > -{ - typedef vector13_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13 - > -struct vector14_c - : vector14< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c - > -{ - typedef vector14_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14 - > -struct vector15_c - : vector15< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 > - > -{ - typedef vector15_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15 - > -struct vector16_c - : vector16< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - > -{ - typedef vector16_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16 - > -struct vector17_c - : vector17< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c - > -{ - typedef vector17_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17 - > -struct vector18_c - : vector18< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 > - > -{ - typedef vector18_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 - > -struct vector19_c - : vector19< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - > -{ - typedef vector19_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 - > -struct vector20_c - : vector20< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c - > -{ - typedef vector20_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp deleted file mode 100644 index a685019b4..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +++ /dev/null @@ -1,2124 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20 - > -struct vector21 -{ - typedef aux::vector_tag<21> tag; - typedef vector21 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - - - typedef void_ item21; - typedef T20 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,21 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<20> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector21< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef vector20< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<20> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector21< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef vector20< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<21> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item21 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<21> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - : long_<21> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<21> > - : size_impl< aux::vector_tag<21> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21 - > -struct vector22 -{ - typedef aux::vector_tag<22> tag; - typedef vector22 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - - - typedef void_ item22; - typedef T21 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,22 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<21> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector22< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef vector21< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<21> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector22< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef vector21< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<22> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item22 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<22> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - : long_<22> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<22> > - : size_impl< aux::vector_tag<22> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22 - > -struct vector23 -{ - typedef aux::vector_tag<23> tag; - typedef vector23 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - - - typedef void_ item23; - typedef T22 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,23 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<22> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector23< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef vector22< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<22> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector23< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef vector22< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<23> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item23 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<23> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - : long_<23> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<23> > - : size_impl< aux::vector_tag<23> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23 - > -struct vector24 -{ - typedef aux::vector_tag<24> tag; - typedef vector24 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - - - typedef void_ item24; - typedef T23 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,24 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<23> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector24< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef vector23< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<23> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector24< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef vector23< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<24> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item24 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<24> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - : long_<24> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<24> > - : size_impl< aux::vector_tag<24> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - > -struct vector25 -{ - typedef aux::vector_tag<25> tag; - typedef vector25 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - - - typedef void_ item25; - typedef T24 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,25 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<24> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector25< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef vector24< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<24> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector25< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef vector24< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<25> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item25 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<25> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - : long_<25> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<25> > - : size_impl< aux::vector_tag<25> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25 - > -struct vector26 -{ - typedef aux::vector_tag<26> tag; - typedef vector26 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - - - typedef void_ item26; - typedef T25 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,26 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<25> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector26< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef vector25< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<25> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector26< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef vector25< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<26> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item26 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<26> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - : long_<26> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<26> > - : size_impl< aux::vector_tag<26> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26 - > -struct vector27 -{ - typedef aux::vector_tag<27> tag; - typedef vector27 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - - - typedef void_ item27; - typedef T26 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,27 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<26> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector27< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef vector26< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<26> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector27< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef vector26< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<27> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item27 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<27> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - : long_<27> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<27> > - : size_impl< aux::vector_tag<27> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27 - > -struct vector28 -{ - typedef aux::vector_tag<28> tag; - typedef vector28 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - - - typedef void_ item28; - typedef T27 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,28 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<27> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector28< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef vector27< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<27> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector28< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef vector27< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<28> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item28 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<28> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - : long_<28> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<28> > - : size_impl< aux::vector_tag<28> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28 - > -struct vector29 -{ - typedef aux::vector_tag<29> tag; - typedef vector29 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - - - typedef void_ item29; - typedef T28 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,29 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<28> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector29< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef vector28< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<28> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector29< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef vector28< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<29> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item29 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<29> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - : long_<29> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<29> > - : size_impl< aux::vector_tag<29> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - > -struct vector30 -{ - typedef aux::vector_tag<30> tag; - typedef vector30 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - - - typedef void_ item30; - typedef T29 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,30 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<29> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector30< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef vector29< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<29> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector30< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef vector29< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<30> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item30 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<30> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - : long_<30> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<30> > - : size_impl< aux::vector_tag<30> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp deleted file mode 100644 index 6251dbc54..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +++ /dev/null @@ -1,238 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector30_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - > -struct vector21_c - : vector21< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 > - > -{ - typedef vector21_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21 - > -struct vector22_c - : vector22< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - > -{ - typedef vector22_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22 - > -struct vector23_c - : vector23< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c - > -{ - typedef vector23_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23 - > -struct vector24_c - : vector24< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 > - > -{ - typedef vector24_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24 - > -struct vector25_c - : vector25< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - > -{ - typedef vector25_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25 - > -struct vector26_c - : vector26< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c - > -{ - typedef vector26_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26 - > -struct vector27_c - : vector27< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 > - > -{ - typedef vector27_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27 - > -struct vector28_c - : vector28< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - > -{ - typedef vector28_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 - > -struct vector29_c - : vector29< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c - > -{ - typedef vector29_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 - > -struct vector30_c - : vector30< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 > - > -{ - typedef vector30_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp deleted file mode 100644 index 1ed648a9d..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +++ /dev/null @@ -1,2444 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30 - > -struct vector31 -{ - typedef aux::vector_tag<31> tag; - typedef vector31 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - - - typedef void_ item31; - typedef T30 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,31 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<30> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector31< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef vector30< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<30> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector31< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef vector30< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<31> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item31 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<31> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - : long_<31> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<31> > - : size_impl< aux::vector_tag<31> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31 - > -struct vector32 -{ - typedef aux::vector_tag<32> tag; - typedef vector32 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - - - typedef void_ item32; - typedef T31 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,32 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<31> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector32< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef vector31< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<31> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector32< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef vector31< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<32> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item32 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<32> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - : long_<32> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<32> > - : size_impl< aux::vector_tag<32> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32 - > -struct vector33 -{ - typedef aux::vector_tag<33> tag; - typedef vector33 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - - - typedef void_ item33; - typedef T32 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,33 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<32> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector33< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef vector32< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<32> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector33< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef vector32< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<33> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item33 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<33> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - : long_<33> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<33> > - : size_impl< aux::vector_tag<33> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33 - > -struct vector34 -{ - typedef aux::vector_tag<34> tag; - typedef vector34 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - - - typedef void_ item34; - typedef T33 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,34 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<33> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector34< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef vector33< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<33> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector34< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef vector33< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<34> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item34 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<34> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - : long_<34> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<34> > - : size_impl< aux::vector_tag<34> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - > -struct vector35 -{ - typedef aux::vector_tag<35> tag; - typedef vector35 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - - - typedef void_ item35; - typedef T34 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,35 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<34> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector35< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef vector34< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<34> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector35< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef vector34< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<35> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item35 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<35> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - : long_<35> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<35> > - : size_impl< aux::vector_tag<35> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35 - > -struct vector36 -{ - typedef aux::vector_tag<36> tag; - typedef vector36 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - - - typedef void_ item36; - typedef T35 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,36 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<35> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector36< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef vector35< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<35> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector36< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef vector35< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<36> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item36 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<36> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - : long_<36> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<36> > - : size_impl< aux::vector_tag<36> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36 - > -struct vector37 -{ - typedef aux::vector_tag<37> tag; - typedef vector37 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - - - typedef void_ item37; - typedef T36 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,37 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<36> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector37< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef vector36< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<36> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector37< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef vector36< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<37> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item37 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<37> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - : long_<37> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<37> > - : size_impl< aux::vector_tag<37> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37 - > -struct vector38 -{ - typedef aux::vector_tag<38> tag; - typedef vector38 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - - - typedef void_ item38; - typedef T37 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,38 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<37> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector38< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef vector37< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<37> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector38< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef vector37< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<38> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item38 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<38> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - : long_<38> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<38> > - : size_impl< aux::vector_tag<38> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38 - > -struct vector39 -{ - typedef aux::vector_tag<39> tag; - typedef vector39 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - - - typedef void_ item39; - typedef T38 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,39 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<38> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector39< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef vector38< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<38> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector39< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef vector38< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<39> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item39 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<39> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - : long_<39> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<39> > - : size_impl< aux::vector_tag<39> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - > -struct vector40 -{ - typedef aux::vector_tag<40> tag; - typedef vector40 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - - - typedef void_ item40; - typedef T39 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,40 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<39> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector40< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef vector39< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<39> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector40< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef vector39< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<40> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item40 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<40> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - : long_<40> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<40> > - : size_impl< aux::vector_tag<40> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp deleted file mode 100644 index ba0ffa88e..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +++ /dev/null @@ -1,281 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector40_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - > -struct vector31_c - : vector31< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - > -{ - typedef vector31_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31 - > -struct vector32_c - : vector32< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c - > -{ - typedef vector32_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32 - > -struct vector33_c - : vector33< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 > - > -{ - typedef vector33_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33 - > -struct vector34_c - : vector34< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - > -{ - typedef vector34_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34 - > -struct vector35_c - : vector35< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c - > -{ - typedef vector35_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35 - > -struct vector36_c - : vector36< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 > - > -{ - typedef vector36_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36 - > -struct vector37_c - : vector37< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - > -{ - typedef vector37_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37 - > -struct vector38_c - : vector38< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c - > -{ - typedef vector38_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 - > -struct vector39_c - : vector39< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 > - > -{ - typedef vector39_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 - > -struct vector40_c - : vector40< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - > -{ - typedef vector40_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp deleted file mode 100644 index 3da323a99..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +++ /dev/null @@ -1,2764 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40 - > -struct vector41 -{ - typedef aux::vector_tag<41> tag; - typedef vector41 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - - - typedef void_ item41; - typedef T40 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,41 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<40> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector41< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef vector40< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<40> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector41< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef vector40< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<41> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item41 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<41> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - : long_<41> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<41> > - : size_impl< aux::vector_tag<41> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41 - > -struct vector42 -{ - typedef aux::vector_tag<42> tag; - typedef vector42 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - - - typedef void_ item42; - typedef T41 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,42 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<41> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector42< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef vector41< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<41> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector42< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef vector41< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<42> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item42 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<42> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - : long_<42> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<42> > - : size_impl< aux::vector_tag<42> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42 - > -struct vector43 -{ - typedef aux::vector_tag<43> tag; - typedef vector43 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - - - typedef void_ item43; - typedef T42 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,43 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<42> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector43< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef vector42< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<42> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector43< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef vector42< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<43> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item43 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<43> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - : long_<43> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<43> > - : size_impl< aux::vector_tag<43> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43 - > -struct vector44 -{ - typedef aux::vector_tag<44> tag; - typedef vector44 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - - - typedef void_ item44; - typedef T43 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,44 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<43> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector44< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef vector43< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<43> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector44< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef vector43< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<44> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item44 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<44> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - : long_<44> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<44> > - : size_impl< aux::vector_tag<44> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - > -struct vector45 -{ - typedef aux::vector_tag<45> tag; - typedef vector45 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - - - typedef void_ item45; - typedef T44 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,45 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<44> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector45< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef vector44< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<44> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector45< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef vector44< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<45> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item45 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<45> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - : long_<45> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<45> > - : size_impl< aux::vector_tag<45> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45 - > -struct vector46 -{ - typedef aux::vector_tag<46> tag; - typedef vector46 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - - - typedef void_ item46; - typedef T45 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,46 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<45> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector46< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef vector45< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<45> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector46< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef vector45< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<46> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item46 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<46> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - : long_<46> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<46> > - : size_impl< aux::vector_tag<46> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46 - > -struct vector47 -{ - typedef aux::vector_tag<47> tag; - typedef vector47 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - - - typedef void_ item47; - typedef T46 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,47 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<46> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector47< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef vector46< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<46> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector47< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef vector46< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<47> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item47 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<47> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - : long_<47> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<47> > - : size_impl< aux::vector_tag<47> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47 - > -struct vector48 -{ - typedef aux::vector_tag<48> tag; - typedef vector48 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - typedef T47 item47; - - - typedef void_ item48; - typedef T47 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,48 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<47> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector48< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef vector47< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - , typename Vector::item47 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<47> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector48< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef vector47< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<48> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item48 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<48> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - : long_<48> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<48> > - : size_impl< aux::vector_tag<48> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48 - > -struct vector49 -{ - typedef aux::vector_tag<49> tag; - typedef vector49 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - typedef T47 item47; - typedef T48 item48; - - - typedef void_ item49; - typedef T48 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,49 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<48> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector49< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef vector48< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - , typename Vector::item47, typename Vector::item48 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<48> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector49< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef vector48< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<49> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item49 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<49> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - : long_<49> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<49> > - : size_impl< aux::vector_tag<49> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48, typename T49 - > -struct vector50 -{ - typedef aux::vector_tag<50> tag; - typedef vector50 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - typedef T47 item47; - typedef T48 item48; - typedef T49 item49; - - - typedef void_ item50; - typedef T49 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,50 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<49> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector50< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , typename Vector::item48 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef vector49< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - , typename Vector::item47, typename Vector::item48 - , typename Vector::item49 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<49> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector50< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , typename Vector::item48 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef vector49< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , typename Vector::item48 - > type; - }; -}; - -namespace aux { -template<> struct v_at_impl<50> -{ - template< typename V_ > struct result_ - { - typedef typename V_::item50 type; - }; -}; - -} - -template<> -struct at_impl< aux::vector_tag<50> > -{ - template< typename V_, typename N > struct apply - { - typedef typename aux::v_at_impl - ::template result_::type type; - }; -}; - -template<> -struct front_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::item0 type; - }; -}; - -template<> -struct back_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef typename Vector::back type; - }; -}; - -template<> -struct empty_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - : false_ - { - }; -}; - -template<> -struct size_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - : long_<50> - { - }; -}; - -template<> -struct O1_size_impl< aux::vector_tag<50> > - : size_impl< aux::vector_tag<50> > -{ -}; - -template<> -struct clear_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef vector0<> type; - }; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp deleted file mode 100644 index e07f2b3ad..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +++ /dev/null @@ -1,325 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector50_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - > -struct vector41_c - : vector41< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c - > -{ - typedef vector41_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41 - > -struct vector42_c - : vector42< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 > - > -{ - typedef vector42_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42 - > -struct vector43_c - : vector43< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - > -{ - typedef vector43_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43 - > -struct vector44_c - : vector44< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c - > -{ - typedef vector44_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44 - > -struct vector45_c - : vector45< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 > - > -{ - typedef vector45_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45 - > -struct vector46_c - : vector46< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - > -{ - typedef vector46_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46 - > -struct vector47_c - : vector47< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c - > -{ - typedef vector47_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47 - > -struct vector48_c - : vector48< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - , integral_c< T,C46 >, integral_c< T,C47 > - > -{ - typedef vector48_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 - > -struct vector49_c - : vector49< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > - > -{ - typedef vector49_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 - > -struct vector50_c - : vector50< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c - > -{ - typedef vector50_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp deleted file mode 100644 index 88bbd3b31..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +++ /dev/null @@ -1,829 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename V > -struct v_at< V,0 > -{ - typedef typename V::item0 type; -}; - -template< - typename T0 - > -struct vector1 -{ - typedef aux::vector_tag<1> tag; - typedef vector1 type; - typedef T0 item0; - typedef void_ item1; - typedef T0 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,1 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<0> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector1< - T - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef vector0< - - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<0> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector1< - - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<1> > -{ - template< typename Vector > struct apply - { - typedef vector0< - - > type; - }; -}; - -template< typename V > -struct v_at< V,1 > -{ - typedef typename V::item1 type; -}; - -template< - typename T0, typename T1 - > -struct vector2 -{ - typedef aux::vector_tag<2> tag; - typedef vector2 type; - typedef T0 item0; - typedef T1 item1; - - - typedef void_ item2; - typedef T1 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,2 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<1> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector2< - T - , - typename Vector::item0 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef vector1< - typename Vector::item1 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<1> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector2< - typename Vector::item0 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<2> > -{ - template< typename Vector > struct apply - { - typedef vector1< - typename Vector::item0 - > type; - }; -}; - -template< typename V > -struct v_at< V,2 > -{ - typedef typename V::item2 type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector3 -{ - typedef aux::vector_tag<3> tag; - typedef vector3 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - - - typedef void_ item3; - typedef T2 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,3 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<2> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector3< - T - , - typename Vector::item0, typename Vector::item1 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef vector2< - typename Vector::item1, typename Vector::item2 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<2> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector3< - typename Vector::item0, typename Vector::item1 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<3> > -{ - template< typename Vector > struct apply - { - typedef vector2< - typename Vector::item0, typename Vector::item1 - > type; - }; -}; - -template< typename V > -struct v_at< V,3 > -{ - typedef typename V::item3 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector4 -{ - typedef aux::vector_tag<4> tag; - typedef vector4 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - - - typedef void_ item4; - typedef T3 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,4 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<3> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector4< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef vector3< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<3> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector4< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<4> > -{ - template< typename Vector > struct apply - { - typedef vector3< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2 - > type; - }; -}; - -template< typename V > -struct v_at< V,4 > -{ - typedef typename V::item4 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector5 -{ - typedef aux::vector_tag<5> tag; - typedef vector5 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - - - typedef void_ item5; - typedef T4 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,5 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<4> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector5< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef vector4< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<4> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector5< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<5> > -{ - template< typename Vector > struct apply - { - typedef vector4< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - > type; - }; -}; - -template< typename V > -struct v_at< V,5 > -{ - typedef typename V::item5 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector6 -{ - typedef aux::vector_tag<6> tag; - typedef vector6 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - - - typedef void_ item6; - typedef T5 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,6 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<5> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector6< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef vector5< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<5> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector6< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<6> > -{ - template< typename Vector > struct apply - { - typedef vector5< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4 - > type; - }; -}; - -template< typename V > -struct v_at< V,6 > -{ - typedef typename V::item6 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector7 -{ - typedef aux::vector_tag<7> tag; - typedef vector7 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - - - typedef void_ item7; - typedef T6 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,7 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<6> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector7< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef vector6< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<6> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector7< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<7> > -{ - template< typename Vector > struct apply - { - typedef vector6< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - > type; - }; -}; - -template< typename V > -struct v_at< V,7 > -{ - typedef typename V::item7 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector8 -{ - typedef aux::vector_tag<8> tag; - typedef vector8 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - - - typedef void_ item8; - typedef T7 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,8 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<7> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector8< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef vector7< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<7> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector8< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<8> > -{ - template< typename Vector > struct apply - { - typedef vector7< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6 - > type; - }; -}; - -template< typename V > -struct v_at< V,8 > -{ - typedef typename V::item8 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector9 -{ - typedef aux::vector_tag<9> tag; - typedef vector9 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - - - typedef void_ item9; - typedef T8 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,9 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<8> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector9< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef vector8< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<8> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector9< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<9> > -{ - template< typename Vector > struct apply - { - typedef vector8< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - > type; - }; -}; - -template< typename V > -struct v_at< V,9 > -{ - typedef typename V::item9 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector10 -{ - typedef aux::vector_tag<10> tag; - typedef vector10 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - - - typedef void_ item10; - typedef T9 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,10 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<9> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector10< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef vector9< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<9> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector10< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<10> > -{ - template< typename Vector > struct apply - { - typedef vector9< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8 - > type; - }; -}; - -template< typename V > -struct v_at< V,10 > -{ - typedef typename V::item10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp deleted file mode 100644 index 8b36f6a3e..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector10_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0 - > -struct vector1_c - : vector1< integral_c< T,C0 > > -{ - typedef vector1_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1 - > -struct vector2_c - : vector2< integral_c< T,C0 >, integral_c< T,C1 > > -{ - typedef vector2_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2 - > -struct vector3_c - : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > > -{ - typedef vector3_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3 - > -struct vector4_c - : vector4< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c - > -{ - typedef vector4_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4 - > -struct vector5_c - : vector5< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 > - > -{ - typedef vector5_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5 - > -struct vector6_c - : vector6< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > - > -{ - typedef vector6_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6 - > -struct vector7_c - : vector7< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c - > -{ - typedef vector7_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 - > -struct vector8_c - : vector8< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 > - > -{ - typedef vector8_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 - > -struct vector9_c - : vector9< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 > - > -{ - typedef vector9_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 - > -struct vector10_c - : vector10< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - > -{ - typedef vector10_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp deleted file mode 100644 index 8c6c8bbb9..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +++ /dev/null @@ -1,1144 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector11 -{ - typedef aux::vector_tag<11> tag; - typedef vector11 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - - - typedef void_ item11; - typedef T10 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,11 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<10> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector11< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef vector10< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<10> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector11< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<11> > -{ - template< typename Vector > struct apply - { - typedef vector10< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - > type; - }; -}; - -template< typename V > -struct v_at< V,11 > -{ - typedef typename V::item11 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector12 -{ - typedef aux::vector_tag<12> tag; - typedef vector12 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - - - typedef void_ item12; - typedef T11 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,12 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<11> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector12< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef vector11< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<11> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector12< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<12> > -{ - template< typename Vector > struct apply - { - typedef vector11< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10 - > type; - }; -}; - -template< typename V > -struct v_at< V,12 > -{ - typedef typename V::item12 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector13 -{ - typedef aux::vector_tag<13> tag; - typedef vector13 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - - - typedef void_ item13; - typedef T12 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,13 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<12> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector13< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef vector12< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<12> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector13< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<13> > -{ - template< typename Vector > struct apply - { - typedef vector12< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - > type; - }; -}; - -template< typename V > -struct v_at< V,13 > -{ - typedef typename V::item13 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector14 -{ - typedef aux::vector_tag<14> tag; - typedef vector14 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - - - typedef void_ item14; - typedef T13 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,14 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<13> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector14< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef vector13< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<13> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector14< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<14> > -{ - template< typename Vector > struct apply - { - typedef vector13< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12 - > type; - }; -}; - -template< typename V > -struct v_at< V,14 > -{ - typedef typename V::item14 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector15 -{ - typedef aux::vector_tag<15> tag; - typedef vector15 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - - - typedef void_ item15; - typedef T14 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,15 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<14> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector15< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef vector14< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<14> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector15< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<15> > -{ - template< typename Vector > struct apply - { - typedef vector14< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - > type; - }; -}; - -template< typename V > -struct v_at< V,15 > -{ - typedef typename V::item15 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector16 -{ - typedef aux::vector_tag<16> tag; - typedef vector16 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - - - typedef void_ item16; - typedef T15 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,16 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<15> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector16< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef vector15< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<15> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector16< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<16> > -{ - template< typename Vector > struct apply - { - typedef vector15< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14 - > type; - }; -}; - -template< typename V > -struct v_at< V,16 > -{ - typedef typename V::item16 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector17 -{ - typedef aux::vector_tag<17> tag; - typedef vector17 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - - - typedef void_ item17; - typedef T16 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,17 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<16> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector17< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef vector16< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<16> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector17< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<17> > -{ - template< typename Vector > struct apply - { - typedef vector16< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - > type; - }; -}; - -template< typename V > -struct v_at< V,17 > -{ - typedef typename V::item17 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector18 -{ - typedef aux::vector_tag<18> tag; - typedef vector18 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - - - typedef void_ item18; - typedef T17 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,18 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<17> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector18< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef vector17< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<17> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector18< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<18> > -{ - template< typename Vector > struct apply - { - typedef vector17< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16 - > type; - }; -}; - -template< typename V > -struct v_at< V,18 > -{ - typedef typename V::item18 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector19 -{ - typedef aux::vector_tag<19> tag; - typedef vector19 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - - - typedef void_ item19; - typedef T18 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,19 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<18> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector19< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef vector18< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<18> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector19< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<19> > -{ - template< typename Vector > struct apply - { - typedef vector18< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - > type; - }; -}; - -template< typename V > -struct v_at< V,19 > -{ - typedef typename V::item19 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector20 -{ - typedef aux::vector_tag<20> tag; - typedef vector20 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - - - typedef void_ item20; - typedef T19 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,20 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<19> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector20< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef vector19< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<19> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector20< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<20> > -{ - template< typename Vector > struct apply - { - typedef vector19< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18 - > type; - }; -}; - -template< typename V > -struct v_at< V,20 > -{ - typedef typename V::item20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp deleted file mode 100644 index 56ca53f4e..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +++ /dev/null @@ -1,195 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector20_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - > -struct vector11_c - : vector11< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c - > -{ - typedef vector11_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11 - > -struct vector12_c - : vector12< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 > - > -{ - typedef vector12_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12 - > -struct vector13_c - : vector13< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - > -{ - typedef vector13_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13 - > -struct vector14_c - : vector14< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c - > -{ - typedef vector14_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14 - > -struct vector15_c - : vector15< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 > - > -{ - typedef vector15_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15 - > -struct vector16_c - : vector16< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - > -{ - typedef vector16_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16 - > -struct vector17_c - : vector17< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c - > -{ - typedef vector17_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17 - > -struct vector18_c - : vector18< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 > - > -{ - typedef vector18_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 - > -struct vector19_c - : vector19< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - > -{ - typedef vector19_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 - > -struct vector20_c - : vector20< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c - > -{ - typedef vector20_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp deleted file mode 100644 index b7da8e76b..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +++ /dev/null @@ -1,1464 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20 - > -struct vector21 -{ - typedef aux::vector_tag<21> tag; - typedef vector21 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - - - typedef void_ item21; - typedef T20 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,21 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<20> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector21< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef vector20< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<20> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector21< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<21> > -{ - template< typename Vector > struct apply - { - typedef vector20< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - > type; - }; -}; - -template< typename V > -struct v_at< V,21 > -{ - typedef typename V::item21 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21 - > -struct vector22 -{ - typedef aux::vector_tag<22> tag; - typedef vector22 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - - - typedef void_ item22; - typedef T21 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,22 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<21> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector22< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef vector21< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<21> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector22< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<22> > -{ - template< typename Vector > struct apply - { - typedef vector21< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20 - > type; - }; -}; - -template< typename V > -struct v_at< V,22 > -{ - typedef typename V::item22 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22 - > -struct vector23 -{ - typedef aux::vector_tag<23> tag; - typedef vector23 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - - - typedef void_ item23; - typedef T22 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,23 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<22> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector23< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef vector22< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<22> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector23< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<23> > -{ - template< typename Vector > struct apply - { - typedef vector22< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - > type; - }; -}; - -template< typename V > -struct v_at< V,23 > -{ - typedef typename V::item23 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23 - > -struct vector24 -{ - typedef aux::vector_tag<24> tag; - typedef vector24 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - - - typedef void_ item24; - typedef T23 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,24 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<23> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector24< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef vector23< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<23> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector24< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<24> > -{ - template< typename Vector > struct apply - { - typedef vector23< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22 - > type; - }; -}; - -template< typename V > -struct v_at< V,24 > -{ - typedef typename V::item24 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - > -struct vector25 -{ - typedef aux::vector_tag<25> tag; - typedef vector25 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - - - typedef void_ item25; - typedef T24 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,25 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<24> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector25< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef vector24< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<24> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector25< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<25> > -{ - template< typename Vector > struct apply - { - typedef vector24< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - > type; - }; -}; - -template< typename V > -struct v_at< V,25 > -{ - typedef typename V::item25 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25 - > -struct vector26 -{ - typedef aux::vector_tag<26> tag; - typedef vector26 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - - - typedef void_ item26; - typedef T25 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,26 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<25> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector26< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef vector25< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<25> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector26< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<26> > -{ - template< typename Vector > struct apply - { - typedef vector25< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24 - > type; - }; -}; - -template< typename V > -struct v_at< V,26 > -{ - typedef typename V::item26 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26 - > -struct vector27 -{ - typedef aux::vector_tag<27> tag; - typedef vector27 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - - - typedef void_ item27; - typedef T26 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,27 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<26> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector27< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef vector26< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<26> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector27< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<27> > -{ - template< typename Vector > struct apply - { - typedef vector26< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - > type; - }; -}; - -template< typename V > -struct v_at< V,27 > -{ - typedef typename V::item27 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27 - > -struct vector28 -{ - typedef aux::vector_tag<28> tag; - typedef vector28 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - - - typedef void_ item28; - typedef T27 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,28 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<27> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector28< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef vector27< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<27> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector28< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<28> > -{ - template< typename Vector > struct apply - { - typedef vector27< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26 - > type; - }; -}; - -template< typename V > -struct v_at< V,28 > -{ - typedef typename V::item28 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28 - > -struct vector29 -{ - typedef aux::vector_tag<29> tag; - typedef vector29 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - - - typedef void_ item29; - typedef T28 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,29 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<28> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector29< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef vector28< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<28> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector29< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<29> > -{ - template< typename Vector > struct apply - { - typedef vector28< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - > type; - }; -}; - -template< typename V > -struct v_at< V,29 > -{ - typedef typename V::item29 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - > -struct vector30 -{ - typedef aux::vector_tag<30> tag; - typedef vector30 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - - - typedef void_ item30; - typedef T29 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,30 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<29> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector30< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef vector29< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<29> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector30< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<30> > -{ - template< typename Vector > struct apply - { - typedef vector29< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28 - > type; - }; -}; - -template< typename V > -struct v_at< V,30 > -{ - typedef typename V::item30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp deleted file mode 100644 index 6251dbc54..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +++ /dev/null @@ -1,238 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector30_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - > -struct vector21_c - : vector21< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 > - > -{ - typedef vector21_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21 - > -struct vector22_c - : vector22< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - > -{ - typedef vector22_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22 - > -struct vector23_c - : vector23< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c - > -{ - typedef vector23_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23 - > -struct vector24_c - : vector24< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 > - > -{ - typedef vector24_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24 - > -struct vector25_c - : vector25< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - > -{ - typedef vector25_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25 - > -struct vector26_c - : vector26< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c - > -{ - typedef vector26_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26 - > -struct vector27_c - : vector27< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 > - > -{ - typedef vector27_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27 - > -struct vector28_c - : vector28< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - > -{ - typedef vector28_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 - > -struct vector29_c - : vector29< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c - > -{ - typedef vector29_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 - > -struct vector30_c - : vector30< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 > - > -{ - typedef vector30_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp deleted file mode 100644 index 7487be4b0..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +++ /dev/null @@ -1,1784 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30 - > -struct vector31 -{ - typedef aux::vector_tag<31> tag; - typedef vector31 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - - - typedef void_ item31; - typedef T30 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,31 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<30> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector31< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef vector30< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<30> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector31< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<31> > -{ - template< typename Vector > struct apply - { - typedef vector30< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - > type; - }; -}; - -template< typename V > -struct v_at< V,31 > -{ - typedef typename V::item31 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31 - > -struct vector32 -{ - typedef aux::vector_tag<32> tag; - typedef vector32 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - - - typedef void_ item32; - typedef T31 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,32 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<31> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector32< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef vector31< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<31> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector32< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<32> > -{ - template< typename Vector > struct apply - { - typedef vector31< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30 - > type; - }; -}; - -template< typename V > -struct v_at< V,32 > -{ - typedef typename V::item32 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32 - > -struct vector33 -{ - typedef aux::vector_tag<33> tag; - typedef vector33 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - - - typedef void_ item33; - typedef T32 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,33 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<32> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector33< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef vector32< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<32> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector33< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<33> > -{ - template< typename Vector > struct apply - { - typedef vector32< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - > type; - }; -}; - -template< typename V > -struct v_at< V,33 > -{ - typedef typename V::item33 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33 - > -struct vector34 -{ - typedef aux::vector_tag<34> tag; - typedef vector34 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - - - typedef void_ item34; - typedef T33 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,34 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<33> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector34< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef vector33< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<33> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector34< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<34> > -{ - template< typename Vector > struct apply - { - typedef vector33< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32 - > type; - }; -}; - -template< typename V > -struct v_at< V,34 > -{ - typedef typename V::item34 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - > -struct vector35 -{ - typedef aux::vector_tag<35> tag; - typedef vector35 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - - - typedef void_ item35; - typedef T34 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,35 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<34> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector35< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef vector34< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<34> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector35< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<35> > -{ - template< typename Vector > struct apply - { - typedef vector34< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - > type; - }; -}; - -template< typename V > -struct v_at< V,35 > -{ - typedef typename V::item35 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35 - > -struct vector36 -{ - typedef aux::vector_tag<36> tag; - typedef vector36 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - - - typedef void_ item36; - typedef T35 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,36 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<35> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector36< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef vector35< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<35> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector36< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<36> > -{ - template< typename Vector > struct apply - { - typedef vector35< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34 - > type; - }; -}; - -template< typename V > -struct v_at< V,36 > -{ - typedef typename V::item36 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36 - > -struct vector37 -{ - typedef aux::vector_tag<37> tag; - typedef vector37 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - - - typedef void_ item37; - typedef T36 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,37 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<36> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector37< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef vector36< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<36> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector37< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<37> > -{ - template< typename Vector > struct apply - { - typedef vector36< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - > type; - }; -}; - -template< typename V > -struct v_at< V,37 > -{ - typedef typename V::item37 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37 - > -struct vector38 -{ - typedef aux::vector_tag<38> tag; - typedef vector38 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - - - typedef void_ item38; - typedef T37 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,38 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<37> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector38< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef vector37< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<37> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector38< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<38> > -{ - template< typename Vector > struct apply - { - typedef vector37< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36 - > type; - }; -}; - -template< typename V > -struct v_at< V,38 > -{ - typedef typename V::item38 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38 - > -struct vector39 -{ - typedef aux::vector_tag<39> tag; - typedef vector39 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - - - typedef void_ item39; - typedef T38 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,39 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<38> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector39< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef vector38< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<38> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector39< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<39> > -{ - template< typename Vector > struct apply - { - typedef vector38< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - > type; - }; -}; - -template< typename V > -struct v_at< V,39 > -{ - typedef typename V::item39 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - > -struct vector40 -{ - typedef aux::vector_tag<40> tag; - typedef vector40 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - - - typedef void_ item40; - typedef T39 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,40 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<39> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector40< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef vector39< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<39> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector40< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<40> > -{ - template< typename Vector > struct apply - { - typedef vector39< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38 - > type; - }; -}; - -template< typename V > -struct v_at< V,40 > -{ - typedef typename V::item40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp deleted file mode 100644 index ba0ffa88e..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +++ /dev/null @@ -1,281 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector40_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - > -struct vector31_c - : vector31< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - > -{ - typedef vector31_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31 - > -struct vector32_c - : vector32< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c - > -{ - typedef vector32_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32 - > -struct vector33_c - : vector33< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 > - > -{ - typedef vector33_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33 - > -struct vector34_c - : vector34< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - > -{ - typedef vector34_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34 - > -struct vector35_c - : vector35< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c - > -{ - typedef vector35_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35 - > -struct vector36_c - : vector36< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 > - > -{ - typedef vector36_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36 - > -struct vector37_c - : vector37< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - > -{ - typedef vector37_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37 - > -struct vector38_c - : vector38< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c - > -{ - typedef vector38_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 - > -struct vector39_c - : vector39< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 > - > -{ - typedef vector39_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 - > -struct vector40_c - : vector40< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - > -{ - typedef vector40_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp deleted file mode 100644 index 5a4c6d75d..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +++ /dev/null @@ -1,2104 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40 - > -struct vector41 -{ - typedef aux::vector_tag<41> tag; - typedef vector41 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - - - typedef void_ item41; - typedef T40 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,41 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<40> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector41< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef vector40< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<40> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector41< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<41> > -{ - template< typename Vector > struct apply - { - typedef vector40< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - > type; - }; -}; - -template< typename V > -struct v_at< V,41 > -{ - typedef typename V::item41 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41 - > -struct vector42 -{ - typedef aux::vector_tag<42> tag; - typedef vector42 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - - - typedef void_ item42; - typedef T41 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,42 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<41> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector42< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef vector41< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<41> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector42< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<42> > -{ - template< typename Vector > struct apply - { - typedef vector41< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40 - > type; - }; -}; - -template< typename V > -struct v_at< V,42 > -{ - typedef typename V::item42 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42 - > -struct vector43 -{ - typedef aux::vector_tag<43> tag; - typedef vector43 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - - - typedef void_ item43; - typedef T42 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,43 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<42> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector43< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef vector42< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<42> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector43< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<43> > -{ - template< typename Vector > struct apply - { - typedef vector42< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - > type; - }; -}; - -template< typename V > -struct v_at< V,43 > -{ - typedef typename V::item43 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43 - > -struct vector44 -{ - typedef aux::vector_tag<44> tag; - typedef vector44 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - - - typedef void_ item44; - typedef T43 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,44 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<43> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector44< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef vector43< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<43> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector44< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<44> > -{ - template< typename Vector > struct apply - { - typedef vector43< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42 - > type; - }; -}; - -template< typename V > -struct v_at< V,44 > -{ - typedef typename V::item44 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - > -struct vector45 -{ - typedef aux::vector_tag<45> tag; - typedef vector45 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - - - typedef void_ item45; - typedef T44 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,45 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<44> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector45< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef vector44< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<44> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector45< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<45> > -{ - template< typename Vector > struct apply - { - typedef vector44< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - > type; - }; -}; - -template< typename V > -struct v_at< V,45 > -{ - typedef typename V::item45 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45 - > -struct vector46 -{ - typedef aux::vector_tag<46> tag; - typedef vector46 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - - - typedef void_ item46; - typedef T45 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,46 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<45> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector46< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef vector45< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<45> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector46< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<46> > -{ - template< typename Vector > struct apply - { - typedef vector45< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44 - > type; - }; -}; - -template< typename V > -struct v_at< V,46 > -{ - typedef typename V::item46 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46 - > -struct vector47 -{ - typedef aux::vector_tag<47> tag; - typedef vector47 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - - - typedef void_ item47; - typedef T46 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,47 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<46> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector47< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef vector46< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<46> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector47< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<47> > -{ - template< typename Vector > struct apply - { - typedef vector46< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - > type; - }; -}; - -template< typename V > -struct v_at< V,47 > -{ - typedef typename V::item47 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47 - > -struct vector48 -{ - typedef aux::vector_tag<48> tag; - typedef vector48 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - typedef T47 item47; - - - typedef void_ item48; - typedef T47 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,48 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<47> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector48< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef vector47< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - , typename Vector::item47 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<47> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector48< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<48> > -{ - template< typename Vector > struct apply - { - typedef vector47< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46 - > type; - }; -}; - -template< typename V > -struct v_at< V,48 > -{ - typedef typename V::item48 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48 - > -struct vector49 -{ - typedef aux::vector_tag<49> tag; - typedef vector49 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - typedef T47 item47; - typedef T48 item48; - - - typedef void_ item49; - typedef T48 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,49 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<48> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector49< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef vector48< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - , typename Vector::item47, typename Vector::item48 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<48> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector49< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<49> > -{ - template< typename Vector > struct apply - { - typedef vector48< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - > type; - }; -}; - -template< typename V > -struct v_at< V,49 > -{ - typedef typename V::item49 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48, typename T49 - > -struct vector50 -{ - typedef aux::vector_tag<50> tag; - typedef vector50 type; - typedef T0 item0; - typedef T1 item1; - typedef T2 item2; - typedef T3 item3; - typedef T4 item4; - typedef T5 item5; - typedef T6 item6; - typedef T7 item7; - typedef T8 item8; - typedef T9 item9; - typedef T10 item10; - typedef T11 item11; - typedef T12 item12; - typedef T13 item13; - typedef T14 item14; - typedef T15 item15; - typedef T16 item16; - typedef T17 item17; - typedef T18 item18; - typedef T19 item19; - typedef T20 item20; - typedef T21 item21; - typedef T22 item22; - typedef T23 item23; - typedef T24 item24; - typedef T25 item25; - typedef T26 item26; - typedef T27 item27; - typedef T28 item28; - typedef T29 item29; - typedef T30 item30; - typedef T31 item31; - typedef T32 item32; - typedef T33 item33; - typedef T34 item34; - typedef T35 item35; - typedef T36 item36; - typedef T37 item37; - typedef T38 item38; - typedef T39 item39; - typedef T40 item40; - typedef T41 item41; - typedef T42 item42; - typedef T43 item43; - typedef T44 item44; - typedef T45 item45; - typedef T46 item46; - typedef T47 item47; - typedef T48 item48; - typedef T49 item49; - - - typedef void_ item50; - typedef T49 back; - typedef v_iter< type,0 > begin; - typedef v_iter< type,50 > end; -}; - -template<> -struct push_front_impl< aux::vector_tag<49> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector50< - T - , - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , typename Vector::item48 - > type; - }; -}; - -template<> -struct pop_front_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef vector49< - typename Vector::item1, typename Vector::item2 - , typename Vector::item3, typename Vector::item4 - , typename Vector::item5, typename Vector::item6 - , typename Vector::item7, typename Vector::item8 - , typename Vector::item9, typename Vector::item10 - , typename Vector::item11, typename Vector::item12 - , typename Vector::item13, typename Vector::item14 - , typename Vector::item15, typename Vector::item16 - , typename Vector::item17, typename Vector::item18 - , typename Vector::item19, typename Vector::item20 - , typename Vector::item21, typename Vector::item22 - , typename Vector::item23, typename Vector::item24 - , typename Vector::item25, typename Vector::item26 - , typename Vector::item27, typename Vector::item28 - , typename Vector::item29, typename Vector::item30 - , typename Vector::item31, typename Vector::item32 - , typename Vector::item33, typename Vector::item34 - , typename Vector::item35, typename Vector::item36 - , typename Vector::item37, typename Vector::item38 - , typename Vector::item39, typename Vector::item40 - , typename Vector::item41, typename Vector::item42 - , typename Vector::item43, typename Vector::item44 - , typename Vector::item45, typename Vector::item46 - , typename Vector::item47, typename Vector::item48 - , typename Vector::item49 - > type; - }; -}; - -template<> -struct push_back_impl< aux::vector_tag<49> > -{ - template< typename Vector, typename T > struct apply - { - typedef vector50< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , typename Vector::item48 - , - T - > type; - }; -}; - -template<> -struct pop_back_impl< aux::vector_tag<50> > -{ - template< typename Vector > struct apply - { - typedef vector49< - typename Vector::item0, typename Vector::item1 - , typename Vector::item2, typename Vector::item3 - , typename Vector::item4, typename Vector::item5 - , typename Vector::item6, typename Vector::item7 - , typename Vector::item8, typename Vector::item9 - , typename Vector::item10, typename Vector::item11 - , typename Vector::item12, typename Vector::item13 - , typename Vector::item14, typename Vector::item15 - , typename Vector::item16, typename Vector::item17 - , typename Vector::item18, typename Vector::item19 - , typename Vector::item20, typename Vector::item21 - , typename Vector::item22, typename Vector::item23 - , typename Vector::item24, typename Vector::item25 - , typename Vector::item26, typename Vector::item27 - , typename Vector::item28, typename Vector::item29 - , typename Vector::item30, typename Vector::item31 - , typename Vector::item32, typename Vector::item33 - , typename Vector::item34, typename Vector::item35 - , typename Vector::item36, typename Vector::item37 - , typename Vector::item38, typename Vector::item39 - , typename Vector::item40, typename Vector::item41 - , typename Vector::item42, typename Vector::item43 - , typename Vector::item44, typename Vector::item45 - , typename Vector::item46, typename Vector::item47 - , typename Vector::item48 - > type; - }; -}; - -template< typename V > -struct v_at< V,50 > -{ - typedef typename V::item50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp deleted file mode 100644 index e07f2b3ad..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +++ /dev/null @@ -1,325 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector50_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - > -struct vector41_c - : vector41< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c - > -{ - typedef vector41_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41 - > -struct vector42_c - : vector42< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 > - > -{ - typedef vector42_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42 - > -struct vector43_c - : vector43< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - > -{ - typedef vector43_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43 - > -struct vector44_c - : vector44< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c - > -{ - typedef vector44_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44 - > -struct vector45_c - : vector45< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 > - > -{ - typedef vector45_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45 - > -struct vector46_c - : vector46< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - > -{ - typedef vector46_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46 - > -struct vector47_c - : vector47< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c - > -{ - typedef vector47_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47 - > -struct vector48_c - : vector48< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - , integral_c< T,C46 >, integral_c< T,C47 > - > -{ - typedef vector48_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 - > -struct vector49_c - : vector49< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > - > -{ - typedef vector49_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 - > -struct vector50_c - : vector50< - integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > - , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 > - , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > - , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > - , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > - , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > - , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > - , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > - , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > - , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > - , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > - , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > - , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > - , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > - , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > - , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c - > -{ - typedef vector50_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp deleted file mode 100644 index e4c640709..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector10.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 - > -struct vector1 - : v_item< - T0 - , vector0< > - > -{ - typedef vector1 type; -}; - -template< - typename T0, typename T1 - > -struct vector2 - : v_item< - T1 - , vector1 - > -{ - typedef vector2 type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector3 - : v_item< - T2 - , vector2< T0,T1 > - > -{ - typedef vector3 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector4 - : v_item< - T3 - , vector3< T0,T1,T2 > - > -{ - typedef vector4 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector5 - : v_item< - T4 - , vector4< T0,T1,T2,T3 > - > -{ - typedef vector5 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector6 - : v_item< - T5 - , vector5< T0,T1,T2,T3,T4 > - > -{ - typedef vector6 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector7 - : v_item< - T6 - , vector6< T0,T1,T2,T3,T4,T5 > - > -{ - typedef vector7 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector8 - : v_item< - T7 - , vector7< T0,T1,T2,T3,T4,T5,T6 > - > -{ - typedef vector8 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector9 - : v_item< - T8 - , vector8< T0,T1,T2,T3,T4,T5,T6,T7 > - > -{ - typedef vector9 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector10 - : v_item< - T9 - , vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > - > -{ - typedef vector10 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp deleted file mode 100644 index 18eabc64d..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +++ /dev/null @@ -1,154 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector10_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0 - > -struct vector1_c - : v_item< - integral_c< T,C0 > - , vector0_c - > -{ - typedef vector1_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1 - > -struct vector2_c - : v_item< - integral_c< T,C1 > - , vector1_c< T,C0 > - > -{ - typedef vector2_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2 - > -struct vector3_c - : v_item< - integral_c< T,C2 > - , vector2_c< T,C0,C1 > - > -{ - typedef vector3_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3 - > -struct vector4_c - : v_item< - integral_c< T,C3 > - , vector3_c< T,C0,C1,C2 > - > -{ - typedef vector4_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4 - > -struct vector5_c - : v_item< - integral_c< T,C4 > - , vector4_c< T,C0,C1,C2,C3 > - > -{ - typedef vector5_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5 - > -struct vector6_c - : v_item< - integral_c< T,C5 > - , vector5_c< T,C0,C1,C2,C3,C4 > - > -{ - typedef vector6_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6 - > -struct vector7_c - : v_item< - integral_c< T,C6 > - , vector6_c< T,C0,C1,C2,C3,C4,C5 > - > -{ - typedef vector7_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 - > -struct vector8_c - : v_item< - integral_c< T,C7 > - , vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > - > -{ - typedef vector8_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 - > -struct vector9_c - : v_item< - integral_c< T,C8 > - , vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > - > -{ - typedef vector9_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 - > -struct vector10_c - : v_item< - integral_c< T,C9 > - , vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > - > -{ - typedef vector10_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp deleted file mode 100644 index 78ccac4e9..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +++ /dev/null @@ -1,159 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector20.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector11 - : v_item< - T10 - , vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > - > -{ - typedef vector11 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector12 - : v_item< - T11 - , vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > - > -{ - typedef vector12 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector13 - : v_item< - T12 - , vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > - > -{ - typedef vector13 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector14 - : v_item< - T13 - , vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > - > -{ - typedef vector14 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector15 - : v_item< - T14 - , vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > - > -{ - typedef vector15 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector16 - : v_item< - T15 - , vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > - > -{ - typedef vector16 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector17 - : v_item< - T16 - , vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > - > -{ - typedef vector17 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector18 - : v_item< - T17 - , vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > - > -{ - typedef vector18 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector19 - : v_item< - T18 - , vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > - > -{ - typedef vector19 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector20 - : v_item< - T19 - , vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > - > -{ - typedef vector20 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp deleted file mode 100644 index 4bf674230..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +++ /dev/null @@ -1,163 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector20_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - > -struct vector11_c - : v_item< - integral_c< T,C10 > - , vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > - > -{ - typedef vector11_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11 - > -struct vector12_c - : v_item< - integral_c< T,C11 > - , vector11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > - > -{ - typedef vector12_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12 - > -struct vector13_c - : v_item< - integral_c< T,C12 > - , vector12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > - > -{ - typedef vector13_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13 - > -struct vector14_c - : v_item< - integral_c< T,C13 > - , vector13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > - > -{ - typedef vector14_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14 - > -struct vector15_c - : v_item< - integral_c< T,C14 > - , vector14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > - > -{ - typedef vector15_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15 - > -struct vector16_c - : v_item< - integral_c< T,C15 > - , vector15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > - > -{ - typedef vector16_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16 - > -struct vector17_c - : v_item< - integral_c< T,C16 > - , vector16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > - > -{ - typedef vector17_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17 - > -struct vector18_c - : v_item< - integral_c< T,C17 > - , vector17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > - > -{ - typedef vector18_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 - > -struct vector19_c - : v_item< - integral_c< T,C18 > - , vector18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > - > -{ - typedef vector19_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 - > -struct vector20_c - : v_item< - integral_c< T,C19 > - , vector19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > - > -{ - typedef vector20_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp deleted file mode 100644 index c4049906f..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +++ /dev/null @@ -1,179 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector30.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20 - > -struct vector21 - : v_item< - T20 - , vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > - > -{ - typedef vector21 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21 - > -struct vector22 - : v_item< - T21 - , vector21< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > - > -{ - typedef vector22 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22 - > -struct vector23 - : v_item< - T22 - , vector22< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > - > -{ - typedef vector23 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23 - > -struct vector24 - : v_item< - T23 - , vector23< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > - > -{ - typedef vector24 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - > -struct vector25 - : v_item< - T24 - , vector24< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > - > -{ - typedef vector25 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25 - > -struct vector26 - : v_item< - T25 - , vector25< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > - > -{ - typedef vector26 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26 - > -struct vector27 - : v_item< - T26 - , vector26< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > - > -{ - typedef vector27 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27 - > -struct vector28 - : v_item< - T27 - , vector27< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > - > -{ - typedef vector28 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28 - > -struct vector29 - : v_item< - T28 - , vector28< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > - > -{ - typedef vector29 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - > -struct vector30 - : v_item< - T29 - , vector29< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > - > -{ - typedef vector30 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp deleted file mode 100644 index 5741bb4b6..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +++ /dev/null @@ -1,173 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector30_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - > -struct vector21_c - : v_item< - integral_c< T,C20 > - , vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > - > -{ - typedef vector21_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21 - > -struct vector22_c - : v_item< - integral_c< T,C21 > - , vector21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > - > -{ - typedef vector22_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22 - > -struct vector23_c - : v_item< - integral_c< T,C22 > - , vector22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > - > -{ - typedef vector23_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23 - > -struct vector24_c - : v_item< - integral_c< T,C23 > - , vector23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > - > -{ - typedef vector24_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24 - > -struct vector25_c - : v_item< - integral_c< T,C24 > - , vector24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > - > -{ - typedef vector25_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25 - > -struct vector26_c - : v_item< - integral_c< T,C25 > - , vector25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > - > -{ - typedef vector26_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26 - > -struct vector27_c - : v_item< - integral_c< T,C26 > - , vector26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > - > -{ - typedef vector27_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27 - > -struct vector28_c - : v_item< - integral_c< T,C27 > - , vector27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > - > -{ - typedef vector28_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 - > -struct vector29_c - : v_item< - integral_c< T,C28 > - , vector28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > - > -{ - typedef vector29_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 - > -struct vector30_c - : v_item< - integral_c< T,C29 > - , vector29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > - > -{ - typedef vector30_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp deleted file mode 100644 index debcf7027..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +++ /dev/null @@ -1,199 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector40.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30 - > -struct vector31 - : v_item< - T30 - , vector30< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > - > -{ - typedef vector31 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31 - > -struct vector32 - : v_item< - T31 - , vector31< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > - > -{ - typedef vector32 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32 - > -struct vector33 - : v_item< - T32 - , vector32< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > - > -{ - typedef vector33 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33 - > -struct vector34 - : v_item< - T33 - , vector33< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > - > -{ - typedef vector34 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - > -struct vector35 - : v_item< - T34 - , vector34< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > - > -{ - typedef vector35 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35 - > -struct vector36 - : v_item< - T35 - , vector35< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > - > -{ - typedef vector36 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36 - > -struct vector37 - : v_item< - T36 - , vector36< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > - > -{ - typedef vector37 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37 - > -struct vector38 - : v_item< - T37 - , vector37< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > - > -{ - typedef vector38 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38 - > -struct vector39 - : v_item< - T38 - , vector38< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > - > -{ - typedef vector39 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - > -struct vector40 - : v_item< - T39 - , vector39< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > - > -{ - typedef vector40 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp deleted file mode 100644 index 88d742e0a..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +++ /dev/null @@ -1,183 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector40_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - > -struct vector31_c - : v_item< - integral_c< T,C30 > - , vector30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > - > -{ - typedef vector31_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31 - > -struct vector32_c - : v_item< - integral_c< T,C31 > - , vector31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > - > -{ - typedef vector32_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32 - > -struct vector33_c - : v_item< - integral_c< T,C32 > - , vector32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > - > -{ - typedef vector33_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33 - > -struct vector34_c - : v_item< - integral_c< T,C33 > - , vector33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > - > -{ - typedef vector34_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34 - > -struct vector35_c - : v_item< - integral_c< T,C34 > - , vector34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > - > -{ - typedef vector35_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35 - > -struct vector36_c - : v_item< - integral_c< T,C35 > - , vector35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > - > -{ - typedef vector36_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36 - > -struct vector37_c - : v_item< - integral_c< T,C36 > - , vector36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > - > -{ - typedef vector37_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37 - > -struct vector38_c - : v_item< - integral_c< T,C37 > - , vector37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > - > -{ - typedef vector38_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 - > -struct vector39_c - : v_item< - integral_c< T,C38 > - , vector38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > - > -{ - typedef vector39_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 - > -struct vector40_c - : v_item< - integral_c< T,C39 > - , vector39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > - > -{ - typedef vector40_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp deleted file mode 100644 index 8db06df45..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +++ /dev/null @@ -1,219 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector50.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40 - > -struct vector41 - : v_item< - T40 - , vector40< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > - > -{ - typedef vector41 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41 - > -struct vector42 - : v_item< - T41 - , vector41< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > - > -{ - typedef vector42 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42 - > -struct vector43 - : v_item< - T42 - , vector42< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > - > -{ - typedef vector43 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43 - > -struct vector44 - : v_item< - T43 - , vector43< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > - > -{ - typedef vector44 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - > -struct vector45 - : v_item< - T44 - , vector44< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > - > -{ - typedef vector45 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45 - > -struct vector46 - : v_item< - T45 - , vector45< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > - > -{ - typedef vector46 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46 - > -struct vector47 - : v_item< - T46 - , vector46< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > - > -{ - typedef vector47 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47 - > -struct vector48 - : v_item< - T47 - , vector47< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > - > -{ - typedef vector48 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48 - > -struct vector49 - : v_item< - T48 - , vector48< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > - > -{ - typedef vector49 type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - , typename T20, typename T21, typename T22, typename T23, typename T24 - , typename T25, typename T26, typename T27, typename T28, typename T29 - , typename T30, typename T31, typename T32, typename T33, typename T34 - , typename T35, typename T36, typename T37, typename T38, typename T39 - , typename T40, typename T41, typename T42, typename T43, typename T44 - , typename T45, typename T46, typename T47, typename T48, typename T49 - > -struct vector50 - : v_item< - T49 - , vector49< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > - > -{ - typedef vector50 type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp deleted file mode 100644 index f56d6aff0..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +++ /dev/null @@ -1,193 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// - -// Preprocessed version of "boost/mpl/vector/vector50_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - > -struct vector41_c - : v_item< - integral_c< T,C40 > - , vector40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > - > -{ - typedef vector41_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41 - > -struct vector42_c - : v_item< - integral_c< T,C41 > - , vector41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > - > -{ - typedef vector42_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42 - > -struct vector43_c - : v_item< - integral_c< T,C42 > - , vector42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > - > -{ - typedef vector43_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43 - > -struct vector44_c - : v_item< - integral_c< T,C43 > - , vector43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > - > -{ - typedef vector44_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44 - > -struct vector45_c - : v_item< - integral_c< T,C44 > - , vector44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > - > -{ - typedef vector45_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45 - > -struct vector46_c - : v_item< - integral_c< T,C45 > - , vector45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > - > -{ - typedef vector46_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46 - > -struct vector47_c - : v_item< - integral_c< T,C46 > - , vector46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > - > -{ - typedef vector47_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47 - > -struct vector48_c - : v_item< - integral_c< T,C47 > - , vector47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > - > -{ - typedef vector48_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 - > -struct vector49_c - : v_item< - integral_c< T,C48 > - , vector48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > - > -{ - typedef vector49_c type; - typedef T value_type; -}; - -template< - typename T - , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 - , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 - , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 - , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 - , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 - > -struct vector50_c - : v_item< - integral_c< T,C49 > - , vector49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > - > -{ - typedef vector50_c type; - typedef T value_type; -}; - -}} diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/push_back.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/push_back.hpp deleted file mode 100644 index 527828c9b..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/push_back.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# include -# include - -namespace boost { namespace mpl { - -template<> -struct push_back_impl< aux::vector_tag > -{ - template< typename Vector, typename T > struct apply - { - typedef v_item type; - }; -}; - -}} - -#endif - -#endif // BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/push_front.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/push_front.hpp deleted file mode 100644 index f315de58b..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/push_front.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -# include -# include - -namespace boost { namespace mpl { - -template<> -struct push_front_impl< aux::vector_tag > -{ - template< typename Vector, typename T > struct apply - { - typedef v_item type; - }; -}; - -}} - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#endif // BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/size.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/size.hpp deleted file mode 100644 index c131e8866..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/size.hpp +++ /dev/null @@ -1,49 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - -template<> -struct size_impl< aux::vector_tag > - : O1_size_impl< aux::vector_tag > -{ -}; - -#else - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< long N > -struct size_impl< aux::vector_tag > - : O1_size_impl< aux::vector_tag > -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -}} - -#endif // BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/tag.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/tag.hpp deleted file mode 100644 index 90d16e38c..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/tag.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -struct v_iter_tag; - -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) -struct vector_tag; -#else -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct vector_tag; -#endif - -}}} - -#endif // BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/aux_/vector0.hpp b/lib/3rdParty/boost/boost/mpl/vector/aux_/vector0.hpp deleted file mode 100644 index 402667360..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/aux_/vector0.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED -#define BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Dummy = na > struct vector0; - -template<> struct vector0 -{ -#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) - typedef aux::vector_tag tag; - typedef vector0 type; - typedef long_<32768> lower_bound_; - typedef lower_bound_ upper_bound_; - typedef long_<0> size; - - static aux::type_wrapper item_(...); -#else - typedef aux::vector_tag<0> tag; - typedef vector0 type; - typedef void_ item0; - - typedef v_iter,0> begin; - typedef v_iter,0> end; -#endif -}; - -}} - -#endif // BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector0.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector0.hpp deleted file mode 100644 index 39759ddc2..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector0.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector0_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector0_c.hpp deleted file mode 100644 index 0e60215dd..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector0_c.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { - -template< typename T > struct vector0_c - : vector0<> -{ - typedef vector0_c type; - typedef T value_type; -}; - -}} - -#endif // BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector10.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector10.hpp deleted file mode 100644 index 53a2a163a..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector10.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector10.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector10_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector10_c.hpp deleted file mode 100644 index be52d2f7f..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector10_c.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, 10, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector20.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector20.hpp deleted file mode 100644 index 96d1b9f45..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector20.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector20.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector20_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector20_c.hpp deleted file mode 100644 index 3913f2602..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector20_c.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(11, 20, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector30.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector30.hpp deleted file mode 100644 index b2f0a5eb0..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector30.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector30.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector30_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector30_c.hpp deleted file mode 100644 index 94cdab465..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector30_c.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp -# include - -#else - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(21, 30, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_USE_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector40.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector40.hpp deleted file mode 100644 index 2d2ef8195..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector40.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector40.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector40_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector40_c.hpp deleted file mode 100644 index 25e2ebf3d..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector40_c.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(31, 40, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector50.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector50.hpp deleted file mode 100644 index dc2d5c20a..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector50.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector50.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector/vector50_c.hpp b/lib/3rdParty/boost/boost/mpl/vector/vector50_c.hpp deleted file mode 100644 index 7388bf404..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector/vector50_c.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp -# include - -#else - -# include -# include -# include - -namespace boost { namespace mpl { - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(41, 50, )) -# include BOOST_PP_ITERATE() - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/vector_c.hpp b/lib/3rdParty/boost/boost/mpl/vector_c.hpp deleted file mode 100644 index 316ce65f8..000000000 --- a/lib/3rdParty/boost/boost/mpl/vector_c.hpp +++ /dev/null @@ -1,61 +0,0 @@ - -#ifndef BOOST_MPL_VECTOR_C_HPP_INCLUDED -#define BOOST_MPL_VECTOR_C_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include - -# include -# include -# include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_VECTOR_C_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE),_c).hpp \ - /**/ -#else -# define AUX778076_VECTOR_C_HEADER \ - BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_MPL_LIMIT_VECTOR_SIZE),_c)##.hpp \ - /**/ -#endif - -# include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_C_HEADER) -# undef AUX778076_VECTOR_C_HEADER -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER vector_c.hpp -# include - -#else - -# include - -# define AUX778076_SEQUENCE_NAME vector_c -# define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE -# define AUX778076_SEQUENCE_NAME_N(n) BOOST_PP_CAT(BOOST_PP_CAT(vector,n),_c) -# define AUX778076_SEQUENCE_CONVERT_CN_TO(z,n,TARGET) TARGET(BOOST_PP_CAT(C,n)) -# define AUX778076_SEQUENCE_INTEGRAL_WRAPPER -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_VECTOR_C_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/void.hpp b/lib/3rdParty/boost/boost/mpl/void.hpp deleted file mode 100644 index 3dcbdd1d0..000000000 --- a/lib/3rdParty/boost/boost/mpl/void.hpp +++ /dev/null @@ -1,76 +0,0 @@ - -#ifndef BOOST_MPL_VOID_HPP_INCLUDED -#define BOOST_MPL_VOID_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -// [JDG Feb-4-2003] made void_ a complete type to allow it to be -// instantiated so that it can be passed in as an object that can be -// used to select an overloaded function. Possible use includes signaling -// a zero arity functor evaluation call. -struct void_ { typedef void_ type; }; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -namespace boost { namespace mpl { - -template< typename T > -struct is_void_ - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -template<> -struct is_void_ - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -template< typename T > -struct is_not_void_ - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -template<> -struct is_not_void_ - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -BOOST_MPL_AUX_NA_SPEC(1, is_void_) -BOOST_MPL_AUX_NA_SPEC(1, is_not_void_) - -}} - -#endif // BOOST_MPL_VOID_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/void_fwd.hpp b/lib/3rdParty/boost/boost/mpl/void_fwd.hpp deleted file mode 100644 index 86078b5c9..000000000 --- a/lib/3rdParty/boost/boost/mpl/void_fwd.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED -#define BOOST_MPL_VOID_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// 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/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -struct void_; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(void_) - -#endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/mpl/zip_view.hpp b/lib/3rdParty/boost/boost/mpl/zip_view.hpp deleted file mode 100644 index d709230dc..000000000 --- a/lib/3rdParty/boost/boost/mpl/zip_view.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_ZIP_VIEW_HPP_INCLUDED -#define BOOST_MPL_ZIP_VIEW_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2010 -// Copyright David Abrahams 2000-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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename IteratorSeq > -struct zip_iterator -{ - typedef forward_iterator_tag category; - typedef typename transform1< - IteratorSeq - , deref<_1> - >::type type; - - typedef zip_iterator< - typename transform1< - IteratorSeq - , mpl::next<_1> - >::type - > next; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequences) - > -struct zip_view -{ - private: - typedef typename transform1< Sequences, mpl::begin<_1> >::type first_ones_; - typedef typename transform1< Sequences, mpl::end<_1> >::type last_ones_; - - public: - typedef nested_begin_end_tag tag; - typedef zip_view type; - typedef zip_iterator begin; - typedef zip_iterator end; -}; - -BOOST_MPL_AUX_NA_SPEC(1, zip_view) - -}} - -#endif // BOOST_MPL_ZIP_VIEW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/next_prior.hpp b/lib/3rdParty/boost/boost/next_prior.hpp deleted file mode 100644 index 7854ec436..000000000 --- a/lib/3rdParty/boost/boost/next_prior.hpp +++ /dev/null @@ -1,165 +0,0 @@ -// Boost next_prior.hpp header file ---------------------------------------// - -// (C) Copyright Dave Abrahams and Daniel Walker 1999-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/libs/utility for documentation. - -// Revision History -// 13 Dec 2003 Added next(x, n) and prior(x, n) (Daniel Walker) - -#ifndef BOOST_NEXT_PRIOR_HPP_INCLUDED -#define BOOST_NEXT_PRIOR_HPP_INCLUDED - -#include -#if defined(_MSC_VER) && _MSC_VER <= 1310 -#include -#include -#endif -#include -#include -#include -#include -#include -#include -#include - -namespace boost { - -// Helper functions for classes like bidirectional iterators not supporting -// operator+ and operator- -// -// Usage: -// const std::list::iterator p = get_some_iterator(); -// const std::list::iterator prev = boost::prior(p); -// const std::list::iterator next = boost::next(prev, 2); - -// Contributed by Dave Abrahams - -namespace next_prior_detail { - -template< typename T, typename Distance, bool HasPlus = has_plus< T, Distance >::value > -struct next_impl2 -{ - static T call(T x, Distance n) - { - std::advance(x, n); - return x; - } -}; - -template< typename T, typename Distance > -struct next_impl2< T, Distance, true > -{ - static T call(T x, Distance n) - { - return x + n; - } -}; - - -template< typename T, typename Distance, bool HasPlusAssign = has_plus_assign< T, Distance >::value > -struct next_impl1 : - public next_impl2< T, Distance > -{ -}; - -template< typename T, typename Distance > -struct next_impl1< T, Distance, true > -{ - static T call(T x, Distance n) - { - x += n; - return x; - } -}; - - -template< - typename T, - typename Distance, - typename PromotedDistance = typename integral_promotion< Distance >::type, -#if !defined(_MSC_VER) || _MSC_VER > 1310 - bool IsUInt = is_unsigned< PromotedDistance >::value -#else - // MSVC 7.1 has problems with applying is_unsigned to non-integral types - bool IsUInt = mpl::and_< is_integral< PromotedDistance >, is_unsigned< PromotedDistance > >::value -#endif -> -struct prior_impl3 -{ - static T call(T x, Distance n) - { - std::advance(x, -n); - return x; - } -}; - -template< typename T, typename Distance, typename PromotedDistance > -struct prior_impl3< T, Distance, PromotedDistance, true > -{ - static T call(T x, Distance n) - { - typedef typename make_signed< PromotedDistance >::type signed_distance; - std::advance(x, -static_cast< signed_distance >(static_cast< PromotedDistance >(n))); - return x; - } -}; - - -template< typename T, typename Distance, bool HasMinus = has_minus< T, Distance >::value > -struct prior_impl2 : - public prior_impl3< T, Distance > -{ -}; - -template< typename T, typename Distance > -struct prior_impl2< T, Distance, true > -{ - static T call(T x, Distance n) - { - return x - n; - } -}; - - -template< typename T, typename Distance, bool HasMinusAssign = has_minus_assign< T, Distance >::value > -struct prior_impl1 : - public prior_impl2< T, Distance > -{ -}; - -template< typename T, typename Distance > -struct prior_impl1< T, Distance, true > -{ - static T call(T x, Distance n) - { - x -= n; - return x; - } -}; - -} // namespace next_prior_detail - -template -inline T next(T x) { return ++x; } - -template -inline T next(T x, Distance n) -{ - return next_prior_detail::next_impl1< T, Distance >::call(x, n); -} - -template -inline T prior(T x) { return --x; } - -template -inline T prior(T x, Distance n) -{ - return next_prior_detail::prior_impl1< T, Distance >::call(x, n); -} - -} // namespace boost - -#endif // BOOST_NEXT_PRIOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/noncopyable.hpp b/lib/3rdParty/boost/boost/noncopyable.hpp deleted file mode 100644 index e998ee864..000000000 --- a/lib/3rdParty/boost/boost/noncopyable.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_NONCOPYABLE_HPP -#define BOOST_NONCOPYABLE_HPP - -// The header file at this path is deprecated; -// use boost/core/noncopyable.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/operators.hpp b/lib/3rdParty/boost/boost/operators.hpp deleted file mode 100644 index 3fc08d5e8..000000000 --- a/lib/3rdParty/boost/boost/operators.hpp +++ /dev/null @@ -1,892 +0,0 @@ -// Boost operators.hpp header file ----------------------------------------// - -// (C) Copyright David Abrahams, Jeremy Siek, Daryle Walker 1999-2001. -// (C) Copyright Daniel Frey 2002-2016. -// 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/utility/operators.htm for documentation. - -// Revision History -// 22 Feb 16 Added ADL protection, preserve old work-arounds in -// operators_v1.hpp and clean up this file. (Daniel Frey) -// 16 Dec 10 Limit warning suppression for 4284 to older versions of VC++ -// (Matthew Bradbury, fixes #4432) -// 07 Aug 08 Added "euclidean" spelling. (Daniel Frey) -// 03 Apr 08 Make sure "convertible to bool" is sufficient -// for T::operator<, etc. (Daniel Frey) -// 24 May 07 Changed empty_base to depend on T, see -// http://svn.boost.org/trac/boost/ticket/979 -// 21 Oct 02 Modified implementation of operators to allow compilers with a -// correct named return value optimization (NRVO) to produce optimal -// code. (Daniel Frey) -// 02 Dec 01 Bug fixed in random_access_iteratable. (Helmut Zeisel) -// 28 Sep 01 Factored out iterator operator groups. (Daryle Walker) -// 27 Aug 01 'left' form for non commutative operators added; -// additional classes for groups of related operators added; -// workaround for empty base class optimization -// bug of GCC 3.0 (Helmut Zeisel) -// 25 Jun 01 output_iterator_helper changes: removed default template -// parameters, added support for self-proxying, additional -// documentation and tests (Aleksey Gurtovoy) -// 29 May 01 Added operator classes for << and >>. Added input and output -// iterator helper classes. Added classes to connect equality and -// relational operators. Added classes for groups of related -// operators. Reimplemented example operator and iterator helper -// classes in terms of the new groups. (Daryle Walker, with help -// from Alexy Gurtovoy) -// 11 Feb 01 Fixed bugs in the iterator helpers which prevented explicitly -// supplied arguments from actually being used (Dave Abrahams) -// 04 Jul 00 Fixed NO_OPERATORS_IN_NAMESPACE bugs, major cleanup and -// refactoring of compiler workarounds, additional documentation -// (Alexy Gurtovoy and Mark Rodgers with some help and prompting from -// Dave Abrahams) -// 28 Jun 00 General cleanup and integration of bugfixes from Mark Rodgers and -// Jeremy Siek (Dave Abrahams) -// 20 Jun 00 Changes to accommodate Borland C++Builder 4 and Borland C++ 5.5 -// (Mark Rodgers) -// 20 Jun 00 Minor fixes to the prior revision (Aleksey Gurtovoy) -// 10 Jun 00 Support for the base class chaining technique was added -// (Aleksey Gurtovoy). See documentation and the comments below -// for the details. -// 12 Dec 99 Initial version with iterator operators (Jeremy Siek) -// 18 Nov 99 Change name "divideable" to "dividable", remove unnecessary -// specializations of dividable, subtractable, modable (Ed Brey) -// 17 Nov 99 Add comments (Beman Dawes) -// Remove unnecessary specialization of operators<> (Ed Brey) -// 15 Nov 99 Fix less_than_comparable second operand type for first two -// operators.(Beman Dawes) -// 12 Nov 99 Add operators templates (Ed Brey) -// 11 Nov 99 Add single template parameter version for compilers without -// partial specialization (Beman Dawes) -// 10 Nov 99 Initial version - -// 10 Jun 00: -// An additional optional template parameter was added to most of -// operator templates to support the base class chaining technique (see -// documentation for the details). Unfortunately, a straightforward -// implementation of this change would have broken compatibility with the -// previous version of the library by making it impossible to use the same -// template name (e.g. 'addable') for both the 1- and 2-argument versions of -// an operator template. This implementation solves the backward-compatibility -// issue at the cost of some simplicity. -// -// One of the complications is an existence of special auxiliary class template -// 'is_chained_base<>' (see 'operators_detail' namespace below), which is used -// to determine whether its template parameter is a library's operator template -// or not. You have to specialize 'is_chained_base<>' for each new -// operator template you add to the library. -// -// However, most of the non-trivial implementation details are hidden behind -// several local macros defined below, and as soon as you understand them, -// you understand the whole library implementation. - -#ifndef BOOST_OPERATORS_HPP -#define BOOST_OPERATORS_HPP - -// If old work-arounds are needed, refer to the preserved version without -// ADL protection. -#if defined(BOOST_NO_OPERATORS_IN_NAMESPACE) || defined(BOOST_USE_OPERATORS_V1) -#include "operators_v1.hpp" -#else - -#include -#include - -#include -#include - -#if defined(__sgi) && !defined(__GNUC__) -# pragma set woff 1234 -#endif - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1600) -# pragma warning( disable : 4284 ) // complaint about return type of -#endif // operator-> not begin a UDT - -// In this section we supply the xxxx1 and xxxx2 forms of the operator -// templates, which are explicitly targeted at the 1-type-argument and -// 2-type-argument operator forms, respectively. - -namespace boost -{ -namespace operators_impl -{ -namespace operators_detail -{ - -template class empty_base {}; - -} // namespace operators_detail - -// Basic operator classes (contributed by Dave Abrahams) ------------------// - -// Note that friend functions defined in a class are implicitly inline. -// See the C++ std, 11.4 [class.friend] paragraph 5 - -template > -struct less_than_comparable2 : B -{ - friend bool operator<=(const T& x, const U& y) { return !static_cast(x > y); } - friend bool operator>=(const T& x, const U& y) { return !static_cast(x < y); } - friend bool operator>(const U& x, const T& y) { return y < x; } - friend bool operator<(const U& x, const T& y) { return y > x; } - friend bool operator<=(const U& x, const T& y) { return !static_cast(y < x); } - friend bool operator>=(const U& x, const T& y) { return !static_cast(y > x); } -}; - -template > -struct less_than_comparable1 : B -{ - friend bool operator>(const T& x, const T& y) { return y < x; } - friend bool operator<=(const T& x, const T& y) { return !static_cast(y < x); } - friend bool operator>=(const T& x, const T& y) { return !static_cast(x < y); } -}; - -template > -struct equality_comparable2 : B -{ - friend bool operator==(const U& y, const T& x) { return x == y; } - friend bool operator!=(const U& y, const T& x) { return !static_cast(x == y); } - friend bool operator!=(const T& y, const U& x) { return !static_cast(y == x); } -}; - -template > -struct equality_comparable1 : B -{ - friend bool operator!=(const T& x, const T& y) { return !static_cast(x == y); } -}; - -// A macro which produces "name_2left" from "name". -#define BOOST_OPERATOR2_LEFT(name) name##2##_##left - -// NRVO-friendly implementation (contributed by Daniel Frey) ---------------// - -#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) - -// This is the optimal implementation for ISO/ANSI C++, -// but it requires the compiler to implement the NRVO. -// If the compiler has no NRVO, this is the best symmetric -// implementation available. - -#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \ -template > \ -struct NAME##2 : B \ -{ \ - friend T operator OP( const T& lhs, const U& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ - friend T operator OP( const U& lhs, const T& rhs ) \ - { T nrv( rhs ); nrv OP##= lhs; return nrv; } \ -}; \ - \ -template > \ -struct NAME##1 : B \ -{ \ - friend T operator OP( const T& lhs, const T& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ -}; - -#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \ -template > \ -struct NAME##2 : B \ -{ \ - friend T operator OP( const T& lhs, const U& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ -}; \ - \ -template > \ -struct BOOST_OPERATOR2_LEFT(NAME) : B \ -{ \ - friend T operator OP( const U& lhs, const T& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ -}; \ - \ -template > \ -struct NAME##1 : B \ -{ \ - friend T operator OP( const T& lhs, const T& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ -}; - -#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) - -// For compilers without NRVO the following code is optimal, but not -// symmetric! Note that the implementation of -// BOOST_OPERATOR2_LEFT(NAME) only looks cool, but doesn't provide -// optimization opportunities to the compiler :) - -#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \ -template > \ -struct NAME##2 : B \ -{ \ - friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \ - friend T operator OP( const U& lhs, T rhs ) { return rhs OP##= lhs; } \ -}; \ - \ -template > \ -struct NAME##1 : B \ -{ \ - friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \ -}; - -#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \ -template > \ -struct NAME##2 : B \ -{ \ - friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \ -}; \ - \ -template > \ -struct BOOST_OPERATOR2_LEFT(NAME) : B \ -{ \ - friend T operator OP( const U& lhs, const T& rhs ) \ - { return T( lhs ) OP##= rhs; } \ -}; \ - \ -template > \ -struct NAME##1 : B \ -{ \ - friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \ -}; - -#endif // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) - -BOOST_BINARY_OPERATOR_COMMUTATIVE( multipliable, * ) -BOOST_BINARY_OPERATOR_COMMUTATIVE( addable, + ) -BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( subtractable, - ) -BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( dividable, / ) -BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( modable, % ) -BOOST_BINARY_OPERATOR_COMMUTATIVE( xorable, ^ ) -BOOST_BINARY_OPERATOR_COMMUTATIVE( andable, & ) -BOOST_BINARY_OPERATOR_COMMUTATIVE( orable, | ) - -#undef BOOST_BINARY_OPERATOR_COMMUTATIVE -#undef BOOST_BINARY_OPERATOR_NON_COMMUTATIVE -#undef BOOST_OPERATOR2_LEFT - -// incrementable and decrementable contributed by Jeremy Siek - -template > -struct incrementable : B -{ - friend T operator++(T& x, int) - { - incrementable_type nrv(x); - ++x; - return nrv; - } -private: // The use of this typedef works around a Borland bug - typedef T incrementable_type; -}; - -template > -struct decrementable : B -{ - friend T operator--(T& x, int) - { - decrementable_type nrv(x); - --x; - return nrv; - } -private: // The use of this typedef works around a Borland bug - typedef T decrementable_type; -}; - -// Iterator operator classes (contributed by Jeremy Siek) ------------------// - -template > -struct dereferenceable : B -{ - P operator->() const - { - return &*static_cast(*this); - } -}; - -template > -struct indexable : B -{ - R operator[](I n) const - { - return *(static_cast(*this) + n); - } -}; - -// More operator classes (contributed by Daryle Walker) --------------------// -// (NRVO-friendly implementation contributed by Daniel Frey) ---------------// - -#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) - -#define BOOST_BINARY_OPERATOR( NAME, OP ) \ -template > \ -struct NAME##2 : B \ -{ \ - friend T operator OP( const T& lhs, const U& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ -}; \ - \ -template > \ -struct NAME##1 : B \ -{ \ - friend T operator OP( const T& lhs, const T& rhs ) \ - { T nrv( lhs ); nrv OP##= rhs; return nrv; } \ -}; - -#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) - -#define BOOST_BINARY_OPERATOR( NAME, OP ) \ -template > \ -struct NAME##2 : B \ -{ \ - friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \ -}; \ - \ -template > \ -struct NAME##1 : B \ -{ \ - friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \ -}; - -#endif // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS) - -BOOST_BINARY_OPERATOR( left_shiftable, << ) -BOOST_BINARY_OPERATOR( right_shiftable, >> ) - -#undef BOOST_BINARY_OPERATOR - -template > -struct equivalent2 : B -{ - friend bool operator==(const T& x, const U& y) - { - return !static_cast(x < y) && !static_cast(x > y); - } -}; - -template > -struct equivalent1 : B -{ - friend bool operator==(const T&x, const T&y) - { - return !static_cast(x < y) && !static_cast(y < x); - } -}; - -template > -struct partially_ordered2 : B -{ - friend bool operator<=(const T& x, const U& y) - { return static_cast(x < y) || static_cast(x == y); } - friend bool operator>=(const T& x, const U& y) - { return static_cast(x > y) || static_cast(x == y); } - friend bool operator>(const U& x, const T& y) - { return y < x; } - friend bool operator<(const U& x, const T& y) - { return y > x; } - friend bool operator<=(const U& x, const T& y) - { return static_cast(y > x) || static_cast(y == x); } - friend bool operator>=(const U& x, const T& y) - { return static_cast(y < x) || static_cast(y == x); } -}; - -template > -struct partially_ordered1 : B -{ - friend bool operator>(const T& x, const T& y) - { return y < x; } - friend bool operator<=(const T& x, const T& y) - { return static_cast(x < y) || static_cast(x == y); } - friend bool operator>=(const T& x, const T& y) - { return static_cast(y < x) || static_cast(x == y); } -}; - -// Combined operator classes (contributed by Daryle Walker) ----------------// - -template > -struct totally_ordered2 - : less_than_comparable2 > {}; - -template > -struct totally_ordered1 - : less_than_comparable1 > {}; - -template > -struct additive2 - : addable2 > {}; - -template > -struct additive1 - : addable1 > {}; - -template > -struct multiplicative2 - : multipliable2 > {}; - -template > -struct multiplicative1 - : multipliable1 > {}; - -template > -struct integer_multiplicative2 - : multiplicative2 > {}; - -template > -struct integer_multiplicative1 - : multiplicative1 > {}; - -template > -struct arithmetic2 - : additive2 > {}; - -template > -struct arithmetic1 - : additive1 > {}; - -template > -struct integer_arithmetic2 - : additive2 > {}; - -template > -struct integer_arithmetic1 - : additive1 > {}; - -template > -struct bitwise2 - : xorable2 > > {}; - -template > -struct bitwise1 - : xorable1 > > {}; - -template > -struct unit_steppable - : incrementable > {}; - -template > -struct shiftable2 - : left_shiftable2 > {}; - -template > -struct shiftable1 - : left_shiftable1 > {}; - -template > -struct ring_operators2 - : additive2 > > {}; - -template > -struct ring_operators1 - : additive1 > {}; - -template > -struct ordered_ring_operators2 - : ring_operators2 > {}; - -template > -struct ordered_ring_operators1 - : ring_operators1 > {}; - -template > -struct field_operators2 - : ring_operators2 > > {}; - -template > -struct field_operators1 - : ring_operators1 > {}; - -template > -struct ordered_field_operators2 - : field_operators2 > {}; - -template > -struct ordered_field_operators1 - : field_operators1 > {}; - -template > -struct euclidian_ring_operators2 - : ring_operators2 > > > > {}; - -template > -struct euclidian_ring_operators1 - : ring_operators1 > > {}; - -template > -struct ordered_euclidian_ring_operators2 - : totally_ordered2 > {}; - -template > -struct ordered_euclidian_ring_operators1 - : totally_ordered1 > {}; - -template > -struct euclidean_ring_operators2 - : ring_operators2 > > > > {}; - -template > -struct euclidean_ring_operators1 - : ring_operators1 > > {}; - -template > -struct ordered_euclidean_ring_operators2 - : totally_ordered2 > {}; - -template > -struct ordered_euclidean_ring_operators1 - : totally_ordered1 > {}; - -template > -struct input_iteratable - : equality_comparable1 > > {}; - -template > -struct output_iteratable - : incrementable {}; - -template > -struct forward_iteratable - : input_iteratable {}; - -template > -struct bidirectional_iteratable - : forward_iteratable > {}; - -// To avoid repeated derivation from equality_comparable, -// which is an indirect base class of bidirectional_iterable, -// random_access_iteratable must not be derived from totally_ordered1 -// but from less_than_comparable1 only. (Helmut Zeisel, 02-Dec-2001) -template > -struct random_access_iteratable - : bidirectional_iteratable > > > {}; - - -// -// Here's where we put it all together, defining the xxxx forms of the templates. -// We also define specializations of is_chained_base<> for -// the xxxx, xxxx1, and xxxx2 templates. -// - -namespace operators_detail -{ - -// A type parameter is used instead of a plain bool because Borland's compiler -// didn't cope well with the more obvious non-type template parameter. -struct true_t {}; -struct false_t {}; - -} // namespace operators_detail - -// is_chained_base<> - a traits class used to distinguish whether an operator -// template argument is being used for base class chaining, or is specifying a -// 2nd argument type. - -// Unspecialized version assumes that most types are not being used for base -// class chaining. We specialize for the operator templates defined in this -// library. -template struct is_chained_base { - typedef operators_detail::false_t value; -}; - -// Provide a specialization of 'is_chained_base<>' -// for a 4-type-argument operator template. -# define BOOST_OPERATOR_TEMPLATE4(template_name4) \ - template \ - struct is_chained_base< template_name4 > { \ - typedef operators_detail::true_t value; \ - }; - -// Provide a specialization of 'is_chained_base<>' -// for a 3-type-argument operator template. -# define BOOST_OPERATOR_TEMPLATE3(template_name3) \ - template \ - struct is_chained_base< template_name3 > { \ - typedef operators_detail::true_t value; \ - }; - -// Provide a specialization of 'is_chained_base<>' -// for a 2-type-argument operator template. -# define BOOST_OPERATOR_TEMPLATE2(template_name2) \ - template \ - struct is_chained_base< template_name2 > { \ - typedef operators_detail::true_t value; \ - }; - -// Provide a specialization of 'is_chained_base<>' -// for a 1-type-argument operator template. -# define BOOST_OPERATOR_TEMPLATE1(template_name1) \ - template \ - struct is_chained_base< template_name1 > { \ - typedef operators_detail::true_t value; \ - }; - -// BOOST_OPERATOR_TEMPLATE(template_name) defines template_name<> such that it -// can be used for specifying both 1-argument and 2-argument forms. Requires the -// existence of two previously defined class templates named '1' -// and '2' which must implement the corresponding 1- and 2- -// argument forms. -// -// The template type parameter O == is_chained_base::value is used to -// distinguish whether the 2nd argument to is being used for -// base class chaining from another boost operator template or is describing a -// 2nd operand type. O == true_t only when U is actually an another operator -// template from the library. Partial specialization is used to select an -// implementation in terms of either '1' or '2'. -// - -# define BOOST_OPERATOR_TEMPLATE(template_name) \ -template \ - ,class O = typename is_chained_base::value \ - > \ -struct template_name; \ - \ -template \ -struct template_name \ - : template_name##2 {}; \ - \ -template \ -struct template_name, operators_detail::true_t> \ - : template_name##1 {}; \ - \ -template \ -struct template_name \ - : template_name##1 {}; \ - \ -template \ -struct is_chained_base< template_name > { \ - typedef operators_detail::true_t value; \ -}; \ - \ -BOOST_OPERATOR_TEMPLATE2(template_name##2) \ -BOOST_OPERATOR_TEMPLATE1(template_name##1) - -BOOST_OPERATOR_TEMPLATE(less_than_comparable) -BOOST_OPERATOR_TEMPLATE(equality_comparable) -BOOST_OPERATOR_TEMPLATE(multipliable) -BOOST_OPERATOR_TEMPLATE(addable) -BOOST_OPERATOR_TEMPLATE(subtractable) -BOOST_OPERATOR_TEMPLATE2(subtractable2_left) -BOOST_OPERATOR_TEMPLATE(dividable) -BOOST_OPERATOR_TEMPLATE2(dividable2_left) -BOOST_OPERATOR_TEMPLATE(modable) -BOOST_OPERATOR_TEMPLATE2(modable2_left) -BOOST_OPERATOR_TEMPLATE(xorable) -BOOST_OPERATOR_TEMPLATE(andable) -BOOST_OPERATOR_TEMPLATE(orable) - -BOOST_OPERATOR_TEMPLATE1(incrementable) -BOOST_OPERATOR_TEMPLATE1(decrementable) - -BOOST_OPERATOR_TEMPLATE2(dereferenceable) -BOOST_OPERATOR_TEMPLATE3(indexable) - -BOOST_OPERATOR_TEMPLATE(left_shiftable) -BOOST_OPERATOR_TEMPLATE(right_shiftable) -BOOST_OPERATOR_TEMPLATE(equivalent) -BOOST_OPERATOR_TEMPLATE(partially_ordered) - -BOOST_OPERATOR_TEMPLATE(totally_ordered) -BOOST_OPERATOR_TEMPLATE(additive) -BOOST_OPERATOR_TEMPLATE(multiplicative) -BOOST_OPERATOR_TEMPLATE(integer_multiplicative) -BOOST_OPERATOR_TEMPLATE(arithmetic) -BOOST_OPERATOR_TEMPLATE(integer_arithmetic) -BOOST_OPERATOR_TEMPLATE(bitwise) -BOOST_OPERATOR_TEMPLATE1(unit_steppable) -BOOST_OPERATOR_TEMPLATE(shiftable) -BOOST_OPERATOR_TEMPLATE(ring_operators) -BOOST_OPERATOR_TEMPLATE(ordered_ring_operators) -BOOST_OPERATOR_TEMPLATE(field_operators) -BOOST_OPERATOR_TEMPLATE(ordered_field_operators) -BOOST_OPERATOR_TEMPLATE(euclidian_ring_operators) -BOOST_OPERATOR_TEMPLATE(ordered_euclidian_ring_operators) -BOOST_OPERATOR_TEMPLATE(euclidean_ring_operators) -BOOST_OPERATOR_TEMPLATE(ordered_euclidean_ring_operators) -BOOST_OPERATOR_TEMPLATE2(input_iteratable) -BOOST_OPERATOR_TEMPLATE1(output_iteratable) -BOOST_OPERATOR_TEMPLATE2(forward_iteratable) -BOOST_OPERATOR_TEMPLATE2(bidirectional_iteratable) -BOOST_OPERATOR_TEMPLATE4(random_access_iteratable) - -#undef BOOST_OPERATOR_TEMPLATE -#undef BOOST_OPERATOR_TEMPLATE4 -#undef BOOST_OPERATOR_TEMPLATE3 -#undef BOOST_OPERATOR_TEMPLATE2 -#undef BOOST_OPERATOR_TEMPLATE1 - -template -struct operators2 - : totally_ordered2 > > {}; - -template -struct operators : operators2 {}; - -template struct operators - : totally_ordered > > > {}; - -// Iterator helper classes (contributed by Jeremy Siek) -------------------// -// (Input and output iterator helpers contributed by Daryle Walker) -------// -// (Changed to use combined operator classes by Daryle Walker) ------------// -template -struct input_iterator_helper - : input_iteratable > {}; - -template -struct output_iterator_helper - : output_iteratable > -{ - T& operator*() { return static_cast(*this); } - T& operator++() { return static_cast(*this); } -}; - -template -struct forward_iterator_helper - : forward_iteratable > {}; - -template -struct bidirectional_iterator_helper - : bidirectional_iteratable > {}; - -template -struct random_access_iterator_helper - : random_access_iteratable > -{ - friend D requires_difference_operator(const T& x, const T& y) { - return x - y; - } -}; // random_access_iterator_helper - -} // namespace operators_impl -using namespace operators_impl; - -} // namespace boost - -#if defined(__sgi) && !defined(__GNUC__) -#pragma reset woff 1234 -#endif - -#endif // BOOST_NO_OPERATORS_IN_NAMESPACE -#endif // BOOST_OPERATORS_HPP diff --git a/lib/3rdParty/boost/boost/predef.h b/lib/3rdParty/boost/boost/predef.h deleted file mode 100644 index 496533787..000000000 --- a/lib/3rdParty/boost/boost/predef.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#if !defined(BOOST_PREDEF_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_H -#define BOOST_PREDEF_H -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/architecture.h b/lib/3rdParty/boost/boost/predef/architecture.h deleted file mode 100644 index c433d437b..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#if !defined(BOOST_PREDEF_ARCHITECTURE_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_ARCHITECTURE_H -#define BOOST_PREDEF_ARCHITECTURE_H -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -/*#include */ - -#endif diff --git a/lib/3rdParty/boost/boost/predef/architecture/alpha.h b/lib/3rdParty/boost/boost/predef/architecture/alpha.h deleted file mode 100644 index 5bcade18b..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/alpha.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_ALPHA_H -#define BOOST_PREDEF_ARCHITECTURE_ALPHA_H - -#include -#include - -/*` -[heading `BOOST_ARCH_ALPHA`] - -[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - [[`__alpha__`] [__predef_detection__]] - [[`__alpha`] [__predef_detection__]] - [[`_M_ALPHA`] [__predef_detection__]] - - [[`__alpha_ev4__`] [4.0.0]] - [[`__alpha_ev5__`] [5.0.0]] - [[`__alpha_ev6__`] [6.0.0]] - ] - */ - -#define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__alpha__) || defined(__alpha) || \ - defined(_M_ALPHA) -# undef BOOST_ARCH_ALPHA -# if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev4__) -# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev5__) -# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(5,0,0) -# endif -# if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev6__) -# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(6,0,0) -# endif -# if !defined(BOOST_ARCH_ALPHA) -# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_ALPHA -# define BOOST_ARCH_ALPHA_AVAILABLE -#endif - -#define BOOST_ARCH_ALPHA_NAME "DEC Alpha" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ALPHA,BOOST_ARCH_ALPHA_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/arm.h b/lib/3rdParty/boost/boost/predef/architecture/arm.h deleted file mode 100644 index b200c6277..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/arm.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -Copyright Rene Rivera 2008-2015 -Copyright Franz Detro 2014 -Copyright (c) Microsoft Corporation 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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_ARM_H -#define BOOST_PREDEF_ARCHITECTURE_ARM_H - -#include -#include - -/*` -[heading `BOOST_ARCH_ARM`] - -[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__arm__`] [__predef_detection__]] - [[`__arm64`] [__predef_detection__]] - [[`__thumb__`] [__predef_detection__]] - [[`__TARGET_ARCH_ARM`] [__predef_detection__]] - [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] - [[`_M_ARM`] [__predef_detection__]] - - [[`__arm64`] [8.0.0]] - [[`__TARGET_ARCH_ARM`] [V.0.0]] - [[`__TARGET_ARCH_THUMB`] [V.0.0]] - [[`_M_ARM`] [V.0.0]] - ] - */ - -#define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ - defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ - defined(_M_ARM) -# undef BOOST_ARCH_ARM -# if !defined(BOOST_ARCH_ARM) && defined(__arm64) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0) -# endif -# if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) -# endif -# if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_THUMB) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0) -# endif -# if !defined(BOOST_ARCH_ARM) && defined(_M_ARM) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(_M_ARM,0,0) -# endif -# if !defined(BOOST_ARCH_ARM) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_ARM -# define BOOST_ARCH_ARM_AVAILABLE -#endif - -#define BOOST_ARCH_ARM_NAME "ARM" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ARM,BOOST_ARCH_ARM_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/blackfin.h b/lib/3rdParty/boost/boost/predef/architecture/blackfin.h deleted file mode 100644 index 84c58a25e..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/blackfin.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Rene Rivera 2013-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_BLACKFIN_H -#define BOOST_PREDEF_ARCHITECTURE_BLACKFIN_H - -#include -#include - -/*` -[heading `BOOST_ARCH_BLACKFIN`] - -Blackfin Processors from Analog Devices. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__bfin__`] [__predef_detection__]] - [[`__BFIN__`] [__predef_detection__]] - [[`bfin`] [__predef_detection__]] - [[`BFIN`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__bfin__) || defined(__BFIN__) || \ - defined(bfin) || defined(BFIN) -# undef BOOST_ARCH_BLACKFIN -# define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_BLACKFIN -# define BOOST_ARCH_BLACKFIN_AVAILABLE -#endif - -#define BOOST_ARCH_BLACKFIN_NAME "Blackfin" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_BLACKFIN,BOOST_ARCH_BLACKFIN_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/convex.h b/lib/3rdParty/boost/boost/predef/architecture/convex.h deleted file mode 100644 index ac783a9cc..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/convex.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_CONVEX_H -#define BOOST_PREDEF_ARCHITECTURE_CONVEX_H - -#include -#include - -/*` -[heading `BOOST_ARCH_CONVEX`] - -[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__convex__`] [__predef_detection__]] - - [[`__convex_c1__`] [1.0.0]] - [[`__convex_c2__`] [2.0.0]] - [[`__convex_c32__`] [3.2.0]] - [[`__convex_c34__`] [3.4.0]] - [[`__convex_c38__`] [3.8.0]] - ] - */ - -#define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__convex__) -# undef BOOST_ARCH_CONVEX -# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c1__) -# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(1,0,0) -# endif -# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c2__) -# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(2,0,0) -# endif -# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c32__) -# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,2,0) -# endif -# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c34__) -# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,4,0) -# endif -# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c38__) -# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,8,0) -# endif -# if !defined(BOOST_ARCH_CONVEX) -# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_CONVEX -# define BOOST_ARCH_CONVEX_AVAILABLE -#endif - -#define BOOST_ARCH_CONVEX_NAME "Convex Computer" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_CONVEX,BOOST_ARCH_CONVEX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/ia64.h b/lib/3rdParty/boost/boost/predef/architecture/ia64.h deleted file mode 100644 index 9b1972bd3..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/ia64.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_IA64_H -#define BOOST_PREDEF_ARCHITECTURE_IA64_H - -#include -#include - -/*` -[heading `BOOST_ARCH_IA64`] - -[@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__ia64__`] [__predef_detection__]] - [[`_IA64`] [__predef_detection__]] - [[`__IA64__`] [__predef_detection__]] - [[`__ia64`] [__predef_detection__]] - [[`_M_IA64`] [__predef_detection__]] - [[`__itanium__`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__ia64__) || defined(_IA64) || \ - defined(__IA64__) || defined(__ia64) || \ - defined(_M_IA64) || defined(__itanium__) -# undef BOOST_ARCH_IA64 -# define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_IA64 -# define BOOST_ARCH_IA64_AVAILABLE -#endif - -#define BOOST_ARCH_IA64_NAME "Intel Itanium 64" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_IA64,BOOST_ARCH_IA64_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/m68k.h b/lib/3rdParty/boost/boost/predef/architecture/m68k.h deleted file mode 100644 index 63ed5f847..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/m68k.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_M68K_H -#define BOOST_PREDEF_ARCHITECTURE_M68K_H - -#include -#include - -/*` -[heading `BOOST_ARCH_M68K`] - -[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__m68k__`] [__predef_detection__]] - [[`M68000`] [__predef_detection__]] - - [[`__mc68060__`] [6.0.0]] - [[`mc68060`] [6.0.0]] - [[`__mc68060`] [6.0.0]] - [[`__mc68040__`] [4.0.0]] - [[`mc68040`] [4.0.0]] - [[`__mc68040`] [4.0.0]] - [[`__mc68030__`] [3.0.0]] - [[`mc68030`] [3.0.0]] - [[`__mc68030`] [3.0.0]] - [[`__mc68020__`] [2.0.0]] - [[`mc68020`] [2.0.0]] - [[`__mc68020`] [2.0.0]] - [[`__mc68010__`] [1.0.0]] - [[`mc68010`] [1.0.0]] - [[`__mc68010`] [1.0.0]] - [[`__mc68000__`] [0.0.1]] - [[`mc68000`] [0.0.1]] - [[`__mc68000`] [0.0.1]] - ] - */ - -#define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__m68k__) || defined(M68000) -# undef BOOST_ARCH_M68K -# if !defined(BOOST_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060)) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(6,0,0) -# endif -# if !defined(BOOST_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040)) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030)) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(3,0,0) -# endif -# if !defined(BOOST_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020)) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(2,0,0) -# endif -# if !defined(BOOST_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010)) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(1,0,0) -# endif -# if !defined(BOOST_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000)) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_AVAILABLE -# endif -# if !defined(BOOST_ARCH_M68K) -# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_M68K -# define BOOST_ARCH_M68K_AVAILABLE -#endif - -#define BOOST_ARCH_M68K_NAME "Motorola 68k" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_M68K,BOOST_ARCH_M68K_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/mips.h b/lib/3rdParty/boost/boost/predef/architecture/mips.h deleted file mode 100644 index 0189d7dbd..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/mips.h +++ /dev/null @@ -1,73 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_MIPS_H -#define BOOST_PREDEF_ARCHITECTURE_MIPS_H - -#include -#include - -/*` -[heading `BOOST_ARCH_MIPS`] - -[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__mips__`] [__predef_detection__]] - [[`__mips`] [__predef_detection__]] - [[`__MIPS__`] [__predef_detection__]] - - [[`__mips`] [V.0.0]] - [[`_MIPS_ISA_MIPS1`] [1.0.0]] - [[`_R3000`] [1.0.0]] - [[`_MIPS_ISA_MIPS2`] [2.0.0]] - [[`__MIPS_ISA2__`] [2.0.0]] - [[`_R4000`] [2.0.0]] - [[`_MIPS_ISA_MIPS3`] [3.0.0]] - [[`__MIPS_ISA3__`] [3.0.0]] - [[`_MIPS_ISA_MIPS4`] [4.0.0]] - [[`__MIPS_ISA4__`] [4.0.0]] - ] - */ - -#define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__mips__) || defined(__mips) || \ - defined(__MIPS__) -# undef BOOST_ARCH_MIPS -# if !defined(BOOST_ARCH_MIPS) && (defined(__mips)) -# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(__mips,0,0) -# endif -# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000)) -# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(1,0,0) -# endif -# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000)) -# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(2,0,0) -# endif -# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__)) -# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(3,0,0) -# endif -# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__)) -# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_ARCH_MIPS) -# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_MIPS -# define BOOST_ARCH_MIPS_AVAILABLE -#endif - -#define BOOST_ARCH_MIPS_NAME "MIPS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_MIPS,BOOST_ARCH_MIPS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/parisc.h b/lib/3rdParty/boost/boost/predef/architecture/parisc.h deleted file mode 100644 index 7c7625f91..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/parisc.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_PARISC_H -#define BOOST_PREDEF_ARCHITECTURE_PARISC_H - -#include -#include - -/*` -[heading `BOOST_ARCH_PARISK`] - -[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__hppa__`] [__predef_detection__]] - [[`__hppa`] [__predef_detection__]] - [[`__HPPA__`] [__predef_detection__]] - - [[`_PA_RISC1_0`] [1.0.0]] - [[`_PA_RISC1_1`] [1.1.0]] - [[`__HPPA11__`] [1.1.0]] - [[`__PA7100__`] [1.1.0]] - [[`_PA_RISC2_0`] [2.0.0]] - [[`__RISC2_0__`] [2.0.0]] - [[`__HPPA20__`] [2.0.0]] - [[`__PA8000__`] [2.0.0]] - ] - */ - -#define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__) -# undef BOOST_ARCH_PARISC -# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_0)) -# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,0,0) -# endif -# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)) -# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,1,0) -# endif -# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)) -# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(2,0,0) -# endif -# if !defined(BOOST_ARCH_PARISC) -# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_PARISC -# define BOOST_ARCH_PARISC_AVAILABLE -#endif - -#define BOOST_ARCH_PARISC_NAME "HP/PA RISC" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PARISC,BOOST_ARCH_PARISC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/ppc.h b/lib/3rdParty/boost/boost/predef/architecture/ppc.h deleted file mode 100644 index e8c57c91f..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/ppc.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_PPC_H -#define BOOST_PREDEF_ARCHITECTURE_PPC_H - -#include -#include - -/*` -[heading `BOOST_ARCH_PPC`] - -[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__powerpc`] [__predef_detection__]] - [[`__powerpc__`] [__predef_detection__]] - [[`__POWERPC__`] [__predef_detection__]] - [[`__ppc__`] [__predef_detection__]] - [[`_M_PPC`] [__predef_detection__]] - [[`_ARCH_PPC`] [__predef_detection__]] - [[`__PPCGECKO__`] [__predef_detection__]] - [[`__PPCBROADWAY__`] [__predef_detection__]] - [[`_XENON`] [__predef_detection__]] - - [[`__ppc601__`] [6.1.0]] - [[`_ARCH_601`] [6.1.0]] - [[`__ppc603__`] [6.3.0]] - [[`_ARCH_603`] [6.3.0]] - [[`__ppc604__`] [6.4.0]] - [[`__ppc604__`] [6.4.0]] - ] - */ - -#define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__powerpc) || defined(__powerpc__) || \ - defined(__POWERPC__) || defined(__ppc__) || \ - defined(_M_PPC) || defined(_ARCH_PPC) || \ - defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \ - defined(_XENON) -# undef BOOST_ARCH_PPC -# if !defined (BOOST_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601)) -# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,1,0) -# endif -# if !defined (BOOST_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603)) -# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,3,0) -# endif -# if !defined (BOOST_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__)) -# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,4,0) -# endif -# if !defined (BOOST_ARCH_PPC) -# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_PPC -# define BOOST_ARCH_PPC_AVAILABLE -#endif - -#define BOOST_ARCH_PPC_NAME "PowerPC" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC,BOOST_ARCH_PPC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/pyramid.h b/lib/3rdParty/boost/boost/predef/architecture/pyramid.h deleted file mode 100644 index 4f1325380..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/pyramid.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_PYRAMID_H -#define BOOST_PREDEF_ARCHITECTURE_PYRAMID_H - -#include -#include - -/*` -[heading `BOOST_ARCH_PYRAMID`] - -Pyramid 9810 architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`pyr`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(pyr) -# undef BOOST_ARCH_PYRAMID -# define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_PYRAMID -# define BOOST_ARCH_PYRAMID_AVAILABLE -#endif - -#define BOOST_ARCH_PYRAMID_NAME "Pyramid 9810" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PYRAMID,BOOST_ARCH_PYRAMID_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/rs6k.h b/lib/3rdParty/boost/boost/predef/architecture/rs6k.h deleted file mode 100644 index 8a6e9b6b5..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/rs6k.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_RS6K_H -#define BOOST_PREDEF_ARCHITECTURE_RS6K_H - -#include -#include - -/*` -[heading `BOOST_ARCH_RS6000`] - -[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__THW_RS6000`] [__predef_detection__]] - [[`_IBMR2`] [__predef_detection__]] - [[`_POWER`] [__predef_detection__]] - [[`_ARCH_PWR`] [__predef_detection__]] - [[`_ARCH_PWR2`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__THW_RS6000) || defined(_IBMR2) || \ - defined(_POWER) || defined(_ARCH_PWR) || \ - defined(_ARCH_PWR2) -# undef BOOST_ARCH_RS6000 -# define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_RS6000 -# define BOOST_ARCH_RS6000_AVAILABLE -#endif - -#define BOOST_ARCH_RS6000_NAME "RS/6000" - -#define BOOST_ARCH_PWR BOOST_ARCH_RS6000 - -#if BOOST_ARCH_PWR -# define BOOST_ARCH_PWR_AVAILABLE -#endif - -#define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RS6000,BOOST_ARCH_RS6000_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/sparc.h b/lib/3rdParty/boost/boost/predef/architecture/sparc.h deleted file mode 100644 index a89a5100b..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/sparc.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_SPARC_H -#define BOOST_PREDEF_ARCHITECTURE_SPARC_H - -#include -#include - -/*` -[heading `BOOST_ARCH_SPARC`] - -[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__sparc__`] [__predef_detection__]] - [[`__sparc`] [__predef_detection__]] - - [[`__sparcv9`] [9.0.0]] - [[`__sparcv8`] [8.0.0]] - ] - */ - -#define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__sparc__) || defined(__sparc) -# undef BOOST_ARCH_SPARC -# if !defined(BOOST_ARCH_SPARC) && defined(__sparcv9) -# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0) -# endif -# if !defined(BOOST_ARCH_SPARC) && defined(__sparcv8) -# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0) -# endif -# if !defined(BOOST_ARCH_SPARC) -# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_SPARC -# define BOOST_ARCH_SPARC_AVAILABLE -#endif - -#define BOOST_ARCH_SPARC_NAME "SPARC" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SPARC,BOOST_ARCH_SPARC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/superh.h b/lib/3rdParty/boost/boost/predef/architecture/superh.h deleted file mode 100644 index da0529e5e..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/superh.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_SUPERH_H -#define BOOST_PREDEF_ARCHITECTURE_SUPERH_H - -#include -#include - -/*` -[heading `BOOST_ARCH_SH`] - -[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture: -If available versions \[1-5\] are specifically detected. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__sh__`] [__predef_detection__]] - - [[`__SH5__`] [5.0.0]] - [[`__SH4__`] [4.0.0]] - [[`__sh3__`] [3.0.0]] - [[`__SH3__`] [3.0.0]] - [[`__sh2__`] [2.0.0]] - [[`__sh1__`] [1.0.0]] - ] - */ - -#define BOOST_ARCH_SH BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__sh__) -# undef BOOST_ARCH_SH -# if !defined(BOOST_ARCH_SH) && (defined(__SH5__)) -# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(5,0,0) -# endif -# if !defined(BOOST_ARCH_SH) && (defined(__SH4__)) -# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_ARCH_SH) && (defined(__sh3__) || defined(__SH3__)) -# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(3,0,0) -# endif -# if !defined(BOOST_ARCH_SH) && (defined(__sh2__)) -# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(2,0,0) -# endif -# if !defined(BOOST_ARCH_SH) && (defined(__sh1__)) -# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(1,0,0) -# endif -# if !defined(BOOST_ARCH_SH) -# define BOOST_ARCH_SH BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_SH -# define BOOST_ARCH_SH_AVAILABLE -#endif - -#define BOOST_ARCH_SH_NAME "SuperH" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SH,BOOST_ARCH_SH_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/sys370.h b/lib/3rdParty/boost/boost/predef/architecture/sys370.h deleted file mode 100644 index cfd85dc80..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/sys370.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_SYS370_H -#define BOOST_PREDEF_ARCHITECTURE_SYS370_H - -#include -#include - -/*` -[heading `BOOST_ARCH_SYS370`] - -[@http://en.wikipedia.org/wiki/System/370 System/370] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__370__`] [__predef_detection__]] - [[`__THW_370__`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__370__) || defined(__THW_370__) -# undef BOOST_ARCH_SYS370 -# define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_SYS370 -# define BOOST_ARCH_SYS370_AVAILABLE -#endif - -#define BOOST_ARCH_SYS370_NAME "System/370" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SYS370,BOOST_ARCH_SYS370_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/sys390.h b/lib/3rdParty/boost/boost/predef/architecture/sys390.h deleted file mode 100644 index 47aff6acd..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/sys390.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_SYS390_H -#define BOOST_PREDEF_ARCHITECTURE_SYS390_H - -#include -#include - -/*` -[heading `BOOST_ARCH_SYS390`] - -[@http://en.wikipedia.org/wiki/System/390 System/390] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__s390__`] [__predef_detection__]] - [[`__s390x__`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__s390__) || defined(__s390x__) -# undef BOOST_ARCH_SYS390 -# define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_SYS390 -# define BOOST_ARCH_SYS390_AVAILABLE -#endif - -#define BOOST_ARCH_SYS390_NAME "System/390" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SYS390,BOOST_ARCH_SYS390_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/x86.h b/lib/3rdParty/boost/boost/predef/architecture/x86.h deleted file mode 100644 index 0ef3ef45e..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/x86.h +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#include -#include - -#ifndef BOOST_PREDEF_ARCHITECTURE_X86_H -#define BOOST_PREDEF_ARCHITECTURE_X86_H - -/*` -[heading `BOOST_ARCH_X86`] - -[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is -a category to indicate that either `BOOST_ARCH_X86_32` or -`BOOST_ARCH_X86_64` is detected. - */ - -#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if BOOST_ARCH_X86_32 || BOOST_ARCH_X86_64 -# undef BOOST_ARCH_X86 -# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_X86 -# define BOOST_ARCH_X86_AVAILABLE -#endif - -#define BOOST_ARCH_X86_NAME "Intel x86" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86,BOOST_ARCH_X86_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/x86/32.h b/lib/3rdParty/boost/boost/predef/architecture/x86/32.h deleted file mode 100644 index 17fbff554..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/x86/32.h +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_X86_32_H -#define BOOST_PREDEF_ARCHITECTURE_X86_32_H - -#include -#include - -/*` -[heading `BOOST_ARCH_X86_32`] - -[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture: -If available versions \[3-6\] are specifically detected. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`i386`] [__predef_detection__]] - [[`__i386__`] [__predef_detection__]] - [[`__i486__`] [__predef_detection__]] - [[`__i586__`] [__predef_detection__]] - [[`__i686__`] [__predef_detection__]] - [[`__i386`] [__predef_detection__]] - [[`_M_IX86`] [__predef_detection__]] - [[`_X86_`] [__predef_detection__]] - [[`__THW_INTEL__`] [__predef_detection__]] - [[`__I86__`] [__predef_detection__]] - [[`__INTEL__`] [__predef_detection__]] - - [[`__I86__`] [V.0.0]] - [[`_M_IX86`] [V.0.0]] - [[`__i686__`] [6.0.0]] - [[`__i586__`] [5.0.0]] - [[`__i486__`] [4.0.0]] - [[`__i386__`] [3.0.0]] - ] - */ - -#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(i386) || defined(__i386__) || \ - defined(__i486__) || defined(__i586__) || \ - defined(__i686__) || defined(__i386) || \ - defined(_M_IX86) || defined(_X86_) || \ - defined(__THW_INTEL__) || defined(__I86__) || \ - defined(__INTEL__) -# undef BOOST_ARCH_X86_32 -# if !defined(BOOST_ARCH_X86_32) && defined(__I86__) -# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0) -# endif -# if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86) -# define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86) -# endif -# if !defined(BOOST_ARCH_X86_32) && defined(__i686__) -# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0) -# endif -# if !defined(BOOST_ARCH_X86_32) && defined(__i586__) -# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0) -# endif -# if !defined(BOOST_ARCH_X86_32) && defined(__i486__) -# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_ARCH_X86_32) && defined(__i386__) -# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0) -# endif -# if !defined(BOOST_ARCH_X86_32) -# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_ARCH_X86_32 -# define BOOST_ARCH_X86_32_AVAILABLE -#endif - -#define BOOST_ARCH_X86_32_NAME "Intel x86-32" - -#include - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/x86/64.h b/lib/3rdParty/boost/boost/predef/architecture/x86/64.h deleted file mode 100644 index f761c9259..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/x86/64.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_X86_64_H -#define BOOST_PREDEF_ARCHITECTURE_X86_64_H - -#include -#include - -/*` -[heading `BOOST_ARCH_X86_64`] - -[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__x86_64`] [__predef_detection__]] - [[`__x86_64__`] [__predef_detection__]] - [[`__amd64__`] [__predef_detection__]] - [[`__amd64`] [__predef_detection__]] - [[`_M_X64`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__x86_64) || defined(__x86_64__) || \ - defined(__amd64__) || defined(__amd64) || \ - defined(_M_X64) -# undef BOOST_ARCH_X86_64 -# define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_X86_64 -# define BOOST_ARCH_X86_64_AVAILABLE -#endif - -#define BOOST_ARCH_X86_64_NAME "Intel x86-64" - -#include - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_64,BOOST_ARCH_X86_64_NAME) diff --git a/lib/3rdParty/boost/boost/predef/architecture/z.h b/lib/3rdParty/boost/boost/predef/architecture/z.h deleted file mode 100644 index 3d218aa26..000000000 --- a/lib/3rdParty/boost/boost/predef/architecture/z.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_ARCHITECTURE_Z_H -#define BOOST_PREDEF_ARCHITECTURE_Z_H - -#include -#include - -/*` -[heading `BOOST_ARCH_Z`] - -[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__SYSC_ZARCH__`] [__predef_detection__]] - ] - */ - -#define BOOST_ARCH_Z BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__SYSC_ZARCH__) -# undef BOOST_ARCH_Z -# define BOOST_ARCH_Z BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_ARCH_Z -# define BOOST_ARCH_Z_AVAILABLE -#endif - -#define BOOST_ARCH_Z_NAME "z/Architecture" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_Z,BOOST_ARCH_Z_NAME) diff --git a/lib/3rdParty/boost/boost/predef/compiler.h b/lib/3rdParty/boost/boost/predef/compiler.h deleted file mode 100644 index 61a4c527a..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#if !defined(BOOST_PREDEF_COMPILER_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_COMPILER_H -#define BOOST_PREDEF_COMPILER_H -#endif - -#include -#include -#include -#include -#include -#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/lib/3rdParty/boost/boost/predef/compiler/borland.h b/lib/3rdParty/boost/boost/predef/compiler/borland.h deleted file mode 100644 index 3677cca7f..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/borland.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_BORLAND_H -#define BOOST_PREDEF_COMPILER_BORLAND_H - -#include -#include - -/*` -[heading `BOOST_COMP_BORLAND`] - -[@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__BORLANDC__`] [__predef_detection__]] - [[`__CODEGEARC__`] [__predef_detection__]] - - [[`__BORLANDC__`] [V.R.P]] - [[`__CODEGEARC__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_BORLAND BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__BORLANDC__) || defined(__CODEGEARC__) -# if !defined(BOOST_COMP_BORLAND_DETECTION) && (defined(__CODEGEARC__)) -# define BOOST_COMP_BORLAND_DETECTION BOOST_PREDEF_MAKE_0X_VVRP(__CODEGEARC__) -# endif -# if !defined(BOOST_COMP_BORLAND_DETECTION) -# define BOOST_COMP_BORLAND_DETECTION BOOST_PREDEF_MAKE_0X_VVRP(__BORLANDC__) -# endif -#endif - -#ifdef BOOST_COMP_BORLAND_DETECTION -# define BOOST_COMP_BORLAND_AVAILABLE -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_BORLAND_EMULATED BOOST_COMP_BORLAND_DETECTION -# else -# undef BOOST_COMP_BORLAND -# define BOOST_COMP_BORLAND BOOST_COMP_BORLAND_DETECTION -# endif -# include -#endif - -#define BOOST_COMP_BORLAND_NAME "Borland C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_BORLAND,BOOST_COMP_BORLAND_NAME) - -#ifdef BOOST_COMP_BORLAND_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_BORLAND_EMULATED,BOOST_COMP_BORLAND_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/clang.h b/lib/3rdParty/boost/boost/predef/compiler/clang.h deleted file mode 100644 index 56678fe6a..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/clang.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_CLANG_H -#define BOOST_PREDEF_COMPILER_CLANG_H - -#include -#include - -/*` -[heading `BOOST_COMP_CLANG`] - -[@http://en.wikipedia.org/wiki/Clang Clang] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__clang__`] [__predef_detection__]] - - [[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_CLANG BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__clang__) -# define BOOST_COMP_CLANG_DETECTION BOOST_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__) -#endif - -#ifdef BOOST_COMP_CLANG_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_CLANG_EMULATED BOOST_COMP_CLANG_DETECTION -# else -# undef BOOST_COMP_CLANG -# define BOOST_COMP_CLANG BOOST_COMP_CLANG_DETECTION -# endif -# define BOOST_COMP_CLANG_AVAILABLE -# include -#endif - -#define BOOST_COMP_CLANG_NAME "Clang" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_CLANG,BOOST_COMP_CLANG_NAME) - -#ifdef BOOST_COMP_CLANG_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_CLANG_EMULATED,BOOST_COMP_CLANG_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/comeau.h b/lib/3rdParty/boost/boost/predef/compiler/comeau.h deleted file mode 100644 index 15a456489..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/comeau.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_COMEAU_H -#define BOOST_PREDEF_COMPILER_COMEAU_H - -#include -#include - -#define BOOST_COMP_COMO BOOST_VERSION_NUMBER_NOT_AVAILABLE - -/*` -[heading `BOOST_COMP_COMO`] - -[@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__COMO__`] [__predef_detection__]] - - [[`__COMO_VERSION__`] [V.R.P]] - ] - */ - -#if defined(__COMO__) -# if !defined(BOOST_COMP_COMO_DETECTION) && defined(__COMO_VERSION__) -# define BOOST_COMP_COMO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__COMO_VERSION__) -# endif -# if !defined(BOOST_COMP_COMO_DETECTION) -# define BOOST_COMP_COMO_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_COMO_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_COMO_EMULATED BOOST_COMP_COMO_DETECTION -# else -# undef BOOST_COMP_COMO -# define BOOST_COMP_COMO BOOST_COMP_COMO_DETECTION -# endif -# define BOOST_COMP_COMO_AVAILABLE -# include -#endif - -#define BOOST_COMP_COMO_NAME "Comeau C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_COMO,BOOST_COMP_COMO_NAME) - -#ifdef BOOST_COMP_COMO_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_COMO_EMULATED,BOOST_COMP_COMO_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/compaq.h b/lib/3rdParty/boost/boost/predef/compiler/compaq.h deleted file mode 100644 index 96a79e675..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/compaq.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_COMPAQ_H -#define BOOST_PREDEF_COMPILER_COMPAQ_H - -#include -#include - -/*` -[heading `BOOST_COMP_DEC`] - -[@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__DECCXX`] [__predef_detection__]] - [[`__DECC`] [__predef_detection__]] - - [[`__DECCXX_VER`] [V.R.P]] - [[`__DECC_VER`] [V.R.P]] - ] - */ - -#define BOOST_COMP_DEC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__DECC) || defined(__DECCXX) -# if !defined(BOOST_COMP_DEC_DETECTION) && defined(__DECCXX_VER) -# define BOOST_COMP_DEC_DETECTION BOOST_PREDEF_MAKE_10_VVRR0PP00(__DECCXX_VER) -# endif -# if !defined(BOOST_COMP_DEC_DETECTION) && defined(__DECC_VER) -# define BOOST_COMP_DEC_DETECTION BOOST_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER) -# endif -# if !defined(BOOST_COMP_DEC_DETECTION) -# define BOOST_COM_DEC_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_DEC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_DEC_EMULATED BOOST_COMP_DEC_DETECTION -# else -# undef BOOST_COMP_DEC -# define BOOST_COMP_DEC BOOST_COMP_DEC_DETECTION -# endif -# define BOOST_COMP_DEC_AVAILABLE -# include -#endif - -#define BOOST_COMP_DEC_NAME "Compaq C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DEC,BOOST_COMP_DEC_NAME) - -#ifdef BOOST_COMP_DEC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DEC_EMULATED,BOOST_COMP_DEC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/diab.h b/lib/3rdParty/boost/boost/predef/compiler/diab.h deleted file mode 100644 index f5a37de7d..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/diab.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_DIAB_H -#define BOOST_PREDEF_COMPILER_DIAB_H - -#include -#include - -/*` -[heading `BOOST_COMP_DIAB`] - -[@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__DCC__`] [__predef_detection__]] - - [[`__VERSION_NUMBER__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_DIAB BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__DCC__) -# define BOOST_COMP_DIAB_DETECTION BOOST_PREDEF_MAKE_10_VRPP(__VERSION_NUMBER__) -#endif - -#ifdef BOOST_COMP_DIAB_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_DIAB_EMULATED BOOST_COMP_DIAB_DETECTION -# else -# undef BOOST_COMP_DIAB -# define BOOST_COMP_DIAB BOOST_COMP_DIAB_DETECTION -# endif -# define BOOST_COMP_DIAB_AVAILABLE -# include -#endif - -#define BOOST_COMP_DIAB_NAME "Diab C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DIAB,BOOST_COMP_DIAB_NAME) - -#ifdef BOOST_COMP_DIAB_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DIAB_EMULATED,BOOST_COMP_DIAB_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/digitalmars.h b/lib/3rdParty/boost/boost/predef/compiler/digitalmars.h deleted file mode 100644 index 9bd58502e..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/digitalmars.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_DIGITALMARS_H -#define BOOST_PREDEF_COMPILER_DIGITALMARS_H - -#include -#include - -/*` -[heading `BOOST_COMP_DMC`] - -[@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__DMC__`] [__predef_detection__]] - - [[`__DMC__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_DMC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__DMC__) -# define BOOST_COMP_DMC_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__DMC__) -#endif - -#ifdef BOOST_COMP_DMC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_DMC_EMULATED BOOST_COMP_DMC_DETECTION -# else -# undef BOOST_COMP_DMC -# define BOOST_COMP_DMC BOOST_COMP_DMC_DETECTION -# endif -# define BOOST_COMP_DMC_AVAILABLE -# include -#endif - -#define BOOST_COMP_DMC_NAME "Digital Mars" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DMC,BOOST_COMP_DMC_NAME) - -#ifdef BOOST_COMP_DMC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DMC_EMULATED,BOOST_COMP_DMC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/dignus.h b/lib/3rdParty/boost/boost/predef/compiler/dignus.h deleted file mode 100644 index c65d3dc76..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/dignus.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_DIGNUS_H -#define BOOST_PREDEF_COMPILER_DIGNUS_H - -#include -#include - -/*` -[heading `BOOST_COMP_SYSC`] - -[@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__SYSC__`] [__predef_detection__]] - - [[`__SYSC_VER__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_SYSC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__SYSC__) -# define BOOST_COMP_SYSC_DETECTION BOOST_PREDEF_MAKE_10_VRRPP(__SYSC_VER__) -#endif - -#ifdef BOOST_COMP_SYSC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_SYSC_EMULATED BOOST_COMP_SYSC_DETECTION -# else -# undef BOOST_COMP_SYSC -# define BOOST_COMP_SYSC BOOST_COMP_SYSC_DETECTION -# endif -# define BOOST_COMP_SYSC_AVAILABLE -# include -#endif - -#define BOOST_COMP_SYSC_NAME "Dignus Systems/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SYSC,BOOST_COMP_SYSC_NAME) - -#ifdef BOOST_COMP_SYSC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SYSC_EMULATED,BOOST_COMP_SYSC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/edg.h b/lib/3rdParty/boost/boost/predef/compiler/edg.h deleted file mode 100644 index 2ffb9b0a6..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/edg.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_EDG_H -#define BOOST_PREDEF_COMPILER_EDG_H - -#include -#include - -/*` -[heading `BOOST_COMP_EDG`] - -[@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__EDG__`] [__predef_detection__]] - - [[`__EDG_VERSION__`] [V.R.0]] - ] - */ - -#define BOOST_COMP_EDG BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__EDG__) -# define BOOST_COMP_EDG_DETECTION BOOST_PREDEF_MAKE_10_VRR(__EDG_VERSION__) -#endif - -#ifdef BOOST_COMP_EDG_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_EDG_EMULATED BOOST_COMP_EDG_DETECTION -# else -# undef BOOST_COMP_EDG -# define BOOST_COMP_EDG BOOST_COMP_EDG_DETECTION -# endif -# define BOOST_COMP_EDG_AVAILABLE -# include -#endif - -#define BOOST_COMP_EDG_NAME "EDG C++ Frontend" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_EDG,BOOST_COMP_EDG_NAME) - -#ifdef BOOST_COMP_EDG_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_EDG_EMULATED,BOOST_COMP_EDG_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/ekopath.h b/lib/3rdParty/boost/boost/predef/compiler/ekopath.h deleted file mode 100644 index e5cde3675..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/ekopath.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_EKOPATH_H -#define BOOST_PREDEF_COMPILER_EKOPATH_H - -#include -#include - -/*` -[heading `BOOST_COMP_PATH`] - -[@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__PATHCC__`] [__predef_detection__]] - - [[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_PATH BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__PATHCC__) -# define BOOST_COMP_PATH_DETECTION \ - BOOST_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__) -#endif - -#ifdef BOOST_COMP_PATH_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_PATH_EMULATED BOOST_COMP_PATH_DETECTION -# else -# undef BOOST_COMP_PATH -# define BOOST_COMP_PATH BOOST_COMP_PATH_DETECTION -# endif -# define BOOST_COMP_PATH_AVAILABLE -# include -#endif - -#define BOOST_COMP_PATH_NAME "EKOpath" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PATH,BOOST_COMP_PATH_NAME) - -#ifdef BOOST_COMP_PATH_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PATH_EMULATED,BOOST_COMP_PATH_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/gcc.h b/lib/3rdParty/boost/boost/predef/compiler/gcc.h deleted file mode 100644 index c2d7fff17..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/gcc.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_GCC_H -#define BOOST_PREDEF_COMPILER_GCC_H - -/* Other compilers that emulate this one need to be detected first. */ - -#include - -#include -#include - -/*` -[heading `BOOST_COMP_GNUC`] - -[@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler. -Version number available as major, minor, and patch (if available). - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__GNUC__`] [__predef_detection__]] - - [[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]] - [[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]] - ] - */ - -#define BOOST_COMP_GNUC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__GNUC__) -# if !defined(BOOST_COMP_GNUC_DETECTION) && defined(__GNUC_PATCHLEVEL__) -# define BOOST_COMP_GNUC_DETECTION \ - BOOST_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) -# endif -# if !defined(BOOST_COMP_GNUC_DETECTION) -# define BOOST_COMP_GNUC_DETECTION \ - BOOST_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,0) -# endif -#endif - -#ifdef BOOST_COMP_GNUC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_GNUC_EMULATED BOOST_COMP_GNUC_DETECTION -# else -# undef BOOST_COMP_GNUC -# define BOOST_COMP_GNUC BOOST_COMP_GNUC_DETECTION -# endif -# define BOOST_COMP_GNUC_AVAILABLE -# include -#endif - -#define BOOST_COMP_GNUC_NAME "Gnu GCC C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GNUC,BOOST_COMP_GNUC_NAME) - -#ifdef BOOST_COMP_GNUC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GNUC_EMULATED,BOOST_COMP_GNUC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/gcc_xml.h b/lib/3rdParty/boost/boost/predef/compiler/gcc_xml.h deleted file mode 100644 index acae600c8..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/gcc_xml.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_GCC_XML_H -#define BOOST_PREDEF_COMPILER_GCC_XML_H - -#include -#include - -/*` -[heading `BOOST_COMP_GCCXML`] - -[@http://www.gccxml.org/ GCC XML] compiler. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__GCCXML__`] [__predef_detection__]] - ] - */ - -#define BOOST_COMP_GCCXML BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__GCCXML__) -# define BOOST_COMP_GCCXML_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#ifdef BOOST_COMP_GCCXML_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_GCCXML_EMULATED BOOST_COMP_GCCXML_DETECTION -# else -# undef BOOST_COMP_GCCXML -# define BOOST_COMP_GCCXML BOOST_COMP_GCCXML_DETECTION -# endif -# define BOOST_COMP_GCCXML_AVAILABLE -# include -#endif - -#define BOOST_COMP_GCCXML_NAME "GCC XML" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GCCXML,BOOST_COMP_GCCXML_NAME) - -#ifdef BOOST_COMP_GCCXML_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GCCXML_EMULATED,BOOST_COMP_GCCXML_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/greenhills.h b/lib/3rdParty/boost/boost/predef/compiler/greenhills.h deleted file mode 100644 index 23b8f017d..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/greenhills.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_GREENHILLS_H -#define BOOST_PREDEF_COMPILER_GREENHILLS_H - -#include -#include - -/*` -[heading `BOOST_COMP_GHS`] - -[@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__ghs`] [__predef_detection__]] - [[`__ghs__`] [__predef_detection__]] - - [[`__GHS_VERSION_NUMBER__`] [V.R.P]] - [[`__ghs`] [V.R.P]] - ] - */ - -#define BOOST_COMP_GHS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__ghs) || defined(__ghs__) -# if !defined(BOOST_COMP_GHS_DETECTION) && defined(__GHS_VERSION_NUMBER__) -# define BOOST_COMP_GHS_DETECTION BOOST_PREDEF_MAKE_10_VRP(__GHS_VERSION_NUMBER__) -# endif -# if !defined(BOOST_COMP_GHS_DETECTION) && defined(__ghs) -# define BOOST_COMP_GHS_DETECTION BOOST_PREDEF_MAKE_10_VRP(__ghs) -# endif -# if !defined(BOOST_COMP_GHS_DETECTION) -# define BOOST_COMP_GHS_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_GHS_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_GHS_EMULATED BOOST_COMP_GHS_DETECTION -# else -# undef BOOST_COMP_GHS -# define BOOST_COMP_GHS BOOST_COMP_GHS_DETECTION -# endif -# define BOOST_COMP_GHS_AVAILABLE -# include -#endif - -#define BOOST_COMP_GHS_NAME "Green Hills C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GHS,BOOST_COMP_GHS_NAME) - -#ifdef BOOST_COMP_GHS_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GHS_EMULATED,BOOST_COMP_GHS_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/hp_acc.h b/lib/3rdParty/boost/boost/predef/compiler/hp_acc.h deleted file mode 100644 index 7b3ffe906..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/hp_acc.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_HP_ACC_H -#define BOOST_PREDEF_COMPILER_HP_ACC_H - -#include -#include - -/*` -[heading `BOOST_COMP_HPACC`] - -HP aC++ compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__HP_aCC`] [__predef_detection__]] - - [[`__HP_aCC`] [V.R.P]] - ] - */ - -#define BOOST_COMP_HPACC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__HP_aCC) -# if !defined(BOOST_COMP_HPACC_DETECTION) && (__HP_aCC > 1) -# define BOOST_COMP_HPACC_DETECTION BOOST_PREDEF_MAKE_10_VVRRPP(__HP_aCC) -# endif -# if !defined(BOOST_COMP_HPACC_DETECTION) -# define BOOST_COMP_HPACC_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_HPACC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_HPACC_EMULATED BOOST_COMP_HPACC_DETECTION -# else -# undef BOOST_COMP_HPACC -# define BOOST_COMP_HPACC BOOST_COMP_HPACC_DETECTION -# endif -# define BOOST_COMP_HPACC_AVAILABLE -# include -#endif - -#define BOOST_COMP_HPACC_NAME "HP aC++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_HPACC,BOOST_COMP_HPACC_NAME) - -#ifdef BOOST_COMP_HPACC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_HPACC_EMULATED,BOOST_COMP_HPACC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/iar.h b/lib/3rdParty/boost/boost/predef/compiler/iar.h deleted file mode 100644 index 237f492e2..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/iar.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_IAR_H -#define BOOST_PREDEF_COMPILER_IAR_H - -#include -#include - -/*` -[heading `BOOST_COMP_IAR`] - -IAR C/C++ compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]] - - [[`__VER__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_IAR BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__IAR_SYSTEMS_ICC__) -# define BOOST_COMP_IAR_DETECTION BOOST_PREDEF_MAKE_10_VVRR(__VER__) -#endif - -#ifdef BOOST_COMP_IAR_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_IAR_EMULATED BOOST_COMP_IAR_DETECTION -# else -# undef BOOST_COMP_IAR -# define BOOST_COMP_IAR BOOST_COMP_IAR_DETECTION -# endif -# define BOOST_COMP_IAR_AVAILABLE -# include -#endif - -#define BOOST_COMP_IAR_NAME "IAR C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IAR,BOOST_COMP_IAR_NAME) - -#ifdef BOOST_COMP_IAR_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IAR_EMULATED,BOOST_COMP_IAR_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/ibm.h b/lib/3rdParty/boost/boost/predef/compiler/ibm.h deleted file mode 100644 index 6931ebd88..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/ibm.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_IBM_H -#define BOOST_PREDEF_COMPILER_IBM_H - -#include -#include - -/*` -[heading `BOOST_COMP_IBM`] - -[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__IBMCPP__`] [__predef_detection__]] - [[`__xlC__`] [__predef_detection__]] - [[`__xlc__`] [__predef_detection__]] - - [[`__COMPILER_VER__`] [V.R.P]] - [[`__xlC__`] [V.R.P]] - [[`__xlc__`] [V.R.P]] - [[`__IBMCPP__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_IBM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__) -# if !defined(BOOST_COMP_IBM_DETECTION) && defined(__COMPILER_VER__) -# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__) -# endif -# if !defined(BOOST_COMP_IBM_DETECTION) && defined(__xlC__) -# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_0X_VVRR(__xlC__) -# endif -# if !defined(BOOST_COMP_IBM_DETECTION) && defined(__xlc__) -# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_0X_VVRR(__xlc__) -# endif -# if !defined(BOOST_COMP_IBM_DETECTION) -# define BOOST_COMP_IBM_DETECTION BOOST_PREDEF_MAKE_10_VRP(__IBMCPP__) -# endif -#endif - -#ifdef BOOST_COMP_IBM_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_IBM_EMULATED BOOST_COMP_IBM_DETECTION -# else -# undef BOOST_COMP_IBM -# define BOOST_COMP_IBM BOOST_COMP_IBM_DETECTION -# endif -# define BOOST_COMP_IBM_AVAILABLE -# include -#endif - -#define BOOST_COMP_IBM_NAME "IBM XL C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IBM,BOOST_COMP_IBM_NAME) - -#ifdef BOOST_COMP_IBM_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IBM_EMULATED,BOOST_COMP_IBM_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/intel.h b/lib/3rdParty/boost/boost/predef/compiler/intel.h deleted file mode 100644 index 65bde6778..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/intel.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_INTEL_H -#define BOOST_PREDEF_COMPILER_INTEL_H - -#include -#include - -/*` -[heading `BOOST_COMP_INTEL`] - -[@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__INTEL_COMPILER`] [__predef_detection__]] - [[`__ICL`] [__predef_detection__]] - [[`__ICC`] [__predef_detection__]] - [[`__ECC`] [__predef_detection__]] - - [[`__INTEL_COMPILER`] [V.R.P]] - ] - */ - -#define BOOST_COMP_INTEL BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \ - defined(__ECC) -# if !defined(BOOST_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) -# define BOOST_COMP_INTEL_DETECTION BOOST_PREDEF_MAKE_10_VRP(__INTEL_COMPILER) -# endif -# if !defined(BOOST_COMP_INTEL_DETECTION) -# define BOOST_COMP_INTEL_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_INTEL_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_INTEL_EMULATED BOOST_COMP_INTEL_DETECTION -# else -# undef BOOST_COMP_INTEL -# define BOOST_COMP_INTEL BOOST_COMP_INTEL_DETECTION -# endif -# define BOOST_COMP_INTEL_AVAILABLE -# include -#endif - -#define BOOST_COMP_INTEL_NAME "Intel C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_INTEL,BOOST_COMP_INTEL_NAME) - -#ifdef BOOST_COMP_INTEL_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_INTEL_EMULATED,BOOST_COMP_INTEL_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/kai.h b/lib/3rdParty/boost/boost/predef/compiler/kai.h deleted file mode 100644 index 68ce84e14..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/kai.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_KAI_H -#define BOOST_PREDEF_COMPILER_KAI_H - -#include -#include - -/*` -[heading `BOOST_COMP_KCC`] - -Kai C++ compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__KCC`] [__predef_detection__]] - - [[`__KCC_VERSION`] [V.R.P]] - ] - */ - -#define BOOST_COMP_KCC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__KCC) -# define BOOST_COMP_KCC_DETECTION BOOST_PREDEF_MAKE_0X_VRPP(__KCC_VERSION) -#endif - -#ifdef BOOST_COMP_KCC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_KCC_EMULATED BOOST_COMP_KCC_DETECTION -# else -# undef BOOST_COMP_KCC -# define BOOST_COMP_KCC BOOST_COMP_KCC_DETECTION -# endif -# define BOOST_COMP_KCC_AVAILABLE -# include -#endif - -#define BOOST_COMP_KCC_NAME "Kai C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_KCC,BOOST_COMP_KCC_NAME) - -#ifdef BOOST_COMP_KCC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_KCC_EMULATED,BOOST_COMP_KCC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/llvm.h b/lib/3rdParty/boost/boost/predef/compiler/llvm.h deleted file mode 100644 index de654eb8c..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/llvm.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_LLVM_H -#define BOOST_PREDEF_COMPILER_LLVM_H - -/* Other compilers that emulate this one need to be detected first. */ - -#include - -#include -#include - -/*` -[heading `BOOST_COMP_LLVM`] - -[@http://en.wikipedia.org/wiki/LLVM LLVM] compiler. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__llvm__`] [__predef_detection__]] - ] - */ - -#define BOOST_COMP_LLVM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__llvm__) -# define BOOST_COMP_LLVM_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#ifdef BOOST_COMP_LLVM_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_LLVM_EMULATED BOOST_COMP_LLVM_DETECTION -# else -# undef BOOST_COMP_LLVM -# define BOOST_COMP_LLVM BOOST_COMP_LLVM_DETECTION -# endif -# define BOOST_COMP_LLVM_AVAILABLE -# include -#endif - -#define BOOST_COMP_LLVM_NAME "LLVM" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_LLVM,BOOST_COMP_LLVM_NAME) - -#ifdef BOOST_COMP_LLVM_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_LLVM_EMULATED,BOOST_COMP_LLVM_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/metaware.h b/lib/3rdParty/boost/boost/predef/compiler/metaware.h deleted file mode 100644 index 1a32039ce..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/metaware.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_METAWARE_H -#define BOOST_PREDEF_COMPILER_METAWARE_H - -#include -#include - -/*` -[heading `BOOST_COMP_HIGHC`] - -MetaWare High C/C++ compiler. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__HIGHC__`] [__predef_detection__]] - ] - */ - -#define BOOST_COMP_HIGHC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__HIGHC__) -# define BOOST_COMP_HIGHC_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#ifdef BOOST_COMP_HIGHC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_HIGHC_EMULATED BOOST_COMP_HIGHC_DETECTION -# else -# undef BOOST_COMP_HIGHC -# define BOOST_COMP_HIGHC BOOST_COMP_HIGHC_DETECTION -# endif -# define BOOST_COMP_HIGHC_AVAILABLE -# include -#endif - -#define BOOST_COMP_HIGHC_NAME "MetaWare High C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_HIGHC,BOOST_COMP_HIGHC_NAME) - -#ifdef BOOST_COMP_HIGHC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_HIGHC_EMULATED,BOOST_COMP_HIGHC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/metrowerks.h b/lib/3rdParty/boost/boost/predef/compiler/metrowerks.h deleted file mode 100644 index f2d739b95..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/metrowerks.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_METROWERKS_H -#define BOOST_PREDEF_COMPILER_METROWERKS_H - -#include -#include - -/*` -[heading `BOOST_COMP_MWERKS`] - -[@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__MWERKS__`] [__predef_detection__]] - [[`__CWCC__`] [__predef_detection__]] - - [[`__CWCC__`] [V.R.P]] - [[`__MWERKS__`] [V.R.P >= 4.2.0]] - [[`__MWERKS__`] [9.R.0]] - [[`__MWERKS__`] [8.R.0]] - ] - */ - -#define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__MWERKS__) || defined(__CWCC__) -# if !defined(BOOST_COMP_MWERKS_DETECTION) && defined(__CWCC__) -# define BOOST_COMP_MWERKS_DETECTION BOOST_PREDEF_MAKE_0X_VRPP(__CWCC__) -# endif -# if !defined(BOOST_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x4200) -# define BOOST_COMP_MWERKS_DETECTION BOOST_PREDEF_MAKE_0X_VRPP(__MWERKS__) -# endif -# if !defined(BOOST_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3 -# define BOOST_COMP_MWERKS_DETECTION BOOST_VERSION_NUMBER(9,(__MWERKS__)%100-1,0) -# endif -# if !defined(BOOST_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3200) -# define BOOST_COMP_MWERKS_DETECTION BOOST_VERSION_NUMBER(9,(__MWERKS__)%100,0) -# endif -# if !defined(BOOST_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3000) -# define BOOST_COMP_MWERKS_DETECTION BOOST_VERSION_NUMBER(8,(__MWERKS__)%100,0) -# endif -# if !defined(BOOST_COMP_MWERKS_DETECTION) -# define BOOST_COMP_MWERKS_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_MWERKS_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_MWERKS_EMULATED BOOST_COMP_MWERKS_DETECTION -# else -# undef BOOST_COMP_MWERKS -# define BOOST_COMP_MWERKS BOOST_COMP_MWERKS_DETECTION -# endif -# define BOOST_COMP_MWERKS_AVAILABLE -# include -#endif - -#define BOOST_COMP_MWERKS_NAME "Metrowerks CodeWarrior" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MWERKS,BOOST_COMP_MWERKS_NAME) - -#ifdef BOOST_COMP_MWERKS_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MWERKS_EMULATED,BOOST_COMP_MWERKS_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/microtec.h b/lib/3rdParty/boost/boost/predef/compiler/microtec.h deleted file mode 100644 index 066a6d2ad..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/microtec.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_MICROTEC_H -#define BOOST_PREDEF_COMPILER_MICROTEC_H - -#include -#include - -/*` -[heading `BOOST_COMP_MRI`] - -[@http://www.mentor.com/microtec/ Microtec C/C++] compiler. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_MRI`] [__predef_detection__]] - ] - */ - -#define BOOST_COMP_MRI BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(_MRI) -# define BOOST_COMP_MRI_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#ifdef BOOST_COMP_MRI_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_MRI_EMULATED BOOST_COMP_MRI_DETECTION -# else -# undef BOOST_COMP_MRI -# define BOOST_COMP_MRI BOOST_COMP_MRI_DETECTION -# endif -# define BOOST_COMP_MRI_AVAILABLE -# include -#endif - -#define BOOST_COMP_MRI_NAME "Microtec C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MRI,BOOST_COMP_MRI_NAME) - -#ifdef BOOST_COMP_MRI_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MRI_EMULATED,BOOST_COMP_MRI_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/mpw.h b/lib/3rdParty/boost/boost/predef/compiler/mpw.h deleted file mode 100644 index 118330646..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/mpw.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_MPW_H -#define BOOST_PREDEF_COMPILER_MPW_H - -#include -#include - -/*` -[heading `BOOST_COMP_MPW`] - -[@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler. -Version number available as major, and minor. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__MRC__`] [__predef_detection__]] - [[`MPW_C`] [__predef_detection__]] - [[`MPW_CPLUS`] [__predef_detection__]] - - [[`__MRC__`] [V.R.0]] - ] - */ - -#define BOOST_COMP_MPW BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS) -# if !defined(BOOST_COMP_MPW_DETECTION) && defined(__MRC__) -# define BOOST_COMP_MPW_DETECTION BOOST_PREDEF_MAKE_0X_VVRR(__MRC__) -# endif -# if !defined(BOOST_COMP_MPW_DETECTION) -# define BOOST_COMP_MPW_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_MPW_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_MPW_EMULATED BOOST_COMP_MPW_DETECTION -# else -# undef BOOST_COMP_MPW -# define BOOST_COMP_MPW BOOST_COMP_MPW_DETECTION -# endif -# define BOOST_COMP_MPW_AVAILABLE -# include -#endif - -#define BOOST_COMP_MPW_NAME "MPW C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MPW,BOOST_COMP_MPW_NAME) - -#ifdef BOOST_COMP_MPW_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MPW_EMULATED,BOOST_COMP_MPW_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/palm.h b/lib/3rdParty/boost/boost/predef/compiler/palm.h deleted file mode 100644 index 707925a65..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/palm.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_PALM_H -#define BOOST_PREDEF_COMPILER_PALM_H - -#include -#include - -/*` -[heading `BOOST_COMP_PALM`] - -Palm C/C++ compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_PACC_VER`] [__predef_detection__]] - - [[`_PACC_VER`] [V.R.P]] - ] - */ - -#define BOOST_COMP_PALM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(_PACC_VER) -# define BOOST_COMP_PALM_DETECTION BOOST_PREDEF_MAKE_0X_VRRPP000(_PACC_VER) -#endif - -#ifdef BOOST_COMP_PALM_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_PALM_EMULATED BOOST_COMP_PALM_DETECTION -# else -# undef BOOST_COMP_PALM -# define BOOST_COMP_PALM BOOST_COMP_PALM_DETECTION -# endif -# define BOOST_COMP_PALM_AVAILABLE -# include -#endif - -#define BOOST_COMP_PALM_NAME "Palm C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PALM,BOOST_COMP_PALM_NAME) - -#ifdef BOOST_COMP_PALM_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PALM_EMULATED,BOOST_COMP_PALM_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/pgi.h b/lib/3rdParty/boost/boost/predef/compiler/pgi.h deleted file mode 100644 index e016aeb08..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/pgi.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_PGI_H -#define BOOST_PREDEF_COMPILER_PGI_H - -#include -#include - -/*` -[heading `BOOST_COMP_PGI`] - -[@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__PGI`] [__predef_detection__]] - - [[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_PGI BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__PGI) -# if !defined(BOOST_COMP_PGI_DETECTION) && (defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)) -# define BOOST_COMP_PGI_DETECTION BOOST_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__) -# endif -# if !defined(BOOST_COMP_PGI_DETECTION) -# define BOOST_COMP_PGI_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_PGI_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_PGI_EMULATED BOOST_COMP_PGI_DETECTION -# else -# undef BOOST_COMP_PGI -# define BOOST_COMP_PGI BOOST_COMP_PGI_DETECTION -# endif -# define BOOST_COMP_PGI_AVAILABLE -# include -#endif - -#define BOOST_COMP_PGI_NAME "Portland Group C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PGI,BOOST_COMP_PGI_NAME) - -#ifdef BOOST_COMP_PGI_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PGI_EMULATED,BOOST_COMP_PGI_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/sgi_mipspro.h b/lib/3rdParty/boost/boost/predef/compiler/sgi_mipspro.h deleted file mode 100644 index 00739f0c3..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/sgi_mipspro.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_SGI_MIPSPRO_H -#define BOOST_PREDEF_COMPILER_SGI_MIPSPRO_H - -#include -#include - -/*` -[heading `BOOST_COMP_SGI`] - -[@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__sgi`] [__predef_detection__]] - [[`sgi`] [__predef_detection__]] - - [[`_SGI_COMPILER_VERSION`] [V.R.P]] - [[`_COMPILER_VERSION`] [V.R.P]] - ] - */ - -#define BOOST_COMP_SGI BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__sgi) || defined(sgi) -# if !defined(BOOST_COMP_SGI_DETECTION) && defined(_SGI_COMPILER_VERSION) -# define BOOST_COMP_SGI_DETECTION BOOST_PREDEF_MAKE_10_VRP(_SGI_COMPILER_VERSION) -# endif -# if !defined(BOOST_COMP_SGI_DETECTION) && defined(_COMPILER_VERSION) -# define BOOST_COMP_SGI_DETECTION BOOST_PREDEF_MAKE_10_VRP(_COMPILER_VERSION) -# endif -# if !defined(BOOST_COMP_SGI_DETECTION) -# define BOOST_COMP_SGI_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_SGI_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_SGI_EMULATED BOOST_COMP_SGI_DETECTION -# else -# undef BOOST_COMP_SGI -# define BOOST_COMP_SGI BOOST_COMP_SGI_DETECTION -# endif -# define BOOST_COMP_SGI_AVAILABLE -# include -#endif - -#define BOOST_COMP_SGI_NAME "SGI MIPSpro" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SGI,BOOST_COMP_SGI_NAME) - -#ifdef BOOST_COMP_SGI_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SGI_EMULATED,BOOST_COMP_SGI_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/sunpro.h b/lib/3rdParty/boost/boost/predef/compiler/sunpro.h deleted file mode 100644 index 92c392601..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/sunpro.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_SUNPRO_H -#define BOOST_PREDEF_COMPILER_SUNPRO_H - -#include -#include - -/*` -[heading `BOOST_COMP_SUNPRO`] - -[@http://en.wikipedia.org/wiki/Oracle_Solaris_Studio Oracle Solaris Studio] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__SUNPRO_CC`] [__predef_detection__]] - [[`__SUNPRO_C`] [__predef_detection__]] - - [[`__SUNPRO_CC`] [V.R.P]] - [[`__SUNPRO_C`] [V.R.P]] - [[`__SUNPRO_CC`] [VV.RR.P]] - [[`__SUNPRO_C`] [VV.RR.P]] - ] - */ - -#define BOOST_COMP_SUNPRO BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__SUNPRO_CC) || defined(__SUNPRO_C) -# if !defined(BOOST_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_CC) -# if (__SUNPRO_CC < 0x5100) -# define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_CC) -# else -# define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VVRRP(__SUNPRO_CC) -# endif -# endif -# if !defined(BOOST_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_C) -# if (__SUNPRO_C < 0x5100) -# define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_C) -# else -# define BOOST_COMP_SUNPRO_DETECTION BOOST_PREDEF_MAKE_0X_VVRRP(__SUNPRO_C) -# endif -# endif -# if !defined(BOOST_COMP_SUNPRO_DETECTION) -# define BOOST_COMP_SUNPRO_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_COMP_SUNPRO_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_SUNPRO_EMULATED BOOST_COMP_SUNPRO_DETECTION -# else -# undef BOOST_COMP_SUNPRO -# define BOOST_COMP_SUNPRO BOOST_COMP_SUNPRO_DETECTION -# endif -# define BOOST_COMP_SUNPRO_AVAILABLE -# include -#endif - -#define BOOST_COMP_SUNPRO_NAME "Oracle Solaris Studio" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO,BOOST_COMP_SUNPRO_NAME) - -#ifdef BOOST_COMP_SUNPRO_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO_EMULATED,BOOST_COMP_SUNPRO_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/tendra.h b/lib/3rdParty/boost/boost/predef/compiler/tendra.h deleted file mode 100644 index c2bc5e4ef..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/tendra.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_TENDRA_H -#define BOOST_PREDEF_COMPILER_TENDRA_H - -#include -#include - -/*` -[heading `BOOST_COMP_TENDRA`] - -[@http://en.wikipedia.org/wiki/TenDRA_Compiler TenDRA C/C++] compiler. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__TenDRA__`] [__predef_detection__]] - ] - */ - -#define BOOST_COMP_TENDRA BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__TenDRA__) -# define BOOST_COMP_TENDRA_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#ifdef BOOST_COMP_TENDRA_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_TENDRA_EMULATED BOOST_COMP_TENDRA_DETECTION -# else -# undef BOOST_COMP_TENDRA -# define BOOST_COMP_TENDRA BOOST_COMP_TENDRA_DETECTION -# endif -# define BOOST_COMP_TENDRA_AVAILABLE -# include -#endif - -#define BOOST_COMP_TENDRA_NAME "TenDRA C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_TENDRA,BOOST_COMP_TENDRA_NAME) - -#ifdef BOOST_COMP_TENDRA_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_TENDRA_EMULATED,BOOST_COMP_TENDRA_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/visualc.h b/lib/3rdParty/boost/boost/predef/compiler/visualc.h deleted file mode 100644 index 9481d9d9f..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/visualc.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_VISUALC_H -#define BOOST_PREDEF_COMPILER_VISUALC_H - -/* Other compilers that emulate this one need to be detected first. */ - -#include - -#include -#include - -/*` -[heading `BOOST_COMP_MSVC`] - -[@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_MSC_VER`] [__predef_detection__]] - - [[`_MSC_FULL_VER`] [V.R.P]] - [[`_MSC_VER`] [V.R.0]] - ] - */ - -#define BOOST_COMP_MSVC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(_MSC_VER) -# if !defined (_MSC_FULL_VER) -# define BOOST_COMP_MSVC_BUILD 0 -# else - /* how many digits does the build number have? */ -# if _MSC_FULL_VER / 10000 == _MSC_VER - /* four digits */ -# define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000) -# elif _MSC_FULL_VER / 100000 == _MSC_VER - /* five digits */ -# define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000) -# else -# error "Cannot determine build number from _MSC_FULL_VER" -# endif -# endif - /* - VS2014 was skipped in the release sequence for MS. Which - means that the compiler and VS product versions are no longer - in sync. Hence we need to use different formulas for - mapping from MSC version to VS product version. - */ -# if (_MSC_VER >= 1900) -# define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\ - _MSC_VER/100-5,\ - _MSC_VER%100,\ - BOOST_COMP_MSVC_BUILD) -# else -# define BOOST_COMP_MSVC_DETECTION BOOST_VERSION_NUMBER(\ - _MSC_VER/100-6,\ - _MSC_VER%100,\ - BOOST_COMP_MSVC_BUILD) -# endif -#endif - -#ifdef BOOST_COMP_MSVC_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_MSVC_EMULATED BOOST_COMP_MSVC_DETECTION -# else -# undef BOOST_COMP_MSVC -# define BOOST_COMP_MSVC BOOST_COMP_MSVC_DETECTION -# endif -# define BOOST_COMP_MSVC_AVAILABLE -# include -#endif - -#define BOOST_COMP_MSVC_NAME "Microsoft Visual C/C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC,BOOST_COMP_MSVC_NAME) - -#ifdef BOOST_COMP_MSVC_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC_EMULATED,BOOST_COMP_MSVC_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/compiler/watcom.h b/lib/3rdParty/boost/boost/predef/compiler/watcom.h deleted file mode 100644 index b0e7776d0..000000000 --- a/lib/3rdParty/boost/boost/predef/compiler/watcom.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_WATCOM_H -#define BOOST_PREDEF_COMPILER_WATCOM_H - -#include -#include - -/*` -[heading `BOOST_COMP_WATCOM`] - -[@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler. -Version number available as major, and minor. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__WATCOMC__`] [__predef_detection__]] - - [[`__WATCOMC__`] [V.R.P]] - ] - */ - -#define BOOST_COMP_WATCOM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__WATCOMC__) -# define BOOST_COMP_WATCOM_DETECTION BOOST_PREDEF_MAKE_10_VVRR(__WATCOMC__) -#endif - -#ifdef BOOST_COMP_WATCOM_DETECTION -# if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED) -# define BOOST_COMP_WATCOM_EMULATED BOOST_COMP_WATCOM_DETECTION -# else -# undef BOOST_COMP_WATCOM -# define BOOST_COMP_WATCOM BOOST_COMP_WATCOM_DETECTION -# endif -# define BOOST_COMP_WATCOM_AVAILABLE -# include -#endif - -#define BOOST_COMP_WATCOM_NAME "Watcom C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_WATCOM,BOOST_COMP_WATCOM_NAME) - -#ifdef BOOST_COMP_WATCOM_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_WATCOM_EMULATED,BOOST_COMP_WATCOM_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/_cassert.h b/lib/3rdParty/boost/boost/predef/detail/_cassert.h deleted file mode 100644 index 940e944e2..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/_cassert.h +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright Rene Rivera 2011-2012 -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_PREDEF_DETAIL__CASSERT_H -#define BOOST_PREDEF_DETAIL__CASSERT_H - -#if defined(__cplusplus) -#include -#else -#include -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/_exception.h b/lib/3rdParty/boost/boost/predef/detail/_exception.h deleted file mode 100644 index f5a6687a9..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/_exception.h +++ /dev/null @@ -1,15 +0,0 @@ -/* -Copyright Rene Rivera 2011-2012 -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_PREDEF_DETAIL__EXCEPTION_H -#define BOOST_PREDEF_DETAIL__EXCEPTION_H - -#if defined(__cplusplus) -#include -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/comp_detected.h b/lib/3rdParty/boost/boost/predef/detail/comp_detected.h deleted file mode 100644 index fda1801b6..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/comp_detected.h +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_DETAIL_COMP_DETECTED -#define BOOST_PREDEF_DETAIL_COMP_DETECTED 1 -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/endian_compat.h b/lib/3rdParty/boost/boost/predef/detail/endian_compat.h deleted file mode 100644 index 7725e6823..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/endian_compat.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H -#define BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H - -#include - -#if BOOST_ENDIAN_BIG_BYTE -# define BOOST_BIG_ENDIAN -# define BOOST_BYTE_ORDER 4321 -#endif -#if BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_LITTLE_ENDIAN -# define BOOST_BYTE_ORDER 1234 -#endif -#if BOOST_ENDIAN_LITTLE_WORD -# define BOOST_PDP_ENDIAN -# define BOOST_BYTE_ORDER 2134 -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/os_detected.h b/lib/3rdParty/boost/boost/predef/detail/os_detected.h deleted file mode 100644 index 08e10f993..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/os_detected.h +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_DETAIL_OS_DETECTED -#define BOOST_PREDEF_DETAIL_OS_DETECTED 1 -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/platform_detected.h b/lib/3rdParty/boost/boost/predef/detail/platform_detected.h deleted file mode 100644 index 4faf6938d..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/platform_detected.h +++ /dev/null @@ -1,10 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_DETAIL_PLAT_DETECTED -#define BOOST_PREDEF_DETAIL_PLAT_DETECTED 1 -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/test.h b/lib/3rdParty/boost/boost/predef/detail/test.h deleted file mode 100644 index 546a9e407..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/test.h +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright Rene Rivera 2011-2012 -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_PREDEF_DETAIL_TEST_H -#define BOOST_PREDEF_DETAIL_TEST_H - -#if !defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) - -#define BOOST_PREDEF_DECLARE_TEST(x,s) - -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/predef/detail/test_def.h b/lib/3rdParty/boost/boost/predef/detail/test_def.h deleted file mode 100644 index c2f195bfd..000000000 --- a/lib/3rdParty/boost/boost/predef/detail/test_def.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ -#include - -#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS - -void * add_predef_entry(const char * name, const char * description, unsigned value); -#undef BOOST_PREDEF_DECLARE_TEST -#define BOOST_PREDEF_DECLARE_TEST(x,s) void predef_entry_##x() { add_predef_entry(#x, s, x); } -#include - -#undef BOOST_PREDEF_DECLARE_TEST -#define BOOST_PREDEF_DECLARE_TEST(x,s) predef_entry_##x(); -void create_predef_entries() -{ -#include -} - -#ifdef __cplusplus -#include -#include -#include -using namespace std; -#else -#include -#include -#include -#endif - -typedef struct predef_info -{ - const char * name; - const char * description; - unsigned value; -} predef_info; - -#ifdef __cplusplus -using namespace std; -#endif - -unsigned generated_predef_info_count = 0; -predef_info* generated_predef_info = 0; -void * add_predef_entry(const char * name, const char * description, unsigned value) -{ - if (0 == generated_predef_info_count) - { - generated_predef_info_count = 1; - generated_predef_info = (predef_info*)malloc(sizeof(predef_info)); - } - else - { - generated_predef_info_count += 1; - generated_predef_info = (predef_info*)realloc(generated_predef_info, - generated_predef_info_count*sizeof(predef_info)); - } - generated_predef_info[generated_predef_info_count-1].name = name; - generated_predef_info[generated_predef_info_count-1].description = description; - generated_predef_info[generated_predef_info_count-1].value = value; - return 0; -} - -int predef_info_compare(const void * a, const void * b) -{ - const predef_info * i = (const predef_info *)a; - const predef_info * j = (const predef_info *)b; - return strcmp(i->name,j->name); -} diff --git a/lib/3rdParty/boost/boost/predef/hardware.h b/lib/3rdParty/boost/boost/predef/hardware.h deleted file mode 100644 index 972b73af6..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware.h +++ /dev/null @@ -1,16 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#if !defined(BOOST_PREDEF_HARDWARE_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_HARDWARE_H -#define BOOST_PREDEF_HARDWARE_H -#endif - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd.h b/lib/3rdParty/boost/boost/predef/hardware/simd.h deleted file mode 100644 index ac5c9da2c..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd.h +++ /dev/null @@ -1,119 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#include -#include -#include -#include - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_H -#define BOOST_PREDEF_HARDWARE_SIMD_H - -#include - -/*` - [section Using the `BOOST_HW_SIMD_*` predefs] - [include ../doc/hardware_simd.qbk] - [endsect] - - [/ --------------------------- ] - - [section `BOOST_HW_SIMD_*`] - - [heading `BOOST_HW_SIMD`] - - The SIMD extension detected for a specific architectures. - Version number depends on the detected extension. - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`BOOST_HW_SIMD_X86_AVAILABLE`] [__predef_detection__]] - [[`BOOST_HW_SIMD_X86_AMD_AVAILABLE`] [__predef_detection__]] - [[`BOOST_HW_SIMD_ARM_AVAILABLE`] [__predef_detection__]] - [[`BOOST_HW_SIMD_PPC_AVAILABLE`] [__predef_detection__]] - ] - - [include ../include/boost/predef/hardware/simd/x86.h] - [include ../include/boost/predef/hardware/simd/x86_amd.h] - [include ../include/boost/predef/hardware/simd/arm.h] - [include ../include/boost/predef/hardware/simd/ppc.h] - - [endsect] - - [/ --------------------------- ] - - [section `BOOST_HW_SIMD_X86_*_VERSION`] - [include ../include/boost/predef/hardware/simd/x86/versions.h] - [endsect] - - [section `BOOST_HW_SIMD_X86_AMD_*_VERSION`] - [include ../include/boost/predef/hardware/simd/x86_amd/versions.h] - [endsect] - - [section `BOOST_HW_SIMD_ARM_*_VERSION`] - [include ../include/boost/predef/hardware/simd/arm/versions.h] - [endsect] - - [section `BOOST_HW_SIMD_PPC_*_VERSION`] - [include ../include/boost/predef/hardware/simd/ppc/versions.h] - [endsect] - - */ - -// We check if SIMD extension of multiples architectures have been detected, -// if yes, then this is an error! -// -// NOTE: _X86_AMD implies _X86, so there is no need to check for it here! -// -#if defined(BOOST_HW_SIMD_ARM_AVAILABLE) && defined(BOOST_HW_SIMD_PPC_AVAILABLE) ||\ - defined(BOOST_HW_SIMD_ARM_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AVAILABLE) ||\ - defined(BOOST_HW_SIMD_PPC_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AVAILABLE) -# error "Multiple SIMD architectures detected, this cannot happen!" -#endif - -#if defined(BOOST_HW_SIMD_X86_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE) - // If both standard _X86 and _X86_AMD are available, - // then take the biggest version of the two! -# if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_AMD -# define BOOST_HW_SIMD BOOST_HW_SIMD_X86 -# else -# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD -# endif -#endif - -#if !defined(BOOST_HW_SIMD) - // At this point, only one of these two is defined -# if defined(BOOST_HW_SIMD_X86_AVAILABLE) -# define BOOST_HW_SIMD BOOST_HW_SIMD_X86 -# endif -# if defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE) -# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD -# endif -#endif - -#if defined(BOOST_HW_SIMD_ARM_AVAILABLE) -# define BOOST_HW_SIMD BOOST_HW_SIMD_ARM -#endif - -#if defined(BOOST_HW_SIMD_PPC_AVAILABLE) -# define BOOST_HW_SIMD BOOST_HW_SIMD_PPC -#endif - -#if defined(BOOST_HW_SIMD) -# define BOOST_HW_SIMD_AVAILABLE -#else -# define BOOST_HW_SIMD BOOST_VERSION_NUMBER_NOT_AVAILABLE -#endif - -#define BOOST_HW_SIMD_NAME "Hardware SIMD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD, BOOST_HW_SIMD_NAME) diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/arm.h b/lib/3rdParty/boost/boost/predef/hardware/simd/arm.h deleted file mode 100644 index d067c9319..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/arm.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_ARM_H -#define BOOST_PREDEF_HARDWARE_SIMD_ARM_H - -#include -#include - -/*` - [heading `BOOST_HW_SIMD_ARM`] - - The SIMD extension for ARM (*if detected*). - Version number depends on the most recent detected extension. - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__ARM_NEON__`] [__predef_detection__]] - [[`__aarch64__`] [__predef_detection__]] - [[`_M_ARM`] [__predef_detection__]] - ] - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__ARM_NEON__`] [BOOST_HW_SIMD_ARM_NEON_VERSION]] - [[`__aarch64__`] [BOOST_HW_SIMD_ARM_NEON_VERSION]] - [[`_M_ARM`] [BOOST_HW_SIMD_ARM_NEON_VERSION]] - ] - - */ - -#define BOOST_HW_SIMD_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#undef BOOST_HW_SIMD_ARM -#if !defined(BOOST_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM)) -# define BOOST_HW_SIMD_ARM BOOST_HW_SIMD_ARM_NEON_VERSION -#endif - -#if !defined(BOOST_HW_SIMD_ARM) -# define BOOST_HW_SIMD_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE -#else -# define BOOST_HW_SIMD_ARM_AVAILABLE -#endif - -#define BOOST_HW_SIMD_ARM_NAME "ARM SIMD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_ARM, BOOST_HW_SIMD_ARM_NAME) diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/arm/versions.h b/lib/3rdParty/boost/boost/predef/hardware/simd/arm/versions.h deleted file mode 100644 index 8425b3186..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/arm/versions.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H -#define BOOST_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H - -#include - -/*` - Those defines represent ARM SIMD extensions versions. - - [note You *MUST* compare them with the predef `BOOST_HW_SIMD_ARM`.] - */ - -// --------------------------------- - -/*` - [heading `BOOST_HW_SIMD_ARM_NEON_VERSION`] - - The [@https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON] - ARM extension version number. - - Version number is: *1.0.0*. - */ -#define BOOST_HW_SIMD_ARM_NEON_VERSION BOOST_VERSION_NUMBER(1, 0, 0) - -#endif diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/ppc.h b/lib/3rdParty/boost/boost/predef/hardware/simd/ppc.h deleted file mode 100644 index eef25c2d2..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/ppc.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_PPC_H -#define BOOST_PREDEF_HARDWARE_SIMD_PPC_H - -#include -#include - -/*` - [heading `BOOST_HW_SIMD_PPC`] - - The SIMD extension for PowerPC (*if detected*). - Version number depends on the most recent detected extension. - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__VECTOR4DOUBLE__`] [__predef_detection__]] - - [[`__ALTIVEC__`] [__predef_detection__]] - [[`__VEC__`] [__predef_detection__]] - - [[`__VSX__`] [__predef_detection__]] - ] - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__VECTOR4DOUBLE__`] [BOOST_HW_SIMD_PPC_QPX_VERSION]] - - [[`__ALTIVEC__`] [BOOST_HW_SIMD_PPC_VMX_VERSION]] - [[`__VEC__`] [BOOST_HW_SIMD_PPC_VMX_VERSION]] - - [[`__VSX__`] [BOOST_HW_SIMD_PPC_VSX_VERSION]] - ] - - */ - -#define BOOST_HW_SIMD_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#undef BOOST_HW_SIMD_PPC -#if !defined(BOOST_HW_SIMD_PPC) && defined(__VECTOR4DOUBLE__) -# define BOOST_HW_SIMD_PPC BOOST_HW_SIMD_PPC_QPX_VERSION -#endif -#if !defined(BOOST_HW_SIMD_PPC) && defined(__VSX__) -# define BOOST_HW_SIMD_PPC BOOST_HW_SIMD_PPC_VSX_VERSION -#endif -#if !defined(BOOST_HW_SIMD_PPC) && (defined(__ALTIVEC__) || defined(__VEC__)) -# define BOOST_HW_SIMD_PPC BOOST_HW_SIMD_PPC_VMX_VERSION -#endif - -#if !defined(BOOST_HW_SIMD_PPC) -# define BOOST_HW_SIMD_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE -#else -# define BOOST_HW_SIMD_PPC_AVAILABLE -#endif - -#define BOOST_HW_SIMD_PPC_NAME "PPC SIMD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_PPC, BOOST_HW_SIMD_PPC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/ppc/versions.h b/lib/3rdParty/boost/boost/predef/hardware/simd/ppc/versions.h deleted file mode 100644 index ffe3f0b1e..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/ppc/versions.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_PPC_VERSIONS_H -#define BOOST_PREDEF_HARDWARE_SIMD_PPC_VERSIONS_H - -#include - -/*` - Those defines represent Power PC SIMD extensions versions. - - [note You *MUST* compare them with the predef `BOOST_HW_SIMD_PPC`.] - */ - -// --------------------------------- - -/*` - [heading `BOOST_HW_SIMD_PPC_VMX_VERSION`] - - The [@https://en.wikipedia.org/wiki/AltiVec#VMX128 VMX] powerpc extension - version number. - - Version number is: *1.0.0*. - */ -#define BOOST_HW_SIMD_PPC_VMX_VERSION BOOST_VERSION_NUMBER(1, 0, 0) - -/*` - [heading `BOOST_HW_SIMD_PPC_VSX_VERSION`] - - The [@https://en.wikipedia.org/wiki/AltiVec#VSX VSX] powerpc extension version - number. - - Version number is: *1.1.0*. - */ -#define BOOST_HW_SIMD_PPC_VSX_VERSION BOOST_VERSION_NUMBER(1, 1, 0) - -/*` - [heading `BOOST_HW_SIMD_PPC_QPX_VERSION`] - - The QPX powerpc extension version number. - - Version number is: *2.0.0*. - */ -#define BOOST_HW_SIMD_PPC_QPX_VERSION BOOST_VERSION_NUMBER(2, 0, 0) - -#endif diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/x86.h b/lib/3rdParty/boost/boost/predef/hardware/simd/x86.h deleted file mode 100644 index 88bd81e36..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/x86.h +++ /dev/null @@ -1,123 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_H -#define BOOST_PREDEF_HARDWARE_SIMD_X86_H - -#include -#include - -/*` - [heading `BOOST_HW_SIMD_X86`] - - The SIMD extension for x86 (*if detected*). - Version number depends on the most recent detected extension. - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__SSE__`] [__predef_detection__]] - [[`_M_X64`] [__predef_detection__]] - [[`_M_IX86_FP >= 1`] [__predef_detection__]] - - [[`__SSE2__`] [__predef_detection__]] - [[`_M_X64`] [__predef_detection__]] - [[`_M_IX86_FP >= 2`] [__predef_detection__]] - - [[`__SSE3__`] [__predef_detection__]] - - [[`__SSSE3__`] [__predef_detection__]] - - [[`__SSE4_1__`] [__predef_detection__]] - - [[`__SSE4_2__`] [__predef_detection__]] - - [[`__AVX__`] [__predef_detection__]] - - [[`__FMA__`] [__predef_detection__]] - - [[`__AVX2__`] [__predef_detection__]] - ] - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__SSE__`] [BOOST_HW_SIMD_X86_SSE_VERSION]] - [[`_M_X64`] [BOOST_HW_SIMD_X86_SSE_VERSION]] - [[`_M_IX86_FP >= 1`] [BOOST_HW_SIMD_X86_SSE_VERSION]] - - [[`__SSE2__`] [BOOST_HW_SIMD_X86_SSE2_VERSION]] - [[`_M_X64`] [BOOST_HW_SIMD_X86_SSE2_VERSION]] - [[`_M_IX86_FP >= 2`] [BOOST_HW_SIMD_X86_SSE2_VERSION]] - - [[`__SSE3__`] [BOOST_HW_SIMD_X86_SSE3_VERSION]] - - [[`__SSSE3__`] [BOOST_HW_SIMD_X86_SSSE3_VERSION]] - - [[`__SSE4_1__`] [BOOST_HW_SIMD_X86_SSE4_1_VERSION]] - - [[`__SSE4_2__`] [BOOST_HW_SIMD_X86_SSE4_2_VERSION]] - - [[`__AVX__`] [BOOST_HW_SIMD_X86_AVX_VERSION]] - - [[`__FMA__`] [BOOST_HW_SIMD_X86_FMA3_VERSION]] - - [[`__AVX2__`] [BOOST_HW_SIMD_X86_AVX2_VERSION]] - ] - - */ - -#define BOOST_HW_SIMD_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#undef BOOST_HW_SIMD_X86 -#if !defined(BOOST_HW_SIMD_X86) && defined(__MIC__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_MIC_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__AVX2__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_AVX2_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__AVX__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_AVX_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__FMA__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_FMA_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE4_2__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE4_2_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE4_1__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE4_1_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__SSSE3__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSSE3_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE3__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE3_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE2__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE2_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE__) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86) && defined(__MMX__) -# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_MMX_VERSION -#endif - -#if !defined(BOOST_HW_SIMD_X86) -# define BOOST_HW_SIMD_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE -#else -# define BOOST_HW_SIMD_X86_AVAILABLE -#endif - -#define BOOST_HW_SIMD_X86_NAME "x86 SIMD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_X86, BOOST_HW_SIMD_X86_NAME) diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/x86/versions.h b/lib/3rdParty/boost/boost/predef/hardware/simd/x86/versions.h deleted file mode 100644 index 0c7a4d381..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/x86/versions.h +++ /dev/null @@ -1,129 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H -#define BOOST_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H - -#include - -/*` - Those defines represent x86 SIMD extensions versions. - - [note You *MUST* compare them with the predef `BOOST_HW_SIMD_X86`.] - */ - -// --------------------------------- - -/*` - [heading `BOOST_HW_SIMD_X86_MMX_VERSION`] - - The [@https://en.wikipedia.org/wiki/MMX_(instruction_set) MMX] x86 extension - version number. - - Version number is: *0.99.0*. - */ -#define BOOST_HW_SIMD_X86_MMX_VERSION BOOST_VERSION_NUMBER(0, 99, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_SSE_VERSION`] - - The [@https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions SSE] x86 extension - version number. - - Version number is: *1.0.0*. - */ -#define BOOST_HW_SIMD_X86_SSE_VERSION BOOST_VERSION_NUMBER(1, 0, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_SSE2_VERSION`] - - The [@https://en.wikipedia.org/wiki/SSE2 SSE2] x86 extension version number. - - Version number is: *2.0.0*. - */ -#define BOOST_HW_SIMD_X86_SSE2_VERSION BOOST_VERSION_NUMBER(2, 0, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_SSE3_VERSION`] - - The [@https://en.wikipedia.org/wiki/SSE3 SSE3] x86 extension version number. - - Version number is: *3.0.0*. - */ -#define BOOST_HW_SIMD_X86_SSE3_VERSION BOOST_VERSION_NUMBER(3, 0, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_SSSE3_VERSION`] - - The [@https://en.wikipedia.org/wiki/SSSE3 SSSE3] x86 extension version number. - - Version number is: *3.1.0*. - */ -#define BOOST_HW_SIMD_X86_SSSE3_VERSION BOOST_VERSION_NUMBER(3, 1, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_SSE4_1_VERSION`] - - The [@https://en.wikipedia.org/wiki/SSE4#SSE4.1 SSE4_1] x86 extension version - number. - - Version number is: *4.1.0*. - */ -#define BOOST_HW_SIMD_X86_SSE4_1_VERSION BOOST_VERSION_NUMBER(4, 1, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_SSE4_2_VERSION`] - - The [@https://en.wikipedia.org/wiki/SSE4##SSE4.2 SSE4_2] x86 extension version - number. - - Version number is: *4.2.0*. - */ -#define BOOST_HW_SIMD_X86_SSE4_2_VERSION BOOST_VERSION_NUMBER(4, 2, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_AVX_VERSION`] - - The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX] x86 - extension version number. - - Version number is: *5.0.0*. - */ -#define BOOST_HW_SIMD_X86_AVX_VERSION BOOST_VERSION_NUMBER(5, 0, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_FMA3_VERSION`] - - The [@https://en.wikipedia.org/wiki/FMA_instruction_set FMA3] x86 extension - version number. - - Version number is: *5.2.0*. - */ -#define BOOST_HW_SIMD_X86_FMA3_VERSION BOOST_VERSION_NUMBER(5, 2, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_AVX2_VERSION`] - - The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 AVX2] - x86 extension version number. - - Version number is: *5.3.0*. - */ -#define BOOST_HW_SIMD_X86_AVX2_VERSION BOOST_VERSION_NUMBER(5, 3, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_MIC_VERSION`] - - The [@https://en.wikipedia.org/wiki/Xeon_Phi MIC] (Xeon Phi) x86 extension - version number. - - Version number is: *9.0.0*. - */ -#define BOOST_HW_SIMD_X86_MIC_VERSION BOOST_VERSION_NUMBER(9, 0, 0) - -#endif diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/x86_amd.h b/lib/3rdParty/boost/boost/predef/hardware/simd/x86_amd.h deleted file mode 100644 index c80d1ce2b..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/x86_amd.h +++ /dev/null @@ -1,87 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_H -#define BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_H - -#include -#include - -/*` - [heading `BOOST_HW_SIMD_X86_AMD`] - - The SIMD extension for x86 (AMD) (*if detected*). - Version number depends on the most recent detected extension. - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__SSE4A__`] [__predef_detection__]] - - [[`__FMA4__`] [__predef_detection__]] - - [[`__XOP__`] [__predef_detection__]] - - [[`BOOST_HW_SIMD_X86`] [__predef_detection__]] - ] - - [table - [[__predef_symbol__] [__predef_version__]] - - [[`__SSE4A__`] [BOOST_HW_SIMD_X86_SSE4A_VERSION]] - - [[`__FMA4__`] [BOOST_HW_SIMD_X86_FMA4_VERSION]] - - [[`__XOP__`] [BOOST_HW_SIMD_X86_XOP_VERSION]] - - [[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_X86]] - ] - - [note This predef includes every other x86 SIMD extensions and also has other - more specific extensions (FMA4, XOP, SSE4a). You should use this predef - instead of `BOOST_HW_SIMD_X86` to test if those specific extensions have - been detected.] - - */ - -#define BOOST_HW_SIMD_X86_AMD BOOST_VERSION_NUMBER_NOT_AVAILABLE - -// AMD CPUs also use x86 architecture. We first try to detect if any AMD -// specific extension are detected, if yes, then try to detect more recent x86 -// common extensions. - -#undef BOOST_HW_SIMD_X86_AMD -#if !defined(BOOST_HW_SIMD_X86_AMD) && defined(__XOP__) -# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86_AMD_XOP_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86_AMD) && defined(__FMA4__) -# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86_AMD_FMA4_VERSION -#endif -#if !defined(BOOST_HW_SIMD_X86_AMD) && defined(__SSE4A__) -# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION -#endif - -#if !defined(BOOST_HW_SIMD_X86_AMD) -# define BOOST_HW_SIMD_X86_AMD BOOST_VERSION_NUMBER_NOT_AVAILABLE -#else - // At this point, we know that we have an AMD CPU, we do need to check for - // other x86 extensions to determine the final version number. -# include -# if BOOST_HW_SIMD_X86 > BOOST_HW_SIMD_X86_AMD -# undef BOOST_HW_SIMD_X86_AMD -# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86 -# endif -# define BOOST_HW_SIMD_X86_AMD_AVAILABLE -#endif - -#define BOOST_HW_SIMD_X86_AMD_NAME "x86 (AMD) SIMD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_X86_AMD, BOOST_HW_SIMD_X86_AMD_NAME) diff --git a/lib/3rdParty/boost/boost/predef/hardware/simd/x86_amd/versions.h b/lib/3rdParty/boost/boost/predef/hardware/simd/x86_amd/versions.h deleted file mode 100644 index 1f9e96c50..000000000 --- a/lib/3rdParty/boost/boost/predef/hardware/simd/x86_amd/versions.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright Charly Chevalier 2015 -Copyright Joel Falcou 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) -*/ - -#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_VERSIONS_H -#define BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_VERSIONS_H - -#include - -/*` - Those defines represent x86 (AMD specific) SIMD extensions versions. - - [note You *MUST* compare them with the predef `BOOST_HW_SIMD_X86_AMD`.] - */ - - -// --------------------------------- - -/*` - [heading `BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION`] - - [@https://en.wikipedia.org/wiki/SSE4##SSE4A SSE4A] x86 extension (AMD specific). - - Version number is: *4.0.0*. - */ -#define BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION BOOST_VERSION_NUMBER(4, 0, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_AMD_FMA4_VERSION`] - - [@https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set FMA4] x86 extension (AMD specific). - - Version number is: *5.1.0*. - */ -#define BOOST_HW_SIMD_X86_AMD_FMA4_VERSION BOOST_VERSION_NUMBER(5, 1, 0) - -/*` - [heading `BOOST_HW_SIMD_X86_AMD_XOP_VERSION`] - - [@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific). - - Version number is: *5.1.1*. - */ -#define BOOST_HW_SIMD_X86_AMD_XOP_VERSION BOOST_VERSION_NUMBER(5, 1, 1) - - -#endif diff --git a/lib/3rdParty/boost/boost/predef/language.h b/lib/3rdParty/boost/boost/predef/language.h deleted file mode 100644 index 0a317d5ec..000000000 --- a/lib/3rdParty/boost/boost/predef/language.h +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#if !defined(BOOST_PREDEF_LANGUAGE_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_LANGUAGE_H -#define BOOST_PREDEF_LANGUAGE_H -#endif - -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/language/objc.h b/lib/3rdParty/boost/boost/predef/language/objc.h deleted file mode 100644 index 24e3ad3c5..000000000 --- a/lib/3rdParty/boost/boost/predef/language/objc.h +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_LANGUAGE_OBJC_H -#define BOOST_PREDEF_LANGUAGE_OBJC_H - -#include -#include - -/*` -[heading `BOOST_LANG_OBJC`] - -[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__OBJC__`] [__predef_detection__]] - ] - */ - -#define BOOST_LANG_OBJC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__OBJC__) -# undef BOOST_LANG_OBJC -# define BOOST_LANG_OBJC BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_LANG_OBJC -# define BOOST_LANG_OBJC_AVAILABLE -#endif - -#define BOOST_LANG_OBJC_NAME "Objective-C" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_OBJC,BOOST_LANG_OBJC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/language/stdc.h b/lib/3rdParty/boost/boost/predef/language/stdc.h deleted file mode 100644 index db25c12dc..000000000 --- a/lib/3rdParty/boost/boost/predef/language/stdc.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_LANGUAGE_STDC_H -#define BOOST_PREDEF_LANGUAGE_STDC_H - -#include -#include - -/*` -[heading `BOOST_LANG_STDC`] - -[@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__STDC__`] [__predef_detection__]] - - [[`__STDC_VERSION__`] [V.R.P]] - ] - */ - -#define BOOST_LANG_STDC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__STDC__) -# undef BOOST_LANG_STDC -# if defined(__STDC_VERSION__) -# if (__STDC_VERSION__ > 100) -# define BOOST_LANG_STDC BOOST_PREDEF_MAKE_YYYYMM(__STDC_VERSION__) -# else -# define BOOST_LANG_STDC BOOST_VERSION_NUMBER_AVAILABLE -# endif -# else -# define BOOST_LANG_STDC BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LANG_STDC -# define BOOST_LANG_STDC_AVAILABLE -#endif - -#define BOOST_LANG_STDC_NAME "Standard C" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDC,BOOST_LANG_STDC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/language/stdcpp.h b/lib/3rdParty/boost/boost/predef/language/stdcpp.h deleted file mode 100644 index 34dc8c7de..000000000 --- a/lib/3rdParty/boost/boost/predef/language/stdcpp.h +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_LANGUAGE_STDCPP_H -#define BOOST_PREDEF_LANGUAGE_STDCPP_H - -#include -#include - -/*` -[heading `BOOST_LANG_STDCPP`] - -[@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. -Because of the way the C++ standardization process works the -defined version year will not be the commonly known year of the standard. -Specifically the defined versions are: - -[table Detected Version Number vs. C++ Standard Year - [[Detected Version Number] [Standard Year] [C++ Standard]] - [[27.11.1] [1998] [ISO/IEC 14882:1998]] - [[41.12.1] [2011] [ISO/IEC 14882:2011]] -] - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__cplusplus`] [__predef_detection__]] - - [[`__cplusplus`] [YYYY.MM.1]] - ] - */ - -#define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__cplusplus) -# undef BOOST_LANG_STDCPP -# if (__cplusplus > 100) -# define BOOST_LANG_STDCPP BOOST_PREDEF_MAKE_YYYYMM(__cplusplus) -# else -# define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LANG_STDCPP -# define BOOST_LANG_STDCPP_AVAILABLE -#endif - -#define BOOST_LANG_STDCPP_NAME "Standard C++" - -/*` -[heading `BOOST_LANG_STDCPPCLI`] - -[@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language. -If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__cplusplus_cli`] [__predef_detection__]] - - [[`__cplusplus_cli`] [YYYY.MM.1]] - ] - */ - -#define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__cplusplus_cli) -# undef BOOST_LANG_STDCPPCLI -# if (__cplusplus_cli > 100) -# define BOOST_LANG_STDCPPCLI BOOST_PREDEF_MAKE_YYYYMM(__cplusplus_cli) -# else -# define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LANG_STDCPPCLI -# define BOOST_LANG_STDCPPCLI_AVAILABLE -#endif - -#define BOOST_LANG_STDCPPCLI_NAME "Standard C++/CLI" - -/*` -[heading `BOOST_LANG_STDECPP`] - -[@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__embedded_cplusplus`] [__predef_detection__]] - ] - */ - -#define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__embedded_cplusplus) -# undef BOOST_LANG_STDECPP -# define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_LANG_STDECPP -# define BOOST_LANG_STDECPP_AVAILABLE -#endif - -#define BOOST_LANG_STDECPP_NAME "Standard Embedded C++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPP,BOOST_LANG_STDCPP_NAME) - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPPCLI,BOOST_LANG_STDCPPCLI_NAME) - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDECPP,BOOST_LANG_STDECPP_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library.h b/lib/3rdParty/boost/boost/predef/library.h deleted file mode 100644 index 40518a90d..000000000 --- a/lib/3rdParty/boost/boost/predef/library.h +++ /dev/null @@ -1,16 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#if !defined(BOOST_PREDEF_LIBRARY_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_LIBRARY_H -#define BOOST_PREDEF_LIBRARY_H -#endif - -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/library/c.h b/lib/3rdParty/boost/boost/predef/library/c.h deleted file mode 100644 index fa8841e82..000000000 --- a/lib/3rdParty/boost/boost/predef/library/c.h +++ /dev/null @@ -1,20 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#if !defined(BOOST_PREDEF_LIBRARY_C_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_LIBRARY_C_H -#define BOOST_PREDEF_LIBRARY_C_H -#endif - -#include - -#include -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/library/c/_prefix.h b/lib/3rdParty/boost/boost/predef/library/c/_prefix.h deleted file mode 100644 index 12bcb0fb3..000000000 --- a/lib/3rdParty/boost/boost/predef/library/c/_prefix.h +++ /dev/null @@ -1,13 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_C__PREFIX_H -#define BOOST_PREDEF_LIBRARY_C__PREFIX_H - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/library/c/gnu.h b/lib/3rdParty/boost/boost/predef/library/c/gnu.h deleted file mode 100644 index 9e4ca89d6..000000000 --- a/lib/3rdParty/boost/boost/predef/library/c/gnu.h +++ /dev/null @@ -1,61 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_C_GNU_H -#define BOOST_PREDEF_LIBRARY_C_GNU_H - -#include -#include - -#include - -#if defined(__STDC__) -#include -#elif defined(__cplusplus) -#include -#endif - -/*` -[heading `BOOST_LIB_C_GNU`] - -[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library. -Version number available as major, and minor. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__GLIBC__`] [__predef_detection__]] - [[`__GNU_LIBRARY__`] [__predef_detection__]] - - [[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]] - [[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]] - ] - */ - -#define BOOST_LIB_C_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__GLIBC__) || defined(__GNU_LIBRARY__) -# undef BOOST_LIB_C_GNU -# if defined(__GLIBC__) -# define BOOST_LIB_C_GNU \ - BOOST_VERSION_NUMBER(__GLIBC__,__GLIBC_MINOR__,0) -# else -# define BOOST_LIB_C_GNU \ - BOOST_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0) -# endif -#endif - -#if BOOST_LIB_C_GNU -# define BOOST_LIB_C_GNU_AVAILABLE -#endif - -#define BOOST_LIB_C_GNU_NAME "GNU" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_GNU,BOOST_LIB_C_GNU_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/c/uc.h b/lib/3rdParty/boost/boost/predef/library/c/uc.h deleted file mode 100644 index 03081e94c..000000000 --- a/lib/3rdParty/boost/boost/predef/library/c/uc.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_C_UC_H -#define BOOST_PREDEF_LIBRARY_C_UC_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_C_UC`] - -[@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__UCLIBC__`] [__predef_detection__]] - - [[`__UCLIBC_MAJOR__`, `__UCLIBC_MINOR__`, `__UCLIBC_SUBLEVEL__`] [V.R.P]] - ] - */ - -#define BOOST_LIB_C_UC BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__UCLIBC__) -# undef BOOST_LIB_C_UC -# define BOOST_LIB_C_UC BOOST_VERSION_NUMBER(\ - __UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__) -#endif - -#if BOOST_LIB_C_UC -# define BOOST_LIB_C_UC_AVAILABLE -#endif - -#define BOOST_LIB_C_UC_NAME "uClibc" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_UC,BOOST_LIB_C_UC_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/c/vms.h b/lib/3rdParty/boost/boost/predef/library/c/vms.h deleted file mode 100644 index 685f1a77d..000000000 --- a/lib/3rdParty/boost/boost/predef/library/c/vms.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_C_VMS_H -#define BOOST_PREDEF_LIBRARY_C_VMS_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_C_VMS`] - -VMS libc Standard C library. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__CRTL_VER`] [__predef_detection__]] - - [[`__CRTL_VER`] [V.R.P]] - ] - */ - -#define BOOST_LIB_C_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__CRTL_VER) -# undef BOOST_LIB_C_VMS -# define BOOST_LIB_C_VMS BOOST_PREDEF_MAKE_10_VVRR0PP00(__CRTL_VER) -#endif - -#if BOOST_LIB_C_VMS -# define BOOST_LIB_C_VMS_AVAILABLE -#endif - -#define BOOST_LIB_C_VMS_NAME "VMS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_VMS,BOOST_LIB_C_VMS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/c/zos.h b/lib/3rdParty/boost/boost/predef/library/c/zos.h deleted file mode 100644 index 222d35539..000000000 --- a/lib/3rdParty/boost/boost/predef/library/c/zos.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_C_ZOS_H -#define BOOST_PREDEF_LIBRARY_C_ZOS_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_C_ZOS`] - -z/OS libc Standard C library. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__LIBREL__`] [__predef_detection__]] - - [[`__LIBREL__`] [V.R.P]] - [[`__TARGET_LIB__`] [V.R.P]] - ] - */ - -#define BOOST_LIB_C_ZOS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__LIBREL__) -# undef BOOST_LIB_C_ZOS -# if !defined(BOOST_LIB_C_ZOS) && defined(__LIBREL__) -# define BOOST_LIB_C_ZOS BOOST_PREDEF_MAKE_0X_VRRPPPP(__LIBREL__) -# endif -# if !defined(BOOST_LIB_C_ZOS) && defined(__TARGET_LIB__) -# define BOOST_LIB_C_ZOS BOOST_PREDEF_MAKE_0X_VRRPPPP(__TARGET_LIB__) -# endif -# if !defined(BOOST_LIB_C_ZOS) -# define BOOST_LIB_C_ZOS BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LIB_C_ZOS -# define BOOST_LIB_C_ZOS_AVAILABLE -#endif - -#define BOOST_LIB_C_ZOS_NAME "z/OS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_ZOS,BOOST_LIB_C_ZOS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std.h b/lib/3rdParty/boost/boost/predef/library/std.h deleted file mode 100644 index 403b6ff37..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std.h +++ /dev/null @@ -1,25 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ -#if !defined(BOOST_PREDEF_LIBRARY_STD_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_LIBRARY_STD_H -#define BOOST_PREDEF_LIBRARY_STD_H -#endif - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/library/std/_prefix.h b/lib/3rdParty/boost/boost/predef/library/std/_prefix.h deleted file mode 100644 index 932b8557b..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/_prefix.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ -#ifndef BOOST_PREDEF_LIBRARY_STD__PREFIX_H -#define BOOST_PREDEF_LIBRARY_STD__PREFIX_H - -/* -We need to include an STD header to gives us the context -of which library we are using. The "smallest" code-wise header -seems to be . Boost uses but as far -as I can tell (RR) it's not a stand-alone header in most -implementations. Using also has the benefit of -being available in EC++, so we get a chance to make this work -for embedded users. And since it's not a header impacted by TR1 -there's no magic needed for inclusion in the face of the -Boost.TR1 library. -*/ -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/library/std/cxx.h b/lib/3rdParty/boost/boost/predef/library/std/cxx.h deleted file mode 100644 index 07b52cd6a..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/cxx.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_CXX_H -#define BOOST_PREDEF_LIBRARY_STD_CXX_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_CXX`] - -[@http://libcxx.llvm.org/ libc++] C++ Standard Library. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_LIBCPP_VERSION`] [__predef_detection__]] - - [[`_LIBCPP_VERSION`] [V.0.P]] - ] - */ - -#define BOOST_LIB_STD_CXX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(_LIBCPP_VERSION) -# undef BOOST_LIB_STD_CXX -# define BOOST_LIB_STD_CXX BOOST_PREDEF_MAKE_10_VPPP(_LIBCPP_VERSION) -#endif - -#if BOOST_LIB_STD_CXX -# define BOOST_LIB_STD_CXX_AVAILABLE -#endif - -#define BOOST_LIB_STD_CXX_NAME "libc++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_CXX,BOOST_LIB_STD_CXX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/dinkumware.h b/lib/3rdParty/boost/boost/predef/library/std/dinkumware.h deleted file mode 100644 index 0fc077605..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/dinkumware.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_DINKUMWARE_H -#define BOOST_PREDEF_LIBRARY_STD_DINKUMWARE_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_DINKUMWARE`] - -[@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library. -If available version number as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_YVALS`, `__IBMCPP__`] [__predef_detection__]] - [[`_CPPLIB_VER`] [__predef_detection__]] - - [[`_CPPLIB_VER`] [V.R.0]] - ] - */ - -#define BOOST_LIB_STD_DINKUMWARE BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -# undef BOOST_LIB_STD_DINKUMWARE -# if defined(_CPPLIB_VER) -# define BOOST_LIB_STD_DINKUMWARE BOOST_PREDEF_MAKE_10_VVRR(_CPPLIB_VER) -# else -# define BOOST_LIB_STD_DINKUMWARE BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LIB_STD_DINKUMWARE -# define BOOST_LIB_STD_DINKUMWARE_AVAILABLE -#endif - -#define BOOST_LIB_STD_DINKUMWARE_NAME "Dinkumware" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_DINKUMWARE,BOOST_LIB_STD_DINKUMWARE_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/libcomo.h b/lib/3rdParty/boost/boost/predef/library/std/libcomo.h deleted file mode 100644 index 97d4a53d6..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/libcomo.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_LIBCOMO_H -#define BOOST_PREDEF_LIBRARY_STD_LIBCOMO_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_COMO`] - -[@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library. -Version number available as major. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__LIBCOMO__`] [__predef_detection__]] - - [[`__LIBCOMO_VERSION__`] [V.0.0]] - ] - */ - -#define BOOST_LIB_STD_COMO BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__LIBCOMO__) -# undef BOOST_LIB_STD_COMO -# define BOOST_LIB_STD_COMO BOOST_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0) -#endif - -#if BOOST_LIB_STD_COMO -# define BOOST_LIB_STD_COMO_AVAILABLE -#endif - -#define BOOST_LIB_STD_COMO_NAME "Comeau Computing" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_COMO,BOOST_LIB_STD_COMO_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/modena.h b/lib/3rdParty/boost/boost/predef/library/std/modena.h deleted file mode 100644 index b67ac62f1..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/modena.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_MODENA_H -#define BOOST_PREDEF_LIBRARY_STD_MODENA_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_MSIPL`] - -[@http://modena.us/ Modena Software Lib++] Standard C++ Library. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`MSIPL_COMPILE_H`] [__predef_detection__]] - [[`__MSIPL_COMPILE_H`] [__predef_detection__]] - ] - */ - -#define BOOST_LIB_STD_MSIPL BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(MSIPL_COMPILE_H) || defined(__MSIPL_COMPILE_H) -# undef BOOST_LIB_STD_MSIPL -# define BOOST_LIB_STD_MSIPL BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_LIB_STD_MSIPL -# define BOOST_LIB_STD_MSIPL_AVAILABLE -#endif - -#define BOOST_LIB_STD_MSIPL_NAME "Modena Software Lib++" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_MSIPL,BOOST_LIB_STD_MSIPL_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/msl.h b/lib/3rdParty/boost/boost/predef/library/std/msl.h deleted file mode 100644 index d73c74c6d..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/msl.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_MSL_H -#define BOOST_PREDEF_LIBRARY_STD_MSL_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_MSL`] - -[@http://www.freescale.com/ Metrowerks] Standard C++ Library. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__MSL_CPP__`] [__predef_detection__]] - [[`__MSL__`] [__predef_detection__]] - - [[`__MSL_CPP__`] [V.R.P]] - [[`__MSL__`] [V.R.P]] - ] - */ - -#define BOOST_LIB_STD_MSL BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__MSL_CPP__) || defined(__MSL__) -# undef BOOST_LIB_STD_MSL -# if defined(__MSL_CPP__) -# define BOOST_LIB_STD_MSL BOOST_PREDEF_MAKE_0X_VRPP(__MSL_CPP__) -# else -# define BOOST_LIB_STD_MSL BOOST_PREDEF_MAKE_0X_VRPP(__MSL__) -# endif -#endif - -#if BOOST_LIB_STD_MSL -# define BOOST_LIB_STD_MSL_AVAILABLE -#endif - -#define BOOST_LIB_STD_MSL_NAME "Metrowerks" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_MSL,BOOST_LIB_STD_MSL_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/roguewave.h b/lib/3rdParty/boost/boost/predef/library/std/roguewave.h deleted file mode 100644 index 9c3f288b6..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/roguewave.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_ROGUEWAVE_H -#define BOOST_PREDEF_LIBRARY_STD_ROGUEWAVE_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_RW`] - -[@http://stdcxx.apache.org/ Roguewave] Standard C++ library. -If available version number as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__STD_RWCOMPILER_H__`] [__predef_detection__]] - [[`_RWSTD_VER`] [__predef_detection__]] - - [[`_RWSTD_VER`] [V.R.P]] - ] - */ - -#define BOOST_LIB_STD_RW BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) -# undef BOOST_LIB_STD_RW -# if defined(_RWSTD_VER) -# if _RWSTD_VER < 0x010000 -# define BOOST_LIB_STD_RW BOOST_PREDEF_MAKE_0X_VVRRP(_RWSTD_VER) -# else -# define BOOST_LIB_STD_RW BOOST_PREDEF_MAKE_0X_VVRRPP(_RWSTD_VER) -# endif -# else -# define BOOST_LIB_STD_RW BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LIB_STD_RW -# define BOOST_LIB_STD_RW_AVAILABLE -#endif - -#define BOOST_LIB_STD_RW_NAME "Roguewave" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_RW,BOOST_LIB_STD_RW_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/sgi.h b/lib/3rdParty/boost/boost/predef/library/std/sgi.h deleted file mode 100644 index 5d19bbac4..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/sgi.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_SGI_H -#define BOOST_PREDEF_LIBRARY_STD_SGI_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_SGI`] - -[@http://www.sgi.com/tech/stl/ SGI] Standard C++ library. -If available version number as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__STL_CONFIG_H`] [__predef_detection__]] - - [[`__SGI_STL`] [V.R.P]] - ] - */ - -#define BOOST_LIB_STD_SGI BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__STL_CONFIG_H) -# undef BOOST_LIB_STD_SGI -# if defined(__SGI_STL) -# define BOOST_LIB_STD_SGI BOOST_PREDEF_MAKE_0X_VRP(__SGI_STL) -# else -# define BOOST_LIB_STD_SGI BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_LIB_STD_SGI -# define BOOST_LIB_STD_SGI_AVAILABLE -#endif - -#define BOOST_LIB_STD_SGI_NAME "SGI" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_SGI,BOOST_LIB_STD_SGI_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/stdcpp3.h b/lib/3rdParty/boost/boost/predef/library/std/stdcpp3.h deleted file mode 100644 index c9802924a..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/stdcpp3.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_STDCPP3_H -#define BOOST_PREDEF_LIBRARY_STD_STDCPP3_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_GNU`] - -[@http://gcc.gnu.org/libstdc++/ GNU libstdc++] Standard C++ library. -Version number available as year (from 1970), month, and day. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__GLIBCXX__`] [__predef_detection__]] - [[`__GLIBCPP__`] [__predef_detection__]] - - [[`__GLIBCXX__`] [V.R.P]] - [[`__GLIBCPP__`] [V.R.P]] - ] - */ - -#define BOOST_LIB_STD_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__GLIBCPP__) || defined(__GLIBCXX__) -# undef BOOST_LIB_STD_GNU -# if defined(__GLIBCXX__) -# define BOOST_LIB_STD_GNU BOOST_PREDEF_MAKE_YYYYMMDD(__GLIBCXX__) -# else -# define BOOST_LIB_STD_GNU BOOST_PREDEF_MAKE_YYYYMMDD(__GLIBCPP__) -# endif -#endif - -#if BOOST_LIB_STD_GNU -# define BOOST_LIB_STD_GNU_AVAILABLE -#endif - -#define BOOST_LIB_STD_GNU_NAME "GNU" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_GNU,BOOST_LIB_STD_GNU_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/stlport.h b/lib/3rdParty/boost/boost/predef/library/std/stlport.h deleted file mode 100644 index c09483bd9..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/stlport.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_STLPORT_H -#define BOOST_PREDEF_LIBRARY_STD_STLPORT_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_STLPORT`] - -[@http://sourceforge.net/projects/stlport/ STLport Standard C++] library. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__SGI_STL_PORT`] [__predef_detection__]] - [[`_STLPORT_VERSION`] [__predef_detection__]] - - [[`_STLPORT_MAJOR`, `_STLPORT_MINOR`, `_STLPORT_PATCHLEVEL`] [V.R.P]] - [[`_STLPORT_VERSION`] [V.R.P]] - [[`__SGI_STL_PORT`] [V.R.P]] - ] - */ - -#define BOOST_LIB_STD_STLPORT BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -# undef BOOST_LIB_STD_STLPORT -# if !defined(BOOST_LIB_STD_STLPORT) && defined(_STLPORT_MAJOR) -# define BOOST_LIB_STD_STLPORT \ - BOOST_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL) -# endif -# if !defined(BOOST_LIB_STD_STLPORT) && defined(_STLPORT_VERSION) -# define BOOST_LIB_STD_STLPORT BOOST_PREDEF_MAKE_0X_VRP(_STLPORT_VERSION) -# endif -# if !defined(BOOST_LIB_STD_STLPORT) -# define BOOST_LIB_STD_STLPORT BOOST_PREDEF_MAKE_0X_VRP(__SGI_STL_PORT) -# endif -#endif - -#if BOOST_LIB_STD_STLPORT -# define BOOST_LIB_STD_STLPORT_AVAILABLE -#endif - -#define BOOST_LIB_STD_STLPORT_NAME "STLport" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_STLPORT,BOOST_LIB_STD_STLPORT_NAME) diff --git a/lib/3rdParty/boost/boost/predef/library/std/vacpp.h b/lib/3rdParty/boost/boost/predef/library/std/vacpp.h deleted file mode 100644 index 632f846c2..000000000 --- a/lib/3rdParty/boost/boost/predef/library/std/vacpp.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_LIBRARY_STD_VACPP_H -#define BOOST_PREDEF_LIBRARY_STD_VACPP_H - -#include - -#include -#include - -/*` -[heading `BOOST_LIB_STD_IBM`] - -[@http://www.ibm.com/software/awdtools/xlcpp/ IBM VACPP Standard C++] library. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__IBMCPP__`] [__predef_detection__]] - ] - */ - -#define BOOST_LIB_STD_IBM BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__IBMCPP__) -# undef BOOST_LIB_STD_IBM -# define BOOST_LIB_STD_IBM BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_LIB_STD_IBM -# define BOOST_LIB_STD_IBM_AVAILABLE -#endif - -#define BOOST_LIB_STD_IBM_NAME "IBM VACPP" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_IBM,BOOST_LIB_STD_IBM_NAME) diff --git a/lib/3rdParty/boost/boost/predef/make.h b/lib/3rdParty/boost/boost/predef/make.h deleted file mode 100644 index 4f2f9ee76..000000000 --- a/lib/3rdParty/boost/boost/predef/make.h +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ -#include - -#ifndef BOOST_PREDEF_MAKE_H -#define BOOST_PREDEF_MAKE_H - -/* -Shorthands for the common version number formats used by vendors... -*/ - -/*` -[heading `BOOST_PREDEF_MAKE_..` macros] - -These set of macros decompose common vendor version number -macros which are composed version, revision, and patch digits. -The naming convention indicates: - -* The base of the specified version number. "`BOOST_PREDEF_MAKE_0X`" for - hexadecimal digits, and "`BOOST_PREDEF_MAKE_10`" for decimal digits. -* The format of the vendor version number. Where "`V`" indicates the version digits, - "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`" - indicates an ignored digit. - -Macros are: -*/ -/*` `BOOST_PREDEF_MAKE_0X_VRP(V)` */ -#define BOOST_PREDEF_MAKE_0X_VRP(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF)) -/*` `BOOST_PREDEF_MAKE_0X_VVRP(V)` */ -#define BOOST_PREDEF_MAKE_0X_VVRP(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF)) -/*` `BOOST_PREDEF_MAKE_0X_VRPP(V)` */ -#define BOOST_PREDEF_MAKE_0X_VRPP(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF)) -/*` `BOOST_PREDEF_MAKE_0X_VVRR(V)` */ -#define BOOST_PREDEF_MAKE_0X_VVRR(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0) -/*` `BOOST_PREDEF_MAKE_0X_VRRPPPP(V)` */ -#define BOOST_PREDEF_MAKE_0X_VRRPPPP(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF)) -/*` `BOOST_PREDEF_MAKE_0X_VVRRP(V)` */ -#define BOOST_PREDEF_MAKE_0X_VVRRP(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF)) -/*` `BOOST_PREDEF_MAKE_0X_VRRPP000(V)` */ -#define BOOST_PREDEF_MAKE_0X_VRRPP000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12) -/*` `BOOST_PREDEF_MAKE_0X_VVRRPP(V)` */ -#define BOOST_PREDEF_MAKE_0X_VVRRPP(V) BOOST_VERSION_NUMBER((V&0xFF0000)>>16,(V&0xFF00)>>8,(V&0xFF)) -/*` `BOOST_PREDEF_MAKE_10_VPPP(V)` */ -#define BOOST_PREDEF_MAKE_10_VPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000) -/*` `BOOST_PREDEF_MAKE_10_VRP(V)` */ -#define BOOST_PREDEF_MAKE_10_VRP(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10) -/*` `BOOST_PREDEF_MAKE_10_VRP000(V)` */ -#define BOOST_PREDEF_MAKE_10_VRP000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10) -/*` `BOOST_PREDEF_MAKE_10_VRPP(V)` */ -#define BOOST_PREDEF_MAKE_10_VRPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100) -/*` `BOOST_PREDEF_MAKE_10_VRR(V)` */ -#define BOOST_PREDEF_MAKE_10_VRR(V) BOOST_VERSION_NUMBER(((V)/100)%10,(V)%100,0) -/*` `BOOST_PREDEF_MAKE_10_VRRPP(V)` */ -#define BOOST_PREDEF_MAKE_10_VRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100) -/*` `BOOST_PREDEF_MAKE_10_VRR000(V)` */ -#define BOOST_PREDEF_MAKE_10_VRR000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0) -/*` `BOOST_PREDEF_MAKE_10_VV00(V)` */ -#define BOOST_PREDEF_MAKE_10_VV00(V) BOOST_VERSION_NUMBER(((V)/100)%100,0,0) -/*` `BOOST_PREDEF_MAKE_10_VVRR(V)` */ -#define BOOST_PREDEF_MAKE_10_VVRR(V) BOOST_VERSION_NUMBER(((V)/100)%100,(V)%100,0) -/*` `BOOST_PREDEF_MAKE_10_VVRRPP(V)` */ -#define BOOST_PREDEF_MAKE_10_VVRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100) -/*` `BOOST_PREDEF_MAKE_10_VVRR0PP00(V)` */ -#define BOOST_PREDEF_MAKE_10_VVRR0PP00(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100) -/*` `BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)` */ -#define BOOST_PREDEF_MAKE_10_VVRR0PPPP(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000) -/*` `BOOST_PREDEF_MAKE_10_VVRR00PP00(V)` */ -#define BOOST_PREDEF_MAKE_10_VVRR00PP00(V) BOOST_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100) -/*` -[heading `BOOST_PREDEF_MAKE_*..` date macros] - -Date decomposition macros return a date in the relative to the 1970 -Epoch date. If the month is not available, January 1st is used as the month and day. -If the day is not available, but the month is, the 1st of the month is used as the day. -*/ -/*` `BOOST_PREDEF_MAKE_DATE(Y,M,D)` */ -#define BOOST_PREDEF_MAKE_DATE(Y,M,D) BOOST_VERSION_NUMBER((Y)%10000-1970,(M)%100,(D)%100) -/*` `BOOST_PREDEF_MAKE_YYYYMMDD(V)` */ -#define BOOST_PREDEF_MAKE_YYYYMMDD(V) BOOST_PREDEF_MAKE_DATE(((V)/10000)%10000,((V)/100)%100,(V)%100) -/*` `BOOST_PREDEF_MAKE_YYYY(V)` */ -#define BOOST_PREDEF_MAKE_YYYY(V) BOOST_PREDEF_MAKE_DATE(V,1,1) -/*` `BOOST_PREDEF_MAKE_YYYYMM(V)` */ -#define BOOST_PREDEF_MAKE_YYYYMM(V) BOOST_PREDEF_MAKE_DATE((V)/100,(V)%100,1) - -#endif diff --git a/lib/3rdParty/boost/boost/predef/os.h b/lib/3rdParty/boost/boost/predef/os.h deleted file mode 100644 index bedf99ec5..000000000 --- a/lib/3rdParty/boost/boost/predef/os.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright Rene Rivera 2008-2015 -Copyright Franz Detro 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) -*/ - -#if !defined(BOOST_PREDEF_OS_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_OS_H -#define BOOST_PREDEF_OS_H -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/predef/os/aix.h b/lib/3rdParty/boost/boost/predef/os/aix.h deleted file mode 100644 index 3e5a953f1..000000000 --- a/lib/3rdParty/boost/boost/predef/os/aix.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_AIX_H -#define BOOST_PREDEF_OS_AIX_H - -#include -#include - -/*` -[heading `BOOST_OS_AIX`] - -[@http://en.wikipedia.org/wiki/AIX_operating_system IBM AIX] operating system. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_AIX`] [__predef_detection__]] - [[`__TOS_AIX__`] [__predef_detection__]] - - [[`_AIX43`] [4.3.0]] - [[`_AIX41`] [4.1.0]] - [[`_AIX32`] [3.2.0]] - [[`_AIX3`] [3.0.0]] - ] - */ - -#define BOOST_OS_AIX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(_AIX) || defined(__TOS_AIX__) \ - ) -# undef BOOST_OS_AIX -# if !defined(BOOST_OS_AIX) && defined(_AIX43) -# define BOOST_OS_AIX BOOST_VERSION_NUMBER(4,3,0) -# endif -# if !defined(BOOST_OS_AIX) && defined(_AIX41) -# define BOOST_OS_AIX BOOST_VERSION_NUMBER(4,1,0) -# endif -# if !defined(BOOST_OS_AIX) && defined(_AIX32) -# define BOOST_OS_AIX BOOST_VERSION_NUMBER(3,2,0) -# endif -# if !defined(BOOST_OS_AIX) && defined(_AIX3) -# define BOOST_OS_AIX BOOST_VERSION_NUMBER(3,0,0) -# endif -# if !defined(BOOST_OS_AIX) -# define BOOST_OS_AIX BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_AIX -# define BOOST_OS_AIX_AVAILABLE -# include -#endif - -#define BOOST_OS_AIX_NAME "IBM AIX" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AIX,BOOST_OS_AIX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/amigaos.h b/lib/3rdParty/boost/boost/predef/os/amigaos.h deleted file mode 100644 index 7b32ddf59..000000000 --- a/lib/3rdParty/boost/boost/predef/os/amigaos.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_AMIGAOS_H -#define BOOST_PREDEF_OS_AMIGAOS_H - -#include -#include - -/*` -[heading `BOOST_OS_AMIGAOS`] - -[@http://en.wikipedia.org/wiki/AmigaOS AmigaOS] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`AMIGA`] [__predef_detection__]] - [[`__amigaos__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(AMIGA) || defined(__amigaos__) \ - ) -# undef BOOST_OS_AMIGAOS -# define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_AMIGAOS -# define BOOST_OS_AMIGAOS_AVAILABLE -# include -#endif - -#define BOOST_OS_AMIGAOS_NAME "AmigaOS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AMIGAOS,BOOST_OS_AMIGAOS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/android.h b/lib/3rdParty/boost/boost/predef/os/android.h deleted file mode 100644 index 00836e7fc..000000000 --- a/lib/3rdParty/boost/boost/predef/os/android.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_OS_ADROID_H -#define BOOST_PREDEF_OS_ADROID_H - -#include -#include - -/*` -[heading `BOOST_OS_ANDROID`] - -[@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__ANDROID__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__ANDROID__) \ - ) -# undef BOOST_OS_ANDROID -# define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_ANDROID -# define BOOST_OS_ANDROID_AVAILABLE -# include -#endif - -#define BOOST_OS_ANDROID_NAME "Android" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_ANDROID,BOOST_OS_ANDROID_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/beos.h b/lib/3rdParty/boost/boost/predef/os/beos.h deleted file mode 100644 index 19f4cb71e..000000000 --- a/lib/3rdParty/boost/boost/predef/os/beos.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_BEOS_H -#define BOOST_PREDEF_OS_BEOS_H - -#include -#include - -/*` -[heading `BOOST_OS_BEOS`] - -[@http://en.wikipedia.org/wiki/BeOS BeOS] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__BEOS__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_BEOS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__BEOS__) \ - ) -# undef BOOST_OS_BEOS -# define BOOST_OS_BEOS BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_BEOS -# define BOOST_OS_BEOS_AVAILABLE -# include -#endif - -#define BOOST_OS_BEOS_NAME "BeOS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BEOS,BOOST_OS_BEOS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/bsd.h b/lib/3rdParty/boost/boost/predef/os/bsd.h deleted file mode 100644 index fad9aed78..000000000 --- a/lib/3rdParty/boost/boost/predef/os/bsd.h +++ /dev/null @@ -1,103 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_BSD_H -#define BOOST_PREDEF_OS_BSD_H - -/* Special case: OSX will define BSD predefs if the sys/param.h - * header is included. We can guard against that, but only if we - * detect OSX first. Hence we will force include OSX detection - * before doing any BSD detection. - */ -#include - -#include -#include - -/*` -[heading `BOOST_OS_BSD`] - -[@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system. - -BSD has various branch operating systems possible and each detected -individually. This detects the following variations and sets a specific -version number macro to match: - -* `BOOST_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] -* `BOOST_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] -* `BOOST_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] -* `BOOST_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD] -* `BOOST_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] - -[note The general `BOOST_OS_BSD` is set in all cases to indicate some form -of BSD. If the above variants is detected the corresponding macro is also set.] - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`BSD`] [__predef_detection__]] - [[`_SYSTYPE_BSD`] [__predef_detection__]] - - [[`BSD4_2`] [4.2.0]] - [[`BSD4_3`] [4.3.0]] - [[`BSD4_4`] [4.4.0]] - [[`BSD`] [V.R.0]] - ] - */ - -#include -#include -#include -#include -#include - -#ifndef BOOST_OS_BSD -#define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE -#endif - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(BSD) || \ - defined(_SYSTYPE_BSD) \ - ) -# undef BOOST_OS_BSD -# include -# if !defined(BOOST_OS_BSD) && defined(BSD4_4) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) -# endif -# if !defined(BOOST_OS_BSD) && defined(BSD4_3) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0) -# endif -# if !defined(BOOST_OS_BSD) && defined(BSD4_2) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) -# endif -# if !defined(BOOST_OS_BSD) && defined(BSD) -# define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD) -# endif -# if !defined(BOOST_OS_BSD) -# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_BSD -# define BOOST_OS_BSD_AVAILABLE -# include -#endif - -#define BOOST_OS_BSD_NAME "BSD" - -#else - -#include -#include -#include -#include -#include - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/bsd/bsdi.h b/lib/3rdParty/boost/boost/predef/os/bsd/bsdi.h deleted file mode 100644 index afdcd3eb7..000000000 --- a/lib/3rdParty/boost/boost/predef/os/bsd/bsdi.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright Rene Rivera 2012-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) -*/ - -#ifndef BOOST_PREDEF_OS_BSD_BSDI_H -#define BOOST_PREDEF_OS_BSD_BSDI_H - -#include - -/*` -[heading `BOOST_OS_BSD_BSDI`] - -[@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__bsdi__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__bsdi__) \ - ) -# ifndef BOOST_OS_BSD_AVAILABLE -# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE -# define BOOST_OS_BSD_AVAILABLE -# endif -# undef BOOST_OS_BSD_BSDI -# define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_BSD_BSDI -# define BOOST_OS_BSD_BSDI_AVAILABLE -# include -#endif - -#define BOOST_OS_BSD_BSDI_NAME "BSDi BSD/OS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_BSDI,BOOST_OS_BSD_BSDI_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/bsd/dragonfly.h b/lib/3rdParty/boost/boost/predef/os/bsd/dragonfly.h deleted file mode 100644 index 1d075798a..000000000 --- a/lib/3rdParty/boost/boost/predef/os/bsd/dragonfly.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -Copyright Rene Rivera 2012-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) -*/ - -#ifndef BOOST_PREDEF_OS_BSD_DRAGONFLY_H -#define BOOST_PREDEF_OS_BSD_DRAGONFLY_H - -#include - -/*` -[heading `BOOST_OS_BSD_DRAGONFLY`] - -[@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__DragonFly__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_BSD_DRAGONFLY BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__DragonFly__) \ - ) -# ifndef BOOST_OS_BSD_AVAILABLE -# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE -# define BOOST_OS_BSD_AVAILABLE -# endif -# undef BOOST_OS_BSD_DRAGONFLY -# if defined(__DragonFly__) -# define BOOST_OS_DRAGONFLY_BSD BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_BSD_DRAGONFLY -# define BOOST_OS_BSD_DRAGONFLY_AVAILABLE -# include -#endif - -#define BOOST_OS_BSD_DRAGONFLY_NAME "DragonFly BSD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_DRAGONFLY,BOOST_OS_BSD_DRAGONFLY_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/bsd/free.h b/lib/3rdParty/boost/boost/predef/os/bsd/free.h deleted file mode 100644 index 248011ae7..000000000 --- a/lib/3rdParty/boost/boost/predef/os/bsd/free.h +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright Rene Rivera 2012-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) -*/ - -#ifndef BOOST_PREDEF_OS_BSD_FREE_H -#define BOOST_PREDEF_OS_BSD_FREE_H - -#include - -/*` -[heading `BOOST_OS_BSD_FREE`] - -[@http://en.wikipedia.org/wiki/Freebsd FreeBSD] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__FreeBSD__`] [__predef_detection__]] - - [[`__FreeBSD_version`] [V.R.P]] - ] - */ - -#define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__FreeBSD__) \ - ) -# ifndef BOOST_OS_BSD_AVAILABLE -# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE -# define BOOST_OS_BSD_AVAILABLE -# endif -# undef BOOST_OS_BSD_FREE -# if defined(__FreeBSD_version) -# if __FreeBSD_version < 500000 -# define BOOST_OS_BSD_FREE \ - BOOST_PREDEF_MAKE_10_VRP000(__FreeBSD_version) -# else -# define BOOST_OS_BSD_FREE \ - BOOST_PREDEF_MAKE_10_VRR000(__FreeBSD_version) -# endif -# else -# define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_BSD_FREE -# define BOOST_OS_BSD_FREE_AVAILABLE -# include -#endif - -#define BOOST_OS_BSD_FREE_NAME "Free BSD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_FREE,BOOST_OS_BSD_FREE_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/bsd/net.h b/lib/3rdParty/boost/boost/predef/os/bsd/net.h deleted file mode 100644 index 387cbde54..000000000 --- a/lib/3rdParty/boost/boost/predef/os/bsd/net.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -Copyright Rene Rivera 2012-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) -*/ - -#ifndef BOOST_PREDEF_OS_BSD_NET_H -#define BOOST_PREDEF_OS_BSD_NET_H - -#include - -/*` -[heading `BOOST_OS_BSD_NET`] - -[@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__NETBSD__`] [__predef_detection__]] - [[`__NetBSD__`] [__predef_detection__]] - - [[`__NETBSD_version`] [V.R.P]] - [[`NetBSD0_8`] [0.8.0]] - [[`NetBSD0_9`] [0.9.0]] - [[`NetBSD1_0`] [1.0.0]] - [[`__NetBSD_Version`] [V.R.P]] - ] - */ - -#define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__NETBSD__) || defined(__NetBSD__) \ - ) -# ifndef BOOST_OS_BSD_AVAILABLE -# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE -# define BOOST_OS_BSD_AVAILABLE -# endif -# undef BOOST_OS_BSD_NET -# if defined(__NETBSD__) -# if defined(__NETBSD_version) -# if __NETBSD_version < 500000 -# define BOOST_OS_BSD_NET \ - BOOST_PREDEF_MAKE_10_VRP000(__NETBSD_version) -# else -# define BOOST_OS_BSD_NET \ - BOOST_PREDEF_MAKE_10_VRR000(__NETBSD_version) -# endif -# else -# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE -# endif -# elif defined(__NetBSD__) -# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_8) -# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,8,0) -# endif -# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_9) -# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,9,0) -# endif -# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD1_0) -# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(1,0,0) -# endif -# if !defined(BOOST_OS_BSD_NET) && defined(__NetBSD_Version) -# define BOOST_OS_BSD_NET \ - BOOST_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version) -# endif -# if !defined(BOOST_OS_BSD_NET) -# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE -# endif -# endif -#endif - -#if BOOST_OS_BSD_NET -# define BOOST_OS_BSD_NET_AVAILABLE -# include -#endif - -#define BOOST_OS_BSD_NET_NAME "DragonFly BSD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_NET,BOOST_OS_BSD_NET_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/bsd/open.h b/lib/3rdParty/boost/boost/predef/os/bsd/open.h deleted file mode 100644 index 423103ac5..000000000 --- a/lib/3rdParty/boost/boost/predef/os/bsd/open.h +++ /dev/null @@ -1,171 +0,0 @@ -/* -Copyright Rene Rivera 2012-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) -*/ - -#ifndef BOOST_PREDEF_OS_BSD_OPEN_H -#define BOOST_PREDEF_OS_BSD_OPEN_H - -#include - -/*` -[heading `BOOST_OS_BSD_OPEN`] - -[@http://en.wikipedia.org/wiki/Openbsd OpenBSD] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__OpenBSD__`] [__predef_detection__]] - - [[`OpenBSD2_0`] [2.0.0]] - [[`OpenBSD2_1`] [2.1.0]] - [[`OpenBSD2_2`] [2.2.0]] - [[`OpenBSD2_3`] [2.3.0]] - [[`OpenBSD2_4`] [2.4.0]] - [[`OpenBSD2_5`] [2.5.0]] - [[`OpenBSD2_6`] [2.6.0]] - [[`OpenBSD2_7`] [2.7.0]] - [[`OpenBSD2_8`] [2.8.0]] - [[`OpenBSD2_9`] [2.9.0]] - [[`OpenBSD3_0`] [3.0.0]] - [[`OpenBSD3_1`] [3.1.0]] - [[`OpenBSD3_2`] [3.2.0]] - [[`OpenBSD3_3`] [3.3.0]] - [[`OpenBSD3_4`] [3.4.0]] - [[`OpenBSD3_5`] [3.5.0]] - [[`OpenBSD3_6`] [3.6.0]] - [[`OpenBSD3_7`] [3.7.0]] - [[`OpenBSD3_8`] [3.8.0]] - [[`OpenBSD3_9`] [3.9.0]] - [[`OpenBSD4_0`] [4.0.0]] - [[`OpenBSD4_1`] [4.1.0]] - [[`OpenBSD4_2`] [4.2.0]] - [[`OpenBSD4_3`] [4.3.0]] - [[`OpenBSD4_4`] [4.4.0]] - [[`OpenBSD4_5`] [4.5.0]] - [[`OpenBSD4_6`] [4.6.0]] - [[`OpenBSD4_7`] [4.7.0]] - [[`OpenBSD4_8`] [4.8.0]] - [[`OpenBSD4_9`] [4.9.0]] - ] - */ - -#define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__OpenBSD__) \ - ) -# ifndef BOOST_OS_BSD_AVAILABLE -# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE -# define BOOST_OS_BSD_AVAILABLE -# endif -# undef BOOST_OS_BSD_OPEN -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_0) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,0,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_1) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,1,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_2) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,2,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_3) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,3,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_4) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,4,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_5) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,5,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_6) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,6,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_7) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,7,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_8) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,8,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_9) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,9,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_0) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,0,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_1) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,1,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_2) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,2,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_3) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,3,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_4) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,4,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_5) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,5,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_6) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,6,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_7) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,7,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_8) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,8,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_9) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,9,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_0) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_1) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,1,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_2) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,2,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_3) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,3,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_4) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,4,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_5) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,5,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_6) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,6,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_7) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,7,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_8) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,8,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_9) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,9,0) -# endif -# if !defined(BOOST_OS_BSD_OPEN) -# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_BSD_OPEN -# define BOOST_OS_BSD_OPEN_AVAILABLE -# include -#endif - -#define BOOST_OS_BSD_OPEN_NAME "OpenBSD" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_OPEN,BOOST_OS_BSD_OPEN_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/cygwin.h b/lib/3rdParty/boost/boost/predef/os/cygwin.h deleted file mode 100644 index 9d36f0f31..000000000 --- a/lib/3rdParty/boost/boost/predef/os/cygwin.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_CYGWIN_H -#define BOOST_PREDEF_OS_CYGWIN_H - -#include -#include - -/*` -[heading `BOOST_OS_CYGWIN`] - -[@http://en.wikipedia.org/wiki/Cygwin Cygwin] evironment. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__CYGWIN__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__CYGWIN__) \ - ) -# undef BOOST_OS_CYGWIN -# define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_CYGWIN -# define BOOST_OS_CYGWIN_AVAILABLE -# include -#endif - -#define BOOST_OS_CYGWIN_NAME "Cygwin" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_CYGWIN,BOOST_OS_CYGWIN_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/haiku.h b/lib/3rdParty/boost/boost/predef/os/haiku.h deleted file mode 100644 index d79dbeac8..000000000 --- a/lib/3rdParty/boost/boost/predef/os/haiku.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Jessica Hamilton 2014 -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_OS_HAIKU_H -#define BOOST_PREDEF_OS_HAIKU_H - -#include -#include - -/*` -[heading `BOOST_OS_HAIKU`] - -[@http://en.wikipedia.org/wiki/Haiku_(operating_system) Haiku] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__HAIKU__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_HAIKU BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__HAIKU__) \ - ) -# undef BOOST_OS_HAIKU -# define BOOST_OS_HAIKU BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_HAIKU -# define BOOST_OS_HAIKU_AVAILABLE -# include -#endif - -#define BOOST_OS_HAIKU_NAME "Haiku" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_HAIKU,BOOST_OS_HAIKU_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/hpux.h b/lib/3rdParty/boost/boost/predef/os/hpux.h deleted file mode 100644 index 29243f487..000000000 --- a/lib/3rdParty/boost/boost/predef/os/hpux.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_HPUX_H -#define BOOST_PREDEF_OS_HPUX_H - -#include -#include - -/*` -[heading `BOOST_OS_HPUX`] - -[@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`hpux`] [__predef_detection__]] - [[`_hpux`] [__predef_detection__]] - [[`__hpux`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_HPUX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(hpux) || defined(_hpux) || defined(__hpux) \ - ) -# undef BOOST_OS_HPUX -# define BOOST_OS_HPUX BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_HPUX -# define BOOST_OS_HPUX_AVAILABLE -# include -#endif - -#define BOOST_OS_HPUX_NAME "HP-UX" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_HPUX,BOOST_OS_HPUX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/ios.h b/lib/3rdParty/boost/boost/predef/os/ios.h deleted file mode 100644 index f853815a6..000000000 --- a/lib/3rdParty/boost/boost/predef/os/ios.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright Franz Detro 2014 -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_OS_IOS_H -#define BOOST_PREDEF_OS_IOS_H - -#include -#include - -/*` -[heading `BOOST_OS_IOS`] - -[@http://en.wikipedia.org/wiki/iOS iOS] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__APPLE__`] [__predef_detection__]] - [[`__MACH__`] [__predef_detection__]] - [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__predef_detection__]] - - [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000]] - ] - */ - -#define BOOST_OS_IOS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__APPLE__) && defined(__MACH__) && \ - defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) \ - ) -# undef BOOST_OS_IOS -# define BOOST_OS_IOS (__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000) -#endif - -#if BOOST_OS_IOS -# define BOOST_OS_IOS_AVAILABLE -# include -#endif - -#define BOOST_OS_IOS_NAME "iOS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_IOS,BOOST_OS_IOS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/irix.h b/lib/3rdParty/boost/boost/predef/os/irix.h deleted file mode 100644 index fa6ac41dc..000000000 --- a/lib/3rdParty/boost/boost/predef/os/irix.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_IRIX_H -#define BOOST_PREDEF_OS_IRIX_H - -#include -#include - -/*` -[heading `BOOST_OS_IRIX`] - -[@http://en.wikipedia.org/wiki/Irix IRIX] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`sgi`] [__predef_detection__]] - [[`__sgi`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_IRIX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(sgi) || defined(__sgi) \ - ) -# undef BOOST_OS_IRIX -# define BOOST_OS_IRIX BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_IRIX -# define BOOST_OS_IRIX_AVAILABLE -# include -#endif - -#define BOOST_OS_IRIX_NAME "IRIX" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_IRIX,BOOST_OS_IRIX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/linux.h b/lib/3rdParty/boost/boost/predef/os/linux.h deleted file mode 100644 index a297d0895..000000000 --- a/lib/3rdParty/boost/boost/predef/os/linux.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_LINUX_H -#define BOOST_PREDEF_OS_LINUX_H - -#include -#include - -/*` -[heading `BOOST_OS_LINUX`] - -[@http://en.wikipedia.org/wiki/Linux Linux] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`linux`] [__predef_detection__]] - [[`__linux`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_LINUX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(linux) || defined(__linux) \ - ) -# undef BOOST_OS_LINUX -# define BOOST_OS_LINUX BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_LINUX -# define BOOST_OS_LINUX_AVAILABLE -# include -#endif - -#define BOOST_OS_LINUX_NAME "Linux" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_LINUX,BOOST_OS_LINUX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/macos.h b/lib/3rdParty/boost/boost/predef/os/macos.h deleted file mode 100644 index 4afb30d08..000000000 --- a/lib/3rdParty/boost/boost/predef/os/macos.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright Rene Rivera 2008-2015 -Copyright Franz Detro 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) -*/ - -#ifndef BOOST_PREDEF_OS_MACOS_H -#define BOOST_PREDEF_OS_MACOS_H - -/* Special case: iOS will define the same predefs as MacOS, and additionally - '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__'. We can guard against that, - but only if we detect iOS first. Hence we will force include iOS detection - * before doing any MacOS detection. - */ -#include - -#include -#include - -/*` -[heading `BOOST_OS_MACOS`] - -[@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`macintosh`] [__predef_detection__]] - [[`Macintosh`] [__predef_detection__]] - [[`__APPLE__`] [__predef_detection__]] - [[`__MACH__`] [__predef_detection__]] - - [[`__APPLE__`, `__MACH__`] [10.0.0]] - [[ /otherwise/ ] [9.0.0]] - ] - */ - -#define BOOST_OS_MACOS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(macintosh) || defined(Macintosh) || \ - (defined(__APPLE__) && defined(__MACH__)) \ - ) -# undef BOOST_OS_MACOS -# if !defined(BOOST_OS_MACOS) && defined(__APPLE__) && defined(__MACH__) -# define BOOST_OS_MACOS BOOST_VERSION_NUMBER(10,0,0) -# endif -# if !defined(BOOST_OS_MACOS) -# define BOOST_OS_MACOS BOOST_VERSION_NUMBER(9,0,0) -# endif -#endif - -#if BOOST_OS_MACOS -# define BOOST_OS_MACOS_AVAILABLE -# include -#endif - -#define BOOST_OS_MACOS_NAME "Mac OS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,BOOST_OS_MACOS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/os400.h b/lib/3rdParty/boost/boost/predef/os/os400.h deleted file mode 100644 index b3446c26c..000000000 --- a/lib/3rdParty/boost/boost/predef/os/os400.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_OS_OS400_H -#define BOOST_PREDEF_OS_OS400_H - -#include -#include - -/*` -[heading `BOOST_OS_OS400`] - -[@http://en.wikipedia.org/wiki/IBM_i IBM OS/400] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__OS400__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_OS400 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__OS400__) \ - ) -# undef BOOST_OS_OS400 -# define BOOST_OS_OS400 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_OS400 -# define BOOST_OS_OS400_AVAILABLE -# include -#endif - -#define BOOST_OS_OS400_NAME "IBM OS/400" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_OS400,BOOST_OS_OS400_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/qnxnto.h b/lib/3rdParty/boost/boost/predef/os/qnxnto.h deleted file mode 100644 index e76fbf278..000000000 --- a/lib/3rdParty/boost/boost/predef/os/qnxnto.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_QNXNTO_H -#define BOOST_PREDEF_OS_QNXNTO_H - -#include -#include - -/*` -[heading `BOOST_OS_QNX`] - -[@http://en.wikipedia.org/wiki/QNX QNX] operating system. -Version number available as major, and minor if possible. And -version 4 is specifically detected. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__QNX__`] [__predef_detection__]] - [[`__QNXNTO__`] [__predef_detection__]] - - [[`_NTO_VERSION`] [V.R.0]] - [[`__QNX__`] [4.0.0]] - ] - */ - -#define BOOST_OS_QNX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(__QNX__) || defined(__QNXNTO__) \ - ) -# undef BOOST_OS_QNX -# if !defined(BOOST_OS_QNX) && defined(_NTO_VERSION) -# define BOOST_OS_QNX BOOST_PREDEF_MAKE_10_VVRR(_NTO_VERSION) -# endif -# if !defined(BOOST_OS_QNX) && defined(__QNX__) -# define BOOST_OS_QNX BOOST_VERSION_NUMBER(4,0,0) -# endif -# if !defined(BOOST_OS_QNX) -# define BOOST_OS_QNX BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_QNX -# define BOOST_OS_QNX_AVAILABLE -# include -#endif - -#define BOOST_OS_QNX_NAME "QNX" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_QNX,BOOST_OS_QNX_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/solaris.h b/lib/3rdParty/boost/boost/predef/os/solaris.h deleted file mode 100644 index 75ddc91da..000000000 --- a/lib/3rdParty/boost/boost/predef/os/solaris.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_SOLARIS_H -#define BOOST_PREDEF_OS_SOLARIS_H - -#include -#include - -/*` -[heading `BOOST_OS_SOLARIS`] - -[@http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`sun`] [__predef_detection__]] - [[`__sun`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(sun) || defined(__sun) \ - ) -# undef BOOST_OS_SOLARIS -# define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_SOLARIS -# define BOOST_OS_SOLARIS_AVAILABLE -# include -#endif - -#define BOOST_OS_SOLARIS_NAME "Solaris" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SOLARIS,BOOST_OS_SOLARIS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/unix.h b/lib/3rdParty/boost/boost/predef/os/unix.h deleted file mode 100644 index a60710427..000000000 --- a/lib/3rdParty/boost/boost/predef/os/unix.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_UNIX_H -#define BOOST_PREDEF_OS_UNIX_H - -#include -#include - -/*` -[heading `BOOST_OS_UNIX`] - -[@http://en.wikipedia.org/wiki/Unix Unix Environment] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`unix`] [__predef_detection__]] - [[`__unix`] [__predef_detection__]] - [[`_XOPEN_SOURCE`] [__predef_detection__]] - [[`_POSIX_SOURCE`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_UNIX BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(unix) || defined(__unix) || \ - defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) -# undef BOOST_OS_UNIX -# define BOOST_OS_UNIX BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_UNIX -# define BOOST_OS_UNIX_AVAILABLE -#endif - -#define BOOST_OS_UNIX_NAME "Unix Environment" - -/*` -[heading `BOOST_OS_SVR4`] - -[@http://en.wikipedia.org/wiki/UNIX_System_V SVR4 Environment] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__sysv__`] [__predef_detection__]] - [[`__SVR4`] [__predef_detection__]] - [[`__svr4__`] [__predef_detection__]] - [[`_SYSTYPE_SVR4`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_SVR4 BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__sysv__) || defined(__SVR4) || \ - defined(__svr4__) || defined(_SYSTYPE_SVR4) -# undef BOOST_OS_SVR4 -# define BOOST_OS_SVR4 BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_SVR4 -# define BOOST_OS_SVR4_AVAILABLE -#endif - -#define BOOST_OS_SVR4_NAME "SVR4 Environment" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_UNIX,BOOST_OS_UNIX_NAME) -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SVR4,BOOST_OS_SVR4_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/vms.h b/lib/3rdParty/boost/boost/predef/os/vms.h deleted file mode 100644 index 2f8f786d4..000000000 --- a/lib/3rdParty/boost/boost/predef/os/vms.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright Rene Rivera 2011-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) -*/ - -#ifndef BOOST_PREDEF_OS_VMS_H -#define BOOST_PREDEF_OS_VMS_H - -#include -#include - -/*` -[heading `BOOST_OS_VMS`] - -[@http://en.wikipedia.org/wiki/Vms VMS] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`VMS`] [__predef_detection__]] - [[`__VMS`] [__predef_detection__]] - - [[`__VMS_VER`] [V.R.P]] - ] - */ - -#define BOOST_OS_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(VMS) || defined(__VMS) \ - ) -# undef BOOST_OS_VMS -# if defined(__VMS_VER) -# define BOOST_OS_VMS BOOST_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER) -# else -# define BOOST_OS_VMS BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#if BOOST_OS_VMS -# define BOOST_OS_VMS_AVAILABLE -# include -#endif - -#define BOOST_OS_VMS_NAME "VMS" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_VMS,BOOST_OS_VMS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/os/windows.h b/lib/3rdParty/boost/boost/predef/os/windows.h deleted file mode 100644 index 9db439095..000000000 --- a/lib/3rdParty/boost/boost/predef/os/windows.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_OS_WINDOWS_H -#define BOOST_PREDEF_OS_WINDOWS_H - -#include -#include - -/*` -[heading `BOOST_OS_WINDOWS`] - -[@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`_WIN32`] [__predef_detection__]] - [[`_WIN64`] [__predef_detection__]] - [[`__WIN32__`] [__predef_detection__]] - [[`__TOS_WIN__`] [__predef_detection__]] - [[`__WINDOWS__`] [__predef_detection__]] - ] - */ - -#define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(_WIN32) || defined(_WIN64) || \ - defined(__WIN32__) || defined(__TOS_WIN__) || \ - defined(__WINDOWS__) \ - ) -# undef BOOST_OS_WINDOWS -# define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_OS_WINDOWS -# define BOOST_OS_WINDOWS_AVAILABLE -# include -#endif - -#define BOOST_OS_WINDOWS_NAME "Microsoft Windows" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_OS_WINDOWS,BOOST_OS_WINDOWS_NAME) diff --git a/lib/3rdParty/boost/boost/predef/other.h b/lib/3rdParty/boost/boost/predef/other.h deleted file mode 100644 index c09ad4945..000000000 --- a/lib/3rdParty/boost/boost/predef/other.h +++ /dev/null @@ -1,16 +0,0 @@ -/* -Copyright Rene Rivera 2013-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) -*/ - -#if !defined(BOOST_PREDEF_OTHER_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_OTHER_H -#define BOOST_PREDEF_OTHER_H -#endif - -#include -/*#include */ - -#endif diff --git a/lib/3rdParty/boost/boost/predef/other/endian.h b/lib/3rdParty/boost/boost/predef/other/endian.h deleted file mode 100644 index 6d1f43ff4..000000000 --- a/lib/3rdParty/boost/boost/predef/other/endian.h +++ /dev/null @@ -1,204 +0,0 @@ -/* -Copyright Rene Rivera 2013-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) -*/ - -#ifndef BOOST_PREDEF_ENDIAN_H -#define BOOST_PREDEF_ENDIAN_H - -#include -#include -#include -#include -#include -#include - -/*` -[heading `BOOST_ENDIAN_*`] - -Detection of endian memory ordering. There are four defined macros -in this header that define the various generally possible endian -memory orderings: - -* `BOOST_ENDIAN_BIG_BYTE`, byte-swapped big-endian. -* `BOOST_ENDIAN_BIG_WORD`, word-swapped big-endian. -* `BOOST_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian. -* `BOOST_ENDIAN_LITTLE_WORD`, word-swapped little-endian. - -The detection is conservative in that it only identifies endianness -that it knows for certain. In particular bi-endianness is not -indicated as is it not practically possible to determine the -endianness from anything but an operating system provided -header. And the currently known headers do not define that -programatic bi-endianness is available. - -This implementation is a compilation of various publicly available -information and acquired knowledge: - -# The indispensable documentation of "Pre-defined Compiler Macros" - [@http://sourceforge.net/p/predef/wiki/Endianness Endianness]. -# The various endian specifications available in the - [@http://wikipedia.org/ Wikipedia] computer architecture pages. -# Generally available searches for headers that define endianness. - */ - -#define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_NOT_AVAILABLE -#define BOOST_ENDIAN_BIG_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE -#define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_NOT_AVAILABLE -#define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE - -/* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. - * And some OSs provide some for of endian header also. - */ -#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ - !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD -# if BOOST_LIB_C_GNU || BOOST_OS_ANDROID -# include -# else -# if BOOST_OS_MACOS -# include -# else -# if BOOST_OS_BSD -# if BOOST_OS_BSD_OPEN -# include -# else -# include -# endif -# endif -# endif -# endif -# if defined(__BYTE_ORDER) -# if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) -# undef BOOST_ENDIAN_BIG_BYTE -# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -# if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) -# undef BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -# if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN) -# undef BOOST_ENDIAN_LITTLE_WORD -# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE -# endif -# endif -# if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) -# if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN) -# undef BOOST_ENDIAN_BIG_BYTE -# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -# if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN) -# undef BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -# if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN) -# undef BOOST_ENDIAN_LITTLE_WORD -# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE -# endif -# endif -#endif - -/* Built-in byte-swpped big-endian macros. - */ -#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ - !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD -# if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ - (defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || \ - defined(__ARMEB__) || \ - defined(__THUMBEB__) || \ - defined(__AARCH64EB__) || \ - defined(_MIPSEB) || \ - defined(__MIPSEB) || \ - defined(__MIPSEB__) -# undef BOOST_ENDIAN_BIG_BYTE -# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -/* Built-in byte-swpped little-endian macros. - */ -#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ - !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD -# if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ - (defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)) || \ - defined(__ARMEL__) || \ - defined(__THUMBEL__) || \ - defined(__AARCH64EL__) || \ - defined(_MIPSEL) || \ - defined(__MIPSEL) || \ - defined(__MIPSEL__) -# undef BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -/* Some architectures are strictly one endianess (as opposed - * the current common bi-endianess). - */ -#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ - !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD -# include -# if BOOST_ARCH_M68K || \ - BOOST_ARCH_PARISC || \ - BOOST_ARCH_SPARC || \ - BOOST_ARCH_SYS370 || \ - BOOST_ARCH_SYS390 || \ - BOOST_ARCH_Z -# undef BOOST_ENDIAN_BIG_BYTE -# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -# if BOOST_ARCH_AMD64 || \ - BOOST_ARCH_IA64 || \ - BOOST_ARCH_X86 || \ - BOOST_ARCH_BLACKFIN -# undef BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -/* Windows on ARM, if not otherwise detected/specified, is always - * byte-swaped little-endian. - */ -#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ - !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD -# if BOOST_ARCH_ARM -# include -# if BOOST_OS_WINDOWS -# undef BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE -# endif -# endif -#endif - -#if BOOST_ENDIAN_BIG_BYTE -# define BOOST_ENDIAN_BIG_BYTE_AVAILABLE -#endif -#if BOOST_ENDIAN_BIG_WORD -# define BOOST_ENDIAN_BIG_WORD_BYTE_AVAILABLE -#endif -#if BOOST_ENDIAN_LITTLE_BYTE -# define BOOST_ENDIAN_LITTLE_BYTE_AVAILABLE -#endif -#if BOOST_ENDIAN_LITTLE_WORD -# define BOOST_ENDIAN_LITTLE_WORD_BYTE_AVAILABLE -#endif - -#define BOOST_ENDIAN_BIG_BYTE_NAME "Byte-Swapped Big-Endian" -#define BOOST_ENDIAN_BIG_WORD_NAME "Word-Swapped Big-Endian" -#define BOOST_ENDIAN_LITTLE_BYTE_NAME "Byte-Swapped Little-Endian" -#define BOOST_ENDIAN_LITTLE_WORD_NAME "Word-Swapped Little-Endian" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_BIG_BYTE,BOOST_ENDIAN_BIG_BYTE_NAME) - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_BIG_WORD,BOOST_ENDIAN_BIG_WORD_NAME) - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_LITTLE_BYTE,BOOST_ENDIAN_LITTLE_BYTE_NAME) - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_LITTLE_WORD,BOOST_ENDIAN_LITTLE_WORD_NAME) diff --git a/lib/3rdParty/boost/boost/predef/platform.h b/lib/3rdParty/boost/boost/predef/platform.h deleted file mode 100644 index c0c8706e8..000000000 --- a/lib/3rdParty/boost/boost/predef/platform.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -Copyright Rene Rivera 2013-2015 -Copyright (c) Microsoft Corporation 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) -*/ - -#if !defined(BOOST_PREDEF_PLATFORM_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) -#ifndef BOOST_PREDEF_PLATFORM_H -#define BOOST_PREDEF_PLATFORM_H -#endif - -#include -#include -#include -#include -#include -/*#include */ - -#endif diff --git a/lib/3rdParty/boost/boost/predef/platform/mingw.h b/lib/3rdParty/boost/boost/predef/platform/mingw.h deleted file mode 100644 index 64c583736..000000000 --- a/lib/3rdParty/boost/boost/predef/platform/mingw.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright Rene Rivera 2008-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) -*/ - -#ifndef BOOST_PREDEF_COMPILER_MINGW_H -#define BOOST_PREDEF_COMPILER_MINGW_H - -#include -#include - -/*` -[heading `BOOST_PLAT_MINGW`] - -[@http://en.wikipedia.org/wiki/MinGW MinGW] platform. -Version number available as major, minor, and patch. - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`__MINGW32__`] [__predef_detection__]] - [[`__MINGW64__`] [__predef_detection__]] - - [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]] - [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]] - ] - */ - -#define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if defined(__MINGW32__) || defined(__MINGW64__) -# include <_mingw.h> -# if !defined(BOOST_PLAT_MINGW_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)) -# define BOOST_PLAT_MINGW_DETECTION \ - BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0) -# endif -# if !defined(BOOST_PLAT_MINGW_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)) -# define BOOST_PLAT_MINGW_DETECTION \ - BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0) -# endif -# if !defined(BOOST_PLAT_MINGW_DETECTION) -# define BOOST_PLAT_MINGW_DETECTION BOOST_VERSION_NUMBER_AVAILABLE -# endif -#endif - -#ifdef BOOST_PLAT_MINGW_DETECTION -# define BOOST_PLAT_MINGW_AVAILABLE -# if defined(BOOST_PREDEF_DETAIL_PLAT_DETECTED) -# define BOOST_PLAT_MINGW_EMULATED BOOST_PLAT_MINGW_DETECTION -# else -# undef BOOST_PLAT_MINGW -# define BOOST_PLAT_MINGW BOOST_PLAT_MINGW_DETECTION -# endif -# include -#endif - -#define BOOST_PLAT_MINGW_NAME "MinGW" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW,BOOST_PLAT_MINGW_NAME) - -#ifdef BOOST_PLAT_MINGW_EMULATED -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW_EMULATED,BOOST_PLAT_MINGW_NAME) -#endif diff --git a/lib/3rdParty/boost/boost/predef/platform/windows_desktop.h b/lib/3rdParty/boost/boost/predef/platform/windows_desktop.h deleted file mode 100644 index 62719b429..000000000 --- a/lib/3rdParty/boost/boost/predef/platform/windows_desktop.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright (c) Microsoft Corporation 2014 -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_PLAT_WINDOWS_DESKTOP_H -#define BOOST_PREDEF_PLAT_WINDOWS_DESKTOP_H - -#include -#include -#include - -/*` -[heading `BOOST_PLAT_WINDOWS_DESKTOP`] - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`!WINAPI_FAMILY`] [__predef_detection__]] - [[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]] - ] - */ - -#define BOOST_PLAT_WINDOWS_DESKTOP BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if BOOST_OS_WINDOWS && \ - ( !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) ) -# undef BOOST_PLAT_WINDOWS_DESKTOP -# define BOOST_PLAT_WINDOWS_DESKTOP BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_PLAT_WINDOWS_DESKTOP -# define BOOST_PLAT_WINDOWS_DESKTOP_AVAILABLE -# include -#endif - -#define BOOST_PLAT_WINDOWS_DESKTOP_NAME "Windows Desktop" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_DESKTOP,BOOST_PLAT_WINDOWS_DESKTOP_NAME) diff --git a/lib/3rdParty/boost/boost/predef/platform/windows_phone.h b/lib/3rdParty/boost/boost/predef/platform/windows_phone.h deleted file mode 100644 index df583adc0..000000000 --- a/lib/3rdParty/boost/boost/predef/platform/windows_phone.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (c) Microsoft Corporation 2014 -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_PLAT_WINDOWS_PHONE_H -#define BOOST_PREDEF_PLAT_WINDOWS_PHONE_H - -#include -#include -#include - -/*` -[heading `BOOST_PLAT_WINDOWS_PHONE`] - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]] - ] - */ - -#define BOOST_PLAT_WINDOWS_PHONE BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if BOOST_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP -# undef BOOST_PLAT_WINDOWS_PHONE -# define BOOST_PLAT_WINDOWS_PHONE BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_PLAT_WINDOWS_PHONE -# define BOOST_PLAT_WINDOWS_PHONE_AVAILABLE -# include -#endif - -#define BOOST_PLAT_WINDOWS_PHONE_NAME "Windows Phone" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_PHONE,BOOST_PLAT_WINDOWS_PHONE_NAME) diff --git a/lib/3rdParty/boost/boost/predef/platform/windows_runtime.h b/lib/3rdParty/boost/boost/predef/platform/windows_runtime.h deleted file mode 100644 index 03be5140e..000000000 --- a/lib/3rdParty/boost/boost/predef/platform/windows_runtime.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright (c) Microsoft Corporation 2014 -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_PLAT_WINDOWS_RUNTIME_H -#define BOOST_PREDEF_PLAT_WINDOWS_RUNTIME_H - -#include -#include -#include - -/*` -[heading `BOOST_PLAT_WINDOWS_RUNTIME`] - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]] - [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]] - ] - */ - -#define BOOST_PLAT_WINDOWS_RUNTIME BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if BOOST_OS_WINDOWS && defined(WINAPI_FAMILY) && \ - ( WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP ) -# undef BOOST_PLAT_WINDOWS_RUNTIME -# define BOOST_PLAT_WINDOWS_RUNTIME BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_PLAT_WINDOWS_RUNTIME -# define BOOST_PLAT_WINDOWS_RUNTIME_AVAILABLE -# include -#endif - -#define BOOST_PLAT_WINDOWS_RUNTIME_NAME "Windows Runtime" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_RUNTIME,BOOST_PLAT_WINDOWS_RUNTIME_NAME) diff --git a/lib/3rdParty/boost/boost/predef/platform/windows_store.h b/lib/3rdParty/boost/boost/predef/platform/windows_store.h deleted file mode 100644 index a34968b3d..000000000 --- a/lib/3rdParty/boost/boost/predef/platform/windows_store.h +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (c) Microsoft Corporation 2014 -Copyright Rene Rivera 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) -*/ - -#ifndef BOOST_PREDEF_PLAT_WINDOWS_STORE_H -#define BOOST_PREDEF_PLAT_WINDOWS_STORE_H - -#include -#include -#include - -/*` -[heading `BOOST_PLAT_WINDOWS_STORE`] - -[table - [[__predef_symbol__] [__predef_version__]] - - [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]] - ] - */ - -#define BOOST_PLAT_WINDOWS_STORE BOOST_VERSION_NUMBER_NOT_AVAILABLE - -#if BOOST_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP -# undef BOOST_PLAT_WINDOWS_STORE -# define BOOST_PLAT_WINDOWS_STORE BOOST_VERSION_NUMBER_AVAILABLE -#endif - -#if BOOST_PLAT_WINDOWS_STORE -# define BOOST_PLAT_WINDOWS_STORE_AVAILABLE -# include -#endif - -#define BOOST_PLAT_WINDOWS_STORE_NAME "Windows Store" - -#endif - -#include -BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_WINDOWS_STORE,BOOST_PLAT_WINDOWS_STORE_NAME) diff --git a/lib/3rdParty/boost/boost/predef/version.h b/lib/3rdParty/boost/boost/predef/version.h deleted file mode 100644 index 8745c9497..000000000 --- a/lib/3rdParty/boost/boost/predef/version.h +++ /dev/null @@ -1,15 +0,0 @@ -/* -Copyright Rene Rivera 2015-2016 -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_PREDEF_VERSION_H -#define BOOST_PREDEF_VERSION_H - -#include - -#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,4,1) - -#endif diff --git a/lib/3rdParty/boost/boost/predef/version_number.h b/lib/3rdParty/boost/boost/predef/version_number.h deleted file mode 100644 index 3903a36b7..000000000 --- a/lib/3rdParty/boost/boost/predef/version_number.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright Rene Rivera 2005, 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) -*/ - -#ifndef BOOST_PREDEF_VERSION_NUMBER_H -#define BOOST_PREDEF_VERSION_NUMBER_H - -/*` -[heading `BOOST_VERSION_NUMBER`] - -`` -BOOST_VERSION_NUMBER(major,minor,patch) -`` - -Defines standard version numbers, with these properties: - -* Decimal base whole numbers in the range \[0,1000000000). - The number range is designed to allow for a (2,2,5) triplet. - Which fits within a 32 bit value. -* The `major` number can be in the \[0,99\] range. -* The `minor` number can be in the \[0,99\] range. -* The `patch` number can be in the \[0,99999\] range. -* Values can be specified in any base. As the defined value - is an constant expression. -* Value can be directly used in both preprocessor and compiler - expressions for comparison to other similarly defined values. -* The implementation enforces the individual ranges for the - major, minor, and patch numbers. And values over the ranges - are truncated (modulo). - -*/ -#define BOOST_VERSION_NUMBER(major,minor,patch) \ - ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) ) - -#define BOOST_VERSION_NUMBER_MAX \ - BOOST_VERSION_NUMBER(99,99,99999) - -#define BOOST_VERSION_NUMBER_ZERO \ - BOOST_VERSION_NUMBER(0,0,0) - -#define BOOST_VERSION_NUMBER_MIN \ - BOOST_VERSION_NUMBER(0,0,1) - -#define BOOST_VERSION_NUMBER_AVAILABLE \ - BOOST_VERSION_NUMBER_MIN - -#define BOOST_VERSION_NUMBER_NOT_AVAILABLE \ - BOOST_VERSION_NUMBER_ZERO - -#endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic.hpp deleted file mode 100644 index b1be7814e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic.hpp +++ /dev/null @@ -1,25 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/add.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/add.hpp deleted file mode 100644 index 5a29f554f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/add.hpp +++ /dev/null @@ -1,51 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ADD */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ADD(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) -# else -# define BOOST_PP_ADD(x, y) BOOST_PP_ADD_I(x, y) -# define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) -# endif -# -# define BOOST_PP_ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy -# else -# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy)) -# endif -# -# define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y)) -# -# /* BOOST_PP_ADD_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) -# else -# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y) -# define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/dec.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/dec.hpp deleted file mode 100644 index 23dd0a35a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/dec.hpp +++ /dev/null @@ -1,289 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP -# -# include -# -# /* BOOST_PP_DEC */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_DEC(x) BOOST_PP_DEC_I(x) -# else -# define BOOST_PP_DEC(x) BOOST_PP_DEC_OO((x)) -# define BOOST_PP_DEC_OO(par) BOOST_PP_DEC_I ## par -# endif -# -# define BOOST_PP_DEC_I(x) BOOST_PP_DEC_ ## x -# -# define BOOST_PP_DEC_0 0 -# define BOOST_PP_DEC_1 0 -# define BOOST_PP_DEC_2 1 -# define BOOST_PP_DEC_3 2 -# define BOOST_PP_DEC_4 3 -# define BOOST_PP_DEC_5 4 -# define BOOST_PP_DEC_6 5 -# define BOOST_PP_DEC_7 6 -# define BOOST_PP_DEC_8 7 -# define BOOST_PP_DEC_9 8 -# define BOOST_PP_DEC_10 9 -# define BOOST_PP_DEC_11 10 -# define BOOST_PP_DEC_12 11 -# define BOOST_PP_DEC_13 12 -# define BOOST_PP_DEC_14 13 -# define BOOST_PP_DEC_15 14 -# define BOOST_PP_DEC_16 15 -# define BOOST_PP_DEC_17 16 -# define BOOST_PP_DEC_18 17 -# define BOOST_PP_DEC_19 18 -# define BOOST_PP_DEC_20 19 -# define BOOST_PP_DEC_21 20 -# define BOOST_PP_DEC_22 21 -# define BOOST_PP_DEC_23 22 -# define BOOST_PP_DEC_24 23 -# define BOOST_PP_DEC_25 24 -# define BOOST_PP_DEC_26 25 -# define BOOST_PP_DEC_27 26 -# define BOOST_PP_DEC_28 27 -# define BOOST_PP_DEC_29 28 -# define BOOST_PP_DEC_30 29 -# define BOOST_PP_DEC_31 30 -# define BOOST_PP_DEC_32 31 -# define BOOST_PP_DEC_33 32 -# define BOOST_PP_DEC_34 33 -# define BOOST_PP_DEC_35 34 -# define BOOST_PP_DEC_36 35 -# define BOOST_PP_DEC_37 36 -# define BOOST_PP_DEC_38 37 -# define BOOST_PP_DEC_39 38 -# define BOOST_PP_DEC_40 39 -# define BOOST_PP_DEC_41 40 -# define BOOST_PP_DEC_42 41 -# define BOOST_PP_DEC_43 42 -# define BOOST_PP_DEC_44 43 -# define BOOST_PP_DEC_45 44 -# define BOOST_PP_DEC_46 45 -# define BOOST_PP_DEC_47 46 -# define BOOST_PP_DEC_48 47 -# define BOOST_PP_DEC_49 48 -# define BOOST_PP_DEC_50 49 -# define BOOST_PP_DEC_51 50 -# define BOOST_PP_DEC_52 51 -# define BOOST_PP_DEC_53 52 -# define BOOST_PP_DEC_54 53 -# define BOOST_PP_DEC_55 54 -# define BOOST_PP_DEC_56 55 -# define BOOST_PP_DEC_57 56 -# define BOOST_PP_DEC_58 57 -# define BOOST_PP_DEC_59 58 -# define BOOST_PP_DEC_60 59 -# define BOOST_PP_DEC_61 60 -# define BOOST_PP_DEC_62 61 -# define BOOST_PP_DEC_63 62 -# define BOOST_PP_DEC_64 63 -# define BOOST_PP_DEC_65 64 -# define BOOST_PP_DEC_66 65 -# define BOOST_PP_DEC_67 66 -# define BOOST_PP_DEC_68 67 -# define BOOST_PP_DEC_69 68 -# define BOOST_PP_DEC_70 69 -# define BOOST_PP_DEC_71 70 -# define BOOST_PP_DEC_72 71 -# define BOOST_PP_DEC_73 72 -# define BOOST_PP_DEC_74 73 -# define BOOST_PP_DEC_75 74 -# define BOOST_PP_DEC_76 75 -# define BOOST_PP_DEC_77 76 -# define BOOST_PP_DEC_78 77 -# define BOOST_PP_DEC_79 78 -# define BOOST_PP_DEC_80 79 -# define BOOST_PP_DEC_81 80 -# define BOOST_PP_DEC_82 81 -# define BOOST_PP_DEC_83 82 -# define BOOST_PP_DEC_84 83 -# define BOOST_PP_DEC_85 84 -# define BOOST_PP_DEC_86 85 -# define BOOST_PP_DEC_87 86 -# define BOOST_PP_DEC_88 87 -# define BOOST_PP_DEC_89 88 -# define BOOST_PP_DEC_90 89 -# define BOOST_PP_DEC_91 90 -# define BOOST_PP_DEC_92 91 -# define BOOST_PP_DEC_93 92 -# define BOOST_PP_DEC_94 93 -# define BOOST_PP_DEC_95 94 -# define BOOST_PP_DEC_96 95 -# define BOOST_PP_DEC_97 96 -# define BOOST_PP_DEC_98 97 -# define BOOST_PP_DEC_99 98 -# define BOOST_PP_DEC_100 99 -# define BOOST_PP_DEC_101 100 -# define BOOST_PP_DEC_102 101 -# define BOOST_PP_DEC_103 102 -# define BOOST_PP_DEC_104 103 -# define BOOST_PP_DEC_105 104 -# define BOOST_PP_DEC_106 105 -# define BOOST_PP_DEC_107 106 -# define BOOST_PP_DEC_108 107 -# define BOOST_PP_DEC_109 108 -# define BOOST_PP_DEC_110 109 -# define BOOST_PP_DEC_111 110 -# define BOOST_PP_DEC_112 111 -# define BOOST_PP_DEC_113 112 -# define BOOST_PP_DEC_114 113 -# define BOOST_PP_DEC_115 114 -# define BOOST_PP_DEC_116 115 -# define BOOST_PP_DEC_117 116 -# define BOOST_PP_DEC_118 117 -# define BOOST_PP_DEC_119 118 -# define BOOST_PP_DEC_120 119 -# define BOOST_PP_DEC_121 120 -# define BOOST_PP_DEC_122 121 -# define BOOST_PP_DEC_123 122 -# define BOOST_PP_DEC_124 123 -# define BOOST_PP_DEC_125 124 -# define BOOST_PP_DEC_126 125 -# define BOOST_PP_DEC_127 126 -# define BOOST_PP_DEC_128 127 -# define BOOST_PP_DEC_129 128 -# define BOOST_PP_DEC_130 129 -# define BOOST_PP_DEC_131 130 -# define BOOST_PP_DEC_132 131 -# define BOOST_PP_DEC_133 132 -# define BOOST_PP_DEC_134 133 -# define BOOST_PP_DEC_135 134 -# define BOOST_PP_DEC_136 135 -# define BOOST_PP_DEC_137 136 -# define BOOST_PP_DEC_138 137 -# define BOOST_PP_DEC_139 138 -# define BOOST_PP_DEC_140 139 -# define BOOST_PP_DEC_141 140 -# define BOOST_PP_DEC_142 141 -# define BOOST_PP_DEC_143 142 -# define BOOST_PP_DEC_144 143 -# define BOOST_PP_DEC_145 144 -# define BOOST_PP_DEC_146 145 -# define BOOST_PP_DEC_147 146 -# define BOOST_PP_DEC_148 147 -# define BOOST_PP_DEC_149 148 -# define BOOST_PP_DEC_150 149 -# define BOOST_PP_DEC_151 150 -# define BOOST_PP_DEC_152 151 -# define BOOST_PP_DEC_153 152 -# define BOOST_PP_DEC_154 153 -# define BOOST_PP_DEC_155 154 -# define BOOST_PP_DEC_156 155 -# define BOOST_PP_DEC_157 156 -# define BOOST_PP_DEC_158 157 -# define BOOST_PP_DEC_159 158 -# define BOOST_PP_DEC_160 159 -# define BOOST_PP_DEC_161 160 -# define BOOST_PP_DEC_162 161 -# define BOOST_PP_DEC_163 162 -# define BOOST_PP_DEC_164 163 -# define BOOST_PP_DEC_165 164 -# define BOOST_PP_DEC_166 165 -# define BOOST_PP_DEC_167 166 -# define BOOST_PP_DEC_168 167 -# define BOOST_PP_DEC_169 168 -# define BOOST_PP_DEC_170 169 -# define BOOST_PP_DEC_171 170 -# define BOOST_PP_DEC_172 171 -# define BOOST_PP_DEC_173 172 -# define BOOST_PP_DEC_174 173 -# define BOOST_PP_DEC_175 174 -# define BOOST_PP_DEC_176 175 -# define BOOST_PP_DEC_177 176 -# define BOOST_PP_DEC_178 177 -# define BOOST_PP_DEC_179 178 -# define BOOST_PP_DEC_180 179 -# define BOOST_PP_DEC_181 180 -# define BOOST_PP_DEC_182 181 -# define BOOST_PP_DEC_183 182 -# define BOOST_PP_DEC_184 183 -# define BOOST_PP_DEC_185 184 -# define BOOST_PP_DEC_186 185 -# define BOOST_PP_DEC_187 186 -# define BOOST_PP_DEC_188 187 -# define BOOST_PP_DEC_189 188 -# define BOOST_PP_DEC_190 189 -# define BOOST_PP_DEC_191 190 -# define BOOST_PP_DEC_192 191 -# define BOOST_PP_DEC_193 192 -# define BOOST_PP_DEC_194 193 -# define BOOST_PP_DEC_195 194 -# define BOOST_PP_DEC_196 195 -# define BOOST_PP_DEC_197 196 -# define BOOST_PP_DEC_198 197 -# define BOOST_PP_DEC_199 198 -# define BOOST_PP_DEC_200 199 -# define BOOST_PP_DEC_201 200 -# define BOOST_PP_DEC_202 201 -# define BOOST_PP_DEC_203 202 -# define BOOST_PP_DEC_204 203 -# define BOOST_PP_DEC_205 204 -# define BOOST_PP_DEC_206 205 -# define BOOST_PP_DEC_207 206 -# define BOOST_PP_DEC_208 207 -# define BOOST_PP_DEC_209 208 -# define BOOST_PP_DEC_210 209 -# define BOOST_PP_DEC_211 210 -# define BOOST_PP_DEC_212 211 -# define BOOST_PP_DEC_213 212 -# define BOOST_PP_DEC_214 213 -# define BOOST_PP_DEC_215 214 -# define BOOST_PP_DEC_216 215 -# define BOOST_PP_DEC_217 216 -# define BOOST_PP_DEC_218 217 -# define BOOST_PP_DEC_219 218 -# define BOOST_PP_DEC_220 219 -# define BOOST_PP_DEC_221 220 -# define BOOST_PP_DEC_222 221 -# define BOOST_PP_DEC_223 222 -# define BOOST_PP_DEC_224 223 -# define BOOST_PP_DEC_225 224 -# define BOOST_PP_DEC_226 225 -# define BOOST_PP_DEC_227 226 -# define BOOST_PP_DEC_228 227 -# define BOOST_PP_DEC_229 228 -# define BOOST_PP_DEC_230 229 -# define BOOST_PP_DEC_231 230 -# define BOOST_PP_DEC_232 231 -# define BOOST_PP_DEC_233 232 -# define BOOST_PP_DEC_234 233 -# define BOOST_PP_DEC_235 234 -# define BOOST_PP_DEC_236 235 -# define BOOST_PP_DEC_237 236 -# define BOOST_PP_DEC_238 237 -# define BOOST_PP_DEC_239 238 -# define BOOST_PP_DEC_240 239 -# define BOOST_PP_DEC_241 240 -# define BOOST_PP_DEC_242 241 -# define BOOST_PP_DEC_243 242 -# define BOOST_PP_DEC_244 243 -# define BOOST_PP_DEC_245 244 -# define BOOST_PP_DEC_246 245 -# define BOOST_PP_DEC_247 246 -# define BOOST_PP_DEC_248 247 -# define BOOST_PP_DEC_249 248 -# define BOOST_PP_DEC_250 249 -# define BOOST_PP_DEC_251 250 -# define BOOST_PP_DEC_252 251 -# define BOOST_PP_DEC_253 252 -# define BOOST_PP_DEC_254 253 -# define BOOST_PP_DEC_255 254 -# define BOOST_PP_DEC_256 255 -# define BOOST_PP_DEC_257 256 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/detail/div_base.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/detail/div_base.hpp deleted file mode 100644 index 106632a3d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/detail/div_base.hpp +++ /dev/null @@ -1,61 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_DIV_BASE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_DIV_BASE(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y)) -# else -# define BOOST_PP_DIV_BASE(x, y) BOOST_PP_DIV_BASE_I(x, y) -# define BOOST_PP_DIV_BASE_I(x, y) BOOST_PP_WHILE(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y)) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_IM(d, BOOST_PP_TUPLE_REM_3 rxy) -# define BOOST_PP_DIV_BASE_P_IM(d, im) BOOST_PP_DIV_BASE_P_I(d, im) -# else -# define BOOST_PP_DIV_BASE_P(d, rxy) BOOST_PP_DIV_BASE_P_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy)) -# endif -# -# define BOOST_PP_DIV_BASE_P_I(d, r, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_IM(d, BOOST_PP_TUPLE_REM_3 rxy) -# define BOOST_PP_DIV_BASE_O_IM(d, im) BOOST_PP_DIV_BASE_O_I(d, im) -# else -# define BOOST_PP_DIV_BASE_O(d, rxy) BOOST_PP_DIV_BASE_O_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy)) -# endif -# -# define BOOST_PP_DIV_BASE_O_I(d, r, x, y) (BOOST_PP_INC(r), BOOST_PP_SUB_D(d, x, y), y) -# -# /* BOOST_PP_DIV_BASE_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y)) -# else -# define BOOST_PP_DIV_BASE_D(d, x, y) BOOST_PP_DIV_BASE_D_I(d, x, y) -# define BOOST_PP_DIV_BASE_D_I(d, x, y) BOOST_PP_WHILE_ ## d(BOOST_PP_DIV_BASE_P, BOOST_PP_DIV_BASE_O, (0, x, y)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/div.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/div.hpp deleted file mode 100644 index 277596cea..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/div.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP -# -# include -# include -# include -# -# /* BOOST_PP_DIV */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_DIV(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE(x, y)) -# else -# define BOOST_PP_DIV(x, y) BOOST_PP_DIV_I(x, y) -# define BOOST_PP_DIV_I(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE(x, y)) -# endif -# -# /* BOOST_PP_DIV_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_DIV_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y)) -# else -# define BOOST_PP_DIV_D(d, x, y) BOOST_PP_DIV_D_I(d, x, y) -# define BOOST_PP_DIV_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/inc.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/inc.hpp deleted file mode 100644 index 1597ab85c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/inc.hpp +++ /dev/null @@ -1,288 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP -# -# include -# -# /* BOOST_PP_INC */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_INC(x) BOOST_PP_INC_I(x) -# else -# define BOOST_PP_INC(x) BOOST_PP_INC_OO((x)) -# define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par -# endif -# -# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x -# -# define BOOST_PP_INC_0 1 -# define BOOST_PP_INC_1 2 -# define BOOST_PP_INC_2 3 -# define BOOST_PP_INC_3 4 -# define BOOST_PP_INC_4 5 -# define BOOST_PP_INC_5 6 -# define BOOST_PP_INC_6 7 -# define BOOST_PP_INC_7 8 -# define BOOST_PP_INC_8 9 -# define BOOST_PP_INC_9 10 -# define BOOST_PP_INC_10 11 -# define BOOST_PP_INC_11 12 -# define BOOST_PP_INC_12 13 -# define BOOST_PP_INC_13 14 -# define BOOST_PP_INC_14 15 -# define BOOST_PP_INC_15 16 -# define BOOST_PP_INC_16 17 -# define BOOST_PP_INC_17 18 -# define BOOST_PP_INC_18 19 -# define BOOST_PP_INC_19 20 -# define BOOST_PP_INC_20 21 -# define BOOST_PP_INC_21 22 -# define BOOST_PP_INC_22 23 -# define BOOST_PP_INC_23 24 -# define BOOST_PP_INC_24 25 -# define BOOST_PP_INC_25 26 -# define BOOST_PP_INC_26 27 -# define BOOST_PP_INC_27 28 -# define BOOST_PP_INC_28 29 -# define BOOST_PP_INC_29 30 -# define BOOST_PP_INC_30 31 -# define BOOST_PP_INC_31 32 -# define BOOST_PP_INC_32 33 -# define BOOST_PP_INC_33 34 -# define BOOST_PP_INC_34 35 -# define BOOST_PP_INC_35 36 -# define BOOST_PP_INC_36 37 -# define BOOST_PP_INC_37 38 -# define BOOST_PP_INC_38 39 -# define BOOST_PP_INC_39 40 -# define BOOST_PP_INC_40 41 -# define BOOST_PP_INC_41 42 -# define BOOST_PP_INC_42 43 -# define BOOST_PP_INC_43 44 -# define BOOST_PP_INC_44 45 -# define BOOST_PP_INC_45 46 -# define BOOST_PP_INC_46 47 -# define BOOST_PP_INC_47 48 -# define BOOST_PP_INC_48 49 -# define BOOST_PP_INC_49 50 -# define BOOST_PP_INC_50 51 -# define BOOST_PP_INC_51 52 -# define BOOST_PP_INC_52 53 -# define BOOST_PP_INC_53 54 -# define BOOST_PP_INC_54 55 -# define BOOST_PP_INC_55 56 -# define BOOST_PP_INC_56 57 -# define BOOST_PP_INC_57 58 -# define BOOST_PP_INC_58 59 -# define BOOST_PP_INC_59 60 -# define BOOST_PP_INC_60 61 -# define BOOST_PP_INC_61 62 -# define BOOST_PP_INC_62 63 -# define BOOST_PP_INC_63 64 -# define BOOST_PP_INC_64 65 -# define BOOST_PP_INC_65 66 -# define BOOST_PP_INC_66 67 -# define BOOST_PP_INC_67 68 -# define BOOST_PP_INC_68 69 -# define BOOST_PP_INC_69 70 -# define BOOST_PP_INC_70 71 -# define BOOST_PP_INC_71 72 -# define BOOST_PP_INC_72 73 -# define BOOST_PP_INC_73 74 -# define BOOST_PP_INC_74 75 -# define BOOST_PP_INC_75 76 -# define BOOST_PP_INC_76 77 -# define BOOST_PP_INC_77 78 -# define BOOST_PP_INC_78 79 -# define BOOST_PP_INC_79 80 -# define BOOST_PP_INC_80 81 -# define BOOST_PP_INC_81 82 -# define BOOST_PP_INC_82 83 -# define BOOST_PP_INC_83 84 -# define BOOST_PP_INC_84 85 -# define BOOST_PP_INC_85 86 -# define BOOST_PP_INC_86 87 -# define BOOST_PP_INC_87 88 -# define BOOST_PP_INC_88 89 -# define BOOST_PP_INC_89 90 -# define BOOST_PP_INC_90 91 -# define BOOST_PP_INC_91 92 -# define BOOST_PP_INC_92 93 -# define BOOST_PP_INC_93 94 -# define BOOST_PP_INC_94 95 -# define BOOST_PP_INC_95 96 -# define BOOST_PP_INC_96 97 -# define BOOST_PP_INC_97 98 -# define BOOST_PP_INC_98 99 -# define BOOST_PP_INC_99 100 -# define BOOST_PP_INC_100 101 -# define BOOST_PP_INC_101 102 -# define BOOST_PP_INC_102 103 -# define BOOST_PP_INC_103 104 -# define BOOST_PP_INC_104 105 -# define BOOST_PP_INC_105 106 -# define BOOST_PP_INC_106 107 -# define BOOST_PP_INC_107 108 -# define BOOST_PP_INC_108 109 -# define BOOST_PP_INC_109 110 -# define BOOST_PP_INC_110 111 -# define BOOST_PP_INC_111 112 -# define BOOST_PP_INC_112 113 -# define BOOST_PP_INC_113 114 -# define BOOST_PP_INC_114 115 -# define BOOST_PP_INC_115 116 -# define BOOST_PP_INC_116 117 -# define BOOST_PP_INC_117 118 -# define BOOST_PP_INC_118 119 -# define BOOST_PP_INC_119 120 -# define BOOST_PP_INC_120 121 -# define BOOST_PP_INC_121 122 -# define BOOST_PP_INC_122 123 -# define BOOST_PP_INC_123 124 -# define BOOST_PP_INC_124 125 -# define BOOST_PP_INC_125 126 -# define BOOST_PP_INC_126 127 -# define BOOST_PP_INC_127 128 -# define BOOST_PP_INC_128 129 -# define BOOST_PP_INC_129 130 -# define BOOST_PP_INC_130 131 -# define BOOST_PP_INC_131 132 -# define BOOST_PP_INC_132 133 -# define BOOST_PP_INC_133 134 -# define BOOST_PP_INC_134 135 -# define BOOST_PP_INC_135 136 -# define BOOST_PP_INC_136 137 -# define BOOST_PP_INC_137 138 -# define BOOST_PP_INC_138 139 -# define BOOST_PP_INC_139 140 -# define BOOST_PP_INC_140 141 -# define BOOST_PP_INC_141 142 -# define BOOST_PP_INC_142 143 -# define BOOST_PP_INC_143 144 -# define BOOST_PP_INC_144 145 -# define BOOST_PP_INC_145 146 -# define BOOST_PP_INC_146 147 -# define BOOST_PP_INC_147 148 -# define BOOST_PP_INC_148 149 -# define BOOST_PP_INC_149 150 -# define BOOST_PP_INC_150 151 -# define BOOST_PP_INC_151 152 -# define BOOST_PP_INC_152 153 -# define BOOST_PP_INC_153 154 -# define BOOST_PP_INC_154 155 -# define BOOST_PP_INC_155 156 -# define BOOST_PP_INC_156 157 -# define BOOST_PP_INC_157 158 -# define BOOST_PP_INC_158 159 -# define BOOST_PP_INC_159 160 -# define BOOST_PP_INC_160 161 -# define BOOST_PP_INC_161 162 -# define BOOST_PP_INC_162 163 -# define BOOST_PP_INC_163 164 -# define BOOST_PP_INC_164 165 -# define BOOST_PP_INC_165 166 -# define BOOST_PP_INC_166 167 -# define BOOST_PP_INC_167 168 -# define BOOST_PP_INC_168 169 -# define BOOST_PP_INC_169 170 -# define BOOST_PP_INC_170 171 -# define BOOST_PP_INC_171 172 -# define BOOST_PP_INC_172 173 -# define BOOST_PP_INC_173 174 -# define BOOST_PP_INC_174 175 -# define BOOST_PP_INC_175 176 -# define BOOST_PP_INC_176 177 -# define BOOST_PP_INC_177 178 -# define BOOST_PP_INC_178 179 -# define BOOST_PP_INC_179 180 -# define BOOST_PP_INC_180 181 -# define BOOST_PP_INC_181 182 -# define BOOST_PP_INC_182 183 -# define BOOST_PP_INC_183 184 -# define BOOST_PP_INC_184 185 -# define BOOST_PP_INC_185 186 -# define BOOST_PP_INC_186 187 -# define BOOST_PP_INC_187 188 -# define BOOST_PP_INC_188 189 -# define BOOST_PP_INC_189 190 -# define BOOST_PP_INC_190 191 -# define BOOST_PP_INC_191 192 -# define BOOST_PP_INC_192 193 -# define BOOST_PP_INC_193 194 -# define BOOST_PP_INC_194 195 -# define BOOST_PP_INC_195 196 -# define BOOST_PP_INC_196 197 -# define BOOST_PP_INC_197 198 -# define BOOST_PP_INC_198 199 -# define BOOST_PP_INC_199 200 -# define BOOST_PP_INC_200 201 -# define BOOST_PP_INC_201 202 -# define BOOST_PP_INC_202 203 -# define BOOST_PP_INC_203 204 -# define BOOST_PP_INC_204 205 -# define BOOST_PP_INC_205 206 -# define BOOST_PP_INC_206 207 -# define BOOST_PP_INC_207 208 -# define BOOST_PP_INC_208 209 -# define BOOST_PP_INC_209 210 -# define BOOST_PP_INC_210 211 -# define BOOST_PP_INC_211 212 -# define BOOST_PP_INC_212 213 -# define BOOST_PP_INC_213 214 -# define BOOST_PP_INC_214 215 -# define BOOST_PP_INC_215 216 -# define BOOST_PP_INC_216 217 -# define BOOST_PP_INC_217 218 -# define BOOST_PP_INC_218 219 -# define BOOST_PP_INC_219 220 -# define BOOST_PP_INC_220 221 -# define BOOST_PP_INC_221 222 -# define BOOST_PP_INC_222 223 -# define BOOST_PP_INC_223 224 -# define BOOST_PP_INC_224 225 -# define BOOST_PP_INC_225 226 -# define BOOST_PP_INC_226 227 -# define BOOST_PP_INC_227 228 -# define BOOST_PP_INC_228 229 -# define BOOST_PP_INC_229 230 -# define BOOST_PP_INC_230 231 -# define BOOST_PP_INC_231 232 -# define BOOST_PP_INC_232 233 -# define BOOST_PP_INC_233 234 -# define BOOST_PP_INC_234 235 -# define BOOST_PP_INC_235 236 -# define BOOST_PP_INC_236 237 -# define BOOST_PP_INC_237 238 -# define BOOST_PP_INC_238 239 -# define BOOST_PP_INC_239 240 -# define BOOST_PP_INC_240 241 -# define BOOST_PP_INC_241 242 -# define BOOST_PP_INC_242 243 -# define BOOST_PP_INC_243 244 -# define BOOST_PP_INC_244 245 -# define BOOST_PP_INC_245 246 -# define BOOST_PP_INC_246 247 -# define BOOST_PP_INC_247 248 -# define BOOST_PP_INC_248 249 -# define BOOST_PP_INC_249 250 -# define BOOST_PP_INC_250 251 -# define BOOST_PP_INC_251 252 -# define BOOST_PP_INC_252 253 -# define BOOST_PP_INC_253 254 -# define BOOST_PP_INC_254 255 -# define BOOST_PP_INC_255 256 -# define BOOST_PP_INC_256 256 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/mod.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/mod.hpp deleted file mode 100644 index 62489d1db..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/mod.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP -# -# include -# include -# include -# -# /* BOOST_PP_MOD */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MOD(x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE(x, y)) -# else -# define BOOST_PP_MOD(x, y) BOOST_PP_MOD_I(x, y) -# define BOOST_PP_MOD_I(x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE(x, y)) -# endif -# -# /* BOOST_PP_MOD_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MOD_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y)) -# else -# define BOOST_PP_MOD_D(d, x, y) BOOST_PP_MOD_D_I(d, x, y) -# define BOOST_PP_MOD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/mul.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/mul.hpp deleted file mode 100644 index f3d9ffcf5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/mul.hpp +++ /dev/null @@ -1,53 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_MUL_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_MUL_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_MUL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MUL(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE(BOOST_PP_MUL_P, BOOST_PP_MUL_O, (0, x, y))) -# else -# define BOOST_PP_MUL(x, y) BOOST_PP_MUL_I(x, y) -# define BOOST_PP_MUL_I(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE(BOOST_PP_MUL_P, BOOST_PP_MUL_O, (0, x, y))) -# endif -# -# define BOOST_PP_MUL_P(d, rxy) BOOST_PP_TUPLE_ELEM(3, 2, rxy) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_MUL_O(d, rxy) BOOST_PP_MUL_O_IM(d, BOOST_PP_TUPLE_REM_3 rxy) -# define BOOST_PP_MUL_O_IM(d, im) BOOST_PP_MUL_O_I(d, im) -# else -# define BOOST_PP_MUL_O(d, rxy) BOOST_PP_MUL_O_I(d, BOOST_PP_TUPLE_ELEM(3, 0, rxy), BOOST_PP_TUPLE_ELEM(3, 1, rxy), BOOST_PP_TUPLE_ELEM(3, 2, rxy)) -# endif -# -# define BOOST_PP_MUL_O_I(d, r, x, y) (BOOST_PP_ADD_D(d, r, x), x, BOOST_PP_DEC(y)) -# -# /* BOOST_PP_MUL_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MUL_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_MUL_P, BOOST_PP_MUL_O, (0, x, y))) -# else -# define BOOST_PP_MUL_D(d, x, y) BOOST_PP_MUL_D_I(d, x, y) -# define BOOST_PP_MUL_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_MUL_P, BOOST_PP_MUL_O, (0, x, y))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/arithmetic/sub.hpp b/lib/3rdParty/boost/boost/preprocessor/arithmetic/sub.hpp deleted file mode 100644 index 5262cdaff..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/arithmetic/sub.hpp +++ /dev/null @@ -1,50 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_SUB */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SUB(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) -# else -# define BOOST_PP_SUB(x, y) BOOST_PP_SUB_I(x, y) -# define BOOST_PP_SUB_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) -# endif -# -# define BOOST_PP_SUB_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I xy -# else -# define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy)) -# endif -# -# define BOOST_PP_SUB_O_I(x, y) (BOOST_PP_DEC(x), BOOST_PP_DEC(y)) -# -# /* BOOST_PP_SUB_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SUB_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) -# else -# define BOOST_PP_SUB_D(d, x, y) BOOST_PP_SUB_D_I(d, x, y) -# define BOOST_PP_SUB_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array.hpp b/lib/3rdParty/boost/boost/preprocessor/array.hpp deleted file mode 100644 index 3b6a77199..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array.hpp +++ /dev/null @@ -1,32 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_HPP -# define BOOST_PREPROCESSOR_ARRAY_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/data.hpp b/lib/3rdParty/boost/boost/preprocessor/array/data.hpp deleted file mode 100644 index 10c926a75..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/data.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_DATA_HPP -# define BOOST_PREPROCESSOR_ARRAY_DATA_HPP -# -# include -# include -# -# /* BOOST_PP_ARRAY_DATA */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_DATA(array) BOOST_PP_TUPLE_ELEM(2, 1, array) -# else -# define BOOST_PP_ARRAY_DATA(array) BOOST_PP_ARRAY_DATA_I(array) -# define BOOST_PP_ARRAY_DATA_I(array) BOOST_PP_ARRAY_DATA_II array -# define BOOST_PP_ARRAY_DATA_II(size, data) data -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/detail/get_data.hpp b/lib/3rdParty/boost/boost/preprocessor/array/detail/get_data.hpp deleted file mode 100644 index 15ae74038..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/detail/get_data.hpp +++ /dev/null @@ -1,55 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP -# define BOOST_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_DETAIL_GET_DATA */ -# -# define BOOST_PP_ARRAY_DETAIL_GET_DATA_NONE(size, data) - -# if BOOST_PP_VARIADICS && !(BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400) -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT(size, data) BOOST_PP_TUPLE_REM(size) data -# define BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT(size, data) BOOST_PP_TUPLE_REM_CAT(size) data -# define BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_IS_1(size), \ - BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT, \ - BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT \ - ) \ - (size,data) \ -/**/ -# else -# define BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) BOOST_PP_TUPLE_REM(size) data -# endif -# else -# define BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) BOOST_PP_TUPLE_REM(size) data -# endif - -# define BOOST_PP_ARRAY_DETAIL_GET_DATA(size, data) \ - BOOST_PP_IF \ - ( \ - size, \ - BOOST_PP_ARRAY_DETAIL_GET_DATA_ANY, \ - BOOST_PP_ARRAY_DETAIL_GET_DATA_NONE \ - ) \ - (size,data) \ -/**/ -# -# endif /* BOOST_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/array/elem.hpp b/lib/3rdParty/boost/boost/preprocessor/array/elem.hpp deleted file mode 100644 index 105ba24e3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/elem.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_ELEM_HPP -# define BOOST_PREPROCESSOR_ARRAY_ELEM_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_ELEM */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array)) -# else -# define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_ARRAY_ELEM_I(i, array) -# define BOOST_PP_ARRAY_ELEM_I(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/enum.hpp b/lib/3rdParty/boost/boost/preprocessor/array/enum.hpp deleted file mode 100644 index 9710f9cb8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/enum.hpp +++ /dev/null @@ -1,33 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_ENUM_HPP -# define BOOST_PREPROCESSOR_ARRAY_ENUM_HPP -# -# include -# include -# include -# -# /* BOOST_PP_ARRAY_ENUM */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_ARRAY_ENUM_I(BOOST_PP_TUPLE_REM_CTOR, array) -# define BOOST_PP_ARRAY_ENUM_I(m, args) BOOST_PP_ARRAY_ENUM_II(m, args) -# define BOOST_PP_ARRAY_ENUM_II(m, args) BOOST_PP_CAT(m ## args,) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_ARRAY_ENUM_I(array) -# define BOOST_PP_ARRAY_ENUM_I(array) BOOST_PP_TUPLE_REM_CTOR ## array -# else -# define BOOST_PP_ARRAY_ENUM(array) BOOST_PP_TUPLE_REM_CTOR array -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/insert.hpp b/lib/3rdParty/boost/boost/preprocessor/array/insert.hpp deleted file mode 100644 index b8fe5b8f8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/insert.hpp +++ /dev/null @@ -1,55 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_INSERT_HPP -# define BOOST_PREPROCESSOR_ARRAY_INSERT_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_INSERT */ -# -# define BOOST_PP_ARRAY_INSERT(array, i, elem) BOOST_PP_ARRAY_INSERT_I(BOOST_PP_DEDUCE_D(), array, i, elem) -# define BOOST_PP_ARRAY_INSERT_I(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) -# -# /* BOOST_PP_ARRAY_INSERT_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array))) -# else -# define BOOST_PP_ARRAY_INSERT_D(d, array, i, elem) BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem) -# define BOOST_PP_ARRAY_INSERT_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_INSERT_P, BOOST_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array))) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I state -# else -# define BOOST_PP_ARRAY_INSERT_P(d, state) BOOST_PP_ARRAY_INSERT_P_I(nil, nil, nil, BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state)) -# endif -# -# define BOOST_PP_ARRAY_INSERT_P_I(_i, _ii, _iii, res, arr) BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), BOOST_PP_INC(BOOST_PP_ARRAY_SIZE(arr))) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I state -# else -# define BOOST_PP_ARRAY_INSERT_O(d, state) BOOST_PP_ARRAY_INSERT_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state)) -# endif -# -# define BOOST_PP_ARRAY_INSERT_O_I(n, i, elem, res, arr) (BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_INC(n), n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(BOOST_PP_ARRAY_SIZE(res), i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/pop_back.hpp b/lib/3rdParty/boost/boost/preprocessor/array/pop_back.hpp deleted file mode 100644 index 29d2a45b7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/pop_back.hpp +++ /dev/null @@ -1,37 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP -# define BOOST_PREPROCESSOR_ARRAY_POP_BACK_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_POP_BACK */ -# -# define BOOST_PP_ARRAY_POP_BACK(array) BOOST_PP_ARRAY_POP_BACK_Z(BOOST_PP_DEDUCE_Z(), array) -# -# /* BOOST_PP_ARRAY_POP_BACK_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array) -# else -# define BOOST_PP_ARRAY_POP_BACK_Z(z, array) BOOST_PP_ARRAY_POP_BACK_Z_D(z, array) -# define BOOST_PP_ARRAY_POP_BACK_Z_D(z, array) BOOST_PP_ARRAY_POP_BACK_I(z, BOOST_PP_ARRAY_SIZE(array), array) -# endif -# -# define BOOST_PP_ARRAY_POP_BACK_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_BACK_M, array))) -# define BOOST_PP_ARRAY_POP_BACK_M(z, n, data) BOOST_PP_ARRAY_ELEM(n, data) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/pop_front.hpp b/lib/3rdParty/boost/boost/preprocessor/array/pop_front.hpp deleted file mode 100644 index 7d9069c5a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/pop_front.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP -# define BOOST_PREPROCESSOR_ARRAY_POP_FRONT_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_POP_FRONT */ -# -# define BOOST_PP_ARRAY_POP_FRONT(array) BOOST_PP_ARRAY_POP_FRONT_Z(BOOST_PP_DEDUCE_Z(), array) -# -# /* BOOST_PP_ARRAY_POP_FRONT_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array) -# else -# define BOOST_PP_ARRAY_POP_FRONT_Z(z, array) BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array) -# define BOOST_PP_ARRAY_POP_FRONT_Z_D(z, array) BOOST_PP_ARRAY_POP_FRONT_I(z, BOOST_PP_ARRAY_SIZE(array), array) -# endif -# -# define BOOST_PP_ARRAY_POP_FRONT_I(z, size, array) (BOOST_PP_DEC(size), (BOOST_PP_ENUM_ ## z(BOOST_PP_DEC(size), BOOST_PP_ARRAY_POP_FRONT_M, array))) -# define BOOST_PP_ARRAY_POP_FRONT_M(z, n, data) BOOST_PP_ARRAY_ELEM(BOOST_PP_INC(n), data) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/push_back.hpp b/lib/3rdParty/boost/boost/preprocessor/array/push_back.hpp deleted file mode 100644 index 5dce9e08c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/push_back.hpp +++ /dev/null @@ -1,35 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP -# define BOOST_PREPROCESSOR_ARRAY_PUSH_BACK_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_PUSH_BACK */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem) -# else -# define BOOST_PP_ARRAY_PUSH_BACK(array, elem) BOOST_PP_ARRAY_PUSH_BACK_D(array, elem) -# define BOOST_PP_ARRAY_PUSH_BACK_D(array, elem) BOOST_PP_ARRAY_PUSH_BACK_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem) -# endif -# -# define BOOST_PP_ARRAY_PUSH_BACK_I(size, data, elem) (BOOST_PP_INC(size), (BOOST_PP_ARRAY_DETAIL_GET_DATA(size,data) BOOST_PP_COMMA_IF(size) elem)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/push_front.hpp b/lib/3rdParty/boost/boost/preprocessor/array/push_front.hpp deleted file mode 100644 index a6c6dc73d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/push_front.hpp +++ /dev/null @@ -1,35 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002. -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP -# define BOOST_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_PUSH_FRONT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem) -# else -# define BOOST_PP_ARRAY_PUSH_FRONT(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem) -# define BOOST_PP_ARRAY_PUSH_FRONT_D(array, elem) BOOST_PP_ARRAY_PUSH_FRONT_I(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array), elem) -# endif -# -# define BOOST_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (BOOST_PP_INC(size), (elem BOOST_PP_COMMA_IF(size) BOOST_PP_ARRAY_DETAIL_GET_DATA(size,data))) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/remove.hpp b/lib/3rdParty/boost/boost/preprocessor/array/remove.hpp deleted file mode 100644 index 02609000b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/remove.hpp +++ /dev/null @@ -1,54 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP -# define BOOST_PREPROCESSOR_ARRAY_REMOVE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_REMOVE */ -# -# define BOOST_PP_ARRAY_REMOVE(array, i) BOOST_PP_ARRAY_REMOVE_I(BOOST_PP_DEDUCE_D(), array, i) -# define BOOST_PP_ARRAY_REMOVE_I(d, array, i) BOOST_PP_ARRAY_REMOVE_D(d, array, i) -# -# /* BOOST_PP_ARRAY_REMOVE_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array))) -# else -# define BOOST_PP_ARRAY_REMOVE_D(d, array, i) BOOST_PP_ARRAY_REMOVE_D_I(d, array, i) -# define BOOST_PP_ARRAY_REMOVE_D_I(d, array, i) BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REMOVE_P, BOOST_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array))) -# endif -# -# define BOOST_PP_ARRAY_REMOVE_P(d, st) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(4, 3, st))) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I st -# else -# define BOOST_PP_ARRAY_REMOVE_O(d, st) BOOST_PP_ARRAY_REMOVE_O_I(BOOST_PP_TUPLE_ELEM(4, 0, st), BOOST_PP_TUPLE_ELEM(4, 1, st), BOOST_PP_TUPLE_ELEM(4, 2, st), BOOST_PP_TUPLE_ELEM(4, 3, st)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, res BOOST_PP_TUPLE_EAT_2)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr) -# else -# define BOOST_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (BOOST_PP_INC(n), i, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_PUSH_BACK, BOOST_PP_TUPLE_ELEM_2_0)(res, BOOST_PP_ARRAY_ELEM(n, arr)), arr) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/replace.hpp b/lib/3rdParty/boost/boost/preprocessor/array/replace.hpp deleted file mode 100644 index 10a1f0976..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/replace.hpp +++ /dev/null @@ -1,49 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP -# define BOOST_PREPROCESSOR_ARRAY_REPLACE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_REPLACE */ -# -# define BOOST_PP_ARRAY_REPLACE(array, i, elem) BOOST_PP_ARRAY_REPLACE_I(BOOST_PP_DEDUCE_D(), array, i, elem) -# define BOOST_PP_ARRAY_REPLACE_I(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) -# -# /* BOOST_PP_ARRAY_REPLACE_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array))) -# else -# define BOOST_PP_ARRAY_REPLACE_D(d, array, i, elem) BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem) -# define BOOST_PP_ARRAY_REPLACE_D_I(d, array, i, elem) BOOST_PP_TUPLE_ELEM(5, 3, BOOST_PP_WHILE_ ## d(BOOST_PP_ARRAY_REPLACE_P, BOOST_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array))) -# endif -# -# define BOOST_PP_ARRAY_REPLACE_P(d, state) BOOST_PP_NOT_EQUAL(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_ARRAY_SIZE(BOOST_PP_TUPLE_ELEM(5, 4, state))) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I state -# else -# define BOOST_PP_ARRAY_REPLACE_O(d, state) BOOST_PP_ARRAY_REPLACE_O_I(BOOST_PP_TUPLE_ELEM(5, 0, state), BOOST_PP_TUPLE_ELEM(5, 1, state), BOOST_PP_TUPLE_ELEM(5, 2, state), BOOST_PP_TUPLE_ELEM(5, 3, state), BOOST_PP_TUPLE_ELEM(5, 4, state)) -# endif -# -# define BOOST_PP_ARRAY_REPLACE_O_I(n, i, elem, res, arr) (BOOST_PP_INC(n), i, elem, BOOST_PP_ARRAY_PUSH_BACK(res, BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(n, i), BOOST_PP_ARRAY_ELEM(n, arr), elem)), arr) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/reverse.hpp b/lib/3rdParty/boost/boost/preprocessor/array/reverse.hpp deleted file mode 100644 index a6a4f75c7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/reverse.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP -# define BOOST_PREPROCESSOR_ARRAY_REVERSE_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_REVERSE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_REVERSE(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array))) -# else -# define BOOST_PP_ARRAY_REVERSE(array) BOOST_PP_ARRAY_REVERSE_I(array) -# define BOOST_PP_ARRAY_REVERSE_I(array) (BOOST_PP_ARRAY_SIZE(array), BOOST_PP_TUPLE_REVERSE(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_ARRAY_DATA(array))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/size.hpp b/lib/3rdParty/boost/boost/preprocessor/array/size.hpp deleted file mode 100644 index 3f370ee41..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/size.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_SIZE_HPP -# define BOOST_PREPROCESSOR_ARRAY_SIZE_HPP -# -# include -# include -# -# /* BOOST_PP_ARRAY_SIZE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_TUPLE_ELEM(2, 0, array) -# else -# define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_ARRAY_SIZE_I(array) -# define BOOST_PP_ARRAY_SIZE_I(array) BOOST_PP_ARRAY_SIZE_II array -# define BOOST_PP_ARRAY_SIZE_II(size, data) size -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/to_list.hpp b/lib/3rdParty/boost/boost/preprocessor/array/to_list.hpp deleted file mode 100644 index 4cb45b6ec..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/to_list.hpp +++ /dev/null @@ -1,47 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_TO_LIST_HPP -# define BOOST_PREPROCESSOR_ARRAY_TO_LIST_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_TO_LIST */ -# -# define BOOST_PP_ARRAY_TO_LIST(array) \ - BOOST_PP_IF \ - ( \ - BOOST_PP_ARRAY_SIZE(array), \ - BOOST_PP_ARRAY_TO_LIST_DO, \ - BOOST_PP_ARRAY_TO_LIST_EMPTY \ - ) \ - (array) \ -/**/ -# -# define BOOST_PP_ARRAY_TO_LIST_EMPTY(array) BOOST_PP_NIL -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_ARRAY_TO_LIST_DO(array) BOOST_PP_ARRAY_TO_LIST_I(BOOST_PP_TUPLE_TO_LIST, array) -# define BOOST_PP_ARRAY_TO_LIST_I(m, args) BOOST_PP_ARRAY_TO_LIST_II(m, args) -# define BOOST_PP_ARRAY_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_ARRAY_TO_LIST_DO(array) BOOST_PP_ARRAY_TO_LIST_I(array) -# define BOOST_PP_ARRAY_TO_LIST_I(array) BOOST_PP_TUPLE_TO_LIST ## array -# else -# define BOOST_PP_ARRAY_TO_LIST_DO(array) BOOST_PP_TUPLE_TO_LIST array -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/to_seq.hpp b/lib/3rdParty/boost/boost/preprocessor/array/to_seq.hpp deleted file mode 100644 index 7303f340c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/to_seq.hpp +++ /dev/null @@ -1,46 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_TO_SEQ_HPP -# define BOOST_PREPROCESSOR_ARRAY_TO_SEQ_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ARRAY_TO_SEQ */ -# -# define BOOST_PP_ARRAY_TO_SEQ(array) \ - BOOST_PP_IF \ - ( \ - BOOST_PP_ARRAY_SIZE(array), \ - BOOST_PP_ARRAY_TO_SEQ_DO, \ - BOOST_PP_ARRAY_TO_SEQ_EMPTY \ - ) \ - (array) \ -/**/ -# define BOOST_PP_ARRAY_TO_SEQ_EMPTY(array) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_ARRAY_TO_SEQ_DO(array) BOOST_PP_ARRAY_TO_SEQ_I(BOOST_PP_TUPLE_TO_SEQ, array) -# define BOOST_PP_ARRAY_TO_SEQ_I(m, args) BOOST_PP_ARRAY_TO_SEQ_II(m, args) -# define BOOST_PP_ARRAY_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_ARRAY_TO_SEQ_DO(array) BOOST_PP_ARRAY_TO_SEQ_I(array) -# define BOOST_PP_ARRAY_TO_SEQ_I(array) BOOST_PP_TUPLE_TO_SEQ ## array -# else -# define BOOST_PP_ARRAY_TO_SEQ_DO(array) BOOST_PP_TUPLE_TO_SEQ array -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/array/to_tuple.hpp b/lib/3rdParty/boost/boost/preprocessor/array/to_tuple.hpp deleted file mode 100644 index 0d8defa96..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/array/to_tuple.hpp +++ /dev/null @@ -1,33 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_ARRAY_TO_TUPLE_HPP -# define BOOST_PREPROCESSOR_ARRAY_TO_TUPLE_HPP -# -# include -# include -# include -# -# /* BOOST_PP_ARRAY_TO_TUPLE */ -# -# define BOOST_PP_ARRAY_TO_TUPLE(array) \ - BOOST_PP_IF \ - ( \ - BOOST_PP_ARRAY_SIZE(array), \ - BOOST_PP_ARRAY_DATA, \ - BOOST_PP_ARRAY_TO_TUPLE_EMPTY \ - ) \ - (array) \ -/**/ -# define BOOST_PP_ARRAY_TO_TUPLE_EMPTY(array) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/assert_msg.hpp b/lib/3rdParty/boost/boost/preprocessor/assert_msg.hpp deleted file mode 100644 index 924dba1d9..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/assert_msg.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ASSERT_MSG_HPP -# define BOOST_PREPROCESSOR_ASSERT_MSG_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/cat.hpp b/lib/3rdParty/boost/boost/preprocessor/cat.hpp deleted file mode 100644 index 5e52850d4..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/cat.hpp +++ /dev/null @@ -1,35 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CAT_HPP -# define BOOST_PREPROCESSOR_CAT_HPP -# -# include -# -# /* BOOST_PP_CAT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b) -# else -# define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b)) -# define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_CAT_I(a, b) a ## b -# else -# define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b) -# define BOOST_PP_CAT_II(p, res) res -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comma.hpp b/lib/3rdParty/boost/boost/preprocessor/comma.hpp deleted file mode 100644 index 6e02fb613..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comma.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMMA_HPP -# define BOOST_PREPROCESSOR_COMMA_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comma_if.hpp b/lib/3rdParty/boost/boost/preprocessor/comma_if.hpp deleted file mode 100644 index 9ceb07955..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comma_if.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP -# define BOOST_PREPROCESSOR_COMMA_IF_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison.hpp deleted file mode 100644 index b09ac8f97..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison.hpp +++ /dev/null @@ -1,24 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_HPP -# define BOOST_PREPROCESSOR_COMPARISON_HPP -# -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison/equal.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison/equal.hpp deleted file mode 100644 index d299efe58..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison/equal.hpp +++ /dev/null @@ -1,34 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_EQUAL_HPP -# define BOOST_PREPROCESSOR_COMPARISON_EQUAL_HPP -# -# include -# include -# include -# -# /* BOOST_PP_EQUAL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_EQUAL(x, y) BOOST_PP_COMPL(BOOST_PP_NOT_EQUAL(x, y)) -# else -# define BOOST_PP_EQUAL(x, y) BOOST_PP_EQUAL_I(x, y) -# define BOOST_PP_EQUAL_I(x, y) BOOST_PP_COMPL(BOOST_PP_NOT_EQUAL(x, y)) -# endif -# -# /* BOOST_PP_EQUAL_D */ -# -# define BOOST_PP_EQUAL_D(d, x, y) BOOST_PP_EQUAL(x, y) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison/greater.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison/greater.hpp deleted file mode 100644 index 83d2fcf23..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison/greater.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_GREATER_HPP -# define BOOST_PREPROCESSOR_COMPARISON_GREATER_HPP -# -# include -# include -# -# /* BOOST_PP_GREATER */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_GREATER(x, y) BOOST_PP_LESS(y, x) -# else -# define BOOST_PP_GREATER(x, y) BOOST_PP_GREATER_I(x, y) -# define BOOST_PP_GREATER_I(x, y) BOOST_PP_LESS(y, x) -# endif -# -# /* BOOST_PP_GREATER_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_GREATER_D(d, x, y) BOOST_PP_LESS_D(d, y, x) -# else -# define BOOST_PP_GREATER_D(d, x, y) BOOST_PP_GREATER_D_I(d, x, y) -# define BOOST_PP_GREATER_D_I(d, x, y) BOOST_PP_LESS_D(d, y, x) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison/greater_equal.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison/greater_equal.hpp deleted file mode 100644 index beaeaff6b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison/greater_equal.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP -# define BOOST_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP -# -# include -# include -# -# /* BOOST_PP_GREATER_EQUAL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_GREATER_EQUAL(x, y) BOOST_PP_LESS_EQUAL(y, x) -# else -# define BOOST_PP_GREATER_EQUAL(x, y) BOOST_PP_GREATER_EQUAL_I(x, y) -# define BOOST_PP_GREATER_EQUAL_I(x, y) BOOST_PP_LESS_EQUAL(y, x) -# endif -# -# /* BOOST_PP_GREATER_EQUAL_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_GREATER_EQUAL_D(d, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x) -# else -# define BOOST_PP_GREATER_EQUAL_D(d, x, y) BOOST_PP_GREATER_EQUAL_D_I(d, x, y) -# define BOOST_PP_GREATER_EQUAL_D_I(d, x, y) BOOST_PP_LESS_EQUAL_D(d, y, x) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison/less.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison/less.hpp deleted file mode 100644 index d91ea3d02..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison/less.hpp +++ /dev/null @@ -1,46 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP -# define BOOST_PREPROCESSOR_COMPARISON_LESS_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LESS */ -# -# if BOOST_PP_CONFIG_FLAGS() & (BOOST_PP_CONFIG_MWCC() | BOOST_PP_CONFIG_DMC()) -# define BOOST_PP_LESS(x, y) BOOST_PP_BITAND(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL(x, y)) -# elif ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LESS(x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL, 0 BOOST_PP_TUPLE_EAT_2)(x, y) -# else -# define BOOST_PP_LESS(x, y) BOOST_PP_LESS_I(x, y) -# define BOOST_PP_LESS_I(x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL, 0 BOOST_PP_TUPLE_EAT_2)(x, y) -# endif -# -# /* BOOST_PP_LESS_D */ -# -# if BOOST_PP_CONFIG_FLAGS() & (BOOST_PP_CONFIG_MWCC() | BOOST_PP_CONFIG_DMC()) -# define BOOST_PP_LESS_D(d, x, y) BOOST_PP_BITAND(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D(d, x, y)) -# elif ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LESS_D(d, x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D, 0 BOOST_PP_TUPLE_EAT_3)(d, x, y) -# else -# define BOOST_PP_LESS_D(d, x, y) BOOST_PP_LESS_D_I(d, x, y) -# define BOOST_PP_LESS_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D, 0 BOOST_PP_TUPLE_EAT_3)(d, x, y) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison/less_equal.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison/less_equal.hpp deleted file mode 100644 index 1302d5470..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison/less_equal.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP -# define BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP -# -# include -# include -# include -# -# /* BOOST_PP_LESS_EQUAL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LESS_EQUAL(x, y) BOOST_PP_NOT(BOOST_PP_SUB(x, y)) -# else -# define BOOST_PP_LESS_EQUAL(x, y) BOOST_PP_LESS_EQUAL_I(x, y) -# define BOOST_PP_LESS_EQUAL_I(x, y) BOOST_PP_NOT(BOOST_PP_SUB(x, y)) -# endif -# -# /* BOOST_PP_LESS_EQUAL_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LESS_EQUAL_D(d, x, y) BOOST_PP_NOT(BOOST_PP_SUB_D(d, x, y)) -# else -# define BOOST_PP_LESS_EQUAL_D(d, x, y) BOOST_PP_LESS_EQUAL_D_I(d, x, y) -# define BOOST_PP_LESS_EQUAL_D_I(d, x, y) BOOST_PP_NOT(BOOST_PP_SUB_D(d, x, y)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/comparison/not_equal.hpp b/lib/3rdParty/boost/boost/preprocessor/comparison/not_equal.hpp deleted file mode 100644 index b4b0eae12..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/comparison/not_equal.hpp +++ /dev/null @@ -1,814 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP -# define BOOST_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP -# -# include -# include -# include -# -# /* BOOST_PP_NOT_EQUAL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_NOT_EQUAL(x, y) BOOST_PP_NOT_EQUAL_I(x, y) -# else -# define BOOST_PP_NOT_EQUAL(x, y) BOOST_PP_NOT_EQUAL_OO((x, y)) -# define BOOST_PP_NOT_EQUAL_OO(par) BOOST_PP_NOT_EQUAL_I ## par -# endif -# -# define BOOST_PP_NOT_EQUAL_I(x, y) BOOST_PP_CAT(BOOST_PP_NOT_EQUAL_CHECK_, BOOST_PP_NOT_EQUAL_ ## x(0, BOOST_PP_NOT_EQUAL_ ## y)) -# -# /* BOOST_PP_NOT_EQUAL_D */ -# -# define BOOST_PP_NOT_EQUAL_D(d, x, y) BOOST_PP_NOT_EQUAL(x, y) -# -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NIL 1 -# -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_0(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_1(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_2(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_3(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_4(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_5(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_6(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_7(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_8(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_9(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_10(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_11(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_12(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_13(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_14(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_15(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_16(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_17(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_18(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_19(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_20(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_21(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_22(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_23(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_24(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_25(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_26(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_27(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_28(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_29(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_30(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_31(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_32(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_33(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_34(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_35(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_36(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_37(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_38(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_39(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_40(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_41(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_42(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_43(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_44(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_45(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_46(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_47(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_48(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_49(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_50(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_51(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_52(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_53(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_54(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_55(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_56(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_57(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_58(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_59(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_60(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_61(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_62(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_63(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_64(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_65(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_66(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_67(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_68(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_69(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_70(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_71(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_72(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_73(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_74(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_75(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_76(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_77(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_78(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_79(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_80(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_81(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_82(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_83(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_84(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_85(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_86(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_87(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_88(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_89(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_90(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_91(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_92(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_93(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_94(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_95(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_96(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_97(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_98(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_99(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_100(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_101(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_102(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_103(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_104(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_105(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_106(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_107(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_108(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_109(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_110(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_111(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_112(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_113(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_114(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_115(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_116(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_117(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_118(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_119(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_120(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_121(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_122(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_123(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_124(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_125(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_126(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_127(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_128(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_129(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_130(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_131(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_132(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_133(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_134(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_135(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_136(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_137(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_138(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_139(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_140(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_141(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_142(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_143(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_144(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_145(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_146(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_147(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_148(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_149(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_150(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_151(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_152(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_153(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_154(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_155(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_156(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_157(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_158(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_159(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_160(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_161(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_162(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_163(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_164(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_165(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_166(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_167(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_168(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_169(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_170(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_171(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_172(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_173(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_174(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_175(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_176(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_177(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_178(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_179(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_180(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_181(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_182(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_183(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_184(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_185(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_186(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_187(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_188(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_189(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_190(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_191(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_192(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_193(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_194(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_195(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_196(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_197(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_198(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_199(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_200(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_201(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_202(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_203(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_204(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_205(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_206(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_207(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_208(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_209(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_210(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_211(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_212(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_213(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_214(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_215(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_216(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_217(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_218(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_219(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_220(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_221(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_222(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_223(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_224(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_225(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_226(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_227(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_228(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_229(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_230(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_231(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_232(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_233(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_234(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_235(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_236(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_237(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_238(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_239(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_240(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_241(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_242(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_243(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_244(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_245(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_246(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_247(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_248(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_249(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_250(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_251(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_252(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_253(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_254(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_255(c, y) 0 -# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_256(c, y) 0 -# -#if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_NOT_EQUAL_0(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_1(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_2(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_3(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_4(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_5(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_6(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_7(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_8(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_9(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_10(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_11(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_12(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_13(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_14(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_15(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_16(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_17(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_18(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_19(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_20(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_21(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_22(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_23(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_24(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_25(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_26(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_27(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_28(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_29(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_30(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_31(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_32(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_33(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_34(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_35(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_36(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_37(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_38(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_39(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_40(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_41(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_42(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_43(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_44(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_45(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_46(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_47(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_48(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_49(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_50(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_51(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_52(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_53(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_54(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_55(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_56(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_57(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_58(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_59(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_60(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_61(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_62(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_63(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_64(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_65(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_66(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_67(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_68(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_69(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_70(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_71(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_72(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_73(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_74(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_75(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_76(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_77(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_78(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_79(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_80(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_81(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_82(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_83(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_84(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_85(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_86(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_87(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_88(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_89(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_90(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_91(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_92(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_93(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_94(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_95(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_96(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_97(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_98(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_99(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_100(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_101(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_102(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_103(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_104(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_105(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_106(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_107(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_108(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_109(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_110(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_111(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_112(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_113(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_114(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_115(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_116(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_117(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_118(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_119(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_120(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_121(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_122(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_123(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_124(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_125(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_126(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_127(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_128(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_129(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_130(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_131(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_132(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_133(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_134(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_135(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_136(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_137(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_138(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_139(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_140(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_141(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_142(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_143(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_144(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_145(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_146(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_147(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_148(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_149(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_150(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_151(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_152(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_153(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_154(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_155(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_156(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_157(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_158(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_159(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_160(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_161(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_162(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_163(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_164(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_165(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_166(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_167(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_168(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_169(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_170(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_171(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_172(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_173(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_174(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_175(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_176(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_177(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_178(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_179(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_180(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_181(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_182(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_183(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_184(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_185(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_186(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_187(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_188(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_189(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_190(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_191(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_192(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_193(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_194(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_195(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_196(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_197(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_198(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_199(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_200(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_201(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_202(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_203(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_204(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_205(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_206(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_207(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_208(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_209(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_210(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_211(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_212(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_213(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_214(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_215(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_216(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_217(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_218(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_219(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_220(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_221(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_222(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_223(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_224(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_225(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_226(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_227(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_228(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_229(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_230(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_231(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_232(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_233(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_234(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_235(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_236(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_237(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_238(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_239(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_240(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_241(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_242(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_243(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_244(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_245(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_246(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_247(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_248(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_249(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_250(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_251(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_252(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_253(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_254(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_255(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_256(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL)) -# else -# define BOOST_PP_NOT_EQUAL_0(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_1(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_2(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_3(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_4(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_5(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_6(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_7(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_8(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_9(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_10(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_11(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_12(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_13(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_14(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_15(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_16(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_17(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_18(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_19(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_20(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_21(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_22(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_23(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_24(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_25(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_26(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_27(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_28(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_29(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_30(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_31(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_32(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_33(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_34(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_35(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_36(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_37(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_38(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_39(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_40(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_41(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_42(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_43(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_44(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_45(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_46(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_47(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_48(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_49(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_50(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_51(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_52(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_53(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_54(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_55(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_56(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_57(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_58(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_59(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_60(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_61(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_62(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_63(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_64(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_65(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_66(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_67(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_68(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_69(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_70(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_71(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_72(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_73(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_74(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_75(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_76(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_77(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_78(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_79(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_80(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_81(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_82(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_83(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_84(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_85(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_86(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_87(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_88(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_89(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_90(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_91(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_92(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_93(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_94(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_95(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_96(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_97(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_98(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_99(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_100(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_101(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_102(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_103(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_104(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_105(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_106(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_107(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_108(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_109(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_110(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_111(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_112(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_113(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_114(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_115(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_116(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_117(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_118(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_119(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_120(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_121(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_122(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_123(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_124(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_125(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_126(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_127(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_128(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_129(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_130(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_131(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_132(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_133(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_134(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_135(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_136(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_137(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_138(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_139(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_140(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_141(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_142(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_143(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_144(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_145(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_146(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_147(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_148(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_149(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_150(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_151(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_152(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_153(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_154(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_155(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_156(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_157(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_158(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_159(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_160(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_161(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_162(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_163(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_164(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_165(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_166(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_167(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_168(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_169(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_170(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_171(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_172(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_173(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_174(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_175(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_176(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_177(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_178(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_179(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_180(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_181(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_182(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_183(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_184(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_185(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_186(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_187(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_188(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_189(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_190(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_191(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_192(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_193(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_194(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_195(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_196(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_197(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_198(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_199(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_200(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_201(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_202(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_203(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_204(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_205(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_206(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_207(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_208(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_209(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_210(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_211(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_212(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_213(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_214(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_215(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_216(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_217(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_218(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_219(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_220(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_221(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_222(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_223(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_224(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_225(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_226(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_227(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_228(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_229(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_230(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_231(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_232(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_233(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_234(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_235(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_236(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_237(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_238(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_239(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_240(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_241(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_242(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_243(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_244(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_245(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_246(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_247(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_248(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_249(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_250(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_251(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_252(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_253(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_254(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_255(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# define BOOST_PP_NOT_EQUAL_256(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/config/config.hpp b/lib/3rdParty/boost/boost/preprocessor/config/config.hpp deleted file mode 100644 index 8be0e4754..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/config/config.hpp +++ /dev/null @@ -1,104 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP -# define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP -# -# /* BOOST_PP_CONFIG_FLAGS */ -# -# define BOOST_PP_CONFIG_STRICT() 0x0001 -# define BOOST_PP_CONFIG_IDEAL() 0x0002 -# -# define BOOST_PP_CONFIG_MSVC() 0x0004 -# define BOOST_PP_CONFIG_MWCC() 0x0008 -# define BOOST_PP_CONFIG_BCC() 0x0010 -# define BOOST_PP_CONFIG_EDG() 0x0020 -# define BOOST_PP_CONFIG_DMC() 0x0040 -# -# ifndef BOOST_PP_CONFIG_FLAGS -# if defined(__GCCXML__) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) -# elif defined(__WAVE__) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) -# elif defined(__MWERKS__) && __MWERKS__ >= 0x3200 -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) -# elif defined(__EDG__) || defined(__EDG_VERSION__) -# if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) -# else -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) -# endif -# elif defined(__MWERKS__) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC()) -# elif defined(__DMC__) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC()) -# elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581 -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) -# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) -# elif defined(_MSC_VER) && !defined(__clang__) -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) -# else -# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT()) -# endif -# endif -# -# /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */ -# -# ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO -# define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0 -# endif -# -# /* BOOST_PP_CONFIG_ERRORS */ -# -# ifndef BOOST_PP_CONFIG_ERRORS -# ifdef NDEBUG -# define BOOST_PP_CONFIG_ERRORS 0 -# else -# define BOOST_PP_CONFIG_ERRORS 1 -# endif -# endif -# -# /* BOOST_PP_VARIADICS */ -# -# define BOOST_PP_VARIADICS_MSVC 0 -# if !defined BOOST_PP_VARIADICS -# /* variadic support explicitly disabled for all untested compilers */ -# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || ( defined __SUNPRO_CC && __SUNPRO_CC < 0x5120 ) || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI -# define BOOST_PP_VARIADICS 0 -# /* VC++ (C/C++) */ -# elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__ -# define BOOST_PP_VARIADICS 1 -# undef BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_VARIADICS_MSVC 1 -# /* Wave (C/C++), GCC (C++) */ -# elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && defined __GXX_EXPERIMENTAL_CXX0X__ && __GXX_EXPERIMENTAL_CXX0X__ -# define BOOST_PP_VARIADICS 1 -# /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */ -# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L -# define BOOST_PP_VARIADICS 1 -# else -# define BOOST_PP_VARIADICS 0 -# endif -# elif !BOOST_PP_VARIADICS + 1 < 2 -# undef BOOST_PP_VARIADICS -# define BOOST_PP_VARIADICS 1 -# if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)) -# undef BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_VARIADICS_MSVC 1 -# endif -# else -# undef BOOST_PP_VARIADICS -# define BOOST_PP_VARIADICS 0 -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/config/limits.hpp b/lib/3rdParty/boost/boost/preprocessor/config/limits.hpp deleted file mode 100644 index f312f2990..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/config/limits.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# /* Revised by Edward Diener (2011) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP -# define BOOST_PREPROCESSOR_CONFIG_LIMITS_HPP -# -# define BOOST_PP_LIMIT_MAG 256 -# define BOOST_PP_LIMIT_TUPLE 64 -# define BOOST_PP_LIMIT_DIM 3 -# define BOOST_PP_LIMIT_REPEAT 256 -# define BOOST_PP_LIMIT_WHILE 256 -# define BOOST_PP_LIMIT_FOR 256 -# define BOOST_PP_LIMIT_ITERATION 256 -# define BOOST_PP_LIMIT_ITERATION_DIM 3 -# define BOOST_PP_LIMIT_SEQ 256 -# define BOOST_PP_LIMIT_SLOT_SIG 10 -# define BOOST_PP_LIMIT_SLOT_COUNT 5 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control.hpp b/lib/3rdParty/boost/boost/preprocessor/control.hpp deleted file mode 100644 index 809fbd9e2..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control.hpp +++ /dev/null @@ -1,22 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_HPP -# define BOOST_PREPROCESSOR_CONTROL_HPP -# -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/deduce_d.hpp b/lib/3rdParty/boost/boost/preprocessor/control/deduce_d.hpp deleted file mode 100644 index a0276b0f1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/deduce_d.hpp +++ /dev/null @@ -1,22 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP -# define BOOST_PREPROCESSOR_CONTROL_DEDUCE_D_HPP -# -# include -# include -# -# /* BOOST_PP_DEDUCE_D */ -# -# define BOOST_PP_DEDUCE_D() BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/detail/dmc/while.hpp b/lib/3rdParty/boost/boost/preprocessor/control/detail/dmc/while.hpp deleted file mode 100644 index 95c3135b3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/detail/dmc/while.hpp +++ /dev/null @@ -1,536 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP -# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP -# -# include -# include -# include -# -# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p##(2, s)), p, o, s) -# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p##(3, s)), p, o, s) -# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p##(4, s)), p, o, s) -# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p##(5, s)), p, o, s) -# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p##(6, s)), p, o, s) -# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p##(7, s)), p, o, s) -# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p##(8, s)), p, o, s) -# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p##(9, s)), p, o, s) -# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p##(10, s)), p, o, s) -# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p##(11, s)), p, o, s) -# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p##(12, s)), p, o, s) -# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p##(13, s)), p, o, s) -# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p##(14, s)), p, o, s) -# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p##(15, s)), p, o, s) -# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p##(16, s)), p, o, s) -# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p##(17, s)), p, o, s) -# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p##(18, s)), p, o, s) -# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p##(19, s)), p, o, s) -# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p##(20, s)), p, o, s) -# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p##(21, s)), p, o, s) -# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p##(22, s)), p, o, s) -# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p##(23, s)), p, o, s) -# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p##(24, s)), p, o, s) -# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p##(25, s)), p, o, s) -# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p##(26, s)), p, o, s) -# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p##(27, s)), p, o, s) -# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p##(28, s)), p, o, s) -# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p##(29, s)), p, o, s) -# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p##(30, s)), p, o, s) -# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p##(31, s)), p, o, s) -# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p##(32, s)), p, o, s) -# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p##(33, s)), p, o, s) -# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p##(34, s)), p, o, s) -# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p##(35, s)), p, o, s) -# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p##(36, s)), p, o, s) -# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p##(37, s)), p, o, s) -# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p##(38, s)), p, o, s) -# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p##(39, s)), p, o, s) -# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p##(40, s)), p, o, s) -# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p##(41, s)), p, o, s) -# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p##(42, s)), p, o, s) -# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p##(43, s)), p, o, s) -# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p##(44, s)), p, o, s) -# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p##(45, s)), p, o, s) -# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p##(46, s)), p, o, s) -# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p##(47, s)), p, o, s) -# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p##(48, s)), p, o, s) -# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p##(49, s)), p, o, s) -# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p##(50, s)), p, o, s) -# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p##(51, s)), p, o, s) -# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p##(52, s)), p, o, s) -# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p##(53, s)), p, o, s) -# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p##(54, s)), p, o, s) -# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p##(55, s)), p, o, s) -# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p##(56, s)), p, o, s) -# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p##(57, s)), p, o, s) -# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p##(58, s)), p, o, s) -# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p##(59, s)), p, o, s) -# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p##(60, s)), p, o, s) -# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p##(61, s)), p, o, s) -# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p##(62, s)), p, o, s) -# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p##(63, s)), p, o, s) -# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p##(64, s)), p, o, s) -# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p##(65, s)), p, o, s) -# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p##(66, s)), p, o, s) -# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p##(67, s)), p, o, s) -# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p##(68, s)), p, o, s) -# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p##(69, s)), p, o, s) -# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p##(70, s)), p, o, s) -# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p##(71, s)), p, o, s) -# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p##(72, s)), p, o, s) -# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p##(73, s)), p, o, s) -# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p##(74, s)), p, o, s) -# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p##(75, s)), p, o, s) -# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p##(76, s)), p, o, s) -# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p##(77, s)), p, o, s) -# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p##(78, s)), p, o, s) -# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p##(79, s)), p, o, s) -# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p##(80, s)), p, o, s) -# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p##(81, s)), p, o, s) -# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p##(82, s)), p, o, s) -# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p##(83, s)), p, o, s) -# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p##(84, s)), p, o, s) -# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p##(85, s)), p, o, s) -# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p##(86, s)), p, o, s) -# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p##(87, s)), p, o, s) -# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p##(88, s)), p, o, s) -# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p##(89, s)), p, o, s) -# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p##(90, s)), p, o, s) -# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p##(91, s)), p, o, s) -# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p##(92, s)), p, o, s) -# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p##(93, s)), p, o, s) -# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p##(94, s)), p, o, s) -# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p##(95, s)), p, o, s) -# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p##(96, s)), p, o, s) -# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p##(97, s)), p, o, s) -# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p##(98, s)), p, o, s) -# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p##(99, s)), p, o, s) -# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p##(100, s)), p, o, s) -# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p##(101, s)), p, o, s) -# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p##(102, s)), p, o, s) -# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p##(103, s)), p, o, s) -# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p##(104, s)), p, o, s) -# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p##(105, s)), p, o, s) -# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p##(106, s)), p, o, s) -# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p##(107, s)), p, o, s) -# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p##(108, s)), p, o, s) -# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p##(109, s)), p, o, s) -# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p##(110, s)), p, o, s) -# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p##(111, s)), p, o, s) -# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p##(112, s)), p, o, s) -# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p##(113, s)), p, o, s) -# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p##(114, s)), p, o, s) -# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p##(115, s)), p, o, s) -# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p##(116, s)), p, o, s) -# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p##(117, s)), p, o, s) -# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p##(118, s)), p, o, s) -# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p##(119, s)), p, o, s) -# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p##(120, s)), p, o, s) -# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p##(121, s)), p, o, s) -# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p##(122, s)), p, o, s) -# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p##(123, s)), p, o, s) -# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p##(124, s)), p, o, s) -# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p##(125, s)), p, o, s) -# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p##(126, s)), p, o, s) -# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p##(127, s)), p, o, s) -# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p##(128, s)), p, o, s) -# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p##(129, s)), p, o, s) -# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p##(130, s)), p, o, s) -# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p##(131, s)), p, o, s) -# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p##(132, s)), p, o, s) -# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p##(133, s)), p, o, s) -# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p##(134, s)), p, o, s) -# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p##(135, s)), p, o, s) -# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p##(136, s)), p, o, s) -# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p##(137, s)), p, o, s) -# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p##(138, s)), p, o, s) -# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p##(139, s)), p, o, s) -# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p##(140, s)), p, o, s) -# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p##(141, s)), p, o, s) -# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p##(142, s)), p, o, s) -# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p##(143, s)), p, o, s) -# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p##(144, s)), p, o, s) -# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p##(145, s)), p, o, s) -# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p##(146, s)), p, o, s) -# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p##(147, s)), p, o, s) -# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p##(148, s)), p, o, s) -# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p##(149, s)), p, o, s) -# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p##(150, s)), p, o, s) -# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p##(151, s)), p, o, s) -# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p##(152, s)), p, o, s) -# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p##(153, s)), p, o, s) -# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p##(154, s)), p, o, s) -# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p##(155, s)), p, o, s) -# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p##(156, s)), p, o, s) -# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p##(157, s)), p, o, s) -# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p##(158, s)), p, o, s) -# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p##(159, s)), p, o, s) -# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p##(160, s)), p, o, s) -# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p##(161, s)), p, o, s) -# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p##(162, s)), p, o, s) -# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p##(163, s)), p, o, s) -# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p##(164, s)), p, o, s) -# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p##(165, s)), p, o, s) -# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p##(166, s)), p, o, s) -# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p##(167, s)), p, o, s) -# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p##(168, s)), p, o, s) -# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p##(169, s)), p, o, s) -# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p##(170, s)), p, o, s) -# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p##(171, s)), p, o, s) -# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p##(172, s)), p, o, s) -# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p##(173, s)), p, o, s) -# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p##(174, s)), p, o, s) -# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p##(175, s)), p, o, s) -# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p##(176, s)), p, o, s) -# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p##(177, s)), p, o, s) -# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p##(178, s)), p, o, s) -# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p##(179, s)), p, o, s) -# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p##(180, s)), p, o, s) -# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p##(181, s)), p, o, s) -# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p##(182, s)), p, o, s) -# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p##(183, s)), p, o, s) -# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p##(184, s)), p, o, s) -# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p##(185, s)), p, o, s) -# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p##(186, s)), p, o, s) -# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p##(187, s)), p, o, s) -# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p##(188, s)), p, o, s) -# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p##(189, s)), p, o, s) -# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p##(190, s)), p, o, s) -# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p##(191, s)), p, o, s) -# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p##(192, s)), p, o, s) -# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p##(193, s)), p, o, s) -# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p##(194, s)), p, o, s) -# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p##(195, s)), p, o, s) -# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p##(196, s)), p, o, s) -# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p##(197, s)), p, o, s) -# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p##(198, s)), p, o, s) -# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p##(199, s)), p, o, s) -# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p##(200, s)), p, o, s) -# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p##(201, s)), p, o, s) -# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p##(202, s)), p, o, s) -# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p##(203, s)), p, o, s) -# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p##(204, s)), p, o, s) -# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p##(205, s)), p, o, s) -# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p##(206, s)), p, o, s) -# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p##(207, s)), p, o, s) -# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p##(208, s)), p, o, s) -# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p##(209, s)), p, o, s) -# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p##(210, s)), p, o, s) -# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p##(211, s)), p, o, s) -# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p##(212, s)), p, o, s) -# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p##(213, s)), p, o, s) -# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p##(214, s)), p, o, s) -# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p##(215, s)), p, o, s) -# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p##(216, s)), p, o, s) -# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p##(217, s)), p, o, s) -# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p##(218, s)), p, o, s) -# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p##(219, s)), p, o, s) -# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p##(220, s)), p, o, s) -# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p##(221, s)), p, o, s) -# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p##(222, s)), p, o, s) -# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p##(223, s)), p, o, s) -# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p##(224, s)), p, o, s) -# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p##(225, s)), p, o, s) -# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p##(226, s)), p, o, s) -# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p##(227, s)), p, o, s) -# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p##(228, s)), p, o, s) -# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p##(229, s)), p, o, s) -# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p##(230, s)), p, o, s) -# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p##(231, s)), p, o, s) -# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p##(232, s)), p, o, s) -# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p##(233, s)), p, o, s) -# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p##(234, s)), p, o, s) -# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p##(235, s)), p, o, s) -# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p##(236, s)), p, o, s) -# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p##(237, s)), p, o, s) -# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p##(238, s)), p, o, s) -# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p##(239, s)), p, o, s) -# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p##(240, s)), p, o, s) -# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p##(241, s)), p, o, s) -# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p##(242, s)), p, o, s) -# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p##(243, s)), p, o, s) -# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p##(244, s)), p, o, s) -# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p##(245, s)), p, o, s) -# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p##(246, s)), p, o, s) -# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p##(247, s)), p, o, s) -# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p##(248, s)), p, o, s) -# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p##(249, s)), p, o, s) -# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p##(250, s)), p, o, s) -# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p##(251, s)), p, o, s) -# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p##(252, s)), p, o, s) -# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p##(253, s)), p, o, s) -# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p##(254, s)), p, o, s) -# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p##(255, s)), p, o, s) -# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p##(256, s)), p, o, s) -# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p##(257, s)), p, o, s) -# -# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(2, s)) -# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(3, s)) -# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(4, s)) -# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(5, s)) -# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(6, s)) -# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(7, s)) -# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(8, s)) -# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(9, s)) -# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(10, s)) -# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(11, s)) -# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(12, s)) -# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(13, s)) -# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(14, s)) -# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(15, s)) -# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(16, s)) -# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(17, s)) -# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(18, s)) -# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(19, s)) -# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(20, s)) -# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(21, s)) -# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(22, s)) -# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(23, s)) -# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(24, s)) -# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(25, s)) -# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(26, s)) -# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(27, s)) -# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(28, s)) -# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(29, s)) -# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(30, s)) -# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(31, s)) -# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(32, s)) -# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(33, s)) -# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(34, s)) -# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(35, s)) -# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(36, s)) -# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(37, s)) -# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(38, s)) -# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(39, s)) -# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(40, s)) -# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(41, s)) -# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(42, s)) -# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(43, s)) -# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(44, s)) -# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(45, s)) -# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(46, s)) -# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(47, s)) -# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(48, s)) -# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(49, s)) -# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(50, s)) -# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(51, s)) -# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(52, s)) -# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(53, s)) -# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(54, s)) -# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(55, s)) -# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(56, s)) -# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(57, s)) -# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(58, s)) -# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(59, s)) -# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(60, s)) -# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(61, s)) -# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(62, s)) -# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(63, s)) -# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(64, s)) -# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(65, s)) -# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(66, s)) -# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(67, s)) -# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(68, s)) -# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(69, s)) -# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(70, s)) -# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(71, s)) -# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(72, s)) -# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(73, s)) -# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(74, s)) -# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(75, s)) -# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(76, s)) -# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(77, s)) -# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(78, s)) -# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(79, s)) -# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(80, s)) -# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(81, s)) -# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(82, s)) -# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(83, s)) -# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(84, s)) -# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(85, s)) -# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(86, s)) -# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(87, s)) -# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(88, s)) -# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(89, s)) -# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(90, s)) -# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(91, s)) -# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(92, s)) -# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(93, s)) -# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(94, s)) -# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(95, s)) -# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(96, s)) -# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(97, s)) -# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(98, s)) -# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(99, s)) -# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(100, s)) -# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(101, s)) -# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(102, s)) -# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(103, s)) -# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(104, s)) -# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(105, s)) -# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(106, s)) -# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(107, s)) -# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(108, s)) -# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(109, s)) -# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(110, s)) -# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(111, s)) -# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(112, s)) -# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(113, s)) -# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(114, s)) -# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(115, s)) -# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(116, s)) -# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(117, s)) -# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(118, s)) -# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(119, s)) -# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(120, s)) -# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(121, s)) -# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(122, s)) -# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(123, s)) -# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(124, s)) -# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(125, s)) -# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(126, s)) -# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(127, s)) -# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(128, s)) -# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(129, s)) -# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(130, s)) -# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(131, s)) -# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(132, s)) -# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(133, s)) -# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(134, s)) -# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(135, s)) -# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(136, s)) -# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(137, s)) -# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(138, s)) -# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(139, s)) -# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(140, s)) -# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(141, s)) -# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(142, s)) -# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(143, s)) -# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(144, s)) -# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(145, s)) -# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(146, s)) -# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(147, s)) -# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(148, s)) -# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(149, s)) -# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(150, s)) -# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(151, s)) -# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(152, s)) -# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(153, s)) -# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(154, s)) -# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(155, s)) -# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(156, s)) -# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(157, s)) -# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(158, s)) -# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(159, s)) -# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(160, s)) -# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(161, s)) -# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(162, s)) -# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(163, s)) -# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(164, s)) -# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(165, s)) -# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(166, s)) -# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(167, s)) -# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(168, s)) -# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(169, s)) -# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(170, s)) -# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(171, s)) -# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(172, s)) -# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(173, s)) -# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(174, s)) -# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(175, s)) -# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(176, s)) -# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(177, s)) -# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(178, s)) -# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(179, s)) -# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(180, s)) -# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(181, s)) -# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(182, s)) -# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(183, s)) -# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(184, s)) -# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(185, s)) -# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(186, s)) -# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(187, s)) -# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(188, s)) -# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(189, s)) -# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(190, s)) -# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(191, s)) -# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(192, s)) -# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(193, s)) -# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(194, s)) -# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(195, s)) -# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(196, s)) -# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(197, s)) -# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(198, s)) -# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(199, s)) -# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(200, s)) -# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(201, s)) -# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(202, s)) -# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(203, s)) -# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(204, s)) -# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(205, s)) -# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(206, s)) -# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(207, s)) -# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(208, s)) -# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(209, s)) -# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(210, s)) -# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(211, s)) -# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(212, s)) -# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(213, s)) -# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(214, s)) -# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(215, s)) -# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(216, s)) -# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(217, s)) -# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(218, s)) -# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(219, s)) -# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(220, s)) -# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(221, s)) -# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(222, s)) -# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(223, s)) -# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(224, s)) -# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(225, s)) -# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(226, s)) -# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(227, s)) -# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(228, s)) -# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(229, s)) -# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(230, s)) -# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(231, s)) -# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(232, s)) -# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(233, s)) -# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(234, s)) -# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(235, s)) -# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(236, s)) -# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(237, s)) -# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(238, s)) -# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(239, s)) -# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(240, s)) -# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(241, s)) -# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(242, s)) -# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(243, s)) -# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(244, s)) -# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(245, s)) -# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(246, s)) -# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(247, s)) -# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(248, s)) -# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(249, s)) -# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(250, s)) -# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(251, s)) -# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(252, s)) -# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(253, s)) -# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(254, s)) -# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(255, s)) -# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(256, s)) -# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(257, s)) -# -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/detail/edg/while.hpp b/lib/3rdParty/boost/boost/preprocessor/control/detail/edg/while.hpp deleted file mode 100644 index ce28eb22e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/detail/edg/while.hpp +++ /dev/null @@ -1,534 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP -# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP -# -# include -# include -# -# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s) -# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s) -# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s) -# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s) -# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s) -# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s) -# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s) -# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s) -# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s) -# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s) -# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s) -# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s) -# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s) -# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s) -# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s) -# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s) -# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s) -# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s) -# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s) -# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s) -# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s) -# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s) -# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s) -# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s) -# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s) -# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s) -# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s) -# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s) -# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s) -# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s) -# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s) -# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s) -# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s) -# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s) -# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s) -# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s) -# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s) -# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s) -# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s) -# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s) -# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s) -# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s) -# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s) -# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s) -# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s) -# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s) -# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s) -# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s) -# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s) -# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s) -# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s) -# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s) -# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s) -# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s) -# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s) -# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s) -# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s) -# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s) -# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s) -# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s) -# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s) -# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s) -# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s) -# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s) -# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s) -# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s) -# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s) -# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s) -# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s) -# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s) -# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s) -# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s) -# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s) -# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s) -# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s) -# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s) -# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s) -# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s) -# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s) -# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s) -# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s) -# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s) -# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s) -# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s) -# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s) -# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s) -# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s) -# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s) -# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s) -# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s) -# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s) -# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s) -# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s) -# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s) -# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s) -# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s) -# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s) -# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s) -# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s) -# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s) -# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s) -# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s) -# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s) -# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s) -# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s) -# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s) -# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s) -# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s) -# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s) -# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s) -# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s) -# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s) -# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s) -# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s) -# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s) -# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s) -# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s) -# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s) -# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s) -# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s) -# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s) -# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s) -# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s) -# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s) -# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s) -# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s) -# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s) -# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s) -# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s) -# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s) -# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s) -# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s) -# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s) -# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s) -# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s) -# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s) -# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s) -# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s) -# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s) -# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s) -# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s) -# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s) -# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s) -# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s) -# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s) -# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s) -# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s) -# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s) -# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s) -# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s) -# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s) -# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s) -# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s) -# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s) -# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s) -# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s) -# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s) -# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s) -# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s) -# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s) -# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s) -# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s) -# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s) -# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s) -# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s) -# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s) -# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s) -# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s) -# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s) -# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s) -# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s) -# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s) -# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s) -# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s) -# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s) -# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s) -# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s) -# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s) -# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s) -# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s) -# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s) -# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s) -# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s) -# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s) -# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s) -# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s) -# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s) -# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s) -# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s) -# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s) -# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s) -# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s) -# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s) -# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s) -# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s) -# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s) -# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s) -# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s) -# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s) -# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s) -# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s) -# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s) -# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s) -# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s) -# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s) -# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s) -# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s) -# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s) -# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s) -# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s) -# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s) -# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s) -# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s) -# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s) -# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s) -# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s) -# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s) -# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s) -# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s) -# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s) -# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s) -# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s) -# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s) -# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s) -# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s) -# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s) -# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s) -# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s) -# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s) -# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s) -# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s) -# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s) -# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s) -# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s) -# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s) -# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s) -# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s) -# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s) -# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s) -# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s) -# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s) -# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s) -# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s) -# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s) -# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s) -# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s) -# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s) -# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s) -# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s) -# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s) -# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s) -# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s) -# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s) -# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s) -# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s) -# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s) -# -# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s)) -# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s)) -# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s)) -# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s)) -# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s)) -# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s)) -# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s)) -# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s)) -# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s)) -# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s)) -# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s)) -# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s)) -# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s)) -# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s)) -# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s)) -# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s)) -# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s)) -# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s)) -# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s)) -# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s)) -# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s)) -# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s)) -# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s)) -# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s)) -# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s)) -# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s)) -# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s)) -# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s)) -# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s)) -# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s)) -# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s)) -# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s)) -# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s)) -# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s)) -# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s)) -# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s)) -# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s)) -# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s)) -# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s)) -# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s)) -# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s)) -# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s)) -# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s)) -# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s)) -# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s)) -# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s)) -# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s)) -# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s)) -# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s)) -# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s)) -# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s)) -# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s)) -# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s)) -# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s)) -# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s)) -# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s)) -# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s)) -# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s)) -# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s)) -# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s)) -# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s)) -# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s)) -# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s)) -# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s)) -# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s)) -# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s)) -# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s)) -# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s)) -# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s)) -# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s)) -# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s)) -# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s)) -# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s)) -# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s)) -# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s)) -# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s)) -# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s)) -# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s)) -# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s)) -# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s)) -# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s)) -# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s)) -# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s)) -# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s)) -# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s)) -# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s)) -# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s)) -# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s)) -# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s)) -# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s)) -# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s)) -# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s)) -# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s)) -# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s)) -# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s)) -# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s)) -# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s)) -# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s)) -# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s)) -# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s)) -# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s)) -# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s)) -# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s)) -# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s)) -# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s)) -# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s)) -# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s)) -# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s)) -# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s)) -# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s)) -# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s)) -# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s)) -# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s)) -# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s)) -# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s)) -# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s)) -# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s)) -# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s)) -# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s)) -# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s)) -# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s)) -# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s)) -# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s)) -# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s)) -# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s)) -# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s)) -# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s)) -# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s)) -# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s)) -# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s)) -# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s)) -# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s)) -# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s)) -# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s)) -# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s)) -# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s)) -# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s)) -# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s)) -# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s)) -# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s)) -# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s)) -# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s)) -# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s)) -# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s)) -# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s)) -# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s)) -# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s)) -# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s)) -# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s)) -# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s)) -# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s)) -# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s)) -# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s)) -# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s)) -# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s)) -# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s)) -# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s)) -# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s)) -# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s)) -# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s)) -# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s)) -# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s)) -# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s)) -# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s)) -# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s)) -# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s)) -# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s)) -# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s)) -# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s)) -# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s)) -# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s)) -# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s)) -# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s)) -# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s)) -# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s)) -# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s)) -# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s)) -# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s)) -# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s)) -# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s)) -# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s)) -# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s)) -# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s)) -# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s)) -# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s)) -# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s)) -# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s)) -# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s)) -# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s)) -# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s)) -# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s)) -# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s)) -# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s)) -# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s)) -# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s)) -# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s)) -# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s)) -# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s)) -# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s)) -# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s)) -# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s)) -# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s)) -# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s)) -# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s)) -# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s)) -# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s)) -# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s)) -# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s)) -# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s)) -# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s)) -# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s)) -# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s)) -# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s)) -# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s)) -# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s)) -# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s)) -# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s)) -# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s)) -# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s)) -# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s)) -# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s)) -# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s)) -# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s)) -# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s)) -# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s)) -# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s)) -# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s)) -# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s)) -# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s)) -# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s)) -# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s)) -# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s)) -# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s)) -# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s)) -# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s)) -# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s)) -# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s)) -# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s)) -# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s)) -# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s)) -# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s)) -# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s)) -# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s)) -# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s)) -# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s)) -# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s)) -# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s)) -# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s)) -# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s)) -# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s)) -# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s)) -# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s)) -# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s)) -# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s)) -# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s)) -# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/detail/msvc/while.hpp b/lib/3rdParty/boost/boost/preprocessor/control/detail/msvc/while.hpp deleted file mode 100644 index e543e41b7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/detail/msvc/while.hpp +++ /dev/null @@ -1,277 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP -# define BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP -# -# include -# include -# -# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s)) -# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s)) -# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s)) -# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s)) -# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s)) -# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s)) -# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s)) -# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s)) -# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s)) -# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s)) -# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s)) -# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s)) -# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s)) -# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s)) -# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s)) -# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s)) -# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s)) -# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s)) -# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s)) -# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s)) -# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s)) -# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s)) -# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s)) -# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s)) -# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s)) -# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s)) -# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s)) -# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s)) -# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s)) -# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s)) -# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s)) -# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s)) -# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s)) -# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s)) -# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s)) -# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s)) -# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s)) -# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s)) -# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s)) -# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s)) -# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s)) -# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s)) -# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s)) -# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s)) -# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s)) -# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s)) -# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s)) -# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s)) -# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s)) -# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s)) -# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s)) -# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s)) -# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s)) -# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s)) -# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s)) -# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s)) -# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s)) -# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s)) -# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s)) -# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s)) -# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s)) -# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s)) -# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s)) -# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s)) -# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s)) -# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s)) -# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s)) -# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s)) -# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s)) -# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s)) -# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s)) -# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s)) -# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s)) -# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s)) -# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s)) -# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s)) -# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s)) -# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s)) -# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s)) -# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s)) -# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s)) -# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s)) -# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s)) -# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s)) -# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s)) -# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s)) -# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s)) -# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s)) -# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s)) -# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s)) -# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s)) -# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s)) -# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s)) -# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s)) -# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s)) -# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s)) -# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s)) -# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s)) -# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s)) -# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s)) -# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s)) -# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s)) -# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s)) -# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s)) -# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s)) -# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s)) -# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s)) -# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s)) -# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s)) -# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s)) -# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s)) -# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s)) -# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s)) -# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s)) -# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s)) -# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s)) -# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s)) -# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s)) -# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s)) -# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s)) -# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s)) -# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s)) -# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s)) -# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s)) -# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s)) -# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s)) -# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s)) -# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s)) -# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s)) -# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s)) -# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s)) -# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s)) -# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s)) -# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s)) -# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s)) -# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s)) -# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s)) -# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s)) -# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s)) -# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s)) -# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s)) -# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s)) -# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s)) -# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s)) -# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s)) -# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s)) -# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s)) -# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s)) -# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s)) -# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s)) -# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s)) -# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s)) -# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s)) -# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s)) -# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s)) -# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s)) -# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s)) -# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s)) -# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s)) -# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s)) -# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s)) -# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s)) -# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s)) -# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s)) -# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s)) -# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s)) -# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s)) -# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s)) -# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s)) -# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s)) -# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s)) -# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s)) -# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s)) -# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s)) -# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s)) -# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s)) -# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s)) -# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s)) -# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s)) -# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s)) -# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s)) -# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s)) -# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s)) -# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s)) -# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s)) -# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s)) -# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s)) -# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s)) -# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s)) -# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s)) -# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s)) -# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s)) -# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s)) -# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s)) -# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s)) -# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s)) -# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s)) -# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s)) -# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s)) -# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s)) -# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s)) -# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s)) -# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s)) -# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s)) -# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s)) -# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s)) -# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s)) -# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s)) -# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s)) -# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s)) -# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s)) -# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s)) -# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s)) -# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s)) -# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s)) -# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s)) -# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s)) -# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s)) -# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s)) -# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s)) -# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s)) -# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s)) -# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s)) -# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s)) -# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s)) -# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s)) -# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s)) -# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s)) -# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s)) -# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s)) -# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s)) -# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s)) -# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s)) -# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s)) -# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s)) -# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s)) -# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s)) -# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s)) -# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s)) -# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s)) -# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s)) -# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s)) -# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s)) -# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s)) -# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s)) -# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s)) -# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s)) -# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s)) -# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s)) -# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s)) -# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s)) -# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s)) -# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s)) -# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s)) -# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s)) -# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/detail/while.hpp b/lib/3rdParty/boost/boost/preprocessor/control/detail/while.hpp deleted file mode 100644 index 7315e1de9..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/detail/while.hpp +++ /dev/null @@ -1,536 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP -# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP -# -# include -# include -# include -# -# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p(2, s)), p, o, s) -# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p(3, s)), p, o, s) -# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p(4, s)), p, o, s) -# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p(5, s)), p, o, s) -# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p(6, s)), p, o, s) -# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p(7, s)), p, o, s) -# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p(8, s)), p, o, s) -# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p(9, s)), p, o, s) -# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p(10, s)), p, o, s) -# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p(11, s)), p, o, s) -# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p(12, s)), p, o, s) -# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p(13, s)), p, o, s) -# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p(14, s)), p, o, s) -# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p(15, s)), p, o, s) -# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p(16, s)), p, o, s) -# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p(17, s)), p, o, s) -# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p(18, s)), p, o, s) -# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p(19, s)), p, o, s) -# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p(20, s)), p, o, s) -# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p(21, s)), p, o, s) -# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p(22, s)), p, o, s) -# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p(23, s)), p, o, s) -# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p(24, s)), p, o, s) -# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p(25, s)), p, o, s) -# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p(26, s)), p, o, s) -# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p(27, s)), p, o, s) -# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p(28, s)), p, o, s) -# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p(29, s)), p, o, s) -# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p(30, s)), p, o, s) -# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p(31, s)), p, o, s) -# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p(32, s)), p, o, s) -# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p(33, s)), p, o, s) -# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p(34, s)), p, o, s) -# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p(35, s)), p, o, s) -# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p(36, s)), p, o, s) -# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p(37, s)), p, o, s) -# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p(38, s)), p, o, s) -# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p(39, s)), p, o, s) -# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p(40, s)), p, o, s) -# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p(41, s)), p, o, s) -# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p(42, s)), p, o, s) -# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p(43, s)), p, o, s) -# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p(44, s)), p, o, s) -# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p(45, s)), p, o, s) -# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p(46, s)), p, o, s) -# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p(47, s)), p, o, s) -# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p(48, s)), p, o, s) -# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p(49, s)), p, o, s) -# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p(50, s)), p, o, s) -# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p(51, s)), p, o, s) -# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p(52, s)), p, o, s) -# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p(53, s)), p, o, s) -# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p(54, s)), p, o, s) -# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p(55, s)), p, o, s) -# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p(56, s)), p, o, s) -# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p(57, s)), p, o, s) -# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p(58, s)), p, o, s) -# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p(59, s)), p, o, s) -# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p(60, s)), p, o, s) -# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p(61, s)), p, o, s) -# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p(62, s)), p, o, s) -# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p(63, s)), p, o, s) -# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p(64, s)), p, o, s) -# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p(65, s)), p, o, s) -# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p(66, s)), p, o, s) -# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p(67, s)), p, o, s) -# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p(68, s)), p, o, s) -# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p(69, s)), p, o, s) -# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p(70, s)), p, o, s) -# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p(71, s)), p, o, s) -# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p(72, s)), p, o, s) -# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p(73, s)), p, o, s) -# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p(74, s)), p, o, s) -# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p(75, s)), p, o, s) -# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p(76, s)), p, o, s) -# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p(77, s)), p, o, s) -# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p(78, s)), p, o, s) -# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p(79, s)), p, o, s) -# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p(80, s)), p, o, s) -# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p(81, s)), p, o, s) -# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p(82, s)), p, o, s) -# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p(83, s)), p, o, s) -# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p(84, s)), p, o, s) -# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p(85, s)), p, o, s) -# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p(86, s)), p, o, s) -# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p(87, s)), p, o, s) -# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p(88, s)), p, o, s) -# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p(89, s)), p, o, s) -# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p(90, s)), p, o, s) -# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p(91, s)), p, o, s) -# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p(92, s)), p, o, s) -# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p(93, s)), p, o, s) -# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p(94, s)), p, o, s) -# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p(95, s)), p, o, s) -# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p(96, s)), p, o, s) -# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p(97, s)), p, o, s) -# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p(98, s)), p, o, s) -# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p(99, s)), p, o, s) -# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p(100, s)), p, o, s) -# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p(101, s)), p, o, s) -# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p(102, s)), p, o, s) -# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p(103, s)), p, o, s) -# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p(104, s)), p, o, s) -# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p(105, s)), p, o, s) -# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p(106, s)), p, o, s) -# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p(107, s)), p, o, s) -# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p(108, s)), p, o, s) -# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p(109, s)), p, o, s) -# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p(110, s)), p, o, s) -# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p(111, s)), p, o, s) -# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p(112, s)), p, o, s) -# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p(113, s)), p, o, s) -# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p(114, s)), p, o, s) -# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p(115, s)), p, o, s) -# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p(116, s)), p, o, s) -# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p(117, s)), p, o, s) -# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p(118, s)), p, o, s) -# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p(119, s)), p, o, s) -# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p(120, s)), p, o, s) -# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p(121, s)), p, o, s) -# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p(122, s)), p, o, s) -# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p(123, s)), p, o, s) -# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p(124, s)), p, o, s) -# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p(125, s)), p, o, s) -# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p(126, s)), p, o, s) -# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p(127, s)), p, o, s) -# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p(128, s)), p, o, s) -# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p(129, s)), p, o, s) -# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p(130, s)), p, o, s) -# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p(131, s)), p, o, s) -# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p(132, s)), p, o, s) -# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p(133, s)), p, o, s) -# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p(134, s)), p, o, s) -# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p(135, s)), p, o, s) -# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p(136, s)), p, o, s) -# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p(137, s)), p, o, s) -# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p(138, s)), p, o, s) -# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p(139, s)), p, o, s) -# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p(140, s)), p, o, s) -# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p(141, s)), p, o, s) -# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p(142, s)), p, o, s) -# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p(143, s)), p, o, s) -# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p(144, s)), p, o, s) -# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p(145, s)), p, o, s) -# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p(146, s)), p, o, s) -# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p(147, s)), p, o, s) -# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p(148, s)), p, o, s) -# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p(149, s)), p, o, s) -# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p(150, s)), p, o, s) -# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p(151, s)), p, o, s) -# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p(152, s)), p, o, s) -# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p(153, s)), p, o, s) -# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p(154, s)), p, o, s) -# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p(155, s)), p, o, s) -# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p(156, s)), p, o, s) -# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p(157, s)), p, o, s) -# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p(158, s)), p, o, s) -# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p(159, s)), p, o, s) -# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p(160, s)), p, o, s) -# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p(161, s)), p, o, s) -# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p(162, s)), p, o, s) -# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p(163, s)), p, o, s) -# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p(164, s)), p, o, s) -# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p(165, s)), p, o, s) -# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p(166, s)), p, o, s) -# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p(167, s)), p, o, s) -# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p(168, s)), p, o, s) -# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p(169, s)), p, o, s) -# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p(170, s)), p, o, s) -# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p(171, s)), p, o, s) -# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p(172, s)), p, o, s) -# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p(173, s)), p, o, s) -# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p(174, s)), p, o, s) -# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p(175, s)), p, o, s) -# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p(176, s)), p, o, s) -# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p(177, s)), p, o, s) -# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p(178, s)), p, o, s) -# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p(179, s)), p, o, s) -# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p(180, s)), p, o, s) -# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p(181, s)), p, o, s) -# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p(182, s)), p, o, s) -# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p(183, s)), p, o, s) -# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p(184, s)), p, o, s) -# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p(185, s)), p, o, s) -# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p(186, s)), p, o, s) -# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p(187, s)), p, o, s) -# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p(188, s)), p, o, s) -# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p(189, s)), p, o, s) -# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p(190, s)), p, o, s) -# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p(191, s)), p, o, s) -# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p(192, s)), p, o, s) -# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p(193, s)), p, o, s) -# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p(194, s)), p, o, s) -# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p(195, s)), p, o, s) -# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p(196, s)), p, o, s) -# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p(197, s)), p, o, s) -# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p(198, s)), p, o, s) -# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p(199, s)), p, o, s) -# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p(200, s)), p, o, s) -# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p(201, s)), p, o, s) -# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p(202, s)), p, o, s) -# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p(203, s)), p, o, s) -# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p(204, s)), p, o, s) -# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p(205, s)), p, o, s) -# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p(206, s)), p, o, s) -# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p(207, s)), p, o, s) -# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p(208, s)), p, o, s) -# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p(209, s)), p, o, s) -# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p(210, s)), p, o, s) -# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p(211, s)), p, o, s) -# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p(212, s)), p, o, s) -# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p(213, s)), p, o, s) -# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p(214, s)), p, o, s) -# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p(215, s)), p, o, s) -# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p(216, s)), p, o, s) -# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p(217, s)), p, o, s) -# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p(218, s)), p, o, s) -# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p(219, s)), p, o, s) -# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p(220, s)), p, o, s) -# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p(221, s)), p, o, s) -# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p(222, s)), p, o, s) -# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p(223, s)), p, o, s) -# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p(224, s)), p, o, s) -# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p(225, s)), p, o, s) -# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p(226, s)), p, o, s) -# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p(227, s)), p, o, s) -# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p(228, s)), p, o, s) -# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p(229, s)), p, o, s) -# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p(230, s)), p, o, s) -# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p(231, s)), p, o, s) -# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p(232, s)), p, o, s) -# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p(233, s)), p, o, s) -# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p(234, s)), p, o, s) -# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p(235, s)), p, o, s) -# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p(236, s)), p, o, s) -# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p(237, s)), p, o, s) -# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p(238, s)), p, o, s) -# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p(239, s)), p, o, s) -# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p(240, s)), p, o, s) -# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p(241, s)), p, o, s) -# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p(242, s)), p, o, s) -# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p(243, s)), p, o, s) -# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p(244, s)), p, o, s) -# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p(245, s)), p, o, s) -# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p(246, s)), p, o, s) -# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p(247, s)), p, o, s) -# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p(248, s)), p, o, s) -# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p(249, s)), p, o, s) -# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p(250, s)), p, o, s) -# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p(251, s)), p, o, s) -# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p(252, s)), p, o, s) -# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p(253, s)), p, o, s) -# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p(254, s)), p, o, s) -# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p(255, s)), p, o, s) -# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p(256, s)), p, o, s) -# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p(257, s)), p, o, s) -# -# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(2, s)) -# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(3, s)) -# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(4, s)) -# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(5, s)) -# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(6, s)) -# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(7, s)) -# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(8, s)) -# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(9, s)) -# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(10, s)) -# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(11, s)) -# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(12, s)) -# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(13, s)) -# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(14, s)) -# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(15, s)) -# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(16, s)) -# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(17, s)) -# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(18, s)) -# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(19, s)) -# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(20, s)) -# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(21, s)) -# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(22, s)) -# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(23, s)) -# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(24, s)) -# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(25, s)) -# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(26, s)) -# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(27, s)) -# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(28, s)) -# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(29, s)) -# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(30, s)) -# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(31, s)) -# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(32, s)) -# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(33, s)) -# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(34, s)) -# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(35, s)) -# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(36, s)) -# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(37, s)) -# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(38, s)) -# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(39, s)) -# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(40, s)) -# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(41, s)) -# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(42, s)) -# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(43, s)) -# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(44, s)) -# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(45, s)) -# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(46, s)) -# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(47, s)) -# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(48, s)) -# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(49, s)) -# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(50, s)) -# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(51, s)) -# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(52, s)) -# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(53, s)) -# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(54, s)) -# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(55, s)) -# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(56, s)) -# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(57, s)) -# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(58, s)) -# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(59, s)) -# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(60, s)) -# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(61, s)) -# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(62, s)) -# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(63, s)) -# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(64, s)) -# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(65, s)) -# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(66, s)) -# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(67, s)) -# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(68, s)) -# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(69, s)) -# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(70, s)) -# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(71, s)) -# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(72, s)) -# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(73, s)) -# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(74, s)) -# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(75, s)) -# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(76, s)) -# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(77, s)) -# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(78, s)) -# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(79, s)) -# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(80, s)) -# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(81, s)) -# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(82, s)) -# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(83, s)) -# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(84, s)) -# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(85, s)) -# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(86, s)) -# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(87, s)) -# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(88, s)) -# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(89, s)) -# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(90, s)) -# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(91, s)) -# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(92, s)) -# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(93, s)) -# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(94, s)) -# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(95, s)) -# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(96, s)) -# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(97, s)) -# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(98, s)) -# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(99, s)) -# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(100, s)) -# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(101, s)) -# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(102, s)) -# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(103, s)) -# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(104, s)) -# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(105, s)) -# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(106, s)) -# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(107, s)) -# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(108, s)) -# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(109, s)) -# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(110, s)) -# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(111, s)) -# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(112, s)) -# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(113, s)) -# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(114, s)) -# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(115, s)) -# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(116, s)) -# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(117, s)) -# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(118, s)) -# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(119, s)) -# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(120, s)) -# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(121, s)) -# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(122, s)) -# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(123, s)) -# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(124, s)) -# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(125, s)) -# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(126, s)) -# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(127, s)) -# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(128, s)) -# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(129, s)) -# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(130, s)) -# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(131, s)) -# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(132, s)) -# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(133, s)) -# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(134, s)) -# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(135, s)) -# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(136, s)) -# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(137, s)) -# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(138, s)) -# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(139, s)) -# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(140, s)) -# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(141, s)) -# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(142, s)) -# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(143, s)) -# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(144, s)) -# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(145, s)) -# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(146, s)) -# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(147, s)) -# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(148, s)) -# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(149, s)) -# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(150, s)) -# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(151, s)) -# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(152, s)) -# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(153, s)) -# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(154, s)) -# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(155, s)) -# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(156, s)) -# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(157, s)) -# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(158, s)) -# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(159, s)) -# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(160, s)) -# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(161, s)) -# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(162, s)) -# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(163, s)) -# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(164, s)) -# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(165, s)) -# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(166, s)) -# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(167, s)) -# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(168, s)) -# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(169, s)) -# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(170, s)) -# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(171, s)) -# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(172, s)) -# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(173, s)) -# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(174, s)) -# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(175, s)) -# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(176, s)) -# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(177, s)) -# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(178, s)) -# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(179, s)) -# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(180, s)) -# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(181, s)) -# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(182, s)) -# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(183, s)) -# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(184, s)) -# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(185, s)) -# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(186, s)) -# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(187, s)) -# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(188, s)) -# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(189, s)) -# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(190, s)) -# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(191, s)) -# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(192, s)) -# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(193, s)) -# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(194, s)) -# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(195, s)) -# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(196, s)) -# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(197, s)) -# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(198, s)) -# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(199, s)) -# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(200, s)) -# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(201, s)) -# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(202, s)) -# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(203, s)) -# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(204, s)) -# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(205, s)) -# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(206, s)) -# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(207, s)) -# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(208, s)) -# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(209, s)) -# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(210, s)) -# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(211, s)) -# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(212, s)) -# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(213, s)) -# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(214, s)) -# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(215, s)) -# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(216, s)) -# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(217, s)) -# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(218, s)) -# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(219, s)) -# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(220, s)) -# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(221, s)) -# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(222, s)) -# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(223, s)) -# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(224, s)) -# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(225, s)) -# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(226, s)) -# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(227, s)) -# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(228, s)) -# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(229, s)) -# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(230, s)) -# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(231, s)) -# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(232, s)) -# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(233, s)) -# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(234, s)) -# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(235, s)) -# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(236, s)) -# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(237, s)) -# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(238, s)) -# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(239, s)) -# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(240, s)) -# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(241, s)) -# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(242, s)) -# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(243, s)) -# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(244, s)) -# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(245, s)) -# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(246, s)) -# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(247, s)) -# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(248, s)) -# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(249, s)) -# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(250, s)) -# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(251, s)) -# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(252, s)) -# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(253, s)) -# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(254, s)) -# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(255, s)) -# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(256, s)) -# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(257, s)) -# -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/expr_if.hpp b/lib/3rdParty/boost/boost/preprocessor/control/expr_if.hpp deleted file mode 100644 index 0e1ab512f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/expr_if.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP -# define BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP -# -# include -# include -# include -# -# /* BOOST_PP_EXPR_IF */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr) -# else -# define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IF_I(cond, expr) -# define BOOST_PP_EXPR_IF_I(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/expr_iif.hpp b/lib/3rdParty/boost/boost/preprocessor/control/expr_iif.hpp deleted file mode 100644 index 58f45a48f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/expr_iif.hpp +++ /dev/null @@ -1,31 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP -# define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP -# -# include -# -# /* BOOST_PP_EXPR_IIF */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr) -# else -# define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr)) -# define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par -# endif -# -# define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr) -# -# define BOOST_PP_EXPR_IIF_0(expr) -# define BOOST_PP_EXPR_IIF_1(expr) expr -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/if.hpp b/lib/3rdParty/boost/boost/preprocessor/control/if.hpp deleted file mode 100644 index 52cfc3dab..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/if.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP -# define BOOST_PREPROCESSOR_CONTROL_IF_HPP -# -# include -# include -# include -# -# /* BOOST_PP_IF */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) -# else -# define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f) -# define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/iif.hpp b/lib/3rdParty/boost/boost/preprocessor/control/iif.hpp deleted file mode 100644 index fd0781793..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/iif.hpp +++ /dev/null @@ -1,34 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP -# define BOOST_PREPROCESSOR_CONTROL_IIF_HPP -# -# include -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f) -# else -# define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f)) -# define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f) -# else -# define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f)) -# define BOOST_PP_IIF_II(id) id -# endif -# -# define BOOST_PP_IIF_0(t, f) f -# define BOOST_PP_IIF_1(t, f) t -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/control/while.hpp b/lib/3rdParty/boost/boost/preprocessor/control/while.hpp deleted file mode 100644 index e8a65fffc..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/control/while.hpp +++ /dev/null @@ -1,312 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_CONTROL_WHILE_HPP -# define BOOST_PREPROCESSOR_CONTROL_WHILE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_WHILE */ -# -# if 0 -# define BOOST_PP_WHILE(pred, op, state) -# endif -# -# define BOOST_PP_WHILE BOOST_PP_CAT(BOOST_PP_WHILE_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_CHECK_, BOOST_PP_LIST_FOLD_RIGHT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)))) -# else -# define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL))) -# endif -# -# define BOOST_PP_WHILE_F(d, _) 0 -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# include -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# include -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# include -# else -# include -# endif -# -# define BOOST_PP_WHILE_257(p, o, s) BOOST_PP_ERROR(0x0001) -# -# define BOOST_PP_WHILE_CHECK_BOOST_PP_NIL 1 -# -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_1(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_2(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_3(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_4(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_5(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_6(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_7(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_8(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_9(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_10(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_11(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_12(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_13(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_14(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_15(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_16(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_17(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_18(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_19(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_20(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_21(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_22(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_23(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_24(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_25(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_26(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_27(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_28(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_29(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_30(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_31(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_32(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_33(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_34(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_35(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_36(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_37(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_38(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_39(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_40(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_41(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_42(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_43(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_44(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_45(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_46(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_47(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_48(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_49(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_50(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_51(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_52(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_53(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_54(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_55(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_56(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_57(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_58(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_59(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_60(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_61(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_62(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_63(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_64(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_65(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_66(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_67(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_68(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_69(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_70(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_71(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_72(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_73(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_74(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_75(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_76(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_77(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_78(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_79(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_80(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_81(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_82(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_83(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_84(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_85(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_86(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_87(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_88(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_89(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_90(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_91(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_92(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_93(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_94(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_95(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_96(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_97(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_98(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_99(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_100(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_101(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_102(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_103(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_104(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_105(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_106(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_107(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_108(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_109(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_110(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_111(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_112(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_113(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_114(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_115(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_116(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_117(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_118(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_119(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_120(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_121(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_122(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_123(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_124(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_125(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_126(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_127(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_128(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_129(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_130(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_131(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_132(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_133(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_134(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_135(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_136(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_137(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_138(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_139(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_140(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_141(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_142(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_143(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_144(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_145(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_146(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_147(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_148(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_149(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_150(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_151(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_152(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_153(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_154(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_155(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_156(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_157(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_158(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_159(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_160(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_161(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_162(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_163(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_164(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_165(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_166(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_167(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_168(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_169(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_170(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_171(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_172(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_173(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_174(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_175(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_176(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_177(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_178(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_179(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_180(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_181(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_182(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_183(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_184(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_185(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_186(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_187(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_188(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_189(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_190(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_191(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_192(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_193(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_194(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_195(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_196(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_197(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_198(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_199(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_200(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_201(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_202(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_203(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_204(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_205(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_206(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_207(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_208(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_209(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_210(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_211(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_212(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_213(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_214(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_215(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_216(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_217(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_218(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_219(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_220(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_221(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_222(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_223(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_224(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_225(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_226(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_227(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_228(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_229(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_230(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_231(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_232(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_233(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_234(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_235(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_236(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_237(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_238(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_239(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_240(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_241(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_242(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_243(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_244(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_245(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_246(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_247(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_248(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_249(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_250(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_251(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_252(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_253(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_254(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_255(p, o, s) 0 -# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_256(p, o, s) 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/debug.hpp b/lib/3rdParty/boost/boost/preprocessor/debug.hpp deleted file mode 100644 index d09983e03..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/debug.hpp +++ /dev/null @@ -1,18 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DEBUG_HPP -# define BOOST_PREPROCESSOR_DEBUG_HPP -# -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/debug/assert.hpp b/lib/3rdParty/boost/boost/preprocessor/debug/assert.hpp deleted file mode 100644 index 3380c7028..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/debug/assert.hpp +++ /dev/null @@ -1,44 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP -# define BOOST_PREPROCESSOR_DEBUG_ASSERT_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ASSERT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ASSERT BOOST_PP_ASSERT_D -# else -# define BOOST_PP_ASSERT(cond) BOOST_PP_ASSERT_D(cond) -# endif -# -# define BOOST_PP_ASSERT_D(cond) BOOST_PP_IIF(BOOST_PP_NOT(cond), BOOST_PP_ASSERT_ERROR, BOOST_PP_TUPLE_EAT_1)(...) -# define BOOST_PP_ASSERT_ERROR(x, y, z) -# -# /* BOOST_PP_ASSERT_MSG */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ASSERT_MSG BOOST_PP_ASSERT_MSG_D -# else -# define BOOST_PP_ASSERT_MSG(cond, msg) BOOST_PP_ASSERT_MSG_D(cond, msg) -# endif -# -# define BOOST_PP_ASSERT_MSG_D(cond, msg) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(cond), msg) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/debug/error.hpp b/lib/3rdParty/boost/boost/preprocessor/debug/error.hpp deleted file mode 100644 index c8ae5e750..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/debug/error.hpp +++ /dev/null @@ -1,33 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP -# define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP -# -# include -# include -# -# /* BOOST_PP_ERROR */ -# -# if BOOST_PP_CONFIG_ERRORS -# define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code) -# endif -# -# define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS) -# define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW) -# define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW) -# define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW) -# define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW) -# define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW) -# define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW) -# define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/debug/line.hpp b/lib/3rdParty/boost/boost/preprocessor/debug/line.hpp deleted file mode 100644 index 4dd1013c1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/debug/line.hpp +++ /dev/null @@ -1,35 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DEBUG_LINE_HPP -# define BOOST_PREPROCESSOR_DEBUG_LINE_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LINE */ -# -# if BOOST_PP_CONFIG_EXTENDED_LINE_INFO -# define BOOST_PP_LINE(line, file) line BOOST_PP_CAT(BOOST_PP_LINE_, BOOST_PP_IS_ITERATING)(file) -# define BOOST_PP_LINE_BOOST_PP_IS_ITERATING(file) #file -# define BOOST_PP_LINE_1(file) BOOST_PP_STRINGIZE(file BOOST_PP_CAT(BOOST_PP_LINE_I_, BOOST_PP_ITERATION_DEPTH())()) -# define BOOST_PP_LINE_I_1() [BOOST_PP_FRAME_ITERATION(1)] -# define BOOST_PP_LINE_I_2() BOOST_PP_LINE_I_1()[BOOST_PP_FRAME_ITERATION(2)] -# define BOOST_PP_LINE_I_3() BOOST_PP_LINE_I_2()[BOOST_PP_FRAME_ITERATION(3)] -# define BOOST_PP_LINE_I_4() BOOST_PP_LINE_I_3()[BOOST_PP_FRAME_ITERATION(4)] -# define BOOST_PP_LINE_I_5() BOOST_PP_LINE_I_4()[BOOST_PP_FRAME_ITERATION(5)] -# else -# define BOOST_PP_LINE(line, file) line __FILE__ -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/dec.hpp b/lib/3rdParty/boost/boost/preprocessor/dec.hpp deleted file mode 100644 index d57206470..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/dec.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DEC_HPP -# define BOOST_PREPROCESSOR_DEC_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/auto_rec.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/auto_rec.hpp deleted file mode 100644 index 39de1d002..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/auto_rec.hpp +++ /dev/null @@ -1,293 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# include -# else -# -# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP -# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP -# -# include -# -# /* BOOST_PP_AUTO_REC */ -# -# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred) -# -# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p) -# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p) -# -# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192) -# define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96) -# define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48) -# define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24) -# define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12) -# define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6) -# define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3) -# define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p(1), 1, 2) -# define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p(3), 3, 4) -# define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7) -# define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p(5), 5, 6) -# define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p(7), 7, 8) -# define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14) -# define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11) -# define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p(9), 9, 10) -# define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p(11), 11, 12) -# define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15) -# define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p(13), 13, 14) -# define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p(15), 15, 16) -# define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28) -# define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22) -# define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19) -# define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p(17), 17, 18) -# define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p(19), 19, 20) -# define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23) -# define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p(21), 21, 22) -# define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p(23), 23, 24) -# define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30) -# define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27) -# define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p(25), 25, 26) -# define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p(27), 27, 28) -# define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31) -# define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p(29), 29, 30) -# define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p(31), 31, 32) -# define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56) -# define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44) -# define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38) -# define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35) -# define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p(33), 33, 34) -# define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p(35), 35, 36) -# define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39) -# define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p(37), 37, 38) -# define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p(39), 39, 40) -# define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46) -# define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43) -# define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p(41), 41, 42) -# define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p(43), 43, 44) -# define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47) -# define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p(45), 45, 46) -# define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p(47), 47, 48) -# define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60) -# define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54) -# define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51) -# define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p(49), 49, 50) -# define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p(51), 51, 52) -# define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55) -# define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p(53), 53, 54) -# define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p(55), 55, 56) -# define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62) -# define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59) -# define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p(57), 57, 58) -# define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p(59), 59, 60) -# define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63) -# define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p(61), 61, 62) -# define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p(63), 63, 64) -# define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112) -# define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88) -# define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76) -# define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70) -# define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67) -# define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p(65), 65, 66) -# define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p(67), 67, 68) -# define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71) -# define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p(69), 69, 70) -# define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p(71), 71, 72) -# define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78) -# define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75) -# define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p(73), 73, 74) -# define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p(75), 75, 76) -# define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79) -# define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p(77), 77, 78) -# define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p(79), 79, 80) -# define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92) -# define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86) -# define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83) -# define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p(81), 81, 82) -# define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p(83), 83, 84) -# define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87) -# define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p(85), 85, 86) -# define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p(87), 87, 88) -# define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94) -# define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91) -# define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p(89), 89, 90) -# define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p(91), 91, 92) -# define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95) -# define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p(93), 93, 94) -# define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p(95), 95, 96) -# define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120) -# define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108) -# define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102) -# define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99) -# define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p(97), 97, 98) -# define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p(99), 99, 100) -# define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103) -# define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p(101), 101, 102) -# define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p(103), 103, 104) -# define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110) -# define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107) -# define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p(105), 105, 106) -# define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p(107), 107, 108) -# define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111) -# define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p(109), 109, 110) -# define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p(111), 111, 112) -# define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124) -# define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118) -# define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115) -# define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p(113), 113, 114) -# define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p(115), 115, 116) -# define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119) -# define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p(117), 117, 118) -# define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p(119), 119, 120) -# define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126) -# define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123) -# define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p(121), 121, 122) -# define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p(123), 123, 124) -# define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127) -# define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p(125), 125, 126) -# define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p(127), 127, 128) -# define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224) -# define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176) -# define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152) -# define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140) -# define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134) -# define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131) -# define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p(129), 129, 130) -# define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p(131), 131, 132) -# define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135) -# define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p(133), 133, 134) -# define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p(135), 135, 136) -# define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142) -# define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139) -# define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p(137), 137, 138) -# define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p(139), 139, 140) -# define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143) -# define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p(141), 141, 142) -# define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p(143), 143, 144) -# define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156) -# define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150) -# define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147) -# define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p(145), 145, 146) -# define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p(147), 147, 148) -# define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151) -# define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p(149), 149, 150) -# define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p(151), 151, 152) -# define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158) -# define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155) -# define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p(153), 153, 154) -# define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p(155), 155, 156) -# define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159) -# define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p(157), 157, 158) -# define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p(159), 159, 160) -# define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184) -# define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172) -# define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166) -# define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163) -# define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p(161), 161, 162) -# define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p(163), 163, 164) -# define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167) -# define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p(165), 165, 166) -# define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p(167), 167, 168) -# define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174) -# define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171) -# define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p(169), 169, 170) -# define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p(171), 171, 172) -# define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175) -# define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p(173), 173, 174) -# define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p(175), 175, 176) -# define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188) -# define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182) -# define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179) -# define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p(177), 177, 178) -# define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p(179), 179, 180) -# define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183) -# define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p(181), 181, 182) -# define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p(183), 183, 184) -# define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190) -# define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187) -# define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p(185), 185, 186) -# define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p(187), 187, 188) -# define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191) -# define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p(189), 189, 190) -# define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p(191), 191, 192) -# define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240) -# define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216) -# define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204) -# define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198) -# define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195) -# define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p(193), 193, 194) -# define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p(195), 195, 196) -# define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199) -# define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p(197), 197, 198) -# define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p(199), 199, 200) -# define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206) -# define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203) -# define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p(201), 201, 202) -# define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p(203), 203, 204) -# define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207) -# define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p(205), 205, 206) -# define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p(207), 207, 208) -# define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220) -# define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214) -# define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211) -# define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p(209), 209, 210) -# define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p(211), 211, 212) -# define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215) -# define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p(213), 213, 214) -# define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p(215), 215, 216) -# define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222) -# define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219) -# define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p(217), 217, 218) -# define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p(219), 219, 220) -# define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223) -# define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p(221), 221, 222) -# define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p(223), 223, 224) -# define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248) -# define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236) -# define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230) -# define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227) -# define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p(225), 225, 226) -# define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p(227), 227, 228) -# define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231) -# define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p(229), 229, 230) -# define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p(231), 231, 232) -# define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238) -# define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235) -# define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p(233), 233, 234) -# define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p(235), 235, 236) -# define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239) -# define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p(237), 237, 238) -# define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p(239), 239, 240) -# define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252) -# define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246) -# define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243) -# define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p(241), 241, 242) -# define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p(243), 243, 244) -# define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247) -# define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p(245), 245, 246) -# define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p(247), 247, 248) -# define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254) -# define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251) -# define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p(249), 249, 250) -# define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p(251), 251, 252) -# define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255) -# define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p(253), 253, 254) -# define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p(255), 255, 256) -# -# endif -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/check.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/check.hpp deleted file mode 100644 index 63f8ff916..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/check.hpp +++ /dev/null @@ -1,48 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DETAIL_CHECK_HPP -# define BOOST_PREPROCESSOR_DETAIL_CHECK_HPP -# -# include -# include -# -# /* BOOST_PP_CHECK */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_D(x, type) -# else -# define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_OO((x, type)) -# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_D ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, type x)) -# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) -# define BOOST_PP_CHECK_2(res, _) res -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(type x) -# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) -# define BOOST_PP_CHECK_2(chk) BOOST_PP_CHECK_3((BOOST_PP_CHECK_RESULT_ ## chk)) -# define BOOST_PP_CHECK_3(im) BOOST_PP_CHECK_5(BOOST_PP_CHECK_4 im) -# define BOOST_PP_CHECK_4(res, _) res -# define BOOST_PP_CHECK_5(res) res -# else /* DMC */ -# define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_OO((type x)) -# define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_0 ## par -# define BOOST_PP_CHECK_0(chk) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, chk)) -# define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk) -# define BOOST_PP_CHECK_2(res, _) res -# endif -# -# define BOOST_PP_CHECK_RESULT_1 1, BOOST_PP_NIL -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/dmc/auto_rec.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/dmc/auto_rec.hpp deleted file mode 100644 index 37fbe0415..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/dmc/auto_rec.hpp +++ /dev/null @@ -1,286 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP -# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP -# -# include -# -# /* BOOST_PP_AUTO_REC */ -# -# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred) -# -# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p) -# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p) -# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p) -# -# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192) -# define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96) -# define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48) -# define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24) -# define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12) -# define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6) -# define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3) -# define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2) -# define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4) -# define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7) -# define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6) -# define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8) -# define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14) -# define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11) -# define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10) -# define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12) -# define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15) -# define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14) -# define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16) -# define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28) -# define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22) -# define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19) -# define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18) -# define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20) -# define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23) -# define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22) -# define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24) -# define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30) -# define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27) -# define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26) -# define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28) -# define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31) -# define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30) -# define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32) -# define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56) -# define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44) -# define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38) -# define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35) -# define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34) -# define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36) -# define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39) -# define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38) -# define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40) -# define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46) -# define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43) -# define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42) -# define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44) -# define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47) -# define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46) -# define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48) -# define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60) -# define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54) -# define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51) -# define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50) -# define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52) -# define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55) -# define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54) -# define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56) -# define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62) -# define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59) -# define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58) -# define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60) -# define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63) -# define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62) -# define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64) -# define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112) -# define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88) -# define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76) -# define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70) -# define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67) -# define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66) -# define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68) -# define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71) -# define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70) -# define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72) -# define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78) -# define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75) -# define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74) -# define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76) -# define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79) -# define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78) -# define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80) -# define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92) -# define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86) -# define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83) -# define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82) -# define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84) -# define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87) -# define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86) -# define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88) -# define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94) -# define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91) -# define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90) -# define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92) -# define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95) -# define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94) -# define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96) -# define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120) -# define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108) -# define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102) -# define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99) -# define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98) -# define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100) -# define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103) -# define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102) -# define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104) -# define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110) -# define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107) -# define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106) -# define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108) -# define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111) -# define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110) -# define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112) -# define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124) -# define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118) -# define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115) -# define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114) -# define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116) -# define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119) -# define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118) -# define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120) -# define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126) -# define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123) -# define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122) -# define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124) -# define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127) -# define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126) -# define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128) -# define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224) -# define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176) -# define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152) -# define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140) -# define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134) -# define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131) -# define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130) -# define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132) -# define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135) -# define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134) -# define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136) -# define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142) -# define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139) -# define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138) -# define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140) -# define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143) -# define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142) -# define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144) -# define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156) -# define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150) -# define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147) -# define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146) -# define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148) -# define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151) -# define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150) -# define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152) -# define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158) -# define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155) -# define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154) -# define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156) -# define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159) -# define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158) -# define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160) -# define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184) -# define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172) -# define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166) -# define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163) -# define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162) -# define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164) -# define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167) -# define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166) -# define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168) -# define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174) -# define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171) -# define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170) -# define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172) -# define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175) -# define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174) -# define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176) -# define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188) -# define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182) -# define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179) -# define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178) -# define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180) -# define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183) -# define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182) -# define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184) -# define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190) -# define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187) -# define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186) -# define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188) -# define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191) -# define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190) -# define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192) -# define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240) -# define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216) -# define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204) -# define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198) -# define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195) -# define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194) -# define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196) -# define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199) -# define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198) -# define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200) -# define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206) -# define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203) -# define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202) -# define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204) -# define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207) -# define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206) -# define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208) -# define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220) -# define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214) -# define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211) -# define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210) -# define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212) -# define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215) -# define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214) -# define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216) -# define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222) -# define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219) -# define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218) -# define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220) -# define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223) -# define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222) -# define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224) -# define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248) -# define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236) -# define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230) -# define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227) -# define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226) -# define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228) -# define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231) -# define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230) -# define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232) -# define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238) -# define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235) -# define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234) -# define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236) -# define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239) -# define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238) -# define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240) -# define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252) -# define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246) -# define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243) -# define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242) -# define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244) -# define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247) -# define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246) -# define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248) -# define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254) -# define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251) -# define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250) -# define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252) -# define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255) -# define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254) -# define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/is_binary.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/is_binary.hpp deleted file mode 100644 index 3428833d6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/is_binary.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP -# define BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP -# -# include -# include -# -# /* BOOST_PP_IS_BINARY */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_IS_BINARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK) -# else -# define BOOST_PP_IS_BINARY(x) BOOST_PP_IS_BINARY_I(x) -# define BOOST_PP_IS_BINARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK) -# endif -# -# define BOOST_PP_IS_BINARY_CHECK(a, b) 1 -# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_BINARY_CHECK 0, BOOST_PP_NIL -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/is_nullary.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/is_nullary.hpp deleted file mode 100644 index dee4075ad..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/is_nullary.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP -# define BOOST_PREPROCESSOR_DETAIL_IS_NULLARY_HPP -# -# include -# include -# -# /* BOOST_PP_IS_NULLARY */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_IS_NULLARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK) -# else -# define BOOST_PP_IS_NULLARY(x) BOOST_PP_IS_NULLARY_I(x) -# define BOOST_PP_IS_NULLARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_NULLARY_CHECK) -# endif -# -# define BOOST_PP_IS_NULLARY_CHECK() 1 -# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_NULLARY_CHECK 0, BOOST_PP_NIL -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/is_unary.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/is_unary.hpp deleted file mode 100644 index e73cdfb76..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/is_unary.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP -# define BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP -# -# include -# include -# -# /* BOOST_PP_IS_UNARY */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_IS_UNARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK) -# else -# define BOOST_PP_IS_UNARY(x) BOOST_PP_IS_UNARY_I(x) -# define BOOST_PP_IS_UNARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK) -# endif -# -# define BOOST_PP_IS_UNARY_CHECK(a) 1 -# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_UNARY_CHECK 0, BOOST_PP_NIL -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/null.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/null.hpp deleted file mode 100644 index 5eb0bd4ca..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/null.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_DETAIL_NULL_HPP -# define BOOST_PREPROCESSOR_DETAIL_NULL_HPP -# -# /* empty file */ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/detail/split.hpp b/lib/3rdParty/boost/boost/preprocessor/detail/split.hpp deleted file mode 100644 index f28a72375..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/detail/split.hpp +++ /dev/null @@ -1,35 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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_PREPROCESSOR_DETAIL_SPLIT_HPP -# define BOOST_PREPROCESSOR_DETAIL_SPLIT_HPP -# -# include -# -# /* BOOST_PP_SPLIT */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I((n, im)) -# define BOOST_PP_SPLIT_I(par) BOOST_PP_SPLIT_II ## par -# define BOOST_PP_SPLIT_II(n, a, b) BOOST_PP_SPLIT_ ## n(a, b) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n((im))) -# define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_II_ ## n) -# define BOOST_PP_SPLIT_II_0(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_0 s) -# define BOOST_PP_SPLIT_II_1(s) BOOST_PP_SPLIT_ID(BOOST_PP_SPLIT_1 s) -# define BOOST_PP_SPLIT_ID(id) id -# else -# define BOOST_PP_SPLIT(n, im) BOOST_PP_SPLIT_I(n)(im) -# define BOOST_PP_SPLIT_I(n) BOOST_PP_SPLIT_ ## n -# endif -# -# define BOOST_PP_SPLIT_0(a, b) a -# define BOOST_PP_SPLIT_1(a, b) b -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/empty.hpp b/lib/3rdParty/boost/boost/preprocessor/empty.hpp deleted file mode 100644 index 116ef744e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/empty.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_EMPTY_HPP -# define BOOST_PREPROCESSOR_EMPTY_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/enum.hpp b/lib/3rdParty/boost/boost/preprocessor/enum.hpp deleted file mode 100644 index ae05bb0c1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/enum.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ENUM_HPP -# define BOOST_PREPROCESSOR_ENUM_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/enum_params.hpp b/lib/3rdParty/boost/boost/preprocessor/enum_params.hpp deleted file mode 100644 index 414f8aa6a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/enum_params.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_HPP -# define BOOST_PREPROCESSOR_ENUM_PARAMS_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/enum_params_with_a_default.hpp b/lib/3rdParty/boost/boost/preprocessor/enum_params_with_a_default.hpp deleted file mode 100644 index fd1ad4cca..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/enum_params_with_a_default.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP -# define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/enum_params_with_defaults.hpp b/lib/3rdParty/boost/boost/preprocessor/enum_params_with_defaults.hpp deleted file mode 100644 index e58fa3e3c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/enum_params_with_defaults.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP -# define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/enum_shifted.hpp b/lib/3rdParty/boost/boost/preprocessor/enum_shifted.hpp deleted file mode 100644 index aa6a698d5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/enum_shifted.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_HPP -# define BOOST_PREPROCESSOR_ENUM_SHIFTED_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/enum_shifted_params.hpp b/lib/3rdParty/boost/boost/preprocessor/enum_shifted_params.hpp deleted file mode 100644 index 462c6424e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/enum_shifted_params.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP -# define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/expand.hpp b/lib/3rdParty/boost/boost/preprocessor/expand.hpp deleted file mode 100644 index 8c5d972d2..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/expand.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_EXPAND_HPP -# define BOOST_PREPROCESSOR_EXPAND_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/expr_if.hpp b/lib/3rdParty/boost/boost/preprocessor/expr_if.hpp deleted file mode 100644 index f93e29bc6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/expr_if.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_EXPR_IF_HPP -# define BOOST_PREPROCESSOR_EXPR_IF_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities.hpp deleted file mode 100644 index c20547cb7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities.hpp +++ /dev/null @@ -1,23 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_HPP -# define BOOST_PREPROCESSOR_FACILITIES_HPP -# -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/apply.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/apply.hpp deleted file mode 100644 index e7d8c36bd..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/apply.hpp +++ /dev/null @@ -1,34 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP -# define BOOST_PREPROCESSOR_FACILITIES_APPLY_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_APPLY */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x) -# define BOOST_PP_APPLY_I(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC() -# define BOOST_PP_APPLY(x) BOOST_PP_APPLY_I(x) -# define BOOST_PP_APPLY_I(x) BOOST_PP_APPLY_ ## x -# define BOOST_PP_APPLY_(x) x -# define BOOST_PP_APPLY_BOOST_PP_NIL -# else -# define BOOST_PP_APPLY(x) BOOST_PP_EXPR_IIF(BOOST_PP_IS_UNARY(x), BOOST_PP_TUPLE_REM_1 x) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/detail/is_empty.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/detail/is_empty.hpp deleted file mode 100644 index e0449701e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/detail/is_empty.hpp +++ /dev/null @@ -1,55 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -#ifndef BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP -#define BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP - -#include - -#if BOOST_PP_VARIADICS_MSVC - -# pragma warning(once:4002) - -#define BOOST_PP_DETAIL_IS_EMPTY_IIF_0(t, b) b -#define BOOST_PP_DETAIL_IS_EMPTY_IIF_1(t, b) t - -#else - -#define BOOST_PP_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__ -#define BOOST_PP_DETAIL_IS_EMPTY_IIF_1(t, ...) t - -#endif - -#if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 - -#define BOOST_PP_DETAIL_IS_EMPTY_PROCESS(param) \ - BOOST_PP_IS_BEGIN_PARENS \ - ( \ - BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \ - ) \ -/**/ - -#else - -#define BOOST_PP_DETAIL_IS_EMPTY_PROCESS(...) \ - BOOST_PP_IS_BEGIN_PARENS \ - ( \ - BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \ - ) \ -/**/ - -#endif - -#define BOOST_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b -#define BOOST_PP_DETAIL_IS_EMPTY_IIF(bit) BOOST_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(BOOST_PP_DETAIL_IS_EMPTY_IIF_,bit) -#define BOOST_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) () - -#endif /* BOOST_PREPROCESSOR_DETAIL_IS_EMPTY_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/empty.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/empty.hpp deleted file mode 100644 index 6f215dc51..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/empty.hpp +++ /dev/null @@ -1,23 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP -# define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP -# -# include -# -# /* BOOST_PP_EMPTY */ -# -# define BOOST_PP_EMPTY() -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/expand.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/expand.hpp deleted file mode 100644 index c8661a1c2..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/expand.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP -# define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP -# -# include -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x) -# else -# define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x)) -# define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par -# endif -# -# define BOOST_PP_EXPAND_I(x) x -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/identity.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/identity.hpp deleted file mode 100644 index 8a7834d4a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/identity.hpp +++ /dev/null @@ -1,27 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# /* Revised by Edward Diener (2015) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP -# define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP -# -# include -# include -# -# /* BOOST_PP_IDENTITY */ -# -# define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY -# -# define BOOST_PP_IDENTITY_N(item,n) item BOOST_PP_TUPLE_EAT_N(n) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/intercept.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/intercept.hpp deleted file mode 100644 index 41dcc6a98..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/intercept.hpp +++ /dev/null @@ -1,277 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP -# define BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP -# -# /* BOOST_PP_INTERCEPT */ -# -# define BOOST_PP_INTERCEPT BOOST_PP_INTERCEPT_ -# -# define BOOST_PP_INTERCEPT_0 -# define BOOST_PP_INTERCEPT_1 -# define BOOST_PP_INTERCEPT_2 -# define BOOST_PP_INTERCEPT_3 -# define BOOST_PP_INTERCEPT_4 -# define BOOST_PP_INTERCEPT_5 -# define BOOST_PP_INTERCEPT_6 -# define BOOST_PP_INTERCEPT_7 -# define BOOST_PP_INTERCEPT_8 -# define BOOST_PP_INTERCEPT_9 -# define BOOST_PP_INTERCEPT_10 -# define BOOST_PP_INTERCEPT_11 -# define BOOST_PP_INTERCEPT_12 -# define BOOST_PP_INTERCEPT_13 -# define BOOST_PP_INTERCEPT_14 -# define BOOST_PP_INTERCEPT_15 -# define BOOST_PP_INTERCEPT_16 -# define BOOST_PP_INTERCEPT_17 -# define BOOST_PP_INTERCEPT_18 -# define BOOST_PP_INTERCEPT_19 -# define BOOST_PP_INTERCEPT_20 -# define BOOST_PP_INTERCEPT_21 -# define BOOST_PP_INTERCEPT_22 -# define BOOST_PP_INTERCEPT_23 -# define BOOST_PP_INTERCEPT_24 -# define BOOST_PP_INTERCEPT_25 -# define BOOST_PP_INTERCEPT_26 -# define BOOST_PP_INTERCEPT_27 -# define BOOST_PP_INTERCEPT_28 -# define BOOST_PP_INTERCEPT_29 -# define BOOST_PP_INTERCEPT_30 -# define BOOST_PP_INTERCEPT_31 -# define BOOST_PP_INTERCEPT_32 -# define BOOST_PP_INTERCEPT_33 -# define BOOST_PP_INTERCEPT_34 -# define BOOST_PP_INTERCEPT_35 -# define BOOST_PP_INTERCEPT_36 -# define BOOST_PP_INTERCEPT_37 -# define BOOST_PP_INTERCEPT_38 -# define BOOST_PP_INTERCEPT_39 -# define BOOST_PP_INTERCEPT_40 -# define BOOST_PP_INTERCEPT_41 -# define BOOST_PP_INTERCEPT_42 -# define BOOST_PP_INTERCEPT_43 -# define BOOST_PP_INTERCEPT_44 -# define BOOST_PP_INTERCEPT_45 -# define BOOST_PP_INTERCEPT_46 -# define BOOST_PP_INTERCEPT_47 -# define BOOST_PP_INTERCEPT_48 -# define BOOST_PP_INTERCEPT_49 -# define BOOST_PP_INTERCEPT_50 -# define BOOST_PP_INTERCEPT_51 -# define BOOST_PP_INTERCEPT_52 -# define BOOST_PP_INTERCEPT_53 -# define BOOST_PP_INTERCEPT_54 -# define BOOST_PP_INTERCEPT_55 -# define BOOST_PP_INTERCEPT_56 -# define BOOST_PP_INTERCEPT_57 -# define BOOST_PP_INTERCEPT_58 -# define BOOST_PP_INTERCEPT_59 -# define BOOST_PP_INTERCEPT_60 -# define BOOST_PP_INTERCEPT_61 -# define BOOST_PP_INTERCEPT_62 -# define BOOST_PP_INTERCEPT_63 -# define BOOST_PP_INTERCEPT_64 -# define BOOST_PP_INTERCEPT_65 -# define BOOST_PP_INTERCEPT_66 -# define BOOST_PP_INTERCEPT_67 -# define BOOST_PP_INTERCEPT_68 -# define BOOST_PP_INTERCEPT_69 -# define BOOST_PP_INTERCEPT_70 -# define BOOST_PP_INTERCEPT_71 -# define BOOST_PP_INTERCEPT_72 -# define BOOST_PP_INTERCEPT_73 -# define BOOST_PP_INTERCEPT_74 -# define BOOST_PP_INTERCEPT_75 -# define BOOST_PP_INTERCEPT_76 -# define BOOST_PP_INTERCEPT_77 -# define BOOST_PP_INTERCEPT_78 -# define BOOST_PP_INTERCEPT_79 -# define BOOST_PP_INTERCEPT_80 -# define BOOST_PP_INTERCEPT_81 -# define BOOST_PP_INTERCEPT_82 -# define BOOST_PP_INTERCEPT_83 -# define BOOST_PP_INTERCEPT_84 -# define BOOST_PP_INTERCEPT_85 -# define BOOST_PP_INTERCEPT_86 -# define BOOST_PP_INTERCEPT_87 -# define BOOST_PP_INTERCEPT_88 -# define BOOST_PP_INTERCEPT_89 -# define BOOST_PP_INTERCEPT_90 -# define BOOST_PP_INTERCEPT_91 -# define BOOST_PP_INTERCEPT_92 -# define BOOST_PP_INTERCEPT_93 -# define BOOST_PP_INTERCEPT_94 -# define BOOST_PP_INTERCEPT_95 -# define BOOST_PP_INTERCEPT_96 -# define BOOST_PP_INTERCEPT_97 -# define BOOST_PP_INTERCEPT_98 -# define BOOST_PP_INTERCEPT_99 -# define BOOST_PP_INTERCEPT_100 -# define BOOST_PP_INTERCEPT_101 -# define BOOST_PP_INTERCEPT_102 -# define BOOST_PP_INTERCEPT_103 -# define BOOST_PP_INTERCEPT_104 -# define BOOST_PP_INTERCEPT_105 -# define BOOST_PP_INTERCEPT_106 -# define BOOST_PP_INTERCEPT_107 -# define BOOST_PP_INTERCEPT_108 -# define BOOST_PP_INTERCEPT_109 -# define BOOST_PP_INTERCEPT_110 -# define BOOST_PP_INTERCEPT_111 -# define BOOST_PP_INTERCEPT_112 -# define BOOST_PP_INTERCEPT_113 -# define BOOST_PP_INTERCEPT_114 -# define BOOST_PP_INTERCEPT_115 -# define BOOST_PP_INTERCEPT_116 -# define BOOST_PP_INTERCEPT_117 -# define BOOST_PP_INTERCEPT_118 -# define BOOST_PP_INTERCEPT_119 -# define BOOST_PP_INTERCEPT_120 -# define BOOST_PP_INTERCEPT_121 -# define BOOST_PP_INTERCEPT_122 -# define BOOST_PP_INTERCEPT_123 -# define BOOST_PP_INTERCEPT_124 -# define BOOST_PP_INTERCEPT_125 -# define BOOST_PP_INTERCEPT_126 -# define BOOST_PP_INTERCEPT_127 -# define BOOST_PP_INTERCEPT_128 -# define BOOST_PP_INTERCEPT_129 -# define BOOST_PP_INTERCEPT_130 -# define BOOST_PP_INTERCEPT_131 -# define BOOST_PP_INTERCEPT_132 -# define BOOST_PP_INTERCEPT_133 -# define BOOST_PP_INTERCEPT_134 -# define BOOST_PP_INTERCEPT_135 -# define BOOST_PP_INTERCEPT_136 -# define BOOST_PP_INTERCEPT_137 -# define BOOST_PP_INTERCEPT_138 -# define BOOST_PP_INTERCEPT_139 -# define BOOST_PP_INTERCEPT_140 -# define BOOST_PP_INTERCEPT_141 -# define BOOST_PP_INTERCEPT_142 -# define BOOST_PP_INTERCEPT_143 -# define BOOST_PP_INTERCEPT_144 -# define BOOST_PP_INTERCEPT_145 -# define BOOST_PP_INTERCEPT_146 -# define BOOST_PP_INTERCEPT_147 -# define BOOST_PP_INTERCEPT_148 -# define BOOST_PP_INTERCEPT_149 -# define BOOST_PP_INTERCEPT_150 -# define BOOST_PP_INTERCEPT_151 -# define BOOST_PP_INTERCEPT_152 -# define BOOST_PP_INTERCEPT_153 -# define BOOST_PP_INTERCEPT_154 -# define BOOST_PP_INTERCEPT_155 -# define BOOST_PP_INTERCEPT_156 -# define BOOST_PP_INTERCEPT_157 -# define BOOST_PP_INTERCEPT_158 -# define BOOST_PP_INTERCEPT_159 -# define BOOST_PP_INTERCEPT_160 -# define BOOST_PP_INTERCEPT_161 -# define BOOST_PP_INTERCEPT_162 -# define BOOST_PP_INTERCEPT_163 -# define BOOST_PP_INTERCEPT_164 -# define BOOST_PP_INTERCEPT_165 -# define BOOST_PP_INTERCEPT_166 -# define BOOST_PP_INTERCEPT_167 -# define BOOST_PP_INTERCEPT_168 -# define BOOST_PP_INTERCEPT_169 -# define BOOST_PP_INTERCEPT_170 -# define BOOST_PP_INTERCEPT_171 -# define BOOST_PP_INTERCEPT_172 -# define BOOST_PP_INTERCEPT_173 -# define BOOST_PP_INTERCEPT_174 -# define BOOST_PP_INTERCEPT_175 -# define BOOST_PP_INTERCEPT_176 -# define BOOST_PP_INTERCEPT_177 -# define BOOST_PP_INTERCEPT_178 -# define BOOST_PP_INTERCEPT_179 -# define BOOST_PP_INTERCEPT_180 -# define BOOST_PP_INTERCEPT_181 -# define BOOST_PP_INTERCEPT_182 -# define BOOST_PP_INTERCEPT_183 -# define BOOST_PP_INTERCEPT_184 -# define BOOST_PP_INTERCEPT_185 -# define BOOST_PP_INTERCEPT_186 -# define BOOST_PP_INTERCEPT_187 -# define BOOST_PP_INTERCEPT_188 -# define BOOST_PP_INTERCEPT_189 -# define BOOST_PP_INTERCEPT_190 -# define BOOST_PP_INTERCEPT_191 -# define BOOST_PP_INTERCEPT_192 -# define BOOST_PP_INTERCEPT_193 -# define BOOST_PP_INTERCEPT_194 -# define BOOST_PP_INTERCEPT_195 -# define BOOST_PP_INTERCEPT_196 -# define BOOST_PP_INTERCEPT_197 -# define BOOST_PP_INTERCEPT_198 -# define BOOST_PP_INTERCEPT_199 -# define BOOST_PP_INTERCEPT_200 -# define BOOST_PP_INTERCEPT_201 -# define BOOST_PP_INTERCEPT_202 -# define BOOST_PP_INTERCEPT_203 -# define BOOST_PP_INTERCEPT_204 -# define BOOST_PP_INTERCEPT_205 -# define BOOST_PP_INTERCEPT_206 -# define BOOST_PP_INTERCEPT_207 -# define BOOST_PP_INTERCEPT_208 -# define BOOST_PP_INTERCEPT_209 -# define BOOST_PP_INTERCEPT_210 -# define BOOST_PP_INTERCEPT_211 -# define BOOST_PP_INTERCEPT_212 -# define BOOST_PP_INTERCEPT_213 -# define BOOST_PP_INTERCEPT_214 -# define BOOST_PP_INTERCEPT_215 -# define BOOST_PP_INTERCEPT_216 -# define BOOST_PP_INTERCEPT_217 -# define BOOST_PP_INTERCEPT_218 -# define BOOST_PP_INTERCEPT_219 -# define BOOST_PP_INTERCEPT_220 -# define BOOST_PP_INTERCEPT_221 -# define BOOST_PP_INTERCEPT_222 -# define BOOST_PP_INTERCEPT_223 -# define BOOST_PP_INTERCEPT_224 -# define BOOST_PP_INTERCEPT_225 -# define BOOST_PP_INTERCEPT_226 -# define BOOST_PP_INTERCEPT_227 -# define BOOST_PP_INTERCEPT_228 -# define BOOST_PP_INTERCEPT_229 -# define BOOST_PP_INTERCEPT_230 -# define BOOST_PP_INTERCEPT_231 -# define BOOST_PP_INTERCEPT_232 -# define BOOST_PP_INTERCEPT_233 -# define BOOST_PP_INTERCEPT_234 -# define BOOST_PP_INTERCEPT_235 -# define BOOST_PP_INTERCEPT_236 -# define BOOST_PP_INTERCEPT_237 -# define BOOST_PP_INTERCEPT_238 -# define BOOST_PP_INTERCEPT_239 -# define BOOST_PP_INTERCEPT_240 -# define BOOST_PP_INTERCEPT_241 -# define BOOST_PP_INTERCEPT_242 -# define BOOST_PP_INTERCEPT_243 -# define BOOST_PP_INTERCEPT_244 -# define BOOST_PP_INTERCEPT_245 -# define BOOST_PP_INTERCEPT_246 -# define BOOST_PP_INTERCEPT_247 -# define BOOST_PP_INTERCEPT_248 -# define BOOST_PP_INTERCEPT_249 -# define BOOST_PP_INTERCEPT_250 -# define BOOST_PP_INTERCEPT_251 -# define BOOST_PP_INTERCEPT_252 -# define BOOST_PP_INTERCEPT_253 -# define BOOST_PP_INTERCEPT_254 -# define BOOST_PP_INTERCEPT_255 -# define BOOST_PP_INTERCEPT_256 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/is_1.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/is_1.hpp deleted file mode 100644 index f286dcdd1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/is_1.hpp +++ /dev/null @@ -1,23 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP -# define BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP -# -# include -# include -# -# /* BOOST_PP_IS_1 */ -# -# define BOOST_PP_IS_1(x) BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PP_IS_1_HELPER_, x)) -# define BOOST_PP_IS_1_HELPER_1 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty.hpp deleted file mode 100644 index 46aadd352..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty.hpp +++ /dev/null @@ -1,56 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2003. -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP -# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# -# else -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# include -# include -# else -# include -# include -# endif -# -# /* BOOST_PP_IS_EMPTY */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(x BOOST_PP_IS_EMPTY_HELPER) -# define BOOST_PP_IS_EMPTY_I(contents) BOOST_PP_TUPLE_ELEM(2, 1, (BOOST_PP_IS_EMPTY_DEF_ ## contents())) -# define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 1, BOOST_PP_IDENTITY(1) -# define BOOST_PP_IS_EMPTY_HELPER() , 0 -# else -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I(BOOST_PP_IS_EMPTY_HELPER x ()) -# define BOOST_PP_IS_EMPTY_I(test) BOOST_PP_IS_EMPTY_II(BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test))) -# define BOOST_PP_IS_EMPTY_II(id) id -# else -# define BOOST_PP_IS_EMPTY(x) BOOST_PP_IS_EMPTY_I((BOOST_PP_IS_EMPTY_HELPER x ())) -# define BOOST_PP_IS_EMPTY_I(par) BOOST_PP_IS_EMPTY_II ## par -# define BOOST_PP_IS_EMPTY_II(test) BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PP_IS_EMPTY_DEF_, test)) -# endif -# define BOOST_PP_IS_EMPTY_HELPER() 1 -# define BOOST_PP_IS_EMPTY_DEF_1 1, BOOST_PP_NIL -# define BOOST_PP_IS_EMPTY_DEF_BOOST_PP_IS_EMPTY_HELPER 0, BOOST_PP_NIL -# endif -# -# endif /* BOOST_PP_VARIADICS */ -# -# endif /* BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty_or_1.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty_or_1.hpp deleted file mode 100644 index 815666fcc..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty_or_1.hpp +++ /dev/null @@ -1,31 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP -# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_IS_EMPTY_OR_1 */ -# -# define BOOST_PP_IS_EMPTY_OR_1(x) \ - BOOST_PP_IIF( \ - BOOST_PP_IS_EMPTY(x BOOST_PP_EMPTY()), \ - BOOST_PP_IDENTITY(1), \ - BOOST_PP_IS_1 \ - )(x) \ - /**/ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty_variadic.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty_variadic.hpp deleted file mode 100644 index eee4062d7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/is_empty_variadic.hpp +++ /dev/null @@ -1,57 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP -# define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# -#if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 -# -#define BOOST_PP_IS_EMPTY(param) \ - BOOST_PP_DETAIL_IS_EMPTY_IIF \ - ( \ - BOOST_PP_IS_BEGIN_PARENS \ - ( \ - param \ - ) \ - ) \ - ( \ - BOOST_PP_IS_EMPTY_ZERO, \ - BOOST_PP_DETAIL_IS_EMPTY_PROCESS \ - ) \ - (param) \ -/**/ -#define BOOST_PP_IS_EMPTY_ZERO(param) 0 -# else -#define BOOST_PP_IS_EMPTY(...) \ - BOOST_PP_DETAIL_IS_EMPTY_IIF \ - ( \ - BOOST_PP_IS_BEGIN_PARENS \ - ( \ - __VA_ARGS__ \ - ) \ - ) \ - ( \ - BOOST_PP_IS_EMPTY_ZERO, \ - BOOST_PP_DETAIL_IS_EMPTY_PROCESS \ - ) \ - (__VA_ARGS__) \ -/**/ -#define BOOST_PP_IS_EMPTY_ZERO(...) 0 -# endif /* BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */ -# endif /* BOOST_PP_VARIADICS */ -# endif /* BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/facilities/overload.hpp b/lib/3rdParty/boost/boost/preprocessor/facilities/overload.hpp deleted file mode 100644 index 1576316d7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/facilities/overload.hpp +++ /dev/null @@ -1,25 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP -# define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP -# -# include -# include -# -# /* BOOST_PP_OVERLOAD */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/for.hpp b/lib/3rdParty/boost/boost/preprocessor/for.hpp deleted file mode 100644 index 9ec9cee67..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/for.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_FOR_HPP -# define BOOST_PREPROCESSOR_FOR_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/identity.hpp b/lib/3rdParty/boost/boost/preprocessor/identity.hpp deleted file mode 100644 index 847dd1329..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/identity.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_IDENTITY_HPP -# define BOOST_PREPROCESSOR_IDENTITY_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/if.hpp b/lib/3rdParty/boost/boost/preprocessor/if.hpp deleted file mode 100644 index f1783f717..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/if.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_IF_HPP -# define BOOST_PREPROCESSOR_IF_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/inc.hpp b/lib/3rdParty/boost/boost/preprocessor/inc.hpp deleted file mode 100644 index b98d3a67c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/inc.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_INC_HPP -# define BOOST_PREPROCESSOR_INC_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iterate.hpp b/lib/3rdParty/boost/boost/preprocessor/iterate.hpp deleted file mode 100644 index e720ec8a8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iterate.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ITERATE_HPP -# define BOOST_PREPROCESSOR_ITERATE_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration.hpp deleted file mode 100644 index 1055ac00a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration.hpp +++ /dev/null @@ -1,19 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ITERATION_HPP -# define BOOST_PREPROCESSOR_ITERATION_HPP -# -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower1.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower1.hpp deleted file mode 100644 index 6694d0ba0..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower1.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_START_1 -# -# undef BOOST_PP_ITERATION_START_1_DIGIT_1 -# undef BOOST_PP_ITERATION_START_1_DIGIT_2 -# undef BOOST_PP_ITERATION_START_1_DIGIT_3 -# undef BOOST_PP_ITERATION_START_1_DIGIT_4 -# undef BOOST_PP_ITERATION_START_1_DIGIT_5 -# undef BOOST_PP_ITERATION_START_1_DIGIT_6 -# undef BOOST_PP_ITERATION_START_1_DIGIT_7 -# undef BOOST_PP_ITERATION_START_1_DIGIT_8 -# undef BOOST_PP_ITERATION_START_1_DIGIT_9 -# undef BOOST_PP_ITERATION_START_1_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_START_1_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_START_1_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_START_1_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_START_1_DIGIT_3 -# define BOOST_PP_ITERATION_START_1 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_1_DIGIT_3, BOOST_PP_ITERATION_START_1_DIGIT_2, BOOST_PP_ITERATION_START_1_DIGIT_1) -# elif BOOST_PP_ITERATION_START_1_DIGIT_2 -# define BOOST_PP_ITERATION_START_1 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_1_DIGIT_2, BOOST_PP_ITERATION_START_1_DIGIT_1) -# else -# define BOOST_PP_ITERATION_START_1 BOOST_PP_ITERATION_START_1_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp deleted file mode 100644 index ece21fc81..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower2.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_START_2 -# -# undef BOOST_PP_ITERATION_START_2_DIGIT_1 -# undef BOOST_PP_ITERATION_START_2_DIGIT_2 -# undef BOOST_PP_ITERATION_START_2_DIGIT_3 -# undef BOOST_PP_ITERATION_START_2_DIGIT_4 -# undef BOOST_PP_ITERATION_START_2_DIGIT_5 -# undef BOOST_PP_ITERATION_START_2_DIGIT_6 -# undef BOOST_PP_ITERATION_START_2_DIGIT_7 -# undef BOOST_PP_ITERATION_START_2_DIGIT_8 -# undef BOOST_PP_ITERATION_START_2_DIGIT_9 -# undef BOOST_PP_ITERATION_START_2_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_START_2_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_START_2_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_START_2_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_START_2_DIGIT_3 -# define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_2_DIGIT_3, BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1) -# elif BOOST_PP_ITERATION_START_2_DIGIT_2 -# define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1) -# else -# define BOOST_PP_ITERATION_START_2 BOOST_PP_ITERATION_START_2_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp deleted file mode 100644 index 8429eac7a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower3.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_START_3 -# -# undef BOOST_PP_ITERATION_START_3_DIGIT_1 -# undef BOOST_PP_ITERATION_START_3_DIGIT_2 -# undef BOOST_PP_ITERATION_START_3_DIGIT_3 -# undef BOOST_PP_ITERATION_START_3_DIGIT_4 -# undef BOOST_PP_ITERATION_START_3_DIGIT_5 -# undef BOOST_PP_ITERATION_START_3_DIGIT_6 -# undef BOOST_PP_ITERATION_START_3_DIGIT_7 -# undef BOOST_PP_ITERATION_START_3_DIGIT_8 -# undef BOOST_PP_ITERATION_START_3_DIGIT_9 -# undef BOOST_PP_ITERATION_START_3_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_START_3_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_START_3_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_START_3_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_START_3_DIGIT_3 -# define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_3_DIGIT_3, BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1) -# elif BOOST_PP_ITERATION_START_3_DIGIT_2 -# define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1) -# else -# define BOOST_PP_ITERATION_START_3 BOOST_PP_ITERATION_START_3_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp deleted file mode 100644 index ba0832f28..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower4.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_START_4 -# -# undef BOOST_PP_ITERATION_START_4_DIGIT_1 -# undef BOOST_PP_ITERATION_START_4_DIGIT_2 -# undef BOOST_PP_ITERATION_START_4_DIGIT_3 -# undef BOOST_PP_ITERATION_START_4_DIGIT_4 -# undef BOOST_PP_ITERATION_START_4_DIGIT_5 -# undef BOOST_PP_ITERATION_START_4_DIGIT_6 -# undef BOOST_PP_ITERATION_START_4_DIGIT_7 -# undef BOOST_PP_ITERATION_START_4_DIGIT_8 -# undef BOOST_PP_ITERATION_START_4_DIGIT_9 -# undef BOOST_PP_ITERATION_START_4_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_START_4_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_START_4_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_START_4_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_START_4_DIGIT_3 -# define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_4_DIGIT_3, BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1) -# elif BOOST_PP_ITERATION_START_4_DIGIT_2 -# define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1) -# else -# define BOOST_PP_ITERATION_START_4 BOOST_PP_ITERATION_START_4_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp deleted file mode 100644 index f4888c7b5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/lower5.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_START_5 -# -# undef BOOST_PP_ITERATION_START_5_DIGIT_1 -# undef BOOST_PP_ITERATION_START_5_DIGIT_2 -# undef BOOST_PP_ITERATION_START_5_DIGIT_3 -# undef BOOST_PP_ITERATION_START_5_DIGIT_4 -# undef BOOST_PP_ITERATION_START_5_DIGIT_5 -# undef BOOST_PP_ITERATION_START_5_DIGIT_6 -# undef BOOST_PP_ITERATION_START_5_DIGIT_7 -# undef BOOST_PP_ITERATION_START_5_DIGIT_8 -# undef BOOST_PP_ITERATION_START_5_DIGIT_9 -# undef BOOST_PP_ITERATION_START_5_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_START_5_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_START_5_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_START_5_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_START_5_DIGIT_3 -# define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_5_DIGIT_3, BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1) -# elif BOOST_PP_ITERATION_START_5_DIGIT_2 -# define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1) -# else -# define BOOST_PP_ITERATION_START_5 BOOST_PP_ITERATION_START_5_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper1.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper1.hpp deleted file mode 100644 index 50d0fcfa3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper1.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_FINISH_1 -# -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_1 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_2 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_3 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_4 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_5 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_6 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_7 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_8 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_9 -# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_FINISH_1_DIGIT_3 -# define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_1_DIGIT_3, BOOST_PP_ITERATION_FINISH_1_DIGIT_2, BOOST_PP_ITERATION_FINISH_1_DIGIT_1) -# elif BOOST_PP_ITERATION_FINISH_1_DIGIT_2 -# define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_1_DIGIT_2, BOOST_PP_ITERATION_FINISH_1_DIGIT_1) -# else -# define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_ITERATION_FINISH_1_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp deleted file mode 100644 index faef6f49e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper2.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_FINISH_2 -# -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_1 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_2 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_3 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_4 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_5 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_6 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_7 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_8 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_9 -# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_FINISH_2_DIGIT_3 -# define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_2_DIGIT_3, BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1) -# elif BOOST_PP_ITERATION_FINISH_2_DIGIT_2 -# define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1) -# else -# define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_ITERATION_FINISH_2_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp deleted file mode 100644 index 38d9adec4..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper3.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_FINISH_3 -# -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_1 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_2 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_3 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_4 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_5 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_6 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_7 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_8 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_9 -# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_FINISH_3_DIGIT_3 -# define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_3_DIGIT_3, BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1) -# elif BOOST_PP_ITERATION_FINISH_3_DIGIT_2 -# define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1) -# else -# define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_ITERATION_FINISH_3_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp deleted file mode 100644 index 7f771c2ce..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper4.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_FINISH_4 -# -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_1 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_2 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_3 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_4 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_5 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_6 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_7 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_8 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_9 -# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_FINISH_4_DIGIT_3 -# define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_4_DIGIT_3, BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1) -# elif BOOST_PP_ITERATION_FINISH_4_DIGIT_2 -# define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1) -# else -# define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_ITERATION_FINISH_4_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp deleted file mode 100644 index 9f27d5884..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/bounds/upper5.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_ITERATION_FINISH_5 -# -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_1 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_2 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_3 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_4 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_5 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_6 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_7 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_8 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_9 -# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 9 -# endif -# -# if BOOST_PP_ITERATION_FINISH_5_DIGIT_3 -# define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_5_DIGIT_3, BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1) -# elif BOOST_PP_ITERATION_FINISH_5_DIGIT_2 -# define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1) -# else -# define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_ITERATION_FINISH_5_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/finish.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/finish.hpp deleted file mode 100644 index 0236944ca..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/finish.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_LOCAL_FE -# -# undef BOOST_PP_LOCAL_FE_DIGIT_1 -# undef BOOST_PP_LOCAL_FE_DIGIT_2 -# undef BOOST_PP_LOCAL_FE_DIGIT_3 -# undef BOOST_PP_LOCAL_FE_DIGIT_4 -# undef BOOST_PP_LOCAL_FE_DIGIT_5 -# undef BOOST_PP_LOCAL_FE_DIGIT_6 -# undef BOOST_PP_LOCAL_FE_DIGIT_7 -# undef BOOST_PP_LOCAL_FE_DIGIT_8 -# undef BOOST_PP_LOCAL_FE_DIGIT_9 -# undef BOOST_PP_LOCAL_FE_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_LOCAL_FE_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_LOCAL_FE_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_LOCAL_FE_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_LOCAL_FE_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_LOCAL_FE_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_LOCAL_FE_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_LOCAL_FE_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_LOCAL_FE_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_LOCAL_FE_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_LOCAL_FE_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_LOCAL_FE_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_LOCAL_FE_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_LOCAL_FE_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_LOCAL_FE_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_LOCAL_FE_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_LOCAL_FE_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_LOCAL_FE_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_LOCAL_FE_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_LOCAL_FE_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_LOCAL_FE_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_LOCAL_FE_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_LOCAL_FE_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_LOCAL_FE_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_LOCAL_FE_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_LOCAL_FE_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_LOCAL_FE_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_LOCAL_FE_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_LOCAL_FE_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_LOCAL_FE_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_LOCAL_FE_DIGIT_1 9 -# endif -# -# if BOOST_PP_LOCAL_FE_DIGIT_3 -# define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_FE_DIGIT_3, BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1) -# elif BOOST_PP_LOCAL_FE_DIGIT_2 -# define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1) -# else -# define BOOST_PP_LOCAL_FE() BOOST_PP_LOCAL_FE_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward1.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward1.hpp deleted file mode 100644 index 3c6a45802..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward1.hpp +++ /dev/null @@ -1,1342 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if defined(BOOST_PP_ITERATION_LIMITS) -# if !defined(BOOST_PP_FILENAME_1) -# error BOOST_PP_ERROR: depth #1 filename is not defined -# endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_ITERATION_FLAGS_1() 0 -# undef BOOST_PP_ITERATION_LIMITS -# elif defined(BOOST_PP_ITERATION_PARAMS_1) -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1) -# include -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_1) -# include -# define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1) -# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4 -# define BOOST_PP_ITERATION_FLAGS_1() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1) -# else -# define BOOST_PP_ITERATION_FLAGS_1() 0 -# endif -# else -# error BOOST_PP_ERROR: depth #1 iteration boundaries or filename not defined -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 1 -# -# define BOOST_PP_IS_ITERATING 1 -# -# if (BOOST_PP_ITERATION_START_1) > (BOOST_PP_ITERATION_FINISH_1) -# include -# else -# if BOOST_PP_ITERATION_START_1 <= 0 && BOOST_PP_ITERATION_FINISH_1 >= 0 -# define BOOST_PP_ITERATION_1 0 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 1 && BOOST_PP_ITERATION_FINISH_1 >= 1 -# define BOOST_PP_ITERATION_1 1 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 2 && BOOST_PP_ITERATION_FINISH_1 >= 2 -# define BOOST_PP_ITERATION_1 2 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 3 && BOOST_PP_ITERATION_FINISH_1 >= 3 -# define BOOST_PP_ITERATION_1 3 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 4 && BOOST_PP_ITERATION_FINISH_1 >= 4 -# define BOOST_PP_ITERATION_1 4 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 5 && BOOST_PP_ITERATION_FINISH_1 >= 5 -# define BOOST_PP_ITERATION_1 5 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 6 && BOOST_PP_ITERATION_FINISH_1 >= 6 -# define BOOST_PP_ITERATION_1 6 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 7 && BOOST_PP_ITERATION_FINISH_1 >= 7 -# define BOOST_PP_ITERATION_1 7 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 8 && BOOST_PP_ITERATION_FINISH_1 >= 8 -# define BOOST_PP_ITERATION_1 8 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 9 && BOOST_PP_ITERATION_FINISH_1 >= 9 -# define BOOST_PP_ITERATION_1 9 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 10 && BOOST_PP_ITERATION_FINISH_1 >= 10 -# define BOOST_PP_ITERATION_1 10 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 11 && BOOST_PP_ITERATION_FINISH_1 >= 11 -# define BOOST_PP_ITERATION_1 11 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 12 && BOOST_PP_ITERATION_FINISH_1 >= 12 -# define BOOST_PP_ITERATION_1 12 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 13 && BOOST_PP_ITERATION_FINISH_1 >= 13 -# define BOOST_PP_ITERATION_1 13 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 14 && BOOST_PP_ITERATION_FINISH_1 >= 14 -# define BOOST_PP_ITERATION_1 14 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 15 && BOOST_PP_ITERATION_FINISH_1 >= 15 -# define BOOST_PP_ITERATION_1 15 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 16 && BOOST_PP_ITERATION_FINISH_1 >= 16 -# define BOOST_PP_ITERATION_1 16 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 17 && BOOST_PP_ITERATION_FINISH_1 >= 17 -# define BOOST_PP_ITERATION_1 17 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 18 && BOOST_PP_ITERATION_FINISH_1 >= 18 -# define BOOST_PP_ITERATION_1 18 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 19 && BOOST_PP_ITERATION_FINISH_1 >= 19 -# define BOOST_PP_ITERATION_1 19 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 20 && BOOST_PP_ITERATION_FINISH_1 >= 20 -# define BOOST_PP_ITERATION_1 20 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 21 && BOOST_PP_ITERATION_FINISH_1 >= 21 -# define BOOST_PP_ITERATION_1 21 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 22 && BOOST_PP_ITERATION_FINISH_1 >= 22 -# define BOOST_PP_ITERATION_1 22 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 23 && BOOST_PP_ITERATION_FINISH_1 >= 23 -# define BOOST_PP_ITERATION_1 23 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 24 && BOOST_PP_ITERATION_FINISH_1 >= 24 -# define BOOST_PP_ITERATION_1 24 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 25 && BOOST_PP_ITERATION_FINISH_1 >= 25 -# define BOOST_PP_ITERATION_1 25 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 26 && BOOST_PP_ITERATION_FINISH_1 >= 26 -# define BOOST_PP_ITERATION_1 26 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 27 && BOOST_PP_ITERATION_FINISH_1 >= 27 -# define BOOST_PP_ITERATION_1 27 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 28 && BOOST_PP_ITERATION_FINISH_1 >= 28 -# define BOOST_PP_ITERATION_1 28 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 29 && BOOST_PP_ITERATION_FINISH_1 >= 29 -# define BOOST_PP_ITERATION_1 29 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 30 && BOOST_PP_ITERATION_FINISH_1 >= 30 -# define BOOST_PP_ITERATION_1 30 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 31 && BOOST_PP_ITERATION_FINISH_1 >= 31 -# define BOOST_PP_ITERATION_1 31 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 32 && BOOST_PP_ITERATION_FINISH_1 >= 32 -# define BOOST_PP_ITERATION_1 32 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 33 && BOOST_PP_ITERATION_FINISH_1 >= 33 -# define BOOST_PP_ITERATION_1 33 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 34 && BOOST_PP_ITERATION_FINISH_1 >= 34 -# define BOOST_PP_ITERATION_1 34 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 35 && BOOST_PP_ITERATION_FINISH_1 >= 35 -# define BOOST_PP_ITERATION_1 35 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 36 && BOOST_PP_ITERATION_FINISH_1 >= 36 -# define BOOST_PP_ITERATION_1 36 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 37 && BOOST_PP_ITERATION_FINISH_1 >= 37 -# define BOOST_PP_ITERATION_1 37 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 38 && BOOST_PP_ITERATION_FINISH_1 >= 38 -# define BOOST_PP_ITERATION_1 38 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 39 && BOOST_PP_ITERATION_FINISH_1 >= 39 -# define BOOST_PP_ITERATION_1 39 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 40 && BOOST_PP_ITERATION_FINISH_1 >= 40 -# define BOOST_PP_ITERATION_1 40 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 41 && BOOST_PP_ITERATION_FINISH_1 >= 41 -# define BOOST_PP_ITERATION_1 41 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 42 && BOOST_PP_ITERATION_FINISH_1 >= 42 -# define BOOST_PP_ITERATION_1 42 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 43 && BOOST_PP_ITERATION_FINISH_1 >= 43 -# define BOOST_PP_ITERATION_1 43 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 44 && BOOST_PP_ITERATION_FINISH_1 >= 44 -# define BOOST_PP_ITERATION_1 44 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 45 && BOOST_PP_ITERATION_FINISH_1 >= 45 -# define BOOST_PP_ITERATION_1 45 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 46 && BOOST_PP_ITERATION_FINISH_1 >= 46 -# define BOOST_PP_ITERATION_1 46 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 47 && BOOST_PP_ITERATION_FINISH_1 >= 47 -# define BOOST_PP_ITERATION_1 47 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 48 && BOOST_PP_ITERATION_FINISH_1 >= 48 -# define BOOST_PP_ITERATION_1 48 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 49 && BOOST_PP_ITERATION_FINISH_1 >= 49 -# define BOOST_PP_ITERATION_1 49 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 50 && BOOST_PP_ITERATION_FINISH_1 >= 50 -# define BOOST_PP_ITERATION_1 50 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 51 && BOOST_PP_ITERATION_FINISH_1 >= 51 -# define BOOST_PP_ITERATION_1 51 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 52 && BOOST_PP_ITERATION_FINISH_1 >= 52 -# define BOOST_PP_ITERATION_1 52 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 53 && BOOST_PP_ITERATION_FINISH_1 >= 53 -# define BOOST_PP_ITERATION_1 53 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 54 && BOOST_PP_ITERATION_FINISH_1 >= 54 -# define BOOST_PP_ITERATION_1 54 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 55 && BOOST_PP_ITERATION_FINISH_1 >= 55 -# define BOOST_PP_ITERATION_1 55 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 56 && BOOST_PP_ITERATION_FINISH_1 >= 56 -# define BOOST_PP_ITERATION_1 56 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 57 && BOOST_PP_ITERATION_FINISH_1 >= 57 -# define BOOST_PP_ITERATION_1 57 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 58 && BOOST_PP_ITERATION_FINISH_1 >= 58 -# define BOOST_PP_ITERATION_1 58 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 59 && BOOST_PP_ITERATION_FINISH_1 >= 59 -# define BOOST_PP_ITERATION_1 59 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 60 && BOOST_PP_ITERATION_FINISH_1 >= 60 -# define BOOST_PP_ITERATION_1 60 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 61 && BOOST_PP_ITERATION_FINISH_1 >= 61 -# define BOOST_PP_ITERATION_1 61 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 62 && BOOST_PP_ITERATION_FINISH_1 >= 62 -# define BOOST_PP_ITERATION_1 62 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 63 && BOOST_PP_ITERATION_FINISH_1 >= 63 -# define BOOST_PP_ITERATION_1 63 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 64 && BOOST_PP_ITERATION_FINISH_1 >= 64 -# define BOOST_PP_ITERATION_1 64 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 65 && BOOST_PP_ITERATION_FINISH_1 >= 65 -# define BOOST_PP_ITERATION_1 65 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 66 && BOOST_PP_ITERATION_FINISH_1 >= 66 -# define BOOST_PP_ITERATION_1 66 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 67 && BOOST_PP_ITERATION_FINISH_1 >= 67 -# define BOOST_PP_ITERATION_1 67 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 68 && BOOST_PP_ITERATION_FINISH_1 >= 68 -# define BOOST_PP_ITERATION_1 68 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 69 && BOOST_PP_ITERATION_FINISH_1 >= 69 -# define BOOST_PP_ITERATION_1 69 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 70 && BOOST_PP_ITERATION_FINISH_1 >= 70 -# define BOOST_PP_ITERATION_1 70 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 71 && BOOST_PP_ITERATION_FINISH_1 >= 71 -# define BOOST_PP_ITERATION_1 71 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 72 && BOOST_PP_ITERATION_FINISH_1 >= 72 -# define BOOST_PP_ITERATION_1 72 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 73 && BOOST_PP_ITERATION_FINISH_1 >= 73 -# define BOOST_PP_ITERATION_1 73 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 74 && BOOST_PP_ITERATION_FINISH_1 >= 74 -# define BOOST_PP_ITERATION_1 74 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 75 && BOOST_PP_ITERATION_FINISH_1 >= 75 -# define BOOST_PP_ITERATION_1 75 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 76 && BOOST_PP_ITERATION_FINISH_1 >= 76 -# define BOOST_PP_ITERATION_1 76 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 77 && BOOST_PP_ITERATION_FINISH_1 >= 77 -# define BOOST_PP_ITERATION_1 77 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 78 && BOOST_PP_ITERATION_FINISH_1 >= 78 -# define BOOST_PP_ITERATION_1 78 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 79 && BOOST_PP_ITERATION_FINISH_1 >= 79 -# define BOOST_PP_ITERATION_1 79 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 80 && BOOST_PP_ITERATION_FINISH_1 >= 80 -# define BOOST_PP_ITERATION_1 80 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 81 && BOOST_PP_ITERATION_FINISH_1 >= 81 -# define BOOST_PP_ITERATION_1 81 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 82 && BOOST_PP_ITERATION_FINISH_1 >= 82 -# define BOOST_PP_ITERATION_1 82 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 83 && BOOST_PP_ITERATION_FINISH_1 >= 83 -# define BOOST_PP_ITERATION_1 83 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 84 && BOOST_PP_ITERATION_FINISH_1 >= 84 -# define BOOST_PP_ITERATION_1 84 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 85 && BOOST_PP_ITERATION_FINISH_1 >= 85 -# define BOOST_PP_ITERATION_1 85 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 86 && BOOST_PP_ITERATION_FINISH_1 >= 86 -# define BOOST_PP_ITERATION_1 86 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 87 && BOOST_PP_ITERATION_FINISH_1 >= 87 -# define BOOST_PP_ITERATION_1 87 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 88 && BOOST_PP_ITERATION_FINISH_1 >= 88 -# define BOOST_PP_ITERATION_1 88 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 89 && BOOST_PP_ITERATION_FINISH_1 >= 89 -# define BOOST_PP_ITERATION_1 89 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 90 && BOOST_PP_ITERATION_FINISH_1 >= 90 -# define BOOST_PP_ITERATION_1 90 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 91 && BOOST_PP_ITERATION_FINISH_1 >= 91 -# define BOOST_PP_ITERATION_1 91 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 92 && BOOST_PP_ITERATION_FINISH_1 >= 92 -# define BOOST_PP_ITERATION_1 92 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 93 && BOOST_PP_ITERATION_FINISH_1 >= 93 -# define BOOST_PP_ITERATION_1 93 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 94 && BOOST_PP_ITERATION_FINISH_1 >= 94 -# define BOOST_PP_ITERATION_1 94 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 95 && BOOST_PP_ITERATION_FINISH_1 >= 95 -# define BOOST_PP_ITERATION_1 95 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 96 && BOOST_PP_ITERATION_FINISH_1 >= 96 -# define BOOST_PP_ITERATION_1 96 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 97 && BOOST_PP_ITERATION_FINISH_1 >= 97 -# define BOOST_PP_ITERATION_1 97 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 98 && BOOST_PP_ITERATION_FINISH_1 >= 98 -# define BOOST_PP_ITERATION_1 98 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 99 && BOOST_PP_ITERATION_FINISH_1 >= 99 -# define BOOST_PP_ITERATION_1 99 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 100 && BOOST_PP_ITERATION_FINISH_1 >= 100 -# define BOOST_PP_ITERATION_1 100 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 101 && BOOST_PP_ITERATION_FINISH_1 >= 101 -# define BOOST_PP_ITERATION_1 101 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 102 && BOOST_PP_ITERATION_FINISH_1 >= 102 -# define BOOST_PP_ITERATION_1 102 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 103 && BOOST_PP_ITERATION_FINISH_1 >= 103 -# define BOOST_PP_ITERATION_1 103 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 104 && BOOST_PP_ITERATION_FINISH_1 >= 104 -# define BOOST_PP_ITERATION_1 104 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 105 && BOOST_PP_ITERATION_FINISH_1 >= 105 -# define BOOST_PP_ITERATION_1 105 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 106 && BOOST_PP_ITERATION_FINISH_1 >= 106 -# define BOOST_PP_ITERATION_1 106 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 107 && BOOST_PP_ITERATION_FINISH_1 >= 107 -# define BOOST_PP_ITERATION_1 107 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 108 && BOOST_PP_ITERATION_FINISH_1 >= 108 -# define BOOST_PP_ITERATION_1 108 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 109 && BOOST_PP_ITERATION_FINISH_1 >= 109 -# define BOOST_PP_ITERATION_1 109 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 110 && BOOST_PP_ITERATION_FINISH_1 >= 110 -# define BOOST_PP_ITERATION_1 110 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 111 && BOOST_PP_ITERATION_FINISH_1 >= 111 -# define BOOST_PP_ITERATION_1 111 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 112 && BOOST_PP_ITERATION_FINISH_1 >= 112 -# define BOOST_PP_ITERATION_1 112 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 113 && BOOST_PP_ITERATION_FINISH_1 >= 113 -# define BOOST_PP_ITERATION_1 113 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 114 && BOOST_PP_ITERATION_FINISH_1 >= 114 -# define BOOST_PP_ITERATION_1 114 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 115 && BOOST_PP_ITERATION_FINISH_1 >= 115 -# define BOOST_PP_ITERATION_1 115 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 116 && BOOST_PP_ITERATION_FINISH_1 >= 116 -# define BOOST_PP_ITERATION_1 116 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 117 && BOOST_PP_ITERATION_FINISH_1 >= 117 -# define BOOST_PP_ITERATION_1 117 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 118 && BOOST_PP_ITERATION_FINISH_1 >= 118 -# define BOOST_PP_ITERATION_1 118 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 119 && BOOST_PP_ITERATION_FINISH_1 >= 119 -# define BOOST_PP_ITERATION_1 119 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 120 && BOOST_PP_ITERATION_FINISH_1 >= 120 -# define BOOST_PP_ITERATION_1 120 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 121 && BOOST_PP_ITERATION_FINISH_1 >= 121 -# define BOOST_PP_ITERATION_1 121 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 122 && BOOST_PP_ITERATION_FINISH_1 >= 122 -# define BOOST_PP_ITERATION_1 122 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 123 && BOOST_PP_ITERATION_FINISH_1 >= 123 -# define BOOST_PP_ITERATION_1 123 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 124 && BOOST_PP_ITERATION_FINISH_1 >= 124 -# define BOOST_PP_ITERATION_1 124 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 125 && BOOST_PP_ITERATION_FINISH_1 >= 125 -# define BOOST_PP_ITERATION_1 125 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 126 && BOOST_PP_ITERATION_FINISH_1 >= 126 -# define BOOST_PP_ITERATION_1 126 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 127 && BOOST_PP_ITERATION_FINISH_1 >= 127 -# define BOOST_PP_ITERATION_1 127 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 128 && BOOST_PP_ITERATION_FINISH_1 >= 128 -# define BOOST_PP_ITERATION_1 128 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 129 && BOOST_PP_ITERATION_FINISH_1 >= 129 -# define BOOST_PP_ITERATION_1 129 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 130 && BOOST_PP_ITERATION_FINISH_1 >= 130 -# define BOOST_PP_ITERATION_1 130 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 131 && BOOST_PP_ITERATION_FINISH_1 >= 131 -# define BOOST_PP_ITERATION_1 131 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 132 && BOOST_PP_ITERATION_FINISH_1 >= 132 -# define BOOST_PP_ITERATION_1 132 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 133 && BOOST_PP_ITERATION_FINISH_1 >= 133 -# define BOOST_PP_ITERATION_1 133 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 134 && BOOST_PP_ITERATION_FINISH_1 >= 134 -# define BOOST_PP_ITERATION_1 134 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 135 && BOOST_PP_ITERATION_FINISH_1 >= 135 -# define BOOST_PP_ITERATION_1 135 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 136 && BOOST_PP_ITERATION_FINISH_1 >= 136 -# define BOOST_PP_ITERATION_1 136 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 137 && BOOST_PP_ITERATION_FINISH_1 >= 137 -# define BOOST_PP_ITERATION_1 137 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 138 && BOOST_PP_ITERATION_FINISH_1 >= 138 -# define BOOST_PP_ITERATION_1 138 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 139 && BOOST_PP_ITERATION_FINISH_1 >= 139 -# define BOOST_PP_ITERATION_1 139 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 140 && BOOST_PP_ITERATION_FINISH_1 >= 140 -# define BOOST_PP_ITERATION_1 140 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 141 && BOOST_PP_ITERATION_FINISH_1 >= 141 -# define BOOST_PP_ITERATION_1 141 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 142 && BOOST_PP_ITERATION_FINISH_1 >= 142 -# define BOOST_PP_ITERATION_1 142 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 143 && BOOST_PP_ITERATION_FINISH_1 >= 143 -# define BOOST_PP_ITERATION_1 143 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 144 && BOOST_PP_ITERATION_FINISH_1 >= 144 -# define BOOST_PP_ITERATION_1 144 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 145 && BOOST_PP_ITERATION_FINISH_1 >= 145 -# define BOOST_PP_ITERATION_1 145 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 146 && BOOST_PP_ITERATION_FINISH_1 >= 146 -# define BOOST_PP_ITERATION_1 146 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 147 && BOOST_PP_ITERATION_FINISH_1 >= 147 -# define BOOST_PP_ITERATION_1 147 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 148 && BOOST_PP_ITERATION_FINISH_1 >= 148 -# define BOOST_PP_ITERATION_1 148 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 149 && BOOST_PP_ITERATION_FINISH_1 >= 149 -# define BOOST_PP_ITERATION_1 149 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 150 && BOOST_PP_ITERATION_FINISH_1 >= 150 -# define BOOST_PP_ITERATION_1 150 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 151 && BOOST_PP_ITERATION_FINISH_1 >= 151 -# define BOOST_PP_ITERATION_1 151 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 152 && BOOST_PP_ITERATION_FINISH_1 >= 152 -# define BOOST_PP_ITERATION_1 152 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 153 && BOOST_PP_ITERATION_FINISH_1 >= 153 -# define BOOST_PP_ITERATION_1 153 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 154 && BOOST_PP_ITERATION_FINISH_1 >= 154 -# define BOOST_PP_ITERATION_1 154 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 155 && BOOST_PP_ITERATION_FINISH_1 >= 155 -# define BOOST_PP_ITERATION_1 155 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 156 && BOOST_PP_ITERATION_FINISH_1 >= 156 -# define BOOST_PP_ITERATION_1 156 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 157 && BOOST_PP_ITERATION_FINISH_1 >= 157 -# define BOOST_PP_ITERATION_1 157 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 158 && BOOST_PP_ITERATION_FINISH_1 >= 158 -# define BOOST_PP_ITERATION_1 158 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 159 && BOOST_PP_ITERATION_FINISH_1 >= 159 -# define BOOST_PP_ITERATION_1 159 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 160 && BOOST_PP_ITERATION_FINISH_1 >= 160 -# define BOOST_PP_ITERATION_1 160 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 161 && BOOST_PP_ITERATION_FINISH_1 >= 161 -# define BOOST_PP_ITERATION_1 161 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 162 && BOOST_PP_ITERATION_FINISH_1 >= 162 -# define BOOST_PP_ITERATION_1 162 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 163 && BOOST_PP_ITERATION_FINISH_1 >= 163 -# define BOOST_PP_ITERATION_1 163 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 164 && BOOST_PP_ITERATION_FINISH_1 >= 164 -# define BOOST_PP_ITERATION_1 164 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 165 && BOOST_PP_ITERATION_FINISH_1 >= 165 -# define BOOST_PP_ITERATION_1 165 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 166 && BOOST_PP_ITERATION_FINISH_1 >= 166 -# define BOOST_PP_ITERATION_1 166 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 167 && BOOST_PP_ITERATION_FINISH_1 >= 167 -# define BOOST_PP_ITERATION_1 167 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 168 && BOOST_PP_ITERATION_FINISH_1 >= 168 -# define BOOST_PP_ITERATION_1 168 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 169 && BOOST_PP_ITERATION_FINISH_1 >= 169 -# define BOOST_PP_ITERATION_1 169 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 170 && BOOST_PP_ITERATION_FINISH_1 >= 170 -# define BOOST_PP_ITERATION_1 170 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 171 && BOOST_PP_ITERATION_FINISH_1 >= 171 -# define BOOST_PP_ITERATION_1 171 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 172 && BOOST_PP_ITERATION_FINISH_1 >= 172 -# define BOOST_PP_ITERATION_1 172 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 173 && BOOST_PP_ITERATION_FINISH_1 >= 173 -# define BOOST_PP_ITERATION_1 173 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 174 && BOOST_PP_ITERATION_FINISH_1 >= 174 -# define BOOST_PP_ITERATION_1 174 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 175 && BOOST_PP_ITERATION_FINISH_1 >= 175 -# define BOOST_PP_ITERATION_1 175 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 176 && BOOST_PP_ITERATION_FINISH_1 >= 176 -# define BOOST_PP_ITERATION_1 176 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 177 && BOOST_PP_ITERATION_FINISH_1 >= 177 -# define BOOST_PP_ITERATION_1 177 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 178 && BOOST_PP_ITERATION_FINISH_1 >= 178 -# define BOOST_PP_ITERATION_1 178 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 179 && BOOST_PP_ITERATION_FINISH_1 >= 179 -# define BOOST_PP_ITERATION_1 179 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 180 && BOOST_PP_ITERATION_FINISH_1 >= 180 -# define BOOST_PP_ITERATION_1 180 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 181 && BOOST_PP_ITERATION_FINISH_1 >= 181 -# define BOOST_PP_ITERATION_1 181 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 182 && BOOST_PP_ITERATION_FINISH_1 >= 182 -# define BOOST_PP_ITERATION_1 182 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 183 && BOOST_PP_ITERATION_FINISH_1 >= 183 -# define BOOST_PP_ITERATION_1 183 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 184 && BOOST_PP_ITERATION_FINISH_1 >= 184 -# define BOOST_PP_ITERATION_1 184 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 185 && BOOST_PP_ITERATION_FINISH_1 >= 185 -# define BOOST_PP_ITERATION_1 185 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 186 && BOOST_PP_ITERATION_FINISH_1 >= 186 -# define BOOST_PP_ITERATION_1 186 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 187 && BOOST_PP_ITERATION_FINISH_1 >= 187 -# define BOOST_PP_ITERATION_1 187 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 188 && BOOST_PP_ITERATION_FINISH_1 >= 188 -# define BOOST_PP_ITERATION_1 188 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 189 && BOOST_PP_ITERATION_FINISH_1 >= 189 -# define BOOST_PP_ITERATION_1 189 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 190 && BOOST_PP_ITERATION_FINISH_1 >= 190 -# define BOOST_PP_ITERATION_1 190 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 191 && BOOST_PP_ITERATION_FINISH_1 >= 191 -# define BOOST_PP_ITERATION_1 191 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 192 && BOOST_PP_ITERATION_FINISH_1 >= 192 -# define BOOST_PP_ITERATION_1 192 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 193 && BOOST_PP_ITERATION_FINISH_1 >= 193 -# define BOOST_PP_ITERATION_1 193 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 194 && BOOST_PP_ITERATION_FINISH_1 >= 194 -# define BOOST_PP_ITERATION_1 194 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 195 && BOOST_PP_ITERATION_FINISH_1 >= 195 -# define BOOST_PP_ITERATION_1 195 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 196 && BOOST_PP_ITERATION_FINISH_1 >= 196 -# define BOOST_PP_ITERATION_1 196 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 197 && BOOST_PP_ITERATION_FINISH_1 >= 197 -# define BOOST_PP_ITERATION_1 197 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 198 && BOOST_PP_ITERATION_FINISH_1 >= 198 -# define BOOST_PP_ITERATION_1 198 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 199 && BOOST_PP_ITERATION_FINISH_1 >= 199 -# define BOOST_PP_ITERATION_1 199 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 200 && BOOST_PP_ITERATION_FINISH_1 >= 200 -# define BOOST_PP_ITERATION_1 200 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 201 && BOOST_PP_ITERATION_FINISH_1 >= 201 -# define BOOST_PP_ITERATION_1 201 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 202 && BOOST_PP_ITERATION_FINISH_1 >= 202 -# define BOOST_PP_ITERATION_1 202 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 203 && BOOST_PP_ITERATION_FINISH_1 >= 203 -# define BOOST_PP_ITERATION_1 203 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 204 && BOOST_PP_ITERATION_FINISH_1 >= 204 -# define BOOST_PP_ITERATION_1 204 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 205 && BOOST_PP_ITERATION_FINISH_1 >= 205 -# define BOOST_PP_ITERATION_1 205 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 206 && BOOST_PP_ITERATION_FINISH_1 >= 206 -# define BOOST_PP_ITERATION_1 206 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 207 && BOOST_PP_ITERATION_FINISH_1 >= 207 -# define BOOST_PP_ITERATION_1 207 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 208 && BOOST_PP_ITERATION_FINISH_1 >= 208 -# define BOOST_PP_ITERATION_1 208 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 209 && BOOST_PP_ITERATION_FINISH_1 >= 209 -# define BOOST_PP_ITERATION_1 209 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 210 && BOOST_PP_ITERATION_FINISH_1 >= 210 -# define BOOST_PP_ITERATION_1 210 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 211 && BOOST_PP_ITERATION_FINISH_1 >= 211 -# define BOOST_PP_ITERATION_1 211 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 212 && BOOST_PP_ITERATION_FINISH_1 >= 212 -# define BOOST_PP_ITERATION_1 212 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 213 && BOOST_PP_ITERATION_FINISH_1 >= 213 -# define BOOST_PP_ITERATION_1 213 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 214 && BOOST_PP_ITERATION_FINISH_1 >= 214 -# define BOOST_PP_ITERATION_1 214 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 215 && BOOST_PP_ITERATION_FINISH_1 >= 215 -# define BOOST_PP_ITERATION_1 215 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 216 && BOOST_PP_ITERATION_FINISH_1 >= 216 -# define BOOST_PP_ITERATION_1 216 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 217 && BOOST_PP_ITERATION_FINISH_1 >= 217 -# define BOOST_PP_ITERATION_1 217 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 218 && BOOST_PP_ITERATION_FINISH_1 >= 218 -# define BOOST_PP_ITERATION_1 218 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 219 && BOOST_PP_ITERATION_FINISH_1 >= 219 -# define BOOST_PP_ITERATION_1 219 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 220 && BOOST_PP_ITERATION_FINISH_1 >= 220 -# define BOOST_PP_ITERATION_1 220 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 221 && BOOST_PP_ITERATION_FINISH_1 >= 221 -# define BOOST_PP_ITERATION_1 221 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 222 && BOOST_PP_ITERATION_FINISH_1 >= 222 -# define BOOST_PP_ITERATION_1 222 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 223 && BOOST_PP_ITERATION_FINISH_1 >= 223 -# define BOOST_PP_ITERATION_1 223 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 224 && BOOST_PP_ITERATION_FINISH_1 >= 224 -# define BOOST_PP_ITERATION_1 224 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 225 && BOOST_PP_ITERATION_FINISH_1 >= 225 -# define BOOST_PP_ITERATION_1 225 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 226 && BOOST_PP_ITERATION_FINISH_1 >= 226 -# define BOOST_PP_ITERATION_1 226 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 227 && BOOST_PP_ITERATION_FINISH_1 >= 227 -# define BOOST_PP_ITERATION_1 227 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 228 && BOOST_PP_ITERATION_FINISH_1 >= 228 -# define BOOST_PP_ITERATION_1 228 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 229 && BOOST_PP_ITERATION_FINISH_1 >= 229 -# define BOOST_PP_ITERATION_1 229 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 230 && BOOST_PP_ITERATION_FINISH_1 >= 230 -# define BOOST_PP_ITERATION_1 230 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 231 && BOOST_PP_ITERATION_FINISH_1 >= 231 -# define BOOST_PP_ITERATION_1 231 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 232 && BOOST_PP_ITERATION_FINISH_1 >= 232 -# define BOOST_PP_ITERATION_1 232 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 233 && BOOST_PP_ITERATION_FINISH_1 >= 233 -# define BOOST_PP_ITERATION_1 233 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 234 && BOOST_PP_ITERATION_FINISH_1 >= 234 -# define BOOST_PP_ITERATION_1 234 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 235 && BOOST_PP_ITERATION_FINISH_1 >= 235 -# define BOOST_PP_ITERATION_1 235 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 236 && BOOST_PP_ITERATION_FINISH_1 >= 236 -# define BOOST_PP_ITERATION_1 236 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 237 && BOOST_PP_ITERATION_FINISH_1 >= 237 -# define BOOST_PP_ITERATION_1 237 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 238 && BOOST_PP_ITERATION_FINISH_1 >= 238 -# define BOOST_PP_ITERATION_1 238 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 239 && BOOST_PP_ITERATION_FINISH_1 >= 239 -# define BOOST_PP_ITERATION_1 239 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 240 && BOOST_PP_ITERATION_FINISH_1 >= 240 -# define BOOST_PP_ITERATION_1 240 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 241 && BOOST_PP_ITERATION_FINISH_1 >= 241 -# define BOOST_PP_ITERATION_1 241 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 242 && BOOST_PP_ITERATION_FINISH_1 >= 242 -# define BOOST_PP_ITERATION_1 242 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 243 && BOOST_PP_ITERATION_FINISH_1 >= 243 -# define BOOST_PP_ITERATION_1 243 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 244 && BOOST_PP_ITERATION_FINISH_1 >= 244 -# define BOOST_PP_ITERATION_1 244 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 245 && BOOST_PP_ITERATION_FINISH_1 >= 245 -# define BOOST_PP_ITERATION_1 245 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 246 && BOOST_PP_ITERATION_FINISH_1 >= 246 -# define BOOST_PP_ITERATION_1 246 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 247 && BOOST_PP_ITERATION_FINISH_1 >= 247 -# define BOOST_PP_ITERATION_1 247 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 248 && BOOST_PP_ITERATION_FINISH_1 >= 248 -# define BOOST_PP_ITERATION_1 248 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 249 && BOOST_PP_ITERATION_FINISH_1 >= 249 -# define BOOST_PP_ITERATION_1 249 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 250 && BOOST_PP_ITERATION_FINISH_1 >= 250 -# define BOOST_PP_ITERATION_1 250 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 251 && BOOST_PP_ITERATION_FINISH_1 >= 251 -# define BOOST_PP_ITERATION_1 251 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 252 && BOOST_PP_ITERATION_FINISH_1 >= 252 -# define BOOST_PP_ITERATION_1 252 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 253 && BOOST_PP_ITERATION_FINISH_1 >= 253 -# define BOOST_PP_ITERATION_1 253 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 254 && BOOST_PP_ITERATION_FINISH_1 >= 254 -# define BOOST_PP_ITERATION_1 254 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 255 && BOOST_PP_ITERATION_FINISH_1 >= 255 -# define BOOST_PP_ITERATION_1 255 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_START_1 <= 256 && BOOST_PP_ITERATION_FINISH_1 >= 256 -# define BOOST_PP_ITERATION_1 256 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# endif -# -# undef BOOST_PP_IS_ITERATING -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 0 -# -# undef BOOST_PP_ITERATION_START_1 -# undef BOOST_PP_ITERATION_FINISH_1 -# undef BOOST_PP_FILENAME_1 -# -# undef BOOST_PP_ITERATION_FLAGS_1 -# undef BOOST_PP_ITERATION_PARAMS_1 diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward2.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward2.hpp deleted file mode 100644 index e61a329d3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward2.hpp +++ /dev/null @@ -1,1338 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if defined(BOOST_PP_ITERATION_LIMITS) -# if !defined(BOOST_PP_FILENAME_2) -# error BOOST_PP_ERROR: depth #2 filename is not defined -# endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_ITERATION_FLAGS_2() 0 -# undef BOOST_PP_ITERATION_LIMITS -# elif defined(BOOST_PP_ITERATION_PARAMS_2) -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2) -# include -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2) -# include -# define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2) -# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4 -# define BOOST_PP_ITERATION_FLAGS_2() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2) -# else -# define BOOST_PP_ITERATION_FLAGS_2() 0 -# endif -# else -# error BOOST_PP_ERROR: depth #2 iteration boundaries or filename not defined -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 2 -# -# if (BOOST_PP_ITERATION_START_2) > (BOOST_PP_ITERATION_FINISH_2) -# include -# else -# if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0 -# define BOOST_PP_ITERATION_2 0 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1 -# define BOOST_PP_ITERATION_2 1 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 2 && BOOST_PP_ITERATION_FINISH_2 >= 2 -# define BOOST_PP_ITERATION_2 2 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 3 && BOOST_PP_ITERATION_FINISH_2 >= 3 -# define BOOST_PP_ITERATION_2 3 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 4 && BOOST_PP_ITERATION_FINISH_2 >= 4 -# define BOOST_PP_ITERATION_2 4 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 5 && BOOST_PP_ITERATION_FINISH_2 >= 5 -# define BOOST_PP_ITERATION_2 5 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 6 && BOOST_PP_ITERATION_FINISH_2 >= 6 -# define BOOST_PP_ITERATION_2 6 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 7 && BOOST_PP_ITERATION_FINISH_2 >= 7 -# define BOOST_PP_ITERATION_2 7 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 8 && BOOST_PP_ITERATION_FINISH_2 >= 8 -# define BOOST_PP_ITERATION_2 8 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 9 && BOOST_PP_ITERATION_FINISH_2 >= 9 -# define BOOST_PP_ITERATION_2 9 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 10 && BOOST_PP_ITERATION_FINISH_2 >= 10 -# define BOOST_PP_ITERATION_2 10 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 11 && BOOST_PP_ITERATION_FINISH_2 >= 11 -# define BOOST_PP_ITERATION_2 11 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 12 && BOOST_PP_ITERATION_FINISH_2 >= 12 -# define BOOST_PP_ITERATION_2 12 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 13 && BOOST_PP_ITERATION_FINISH_2 >= 13 -# define BOOST_PP_ITERATION_2 13 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 14 && BOOST_PP_ITERATION_FINISH_2 >= 14 -# define BOOST_PP_ITERATION_2 14 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 15 && BOOST_PP_ITERATION_FINISH_2 >= 15 -# define BOOST_PP_ITERATION_2 15 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 16 && BOOST_PP_ITERATION_FINISH_2 >= 16 -# define BOOST_PP_ITERATION_2 16 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 17 && BOOST_PP_ITERATION_FINISH_2 >= 17 -# define BOOST_PP_ITERATION_2 17 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 18 && BOOST_PP_ITERATION_FINISH_2 >= 18 -# define BOOST_PP_ITERATION_2 18 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 19 && BOOST_PP_ITERATION_FINISH_2 >= 19 -# define BOOST_PP_ITERATION_2 19 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 20 && BOOST_PP_ITERATION_FINISH_2 >= 20 -# define BOOST_PP_ITERATION_2 20 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 21 && BOOST_PP_ITERATION_FINISH_2 >= 21 -# define BOOST_PP_ITERATION_2 21 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 22 && BOOST_PP_ITERATION_FINISH_2 >= 22 -# define BOOST_PP_ITERATION_2 22 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 23 && BOOST_PP_ITERATION_FINISH_2 >= 23 -# define BOOST_PP_ITERATION_2 23 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 24 && BOOST_PP_ITERATION_FINISH_2 >= 24 -# define BOOST_PP_ITERATION_2 24 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 25 && BOOST_PP_ITERATION_FINISH_2 >= 25 -# define BOOST_PP_ITERATION_2 25 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 26 && BOOST_PP_ITERATION_FINISH_2 >= 26 -# define BOOST_PP_ITERATION_2 26 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 27 && BOOST_PP_ITERATION_FINISH_2 >= 27 -# define BOOST_PP_ITERATION_2 27 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 28 && BOOST_PP_ITERATION_FINISH_2 >= 28 -# define BOOST_PP_ITERATION_2 28 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 29 && BOOST_PP_ITERATION_FINISH_2 >= 29 -# define BOOST_PP_ITERATION_2 29 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 30 && BOOST_PP_ITERATION_FINISH_2 >= 30 -# define BOOST_PP_ITERATION_2 30 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 31 && BOOST_PP_ITERATION_FINISH_2 >= 31 -# define BOOST_PP_ITERATION_2 31 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 32 && BOOST_PP_ITERATION_FINISH_2 >= 32 -# define BOOST_PP_ITERATION_2 32 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 33 && BOOST_PP_ITERATION_FINISH_2 >= 33 -# define BOOST_PP_ITERATION_2 33 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 34 && BOOST_PP_ITERATION_FINISH_2 >= 34 -# define BOOST_PP_ITERATION_2 34 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 35 && BOOST_PP_ITERATION_FINISH_2 >= 35 -# define BOOST_PP_ITERATION_2 35 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 36 && BOOST_PP_ITERATION_FINISH_2 >= 36 -# define BOOST_PP_ITERATION_2 36 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 37 && BOOST_PP_ITERATION_FINISH_2 >= 37 -# define BOOST_PP_ITERATION_2 37 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 38 && BOOST_PP_ITERATION_FINISH_2 >= 38 -# define BOOST_PP_ITERATION_2 38 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 39 && BOOST_PP_ITERATION_FINISH_2 >= 39 -# define BOOST_PP_ITERATION_2 39 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 40 && BOOST_PP_ITERATION_FINISH_2 >= 40 -# define BOOST_PP_ITERATION_2 40 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 41 && BOOST_PP_ITERATION_FINISH_2 >= 41 -# define BOOST_PP_ITERATION_2 41 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 42 && BOOST_PP_ITERATION_FINISH_2 >= 42 -# define BOOST_PP_ITERATION_2 42 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 43 && BOOST_PP_ITERATION_FINISH_2 >= 43 -# define BOOST_PP_ITERATION_2 43 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 44 && BOOST_PP_ITERATION_FINISH_2 >= 44 -# define BOOST_PP_ITERATION_2 44 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 45 && BOOST_PP_ITERATION_FINISH_2 >= 45 -# define BOOST_PP_ITERATION_2 45 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 46 && BOOST_PP_ITERATION_FINISH_2 >= 46 -# define BOOST_PP_ITERATION_2 46 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 47 && BOOST_PP_ITERATION_FINISH_2 >= 47 -# define BOOST_PP_ITERATION_2 47 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 48 && BOOST_PP_ITERATION_FINISH_2 >= 48 -# define BOOST_PP_ITERATION_2 48 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 49 && BOOST_PP_ITERATION_FINISH_2 >= 49 -# define BOOST_PP_ITERATION_2 49 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 50 && BOOST_PP_ITERATION_FINISH_2 >= 50 -# define BOOST_PP_ITERATION_2 50 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 51 && BOOST_PP_ITERATION_FINISH_2 >= 51 -# define BOOST_PP_ITERATION_2 51 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 52 && BOOST_PP_ITERATION_FINISH_2 >= 52 -# define BOOST_PP_ITERATION_2 52 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 53 && BOOST_PP_ITERATION_FINISH_2 >= 53 -# define BOOST_PP_ITERATION_2 53 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 54 && BOOST_PP_ITERATION_FINISH_2 >= 54 -# define BOOST_PP_ITERATION_2 54 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 55 && BOOST_PP_ITERATION_FINISH_2 >= 55 -# define BOOST_PP_ITERATION_2 55 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 56 && BOOST_PP_ITERATION_FINISH_2 >= 56 -# define BOOST_PP_ITERATION_2 56 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 57 && BOOST_PP_ITERATION_FINISH_2 >= 57 -# define BOOST_PP_ITERATION_2 57 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 58 && BOOST_PP_ITERATION_FINISH_2 >= 58 -# define BOOST_PP_ITERATION_2 58 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 59 && BOOST_PP_ITERATION_FINISH_2 >= 59 -# define BOOST_PP_ITERATION_2 59 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 60 && BOOST_PP_ITERATION_FINISH_2 >= 60 -# define BOOST_PP_ITERATION_2 60 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 61 && BOOST_PP_ITERATION_FINISH_2 >= 61 -# define BOOST_PP_ITERATION_2 61 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 62 && BOOST_PP_ITERATION_FINISH_2 >= 62 -# define BOOST_PP_ITERATION_2 62 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 63 && BOOST_PP_ITERATION_FINISH_2 >= 63 -# define BOOST_PP_ITERATION_2 63 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 64 && BOOST_PP_ITERATION_FINISH_2 >= 64 -# define BOOST_PP_ITERATION_2 64 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 65 && BOOST_PP_ITERATION_FINISH_2 >= 65 -# define BOOST_PP_ITERATION_2 65 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 66 && BOOST_PP_ITERATION_FINISH_2 >= 66 -# define BOOST_PP_ITERATION_2 66 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 67 && BOOST_PP_ITERATION_FINISH_2 >= 67 -# define BOOST_PP_ITERATION_2 67 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 68 && BOOST_PP_ITERATION_FINISH_2 >= 68 -# define BOOST_PP_ITERATION_2 68 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 69 && BOOST_PP_ITERATION_FINISH_2 >= 69 -# define BOOST_PP_ITERATION_2 69 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 70 && BOOST_PP_ITERATION_FINISH_2 >= 70 -# define BOOST_PP_ITERATION_2 70 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 71 && BOOST_PP_ITERATION_FINISH_2 >= 71 -# define BOOST_PP_ITERATION_2 71 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 72 && BOOST_PP_ITERATION_FINISH_2 >= 72 -# define BOOST_PP_ITERATION_2 72 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 73 && BOOST_PP_ITERATION_FINISH_2 >= 73 -# define BOOST_PP_ITERATION_2 73 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 74 && BOOST_PP_ITERATION_FINISH_2 >= 74 -# define BOOST_PP_ITERATION_2 74 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 75 && BOOST_PP_ITERATION_FINISH_2 >= 75 -# define BOOST_PP_ITERATION_2 75 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 76 && BOOST_PP_ITERATION_FINISH_2 >= 76 -# define BOOST_PP_ITERATION_2 76 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 77 && BOOST_PP_ITERATION_FINISH_2 >= 77 -# define BOOST_PP_ITERATION_2 77 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 78 && BOOST_PP_ITERATION_FINISH_2 >= 78 -# define BOOST_PP_ITERATION_2 78 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 79 && BOOST_PP_ITERATION_FINISH_2 >= 79 -# define BOOST_PP_ITERATION_2 79 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 80 && BOOST_PP_ITERATION_FINISH_2 >= 80 -# define BOOST_PP_ITERATION_2 80 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 81 && BOOST_PP_ITERATION_FINISH_2 >= 81 -# define BOOST_PP_ITERATION_2 81 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 82 && BOOST_PP_ITERATION_FINISH_2 >= 82 -# define BOOST_PP_ITERATION_2 82 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 83 && BOOST_PP_ITERATION_FINISH_2 >= 83 -# define BOOST_PP_ITERATION_2 83 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 84 && BOOST_PP_ITERATION_FINISH_2 >= 84 -# define BOOST_PP_ITERATION_2 84 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 85 && BOOST_PP_ITERATION_FINISH_2 >= 85 -# define BOOST_PP_ITERATION_2 85 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 86 && BOOST_PP_ITERATION_FINISH_2 >= 86 -# define BOOST_PP_ITERATION_2 86 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 87 && BOOST_PP_ITERATION_FINISH_2 >= 87 -# define BOOST_PP_ITERATION_2 87 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 88 && BOOST_PP_ITERATION_FINISH_2 >= 88 -# define BOOST_PP_ITERATION_2 88 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 89 && BOOST_PP_ITERATION_FINISH_2 >= 89 -# define BOOST_PP_ITERATION_2 89 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 90 && BOOST_PP_ITERATION_FINISH_2 >= 90 -# define BOOST_PP_ITERATION_2 90 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 91 && BOOST_PP_ITERATION_FINISH_2 >= 91 -# define BOOST_PP_ITERATION_2 91 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 92 && BOOST_PP_ITERATION_FINISH_2 >= 92 -# define BOOST_PP_ITERATION_2 92 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 93 && BOOST_PP_ITERATION_FINISH_2 >= 93 -# define BOOST_PP_ITERATION_2 93 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 94 && BOOST_PP_ITERATION_FINISH_2 >= 94 -# define BOOST_PP_ITERATION_2 94 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 95 && BOOST_PP_ITERATION_FINISH_2 >= 95 -# define BOOST_PP_ITERATION_2 95 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 96 && BOOST_PP_ITERATION_FINISH_2 >= 96 -# define BOOST_PP_ITERATION_2 96 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 97 && BOOST_PP_ITERATION_FINISH_2 >= 97 -# define BOOST_PP_ITERATION_2 97 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 98 && BOOST_PP_ITERATION_FINISH_2 >= 98 -# define BOOST_PP_ITERATION_2 98 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 99 && BOOST_PP_ITERATION_FINISH_2 >= 99 -# define BOOST_PP_ITERATION_2 99 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 100 && BOOST_PP_ITERATION_FINISH_2 >= 100 -# define BOOST_PP_ITERATION_2 100 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 101 && BOOST_PP_ITERATION_FINISH_2 >= 101 -# define BOOST_PP_ITERATION_2 101 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 102 && BOOST_PP_ITERATION_FINISH_2 >= 102 -# define BOOST_PP_ITERATION_2 102 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 103 && BOOST_PP_ITERATION_FINISH_2 >= 103 -# define BOOST_PP_ITERATION_2 103 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 104 && BOOST_PP_ITERATION_FINISH_2 >= 104 -# define BOOST_PP_ITERATION_2 104 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 105 && BOOST_PP_ITERATION_FINISH_2 >= 105 -# define BOOST_PP_ITERATION_2 105 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 106 && BOOST_PP_ITERATION_FINISH_2 >= 106 -# define BOOST_PP_ITERATION_2 106 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 107 && BOOST_PP_ITERATION_FINISH_2 >= 107 -# define BOOST_PP_ITERATION_2 107 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 108 && BOOST_PP_ITERATION_FINISH_2 >= 108 -# define BOOST_PP_ITERATION_2 108 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 109 && BOOST_PP_ITERATION_FINISH_2 >= 109 -# define BOOST_PP_ITERATION_2 109 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 110 && BOOST_PP_ITERATION_FINISH_2 >= 110 -# define BOOST_PP_ITERATION_2 110 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 111 && BOOST_PP_ITERATION_FINISH_2 >= 111 -# define BOOST_PP_ITERATION_2 111 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 112 && BOOST_PP_ITERATION_FINISH_2 >= 112 -# define BOOST_PP_ITERATION_2 112 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 113 && BOOST_PP_ITERATION_FINISH_2 >= 113 -# define BOOST_PP_ITERATION_2 113 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 114 && BOOST_PP_ITERATION_FINISH_2 >= 114 -# define BOOST_PP_ITERATION_2 114 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 115 && BOOST_PP_ITERATION_FINISH_2 >= 115 -# define BOOST_PP_ITERATION_2 115 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 116 && BOOST_PP_ITERATION_FINISH_2 >= 116 -# define BOOST_PP_ITERATION_2 116 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 117 && BOOST_PP_ITERATION_FINISH_2 >= 117 -# define BOOST_PP_ITERATION_2 117 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 118 && BOOST_PP_ITERATION_FINISH_2 >= 118 -# define BOOST_PP_ITERATION_2 118 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 119 && BOOST_PP_ITERATION_FINISH_2 >= 119 -# define BOOST_PP_ITERATION_2 119 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 120 && BOOST_PP_ITERATION_FINISH_2 >= 120 -# define BOOST_PP_ITERATION_2 120 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 121 && BOOST_PP_ITERATION_FINISH_2 >= 121 -# define BOOST_PP_ITERATION_2 121 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 122 && BOOST_PP_ITERATION_FINISH_2 >= 122 -# define BOOST_PP_ITERATION_2 122 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 123 && BOOST_PP_ITERATION_FINISH_2 >= 123 -# define BOOST_PP_ITERATION_2 123 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 124 && BOOST_PP_ITERATION_FINISH_2 >= 124 -# define BOOST_PP_ITERATION_2 124 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 125 && BOOST_PP_ITERATION_FINISH_2 >= 125 -# define BOOST_PP_ITERATION_2 125 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 126 && BOOST_PP_ITERATION_FINISH_2 >= 126 -# define BOOST_PP_ITERATION_2 126 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 127 && BOOST_PP_ITERATION_FINISH_2 >= 127 -# define BOOST_PP_ITERATION_2 127 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 128 && BOOST_PP_ITERATION_FINISH_2 >= 128 -# define BOOST_PP_ITERATION_2 128 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 129 && BOOST_PP_ITERATION_FINISH_2 >= 129 -# define BOOST_PP_ITERATION_2 129 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 130 && BOOST_PP_ITERATION_FINISH_2 >= 130 -# define BOOST_PP_ITERATION_2 130 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 131 && BOOST_PP_ITERATION_FINISH_2 >= 131 -# define BOOST_PP_ITERATION_2 131 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 132 && BOOST_PP_ITERATION_FINISH_2 >= 132 -# define BOOST_PP_ITERATION_2 132 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 133 && BOOST_PP_ITERATION_FINISH_2 >= 133 -# define BOOST_PP_ITERATION_2 133 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 134 && BOOST_PP_ITERATION_FINISH_2 >= 134 -# define BOOST_PP_ITERATION_2 134 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 135 && BOOST_PP_ITERATION_FINISH_2 >= 135 -# define BOOST_PP_ITERATION_2 135 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 136 && BOOST_PP_ITERATION_FINISH_2 >= 136 -# define BOOST_PP_ITERATION_2 136 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 137 && BOOST_PP_ITERATION_FINISH_2 >= 137 -# define BOOST_PP_ITERATION_2 137 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 138 && BOOST_PP_ITERATION_FINISH_2 >= 138 -# define BOOST_PP_ITERATION_2 138 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 139 && BOOST_PP_ITERATION_FINISH_2 >= 139 -# define BOOST_PP_ITERATION_2 139 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 140 && BOOST_PP_ITERATION_FINISH_2 >= 140 -# define BOOST_PP_ITERATION_2 140 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 141 && BOOST_PP_ITERATION_FINISH_2 >= 141 -# define BOOST_PP_ITERATION_2 141 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 142 && BOOST_PP_ITERATION_FINISH_2 >= 142 -# define BOOST_PP_ITERATION_2 142 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 143 && BOOST_PP_ITERATION_FINISH_2 >= 143 -# define BOOST_PP_ITERATION_2 143 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 144 && BOOST_PP_ITERATION_FINISH_2 >= 144 -# define BOOST_PP_ITERATION_2 144 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 145 && BOOST_PP_ITERATION_FINISH_2 >= 145 -# define BOOST_PP_ITERATION_2 145 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 146 && BOOST_PP_ITERATION_FINISH_2 >= 146 -# define BOOST_PP_ITERATION_2 146 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 147 && BOOST_PP_ITERATION_FINISH_2 >= 147 -# define BOOST_PP_ITERATION_2 147 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 148 && BOOST_PP_ITERATION_FINISH_2 >= 148 -# define BOOST_PP_ITERATION_2 148 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 149 && BOOST_PP_ITERATION_FINISH_2 >= 149 -# define BOOST_PP_ITERATION_2 149 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 150 && BOOST_PP_ITERATION_FINISH_2 >= 150 -# define BOOST_PP_ITERATION_2 150 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 151 && BOOST_PP_ITERATION_FINISH_2 >= 151 -# define BOOST_PP_ITERATION_2 151 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 152 && BOOST_PP_ITERATION_FINISH_2 >= 152 -# define BOOST_PP_ITERATION_2 152 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 153 && BOOST_PP_ITERATION_FINISH_2 >= 153 -# define BOOST_PP_ITERATION_2 153 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 154 && BOOST_PP_ITERATION_FINISH_2 >= 154 -# define BOOST_PP_ITERATION_2 154 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 155 && BOOST_PP_ITERATION_FINISH_2 >= 155 -# define BOOST_PP_ITERATION_2 155 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 156 && BOOST_PP_ITERATION_FINISH_2 >= 156 -# define BOOST_PP_ITERATION_2 156 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 157 && BOOST_PP_ITERATION_FINISH_2 >= 157 -# define BOOST_PP_ITERATION_2 157 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 158 && BOOST_PP_ITERATION_FINISH_2 >= 158 -# define BOOST_PP_ITERATION_2 158 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 159 && BOOST_PP_ITERATION_FINISH_2 >= 159 -# define BOOST_PP_ITERATION_2 159 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 160 && BOOST_PP_ITERATION_FINISH_2 >= 160 -# define BOOST_PP_ITERATION_2 160 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 161 && BOOST_PP_ITERATION_FINISH_2 >= 161 -# define BOOST_PP_ITERATION_2 161 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 162 && BOOST_PP_ITERATION_FINISH_2 >= 162 -# define BOOST_PP_ITERATION_2 162 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 163 && BOOST_PP_ITERATION_FINISH_2 >= 163 -# define BOOST_PP_ITERATION_2 163 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 164 && BOOST_PP_ITERATION_FINISH_2 >= 164 -# define BOOST_PP_ITERATION_2 164 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 165 && BOOST_PP_ITERATION_FINISH_2 >= 165 -# define BOOST_PP_ITERATION_2 165 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 166 && BOOST_PP_ITERATION_FINISH_2 >= 166 -# define BOOST_PP_ITERATION_2 166 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 167 && BOOST_PP_ITERATION_FINISH_2 >= 167 -# define BOOST_PP_ITERATION_2 167 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 168 && BOOST_PP_ITERATION_FINISH_2 >= 168 -# define BOOST_PP_ITERATION_2 168 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 169 && BOOST_PP_ITERATION_FINISH_2 >= 169 -# define BOOST_PP_ITERATION_2 169 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 170 && BOOST_PP_ITERATION_FINISH_2 >= 170 -# define BOOST_PP_ITERATION_2 170 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 171 && BOOST_PP_ITERATION_FINISH_2 >= 171 -# define BOOST_PP_ITERATION_2 171 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 172 && BOOST_PP_ITERATION_FINISH_2 >= 172 -# define BOOST_PP_ITERATION_2 172 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 173 && BOOST_PP_ITERATION_FINISH_2 >= 173 -# define BOOST_PP_ITERATION_2 173 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 174 && BOOST_PP_ITERATION_FINISH_2 >= 174 -# define BOOST_PP_ITERATION_2 174 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 175 && BOOST_PP_ITERATION_FINISH_2 >= 175 -# define BOOST_PP_ITERATION_2 175 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 176 && BOOST_PP_ITERATION_FINISH_2 >= 176 -# define BOOST_PP_ITERATION_2 176 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 177 && BOOST_PP_ITERATION_FINISH_2 >= 177 -# define BOOST_PP_ITERATION_2 177 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 178 && BOOST_PP_ITERATION_FINISH_2 >= 178 -# define BOOST_PP_ITERATION_2 178 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 179 && BOOST_PP_ITERATION_FINISH_2 >= 179 -# define BOOST_PP_ITERATION_2 179 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 180 && BOOST_PP_ITERATION_FINISH_2 >= 180 -# define BOOST_PP_ITERATION_2 180 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 181 && BOOST_PP_ITERATION_FINISH_2 >= 181 -# define BOOST_PP_ITERATION_2 181 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 182 && BOOST_PP_ITERATION_FINISH_2 >= 182 -# define BOOST_PP_ITERATION_2 182 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 183 && BOOST_PP_ITERATION_FINISH_2 >= 183 -# define BOOST_PP_ITERATION_2 183 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 184 && BOOST_PP_ITERATION_FINISH_2 >= 184 -# define BOOST_PP_ITERATION_2 184 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 185 && BOOST_PP_ITERATION_FINISH_2 >= 185 -# define BOOST_PP_ITERATION_2 185 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 186 && BOOST_PP_ITERATION_FINISH_2 >= 186 -# define BOOST_PP_ITERATION_2 186 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 187 && BOOST_PP_ITERATION_FINISH_2 >= 187 -# define BOOST_PP_ITERATION_2 187 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 188 && BOOST_PP_ITERATION_FINISH_2 >= 188 -# define BOOST_PP_ITERATION_2 188 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 189 && BOOST_PP_ITERATION_FINISH_2 >= 189 -# define BOOST_PP_ITERATION_2 189 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 190 && BOOST_PP_ITERATION_FINISH_2 >= 190 -# define BOOST_PP_ITERATION_2 190 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 191 && BOOST_PP_ITERATION_FINISH_2 >= 191 -# define BOOST_PP_ITERATION_2 191 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 192 && BOOST_PP_ITERATION_FINISH_2 >= 192 -# define BOOST_PP_ITERATION_2 192 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 193 && BOOST_PP_ITERATION_FINISH_2 >= 193 -# define BOOST_PP_ITERATION_2 193 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 194 && BOOST_PP_ITERATION_FINISH_2 >= 194 -# define BOOST_PP_ITERATION_2 194 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 195 && BOOST_PP_ITERATION_FINISH_2 >= 195 -# define BOOST_PP_ITERATION_2 195 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 196 && BOOST_PP_ITERATION_FINISH_2 >= 196 -# define BOOST_PP_ITERATION_2 196 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 197 && BOOST_PP_ITERATION_FINISH_2 >= 197 -# define BOOST_PP_ITERATION_2 197 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 198 && BOOST_PP_ITERATION_FINISH_2 >= 198 -# define BOOST_PP_ITERATION_2 198 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 199 && BOOST_PP_ITERATION_FINISH_2 >= 199 -# define BOOST_PP_ITERATION_2 199 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 200 && BOOST_PP_ITERATION_FINISH_2 >= 200 -# define BOOST_PP_ITERATION_2 200 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 201 && BOOST_PP_ITERATION_FINISH_2 >= 201 -# define BOOST_PP_ITERATION_2 201 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 202 && BOOST_PP_ITERATION_FINISH_2 >= 202 -# define BOOST_PP_ITERATION_2 202 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 203 && BOOST_PP_ITERATION_FINISH_2 >= 203 -# define BOOST_PP_ITERATION_2 203 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 204 && BOOST_PP_ITERATION_FINISH_2 >= 204 -# define BOOST_PP_ITERATION_2 204 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 205 && BOOST_PP_ITERATION_FINISH_2 >= 205 -# define BOOST_PP_ITERATION_2 205 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 206 && BOOST_PP_ITERATION_FINISH_2 >= 206 -# define BOOST_PP_ITERATION_2 206 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 207 && BOOST_PP_ITERATION_FINISH_2 >= 207 -# define BOOST_PP_ITERATION_2 207 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 208 && BOOST_PP_ITERATION_FINISH_2 >= 208 -# define BOOST_PP_ITERATION_2 208 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 209 && BOOST_PP_ITERATION_FINISH_2 >= 209 -# define BOOST_PP_ITERATION_2 209 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 210 && BOOST_PP_ITERATION_FINISH_2 >= 210 -# define BOOST_PP_ITERATION_2 210 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 211 && BOOST_PP_ITERATION_FINISH_2 >= 211 -# define BOOST_PP_ITERATION_2 211 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 212 && BOOST_PP_ITERATION_FINISH_2 >= 212 -# define BOOST_PP_ITERATION_2 212 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 213 && BOOST_PP_ITERATION_FINISH_2 >= 213 -# define BOOST_PP_ITERATION_2 213 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 214 && BOOST_PP_ITERATION_FINISH_2 >= 214 -# define BOOST_PP_ITERATION_2 214 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 215 && BOOST_PP_ITERATION_FINISH_2 >= 215 -# define BOOST_PP_ITERATION_2 215 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 216 && BOOST_PP_ITERATION_FINISH_2 >= 216 -# define BOOST_PP_ITERATION_2 216 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 217 && BOOST_PP_ITERATION_FINISH_2 >= 217 -# define BOOST_PP_ITERATION_2 217 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 218 && BOOST_PP_ITERATION_FINISH_2 >= 218 -# define BOOST_PP_ITERATION_2 218 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 219 && BOOST_PP_ITERATION_FINISH_2 >= 219 -# define BOOST_PP_ITERATION_2 219 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 220 && BOOST_PP_ITERATION_FINISH_2 >= 220 -# define BOOST_PP_ITERATION_2 220 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 221 && BOOST_PP_ITERATION_FINISH_2 >= 221 -# define BOOST_PP_ITERATION_2 221 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 222 && BOOST_PP_ITERATION_FINISH_2 >= 222 -# define BOOST_PP_ITERATION_2 222 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 223 && BOOST_PP_ITERATION_FINISH_2 >= 223 -# define BOOST_PP_ITERATION_2 223 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 224 && BOOST_PP_ITERATION_FINISH_2 >= 224 -# define BOOST_PP_ITERATION_2 224 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 225 && BOOST_PP_ITERATION_FINISH_2 >= 225 -# define BOOST_PP_ITERATION_2 225 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 226 && BOOST_PP_ITERATION_FINISH_2 >= 226 -# define BOOST_PP_ITERATION_2 226 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 227 && BOOST_PP_ITERATION_FINISH_2 >= 227 -# define BOOST_PP_ITERATION_2 227 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 228 && BOOST_PP_ITERATION_FINISH_2 >= 228 -# define BOOST_PP_ITERATION_2 228 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 229 && BOOST_PP_ITERATION_FINISH_2 >= 229 -# define BOOST_PP_ITERATION_2 229 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 230 && BOOST_PP_ITERATION_FINISH_2 >= 230 -# define BOOST_PP_ITERATION_2 230 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 231 && BOOST_PP_ITERATION_FINISH_2 >= 231 -# define BOOST_PP_ITERATION_2 231 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 232 && BOOST_PP_ITERATION_FINISH_2 >= 232 -# define BOOST_PP_ITERATION_2 232 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 233 && BOOST_PP_ITERATION_FINISH_2 >= 233 -# define BOOST_PP_ITERATION_2 233 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 234 && BOOST_PP_ITERATION_FINISH_2 >= 234 -# define BOOST_PP_ITERATION_2 234 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 235 && BOOST_PP_ITERATION_FINISH_2 >= 235 -# define BOOST_PP_ITERATION_2 235 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 236 && BOOST_PP_ITERATION_FINISH_2 >= 236 -# define BOOST_PP_ITERATION_2 236 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 237 && BOOST_PP_ITERATION_FINISH_2 >= 237 -# define BOOST_PP_ITERATION_2 237 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 238 && BOOST_PP_ITERATION_FINISH_2 >= 238 -# define BOOST_PP_ITERATION_2 238 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 239 && BOOST_PP_ITERATION_FINISH_2 >= 239 -# define BOOST_PP_ITERATION_2 239 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 240 && BOOST_PP_ITERATION_FINISH_2 >= 240 -# define BOOST_PP_ITERATION_2 240 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 241 && BOOST_PP_ITERATION_FINISH_2 >= 241 -# define BOOST_PP_ITERATION_2 241 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 242 && BOOST_PP_ITERATION_FINISH_2 >= 242 -# define BOOST_PP_ITERATION_2 242 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 243 && BOOST_PP_ITERATION_FINISH_2 >= 243 -# define BOOST_PP_ITERATION_2 243 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 244 && BOOST_PP_ITERATION_FINISH_2 >= 244 -# define BOOST_PP_ITERATION_2 244 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 245 && BOOST_PP_ITERATION_FINISH_2 >= 245 -# define BOOST_PP_ITERATION_2 245 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 246 && BOOST_PP_ITERATION_FINISH_2 >= 246 -# define BOOST_PP_ITERATION_2 246 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 247 && BOOST_PP_ITERATION_FINISH_2 >= 247 -# define BOOST_PP_ITERATION_2 247 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 248 && BOOST_PP_ITERATION_FINISH_2 >= 248 -# define BOOST_PP_ITERATION_2 248 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 249 && BOOST_PP_ITERATION_FINISH_2 >= 249 -# define BOOST_PP_ITERATION_2 249 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 250 && BOOST_PP_ITERATION_FINISH_2 >= 250 -# define BOOST_PP_ITERATION_2 250 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 251 && BOOST_PP_ITERATION_FINISH_2 >= 251 -# define BOOST_PP_ITERATION_2 251 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 252 && BOOST_PP_ITERATION_FINISH_2 >= 252 -# define BOOST_PP_ITERATION_2 252 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 253 && BOOST_PP_ITERATION_FINISH_2 >= 253 -# define BOOST_PP_ITERATION_2 253 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 254 && BOOST_PP_ITERATION_FINISH_2 >= 254 -# define BOOST_PP_ITERATION_2 254 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 255 && BOOST_PP_ITERATION_FINISH_2 >= 255 -# define BOOST_PP_ITERATION_2 255 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_START_2 <= 256 && BOOST_PP_ITERATION_FINISH_2 >= 256 -# define BOOST_PP_ITERATION_2 256 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 1 -# -# undef BOOST_PP_ITERATION_START_2 -# undef BOOST_PP_ITERATION_FINISH_2 -# undef BOOST_PP_FILENAME_2 -# -# undef BOOST_PP_ITERATION_FLAGS_2 -# undef BOOST_PP_ITERATION_PARAMS_2 diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward3.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward3.hpp deleted file mode 100644 index e68966f75..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward3.hpp +++ /dev/null @@ -1,1338 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if defined(BOOST_PP_ITERATION_LIMITS) -# if !defined(BOOST_PP_FILENAME_3) -# error BOOST_PP_ERROR: depth #3 filename is not defined -# endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_ITERATION_FLAGS_3() 0 -# undef BOOST_PP_ITERATION_LIMITS -# elif defined(BOOST_PP_ITERATION_PARAMS_3) -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3) -# include -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3) -# include -# define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3) -# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4 -# define BOOST_PP_ITERATION_FLAGS_3() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3) -# else -# define BOOST_PP_ITERATION_FLAGS_3() 0 -# endif -# else -# error BOOST_PP_ERROR: depth #3 iteration boundaries or filename not defined -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 3 -# -# if (BOOST_PP_ITERATION_START_3) > (BOOST_PP_ITERATION_FINISH_3) -# include -# else -# if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0 -# define BOOST_PP_ITERATION_3 0 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1 -# define BOOST_PP_ITERATION_3 1 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 2 && BOOST_PP_ITERATION_FINISH_3 >= 2 -# define BOOST_PP_ITERATION_3 2 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 3 && BOOST_PP_ITERATION_FINISH_3 >= 3 -# define BOOST_PP_ITERATION_3 3 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 4 && BOOST_PP_ITERATION_FINISH_3 >= 4 -# define BOOST_PP_ITERATION_3 4 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 5 && BOOST_PP_ITERATION_FINISH_3 >= 5 -# define BOOST_PP_ITERATION_3 5 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 6 && BOOST_PP_ITERATION_FINISH_3 >= 6 -# define BOOST_PP_ITERATION_3 6 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 7 && BOOST_PP_ITERATION_FINISH_3 >= 7 -# define BOOST_PP_ITERATION_3 7 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 8 && BOOST_PP_ITERATION_FINISH_3 >= 8 -# define BOOST_PP_ITERATION_3 8 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 9 && BOOST_PP_ITERATION_FINISH_3 >= 9 -# define BOOST_PP_ITERATION_3 9 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 10 && BOOST_PP_ITERATION_FINISH_3 >= 10 -# define BOOST_PP_ITERATION_3 10 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 11 && BOOST_PP_ITERATION_FINISH_3 >= 11 -# define BOOST_PP_ITERATION_3 11 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 12 && BOOST_PP_ITERATION_FINISH_3 >= 12 -# define BOOST_PP_ITERATION_3 12 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 13 && BOOST_PP_ITERATION_FINISH_3 >= 13 -# define BOOST_PP_ITERATION_3 13 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 14 && BOOST_PP_ITERATION_FINISH_3 >= 14 -# define BOOST_PP_ITERATION_3 14 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 15 && BOOST_PP_ITERATION_FINISH_3 >= 15 -# define BOOST_PP_ITERATION_3 15 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 16 && BOOST_PP_ITERATION_FINISH_3 >= 16 -# define BOOST_PP_ITERATION_3 16 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 17 && BOOST_PP_ITERATION_FINISH_3 >= 17 -# define BOOST_PP_ITERATION_3 17 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 18 && BOOST_PP_ITERATION_FINISH_3 >= 18 -# define BOOST_PP_ITERATION_3 18 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 19 && BOOST_PP_ITERATION_FINISH_3 >= 19 -# define BOOST_PP_ITERATION_3 19 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 20 && BOOST_PP_ITERATION_FINISH_3 >= 20 -# define BOOST_PP_ITERATION_3 20 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 21 && BOOST_PP_ITERATION_FINISH_3 >= 21 -# define BOOST_PP_ITERATION_3 21 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 22 && BOOST_PP_ITERATION_FINISH_3 >= 22 -# define BOOST_PP_ITERATION_3 22 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 23 && BOOST_PP_ITERATION_FINISH_3 >= 23 -# define BOOST_PP_ITERATION_3 23 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 24 && BOOST_PP_ITERATION_FINISH_3 >= 24 -# define BOOST_PP_ITERATION_3 24 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 25 && BOOST_PP_ITERATION_FINISH_3 >= 25 -# define BOOST_PP_ITERATION_3 25 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 26 && BOOST_PP_ITERATION_FINISH_3 >= 26 -# define BOOST_PP_ITERATION_3 26 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 27 && BOOST_PP_ITERATION_FINISH_3 >= 27 -# define BOOST_PP_ITERATION_3 27 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 28 && BOOST_PP_ITERATION_FINISH_3 >= 28 -# define BOOST_PP_ITERATION_3 28 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 29 && BOOST_PP_ITERATION_FINISH_3 >= 29 -# define BOOST_PP_ITERATION_3 29 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 30 && BOOST_PP_ITERATION_FINISH_3 >= 30 -# define BOOST_PP_ITERATION_3 30 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 31 && BOOST_PP_ITERATION_FINISH_3 >= 31 -# define BOOST_PP_ITERATION_3 31 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 32 && BOOST_PP_ITERATION_FINISH_3 >= 32 -# define BOOST_PP_ITERATION_3 32 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 33 && BOOST_PP_ITERATION_FINISH_3 >= 33 -# define BOOST_PP_ITERATION_3 33 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 34 && BOOST_PP_ITERATION_FINISH_3 >= 34 -# define BOOST_PP_ITERATION_3 34 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 35 && BOOST_PP_ITERATION_FINISH_3 >= 35 -# define BOOST_PP_ITERATION_3 35 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 36 && BOOST_PP_ITERATION_FINISH_3 >= 36 -# define BOOST_PP_ITERATION_3 36 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 37 && BOOST_PP_ITERATION_FINISH_3 >= 37 -# define BOOST_PP_ITERATION_3 37 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 38 && BOOST_PP_ITERATION_FINISH_3 >= 38 -# define BOOST_PP_ITERATION_3 38 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 39 && BOOST_PP_ITERATION_FINISH_3 >= 39 -# define BOOST_PP_ITERATION_3 39 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 40 && BOOST_PP_ITERATION_FINISH_3 >= 40 -# define BOOST_PP_ITERATION_3 40 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 41 && BOOST_PP_ITERATION_FINISH_3 >= 41 -# define BOOST_PP_ITERATION_3 41 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 42 && BOOST_PP_ITERATION_FINISH_3 >= 42 -# define BOOST_PP_ITERATION_3 42 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 43 && BOOST_PP_ITERATION_FINISH_3 >= 43 -# define BOOST_PP_ITERATION_3 43 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 44 && BOOST_PP_ITERATION_FINISH_3 >= 44 -# define BOOST_PP_ITERATION_3 44 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 45 && BOOST_PP_ITERATION_FINISH_3 >= 45 -# define BOOST_PP_ITERATION_3 45 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 46 && BOOST_PP_ITERATION_FINISH_3 >= 46 -# define BOOST_PP_ITERATION_3 46 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 47 && BOOST_PP_ITERATION_FINISH_3 >= 47 -# define BOOST_PP_ITERATION_3 47 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 48 && BOOST_PP_ITERATION_FINISH_3 >= 48 -# define BOOST_PP_ITERATION_3 48 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 49 && BOOST_PP_ITERATION_FINISH_3 >= 49 -# define BOOST_PP_ITERATION_3 49 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 50 && BOOST_PP_ITERATION_FINISH_3 >= 50 -# define BOOST_PP_ITERATION_3 50 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 51 && BOOST_PP_ITERATION_FINISH_3 >= 51 -# define BOOST_PP_ITERATION_3 51 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 52 && BOOST_PP_ITERATION_FINISH_3 >= 52 -# define BOOST_PP_ITERATION_3 52 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 53 && BOOST_PP_ITERATION_FINISH_3 >= 53 -# define BOOST_PP_ITERATION_3 53 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 54 && BOOST_PP_ITERATION_FINISH_3 >= 54 -# define BOOST_PP_ITERATION_3 54 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 55 && BOOST_PP_ITERATION_FINISH_3 >= 55 -# define BOOST_PP_ITERATION_3 55 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 56 && BOOST_PP_ITERATION_FINISH_3 >= 56 -# define BOOST_PP_ITERATION_3 56 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 57 && BOOST_PP_ITERATION_FINISH_3 >= 57 -# define BOOST_PP_ITERATION_3 57 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 58 && BOOST_PP_ITERATION_FINISH_3 >= 58 -# define BOOST_PP_ITERATION_3 58 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 59 && BOOST_PP_ITERATION_FINISH_3 >= 59 -# define BOOST_PP_ITERATION_3 59 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 60 && BOOST_PP_ITERATION_FINISH_3 >= 60 -# define BOOST_PP_ITERATION_3 60 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 61 && BOOST_PP_ITERATION_FINISH_3 >= 61 -# define BOOST_PP_ITERATION_3 61 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 62 && BOOST_PP_ITERATION_FINISH_3 >= 62 -# define BOOST_PP_ITERATION_3 62 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 63 && BOOST_PP_ITERATION_FINISH_3 >= 63 -# define BOOST_PP_ITERATION_3 63 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 64 && BOOST_PP_ITERATION_FINISH_3 >= 64 -# define BOOST_PP_ITERATION_3 64 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 65 && BOOST_PP_ITERATION_FINISH_3 >= 65 -# define BOOST_PP_ITERATION_3 65 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 66 && BOOST_PP_ITERATION_FINISH_3 >= 66 -# define BOOST_PP_ITERATION_3 66 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 67 && BOOST_PP_ITERATION_FINISH_3 >= 67 -# define BOOST_PP_ITERATION_3 67 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 68 && BOOST_PP_ITERATION_FINISH_3 >= 68 -# define BOOST_PP_ITERATION_3 68 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 69 && BOOST_PP_ITERATION_FINISH_3 >= 69 -# define BOOST_PP_ITERATION_3 69 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 70 && BOOST_PP_ITERATION_FINISH_3 >= 70 -# define BOOST_PP_ITERATION_3 70 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 71 && BOOST_PP_ITERATION_FINISH_3 >= 71 -# define BOOST_PP_ITERATION_3 71 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 72 && BOOST_PP_ITERATION_FINISH_3 >= 72 -# define BOOST_PP_ITERATION_3 72 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 73 && BOOST_PP_ITERATION_FINISH_3 >= 73 -# define BOOST_PP_ITERATION_3 73 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 74 && BOOST_PP_ITERATION_FINISH_3 >= 74 -# define BOOST_PP_ITERATION_3 74 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 75 && BOOST_PP_ITERATION_FINISH_3 >= 75 -# define BOOST_PP_ITERATION_3 75 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 76 && BOOST_PP_ITERATION_FINISH_3 >= 76 -# define BOOST_PP_ITERATION_3 76 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 77 && BOOST_PP_ITERATION_FINISH_3 >= 77 -# define BOOST_PP_ITERATION_3 77 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 78 && BOOST_PP_ITERATION_FINISH_3 >= 78 -# define BOOST_PP_ITERATION_3 78 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 79 && BOOST_PP_ITERATION_FINISH_3 >= 79 -# define BOOST_PP_ITERATION_3 79 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 80 && BOOST_PP_ITERATION_FINISH_3 >= 80 -# define BOOST_PP_ITERATION_3 80 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 81 && BOOST_PP_ITERATION_FINISH_3 >= 81 -# define BOOST_PP_ITERATION_3 81 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 82 && BOOST_PP_ITERATION_FINISH_3 >= 82 -# define BOOST_PP_ITERATION_3 82 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 83 && BOOST_PP_ITERATION_FINISH_3 >= 83 -# define BOOST_PP_ITERATION_3 83 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 84 && BOOST_PP_ITERATION_FINISH_3 >= 84 -# define BOOST_PP_ITERATION_3 84 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 85 && BOOST_PP_ITERATION_FINISH_3 >= 85 -# define BOOST_PP_ITERATION_3 85 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 86 && BOOST_PP_ITERATION_FINISH_3 >= 86 -# define BOOST_PP_ITERATION_3 86 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 87 && BOOST_PP_ITERATION_FINISH_3 >= 87 -# define BOOST_PP_ITERATION_3 87 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 88 && BOOST_PP_ITERATION_FINISH_3 >= 88 -# define BOOST_PP_ITERATION_3 88 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 89 && BOOST_PP_ITERATION_FINISH_3 >= 89 -# define BOOST_PP_ITERATION_3 89 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 90 && BOOST_PP_ITERATION_FINISH_3 >= 90 -# define BOOST_PP_ITERATION_3 90 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 91 && BOOST_PP_ITERATION_FINISH_3 >= 91 -# define BOOST_PP_ITERATION_3 91 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 92 && BOOST_PP_ITERATION_FINISH_3 >= 92 -# define BOOST_PP_ITERATION_3 92 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 93 && BOOST_PP_ITERATION_FINISH_3 >= 93 -# define BOOST_PP_ITERATION_3 93 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 94 && BOOST_PP_ITERATION_FINISH_3 >= 94 -# define BOOST_PP_ITERATION_3 94 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 95 && BOOST_PP_ITERATION_FINISH_3 >= 95 -# define BOOST_PP_ITERATION_3 95 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 96 && BOOST_PP_ITERATION_FINISH_3 >= 96 -# define BOOST_PP_ITERATION_3 96 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 97 && BOOST_PP_ITERATION_FINISH_3 >= 97 -# define BOOST_PP_ITERATION_3 97 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 98 && BOOST_PP_ITERATION_FINISH_3 >= 98 -# define BOOST_PP_ITERATION_3 98 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 99 && BOOST_PP_ITERATION_FINISH_3 >= 99 -# define BOOST_PP_ITERATION_3 99 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 100 && BOOST_PP_ITERATION_FINISH_3 >= 100 -# define BOOST_PP_ITERATION_3 100 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 101 && BOOST_PP_ITERATION_FINISH_3 >= 101 -# define BOOST_PP_ITERATION_3 101 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 102 && BOOST_PP_ITERATION_FINISH_3 >= 102 -# define BOOST_PP_ITERATION_3 102 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 103 && BOOST_PP_ITERATION_FINISH_3 >= 103 -# define BOOST_PP_ITERATION_3 103 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 104 && BOOST_PP_ITERATION_FINISH_3 >= 104 -# define BOOST_PP_ITERATION_3 104 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 105 && BOOST_PP_ITERATION_FINISH_3 >= 105 -# define BOOST_PP_ITERATION_3 105 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 106 && BOOST_PP_ITERATION_FINISH_3 >= 106 -# define BOOST_PP_ITERATION_3 106 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 107 && BOOST_PP_ITERATION_FINISH_3 >= 107 -# define BOOST_PP_ITERATION_3 107 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 108 && BOOST_PP_ITERATION_FINISH_3 >= 108 -# define BOOST_PP_ITERATION_3 108 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 109 && BOOST_PP_ITERATION_FINISH_3 >= 109 -# define BOOST_PP_ITERATION_3 109 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 110 && BOOST_PP_ITERATION_FINISH_3 >= 110 -# define BOOST_PP_ITERATION_3 110 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 111 && BOOST_PP_ITERATION_FINISH_3 >= 111 -# define BOOST_PP_ITERATION_3 111 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 112 && BOOST_PP_ITERATION_FINISH_3 >= 112 -# define BOOST_PP_ITERATION_3 112 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 113 && BOOST_PP_ITERATION_FINISH_3 >= 113 -# define BOOST_PP_ITERATION_3 113 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 114 && BOOST_PP_ITERATION_FINISH_3 >= 114 -# define BOOST_PP_ITERATION_3 114 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 115 && BOOST_PP_ITERATION_FINISH_3 >= 115 -# define BOOST_PP_ITERATION_3 115 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 116 && BOOST_PP_ITERATION_FINISH_3 >= 116 -# define BOOST_PP_ITERATION_3 116 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 117 && BOOST_PP_ITERATION_FINISH_3 >= 117 -# define BOOST_PP_ITERATION_3 117 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 118 && BOOST_PP_ITERATION_FINISH_3 >= 118 -# define BOOST_PP_ITERATION_3 118 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 119 && BOOST_PP_ITERATION_FINISH_3 >= 119 -# define BOOST_PP_ITERATION_3 119 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 120 && BOOST_PP_ITERATION_FINISH_3 >= 120 -# define BOOST_PP_ITERATION_3 120 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 121 && BOOST_PP_ITERATION_FINISH_3 >= 121 -# define BOOST_PP_ITERATION_3 121 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 122 && BOOST_PP_ITERATION_FINISH_3 >= 122 -# define BOOST_PP_ITERATION_3 122 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 123 && BOOST_PP_ITERATION_FINISH_3 >= 123 -# define BOOST_PP_ITERATION_3 123 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 124 && BOOST_PP_ITERATION_FINISH_3 >= 124 -# define BOOST_PP_ITERATION_3 124 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 125 && BOOST_PP_ITERATION_FINISH_3 >= 125 -# define BOOST_PP_ITERATION_3 125 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 126 && BOOST_PP_ITERATION_FINISH_3 >= 126 -# define BOOST_PP_ITERATION_3 126 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 127 && BOOST_PP_ITERATION_FINISH_3 >= 127 -# define BOOST_PP_ITERATION_3 127 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 128 && BOOST_PP_ITERATION_FINISH_3 >= 128 -# define BOOST_PP_ITERATION_3 128 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 129 && BOOST_PP_ITERATION_FINISH_3 >= 129 -# define BOOST_PP_ITERATION_3 129 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 130 && BOOST_PP_ITERATION_FINISH_3 >= 130 -# define BOOST_PP_ITERATION_3 130 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 131 && BOOST_PP_ITERATION_FINISH_3 >= 131 -# define BOOST_PP_ITERATION_3 131 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 132 && BOOST_PP_ITERATION_FINISH_3 >= 132 -# define BOOST_PP_ITERATION_3 132 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 133 && BOOST_PP_ITERATION_FINISH_3 >= 133 -# define BOOST_PP_ITERATION_3 133 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 134 && BOOST_PP_ITERATION_FINISH_3 >= 134 -# define BOOST_PP_ITERATION_3 134 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 135 && BOOST_PP_ITERATION_FINISH_3 >= 135 -# define BOOST_PP_ITERATION_3 135 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 136 && BOOST_PP_ITERATION_FINISH_3 >= 136 -# define BOOST_PP_ITERATION_3 136 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 137 && BOOST_PP_ITERATION_FINISH_3 >= 137 -# define BOOST_PP_ITERATION_3 137 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 138 && BOOST_PP_ITERATION_FINISH_3 >= 138 -# define BOOST_PP_ITERATION_3 138 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 139 && BOOST_PP_ITERATION_FINISH_3 >= 139 -# define BOOST_PP_ITERATION_3 139 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 140 && BOOST_PP_ITERATION_FINISH_3 >= 140 -# define BOOST_PP_ITERATION_3 140 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 141 && BOOST_PP_ITERATION_FINISH_3 >= 141 -# define BOOST_PP_ITERATION_3 141 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 142 && BOOST_PP_ITERATION_FINISH_3 >= 142 -# define BOOST_PP_ITERATION_3 142 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 143 && BOOST_PP_ITERATION_FINISH_3 >= 143 -# define BOOST_PP_ITERATION_3 143 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 144 && BOOST_PP_ITERATION_FINISH_3 >= 144 -# define BOOST_PP_ITERATION_3 144 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 145 && BOOST_PP_ITERATION_FINISH_3 >= 145 -# define BOOST_PP_ITERATION_3 145 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 146 && BOOST_PP_ITERATION_FINISH_3 >= 146 -# define BOOST_PP_ITERATION_3 146 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 147 && BOOST_PP_ITERATION_FINISH_3 >= 147 -# define BOOST_PP_ITERATION_3 147 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 148 && BOOST_PP_ITERATION_FINISH_3 >= 148 -# define BOOST_PP_ITERATION_3 148 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 149 && BOOST_PP_ITERATION_FINISH_3 >= 149 -# define BOOST_PP_ITERATION_3 149 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 150 && BOOST_PP_ITERATION_FINISH_3 >= 150 -# define BOOST_PP_ITERATION_3 150 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 151 && BOOST_PP_ITERATION_FINISH_3 >= 151 -# define BOOST_PP_ITERATION_3 151 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 152 && BOOST_PP_ITERATION_FINISH_3 >= 152 -# define BOOST_PP_ITERATION_3 152 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 153 && BOOST_PP_ITERATION_FINISH_3 >= 153 -# define BOOST_PP_ITERATION_3 153 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 154 && BOOST_PP_ITERATION_FINISH_3 >= 154 -# define BOOST_PP_ITERATION_3 154 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 155 && BOOST_PP_ITERATION_FINISH_3 >= 155 -# define BOOST_PP_ITERATION_3 155 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 156 && BOOST_PP_ITERATION_FINISH_3 >= 156 -# define BOOST_PP_ITERATION_3 156 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 157 && BOOST_PP_ITERATION_FINISH_3 >= 157 -# define BOOST_PP_ITERATION_3 157 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 158 && BOOST_PP_ITERATION_FINISH_3 >= 158 -# define BOOST_PP_ITERATION_3 158 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 159 && BOOST_PP_ITERATION_FINISH_3 >= 159 -# define BOOST_PP_ITERATION_3 159 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 160 && BOOST_PP_ITERATION_FINISH_3 >= 160 -# define BOOST_PP_ITERATION_3 160 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 161 && BOOST_PP_ITERATION_FINISH_3 >= 161 -# define BOOST_PP_ITERATION_3 161 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 162 && BOOST_PP_ITERATION_FINISH_3 >= 162 -# define BOOST_PP_ITERATION_3 162 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 163 && BOOST_PP_ITERATION_FINISH_3 >= 163 -# define BOOST_PP_ITERATION_3 163 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 164 && BOOST_PP_ITERATION_FINISH_3 >= 164 -# define BOOST_PP_ITERATION_3 164 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 165 && BOOST_PP_ITERATION_FINISH_3 >= 165 -# define BOOST_PP_ITERATION_3 165 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 166 && BOOST_PP_ITERATION_FINISH_3 >= 166 -# define BOOST_PP_ITERATION_3 166 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 167 && BOOST_PP_ITERATION_FINISH_3 >= 167 -# define BOOST_PP_ITERATION_3 167 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 168 && BOOST_PP_ITERATION_FINISH_3 >= 168 -# define BOOST_PP_ITERATION_3 168 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 169 && BOOST_PP_ITERATION_FINISH_3 >= 169 -# define BOOST_PP_ITERATION_3 169 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 170 && BOOST_PP_ITERATION_FINISH_3 >= 170 -# define BOOST_PP_ITERATION_3 170 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 171 && BOOST_PP_ITERATION_FINISH_3 >= 171 -# define BOOST_PP_ITERATION_3 171 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 172 && BOOST_PP_ITERATION_FINISH_3 >= 172 -# define BOOST_PP_ITERATION_3 172 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 173 && BOOST_PP_ITERATION_FINISH_3 >= 173 -# define BOOST_PP_ITERATION_3 173 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 174 && BOOST_PP_ITERATION_FINISH_3 >= 174 -# define BOOST_PP_ITERATION_3 174 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 175 && BOOST_PP_ITERATION_FINISH_3 >= 175 -# define BOOST_PP_ITERATION_3 175 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 176 && BOOST_PP_ITERATION_FINISH_3 >= 176 -# define BOOST_PP_ITERATION_3 176 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 177 && BOOST_PP_ITERATION_FINISH_3 >= 177 -# define BOOST_PP_ITERATION_3 177 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 178 && BOOST_PP_ITERATION_FINISH_3 >= 178 -# define BOOST_PP_ITERATION_3 178 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 179 && BOOST_PP_ITERATION_FINISH_3 >= 179 -# define BOOST_PP_ITERATION_3 179 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 180 && BOOST_PP_ITERATION_FINISH_3 >= 180 -# define BOOST_PP_ITERATION_3 180 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 181 && BOOST_PP_ITERATION_FINISH_3 >= 181 -# define BOOST_PP_ITERATION_3 181 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 182 && BOOST_PP_ITERATION_FINISH_3 >= 182 -# define BOOST_PP_ITERATION_3 182 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 183 && BOOST_PP_ITERATION_FINISH_3 >= 183 -# define BOOST_PP_ITERATION_3 183 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 184 && BOOST_PP_ITERATION_FINISH_3 >= 184 -# define BOOST_PP_ITERATION_3 184 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 185 && BOOST_PP_ITERATION_FINISH_3 >= 185 -# define BOOST_PP_ITERATION_3 185 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 186 && BOOST_PP_ITERATION_FINISH_3 >= 186 -# define BOOST_PP_ITERATION_3 186 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 187 && BOOST_PP_ITERATION_FINISH_3 >= 187 -# define BOOST_PP_ITERATION_3 187 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 188 && BOOST_PP_ITERATION_FINISH_3 >= 188 -# define BOOST_PP_ITERATION_3 188 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 189 && BOOST_PP_ITERATION_FINISH_3 >= 189 -# define BOOST_PP_ITERATION_3 189 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 190 && BOOST_PP_ITERATION_FINISH_3 >= 190 -# define BOOST_PP_ITERATION_3 190 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 191 && BOOST_PP_ITERATION_FINISH_3 >= 191 -# define BOOST_PP_ITERATION_3 191 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 192 && BOOST_PP_ITERATION_FINISH_3 >= 192 -# define BOOST_PP_ITERATION_3 192 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 193 && BOOST_PP_ITERATION_FINISH_3 >= 193 -# define BOOST_PP_ITERATION_3 193 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 194 && BOOST_PP_ITERATION_FINISH_3 >= 194 -# define BOOST_PP_ITERATION_3 194 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 195 && BOOST_PP_ITERATION_FINISH_3 >= 195 -# define BOOST_PP_ITERATION_3 195 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 196 && BOOST_PP_ITERATION_FINISH_3 >= 196 -# define BOOST_PP_ITERATION_3 196 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 197 && BOOST_PP_ITERATION_FINISH_3 >= 197 -# define BOOST_PP_ITERATION_3 197 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 198 && BOOST_PP_ITERATION_FINISH_3 >= 198 -# define BOOST_PP_ITERATION_3 198 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 199 && BOOST_PP_ITERATION_FINISH_3 >= 199 -# define BOOST_PP_ITERATION_3 199 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 200 && BOOST_PP_ITERATION_FINISH_3 >= 200 -# define BOOST_PP_ITERATION_3 200 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 201 && BOOST_PP_ITERATION_FINISH_3 >= 201 -# define BOOST_PP_ITERATION_3 201 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 202 && BOOST_PP_ITERATION_FINISH_3 >= 202 -# define BOOST_PP_ITERATION_3 202 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 203 && BOOST_PP_ITERATION_FINISH_3 >= 203 -# define BOOST_PP_ITERATION_3 203 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 204 && BOOST_PP_ITERATION_FINISH_3 >= 204 -# define BOOST_PP_ITERATION_3 204 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 205 && BOOST_PP_ITERATION_FINISH_3 >= 205 -# define BOOST_PP_ITERATION_3 205 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 206 && BOOST_PP_ITERATION_FINISH_3 >= 206 -# define BOOST_PP_ITERATION_3 206 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 207 && BOOST_PP_ITERATION_FINISH_3 >= 207 -# define BOOST_PP_ITERATION_3 207 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 208 && BOOST_PP_ITERATION_FINISH_3 >= 208 -# define BOOST_PP_ITERATION_3 208 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 209 && BOOST_PP_ITERATION_FINISH_3 >= 209 -# define BOOST_PP_ITERATION_3 209 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 210 && BOOST_PP_ITERATION_FINISH_3 >= 210 -# define BOOST_PP_ITERATION_3 210 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 211 && BOOST_PP_ITERATION_FINISH_3 >= 211 -# define BOOST_PP_ITERATION_3 211 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 212 && BOOST_PP_ITERATION_FINISH_3 >= 212 -# define BOOST_PP_ITERATION_3 212 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 213 && BOOST_PP_ITERATION_FINISH_3 >= 213 -# define BOOST_PP_ITERATION_3 213 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 214 && BOOST_PP_ITERATION_FINISH_3 >= 214 -# define BOOST_PP_ITERATION_3 214 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 215 && BOOST_PP_ITERATION_FINISH_3 >= 215 -# define BOOST_PP_ITERATION_3 215 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 216 && BOOST_PP_ITERATION_FINISH_3 >= 216 -# define BOOST_PP_ITERATION_3 216 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 217 && BOOST_PP_ITERATION_FINISH_3 >= 217 -# define BOOST_PP_ITERATION_3 217 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 218 && BOOST_PP_ITERATION_FINISH_3 >= 218 -# define BOOST_PP_ITERATION_3 218 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 219 && BOOST_PP_ITERATION_FINISH_3 >= 219 -# define BOOST_PP_ITERATION_3 219 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 220 && BOOST_PP_ITERATION_FINISH_3 >= 220 -# define BOOST_PP_ITERATION_3 220 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 221 && BOOST_PP_ITERATION_FINISH_3 >= 221 -# define BOOST_PP_ITERATION_3 221 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 222 && BOOST_PP_ITERATION_FINISH_3 >= 222 -# define BOOST_PP_ITERATION_3 222 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 223 && BOOST_PP_ITERATION_FINISH_3 >= 223 -# define BOOST_PP_ITERATION_3 223 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 224 && BOOST_PP_ITERATION_FINISH_3 >= 224 -# define BOOST_PP_ITERATION_3 224 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 225 && BOOST_PP_ITERATION_FINISH_3 >= 225 -# define BOOST_PP_ITERATION_3 225 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 226 && BOOST_PP_ITERATION_FINISH_3 >= 226 -# define BOOST_PP_ITERATION_3 226 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 227 && BOOST_PP_ITERATION_FINISH_3 >= 227 -# define BOOST_PP_ITERATION_3 227 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 228 && BOOST_PP_ITERATION_FINISH_3 >= 228 -# define BOOST_PP_ITERATION_3 228 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 229 && BOOST_PP_ITERATION_FINISH_3 >= 229 -# define BOOST_PP_ITERATION_3 229 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 230 && BOOST_PP_ITERATION_FINISH_3 >= 230 -# define BOOST_PP_ITERATION_3 230 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 231 && BOOST_PP_ITERATION_FINISH_3 >= 231 -# define BOOST_PP_ITERATION_3 231 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 232 && BOOST_PP_ITERATION_FINISH_3 >= 232 -# define BOOST_PP_ITERATION_3 232 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 233 && BOOST_PP_ITERATION_FINISH_3 >= 233 -# define BOOST_PP_ITERATION_3 233 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 234 && BOOST_PP_ITERATION_FINISH_3 >= 234 -# define BOOST_PP_ITERATION_3 234 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 235 && BOOST_PP_ITERATION_FINISH_3 >= 235 -# define BOOST_PP_ITERATION_3 235 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 236 && BOOST_PP_ITERATION_FINISH_3 >= 236 -# define BOOST_PP_ITERATION_3 236 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 237 && BOOST_PP_ITERATION_FINISH_3 >= 237 -# define BOOST_PP_ITERATION_3 237 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 238 && BOOST_PP_ITERATION_FINISH_3 >= 238 -# define BOOST_PP_ITERATION_3 238 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 239 && BOOST_PP_ITERATION_FINISH_3 >= 239 -# define BOOST_PP_ITERATION_3 239 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 240 && BOOST_PP_ITERATION_FINISH_3 >= 240 -# define BOOST_PP_ITERATION_3 240 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 241 && BOOST_PP_ITERATION_FINISH_3 >= 241 -# define BOOST_PP_ITERATION_3 241 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 242 && BOOST_PP_ITERATION_FINISH_3 >= 242 -# define BOOST_PP_ITERATION_3 242 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 243 && BOOST_PP_ITERATION_FINISH_3 >= 243 -# define BOOST_PP_ITERATION_3 243 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 244 && BOOST_PP_ITERATION_FINISH_3 >= 244 -# define BOOST_PP_ITERATION_3 244 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 245 && BOOST_PP_ITERATION_FINISH_3 >= 245 -# define BOOST_PP_ITERATION_3 245 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 246 && BOOST_PP_ITERATION_FINISH_3 >= 246 -# define BOOST_PP_ITERATION_3 246 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 247 && BOOST_PP_ITERATION_FINISH_3 >= 247 -# define BOOST_PP_ITERATION_3 247 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 248 && BOOST_PP_ITERATION_FINISH_3 >= 248 -# define BOOST_PP_ITERATION_3 248 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 249 && BOOST_PP_ITERATION_FINISH_3 >= 249 -# define BOOST_PP_ITERATION_3 249 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 250 && BOOST_PP_ITERATION_FINISH_3 >= 250 -# define BOOST_PP_ITERATION_3 250 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 251 && BOOST_PP_ITERATION_FINISH_3 >= 251 -# define BOOST_PP_ITERATION_3 251 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 252 && BOOST_PP_ITERATION_FINISH_3 >= 252 -# define BOOST_PP_ITERATION_3 252 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 253 && BOOST_PP_ITERATION_FINISH_3 >= 253 -# define BOOST_PP_ITERATION_3 253 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 254 && BOOST_PP_ITERATION_FINISH_3 >= 254 -# define BOOST_PP_ITERATION_3 254 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 255 && BOOST_PP_ITERATION_FINISH_3 >= 255 -# define BOOST_PP_ITERATION_3 255 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_START_3 <= 256 && BOOST_PP_ITERATION_FINISH_3 >= 256 -# define BOOST_PP_ITERATION_3 256 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 2 -# -# undef BOOST_PP_ITERATION_START_3 -# undef BOOST_PP_ITERATION_FINISH_3 -# undef BOOST_PP_FILENAME_3 -# -# undef BOOST_PP_ITERATION_FLAGS_3 -# undef BOOST_PP_ITERATION_PARAMS_3 diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward4.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward4.hpp deleted file mode 100644 index 1b4f58874..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward4.hpp +++ /dev/null @@ -1,1338 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if defined(BOOST_PP_ITERATION_LIMITS) -# if !defined(BOOST_PP_FILENAME_4) -# error BOOST_PP_ERROR: depth #4 filename is not defined -# endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_ITERATION_FLAGS_4() 0 -# undef BOOST_PP_ITERATION_LIMITS -# elif defined(BOOST_PP_ITERATION_PARAMS_4) -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4) -# include -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4) -# include -# define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4) -# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4 -# define BOOST_PP_ITERATION_FLAGS_4() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4) -# else -# define BOOST_PP_ITERATION_FLAGS_4() 0 -# endif -# else -# error BOOST_PP_ERROR: depth #4 iteration boundaries or filename not defined -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 4 -# -# if (BOOST_PP_ITERATION_START_4) > (BOOST_PP_ITERATION_FINISH_4) -# include -# else -# if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0 -# define BOOST_PP_ITERATION_4 0 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1 -# define BOOST_PP_ITERATION_4 1 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 2 && BOOST_PP_ITERATION_FINISH_4 >= 2 -# define BOOST_PP_ITERATION_4 2 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 3 && BOOST_PP_ITERATION_FINISH_4 >= 3 -# define BOOST_PP_ITERATION_4 3 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 4 && BOOST_PP_ITERATION_FINISH_4 >= 4 -# define BOOST_PP_ITERATION_4 4 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 5 && BOOST_PP_ITERATION_FINISH_4 >= 5 -# define BOOST_PP_ITERATION_4 5 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 6 && BOOST_PP_ITERATION_FINISH_4 >= 6 -# define BOOST_PP_ITERATION_4 6 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 7 && BOOST_PP_ITERATION_FINISH_4 >= 7 -# define BOOST_PP_ITERATION_4 7 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 8 && BOOST_PP_ITERATION_FINISH_4 >= 8 -# define BOOST_PP_ITERATION_4 8 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 9 && BOOST_PP_ITERATION_FINISH_4 >= 9 -# define BOOST_PP_ITERATION_4 9 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 10 && BOOST_PP_ITERATION_FINISH_4 >= 10 -# define BOOST_PP_ITERATION_4 10 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 11 && BOOST_PP_ITERATION_FINISH_4 >= 11 -# define BOOST_PP_ITERATION_4 11 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 12 && BOOST_PP_ITERATION_FINISH_4 >= 12 -# define BOOST_PP_ITERATION_4 12 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 13 && BOOST_PP_ITERATION_FINISH_4 >= 13 -# define BOOST_PP_ITERATION_4 13 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 14 && BOOST_PP_ITERATION_FINISH_4 >= 14 -# define BOOST_PP_ITERATION_4 14 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 15 && BOOST_PP_ITERATION_FINISH_4 >= 15 -# define BOOST_PP_ITERATION_4 15 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 16 && BOOST_PP_ITERATION_FINISH_4 >= 16 -# define BOOST_PP_ITERATION_4 16 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 17 && BOOST_PP_ITERATION_FINISH_4 >= 17 -# define BOOST_PP_ITERATION_4 17 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 18 && BOOST_PP_ITERATION_FINISH_4 >= 18 -# define BOOST_PP_ITERATION_4 18 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 19 && BOOST_PP_ITERATION_FINISH_4 >= 19 -# define BOOST_PP_ITERATION_4 19 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 20 && BOOST_PP_ITERATION_FINISH_4 >= 20 -# define BOOST_PP_ITERATION_4 20 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 21 && BOOST_PP_ITERATION_FINISH_4 >= 21 -# define BOOST_PP_ITERATION_4 21 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 22 && BOOST_PP_ITERATION_FINISH_4 >= 22 -# define BOOST_PP_ITERATION_4 22 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 23 && BOOST_PP_ITERATION_FINISH_4 >= 23 -# define BOOST_PP_ITERATION_4 23 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 24 && BOOST_PP_ITERATION_FINISH_4 >= 24 -# define BOOST_PP_ITERATION_4 24 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 25 && BOOST_PP_ITERATION_FINISH_4 >= 25 -# define BOOST_PP_ITERATION_4 25 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 26 && BOOST_PP_ITERATION_FINISH_4 >= 26 -# define BOOST_PP_ITERATION_4 26 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 27 && BOOST_PP_ITERATION_FINISH_4 >= 27 -# define BOOST_PP_ITERATION_4 27 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 28 && BOOST_PP_ITERATION_FINISH_4 >= 28 -# define BOOST_PP_ITERATION_4 28 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 29 && BOOST_PP_ITERATION_FINISH_4 >= 29 -# define BOOST_PP_ITERATION_4 29 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 30 && BOOST_PP_ITERATION_FINISH_4 >= 30 -# define BOOST_PP_ITERATION_4 30 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 31 && BOOST_PP_ITERATION_FINISH_4 >= 31 -# define BOOST_PP_ITERATION_4 31 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 32 && BOOST_PP_ITERATION_FINISH_4 >= 32 -# define BOOST_PP_ITERATION_4 32 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 33 && BOOST_PP_ITERATION_FINISH_4 >= 33 -# define BOOST_PP_ITERATION_4 33 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 34 && BOOST_PP_ITERATION_FINISH_4 >= 34 -# define BOOST_PP_ITERATION_4 34 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 35 && BOOST_PP_ITERATION_FINISH_4 >= 35 -# define BOOST_PP_ITERATION_4 35 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 36 && BOOST_PP_ITERATION_FINISH_4 >= 36 -# define BOOST_PP_ITERATION_4 36 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 37 && BOOST_PP_ITERATION_FINISH_4 >= 37 -# define BOOST_PP_ITERATION_4 37 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 38 && BOOST_PP_ITERATION_FINISH_4 >= 38 -# define BOOST_PP_ITERATION_4 38 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 39 && BOOST_PP_ITERATION_FINISH_4 >= 39 -# define BOOST_PP_ITERATION_4 39 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 40 && BOOST_PP_ITERATION_FINISH_4 >= 40 -# define BOOST_PP_ITERATION_4 40 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 41 && BOOST_PP_ITERATION_FINISH_4 >= 41 -# define BOOST_PP_ITERATION_4 41 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 42 && BOOST_PP_ITERATION_FINISH_4 >= 42 -# define BOOST_PP_ITERATION_4 42 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 43 && BOOST_PP_ITERATION_FINISH_4 >= 43 -# define BOOST_PP_ITERATION_4 43 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 44 && BOOST_PP_ITERATION_FINISH_4 >= 44 -# define BOOST_PP_ITERATION_4 44 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 45 && BOOST_PP_ITERATION_FINISH_4 >= 45 -# define BOOST_PP_ITERATION_4 45 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 46 && BOOST_PP_ITERATION_FINISH_4 >= 46 -# define BOOST_PP_ITERATION_4 46 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 47 && BOOST_PP_ITERATION_FINISH_4 >= 47 -# define BOOST_PP_ITERATION_4 47 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 48 && BOOST_PP_ITERATION_FINISH_4 >= 48 -# define BOOST_PP_ITERATION_4 48 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 49 && BOOST_PP_ITERATION_FINISH_4 >= 49 -# define BOOST_PP_ITERATION_4 49 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 50 && BOOST_PP_ITERATION_FINISH_4 >= 50 -# define BOOST_PP_ITERATION_4 50 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 51 && BOOST_PP_ITERATION_FINISH_4 >= 51 -# define BOOST_PP_ITERATION_4 51 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 52 && BOOST_PP_ITERATION_FINISH_4 >= 52 -# define BOOST_PP_ITERATION_4 52 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 53 && BOOST_PP_ITERATION_FINISH_4 >= 53 -# define BOOST_PP_ITERATION_4 53 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 54 && BOOST_PP_ITERATION_FINISH_4 >= 54 -# define BOOST_PP_ITERATION_4 54 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 55 && BOOST_PP_ITERATION_FINISH_4 >= 55 -# define BOOST_PP_ITERATION_4 55 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 56 && BOOST_PP_ITERATION_FINISH_4 >= 56 -# define BOOST_PP_ITERATION_4 56 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 57 && BOOST_PP_ITERATION_FINISH_4 >= 57 -# define BOOST_PP_ITERATION_4 57 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 58 && BOOST_PP_ITERATION_FINISH_4 >= 58 -# define BOOST_PP_ITERATION_4 58 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 59 && BOOST_PP_ITERATION_FINISH_4 >= 59 -# define BOOST_PP_ITERATION_4 59 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 60 && BOOST_PP_ITERATION_FINISH_4 >= 60 -# define BOOST_PP_ITERATION_4 60 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 61 && BOOST_PP_ITERATION_FINISH_4 >= 61 -# define BOOST_PP_ITERATION_4 61 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 62 && BOOST_PP_ITERATION_FINISH_4 >= 62 -# define BOOST_PP_ITERATION_4 62 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 63 && BOOST_PP_ITERATION_FINISH_4 >= 63 -# define BOOST_PP_ITERATION_4 63 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 64 && BOOST_PP_ITERATION_FINISH_4 >= 64 -# define BOOST_PP_ITERATION_4 64 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 65 && BOOST_PP_ITERATION_FINISH_4 >= 65 -# define BOOST_PP_ITERATION_4 65 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 66 && BOOST_PP_ITERATION_FINISH_4 >= 66 -# define BOOST_PP_ITERATION_4 66 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 67 && BOOST_PP_ITERATION_FINISH_4 >= 67 -# define BOOST_PP_ITERATION_4 67 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 68 && BOOST_PP_ITERATION_FINISH_4 >= 68 -# define BOOST_PP_ITERATION_4 68 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 69 && BOOST_PP_ITERATION_FINISH_4 >= 69 -# define BOOST_PP_ITERATION_4 69 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 70 && BOOST_PP_ITERATION_FINISH_4 >= 70 -# define BOOST_PP_ITERATION_4 70 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 71 && BOOST_PP_ITERATION_FINISH_4 >= 71 -# define BOOST_PP_ITERATION_4 71 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 72 && BOOST_PP_ITERATION_FINISH_4 >= 72 -# define BOOST_PP_ITERATION_4 72 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 73 && BOOST_PP_ITERATION_FINISH_4 >= 73 -# define BOOST_PP_ITERATION_4 73 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 74 && BOOST_PP_ITERATION_FINISH_4 >= 74 -# define BOOST_PP_ITERATION_4 74 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 75 && BOOST_PP_ITERATION_FINISH_4 >= 75 -# define BOOST_PP_ITERATION_4 75 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 76 && BOOST_PP_ITERATION_FINISH_4 >= 76 -# define BOOST_PP_ITERATION_4 76 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 77 && BOOST_PP_ITERATION_FINISH_4 >= 77 -# define BOOST_PP_ITERATION_4 77 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 78 && BOOST_PP_ITERATION_FINISH_4 >= 78 -# define BOOST_PP_ITERATION_4 78 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 79 && BOOST_PP_ITERATION_FINISH_4 >= 79 -# define BOOST_PP_ITERATION_4 79 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 80 && BOOST_PP_ITERATION_FINISH_4 >= 80 -# define BOOST_PP_ITERATION_4 80 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 81 && BOOST_PP_ITERATION_FINISH_4 >= 81 -# define BOOST_PP_ITERATION_4 81 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 82 && BOOST_PP_ITERATION_FINISH_4 >= 82 -# define BOOST_PP_ITERATION_4 82 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 83 && BOOST_PP_ITERATION_FINISH_4 >= 83 -# define BOOST_PP_ITERATION_4 83 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 84 && BOOST_PP_ITERATION_FINISH_4 >= 84 -# define BOOST_PP_ITERATION_4 84 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 85 && BOOST_PP_ITERATION_FINISH_4 >= 85 -# define BOOST_PP_ITERATION_4 85 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 86 && BOOST_PP_ITERATION_FINISH_4 >= 86 -# define BOOST_PP_ITERATION_4 86 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 87 && BOOST_PP_ITERATION_FINISH_4 >= 87 -# define BOOST_PP_ITERATION_4 87 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 88 && BOOST_PP_ITERATION_FINISH_4 >= 88 -# define BOOST_PP_ITERATION_4 88 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 89 && BOOST_PP_ITERATION_FINISH_4 >= 89 -# define BOOST_PP_ITERATION_4 89 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 90 && BOOST_PP_ITERATION_FINISH_4 >= 90 -# define BOOST_PP_ITERATION_4 90 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 91 && BOOST_PP_ITERATION_FINISH_4 >= 91 -# define BOOST_PP_ITERATION_4 91 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 92 && BOOST_PP_ITERATION_FINISH_4 >= 92 -# define BOOST_PP_ITERATION_4 92 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 93 && BOOST_PP_ITERATION_FINISH_4 >= 93 -# define BOOST_PP_ITERATION_4 93 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 94 && BOOST_PP_ITERATION_FINISH_4 >= 94 -# define BOOST_PP_ITERATION_4 94 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 95 && BOOST_PP_ITERATION_FINISH_4 >= 95 -# define BOOST_PP_ITERATION_4 95 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 96 && BOOST_PP_ITERATION_FINISH_4 >= 96 -# define BOOST_PP_ITERATION_4 96 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 97 && BOOST_PP_ITERATION_FINISH_4 >= 97 -# define BOOST_PP_ITERATION_4 97 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 98 && BOOST_PP_ITERATION_FINISH_4 >= 98 -# define BOOST_PP_ITERATION_4 98 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 99 && BOOST_PP_ITERATION_FINISH_4 >= 99 -# define BOOST_PP_ITERATION_4 99 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 100 && BOOST_PP_ITERATION_FINISH_4 >= 100 -# define BOOST_PP_ITERATION_4 100 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 101 && BOOST_PP_ITERATION_FINISH_4 >= 101 -# define BOOST_PP_ITERATION_4 101 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 102 && BOOST_PP_ITERATION_FINISH_4 >= 102 -# define BOOST_PP_ITERATION_4 102 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 103 && BOOST_PP_ITERATION_FINISH_4 >= 103 -# define BOOST_PP_ITERATION_4 103 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 104 && BOOST_PP_ITERATION_FINISH_4 >= 104 -# define BOOST_PP_ITERATION_4 104 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 105 && BOOST_PP_ITERATION_FINISH_4 >= 105 -# define BOOST_PP_ITERATION_4 105 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 106 && BOOST_PP_ITERATION_FINISH_4 >= 106 -# define BOOST_PP_ITERATION_4 106 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 107 && BOOST_PP_ITERATION_FINISH_4 >= 107 -# define BOOST_PP_ITERATION_4 107 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 108 && BOOST_PP_ITERATION_FINISH_4 >= 108 -# define BOOST_PP_ITERATION_4 108 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 109 && BOOST_PP_ITERATION_FINISH_4 >= 109 -# define BOOST_PP_ITERATION_4 109 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 110 && BOOST_PP_ITERATION_FINISH_4 >= 110 -# define BOOST_PP_ITERATION_4 110 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 111 && BOOST_PP_ITERATION_FINISH_4 >= 111 -# define BOOST_PP_ITERATION_4 111 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 112 && BOOST_PP_ITERATION_FINISH_4 >= 112 -# define BOOST_PP_ITERATION_4 112 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 113 && BOOST_PP_ITERATION_FINISH_4 >= 113 -# define BOOST_PP_ITERATION_4 113 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 114 && BOOST_PP_ITERATION_FINISH_4 >= 114 -# define BOOST_PP_ITERATION_4 114 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 115 && BOOST_PP_ITERATION_FINISH_4 >= 115 -# define BOOST_PP_ITERATION_4 115 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 116 && BOOST_PP_ITERATION_FINISH_4 >= 116 -# define BOOST_PP_ITERATION_4 116 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 117 && BOOST_PP_ITERATION_FINISH_4 >= 117 -# define BOOST_PP_ITERATION_4 117 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 118 && BOOST_PP_ITERATION_FINISH_4 >= 118 -# define BOOST_PP_ITERATION_4 118 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 119 && BOOST_PP_ITERATION_FINISH_4 >= 119 -# define BOOST_PP_ITERATION_4 119 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 120 && BOOST_PP_ITERATION_FINISH_4 >= 120 -# define BOOST_PP_ITERATION_4 120 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 121 && BOOST_PP_ITERATION_FINISH_4 >= 121 -# define BOOST_PP_ITERATION_4 121 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 122 && BOOST_PP_ITERATION_FINISH_4 >= 122 -# define BOOST_PP_ITERATION_4 122 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 123 && BOOST_PP_ITERATION_FINISH_4 >= 123 -# define BOOST_PP_ITERATION_4 123 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 124 && BOOST_PP_ITERATION_FINISH_4 >= 124 -# define BOOST_PP_ITERATION_4 124 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 125 && BOOST_PP_ITERATION_FINISH_4 >= 125 -# define BOOST_PP_ITERATION_4 125 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 126 && BOOST_PP_ITERATION_FINISH_4 >= 126 -# define BOOST_PP_ITERATION_4 126 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 127 && BOOST_PP_ITERATION_FINISH_4 >= 127 -# define BOOST_PP_ITERATION_4 127 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 128 && BOOST_PP_ITERATION_FINISH_4 >= 128 -# define BOOST_PP_ITERATION_4 128 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 129 && BOOST_PP_ITERATION_FINISH_4 >= 129 -# define BOOST_PP_ITERATION_4 129 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 130 && BOOST_PP_ITERATION_FINISH_4 >= 130 -# define BOOST_PP_ITERATION_4 130 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 131 && BOOST_PP_ITERATION_FINISH_4 >= 131 -# define BOOST_PP_ITERATION_4 131 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 132 && BOOST_PP_ITERATION_FINISH_4 >= 132 -# define BOOST_PP_ITERATION_4 132 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 133 && BOOST_PP_ITERATION_FINISH_4 >= 133 -# define BOOST_PP_ITERATION_4 133 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 134 && BOOST_PP_ITERATION_FINISH_4 >= 134 -# define BOOST_PP_ITERATION_4 134 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 135 && BOOST_PP_ITERATION_FINISH_4 >= 135 -# define BOOST_PP_ITERATION_4 135 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 136 && BOOST_PP_ITERATION_FINISH_4 >= 136 -# define BOOST_PP_ITERATION_4 136 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 137 && BOOST_PP_ITERATION_FINISH_4 >= 137 -# define BOOST_PP_ITERATION_4 137 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 138 && BOOST_PP_ITERATION_FINISH_4 >= 138 -# define BOOST_PP_ITERATION_4 138 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 139 && BOOST_PP_ITERATION_FINISH_4 >= 139 -# define BOOST_PP_ITERATION_4 139 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 140 && BOOST_PP_ITERATION_FINISH_4 >= 140 -# define BOOST_PP_ITERATION_4 140 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 141 && BOOST_PP_ITERATION_FINISH_4 >= 141 -# define BOOST_PP_ITERATION_4 141 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 142 && BOOST_PP_ITERATION_FINISH_4 >= 142 -# define BOOST_PP_ITERATION_4 142 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 143 && BOOST_PP_ITERATION_FINISH_4 >= 143 -# define BOOST_PP_ITERATION_4 143 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 144 && BOOST_PP_ITERATION_FINISH_4 >= 144 -# define BOOST_PP_ITERATION_4 144 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 145 && BOOST_PP_ITERATION_FINISH_4 >= 145 -# define BOOST_PP_ITERATION_4 145 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 146 && BOOST_PP_ITERATION_FINISH_4 >= 146 -# define BOOST_PP_ITERATION_4 146 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 147 && BOOST_PP_ITERATION_FINISH_4 >= 147 -# define BOOST_PP_ITERATION_4 147 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 148 && BOOST_PP_ITERATION_FINISH_4 >= 148 -# define BOOST_PP_ITERATION_4 148 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 149 && BOOST_PP_ITERATION_FINISH_4 >= 149 -# define BOOST_PP_ITERATION_4 149 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 150 && BOOST_PP_ITERATION_FINISH_4 >= 150 -# define BOOST_PP_ITERATION_4 150 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 151 && BOOST_PP_ITERATION_FINISH_4 >= 151 -# define BOOST_PP_ITERATION_4 151 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 152 && BOOST_PP_ITERATION_FINISH_4 >= 152 -# define BOOST_PP_ITERATION_4 152 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 153 && BOOST_PP_ITERATION_FINISH_4 >= 153 -# define BOOST_PP_ITERATION_4 153 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 154 && BOOST_PP_ITERATION_FINISH_4 >= 154 -# define BOOST_PP_ITERATION_4 154 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 155 && BOOST_PP_ITERATION_FINISH_4 >= 155 -# define BOOST_PP_ITERATION_4 155 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 156 && BOOST_PP_ITERATION_FINISH_4 >= 156 -# define BOOST_PP_ITERATION_4 156 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 157 && BOOST_PP_ITERATION_FINISH_4 >= 157 -# define BOOST_PP_ITERATION_4 157 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 158 && BOOST_PP_ITERATION_FINISH_4 >= 158 -# define BOOST_PP_ITERATION_4 158 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 159 && BOOST_PP_ITERATION_FINISH_4 >= 159 -# define BOOST_PP_ITERATION_4 159 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 160 && BOOST_PP_ITERATION_FINISH_4 >= 160 -# define BOOST_PP_ITERATION_4 160 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 161 && BOOST_PP_ITERATION_FINISH_4 >= 161 -# define BOOST_PP_ITERATION_4 161 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 162 && BOOST_PP_ITERATION_FINISH_4 >= 162 -# define BOOST_PP_ITERATION_4 162 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 163 && BOOST_PP_ITERATION_FINISH_4 >= 163 -# define BOOST_PP_ITERATION_4 163 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 164 && BOOST_PP_ITERATION_FINISH_4 >= 164 -# define BOOST_PP_ITERATION_4 164 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 165 && BOOST_PP_ITERATION_FINISH_4 >= 165 -# define BOOST_PP_ITERATION_4 165 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 166 && BOOST_PP_ITERATION_FINISH_4 >= 166 -# define BOOST_PP_ITERATION_4 166 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 167 && BOOST_PP_ITERATION_FINISH_4 >= 167 -# define BOOST_PP_ITERATION_4 167 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 168 && BOOST_PP_ITERATION_FINISH_4 >= 168 -# define BOOST_PP_ITERATION_4 168 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 169 && BOOST_PP_ITERATION_FINISH_4 >= 169 -# define BOOST_PP_ITERATION_4 169 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 170 && BOOST_PP_ITERATION_FINISH_4 >= 170 -# define BOOST_PP_ITERATION_4 170 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 171 && BOOST_PP_ITERATION_FINISH_4 >= 171 -# define BOOST_PP_ITERATION_4 171 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 172 && BOOST_PP_ITERATION_FINISH_4 >= 172 -# define BOOST_PP_ITERATION_4 172 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 173 && BOOST_PP_ITERATION_FINISH_4 >= 173 -# define BOOST_PP_ITERATION_4 173 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 174 && BOOST_PP_ITERATION_FINISH_4 >= 174 -# define BOOST_PP_ITERATION_4 174 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 175 && BOOST_PP_ITERATION_FINISH_4 >= 175 -# define BOOST_PP_ITERATION_4 175 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 176 && BOOST_PP_ITERATION_FINISH_4 >= 176 -# define BOOST_PP_ITERATION_4 176 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 177 && BOOST_PP_ITERATION_FINISH_4 >= 177 -# define BOOST_PP_ITERATION_4 177 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 178 && BOOST_PP_ITERATION_FINISH_4 >= 178 -# define BOOST_PP_ITERATION_4 178 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 179 && BOOST_PP_ITERATION_FINISH_4 >= 179 -# define BOOST_PP_ITERATION_4 179 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 180 && BOOST_PP_ITERATION_FINISH_4 >= 180 -# define BOOST_PP_ITERATION_4 180 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 181 && BOOST_PP_ITERATION_FINISH_4 >= 181 -# define BOOST_PP_ITERATION_4 181 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 182 && BOOST_PP_ITERATION_FINISH_4 >= 182 -# define BOOST_PP_ITERATION_4 182 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 183 && BOOST_PP_ITERATION_FINISH_4 >= 183 -# define BOOST_PP_ITERATION_4 183 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 184 && BOOST_PP_ITERATION_FINISH_4 >= 184 -# define BOOST_PP_ITERATION_4 184 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 185 && BOOST_PP_ITERATION_FINISH_4 >= 185 -# define BOOST_PP_ITERATION_4 185 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 186 && BOOST_PP_ITERATION_FINISH_4 >= 186 -# define BOOST_PP_ITERATION_4 186 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 187 && BOOST_PP_ITERATION_FINISH_4 >= 187 -# define BOOST_PP_ITERATION_4 187 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 188 && BOOST_PP_ITERATION_FINISH_4 >= 188 -# define BOOST_PP_ITERATION_4 188 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 189 && BOOST_PP_ITERATION_FINISH_4 >= 189 -# define BOOST_PP_ITERATION_4 189 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 190 && BOOST_PP_ITERATION_FINISH_4 >= 190 -# define BOOST_PP_ITERATION_4 190 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 191 && BOOST_PP_ITERATION_FINISH_4 >= 191 -# define BOOST_PP_ITERATION_4 191 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 192 && BOOST_PP_ITERATION_FINISH_4 >= 192 -# define BOOST_PP_ITERATION_4 192 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 193 && BOOST_PP_ITERATION_FINISH_4 >= 193 -# define BOOST_PP_ITERATION_4 193 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 194 && BOOST_PP_ITERATION_FINISH_4 >= 194 -# define BOOST_PP_ITERATION_4 194 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 195 && BOOST_PP_ITERATION_FINISH_4 >= 195 -# define BOOST_PP_ITERATION_4 195 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 196 && BOOST_PP_ITERATION_FINISH_4 >= 196 -# define BOOST_PP_ITERATION_4 196 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 197 && BOOST_PP_ITERATION_FINISH_4 >= 197 -# define BOOST_PP_ITERATION_4 197 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 198 && BOOST_PP_ITERATION_FINISH_4 >= 198 -# define BOOST_PP_ITERATION_4 198 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 199 && BOOST_PP_ITERATION_FINISH_4 >= 199 -# define BOOST_PP_ITERATION_4 199 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 200 && BOOST_PP_ITERATION_FINISH_4 >= 200 -# define BOOST_PP_ITERATION_4 200 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 201 && BOOST_PP_ITERATION_FINISH_4 >= 201 -# define BOOST_PP_ITERATION_4 201 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 202 && BOOST_PP_ITERATION_FINISH_4 >= 202 -# define BOOST_PP_ITERATION_4 202 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 203 && BOOST_PP_ITERATION_FINISH_4 >= 203 -# define BOOST_PP_ITERATION_4 203 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 204 && BOOST_PP_ITERATION_FINISH_4 >= 204 -# define BOOST_PP_ITERATION_4 204 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 205 && BOOST_PP_ITERATION_FINISH_4 >= 205 -# define BOOST_PP_ITERATION_4 205 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 206 && BOOST_PP_ITERATION_FINISH_4 >= 206 -# define BOOST_PP_ITERATION_4 206 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 207 && BOOST_PP_ITERATION_FINISH_4 >= 207 -# define BOOST_PP_ITERATION_4 207 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 208 && BOOST_PP_ITERATION_FINISH_4 >= 208 -# define BOOST_PP_ITERATION_4 208 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 209 && BOOST_PP_ITERATION_FINISH_4 >= 209 -# define BOOST_PP_ITERATION_4 209 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 210 && BOOST_PP_ITERATION_FINISH_4 >= 210 -# define BOOST_PP_ITERATION_4 210 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 211 && BOOST_PP_ITERATION_FINISH_4 >= 211 -# define BOOST_PP_ITERATION_4 211 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 212 && BOOST_PP_ITERATION_FINISH_4 >= 212 -# define BOOST_PP_ITERATION_4 212 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 213 && BOOST_PP_ITERATION_FINISH_4 >= 213 -# define BOOST_PP_ITERATION_4 213 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 214 && BOOST_PP_ITERATION_FINISH_4 >= 214 -# define BOOST_PP_ITERATION_4 214 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 215 && BOOST_PP_ITERATION_FINISH_4 >= 215 -# define BOOST_PP_ITERATION_4 215 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 216 && BOOST_PP_ITERATION_FINISH_4 >= 216 -# define BOOST_PP_ITERATION_4 216 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 217 && BOOST_PP_ITERATION_FINISH_4 >= 217 -# define BOOST_PP_ITERATION_4 217 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 218 && BOOST_PP_ITERATION_FINISH_4 >= 218 -# define BOOST_PP_ITERATION_4 218 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 219 && BOOST_PP_ITERATION_FINISH_4 >= 219 -# define BOOST_PP_ITERATION_4 219 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 220 && BOOST_PP_ITERATION_FINISH_4 >= 220 -# define BOOST_PP_ITERATION_4 220 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 221 && BOOST_PP_ITERATION_FINISH_4 >= 221 -# define BOOST_PP_ITERATION_4 221 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 222 && BOOST_PP_ITERATION_FINISH_4 >= 222 -# define BOOST_PP_ITERATION_4 222 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 223 && BOOST_PP_ITERATION_FINISH_4 >= 223 -# define BOOST_PP_ITERATION_4 223 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 224 && BOOST_PP_ITERATION_FINISH_4 >= 224 -# define BOOST_PP_ITERATION_4 224 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 225 && BOOST_PP_ITERATION_FINISH_4 >= 225 -# define BOOST_PP_ITERATION_4 225 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 226 && BOOST_PP_ITERATION_FINISH_4 >= 226 -# define BOOST_PP_ITERATION_4 226 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 227 && BOOST_PP_ITERATION_FINISH_4 >= 227 -# define BOOST_PP_ITERATION_4 227 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 228 && BOOST_PP_ITERATION_FINISH_4 >= 228 -# define BOOST_PP_ITERATION_4 228 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 229 && BOOST_PP_ITERATION_FINISH_4 >= 229 -# define BOOST_PP_ITERATION_4 229 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 230 && BOOST_PP_ITERATION_FINISH_4 >= 230 -# define BOOST_PP_ITERATION_4 230 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 231 && BOOST_PP_ITERATION_FINISH_4 >= 231 -# define BOOST_PP_ITERATION_4 231 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 232 && BOOST_PP_ITERATION_FINISH_4 >= 232 -# define BOOST_PP_ITERATION_4 232 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 233 && BOOST_PP_ITERATION_FINISH_4 >= 233 -# define BOOST_PP_ITERATION_4 233 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 234 && BOOST_PP_ITERATION_FINISH_4 >= 234 -# define BOOST_PP_ITERATION_4 234 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 235 && BOOST_PP_ITERATION_FINISH_4 >= 235 -# define BOOST_PP_ITERATION_4 235 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 236 && BOOST_PP_ITERATION_FINISH_4 >= 236 -# define BOOST_PP_ITERATION_4 236 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 237 && BOOST_PP_ITERATION_FINISH_4 >= 237 -# define BOOST_PP_ITERATION_4 237 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 238 && BOOST_PP_ITERATION_FINISH_4 >= 238 -# define BOOST_PP_ITERATION_4 238 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 239 && BOOST_PP_ITERATION_FINISH_4 >= 239 -# define BOOST_PP_ITERATION_4 239 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 240 && BOOST_PP_ITERATION_FINISH_4 >= 240 -# define BOOST_PP_ITERATION_4 240 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 241 && BOOST_PP_ITERATION_FINISH_4 >= 241 -# define BOOST_PP_ITERATION_4 241 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 242 && BOOST_PP_ITERATION_FINISH_4 >= 242 -# define BOOST_PP_ITERATION_4 242 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 243 && BOOST_PP_ITERATION_FINISH_4 >= 243 -# define BOOST_PP_ITERATION_4 243 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 244 && BOOST_PP_ITERATION_FINISH_4 >= 244 -# define BOOST_PP_ITERATION_4 244 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 245 && BOOST_PP_ITERATION_FINISH_4 >= 245 -# define BOOST_PP_ITERATION_4 245 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 246 && BOOST_PP_ITERATION_FINISH_4 >= 246 -# define BOOST_PP_ITERATION_4 246 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 247 && BOOST_PP_ITERATION_FINISH_4 >= 247 -# define BOOST_PP_ITERATION_4 247 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 248 && BOOST_PP_ITERATION_FINISH_4 >= 248 -# define BOOST_PP_ITERATION_4 248 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 249 && BOOST_PP_ITERATION_FINISH_4 >= 249 -# define BOOST_PP_ITERATION_4 249 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 250 && BOOST_PP_ITERATION_FINISH_4 >= 250 -# define BOOST_PP_ITERATION_4 250 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 251 && BOOST_PP_ITERATION_FINISH_4 >= 251 -# define BOOST_PP_ITERATION_4 251 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 252 && BOOST_PP_ITERATION_FINISH_4 >= 252 -# define BOOST_PP_ITERATION_4 252 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 253 && BOOST_PP_ITERATION_FINISH_4 >= 253 -# define BOOST_PP_ITERATION_4 253 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 254 && BOOST_PP_ITERATION_FINISH_4 >= 254 -# define BOOST_PP_ITERATION_4 254 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 255 && BOOST_PP_ITERATION_FINISH_4 >= 255 -# define BOOST_PP_ITERATION_4 255 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_START_4 <= 256 && BOOST_PP_ITERATION_FINISH_4 >= 256 -# define BOOST_PP_ITERATION_4 256 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 3 -# -# undef BOOST_PP_ITERATION_START_4 -# undef BOOST_PP_ITERATION_FINISH_4 -# undef BOOST_PP_FILENAME_4 -# -# undef BOOST_PP_ITERATION_FLAGS_4 -# undef BOOST_PP_ITERATION_PARAMS_4 diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward5.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward5.hpp deleted file mode 100644 index 7617607c6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/forward5.hpp +++ /dev/null @@ -1,1338 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if defined(BOOST_PP_ITERATION_LIMITS) -# if !defined(BOOST_PP_FILENAME_5) -# error BOOST_PP_ERROR: depth #5 filename is not defined -# endif -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS) -# include -# define BOOST_PP_ITERATION_FLAGS_5() 0 -# undef BOOST_PP_ITERATION_LIMITS -# elif defined(BOOST_PP_ITERATION_PARAMS_5) -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5) -# include -# define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5) -# include -# define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5) -# if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4 -# define BOOST_PP_ITERATION_FLAGS_5() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5) -# else -# define BOOST_PP_ITERATION_FLAGS_5() 0 -# endif -# else -# error BOOST_PP_ERROR: depth #5 iteration boundaries or filename not defined -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 5 -# -# if (BOOST_PP_ITERATION_START_5) > (BOOST_PP_ITERATION_FINISH_5) -# include -# else -# if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_FINISH_5 >= 0 -# define BOOST_PP_ITERATION_5 0 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_FINISH_5 >= 1 -# define BOOST_PP_ITERATION_5 1 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 2 && BOOST_PP_ITERATION_FINISH_5 >= 2 -# define BOOST_PP_ITERATION_5 2 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 3 && BOOST_PP_ITERATION_FINISH_5 >= 3 -# define BOOST_PP_ITERATION_5 3 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 4 && BOOST_PP_ITERATION_FINISH_5 >= 4 -# define BOOST_PP_ITERATION_5 4 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 5 && BOOST_PP_ITERATION_FINISH_5 >= 5 -# define BOOST_PP_ITERATION_5 5 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 6 && BOOST_PP_ITERATION_FINISH_5 >= 6 -# define BOOST_PP_ITERATION_5 6 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 7 && BOOST_PP_ITERATION_FINISH_5 >= 7 -# define BOOST_PP_ITERATION_5 7 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 8 && BOOST_PP_ITERATION_FINISH_5 >= 8 -# define BOOST_PP_ITERATION_5 8 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 9 && BOOST_PP_ITERATION_FINISH_5 >= 9 -# define BOOST_PP_ITERATION_5 9 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 10 && BOOST_PP_ITERATION_FINISH_5 >= 10 -# define BOOST_PP_ITERATION_5 10 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 11 && BOOST_PP_ITERATION_FINISH_5 >= 11 -# define BOOST_PP_ITERATION_5 11 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 12 && BOOST_PP_ITERATION_FINISH_5 >= 12 -# define BOOST_PP_ITERATION_5 12 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 13 && BOOST_PP_ITERATION_FINISH_5 >= 13 -# define BOOST_PP_ITERATION_5 13 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 14 && BOOST_PP_ITERATION_FINISH_5 >= 14 -# define BOOST_PP_ITERATION_5 14 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 15 && BOOST_PP_ITERATION_FINISH_5 >= 15 -# define BOOST_PP_ITERATION_5 15 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 16 && BOOST_PP_ITERATION_FINISH_5 >= 16 -# define BOOST_PP_ITERATION_5 16 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 17 && BOOST_PP_ITERATION_FINISH_5 >= 17 -# define BOOST_PP_ITERATION_5 17 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 18 && BOOST_PP_ITERATION_FINISH_5 >= 18 -# define BOOST_PP_ITERATION_5 18 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 19 && BOOST_PP_ITERATION_FINISH_5 >= 19 -# define BOOST_PP_ITERATION_5 19 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 20 && BOOST_PP_ITERATION_FINISH_5 >= 20 -# define BOOST_PP_ITERATION_5 20 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 21 && BOOST_PP_ITERATION_FINISH_5 >= 21 -# define BOOST_PP_ITERATION_5 21 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 22 && BOOST_PP_ITERATION_FINISH_5 >= 22 -# define BOOST_PP_ITERATION_5 22 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 23 && BOOST_PP_ITERATION_FINISH_5 >= 23 -# define BOOST_PP_ITERATION_5 23 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 24 && BOOST_PP_ITERATION_FINISH_5 >= 24 -# define BOOST_PP_ITERATION_5 24 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 25 && BOOST_PP_ITERATION_FINISH_5 >= 25 -# define BOOST_PP_ITERATION_5 25 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 26 && BOOST_PP_ITERATION_FINISH_5 >= 26 -# define BOOST_PP_ITERATION_5 26 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 27 && BOOST_PP_ITERATION_FINISH_5 >= 27 -# define BOOST_PP_ITERATION_5 27 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 28 && BOOST_PP_ITERATION_FINISH_5 >= 28 -# define BOOST_PP_ITERATION_5 28 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 29 && BOOST_PP_ITERATION_FINISH_5 >= 29 -# define BOOST_PP_ITERATION_5 29 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 30 && BOOST_PP_ITERATION_FINISH_5 >= 30 -# define BOOST_PP_ITERATION_5 30 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 31 && BOOST_PP_ITERATION_FINISH_5 >= 31 -# define BOOST_PP_ITERATION_5 31 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 32 && BOOST_PP_ITERATION_FINISH_5 >= 32 -# define BOOST_PP_ITERATION_5 32 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 33 && BOOST_PP_ITERATION_FINISH_5 >= 33 -# define BOOST_PP_ITERATION_5 33 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 34 && BOOST_PP_ITERATION_FINISH_5 >= 34 -# define BOOST_PP_ITERATION_5 34 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 35 && BOOST_PP_ITERATION_FINISH_5 >= 35 -# define BOOST_PP_ITERATION_5 35 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 36 && BOOST_PP_ITERATION_FINISH_5 >= 36 -# define BOOST_PP_ITERATION_5 36 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 37 && BOOST_PP_ITERATION_FINISH_5 >= 37 -# define BOOST_PP_ITERATION_5 37 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 38 && BOOST_PP_ITERATION_FINISH_5 >= 38 -# define BOOST_PP_ITERATION_5 38 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 39 && BOOST_PP_ITERATION_FINISH_5 >= 39 -# define BOOST_PP_ITERATION_5 39 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 40 && BOOST_PP_ITERATION_FINISH_5 >= 40 -# define BOOST_PP_ITERATION_5 40 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 41 && BOOST_PP_ITERATION_FINISH_5 >= 41 -# define BOOST_PP_ITERATION_5 41 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 42 && BOOST_PP_ITERATION_FINISH_5 >= 42 -# define BOOST_PP_ITERATION_5 42 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 43 && BOOST_PP_ITERATION_FINISH_5 >= 43 -# define BOOST_PP_ITERATION_5 43 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 44 && BOOST_PP_ITERATION_FINISH_5 >= 44 -# define BOOST_PP_ITERATION_5 44 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 45 && BOOST_PP_ITERATION_FINISH_5 >= 45 -# define BOOST_PP_ITERATION_5 45 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 46 && BOOST_PP_ITERATION_FINISH_5 >= 46 -# define BOOST_PP_ITERATION_5 46 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 47 && BOOST_PP_ITERATION_FINISH_5 >= 47 -# define BOOST_PP_ITERATION_5 47 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 48 && BOOST_PP_ITERATION_FINISH_5 >= 48 -# define BOOST_PP_ITERATION_5 48 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 49 && BOOST_PP_ITERATION_FINISH_5 >= 49 -# define BOOST_PP_ITERATION_5 49 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 50 && BOOST_PP_ITERATION_FINISH_5 >= 50 -# define BOOST_PP_ITERATION_5 50 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 51 && BOOST_PP_ITERATION_FINISH_5 >= 51 -# define BOOST_PP_ITERATION_5 51 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 52 && BOOST_PP_ITERATION_FINISH_5 >= 52 -# define BOOST_PP_ITERATION_5 52 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 53 && BOOST_PP_ITERATION_FINISH_5 >= 53 -# define BOOST_PP_ITERATION_5 53 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 54 && BOOST_PP_ITERATION_FINISH_5 >= 54 -# define BOOST_PP_ITERATION_5 54 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 55 && BOOST_PP_ITERATION_FINISH_5 >= 55 -# define BOOST_PP_ITERATION_5 55 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 56 && BOOST_PP_ITERATION_FINISH_5 >= 56 -# define BOOST_PP_ITERATION_5 56 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 57 && BOOST_PP_ITERATION_FINISH_5 >= 57 -# define BOOST_PP_ITERATION_5 57 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 58 && BOOST_PP_ITERATION_FINISH_5 >= 58 -# define BOOST_PP_ITERATION_5 58 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 59 && BOOST_PP_ITERATION_FINISH_5 >= 59 -# define BOOST_PP_ITERATION_5 59 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 60 && BOOST_PP_ITERATION_FINISH_5 >= 60 -# define BOOST_PP_ITERATION_5 60 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 61 && BOOST_PP_ITERATION_FINISH_5 >= 61 -# define BOOST_PP_ITERATION_5 61 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 62 && BOOST_PP_ITERATION_FINISH_5 >= 62 -# define BOOST_PP_ITERATION_5 62 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 63 && BOOST_PP_ITERATION_FINISH_5 >= 63 -# define BOOST_PP_ITERATION_5 63 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 64 && BOOST_PP_ITERATION_FINISH_5 >= 64 -# define BOOST_PP_ITERATION_5 64 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 65 && BOOST_PP_ITERATION_FINISH_5 >= 65 -# define BOOST_PP_ITERATION_5 65 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 66 && BOOST_PP_ITERATION_FINISH_5 >= 66 -# define BOOST_PP_ITERATION_5 66 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 67 && BOOST_PP_ITERATION_FINISH_5 >= 67 -# define BOOST_PP_ITERATION_5 67 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 68 && BOOST_PP_ITERATION_FINISH_5 >= 68 -# define BOOST_PP_ITERATION_5 68 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 69 && BOOST_PP_ITERATION_FINISH_5 >= 69 -# define BOOST_PP_ITERATION_5 69 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 70 && BOOST_PP_ITERATION_FINISH_5 >= 70 -# define BOOST_PP_ITERATION_5 70 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 71 && BOOST_PP_ITERATION_FINISH_5 >= 71 -# define BOOST_PP_ITERATION_5 71 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 72 && BOOST_PP_ITERATION_FINISH_5 >= 72 -# define BOOST_PP_ITERATION_5 72 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 73 && BOOST_PP_ITERATION_FINISH_5 >= 73 -# define BOOST_PP_ITERATION_5 73 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 74 && BOOST_PP_ITERATION_FINISH_5 >= 74 -# define BOOST_PP_ITERATION_5 74 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 75 && BOOST_PP_ITERATION_FINISH_5 >= 75 -# define BOOST_PP_ITERATION_5 75 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 76 && BOOST_PP_ITERATION_FINISH_5 >= 76 -# define BOOST_PP_ITERATION_5 76 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 77 && BOOST_PP_ITERATION_FINISH_5 >= 77 -# define BOOST_PP_ITERATION_5 77 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 78 && BOOST_PP_ITERATION_FINISH_5 >= 78 -# define BOOST_PP_ITERATION_5 78 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 79 && BOOST_PP_ITERATION_FINISH_5 >= 79 -# define BOOST_PP_ITERATION_5 79 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 80 && BOOST_PP_ITERATION_FINISH_5 >= 80 -# define BOOST_PP_ITERATION_5 80 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 81 && BOOST_PP_ITERATION_FINISH_5 >= 81 -# define BOOST_PP_ITERATION_5 81 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 82 && BOOST_PP_ITERATION_FINISH_5 >= 82 -# define BOOST_PP_ITERATION_5 82 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 83 && BOOST_PP_ITERATION_FINISH_5 >= 83 -# define BOOST_PP_ITERATION_5 83 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 84 && BOOST_PP_ITERATION_FINISH_5 >= 84 -# define BOOST_PP_ITERATION_5 84 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 85 && BOOST_PP_ITERATION_FINISH_5 >= 85 -# define BOOST_PP_ITERATION_5 85 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 86 && BOOST_PP_ITERATION_FINISH_5 >= 86 -# define BOOST_PP_ITERATION_5 86 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 87 && BOOST_PP_ITERATION_FINISH_5 >= 87 -# define BOOST_PP_ITERATION_5 87 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 88 && BOOST_PP_ITERATION_FINISH_5 >= 88 -# define BOOST_PP_ITERATION_5 88 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 89 && BOOST_PP_ITERATION_FINISH_5 >= 89 -# define BOOST_PP_ITERATION_5 89 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 90 && BOOST_PP_ITERATION_FINISH_5 >= 90 -# define BOOST_PP_ITERATION_5 90 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 91 && BOOST_PP_ITERATION_FINISH_5 >= 91 -# define BOOST_PP_ITERATION_5 91 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 92 && BOOST_PP_ITERATION_FINISH_5 >= 92 -# define BOOST_PP_ITERATION_5 92 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 93 && BOOST_PP_ITERATION_FINISH_5 >= 93 -# define BOOST_PP_ITERATION_5 93 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 94 && BOOST_PP_ITERATION_FINISH_5 >= 94 -# define BOOST_PP_ITERATION_5 94 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 95 && BOOST_PP_ITERATION_FINISH_5 >= 95 -# define BOOST_PP_ITERATION_5 95 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 96 && BOOST_PP_ITERATION_FINISH_5 >= 96 -# define BOOST_PP_ITERATION_5 96 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 97 && BOOST_PP_ITERATION_FINISH_5 >= 97 -# define BOOST_PP_ITERATION_5 97 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 98 && BOOST_PP_ITERATION_FINISH_5 >= 98 -# define BOOST_PP_ITERATION_5 98 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 99 && BOOST_PP_ITERATION_FINISH_5 >= 99 -# define BOOST_PP_ITERATION_5 99 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 100 && BOOST_PP_ITERATION_FINISH_5 >= 100 -# define BOOST_PP_ITERATION_5 100 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 101 && BOOST_PP_ITERATION_FINISH_5 >= 101 -# define BOOST_PP_ITERATION_5 101 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 102 && BOOST_PP_ITERATION_FINISH_5 >= 102 -# define BOOST_PP_ITERATION_5 102 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 103 && BOOST_PP_ITERATION_FINISH_5 >= 103 -# define BOOST_PP_ITERATION_5 103 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 104 && BOOST_PP_ITERATION_FINISH_5 >= 104 -# define BOOST_PP_ITERATION_5 104 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 105 && BOOST_PP_ITERATION_FINISH_5 >= 105 -# define BOOST_PP_ITERATION_5 105 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 106 && BOOST_PP_ITERATION_FINISH_5 >= 106 -# define BOOST_PP_ITERATION_5 106 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 107 && BOOST_PP_ITERATION_FINISH_5 >= 107 -# define BOOST_PP_ITERATION_5 107 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 108 && BOOST_PP_ITERATION_FINISH_5 >= 108 -# define BOOST_PP_ITERATION_5 108 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 109 && BOOST_PP_ITERATION_FINISH_5 >= 109 -# define BOOST_PP_ITERATION_5 109 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 110 && BOOST_PP_ITERATION_FINISH_5 >= 110 -# define BOOST_PP_ITERATION_5 110 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 111 && BOOST_PP_ITERATION_FINISH_5 >= 111 -# define BOOST_PP_ITERATION_5 111 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 112 && BOOST_PP_ITERATION_FINISH_5 >= 112 -# define BOOST_PP_ITERATION_5 112 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 113 && BOOST_PP_ITERATION_FINISH_5 >= 113 -# define BOOST_PP_ITERATION_5 113 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 114 && BOOST_PP_ITERATION_FINISH_5 >= 114 -# define BOOST_PP_ITERATION_5 114 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 115 && BOOST_PP_ITERATION_FINISH_5 >= 115 -# define BOOST_PP_ITERATION_5 115 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 116 && BOOST_PP_ITERATION_FINISH_5 >= 116 -# define BOOST_PP_ITERATION_5 116 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 117 && BOOST_PP_ITERATION_FINISH_5 >= 117 -# define BOOST_PP_ITERATION_5 117 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 118 && BOOST_PP_ITERATION_FINISH_5 >= 118 -# define BOOST_PP_ITERATION_5 118 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 119 && BOOST_PP_ITERATION_FINISH_5 >= 119 -# define BOOST_PP_ITERATION_5 119 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 120 && BOOST_PP_ITERATION_FINISH_5 >= 120 -# define BOOST_PP_ITERATION_5 120 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 121 && BOOST_PP_ITERATION_FINISH_5 >= 121 -# define BOOST_PP_ITERATION_5 121 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 122 && BOOST_PP_ITERATION_FINISH_5 >= 122 -# define BOOST_PP_ITERATION_5 122 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 123 && BOOST_PP_ITERATION_FINISH_5 >= 123 -# define BOOST_PP_ITERATION_5 123 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 124 && BOOST_PP_ITERATION_FINISH_5 >= 124 -# define BOOST_PP_ITERATION_5 124 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 125 && BOOST_PP_ITERATION_FINISH_5 >= 125 -# define BOOST_PP_ITERATION_5 125 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 126 && BOOST_PP_ITERATION_FINISH_5 >= 126 -# define BOOST_PP_ITERATION_5 126 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 127 && BOOST_PP_ITERATION_FINISH_5 >= 127 -# define BOOST_PP_ITERATION_5 127 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 128 && BOOST_PP_ITERATION_FINISH_5 >= 128 -# define BOOST_PP_ITERATION_5 128 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 129 && BOOST_PP_ITERATION_FINISH_5 >= 129 -# define BOOST_PP_ITERATION_5 129 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 130 && BOOST_PP_ITERATION_FINISH_5 >= 130 -# define BOOST_PP_ITERATION_5 130 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 131 && BOOST_PP_ITERATION_FINISH_5 >= 131 -# define BOOST_PP_ITERATION_5 131 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 132 && BOOST_PP_ITERATION_FINISH_5 >= 132 -# define BOOST_PP_ITERATION_5 132 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 133 && BOOST_PP_ITERATION_FINISH_5 >= 133 -# define BOOST_PP_ITERATION_5 133 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 134 && BOOST_PP_ITERATION_FINISH_5 >= 134 -# define BOOST_PP_ITERATION_5 134 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 135 && BOOST_PP_ITERATION_FINISH_5 >= 135 -# define BOOST_PP_ITERATION_5 135 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 136 && BOOST_PP_ITERATION_FINISH_5 >= 136 -# define BOOST_PP_ITERATION_5 136 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 137 && BOOST_PP_ITERATION_FINISH_5 >= 137 -# define BOOST_PP_ITERATION_5 137 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 138 && BOOST_PP_ITERATION_FINISH_5 >= 138 -# define BOOST_PP_ITERATION_5 138 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 139 && BOOST_PP_ITERATION_FINISH_5 >= 139 -# define BOOST_PP_ITERATION_5 139 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 140 && BOOST_PP_ITERATION_FINISH_5 >= 140 -# define BOOST_PP_ITERATION_5 140 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 141 && BOOST_PP_ITERATION_FINISH_5 >= 141 -# define BOOST_PP_ITERATION_5 141 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 142 && BOOST_PP_ITERATION_FINISH_5 >= 142 -# define BOOST_PP_ITERATION_5 142 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 143 && BOOST_PP_ITERATION_FINISH_5 >= 143 -# define BOOST_PP_ITERATION_5 143 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 144 && BOOST_PP_ITERATION_FINISH_5 >= 144 -# define BOOST_PP_ITERATION_5 144 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 145 && BOOST_PP_ITERATION_FINISH_5 >= 145 -# define BOOST_PP_ITERATION_5 145 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 146 && BOOST_PP_ITERATION_FINISH_5 >= 146 -# define BOOST_PP_ITERATION_5 146 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 147 && BOOST_PP_ITERATION_FINISH_5 >= 147 -# define BOOST_PP_ITERATION_5 147 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 148 && BOOST_PP_ITERATION_FINISH_5 >= 148 -# define BOOST_PP_ITERATION_5 148 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 149 && BOOST_PP_ITERATION_FINISH_5 >= 149 -# define BOOST_PP_ITERATION_5 149 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 150 && BOOST_PP_ITERATION_FINISH_5 >= 150 -# define BOOST_PP_ITERATION_5 150 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 151 && BOOST_PP_ITERATION_FINISH_5 >= 151 -# define BOOST_PP_ITERATION_5 151 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 152 && BOOST_PP_ITERATION_FINISH_5 >= 152 -# define BOOST_PP_ITERATION_5 152 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 153 && BOOST_PP_ITERATION_FINISH_5 >= 153 -# define BOOST_PP_ITERATION_5 153 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 154 && BOOST_PP_ITERATION_FINISH_5 >= 154 -# define BOOST_PP_ITERATION_5 154 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 155 && BOOST_PP_ITERATION_FINISH_5 >= 155 -# define BOOST_PP_ITERATION_5 155 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 156 && BOOST_PP_ITERATION_FINISH_5 >= 156 -# define BOOST_PP_ITERATION_5 156 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 157 && BOOST_PP_ITERATION_FINISH_5 >= 157 -# define BOOST_PP_ITERATION_5 157 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 158 && BOOST_PP_ITERATION_FINISH_5 >= 158 -# define BOOST_PP_ITERATION_5 158 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 159 && BOOST_PP_ITERATION_FINISH_5 >= 159 -# define BOOST_PP_ITERATION_5 159 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 160 && BOOST_PP_ITERATION_FINISH_5 >= 160 -# define BOOST_PP_ITERATION_5 160 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 161 && BOOST_PP_ITERATION_FINISH_5 >= 161 -# define BOOST_PP_ITERATION_5 161 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 162 && BOOST_PP_ITERATION_FINISH_5 >= 162 -# define BOOST_PP_ITERATION_5 162 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 163 && BOOST_PP_ITERATION_FINISH_5 >= 163 -# define BOOST_PP_ITERATION_5 163 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 164 && BOOST_PP_ITERATION_FINISH_5 >= 164 -# define BOOST_PP_ITERATION_5 164 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 165 && BOOST_PP_ITERATION_FINISH_5 >= 165 -# define BOOST_PP_ITERATION_5 165 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 166 && BOOST_PP_ITERATION_FINISH_5 >= 166 -# define BOOST_PP_ITERATION_5 166 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 167 && BOOST_PP_ITERATION_FINISH_5 >= 167 -# define BOOST_PP_ITERATION_5 167 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 168 && BOOST_PP_ITERATION_FINISH_5 >= 168 -# define BOOST_PP_ITERATION_5 168 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 169 && BOOST_PP_ITERATION_FINISH_5 >= 169 -# define BOOST_PP_ITERATION_5 169 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 170 && BOOST_PP_ITERATION_FINISH_5 >= 170 -# define BOOST_PP_ITERATION_5 170 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 171 && BOOST_PP_ITERATION_FINISH_5 >= 171 -# define BOOST_PP_ITERATION_5 171 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 172 && BOOST_PP_ITERATION_FINISH_5 >= 172 -# define BOOST_PP_ITERATION_5 172 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 173 && BOOST_PP_ITERATION_FINISH_5 >= 173 -# define BOOST_PP_ITERATION_5 173 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 174 && BOOST_PP_ITERATION_FINISH_5 >= 174 -# define BOOST_PP_ITERATION_5 174 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 175 && BOOST_PP_ITERATION_FINISH_5 >= 175 -# define BOOST_PP_ITERATION_5 175 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 176 && BOOST_PP_ITERATION_FINISH_5 >= 176 -# define BOOST_PP_ITERATION_5 176 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 177 && BOOST_PP_ITERATION_FINISH_5 >= 177 -# define BOOST_PP_ITERATION_5 177 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 178 && BOOST_PP_ITERATION_FINISH_5 >= 178 -# define BOOST_PP_ITERATION_5 178 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 179 && BOOST_PP_ITERATION_FINISH_5 >= 179 -# define BOOST_PP_ITERATION_5 179 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 180 && BOOST_PP_ITERATION_FINISH_5 >= 180 -# define BOOST_PP_ITERATION_5 180 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 181 && BOOST_PP_ITERATION_FINISH_5 >= 181 -# define BOOST_PP_ITERATION_5 181 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 182 && BOOST_PP_ITERATION_FINISH_5 >= 182 -# define BOOST_PP_ITERATION_5 182 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 183 && BOOST_PP_ITERATION_FINISH_5 >= 183 -# define BOOST_PP_ITERATION_5 183 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 184 && BOOST_PP_ITERATION_FINISH_5 >= 184 -# define BOOST_PP_ITERATION_5 184 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 185 && BOOST_PP_ITERATION_FINISH_5 >= 185 -# define BOOST_PP_ITERATION_5 185 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 186 && BOOST_PP_ITERATION_FINISH_5 >= 186 -# define BOOST_PP_ITERATION_5 186 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 187 && BOOST_PP_ITERATION_FINISH_5 >= 187 -# define BOOST_PP_ITERATION_5 187 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 188 && BOOST_PP_ITERATION_FINISH_5 >= 188 -# define BOOST_PP_ITERATION_5 188 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 189 && BOOST_PP_ITERATION_FINISH_5 >= 189 -# define BOOST_PP_ITERATION_5 189 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 190 && BOOST_PP_ITERATION_FINISH_5 >= 190 -# define BOOST_PP_ITERATION_5 190 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 191 && BOOST_PP_ITERATION_FINISH_5 >= 191 -# define BOOST_PP_ITERATION_5 191 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 192 && BOOST_PP_ITERATION_FINISH_5 >= 192 -# define BOOST_PP_ITERATION_5 192 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 193 && BOOST_PP_ITERATION_FINISH_5 >= 193 -# define BOOST_PP_ITERATION_5 193 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 194 && BOOST_PP_ITERATION_FINISH_5 >= 194 -# define BOOST_PP_ITERATION_5 194 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 195 && BOOST_PP_ITERATION_FINISH_5 >= 195 -# define BOOST_PP_ITERATION_5 195 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 196 && BOOST_PP_ITERATION_FINISH_5 >= 196 -# define BOOST_PP_ITERATION_5 196 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 197 && BOOST_PP_ITERATION_FINISH_5 >= 197 -# define BOOST_PP_ITERATION_5 197 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 198 && BOOST_PP_ITERATION_FINISH_5 >= 198 -# define BOOST_PP_ITERATION_5 198 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 199 && BOOST_PP_ITERATION_FINISH_5 >= 199 -# define BOOST_PP_ITERATION_5 199 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 200 && BOOST_PP_ITERATION_FINISH_5 >= 200 -# define BOOST_PP_ITERATION_5 200 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 201 && BOOST_PP_ITERATION_FINISH_5 >= 201 -# define BOOST_PP_ITERATION_5 201 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 202 && BOOST_PP_ITERATION_FINISH_5 >= 202 -# define BOOST_PP_ITERATION_5 202 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 203 && BOOST_PP_ITERATION_FINISH_5 >= 203 -# define BOOST_PP_ITERATION_5 203 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 204 && BOOST_PP_ITERATION_FINISH_5 >= 204 -# define BOOST_PP_ITERATION_5 204 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 205 && BOOST_PP_ITERATION_FINISH_5 >= 205 -# define BOOST_PP_ITERATION_5 205 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 206 && BOOST_PP_ITERATION_FINISH_5 >= 206 -# define BOOST_PP_ITERATION_5 206 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 207 && BOOST_PP_ITERATION_FINISH_5 >= 207 -# define BOOST_PP_ITERATION_5 207 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 208 && BOOST_PP_ITERATION_FINISH_5 >= 208 -# define BOOST_PP_ITERATION_5 208 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 209 && BOOST_PP_ITERATION_FINISH_5 >= 209 -# define BOOST_PP_ITERATION_5 209 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 210 && BOOST_PP_ITERATION_FINISH_5 >= 210 -# define BOOST_PP_ITERATION_5 210 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 211 && BOOST_PP_ITERATION_FINISH_5 >= 211 -# define BOOST_PP_ITERATION_5 211 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 212 && BOOST_PP_ITERATION_FINISH_5 >= 212 -# define BOOST_PP_ITERATION_5 212 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 213 && BOOST_PP_ITERATION_FINISH_5 >= 213 -# define BOOST_PP_ITERATION_5 213 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 214 && BOOST_PP_ITERATION_FINISH_5 >= 214 -# define BOOST_PP_ITERATION_5 214 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 215 && BOOST_PP_ITERATION_FINISH_5 >= 215 -# define BOOST_PP_ITERATION_5 215 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 216 && BOOST_PP_ITERATION_FINISH_5 >= 216 -# define BOOST_PP_ITERATION_5 216 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 217 && BOOST_PP_ITERATION_FINISH_5 >= 217 -# define BOOST_PP_ITERATION_5 217 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 218 && BOOST_PP_ITERATION_FINISH_5 >= 218 -# define BOOST_PP_ITERATION_5 218 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 219 && BOOST_PP_ITERATION_FINISH_5 >= 219 -# define BOOST_PP_ITERATION_5 219 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 220 && BOOST_PP_ITERATION_FINISH_5 >= 220 -# define BOOST_PP_ITERATION_5 220 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 221 && BOOST_PP_ITERATION_FINISH_5 >= 221 -# define BOOST_PP_ITERATION_5 221 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 222 && BOOST_PP_ITERATION_FINISH_5 >= 222 -# define BOOST_PP_ITERATION_5 222 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 223 && BOOST_PP_ITERATION_FINISH_5 >= 223 -# define BOOST_PP_ITERATION_5 223 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 224 && BOOST_PP_ITERATION_FINISH_5 >= 224 -# define BOOST_PP_ITERATION_5 224 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 225 && BOOST_PP_ITERATION_FINISH_5 >= 225 -# define BOOST_PP_ITERATION_5 225 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 226 && BOOST_PP_ITERATION_FINISH_5 >= 226 -# define BOOST_PP_ITERATION_5 226 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 227 && BOOST_PP_ITERATION_FINISH_5 >= 227 -# define BOOST_PP_ITERATION_5 227 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 228 && BOOST_PP_ITERATION_FINISH_5 >= 228 -# define BOOST_PP_ITERATION_5 228 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 229 && BOOST_PP_ITERATION_FINISH_5 >= 229 -# define BOOST_PP_ITERATION_5 229 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 230 && BOOST_PP_ITERATION_FINISH_5 >= 230 -# define BOOST_PP_ITERATION_5 230 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 231 && BOOST_PP_ITERATION_FINISH_5 >= 231 -# define BOOST_PP_ITERATION_5 231 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 232 && BOOST_PP_ITERATION_FINISH_5 >= 232 -# define BOOST_PP_ITERATION_5 232 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 233 && BOOST_PP_ITERATION_FINISH_5 >= 233 -# define BOOST_PP_ITERATION_5 233 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 234 && BOOST_PP_ITERATION_FINISH_5 >= 234 -# define BOOST_PP_ITERATION_5 234 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 235 && BOOST_PP_ITERATION_FINISH_5 >= 235 -# define BOOST_PP_ITERATION_5 235 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 236 && BOOST_PP_ITERATION_FINISH_5 >= 236 -# define BOOST_PP_ITERATION_5 236 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 237 && BOOST_PP_ITERATION_FINISH_5 >= 237 -# define BOOST_PP_ITERATION_5 237 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 238 && BOOST_PP_ITERATION_FINISH_5 >= 238 -# define BOOST_PP_ITERATION_5 238 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 239 && BOOST_PP_ITERATION_FINISH_5 >= 239 -# define BOOST_PP_ITERATION_5 239 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 240 && BOOST_PP_ITERATION_FINISH_5 >= 240 -# define BOOST_PP_ITERATION_5 240 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 241 && BOOST_PP_ITERATION_FINISH_5 >= 241 -# define BOOST_PP_ITERATION_5 241 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 242 && BOOST_PP_ITERATION_FINISH_5 >= 242 -# define BOOST_PP_ITERATION_5 242 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 243 && BOOST_PP_ITERATION_FINISH_5 >= 243 -# define BOOST_PP_ITERATION_5 243 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 244 && BOOST_PP_ITERATION_FINISH_5 >= 244 -# define BOOST_PP_ITERATION_5 244 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 245 && BOOST_PP_ITERATION_FINISH_5 >= 245 -# define BOOST_PP_ITERATION_5 245 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 246 && BOOST_PP_ITERATION_FINISH_5 >= 246 -# define BOOST_PP_ITERATION_5 246 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 247 && BOOST_PP_ITERATION_FINISH_5 >= 247 -# define BOOST_PP_ITERATION_5 247 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 248 && BOOST_PP_ITERATION_FINISH_5 >= 248 -# define BOOST_PP_ITERATION_5 248 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 249 && BOOST_PP_ITERATION_FINISH_5 >= 249 -# define BOOST_PP_ITERATION_5 249 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 250 && BOOST_PP_ITERATION_FINISH_5 >= 250 -# define BOOST_PP_ITERATION_5 250 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 251 && BOOST_PP_ITERATION_FINISH_5 >= 251 -# define BOOST_PP_ITERATION_5 251 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 252 && BOOST_PP_ITERATION_FINISH_5 >= 252 -# define BOOST_PP_ITERATION_5 252 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 253 && BOOST_PP_ITERATION_FINISH_5 >= 253 -# define BOOST_PP_ITERATION_5 253 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 254 && BOOST_PP_ITERATION_FINISH_5 >= 254 -# define BOOST_PP_ITERATION_5 254 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 255 && BOOST_PP_ITERATION_FINISH_5 >= 255 -# define BOOST_PP_ITERATION_5 255 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_START_5 <= 256 && BOOST_PP_ITERATION_FINISH_5 >= 256 -# define BOOST_PP_ITERATION_5 256 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# endif -# -# undef BOOST_PP_ITERATION_DEPTH -# define BOOST_PP_ITERATION_DEPTH() 4 -# -# undef BOOST_PP_ITERATION_START_5 -# undef BOOST_PP_ITERATION_FINISH_5 -# undef BOOST_PP_FILENAME_5 -# -# undef BOOST_PP_ITERATION_FLAGS_5 -# undef BOOST_PP_ITERATION_PARAMS_5 diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp deleted file mode 100644 index bf88d2f3a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse1.hpp +++ /dev/null @@ -1,1296 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if BOOST_PP_ITERATION_FINISH_1 <= 256 && BOOST_PP_ITERATION_START_1 >= 256 -# define BOOST_PP_ITERATION_1 256 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 255 && BOOST_PP_ITERATION_START_1 >= 255 -# define BOOST_PP_ITERATION_1 255 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 254 && BOOST_PP_ITERATION_START_1 >= 254 -# define BOOST_PP_ITERATION_1 254 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 253 && BOOST_PP_ITERATION_START_1 >= 253 -# define BOOST_PP_ITERATION_1 253 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 252 && BOOST_PP_ITERATION_START_1 >= 252 -# define BOOST_PP_ITERATION_1 252 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 251 && BOOST_PP_ITERATION_START_1 >= 251 -# define BOOST_PP_ITERATION_1 251 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 250 && BOOST_PP_ITERATION_START_1 >= 250 -# define BOOST_PP_ITERATION_1 250 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 249 && BOOST_PP_ITERATION_START_1 >= 249 -# define BOOST_PP_ITERATION_1 249 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 248 && BOOST_PP_ITERATION_START_1 >= 248 -# define BOOST_PP_ITERATION_1 248 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 247 && BOOST_PP_ITERATION_START_1 >= 247 -# define BOOST_PP_ITERATION_1 247 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 246 && BOOST_PP_ITERATION_START_1 >= 246 -# define BOOST_PP_ITERATION_1 246 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 245 && BOOST_PP_ITERATION_START_1 >= 245 -# define BOOST_PP_ITERATION_1 245 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 244 && BOOST_PP_ITERATION_START_1 >= 244 -# define BOOST_PP_ITERATION_1 244 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 243 && BOOST_PP_ITERATION_START_1 >= 243 -# define BOOST_PP_ITERATION_1 243 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 242 && BOOST_PP_ITERATION_START_1 >= 242 -# define BOOST_PP_ITERATION_1 242 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 241 && BOOST_PP_ITERATION_START_1 >= 241 -# define BOOST_PP_ITERATION_1 241 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 240 && BOOST_PP_ITERATION_START_1 >= 240 -# define BOOST_PP_ITERATION_1 240 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 239 && BOOST_PP_ITERATION_START_1 >= 239 -# define BOOST_PP_ITERATION_1 239 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 238 && BOOST_PP_ITERATION_START_1 >= 238 -# define BOOST_PP_ITERATION_1 238 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 237 && BOOST_PP_ITERATION_START_1 >= 237 -# define BOOST_PP_ITERATION_1 237 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 236 && BOOST_PP_ITERATION_START_1 >= 236 -# define BOOST_PP_ITERATION_1 236 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 235 && BOOST_PP_ITERATION_START_1 >= 235 -# define BOOST_PP_ITERATION_1 235 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 234 && BOOST_PP_ITERATION_START_1 >= 234 -# define BOOST_PP_ITERATION_1 234 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 233 && BOOST_PP_ITERATION_START_1 >= 233 -# define BOOST_PP_ITERATION_1 233 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 232 && BOOST_PP_ITERATION_START_1 >= 232 -# define BOOST_PP_ITERATION_1 232 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 231 && BOOST_PP_ITERATION_START_1 >= 231 -# define BOOST_PP_ITERATION_1 231 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 230 && BOOST_PP_ITERATION_START_1 >= 230 -# define BOOST_PP_ITERATION_1 230 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 229 && BOOST_PP_ITERATION_START_1 >= 229 -# define BOOST_PP_ITERATION_1 229 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 228 && BOOST_PP_ITERATION_START_1 >= 228 -# define BOOST_PP_ITERATION_1 228 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 227 && BOOST_PP_ITERATION_START_1 >= 227 -# define BOOST_PP_ITERATION_1 227 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 226 && BOOST_PP_ITERATION_START_1 >= 226 -# define BOOST_PP_ITERATION_1 226 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 225 && BOOST_PP_ITERATION_START_1 >= 225 -# define BOOST_PP_ITERATION_1 225 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 224 && BOOST_PP_ITERATION_START_1 >= 224 -# define BOOST_PP_ITERATION_1 224 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 223 && BOOST_PP_ITERATION_START_1 >= 223 -# define BOOST_PP_ITERATION_1 223 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 222 && BOOST_PP_ITERATION_START_1 >= 222 -# define BOOST_PP_ITERATION_1 222 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 221 && BOOST_PP_ITERATION_START_1 >= 221 -# define BOOST_PP_ITERATION_1 221 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 220 && BOOST_PP_ITERATION_START_1 >= 220 -# define BOOST_PP_ITERATION_1 220 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 219 && BOOST_PP_ITERATION_START_1 >= 219 -# define BOOST_PP_ITERATION_1 219 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 218 && BOOST_PP_ITERATION_START_1 >= 218 -# define BOOST_PP_ITERATION_1 218 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 217 && BOOST_PP_ITERATION_START_1 >= 217 -# define BOOST_PP_ITERATION_1 217 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 216 && BOOST_PP_ITERATION_START_1 >= 216 -# define BOOST_PP_ITERATION_1 216 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 215 && BOOST_PP_ITERATION_START_1 >= 215 -# define BOOST_PP_ITERATION_1 215 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 214 && BOOST_PP_ITERATION_START_1 >= 214 -# define BOOST_PP_ITERATION_1 214 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 213 && BOOST_PP_ITERATION_START_1 >= 213 -# define BOOST_PP_ITERATION_1 213 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 212 && BOOST_PP_ITERATION_START_1 >= 212 -# define BOOST_PP_ITERATION_1 212 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 211 && BOOST_PP_ITERATION_START_1 >= 211 -# define BOOST_PP_ITERATION_1 211 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 210 && BOOST_PP_ITERATION_START_1 >= 210 -# define BOOST_PP_ITERATION_1 210 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 209 && BOOST_PP_ITERATION_START_1 >= 209 -# define BOOST_PP_ITERATION_1 209 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 208 && BOOST_PP_ITERATION_START_1 >= 208 -# define BOOST_PP_ITERATION_1 208 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 207 && BOOST_PP_ITERATION_START_1 >= 207 -# define BOOST_PP_ITERATION_1 207 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 206 && BOOST_PP_ITERATION_START_1 >= 206 -# define BOOST_PP_ITERATION_1 206 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 205 && BOOST_PP_ITERATION_START_1 >= 205 -# define BOOST_PP_ITERATION_1 205 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 204 && BOOST_PP_ITERATION_START_1 >= 204 -# define BOOST_PP_ITERATION_1 204 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 203 && BOOST_PP_ITERATION_START_1 >= 203 -# define BOOST_PP_ITERATION_1 203 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 202 && BOOST_PP_ITERATION_START_1 >= 202 -# define BOOST_PP_ITERATION_1 202 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 201 && BOOST_PP_ITERATION_START_1 >= 201 -# define BOOST_PP_ITERATION_1 201 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 200 && BOOST_PP_ITERATION_START_1 >= 200 -# define BOOST_PP_ITERATION_1 200 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 199 && BOOST_PP_ITERATION_START_1 >= 199 -# define BOOST_PP_ITERATION_1 199 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 198 && BOOST_PP_ITERATION_START_1 >= 198 -# define BOOST_PP_ITERATION_1 198 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 197 && BOOST_PP_ITERATION_START_1 >= 197 -# define BOOST_PP_ITERATION_1 197 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 196 && BOOST_PP_ITERATION_START_1 >= 196 -# define BOOST_PP_ITERATION_1 196 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 195 && BOOST_PP_ITERATION_START_1 >= 195 -# define BOOST_PP_ITERATION_1 195 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 194 && BOOST_PP_ITERATION_START_1 >= 194 -# define BOOST_PP_ITERATION_1 194 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 193 && BOOST_PP_ITERATION_START_1 >= 193 -# define BOOST_PP_ITERATION_1 193 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 192 && BOOST_PP_ITERATION_START_1 >= 192 -# define BOOST_PP_ITERATION_1 192 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 191 && BOOST_PP_ITERATION_START_1 >= 191 -# define BOOST_PP_ITERATION_1 191 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 190 && BOOST_PP_ITERATION_START_1 >= 190 -# define BOOST_PP_ITERATION_1 190 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 189 && BOOST_PP_ITERATION_START_1 >= 189 -# define BOOST_PP_ITERATION_1 189 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 188 && BOOST_PP_ITERATION_START_1 >= 188 -# define BOOST_PP_ITERATION_1 188 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 187 && BOOST_PP_ITERATION_START_1 >= 187 -# define BOOST_PP_ITERATION_1 187 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 186 && BOOST_PP_ITERATION_START_1 >= 186 -# define BOOST_PP_ITERATION_1 186 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 185 && BOOST_PP_ITERATION_START_1 >= 185 -# define BOOST_PP_ITERATION_1 185 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 184 && BOOST_PP_ITERATION_START_1 >= 184 -# define BOOST_PP_ITERATION_1 184 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 183 && BOOST_PP_ITERATION_START_1 >= 183 -# define BOOST_PP_ITERATION_1 183 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 182 && BOOST_PP_ITERATION_START_1 >= 182 -# define BOOST_PP_ITERATION_1 182 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 181 && BOOST_PP_ITERATION_START_1 >= 181 -# define BOOST_PP_ITERATION_1 181 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 180 && BOOST_PP_ITERATION_START_1 >= 180 -# define BOOST_PP_ITERATION_1 180 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 179 && BOOST_PP_ITERATION_START_1 >= 179 -# define BOOST_PP_ITERATION_1 179 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 178 && BOOST_PP_ITERATION_START_1 >= 178 -# define BOOST_PP_ITERATION_1 178 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 177 && BOOST_PP_ITERATION_START_1 >= 177 -# define BOOST_PP_ITERATION_1 177 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 176 && BOOST_PP_ITERATION_START_1 >= 176 -# define BOOST_PP_ITERATION_1 176 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 175 && BOOST_PP_ITERATION_START_1 >= 175 -# define BOOST_PP_ITERATION_1 175 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 174 && BOOST_PP_ITERATION_START_1 >= 174 -# define BOOST_PP_ITERATION_1 174 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 173 && BOOST_PP_ITERATION_START_1 >= 173 -# define BOOST_PP_ITERATION_1 173 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 172 && BOOST_PP_ITERATION_START_1 >= 172 -# define BOOST_PP_ITERATION_1 172 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 171 && BOOST_PP_ITERATION_START_1 >= 171 -# define BOOST_PP_ITERATION_1 171 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 170 && BOOST_PP_ITERATION_START_1 >= 170 -# define BOOST_PP_ITERATION_1 170 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 169 && BOOST_PP_ITERATION_START_1 >= 169 -# define BOOST_PP_ITERATION_1 169 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 168 && BOOST_PP_ITERATION_START_1 >= 168 -# define BOOST_PP_ITERATION_1 168 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 167 && BOOST_PP_ITERATION_START_1 >= 167 -# define BOOST_PP_ITERATION_1 167 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 166 && BOOST_PP_ITERATION_START_1 >= 166 -# define BOOST_PP_ITERATION_1 166 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 165 && BOOST_PP_ITERATION_START_1 >= 165 -# define BOOST_PP_ITERATION_1 165 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 164 && BOOST_PP_ITERATION_START_1 >= 164 -# define BOOST_PP_ITERATION_1 164 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 163 && BOOST_PP_ITERATION_START_1 >= 163 -# define BOOST_PP_ITERATION_1 163 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 162 && BOOST_PP_ITERATION_START_1 >= 162 -# define BOOST_PP_ITERATION_1 162 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 161 && BOOST_PP_ITERATION_START_1 >= 161 -# define BOOST_PP_ITERATION_1 161 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 160 && BOOST_PP_ITERATION_START_1 >= 160 -# define BOOST_PP_ITERATION_1 160 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 159 && BOOST_PP_ITERATION_START_1 >= 159 -# define BOOST_PP_ITERATION_1 159 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 158 && BOOST_PP_ITERATION_START_1 >= 158 -# define BOOST_PP_ITERATION_1 158 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 157 && BOOST_PP_ITERATION_START_1 >= 157 -# define BOOST_PP_ITERATION_1 157 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 156 && BOOST_PP_ITERATION_START_1 >= 156 -# define BOOST_PP_ITERATION_1 156 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 155 && BOOST_PP_ITERATION_START_1 >= 155 -# define BOOST_PP_ITERATION_1 155 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 154 && BOOST_PP_ITERATION_START_1 >= 154 -# define BOOST_PP_ITERATION_1 154 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 153 && BOOST_PP_ITERATION_START_1 >= 153 -# define BOOST_PP_ITERATION_1 153 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 152 && BOOST_PP_ITERATION_START_1 >= 152 -# define BOOST_PP_ITERATION_1 152 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 151 && BOOST_PP_ITERATION_START_1 >= 151 -# define BOOST_PP_ITERATION_1 151 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 150 && BOOST_PP_ITERATION_START_1 >= 150 -# define BOOST_PP_ITERATION_1 150 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 149 && BOOST_PP_ITERATION_START_1 >= 149 -# define BOOST_PP_ITERATION_1 149 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 148 && BOOST_PP_ITERATION_START_1 >= 148 -# define BOOST_PP_ITERATION_1 148 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 147 && BOOST_PP_ITERATION_START_1 >= 147 -# define BOOST_PP_ITERATION_1 147 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 146 && BOOST_PP_ITERATION_START_1 >= 146 -# define BOOST_PP_ITERATION_1 146 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 145 && BOOST_PP_ITERATION_START_1 >= 145 -# define BOOST_PP_ITERATION_1 145 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 144 && BOOST_PP_ITERATION_START_1 >= 144 -# define BOOST_PP_ITERATION_1 144 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 143 && BOOST_PP_ITERATION_START_1 >= 143 -# define BOOST_PP_ITERATION_1 143 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 142 && BOOST_PP_ITERATION_START_1 >= 142 -# define BOOST_PP_ITERATION_1 142 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 141 && BOOST_PP_ITERATION_START_1 >= 141 -# define BOOST_PP_ITERATION_1 141 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 140 && BOOST_PP_ITERATION_START_1 >= 140 -# define BOOST_PP_ITERATION_1 140 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 139 && BOOST_PP_ITERATION_START_1 >= 139 -# define BOOST_PP_ITERATION_1 139 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 138 && BOOST_PP_ITERATION_START_1 >= 138 -# define BOOST_PP_ITERATION_1 138 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 137 && BOOST_PP_ITERATION_START_1 >= 137 -# define BOOST_PP_ITERATION_1 137 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 136 && BOOST_PP_ITERATION_START_1 >= 136 -# define BOOST_PP_ITERATION_1 136 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 135 && BOOST_PP_ITERATION_START_1 >= 135 -# define BOOST_PP_ITERATION_1 135 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 134 && BOOST_PP_ITERATION_START_1 >= 134 -# define BOOST_PP_ITERATION_1 134 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 133 && BOOST_PP_ITERATION_START_1 >= 133 -# define BOOST_PP_ITERATION_1 133 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 132 && BOOST_PP_ITERATION_START_1 >= 132 -# define BOOST_PP_ITERATION_1 132 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 131 && BOOST_PP_ITERATION_START_1 >= 131 -# define BOOST_PP_ITERATION_1 131 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 130 && BOOST_PP_ITERATION_START_1 >= 130 -# define BOOST_PP_ITERATION_1 130 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 129 && BOOST_PP_ITERATION_START_1 >= 129 -# define BOOST_PP_ITERATION_1 129 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 128 && BOOST_PP_ITERATION_START_1 >= 128 -# define BOOST_PP_ITERATION_1 128 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 127 && BOOST_PP_ITERATION_START_1 >= 127 -# define BOOST_PP_ITERATION_1 127 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 126 && BOOST_PP_ITERATION_START_1 >= 126 -# define BOOST_PP_ITERATION_1 126 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 125 && BOOST_PP_ITERATION_START_1 >= 125 -# define BOOST_PP_ITERATION_1 125 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 124 && BOOST_PP_ITERATION_START_1 >= 124 -# define BOOST_PP_ITERATION_1 124 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 123 && BOOST_PP_ITERATION_START_1 >= 123 -# define BOOST_PP_ITERATION_1 123 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 122 && BOOST_PP_ITERATION_START_1 >= 122 -# define BOOST_PP_ITERATION_1 122 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 121 && BOOST_PP_ITERATION_START_1 >= 121 -# define BOOST_PP_ITERATION_1 121 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 120 && BOOST_PP_ITERATION_START_1 >= 120 -# define BOOST_PP_ITERATION_1 120 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 119 && BOOST_PP_ITERATION_START_1 >= 119 -# define BOOST_PP_ITERATION_1 119 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 118 && BOOST_PP_ITERATION_START_1 >= 118 -# define BOOST_PP_ITERATION_1 118 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 117 && BOOST_PP_ITERATION_START_1 >= 117 -# define BOOST_PP_ITERATION_1 117 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 116 && BOOST_PP_ITERATION_START_1 >= 116 -# define BOOST_PP_ITERATION_1 116 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 115 && BOOST_PP_ITERATION_START_1 >= 115 -# define BOOST_PP_ITERATION_1 115 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 114 && BOOST_PP_ITERATION_START_1 >= 114 -# define BOOST_PP_ITERATION_1 114 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 113 && BOOST_PP_ITERATION_START_1 >= 113 -# define BOOST_PP_ITERATION_1 113 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 112 && BOOST_PP_ITERATION_START_1 >= 112 -# define BOOST_PP_ITERATION_1 112 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 111 && BOOST_PP_ITERATION_START_1 >= 111 -# define BOOST_PP_ITERATION_1 111 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 110 && BOOST_PP_ITERATION_START_1 >= 110 -# define BOOST_PP_ITERATION_1 110 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 109 && BOOST_PP_ITERATION_START_1 >= 109 -# define BOOST_PP_ITERATION_1 109 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 108 && BOOST_PP_ITERATION_START_1 >= 108 -# define BOOST_PP_ITERATION_1 108 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 107 && BOOST_PP_ITERATION_START_1 >= 107 -# define BOOST_PP_ITERATION_1 107 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 106 && BOOST_PP_ITERATION_START_1 >= 106 -# define BOOST_PP_ITERATION_1 106 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 105 && BOOST_PP_ITERATION_START_1 >= 105 -# define BOOST_PP_ITERATION_1 105 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 104 && BOOST_PP_ITERATION_START_1 >= 104 -# define BOOST_PP_ITERATION_1 104 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 103 && BOOST_PP_ITERATION_START_1 >= 103 -# define BOOST_PP_ITERATION_1 103 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 102 && BOOST_PP_ITERATION_START_1 >= 102 -# define BOOST_PP_ITERATION_1 102 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 101 && BOOST_PP_ITERATION_START_1 >= 101 -# define BOOST_PP_ITERATION_1 101 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 100 && BOOST_PP_ITERATION_START_1 >= 100 -# define BOOST_PP_ITERATION_1 100 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 99 && BOOST_PP_ITERATION_START_1 >= 99 -# define BOOST_PP_ITERATION_1 99 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 98 && BOOST_PP_ITERATION_START_1 >= 98 -# define BOOST_PP_ITERATION_1 98 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 97 && BOOST_PP_ITERATION_START_1 >= 97 -# define BOOST_PP_ITERATION_1 97 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 96 && BOOST_PP_ITERATION_START_1 >= 96 -# define BOOST_PP_ITERATION_1 96 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 95 && BOOST_PP_ITERATION_START_1 >= 95 -# define BOOST_PP_ITERATION_1 95 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 94 && BOOST_PP_ITERATION_START_1 >= 94 -# define BOOST_PP_ITERATION_1 94 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 93 && BOOST_PP_ITERATION_START_1 >= 93 -# define BOOST_PP_ITERATION_1 93 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 92 && BOOST_PP_ITERATION_START_1 >= 92 -# define BOOST_PP_ITERATION_1 92 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 91 && BOOST_PP_ITERATION_START_1 >= 91 -# define BOOST_PP_ITERATION_1 91 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 90 && BOOST_PP_ITERATION_START_1 >= 90 -# define BOOST_PP_ITERATION_1 90 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 89 && BOOST_PP_ITERATION_START_1 >= 89 -# define BOOST_PP_ITERATION_1 89 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 88 && BOOST_PP_ITERATION_START_1 >= 88 -# define BOOST_PP_ITERATION_1 88 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 87 && BOOST_PP_ITERATION_START_1 >= 87 -# define BOOST_PP_ITERATION_1 87 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 86 && BOOST_PP_ITERATION_START_1 >= 86 -# define BOOST_PP_ITERATION_1 86 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 85 && BOOST_PP_ITERATION_START_1 >= 85 -# define BOOST_PP_ITERATION_1 85 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 84 && BOOST_PP_ITERATION_START_1 >= 84 -# define BOOST_PP_ITERATION_1 84 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 83 && BOOST_PP_ITERATION_START_1 >= 83 -# define BOOST_PP_ITERATION_1 83 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 82 && BOOST_PP_ITERATION_START_1 >= 82 -# define BOOST_PP_ITERATION_1 82 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 81 && BOOST_PP_ITERATION_START_1 >= 81 -# define BOOST_PP_ITERATION_1 81 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 80 && BOOST_PP_ITERATION_START_1 >= 80 -# define BOOST_PP_ITERATION_1 80 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 79 && BOOST_PP_ITERATION_START_1 >= 79 -# define BOOST_PP_ITERATION_1 79 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 78 && BOOST_PP_ITERATION_START_1 >= 78 -# define BOOST_PP_ITERATION_1 78 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 77 && BOOST_PP_ITERATION_START_1 >= 77 -# define BOOST_PP_ITERATION_1 77 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 76 && BOOST_PP_ITERATION_START_1 >= 76 -# define BOOST_PP_ITERATION_1 76 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 75 && BOOST_PP_ITERATION_START_1 >= 75 -# define BOOST_PP_ITERATION_1 75 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 74 && BOOST_PP_ITERATION_START_1 >= 74 -# define BOOST_PP_ITERATION_1 74 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 73 && BOOST_PP_ITERATION_START_1 >= 73 -# define BOOST_PP_ITERATION_1 73 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 72 && BOOST_PP_ITERATION_START_1 >= 72 -# define BOOST_PP_ITERATION_1 72 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 71 && BOOST_PP_ITERATION_START_1 >= 71 -# define BOOST_PP_ITERATION_1 71 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 70 && BOOST_PP_ITERATION_START_1 >= 70 -# define BOOST_PP_ITERATION_1 70 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 69 && BOOST_PP_ITERATION_START_1 >= 69 -# define BOOST_PP_ITERATION_1 69 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 68 && BOOST_PP_ITERATION_START_1 >= 68 -# define BOOST_PP_ITERATION_1 68 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 67 && BOOST_PP_ITERATION_START_1 >= 67 -# define BOOST_PP_ITERATION_1 67 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 66 && BOOST_PP_ITERATION_START_1 >= 66 -# define BOOST_PP_ITERATION_1 66 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 65 && BOOST_PP_ITERATION_START_1 >= 65 -# define BOOST_PP_ITERATION_1 65 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 64 && BOOST_PP_ITERATION_START_1 >= 64 -# define BOOST_PP_ITERATION_1 64 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 63 && BOOST_PP_ITERATION_START_1 >= 63 -# define BOOST_PP_ITERATION_1 63 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 62 && BOOST_PP_ITERATION_START_1 >= 62 -# define BOOST_PP_ITERATION_1 62 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 61 && BOOST_PP_ITERATION_START_1 >= 61 -# define BOOST_PP_ITERATION_1 61 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 60 && BOOST_PP_ITERATION_START_1 >= 60 -# define BOOST_PP_ITERATION_1 60 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 59 && BOOST_PP_ITERATION_START_1 >= 59 -# define BOOST_PP_ITERATION_1 59 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 58 && BOOST_PP_ITERATION_START_1 >= 58 -# define BOOST_PP_ITERATION_1 58 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 57 && BOOST_PP_ITERATION_START_1 >= 57 -# define BOOST_PP_ITERATION_1 57 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 56 && BOOST_PP_ITERATION_START_1 >= 56 -# define BOOST_PP_ITERATION_1 56 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 55 && BOOST_PP_ITERATION_START_1 >= 55 -# define BOOST_PP_ITERATION_1 55 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 54 && BOOST_PP_ITERATION_START_1 >= 54 -# define BOOST_PP_ITERATION_1 54 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 53 && BOOST_PP_ITERATION_START_1 >= 53 -# define BOOST_PP_ITERATION_1 53 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 52 && BOOST_PP_ITERATION_START_1 >= 52 -# define BOOST_PP_ITERATION_1 52 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 51 && BOOST_PP_ITERATION_START_1 >= 51 -# define BOOST_PP_ITERATION_1 51 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 50 && BOOST_PP_ITERATION_START_1 >= 50 -# define BOOST_PP_ITERATION_1 50 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 49 && BOOST_PP_ITERATION_START_1 >= 49 -# define BOOST_PP_ITERATION_1 49 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 48 && BOOST_PP_ITERATION_START_1 >= 48 -# define BOOST_PP_ITERATION_1 48 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 47 && BOOST_PP_ITERATION_START_1 >= 47 -# define BOOST_PP_ITERATION_1 47 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 46 && BOOST_PP_ITERATION_START_1 >= 46 -# define BOOST_PP_ITERATION_1 46 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 45 && BOOST_PP_ITERATION_START_1 >= 45 -# define BOOST_PP_ITERATION_1 45 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 44 && BOOST_PP_ITERATION_START_1 >= 44 -# define BOOST_PP_ITERATION_1 44 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 43 && BOOST_PP_ITERATION_START_1 >= 43 -# define BOOST_PP_ITERATION_1 43 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 42 && BOOST_PP_ITERATION_START_1 >= 42 -# define BOOST_PP_ITERATION_1 42 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 41 && BOOST_PP_ITERATION_START_1 >= 41 -# define BOOST_PP_ITERATION_1 41 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 40 && BOOST_PP_ITERATION_START_1 >= 40 -# define BOOST_PP_ITERATION_1 40 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 39 && BOOST_PP_ITERATION_START_1 >= 39 -# define BOOST_PP_ITERATION_1 39 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 38 && BOOST_PP_ITERATION_START_1 >= 38 -# define BOOST_PP_ITERATION_1 38 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 37 && BOOST_PP_ITERATION_START_1 >= 37 -# define BOOST_PP_ITERATION_1 37 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 36 && BOOST_PP_ITERATION_START_1 >= 36 -# define BOOST_PP_ITERATION_1 36 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 35 && BOOST_PP_ITERATION_START_1 >= 35 -# define BOOST_PP_ITERATION_1 35 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 34 && BOOST_PP_ITERATION_START_1 >= 34 -# define BOOST_PP_ITERATION_1 34 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 33 && BOOST_PP_ITERATION_START_1 >= 33 -# define BOOST_PP_ITERATION_1 33 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 32 && BOOST_PP_ITERATION_START_1 >= 32 -# define BOOST_PP_ITERATION_1 32 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 31 && BOOST_PP_ITERATION_START_1 >= 31 -# define BOOST_PP_ITERATION_1 31 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 30 && BOOST_PP_ITERATION_START_1 >= 30 -# define BOOST_PP_ITERATION_1 30 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 29 && BOOST_PP_ITERATION_START_1 >= 29 -# define BOOST_PP_ITERATION_1 29 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 28 && BOOST_PP_ITERATION_START_1 >= 28 -# define BOOST_PP_ITERATION_1 28 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 27 && BOOST_PP_ITERATION_START_1 >= 27 -# define BOOST_PP_ITERATION_1 27 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 26 && BOOST_PP_ITERATION_START_1 >= 26 -# define BOOST_PP_ITERATION_1 26 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 25 && BOOST_PP_ITERATION_START_1 >= 25 -# define BOOST_PP_ITERATION_1 25 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 24 && BOOST_PP_ITERATION_START_1 >= 24 -# define BOOST_PP_ITERATION_1 24 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 23 && BOOST_PP_ITERATION_START_1 >= 23 -# define BOOST_PP_ITERATION_1 23 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 22 && BOOST_PP_ITERATION_START_1 >= 22 -# define BOOST_PP_ITERATION_1 22 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 21 && BOOST_PP_ITERATION_START_1 >= 21 -# define BOOST_PP_ITERATION_1 21 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 20 && BOOST_PP_ITERATION_START_1 >= 20 -# define BOOST_PP_ITERATION_1 20 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 19 && BOOST_PP_ITERATION_START_1 >= 19 -# define BOOST_PP_ITERATION_1 19 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 18 && BOOST_PP_ITERATION_START_1 >= 18 -# define BOOST_PP_ITERATION_1 18 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 17 && BOOST_PP_ITERATION_START_1 >= 17 -# define BOOST_PP_ITERATION_1 17 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 16 && BOOST_PP_ITERATION_START_1 >= 16 -# define BOOST_PP_ITERATION_1 16 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 15 && BOOST_PP_ITERATION_START_1 >= 15 -# define BOOST_PP_ITERATION_1 15 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 14 && BOOST_PP_ITERATION_START_1 >= 14 -# define BOOST_PP_ITERATION_1 14 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 13 && BOOST_PP_ITERATION_START_1 >= 13 -# define BOOST_PP_ITERATION_1 13 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 12 && BOOST_PP_ITERATION_START_1 >= 12 -# define BOOST_PP_ITERATION_1 12 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 11 && BOOST_PP_ITERATION_START_1 >= 11 -# define BOOST_PP_ITERATION_1 11 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 10 && BOOST_PP_ITERATION_START_1 >= 10 -# define BOOST_PP_ITERATION_1 10 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 9 && BOOST_PP_ITERATION_START_1 >= 9 -# define BOOST_PP_ITERATION_1 9 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 8 && BOOST_PP_ITERATION_START_1 >= 8 -# define BOOST_PP_ITERATION_1 8 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 7 && BOOST_PP_ITERATION_START_1 >= 7 -# define BOOST_PP_ITERATION_1 7 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 6 && BOOST_PP_ITERATION_START_1 >= 6 -# define BOOST_PP_ITERATION_1 6 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 5 && BOOST_PP_ITERATION_START_1 >= 5 -# define BOOST_PP_ITERATION_1 5 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 4 && BOOST_PP_ITERATION_START_1 >= 4 -# define BOOST_PP_ITERATION_1 4 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 3 && BOOST_PP_ITERATION_START_1 >= 3 -# define BOOST_PP_ITERATION_1 3 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 2 && BOOST_PP_ITERATION_START_1 >= 2 -# define BOOST_PP_ITERATION_1 2 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 1 && BOOST_PP_ITERATION_START_1 >= 1 -# define BOOST_PP_ITERATION_1 1 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif -# if BOOST_PP_ITERATION_FINISH_1 <= 0 && BOOST_PP_ITERATION_START_1 >= 0 -# define BOOST_PP_ITERATION_1 0 -# include BOOST_PP_FILENAME_1 -# undef BOOST_PP_ITERATION_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp deleted file mode 100644 index 521bd249b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse2.hpp +++ /dev/null @@ -1,1296 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if BOOST_PP_ITERATION_FINISH_2 <= 256 && BOOST_PP_ITERATION_START_2 >= 256 -# define BOOST_PP_ITERATION_2 256 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 255 && BOOST_PP_ITERATION_START_2 >= 255 -# define BOOST_PP_ITERATION_2 255 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 254 && BOOST_PP_ITERATION_START_2 >= 254 -# define BOOST_PP_ITERATION_2 254 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 253 && BOOST_PP_ITERATION_START_2 >= 253 -# define BOOST_PP_ITERATION_2 253 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 252 && BOOST_PP_ITERATION_START_2 >= 252 -# define BOOST_PP_ITERATION_2 252 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 251 && BOOST_PP_ITERATION_START_2 >= 251 -# define BOOST_PP_ITERATION_2 251 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 250 && BOOST_PP_ITERATION_START_2 >= 250 -# define BOOST_PP_ITERATION_2 250 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 249 && BOOST_PP_ITERATION_START_2 >= 249 -# define BOOST_PP_ITERATION_2 249 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 248 && BOOST_PP_ITERATION_START_2 >= 248 -# define BOOST_PP_ITERATION_2 248 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 247 && BOOST_PP_ITERATION_START_2 >= 247 -# define BOOST_PP_ITERATION_2 247 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 246 && BOOST_PP_ITERATION_START_2 >= 246 -# define BOOST_PP_ITERATION_2 246 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 245 && BOOST_PP_ITERATION_START_2 >= 245 -# define BOOST_PP_ITERATION_2 245 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 244 && BOOST_PP_ITERATION_START_2 >= 244 -# define BOOST_PP_ITERATION_2 244 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 243 && BOOST_PP_ITERATION_START_2 >= 243 -# define BOOST_PP_ITERATION_2 243 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 242 && BOOST_PP_ITERATION_START_2 >= 242 -# define BOOST_PP_ITERATION_2 242 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 241 && BOOST_PP_ITERATION_START_2 >= 241 -# define BOOST_PP_ITERATION_2 241 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 240 && BOOST_PP_ITERATION_START_2 >= 240 -# define BOOST_PP_ITERATION_2 240 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 239 && BOOST_PP_ITERATION_START_2 >= 239 -# define BOOST_PP_ITERATION_2 239 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 238 && BOOST_PP_ITERATION_START_2 >= 238 -# define BOOST_PP_ITERATION_2 238 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 237 && BOOST_PP_ITERATION_START_2 >= 237 -# define BOOST_PP_ITERATION_2 237 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 236 && BOOST_PP_ITERATION_START_2 >= 236 -# define BOOST_PP_ITERATION_2 236 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 235 && BOOST_PP_ITERATION_START_2 >= 235 -# define BOOST_PP_ITERATION_2 235 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 234 && BOOST_PP_ITERATION_START_2 >= 234 -# define BOOST_PP_ITERATION_2 234 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 233 && BOOST_PP_ITERATION_START_2 >= 233 -# define BOOST_PP_ITERATION_2 233 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 232 && BOOST_PP_ITERATION_START_2 >= 232 -# define BOOST_PP_ITERATION_2 232 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 231 && BOOST_PP_ITERATION_START_2 >= 231 -# define BOOST_PP_ITERATION_2 231 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 230 && BOOST_PP_ITERATION_START_2 >= 230 -# define BOOST_PP_ITERATION_2 230 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 229 && BOOST_PP_ITERATION_START_2 >= 229 -# define BOOST_PP_ITERATION_2 229 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 228 && BOOST_PP_ITERATION_START_2 >= 228 -# define BOOST_PP_ITERATION_2 228 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 227 && BOOST_PP_ITERATION_START_2 >= 227 -# define BOOST_PP_ITERATION_2 227 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 226 && BOOST_PP_ITERATION_START_2 >= 226 -# define BOOST_PP_ITERATION_2 226 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 225 && BOOST_PP_ITERATION_START_2 >= 225 -# define BOOST_PP_ITERATION_2 225 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 224 && BOOST_PP_ITERATION_START_2 >= 224 -# define BOOST_PP_ITERATION_2 224 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 223 && BOOST_PP_ITERATION_START_2 >= 223 -# define BOOST_PP_ITERATION_2 223 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 222 && BOOST_PP_ITERATION_START_2 >= 222 -# define BOOST_PP_ITERATION_2 222 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 221 && BOOST_PP_ITERATION_START_2 >= 221 -# define BOOST_PP_ITERATION_2 221 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 220 && BOOST_PP_ITERATION_START_2 >= 220 -# define BOOST_PP_ITERATION_2 220 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 219 && BOOST_PP_ITERATION_START_2 >= 219 -# define BOOST_PP_ITERATION_2 219 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 218 && BOOST_PP_ITERATION_START_2 >= 218 -# define BOOST_PP_ITERATION_2 218 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 217 && BOOST_PP_ITERATION_START_2 >= 217 -# define BOOST_PP_ITERATION_2 217 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 216 && BOOST_PP_ITERATION_START_2 >= 216 -# define BOOST_PP_ITERATION_2 216 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 215 && BOOST_PP_ITERATION_START_2 >= 215 -# define BOOST_PP_ITERATION_2 215 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 214 && BOOST_PP_ITERATION_START_2 >= 214 -# define BOOST_PP_ITERATION_2 214 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 213 && BOOST_PP_ITERATION_START_2 >= 213 -# define BOOST_PP_ITERATION_2 213 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 212 && BOOST_PP_ITERATION_START_2 >= 212 -# define BOOST_PP_ITERATION_2 212 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 211 && BOOST_PP_ITERATION_START_2 >= 211 -# define BOOST_PP_ITERATION_2 211 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 210 && BOOST_PP_ITERATION_START_2 >= 210 -# define BOOST_PP_ITERATION_2 210 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 209 && BOOST_PP_ITERATION_START_2 >= 209 -# define BOOST_PP_ITERATION_2 209 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 208 && BOOST_PP_ITERATION_START_2 >= 208 -# define BOOST_PP_ITERATION_2 208 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 207 && BOOST_PP_ITERATION_START_2 >= 207 -# define BOOST_PP_ITERATION_2 207 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 206 && BOOST_PP_ITERATION_START_2 >= 206 -# define BOOST_PP_ITERATION_2 206 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 205 && BOOST_PP_ITERATION_START_2 >= 205 -# define BOOST_PP_ITERATION_2 205 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 204 && BOOST_PP_ITERATION_START_2 >= 204 -# define BOOST_PP_ITERATION_2 204 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 203 && BOOST_PP_ITERATION_START_2 >= 203 -# define BOOST_PP_ITERATION_2 203 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 202 && BOOST_PP_ITERATION_START_2 >= 202 -# define BOOST_PP_ITERATION_2 202 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 201 && BOOST_PP_ITERATION_START_2 >= 201 -# define BOOST_PP_ITERATION_2 201 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 200 && BOOST_PP_ITERATION_START_2 >= 200 -# define BOOST_PP_ITERATION_2 200 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 199 && BOOST_PP_ITERATION_START_2 >= 199 -# define BOOST_PP_ITERATION_2 199 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 198 && BOOST_PP_ITERATION_START_2 >= 198 -# define BOOST_PP_ITERATION_2 198 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 197 && BOOST_PP_ITERATION_START_2 >= 197 -# define BOOST_PP_ITERATION_2 197 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 196 && BOOST_PP_ITERATION_START_2 >= 196 -# define BOOST_PP_ITERATION_2 196 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 195 && BOOST_PP_ITERATION_START_2 >= 195 -# define BOOST_PP_ITERATION_2 195 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 194 && BOOST_PP_ITERATION_START_2 >= 194 -# define BOOST_PP_ITERATION_2 194 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 193 && BOOST_PP_ITERATION_START_2 >= 193 -# define BOOST_PP_ITERATION_2 193 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 192 && BOOST_PP_ITERATION_START_2 >= 192 -# define BOOST_PP_ITERATION_2 192 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 191 && BOOST_PP_ITERATION_START_2 >= 191 -# define BOOST_PP_ITERATION_2 191 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 190 && BOOST_PP_ITERATION_START_2 >= 190 -# define BOOST_PP_ITERATION_2 190 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 189 && BOOST_PP_ITERATION_START_2 >= 189 -# define BOOST_PP_ITERATION_2 189 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 188 && BOOST_PP_ITERATION_START_2 >= 188 -# define BOOST_PP_ITERATION_2 188 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 187 && BOOST_PP_ITERATION_START_2 >= 187 -# define BOOST_PP_ITERATION_2 187 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 186 && BOOST_PP_ITERATION_START_2 >= 186 -# define BOOST_PP_ITERATION_2 186 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 185 && BOOST_PP_ITERATION_START_2 >= 185 -# define BOOST_PP_ITERATION_2 185 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 184 && BOOST_PP_ITERATION_START_2 >= 184 -# define BOOST_PP_ITERATION_2 184 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 183 && BOOST_PP_ITERATION_START_2 >= 183 -# define BOOST_PP_ITERATION_2 183 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 182 && BOOST_PP_ITERATION_START_2 >= 182 -# define BOOST_PP_ITERATION_2 182 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 181 && BOOST_PP_ITERATION_START_2 >= 181 -# define BOOST_PP_ITERATION_2 181 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 180 && BOOST_PP_ITERATION_START_2 >= 180 -# define BOOST_PP_ITERATION_2 180 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 179 && BOOST_PP_ITERATION_START_2 >= 179 -# define BOOST_PP_ITERATION_2 179 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 178 && BOOST_PP_ITERATION_START_2 >= 178 -# define BOOST_PP_ITERATION_2 178 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 177 && BOOST_PP_ITERATION_START_2 >= 177 -# define BOOST_PP_ITERATION_2 177 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 176 && BOOST_PP_ITERATION_START_2 >= 176 -# define BOOST_PP_ITERATION_2 176 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 175 && BOOST_PP_ITERATION_START_2 >= 175 -# define BOOST_PP_ITERATION_2 175 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 174 && BOOST_PP_ITERATION_START_2 >= 174 -# define BOOST_PP_ITERATION_2 174 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 173 && BOOST_PP_ITERATION_START_2 >= 173 -# define BOOST_PP_ITERATION_2 173 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 172 && BOOST_PP_ITERATION_START_2 >= 172 -# define BOOST_PP_ITERATION_2 172 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 171 && BOOST_PP_ITERATION_START_2 >= 171 -# define BOOST_PP_ITERATION_2 171 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 170 && BOOST_PP_ITERATION_START_2 >= 170 -# define BOOST_PP_ITERATION_2 170 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 169 && BOOST_PP_ITERATION_START_2 >= 169 -# define BOOST_PP_ITERATION_2 169 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 168 && BOOST_PP_ITERATION_START_2 >= 168 -# define BOOST_PP_ITERATION_2 168 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 167 && BOOST_PP_ITERATION_START_2 >= 167 -# define BOOST_PP_ITERATION_2 167 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 166 && BOOST_PP_ITERATION_START_2 >= 166 -# define BOOST_PP_ITERATION_2 166 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 165 && BOOST_PP_ITERATION_START_2 >= 165 -# define BOOST_PP_ITERATION_2 165 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 164 && BOOST_PP_ITERATION_START_2 >= 164 -# define BOOST_PP_ITERATION_2 164 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 163 && BOOST_PP_ITERATION_START_2 >= 163 -# define BOOST_PP_ITERATION_2 163 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 162 && BOOST_PP_ITERATION_START_2 >= 162 -# define BOOST_PP_ITERATION_2 162 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 161 && BOOST_PP_ITERATION_START_2 >= 161 -# define BOOST_PP_ITERATION_2 161 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 160 && BOOST_PP_ITERATION_START_2 >= 160 -# define BOOST_PP_ITERATION_2 160 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 159 && BOOST_PP_ITERATION_START_2 >= 159 -# define BOOST_PP_ITERATION_2 159 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 158 && BOOST_PP_ITERATION_START_2 >= 158 -# define BOOST_PP_ITERATION_2 158 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 157 && BOOST_PP_ITERATION_START_2 >= 157 -# define BOOST_PP_ITERATION_2 157 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 156 && BOOST_PP_ITERATION_START_2 >= 156 -# define BOOST_PP_ITERATION_2 156 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 155 && BOOST_PP_ITERATION_START_2 >= 155 -# define BOOST_PP_ITERATION_2 155 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 154 && BOOST_PP_ITERATION_START_2 >= 154 -# define BOOST_PP_ITERATION_2 154 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 153 && BOOST_PP_ITERATION_START_2 >= 153 -# define BOOST_PP_ITERATION_2 153 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 152 && BOOST_PP_ITERATION_START_2 >= 152 -# define BOOST_PP_ITERATION_2 152 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 151 && BOOST_PP_ITERATION_START_2 >= 151 -# define BOOST_PP_ITERATION_2 151 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 150 && BOOST_PP_ITERATION_START_2 >= 150 -# define BOOST_PP_ITERATION_2 150 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 149 && BOOST_PP_ITERATION_START_2 >= 149 -# define BOOST_PP_ITERATION_2 149 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 148 && BOOST_PP_ITERATION_START_2 >= 148 -# define BOOST_PP_ITERATION_2 148 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 147 && BOOST_PP_ITERATION_START_2 >= 147 -# define BOOST_PP_ITERATION_2 147 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 146 && BOOST_PP_ITERATION_START_2 >= 146 -# define BOOST_PP_ITERATION_2 146 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 145 && BOOST_PP_ITERATION_START_2 >= 145 -# define BOOST_PP_ITERATION_2 145 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 144 && BOOST_PP_ITERATION_START_2 >= 144 -# define BOOST_PP_ITERATION_2 144 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 143 && BOOST_PP_ITERATION_START_2 >= 143 -# define BOOST_PP_ITERATION_2 143 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 142 && BOOST_PP_ITERATION_START_2 >= 142 -# define BOOST_PP_ITERATION_2 142 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 141 && BOOST_PP_ITERATION_START_2 >= 141 -# define BOOST_PP_ITERATION_2 141 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 140 && BOOST_PP_ITERATION_START_2 >= 140 -# define BOOST_PP_ITERATION_2 140 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 139 && BOOST_PP_ITERATION_START_2 >= 139 -# define BOOST_PP_ITERATION_2 139 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 138 && BOOST_PP_ITERATION_START_2 >= 138 -# define BOOST_PP_ITERATION_2 138 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 137 && BOOST_PP_ITERATION_START_2 >= 137 -# define BOOST_PP_ITERATION_2 137 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 136 && BOOST_PP_ITERATION_START_2 >= 136 -# define BOOST_PP_ITERATION_2 136 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 135 && BOOST_PP_ITERATION_START_2 >= 135 -# define BOOST_PP_ITERATION_2 135 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 134 && BOOST_PP_ITERATION_START_2 >= 134 -# define BOOST_PP_ITERATION_2 134 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 133 && BOOST_PP_ITERATION_START_2 >= 133 -# define BOOST_PP_ITERATION_2 133 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 132 && BOOST_PP_ITERATION_START_2 >= 132 -# define BOOST_PP_ITERATION_2 132 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 131 && BOOST_PP_ITERATION_START_2 >= 131 -# define BOOST_PP_ITERATION_2 131 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 130 && BOOST_PP_ITERATION_START_2 >= 130 -# define BOOST_PP_ITERATION_2 130 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 129 && BOOST_PP_ITERATION_START_2 >= 129 -# define BOOST_PP_ITERATION_2 129 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 128 && BOOST_PP_ITERATION_START_2 >= 128 -# define BOOST_PP_ITERATION_2 128 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 127 && BOOST_PP_ITERATION_START_2 >= 127 -# define BOOST_PP_ITERATION_2 127 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 126 && BOOST_PP_ITERATION_START_2 >= 126 -# define BOOST_PP_ITERATION_2 126 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 125 && BOOST_PP_ITERATION_START_2 >= 125 -# define BOOST_PP_ITERATION_2 125 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 124 && BOOST_PP_ITERATION_START_2 >= 124 -# define BOOST_PP_ITERATION_2 124 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 123 && BOOST_PP_ITERATION_START_2 >= 123 -# define BOOST_PP_ITERATION_2 123 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 122 && BOOST_PP_ITERATION_START_2 >= 122 -# define BOOST_PP_ITERATION_2 122 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 121 && BOOST_PP_ITERATION_START_2 >= 121 -# define BOOST_PP_ITERATION_2 121 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 120 && BOOST_PP_ITERATION_START_2 >= 120 -# define BOOST_PP_ITERATION_2 120 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 119 && BOOST_PP_ITERATION_START_2 >= 119 -# define BOOST_PP_ITERATION_2 119 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 118 && BOOST_PP_ITERATION_START_2 >= 118 -# define BOOST_PP_ITERATION_2 118 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 117 && BOOST_PP_ITERATION_START_2 >= 117 -# define BOOST_PP_ITERATION_2 117 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 116 && BOOST_PP_ITERATION_START_2 >= 116 -# define BOOST_PP_ITERATION_2 116 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 115 && BOOST_PP_ITERATION_START_2 >= 115 -# define BOOST_PP_ITERATION_2 115 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 114 && BOOST_PP_ITERATION_START_2 >= 114 -# define BOOST_PP_ITERATION_2 114 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 113 && BOOST_PP_ITERATION_START_2 >= 113 -# define BOOST_PP_ITERATION_2 113 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 112 && BOOST_PP_ITERATION_START_2 >= 112 -# define BOOST_PP_ITERATION_2 112 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 111 && BOOST_PP_ITERATION_START_2 >= 111 -# define BOOST_PP_ITERATION_2 111 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 110 && BOOST_PP_ITERATION_START_2 >= 110 -# define BOOST_PP_ITERATION_2 110 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 109 && BOOST_PP_ITERATION_START_2 >= 109 -# define BOOST_PP_ITERATION_2 109 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 108 && BOOST_PP_ITERATION_START_2 >= 108 -# define BOOST_PP_ITERATION_2 108 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 107 && BOOST_PP_ITERATION_START_2 >= 107 -# define BOOST_PP_ITERATION_2 107 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 106 && BOOST_PP_ITERATION_START_2 >= 106 -# define BOOST_PP_ITERATION_2 106 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 105 && BOOST_PP_ITERATION_START_2 >= 105 -# define BOOST_PP_ITERATION_2 105 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 104 && BOOST_PP_ITERATION_START_2 >= 104 -# define BOOST_PP_ITERATION_2 104 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 103 && BOOST_PP_ITERATION_START_2 >= 103 -# define BOOST_PP_ITERATION_2 103 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 102 && BOOST_PP_ITERATION_START_2 >= 102 -# define BOOST_PP_ITERATION_2 102 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 101 && BOOST_PP_ITERATION_START_2 >= 101 -# define BOOST_PP_ITERATION_2 101 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 100 && BOOST_PP_ITERATION_START_2 >= 100 -# define BOOST_PP_ITERATION_2 100 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 99 && BOOST_PP_ITERATION_START_2 >= 99 -# define BOOST_PP_ITERATION_2 99 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 98 && BOOST_PP_ITERATION_START_2 >= 98 -# define BOOST_PP_ITERATION_2 98 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 97 && BOOST_PP_ITERATION_START_2 >= 97 -# define BOOST_PP_ITERATION_2 97 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 96 && BOOST_PP_ITERATION_START_2 >= 96 -# define BOOST_PP_ITERATION_2 96 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 95 && BOOST_PP_ITERATION_START_2 >= 95 -# define BOOST_PP_ITERATION_2 95 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 94 && BOOST_PP_ITERATION_START_2 >= 94 -# define BOOST_PP_ITERATION_2 94 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 93 && BOOST_PP_ITERATION_START_2 >= 93 -# define BOOST_PP_ITERATION_2 93 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 92 && BOOST_PP_ITERATION_START_2 >= 92 -# define BOOST_PP_ITERATION_2 92 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 91 && BOOST_PP_ITERATION_START_2 >= 91 -# define BOOST_PP_ITERATION_2 91 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 90 && BOOST_PP_ITERATION_START_2 >= 90 -# define BOOST_PP_ITERATION_2 90 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 89 && BOOST_PP_ITERATION_START_2 >= 89 -# define BOOST_PP_ITERATION_2 89 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 88 && BOOST_PP_ITERATION_START_2 >= 88 -# define BOOST_PP_ITERATION_2 88 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 87 && BOOST_PP_ITERATION_START_2 >= 87 -# define BOOST_PP_ITERATION_2 87 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 86 && BOOST_PP_ITERATION_START_2 >= 86 -# define BOOST_PP_ITERATION_2 86 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 85 && BOOST_PP_ITERATION_START_2 >= 85 -# define BOOST_PP_ITERATION_2 85 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 84 && BOOST_PP_ITERATION_START_2 >= 84 -# define BOOST_PP_ITERATION_2 84 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 83 && BOOST_PP_ITERATION_START_2 >= 83 -# define BOOST_PP_ITERATION_2 83 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 82 && BOOST_PP_ITERATION_START_2 >= 82 -# define BOOST_PP_ITERATION_2 82 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 81 && BOOST_PP_ITERATION_START_2 >= 81 -# define BOOST_PP_ITERATION_2 81 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 80 && BOOST_PP_ITERATION_START_2 >= 80 -# define BOOST_PP_ITERATION_2 80 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 79 && BOOST_PP_ITERATION_START_2 >= 79 -# define BOOST_PP_ITERATION_2 79 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 78 && BOOST_PP_ITERATION_START_2 >= 78 -# define BOOST_PP_ITERATION_2 78 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 77 && BOOST_PP_ITERATION_START_2 >= 77 -# define BOOST_PP_ITERATION_2 77 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 76 && BOOST_PP_ITERATION_START_2 >= 76 -# define BOOST_PP_ITERATION_2 76 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 75 && BOOST_PP_ITERATION_START_2 >= 75 -# define BOOST_PP_ITERATION_2 75 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 74 && BOOST_PP_ITERATION_START_2 >= 74 -# define BOOST_PP_ITERATION_2 74 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 73 && BOOST_PP_ITERATION_START_2 >= 73 -# define BOOST_PP_ITERATION_2 73 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 72 && BOOST_PP_ITERATION_START_2 >= 72 -# define BOOST_PP_ITERATION_2 72 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 71 && BOOST_PP_ITERATION_START_2 >= 71 -# define BOOST_PP_ITERATION_2 71 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 70 && BOOST_PP_ITERATION_START_2 >= 70 -# define BOOST_PP_ITERATION_2 70 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 69 && BOOST_PP_ITERATION_START_2 >= 69 -# define BOOST_PP_ITERATION_2 69 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 68 && BOOST_PP_ITERATION_START_2 >= 68 -# define BOOST_PP_ITERATION_2 68 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 67 && BOOST_PP_ITERATION_START_2 >= 67 -# define BOOST_PP_ITERATION_2 67 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 66 && BOOST_PP_ITERATION_START_2 >= 66 -# define BOOST_PP_ITERATION_2 66 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 65 && BOOST_PP_ITERATION_START_2 >= 65 -# define BOOST_PP_ITERATION_2 65 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 64 && BOOST_PP_ITERATION_START_2 >= 64 -# define BOOST_PP_ITERATION_2 64 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 63 && BOOST_PP_ITERATION_START_2 >= 63 -# define BOOST_PP_ITERATION_2 63 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 62 && BOOST_PP_ITERATION_START_2 >= 62 -# define BOOST_PP_ITERATION_2 62 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 61 && BOOST_PP_ITERATION_START_2 >= 61 -# define BOOST_PP_ITERATION_2 61 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 60 && BOOST_PP_ITERATION_START_2 >= 60 -# define BOOST_PP_ITERATION_2 60 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 59 && BOOST_PP_ITERATION_START_2 >= 59 -# define BOOST_PP_ITERATION_2 59 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 58 && BOOST_PP_ITERATION_START_2 >= 58 -# define BOOST_PP_ITERATION_2 58 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 57 && BOOST_PP_ITERATION_START_2 >= 57 -# define BOOST_PP_ITERATION_2 57 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 56 && BOOST_PP_ITERATION_START_2 >= 56 -# define BOOST_PP_ITERATION_2 56 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 55 && BOOST_PP_ITERATION_START_2 >= 55 -# define BOOST_PP_ITERATION_2 55 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 54 && BOOST_PP_ITERATION_START_2 >= 54 -# define BOOST_PP_ITERATION_2 54 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 53 && BOOST_PP_ITERATION_START_2 >= 53 -# define BOOST_PP_ITERATION_2 53 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 52 && BOOST_PP_ITERATION_START_2 >= 52 -# define BOOST_PP_ITERATION_2 52 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 51 && BOOST_PP_ITERATION_START_2 >= 51 -# define BOOST_PP_ITERATION_2 51 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 50 && BOOST_PP_ITERATION_START_2 >= 50 -# define BOOST_PP_ITERATION_2 50 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 49 && BOOST_PP_ITERATION_START_2 >= 49 -# define BOOST_PP_ITERATION_2 49 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 48 && BOOST_PP_ITERATION_START_2 >= 48 -# define BOOST_PP_ITERATION_2 48 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 47 && BOOST_PP_ITERATION_START_2 >= 47 -# define BOOST_PP_ITERATION_2 47 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 46 && BOOST_PP_ITERATION_START_2 >= 46 -# define BOOST_PP_ITERATION_2 46 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 45 && BOOST_PP_ITERATION_START_2 >= 45 -# define BOOST_PP_ITERATION_2 45 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 44 && BOOST_PP_ITERATION_START_2 >= 44 -# define BOOST_PP_ITERATION_2 44 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 43 && BOOST_PP_ITERATION_START_2 >= 43 -# define BOOST_PP_ITERATION_2 43 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 42 && BOOST_PP_ITERATION_START_2 >= 42 -# define BOOST_PP_ITERATION_2 42 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 41 && BOOST_PP_ITERATION_START_2 >= 41 -# define BOOST_PP_ITERATION_2 41 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 40 && BOOST_PP_ITERATION_START_2 >= 40 -# define BOOST_PP_ITERATION_2 40 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 39 && BOOST_PP_ITERATION_START_2 >= 39 -# define BOOST_PP_ITERATION_2 39 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 38 && BOOST_PP_ITERATION_START_2 >= 38 -# define BOOST_PP_ITERATION_2 38 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 37 && BOOST_PP_ITERATION_START_2 >= 37 -# define BOOST_PP_ITERATION_2 37 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 36 && BOOST_PP_ITERATION_START_2 >= 36 -# define BOOST_PP_ITERATION_2 36 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 35 && BOOST_PP_ITERATION_START_2 >= 35 -# define BOOST_PP_ITERATION_2 35 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 34 && BOOST_PP_ITERATION_START_2 >= 34 -# define BOOST_PP_ITERATION_2 34 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 33 && BOOST_PP_ITERATION_START_2 >= 33 -# define BOOST_PP_ITERATION_2 33 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 32 && BOOST_PP_ITERATION_START_2 >= 32 -# define BOOST_PP_ITERATION_2 32 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 31 && BOOST_PP_ITERATION_START_2 >= 31 -# define BOOST_PP_ITERATION_2 31 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 30 && BOOST_PP_ITERATION_START_2 >= 30 -# define BOOST_PP_ITERATION_2 30 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 29 && BOOST_PP_ITERATION_START_2 >= 29 -# define BOOST_PP_ITERATION_2 29 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 28 && BOOST_PP_ITERATION_START_2 >= 28 -# define BOOST_PP_ITERATION_2 28 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 27 && BOOST_PP_ITERATION_START_2 >= 27 -# define BOOST_PP_ITERATION_2 27 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 26 && BOOST_PP_ITERATION_START_2 >= 26 -# define BOOST_PP_ITERATION_2 26 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 25 && BOOST_PP_ITERATION_START_2 >= 25 -# define BOOST_PP_ITERATION_2 25 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 24 && BOOST_PP_ITERATION_START_2 >= 24 -# define BOOST_PP_ITERATION_2 24 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 23 && BOOST_PP_ITERATION_START_2 >= 23 -# define BOOST_PP_ITERATION_2 23 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 22 && BOOST_PP_ITERATION_START_2 >= 22 -# define BOOST_PP_ITERATION_2 22 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 21 && BOOST_PP_ITERATION_START_2 >= 21 -# define BOOST_PP_ITERATION_2 21 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 20 && BOOST_PP_ITERATION_START_2 >= 20 -# define BOOST_PP_ITERATION_2 20 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 19 && BOOST_PP_ITERATION_START_2 >= 19 -# define BOOST_PP_ITERATION_2 19 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 18 && BOOST_PP_ITERATION_START_2 >= 18 -# define BOOST_PP_ITERATION_2 18 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 17 && BOOST_PP_ITERATION_START_2 >= 17 -# define BOOST_PP_ITERATION_2 17 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 16 && BOOST_PP_ITERATION_START_2 >= 16 -# define BOOST_PP_ITERATION_2 16 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 15 && BOOST_PP_ITERATION_START_2 >= 15 -# define BOOST_PP_ITERATION_2 15 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 14 && BOOST_PP_ITERATION_START_2 >= 14 -# define BOOST_PP_ITERATION_2 14 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 13 && BOOST_PP_ITERATION_START_2 >= 13 -# define BOOST_PP_ITERATION_2 13 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 12 && BOOST_PP_ITERATION_START_2 >= 12 -# define BOOST_PP_ITERATION_2 12 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 11 && BOOST_PP_ITERATION_START_2 >= 11 -# define BOOST_PP_ITERATION_2 11 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 10 && BOOST_PP_ITERATION_START_2 >= 10 -# define BOOST_PP_ITERATION_2 10 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 9 && BOOST_PP_ITERATION_START_2 >= 9 -# define BOOST_PP_ITERATION_2 9 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 8 && BOOST_PP_ITERATION_START_2 >= 8 -# define BOOST_PP_ITERATION_2 8 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 7 && BOOST_PP_ITERATION_START_2 >= 7 -# define BOOST_PP_ITERATION_2 7 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 6 && BOOST_PP_ITERATION_START_2 >= 6 -# define BOOST_PP_ITERATION_2 6 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 5 && BOOST_PP_ITERATION_START_2 >= 5 -# define BOOST_PP_ITERATION_2 5 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 4 && BOOST_PP_ITERATION_START_2 >= 4 -# define BOOST_PP_ITERATION_2 4 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 3 && BOOST_PP_ITERATION_START_2 >= 3 -# define BOOST_PP_ITERATION_2 3 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 2 && BOOST_PP_ITERATION_START_2 >= 2 -# define BOOST_PP_ITERATION_2 2 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 1 && BOOST_PP_ITERATION_START_2 >= 1 -# define BOOST_PP_ITERATION_2 1 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif -# if BOOST_PP_ITERATION_FINISH_2 <= 0 && BOOST_PP_ITERATION_START_2 >= 0 -# define BOOST_PP_ITERATION_2 0 -# include BOOST_PP_FILENAME_2 -# undef BOOST_PP_ITERATION_2 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp deleted file mode 100644 index 0a655149c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse3.hpp +++ /dev/null @@ -1,1296 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if BOOST_PP_ITERATION_FINISH_3 <= 256 && BOOST_PP_ITERATION_START_3 >= 256 -# define BOOST_PP_ITERATION_3 256 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 255 && BOOST_PP_ITERATION_START_3 >= 255 -# define BOOST_PP_ITERATION_3 255 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 254 && BOOST_PP_ITERATION_START_3 >= 254 -# define BOOST_PP_ITERATION_3 254 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 253 && BOOST_PP_ITERATION_START_3 >= 253 -# define BOOST_PP_ITERATION_3 253 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 252 && BOOST_PP_ITERATION_START_3 >= 252 -# define BOOST_PP_ITERATION_3 252 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 251 && BOOST_PP_ITERATION_START_3 >= 251 -# define BOOST_PP_ITERATION_3 251 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 250 && BOOST_PP_ITERATION_START_3 >= 250 -# define BOOST_PP_ITERATION_3 250 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 249 && BOOST_PP_ITERATION_START_3 >= 249 -# define BOOST_PP_ITERATION_3 249 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 248 && BOOST_PP_ITERATION_START_3 >= 248 -# define BOOST_PP_ITERATION_3 248 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 247 && BOOST_PP_ITERATION_START_3 >= 247 -# define BOOST_PP_ITERATION_3 247 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 246 && BOOST_PP_ITERATION_START_3 >= 246 -# define BOOST_PP_ITERATION_3 246 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 245 && BOOST_PP_ITERATION_START_3 >= 245 -# define BOOST_PP_ITERATION_3 245 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 244 && BOOST_PP_ITERATION_START_3 >= 244 -# define BOOST_PP_ITERATION_3 244 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 243 && BOOST_PP_ITERATION_START_3 >= 243 -# define BOOST_PP_ITERATION_3 243 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 242 && BOOST_PP_ITERATION_START_3 >= 242 -# define BOOST_PP_ITERATION_3 242 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 241 && BOOST_PP_ITERATION_START_3 >= 241 -# define BOOST_PP_ITERATION_3 241 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 240 && BOOST_PP_ITERATION_START_3 >= 240 -# define BOOST_PP_ITERATION_3 240 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 239 && BOOST_PP_ITERATION_START_3 >= 239 -# define BOOST_PP_ITERATION_3 239 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 238 && BOOST_PP_ITERATION_START_3 >= 238 -# define BOOST_PP_ITERATION_3 238 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 237 && BOOST_PP_ITERATION_START_3 >= 237 -# define BOOST_PP_ITERATION_3 237 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 236 && BOOST_PP_ITERATION_START_3 >= 236 -# define BOOST_PP_ITERATION_3 236 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 235 && BOOST_PP_ITERATION_START_3 >= 235 -# define BOOST_PP_ITERATION_3 235 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 234 && BOOST_PP_ITERATION_START_3 >= 234 -# define BOOST_PP_ITERATION_3 234 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 233 && BOOST_PP_ITERATION_START_3 >= 233 -# define BOOST_PP_ITERATION_3 233 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 232 && BOOST_PP_ITERATION_START_3 >= 232 -# define BOOST_PP_ITERATION_3 232 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 231 && BOOST_PP_ITERATION_START_3 >= 231 -# define BOOST_PP_ITERATION_3 231 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 230 && BOOST_PP_ITERATION_START_3 >= 230 -# define BOOST_PP_ITERATION_3 230 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 229 && BOOST_PP_ITERATION_START_3 >= 229 -# define BOOST_PP_ITERATION_3 229 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 228 && BOOST_PP_ITERATION_START_3 >= 228 -# define BOOST_PP_ITERATION_3 228 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 227 && BOOST_PP_ITERATION_START_3 >= 227 -# define BOOST_PP_ITERATION_3 227 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 226 && BOOST_PP_ITERATION_START_3 >= 226 -# define BOOST_PP_ITERATION_3 226 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 225 && BOOST_PP_ITERATION_START_3 >= 225 -# define BOOST_PP_ITERATION_3 225 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 224 && BOOST_PP_ITERATION_START_3 >= 224 -# define BOOST_PP_ITERATION_3 224 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 223 && BOOST_PP_ITERATION_START_3 >= 223 -# define BOOST_PP_ITERATION_3 223 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 222 && BOOST_PP_ITERATION_START_3 >= 222 -# define BOOST_PP_ITERATION_3 222 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 221 && BOOST_PP_ITERATION_START_3 >= 221 -# define BOOST_PP_ITERATION_3 221 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 220 && BOOST_PP_ITERATION_START_3 >= 220 -# define BOOST_PP_ITERATION_3 220 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 219 && BOOST_PP_ITERATION_START_3 >= 219 -# define BOOST_PP_ITERATION_3 219 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 218 && BOOST_PP_ITERATION_START_3 >= 218 -# define BOOST_PP_ITERATION_3 218 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 217 && BOOST_PP_ITERATION_START_3 >= 217 -# define BOOST_PP_ITERATION_3 217 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 216 && BOOST_PP_ITERATION_START_3 >= 216 -# define BOOST_PP_ITERATION_3 216 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 215 && BOOST_PP_ITERATION_START_3 >= 215 -# define BOOST_PP_ITERATION_3 215 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 214 && BOOST_PP_ITERATION_START_3 >= 214 -# define BOOST_PP_ITERATION_3 214 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 213 && BOOST_PP_ITERATION_START_3 >= 213 -# define BOOST_PP_ITERATION_3 213 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 212 && BOOST_PP_ITERATION_START_3 >= 212 -# define BOOST_PP_ITERATION_3 212 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 211 && BOOST_PP_ITERATION_START_3 >= 211 -# define BOOST_PP_ITERATION_3 211 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 210 && BOOST_PP_ITERATION_START_3 >= 210 -# define BOOST_PP_ITERATION_3 210 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 209 && BOOST_PP_ITERATION_START_3 >= 209 -# define BOOST_PP_ITERATION_3 209 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 208 && BOOST_PP_ITERATION_START_3 >= 208 -# define BOOST_PP_ITERATION_3 208 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 207 && BOOST_PP_ITERATION_START_3 >= 207 -# define BOOST_PP_ITERATION_3 207 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 206 && BOOST_PP_ITERATION_START_3 >= 206 -# define BOOST_PP_ITERATION_3 206 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 205 && BOOST_PP_ITERATION_START_3 >= 205 -# define BOOST_PP_ITERATION_3 205 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 204 && BOOST_PP_ITERATION_START_3 >= 204 -# define BOOST_PP_ITERATION_3 204 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 203 && BOOST_PP_ITERATION_START_3 >= 203 -# define BOOST_PP_ITERATION_3 203 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 202 && BOOST_PP_ITERATION_START_3 >= 202 -# define BOOST_PP_ITERATION_3 202 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 201 && BOOST_PP_ITERATION_START_3 >= 201 -# define BOOST_PP_ITERATION_3 201 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 200 && BOOST_PP_ITERATION_START_3 >= 200 -# define BOOST_PP_ITERATION_3 200 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 199 && BOOST_PP_ITERATION_START_3 >= 199 -# define BOOST_PP_ITERATION_3 199 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 198 && BOOST_PP_ITERATION_START_3 >= 198 -# define BOOST_PP_ITERATION_3 198 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 197 && BOOST_PP_ITERATION_START_3 >= 197 -# define BOOST_PP_ITERATION_3 197 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 196 && BOOST_PP_ITERATION_START_3 >= 196 -# define BOOST_PP_ITERATION_3 196 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 195 && BOOST_PP_ITERATION_START_3 >= 195 -# define BOOST_PP_ITERATION_3 195 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 194 && BOOST_PP_ITERATION_START_3 >= 194 -# define BOOST_PP_ITERATION_3 194 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 193 && BOOST_PP_ITERATION_START_3 >= 193 -# define BOOST_PP_ITERATION_3 193 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 192 && BOOST_PP_ITERATION_START_3 >= 192 -# define BOOST_PP_ITERATION_3 192 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 191 && BOOST_PP_ITERATION_START_3 >= 191 -# define BOOST_PP_ITERATION_3 191 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 190 && BOOST_PP_ITERATION_START_3 >= 190 -# define BOOST_PP_ITERATION_3 190 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 189 && BOOST_PP_ITERATION_START_3 >= 189 -# define BOOST_PP_ITERATION_3 189 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 188 && BOOST_PP_ITERATION_START_3 >= 188 -# define BOOST_PP_ITERATION_3 188 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 187 && BOOST_PP_ITERATION_START_3 >= 187 -# define BOOST_PP_ITERATION_3 187 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 186 && BOOST_PP_ITERATION_START_3 >= 186 -# define BOOST_PP_ITERATION_3 186 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 185 && BOOST_PP_ITERATION_START_3 >= 185 -# define BOOST_PP_ITERATION_3 185 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 184 && BOOST_PP_ITERATION_START_3 >= 184 -# define BOOST_PP_ITERATION_3 184 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 183 && BOOST_PP_ITERATION_START_3 >= 183 -# define BOOST_PP_ITERATION_3 183 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 182 && BOOST_PP_ITERATION_START_3 >= 182 -# define BOOST_PP_ITERATION_3 182 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 181 && BOOST_PP_ITERATION_START_3 >= 181 -# define BOOST_PP_ITERATION_3 181 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 180 && BOOST_PP_ITERATION_START_3 >= 180 -# define BOOST_PP_ITERATION_3 180 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 179 && BOOST_PP_ITERATION_START_3 >= 179 -# define BOOST_PP_ITERATION_3 179 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 178 && BOOST_PP_ITERATION_START_3 >= 178 -# define BOOST_PP_ITERATION_3 178 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 177 && BOOST_PP_ITERATION_START_3 >= 177 -# define BOOST_PP_ITERATION_3 177 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 176 && BOOST_PP_ITERATION_START_3 >= 176 -# define BOOST_PP_ITERATION_3 176 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 175 && BOOST_PP_ITERATION_START_3 >= 175 -# define BOOST_PP_ITERATION_3 175 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 174 && BOOST_PP_ITERATION_START_3 >= 174 -# define BOOST_PP_ITERATION_3 174 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 173 && BOOST_PP_ITERATION_START_3 >= 173 -# define BOOST_PP_ITERATION_3 173 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 172 && BOOST_PP_ITERATION_START_3 >= 172 -# define BOOST_PP_ITERATION_3 172 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 171 && BOOST_PP_ITERATION_START_3 >= 171 -# define BOOST_PP_ITERATION_3 171 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 170 && BOOST_PP_ITERATION_START_3 >= 170 -# define BOOST_PP_ITERATION_3 170 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 169 && BOOST_PP_ITERATION_START_3 >= 169 -# define BOOST_PP_ITERATION_3 169 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 168 && BOOST_PP_ITERATION_START_3 >= 168 -# define BOOST_PP_ITERATION_3 168 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 167 && BOOST_PP_ITERATION_START_3 >= 167 -# define BOOST_PP_ITERATION_3 167 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 166 && BOOST_PP_ITERATION_START_3 >= 166 -# define BOOST_PP_ITERATION_3 166 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 165 && BOOST_PP_ITERATION_START_3 >= 165 -# define BOOST_PP_ITERATION_3 165 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 164 && BOOST_PP_ITERATION_START_3 >= 164 -# define BOOST_PP_ITERATION_3 164 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 163 && BOOST_PP_ITERATION_START_3 >= 163 -# define BOOST_PP_ITERATION_3 163 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 162 && BOOST_PP_ITERATION_START_3 >= 162 -# define BOOST_PP_ITERATION_3 162 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 161 && BOOST_PP_ITERATION_START_3 >= 161 -# define BOOST_PP_ITERATION_3 161 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 160 && BOOST_PP_ITERATION_START_3 >= 160 -# define BOOST_PP_ITERATION_3 160 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 159 && BOOST_PP_ITERATION_START_3 >= 159 -# define BOOST_PP_ITERATION_3 159 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 158 && BOOST_PP_ITERATION_START_3 >= 158 -# define BOOST_PP_ITERATION_3 158 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 157 && BOOST_PP_ITERATION_START_3 >= 157 -# define BOOST_PP_ITERATION_3 157 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 156 && BOOST_PP_ITERATION_START_3 >= 156 -# define BOOST_PP_ITERATION_3 156 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 155 && BOOST_PP_ITERATION_START_3 >= 155 -# define BOOST_PP_ITERATION_3 155 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 154 && BOOST_PP_ITERATION_START_3 >= 154 -# define BOOST_PP_ITERATION_3 154 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 153 && BOOST_PP_ITERATION_START_3 >= 153 -# define BOOST_PP_ITERATION_3 153 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 152 && BOOST_PP_ITERATION_START_3 >= 152 -# define BOOST_PP_ITERATION_3 152 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 151 && BOOST_PP_ITERATION_START_3 >= 151 -# define BOOST_PP_ITERATION_3 151 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 150 && BOOST_PP_ITERATION_START_3 >= 150 -# define BOOST_PP_ITERATION_3 150 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 149 && BOOST_PP_ITERATION_START_3 >= 149 -# define BOOST_PP_ITERATION_3 149 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 148 && BOOST_PP_ITERATION_START_3 >= 148 -# define BOOST_PP_ITERATION_3 148 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 147 && BOOST_PP_ITERATION_START_3 >= 147 -# define BOOST_PP_ITERATION_3 147 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 146 && BOOST_PP_ITERATION_START_3 >= 146 -# define BOOST_PP_ITERATION_3 146 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 145 && BOOST_PP_ITERATION_START_3 >= 145 -# define BOOST_PP_ITERATION_3 145 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 144 && BOOST_PP_ITERATION_START_3 >= 144 -# define BOOST_PP_ITERATION_3 144 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 143 && BOOST_PP_ITERATION_START_3 >= 143 -# define BOOST_PP_ITERATION_3 143 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 142 && BOOST_PP_ITERATION_START_3 >= 142 -# define BOOST_PP_ITERATION_3 142 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 141 && BOOST_PP_ITERATION_START_3 >= 141 -# define BOOST_PP_ITERATION_3 141 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 140 && BOOST_PP_ITERATION_START_3 >= 140 -# define BOOST_PP_ITERATION_3 140 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 139 && BOOST_PP_ITERATION_START_3 >= 139 -# define BOOST_PP_ITERATION_3 139 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 138 && BOOST_PP_ITERATION_START_3 >= 138 -# define BOOST_PP_ITERATION_3 138 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 137 && BOOST_PP_ITERATION_START_3 >= 137 -# define BOOST_PP_ITERATION_3 137 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 136 && BOOST_PP_ITERATION_START_3 >= 136 -# define BOOST_PP_ITERATION_3 136 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 135 && BOOST_PP_ITERATION_START_3 >= 135 -# define BOOST_PP_ITERATION_3 135 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 134 && BOOST_PP_ITERATION_START_3 >= 134 -# define BOOST_PP_ITERATION_3 134 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 133 && BOOST_PP_ITERATION_START_3 >= 133 -# define BOOST_PP_ITERATION_3 133 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 132 && BOOST_PP_ITERATION_START_3 >= 132 -# define BOOST_PP_ITERATION_3 132 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 131 && BOOST_PP_ITERATION_START_3 >= 131 -# define BOOST_PP_ITERATION_3 131 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 130 && BOOST_PP_ITERATION_START_3 >= 130 -# define BOOST_PP_ITERATION_3 130 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 129 && BOOST_PP_ITERATION_START_3 >= 129 -# define BOOST_PP_ITERATION_3 129 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 128 && BOOST_PP_ITERATION_START_3 >= 128 -# define BOOST_PP_ITERATION_3 128 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 127 && BOOST_PP_ITERATION_START_3 >= 127 -# define BOOST_PP_ITERATION_3 127 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 126 && BOOST_PP_ITERATION_START_3 >= 126 -# define BOOST_PP_ITERATION_3 126 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 125 && BOOST_PP_ITERATION_START_3 >= 125 -# define BOOST_PP_ITERATION_3 125 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 124 && BOOST_PP_ITERATION_START_3 >= 124 -# define BOOST_PP_ITERATION_3 124 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 123 && BOOST_PP_ITERATION_START_3 >= 123 -# define BOOST_PP_ITERATION_3 123 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 122 && BOOST_PP_ITERATION_START_3 >= 122 -# define BOOST_PP_ITERATION_3 122 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 121 && BOOST_PP_ITERATION_START_3 >= 121 -# define BOOST_PP_ITERATION_3 121 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 120 && BOOST_PP_ITERATION_START_3 >= 120 -# define BOOST_PP_ITERATION_3 120 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 119 && BOOST_PP_ITERATION_START_3 >= 119 -# define BOOST_PP_ITERATION_3 119 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 118 && BOOST_PP_ITERATION_START_3 >= 118 -# define BOOST_PP_ITERATION_3 118 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 117 && BOOST_PP_ITERATION_START_3 >= 117 -# define BOOST_PP_ITERATION_3 117 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 116 && BOOST_PP_ITERATION_START_3 >= 116 -# define BOOST_PP_ITERATION_3 116 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 115 && BOOST_PP_ITERATION_START_3 >= 115 -# define BOOST_PP_ITERATION_3 115 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 114 && BOOST_PP_ITERATION_START_3 >= 114 -# define BOOST_PP_ITERATION_3 114 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 113 && BOOST_PP_ITERATION_START_3 >= 113 -# define BOOST_PP_ITERATION_3 113 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 112 && BOOST_PP_ITERATION_START_3 >= 112 -# define BOOST_PP_ITERATION_3 112 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 111 && BOOST_PP_ITERATION_START_3 >= 111 -# define BOOST_PP_ITERATION_3 111 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 110 && BOOST_PP_ITERATION_START_3 >= 110 -# define BOOST_PP_ITERATION_3 110 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 109 && BOOST_PP_ITERATION_START_3 >= 109 -# define BOOST_PP_ITERATION_3 109 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 108 && BOOST_PP_ITERATION_START_3 >= 108 -# define BOOST_PP_ITERATION_3 108 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 107 && BOOST_PP_ITERATION_START_3 >= 107 -# define BOOST_PP_ITERATION_3 107 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 106 && BOOST_PP_ITERATION_START_3 >= 106 -# define BOOST_PP_ITERATION_3 106 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 105 && BOOST_PP_ITERATION_START_3 >= 105 -# define BOOST_PP_ITERATION_3 105 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 104 && BOOST_PP_ITERATION_START_3 >= 104 -# define BOOST_PP_ITERATION_3 104 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 103 && BOOST_PP_ITERATION_START_3 >= 103 -# define BOOST_PP_ITERATION_3 103 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 102 && BOOST_PP_ITERATION_START_3 >= 102 -# define BOOST_PP_ITERATION_3 102 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 101 && BOOST_PP_ITERATION_START_3 >= 101 -# define BOOST_PP_ITERATION_3 101 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 100 && BOOST_PP_ITERATION_START_3 >= 100 -# define BOOST_PP_ITERATION_3 100 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 99 && BOOST_PP_ITERATION_START_3 >= 99 -# define BOOST_PP_ITERATION_3 99 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 98 && BOOST_PP_ITERATION_START_3 >= 98 -# define BOOST_PP_ITERATION_3 98 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 97 && BOOST_PP_ITERATION_START_3 >= 97 -# define BOOST_PP_ITERATION_3 97 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 96 && BOOST_PP_ITERATION_START_3 >= 96 -# define BOOST_PP_ITERATION_3 96 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 95 && BOOST_PP_ITERATION_START_3 >= 95 -# define BOOST_PP_ITERATION_3 95 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 94 && BOOST_PP_ITERATION_START_3 >= 94 -# define BOOST_PP_ITERATION_3 94 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 93 && BOOST_PP_ITERATION_START_3 >= 93 -# define BOOST_PP_ITERATION_3 93 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 92 && BOOST_PP_ITERATION_START_3 >= 92 -# define BOOST_PP_ITERATION_3 92 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 91 && BOOST_PP_ITERATION_START_3 >= 91 -# define BOOST_PP_ITERATION_3 91 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 90 && BOOST_PP_ITERATION_START_3 >= 90 -# define BOOST_PP_ITERATION_3 90 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 89 && BOOST_PP_ITERATION_START_3 >= 89 -# define BOOST_PP_ITERATION_3 89 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 88 && BOOST_PP_ITERATION_START_3 >= 88 -# define BOOST_PP_ITERATION_3 88 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 87 && BOOST_PP_ITERATION_START_3 >= 87 -# define BOOST_PP_ITERATION_3 87 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 86 && BOOST_PP_ITERATION_START_3 >= 86 -# define BOOST_PP_ITERATION_3 86 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 85 && BOOST_PP_ITERATION_START_3 >= 85 -# define BOOST_PP_ITERATION_3 85 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 84 && BOOST_PP_ITERATION_START_3 >= 84 -# define BOOST_PP_ITERATION_3 84 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 83 && BOOST_PP_ITERATION_START_3 >= 83 -# define BOOST_PP_ITERATION_3 83 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 82 && BOOST_PP_ITERATION_START_3 >= 82 -# define BOOST_PP_ITERATION_3 82 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 81 && BOOST_PP_ITERATION_START_3 >= 81 -# define BOOST_PP_ITERATION_3 81 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 80 && BOOST_PP_ITERATION_START_3 >= 80 -# define BOOST_PP_ITERATION_3 80 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 79 && BOOST_PP_ITERATION_START_3 >= 79 -# define BOOST_PP_ITERATION_3 79 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 78 && BOOST_PP_ITERATION_START_3 >= 78 -# define BOOST_PP_ITERATION_3 78 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 77 && BOOST_PP_ITERATION_START_3 >= 77 -# define BOOST_PP_ITERATION_3 77 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 76 && BOOST_PP_ITERATION_START_3 >= 76 -# define BOOST_PP_ITERATION_3 76 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 75 && BOOST_PP_ITERATION_START_3 >= 75 -# define BOOST_PP_ITERATION_3 75 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 74 && BOOST_PP_ITERATION_START_3 >= 74 -# define BOOST_PP_ITERATION_3 74 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 73 && BOOST_PP_ITERATION_START_3 >= 73 -# define BOOST_PP_ITERATION_3 73 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 72 && BOOST_PP_ITERATION_START_3 >= 72 -# define BOOST_PP_ITERATION_3 72 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 71 && BOOST_PP_ITERATION_START_3 >= 71 -# define BOOST_PP_ITERATION_3 71 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 70 && BOOST_PP_ITERATION_START_3 >= 70 -# define BOOST_PP_ITERATION_3 70 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 69 && BOOST_PP_ITERATION_START_3 >= 69 -# define BOOST_PP_ITERATION_3 69 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 68 && BOOST_PP_ITERATION_START_3 >= 68 -# define BOOST_PP_ITERATION_3 68 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 67 && BOOST_PP_ITERATION_START_3 >= 67 -# define BOOST_PP_ITERATION_3 67 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 66 && BOOST_PP_ITERATION_START_3 >= 66 -# define BOOST_PP_ITERATION_3 66 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 65 && BOOST_PP_ITERATION_START_3 >= 65 -# define BOOST_PP_ITERATION_3 65 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 64 && BOOST_PP_ITERATION_START_3 >= 64 -# define BOOST_PP_ITERATION_3 64 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 63 && BOOST_PP_ITERATION_START_3 >= 63 -# define BOOST_PP_ITERATION_3 63 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 62 && BOOST_PP_ITERATION_START_3 >= 62 -# define BOOST_PP_ITERATION_3 62 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 61 && BOOST_PP_ITERATION_START_3 >= 61 -# define BOOST_PP_ITERATION_3 61 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 60 && BOOST_PP_ITERATION_START_3 >= 60 -# define BOOST_PP_ITERATION_3 60 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 59 && BOOST_PP_ITERATION_START_3 >= 59 -# define BOOST_PP_ITERATION_3 59 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 58 && BOOST_PP_ITERATION_START_3 >= 58 -# define BOOST_PP_ITERATION_3 58 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 57 && BOOST_PP_ITERATION_START_3 >= 57 -# define BOOST_PP_ITERATION_3 57 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 56 && BOOST_PP_ITERATION_START_3 >= 56 -# define BOOST_PP_ITERATION_3 56 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 55 && BOOST_PP_ITERATION_START_3 >= 55 -# define BOOST_PP_ITERATION_3 55 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 54 && BOOST_PP_ITERATION_START_3 >= 54 -# define BOOST_PP_ITERATION_3 54 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 53 && BOOST_PP_ITERATION_START_3 >= 53 -# define BOOST_PP_ITERATION_3 53 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 52 && BOOST_PP_ITERATION_START_3 >= 52 -# define BOOST_PP_ITERATION_3 52 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 51 && BOOST_PP_ITERATION_START_3 >= 51 -# define BOOST_PP_ITERATION_3 51 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 50 && BOOST_PP_ITERATION_START_3 >= 50 -# define BOOST_PP_ITERATION_3 50 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 49 && BOOST_PP_ITERATION_START_3 >= 49 -# define BOOST_PP_ITERATION_3 49 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 48 && BOOST_PP_ITERATION_START_3 >= 48 -# define BOOST_PP_ITERATION_3 48 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 47 && BOOST_PP_ITERATION_START_3 >= 47 -# define BOOST_PP_ITERATION_3 47 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 46 && BOOST_PP_ITERATION_START_3 >= 46 -# define BOOST_PP_ITERATION_3 46 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 45 && BOOST_PP_ITERATION_START_3 >= 45 -# define BOOST_PP_ITERATION_3 45 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 44 && BOOST_PP_ITERATION_START_3 >= 44 -# define BOOST_PP_ITERATION_3 44 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 43 && BOOST_PP_ITERATION_START_3 >= 43 -# define BOOST_PP_ITERATION_3 43 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 42 && BOOST_PP_ITERATION_START_3 >= 42 -# define BOOST_PP_ITERATION_3 42 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 41 && BOOST_PP_ITERATION_START_3 >= 41 -# define BOOST_PP_ITERATION_3 41 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 40 && BOOST_PP_ITERATION_START_3 >= 40 -# define BOOST_PP_ITERATION_3 40 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 39 && BOOST_PP_ITERATION_START_3 >= 39 -# define BOOST_PP_ITERATION_3 39 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 38 && BOOST_PP_ITERATION_START_3 >= 38 -# define BOOST_PP_ITERATION_3 38 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 37 && BOOST_PP_ITERATION_START_3 >= 37 -# define BOOST_PP_ITERATION_3 37 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 36 && BOOST_PP_ITERATION_START_3 >= 36 -# define BOOST_PP_ITERATION_3 36 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 35 && BOOST_PP_ITERATION_START_3 >= 35 -# define BOOST_PP_ITERATION_3 35 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 34 && BOOST_PP_ITERATION_START_3 >= 34 -# define BOOST_PP_ITERATION_3 34 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 33 && BOOST_PP_ITERATION_START_3 >= 33 -# define BOOST_PP_ITERATION_3 33 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 32 && BOOST_PP_ITERATION_START_3 >= 32 -# define BOOST_PP_ITERATION_3 32 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 31 && BOOST_PP_ITERATION_START_3 >= 31 -# define BOOST_PP_ITERATION_3 31 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 30 && BOOST_PP_ITERATION_START_3 >= 30 -# define BOOST_PP_ITERATION_3 30 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 29 && BOOST_PP_ITERATION_START_3 >= 29 -# define BOOST_PP_ITERATION_3 29 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 28 && BOOST_PP_ITERATION_START_3 >= 28 -# define BOOST_PP_ITERATION_3 28 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 27 && BOOST_PP_ITERATION_START_3 >= 27 -# define BOOST_PP_ITERATION_3 27 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 26 && BOOST_PP_ITERATION_START_3 >= 26 -# define BOOST_PP_ITERATION_3 26 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 25 && BOOST_PP_ITERATION_START_3 >= 25 -# define BOOST_PP_ITERATION_3 25 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 24 && BOOST_PP_ITERATION_START_3 >= 24 -# define BOOST_PP_ITERATION_3 24 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 23 && BOOST_PP_ITERATION_START_3 >= 23 -# define BOOST_PP_ITERATION_3 23 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 22 && BOOST_PP_ITERATION_START_3 >= 22 -# define BOOST_PP_ITERATION_3 22 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 21 && BOOST_PP_ITERATION_START_3 >= 21 -# define BOOST_PP_ITERATION_3 21 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 20 && BOOST_PP_ITERATION_START_3 >= 20 -# define BOOST_PP_ITERATION_3 20 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 19 && BOOST_PP_ITERATION_START_3 >= 19 -# define BOOST_PP_ITERATION_3 19 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 18 && BOOST_PP_ITERATION_START_3 >= 18 -# define BOOST_PP_ITERATION_3 18 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 17 && BOOST_PP_ITERATION_START_3 >= 17 -# define BOOST_PP_ITERATION_3 17 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 16 && BOOST_PP_ITERATION_START_3 >= 16 -# define BOOST_PP_ITERATION_3 16 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 15 && BOOST_PP_ITERATION_START_3 >= 15 -# define BOOST_PP_ITERATION_3 15 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 14 && BOOST_PP_ITERATION_START_3 >= 14 -# define BOOST_PP_ITERATION_3 14 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 13 && BOOST_PP_ITERATION_START_3 >= 13 -# define BOOST_PP_ITERATION_3 13 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 12 && BOOST_PP_ITERATION_START_3 >= 12 -# define BOOST_PP_ITERATION_3 12 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 11 && BOOST_PP_ITERATION_START_3 >= 11 -# define BOOST_PP_ITERATION_3 11 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 10 && BOOST_PP_ITERATION_START_3 >= 10 -# define BOOST_PP_ITERATION_3 10 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 9 && BOOST_PP_ITERATION_START_3 >= 9 -# define BOOST_PP_ITERATION_3 9 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 8 && BOOST_PP_ITERATION_START_3 >= 8 -# define BOOST_PP_ITERATION_3 8 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 7 && BOOST_PP_ITERATION_START_3 >= 7 -# define BOOST_PP_ITERATION_3 7 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 6 && BOOST_PP_ITERATION_START_3 >= 6 -# define BOOST_PP_ITERATION_3 6 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 5 && BOOST_PP_ITERATION_START_3 >= 5 -# define BOOST_PP_ITERATION_3 5 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 4 && BOOST_PP_ITERATION_START_3 >= 4 -# define BOOST_PP_ITERATION_3 4 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 3 && BOOST_PP_ITERATION_START_3 >= 3 -# define BOOST_PP_ITERATION_3 3 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 2 && BOOST_PP_ITERATION_START_3 >= 2 -# define BOOST_PP_ITERATION_3 2 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 1 && BOOST_PP_ITERATION_START_3 >= 1 -# define BOOST_PP_ITERATION_3 1 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif -# if BOOST_PP_ITERATION_FINISH_3 <= 0 && BOOST_PP_ITERATION_START_3 >= 0 -# define BOOST_PP_ITERATION_3 0 -# include BOOST_PP_FILENAME_3 -# undef BOOST_PP_ITERATION_3 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp deleted file mode 100644 index 3bcfba04e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse4.hpp +++ /dev/null @@ -1,1296 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if BOOST_PP_ITERATION_FINISH_4 <= 256 && BOOST_PP_ITERATION_START_4 >= 256 -# define BOOST_PP_ITERATION_4 256 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 255 && BOOST_PP_ITERATION_START_4 >= 255 -# define BOOST_PP_ITERATION_4 255 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 254 && BOOST_PP_ITERATION_START_4 >= 254 -# define BOOST_PP_ITERATION_4 254 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 253 && BOOST_PP_ITERATION_START_4 >= 253 -# define BOOST_PP_ITERATION_4 253 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 252 && BOOST_PP_ITERATION_START_4 >= 252 -# define BOOST_PP_ITERATION_4 252 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 251 && BOOST_PP_ITERATION_START_4 >= 251 -# define BOOST_PP_ITERATION_4 251 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 250 && BOOST_PP_ITERATION_START_4 >= 250 -# define BOOST_PP_ITERATION_4 250 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 249 && BOOST_PP_ITERATION_START_4 >= 249 -# define BOOST_PP_ITERATION_4 249 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 248 && BOOST_PP_ITERATION_START_4 >= 248 -# define BOOST_PP_ITERATION_4 248 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 247 && BOOST_PP_ITERATION_START_4 >= 247 -# define BOOST_PP_ITERATION_4 247 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 246 && BOOST_PP_ITERATION_START_4 >= 246 -# define BOOST_PP_ITERATION_4 246 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 245 && BOOST_PP_ITERATION_START_4 >= 245 -# define BOOST_PP_ITERATION_4 245 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 244 && BOOST_PP_ITERATION_START_4 >= 244 -# define BOOST_PP_ITERATION_4 244 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 243 && BOOST_PP_ITERATION_START_4 >= 243 -# define BOOST_PP_ITERATION_4 243 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 242 && BOOST_PP_ITERATION_START_4 >= 242 -# define BOOST_PP_ITERATION_4 242 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 241 && BOOST_PP_ITERATION_START_4 >= 241 -# define BOOST_PP_ITERATION_4 241 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 240 && BOOST_PP_ITERATION_START_4 >= 240 -# define BOOST_PP_ITERATION_4 240 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 239 && BOOST_PP_ITERATION_START_4 >= 239 -# define BOOST_PP_ITERATION_4 239 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 238 && BOOST_PP_ITERATION_START_4 >= 238 -# define BOOST_PP_ITERATION_4 238 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 237 && BOOST_PP_ITERATION_START_4 >= 237 -# define BOOST_PP_ITERATION_4 237 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 236 && BOOST_PP_ITERATION_START_4 >= 236 -# define BOOST_PP_ITERATION_4 236 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 235 && BOOST_PP_ITERATION_START_4 >= 235 -# define BOOST_PP_ITERATION_4 235 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 234 && BOOST_PP_ITERATION_START_4 >= 234 -# define BOOST_PP_ITERATION_4 234 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 233 && BOOST_PP_ITERATION_START_4 >= 233 -# define BOOST_PP_ITERATION_4 233 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 232 && BOOST_PP_ITERATION_START_4 >= 232 -# define BOOST_PP_ITERATION_4 232 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 231 && BOOST_PP_ITERATION_START_4 >= 231 -# define BOOST_PP_ITERATION_4 231 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 230 && BOOST_PP_ITERATION_START_4 >= 230 -# define BOOST_PP_ITERATION_4 230 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 229 && BOOST_PP_ITERATION_START_4 >= 229 -# define BOOST_PP_ITERATION_4 229 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 228 && BOOST_PP_ITERATION_START_4 >= 228 -# define BOOST_PP_ITERATION_4 228 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 227 && BOOST_PP_ITERATION_START_4 >= 227 -# define BOOST_PP_ITERATION_4 227 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 226 && BOOST_PP_ITERATION_START_4 >= 226 -# define BOOST_PP_ITERATION_4 226 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 225 && BOOST_PP_ITERATION_START_4 >= 225 -# define BOOST_PP_ITERATION_4 225 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 224 && BOOST_PP_ITERATION_START_4 >= 224 -# define BOOST_PP_ITERATION_4 224 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 223 && BOOST_PP_ITERATION_START_4 >= 223 -# define BOOST_PP_ITERATION_4 223 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 222 && BOOST_PP_ITERATION_START_4 >= 222 -# define BOOST_PP_ITERATION_4 222 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 221 && BOOST_PP_ITERATION_START_4 >= 221 -# define BOOST_PP_ITERATION_4 221 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 220 && BOOST_PP_ITERATION_START_4 >= 220 -# define BOOST_PP_ITERATION_4 220 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 219 && BOOST_PP_ITERATION_START_4 >= 219 -# define BOOST_PP_ITERATION_4 219 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 218 && BOOST_PP_ITERATION_START_4 >= 218 -# define BOOST_PP_ITERATION_4 218 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 217 && BOOST_PP_ITERATION_START_4 >= 217 -# define BOOST_PP_ITERATION_4 217 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 216 && BOOST_PP_ITERATION_START_4 >= 216 -# define BOOST_PP_ITERATION_4 216 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 215 && BOOST_PP_ITERATION_START_4 >= 215 -# define BOOST_PP_ITERATION_4 215 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 214 && BOOST_PP_ITERATION_START_4 >= 214 -# define BOOST_PP_ITERATION_4 214 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 213 && BOOST_PP_ITERATION_START_4 >= 213 -# define BOOST_PP_ITERATION_4 213 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 212 && BOOST_PP_ITERATION_START_4 >= 212 -# define BOOST_PP_ITERATION_4 212 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 211 && BOOST_PP_ITERATION_START_4 >= 211 -# define BOOST_PP_ITERATION_4 211 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 210 && BOOST_PP_ITERATION_START_4 >= 210 -# define BOOST_PP_ITERATION_4 210 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 209 && BOOST_PP_ITERATION_START_4 >= 209 -# define BOOST_PP_ITERATION_4 209 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 208 && BOOST_PP_ITERATION_START_4 >= 208 -# define BOOST_PP_ITERATION_4 208 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 207 && BOOST_PP_ITERATION_START_4 >= 207 -# define BOOST_PP_ITERATION_4 207 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 206 && BOOST_PP_ITERATION_START_4 >= 206 -# define BOOST_PP_ITERATION_4 206 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 205 && BOOST_PP_ITERATION_START_4 >= 205 -# define BOOST_PP_ITERATION_4 205 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 204 && BOOST_PP_ITERATION_START_4 >= 204 -# define BOOST_PP_ITERATION_4 204 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 203 && BOOST_PP_ITERATION_START_4 >= 203 -# define BOOST_PP_ITERATION_4 203 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 202 && BOOST_PP_ITERATION_START_4 >= 202 -# define BOOST_PP_ITERATION_4 202 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 201 && BOOST_PP_ITERATION_START_4 >= 201 -# define BOOST_PP_ITERATION_4 201 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 200 && BOOST_PP_ITERATION_START_4 >= 200 -# define BOOST_PP_ITERATION_4 200 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 199 && BOOST_PP_ITERATION_START_4 >= 199 -# define BOOST_PP_ITERATION_4 199 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 198 && BOOST_PP_ITERATION_START_4 >= 198 -# define BOOST_PP_ITERATION_4 198 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 197 && BOOST_PP_ITERATION_START_4 >= 197 -# define BOOST_PP_ITERATION_4 197 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 196 && BOOST_PP_ITERATION_START_4 >= 196 -# define BOOST_PP_ITERATION_4 196 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 195 && BOOST_PP_ITERATION_START_4 >= 195 -# define BOOST_PP_ITERATION_4 195 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 194 && BOOST_PP_ITERATION_START_4 >= 194 -# define BOOST_PP_ITERATION_4 194 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 193 && BOOST_PP_ITERATION_START_4 >= 193 -# define BOOST_PP_ITERATION_4 193 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 192 && BOOST_PP_ITERATION_START_4 >= 192 -# define BOOST_PP_ITERATION_4 192 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 191 && BOOST_PP_ITERATION_START_4 >= 191 -# define BOOST_PP_ITERATION_4 191 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 190 && BOOST_PP_ITERATION_START_4 >= 190 -# define BOOST_PP_ITERATION_4 190 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 189 && BOOST_PP_ITERATION_START_4 >= 189 -# define BOOST_PP_ITERATION_4 189 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 188 && BOOST_PP_ITERATION_START_4 >= 188 -# define BOOST_PP_ITERATION_4 188 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 187 && BOOST_PP_ITERATION_START_4 >= 187 -# define BOOST_PP_ITERATION_4 187 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 186 && BOOST_PP_ITERATION_START_4 >= 186 -# define BOOST_PP_ITERATION_4 186 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 185 && BOOST_PP_ITERATION_START_4 >= 185 -# define BOOST_PP_ITERATION_4 185 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 184 && BOOST_PP_ITERATION_START_4 >= 184 -# define BOOST_PP_ITERATION_4 184 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 183 && BOOST_PP_ITERATION_START_4 >= 183 -# define BOOST_PP_ITERATION_4 183 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 182 && BOOST_PP_ITERATION_START_4 >= 182 -# define BOOST_PP_ITERATION_4 182 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 181 && BOOST_PP_ITERATION_START_4 >= 181 -# define BOOST_PP_ITERATION_4 181 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 180 && BOOST_PP_ITERATION_START_4 >= 180 -# define BOOST_PP_ITERATION_4 180 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 179 && BOOST_PP_ITERATION_START_4 >= 179 -# define BOOST_PP_ITERATION_4 179 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 178 && BOOST_PP_ITERATION_START_4 >= 178 -# define BOOST_PP_ITERATION_4 178 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 177 && BOOST_PP_ITERATION_START_4 >= 177 -# define BOOST_PP_ITERATION_4 177 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 176 && BOOST_PP_ITERATION_START_4 >= 176 -# define BOOST_PP_ITERATION_4 176 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 175 && BOOST_PP_ITERATION_START_4 >= 175 -# define BOOST_PP_ITERATION_4 175 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 174 && BOOST_PP_ITERATION_START_4 >= 174 -# define BOOST_PP_ITERATION_4 174 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 173 && BOOST_PP_ITERATION_START_4 >= 173 -# define BOOST_PP_ITERATION_4 173 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 172 && BOOST_PP_ITERATION_START_4 >= 172 -# define BOOST_PP_ITERATION_4 172 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 171 && BOOST_PP_ITERATION_START_4 >= 171 -# define BOOST_PP_ITERATION_4 171 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 170 && BOOST_PP_ITERATION_START_4 >= 170 -# define BOOST_PP_ITERATION_4 170 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 169 && BOOST_PP_ITERATION_START_4 >= 169 -# define BOOST_PP_ITERATION_4 169 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 168 && BOOST_PP_ITERATION_START_4 >= 168 -# define BOOST_PP_ITERATION_4 168 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 167 && BOOST_PP_ITERATION_START_4 >= 167 -# define BOOST_PP_ITERATION_4 167 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 166 && BOOST_PP_ITERATION_START_4 >= 166 -# define BOOST_PP_ITERATION_4 166 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 165 && BOOST_PP_ITERATION_START_4 >= 165 -# define BOOST_PP_ITERATION_4 165 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 164 && BOOST_PP_ITERATION_START_4 >= 164 -# define BOOST_PP_ITERATION_4 164 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 163 && BOOST_PP_ITERATION_START_4 >= 163 -# define BOOST_PP_ITERATION_4 163 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 162 && BOOST_PP_ITERATION_START_4 >= 162 -# define BOOST_PP_ITERATION_4 162 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 161 && BOOST_PP_ITERATION_START_4 >= 161 -# define BOOST_PP_ITERATION_4 161 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 160 && BOOST_PP_ITERATION_START_4 >= 160 -# define BOOST_PP_ITERATION_4 160 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 159 && BOOST_PP_ITERATION_START_4 >= 159 -# define BOOST_PP_ITERATION_4 159 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 158 && BOOST_PP_ITERATION_START_4 >= 158 -# define BOOST_PP_ITERATION_4 158 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 157 && BOOST_PP_ITERATION_START_4 >= 157 -# define BOOST_PP_ITERATION_4 157 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 156 && BOOST_PP_ITERATION_START_4 >= 156 -# define BOOST_PP_ITERATION_4 156 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 155 && BOOST_PP_ITERATION_START_4 >= 155 -# define BOOST_PP_ITERATION_4 155 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 154 && BOOST_PP_ITERATION_START_4 >= 154 -# define BOOST_PP_ITERATION_4 154 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 153 && BOOST_PP_ITERATION_START_4 >= 153 -# define BOOST_PP_ITERATION_4 153 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 152 && BOOST_PP_ITERATION_START_4 >= 152 -# define BOOST_PP_ITERATION_4 152 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 151 && BOOST_PP_ITERATION_START_4 >= 151 -# define BOOST_PP_ITERATION_4 151 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 150 && BOOST_PP_ITERATION_START_4 >= 150 -# define BOOST_PP_ITERATION_4 150 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 149 && BOOST_PP_ITERATION_START_4 >= 149 -# define BOOST_PP_ITERATION_4 149 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 148 && BOOST_PP_ITERATION_START_4 >= 148 -# define BOOST_PP_ITERATION_4 148 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 147 && BOOST_PP_ITERATION_START_4 >= 147 -# define BOOST_PP_ITERATION_4 147 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 146 && BOOST_PP_ITERATION_START_4 >= 146 -# define BOOST_PP_ITERATION_4 146 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 145 && BOOST_PP_ITERATION_START_4 >= 145 -# define BOOST_PP_ITERATION_4 145 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 144 && BOOST_PP_ITERATION_START_4 >= 144 -# define BOOST_PP_ITERATION_4 144 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 143 && BOOST_PP_ITERATION_START_4 >= 143 -# define BOOST_PP_ITERATION_4 143 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 142 && BOOST_PP_ITERATION_START_4 >= 142 -# define BOOST_PP_ITERATION_4 142 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 141 && BOOST_PP_ITERATION_START_4 >= 141 -# define BOOST_PP_ITERATION_4 141 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 140 && BOOST_PP_ITERATION_START_4 >= 140 -# define BOOST_PP_ITERATION_4 140 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 139 && BOOST_PP_ITERATION_START_4 >= 139 -# define BOOST_PP_ITERATION_4 139 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 138 && BOOST_PP_ITERATION_START_4 >= 138 -# define BOOST_PP_ITERATION_4 138 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 137 && BOOST_PP_ITERATION_START_4 >= 137 -# define BOOST_PP_ITERATION_4 137 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 136 && BOOST_PP_ITERATION_START_4 >= 136 -# define BOOST_PP_ITERATION_4 136 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 135 && BOOST_PP_ITERATION_START_4 >= 135 -# define BOOST_PP_ITERATION_4 135 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 134 && BOOST_PP_ITERATION_START_4 >= 134 -# define BOOST_PP_ITERATION_4 134 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 133 && BOOST_PP_ITERATION_START_4 >= 133 -# define BOOST_PP_ITERATION_4 133 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 132 && BOOST_PP_ITERATION_START_4 >= 132 -# define BOOST_PP_ITERATION_4 132 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 131 && BOOST_PP_ITERATION_START_4 >= 131 -# define BOOST_PP_ITERATION_4 131 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 130 && BOOST_PP_ITERATION_START_4 >= 130 -# define BOOST_PP_ITERATION_4 130 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 129 && BOOST_PP_ITERATION_START_4 >= 129 -# define BOOST_PP_ITERATION_4 129 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 128 && BOOST_PP_ITERATION_START_4 >= 128 -# define BOOST_PP_ITERATION_4 128 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 127 && BOOST_PP_ITERATION_START_4 >= 127 -# define BOOST_PP_ITERATION_4 127 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 126 && BOOST_PP_ITERATION_START_4 >= 126 -# define BOOST_PP_ITERATION_4 126 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 125 && BOOST_PP_ITERATION_START_4 >= 125 -# define BOOST_PP_ITERATION_4 125 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 124 && BOOST_PP_ITERATION_START_4 >= 124 -# define BOOST_PP_ITERATION_4 124 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 123 && BOOST_PP_ITERATION_START_4 >= 123 -# define BOOST_PP_ITERATION_4 123 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 122 && BOOST_PP_ITERATION_START_4 >= 122 -# define BOOST_PP_ITERATION_4 122 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 121 && BOOST_PP_ITERATION_START_4 >= 121 -# define BOOST_PP_ITERATION_4 121 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 120 && BOOST_PP_ITERATION_START_4 >= 120 -# define BOOST_PP_ITERATION_4 120 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 119 && BOOST_PP_ITERATION_START_4 >= 119 -# define BOOST_PP_ITERATION_4 119 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 118 && BOOST_PP_ITERATION_START_4 >= 118 -# define BOOST_PP_ITERATION_4 118 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 117 && BOOST_PP_ITERATION_START_4 >= 117 -# define BOOST_PP_ITERATION_4 117 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 116 && BOOST_PP_ITERATION_START_4 >= 116 -# define BOOST_PP_ITERATION_4 116 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 115 && BOOST_PP_ITERATION_START_4 >= 115 -# define BOOST_PP_ITERATION_4 115 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 114 && BOOST_PP_ITERATION_START_4 >= 114 -# define BOOST_PP_ITERATION_4 114 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 113 && BOOST_PP_ITERATION_START_4 >= 113 -# define BOOST_PP_ITERATION_4 113 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 112 && BOOST_PP_ITERATION_START_4 >= 112 -# define BOOST_PP_ITERATION_4 112 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 111 && BOOST_PP_ITERATION_START_4 >= 111 -# define BOOST_PP_ITERATION_4 111 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 110 && BOOST_PP_ITERATION_START_4 >= 110 -# define BOOST_PP_ITERATION_4 110 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 109 && BOOST_PP_ITERATION_START_4 >= 109 -# define BOOST_PP_ITERATION_4 109 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 108 && BOOST_PP_ITERATION_START_4 >= 108 -# define BOOST_PP_ITERATION_4 108 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 107 && BOOST_PP_ITERATION_START_4 >= 107 -# define BOOST_PP_ITERATION_4 107 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 106 && BOOST_PP_ITERATION_START_4 >= 106 -# define BOOST_PP_ITERATION_4 106 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 105 && BOOST_PP_ITERATION_START_4 >= 105 -# define BOOST_PP_ITERATION_4 105 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 104 && BOOST_PP_ITERATION_START_4 >= 104 -# define BOOST_PP_ITERATION_4 104 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 103 && BOOST_PP_ITERATION_START_4 >= 103 -# define BOOST_PP_ITERATION_4 103 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 102 && BOOST_PP_ITERATION_START_4 >= 102 -# define BOOST_PP_ITERATION_4 102 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 101 && BOOST_PP_ITERATION_START_4 >= 101 -# define BOOST_PP_ITERATION_4 101 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 100 && BOOST_PP_ITERATION_START_4 >= 100 -# define BOOST_PP_ITERATION_4 100 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 99 && BOOST_PP_ITERATION_START_4 >= 99 -# define BOOST_PP_ITERATION_4 99 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 98 && BOOST_PP_ITERATION_START_4 >= 98 -# define BOOST_PP_ITERATION_4 98 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 97 && BOOST_PP_ITERATION_START_4 >= 97 -# define BOOST_PP_ITERATION_4 97 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 96 && BOOST_PP_ITERATION_START_4 >= 96 -# define BOOST_PP_ITERATION_4 96 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 95 && BOOST_PP_ITERATION_START_4 >= 95 -# define BOOST_PP_ITERATION_4 95 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 94 && BOOST_PP_ITERATION_START_4 >= 94 -# define BOOST_PP_ITERATION_4 94 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 93 && BOOST_PP_ITERATION_START_4 >= 93 -# define BOOST_PP_ITERATION_4 93 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 92 && BOOST_PP_ITERATION_START_4 >= 92 -# define BOOST_PP_ITERATION_4 92 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 91 && BOOST_PP_ITERATION_START_4 >= 91 -# define BOOST_PP_ITERATION_4 91 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 90 && BOOST_PP_ITERATION_START_4 >= 90 -# define BOOST_PP_ITERATION_4 90 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 89 && BOOST_PP_ITERATION_START_4 >= 89 -# define BOOST_PP_ITERATION_4 89 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 88 && BOOST_PP_ITERATION_START_4 >= 88 -# define BOOST_PP_ITERATION_4 88 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 87 && BOOST_PP_ITERATION_START_4 >= 87 -# define BOOST_PP_ITERATION_4 87 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 86 && BOOST_PP_ITERATION_START_4 >= 86 -# define BOOST_PP_ITERATION_4 86 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 85 && BOOST_PP_ITERATION_START_4 >= 85 -# define BOOST_PP_ITERATION_4 85 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 84 && BOOST_PP_ITERATION_START_4 >= 84 -# define BOOST_PP_ITERATION_4 84 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 83 && BOOST_PP_ITERATION_START_4 >= 83 -# define BOOST_PP_ITERATION_4 83 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 82 && BOOST_PP_ITERATION_START_4 >= 82 -# define BOOST_PP_ITERATION_4 82 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 81 && BOOST_PP_ITERATION_START_4 >= 81 -# define BOOST_PP_ITERATION_4 81 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 80 && BOOST_PP_ITERATION_START_4 >= 80 -# define BOOST_PP_ITERATION_4 80 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 79 && BOOST_PP_ITERATION_START_4 >= 79 -# define BOOST_PP_ITERATION_4 79 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 78 && BOOST_PP_ITERATION_START_4 >= 78 -# define BOOST_PP_ITERATION_4 78 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 77 && BOOST_PP_ITERATION_START_4 >= 77 -# define BOOST_PP_ITERATION_4 77 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 76 && BOOST_PP_ITERATION_START_4 >= 76 -# define BOOST_PP_ITERATION_4 76 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 75 && BOOST_PP_ITERATION_START_4 >= 75 -# define BOOST_PP_ITERATION_4 75 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 74 && BOOST_PP_ITERATION_START_4 >= 74 -# define BOOST_PP_ITERATION_4 74 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 73 && BOOST_PP_ITERATION_START_4 >= 73 -# define BOOST_PP_ITERATION_4 73 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 72 && BOOST_PP_ITERATION_START_4 >= 72 -# define BOOST_PP_ITERATION_4 72 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 71 && BOOST_PP_ITERATION_START_4 >= 71 -# define BOOST_PP_ITERATION_4 71 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 70 && BOOST_PP_ITERATION_START_4 >= 70 -# define BOOST_PP_ITERATION_4 70 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 69 && BOOST_PP_ITERATION_START_4 >= 69 -# define BOOST_PP_ITERATION_4 69 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 68 && BOOST_PP_ITERATION_START_4 >= 68 -# define BOOST_PP_ITERATION_4 68 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 67 && BOOST_PP_ITERATION_START_4 >= 67 -# define BOOST_PP_ITERATION_4 67 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 66 && BOOST_PP_ITERATION_START_4 >= 66 -# define BOOST_PP_ITERATION_4 66 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 65 && BOOST_PP_ITERATION_START_4 >= 65 -# define BOOST_PP_ITERATION_4 65 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 64 && BOOST_PP_ITERATION_START_4 >= 64 -# define BOOST_PP_ITERATION_4 64 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 63 && BOOST_PP_ITERATION_START_4 >= 63 -# define BOOST_PP_ITERATION_4 63 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 62 && BOOST_PP_ITERATION_START_4 >= 62 -# define BOOST_PP_ITERATION_4 62 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 61 && BOOST_PP_ITERATION_START_4 >= 61 -# define BOOST_PP_ITERATION_4 61 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 60 && BOOST_PP_ITERATION_START_4 >= 60 -# define BOOST_PP_ITERATION_4 60 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 59 && BOOST_PP_ITERATION_START_4 >= 59 -# define BOOST_PP_ITERATION_4 59 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 58 && BOOST_PP_ITERATION_START_4 >= 58 -# define BOOST_PP_ITERATION_4 58 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 57 && BOOST_PP_ITERATION_START_4 >= 57 -# define BOOST_PP_ITERATION_4 57 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 56 && BOOST_PP_ITERATION_START_4 >= 56 -# define BOOST_PP_ITERATION_4 56 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 55 && BOOST_PP_ITERATION_START_4 >= 55 -# define BOOST_PP_ITERATION_4 55 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 54 && BOOST_PP_ITERATION_START_4 >= 54 -# define BOOST_PP_ITERATION_4 54 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 53 && BOOST_PP_ITERATION_START_4 >= 53 -# define BOOST_PP_ITERATION_4 53 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 52 && BOOST_PP_ITERATION_START_4 >= 52 -# define BOOST_PP_ITERATION_4 52 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 51 && BOOST_PP_ITERATION_START_4 >= 51 -# define BOOST_PP_ITERATION_4 51 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 50 && BOOST_PP_ITERATION_START_4 >= 50 -# define BOOST_PP_ITERATION_4 50 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 49 && BOOST_PP_ITERATION_START_4 >= 49 -# define BOOST_PP_ITERATION_4 49 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 48 && BOOST_PP_ITERATION_START_4 >= 48 -# define BOOST_PP_ITERATION_4 48 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 47 && BOOST_PP_ITERATION_START_4 >= 47 -# define BOOST_PP_ITERATION_4 47 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 46 && BOOST_PP_ITERATION_START_4 >= 46 -# define BOOST_PP_ITERATION_4 46 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 45 && BOOST_PP_ITERATION_START_4 >= 45 -# define BOOST_PP_ITERATION_4 45 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 44 && BOOST_PP_ITERATION_START_4 >= 44 -# define BOOST_PP_ITERATION_4 44 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 43 && BOOST_PP_ITERATION_START_4 >= 43 -# define BOOST_PP_ITERATION_4 43 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 42 && BOOST_PP_ITERATION_START_4 >= 42 -# define BOOST_PP_ITERATION_4 42 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 41 && BOOST_PP_ITERATION_START_4 >= 41 -# define BOOST_PP_ITERATION_4 41 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 40 && BOOST_PP_ITERATION_START_4 >= 40 -# define BOOST_PP_ITERATION_4 40 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 39 && BOOST_PP_ITERATION_START_4 >= 39 -# define BOOST_PP_ITERATION_4 39 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 38 && BOOST_PP_ITERATION_START_4 >= 38 -# define BOOST_PP_ITERATION_4 38 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 37 && BOOST_PP_ITERATION_START_4 >= 37 -# define BOOST_PP_ITERATION_4 37 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 36 && BOOST_PP_ITERATION_START_4 >= 36 -# define BOOST_PP_ITERATION_4 36 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 35 && BOOST_PP_ITERATION_START_4 >= 35 -# define BOOST_PP_ITERATION_4 35 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 34 && BOOST_PP_ITERATION_START_4 >= 34 -# define BOOST_PP_ITERATION_4 34 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 33 && BOOST_PP_ITERATION_START_4 >= 33 -# define BOOST_PP_ITERATION_4 33 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 32 && BOOST_PP_ITERATION_START_4 >= 32 -# define BOOST_PP_ITERATION_4 32 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 31 && BOOST_PP_ITERATION_START_4 >= 31 -# define BOOST_PP_ITERATION_4 31 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 30 && BOOST_PP_ITERATION_START_4 >= 30 -# define BOOST_PP_ITERATION_4 30 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 29 && BOOST_PP_ITERATION_START_4 >= 29 -# define BOOST_PP_ITERATION_4 29 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 28 && BOOST_PP_ITERATION_START_4 >= 28 -# define BOOST_PP_ITERATION_4 28 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 27 && BOOST_PP_ITERATION_START_4 >= 27 -# define BOOST_PP_ITERATION_4 27 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 26 && BOOST_PP_ITERATION_START_4 >= 26 -# define BOOST_PP_ITERATION_4 26 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 25 && BOOST_PP_ITERATION_START_4 >= 25 -# define BOOST_PP_ITERATION_4 25 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 24 && BOOST_PP_ITERATION_START_4 >= 24 -# define BOOST_PP_ITERATION_4 24 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 23 && BOOST_PP_ITERATION_START_4 >= 23 -# define BOOST_PP_ITERATION_4 23 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 22 && BOOST_PP_ITERATION_START_4 >= 22 -# define BOOST_PP_ITERATION_4 22 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 21 && BOOST_PP_ITERATION_START_4 >= 21 -# define BOOST_PP_ITERATION_4 21 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 20 && BOOST_PP_ITERATION_START_4 >= 20 -# define BOOST_PP_ITERATION_4 20 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 19 && BOOST_PP_ITERATION_START_4 >= 19 -# define BOOST_PP_ITERATION_4 19 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 18 && BOOST_PP_ITERATION_START_4 >= 18 -# define BOOST_PP_ITERATION_4 18 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 17 && BOOST_PP_ITERATION_START_4 >= 17 -# define BOOST_PP_ITERATION_4 17 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 16 && BOOST_PP_ITERATION_START_4 >= 16 -# define BOOST_PP_ITERATION_4 16 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 15 && BOOST_PP_ITERATION_START_4 >= 15 -# define BOOST_PP_ITERATION_4 15 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 14 && BOOST_PP_ITERATION_START_4 >= 14 -# define BOOST_PP_ITERATION_4 14 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 13 && BOOST_PP_ITERATION_START_4 >= 13 -# define BOOST_PP_ITERATION_4 13 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 12 && BOOST_PP_ITERATION_START_4 >= 12 -# define BOOST_PP_ITERATION_4 12 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 11 && BOOST_PP_ITERATION_START_4 >= 11 -# define BOOST_PP_ITERATION_4 11 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 10 && BOOST_PP_ITERATION_START_4 >= 10 -# define BOOST_PP_ITERATION_4 10 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 9 && BOOST_PP_ITERATION_START_4 >= 9 -# define BOOST_PP_ITERATION_4 9 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 8 && BOOST_PP_ITERATION_START_4 >= 8 -# define BOOST_PP_ITERATION_4 8 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 7 && BOOST_PP_ITERATION_START_4 >= 7 -# define BOOST_PP_ITERATION_4 7 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 6 && BOOST_PP_ITERATION_START_4 >= 6 -# define BOOST_PP_ITERATION_4 6 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 5 && BOOST_PP_ITERATION_START_4 >= 5 -# define BOOST_PP_ITERATION_4 5 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 4 && BOOST_PP_ITERATION_START_4 >= 4 -# define BOOST_PP_ITERATION_4 4 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 3 && BOOST_PP_ITERATION_START_4 >= 3 -# define BOOST_PP_ITERATION_4 3 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 2 && BOOST_PP_ITERATION_START_4 >= 2 -# define BOOST_PP_ITERATION_4 2 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 1 && BOOST_PP_ITERATION_START_4 >= 1 -# define BOOST_PP_ITERATION_4 1 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif -# if BOOST_PP_ITERATION_FINISH_4 <= 0 && BOOST_PP_ITERATION_START_4 >= 0 -# define BOOST_PP_ITERATION_4 0 -# include BOOST_PP_FILENAME_4 -# undef BOOST_PP_ITERATION_4 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp deleted file mode 100644 index 225a557f8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/iter/reverse5.hpp +++ /dev/null @@ -1,1296 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if BOOST_PP_ITERATION_FINISH_5 <= 256 && BOOST_PP_ITERATION_START_5 >= 256 -# define BOOST_PP_ITERATION_5 256 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 255 && BOOST_PP_ITERATION_START_5 >= 255 -# define BOOST_PP_ITERATION_5 255 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 254 && BOOST_PP_ITERATION_START_5 >= 254 -# define BOOST_PP_ITERATION_5 254 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 253 && BOOST_PP_ITERATION_START_5 >= 253 -# define BOOST_PP_ITERATION_5 253 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 252 && BOOST_PP_ITERATION_START_5 >= 252 -# define BOOST_PP_ITERATION_5 252 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 251 && BOOST_PP_ITERATION_START_5 >= 251 -# define BOOST_PP_ITERATION_5 251 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 250 && BOOST_PP_ITERATION_START_5 >= 250 -# define BOOST_PP_ITERATION_5 250 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 249 && BOOST_PP_ITERATION_START_5 >= 249 -# define BOOST_PP_ITERATION_5 249 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 248 && BOOST_PP_ITERATION_START_5 >= 248 -# define BOOST_PP_ITERATION_5 248 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 247 && BOOST_PP_ITERATION_START_5 >= 247 -# define BOOST_PP_ITERATION_5 247 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 246 && BOOST_PP_ITERATION_START_5 >= 246 -# define BOOST_PP_ITERATION_5 246 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 245 && BOOST_PP_ITERATION_START_5 >= 245 -# define BOOST_PP_ITERATION_5 245 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 244 && BOOST_PP_ITERATION_START_5 >= 244 -# define BOOST_PP_ITERATION_5 244 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 243 && BOOST_PP_ITERATION_START_5 >= 243 -# define BOOST_PP_ITERATION_5 243 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 242 && BOOST_PP_ITERATION_START_5 >= 242 -# define BOOST_PP_ITERATION_5 242 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 241 && BOOST_PP_ITERATION_START_5 >= 241 -# define BOOST_PP_ITERATION_5 241 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 240 && BOOST_PP_ITERATION_START_5 >= 240 -# define BOOST_PP_ITERATION_5 240 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 239 && BOOST_PP_ITERATION_START_5 >= 239 -# define BOOST_PP_ITERATION_5 239 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 238 && BOOST_PP_ITERATION_START_5 >= 238 -# define BOOST_PP_ITERATION_5 238 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 237 && BOOST_PP_ITERATION_START_5 >= 237 -# define BOOST_PP_ITERATION_5 237 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 236 && BOOST_PP_ITERATION_START_5 >= 236 -# define BOOST_PP_ITERATION_5 236 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 235 && BOOST_PP_ITERATION_START_5 >= 235 -# define BOOST_PP_ITERATION_5 235 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 234 && BOOST_PP_ITERATION_START_5 >= 234 -# define BOOST_PP_ITERATION_5 234 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 233 && BOOST_PP_ITERATION_START_5 >= 233 -# define BOOST_PP_ITERATION_5 233 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 232 && BOOST_PP_ITERATION_START_5 >= 232 -# define BOOST_PP_ITERATION_5 232 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 231 && BOOST_PP_ITERATION_START_5 >= 231 -# define BOOST_PP_ITERATION_5 231 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 230 && BOOST_PP_ITERATION_START_5 >= 230 -# define BOOST_PP_ITERATION_5 230 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 229 && BOOST_PP_ITERATION_START_5 >= 229 -# define BOOST_PP_ITERATION_5 229 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 228 && BOOST_PP_ITERATION_START_5 >= 228 -# define BOOST_PP_ITERATION_5 228 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 227 && BOOST_PP_ITERATION_START_5 >= 227 -# define BOOST_PP_ITERATION_5 227 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 226 && BOOST_PP_ITERATION_START_5 >= 226 -# define BOOST_PP_ITERATION_5 226 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 225 && BOOST_PP_ITERATION_START_5 >= 225 -# define BOOST_PP_ITERATION_5 225 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 224 && BOOST_PP_ITERATION_START_5 >= 224 -# define BOOST_PP_ITERATION_5 224 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 223 && BOOST_PP_ITERATION_START_5 >= 223 -# define BOOST_PP_ITERATION_5 223 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 222 && BOOST_PP_ITERATION_START_5 >= 222 -# define BOOST_PP_ITERATION_5 222 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 221 && BOOST_PP_ITERATION_START_5 >= 221 -# define BOOST_PP_ITERATION_5 221 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 220 && BOOST_PP_ITERATION_START_5 >= 220 -# define BOOST_PP_ITERATION_5 220 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 219 && BOOST_PP_ITERATION_START_5 >= 219 -# define BOOST_PP_ITERATION_5 219 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 218 && BOOST_PP_ITERATION_START_5 >= 218 -# define BOOST_PP_ITERATION_5 218 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 217 && BOOST_PP_ITERATION_START_5 >= 217 -# define BOOST_PP_ITERATION_5 217 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 216 && BOOST_PP_ITERATION_START_5 >= 216 -# define BOOST_PP_ITERATION_5 216 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 215 && BOOST_PP_ITERATION_START_5 >= 215 -# define BOOST_PP_ITERATION_5 215 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 214 && BOOST_PP_ITERATION_START_5 >= 214 -# define BOOST_PP_ITERATION_5 214 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 213 && BOOST_PP_ITERATION_START_5 >= 213 -# define BOOST_PP_ITERATION_5 213 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 212 && BOOST_PP_ITERATION_START_5 >= 212 -# define BOOST_PP_ITERATION_5 212 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 211 && BOOST_PP_ITERATION_START_5 >= 211 -# define BOOST_PP_ITERATION_5 211 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 210 && BOOST_PP_ITERATION_START_5 >= 210 -# define BOOST_PP_ITERATION_5 210 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 209 && BOOST_PP_ITERATION_START_5 >= 209 -# define BOOST_PP_ITERATION_5 209 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 208 && BOOST_PP_ITERATION_START_5 >= 208 -# define BOOST_PP_ITERATION_5 208 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 207 && BOOST_PP_ITERATION_START_5 >= 207 -# define BOOST_PP_ITERATION_5 207 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 206 && BOOST_PP_ITERATION_START_5 >= 206 -# define BOOST_PP_ITERATION_5 206 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 205 && BOOST_PP_ITERATION_START_5 >= 205 -# define BOOST_PP_ITERATION_5 205 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 204 && BOOST_PP_ITERATION_START_5 >= 204 -# define BOOST_PP_ITERATION_5 204 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 203 && BOOST_PP_ITERATION_START_5 >= 203 -# define BOOST_PP_ITERATION_5 203 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 202 && BOOST_PP_ITERATION_START_5 >= 202 -# define BOOST_PP_ITERATION_5 202 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 201 && BOOST_PP_ITERATION_START_5 >= 201 -# define BOOST_PP_ITERATION_5 201 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 200 && BOOST_PP_ITERATION_START_5 >= 200 -# define BOOST_PP_ITERATION_5 200 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 199 && BOOST_PP_ITERATION_START_5 >= 199 -# define BOOST_PP_ITERATION_5 199 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 198 && BOOST_PP_ITERATION_START_5 >= 198 -# define BOOST_PP_ITERATION_5 198 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 197 && BOOST_PP_ITERATION_START_5 >= 197 -# define BOOST_PP_ITERATION_5 197 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 196 && BOOST_PP_ITERATION_START_5 >= 196 -# define BOOST_PP_ITERATION_5 196 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 195 && BOOST_PP_ITERATION_START_5 >= 195 -# define BOOST_PP_ITERATION_5 195 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 194 && BOOST_PP_ITERATION_START_5 >= 194 -# define BOOST_PP_ITERATION_5 194 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 193 && BOOST_PP_ITERATION_START_5 >= 193 -# define BOOST_PP_ITERATION_5 193 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 192 && BOOST_PP_ITERATION_START_5 >= 192 -# define BOOST_PP_ITERATION_5 192 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 191 && BOOST_PP_ITERATION_START_5 >= 191 -# define BOOST_PP_ITERATION_5 191 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 190 && BOOST_PP_ITERATION_START_5 >= 190 -# define BOOST_PP_ITERATION_5 190 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 189 && BOOST_PP_ITERATION_START_5 >= 189 -# define BOOST_PP_ITERATION_5 189 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 188 && BOOST_PP_ITERATION_START_5 >= 188 -# define BOOST_PP_ITERATION_5 188 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 187 && BOOST_PP_ITERATION_START_5 >= 187 -# define BOOST_PP_ITERATION_5 187 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 186 && BOOST_PP_ITERATION_START_5 >= 186 -# define BOOST_PP_ITERATION_5 186 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 185 && BOOST_PP_ITERATION_START_5 >= 185 -# define BOOST_PP_ITERATION_5 185 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 184 && BOOST_PP_ITERATION_START_5 >= 184 -# define BOOST_PP_ITERATION_5 184 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 183 && BOOST_PP_ITERATION_START_5 >= 183 -# define BOOST_PP_ITERATION_5 183 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 182 && BOOST_PP_ITERATION_START_5 >= 182 -# define BOOST_PP_ITERATION_5 182 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 181 && BOOST_PP_ITERATION_START_5 >= 181 -# define BOOST_PP_ITERATION_5 181 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 180 && BOOST_PP_ITERATION_START_5 >= 180 -# define BOOST_PP_ITERATION_5 180 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 179 && BOOST_PP_ITERATION_START_5 >= 179 -# define BOOST_PP_ITERATION_5 179 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 178 && BOOST_PP_ITERATION_START_5 >= 178 -# define BOOST_PP_ITERATION_5 178 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 177 && BOOST_PP_ITERATION_START_5 >= 177 -# define BOOST_PP_ITERATION_5 177 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 176 && BOOST_PP_ITERATION_START_5 >= 176 -# define BOOST_PP_ITERATION_5 176 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 175 && BOOST_PP_ITERATION_START_5 >= 175 -# define BOOST_PP_ITERATION_5 175 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 174 && BOOST_PP_ITERATION_START_5 >= 174 -# define BOOST_PP_ITERATION_5 174 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 173 && BOOST_PP_ITERATION_START_5 >= 173 -# define BOOST_PP_ITERATION_5 173 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 172 && BOOST_PP_ITERATION_START_5 >= 172 -# define BOOST_PP_ITERATION_5 172 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 171 && BOOST_PP_ITERATION_START_5 >= 171 -# define BOOST_PP_ITERATION_5 171 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 170 && BOOST_PP_ITERATION_START_5 >= 170 -# define BOOST_PP_ITERATION_5 170 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 169 && BOOST_PP_ITERATION_START_5 >= 169 -# define BOOST_PP_ITERATION_5 169 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 168 && BOOST_PP_ITERATION_START_5 >= 168 -# define BOOST_PP_ITERATION_5 168 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 167 && BOOST_PP_ITERATION_START_5 >= 167 -# define BOOST_PP_ITERATION_5 167 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 166 && BOOST_PP_ITERATION_START_5 >= 166 -# define BOOST_PP_ITERATION_5 166 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 165 && BOOST_PP_ITERATION_START_5 >= 165 -# define BOOST_PP_ITERATION_5 165 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 164 && BOOST_PP_ITERATION_START_5 >= 164 -# define BOOST_PP_ITERATION_5 164 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 163 && BOOST_PP_ITERATION_START_5 >= 163 -# define BOOST_PP_ITERATION_5 163 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 162 && BOOST_PP_ITERATION_START_5 >= 162 -# define BOOST_PP_ITERATION_5 162 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 161 && BOOST_PP_ITERATION_START_5 >= 161 -# define BOOST_PP_ITERATION_5 161 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 160 && BOOST_PP_ITERATION_START_5 >= 160 -# define BOOST_PP_ITERATION_5 160 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 159 && BOOST_PP_ITERATION_START_5 >= 159 -# define BOOST_PP_ITERATION_5 159 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 158 && BOOST_PP_ITERATION_START_5 >= 158 -# define BOOST_PP_ITERATION_5 158 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 157 && BOOST_PP_ITERATION_START_5 >= 157 -# define BOOST_PP_ITERATION_5 157 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 156 && BOOST_PP_ITERATION_START_5 >= 156 -# define BOOST_PP_ITERATION_5 156 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 155 && BOOST_PP_ITERATION_START_5 >= 155 -# define BOOST_PP_ITERATION_5 155 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 154 && BOOST_PP_ITERATION_START_5 >= 154 -# define BOOST_PP_ITERATION_5 154 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 153 && BOOST_PP_ITERATION_START_5 >= 153 -# define BOOST_PP_ITERATION_5 153 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 152 && BOOST_PP_ITERATION_START_5 >= 152 -# define BOOST_PP_ITERATION_5 152 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 151 && BOOST_PP_ITERATION_START_5 >= 151 -# define BOOST_PP_ITERATION_5 151 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 150 && BOOST_PP_ITERATION_START_5 >= 150 -# define BOOST_PP_ITERATION_5 150 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 149 && BOOST_PP_ITERATION_START_5 >= 149 -# define BOOST_PP_ITERATION_5 149 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 148 && BOOST_PP_ITERATION_START_5 >= 148 -# define BOOST_PP_ITERATION_5 148 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 147 && BOOST_PP_ITERATION_START_5 >= 147 -# define BOOST_PP_ITERATION_5 147 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 146 && BOOST_PP_ITERATION_START_5 >= 146 -# define BOOST_PP_ITERATION_5 146 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 145 && BOOST_PP_ITERATION_START_5 >= 145 -# define BOOST_PP_ITERATION_5 145 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 144 && BOOST_PP_ITERATION_START_5 >= 144 -# define BOOST_PP_ITERATION_5 144 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 143 && BOOST_PP_ITERATION_START_5 >= 143 -# define BOOST_PP_ITERATION_5 143 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 142 && BOOST_PP_ITERATION_START_5 >= 142 -# define BOOST_PP_ITERATION_5 142 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 141 && BOOST_PP_ITERATION_START_5 >= 141 -# define BOOST_PP_ITERATION_5 141 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 140 && BOOST_PP_ITERATION_START_5 >= 140 -# define BOOST_PP_ITERATION_5 140 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 139 && BOOST_PP_ITERATION_START_5 >= 139 -# define BOOST_PP_ITERATION_5 139 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 138 && BOOST_PP_ITERATION_START_5 >= 138 -# define BOOST_PP_ITERATION_5 138 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 137 && BOOST_PP_ITERATION_START_5 >= 137 -# define BOOST_PP_ITERATION_5 137 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 136 && BOOST_PP_ITERATION_START_5 >= 136 -# define BOOST_PP_ITERATION_5 136 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 135 && BOOST_PP_ITERATION_START_5 >= 135 -# define BOOST_PP_ITERATION_5 135 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 134 && BOOST_PP_ITERATION_START_5 >= 134 -# define BOOST_PP_ITERATION_5 134 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 133 && BOOST_PP_ITERATION_START_5 >= 133 -# define BOOST_PP_ITERATION_5 133 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 132 && BOOST_PP_ITERATION_START_5 >= 132 -# define BOOST_PP_ITERATION_5 132 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 131 && BOOST_PP_ITERATION_START_5 >= 131 -# define BOOST_PP_ITERATION_5 131 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 130 && BOOST_PP_ITERATION_START_5 >= 130 -# define BOOST_PP_ITERATION_5 130 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 129 && BOOST_PP_ITERATION_START_5 >= 129 -# define BOOST_PP_ITERATION_5 129 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 128 && BOOST_PP_ITERATION_START_5 >= 128 -# define BOOST_PP_ITERATION_5 128 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 127 && BOOST_PP_ITERATION_START_5 >= 127 -# define BOOST_PP_ITERATION_5 127 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 126 && BOOST_PP_ITERATION_START_5 >= 126 -# define BOOST_PP_ITERATION_5 126 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 125 && BOOST_PP_ITERATION_START_5 >= 125 -# define BOOST_PP_ITERATION_5 125 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 124 && BOOST_PP_ITERATION_START_5 >= 124 -# define BOOST_PP_ITERATION_5 124 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 123 && BOOST_PP_ITERATION_START_5 >= 123 -# define BOOST_PP_ITERATION_5 123 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 122 && BOOST_PP_ITERATION_START_5 >= 122 -# define BOOST_PP_ITERATION_5 122 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 121 && BOOST_PP_ITERATION_START_5 >= 121 -# define BOOST_PP_ITERATION_5 121 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 120 && BOOST_PP_ITERATION_START_5 >= 120 -# define BOOST_PP_ITERATION_5 120 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 119 && BOOST_PP_ITERATION_START_5 >= 119 -# define BOOST_PP_ITERATION_5 119 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 118 && BOOST_PP_ITERATION_START_5 >= 118 -# define BOOST_PP_ITERATION_5 118 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 117 && BOOST_PP_ITERATION_START_5 >= 117 -# define BOOST_PP_ITERATION_5 117 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 116 && BOOST_PP_ITERATION_START_5 >= 116 -# define BOOST_PP_ITERATION_5 116 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 115 && BOOST_PP_ITERATION_START_5 >= 115 -# define BOOST_PP_ITERATION_5 115 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 114 && BOOST_PP_ITERATION_START_5 >= 114 -# define BOOST_PP_ITERATION_5 114 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 113 && BOOST_PP_ITERATION_START_5 >= 113 -# define BOOST_PP_ITERATION_5 113 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 112 && BOOST_PP_ITERATION_START_5 >= 112 -# define BOOST_PP_ITERATION_5 112 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 111 && BOOST_PP_ITERATION_START_5 >= 111 -# define BOOST_PP_ITERATION_5 111 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 110 && BOOST_PP_ITERATION_START_5 >= 110 -# define BOOST_PP_ITERATION_5 110 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 109 && BOOST_PP_ITERATION_START_5 >= 109 -# define BOOST_PP_ITERATION_5 109 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 108 && BOOST_PP_ITERATION_START_5 >= 108 -# define BOOST_PP_ITERATION_5 108 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 107 && BOOST_PP_ITERATION_START_5 >= 107 -# define BOOST_PP_ITERATION_5 107 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 106 && BOOST_PP_ITERATION_START_5 >= 106 -# define BOOST_PP_ITERATION_5 106 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 105 && BOOST_PP_ITERATION_START_5 >= 105 -# define BOOST_PP_ITERATION_5 105 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 104 && BOOST_PP_ITERATION_START_5 >= 104 -# define BOOST_PP_ITERATION_5 104 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 103 && BOOST_PP_ITERATION_START_5 >= 103 -# define BOOST_PP_ITERATION_5 103 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 102 && BOOST_PP_ITERATION_START_5 >= 102 -# define BOOST_PP_ITERATION_5 102 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 101 && BOOST_PP_ITERATION_START_5 >= 101 -# define BOOST_PP_ITERATION_5 101 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 100 && BOOST_PP_ITERATION_START_5 >= 100 -# define BOOST_PP_ITERATION_5 100 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 99 && BOOST_PP_ITERATION_START_5 >= 99 -# define BOOST_PP_ITERATION_5 99 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 98 && BOOST_PP_ITERATION_START_5 >= 98 -# define BOOST_PP_ITERATION_5 98 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 97 && BOOST_PP_ITERATION_START_5 >= 97 -# define BOOST_PP_ITERATION_5 97 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 96 && BOOST_PP_ITERATION_START_5 >= 96 -# define BOOST_PP_ITERATION_5 96 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 95 && BOOST_PP_ITERATION_START_5 >= 95 -# define BOOST_PP_ITERATION_5 95 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 94 && BOOST_PP_ITERATION_START_5 >= 94 -# define BOOST_PP_ITERATION_5 94 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 93 && BOOST_PP_ITERATION_START_5 >= 93 -# define BOOST_PP_ITERATION_5 93 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 92 && BOOST_PP_ITERATION_START_5 >= 92 -# define BOOST_PP_ITERATION_5 92 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 91 && BOOST_PP_ITERATION_START_5 >= 91 -# define BOOST_PP_ITERATION_5 91 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 90 && BOOST_PP_ITERATION_START_5 >= 90 -# define BOOST_PP_ITERATION_5 90 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 89 && BOOST_PP_ITERATION_START_5 >= 89 -# define BOOST_PP_ITERATION_5 89 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 88 && BOOST_PP_ITERATION_START_5 >= 88 -# define BOOST_PP_ITERATION_5 88 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 87 && BOOST_PP_ITERATION_START_5 >= 87 -# define BOOST_PP_ITERATION_5 87 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 86 && BOOST_PP_ITERATION_START_5 >= 86 -# define BOOST_PP_ITERATION_5 86 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 85 && BOOST_PP_ITERATION_START_5 >= 85 -# define BOOST_PP_ITERATION_5 85 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 84 && BOOST_PP_ITERATION_START_5 >= 84 -# define BOOST_PP_ITERATION_5 84 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 83 && BOOST_PP_ITERATION_START_5 >= 83 -# define BOOST_PP_ITERATION_5 83 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 82 && BOOST_PP_ITERATION_START_5 >= 82 -# define BOOST_PP_ITERATION_5 82 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 81 && BOOST_PP_ITERATION_START_5 >= 81 -# define BOOST_PP_ITERATION_5 81 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 80 && BOOST_PP_ITERATION_START_5 >= 80 -# define BOOST_PP_ITERATION_5 80 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 79 && BOOST_PP_ITERATION_START_5 >= 79 -# define BOOST_PP_ITERATION_5 79 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 78 && BOOST_PP_ITERATION_START_5 >= 78 -# define BOOST_PP_ITERATION_5 78 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 77 && BOOST_PP_ITERATION_START_5 >= 77 -# define BOOST_PP_ITERATION_5 77 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 76 && BOOST_PP_ITERATION_START_5 >= 76 -# define BOOST_PP_ITERATION_5 76 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 75 && BOOST_PP_ITERATION_START_5 >= 75 -# define BOOST_PP_ITERATION_5 75 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 74 && BOOST_PP_ITERATION_START_5 >= 74 -# define BOOST_PP_ITERATION_5 74 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 73 && BOOST_PP_ITERATION_START_5 >= 73 -# define BOOST_PP_ITERATION_5 73 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 72 && BOOST_PP_ITERATION_START_5 >= 72 -# define BOOST_PP_ITERATION_5 72 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 71 && BOOST_PP_ITERATION_START_5 >= 71 -# define BOOST_PP_ITERATION_5 71 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 70 && BOOST_PP_ITERATION_START_5 >= 70 -# define BOOST_PP_ITERATION_5 70 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 69 && BOOST_PP_ITERATION_START_5 >= 69 -# define BOOST_PP_ITERATION_5 69 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 68 && BOOST_PP_ITERATION_START_5 >= 68 -# define BOOST_PP_ITERATION_5 68 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 67 && BOOST_PP_ITERATION_START_5 >= 67 -# define BOOST_PP_ITERATION_5 67 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 66 && BOOST_PP_ITERATION_START_5 >= 66 -# define BOOST_PP_ITERATION_5 66 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 65 && BOOST_PP_ITERATION_START_5 >= 65 -# define BOOST_PP_ITERATION_5 65 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 64 && BOOST_PP_ITERATION_START_5 >= 64 -# define BOOST_PP_ITERATION_5 64 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 63 && BOOST_PP_ITERATION_START_5 >= 63 -# define BOOST_PP_ITERATION_5 63 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 62 && BOOST_PP_ITERATION_START_5 >= 62 -# define BOOST_PP_ITERATION_5 62 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 61 && BOOST_PP_ITERATION_START_5 >= 61 -# define BOOST_PP_ITERATION_5 61 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 60 && BOOST_PP_ITERATION_START_5 >= 60 -# define BOOST_PP_ITERATION_5 60 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 59 && BOOST_PP_ITERATION_START_5 >= 59 -# define BOOST_PP_ITERATION_5 59 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 58 && BOOST_PP_ITERATION_START_5 >= 58 -# define BOOST_PP_ITERATION_5 58 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 57 && BOOST_PP_ITERATION_START_5 >= 57 -# define BOOST_PP_ITERATION_5 57 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 56 && BOOST_PP_ITERATION_START_5 >= 56 -# define BOOST_PP_ITERATION_5 56 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 55 && BOOST_PP_ITERATION_START_5 >= 55 -# define BOOST_PP_ITERATION_5 55 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 54 && BOOST_PP_ITERATION_START_5 >= 54 -# define BOOST_PP_ITERATION_5 54 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 53 && BOOST_PP_ITERATION_START_5 >= 53 -# define BOOST_PP_ITERATION_5 53 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 52 && BOOST_PP_ITERATION_START_5 >= 52 -# define BOOST_PP_ITERATION_5 52 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 51 && BOOST_PP_ITERATION_START_5 >= 51 -# define BOOST_PP_ITERATION_5 51 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 50 && BOOST_PP_ITERATION_START_5 >= 50 -# define BOOST_PP_ITERATION_5 50 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 49 && BOOST_PP_ITERATION_START_5 >= 49 -# define BOOST_PP_ITERATION_5 49 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 48 && BOOST_PP_ITERATION_START_5 >= 48 -# define BOOST_PP_ITERATION_5 48 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 47 && BOOST_PP_ITERATION_START_5 >= 47 -# define BOOST_PP_ITERATION_5 47 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 46 && BOOST_PP_ITERATION_START_5 >= 46 -# define BOOST_PP_ITERATION_5 46 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 45 && BOOST_PP_ITERATION_START_5 >= 45 -# define BOOST_PP_ITERATION_5 45 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 44 && BOOST_PP_ITERATION_START_5 >= 44 -# define BOOST_PP_ITERATION_5 44 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 43 && BOOST_PP_ITERATION_START_5 >= 43 -# define BOOST_PP_ITERATION_5 43 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 42 && BOOST_PP_ITERATION_START_5 >= 42 -# define BOOST_PP_ITERATION_5 42 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 41 && BOOST_PP_ITERATION_START_5 >= 41 -# define BOOST_PP_ITERATION_5 41 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 40 && BOOST_PP_ITERATION_START_5 >= 40 -# define BOOST_PP_ITERATION_5 40 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 39 && BOOST_PP_ITERATION_START_5 >= 39 -# define BOOST_PP_ITERATION_5 39 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 38 && BOOST_PP_ITERATION_START_5 >= 38 -# define BOOST_PP_ITERATION_5 38 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 37 && BOOST_PP_ITERATION_START_5 >= 37 -# define BOOST_PP_ITERATION_5 37 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 36 && BOOST_PP_ITERATION_START_5 >= 36 -# define BOOST_PP_ITERATION_5 36 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 35 && BOOST_PP_ITERATION_START_5 >= 35 -# define BOOST_PP_ITERATION_5 35 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 34 && BOOST_PP_ITERATION_START_5 >= 34 -# define BOOST_PP_ITERATION_5 34 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 33 && BOOST_PP_ITERATION_START_5 >= 33 -# define BOOST_PP_ITERATION_5 33 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 32 && BOOST_PP_ITERATION_START_5 >= 32 -# define BOOST_PP_ITERATION_5 32 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 31 && BOOST_PP_ITERATION_START_5 >= 31 -# define BOOST_PP_ITERATION_5 31 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 30 && BOOST_PP_ITERATION_START_5 >= 30 -# define BOOST_PP_ITERATION_5 30 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 29 && BOOST_PP_ITERATION_START_5 >= 29 -# define BOOST_PP_ITERATION_5 29 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 28 && BOOST_PP_ITERATION_START_5 >= 28 -# define BOOST_PP_ITERATION_5 28 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 27 && BOOST_PP_ITERATION_START_5 >= 27 -# define BOOST_PP_ITERATION_5 27 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 26 && BOOST_PP_ITERATION_START_5 >= 26 -# define BOOST_PP_ITERATION_5 26 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 25 && BOOST_PP_ITERATION_START_5 >= 25 -# define BOOST_PP_ITERATION_5 25 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 24 && BOOST_PP_ITERATION_START_5 >= 24 -# define BOOST_PP_ITERATION_5 24 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 23 && BOOST_PP_ITERATION_START_5 >= 23 -# define BOOST_PP_ITERATION_5 23 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 22 && BOOST_PP_ITERATION_START_5 >= 22 -# define BOOST_PP_ITERATION_5 22 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 21 && BOOST_PP_ITERATION_START_5 >= 21 -# define BOOST_PP_ITERATION_5 21 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 20 && BOOST_PP_ITERATION_START_5 >= 20 -# define BOOST_PP_ITERATION_5 20 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 19 && BOOST_PP_ITERATION_START_5 >= 19 -# define BOOST_PP_ITERATION_5 19 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 18 && BOOST_PP_ITERATION_START_5 >= 18 -# define BOOST_PP_ITERATION_5 18 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 17 && BOOST_PP_ITERATION_START_5 >= 17 -# define BOOST_PP_ITERATION_5 17 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 16 && BOOST_PP_ITERATION_START_5 >= 16 -# define BOOST_PP_ITERATION_5 16 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 15 && BOOST_PP_ITERATION_START_5 >= 15 -# define BOOST_PP_ITERATION_5 15 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 14 && BOOST_PP_ITERATION_START_5 >= 14 -# define BOOST_PP_ITERATION_5 14 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 13 && BOOST_PP_ITERATION_START_5 >= 13 -# define BOOST_PP_ITERATION_5 13 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 12 && BOOST_PP_ITERATION_START_5 >= 12 -# define BOOST_PP_ITERATION_5 12 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 11 && BOOST_PP_ITERATION_START_5 >= 11 -# define BOOST_PP_ITERATION_5 11 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 10 && BOOST_PP_ITERATION_START_5 >= 10 -# define BOOST_PP_ITERATION_5 10 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 9 && BOOST_PP_ITERATION_START_5 >= 9 -# define BOOST_PP_ITERATION_5 9 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 8 && BOOST_PP_ITERATION_START_5 >= 8 -# define BOOST_PP_ITERATION_5 8 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 7 && BOOST_PP_ITERATION_START_5 >= 7 -# define BOOST_PP_ITERATION_5 7 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 6 && BOOST_PP_ITERATION_START_5 >= 6 -# define BOOST_PP_ITERATION_5 6 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 5 && BOOST_PP_ITERATION_START_5 >= 5 -# define BOOST_PP_ITERATION_5 5 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 4 && BOOST_PP_ITERATION_START_5 >= 4 -# define BOOST_PP_ITERATION_5 4 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 3 && BOOST_PP_ITERATION_START_5 >= 3 -# define BOOST_PP_ITERATION_5 3 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 2 && BOOST_PP_ITERATION_START_5 >= 2 -# define BOOST_PP_ITERATION_5 2 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1 -# define BOOST_PP_ITERATION_5 1 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif -# if BOOST_PP_ITERATION_FINISH_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0 -# define BOOST_PP_ITERATION_5 0 -# include BOOST_PP_FILENAME_5 -# undef BOOST_PP_ITERATION_5 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/local.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/local.hpp deleted file mode 100644 index ccddd5e0f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/local.hpp +++ /dev/null @@ -1,812 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if !defined(BOOST_PP_LOCAL_LIMITS) -# error BOOST_PP_ERROR: local iteration boundaries are not defined -# elif !defined(BOOST_PP_LOCAL_MACRO) -# error BOOST_PP_ERROR: local iteration target macro is not defined -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LOCAL_S BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS) -# define BOOST_PP_LOCAL_F BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS) -# else -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS) -# include -# define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS) -# include -# define BOOST_PP_LOCAL_S BOOST_PP_LOCAL_SE() -# define BOOST_PP_LOCAL_F BOOST_PP_LOCAL_FE() -# endif -# endif -# -# if (BOOST_PP_LOCAL_S) > (BOOST_PP_LOCAL_F) -# include -# else -# if BOOST_PP_LOCAL_C(0) - BOOST_PP_LOCAL_MACRO(0) -# endif -# if BOOST_PP_LOCAL_C(1) - BOOST_PP_LOCAL_MACRO(1) -# endif -# if BOOST_PP_LOCAL_C(2) - BOOST_PP_LOCAL_MACRO(2) -# endif -# if BOOST_PP_LOCAL_C(3) - BOOST_PP_LOCAL_MACRO(3) -# endif -# if BOOST_PP_LOCAL_C(4) - BOOST_PP_LOCAL_MACRO(4) -# endif -# if BOOST_PP_LOCAL_C(5) - BOOST_PP_LOCAL_MACRO(5) -# endif -# if BOOST_PP_LOCAL_C(6) - BOOST_PP_LOCAL_MACRO(6) -# endif -# if BOOST_PP_LOCAL_C(7) - BOOST_PP_LOCAL_MACRO(7) -# endif -# if BOOST_PP_LOCAL_C(8) - BOOST_PP_LOCAL_MACRO(8) -# endif -# if BOOST_PP_LOCAL_C(9) - BOOST_PP_LOCAL_MACRO(9) -# endif -# if BOOST_PP_LOCAL_C(10) - BOOST_PP_LOCAL_MACRO(10) -# endif -# if BOOST_PP_LOCAL_C(11) - BOOST_PP_LOCAL_MACRO(11) -# endif -# if BOOST_PP_LOCAL_C(12) - BOOST_PP_LOCAL_MACRO(12) -# endif -# if BOOST_PP_LOCAL_C(13) - BOOST_PP_LOCAL_MACRO(13) -# endif -# if BOOST_PP_LOCAL_C(14) - BOOST_PP_LOCAL_MACRO(14) -# endif -# if BOOST_PP_LOCAL_C(15) - BOOST_PP_LOCAL_MACRO(15) -# endif -# if BOOST_PP_LOCAL_C(16) - BOOST_PP_LOCAL_MACRO(16) -# endif -# if BOOST_PP_LOCAL_C(17) - BOOST_PP_LOCAL_MACRO(17) -# endif -# if BOOST_PP_LOCAL_C(18) - BOOST_PP_LOCAL_MACRO(18) -# endif -# if BOOST_PP_LOCAL_C(19) - BOOST_PP_LOCAL_MACRO(19) -# endif -# if BOOST_PP_LOCAL_C(20) - BOOST_PP_LOCAL_MACRO(20) -# endif -# if BOOST_PP_LOCAL_C(21) - BOOST_PP_LOCAL_MACRO(21) -# endif -# if BOOST_PP_LOCAL_C(22) - BOOST_PP_LOCAL_MACRO(22) -# endif -# if BOOST_PP_LOCAL_C(23) - BOOST_PP_LOCAL_MACRO(23) -# endif -# if BOOST_PP_LOCAL_C(24) - BOOST_PP_LOCAL_MACRO(24) -# endif -# if BOOST_PP_LOCAL_C(25) - BOOST_PP_LOCAL_MACRO(25) -# endif -# if BOOST_PP_LOCAL_C(26) - BOOST_PP_LOCAL_MACRO(26) -# endif -# if BOOST_PP_LOCAL_C(27) - BOOST_PP_LOCAL_MACRO(27) -# endif -# if BOOST_PP_LOCAL_C(28) - BOOST_PP_LOCAL_MACRO(28) -# endif -# if BOOST_PP_LOCAL_C(29) - BOOST_PP_LOCAL_MACRO(29) -# endif -# if BOOST_PP_LOCAL_C(30) - BOOST_PP_LOCAL_MACRO(30) -# endif -# if BOOST_PP_LOCAL_C(31) - BOOST_PP_LOCAL_MACRO(31) -# endif -# if BOOST_PP_LOCAL_C(32) - BOOST_PP_LOCAL_MACRO(32) -# endif -# if BOOST_PP_LOCAL_C(33) - BOOST_PP_LOCAL_MACRO(33) -# endif -# if BOOST_PP_LOCAL_C(34) - BOOST_PP_LOCAL_MACRO(34) -# endif -# if BOOST_PP_LOCAL_C(35) - BOOST_PP_LOCAL_MACRO(35) -# endif -# if BOOST_PP_LOCAL_C(36) - BOOST_PP_LOCAL_MACRO(36) -# endif -# if BOOST_PP_LOCAL_C(37) - BOOST_PP_LOCAL_MACRO(37) -# endif -# if BOOST_PP_LOCAL_C(38) - BOOST_PP_LOCAL_MACRO(38) -# endif -# if BOOST_PP_LOCAL_C(39) - BOOST_PP_LOCAL_MACRO(39) -# endif -# if BOOST_PP_LOCAL_C(40) - BOOST_PP_LOCAL_MACRO(40) -# endif -# if BOOST_PP_LOCAL_C(41) - BOOST_PP_LOCAL_MACRO(41) -# endif -# if BOOST_PP_LOCAL_C(42) - BOOST_PP_LOCAL_MACRO(42) -# endif -# if BOOST_PP_LOCAL_C(43) - BOOST_PP_LOCAL_MACRO(43) -# endif -# if BOOST_PP_LOCAL_C(44) - BOOST_PP_LOCAL_MACRO(44) -# endif -# if BOOST_PP_LOCAL_C(45) - BOOST_PP_LOCAL_MACRO(45) -# endif -# if BOOST_PP_LOCAL_C(46) - BOOST_PP_LOCAL_MACRO(46) -# endif -# if BOOST_PP_LOCAL_C(47) - BOOST_PP_LOCAL_MACRO(47) -# endif -# if BOOST_PP_LOCAL_C(48) - BOOST_PP_LOCAL_MACRO(48) -# endif -# if BOOST_PP_LOCAL_C(49) - BOOST_PP_LOCAL_MACRO(49) -# endif -# if BOOST_PP_LOCAL_C(50) - BOOST_PP_LOCAL_MACRO(50) -# endif -# if BOOST_PP_LOCAL_C(51) - BOOST_PP_LOCAL_MACRO(51) -# endif -# if BOOST_PP_LOCAL_C(52) - BOOST_PP_LOCAL_MACRO(52) -# endif -# if BOOST_PP_LOCAL_C(53) - BOOST_PP_LOCAL_MACRO(53) -# endif -# if BOOST_PP_LOCAL_C(54) - BOOST_PP_LOCAL_MACRO(54) -# endif -# if BOOST_PP_LOCAL_C(55) - BOOST_PP_LOCAL_MACRO(55) -# endif -# if BOOST_PP_LOCAL_C(56) - BOOST_PP_LOCAL_MACRO(56) -# endif -# if BOOST_PP_LOCAL_C(57) - BOOST_PP_LOCAL_MACRO(57) -# endif -# if BOOST_PP_LOCAL_C(58) - BOOST_PP_LOCAL_MACRO(58) -# endif -# if BOOST_PP_LOCAL_C(59) - BOOST_PP_LOCAL_MACRO(59) -# endif -# if BOOST_PP_LOCAL_C(60) - BOOST_PP_LOCAL_MACRO(60) -# endif -# if BOOST_PP_LOCAL_C(61) - BOOST_PP_LOCAL_MACRO(61) -# endif -# if BOOST_PP_LOCAL_C(62) - BOOST_PP_LOCAL_MACRO(62) -# endif -# if BOOST_PP_LOCAL_C(63) - BOOST_PP_LOCAL_MACRO(63) -# endif -# if BOOST_PP_LOCAL_C(64) - BOOST_PP_LOCAL_MACRO(64) -# endif -# if BOOST_PP_LOCAL_C(65) - BOOST_PP_LOCAL_MACRO(65) -# endif -# if BOOST_PP_LOCAL_C(66) - BOOST_PP_LOCAL_MACRO(66) -# endif -# if BOOST_PP_LOCAL_C(67) - BOOST_PP_LOCAL_MACRO(67) -# endif -# if BOOST_PP_LOCAL_C(68) - BOOST_PP_LOCAL_MACRO(68) -# endif -# if BOOST_PP_LOCAL_C(69) - BOOST_PP_LOCAL_MACRO(69) -# endif -# if BOOST_PP_LOCAL_C(70) - BOOST_PP_LOCAL_MACRO(70) -# endif -# if BOOST_PP_LOCAL_C(71) - BOOST_PP_LOCAL_MACRO(71) -# endif -# if BOOST_PP_LOCAL_C(72) - BOOST_PP_LOCAL_MACRO(72) -# endif -# if BOOST_PP_LOCAL_C(73) - BOOST_PP_LOCAL_MACRO(73) -# endif -# if BOOST_PP_LOCAL_C(74) - BOOST_PP_LOCAL_MACRO(74) -# endif -# if BOOST_PP_LOCAL_C(75) - BOOST_PP_LOCAL_MACRO(75) -# endif -# if BOOST_PP_LOCAL_C(76) - BOOST_PP_LOCAL_MACRO(76) -# endif -# if BOOST_PP_LOCAL_C(77) - BOOST_PP_LOCAL_MACRO(77) -# endif -# if BOOST_PP_LOCAL_C(78) - BOOST_PP_LOCAL_MACRO(78) -# endif -# if BOOST_PP_LOCAL_C(79) - BOOST_PP_LOCAL_MACRO(79) -# endif -# if BOOST_PP_LOCAL_C(80) - BOOST_PP_LOCAL_MACRO(80) -# endif -# if BOOST_PP_LOCAL_C(81) - BOOST_PP_LOCAL_MACRO(81) -# endif -# if BOOST_PP_LOCAL_C(82) - BOOST_PP_LOCAL_MACRO(82) -# endif -# if BOOST_PP_LOCAL_C(83) - BOOST_PP_LOCAL_MACRO(83) -# endif -# if BOOST_PP_LOCAL_C(84) - BOOST_PP_LOCAL_MACRO(84) -# endif -# if BOOST_PP_LOCAL_C(85) - BOOST_PP_LOCAL_MACRO(85) -# endif -# if BOOST_PP_LOCAL_C(86) - BOOST_PP_LOCAL_MACRO(86) -# endif -# if BOOST_PP_LOCAL_C(87) - BOOST_PP_LOCAL_MACRO(87) -# endif -# if BOOST_PP_LOCAL_C(88) - BOOST_PP_LOCAL_MACRO(88) -# endif -# if BOOST_PP_LOCAL_C(89) - BOOST_PP_LOCAL_MACRO(89) -# endif -# if BOOST_PP_LOCAL_C(90) - BOOST_PP_LOCAL_MACRO(90) -# endif -# if BOOST_PP_LOCAL_C(91) - BOOST_PP_LOCAL_MACRO(91) -# endif -# if BOOST_PP_LOCAL_C(92) - BOOST_PP_LOCAL_MACRO(92) -# endif -# if BOOST_PP_LOCAL_C(93) - BOOST_PP_LOCAL_MACRO(93) -# endif -# if BOOST_PP_LOCAL_C(94) - BOOST_PP_LOCAL_MACRO(94) -# endif -# if BOOST_PP_LOCAL_C(95) - BOOST_PP_LOCAL_MACRO(95) -# endif -# if BOOST_PP_LOCAL_C(96) - BOOST_PP_LOCAL_MACRO(96) -# endif -# if BOOST_PP_LOCAL_C(97) - BOOST_PP_LOCAL_MACRO(97) -# endif -# if BOOST_PP_LOCAL_C(98) - BOOST_PP_LOCAL_MACRO(98) -# endif -# if BOOST_PP_LOCAL_C(99) - BOOST_PP_LOCAL_MACRO(99) -# endif -# if BOOST_PP_LOCAL_C(100) - BOOST_PP_LOCAL_MACRO(100) -# endif -# if BOOST_PP_LOCAL_C(101) - BOOST_PP_LOCAL_MACRO(101) -# endif -# if BOOST_PP_LOCAL_C(102) - BOOST_PP_LOCAL_MACRO(102) -# endif -# if BOOST_PP_LOCAL_C(103) - BOOST_PP_LOCAL_MACRO(103) -# endif -# if BOOST_PP_LOCAL_C(104) - BOOST_PP_LOCAL_MACRO(104) -# endif -# if BOOST_PP_LOCAL_C(105) - BOOST_PP_LOCAL_MACRO(105) -# endif -# if BOOST_PP_LOCAL_C(106) - BOOST_PP_LOCAL_MACRO(106) -# endif -# if BOOST_PP_LOCAL_C(107) - BOOST_PP_LOCAL_MACRO(107) -# endif -# if BOOST_PP_LOCAL_C(108) - BOOST_PP_LOCAL_MACRO(108) -# endif -# if BOOST_PP_LOCAL_C(109) - BOOST_PP_LOCAL_MACRO(109) -# endif -# if BOOST_PP_LOCAL_C(110) - BOOST_PP_LOCAL_MACRO(110) -# endif -# if BOOST_PP_LOCAL_C(111) - BOOST_PP_LOCAL_MACRO(111) -# endif -# if BOOST_PP_LOCAL_C(112) - BOOST_PP_LOCAL_MACRO(112) -# endif -# if BOOST_PP_LOCAL_C(113) - BOOST_PP_LOCAL_MACRO(113) -# endif -# if BOOST_PP_LOCAL_C(114) - BOOST_PP_LOCAL_MACRO(114) -# endif -# if BOOST_PP_LOCAL_C(115) - BOOST_PP_LOCAL_MACRO(115) -# endif -# if BOOST_PP_LOCAL_C(116) - BOOST_PP_LOCAL_MACRO(116) -# endif -# if BOOST_PP_LOCAL_C(117) - BOOST_PP_LOCAL_MACRO(117) -# endif -# if BOOST_PP_LOCAL_C(118) - BOOST_PP_LOCAL_MACRO(118) -# endif -# if BOOST_PP_LOCAL_C(119) - BOOST_PP_LOCAL_MACRO(119) -# endif -# if BOOST_PP_LOCAL_C(120) - BOOST_PP_LOCAL_MACRO(120) -# endif -# if BOOST_PP_LOCAL_C(121) - BOOST_PP_LOCAL_MACRO(121) -# endif -# if BOOST_PP_LOCAL_C(122) - BOOST_PP_LOCAL_MACRO(122) -# endif -# if BOOST_PP_LOCAL_C(123) - BOOST_PP_LOCAL_MACRO(123) -# endif -# if BOOST_PP_LOCAL_C(124) - BOOST_PP_LOCAL_MACRO(124) -# endif -# if BOOST_PP_LOCAL_C(125) - BOOST_PP_LOCAL_MACRO(125) -# endif -# if BOOST_PP_LOCAL_C(126) - BOOST_PP_LOCAL_MACRO(126) -# endif -# if BOOST_PP_LOCAL_C(127) - BOOST_PP_LOCAL_MACRO(127) -# endif -# if BOOST_PP_LOCAL_C(128) - BOOST_PP_LOCAL_MACRO(128) -# endif -# if BOOST_PP_LOCAL_C(129) - BOOST_PP_LOCAL_MACRO(129) -# endif -# if BOOST_PP_LOCAL_C(130) - BOOST_PP_LOCAL_MACRO(130) -# endif -# if BOOST_PP_LOCAL_C(131) - BOOST_PP_LOCAL_MACRO(131) -# endif -# if BOOST_PP_LOCAL_C(132) - BOOST_PP_LOCAL_MACRO(132) -# endif -# if BOOST_PP_LOCAL_C(133) - BOOST_PP_LOCAL_MACRO(133) -# endif -# if BOOST_PP_LOCAL_C(134) - BOOST_PP_LOCAL_MACRO(134) -# endif -# if BOOST_PP_LOCAL_C(135) - BOOST_PP_LOCAL_MACRO(135) -# endif -# if BOOST_PP_LOCAL_C(136) - BOOST_PP_LOCAL_MACRO(136) -# endif -# if BOOST_PP_LOCAL_C(137) - BOOST_PP_LOCAL_MACRO(137) -# endif -# if BOOST_PP_LOCAL_C(138) - BOOST_PP_LOCAL_MACRO(138) -# endif -# if BOOST_PP_LOCAL_C(139) - BOOST_PP_LOCAL_MACRO(139) -# endif -# if BOOST_PP_LOCAL_C(140) - BOOST_PP_LOCAL_MACRO(140) -# endif -# if BOOST_PP_LOCAL_C(141) - BOOST_PP_LOCAL_MACRO(141) -# endif -# if BOOST_PP_LOCAL_C(142) - BOOST_PP_LOCAL_MACRO(142) -# endif -# if BOOST_PP_LOCAL_C(143) - BOOST_PP_LOCAL_MACRO(143) -# endif -# if BOOST_PP_LOCAL_C(144) - BOOST_PP_LOCAL_MACRO(144) -# endif -# if BOOST_PP_LOCAL_C(145) - BOOST_PP_LOCAL_MACRO(145) -# endif -# if BOOST_PP_LOCAL_C(146) - BOOST_PP_LOCAL_MACRO(146) -# endif -# if BOOST_PP_LOCAL_C(147) - BOOST_PP_LOCAL_MACRO(147) -# endif -# if BOOST_PP_LOCAL_C(148) - BOOST_PP_LOCAL_MACRO(148) -# endif -# if BOOST_PP_LOCAL_C(149) - BOOST_PP_LOCAL_MACRO(149) -# endif -# if BOOST_PP_LOCAL_C(150) - BOOST_PP_LOCAL_MACRO(150) -# endif -# if BOOST_PP_LOCAL_C(151) - BOOST_PP_LOCAL_MACRO(151) -# endif -# if BOOST_PP_LOCAL_C(152) - BOOST_PP_LOCAL_MACRO(152) -# endif -# if BOOST_PP_LOCAL_C(153) - BOOST_PP_LOCAL_MACRO(153) -# endif -# if BOOST_PP_LOCAL_C(154) - BOOST_PP_LOCAL_MACRO(154) -# endif -# if BOOST_PP_LOCAL_C(155) - BOOST_PP_LOCAL_MACRO(155) -# endif -# if BOOST_PP_LOCAL_C(156) - BOOST_PP_LOCAL_MACRO(156) -# endif -# if BOOST_PP_LOCAL_C(157) - BOOST_PP_LOCAL_MACRO(157) -# endif -# if BOOST_PP_LOCAL_C(158) - BOOST_PP_LOCAL_MACRO(158) -# endif -# if BOOST_PP_LOCAL_C(159) - BOOST_PP_LOCAL_MACRO(159) -# endif -# if BOOST_PP_LOCAL_C(160) - BOOST_PP_LOCAL_MACRO(160) -# endif -# if BOOST_PP_LOCAL_C(161) - BOOST_PP_LOCAL_MACRO(161) -# endif -# if BOOST_PP_LOCAL_C(162) - BOOST_PP_LOCAL_MACRO(162) -# endif -# if BOOST_PP_LOCAL_C(163) - BOOST_PP_LOCAL_MACRO(163) -# endif -# if BOOST_PP_LOCAL_C(164) - BOOST_PP_LOCAL_MACRO(164) -# endif -# if BOOST_PP_LOCAL_C(165) - BOOST_PP_LOCAL_MACRO(165) -# endif -# if BOOST_PP_LOCAL_C(166) - BOOST_PP_LOCAL_MACRO(166) -# endif -# if BOOST_PP_LOCAL_C(167) - BOOST_PP_LOCAL_MACRO(167) -# endif -# if BOOST_PP_LOCAL_C(168) - BOOST_PP_LOCAL_MACRO(168) -# endif -# if BOOST_PP_LOCAL_C(169) - BOOST_PP_LOCAL_MACRO(169) -# endif -# if BOOST_PP_LOCAL_C(170) - BOOST_PP_LOCAL_MACRO(170) -# endif -# if BOOST_PP_LOCAL_C(171) - BOOST_PP_LOCAL_MACRO(171) -# endif -# if BOOST_PP_LOCAL_C(172) - BOOST_PP_LOCAL_MACRO(172) -# endif -# if BOOST_PP_LOCAL_C(173) - BOOST_PP_LOCAL_MACRO(173) -# endif -# if BOOST_PP_LOCAL_C(174) - BOOST_PP_LOCAL_MACRO(174) -# endif -# if BOOST_PP_LOCAL_C(175) - BOOST_PP_LOCAL_MACRO(175) -# endif -# if BOOST_PP_LOCAL_C(176) - BOOST_PP_LOCAL_MACRO(176) -# endif -# if BOOST_PP_LOCAL_C(177) - BOOST_PP_LOCAL_MACRO(177) -# endif -# if BOOST_PP_LOCAL_C(178) - BOOST_PP_LOCAL_MACRO(178) -# endif -# if BOOST_PP_LOCAL_C(179) - BOOST_PP_LOCAL_MACRO(179) -# endif -# if BOOST_PP_LOCAL_C(180) - BOOST_PP_LOCAL_MACRO(180) -# endif -# if BOOST_PP_LOCAL_C(181) - BOOST_PP_LOCAL_MACRO(181) -# endif -# if BOOST_PP_LOCAL_C(182) - BOOST_PP_LOCAL_MACRO(182) -# endif -# if BOOST_PP_LOCAL_C(183) - BOOST_PP_LOCAL_MACRO(183) -# endif -# if BOOST_PP_LOCAL_C(184) - BOOST_PP_LOCAL_MACRO(184) -# endif -# if BOOST_PP_LOCAL_C(185) - BOOST_PP_LOCAL_MACRO(185) -# endif -# if BOOST_PP_LOCAL_C(186) - BOOST_PP_LOCAL_MACRO(186) -# endif -# if BOOST_PP_LOCAL_C(187) - BOOST_PP_LOCAL_MACRO(187) -# endif -# if BOOST_PP_LOCAL_C(188) - BOOST_PP_LOCAL_MACRO(188) -# endif -# if BOOST_PP_LOCAL_C(189) - BOOST_PP_LOCAL_MACRO(189) -# endif -# if BOOST_PP_LOCAL_C(190) - BOOST_PP_LOCAL_MACRO(190) -# endif -# if BOOST_PP_LOCAL_C(191) - BOOST_PP_LOCAL_MACRO(191) -# endif -# if BOOST_PP_LOCAL_C(192) - BOOST_PP_LOCAL_MACRO(192) -# endif -# if BOOST_PP_LOCAL_C(193) - BOOST_PP_LOCAL_MACRO(193) -# endif -# if BOOST_PP_LOCAL_C(194) - BOOST_PP_LOCAL_MACRO(194) -# endif -# if BOOST_PP_LOCAL_C(195) - BOOST_PP_LOCAL_MACRO(195) -# endif -# if BOOST_PP_LOCAL_C(196) - BOOST_PP_LOCAL_MACRO(196) -# endif -# if BOOST_PP_LOCAL_C(197) - BOOST_PP_LOCAL_MACRO(197) -# endif -# if BOOST_PP_LOCAL_C(198) - BOOST_PP_LOCAL_MACRO(198) -# endif -# if BOOST_PP_LOCAL_C(199) - BOOST_PP_LOCAL_MACRO(199) -# endif -# if BOOST_PP_LOCAL_C(200) - BOOST_PP_LOCAL_MACRO(200) -# endif -# if BOOST_PP_LOCAL_C(201) - BOOST_PP_LOCAL_MACRO(201) -# endif -# if BOOST_PP_LOCAL_C(202) - BOOST_PP_LOCAL_MACRO(202) -# endif -# if BOOST_PP_LOCAL_C(203) - BOOST_PP_LOCAL_MACRO(203) -# endif -# if BOOST_PP_LOCAL_C(204) - BOOST_PP_LOCAL_MACRO(204) -# endif -# if BOOST_PP_LOCAL_C(205) - BOOST_PP_LOCAL_MACRO(205) -# endif -# if BOOST_PP_LOCAL_C(206) - BOOST_PP_LOCAL_MACRO(206) -# endif -# if BOOST_PP_LOCAL_C(207) - BOOST_PP_LOCAL_MACRO(207) -# endif -# if BOOST_PP_LOCAL_C(208) - BOOST_PP_LOCAL_MACRO(208) -# endif -# if BOOST_PP_LOCAL_C(209) - BOOST_PP_LOCAL_MACRO(209) -# endif -# if BOOST_PP_LOCAL_C(210) - BOOST_PP_LOCAL_MACRO(210) -# endif -# if BOOST_PP_LOCAL_C(211) - BOOST_PP_LOCAL_MACRO(211) -# endif -# if BOOST_PP_LOCAL_C(212) - BOOST_PP_LOCAL_MACRO(212) -# endif -# if BOOST_PP_LOCAL_C(213) - BOOST_PP_LOCAL_MACRO(213) -# endif -# if BOOST_PP_LOCAL_C(214) - BOOST_PP_LOCAL_MACRO(214) -# endif -# if BOOST_PP_LOCAL_C(215) - BOOST_PP_LOCAL_MACRO(215) -# endif -# if BOOST_PP_LOCAL_C(216) - BOOST_PP_LOCAL_MACRO(216) -# endif -# if BOOST_PP_LOCAL_C(217) - BOOST_PP_LOCAL_MACRO(217) -# endif -# if BOOST_PP_LOCAL_C(218) - BOOST_PP_LOCAL_MACRO(218) -# endif -# if BOOST_PP_LOCAL_C(219) - BOOST_PP_LOCAL_MACRO(219) -# endif -# if BOOST_PP_LOCAL_C(220) - BOOST_PP_LOCAL_MACRO(220) -# endif -# if BOOST_PP_LOCAL_C(221) - BOOST_PP_LOCAL_MACRO(221) -# endif -# if BOOST_PP_LOCAL_C(222) - BOOST_PP_LOCAL_MACRO(222) -# endif -# if BOOST_PP_LOCAL_C(223) - BOOST_PP_LOCAL_MACRO(223) -# endif -# if BOOST_PP_LOCAL_C(224) - BOOST_PP_LOCAL_MACRO(224) -# endif -# if BOOST_PP_LOCAL_C(225) - BOOST_PP_LOCAL_MACRO(225) -# endif -# if BOOST_PP_LOCAL_C(226) - BOOST_PP_LOCAL_MACRO(226) -# endif -# if BOOST_PP_LOCAL_C(227) - BOOST_PP_LOCAL_MACRO(227) -# endif -# if BOOST_PP_LOCAL_C(228) - BOOST_PP_LOCAL_MACRO(228) -# endif -# if BOOST_PP_LOCAL_C(229) - BOOST_PP_LOCAL_MACRO(229) -# endif -# if BOOST_PP_LOCAL_C(230) - BOOST_PP_LOCAL_MACRO(230) -# endif -# if BOOST_PP_LOCAL_C(231) - BOOST_PP_LOCAL_MACRO(231) -# endif -# if BOOST_PP_LOCAL_C(232) - BOOST_PP_LOCAL_MACRO(232) -# endif -# if BOOST_PP_LOCAL_C(233) - BOOST_PP_LOCAL_MACRO(233) -# endif -# if BOOST_PP_LOCAL_C(234) - BOOST_PP_LOCAL_MACRO(234) -# endif -# if BOOST_PP_LOCAL_C(235) - BOOST_PP_LOCAL_MACRO(235) -# endif -# if BOOST_PP_LOCAL_C(236) - BOOST_PP_LOCAL_MACRO(236) -# endif - -# if BOOST_PP_LOCAL_C(237) - BOOST_PP_LOCAL_MACRO(237) -# endif -# if BOOST_PP_LOCAL_C(238) - BOOST_PP_LOCAL_MACRO(238) -# endif -# if BOOST_PP_LOCAL_C(239) - BOOST_PP_LOCAL_MACRO(239) -# endif -# if BOOST_PP_LOCAL_C(240) - BOOST_PP_LOCAL_MACRO(240) -# endif -# if BOOST_PP_LOCAL_C(241) - BOOST_PP_LOCAL_MACRO(241) -# endif -# if BOOST_PP_LOCAL_C(242) - BOOST_PP_LOCAL_MACRO(242) -# endif -# if BOOST_PP_LOCAL_C(243) - BOOST_PP_LOCAL_MACRO(243) -# endif -# if BOOST_PP_LOCAL_C(244) - BOOST_PP_LOCAL_MACRO(244) -# endif -# if BOOST_PP_LOCAL_C(245) - BOOST_PP_LOCAL_MACRO(245) -# endif -# if BOOST_PP_LOCAL_C(246) - BOOST_PP_LOCAL_MACRO(246) -# endif -# if BOOST_PP_LOCAL_C(247) - BOOST_PP_LOCAL_MACRO(247) -# endif -# if BOOST_PP_LOCAL_C(248) - BOOST_PP_LOCAL_MACRO(248) -# endif -# if BOOST_PP_LOCAL_C(249) - BOOST_PP_LOCAL_MACRO(249) -# endif -# if BOOST_PP_LOCAL_C(250) - BOOST_PP_LOCAL_MACRO(250) -# endif -# if BOOST_PP_LOCAL_C(251) - BOOST_PP_LOCAL_MACRO(251) -# endif -# if BOOST_PP_LOCAL_C(252) - BOOST_PP_LOCAL_MACRO(252) -# endif -# if BOOST_PP_LOCAL_C(253) - BOOST_PP_LOCAL_MACRO(253) -# endif -# if BOOST_PP_LOCAL_C(254) - BOOST_PP_LOCAL_MACRO(254) -# endif -# if BOOST_PP_LOCAL_C(255) - BOOST_PP_LOCAL_MACRO(255) -# endif -# if BOOST_PP_LOCAL_C(256) - BOOST_PP_LOCAL_MACRO(256) -# endif -# endif -# -# undef BOOST_PP_LOCAL_LIMITS -# -# undef BOOST_PP_LOCAL_S -# undef BOOST_PP_LOCAL_F -# -# undef BOOST_PP_LOCAL_MACRO diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/rlocal.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/rlocal.hpp deleted file mode 100644 index 413afa09d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/rlocal.hpp +++ /dev/null @@ -1,782 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if BOOST_PP_LOCAL_R(256) - BOOST_PP_LOCAL_MACRO(256) -# endif -# if BOOST_PP_LOCAL_R(255) - BOOST_PP_LOCAL_MACRO(255) -# endif -# if BOOST_PP_LOCAL_R(254) - BOOST_PP_LOCAL_MACRO(254) -# endif -# if BOOST_PP_LOCAL_R(253) - BOOST_PP_LOCAL_MACRO(253) -# endif -# if BOOST_PP_LOCAL_R(252) - BOOST_PP_LOCAL_MACRO(252) -# endif -# if BOOST_PP_LOCAL_R(251) - BOOST_PP_LOCAL_MACRO(251) -# endif -# if BOOST_PP_LOCAL_R(250) - BOOST_PP_LOCAL_MACRO(250) -# endif -# if BOOST_PP_LOCAL_R(249) - BOOST_PP_LOCAL_MACRO(249) -# endif -# if BOOST_PP_LOCAL_R(248) - BOOST_PP_LOCAL_MACRO(248) -# endif -# if BOOST_PP_LOCAL_R(247) - BOOST_PP_LOCAL_MACRO(247) -# endif -# if BOOST_PP_LOCAL_R(246) - BOOST_PP_LOCAL_MACRO(246) -# endif -# if BOOST_PP_LOCAL_R(245) - BOOST_PP_LOCAL_MACRO(245) -# endif -# if BOOST_PP_LOCAL_R(244) - BOOST_PP_LOCAL_MACRO(244) -# endif -# if BOOST_PP_LOCAL_R(243) - BOOST_PP_LOCAL_MACRO(243) -# endif -# if BOOST_PP_LOCAL_R(242) - BOOST_PP_LOCAL_MACRO(242) -# endif -# if BOOST_PP_LOCAL_R(241) - BOOST_PP_LOCAL_MACRO(241) -# endif -# if BOOST_PP_LOCAL_R(240) - BOOST_PP_LOCAL_MACRO(240) -# endif -# if BOOST_PP_LOCAL_R(239) - BOOST_PP_LOCAL_MACRO(239) -# endif -# if BOOST_PP_LOCAL_R(238) - BOOST_PP_LOCAL_MACRO(238) -# endif -# if BOOST_PP_LOCAL_R(237) - BOOST_PP_LOCAL_MACRO(237) -# endif -# if BOOST_PP_LOCAL_R(236) - BOOST_PP_LOCAL_MACRO(236) -# endif -# if BOOST_PP_LOCAL_R(235) - BOOST_PP_LOCAL_MACRO(235) -# endif -# if BOOST_PP_LOCAL_R(234) - BOOST_PP_LOCAL_MACRO(234) -# endif -# if BOOST_PP_LOCAL_R(233) - BOOST_PP_LOCAL_MACRO(233) -# endif -# if BOOST_PP_LOCAL_R(232) - BOOST_PP_LOCAL_MACRO(232) -# endif -# if BOOST_PP_LOCAL_R(231) - BOOST_PP_LOCAL_MACRO(231) -# endif -# if BOOST_PP_LOCAL_R(230) - BOOST_PP_LOCAL_MACRO(230) -# endif -# if BOOST_PP_LOCAL_R(229) - BOOST_PP_LOCAL_MACRO(229) -# endif -# if BOOST_PP_LOCAL_R(228) - BOOST_PP_LOCAL_MACRO(228) -# endif -# if BOOST_PP_LOCAL_R(227) - BOOST_PP_LOCAL_MACRO(227) -# endif -# if BOOST_PP_LOCAL_R(226) - BOOST_PP_LOCAL_MACRO(226) -# endif -# if BOOST_PP_LOCAL_R(225) - BOOST_PP_LOCAL_MACRO(225) -# endif -# if BOOST_PP_LOCAL_R(224) - BOOST_PP_LOCAL_MACRO(224) -# endif -# if BOOST_PP_LOCAL_R(223) - BOOST_PP_LOCAL_MACRO(223) -# endif -# if BOOST_PP_LOCAL_R(222) - BOOST_PP_LOCAL_MACRO(222) -# endif -# if BOOST_PP_LOCAL_R(221) - BOOST_PP_LOCAL_MACRO(221) -# endif -# if BOOST_PP_LOCAL_R(220) - BOOST_PP_LOCAL_MACRO(220) -# endif -# if BOOST_PP_LOCAL_R(219) - BOOST_PP_LOCAL_MACRO(219) -# endif -# if BOOST_PP_LOCAL_R(218) - BOOST_PP_LOCAL_MACRO(218) -# endif -# if BOOST_PP_LOCAL_R(217) - BOOST_PP_LOCAL_MACRO(217) -# endif -# if BOOST_PP_LOCAL_R(216) - BOOST_PP_LOCAL_MACRO(216) -# endif -# if BOOST_PP_LOCAL_R(215) - BOOST_PP_LOCAL_MACRO(215) -# endif -# if BOOST_PP_LOCAL_R(214) - BOOST_PP_LOCAL_MACRO(214) -# endif -# if BOOST_PP_LOCAL_R(213) - BOOST_PP_LOCAL_MACRO(213) -# endif -# if BOOST_PP_LOCAL_R(212) - BOOST_PP_LOCAL_MACRO(212) -# endif -# if BOOST_PP_LOCAL_R(211) - BOOST_PP_LOCAL_MACRO(211) -# endif -# if BOOST_PP_LOCAL_R(210) - BOOST_PP_LOCAL_MACRO(210) -# endif -# if BOOST_PP_LOCAL_R(209) - BOOST_PP_LOCAL_MACRO(209) -# endif -# if BOOST_PP_LOCAL_R(208) - BOOST_PP_LOCAL_MACRO(208) -# endif -# if BOOST_PP_LOCAL_R(207) - BOOST_PP_LOCAL_MACRO(207) -# endif -# if BOOST_PP_LOCAL_R(206) - BOOST_PP_LOCAL_MACRO(206) -# endif -# if BOOST_PP_LOCAL_R(205) - BOOST_PP_LOCAL_MACRO(205) -# endif -# if BOOST_PP_LOCAL_R(204) - BOOST_PP_LOCAL_MACRO(204) -# endif -# if BOOST_PP_LOCAL_R(203) - BOOST_PP_LOCAL_MACRO(203) -# endif -# if BOOST_PP_LOCAL_R(202) - BOOST_PP_LOCAL_MACRO(202) -# endif -# if BOOST_PP_LOCAL_R(201) - BOOST_PP_LOCAL_MACRO(201) -# endif -# if BOOST_PP_LOCAL_R(200) - BOOST_PP_LOCAL_MACRO(200) -# endif -# if BOOST_PP_LOCAL_R(199) - BOOST_PP_LOCAL_MACRO(199) -# endif -# if BOOST_PP_LOCAL_R(198) - BOOST_PP_LOCAL_MACRO(198) -# endif -# if BOOST_PP_LOCAL_R(197) - BOOST_PP_LOCAL_MACRO(197) -# endif -# if BOOST_PP_LOCAL_R(196) - BOOST_PP_LOCAL_MACRO(196) -# endif -# if BOOST_PP_LOCAL_R(195) - BOOST_PP_LOCAL_MACRO(195) -# endif -# if BOOST_PP_LOCAL_R(194) - BOOST_PP_LOCAL_MACRO(194) -# endif -# if BOOST_PP_LOCAL_R(193) - BOOST_PP_LOCAL_MACRO(193) -# endif -# if BOOST_PP_LOCAL_R(192) - BOOST_PP_LOCAL_MACRO(192) -# endif -# if BOOST_PP_LOCAL_R(191) - BOOST_PP_LOCAL_MACRO(191) -# endif -# if BOOST_PP_LOCAL_R(190) - BOOST_PP_LOCAL_MACRO(190) -# endif -# if BOOST_PP_LOCAL_R(189) - BOOST_PP_LOCAL_MACRO(189) -# endif -# if BOOST_PP_LOCAL_R(188) - BOOST_PP_LOCAL_MACRO(188) -# endif -# if BOOST_PP_LOCAL_R(187) - BOOST_PP_LOCAL_MACRO(187) -# endif -# if BOOST_PP_LOCAL_R(186) - BOOST_PP_LOCAL_MACRO(186) -# endif -# if BOOST_PP_LOCAL_R(185) - BOOST_PP_LOCAL_MACRO(185) -# endif -# if BOOST_PP_LOCAL_R(184) - BOOST_PP_LOCAL_MACRO(184) -# endif -# if BOOST_PP_LOCAL_R(183) - BOOST_PP_LOCAL_MACRO(183) -# endif -# if BOOST_PP_LOCAL_R(182) - BOOST_PP_LOCAL_MACRO(182) -# endif -# if BOOST_PP_LOCAL_R(181) - BOOST_PP_LOCAL_MACRO(181) -# endif -# if BOOST_PP_LOCAL_R(180) - BOOST_PP_LOCAL_MACRO(180) -# endif -# if BOOST_PP_LOCAL_R(179) - BOOST_PP_LOCAL_MACRO(179) -# endif -# if BOOST_PP_LOCAL_R(178) - BOOST_PP_LOCAL_MACRO(178) -# endif -# if BOOST_PP_LOCAL_R(177) - BOOST_PP_LOCAL_MACRO(177) -# endif -# if BOOST_PP_LOCAL_R(176) - BOOST_PP_LOCAL_MACRO(176) -# endif -# if BOOST_PP_LOCAL_R(175) - BOOST_PP_LOCAL_MACRO(175) -# endif -# if BOOST_PP_LOCAL_R(174) - BOOST_PP_LOCAL_MACRO(174) -# endif -# if BOOST_PP_LOCAL_R(173) - BOOST_PP_LOCAL_MACRO(173) -# endif -# if BOOST_PP_LOCAL_R(172) - BOOST_PP_LOCAL_MACRO(172) -# endif -# if BOOST_PP_LOCAL_R(171) - BOOST_PP_LOCAL_MACRO(171) -# endif -# if BOOST_PP_LOCAL_R(170) - BOOST_PP_LOCAL_MACRO(170) -# endif -# if BOOST_PP_LOCAL_R(169) - BOOST_PP_LOCAL_MACRO(169) -# endif -# if BOOST_PP_LOCAL_R(168) - BOOST_PP_LOCAL_MACRO(168) -# endif -# if BOOST_PP_LOCAL_R(167) - BOOST_PP_LOCAL_MACRO(167) -# endif -# if BOOST_PP_LOCAL_R(166) - BOOST_PP_LOCAL_MACRO(166) -# endif -# if BOOST_PP_LOCAL_R(165) - BOOST_PP_LOCAL_MACRO(165) -# endif -# if BOOST_PP_LOCAL_R(164) - BOOST_PP_LOCAL_MACRO(164) -# endif -# if BOOST_PP_LOCAL_R(163) - BOOST_PP_LOCAL_MACRO(163) -# endif -# if BOOST_PP_LOCAL_R(162) - BOOST_PP_LOCAL_MACRO(162) -# endif -# if BOOST_PP_LOCAL_R(161) - BOOST_PP_LOCAL_MACRO(161) -# endif -# if BOOST_PP_LOCAL_R(160) - BOOST_PP_LOCAL_MACRO(160) -# endif -# if BOOST_PP_LOCAL_R(159) - BOOST_PP_LOCAL_MACRO(159) -# endif -# if BOOST_PP_LOCAL_R(158) - BOOST_PP_LOCAL_MACRO(158) -# endif -# if BOOST_PP_LOCAL_R(157) - BOOST_PP_LOCAL_MACRO(157) -# endif -# if BOOST_PP_LOCAL_R(156) - BOOST_PP_LOCAL_MACRO(156) -# endif -# if BOOST_PP_LOCAL_R(155) - BOOST_PP_LOCAL_MACRO(155) -# endif -# if BOOST_PP_LOCAL_R(154) - BOOST_PP_LOCAL_MACRO(154) -# endif -# if BOOST_PP_LOCAL_R(153) - BOOST_PP_LOCAL_MACRO(153) -# endif -# if BOOST_PP_LOCAL_R(152) - BOOST_PP_LOCAL_MACRO(152) -# endif -# if BOOST_PP_LOCAL_R(151) - BOOST_PP_LOCAL_MACRO(151) -# endif -# if BOOST_PP_LOCAL_R(150) - BOOST_PP_LOCAL_MACRO(150) -# endif -# if BOOST_PP_LOCAL_R(149) - BOOST_PP_LOCAL_MACRO(149) -# endif -# if BOOST_PP_LOCAL_R(148) - BOOST_PP_LOCAL_MACRO(148) -# endif -# if BOOST_PP_LOCAL_R(147) - BOOST_PP_LOCAL_MACRO(147) -# endif -# if BOOST_PP_LOCAL_R(146) - BOOST_PP_LOCAL_MACRO(146) -# endif -# if BOOST_PP_LOCAL_R(145) - BOOST_PP_LOCAL_MACRO(145) -# endif -# if BOOST_PP_LOCAL_R(144) - BOOST_PP_LOCAL_MACRO(144) -# endif -# if BOOST_PP_LOCAL_R(143) - BOOST_PP_LOCAL_MACRO(143) -# endif -# if BOOST_PP_LOCAL_R(142) - BOOST_PP_LOCAL_MACRO(142) -# endif -# if BOOST_PP_LOCAL_R(141) - BOOST_PP_LOCAL_MACRO(141) -# endif -# if BOOST_PP_LOCAL_R(140) - BOOST_PP_LOCAL_MACRO(140) -# endif -# if BOOST_PP_LOCAL_R(139) - BOOST_PP_LOCAL_MACRO(139) -# endif -# if BOOST_PP_LOCAL_R(138) - BOOST_PP_LOCAL_MACRO(138) -# endif -# if BOOST_PP_LOCAL_R(137) - BOOST_PP_LOCAL_MACRO(137) -# endif -# if BOOST_PP_LOCAL_R(136) - BOOST_PP_LOCAL_MACRO(136) -# endif -# if BOOST_PP_LOCAL_R(135) - BOOST_PP_LOCAL_MACRO(135) -# endif -# if BOOST_PP_LOCAL_R(134) - BOOST_PP_LOCAL_MACRO(134) -# endif -# if BOOST_PP_LOCAL_R(133) - BOOST_PP_LOCAL_MACRO(133) -# endif -# if BOOST_PP_LOCAL_R(132) - BOOST_PP_LOCAL_MACRO(132) -# endif -# if BOOST_PP_LOCAL_R(131) - BOOST_PP_LOCAL_MACRO(131) -# endif -# if BOOST_PP_LOCAL_R(130) - BOOST_PP_LOCAL_MACRO(130) -# endif -# if BOOST_PP_LOCAL_R(129) - BOOST_PP_LOCAL_MACRO(129) -# endif -# if BOOST_PP_LOCAL_R(128) - BOOST_PP_LOCAL_MACRO(128) -# endif -# if BOOST_PP_LOCAL_R(127) - BOOST_PP_LOCAL_MACRO(127) -# endif -# if BOOST_PP_LOCAL_R(126) - BOOST_PP_LOCAL_MACRO(126) -# endif -# if BOOST_PP_LOCAL_R(125) - BOOST_PP_LOCAL_MACRO(125) -# endif -# if BOOST_PP_LOCAL_R(124) - BOOST_PP_LOCAL_MACRO(124) -# endif -# if BOOST_PP_LOCAL_R(123) - BOOST_PP_LOCAL_MACRO(123) -# endif -# if BOOST_PP_LOCAL_R(122) - BOOST_PP_LOCAL_MACRO(122) -# endif -# if BOOST_PP_LOCAL_R(121) - BOOST_PP_LOCAL_MACRO(121) -# endif -# if BOOST_PP_LOCAL_R(120) - BOOST_PP_LOCAL_MACRO(120) -# endif -# if BOOST_PP_LOCAL_R(119) - BOOST_PP_LOCAL_MACRO(119) -# endif -# if BOOST_PP_LOCAL_R(118) - BOOST_PP_LOCAL_MACRO(118) -# endif -# if BOOST_PP_LOCAL_R(117) - BOOST_PP_LOCAL_MACRO(117) -# endif -# if BOOST_PP_LOCAL_R(116) - BOOST_PP_LOCAL_MACRO(116) -# endif -# if BOOST_PP_LOCAL_R(115) - BOOST_PP_LOCAL_MACRO(115) -# endif -# if BOOST_PP_LOCAL_R(114) - BOOST_PP_LOCAL_MACRO(114) -# endif -# if BOOST_PP_LOCAL_R(113) - BOOST_PP_LOCAL_MACRO(113) -# endif -# if BOOST_PP_LOCAL_R(112) - BOOST_PP_LOCAL_MACRO(112) -# endif -# if BOOST_PP_LOCAL_R(111) - BOOST_PP_LOCAL_MACRO(111) -# endif -# if BOOST_PP_LOCAL_R(110) - BOOST_PP_LOCAL_MACRO(110) -# endif -# if BOOST_PP_LOCAL_R(109) - BOOST_PP_LOCAL_MACRO(109) -# endif -# if BOOST_PP_LOCAL_R(108) - BOOST_PP_LOCAL_MACRO(108) -# endif -# if BOOST_PP_LOCAL_R(107) - BOOST_PP_LOCAL_MACRO(107) -# endif -# if BOOST_PP_LOCAL_R(106) - BOOST_PP_LOCAL_MACRO(106) -# endif -# if BOOST_PP_LOCAL_R(105) - BOOST_PP_LOCAL_MACRO(105) -# endif -# if BOOST_PP_LOCAL_R(104) - BOOST_PP_LOCAL_MACRO(104) -# endif -# if BOOST_PP_LOCAL_R(103) - BOOST_PP_LOCAL_MACRO(103) -# endif -# if BOOST_PP_LOCAL_R(102) - BOOST_PP_LOCAL_MACRO(102) -# endif -# if BOOST_PP_LOCAL_R(101) - BOOST_PP_LOCAL_MACRO(101) -# endif -# if BOOST_PP_LOCAL_R(100) - BOOST_PP_LOCAL_MACRO(100) -# endif -# if BOOST_PP_LOCAL_R(99) - BOOST_PP_LOCAL_MACRO(99) -# endif -# if BOOST_PP_LOCAL_R(98) - BOOST_PP_LOCAL_MACRO(98) -# endif -# if BOOST_PP_LOCAL_R(97) - BOOST_PP_LOCAL_MACRO(97) -# endif -# if BOOST_PP_LOCAL_R(96) - BOOST_PP_LOCAL_MACRO(96) -# endif -# if BOOST_PP_LOCAL_R(95) - BOOST_PP_LOCAL_MACRO(95) -# endif -# if BOOST_PP_LOCAL_R(94) - BOOST_PP_LOCAL_MACRO(94) -# endif -# if BOOST_PP_LOCAL_R(93) - BOOST_PP_LOCAL_MACRO(93) -# endif -# if BOOST_PP_LOCAL_R(92) - BOOST_PP_LOCAL_MACRO(92) -# endif -# if BOOST_PP_LOCAL_R(91) - BOOST_PP_LOCAL_MACRO(91) -# endif -# if BOOST_PP_LOCAL_R(90) - BOOST_PP_LOCAL_MACRO(90) -# endif -# if BOOST_PP_LOCAL_R(89) - BOOST_PP_LOCAL_MACRO(89) -# endif -# if BOOST_PP_LOCAL_R(88) - BOOST_PP_LOCAL_MACRO(88) -# endif -# if BOOST_PP_LOCAL_R(87) - BOOST_PP_LOCAL_MACRO(87) -# endif -# if BOOST_PP_LOCAL_R(86) - BOOST_PP_LOCAL_MACRO(86) -# endif -# if BOOST_PP_LOCAL_R(85) - BOOST_PP_LOCAL_MACRO(85) -# endif -# if BOOST_PP_LOCAL_R(84) - BOOST_PP_LOCAL_MACRO(84) -# endif -# if BOOST_PP_LOCAL_R(83) - BOOST_PP_LOCAL_MACRO(83) -# endif -# if BOOST_PP_LOCAL_R(82) - BOOST_PP_LOCAL_MACRO(82) -# endif -# if BOOST_PP_LOCAL_R(81) - BOOST_PP_LOCAL_MACRO(81) -# endif -# if BOOST_PP_LOCAL_R(80) - BOOST_PP_LOCAL_MACRO(80) -# endif -# if BOOST_PP_LOCAL_R(79) - BOOST_PP_LOCAL_MACRO(79) -# endif -# if BOOST_PP_LOCAL_R(78) - BOOST_PP_LOCAL_MACRO(78) -# endif -# if BOOST_PP_LOCAL_R(77) - BOOST_PP_LOCAL_MACRO(77) -# endif -# if BOOST_PP_LOCAL_R(76) - BOOST_PP_LOCAL_MACRO(76) -# endif -# if BOOST_PP_LOCAL_R(75) - BOOST_PP_LOCAL_MACRO(75) -# endif -# if BOOST_PP_LOCAL_R(74) - BOOST_PP_LOCAL_MACRO(74) -# endif -# if BOOST_PP_LOCAL_R(73) - BOOST_PP_LOCAL_MACRO(73) -# endif -# if BOOST_PP_LOCAL_R(72) - BOOST_PP_LOCAL_MACRO(72) -# endif -# if BOOST_PP_LOCAL_R(71) - BOOST_PP_LOCAL_MACRO(71) -# endif -# if BOOST_PP_LOCAL_R(70) - BOOST_PP_LOCAL_MACRO(70) -# endif -# if BOOST_PP_LOCAL_R(69) - BOOST_PP_LOCAL_MACRO(69) -# endif -# if BOOST_PP_LOCAL_R(68) - BOOST_PP_LOCAL_MACRO(68) -# endif -# if BOOST_PP_LOCAL_R(67) - BOOST_PP_LOCAL_MACRO(67) -# endif -# if BOOST_PP_LOCAL_R(66) - BOOST_PP_LOCAL_MACRO(66) -# endif -# if BOOST_PP_LOCAL_R(65) - BOOST_PP_LOCAL_MACRO(65) -# endif -# if BOOST_PP_LOCAL_R(64) - BOOST_PP_LOCAL_MACRO(64) -# endif -# if BOOST_PP_LOCAL_R(63) - BOOST_PP_LOCAL_MACRO(63) -# endif -# if BOOST_PP_LOCAL_R(62) - BOOST_PP_LOCAL_MACRO(62) -# endif -# if BOOST_PP_LOCAL_R(61) - BOOST_PP_LOCAL_MACRO(61) -# endif -# if BOOST_PP_LOCAL_R(60) - BOOST_PP_LOCAL_MACRO(60) -# endif -# if BOOST_PP_LOCAL_R(59) - BOOST_PP_LOCAL_MACRO(59) -# endif -# if BOOST_PP_LOCAL_R(58) - BOOST_PP_LOCAL_MACRO(58) -# endif -# if BOOST_PP_LOCAL_R(57) - BOOST_PP_LOCAL_MACRO(57) -# endif -# if BOOST_PP_LOCAL_R(56) - BOOST_PP_LOCAL_MACRO(56) -# endif -# if BOOST_PP_LOCAL_R(55) - BOOST_PP_LOCAL_MACRO(55) -# endif -# if BOOST_PP_LOCAL_R(54) - BOOST_PP_LOCAL_MACRO(54) -# endif -# if BOOST_PP_LOCAL_R(53) - BOOST_PP_LOCAL_MACRO(53) -# endif -# if BOOST_PP_LOCAL_R(52) - BOOST_PP_LOCAL_MACRO(52) -# endif -# if BOOST_PP_LOCAL_R(51) - BOOST_PP_LOCAL_MACRO(51) -# endif -# if BOOST_PP_LOCAL_R(50) - BOOST_PP_LOCAL_MACRO(50) -# endif -# if BOOST_PP_LOCAL_R(49) - BOOST_PP_LOCAL_MACRO(49) -# endif -# if BOOST_PP_LOCAL_R(48) - BOOST_PP_LOCAL_MACRO(48) -# endif -# if BOOST_PP_LOCAL_R(47) - BOOST_PP_LOCAL_MACRO(47) -# endif -# if BOOST_PP_LOCAL_R(46) - BOOST_PP_LOCAL_MACRO(46) -# endif -# if BOOST_PP_LOCAL_R(45) - BOOST_PP_LOCAL_MACRO(45) -# endif -# if BOOST_PP_LOCAL_R(44) - BOOST_PP_LOCAL_MACRO(44) -# endif -# if BOOST_PP_LOCAL_R(43) - BOOST_PP_LOCAL_MACRO(43) -# endif -# if BOOST_PP_LOCAL_R(42) - BOOST_PP_LOCAL_MACRO(42) -# endif -# if BOOST_PP_LOCAL_R(41) - BOOST_PP_LOCAL_MACRO(41) -# endif -# if BOOST_PP_LOCAL_R(40) - BOOST_PP_LOCAL_MACRO(40) -# endif -# if BOOST_PP_LOCAL_R(39) - BOOST_PP_LOCAL_MACRO(39) -# endif -# if BOOST_PP_LOCAL_R(38) - BOOST_PP_LOCAL_MACRO(38) -# endif -# if BOOST_PP_LOCAL_R(37) - BOOST_PP_LOCAL_MACRO(37) -# endif -# if BOOST_PP_LOCAL_R(36) - BOOST_PP_LOCAL_MACRO(36) -# endif -# if BOOST_PP_LOCAL_R(35) - BOOST_PP_LOCAL_MACRO(35) -# endif -# if BOOST_PP_LOCAL_R(34) - BOOST_PP_LOCAL_MACRO(34) -# endif -# if BOOST_PP_LOCAL_R(33) - BOOST_PP_LOCAL_MACRO(33) -# endif -# if BOOST_PP_LOCAL_R(32) - BOOST_PP_LOCAL_MACRO(32) -# endif -# if BOOST_PP_LOCAL_R(31) - BOOST_PP_LOCAL_MACRO(31) -# endif -# if BOOST_PP_LOCAL_R(30) - BOOST_PP_LOCAL_MACRO(30) -# endif -# if BOOST_PP_LOCAL_R(29) - BOOST_PP_LOCAL_MACRO(29) -# endif -# if BOOST_PP_LOCAL_R(28) - BOOST_PP_LOCAL_MACRO(28) -# endif -# if BOOST_PP_LOCAL_R(27) - BOOST_PP_LOCAL_MACRO(27) -# endif -# if BOOST_PP_LOCAL_R(26) - BOOST_PP_LOCAL_MACRO(26) -# endif -# if BOOST_PP_LOCAL_R(25) - BOOST_PP_LOCAL_MACRO(25) -# endif -# if BOOST_PP_LOCAL_R(24) - BOOST_PP_LOCAL_MACRO(24) -# endif -# if BOOST_PP_LOCAL_R(23) - BOOST_PP_LOCAL_MACRO(23) -# endif -# if BOOST_PP_LOCAL_R(22) - BOOST_PP_LOCAL_MACRO(22) -# endif -# if BOOST_PP_LOCAL_R(21) - BOOST_PP_LOCAL_MACRO(21) -# endif -# if BOOST_PP_LOCAL_R(20) - BOOST_PP_LOCAL_MACRO(20) -# endif -# if BOOST_PP_LOCAL_R(19) - BOOST_PP_LOCAL_MACRO(19) -# endif -# if BOOST_PP_LOCAL_R(18) - BOOST_PP_LOCAL_MACRO(18) -# endif -# if BOOST_PP_LOCAL_R(17) - BOOST_PP_LOCAL_MACRO(17) -# endif -# if BOOST_PP_LOCAL_R(16) - BOOST_PP_LOCAL_MACRO(16) -# endif -# if BOOST_PP_LOCAL_R(15) - BOOST_PP_LOCAL_MACRO(15) -# endif -# if BOOST_PP_LOCAL_R(14) - BOOST_PP_LOCAL_MACRO(14) -# endif -# if BOOST_PP_LOCAL_R(13) - BOOST_PP_LOCAL_MACRO(13) -# endif -# if BOOST_PP_LOCAL_R(12) - BOOST_PP_LOCAL_MACRO(12) -# endif -# if BOOST_PP_LOCAL_R(11) - BOOST_PP_LOCAL_MACRO(11) -# endif -# if BOOST_PP_LOCAL_R(10) - BOOST_PP_LOCAL_MACRO(10) -# endif -# if BOOST_PP_LOCAL_R(9) - BOOST_PP_LOCAL_MACRO(9) -# endif -# if BOOST_PP_LOCAL_R(8) - BOOST_PP_LOCAL_MACRO(8) -# endif -# if BOOST_PP_LOCAL_R(7) - BOOST_PP_LOCAL_MACRO(7) -# endif -# if BOOST_PP_LOCAL_R(6) - BOOST_PP_LOCAL_MACRO(6) -# endif -# if BOOST_PP_LOCAL_R(5) - BOOST_PP_LOCAL_MACRO(5) -# endif -# if BOOST_PP_LOCAL_R(4) - BOOST_PP_LOCAL_MACRO(4) -# endif -# if BOOST_PP_LOCAL_R(3) - BOOST_PP_LOCAL_MACRO(3) -# endif -# if BOOST_PP_LOCAL_R(2) - BOOST_PP_LOCAL_MACRO(2) -# endif -# if BOOST_PP_LOCAL_R(1) - BOOST_PP_LOCAL_MACRO(1) -# endif -# if BOOST_PP_LOCAL_R(0) - BOOST_PP_LOCAL_MACRO(0) -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/self.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/self.hpp deleted file mode 100644 index 757185c1f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/self.hpp +++ /dev/null @@ -1,21 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# if !defined(BOOST_PP_INDIRECT_SELF) -# error BOOST_PP_ERROR: no indirect file to include -# endif -# -# define BOOST_PP_IS_SELFISH 1 -# -# include BOOST_PP_INDIRECT_SELF -# -# undef BOOST_PP_IS_SELFISH -# undef BOOST_PP_INDIRECT_SELF diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/start.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/detail/start.hpp deleted file mode 100644 index cbf038184..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/detail/start.hpp +++ /dev/null @@ -1,99 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_LOCAL_SE -# -# undef BOOST_PP_LOCAL_SE_DIGIT_1 -# undef BOOST_PP_LOCAL_SE_DIGIT_2 -# undef BOOST_PP_LOCAL_SE_DIGIT_3 -# undef BOOST_PP_LOCAL_SE_DIGIT_4 -# undef BOOST_PP_LOCAL_SE_DIGIT_5 -# undef BOOST_PP_LOCAL_SE_DIGIT_6 -# undef BOOST_PP_LOCAL_SE_DIGIT_7 -# undef BOOST_PP_LOCAL_SE_DIGIT_8 -# undef BOOST_PP_LOCAL_SE_DIGIT_9 -# undef BOOST_PP_LOCAL_SE_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_LOCAL_SE_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_LOCAL_SE_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_LOCAL_SE_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_LOCAL_SE_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_LOCAL_SE_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_LOCAL_SE_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_LOCAL_SE_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_LOCAL_SE_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_LOCAL_SE_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_LOCAL_SE_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_LOCAL_SE_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_LOCAL_SE_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_LOCAL_SE_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_LOCAL_SE_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_LOCAL_SE_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_LOCAL_SE_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_LOCAL_SE_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_LOCAL_SE_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_LOCAL_SE_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_LOCAL_SE_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_LOCAL_SE_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_LOCAL_SE_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_LOCAL_SE_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_LOCAL_SE_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_LOCAL_SE_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_LOCAL_SE_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_LOCAL_SE_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_LOCAL_SE_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_LOCAL_SE_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_LOCAL_SE_DIGIT_1 9 -# endif -# -# if BOOST_PP_LOCAL_SE_DIGIT_3 -# define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_SE_DIGIT_3, BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1) -# elif BOOST_PP_LOCAL_SE_DIGIT_2 -# define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1) -# else -# define BOOST_PP_LOCAL_SE() BOOST_PP_LOCAL_SE_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/iterate.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/iterate.hpp deleted file mode 100644 index 8f861e71f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/iterate.hpp +++ /dev/null @@ -1,82 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP -# define BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ITERATION_DEPTH */ -# -# define BOOST_PP_ITERATION_DEPTH() 0 -# -# /* BOOST_PP_ITERATION */ -# -# define BOOST_PP_ITERATION() BOOST_PP_CAT(BOOST_PP_ITERATION_, BOOST_PP_ITERATION_DEPTH()) -# -# /* BOOST_PP_ITERATION_START && BOOST_PP_ITERATION_FINISH */ -# -# define BOOST_PP_ITERATION_START() BOOST_PP_CAT(BOOST_PP_ITERATION_START_, BOOST_PP_ITERATION_DEPTH()) -# define BOOST_PP_ITERATION_FINISH() BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, BOOST_PP_ITERATION_DEPTH()) -# -# /* BOOST_PP_ITERATION_FLAGS */ -# -# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())()) -# -# /* BOOST_PP_FRAME_ITERATION */ -# -# define BOOST_PP_FRAME_ITERATION(i) BOOST_PP_CAT(BOOST_PP_ITERATION_, i) -# -# /* BOOST_PP_FRAME_START && BOOST_PP_FRAME_FINISH */ -# -# define BOOST_PP_FRAME_START(i) BOOST_PP_CAT(BOOST_PP_ITERATION_START_, i) -# define BOOST_PP_FRAME_FINISH(i) BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, i) -# -# /* BOOST_PP_FRAME_FLAGS */ -# -# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i)()) -# -# /* BOOST_PP_RELATIVE_ITERATION */ -# -# define BOOST_PP_RELATIVE_ITERATION(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_) -# -# define BOOST_PP_RELATIVE_0(m) BOOST_PP_CAT(m, BOOST_PP_ITERATION_DEPTH()) -# define BOOST_PP_RELATIVE_1(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())) -# define BOOST_PP_RELATIVE_2(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))) -# define BOOST_PP_RELATIVE_3(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))) -# define BOOST_PP_RELATIVE_4(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))))) -# -# /* BOOST_PP_RELATIVE_START && BOOST_PP_RELATIVE_FINISH */ -# -# define BOOST_PP_RELATIVE_START(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_START_) -# define BOOST_PP_RELATIVE_FINISH(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FINISH_) -# -# /* BOOST_PP_RELATIVE_FLAGS */ -# -# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)()) -# -# /* BOOST_PP_ITERATE */ -# -# define BOOST_PP_ITERATE() BOOST_PP_CAT(BOOST_PP_ITERATE_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH())) -# -# define BOOST_PP_ITERATE_1 -# define BOOST_PP_ITERATE_2 -# define BOOST_PP_ITERATE_3 -# define BOOST_PP_ITERATE_4 -# define BOOST_PP_ITERATE_5 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/local.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/local.hpp deleted file mode 100644 index 289fb1aff..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/local.hpp +++ /dev/null @@ -1,26 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP -# define BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP -# -# include -# include -# include -# -# /* BOOST_PP_LOCAL_ITERATE */ -# -# define BOOST_PP_LOCAL_ITERATE() -# -# define BOOST_PP_LOCAL_C(n) (BOOST_PP_LOCAL_S) <= n && (BOOST_PP_LOCAL_F) >= n -# define BOOST_PP_LOCAL_R(n) (BOOST_PP_LOCAL_F) <= n && (BOOST_PP_LOCAL_S) >= n -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/iteration/self.hpp b/lib/3rdParty/boost/boost/preprocessor/iteration/self.hpp deleted file mode 100644 index 6e0464c97..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/iteration/self.hpp +++ /dev/null @@ -1,19 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP -# define BOOST_PREPROCESSOR_ITERATION_SELF_HPP -# -# /* BOOST_PP_INCLUDE_SELF */ -# -# define BOOST_PP_INCLUDE_SELF() -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/library.hpp b/lib/3rdParty/boost/boost/preprocessor/library.hpp deleted file mode 100644 index 3fb03d883..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/library.hpp +++ /dev/null @@ -1,37 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_LIBRARY_HPP -# define BOOST_PREPROCESSOR_LIBRARY_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/limits.hpp b/lib/3rdParty/boost/boost/preprocessor/limits.hpp deleted file mode 100644 index e264cc3c8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/limits.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIMITS_HPP -# define BOOST_PREPROCESSOR_LIMITS_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list.hpp b/lib/3rdParty/boost/boost/preprocessor/list.hpp deleted file mode 100644 index ef592c218..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list.hpp +++ /dev/null @@ -1,37 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_HPP -# define BOOST_PREPROCESSOR_LIST_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/adt.hpp b/lib/3rdParty/boost/boost/preprocessor/list/adt.hpp deleted file mode 100644 index b4f12bab6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/adt.hpp +++ /dev/null @@ -1,73 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# * -# * See http://www.boost.org for most recent version. -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# ifndef BOOST_PREPROCESSOR_LIST_ADT_HPP -# define BOOST_PREPROCESSOR_LIST_ADT_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_CONS */ -# -# define BOOST_PP_LIST_CONS(head, tail) (head, tail) -# -# /* BOOST_PP_LIST_NIL */ -# -# define BOOST_PP_LIST_NIL BOOST_PP_NIL -# -# /* BOOST_PP_LIST_FIRST */ -# -# define BOOST_PP_LIST_FIRST(list) BOOST_PP_LIST_FIRST_D(list) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I list -# else -# define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I ## list -# endif -# -# define BOOST_PP_LIST_FIRST_I(head, tail) head -# -# /* BOOST_PP_LIST_REST */ -# -# define BOOST_PP_LIST_REST(list) BOOST_PP_LIST_REST_D(list) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I list -# else -# define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I ## list -# endif -# -# define BOOST_PP_LIST_REST_I(head, tail) tail -# -# /* BOOST_PP_LIST_IS_CONS */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC() -# define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_LIST_IS_CONS_D(list) -# define BOOST_PP_LIST_IS_CONS_D(list) BOOST_PP_LIST_IS_CONS_ ## list -# define BOOST_PP_LIST_IS_CONS_(head, tail) 1 -# define BOOST_PP_LIST_IS_CONS_BOOST_PP_NIL 0 -# else -# define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_IS_BINARY(list) -# endif -# -# /* BOOST_PP_LIST_IS_NIL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC() -# define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_IS_BINARY(list)) -# else -# define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_LIST_IS_CONS(list)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/append.hpp b/lib/3rdParty/boost/boost/preprocessor/list/append.hpp deleted file mode 100644 index 26e9d74e0..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/append.hpp +++ /dev/null @@ -1,40 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_APPEND_HPP -# define BOOST_PREPROCESSOR_LIST_APPEND_HPP -# -# include -# include -# -# /* BOOST_PP_LIST_APPEND */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a) -# else -# define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_APPEND_I(a, b) -# define BOOST_PP_LIST_APPEND_I(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a) -# endif -# -# define BOOST_PP_LIST_APPEND_O(d, s, x) (x, s) -# -# /* BOOST_PP_LIST_APPEND_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a) -# else -# define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_APPEND_D_I(d, a, b) -# define BOOST_PP_LIST_APPEND_D_I(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/at.hpp b/lib/3rdParty/boost/boost/preprocessor/list/at.hpp deleted file mode 100644 index 125669b38..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/at.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_AT_HPP -# define BOOST_PREPROCESSOR_LIST_AT_HPP -# -# include -# include -# include -# -# /* BOOST_PP_LIST_AT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_AT(list, index) BOOST_PP_LIST_FIRST(BOOST_PP_LIST_REST_N(index, list)) -# else -# define BOOST_PP_LIST_AT(list, index) BOOST_PP_LIST_AT_I(list, index) -# define BOOST_PP_LIST_AT_I(list, index) BOOST_PP_LIST_FIRST(BOOST_PP_LIST_REST_N(index, list)) -# endif -# -# /* BOOST_PP_LIST_AT_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_AT_D(d, list, index) BOOST_PP_LIST_FIRST(BOOST_PP_LIST_REST_N_D(d, index, list)) -# else -# define BOOST_PP_LIST_AT_D(d, list, index) BOOST_PP_LIST_AT_D_I(d, list, index) -# define BOOST_PP_LIST_AT_D_I(d, list, index) BOOST_PP_LIST_FIRST(BOOST_PP_LIST_REST_N_D(d, index, list)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/cat.hpp b/lib/3rdParty/boost/boost/preprocessor/list/cat.hpp deleted file mode 100644 index 1ef74bf15..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/cat.hpp +++ /dev/null @@ -1,42 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_CAT_HPP -# define BOOST_PREPROCESSOR_LIST_CAT_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_CAT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_CAT(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_CAT_O, BOOST_PP_LIST_FIRST(list), BOOST_PP_LIST_REST(list)) -# else -# define BOOST_PP_LIST_CAT(list) BOOST_PP_LIST_CAT_I(list) -# define BOOST_PP_LIST_CAT_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_CAT_O, BOOST_PP_LIST_FIRST(list), BOOST_PP_LIST_REST(list)) -# endif -# -# define BOOST_PP_LIST_CAT_O(d, s, x) BOOST_PP_CAT(s, x) -# -# /* BOOST_PP_LIST_CAT_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_CAT_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_CAT_O, BOOST_PP_LIST_FIRST(list), BOOST_PP_LIST_REST(list)) -# else -# define BOOST_PP_LIST_CAT_D(d, list) BOOST_PP_LIST_CAT_D_I(d, list) -# define BOOST_PP_LIST_CAT_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_CAT_O, BOOST_PP_LIST_FIRST(list), BOOST_PP_LIST_REST(list)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/detail/dmc/fold_left.hpp b/lib/3rdParty/boost/boost/preprocessor/list/detail/dmc/fold_left.hpp deleted file mode 100644 index 844ac5b8a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/detail/dmc/fold_left.hpp +++ /dev/null @@ -1,279 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP -# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP -# -# include -# include -# include -# include -# -# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/detail/edg/fold_left.hpp b/lib/3rdParty/boost/boost/preprocessor/list/detail/edg/fold_left.hpp deleted file mode 100644 index ae9524f97..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/detail/edg/fold_left.hpp +++ /dev/null @@ -1,536 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP -# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP -# -# include -# include -# include -# include -# -# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) -# -# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/detail/edg/fold_right.hpp b/lib/3rdParty/boost/boost/preprocessor/list/detail/edg/fold_right.hpp deleted file mode 100644 index d372d2e6d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/detail/edg/fold_right.hpp +++ /dev/null @@ -1,794 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP -# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP -# -# include -# include -# include -# -# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) -# -# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l)) -# -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1 -# -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/detail/fold_left.hpp b/lib/3rdParty/boost/boost/preprocessor/list/detail/fold_left.hpp deleted file mode 100644 index f5fcab733..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/detail/fold_left.hpp +++ /dev/null @@ -1,279 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP -# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP -# -# include -# include -# include -# include -# -# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/detail/fold_right.hpp b/lib/3rdParty/boost/boost/preprocessor/list/detail/fold_right.hpp deleted file mode 100644 index 29146d504..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/detail/fold_right.hpp +++ /dev/null @@ -1,277 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP -# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP -# -# include -# include -# -# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1(o, s, BOOST_PP_LIST_REVERSE_D(1, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2(o, s, BOOST_PP_LIST_REVERSE_D(2, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3(o, s, BOOST_PP_LIST_REVERSE_D(3, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4(o, s, BOOST_PP_LIST_REVERSE_D(4, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5(o, s, BOOST_PP_LIST_REVERSE_D(5, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6(o, s, BOOST_PP_LIST_REVERSE_D(6, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7(o, s, BOOST_PP_LIST_REVERSE_D(7, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8(o, s, BOOST_PP_LIST_REVERSE_D(8, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9(o, s, BOOST_PP_LIST_REVERSE_D(9, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10(o, s, BOOST_PP_LIST_REVERSE_D(10, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11(o, s, BOOST_PP_LIST_REVERSE_D(11, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12(o, s, BOOST_PP_LIST_REVERSE_D(12, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13(o, s, BOOST_PP_LIST_REVERSE_D(13, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14(o, s, BOOST_PP_LIST_REVERSE_D(14, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15(o, s, BOOST_PP_LIST_REVERSE_D(15, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16(o, s, BOOST_PP_LIST_REVERSE_D(16, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17(o, s, BOOST_PP_LIST_REVERSE_D(17, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18(o, s, BOOST_PP_LIST_REVERSE_D(18, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19(o, s, BOOST_PP_LIST_REVERSE_D(19, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20(o, s, BOOST_PP_LIST_REVERSE_D(20, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21(o, s, BOOST_PP_LIST_REVERSE_D(21, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22(o, s, BOOST_PP_LIST_REVERSE_D(22, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23(o, s, BOOST_PP_LIST_REVERSE_D(23, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24(o, s, BOOST_PP_LIST_REVERSE_D(24, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25(o, s, BOOST_PP_LIST_REVERSE_D(25, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26(o, s, BOOST_PP_LIST_REVERSE_D(26, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27(o, s, BOOST_PP_LIST_REVERSE_D(27, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28(o, s, BOOST_PP_LIST_REVERSE_D(28, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29(o, s, BOOST_PP_LIST_REVERSE_D(29, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30(o, s, BOOST_PP_LIST_REVERSE_D(30, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31(o, s, BOOST_PP_LIST_REVERSE_D(31, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32(o, s, BOOST_PP_LIST_REVERSE_D(32, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33(o, s, BOOST_PP_LIST_REVERSE_D(33, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34(o, s, BOOST_PP_LIST_REVERSE_D(34, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35(o, s, BOOST_PP_LIST_REVERSE_D(35, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36(o, s, BOOST_PP_LIST_REVERSE_D(36, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37(o, s, BOOST_PP_LIST_REVERSE_D(37, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38(o, s, BOOST_PP_LIST_REVERSE_D(38, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39(o, s, BOOST_PP_LIST_REVERSE_D(39, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40(o, s, BOOST_PP_LIST_REVERSE_D(40, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41(o, s, BOOST_PP_LIST_REVERSE_D(41, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42(o, s, BOOST_PP_LIST_REVERSE_D(42, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43(o, s, BOOST_PP_LIST_REVERSE_D(43, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44(o, s, BOOST_PP_LIST_REVERSE_D(44, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45(o, s, BOOST_PP_LIST_REVERSE_D(45, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46(o, s, BOOST_PP_LIST_REVERSE_D(46, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47(o, s, BOOST_PP_LIST_REVERSE_D(47, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48(o, s, BOOST_PP_LIST_REVERSE_D(48, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49(o, s, BOOST_PP_LIST_REVERSE_D(49, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50(o, s, BOOST_PP_LIST_REVERSE_D(50, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51(o, s, BOOST_PP_LIST_REVERSE_D(51, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52(o, s, BOOST_PP_LIST_REVERSE_D(52, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53(o, s, BOOST_PP_LIST_REVERSE_D(53, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54(o, s, BOOST_PP_LIST_REVERSE_D(54, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55(o, s, BOOST_PP_LIST_REVERSE_D(55, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56(o, s, BOOST_PP_LIST_REVERSE_D(56, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57(o, s, BOOST_PP_LIST_REVERSE_D(57, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58(o, s, BOOST_PP_LIST_REVERSE_D(58, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59(o, s, BOOST_PP_LIST_REVERSE_D(59, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60(o, s, BOOST_PP_LIST_REVERSE_D(60, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61(o, s, BOOST_PP_LIST_REVERSE_D(61, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62(o, s, BOOST_PP_LIST_REVERSE_D(62, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63(o, s, BOOST_PP_LIST_REVERSE_D(63, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64(o, s, BOOST_PP_LIST_REVERSE_D(64, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65(o, s, BOOST_PP_LIST_REVERSE_D(65, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66(o, s, BOOST_PP_LIST_REVERSE_D(66, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67(o, s, BOOST_PP_LIST_REVERSE_D(67, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68(o, s, BOOST_PP_LIST_REVERSE_D(68, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69(o, s, BOOST_PP_LIST_REVERSE_D(69, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70(o, s, BOOST_PP_LIST_REVERSE_D(70, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71(o, s, BOOST_PP_LIST_REVERSE_D(71, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72(o, s, BOOST_PP_LIST_REVERSE_D(72, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73(o, s, BOOST_PP_LIST_REVERSE_D(73, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74(o, s, BOOST_PP_LIST_REVERSE_D(74, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75(o, s, BOOST_PP_LIST_REVERSE_D(75, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76(o, s, BOOST_PP_LIST_REVERSE_D(76, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77(o, s, BOOST_PP_LIST_REVERSE_D(77, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78(o, s, BOOST_PP_LIST_REVERSE_D(78, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79(o, s, BOOST_PP_LIST_REVERSE_D(79, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80(o, s, BOOST_PP_LIST_REVERSE_D(80, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81(o, s, BOOST_PP_LIST_REVERSE_D(81, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82(o, s, BOOST_PP_LIST_REVERSE_D(82, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83(o, s, BOOST_PP_LIST_REVERSE_D(83, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84(o, s, BOOST_PP_LIST_REVERSE_D(84, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85(o, s, BOOST_PP_LIST_REVERSE_D(85, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86(o, s, BOOST_PP_LIST_REVERSE_D(86, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87(o, s, BOOST_PP_LIST_REVERSE_D(87, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88(o, s, BOOST_PP_LIST_REVERSE_D(88, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89(o, s, BOOST_PP_LIST_REVERSE_D(89, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90(o, s, BOOST_PP_LIST_REVERSE_D(90, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91(o, s, BOOST_PP_LIST_REVERSE_D(91, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92(o, s, BOOST_PP_LIST_REVERSE_D(92, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93(o, s, BOOST_PP_LIST_REVERSE_D(93, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94(o, s, BOOST_PP_LIST_REVERSE_D(94, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95(o, s, BOOST_PP_LIST_REVERSE_D(95, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96(o, s, BOOST_PP_LIST_REVERSE_D(96, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97(o, s, BOOST_PP_LIST_REVERSE_D(97, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98(o, s, BOOST_PP_LIST_REVERSE_D(98, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99(o, s, BOOST_PP_LIST_REVERSE_D(99, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100(o, s, BOOST_PP_LIST_REVERSE_D(100, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101(o, s, BOOST_PP_LIST_REVERSE_D(101, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102(o, s, BOOST_PP_LIST_REVERSE_D(102, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103(o, s, BOOST_PP_LIST_REVERSE_D(103, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104(o, s, BOOST_PP_LIST_REVERSE_D(104, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105(o, s, BOOST_PP_LIST_REVERSE_D(105, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106(o, s, BOOST_PP_LIST_REVERSE_D(106, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107(o, s, BOOST_PP_LIST_REVERSE_D(107, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108(o, s, BOOST_PP_LIST_REVERSE_D(108, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109(o, s, BOOST_PP_LIST_REVERSE_D(109, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110(o, s, BOOST_PP_LIST_REVERSE_D(110, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111(o, s, BOOST_PP_LIST_REVERSE_D(111, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112(o, s, BOOST_PP_LIST_REVERSE_D(112, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113(o, s, BOOST_PP_LIST_REVERSE_D(113, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114(o, s, BOOST_PP_LIST_REVERSE_D(114, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115(o, s, BOOST_PP_LIST_REVERSE_D(115, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116(o, s, BOOST_PP_LIST_REVERSE_D(116, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117(o, s, BOOST_PP_LIST_REVERSE_D(117, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118(o, s, BOOST_PP_LIST_REVERSE_D(118, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119(o, s, BOOST_PP_LIST_REVERSE_D(119, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120(o, s, BOOST_PP_LIST_REVERSE_D(120, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121(o, s, BOOST_PP_LIST_REVERSE_D(121, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122(o, s, BOOST_PP_LIST_REVERSE_D(122, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123(o, s, BOOST_PP_LIST_REVERSE_D(123, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124(o, s, BOOST_PP_LIST_REVERSE_D(124, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125(o, s, BOOST_PP_LIST_REVERSE_D(125, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126(o, s, BOOST_PP_LIST_REVERSE_D(126, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127(o, s, BOOST_PP_LIST_REVERSE_D(127, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128(o, s, BOOST_PP_LIST_REVERSE_D(128, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129(o, s, BOOST_PP_LIST_REVERSE_D(129, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130(o, s, BOOST_PP_LIST_REVERSE_D(130, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131(o, s, BOOST_PP_LIST_REVERSE_D(131, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132(o, s, BOOST_PP_LIST_REVERSE_D(132, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133(o, s, BOOST_PP_LIST_REVERSE_D(133, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134(o, s, BOOST_PP_LIST_REVERSE_D(134, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135(o, s, BOOST_PP_LIST_REVERSE_D(135, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136(o, s, BOOST_PP_LIST_REVERSE_D(136, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137(o, s, BOOST_PP_LIST_REVERSE_D(137, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138(o, s, BOOST_PP_LIST_REVERSE_D(138, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139(o, s, BOOST_PP_LIST_REVERSE_D(139, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140(o, s, BOOST_PP_LIST_REVERSE_D(140, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141(o, s, BOOST_PP_LIST_REVERSE_D(141, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142(o, s, BOOST_PP_LIST_REVERSE_D(142, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143(o, s, BOOST_PP_LIST_REVERSE_D(143, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144(o, s, BOOST_PP_LIST_REVERSE_D(144, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145(o, s, BOOST_PP_LIST_REVERSE_D(145, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146(o, s, BOOST_PP_LIST_REVERSE_D(146, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147(o, s, BOOST_PP_LIST_REVERSE_D(147, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148(o, s, BOOST_PP_LIST_REVERSE_D(148, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149(o, s, BOOST_PP_LIST_REVERSE_D(149, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150(o, s, BOOST_PP_LIST_REVERSE_D(150, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151(o, s, BOOST_PP_LIST_REVERSE_D(151, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152(o, s, BOOST_PP_LIST_REVERSE_D(152, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153(o, s, BOOST_PP_LIST_REVERSE_D(153, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154(o, s, BOOST_PP_LIST_REVERSE_D(154, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155(o, s, BOOST_PP_LIST_REVERSE_D(155, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156(o, s, BOOST_PP_LIST_REVERSE_D(156, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157(o, s, BOOST_PP_LIST_REVERSE_D(157, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158(o, s, BOOST_PP_LIST_REVERSE_D(158, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159(o, s, BOOST_PP_LIST_REVERSE_D(159, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160(o, s, BOOST_PP_LIST_REVERSE_D(160, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161(o, s, BOOST_PP_LIST_REVERSE_D(161, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162(o, s, BOOST_PP_LIST_REVERSE_D(162, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163(o, s, BOOST_PP_LIST_REVERSE_D(163, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164(o, s, BOOST_PP_LIST_REVERSE_D(164, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165(o, s, BOOST_PP_LIST_REVERSE_D(165, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166(o, s, BOOST_PP_LIST_REVERSE_D(166, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167(o, s, BOOST_PP_LIST_REVERSE_D(167, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168(o, s, BOOST_PP_LIST_REVERSE_D(168, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169(o, s, BOOST_PP_LIST_REVERSE_D(169, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170(o, s, BOOST_PP_LIST_REVERSE_D(170, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171(o, s, BOOST_PP_LIST_REVERSE_D(171, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172(o, s, BOOST_PP_LIST_REVERSE_D(172, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173(o, s, BOOST_PP_LIST_REVERSE_D(173, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174(o, s, BOOST_PP_LIST_REVERSE_D(174, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175(o, s, BOOST_PP_LIST_REVERSE_D(175, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176(o, s, BOOST_PP_LIST_REVERSE_D(176, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177(o, s, BOOST_PP_LIST_REVERSE_D(177, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178(o, s, BOOST_PP_LIST_REVERSE_D(178, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179(o, s, BOOST_PP_LIST_REVERSE_D(179, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180(o, s, BOOST_PP_LIST_REVERSE_D(180, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181(o, s, BOOST_PP_LIST_REVERSE_D(181, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182(o, s, BOOST_PP_LIST_REVERSE_D(182, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183(o, s, BOOST_PP_LIST_REVERSE_D(183, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184(o, s, BOOST_PP_LIST_REVERSE_D(184, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185(o, s, BOOST_PP_LIST_REVERSE_D(185, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186(o, s, BOOST_PP_LIST_REVERSE_D(186, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187(o, s, BOOST_PP_LIST_REVERSE_D(187, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188(o, s, BOOST_PP_LIST_REVERSE_D(188, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189(o, s, BOOST_PP_LIST_REVERSE_D(189, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190(o, s, BOOST_PP_LIST_REVERSE_D(190, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191(o, s, BOOST_PP_LIST_REVERSE_D(191, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192(o, s, BOOST_PP_LIST_REVERSE_D(192, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193(o, s, BOOST_PP_LIST_REVERSE_D(193, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194(o, s, BOOST_PP_LIST_REVERSE_D(194, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195(o, s, BOOST_PP_LIST_REVERSE_D(195, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196(o, s, BOOST_PP_LIST_REVERSE_D(196, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197(o, s, BOOST_PP_LIST_REVERSE_D(197, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198(o, s, BOOST_PP_LIST_REVERSE_D(198, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199(o, s, BOOST_PP_LIST_REVERSE_D(199, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200(o, s, BOOST_PP_LIST_REVERSE_D(200, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201(o, s, BOOST_PP_LIST_REVERSE_D(201, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202(o, s, BOOST_PP_LIST_REVERSE_D(202, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203(o, s, BOOST_PP_LIST_REVERSE_D(203, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204(o, s, BOOST_PP_LIST_REVERSE_D(204, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205(o, s, BOOST_PP_LIST_REVERSE_D(205, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206(o, s, BOOST_PP_LIST_REVERSE_D(206, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207(o, s, BOOST_PP_LIST_REVERSE_D(207, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208(o, s, BOOST_PP_LIST_REVERSE_D(208, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209(o, s, BOOST_PP_LIST_REVERSE_D(209, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210(o, s, BOOST_PP_LIST_REVERSE_D(210, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211(o, s, BOOST_PP_LIST_REVERSE_D(211, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212(o, s, BOOST_PP_LIST_REVERSE_D(212, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213(o, s, BOOST_PP_LIST_REVERSE_D(213, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214(o, s, BOOST_PP_LIST_REVERSE_D(214, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215(o, s, BOOST_PP_LIST_REVERSE_D(215, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216(o, s, BOOST_PP_LIST_REVERSE_D(216, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217(o, s, BOOST_PP_LIST_REVERSE_D(217, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218(o, s, BOOST_PP_LIST_REVERSE_D(218, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219(o, s, BOOST_PP_LIST_REVERSE_D(219, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220(o, s, BOOST_PP_LIST_REVERSE_D(220, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221(o, s, BOOST_PP_LIST_REVERSE_D(221, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222(o, s, BOOST_PP_LIST_REVERSE_D(222, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223(o, s, BOOST_PP_LIST_REVERSE_D(223, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224(o, s, BOOST_PP_LIST_REVERSE_D(224, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225(o, s, BOOST_PP_LIST_REVERSE_D(225, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226(o, s, BOOST_PP_LIST_REVERSE_D(226, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227(o, s, BOOST_PP_LIST_REVERSE_D(227, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228(o, s, BOOST_PP_LIST_REVERSE_D(228, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229(o, s, BOOST_PP_LIST_REVERSE_D(229, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230(o, s, BOOST_PP_LIST_REVERSE_D(230, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231(o, s, BOOST_PP_LIST_REVERSE_D(231, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232(o, s, BOOST_PP_LIST_REVERSE_D(232, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233(o, s, BOOST_PP_LIST_REVERSE_D(233, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234(o, s, BOOST_PP_LIST_REVERSE_D(234, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235(o, s, BOOST_PP_LIST_REVERSE_D(235, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236(o, s, BOOST_PP_LIST_REVERSE_D(236, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237(o, s, BOOST_PP_LIST_REVERSE_D(237, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238(o, s, BOOST_PP_LIST_REVERSE_D(238, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239(o, s, BOOST_PP_LIST_REVERSE_D(239, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240(o, s, BOOST_PP_LIST_REVERSE_D(240, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241(o, s, BOOST_PP_LIST_REVERSE_D(241, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242(o, s, BOOST_PP_LIST_REVERSE_D(242, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243(o, s, BOOST_PP_LIST_REVERSE_D(243, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244(o, s, BOOST_PP_LIST_REVERSE_D(244, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245(o, s, BOOST_PP_LIST_REVERSE_D(245, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246(o, s, BOOST_PP_LIST_REVERSE_D(246, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247(o, s, BOOST_PP_LIST_REVERSE_D(247, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248(o, s, BOOST_PP_LIST_REVERSE_D(248, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249(o, s, BOOST_PP_LIST_REVERSE_D(249, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250(o, s, BOOST_PP_LIST_REVERSE_D(250, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251(o, s, BOOST_PP_LIST_REVERSE_D(251, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252(o, s, BOOST_PP_LIST_REVERSE_D(252, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253(o, s, BOOST_PP_LIST_REVERSE_D(253, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254(o, s, BOOST_PP_LIST_REVERSE_D(254, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255(o, s, BOOST_PP_LIST_REVERSE_D(255, l)) -# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256(o, s, BOOST_PP_LIST_REVERSE_D(256, l)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/enum.hpp b/lib/3rdParty/boost/boost/preprocessor/list/enum.hpp deleted file mode 100644 index 1eabea6ef..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/enum.hpp +++ /dev/null @@ -1,41 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_ENUM_HPP -# define BOOST_PREPROCESSOR_LIST_ENUM_HPP -# -# include -# include -# include -# -# /* BOOST_PP_LIST_ENUM */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_ENUM(list) BOOST_PP_LIST_FOR_EACH_I(BOOST_PP_LIST_ENUM_O, BOOST_PP_NIL, list) -# else -# define BOOST_PP_LIST_ENUM(list) BOOST_PP_LIST_ENUM_I(list) -# define BOOST_PP_LIST_ENUM_I(list) BOOST_PP_LIST_FOR_EACH_I(BOOST_PP_LIST_ENUM_O, BOOST_PP_NIL, list) -# endif -# -# define BOOST_PP_LIST_ENUM_O(r, _, i, elem) BOOST_PP_COMMA_IF(i) elem -# -# /* BOOST_PP_LIST_ENUM_R */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_ENUM_R(r, list) BOOST_PP_LIST_FOR_EACH_I_R(r, BOOST_PP_LIST_ENUM_O, BOOST_PP_NIL, list) -# else -# define BOOST_PP_LIST_ENUM_R(r, list) BOOST_PP_LIST_ENUM_R_I(r, list) -# define BOOST_PP_LIST_ENUM_R_I(r, list) BOOST_PP_LIST_FOR_EACH_I_R(r, BOOST_PP_LIST_ENUM_O, BOOST_PP_NIL, list) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/filter.hpp b/lib/3rdParty/boost/boost/preprocessor/list/filter.hpp deleted file mode 100644 index 9e0faab6c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/filter.hpp +++ /dev/null @@ -1,54 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_FILTER_HPP -# define BOOST_PREPROCESSOR_LIST_FILTER_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_FILTER */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FILTER(pred, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_FILTER_O, (pred, data, BOOST_PP_NIL), list)) -# else -# define BOOST_PP_LIST_FILTER(pred, data, list) BOOST_PP_LIST_FILTER_I(pred, data, list) -# define BOOST_PP_LIST_FILTER_I(pred, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_FILTER_O, (pred, data, BOOST_PP_NIL), list)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FILTER_O(d, pdr, elem) BOOST_PP_LIST_FILTER_O_D(d, BOOST_PP_TUPLE_ELEM(3, 0, pdr), BOOST_PP_TUPLE_ELEM(3, 1, pdr), BOOST_PP_TUPLE_ELEM(3, 2, pdr), elem) -# else -# define BOOST_PP_LIST_FILTER_O(d, pdr, elem) BOOST_PP_LIST_FILTER_O_I(d, BOOST_PP_TUPLE_REM_3 pdr, elem) -# define BOOST_PP_LIST_FILTER_O_I(d, im, elem) BOOST_PP_LIST_FILTER_O_D(d, im, elem) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, BOOST_PP_IF(pred(d, data, elem), (elem, res), res)) -# else -# define BOOST_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, BOOST_PP_IF(pred##(d, data, elem), (elem, res), res)) -# endif -# -# /* BOOST_PP_LIST_FILTER_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FILTER_D(d, pred, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_FILTER_O, (pred, data, BOOST_PP_NIL), list)) -# else -# define BOOST_PP_LIST_FILTER_D(d, pred, data, list) BOOST_PP_LIST_FILTER_D_I(d, pred, data, list) -# define BOOST_PP_LIST_FILTER_D_I(d, pred, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_FILTER_O, (pred, data, BOOST_PP_NIL), list)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/first_n.hpp b/lib/3rdParty/boost/boost/preprocessor/list/first_n.hpp deleted file mode 100644 index 5e60c502c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/first_n.hpp +++ /dev/null @@ -1,58 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_FIRST_N_HPP -# define BOOST_PREPROCESSOR_LIST_FIRST_N_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_FIRST_N */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FIRST_N(count, list) BOOST_PP_LIST_REVERSE(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_WHILE(BOOST_PP_LIST_FIRST_N_P, BOOST_PP_LIST_FIRST_N_O, (count, list, BOOST_PP_NIL)))) -# else -# define BOOST_PP_LIST_FIRST_N(count, list) BOOST_PP_LIST_FIRST_N_I(count, list) -# define BOOST_PP_LIST_FIRST_N_I(count, list) BOOST_PP_LIST_REVERSE(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_WHILE(BOOST_PP_LIST_FIRST_N_P, BOOST_PP_LIST_FIRST_N_O, (count, list, BOOST_PP_NIL)))) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FIRST_N_P(d, data) BOOST_PP_TUPLE_ELEM(3, 0, data) -# else -# define BOOST_PP_LIST_FIRST_N_P(d, data) BOOST_PP_LIST_FIRST_N_P_I data -# define BOOST_PP_LIST_FIRST_N_P_I(c, l, nl) c -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_LIST_FIRST_N_O(d, data) BOOST_PP_LIST_FIRST_N_O_D data -# else -# define BOOST_PP_LIST_FIRST_N_O(d, data) BOOST_PP_LIST_FIRST_N_O_D(BOOST_PP_TUPLE_ELEM(3, 0, data), BOOST_PP_TUPLE_ELEM(3, 1, data), BOOST_PP_TUPLE_ELEM(3, 2, data)) -# endif -# -# define BOOST_PP_LIST_FIRST_N_O_D(c, l, nl) (BOOST_PP_DEC(c), BOOST_PP_LIST_REST(l), (BOOST_PP_LIST_FIRST(l), nl)) -# -# /* BOOST_PP_LIST_FIRST_N_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FIRST_N_D(d, count, list) BOOST_PP_LIST_REVERSE_D(d, BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_LIST_FIRST_N_P, BOOST_PP_LIST_FIRST_N_O, (count, list, BOOST_PP_NIL)))) -# else -# define BOOST_PP_LIST_FIRST_N_D(d, count, list) BOOST_PP_LIST_FIRST_N_D_I(d, count, list) -# define BOOST_PP_LIST_FIRST_N_D_I(d, count, list) BOOST_PP_LIST_REVERSE_D(d, BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_WHILE_ ## d(BOOST_PP_LIST_FIRST_N_P, BOOST_PP_LIST_FIRST_N_O, (count, list, BOOST_PP_NIL)))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/fold_left.hpp b/lib/3rdParty/boost/boost/preprocessor/list/fold_left.hpp deleted file mode 100644 index f235aec8e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/fold_left.hpp +++ /dev/null @@ -1,303 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP -# define BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_FOLD_LEFT */ -# -# if 0 -# define BOOST_PP_LIST_FOLD_LEFT(op, state, list) -# endif -# -# define BOOST_PP_LIST_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) -# -# define BOOST_PP_LIST_FOLD_LEFT_257(o, s, l) BOOST_PP_ERROR(0x0004) -# -# define BOOST_PP_LIST_FOLD_LEFT_D(d, o, s, l) BOOST_PP_LIST_FOLD_LEFT_ ## d(o, s, l) -# define BOOST_PP_LIST_FOLD_LEFT_2ND BOOST_PP_LIST_FOLD_LEFT -# define BOOST_PP_LIST_FOLD_LEFT_2ND_D BOOST_PP_LIST_FOLD_LEFT_D -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# include -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# include -# else -# include -# endif -# -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_NIL 1 -# -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) 0 -# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/fold_right.hpp b/lib/3rdParty/boost/boost/preprocessor/list/fold_right.hpp deleted file mode 100644 index ce18afef2..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/fold_right.hpp +++ /dev/null @@ -1,40 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP -# define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP -# -# include -# include -# include -# include -# -# if 0 -# define BOOST_PP_LIST_FOLD_RIGHT(op, state, list) -# endif -# -# define BOOST_PP_LIST_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256)) -# -# define BOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) BOOST_PP_ERROR(0x0004) -# -# define BOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) BOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l) -# define BOOST_PP_LIST_FOLD_RIGHT_2ND BOOST_PP_LIST_FOLD_RIGHT -# define BOOST_PP_LIST_FOLD_RIGHT_2ND_D BOOST_PP_LIST_FOLD_RIGHT_D -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# include -# else -# include -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/for_each.hpp b/lib/3rdParty/boost/boost/preprocessor/list/for_each.hpp deleted file mode 100644 index dd04eaa5d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/for_each.hpp +++ /dev/null @@ -1,49 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_FOR_EACH_HPP -# define BOOST_PREPROCESSOR_LIST_FOR_EACH_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_FOR_EACH */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH(macro, data, list) BOOST_PP_LIST_FOR_EACH_I(BOOST_PP_LIST_FOR_EACH_O, (macro, data), list) -# else -# define BOOST_PP_LIST_FOR_EACH(macro, data, list) BOOST_PP_LIST_FOR_EACH_X(macro, data, list) -# define BOOST_PP_LIST_FOR_EACH_X(macro, data, list) BOOST_PP_LIST_FOR_EACH_I(BOOST_PP_LIST_FOR_EACH_O, (macro, data), list) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_O(r, md, i, elem) BOOST_PP_LIST_FOR_EACH_O_D(r, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md), elem) -# else -# define BOOST_PP_LIST_FOR_EACH_O(r, md, i, elem) BOOST_PP_LIST_FOR_EACH_O_I(r, BOOST_PP_TUPLE_REM_2 md, elem) -# define BOOST_PP_LIST_FOR_EACH_O_I(r, im, elem) BOOST_PP_LIST_FOR_EACH_O_D(r, im, elem) -# endif -# -# define BOOST_PP_LIST_FOR_EACH_O_D(r, m, d, elem) m(r, d, elem) -# -# /* BOOST_PP_LIST_FOR_EACH_R */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_R(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_I_R(r, BOOST_PP_LIST_FOR_EACH_O, (macro, data), list) -# else -# define BOOST_PP_LIST_FOR_EACH_R(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_R_X(r, macro, data, list) -# define BOOST_PP_LIST_FOR_EACH_R_X(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_I_R(r, BOOST_PP_LIST_FOR_EACH_O, (macro, data), list) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/for_each_i.hpp b/lib/3rdParty/boost/boost/preprocessor/list/for_each_i.hpp deleted file mode 100644 index 8f02e2e31..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/for_each_i.hpp +++ /dev/null @@ -1,65 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP -# define BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_FOR_EACH_I */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M) -# else -# define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) -# define BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_FOR_EACH_I_P_D x -# define BOOST_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) BOOST_PP_LIST_IS_CONS(l) -# else -# define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(4, 2, x)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_LIST_FOR_EACH_I_O(r, x) BOOST_PP_LIST_FOR_EACH_I_O_D x -# define BOOST_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, BOOST_PP_LIST_REST(l), BOOST_PP_INC(i)) -# else -# define BOOST_PP_LIST_FOR_EACH_I_O(r, x) (BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(4, 2, x)), BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 3, x))) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_D(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x)) -# else -# define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_REM_4 x) -# define BOOST_PP_LIST_FOR_EACH_I_M_I(r, x_e) BOOST_PP_LIST_FOR_EACH_I_M_D(r, x_e) -# endif -# -# define BOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, BOOST_PP_LIST_FIRST(l)) -# -# /* BOOST_PP_LIST_FOR_EACH_I_R */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M) -# else -# define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) -# define BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/for_each_product.hpp b/lib/3rdParty/boost/boost/preprocessor/list/for_each_product.hpp deleted file mode 100644 index 6d5319b06..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/for_each_product.hpp +++ /dev/null @@ -1,141 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_FOR_EACH_PRODUCT_HPP -# define BOOST_PREPROCESSOR_LIST_FOR_EACH_PRODUCT_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_FOR_EACH_PRODUCT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT(macro, size, tuple) BOOST_PP_LIST_FOR_EACH_PRODUCT_E(BOOST_PP_FOR, macro, size, BOOST_PP_TUPLE_TO_LIST(size, tuple)) -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT(macro, size, tuple) BOOST_PP_LIST_FOR_EACH_PRODUCT_Q(macro, size, tuple) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_Q(macro, size, tuple) BOOST_PP_LIST_FOR_EACH_PRODUCT_E(BOOST_PP_FOR, macro, size, BOOST_PP_TUPLE_TO_LIST(size, tuple)) -# endif -# -# /* BOOST_PP_LIST_FOR_EACH_PRODUCT_R */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(r, macro, size, tuple) BOOST_PP_LIST_FOR_EACH_PRODUCT_E(BOOST_PP_FOR_ ## r, macro, size, BOOST_PP_TUPLE_TO_LIST(size, tuple)) -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(r, macro, size, tuple) BOOST_PP_LIST_FOR_EACH_PRODUCT_R_Q(r, macro, size, tuple) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_R_Q(r, macro, size, tuple) BOOST_PP_LIST_FOR_EACH_PRODUCT_E(BOOST_PP_FOR_ ## r, macro, size, BOOST_PP_TUPLE_TO_LIST(size, tuple)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_E(impl, macro, size, lists) impl((BOOST_PP_LIST_FIRST(lists), BOOST_PP_LIST_REST(lists), BOOST_PP_NIL, macro, size), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_0) -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_E(impl, macro, size, lists) BOOST_PP_LIST_FOR_EACH_PRODUCT_E_D(impl, macro, size, lists) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_E_D(impl, macro, size, lists) impl((BOOST_PP_LIST_FIRST(lists), BOOST_PP_LIST_REST(lists), BOOST_PP_NIL, macro, size), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_0) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_P_I data -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_P_I(a, b, res, macro, size) BOOST_PP_LIST_IS_CONS(a) -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(5, 0, data)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_O(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_O_I data -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_O_I(a, b, res, macro, size) (BOOST_PP_LIST_REST(a), b, res, macro, size) -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_O(r, data) (BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(5, 0, data)), BOOST_PP_TUPLE_ELEM(5, 1, data), BOOST_PP_TUPLE_ELEM(5, 2, data), BOOST_PP_TUPLE_ELEM(5, 3, data), BOOST_PP_TUPLE_ELEM(5, 4, data)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_I_I(r, BOOST_PP_TUPLE_ELEM(5, 0, data), BOOST_PP_TUPLE_ELEM(5, 1, data), BOOST_PP_TUPLE_ELEM(5, 2, data), BOOST_PP_TUPLE_ELEM(5, 3, data), BOOST_PP_TUPLE_ELEM(5, 4, data)) -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_I_D(r, BOOST_PP_TUPLE_REM_5 data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_I_D(r, data_e) BOOST_PP_LIST_FOR_EACH_PRODUCT_I_I(r, data_e) -# endif -# -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_I_I(r, a, b, res, macro, size) BOOST_PP_LIST_FOR_EACH_PRODUCT_I_II(r, macro, BOOST_PP_LIST_TO_TUPLE_R(r, (BOOST_PP_LIST_FIRST(a), res)), size) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_I_II(r, macro, args, size) BOOST_PP_LIST_FOR_EACH_PRODUCT_I_III(r, macro, args, size) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_I_III(r, macro, args, size) macro(r, BOOST_PP_TUPLE_REVERSE(size, args)) -# -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, i) BOOST_PP_IF(BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(5, 1, data)), BOOST_PP_LIST_FOR_EACH_PRODUCT_N_ ## i, BOOST_PP_LIST_FOR_EACH_PRODUCT_I) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data) BOOST_PP_LIST_FOR_EACH_PRODUCT_H_I data -# else -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data) BOOST_PP_LIST_FOR_EACH_PRODUCT_H_I(BOOST_PP_TUPLE_ELEM(5, 0, data), BOOST_PP_TUPLE_ELEM(5, 1, data), BOOST_PP_TUPLE_ELEM(5, 2, data), BOOST_PP_TUPLE_ELEM(5, 3, data), BOOST_PP_TUPLE_ELEM(5, 4, data)) -# endif -# -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_H_I(a, b, res, macro, size) (BOOST_PP_LIST_FIRST(b), BOOST_PP_LIST_REST(b), (BOOST_PP_LIST_FIRST(a), res), macro, size) -# -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_0(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 0)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_1(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 1)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_2(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 2)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_3(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 3)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_4(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 4)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_5(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 5)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_6(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 6)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_7(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 7)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_8(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 8)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_9(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 9)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_10(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 10)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_11(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 11)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_12(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 12)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_13(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 13)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_14(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 14)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_15(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 15)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_16(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 16)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_17(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 17)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_18(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 18)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_19(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 19)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_20(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 20)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_21(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 21)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_22(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 22)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_23(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 23)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_24(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 24)(r, data) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_M_25(r, data) BOOST_PP_LIST_FOR_EACH_PRODUCT_C(data, 25)(r, data) -# -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_0(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_1) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_1(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_2) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_2(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_3) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_3(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_4) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_4(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_5) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_5(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_6) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_6(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_7) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_7(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_8) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_8(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_9) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_9(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_10) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_10(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_11) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_11(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_12) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_12(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_13) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_13(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_14) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_14(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_15) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_15(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_16) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_16(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_17) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_17(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_18) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_18(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_19) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_19(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_20) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_20(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_21) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_21(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_22) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_22(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_23) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_23(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_24) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_24(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_25) -# define BOOST_PP_LIST_FOR_EACH_PRODUCT_N_25(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_LIST_FOR_EACH_PRODUCT_H(data), BOOST_PP_LIST_FOR_EACH_PRODUCT_P, BOOST_PP_LIST_FOR_EACH_PRODUCT_O, BOOST_PP_LIST_FOR_EACH_PRODUCT_M_26) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/rest_n.hpp b/lib/3rdParty/boost/boost/preprocessor/list/rest_n.hpp deleted file mode 100644 index b42ee5fe4..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/rest_n.hpp +++ /dev/null @@ -1,55 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_REST_N_HPP -# define BOOST_PREPROCESSOR_LIST_REST_N_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_REST_N */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_REST_N(count, list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_LIST_REST_N_P, BOOST_PP_LIST_REST_N_O, (list, count))) -# else -# define BOOST_PP_LIST_REST_N(count, list) BOOST_PP_LIST_REST_N_I(count, list) -# define BOOST_PP_LIST_REST_N_I(count, list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_LIST_REST_N_P, BOOST_PP_LIST_REST_N_O, (list, count))) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_REST_N_P(d, lc) BOOST_PP_TUPLE_ELEM(2, 1, lc) -# else -# define BOOST_PP_LIST_REST_N_P(d, lc) BOOST_PP_LIST_REST_N_P_I lc -# define BOOST_PP_LIST_REST_N_P_I(list, count) count -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_REST_N_O(d, lc) (BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(2, 0, lc)), BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2, 1, lc))) -# else -# define BOOST_PP_LIST_REST_N_O(d, lc) BOOST_PP_LIST_REST_N_O_I lc -# define BOOST_PP_LIST_REST_N_O_I(list, count) (BOOST_PP_LIST_REST(list), BOOST_PP_DEC(count)) -# endif -# -# /* BOOST_PP_LIST_REST_N_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_REST_N_D(d, count, list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_LIST_REST_N_P, BOOST_PP_LIST_REST_N_O, (list, count))) -# else -# define BOOST_PP_LIST_REST_N_D(d, count, list) BOOST_PP_LIST_REST_N_D_I(d, count, list) -# define BOOST_PP_LIST_REST_N_D_I(d, count, list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_LIST_REST_N_P, BOOST_PP_LIST_REST_N_O, (list, count))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/reverse.hpp b/lib/3rdParty/boost/boost/preprocessor/list/reverse.hpp deleted file mode 100644 index 651da0571..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/reverse.hpp +++ /dev/null @@ -1,40 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_REVERSE_HPP -# define BOOST_PREPROCESSOR_LIST_REVERSE_HPP -# -# include -# include -# -# /* BOOST_PP_LIST_REVERSE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) -# else -# define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_REVERSE_I(list) -# define BOOST_PP_LIST_REVERSE_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) -# endif -# -# define BOOST_PP_LIST_REVERSE_O(d, s, x) (x, s) -# -# /* BOOST_PP_LIST_REVERSE_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) -# else -# define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_REVERSE_D_I(d, list) -# define BOOST_PP_LIST_REVERSE_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/size.hpp b/lib/3rdParty/boost/boost/preprocessor/list/size.hpp deleted file mode 100644 index 0757fba80..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/size.hpp +++ /dev/null @@ -1,58 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_SIZE_HPP -# define BOOST_PREPROCESSOR_LIST_SIZE_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_SIZE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_SIZE(list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_LIST_SIZE_P, BOOST_PP_LIST_SIZE_O, (0, list))) -# else -# define BOOST_PP_LIST_SIZE(list) BOOST_PP_LIST_SIZE_I(list) -# define BOOST_PP_LIST_SIZE_I(list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_LIST_SIZE_P, BOOST_PP_LIST_SIZE_O, (0, list))) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_SIZE_P(d, rl) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(2, 1, rl)) -# else -# define BOOST_PP_LIST_SIZE_P(d, rl) BOOST_PP_LIST_SIZE_P_I(BOOST_PP_TUPLE_REM_2 rl) -# define BOOST_PP_LIST_SIZE_P_I(im) BOOST_PP_LIST_SIZE_P_II(im) -# define BOOST_PP_LIST_SIZE_P_II(r, l) BOOST_PP_LIST_IS_CONS(l) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_SIZE_O(d, rl) (BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 0, rl)), BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(2, 1, rl))) -# else -# define BOOST_PP_LIST_SIZE_O(d, rl) BOOST_PP_LIST_SIZE_O_I(BOOST_PP_TUPLE_REM_2 rl) -# define BOOST_PP_LIST_SIZE_O_I(im) BOOST_PP_LIST_SIZE_O_II(im) -# define BOOST_PP_LIST_SIZE_O_II(r, l) (BOOST_PP_INC(r), BOOST_PP_LIST_REST(l)) -# endif -# -# /* BOOST_PP_LIST_SIZE_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_SIZE_D(d, list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_LIST_SIZE_P, BOOST_PP_LIST_SIZE_O, (0, list))) -# else -# define BOOST_PP_LIST_SIZE_D(d, list) BOOST_PP_LIST_SIZE_D_I(d, list) -# define BOOST_PP_LIST_SIZE_D_I(d, list) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_LIST_SIZE_P, BOOST_PP_LIST_SIZE_O, (0, list))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/to_array.hpp b/lib/3rdParty/boost/boost/preprocessor/list/to_array.hpp deleted file mode 100644 index 20829b905..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/to_array.hpp +++ /dev/null @@ -1,155 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2011. -# * (C) Copyright Edward Diener 2011,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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP -# define BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP -# -# include -# include -# include -# include -# include -# include -# include -# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC && (_MSC_VER <= 1400) -# include -# endif -# -# /* BOOST_PP_LIST_TO_ARRAY */ -# -# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC && (_MSC_VER <= 1400) -# define BOOST_PP_LIST_TO_ARRAY(list) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_LIST_IS_NIL(list), \ - BOOST_PP_LIST_TO_ARRAY_VC8ORLESS_EMPTY, \ - BOOST_PP_LIST_TO_ARRAY_VC8ORLESS_DO \ - ) \ - (list) \ -/**/ -# define BOOST_PP_LIST_TO_ARRAY_VC8ORLESS_EMPTY(list) (0,()) -# define BOOST_PP_LIST_TO_ARRAY_VC8ORLESS_DO(list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE, list) -# else -# define BOOST_PP_LIST_TO_ARRAY(list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE, list) -# endif - -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_LIST_TO_ARRAY_I(w, list) \ - BOOST_PP_LIST_TO_ARRAY_II(((BOOST_PP_TUPLE_REM_CTOR( \ - 3, \ - w(BOOST_PP_LIST_TO_ARRAY_P, BOOST_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \ - )))) \ - /**/ -# define BOOST_PP_LIST_TO_ARRAY_II(p) BOOST_PP_LIST_TO_ARRAY_II_B(p) -# define BOOST_PP_LIST_TO_ARRAY_II_B(p) BOOST_PP_LIST_TO_ARRAY_II_C ## p -# define BOOST_PP_LIST_TO_ARRAY_II_C(p) BOOST_PP_LIST_TO_ARRAY_III p -# else -# define BOOST_PP_LIST_TO_ARRAY_I(w, list) \ - BOOST_PP_LIST_TO_ARRAY_II(BOOST_PP_TUPLE_REM_CTOR( \ - 3, \ - w(BOOST_PP_LIST_TO_ARRAY_P, BOOST_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \ - )) \ - /**/ -# define BOOST_PP_LIST_TO_ARRAY_II(im) BOOST_PP_LIST_TO_ARRAY_III(im) -# endif -# if BOOST_PP_VARIADICS -# define BOOST_PP_LIST_TO_ARRAY_III(list, size, tuple) (BOOST_PP_DEC(size), BOOST_PP_LIST_TO_ARRAY_IV tuple) -# define BOOST_PP_LIST_TO_ARRAY_IV(_, ...) (__VA_ARGS__) -# else -# define BOOST_PP_LIST_TO_ARRAY_III(list, size, tuple) (BOOST_PP_DEC(size), BOOST_PP_LIST_TO_ARRAY_IV_ ## size tuple) -# define BOOST_PP_LIST_TO_ARRAY_IV_2(_, e0) (e0) -# define BOOST_PP_LIST_TO_ARRAY_IV_3(_, e0, e1) (e0, e1) -# define BOOST_PP_LIST_TO_ARRAY_IV_4(_, e0, e1, e2) (e0, e1, e2) -# define BOOST_PP_LIST_TO_ARRAY_IV_5(_, e0, e1, e2, e3) (e0, e1, e2, e3) -# define BOOST_PP_LIST_TO_ARRAY_IV_6(_, e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4) -# define BOOST_PP_LIST_TO_ARRAY_IV_7(_, e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5) -# define BOOST_PP_LIST_TO_ARRAY_IV_8(_, e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6) -# define BOOST_PP_LIST_TO_ARRAY_IV_9(_, e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7) -# define BOOST_PP_LIST_TO_ARRAY_IV_10(_, e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8) -# define BOOST_PP_LIST_TO_ARRAY_IV_11(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) -# define BOOST_PP_LIST_TO_ARRAY_IV_12(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) -# define BOOST_PP_LIST_TO_ARRAY_IV_13(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) -# define BOOST_PP_LIST_TO_ARRAY_IV_14(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) -# define BOOST_PP_LIST_TO_ARRAY_IV_15(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) -# define BOOST_PP_LIST_TO_ARRAY_IV_16(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) -# define BOOST_PP_LIST_TO_ARRAY_IV_17(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) -# define BOOST_PP_LIST_TO_ARRAY_IV_18(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) -# define BOOST_PP_LIST_TO_ARRAY_IV_19(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) -# define BOOST_PP_LIST_TO_ARRAY_IV_20(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) -# define BOOST_PP_LIST_TO_ARRAY_IV_21(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) -# define BOOST_PP_LIST_TO_ARRAY_IV_22(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) -# define BOOST_PP_LIST_TO_ARRAY_IV_23(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) -# define BOOST_PP_LIST_TO_ARRAY_IV_24(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) -# define BOOST_PP_LIST_TO_ARRAY_IV_25(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) -# define BOOST_PP_LIST_TO_ARRAY_IV_26(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) -# define BOOST_PP_LIST_TO_ARRAY_IV_27(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) -# define BOOST_PP_LIST_TO_ARRAY_IV_28(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) -# define BOOST_PP_LIST_TO_ARRAY_IV_29(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) -# define BOOST_PP_LIST_TO_ARRAY_IV_30(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) -# define BOOST_PP_LIST_TO_ARRAY_IV_31(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) -# define BOOST_PP_LIST_TO_ARRAY_IV_32(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) -# define BOOST_PP_LIST_TO_ARRAY_IV_33(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) -# define BOOST_PP_LIST_TO_ARRAY_IV_34(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) -# define BOOST_PP_LIST_TO_ARRAY_IV_35(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) -# define BOOST_PP_LIST_TO_ARRAY_IV_36(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) -# define BOOST_PP_LIST_TO_ARRAY_IV_37(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) -# define BOOST_PP_LIST_TO_ARRAY_IV_38(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) -# define BOOST_PP_LIST_TO_ARRAY_IV_39(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) -# define BOOST_PP_LIST_TO_ARRAY_IV_40(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) -# define BOOST_PP_LIST_TO_ARRAY_IV_41(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) -# define BOOST_PP_LIST_TO_ARRAY_IV_42(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) -# define BOOST_PP_LIST_TO_ARRAY_IV_43(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) -# define BOOST_PP_LIST_TO_ARRAY_IV_44(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) -# define BOOST_PP_LIST_TO_ARRAY_IV_45(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) -# define BOOST_PP_LIST_TO_ARRAY_IV_46(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) -# define BOOST_PP_LIST_TO_ARRAY_IV_47(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) -# define BOOST_PP_LIST_TO_ARRAY_IV_48(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) -# define BOOST_PP_LIST_TO_ARRAY_IV_49(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) -# define BOOST_PP_LIST_TO_ARRAY_IV_50(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) -# define BOOST_PP_LIST_TO_ARRAY_IV_51(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) -# define BOOST_PP_LIST_TO_ARRAY_IV_52(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) -# define BOOST_PP_LIST_TO_ARRAY_IV_53(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) -# define BOOST_PP_LIST_TO_ARRAY_IV_54(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) -# define BOOST_PP_LIST_TO_ARRAY_IV_55(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) -# define BOOST_PP_LIST_TO_ARRAY_IV_56(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) -# define BOOST_PP_LIST_TO_ARRAY_IV_57(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) -# define BOOST_PP_LIST_TO_ARRAY_IV_58(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) -# define BOOST_PP_LIST_TO_ARRAY_IV_59(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) -# define BOOST_PP_LIST_TO_ARRAY_IV_60(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) -# define BOOST_PP_LIST_TO_ARRAY_IV_61(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) -# define BOOST_PP_LIST_TO_ARRAY_IV_62(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) -# define BOOST_PP_LIST_TO_ARRAY_IV_63(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) -# define BOOST_PP_LIST_TO_ARRAY_IV_64(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) -# endif -# define BOOST_PP_LIST_TO_ARRAY_P(d, state) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(3, 0, state)) -# define BOOST_PP_LIST_TO_ARRAY_O(d, state) BOOST_PP_LIST_TO_ARRAY_O_I state -# define BOOST_PP_LIST_TO_ARRAY_O_I(list, size, tuple) (BOOST_PP_LIST_REST(list), BOOST_PP_INC(size), (BOOST_PP_TUPLE_REM(size) tuple, BOOST_PP_LIST_FIRST(list))) -# -# /* BOOST_PP_LIST_TO_ARRAY_D */ -# -# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC && (_MSC_VER <= 1400) -# define BOOST_PP_LIST_TO_ARRAY_D(d, list) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_LIST_IS_NIL(list), \ - BOOST_PP_LIST_TO_ARRAY_D_VC8ORLESS_EMPTY, \ - BOOST_PP_LIST_TO_ARRAY_D_VC8ORLESS_DO \ - ) \ - (d, list) \ -/**/ -# define BOOST_PP_LIST_TO_ARRAY_D_VC8ORLESS_EMPTY(d, list) (0,()) -# define BOOST_PP_LIST_TO_ARRAY_D_VC8ORLESS_DO(d, list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE_ ## d, list) -# else -# define BOOST_PP_LIST_TO_ARRAY_D(d, list) BOOST_PP_LIST_TO_ARRAY_I(BOOST_PP_WHILE_ ## d, list) -# endif -# -# endif /* BOOST_PREPROCESSOR_LIST_TO_ARRAY_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/list/to_seq.hpp b/lib/3rdParty/boost/boost/preprocessor/list/to_seq.hpp deleted file mode 100644 index 7425907c6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/to_seq.hpp +++ /dev/null @@ -1,32 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. -# * 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) -# * * -# ************************************************************************** */ -# -# /* Revised by Paul Mensonides (2011) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP -# define BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP -# -# include -# -# /* BOOST_PP_LIST_TO_SEQ */ -# -# define BOOST_PP_LIST_TO_SEQ(list) \ - BOOST_PP_LIST_FOR_EACH(BOOST_PP_LIST_TO_SEQ_MACRO, ~, list) \ - /**/ -# define BOOST_PP_LIST_TO_SEQ_MACRO(r, data, elem) (elem) -# -# /* BOOST_PP_LIST_TO_SEQ_R */ -# -# define BOOST_PP_LIST_TO_SEQ_R(r, list) \ - BOOST_PP_LIST_FOR_EACH_R(r, BOOST_PP_LIST_TO_SEQ_MACRO, ~, list) \ - /**/ -# -# endif /* BOOST_PREPROCESSOR_LIST_TO_SEQ_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/list/to_tuple.hpp b/lib/3rdParty/boost/boost/preprocessor/list/to_tuple.hpp deleted file mode 100644 index c7b3da84b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/to_tuple.hpp +++ /dev/null @@ -1,61 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_TO_TUPLE_HPP -# define BOOST_PREPROCESSOR_LIST_TO_TUPLE_HPP -# -# include -# include -# include -# -# /* BOOST_PP_LIST_TO_TUPLE */ -# -# define BOOST_PP_LIST_TO_TUPLE(list) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_LIST_IS_NIL(list), \ - BOOST_PP_LIST_TO_TUPLE_EMPTY, \ - BOOST_PP_LIST_TO_TUPLE_DO \ - ) \ - (list) \ -/**/ -# define BOOST_PP_LIST_TO_TUPLE_EMPTY(list) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_TO_TUPLE_DO(list) (BOOST_PP_LIST_ENUM(list)) -# else -# define BOOST_PP_LIST_TO_TUPLE_DO(list) BOOST_PP_LIST_TO_TUPLE_I(list) -# define BOOST_PP_LIST_TO_TUPLE_I(list) (BOOST_PP_LIST_ENUM(list)) -# endif -# -# /* BOOST_PP_LIST_TO_TUPLE_R */ -# -# define BOOST_PP_LIST_TO_TUPLE_R(r, list) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_LIST_IS_NIL(list), \ - BOOST_PP_LIST_TO_TUPLE_R_EMPTY, \ - BOOST_PP_LIST_TO_TUPLE_R_DO \ - ) \ - (r, list) \ -/**/ -# define BOOST_PP_LIST_TO_TUPLE_R_EMPTY(r,list) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_TO_TUPLE_R_DO(r, list) (BOOST_PP_LIST_ENUM_R(r, list)) -# else -# define BOOST_PP_LIST_TO_TUPLE_R_DO(r, list) BOOST_PP_LIST_TO_TUPLE_R_I(r, list) -# define BOOST_PP_LIST_TO_TUPLE_R_I(r, list) (BOOST_PP_LIST_ENUM_R(r, list)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/list/transform.hpp b/lib/3rdParty/boost/boost/preprocessor/list/transform.hpp deleted file mode 100644 index 840f3067c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/list/transform.hpp +++ /dev/null @@ -1,49 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP -# define BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LIST_TRANSFORM */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list)) -# else -# define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_LIST_TRANSFORM_I(op, data, list) -# define BOOST_PP_LIST_TRANSFORM_I(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, BOOST_PP_TUPLE_ELEM(3, 0, odr), BOOST_PP_TUPLE_ELEM(3, 1, odr), BOOST_PP_TUPLE_ELEM(3, 2, odr), elem) -# else -# define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_I(d, BOOST_PP_TUPLE_REM_3 odr, elem) -# define BOOST_PP_LIST_TRANSFORM_O_I(d, im, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, im, elem) -# endif -# -# define BOOST_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res)) -# -# /* BOOST_PP_LIST_TRANSFORM_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list)) -# else -# define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list) -# define BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical.hpp b/lib/3rdParty/boost/boost/preprocessor/logical.hpp deleted file mode 100644 index 040edeb72..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_HPP -# define BOOST_PREPROCESSOR_LOGICAL_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/and.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/and.hpp deleted file mode 100644 index 8590365e5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/and.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP -# define BOOST_PREPROCESSOR_LOGICAL_AND_HPP -# -# include -# include -# include -# -# /* BOOST_PP_AND */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# else -# define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q) -# define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/bitand.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/bitand.hpp deleted file mode 100644 index 74e9527f2..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/bitand.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP -# define BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP -# -# include -# -# /* BOOST_PP_BITAND */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_I(x, y) -# else -# define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_OO((x, y)) -# define BOOST_PP_BITAND_OO(par) BOOST_PP_BITAND_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ ## x ## y -# else -# define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ID(BOOST_PP_BITAND_ ## x ## y) -# define BOOST_PP_BITAND_ID(res) res -# endif -# -# define BOOST_PP_BITAND_00 0 -# define BOOST_PP_BITAND_01 0 -# define BOOST_PP_BITAND_10 0 -# define BOOST_PP_BITAND_11 1 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/bitnor.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/bitnor.hpp deleted file mode 100644 index 110fba8b3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/bitnor.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP -# define BOOST_PREPROCESSOR_LOGICAL_BITNOR_HPP -# -# include -# -# /* BOOST_PP_BITNOR */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_I(x, y) -# else -# define BOOST_PP_BITNOR(x, y) BOOST_PP_BITNOR_OO((x, y)) -# define BOOST_PP_BITNOR_OO(par) BOOST_PP_BITNOR_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ ## x ## y -# else -# define BOOST_PP_BITNOR_I(x, y) BOOST_PP_BITNOR_ID(BOOST_PP_BITNOR_ ## x ## y) -# define BOOST_PP_BITNOR_ID(id) id -# endif -# -# define BOOST_PP_BITNOR_00 1 -# define BOOST_PP_BITNOR_01 0 -# define BOOST_PP_BITNOR_10 0 -# define BOOST_PP_BITNOR_11 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/bitor.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/bitor.hpp deleted file mode 100644 index c0bc2c66a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/bitor.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP -# define BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP -# -# include -# -# /* BOOST_PP_BITOR */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_I(x, y) -# else -# define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_OO((x, y)) -# define BOOST_PP_BITOR_OO(par) BOOST_PP_BITOR_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ ## x ## y -# else -# define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ID(BOOST_PP_BITOR_ ## x ## y) -# define BOOST_PP_BITOR_ID(id) id -# endif -# -# define BOOST_PP_BITOR_00 0 -# define BOOST_PP_BITOR_01 1 -# define BOOST_PP_BITOR_10 1 -# define BOOST_PP_BITOR_11 1 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/bitxor.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/bitxor.hpp deleted file mode 100644 index 0488aca91..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/bitxor.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP -# define BOOST_PREPROCESSOR_LOGICAL_BITXOR_HPP -# -# include -# -# /* BOOST_PP_BITXOR */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_I(x, y) -# else -# define BOOST_PP_BITXOR(x, y) BOOST_PP_BITXOR_OO((x, y)) -# define BOOST_PP_BITXOR_OO(par) BOOST_PP_BITXOR_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ ## x ## y -# else -# define BOOST_PP_BITXOR_I(x, y) BOOST_PP_BITXOR_ID(BOOST_PP_BITXOR_ ## x ## y) -# define BOOST_PP_BITXOR_ID(id) id -# endif -# -# define BOOST_PP_BITXOR_00 0 -# define BOOST_PP_BITXOR_01 1 -# define BOOST_PP_BITXOR_10 1 -# define BOOST_PP_BITXOR_11 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/bool.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/bool.hpp deleted file mode 100644 index fc01b5ba5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/bool.hpp +++ /dev/null @@ -1,288 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP -# define BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP -# -# include -# -# /* BOOST_PP_BOOL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_BOOL(x) BOOST_PP_BOOL_I(x) -# else -# define BOOST_PP_BOOL(x) BOOST_PP_BOOL_OO((x)) -# define BOOST_PP_BOOL_OO(par) BOOST_PP_BOOL_I ## par -# endif -# -# define BOOST_PP_BOOL_I(x) BOOST_PP_BOOL_ ## x -# -# define BOOST_PP_BOOL_0 0 -# define BOOST_PP_BOOL_1 1 -# define BOOST_PP_BOOL_2 1 -# define BOOST_PP_BOOL_3 1 -# define BOOST_PP_BOOL_4 1 -# define BOOST_PP_BOOL_5 1 -# define BOOST_PP_BOOL_6 1 -# define BOOST_PP_BOOL_7 1 -# define BOOST_PP_BOOL_8 1 -# define BOOST_PP_BOOL_9 1 -# define BOOST_PP_BOOL_10 1 -# define BOOST_PP_BOOL_11 1 -# define BOOST_PP_BOOL_12 1 -# define BOOST_PP_BOOL_13 1 -# define BOOST_PP_BOOL_14 1 -# define BOOST_PP_BOOL_15 1 -# define BOOST_PP_BOOL_16 1 -# define BOOST_PP_BOOL_17 1 -# define BOOST_PP_BOOL_18 1 -# define BOOST_PP_BOOL_19 1 -# define BOOST_PP_BOOL_20 1 -# define BOOST_PP_BOOL_21 1 -# define BOOST_PP_BOOL_22 1 -# define BOOST_PP_BOOL_23 1 -# define BOOST_PP_BOOL_24 1 -# define BOOST_PP_BOOL_25 1 -# define BOOST_PP_BOOL_26 1 -# define BOOST_PP_BOOL_27 1 -# define BOOST_PP_BOOL_28 1 -# define BOOST_PP_BOOL_29 1 -# define BOOST_PP_BOOL_30 1 -# define BOOST_PP_BOOL_31 1 -# define BOOST_PP_BOOL_32 1 -# define BOOST_PP_BOOL_33 1 -# define BOOST_PP_BOOL_34 1 -# define BOOST_PP_BOOL_35 1 -# define BOOST_PP_BOOL_36 1 -# define BOOST_PP_BOOL_37 1 -# define BOOST_PP_BOOL_38 1 -# define BOOST_PP_BOOL_39 1 -# define BOOST_PP_BOOL_40 1 -# define BOOST_PP_BOOL_41 1 -# define BOOST_PP_BOOL_42 1 -# define BOOST_PP_BOOL_43 1 -# define BOOST_PP_BOOL_44 1 -# define BOOST_PP_BOOL_45 1 -# define BOOST_PP_BOOL_46 1 -# define BOOST_PP_BOOL_47 1 -# define BOOST_PP_BOOL_48 1 -# define BOOST_PP_BOOL_49 1 -# define BOOST_PP_BOOL_50 1 -# define BOOST_PP_BOOL_51 1 -# define BOOST_PP_BOOL_52 1 -# define BOOST_PP_BOOL_53 1 -# define BOOST_PP_BOOL_54 1 -# define BOOST_PP_BOOL_55 1 -# define BOOST_PP_BOOL_56 1 -# define BOOST_PP_BOOL_57 1 -# define BOOST_PP_BOOL_58 1 -# define BOOST_PP_BOOL_59 1 -# define BOOST_PP_BOOL_60 1 -# define BOOST_PP_BOOL_61 1 -# define BOOST_PP_BOOL_62 1 -# define BOOST_PP_BOOL_63 1 -# define BOOST_PP_BOOL_64 1 -# define BOOST_PP_BOOL_65 1 -# define BOOST_PP_BOOL_66 1 -# define BOOST_PP_BOOL_67 1 -# define BOOST_PP_BOOL_68 1 -# define BOOST_PP_BOOL_69 1 -# define BOOST_PP_BOOL_70 1 -# define BOOST_PP_BOOL_71 1 -# define BOOST_PP_BOOL_72 1 -# define BOOST_PP_BOOL_73 1 -# define BOOST_PP_BOOL_74 1 -# define BOOST_PP_BOOL_75 1 -# define BOOST_PP_BOOL_76 1 -# define BOOST_PP_BOOL_77 1 -# define BOOST_PP_BOOL_78 1 -# define BOOST_PP_BOOL_79 1 -# define BOOST_PP_BOOL_80 1 -# define BOOST_PP_BOOL_81 1 -# define BOOST_PP_BOOL_82 1 -# define BOOST_PP_BOOL_83 1 -# define BOOST_PP_BOOL_84 1 -# define BOOST_PP_BOOL_85 1 -# define BOOST_PP_BOOL_86 1 -# define BOOST_PP_BOOL_87 1 -# define BOOST_PP_BOOL_88 1 -# define BOOST_PP_BOOL_89 1 -# define BOOST_PP_BOOL_90 1 -# define BOOST_PP_BOOL_91 1 -# define BOOST_PP_BOOL_92 1 -# define BOOST_PP_BOOL_93 1 -# define BOOST_PP_BOOL_94 1 -# define BOOST_PP_BOOL_95 1 -# define BOOST_PP_BOOL_96 1 -# define BOOST_PP_BOOL_97 1 -# define BOOST_PP_BOOL_98 1 -# define BOOST_PP_BOOL_99 1 -# define BOOST_PP_BOOL_100 1 -# define BOOST_PP_BOOL_101 1 -# define BOOST_PP_BOOL_102 1 -# define BOOST_PP_BOOL_103 1 -# define BOOST_PP_BOOL_104 1 -# define BOOST_PP_BOOL_105 1 -# define BOOST_PP_BOOL_106 1 -# define BOOST_PP_BOOL_107 1 -# define BOOST_PP_BOOL_108 1 -# define BOOST_PP_BOOL_109 1 -# define BOOST_PP_BOOL_110 1 -# define BOOST_PP_BOOL_111 1 -# define BOOST_PP_BOOL_112 1 -# define BOOST_PP_BOOL_113 1 -# define BOOST_PP_BOOL_114 1 -# define BOOST_PP_BOOL_115 1 -# define BOOST_PP_BOOL_116 1 -# define BOOST_PP_BOOL_117 1 -# define BOOST_PP_BOOL_118 1 -# define BOOST_PP_BOOL_119 1 -# define BOOST_PP_BOOL_120 1 -# define BOOST_PP_BOOL_121 1 -# define BOOST_PP_BOOL_122 1 -# define BOOST_PP_BOOL_123 1 -# define BOOST_PP_BOOL_124 1 -# define BOOST_PP_BOOL_125 1 -# define BOOST_PP_BOOL_126 1 -# define BOOST_PP_BOOL_127 1 -# define BOOST_PP_BOOL_128 1 -# define BOOST_PP_BOOL_129 1 -# define BOOST_PP_BOOL_130 1 -# define BOOST_PP_BOOL_131 1 -# define BOOST_PP_BOOL_132 1 -# define BOOST_PP_BOOL_133 1 -# define BOOST_PP_BOOL_134 1 -# define BOOST_PP_BOOL_135 1 -# define BOOST_PP_BOOL_136 1 -# define BOOST_PP_BOOL_137 1 -# define BOOST_PP_BOOL_138 1 -# define BOOST_PP_BOOL_139 1 -# define BOOST_PP_BOOL_140 1 -# define BOOST_PP_BOOL_141 1 -# define BOOST_PP_BOOL_142 1 -# define BOOST_PP_BOOL_143 1 -# define BOOST_PP_BOOL_144 1 -# define BOOST_PP_BOOL_145 1 -# define BOOST_PP_BOOL_146 1 -# define BOOST_PP_BOOL_147 1 -# define BOOST_PP_BOOL_148 1 -# define BOOST_PP_BOOL_149 1 -# define BOOST_PP_BOOL_150 1 -# define BOOST_PP_BOOL_151 1 -# define BOOST_PP_BOOL_152 1 -# define BOOST_PP_BOOL_153 1 -# define BOOST_PP_BOOL_154 1 -# define BOOST_PP_BOOL_155 1 -# define BOOST_PP_BOOL_156 1 -# define BOOST_PP_BOOL_157 1 -# define BOOST_PP_BOOL_158 1 -# define BOOST_PP_BOOL_159 1 -# define BOOST_PP_BOOL_160 1 -# define BOOST_PP_BOOL_161 1 -# define BOOST_PP_BOOL_162 1 -# define BOOST_PP_BOOL_163 1 -# define BOOST_PP_BOOL_164 1 -# define BOOST_PP_BOOL_165 1 -# define BOOST_PP_BOOL_166 1 -# define BOOST_PP_BOOL_167 1 -# define BOOST_PP_BOOL_168 1 -# define BOOST_PP_BOOL_169 1 -# define BOOST_PP_BOOL_170 1 -# define BOOST_PP_BOOL_171 1 -# define BOOST_PP_BOOL_172 1 -# define BOOST_PP_BOOL_173 1 -# define BOOST_PP_BOOL_174 1 -# define BOOST_PP_BOOL_175 1 -# define BOOST_PP_BOOL_176 1 -# define BOOST_PP_BOOL_177 1 -# define BOOST_PP_BOOL_178 1 -# define BOOST_PP_BOOL_179 1 -# define BOOST_PP_BOOL_180 1 -# define BOOST_PP_BOOL_181 1 -# define BOOST_PP_BOOL_182 1 -# define BOOST_PP_BOOL_183 1 -# define BOOST_PP_BOOL_184 1 -# define BOOST_PP_BOOL_185 1 -# define BOOST_PP_BOOL_186 1 -# define BOOST_PP_BOOL_187 1 -# define BOOST_PP_BOOL_188 1 -# define BOOST_PP_BOOL_189 1 -# define BOOST_PP_BOOL_190 1 -# define BOOST_PP_BOOL_191 1 -# define BOOST_PP_BOOL_192 1 -# define BOOST_PP_BOOL_193 1 -# define BOOST_PP_BOOL_194 1 -# define BOOST_PP_BOOL_195 1 -# define BOOST_PP_BOOL_196 1 -# define BOOST_PP_BOOL_197 1 -# define BOOST_PP_BOOL_198 1 -# define BOOST_PP_BOOL_199 1 -# define BOOST_PP_BOOL_200 1 -# define BOOST_PP_BOOL_201 1 -# define BOOST_PP_BOOL_202 1 -# define BOOST_PP_BOOL_203 1 -# define BOOST_PP_BOOL_204 1 -# define BOOST_PP_BOOL_205 1 -# define BOOST_PP_BOOL_206 1 -# define BOOST_PP_BOOL_207 1 -# define BOOST_PP_BOOL_208 1 -# define BOOST_PP_BOOL_209 1 -# define BOOST_PP_BOOL_210 1 -# define BOOST_PP_BOOL_211 1 -# define BOOST_PP_BOOL_212 1 -# define BOOST_PP_BOOL_213 1 -# define BOOST_PP_BOOL_214 1 -# define BOOST_PP_BOOL_215 1 -# define BOOST_PP_BOOL_216 1 -# define BOOST_PP_BOOL_217 1 -# define BOOST_PP_BOOL_218 1 -# define BOOST_PP_BOOL_219 1 -# define BOOST_PP_BOOL_220 1 -# define BOOST_PP_BOOL_221 1 -# define BOOST_PP_BOOL_222 1 -# define BOOST_PP_BOOL_223 1 -# define BOOST_PP_BOOL_224 1 -# define BOOST_PP_BOOL_225 1 -# define BOOST_PP_BOOL_226 1 -# define BOOST_PP_BOOL_227 1 -# define BOOST_PP_BOOL_228 1 -# define BOOST_PP_BOOL_229 1 -# define BOOST_PP_BOOL_230 1 -# define BOOST_PP_BOOL_231 1 -# define BOOST_PP_BOOL_232 1 -# define BOOST_PP_BOOL_233 1 -# define BOOST_PP_BOOL_234 1 -# define BOOST_PP_BOOL_235 1 -# define BOOST_PP_BOOL_236 1 -# define BOOST_PP_BOOL_237 1 -# define BOOST_PP_BOOL_238 1 -# define BOOST_PP_BOOL_239 1 -# define BOOST_PP_BOOL_240 1 -# define BOOST_PP_BOOL_241 1 -# define BOOST_PP_BOOL_242 1 -# define BOOST_PP_BOOL_243 1 -# define BOOST_PP_BOOL_244 1 -# define BOOST_PP_BOOL_245 1 -# define BOOST_PP_BOOL_246 1 -# define BOOST_PP_BOOL_247 1 -# define BOOST_PP_BOOL_248 1 -# define BOOST_PP_BOOL_249 1 -# define BOOST_PP_BOOL_250 1 -# define BOOST_PP_BOOL_251 1 -# define BOOST_PP_BOOL_252 1 -# define BOOST_PP_BOOL_253 1 -# define BOOST_PP_BOOL_254 1 -# define BOOST_PP_BOOL_255 1 -# define BOOST_PP_BOOL_256 1 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/compl.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/compl.hpp deleted file mode 100644 index ad4c7a4ca..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/compl.hpp +++ /dev/null @@ -1,36 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP -# define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP -# -# include -# -# /* BOOST_PP_COMPL */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x) -# else -# define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x)) -# define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x -# else -# define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x) -# define BOOST_PP_COMPL_ID(id) id -# endif -# -# define BOOST_PP_COMPL_0 1 -# define BOOST_PP_COMPL_1 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/nor.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/nor.hpp deleted file mode 100644 index 2c0df4bb0..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/nor.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP -# define BOOST_PREPROCESSOR_LOGICAL_NOR_HPP -# -# include -# include -# include -# -# /* BOOST_PP_NOR */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_NOR(p, q) BOOST_PP_BITNOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# else -# define BOOST_PP_NOR(p, q) BOOST_PP_NOR_I(p, q) -# define BOOST_PP_NOR_I(p, q) BOOST_PP_BITNOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/not.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/not.hpp deleted file mode 100644 index b509d3fca..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/not.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP -# define BOOST_PREPROCESSOR_LOGICAL_NOT_HPP -# -# include -# include -# include -# -# /* BOOST_PP_NOT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_NOT(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x)) -# else -# define BOOST_PP_NOT(x) BOOST_PP_NOT_I(x) -# define BOOST_PP_NOT_I(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/or.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/or.hpp deleted file mode 100644 index 88d52071a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/or.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_OR_HPP -# define BOOST_PREPROCESSOR_LOGICAL_OR_HPP -# -# include -# include -# include -# -# /* BOOST_PP_OR */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_OR(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# else -# define BOOST_PP_OR(p, q) BOOST_PP_OR_I(p, q) -# define BOOST_PP_OR_I(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/logical/xor.hpp b/lib/3rdParty/boost/boost/preprocessor/logical/xor.hpp deleted file mode 100644 index 34c00e0f4..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/logical/xor.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_LOGICAL_XOR_HPP -# define BOOST_PREPROCESSOR_LOGICAL_XOR_HPP -# -# include -# include -# include -# -# /* BOOST_PP_XOR */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_XOR(p, q) BOOST_PP_BITXOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# else -# define BOOST_PP_XOR(p, q) BOOST_PP_XOR_I(p, q) -# define BOOST_PP_XOR_I(p, q) BOOST_PP_BITXOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/max.hpp b/lib/3rdParty/boost/boost/preprocessor/max.hpp deleted file mode 100644 index 3a46ed924..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/max.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_MAX_HPP -# define BOOST_PREPROCESSOR_MAX_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/min.hpp b/lib/3rdParty/boost/boost/preprocessor/min.hpp deleted file mode 100644 index 8d8e9af2c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/min.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_MIN_HPP -# define BOOST_PREPROCESSOR_MIN_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation.hpp deleted file mode 100644 index 56dd06467..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation.hpp +++ /dev/null @@ -1,22 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_PUNCTUATION_HPP -# define BOOST_PREPROCESSOR_PUNCTUATION_HPP -# -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/comma.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/comma.hpp deleted file mode 100644 index 38c2e0e7e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/comma.hpp +++ /dev/null @@ -1,21 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP -# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP -# -# /* BOOST_PP_COMMA */ -# -# define BOOST_PP_COMMA() , -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/comma_if.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/comma_if.hpp deleted file mode 100644 index c711f366a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/comma_if.hpp +++ /dev/null @@ -1,31 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP -# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_COMMA_IF */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() -# else -# define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond) -# define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)() -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/detail/is_begin_parens.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/detail/is_begin_parens.hpp deleted file mode 100644 index c94ccf3c6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/detail/is_begin_parens.hpp +++ /dev/null @@ -1,48 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -#ifndef BOOST_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP -#define BOOST_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP - -#if BOOST_PP_VARIADICS_MSVC - -#include - -#define BOOST_PP_DETAIL_VD_IBP_CAT(a, b) BOOST_PP_DETAIL_VD_IBP_CAT_I(a, b) -#define BOOST_PP_DETAIL_VD_IBP_CAT_I(a, b) BOOST_PP_DETAIL_VD_IBP_CAT_II(a ## b) -#define BOOST_PP_DETAIL_VD_IBP_CAT_II(res) res - -#define BOOST_PP_DETAIL_IBP_SPLIT(i, ...) \ - BOOST_PP_DETAIL_VD_IBP_CAT(BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(BOOST_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__),BOOST_PP_EMPTY()) \ -/**/ - -#define BOOST_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 1 - -#else - -#define BOOST_PP_DETAIL_IBP_SPLIT(i, ...) \ - BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(BOOST_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__) \ -/**/ - -#define BOOST_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 - -#endif /* BOOST_PP_VARIADICS_MSVC */ - -#define BOOST_PP_DETAIL_IBP_SPLIT_0(a, ...) a -#define BOOST_PP_DETAIL_IBP_SPLIT_1(a, ...) __VA_ARGS__ - -#define BOOST_PP_DETAIL_IBP_CAT(a, ...) BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(a,__VA_ARGS__) -#define BOOST_PP_DETAIL_IBP_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__ - -#define BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_1 1, -#define BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_BOOST_PP_DETAIL_IBP_IS_VARIADIC_C 0, - -#endif /* BOOST_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/is_begin_parens.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/is_begin_parens.hpp deleted file mode 100644 index 20b32bc2b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/is_begin_parens.hpp +++ /dev/null @@ -1,51 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_IS_BEGIN_PARENS_HPP -# define BOOST_PREPROCESSOR_IS_BEGIN_PARENS_HPP - -# include - -#if BOOST_PP_VARIADICS - -#include - -#if BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 - -#define BOOST_PP_IS_BEGIN_PARENS(param) \ - BOOST_PP_DETAIL_IBP_SPLIT \ - ( \ - 0, \ - BOOST_PP_DETAIL_IBP_CAT \ - ( \ - BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_, \ - BOOST_PP_DETAIL_IBP_IS_VARIADIC_C param \ - ) \ - ) \ -/**/ - -#else - -#define BOOST_PP_IS_BEGIN_PARENS(...) \ - BOOST_PP_DETAIL_IBP_SPLIT \ - ( \ - 0, \ - BOOST_PP_DETAIL_IBP_CAT \ - ( \ - BOOST_PP_DETAIL_IBP_IS_VARIADIC_R_, \ - BOOST_PP_DETAIL_IBP_IS_VARIADIC_C __VA_ARGS__ \ - ) \ - ) \ -/**/ - -#endif /* BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */ -#endif /* BOOST_PP_VARIADICS */ -#endif /* BOOST_PREPROCESSOR_IS_BEGIN_PARENS_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/paren.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/paren.hpp deleted file mode 100644 index 28c18cb8b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/paren.hpp +++ /dev/null @@ -1,23 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP -# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP -# -# /* BOOST_PP_LPAREN */ -# -# define BOOST_PP_LPAREN() ( -# -# /* BOOST_PP_RPAREN */ -# -# define BOOST_PP_RPAREN() ) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/paren_if.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/paren_if.hpp deleted file mode 100644 index 1239ec18a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/paren_if.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP -# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_LPAREN_IF */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_LPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)() -# else -# define BOOST_PP_LPAREN_IF(cond) BOOST_PP_LPAREN_IF_I(cond) -# define BOOST_PP_LPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_LPAREN, BOOST_PP_EMPTY)() -# endif -# -# /* BOOST_PP_RPAREN_IF */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_RPAREN_IF(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)() -# else -# define BOOST_PP_RPAREN_IF(cond) BOOST_PP_RPAREN_IF_I(cond) -# define BOOST_PP_RPAREN_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_RPAREN, BOOST_PP_EMPTY)() -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/punctuation/remove_parens.hpp b/lib/3rdParty/boost/boost/preprocessor/punctuation/remove_parens.hpp deleted file mode 100644 index 4700936b7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/punctuation/remove_parens.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -#ifndef BOOST_PREPROCESSOR_REMOVE_PARENS_HPP -#define BOOST_PREPROCESSOR_REMOVE_PARENS_HPP - -#include - -#if BOOST_PP_VARIADICS - -#include -#include -#include -#include - -#define BOOST_PP_REMOVE_PARENS(param) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_IS_BEGIN_PARENS(param), \ - BOOST_PP_REMOVE_PARENS_DO, \ - BOOST_PP_IDENTITY \ - ) \ - (param)() \ -/**/ - -#define BOOST_PP_REMOVE_PARENS_DO(param) \ - BOOST_PP_IDENTITY(BOOST_PP_TUPLE_ENUM(param)) \ -/**/ - -#endif /* BOOST_PP_VARIADICS */ -#endif /* BOOST_PREPROCESSOR_REMOVE_PARENS_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/repeat.hpp b/lib/3rdParty/boost/boost/preprocessor/repeat.hpp deleted file mode 100644 index 7c47ee8b0..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repeat.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPEAT_HPP -# define BOOST_PREPROCESSOR_REPEAT_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repeat_2nd.hpp b/lib/3rdParty/boost/boost/preprocessor/repeat_2nd.hpp deleted file mode 100644 index 030c4324c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repeat_2nd.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPEAT_2ND_HPP -# define BOOST_PREPROCESSOR_REPEAT_2ND_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repeat_3rd.hpp b/lib/3rdParty/boost/boost/preprocessor/repeat_3rd.hpp deleted file mode 100644 index 9ab36a5ae..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repeat_3rd.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPEAT_3RD_HPP -# define BOOST_PREPROCESSOR_REPEAT_3RD_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repeat_from_to.hpp b/lib/3rdParty/boost/boost/preprocessor/repeat_from_to.hpp deleted file mode 100644 index 4ddc3be04..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repeat_from_to.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP -# define BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repeat_from_to_2nd.hpp b/lib/3rdParty/boost/boost/preprocessor/repeat_from_to_2nd.hpp deleted file mode 100644 index b833fb5c8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repeat_from_to_2nd.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP -# define BOOST_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repeat_from_to_3rd.hpp b/lib/3rdParty/boost/boost/preprocessor/repeat_from_to_3rd.hpp deleted file mode 100644 index 8cd776fb9..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repeat_from_to_3rd.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP -# define BOOST_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition.hpp deleted file mode 100644 index efcd60a27..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition.hpp +++ /dev/null @@ -1,32 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_HPP -# define BOOST_PREPROCESSOR_REPETITION_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/deduce_r.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/deduce_r.hpp deleted file mode 100644 index e49296aeb..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/deduce_r.hpp +++ /dev/null @@ -1,22 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP -# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_R_HPP -# -# include -# include -# -# /* BOOST_PP_DEDUCE_R */ -# -# define BOOST_PP_DEDUCE_R() BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/deduce_z.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/deduce_z.hpp deleted file mode 100644 index 14dedc266..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/deduce_z.hpp +++ /dev/null @@ -1,22 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP -# define BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP -# -# include -# include -# -# /* BOOST_PP_DEDUCE_Z */ -# -# define BOOST_PP_DEDUCE_Z() BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/dmc/for.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/detail/dmc/for.hpp deleted file mode 100644 index 1d907ff38..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/dmc/for.hpp +++ /dev/null @@ -1,536 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP -# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP -# -# include -# include -# include -# include -# -# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p##(2, s)), s, p, o, m) -# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p##(3, s)), s, p, o, m) -# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p##(4, s)), s, p, o, m) -# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p##(5, s)), s, p, o, m) -# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p##(6, s)), s, p, o, m) -# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p##(7, s)), s, p, o, m) -# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p##(8, s)), s, p, o, m) -# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p##(9, s)), s, p, o, m) -# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p##(10, s)), s, p, o, m) -# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p##(11, s)), s, p, o, m) -# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p##(12, s)), s, p, o, m) -# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p##(13, s)), s, p, o, m) -# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p##(14, s)), s, p, o, m) -# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p##(15, s)), s, p, o, m) -# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p##(16, s)), s, p, o, m) -# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p##(17, s)), s, p, o, m) -# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p##(18, s)), s, p, o, m) -# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p##(19, s)), s, p, o, m) -# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p##(20, s)), s, p, o, m) -# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p##(21, s)), s, p, o, m) -# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p##(22, s)), s, p, o, m) -# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p##(23, s)), s, p, o, m) -# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p##(24, s)), s, p, o, m) -# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p##(25, s)), s, p, o, m) -# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p##(26, s)), s, p, o, m) -# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p##(27, s)), s, p, o, m) -# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p##(28, s)), s, p, o, m) -# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p##(29, s)), s, p, o, m) -# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p##(30, s)), s, p, o, m) -# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p##(31, s)), s, p, o, m) -# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p##(32, s)), s, p, o, m) -# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p##(33, s)), s, p, o, m) -# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p##(34, s)), s, p, o, m) -# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p##(35, s)), s, p, o, m) -# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p##(36, s)), s, p, o, m) -# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p##(37, s)), s, p, o, m) -# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p##(38, s)), s, p, o, m) -# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p##(39, s)), s, p, o, m) -# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p##(40, s)), s, p, o, m) -# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p##(41, s)), s, p, o, m) -# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p##(42, s)), s, p, o, m) -# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p##(43, s)), s, p, o, m) -# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p##(44, s)), s, p, o, m) -# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p##(45, s)), s, p, o, m) -# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p##(46, s)), s, p, o, m) -# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p##(47, s)), s, p, o, m) -# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p##(48, s)), s, p, o, m) -# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p##(49, s)), s, p, o, m) -# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p##(50, s)), s, p, o, m) -# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p##(51, s)), s, p, o, m) -# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p##(52, s)), s, p, o, m) -# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p##(53, s)), s, p, o, m) -# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p##(54, s)), s, p, o, m) -# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p##(55, s)), s, p, o, m) -# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p##(56, s)), s, p, o, m) -# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p##(57, s)), s, p, o, m) -# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p##(58, s)), s, p, o, m) -# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p##(59, s)), s, p, o, m) -# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p##(60, s)), s, p, o, m) -# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p##(61, s)), s, p, o, m) -# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p##(62, s)), s, p, o, m) -# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p##(63, s)), s, p, o, m) -# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p##(64, s)), s, p, o, m) -# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p##(65, s)), s, p, o, m) -# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p##(66, s)), s, p, o, m) -# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p##(67, s)), s, p, o, m) -# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p##(68, s)), s, p, o, m) -# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p##(69, s)), s, p, o, m) -# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p##(70, s)), s, p, o, m) -# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p##(71, s)), s, p, o, m) -# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p##(72, s)), s, p, o, m) -# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p##(73, s)), s, p, o, m) -# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p##(74, s)), s, p, o, m) -# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p##(75, s)), s, p, o, m) -# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p##(76, s)), s, p, o, m) -# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p##(77, s)), s, p, o, m) -# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p##(78, s)), s, p, o, m) -# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p##(79, s)), s, p, o, m) -# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p##(80, s)), s, p, o, m) -# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p##(81, s)), s, p, o, m) -# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p##(82, s)), s, p, o, m) -# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p##(83, s)), s, p, o, m) -# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p##(84, s)), s, p, o, m) -# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p##(85, s)), s, p, o, m) -# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p##(86, s)), s, p, o, m) -# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p##(87, s)), s, p, o, m) -# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p##(88, s)), s, p, o, m) -# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p##(89, s)), s, p, o, m) -# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p##(90, s)), s, p, o, m) -# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p##(91, s)), s, p, o, m) -# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p##(92, s)), s, p, o, m) -# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p##(93, s)), s, p, o, m) -# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p##(94, s)), s, p, o, m) -# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p##(95, s)), s, p, o, m) -# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p##(96, s)), s, p, o, m) -# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p##(97, s)), s, p, o, m) -# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p##(98, s)), s, p, o, m) -# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p##(99, s)), s, p, o, m) -# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p##(100, s)), s, p, o, m) -# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p##(101, s)), s, p, o, m) -# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p##(102, s)), s, p, o, m) -# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p##(103, s)), s, p, o, m) -# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p##(104, s)), s, p, o, m) -# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p##(105, s)), s, p, o, m) -# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p##(106, s)), s, p, o, m) -# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p##(107, s)), s, p, o, m) -# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p##(108, s)), s, p, o, m) -# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p##(109, s)), s, p, o, m) -# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p##(110, s)), s, p, o, m) -# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p##(111, s)), s, p, o, m) -# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p##(112, s)), s, p, o, m) -# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p##(113, s)), s, p, o, m) -# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p##(114, s)), s, p, o, m) -# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p##(115, s)), s, p, o, m) -# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p##(116, s)), s, p, o, m) -# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p##(117, s)), s, p, o, m) -# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p##(118, s)), s, p, o, m) -# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p##(119, s)), s, p, o, m) -# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p##(120, s)), s, p, o, m) -# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p##(121, s)), s, p, o, m) -# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p##(122, s)), s, p, o, m) -# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p##(123, s)), s, p, o, m) -# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p##(124, s)), s, p, o, m) -# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p##(125, s)), s, p, o, m) -# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p##(126, s)), s, p, o, m) -# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p##(127, s)), s, p, o, m) -# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p##(128, s)), s, p, o, m) -# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p##(129, s)), s, p, o, m) -# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p##(130, s)), s, p, o, m) -# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p##(131, s)), s, p, o, m) -# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p##(132, s)), s, p, o, m) -# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p##(133, s)), s, p, o, m) -# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p##(134, s)), s, p, o, m) -# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p##(135, s)), s, p, o, m) -# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p##(136, s)), s, p, o, m) -# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p##(137, s)), s, p, o, m) -# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p##(138, s)), s, p, o, m) -# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p##(139, s)), s, p, o, m) -# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p##(140, s)), s, p, o, m) -# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p##(141, s)), s, p, o, m) -# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p##(142, s)), s, p, o, m) -# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p##(143, s)), s, p, o, m) -# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p##(144, s)), s, p, o, m) -# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p##(145, s)), s, p, o, m) -# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p##(146, s)), s, p, o, m) -# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p##(147, s)), s, p, o, m) -# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p##(148, s)), s, p, o, m) -# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p##(149, s)), s, p, o, m) -# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p##(150, s)), s, p, o, m) -# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p##(151, s)), s, p, o, m) -# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p##(152, s)), s, p, o, m) -# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p##(153, s)), s, p, o, m) -# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p##(154, s)), s, p, o, m) -# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p##(155, s)), s, p, o, m) -# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p##(156, s)), s, p, o, m) -# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p##(157, s)), s, p, o, m) -# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p##(158, s)), s, p, o, m) -# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p##(159, s)), s, p, o, m) -# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p##(160, s)), s, p, o, m) -# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p##(161, s)), s, p, o, m) -# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p##(162, s)), s, p, o, m) -# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p##(163, s)), s, p, o, m) -# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p##(164, s)), s, p, o, m) -# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p##(165, s)), s, p, o, m) -# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p##(166, s)), s, p, o, m) -# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p##(167, s)), s, p, o, m) -# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p##(168, s)), s, p, o, m) -# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p##(169, s)), s, p, o, m) -# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p##(170, s)), s, p, o, m) -# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p##(171, s)), s, p, o, m) -# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p##(172, s)), s, p, o, m) -# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p##(173, s)), s, p, o, m) -# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p##(174, s)), s, p, o, m) -# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p##(175, s)), s, p, o, m) -# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p##(176, s)), s, p, o, m) -# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p##(177, s)), s, p, o, m) -# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p##(178, s)), s, p, o, m) -# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p##(179, s)), s, p, o, m) -# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p##(180, s)), s, p, o, m) -# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p##(181, s)), s, p, o, m) -# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p##(182, s)), s, p, o, m) -# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p##(183, s)), s, p, o, m) -# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p##(184, s)), s, p, o, m) -# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p##(185, s)), s, p, o, m) -# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p##(186, s)), s, p, o, m) -# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p##(187, s)), s, p, o, m) -# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p##(188, s)), s, p, o, m) -# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p##(189, s)), s, p, o, m) -# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p##(190, s)), s, p, o, m) -# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p##(191, s)), s, p, o, m) -# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p##(192, s)), s, p, o, m) -# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p##(193, s)), s, p, o, m) -# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p##(194, s)), s, p, o, m) -# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p##(195, s)), s, p, o, m) -# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p##(196, s)), s, p, o, m) -# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p##(197, s)), s, p, o, m) -# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p##(198, s)), s, p, o, m) -# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p##(199, s)), s, p, o, m) -# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p##(200, s)), s, p, o, m) -# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p##(201, s)), s, p, o, m) -# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p##(202, s)), s, p, o, m) -# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p##(203, s)), s, p, o, m) -# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p##(204, s)), s, p, o, m) -# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p##(205, s)), s, p, o, m) -# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p##(206, s)), s, p, o, m) -# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p##(207, s)), s, p, o, m) -# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p##(208, s)), s, p, o, m) -# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p##(209, s)), s, p, o, m) -# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p##(210, s)), s, p, o, m) -# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p##(211, s)), s, p, o, m) -# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p##(212, s)), s, p, o, m) -# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p##(213, s)), s, p, o, m) -# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p##(214, s)), s, p, o, m) -# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p##(215, s)), s, p, o, m) -# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p##(216, s)), s, p, o, m) -# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p##(217, s)), s, p, o, m) -# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p##(218, s)), s, p, o, m) -# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p##(219, s)), s, p, o, m) -# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p##(220, s)), s, p, o, m) -# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p##(221, s)), s, p, o, m) -# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p##(222, s)), s, p, o, m) -# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p##(223, s)), s, p, o, m) -# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p##(224, s)), s, p, o, m) -# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p##(225, s)), s, p, o, m) -# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p##(226, s)), s, p, o, m) -# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p##(227, s)), s, p, o, m) -# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p##(228, s)), s, p, o, m) -# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p##(229, s)), s, p, o, m) -# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p##(230, s)), s, p, o, m) -# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p##(231, s)), s, p, o, m) -# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p##(232, s)), s, p, o, m) -# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p##(233, s)), s, p, o, m) -# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p##(234, s)), s, p, o, m) -# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p##(235, s)), s, p, o, m) -# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p##(236, s)), s, p, o, m) -# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p##(237, s)), s, p, o, m) -# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p##(238, s)), s, p, o, m) -# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p##(239, s)), s, p, o, m) -# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p##(240, s)), s, p, o, m) -# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p##(241, s)), s, p, o, m) -# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p##(242, s)), s, p, o, m) -# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p##(243, s)), s, p, o, m) -# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p##(244, s)), s, p, o, m) -# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p##(245, s)), s, p, o, m) -# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p##(246, s)), s, p, o, m) -# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p##(247, s)), s, p, o, m) -# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p##(248, s)), s, p, o, m) -# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p##(249, s)), s, p, o, m) -# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p##(250, s)), s, p, o, m) -# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p##(251, s)), s, p, o, m) -# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p##(252, s)), s, p, o, m) -# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p##(253, s)), s, p, o, m) -# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p##(254, s)), s, p, o, m) -# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p##(255, s)), s, p, o, m) -# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p##(256, s)), s, p, o, m) -# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p##(257, s)), s, p, o, m) -# -# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m) -# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m) -# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m) -# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m) -# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m) -# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m) -# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m) -# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m) -# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m) -# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m) -# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m) -# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m) -# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m) -# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m) -# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m) -# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m) -# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m) -# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m) -# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m) -# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m) -# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m) -# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m) -# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m) -# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m) -# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m) -# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m) -# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m) -# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m) -# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m) -# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m) -# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m) -# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m) -# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m) -# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m) -# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m) -# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m) -# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m) -# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m) -# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m) -# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m) -# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m) -# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m) -# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m) -# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m) -# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m) -# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m) -# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m) -# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m) -# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m) -# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m) -# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m) -# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m) -# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m) -# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m) -# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m) -# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m) -# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m) -# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m) -# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m) -# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m) -# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m) -# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m) -# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m) -# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m) -# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m) -# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m) -# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m) -# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m) -# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m) -# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m) -# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m) -# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m) -# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m) -# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m) -# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m) -# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m) -# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m) -# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m) -# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m) -# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m) -# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m) -# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m) -# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m) -# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m) -# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m) -# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m) -# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m) -# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m) -# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m) -# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m) -# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m) -# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m) -# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m) -# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m) -# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m) -# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m) -# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m) -# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m) -# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m) -# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m) -# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m) -# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m) -# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m) -# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m) -# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m) -# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m) -# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m) -# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m) -# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m) -# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m) -# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m) -# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m) -# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m) -# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m) -# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m) -# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m) -# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m) -# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m) -# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m) -# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m) -# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m) -# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m) -# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m) -# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m) -# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m) -# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m) -# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m) -# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m) -# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m) -# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m) -# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m) -# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m) -# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m) -# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m) -# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m) -# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m) -# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m) -# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m) -# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m) -# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m) -# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m) -# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m) -# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m) -# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m) -# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m) -# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m) -# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m) -# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m) -# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m) -# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m) -# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m) -# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m) -# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m) -# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m) -# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m) -# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m) -# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m) -# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m) -# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m) -# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m) -# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m) -# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m) -# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m) -# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m) -# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m) -# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m) -# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m) -# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m) -# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m) -# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m) -# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m) -# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m) -# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m) -# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m) -# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m) -# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m) -# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m) -# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m) -# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m) -# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m) -# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m) -# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m) -# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m) -# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m) -# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m) -# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m) -# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m) -# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m) -# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m) -# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m) -# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m) -# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m) -# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m) -# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m) -# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m) -# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m) -# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m) -# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m) -# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m) -# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m) -# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m) -# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m) -# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m) -# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m) -# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m) -# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m) -# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m) -# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m) -# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m) -# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m) -# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m) -# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m) -# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m) -# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m) -# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m) -# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m) -# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m) -# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m) -# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m) -# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m) -# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m) -# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m) -# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m) -# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m) -# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m) -# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m) -# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m) -# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m) -# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m) -# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m) -# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m) -# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m) -# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m) -# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m) -# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m) -# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m) -# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m) -# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m) -# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m) -# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m) -# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m) -# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m) -# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m) -# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m) -# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m) -# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m) -# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m) -# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m) -# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m) -# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m) -# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m) -# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m) -# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m) -# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m) -# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m) -# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/edg/for.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/detail/edg/for.hpp deleted file mode 100644 index 212921a63..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/edg/for.hpp +++ /dev/null @@ -1,534 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP -# define BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP -# -# include -# include -# -# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_I(s, p, o, m) -# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_I(s, p, o, m) -# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_I(s, p, o, m) -# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_I(s, p, o, m) -# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_I(s, p, o, m) -# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_I(s, p, o, m) -# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_I(s, p, o, m) -# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_I(s, p, o, m) -# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_I(s, p, o, m) -# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_I(s, p, o, m) -# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_I(s, p, o, m) -# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_I(s, p, o, m) -# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_I(s, p, o, m) -# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_I(s, p, o, m) -# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_I(s, p, o, m) -# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_I(s, p, o, m) -# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_I(s, p, o, m) -# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_I(s, p, o, m) -# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_I(s, p, o, m) -# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_I(s, p, o, m) -# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_I(s, p, o, m) -# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_I(s, p, o, m) -# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_I(s, p, o, m) -# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_I(s, p, o, m) -# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_I(s, p, o, m) -# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_I(s, p, o, m) -# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_I(s, p, o, m) -# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_I(s, p, o, m) -# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_I(s, p, o, m) -# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_I(s, p, o, m) -# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_I(s, p, o, m) -# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_I(s, p, o, m) -# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_I(s, p, o, m) -# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_I(s, p, o, m) -# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_I(s, p, o, m) -# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_I(s, p, o, m) -# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_I(s, p, o, m) -# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_I(s, p, o, m) -# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_I(s, p, o, m) -# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_I(s, p, o, m) -# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_I(s, p, o, m) -# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_I(s, p, o, m) -# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_I(s, p, o, m) -# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_I(s, p, o, m) -# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_I(s, p, o, m) -# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_I(s, p, o, m) -# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_I(s, p, o, m) -# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_I(s, p, o, m) -# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_I(s, p, o, m) -# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_I(s, p, o, m) -# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_I(s, p, o, m) -# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_I(s, p, o, m) -# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_I(s, p, o, m) -# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_I(s, p, o, m) -# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_I(s, p, o, m) -# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_I(s, p, o, m) -# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_I(s, p, o, m) -# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_I(s, p, o, m) -# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_I(s, p, o, m) -# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_I(s, p, o, m) -# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_I(s, p, o, m) -# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_I(s, p, o, m) -# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_I(s, p, o, m) -# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_I(s, p, o, m) -# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_I(s, p, o, m) -# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_I(s, p, o, m) -# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_I(s, p, o, m) -# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_I(s, p, o, m) -# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_I(s, p, o, m) -# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_I(s, p, o, m) -# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_I(s, p, o, m) -# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_I(s, p, o, m) -# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_I(s, p, o, m) -# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_I(s, p, o, m) -# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_I(s, p, o, m) -# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_I(s, p, o, m) -# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_I(s, p, o, m) -# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_I(s, p, o, m) -# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_I(s, p, o, m) -# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_I(s, p, o, m) -# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_I(s, p, o, m) -# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_I(s, p, o, m) -# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_I(s, p, o, m) -# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_I(s, p, o, m) -# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_I(s, p, o, m) -# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_I(s, p, o, m) -# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_I(s, p, o, m) -# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_I(s, p, o, m) -# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_I(s, p, o, m) -# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_I(s, p, o, m) -# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_I(s, p, o, m) -# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_I(s, p, o, m) -# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_I(s, p, o, m) -# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_I(s, p, o, m) -# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_I(s, p, o, m) -# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_I(s, p, o, m) -# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_I(s, p, o, m) -# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_I(s, p, o, m) -# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_I(s, p, o, m) -# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_I(s, p, o, m) -# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_I(s, p, o, m) -# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_I(s, p, o, m) -# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_I(s, p, o, m) -# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_I(s, p, o, m) -# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_I(s, p, o, m) -# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_I(s, p, o, m) -# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_I(s, p, o, m) -# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_I(s, p, o, m) -# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_I(s, p, o, m) -# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_I(s, p, o, m) -# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_I(s, p, o, m) -# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_I(s, p, o, m) -# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_I(s, p, o, m) -# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_I(s, p, o, m) -# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_I(s, p, o, m) -# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_I(s, p, o, m) -# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_I(s, p, o, m) -# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_I(s, p, o, m) -# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_I(s, p, o, m) -# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_I(s, p, o, m) -# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_I(s, p, o, m) -# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_I(s, p, o, m) -# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_I(s, p, o, m) -# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_I(s, p, o, m) -# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_I(s, p, o, m) -# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_I(s, p, o, m) -# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_I(s, p, o, m) -# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_I(s, p, o, m) -# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_I(s, p, o, m) -# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_I(s, p, o, m) -# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_I(s, p, o, m) -# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_I(s, p, o, m) -# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_I(s, p, o, m) -# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_I(s, p, o, m) -# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_I(s, p, o, m) -# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_I(s, p, o, m) -# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_I(s, p, o, m) -# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_I(s, p, o, m) -# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_I(s, p, o, m) -# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_I(s, p, o, m) -# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_I(s, p, o, m) -# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_I(s, p, o, m) -# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_I(s, p, o, m) -# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_I(s, p, o, m) -# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_I(s, p, o, m) -# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_I(s, p, o, m) -# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_I(s, p, o, m) -# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_I(s, p, o, m) -# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_I(s, p, o, m) -# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_I(s, p, o, m) -# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_I(s, p, o, m) -# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_I(s, p, o, m) -# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_I(s, p, o, m) -# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_I(s, p, o, m) -# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_I(s, p, o, m) -# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_I(s, p, o, m) -# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_I(s, p, o, m) -# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_I(s, p, o, m) -# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_I(s, p, o, m) -# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_I(s, p, o, m) -# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_I(s, p, o, m) -# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_I(s, p, o, m) -# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_I(s, p, o, m) -# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_I(s, p, o, m) -# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_I(s, p, o, m) -# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_I(s, p, o, m) -# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_I(s, p, o, m) -# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_I(s, p, o, m) -# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_I(s, p, o, m) -# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_I(s, p, o, m) -# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_I(s, p, o, m) -# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_I(s, p, o, m) -# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_I(s, p, o, m) -# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_I(s, p, o, m) -# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_I(s, p, o, m) -# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_I(s, p, o, m) -# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_I(s, p, o, m) -# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_I(s, p, o, m) -# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_I(s, p, o, m) -# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_I(s, p, o, m) -# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_I(s, p, o, m) -# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_I(s, p, o, m) -# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_I(s, p, o, m) -# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_I(s, p, o, m) -# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_I(s, p, o, m) -# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_I(s, p, o, m) -# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_I(s, p, o, m) -# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_I(s, p, o, m) -# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_I(s, p, o, m) -# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_I(s, p, o, m) -# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_I(s, p, o, m) -# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_I(s, p, o, m) -# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_I(s, p, o, m) -# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_I(s, p, o, m) -# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_I(s, p, o, m) -# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_I(s, p, o, m) -# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_I(s, p, o, m) -# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_I(s, p, o, m) -# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_I(s, p, o, m) -# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_I(s, p, o, m) -# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_I(s, p, o, m) -# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_I(s, p, o, m) -# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_I(s, p, o, m) -# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_I(s, p, o, m) -# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_I(s, p, o, m) -# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_I(s, p, o, m) -# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_I(s, p, o, m) -# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_I(s, p, o, m) -# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_I(s, p, o, m) -# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_I(s, p, o, m) -# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_I(s, p, o, m) -# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_I(s, p, o, m) -# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_I(s, p, o, m) -# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_I(s, p, o, m) -# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_I(s, p, o, m) -# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_I(s, p, o, m) -# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_I(s, p, o, m) -# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_I(s, p, o, m) -# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_I(s, p, o, m) -# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_I(s, p, o, m) -# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_I(s, p, o, m) -# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_I(s, p, o, m) -# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_I(s, p, o, m) -# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_I(s, p, o, m) -# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_I(s, p, o, m) -# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_I(s, p, o, m) -# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_I(s, p, o, m) -# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_I(s, p, o, m) -# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_I(s, p, o, m) -# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_I(s, p, o, m) -# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_I(s, p, o, m) -# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_I(s, p, o, m) -# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_I(s, p, o, m) -# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_I(s, p, o, m) -# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_I(s, p, o, m) -# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_I(s, p, o, m) -# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_I(s, p, o, m) -# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_I(s, p, o, m) -# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_I(s, p, o, m) -# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_I(s, p, o, m) -# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_I(s, p, o, m) -# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_I(s, p, o, m) -# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_I(s, p, o, m) -# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_I(s, p, o, m) -# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_I(s, p, o, m) -# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_I(s, p, o, m) -# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_I(s, p, o, m) -# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_I(s, p, o, m) -# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_I(s, p, o, m) -# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_I(s, p, o, m) -# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_I(s, p, o, m) -# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_I(s, p, o, m) -# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_I(s, p, o, m) -# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_I(s, p, o, m) -# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_I(s, p, o, m) -# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_I(s, p, o, m) -# -# define BOOST_PP_FOR_1_I(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m) -# define BOOST_PP_FOR_2_I(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m) -# define BOOST_PP_FOR_3_I(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m) -# define BOOST_PP_FOR_4_I(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m) -# define BOOST_PP_FOR_5_I(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m) -# define BOOST_PP_FOR_6_I(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m) -# define BOOST_PP_FOR_7_I(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m) -# define BOOST_PP_FOR_8_I(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m) -# define BOOST_PP_FOR_9_I(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m) -# define BOOST_PP_FOR_10_I(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m) -# define BOOST_PP_FOR_11_I(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m) -# define BOOST_PP_FOR_12_I(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m) -# define BOOST_PP_FOR_13_I(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m) -# define BOOST_PP_FOR_14_I(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m) -# define BOOST_PP_FOR_15_I(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m) -# define BOOST_PP_FOR_16_I(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m) -# define BOOST_PP_FOR_17_I(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m) -# define BOOST_PP_FOR_18_I(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m) -# define BOOST_PP_FOR_19_I(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m) -# define BOOST_PP_FOR_20_I(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m) -# define BOOST_PP_FOR_21_I(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m) -# define BOOST_PP_FOR_22_I(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m) -# define BOOST_PP_FOR_23_I(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m) -# define BOOST_PP_FOR_24_I(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m) -# define BOOST_PP_FOR_25_I(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m) -# define BOOST_PP_FOR_26_I(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m) -# define BOOST_PP_FOR_27_I(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m) -# define BOOST_PP_FOR_28_I(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m) -# define BOOST_PP_FOR_29_I(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m) -# define BOOST_PP_FOR_30_I(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m) -# define BOOST_PP_FOR_31_I(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m) -# define BOOST_PP_FOR_32_I(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m) -# define BOOST_PP_FOR_33_I(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m) -# define BOOST_PP_FOR_34_I(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m) -# define BOOST_PP_FOR_35_I(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m) -# define BOOST_PP_FOR_36_I(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m) -# define BOOST_PP_FOR_37_I(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m) -# define BOOST_PP_FOR_38_I(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m) -# define BOOST_PP_FOR_39_I(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m) -# define BOOST_PP_FOR_40_I(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m) -# define BOOST_PP_FOR_41_I(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m) -# define BOOST_PP_FOR_42_I(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m) -# define BOOST_PP_FOR_43_I(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m) -# define BOOST_PP_FOR_44_I(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m) -# define BOOST_PP_FOR_45_I(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m) -# define BOOST_PP_FOR_46_I(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m) -# define BOOST_PP_FOR_47_I(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m) -# define BOOST_PP_FOR_48_I(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m) -# define BOOST_PP_FOR_49_I(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m) -# define BOOST_PP_FOR_50_I(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m) -# define BOOST_PP_FOR_51_I(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m) -# define BOOST_PP_FOR_52_I(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m) -# define BOOST_PP_FOR_53_I(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m) -# define BOOST_PP_FOR_54_I(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m) -# define BOOST_PP_FOR_55_I(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m) -# define BOOST_PP_FOR_56_I(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m) -# define BOOST_PP_FOR_57_I(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m) -# define BOOST_PP_FOR_58_I(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m) -# define BOOST_PP_FOR_59_I(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m) -# define BOOST_PP_FOR_60_I(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m) -# define BOOST_PP_FOR_61_I(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m) -# define BOOST_PP_FOR_62_I(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m) -# define BOOST_PP_FOR_63_I(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m) -# define BOOST_PP_FOR_64_I(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m) -# define BOOST_PP_FOR_65_I(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m) -# define BOOST_PP_FOR_66_I(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m) -# define BOOST_PP_FOR_67_I(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m) -# define BOOST_PP_FOR_68_I(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m) -# define BOOST_PP_FOR_69_I(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m) -# define BOOST_PP_FOR_70_I(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m) -# define BOOST_PP_FOR_71_I(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m) -# define BOOST_PP_FOR_72_I(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m) -# define BOOST_PP_FOR_73_I(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m) -# define BOOST_PP_FOR_74_I(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m) -# define BOOST_PP_FOR_75_I(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m) -# define BOOST_PP_FOR_76_I(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m) -# define BOOST_PP_FOR_77_I(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m) -# define BOOST_PP_FOR_78_I(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m) -# define BOOST_PP_FOR_79_I(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m) -# define BOOST_PP_FOR_80_I(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m) -# define BOOST_PP_FOR_81_I(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m) -# define BOOST_PP_FOR_82_I(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m) -# define BOOST_PP_FOR_83_I(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m) -# define BOOST_PP_FOR_84_I(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m) -# define BOOST_PP_FOR_85_I(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m) -# define BOOST_PP_FOR_86_I(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m) -# define BOOST_PP_FOR_87_I(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m) -# define BOOST_PP_FOR_88_I(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m) -# define BOOST_PP_FOR_89_I(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m) -# define BOOST_PP_FOR_90_I(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m) -# define BOOST_PP_FOR_91_I(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m) -# define BOOST_PP_FOR_92_I(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m) -# define BOOST_PP_FOR_93_I(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m) -# define BOOST_PP_FOR_94_I(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m) -# define BOOST_PP_FOR_95_I(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m) -# define BOOST_PP_FOR_96_I(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m) -# define BOOST_PP_FOR_97_I(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m) -# define BOOST_PP_FOR_98_I(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m) -# define BOOST_PP_FOR_99_I(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m) -# define BOOST_PP_FOR_100_I(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m) -# define BOOST_PP_FOR_101_I(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m) -# define BOOST_PP_FOR_102_I(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m) -# define BOOST_PP_FOR_103_I(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m) -# define BOOST_PP_FOR_104_I(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m) -# define BOOST_PP_FOR_105_I(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m) -# define BOOST_PP_FOR_106_I(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m) -# define BOOST_PP_FOR_107_I(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m) -# define BOOST_PP_FOR_108_I(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m) -# define BOOST_PP_FOR_109_I(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m) -# define BOOST_PP_FOR_110_I(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m) -# define BOOST_PP_FOR_111_I(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m) -# define BOOST_PP_FOR_112_I(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m) -# define BOOST_PP_FOR_113_I(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m) -# define BOOST_PP_FOR_114_I(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m) -# define BOOST_PP_FOR_115_I(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m) -# define BOOST_PP_FOR_116_I(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m) -# define BOOST_PP_FOR_117_I(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m) -# define BOOST_PP_FOR_118_I(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m) -# define BOOST_PP_FOR_119_I(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m) -# define BOOST_PP_FOR_120_I(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m) -# define BOOST_PP_FOR_121_I(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m) -# define BOOST_PP_FOR_122_I(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m) -# define BOOST_PP_FOR_123_I(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m) -# define BOOST_PP_FOR_124_I(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m) -# define BOOST_PP_FOR_125_I(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m) -# define BOOST_PP_FOR_126_I(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m) -# define BOOST_PP_FOR_127_I(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m) -# define BOOST_PP_FOR_128_I(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m) -# define BOOST_PP_FOR_129_I(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m) -# define BOOST_PP_FOR_130_I(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m) -# define BOOST_PP_FOR_131_I(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m) -# define BOOST_PP_FOR_132_I(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m) -# define BOOST_PP_FOR_133_I(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m) -# define BOOST_PP_FOR_134_I(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m) -# define BOOST_PP_FOR_135_I(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m) -# define BOOST_PP_FOR_136_I(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m) -# define BOOST_PP_FOR_137_I(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m) -# define BOOST_PP_FOR_138_I(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m) -# define BOOST_PP_FOR_139_I(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m) -# define BOOST_PP_FOR_140_I(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m) -# define BOOST_PP_FOR_141_I(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m) -# define BOOST_PP_FOR_142_I(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m) -# define BOOST_PP_FOR_143_I(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m) -# define BOOST_PP_FOR_144_I(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m) -# define BOOST_PP_FOR_145_I(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m) -# define BOOST_PP_FOR_146_I(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m) -# define BOOST_PP_FOR_147_I(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m) -# define BOOST_PP_FOR_148_I(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m) -# define BOOST_PP_FOR_149_I(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m) -# define BOOST_PP_FOR_150_I(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m) -# define BOOST_PP_FOR_151_I(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m) -# define BOOST_PP_FOR_152_I(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m) -# define BOOST_PP_FOR_153_I(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m) -# define BOOST_PP_FOR_154_I(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m) -# define BOOST_PP_FOR_155_I(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m) -# define BOOST_PP_FOR_156_I(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m) -# define BOOST_PP_FOR_157_I(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m) -# define BOOST_PP_FOR_158_I(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m) -# define BOOST_PP_FOR_159_I(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m) -# define BOOST_PP_FOR_160_I(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m) -# define BOOST_PP_FOR_161_I(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m) -# define BOOST_PP_FOR_162_I(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m) -# define BOOST_PP_FOR_163_I(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m) -# define BOOST_PP_FOR_164_I(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m) -# define BOOST_PP_FOR_165_I(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m) -# define BOOST_PP_FOR_166_I(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m) -# define BOOST_PP_FOR_167_I(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m) -# define BOOST_PP_FOR_168_I(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m) -# define BOOST_PP_FOR_169_I(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m) -# define BOOST_PP_FOR_170_I(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m) -# define BOOST_PP_FOR_171_I(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m) -# define BOOST_PP_FOR_172_I(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m) -# define BOOST_PP_FOR_173_I(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m) -# define BOOST_PP_FOR_174_I(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m) -# define BOOST_PP_FOR_175_I(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m) -# define BOOST_PP_FOR_176_I(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m) -# define BOOST_PP_FOR_177_I(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m) -# define BOOST_PP_FOR_178_I(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m) -# define BOOST_PP_FOR_179_I(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m) -# define BOOST_PP_FOR_180_I(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m) -# define BOOST_PP_FOR_181_I(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m) -# define BOOST_PP_FOR_182_I(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m) -# define BOOST_PP_FOR_183_I(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m) -# define BOOST_PP_FOR_184_I(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m) -# define BOOST_PP_FOR_185_I(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m) -# define BOOST_PP_FOR_186_I(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m) -# define BOOST_PP_FOR_187_I(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m) -# define BOOST_PP_FOR_188_I(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m) -# define BOOST_PP_FOR_189_I(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m) -# define BOOST_PP_FOR_190_I(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m) -# define BOOST_PP_FOR_191_I(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m) -# define BOOST_PP_FOR_192_I(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m) -# define BOOST_PP_FOR_193_I(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m) -# define BOOST_PP_FOR_194_I(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m) -# define BOOST_PP_FOR_195_I(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m) -# define BOOST_PP_FOR_196_I(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m) -# define BOOST_PP_FOR_197_I(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m) -# define BOOST_PP_FOR_198_I(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m) -# define BOOST_PP_FOR_199_I(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m) -# define BOOST_PP_FOR_200_I(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m) -# define BOOST_PP_FOR_201_I(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m) -# define BOOST_PP_FOR_202_I(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m) -# define BOOST_PP_FOR_203_I(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m) -# define BOOST_PP_FOR_204_I(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m) -# define BOOST_PP_FOR_205_I(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m) -# define BOOST_PP_FOR_206_I(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m) -# define BOOST_PP_FOR_207_I(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m) -# define BOOST_PP_FOR_208_I(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m) -# define BOOST_PP_FOR_209_I(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m) -# define BOOST_PP_FOR_210_I(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m) -# define BOOST_PP_FOR_211_I(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m) -# define BOOST_PP_FOR_212_I(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m) -# define BOOST_PP_FOR_213_I(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m) -# define BOOST_PP_FOR_214_I(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m) -# define BOOST_PP_FOR_215_I(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m) -# define BOOST_PP_FOR_216_I(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m) -# define BOOST_PP_FOR_217_I(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m) -# define BOOST_PP_FOR_218_I(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m) -# define BOOST_PP_FOR_219_I(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m) -# define BOOST_PP_FOR_220_I(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m) -# define BOOST_PP_FOR_221_I(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m) -# define BOOST_PP_FOR_222_I(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m) -# define BOOST_PP_FOR_223_I(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m) -# define BOOST_PP_FOR_224_I(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m) -# define BOOST_PP_FOR_225_I(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m) -# define BOOST_PP_FOR_226_I(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m) -# define BOOST_PP_FOR_227_I(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m) -# define BOOST_PP_FOR_228_I(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m) -# define BOOST_PP_FOR_229_I(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m) -# define BOOST_PP_FOR_230_I(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m) -# define BOOST_PP_FOR_231_I(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m) -# define BOOST_PP_FOR_232_I(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m) -# define BOOST_PP_FOR_233_I(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m) -# define BOOST_PP_FOR_234_I(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m) -# define BOOST_PP_FOR_235_I(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m) -# define BOOST_PP_FOR_236_I(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m) -# define BOOST_PP_FOR_237_I(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m) -# define BOOST_PP_FOR_238_I(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m) -# define BOOST_PP_FOR_239_I(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m) -# define BOOST_PP_FOR_240_I(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m) -# define BOOST_PP_FOR_241_I(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m) -# define BOOST_PP_FOR_242_I(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m) -# define BOOST_PP_FOR_243_I(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m) -# define BOOST_PP_FOR_244_I(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m) -# define BOOST_PP_FOR_245_I(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m) -# define BOOST_PP_FOR_246_I(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m) -# define BOOST_PP_FOR_247_I(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m) -# define BOOST_PP_FOR_248_I(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m) -# define BOOST_PP_FOR_249_I(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m) -# define BOOST_PP_FOR_250_I(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m) -# define BOOST_PP_FOR_251_I(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m) -# define BOOST_PP_FOR_252_I(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m) -# define BOOST_PP_FOR_253_I(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m) -# define BOOST_PP_FOR_254_I(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m) -# define BOOST_PP_FOR_255_I(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m) -# define BOOST_PP_FOR_256_I(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/for.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/detail/for.hpp deleted file mode 100644 index 2770f2c1e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/for.hpp +++ /dev/null @@ -1,536 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP -# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP -# -# include -# include -# include -# include -# -# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m) -# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m) -# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p(4, s)), s, p, o, m) -# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p(5, s)), s, p, o, m) -# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p(6, s)), s, p, o, m) -# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p(7, s)), s, p, o, m) -# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p(8, s)), s, p, o, m) -# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p(9, s)), s, p, o, m) -# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p(10, s)), s, p, o, m) -# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p(11, s)), s, p, o, m) -# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p(12, s)), s, p, o, m) -# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p(13, s)), s, p, o, m) -# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p(14, s)), s, p, o, m) -# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p(15, s)), s, p, o, m) -# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p(16, s)), s, p, o, m) -# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p(17, s)), s, p, o, m) -# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p(18, s)), s, p, o, m) -# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p(19, s)), s, p, o, m) -# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p(20, s)), s, p, o, m) -# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p(21, s)), s, p, o, m) -# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p(22, s)), s, p, o, m) -# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p(23, s)), s, p, o, m) -# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p(24, s)), s, p, o, m) -# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p(25, s)), s, p, o, m) -# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p(26, s)), s, p, o, m) -# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p(27, s)), s, p, o, m) -# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p(28, s)), s, p, o, m) -# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p(29, s)), s, p, o, m) -# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p(30, s)), s, p, o, m) -# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p(31, s)), s, p, o, m) -# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p(32, s)), s, p, o, m) -# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p(33, s)), s, p, o, m) -# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p(34, s)), s, p, o, m) -# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p(35, s)), s, p, o, m) -# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p(36, s)), s, p, o, m) -# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p(37, s)), s, p, o, m) -# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p(38, s)), s, p, o, m) -# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p(39, s)), s, p, o, m) -# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p(40, s)), s, p, o, m) -# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p(41, s)), s, p, o, m) -# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p(42, s)), s, p, o, m) -# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p(43, s)), s, p, o, m) -# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p(44, s)), s, p, o, m) -# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p(45, s)), s, p, o, m) -# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p(46, s)), s, p, o, m) -# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p(47, s)), s, p, o, m) -# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p(48, s)), s, p, o, m) -# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p(49, s)), s, p, o, m) -# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p(50, s)), s, p, o, m) -# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p(51, s)), s, p, o, m) -# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p(52, s)), s, p, o, m) -# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p(53, s)), s, p, o, m) -# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p(54, s)), s, p, o, m) -# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p(55, s)), s, p, o, m) -# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p(56, s)), s, p, o, m) -# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p(57, s)), s, p, o, m) -# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p(58, s)), s, p, o, m) -# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p(59, s)), s, p, o, m) -# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p(60, s)), s, p, o, m) -# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p(61, s)), s, p, o, m) -# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p(62, s)), s, p, o, m) -# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p(63, s)), s, p, o, m) -# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p(64, s)), s, p, o, m) -# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p(65, s)), s, p, o, m) -# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p(66, s)), s, p, o, m) -# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p(67, s)), s, p, o, m) -# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p(68, s)), s, p, o, m) -# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p(69, s)), s, p, o, m) -# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p(70, s)), s, p, o, m) -# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p(71, s)), s, p, o, m) -# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p(72, s)), s, p, o, m) -# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p(73, s)), s, p, o, m) -# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p(74, s)), s, p, o, m) -# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p(75, s)), s, p, o, m) -# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p(76, s)), s, p, o, m) -# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p(77, s)), s, p, o, m) -# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p(78, s)), s, p, o, m) -# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p(79, s)), s, p, o, m) -# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p(80, s)), s, p, o, m) -# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p(81, s)), s, p, o, m) -# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p(82, s)), s, p, o, m) -# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p(83, s)), s, p, o, m) -# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p(84, s)), s, p, o, m) -# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p(85, s)), s, p, o, m) -# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p(86, s)), s, p, o, m) -# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p(87, s)), s, p, o, m) -# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p(88, s)), s, p, o, m) -# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p(89, s)), s, p, o, m) -# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p(90, s)), s, p, o, m) -# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p(91, s)), s, p, o, m) -# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p(92, s)), s, p, o, m) -# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p(93, s)), s, p, o, m) -# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p(94, s)), s, p, o, m) -# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p(95, s)), s, p, o, m) -# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p(96, s)), s, p, o, m) -# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p(97, s)), s, p, o, m) -# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p(98, s)), s, p, o, m) -# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p(99, s)), s, p, o, m) -# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p(100, s)), s, p, o, m) -# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p(101, s)), s, p, o, m) -# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p(102, s)), s, p, o, m) -# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p(103, s)), s, p, o, m) -# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p(104, s)), s, p, o, m) -# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p(105, s)), s, p, o, m) -# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p(106, s)), s, p, o, m) -# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p(107, s)), s, p, o, m) -# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p(108, s)), s, p, o, m) -# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p(109, s)), s, p, o, m) -# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p(110, s)), s, p, o, m) -# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p(111, s)), s, p, o, m) -# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p(112, s)), s, p, o, m) -# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p(113, s)), s, p, o, m) -# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p(114, s)), s, p, o, m) -# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p(115, s)), s, p, o, m) -# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p(116, s)), s, p, o, m) -# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p(117, s)), s, p, o, m) -# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p(118, s)), s, p, o, m) -# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p(119, s)), s, p, o, m) -# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p(120, s)), s, p, o, m) -# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p(121, s)), s, p, o, m) -# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p(122, s)), s, p, o, m) -# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p(123, s)), s, p, o, m) -# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p(124, s)), s, p, o, m) -# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p(125, s)), s, p, o, m) -# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p(126, s)), s, p, o, m) -# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p(127, s)), s, p, o, m) -# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p(128, s)), s, p, o, m) -# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p(129, s)), s, p, o, m) -# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p(130, s)), s, p, o, m) -# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p(131, s)), s, p, o, m) -# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p(132, s)), s, p, o, m) -# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p(133, s)), s, p, o, m) -# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p(134, s)), s, p, o, m) -# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p(135, s)), s, p, o, m) -# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p(136, s)), s, p, o, m) -# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p(137, s)), s, p, o, m) -# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p(138, s)), s, p, o, m) -# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p(139, s)), s, p, o, m) -# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p(140, s)), s, p, o, m) -# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p(141, s)), s, p, o, m) -# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p(142, s)), s, p, o, m) -# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p(143, s)), s, p, o, m) -# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p(144, s)), s, p, o, m) -# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p(145, s)), s, p, o, m) -# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p(146, s)), s, p, o, m) -# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p(147, s)), s, p, o, m) -# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p(148, s)), s, p, o, m) -# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p(149, s)), s, p, o, m) -# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p(150, s)), s, p, o, m) -# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p(151, s)), s, p, o, m) -# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p(152, s)), s, p, o, m) -# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p(153, s)), s, p, o, m) -# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p(154, s)), s, p, o, m) -# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p(155, s)), s, p, o, m) -# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p(156, s)), s, p, o, m) -# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p(157, s)), s, p, o, m) -# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p(158, s)), s, p, o, m) -# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p(159, s)), s, p, o, m) -# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p(160, s)), s, p, o, m) -# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p(161, s)), s, p, o, m) -# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p(162, s)), s, p, o, m) -# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p(163, s)), s, p, o, m) -# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p(164, s)), s, p, o, m) -# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p(165, s)), s, p, o, m) -# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p(166, s)), s, p, o, m) -# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p(167, s)), s, p, o, m) -# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p(168, s)), s, p, o, m) -# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p(169, s)), s, p, o, m) -# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p(170, s)), s, p, o, m) -# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p(171, s)), s, p, o, m) -# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p(172, s)), s, p, o, m) -# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p(173, s)), s, p, o, m) -# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p(174, s)), s, p, o, m) -# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p(175, s)), s, p, o, m) -# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p(176, s)), s, p, o, m) -# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p(177, s)), s, p, o, m) -# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p(178, s)), s, p, o, m) -# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p(179, s)), s, p, o, m) -# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p(180, s)), s, p, o, m) -# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p(181, s)), s, p, o, m) -# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p(182, s)), s, p, o, m) -# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p(183, s)), s, p, o, m) -# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p(184, s)), s, p, o, m) -# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p(185, s)), s, p, o, m) -# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p(186, s)), s, p, o, m) -# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p(187, s)), s, p, o, m) -# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p(188, s)), s, p, o, m) -# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p(189, s)), s, p, o, m) -# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p(190, s)), s, p, o, m) -# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p(191, s)), s, p, o, m) -# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p(192, s)), s, p, o, m) -# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p(193, s)), s, p, o, m) -# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p(194, s)), s, p, o, m) -# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p(195, s)), s, p, o, m) -# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p(196, s)), s, p, o, m) -# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p(197, s)), s, p, o, m) -# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p(198, s)), s, p, o, m) -# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p(199, s)), s, p, o, m) -# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p(200, s)), s, p, o, m) -# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p(201, s)), s, p, o, m) -# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p(202, s)), s, p, o, m) -# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p(203, s)), s, p, o, m) -# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p(204, s)), s, p, o, m) -# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p(205, s)), s, p, o, m) -# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p(206, s)), s, p, o, m) -# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p(207, s)), s, p, o, m) -# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p(208, s)), s, p, o, m) -# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p(209, s)), s, p, o, m) -# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p(210, s)), s, p, o, m) -# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p(211, s)), s, p, o, m) -# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p(212, s)), s, p, o, m) -# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p(213, s)), s, p, o, m) -# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p(214, s)), s, p, o, m) -# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p(215, s)), s, p, o, m) -# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p(216, s)), s, p, o, m) -# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p(217, s)), s, p, o, m) -# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p(218, s)), s, p, o, m) -# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p(219, s)), s, p, o, m) -# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p(220, s)), s, p, o, m) -# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p(221, s)), s, p, o, m) -# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p(222, s)), s, p, o, m) -# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p(223, s)), s, p, o, m) -# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p(224, s)), s, p, o, m) -# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p(225, s)), s, p, o, m) -# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p(226, s)), s, p, o, m) -# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p(227, s)), s, p, o, m) -# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p(228, s)), s, p, o, m) -# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p(229, s)), s, p, o, m) -# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p(230, s)), s, p, o, m) -# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p(231, s)), s, p, o, m) -# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p(232, s)), s, p, o, m) -# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p(233, s)), s, p, o, m) -# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p(234, s)), s, p, o, m) -# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p(235, s)), s, p, o, m) -# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p(236, s)), s, p, o, m) -# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p(237, s)), s, p, o, m) -# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p(238, s)), s, p, o, m) -# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p(239, s)), s, p, o, m) -# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p(240, s)), s, p, o, m) -# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p(241, s)), s, p, o, m) -# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p(242, s)), s, p, o, m) -# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p(243, s)), s, p, o, m) -# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p(244, s)), s, p, o, m) -# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p(245, s)), s, p, o, m) -# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p(246, s)), s, p, o, m) -# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p(247, s)), s, p, o, m) -# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p(248, s)), s, p, o, m) -# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p(249, s)), s, p, o, m) -# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p(250, s)), s, p, o, m) -# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p(251, s)), s, p, o, m) -# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p(252, s)), s, p, o, m) -# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p(253, s)), s, p, o, m) -# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p(254, s)), s, p, o, m) -# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p(255, s)), s, p, o, m) -# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p(256, s)), s, p, o, m) -# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p(257, s)), s, p, o, m) -# -# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m) -# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m) -# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m) -# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m) -# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m) -# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m) -# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m) -# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m) -# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m) -# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m) -# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m) -# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m) -# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m) -# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m) -# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m) -# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m) -# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m) -# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m) -# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m) -# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m) -# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m) -# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m) -# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m) -# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m) -# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m) -# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m) -# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m) -# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m) -# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m) -# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m) -# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m) -# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m) -# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m) -# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m) -# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m) -# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m) -# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m) -# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m) -# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m) -# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m) -# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m) -# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m) -# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m) -# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m) -# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m) -# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m) -# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m) -# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m) -# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m) -# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m) -# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m) -# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m) -# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m) -# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m) -# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m) -# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m) -# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m) -# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m) -# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m) -# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m) -# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m) -# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m) -# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m) -# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m) -# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m) -# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m) -# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m) -# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m) -# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m) -# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m) -# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m) -# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m) -# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m) -# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m) -# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m) -# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m) -# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m) -# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m) -# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m) -# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m) -# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m) -# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m) -# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m) -# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m) -# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m) -# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m) -# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m) -# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m) -# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m) -# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m) -# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m) -# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m) -# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m) -# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m) -# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m) -# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m) -# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m) -# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m) -# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m) -# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m) -# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m) -# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m) -# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m) -# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m) -# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m) -# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m) -# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m) -# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m) -# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m) -# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m) -# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m) -# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m) -# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m) -# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m) -# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m) -# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m) -# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m) -# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m) -# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m) -# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m) -# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m) -# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m) -# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m) -# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m) -# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m) -# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m) -# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m) -# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m) -# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m) -# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m) -# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m) -# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m) -# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m) -# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m) -# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m) -# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m) -# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m) -# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m) -# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m) -# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m) -# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m) -# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m) -# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m) -# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m) -# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m) -# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m) -# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m) -# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m) -# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m) -# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m) -# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m) -# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m) -# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m) -# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m) -# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m) -# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m) -# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m) -# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m) -# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m) -# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m) -# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m) -# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m) -# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m) -# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m) -# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m) -# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m) -# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m) -# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m) -# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m) -# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m) -# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m) -# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m) -# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m) -# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m) -# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m) -# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m) -# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m) -# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m) -# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m) -# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m) -# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m) -# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m) -# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m) -# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m) -# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m) -# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m) -# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m) -# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m) -# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m) -# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m) -# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m) -# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m) -# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m) -# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m) -# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m) -# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m) -# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m) -# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m) -# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m) -# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m) -# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m) -# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m) -# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m) -# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m) -# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m) -# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m) -# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m) -# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m) -# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m) -# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m) -# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m) -# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m) -# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m) -# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m) -# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m) -# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m) -# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m) -# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m) -# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m) -# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m) -# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m) -# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m) -# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m) -# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m) -# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m) -# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m) -# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m) -# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m) -# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m) -# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m) -# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m) -# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m) -# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m) -# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m) -# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m) -# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m) -# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m) -# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m) -# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m) -# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m) -# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m) -# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m) -# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m) -# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m) -# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m) -# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m) -# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m) -# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m) -# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m) -# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m) -# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m) -# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m) -# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m) -# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m) -# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m) -# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/msvc/for.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/detail/msvc/for.hpp deleted file mode 100644 index 35c1996c7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/detail/msvc/for.hpp +++ /dev/null @@ -1,277 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP -# define BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP -# -# include -# include -# -# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m) -# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m) -# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m) -# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m) -# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m) -# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m) -# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m) -# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m) -# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m) -# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m) -# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m) -# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m) -# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m) -# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m) -# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m) -# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m) -# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m) -# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m) -# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m) -# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m) -# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m) -# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m) -# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m) -# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m) -# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m) -# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m) -# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m) -# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m) -# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m) -# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m) -# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m) -# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m) -# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m) -# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m) -# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m) -# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m) -# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m) -# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m) -# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m) -# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m) -# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m) -# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m) -# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m) -# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m) -# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m) -# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m) -# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m) -# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m) -# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m) -# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m) -# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m) -# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m) -# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m) -# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m) -# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m) -# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m) -# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m) -# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m) -# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m) -# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m) -# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m) -# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m) -# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m) -# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m) -# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m) -# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m) -# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m) -# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m) -# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m) -# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m) -# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m) -# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m) -# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m) -# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m) -# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m) -# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m) -# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m) -# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m) -# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m) -# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m) -# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m) -# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m) -# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m) -# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m) -# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m) -# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m) -# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m) -# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m) -# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m) -# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m) -# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m) -# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m) -# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m) -# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m) -# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m) -# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m) -# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m) -# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m) -# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m) -# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m) -# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m) -# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m) -# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m) -# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m) -# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m) -# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m) -# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m) -# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m) -# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m) -# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m) -# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m) -# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m) -# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m) -# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m) -# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m) -# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m) -# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m) -# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m) -# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m) -# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m) -# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m) -# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m) -# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m) -# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m) -# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m) -# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m) -# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m) -# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m) -# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m) -# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m) -# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m) -# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m) -# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m) -# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m) -# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m) -# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m) -# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m) -# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m) -# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m) -# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m) -# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m) -# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m) -# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m) -# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m) -# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m) -# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m) -# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m) -# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m) -# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m) -# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m) -# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m) -# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m) -# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m) -# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m) -# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m) -# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m) -# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m) -# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m) -# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m) -# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m) -# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m) -# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m) -# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m) -# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m) -# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m) -# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m) -# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m) -# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m) -# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m) -# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m) -# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m) -# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m) -# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m) -# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m) -# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m) -# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m) -# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m) -# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m) -# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m) -# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m) -# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m) -# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m) -# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m) -# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m) -# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m) -# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m) -# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m) -# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m) -# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m) -# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m) -# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m) -# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m) -# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m) -# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m) -# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m) -# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m) -# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m) -# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m) -# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m) -# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m) -# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m) -# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m) -# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m) -# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m) -# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m) -# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m) -# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m) -# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m) -# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m) -# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m) -# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m) -# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m) -# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m) -# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m) -# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m) -# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m) -# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m) -# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m) -# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m) -# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m) -# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m) -# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m) -# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m) -# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m) -# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m) -# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m) -# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m) -# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m) -# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m) -# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m) -# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m) -# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m) -# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m) -# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m) -# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m) -# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m) -# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m) -# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m) -# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m) -# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m) -# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m) -# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m) -# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m) -# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m) -# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m) -# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m) -# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m) -# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m) -# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m) -# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m) -# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m) -# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m) -# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m) -# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m) -# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m) -# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum.hpp deleted file mode 100644 index 0198cd9b3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum.hpp +++ /dev/null @@ -1,66 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM */ -# -# if 0 -# define BOOST_PP_ENUM(count, macro, data) -# endif -# -# define BOOST_PP_ENUM BOOST_PP_CAT(BOOST_PP_ENUM_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_M_1, (m, d)) -# define BOOST_PP_ENUM_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_M_2, (m, d)) -# define BOOST_PP_ENUM_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_M_3, (m, d)) -# else -# define BOOST_PP_ENUM_1(c, m, d) BOOST_PP_ENUM_1_I(c, m, d) -# define BOOST_PP_ENUM_2(c, m, d) BOOST_PP_ENUM_2_I(c, m, d) -# define BOOST_PP_ENUM_3(c, m, d) BOOST_PP_ENUM_3_I(c, m, d) -# define BOOST_PP_ENUM_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_M_1, (m, d)) -# define BOOST_PP_ENUM_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_M_2, (m, d)) -# define BOOST_PP_ENUM_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_M_3, (m, d)) -# endif -# -# define BOOST_PP_ENUM_4(c, m, d) BOOST_PP_ERROR(0x0003) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ENUM_M_1(z, n, md) BOOST_PP_ENUM_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_M_2(z, n, md) BOOST_PP_ENUM_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_M_3(z, n, md) BOOST_PP_ENUM_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_M_1_IM(z, n, im) BOOST_PP_ENUM_M_1_I(z, n, im) -# define BOOST_PP_ENUM_M_2_IM(z, n, im) BOOST_PP_ENUM_M_2_I(z, n, im) -# define BOOST_PP_ENUM_M_3_IM(z, n, im) BOOST_PP_ENUM_M_3_I(z, n, im) -# else -# define BOOST_PP_ENUM_M_1(z, n, md) BOOST_PP_ENUM_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# define BOOST_PP_ENUM_M_2(z, n, md) BOOST_PP_ENUM_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# define BOOST_PP_ENUM_M_3(z, n, md) BOOST_PP_ENUM_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# endif -# -# define BOOST_PP_ENUM_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d) -# define BOOST_PP_ENUM_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d) -# define BOOST_PP_ENUM_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_binary_params.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_binary_params.hpp deleted file mode 100644 index a2c1048e1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_binary_params.hpp +++ /dev/null @@ -1,54 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM_BINARY_PARAMS */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) -# else -# define BOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) -# define BOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp) -# define BOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, im) -# else -# define BOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) -# define BOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) BOOST_PP_COMMA_IF(n) p1 ## n p2 ## n -# else -# define BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n) -# endif -# -# /* BOOST_PP_ENUM_BINARY_PARAMS_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) -# else -# define BOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) -# define BOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params.hpp deleted file mode 100644 index 65a2369d4..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params.hpp +++ /dev/null @@ -1,41 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP -# -# include -# include -# include -# -# /* BOOST_PP_ENUM_PARAMS */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param) -# else -# define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_ENUM_PARAMS_I(count, param) -# define BOOST_PP_ENUM_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param) -# endif -# -# define BOOST_PP_ENUM_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) param ## n -# -# /* BOOST_PP_ENUM_PARAMS_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param) -# else -# define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_ENUM_PARAMS_Z_I(z, count, param) -# define BOOST_PP_ENUM_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp deleted file mode 100644 index 7496df62f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params_with_a_default.hpp +++ /dev/null @@ -1,25 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP -# -# include -# include -# include -# -# /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */ -# -# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp deleted file mode 100644 index fa0106f77..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_params_with_defaults.hpp +++ /dev/null @@ -1,24 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP -# -# include -# include -# -# /* BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS */ -# -# define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted.hpp deleted file mode 100644 index d5b006f4d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted.hpp +++ /dev/null @@ -1,68 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM_SHIFTED */ -# -# if 0 -# define BOOST_PP_ENUM_SHIFTED(count, macro, data) -# endif -# -# define BOOST_PP_ENUM_SHIFTED BOOST_PP_CAT(BOOST_PP_ENUM_SHIFTED_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d)) -# define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d)) -# define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d)) -# else -# define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_ENUM_SHIFTED_1_I(c, m, d) -# define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_ENUM_SHIFTED_1_2(c, m, d) -# define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_ENUM_SHIFTED_1_3(c, m, d) -# define BOOST_PP_ENUM_SHIFTED_1_I(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d)) -# define BOOST_PP_ENUM_SHIFTED_2_I(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d)) -# define BOOST_PP_ENUM_SHIFTED_3_I(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d)) -# endif -# -# define BOOST_PP_ENUM_SHIFTED_4(c, m, d) BOOST_PP_ERROR(0x0003) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, im) -# define BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, im) -# define BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, im) -# else -# define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# endif -# -# define BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d) -# define BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d) -# define BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp deleted file mode 100644 index f3d20fc7b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +++ /dev/null @@ -1,51 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2005. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) -# else -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp) -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im) -# else -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp)) -# endif -# -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, BOOST_PP_INC(n)) BOOST_PP_CAT(p2, BOOST_PP_INC(n)) -# -# /* BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) -# else -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) -# define BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted_params.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted_params.hpp deleted file mode 100644 index 88b2bf4c3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_shifted_params.hpp +++ /dev/null @@ -1,44 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM_SHIFTED_PARAMS */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param) -# else -# define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) -# define BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param) -# endif -# -# define BOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(param, BOOST_PP_INC(n)) -# -# /* BOOST_PP_ENUM_SHIFTED_PARAMS_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param) -# else -# define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) -# define BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing.hpp deleted file mode 100644 index 20af2d54b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing.hpp +++ /dev/null @@ -1,63 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM_TRAILING */ -# -# if 0 -# define BOOST_PP_ENUM_TRAILING(count, macro, data) -# endif -# -# define BOOST_PP_ENUM_TRAILING BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d)) -# define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d)) -# define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d)) -# else -# define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_ENUM_TRAILING_1_I(c, m, d) -# define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_ENUM_TRAILING_2_I(c, m, d) -# define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_ENUM_TRAILING_3_I(c, m, d) -# define BOOST_PP_ENUM_TRAILING_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d)) -# define BOOST_PP_ENUM_TRAILING_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d)) -# define BOOST_PP_ENUM_TRAILING_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d)) -# endif -# -# define BOOST_PP_ENUM_TRAILING_4(c, m, d) BOOST_PP_ERROR(0x0003) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md) -# define BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, im) -# define BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, im) -# define BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, im) -# else -# define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md)) -# endif -# -# define BOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d) -# define BOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d) -# define BOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp deleted file mode 100644 index e201b6991..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +++ /dev/null @@ -1,53 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) -# else -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp) -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, im) -# else -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp)) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) , p1 ## n p2 ## n -# else -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) , BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n) -# endif -# -# /* BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) -# else -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) -# define BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing_params.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing_params.hpp deleted file mode 100644 index f7520dbde..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/enum_trailing_params.hpp +++ /dev/null @@ -1,38 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP -# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP -# -# include -# include -# -# /* BOOST_PP_ENUM_TRAILING_PARAMS */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param) -# else -# define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) -# define BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param) -# endif -# -# define BOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n -# -# /* BOOST_PP_ENUM_TRAILING_PARAMS_Z */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param) -# else -# define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) -# define BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/for.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/for.hpp deleted file mode 100644 index c38946bb5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/for.hpp +++ /dev/null @@ -1,324 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_FOR_HPP -# define BOOST_PREPROCESSOR_REPETITION_FOR_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_FOR */ -# -# if 0 -# define BOOST_PP_FOR(state, pred, op, macro) -# endif -# -# define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256)) -# -# define BOOST_PP_FOR_P(n) BOOST_PP_CAT(BOOST_PP_FOR_CHECK_, BOOST_PP_FOR_ ## n(1, BOOST_PP_FOR_SR_P, BOOST_PP_FOR_SR_O, BOOST_PP_FOR_SR_M)) -# -# define BOOST_PP_FOR_SR_P(r, s) s -# define BOOST_PP_FOR_SR_O(r, s) 0 -# define BOOST_PP_FOR_SR_M(r, s) BOOST_PP_NIL -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# include -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# include -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# include -# else -# include -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_FOR_257_PR(s, p) BOOST_PP_BOOL(p##(257, s)) -# else -# define BOOST_PP_FOR_257_PR(s, p) BOOST_PP_BOOL(p(257, s)) -# endif - -# define BOOST_PP_FOR_257_ERROR() BOOST_PP_ERROR(0x0002) -# define BOOST_PP_FOR_257(s, p, o, m) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_FOR_257_PR(s,p), \ - BOOST_PP_FOR_257_ERROR, \ - BOOST_PP_EMPTY \ - ) \ - () \ -/**/ -// # define BOOST_PP_FOR_257(s, p, o, m) BOOST_PP_ERROR(0x0002) -# -# define BOOST_PP_FOR_CHECK_BOOST_PP_NIL 1 -# -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_1(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_2(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_3(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_4(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_5(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_6(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_7(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_8(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_9(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_10(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_11(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_12(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_13(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_14(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_15(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_16(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_17(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_18(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_19(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_20(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_21(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_22(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_23(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_24(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_25(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_26(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_27(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_28(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_29(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_30(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_31(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_32(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_33(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_34(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_35(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_36(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_37(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_38(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_39(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_40(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_41(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_42(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_43(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_44(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_45(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_46(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_47(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_48(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_49(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_50(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_51(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_52(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_53(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_54(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_55(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_56(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_57(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_58(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_59(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_60(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_61(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_62(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_63(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_64(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_65(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_66(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_67(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_68(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_69(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_70(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_71(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_72(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_73(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_74(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_75(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_76(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_77(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_78(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_79(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_80(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_81(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_82(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_83(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_84(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_85(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_86(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_87(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_88(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_89(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_90(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_91(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_92(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_93(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_94(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_95(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_96(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_97(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_98(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_99(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_100(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_101(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_102(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_103(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_104(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_105(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_106(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_107(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_108(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_109(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_110(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_111(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_112(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_113(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_114(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_115(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_116(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_117(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_118(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_119(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_120(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_121(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_122(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_123(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_124(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_125(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_126(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_127(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_128(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_129(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_130(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_131(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_132(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_133(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_134(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_135(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_136(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_137(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_138(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_139(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_140(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_141(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_142(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_143(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_144(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_145(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_146(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_147(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_148(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_149(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_150(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_151(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_152(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_153(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_154(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_155(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_156(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_157(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_158(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_159(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_160(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_161(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_162(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_163(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_164(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_165(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_166(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_167(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_168(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_169(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_170(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_171(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_172(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_173(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_174(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_175(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_176(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_177(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_178(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_179(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_180(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_181(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_182(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_183(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_184(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_185(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_186(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_187(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_188(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_189(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_190(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_191(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_192(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_193(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_194(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_195(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_196(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_197(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_198(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_199(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_200(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_201(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_202(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_203(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_204(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_205(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_206(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_207(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_208(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_209(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_210(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_211(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_212(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_213(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_214(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_215(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_216(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_217(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_218(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_219(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_220(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_221(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_222(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_223(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_224(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_225(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_226(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_227(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_228(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_229(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_230(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_231(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_232(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_233(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_234(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_235(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_236(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_237(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_238(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_239(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_240(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_241(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_242(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_243(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_244(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_245(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_246(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_247(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_248(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_249(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_250(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_251(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_252(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_253(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_254(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_255(s, p, o, m) 0 -# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_256(s, p, o, m) 0 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/repeat.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/repeat.hpp deleted file mode 100644 index 0172738e0..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/repeat.hpp +++ /dev/null @@ -1,825 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP -# define BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_REPEAT */ -# -# if 0 -# define BOOST_PP_REPEAT(count, macro, data) -# endif -# -# define BOOST_PP_REPEAT BOOST_PP_CAT(BOOST_PP_REPEAT_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) -# -# define BOOST_PP_REPEAT_P(n) BOOST_PP_CAT(BOOST_PP_REPEAT_CHECK_, BOOST_PP_REPEAT_ ## n(1, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3, BOOST_PP_NIL)) -# -# define BOOST_PP_REPEAT_CHECK_BOOST_PP_NIL 1 -# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_1(c, m, d) 0 -# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_2(c, m, d) 0 -# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_3(c, m, d) 0 -# -# define BOOST_PP_REPEAT_1(c, m, d) BOOST_PP_REPEAT_1_I(c, m, d) -# define BOOST_PP_REPEAT_2(c, m, d) BOOST_PP_REPEAT_2_I(c, m, d) -# define BOOST_PP_REPEAT_3(c, m, d) BOOST_PP_REPEAT_3_I(c, m, d) -# define BOOST_PP_REPEAT_4(c, m, d) BOOST_PP_ERROR(0x0003) -# -# define BOOST_PP_REPEAT_1_I(c, m, d) BOOST_PP_REPEAT_1_ ## c(m, d) -# define BOOST_PP_REPEAT_2_I(c, m, d) BOOST_PP_REPEAT_2_ ## c(m, d) -# define BOOST_PP_REPEAT_3_I(c, m, d) BOOST_PP_REPEAT_3_ ## c(m, d) -# -# define BOOST_PP_REPEAT_1ST BOOST_PP_REPEAT_1 -# define BOOST_PP_REPEAT_2ND BOOST_PP_REPEAT_2 -# define BOOST_PP_REPEAT_3RD BOOST_PP_REPEAT_3 -# -# define BOOST_PP_REPEAT_1_0(m, d) -# define BOOST_PP_REPEAT_1_1(m, d) m(2, 0, d) -# define BOOST_PP_REPEAT_1_2(m, d) BOOST_PP_REPEAT_1_1(m, d) m(2, 1, d) -# define BOOST_PP_REPEAT_1_3(m, d) BOOST_PP_REPEAT_1_2(m, d) m(2, 2, d) -# define BOOST_PP_REPEAT_1_4(m, d) BOOST_PP_REPEAT_1_3(m, d) m(2, 3, d) -# define BOOST_PP_REPEAT_1_5(m, d) BOOST_PP_REPEAT_1_4(m, d) m(2, 4, d) -# define BOOST_PP_REPEAT_1_6(m, d) BOOST_PP_REPEAT_1_5(m, d) m(2, 5, d) -# define BOOST_PP_REPEAT_1_7(m, d) BOOST_PP_REPEAT_1_6(m, d) m(2, 6, d) -# define BOOST_PP_REPEAT_1_8(m, d) BOOST_PP_REPEAT_1_7(m, d) m(2, 7, d) -# define BOOST_PP_REPEAT_1_9(m, d) BOOST_PP_REPEAT_1_8(m, d) m(2, 8, d) -# define BOOST_PP_REPEAT_1_10(m, d) BOOST_PP_REPEAT_1_9(m, d) m(2, 9, d) -# define BOOST_PP_REPEAT_1_11(m, d) BOOST_PP_REPEAT_1_10(m, d) m(2, 10, d) -# define BOOST_PP_REPEAT_1_12(m, d) BOOST_PP_REPEAT_1_11(m, d) m(2, 11, d) -# define BOOST_PP_REPEAT_1_13(m, d) BOOST_PP_REPEAT_1_12(m, d) m(2, 12, d) -# define BOOST_PP_REPEAT_1_14(m, d) BOOST_PP_REPEAT_1_13(m, d) m(2, 13, d) -# define BOOST_PP_REPEAT_1_15(m, d) BOOST_PP_REPEAT_1_14(m, d) m(2, 14, d) -# define BOOST_PP_REPEAT_1_16(m, d) BOOST_PP_REPEAT_1_15(m, d) m(2, 15, d) -# define BOOST_PP_REPEAT_1_17(m, d) BOOST_PP_REPEAT_1_16(m, d) m(2, 16, d) -# define BOOST_PP_REPEAT_1_18(m, d) BOOST_PP_REPEAT_1_17(m, d) m(2, 17, d) -# define BOOST_PP_REPEAT_1_19(m, d) BOOST_PP_REPEAT_1_18(m, d) m(2, 18, d) -# define BOOST_PP_REPEAT_1_20(m, d) BOOST_PP_REPEAT_1_19(m, d) m(2, 19, d) -# define BOOST_PP_REPEAT_1_21(m, d) BOOST_PP_REPEAT_1_20(m, d) m(2, 20, d) -# define BOOST_PP_REPEAT_1_22(m, d) BOOST_PP_REPEAT_1_21(m, d) m(2, 21, d) -# define BOOST_PP_REPEAT_1_23(m, d) BOOST_PP_REPEAT_1_22(m, d) m(2, 22, d) -# define BOOST_PP_REPEAT_1_24(m, d) BOOST_PP_REPEAT_1_23(m, d) m(2, 23, d) -# define BOOST_PP_REPEAT_1_25(m, d) BOOST_PP_REPEAT_1_24(m, d) m(2, 24, d) -# define BOOST_PP_REPEAT_1_26(m, d) BOOST_PP_REPEAT_1_25(m, d) m(2, 25, d) -# define BOOST_PP_REPEAT_1_27(m, d) BOOST_PP_REPEAT_1_26(m, d) m(2, 26, d) -# define BOOST_PP_REPEAT_1_28(m, d) BOOST_PP_REPEAT_1_27(m, d) m(2, 27, d) -# define BOOST_PP_REPEAT_1_29(m, d) BOOST_PP_REPEAT_1_28(m, d) m(2, 28, d) -# define BOOST_PP_REPEAT_1_30(m, d) BOOST_PP_REPEAT_1_29(m, d) m(2, 29, d) -# define BOOST_PP_REPEAT_1_31(m, d) BOOST_PP_REPEAT_1_30(m, d) m(2, 30, d) -# define BOOST_PP_REPEAT_1_32(m, d) BOOST_PP_REPEAT_1_31(m, d) m(2, 31, d) -# define BOOST_PP_REPEAT_1_33(m, d) BOOST_PP_REPEAT_1_32(m, d) m(2, 32, d) -# define BOOST_PP_REPEAT_1_34(m, d) BOOST_PP_REPEAT_1_33(m, d) m(2, 33, d) -# define BOOST_PP_REPEAT_1_35(m, d) BOOST_PP_REPEAT_1_34(m, d) m(2, 34, d) -# define BOOST_PP_REPEAT_1_36(m, d) BOOST_PP_REPEAT_1_35(m, d) m(2, 35, d) -# define BOOST_PP_REPEAT_1_37(m, d) BOOST_PP_REPEAT_1_36(m, d) m(2, 36, d) -# define BOOST_PP_REPEAT_1_38(m, d) BOOST_PP_REPEAT_1_37(m, d) m(2, 37, d) -# define BOOST_PP_REPEAT_1_39(m, d) BOOST_PP_REPEAT_1_38(m, d) m(2, 38, d) -# define BOOST_PP_REPEAT_1_40(m, d) BOOST_PP_REPEAT_1_39(m, d) m(2, 39, d) -# define BOOST_PP_REPEAT_1_41(m, d) BOOST_PP_REPEAT_1_40(m, d) m(2, 40, d) -# define BOOST_PP_REPEAT_1_42(m, d) BOOST_PP_REPEAT_1_41(m, d) m(2, 41, d) -# define BOOST_PP_REPEAT_1_43(m, d) BOOST_PP_REPEAT_1_42(m, d) m(2, 42, d) -# define BOOST_PP_REPEAT_1_44(m, d) BOOST_PP_REPEAT_1_43(m, d) m(2, 43, d) -# define BOOST_PP_REPEAT_1_45(m, d) BOOST_PP_REPEAT_1_44(m, d) m(2, 44, d) -# define BOOST_PP_REPEAT_1_46(m, d) BOOST_PP_REPEAT_1_45(m, d) m(2, 45, d) -# define BOOST_PP_REPEAT_1_47(m, d) BOOST_PP_REPEAT_1_46(m, d) m(2, 46, d) -# define BOOST_PP_REPEAT_1_48(m, d) BOOST_PP_REPEAT_1_47(m, d) m(2, 47, d) -# define BOOST_PP_REPEAT_1_49(m, d) BOOST_PP_REPEAT_1_48(m, d) m(2, 48, d) -# define BOOST_PP_REPEAT_1_50(m, d) BOOST_PP_REPEAT_1_49(m, d) m(2, 49, d) -# define BOOST_PP_REPEAT_1_51(m, d) BOOST_PP_REPEAT_1_50(m, d) m(2, 50, d) -# define BOOST_PP_REPEAT_1_52(m, d) BOOST_PP_REPEAT_1_51(m, d) m(2, 51, d) -# define BOOST_PP_REPEAT_1_53(m, d) BOOST_PP_REPEAT_1_52(m, d) m(2, 52, d) -# define BOOST_PP_REPEAT_1_54(m, d) BOOST_PP_REPEAT_1_53(m, d) m(2, 53, d) -# define BOOST_PP_REPEAT_1_55(m, d) BOOST_PP_REPEAT_1_54(m, d) m(2, 54, d) -# define BOOST_PP_REPEAT_1_56(m, d) BOOST_PP_REPEAT_1_55(m, d) m(2, 55, d) -# define BOOST_PP_REPEAT_1_57(m, d) BOOST_PP_REPEAT_1_56(m, d) m(2, 56, d) -# define BOOST_PP_REPEAT_1_58(m, d) BOOST_PP_REPEAT_1_57(m, d) m(2, 57, d) -# define BOOST_PP_REPEAT_1_59(m, d) BOOST_PP_REPEAT_1_58(m, d) m(2, 58, d) -# define BOOST_PP_REPEAT_1_60(m, d) BOOST_PP_REPEAT_1_59(m, d) m(2, 59, d) -# define BOOST_PP_REPEAT_1_61(m, d) BOOST_PP_REPEAT_1_60(m, d) m(2, 60, d) -# define BOOST_PP_REPEAT_1_62(m, d) BOOST_PP_REPEAT_1_61(m, d) m(2, 61, d) -# define BOOST_PP_REPEAT_1_63(m, d) BOOST_PP_REPEAT_1_62(m, d) m(2, 62, d) -# define BOOST_PP_REPEAT_1_64(m, d) BOOST_PP_REPEAT_1_63(m, d) m(2, 63, d) -# define BOOST_PP_REPEAT_1_65(m, d) BOOST_PP_REPEAT_1_64(m, d) m(2, 64, d) -# define BOOST_PP_REPEAT_1_66(m, d) BOOST_PP_REPEAT_1_65(m, d) m(2, 65, d) -# define BOOST_PP_REPEAT_1_67(m, d) BOOST_PP_REPEAT_1_66(m, d) m(2, 66, d) -# define BOOST_PP_REPEAT_1_68(m, d) BOOST_PP_REPEAT_1_67(m, d) m(2, 67, d) -# define BOOST_PP_REPEAT_1_69(m, d) BOOST_PP_REPEAT_1_68(m, d) m(2, 68, d) -# define BOOST_PP_REPEAT_1_70(m, d) BOOST_PP_REPEAT_1_69(m, d) m(2, 69, d) -# define BOOST_PP_REPEAT_1_71(m, d) BOOST_PP_REPEAT_1_70(m, d) m(2, 70, d) -# define BOOST_PP_REPEAT_1_72(m, d) BOOST_PP_REPEAT_1_71(m, d) m(2, 71, d) -# define BOOST_PP_REPEAT_1_73(m, d) BOOST_PP_REPEAT_1_72(m, d) m(2, 72, d) -# define BOOST_PP_REPEAT_1_74(m, d) BOOST_PP_REPEAT_1_73(m, d) m(2, 73, d) -# define BOOST_PP_REPEAT_1_75(m, d) BOOST_PP_REPEAT_1_74(m, d) m(2, 74, d) -# define BOOST_PP_REPEAT_1_76(m, d) BOOST_PP_REPEAT_1_75(m, d) m(2, 75, d) -# define BOOST_PP_REPEAT_1_77(m, d) BOOST_PP_REPEAT_1_76(m, d) m(2, 76, d) -# define BOOST_PP_REPEAT_1_78(m, d) BOOST_PP_REPEAT_1_77(m, d) m(2, 77, d) -# define BOOST_PP_REPEAT_1_79(m, d) BOOST_PP_REPEAT_1_78(m, d) m(2, 78, d) -# define BOOST_PP_REPEAT_1_80(m, d) BOOST_PP_REPEAT_1_79(m, d) m(2, 79, d) -# define BOOST_PP_REPEAT_1_81(m, d) BOOST_PP_REPEAT_1_80(m, d) m(2, 80, d) -# define BOOST_PP_REPEAT_1_82(m, d) BOOST_PP_REPEAT_1_81(m, d) m(2, 81, d) -# define BOOST_PP_REPEAT_1_83(m, d) BOOST_PP_REPEAT_1_82(m, d) m(2, 82, d) -# define BOOST_PP_REPEAT_1_84(m, d) BOOST_PP_REPEAT_1_83(m, d) m(2, 83, d) -# define BOOST_PP_REPEAT_1_85(m, d) BOOST_PP_REPEAT_1_84(m, d) m(2, 84, d) -# define BOOST_PP_REPEAT_1_86(m, d) BOOST_PP_REPEAT_1_85(m, d) m(2, 85, d) -# define BOOST_PP_REPEAT_1_87(m, d) BOOST_PP_REPEAT_1_86(m, d) m(2, 86, d) -# define BOOST_PP_REPEAT_1_88(m, d) BOOST_PP_REPEAT_1_87(m, d) m(2, 87, d) -# define BOOST_PP_REPEAT_1_89(m, d) BOOST_PP_REPEAT_1_88(m, d) m(2, 88, d) -# define BOOST_PP_REPEAT_1_90(m, d) BOOST_PP_REPEAT_1_89(m, d) m(2, 89, d) -# define BOOST_PP_REPEAT_1_91(m, d) BOOST_PP_REPEAT_1_90(m, d) m(2, 90, d) -# define BOOST_PP_REPEAT_1_92(m, d) BOOST_PP_REPEAT_1_91(m, d) m(2, 91, d) -# define BOOST_PP_REPEAT_1_93(m, d) BOOST_PP_REPEAT_1_92(m, d) m(2, 92, d) -# define BOOST_PP_REPEAT_1_94(m, d) BOOST_PP_REPEAT_1_93(m, d) m(2, 93, d) -# define BOOST_PP_REPEAT_1_95(m, d) BOOST_PP_REPEAT_1_94(m, d) m(2, 94, d) -# define BOOST_PP_REPEAT_1_96(m, d) BOOST_PP_REPEAT_1_95(m, d) m(2, 95, d) -# define BOOST_PP_REPEAT_1_97(m, d) BOOST_PP_REPEAT_1_96(m, d) m(2, 96, d) -# define BOOST_PP_REPEAT_1_98(m, d) BOOST_PP_REPEAT_1_97(m, d) m(2, 97, d) -# define BOOST_PP_REPEAT_1_99(m, d) BOOST_PP_REPEAT_1_98(m, d) m(2, 98, d) -# define BOOST_PP_REPEAT_1_100(m, d) BOOST_PP_REPEAT_1_99(m, d) m(2, 99, d) -# define BOOST_PP_REPEAT_1_101(m, d) BOOST_PP_REPEAT_1_100(m, d) m(2, 100, d) -# define BOOST_PP_REPEAT_1_102(m, d) BOOST_PP_REPEAT_1_101(m, d) m(2, 101, d) -# define BOOST_PP_REPEAT_1_103(m, d) BOOST_PP_REPEAT_1_102(m, d) m(2, 102, d) -# define BOOST_PP_REPEAT_1_104(m, d) BOOST_PP_REPEAT_1_103(m, d) m(2, 103, d) -# define BOOST_PP_REPEAT_1_105(m, d) BOOST_PP_REPEAT_1_104(m, d) m(2, 104, d) -# define BOOST_PP_REPEAT_1_106(m, d) BOOST_PP_REPEAT_1_105(m, d) m(2, 105, d) -# define BOOST_PP_REPEAT_1_107(m, d) BOOST_PP_REPEAT_1_106(m, d) m(2, 106, d) -# define BOOST_PP_REPEAT_1_108(m, d) BOOST_PP_REPEAT_1_107(m, d) m(2, 107, d) -# define BOOST_PP_REPEAT_1_109(m, d) BOOST_PP_REPEAT_1_108(m, d) m(2, 108, d) -# define BOOST_PP_REPEAT_1_110(m, d) BOOST_PP_REPEAT_1_109(m, d) m(2, 109, d) -# define BOOST_PP_REPEAT_1_111(m, d) BOOST_PP_REPEAT_1_110(m, d) m(2, 110, d) -# define BOOST_PP_REPEAT_1_112(m, d) BOOST_PP_REPEAT_1_111(m, d) m(2, 111, d) -# define BOOST_PP_REPEAT_1_113(m, d) BOOST_PP_REPEAT_1_112(m, d) m(2, 112, d) -# define BOOST_PP_REPEAT_1_114(m, d) BOOST_PP_REPEAT_1_113(m, d) m(2, 113, d) -# define BOOST_PP_REPEAT_1_115(m, d) BOOST_PP_REPEAT_1_114(m, d) m(2, 114, d) -# define BOOST_PP_REPEAT_1_116(m, d) BOOST_PP_REPEAT_1_115(m, d) m(2, 115, d) -# define BOOST_PP_REPEAT_1_117(m, d) BOOST_PP_REPEAT_1_116(m, d) m(2, 116, d) -# define BOOST_PP_REPEAT_1_118(m, d) BOOST_PP_REPEAT_1_117(m, d) m(2, 117, d) -# define BOOST_PP_REPEAT_1_119(m, d) BOOST_PP_REPEAT_1_118(m, d) m(2, 118, d) -# define BOOST_PP_REPEAT_1_120(m, d) BOOST_PP_REPEAT_1_119(m, d) m(2, 119, d) -# define BOOST_PP_REPEAT_1_121(m, d) BOOST_PP_REPEAT_1_120(m, d) m(2, 120, d) -# define BOOST_PP_REPEAT_1_122(m, d) BOOST_PP_REPEAT_1_121(m, d) m(2, 121, d) -# define BOOST_PP_REPEAT_1_123(m, d) BOOST_PP_REPEAT_1_122(m, d) m(2, 122, d) -# define BOOST_PP_REPEAT_1_124(m, d) BOOST_PP_REPEAT_1_123(m, d) m(2, 123, d) -# define BOOST_PP_REPEAT_1_125(m, d) BOOST_PP_REPEAT_1_124(m, d) m(2, 124, d) -# define BOOST_PP_REPEAT_1_126(m, d) BOOST_PP_REPEAT_1_125(m, d) m(2, 125, d) -# define BOOST_PP_REPEAT_1_127(m, d) BOOST_PP_REPEAT_1_126(m, d) m(2, 126, d) -# define BOOST_PP_REPEAT_1_128(m, d) BOOST_PP_REPEAT_1_127(m, d) m(2, 127, d) -# define BOOST_PP_REPEAT_1_129(m, d) BOOST_PP_REPEAT_1_128(m, d) m(2, 128, d) -# define BOOST_PP_REPEAT_1_130(m, d) BOOST_PP_REPEAT_1_129(m, d) m(2, 129, d) -# define BOOST_PP_REPEAT_1_131(m, d) BOOST_PP_REPEAT_1_130(m, d) m(2, 130, d) -# define BOOST_PP_REPEAT_1_132(m, d) BOOST_PP_REPEAT_1_131(m, d) m(2, 131, d) -# define BOOST_PP_REPEAT_1_133(m, d) BOOST_PP_REPEAT_1_132(m, d) m(2, 132, d) -# define BOOST_PP_REPEAT_1_134(m, d) BOOST_PP_REPEAT_1_133(m, d) m(2, 133, d) -# define BOOST_PP_REPEAT_1_135(m, d) BOOST_PP_REPEAT_1_134(m, d) m(2, 134, d) -# define BOOST_PP_REPEAT_1_136(m, d) BOOST_PP_REPEAT_1_135(m, d) m(2, 135, d) -# define BOOST_PP_REPEAT_1_137(m, d) BOOST_PP_REPEAT_1_136(m, d) m(2, 136, d) -# define BOOST_PP_REPEAT_1_138(m, d) BOOST_PP_REPEAT_1_137(m, d) m(2, 137, d) -# define BOOST_PP_REPEAT_1_139(m, d) BOOST_PP_REPEAT_1_138(m, d) m(2, 138, d) -# define BOOST_PP_REPEAT_1_140(m, d) BOOST_PP_REPEAT_1_139(m, d) m(2, 139, d) -# define BOOST_PP_REPEAT_1_141(m, d) BOOST_PP_REPEAT_1_140(m, d) m(2, 140, d) -# define BOOST_PP_REPEAT_1_142(m, d) BOOST_PP_REPEAT_1_141(m, d) m(2, 141, d) -# define BOOST_PP_REPEAT_1_143(m, d) BOOST_PP_REPEAT_1_142(m, d) m(2, 142, d) -# define BOOST_PP_REPEAT_1_144(m, d) BOOST_PP_REPEAT_1_143(m, d) m(2, 143, d) -# define BOOST_PP_REPEAT_1_145(m, d) BOOST_PP_REPEAT_1_144(m, d) m(2, 144, d) -# define BOOST_PP_REPEAT_1_146(m, d) BOOST_PP_REPEAT_1_145(m, d) m(2, 145, d) -# define BOOST_PP_REPEAT_1_147(m, d) BOOST_PP_REPEAT_1_146(m, d) m(2, 146, d) -# define BOOST_PP_REPEAT_1_148(m, d) BOOST_PP_REPEAT_1_147(m, d) m(2, 147, d) -# define BOOST_PP_REPEAT_1_149(m, d) BOOST_PP_REPEAT_1_148(m, d) m(2, 148, d) -# define BOOST_PP_REPEAT_1_150(m, d) BOOST_PP_REPEAT_1_149(m, d) m(2, 149, d) -# define BOOST_PP_REPEAT_1_151(m, d) BOOST_PP_REPEAT_1_150(m, d) m(2, 150, d) -# define BOOST_PP_REPEAT_1_152(m, d) BOOST_PP_REPEAT_1_151(m, d) m(2, 151, d) -# define BOOST_PP_REPEAT_1_153(m, d) BOOST_PP_REPEAT_1_152(m, d) m(2, 152, d) -# define BOOST_PP_REPEAT_1_154(m, d) BOOST_PP_REPEAT_1_153(m, d) m(2, 153, d) -# define BOOST_PP_REPEAT_1_155(m, d) BOOST_PP_REPEAT_1_154(m, d) m(2, 154, d) -# define BOOST_PP_REPEAT_1_156(m, d) BOOST_PP_REPEAT_1_155(m, d) m(2, 155, d) -# define BOOST_PP_REPEAT_1_157(m, d) BOOST_PP_REPEAT_1_156(m, d) m(2, 156, d) -# define BOOST_PP_REPEAT_1_158(m, d) BOOST_PP_REPEAT_1_157(m, d) m(2, 157, d) -# define BOOST_PP_REPEAT_1_159(m, d) BOOST_PP_REPEAT_1_158(m, d) m(2, 158, d) -# define BOOST_PP_REPEAT_1_160(m, d) BOOST_PP_REPEAT_1_159(m, d) m(2, 159, d) -# define BOOST_PP_REPEAT_1_161(m, d) BOOST_PP_REPEAT_1_160(m, d) m(2, 160, d) -# define BOOST_PP_REPEAT_1_162(m, d) BOOST_PP_REPEAT_1_161(m, d) m(2, 161, d) -# define BOOST_PP_REPEAT_1_163(m, d) BOOST_PP_REPEAT_1_162(m, d) m(2, 162, d) -# define BOOST_PP_REPEAT_1_164(m, d) BOOST_PP_REPEAT_1_163(m, d) m(2, 163, d) -# define BOOST_PP_REPEAT_1_165(m, d) BOOST_PP_REPEAT_1_164(m, d) m(2, 164, d) -# define BOOST_PP_REPEAT_1_166(m, d) BOOST_PP_REPEAT_1_165(m, d) m(2, 165, d) -# define BOOST_PP_REPEAT_1_167(m, d) BOOST_PP_REPEAT_1_166(m, d) m(2, 166, d) -# define BOOST_PP_REPEAT_1_168(m, d) BOOST_PP_REPEAT_1_167(m, d) m(2, 167, d) -# define BOOST_PP_REPEAT_1_169(m, d) BOOST_PP_REPEAT_1_168(m, d) m(2, 168, d) -# define BOOST_PP_REPEAT_1_170(m, d) BOOST_PP_REPEAT_1_169(m, d) m(2, 169, d) -# define BOOST_PP_REPEAT_1_171(m, d) BOOST_PP_REPEAT_1_170(m, d) m(2, 170, d) -# define BOOST_PP_REPEAT_1_172(m, d) BOOST_PP_REPEAT_1_171(m, d) m(2, 171, d) -# define BOOST_PP_REPEAT_1_173(m, d) BOOST_PP_REPEAT_1_172(m, d) m(2, 172, d) -# define BOOST_PP_REPEAT_1_174(m, d) BOOST_PP_REPEAT_1_173(m, d) m(2, 173, d) -# define BOOST_PP_REPEAT_1_175(m, d) BOOST_PP_REPEAT_1_174(m, d) m(2, 174, d) -# define BOOST_PP_REPEAT_1_176(m, d) BOOST_PP_REPEAT_1_175(m, d) m(2, 175, d) -# define BOOST_PP_REPEAT_1_177(m, d) BOOST_PP_REPEAT_1_176(m, d) m(2, 176, d) -# define BOOST_PP_REPEAT_1_178(m, d) BOOST_PP_REPEAT_1_177(m, d) m(2, 177, d) -# define BOOST_PP_REPEAT_1_179(m, d) BOOST_PP_REPEAT_1_178(m, d) m(2, 178, d) -# define BOOST_PP_REPEAT_1_180(m, d) BOOST_PP_REPEAT_1_179(m, d) m(2, 179, d) -# define BOOST_PP_REPEAT_1_181(m, d) BOOST_PP_REPEAT_1_180(m, d) m(2, 180, d) -# define BOOST_PP_REPEAT_1_182(m, d) BOOST_PP_REPEAT_1_181(m, d) m(2, 181, d) -# define BOOST_PP_REPEAT_1_183(m, d) BOOST_PP_REPEAT_1_182(m, d) m(2, 182, d) -# define BOOST_PP_REPEAT_1_184(m, d) BOOST_PP_REPEAT_1_183(m, d) m(2, 183, d) -# define BOOST_PP_REPEAT_1_185(m, d) BOOST_PP_REPEAT_1_184(m, d) m(2, 184, d) -# define BOOST_PP_REPEAT_1_186(m, d) BOOST_PP_REPEAT_1_185(m, d) m(2, 185, d) -# define BOOST_PP_REPEAT_1_187(m, d) BOOST_PP_REPEAT_1_186(m, d) m(2, 186, d) -# define BOOST_PP_REPEAT_1_188(m, d) BOOST_PP_REPEAT_1_187(m, d) m(2, 187, d) -# define BOOST_PP_REPEAT_1_189(m, d) BOOST_PP_REPEAT_1_188(m, d) m(2, 188, d) -# define BOOST_PP_REPEAT_1_190(m, d) BOOST_PP_REPEAT_1_189(m, d) m(2, 189, d) -# define BOOST_PP_REPEAT_1_191(m, d) BOOST_PP_REPEAT_1_190(m, d) m(2, 190, d) -# define BOOST_PP_REPEAT_1_192(m, d) BOOST_PP_REPEAT_1_191(m, d) m(2, 191, d) -# define BOOST_PP_REPEAT_1_193(m, d) BOOST_PP_REPEAT_1_192(m, d) m(2, 192, d) -# define BOOST_PP_REPEAT_1_194(m, d) BOOST_PP_REPEAT_1_193(m, d) m(2, 193, d) -# define BOOST_PP_REPEAT_1_195(m, d) BOOST_PP_REPEAT_1_194(m, d) m(2, 194, d) -# define BOOST_PP_REPEAT_1_196(m, d) BOOST_PP_REPEAT_1_195(m, d) m(2, 195, d) -# define BOOST_PP_REPEAT_1_197(m, d) BOOST_PP_REPEAT_1_196(m, d) m(2, 196, d) -# define BOOST_PP_REPEAT_1_198(m, d) BOOST_PP_REPEAT_1_197(m, d) m(2, 197, d) -# define BOOST_PP_REPEAT_1_199(m, d) BOOST_PP_REPEAT_1_198(m, d) m(2, 198, d) -# define BOOST_PP_REPEAT_1_200(m, d) BOOST_PP_REPEAT_1_199(m, d) m(2, 199, d) -# define BOOST_PP_REPEAT_1_201(m, d) BOOST_PP_REPEAT_1_200(m, d) m(2, 200, d) -# define BOOST_PP_REPEAT_1_202(m, d) BOOST_PP_REPEAT_1_201(m, d) m(2, 201, d) -# define BOOST_PP_REPEAT_1_203(m, d) BOOST_PP_REPEAT_1_202(m, d) m(2, 202, d) -# define BOOST_PP_REPEAT_1_204(m, d) BOOST_PP_REPEAT_1_203(m, d) m(2, 203, d) -# define BOOST_PP_REPEAT_1_205(m, d) BOOST_PP_REPEAT_1_204(m, d) m(2, 204, d) -# define BOOST_PP_REPEAT_1_206(m, d) BOOST_PP_REPEAT_1_205(m, d) m(2, 205, d) -# define BOOST_PP_REPEAT_1_207(m, d) BOOST_PP_REPEAT_1_206(m, d) m(2, 206, d) -# define BOOST_PP_REPEAT_1_208(m, d) BOOST_PP_REPEAT_1_207(m, d) m(2, 207, d) -# define BOOST_PP_REPEAT_1_209(m, d) BOOST_PP_REPEAT_1_208(m, d) m(2, 208, d) -# define BOOST_PP_REPEAT_1_210(m, d) BOOST_PP_REPEAT_1_209(m, d) m(2, 209, d) -# define BOOST_PP_REPEAT_1_211(m, d) BOOST_PP_REPEAT_1_210(m, d) m(2, 210, d) -# define BOOST_PP_REPEAT_1_212(m, d) BOOST_PP_REPEAT_1_211(m, d) m(2, 211, d) -# define BOOST_PP_REPEAT_1_213(m, d) BOOST_PP_REPEAT_1_212(m, d) m(2, 212, d) -# define BOOST_PP_REPEAT_1_214(m, d) BOOST_PP_REPEAT_1_213(m, d) m(2, 213, d) -# define BOOST_PP_REPEAT_1_215(m, d) BOOST_PP_REPEAT_1_214(m, d) m(2, 214, d) -# define BOOST_PP_REPEAT_1_216(m, d) BOOST_PP_REPEAT_1_215(m, d) m(2, 215, d) -# define BOOST_PP_REPEAT_1_217(m, d) BOOST_PP_REPEAT_1_216(m, d) m(2, 216, d) -# define BOOST_PP_REPEAT_1_218(m, d) BOOST_PP_REPEAT_1_217(m, d) m(2, 217, d) -# define BOOST_PP_REPEAT_1_219(m, d) BOOST_PP_REPEAT_1_218(m, d) m(2, 218, d) -# define BOOST_PP_REPEAT_1_220(m, d) BOOST_PP_REPEAT_1_219(m, d) m(2, 219, d) -# define BOOST_PP_REPEAT_1_221(m, d) BOOST_PP_REPEAT_1_220(m, d) m(2, 220, d) -# define BOOST_PP_REPEAT_1_222(m, d) BOOST_PP_REPEAT_1_221(m, d) m(2, 221, d) -# define BOOST_PP_REPEAT_1_223(m, d) BOOST_PP_REPEAT_1_222(m, d) m(2, 222, d) -# define BOOST_PP_REPEAT_1_224(m, d) BOOST_PP_REPEAT_1_223(m, d) m(2, 223, d) -# define BOOST_PP_REPEAT_1_225(m, d) BOOST_PP_REPEAT_1_224(m, d) m(2, 224, d) -# define BOOST_PP_REPEAT_1_226(m, d) BOOST_PP_REPEAT_1_225(m, d) m(2, 225, d) -# define BOOST_PP_REPEAT_1_227(m, d) BOOST_PP_REPEAT_1_226(m, d) m(2, 226, d) -# define BOOST_PP_REPEAT_1_228(m, d) BOOST_PP_REPEAT_1_227(m, d) m(2, 227, d) -# define BOOST_PP_REPEAT_1_229(m, d) BOOST_PP_REPEAT_1_228(m, d) m(2, 228, d) -# define BOOST_PP_REPEAT_1_230(m, d) BOOST_PP_REPEAT_1_229(m, d) m(2, 229, d) -# define BOOST_PP_REPEAT_1_231(m, d) BOOST_PP_REPEAT_1_230(m, d) m(2, 230, d) -# define BOOST_PP_REPEAT_1_232(m, d) BOOST_PP_REPEAT_1_231(m, d) m(2, 231, d) -# define BOOST_PP_REPEAT_1_233(m, d) BOOST_PP_REPEAT_1_232(m, d) m(2, 232, d) -# define BOOST_PP_REPEAT_1_234(m, d) BOOST_PP_REPEAT_1_233(m, d) m(2, 233, d) -# define BOOST_PP_REPEAT_1_235(m, d) BOOST_PP_REPEAT_1_234(m, d) m(2, 234, d) -# define BOOST_PP_REPEAT_1_236(m, d) BOOST_PP_REPEAT_1_235(m, d) m(2, 235, d) -# define BOOST_PP_REPEAT_1_237(m, d) BOOST_PP_REPEAT_1_236(m, d) m(2, 236, d) -# define BOOST_PP_REPEAT_1_238(m, d) BOOST_PP_REPEAT_1_237(m, d) m(2, 237, d) -# define BOOST_PP_REPEAT_1_239(m, d) BOOST_PP_REPEAT_1_238(m, d) m(2, 238, d) -# define BOOST_PP_REPEAT_1_240(m, d) BOOST_PP_REPEAT_1_239(m, d) m(2, 239, d) -# define BOOST_PP_REPEAT_1_241(m, d) BOOST_PP_REPEAT_1_240(m, d) m(2, 240, d) -# define BOOST_PP_REPEAT_1_242(m, d) BOOST_PP_REPEAT_1_241(m, d) m(2, 241, d) -# define BOOST_PP_REPEAT_1_243(m, d) BOOST_PP_REPEAT_1_242(m, d) m(2, 242, d) -# define BOOST_PP_REPEAT_1_244(m, d) BOOST_PP_REPEAT_1_243(m, d) m(2, 243, d) -# define BOOST_PP_REPEAT_1_245(m, d) BOOST_PP_REPEAT_1_244(m, d) m(2, 244, d) -# define BOOST_PP_REPEAT_1_246(m, d) BOOST_PP_REPEAT_1_245(m, d) m(2, 245, d) -# define BOOST_PP_REPEAT_1_247(m, d) BOOST_PP_REPEAT_1_246(m, d) m(2, 246, d) -# define BOOST_PP_REPEAT_1_248(m, d) BOOST_PP_REPEAT_1_247(m, d) m(2, 247, d) -# define BOOST_PP_REPEAT_1_249(m, d) BOOST_PP_REPEAT_1_248(m, d) m(2, 248, d) -# define BOOST_PP_REPEAT_1_250(m, d) BOOST_PP_REPEAT_1_249(m, d) m(2, 249, d) -# define BOOST_PP_REPEAT_1_251(m, d) BOOST_PP_REPEAT_1_250(m, d) m(2, 250, d) -# define BOOST_PP_REPEAT_1_252(m, d) BOOST_PP_REPEAT_1_251(m, d) m(2, 251, d) -# define BOOST_PP_REPEAT_1_253(m, d) BOOST_PP_REPEAT_1_252(m, d) m(2, 252, d) -# define BOOST_PP_REPEAT_1_254(m, d) BOOST_PP_REPEAT_1_253(m, d) m(2, 253, d) -# define BOOST_PP_REPEAT_1_255(m, d) BOOST_PP_REPEAT_1_254(m, d) m(2, 254, d) -# define BOOST_PP_REPEAT_1_256(m, d) BOOST_PP_REPEAT_1_255(m, d) m(2, 255, d) -# -# define BOOST_PP_REPEAT_2_0(m, d) -# define BOOST_PP_REPEAT_2_1(m, d) m(3, 0, d) -# define BOOST_PP_REPEAT_2_2(m, d) BOOST_PP_REPEAT_2_1(m, d) m(3, 1, d) -# define BOOST_PP_REPEAT_2_3(m, d) BOOST_PP_REPEAT_2_2(m, d) m(3, 2, d) -# define BOOST_PP_REPEAT_2_4(m, d) BOOST_PP_REPEAT_2_3(m, d) m(3, 3, d) -# define BOOST_PP_REPEAT_2_5(m, d) BOOST_PP_REPEAT_2_4(m, d) m(3, 4, d) -# define BOOST_PP_REPEAT_2_6(m, d) BOOST_PP_REPEAT_2_5(m, d) m(3, 5, d) -# define BOOST_PP_REPEAT_2_7(m, d) BOOST_PP_REPEAT_2_6(m, d) m(3, 6, d) -# define BOOST_PP_REPEAT_2_8(m, d) BOOST_PP_REPEAT_2_7(m, d) m(3, 7, d) -# define BOOST_PP_REPEAT_2_9(m, d) BOOST_PP_REPEAT_2_8(m, d) m(3, 8, d) -# define BOOST_PP_REPEAT_2_10(m, d) BOOST_PP_REPEAT_2_9(m, d) m(3, 9, d) -# define BOOST_PP_REPEAT_2_11(m, d) BOOST_PP_REPEAT_2_10(m, d) m(3, 10, d) -# define BOOST_PP_REPEAT_2_12(m, d) BOOST_PP_REPEAT_2_11(m, d) m(3, 11, d) -# define BOOST_PP_REPEAT_2_13(m, d) BOOST_PP_REPEAT_2_12(m, d) m(3, 12, d) -# define BOOST_PP_REPEAT_2_14(m, d) BOOST_PP_REPEAT_2_13(m, d) m(3, 13, d) -# define BOOST_PP_REPEAT_2_15(m, d) BOOST_PP_REPEAT_2_14(m, d) m(3, 14, d) -# define BOOST_PP_REPEAT_2_16(m, d) BOOST_PP_REPEAT_2_15(m, d) m(3, 15, d) -# define BOOST_PP_REPEAT_2_17(m, d) BOOST_PP_REPEAT_2_16(m, d) m(3, 16, d) -# define BOOST_PP_REPEAT_2_18(m, d) BOOST_PP_REPEAT_2_17(m, d) m(3, 17, d) -# define BOOST_PP_REPEAT_2_19(m, d) BOOST_PP_REPEAT_2_18(m, d) m(3, 18, d) -# define BOOST_PP_REPEAT_2_20(m, d) BOOST_PP_REPEAT_2_19(m, d) m(3, 19, d) -# define BOOST_PP_REPEAT_2_21(m, d) BOOST_PP_REPEAT_2_20(m, d) m(3, 20, d) -# define BOOST_PP_REPEAT_2_22(m, d) BOOST_PP_REPEAT_2_21(m, d) m(3, 21, d) -# define BOOST_PP_REPEAT_2_23(m, d) BOOST_PP_REPEAT_2_22(m, d) m(3, 22, d) -# define BOOST_PP_REPEAT_2_24(m, d) BOOST_PP_REPEAT_2_23(m, d) m(3, 23, d) -# define BOOST_PP_REPEAT_2_25(m, d) BOOST_PP_REPEAT_2_24(m, d) m(3, 24, d) -# define BOOST_PP_REPEAT_2_26(m, d) BOOST_PP_REPEAT_2_25(m, d) m(3, 25, d) -# define BOOST_PP_REPEAT_2_27(m, d) BOOST_PP_REPEAT_2_26(m, d) m(3, 26, d) -# define BOOST_PP_REPEAT_2_28(m, d) BOOST_PP_REPEAT_2_27(m, d) m(3, 27, d) -# define BOOST_PP_REPEAT_2_29(m, d) BOOST_PP_REPEAT_2_28(m, d) m(3, 28, d) -# define BOOST_PP_REPEAT_2_30(m, d) BOOST_PP_REPEAT_2_29(m, d) m(3, 29, d) -# define BOOST_PP_REPEAT_2_31(m, d) BOOST_PP_REPEAT_2_30(m, d) m(3, 30, d) -# define BOOST_PP_REPEAT_2_32(m, d) BOOST_PP_REPEAT_2_31(m, d) m(3, 31, d) -# define BOOST_PP_REPEAT_2_33(m, d) BOOST_PP_REPEAT_2_32(m, d) m(3, 32, d) -# define BOOST_PP_REPEAT_2_34(m, d) BOOST_PP_REPEAT_2_33(m, d) m(3, 33, d) -# define BOOST_PP_REPEAT_2_35(m, d) BOOST_PP_REPEAT_2_34(m, d) m(3, 34, d) -# define BOOST_PP_REPEAT_2_36(m, d) BOOST_PP_REPEAT_2_35(m, d) m(3, 35, d) -# define BOOST_PP_REPEAT_2_37(m, d) BOOST_PP_REPEAT_2_36(m, d) m(3, 36, d) -# define BOOST_PP_REPEAT_2_38(m, d) BOOST_PP_REPEAT_2_37(m, d) m(3, 37, d) -# define BOOST_PP_REPEAT_2_39(m, d) BOOST_PP_REPEAT_2_38(m, d) m(3, 38, d) -# define BOOST_PP_REPEAT_2_40(m, d) BOOST_PP_REPEAT_2_39(m, d) m(3, 39, d) -# define BOOST_PP_REPEAT_2_41(m, d) BOOST_PP_REPEAT_2_40(m, d) m(3, 40, d) -# define BOOST_PP_REPEAT_2_42(m, d) BOOST_PP_REPEAT_2_41(m, d) m(3, 41, d) -# define BOOST_PP_REPEAT_2_43(m, d) BOOST_PP_REPEAT_2_42(m, d) m(3, 42, d) -# define BOOST_PP_REPEAT_2_44(m, d) BOOST_PP_REPEAT_2_43(m, d) m(3, 43, d) -# define BOOST_PP_REPEAT_2_45(m, d) BOOST_PP_REPEAT_2_44(m, d) m(3, 44, d) -# define BOOST_PP_REPEAT_2_46(m, d) BOOST_PP_REPEAT_2_45(m, d) m(3, 45, d) -# define BOOST_PP_REPEAT_2_47(m, d) BOOST_PP_REPEAT_2_46(m, d) m(3, 46, d) -# define BOOST_PP_REPEAT_2_48(m, d) BOOST_PP_REPEAT_2_47(m, d) m(3, 47, d) -# define BOOST_PP_REPEAT_2_49(m, d) BOOST_PP_REPEAT_2_48(m, d) m(3, 48, d) -# define BOOST_PP_REPEAT_2_50(m, d) BOOST_PP_REPEAT_2_49(m, d) m(3, 49, d) -# define BOOST_PP_REPEAT_2_51(m, d) BOOST_PP_REPEAT_2_50(m, d) m(3, 50, d) -# define BOOST_PP_REPEAT_2_52(m, d) BOOST_PP_REPEAT_2_51(m, d) m(3, 51, d) -# define BOOST_PP_REPEAT_2_53(m, d) BOOST_PP_REPEAT_2_52(m, d) m(3, 52, d) -# define BOOST_PP_REPEAT_2_54(m, d) BOOST_PP_REPEAT_2_53(m, d) m(3, 53, d) -# define BOOST_PP_REPEAT_2_55(m, d) BOOST_PP_REPEAT_2_54(m, d) m(3, 54, d) -# define BOOST_PP_REPEAT_2_56(m, d) BOOST_PP_REPEAT_2_55(m, d) m(3, 55, d) -# define BOOST_PP_REPEAT_2_57(m, d) BOOST_PP_REPEAT_2_56(m, d) m(3, 56, d) -# define BOOST_PP_REPEAT_2_58(m, d) BOOST_PP_REPEAT_2_57(m, d) m(3, 57, d) -# define BOOST_PP_REPEAT_2_59(m, d) BOOST_PP_REPEAT_2_58(m, d) m(3, 58, d) -# define BOOST_PP_REPEAT_2_60(m, d) BOOST_PP_REPEAT_2_59(m, d) m(3, 59, d) -# define BOOST_PP_REPEAT_2_61(m, d) BOOST_PP_REPEAT_2_60(m, d) m(3, 60, d) -# define BOOST_PP_REPEAT_2_62(m, d) BOOST_PP_REPEAT_2_61(m, d) m(3, 61, d) -# define BOOST_PP_REPEAT_2_63(m, d) BOOST_PP_REPEAT_2_62(m, d) m(3, 62, d) -# define BOOST_PP_REPEAT_2_64(m, d) BOOST_PP_REPEAT_2_63(m, d) m(3, 63, d) -# define BOOST_PP_REPEAT_2_65(m, d) BOOST_PP_REPEAT_2_64(m, d) m(3, 64, d) -# define BOOST_PP_REPEAT_2_66(m, d) BOOST_PP_REPEAT_2_65(m, d) m(3, 65, d) -# define BOOST_PP_REPEAT_2_67(m, d) BOOST_PP_REPEAT_2_66(m, d) m(3, 66, d) -# define BOOST_PP_REPEAT_2_68(m, d) BOOST_PP_REPEAT_2_67(m, d) m(3, 67, d) -# define BOOST_PP_REPEAT_2_69(m, d) BOOST_PP_REPEAT_2_68(m, d) m(3, 68, d) -# define BOOST_PP_REPEAT_2_70(m, d) BOOST_PP_REPEAT_2_69(m, d) m(3, 69, d) -# define BOOST_PP_REPEAT_2_71(m, d) BOOST_PP_REPEAT_2_70(m, d) m(3, 70, d) -# define BOOST_PP_REPEAT_2_72(m, d) BOOST_PP_REPEAT_2_71(m, d) m(3, 71, d) -# define BOOST_PP_REPEAT_2_73(m, d) BOOST_PP_REPEAT_2_72(m, d) m(3, 72, d) -# define BOOST_PP_REPEAT_2_74(m, d) BOOST_PP_REPEAT_2_73(m, d) m(3, 73, d) -# define BOOST_PP_REPEAT_2_75(m, d) BOOST_PP_REPEAT_2_74(m, d) m(3, 74, d) -# define BOOST_PP_REPEAT_2_76(m, d) BOOST_PP_REPEAT_2_75(m, d) m(3, 75, d) -# define BOOST_PP_REPEAT_2_77(m, d) BOOST_PP_REPEAT_2_76(m, d) m(3, 76, d) -# define BOOST_PP_REPEAT_2_78(m, d) BOOST_PP_REPEAT_2_77(m, d) m(3, 77, d) -# define BOOST_PP_REPEAT_2_79(m, d) BOOST_PP_REPEAT_2_78(m, d) m(3, 78, d) -# define BOOST_PP_REPEAT_2_80(m, d) BOOST_PP_REPEAT_2_79(m, d) m(3, 79, d) -# define BOOST_PP_REPEAT_2_81(m, d) BOOST_PP_REPEAT_2_80(m, d) m(3, 80, d) -# define BOOST_PP_REPEAT_2_82(m, d) BOOST_PP_REPEAT_2_81(m, d) m(3, 81, d) -# define BOOST_PP_REPEAT_2_83(m, d) BOOST_PP_REPEAT_2_82(m, d) m(3, 82, d) -# define BOOST_PP_REPEAT_2_84(m, d) BOOST_PP_REPEAT_2_83(m, d) m(3, 83, d) -# define BOOST_PP_REPEAT_2_85(m, d) BOOST_PP_REPEAT_2_84(m, d) m(3, 84, d) -# define BOOST_PP_REPEAT_2_86(m, d) BOOST_PP_REPEAT_2_85(m, d) m(3, 85, d) -# define BOOST_PP_REPEAT_2_87(m, d) BOOST_PP_REPEAT_2_86(m, d) m(3, 86, d) -# define BOOST_PP_REPEAT_2_88(m, d) BOOST_PP_REPEAT_2_87(m, d) m(3, 87, d) -# define BOOST_PP_REPEAT_2_89(m, d) BOOST_PP_REPEAT_2_88(m, d) m(3, 88, d) -# define BOOST_PP_REPEAT_2_90(m, d) BOOST_PP_REPEAT_2_89(m, d) m(3, 89, d) -# define BOOST_PP_REPEAT_2_91(m, d) BOOST_PP_REPEAT_2_90(m, d) m(3, 90, d) -# define BOOST_PP_REPEAT_2_92(m, d) BOOST_PP_REPEAT_2_91(m, d) m(3, 91, d) -# define BOOST_PP_REPEAT_2_93(m, d) BOOST_PP_REPEAT_2_92(m, d) m(3, 92, d) -# define BOOST_PP_REPEAT_2_94(m, d) BOOST_PP_REPEAT_2_93(m, d) m(3, 93, d) -# define BOOST_PP_REPEAT_2_95(m, d) BOOST_PP_REPEAT_2_94(m, d) m(3, 94, d) -# define BOOST_PP_REPEAT_2_96(m, d) BOOST_PP_REPEAT_2_95(m, d) m(3, 95, d) -# define BOOST_PP_REPEAT_2_97(m, d) BOOST_PP_REPEAT_2_96(m, d) m(3, 96, d) -# define BOOST_PP_REPEAT_2_98(m, d) BOOST_PP_REPEAT_2_97(m, d) m(3, 97, d) -# define BOOST_PP_REPEAT_2_99(m, d) BOOST_PP_REPEAT_2_98(m, d) m(3, 98, d) -# define BOOST_PP_REPEAT_2_100(m, d) BOOST_PP_REPEAT_2_99(m, d) m(3, 99, d) -# define BOOST_PP_REPEAT_2_101(m, d) BOOST_PP_REPEAT_2_100(m, d) m(3, 100, d) -# define BOOST_PP_REPEAT_2_102(m, d) BOOST_PP_REPEAT_2_101(m, d) m(3, 101, d) -# define BOOST_PP_REPEAT_2_103(m, d) BOOST_PP_REPEAT_2_102(m, d) m(3, 102, d) -# define BOOST_PP_REPEAT_2_104(m, d) BOOST_PP_REPEAT_2_103(m, d) m(3, 103, d) -# define BOOST_PP_REPEAT_2_105(m, d) BOOST_PP_REPEAT_2_104(m, d) m(3, 104, d) -# define BOOST_PP_REPEAT_2_106(m, d) BOOST_PP_REPEAT_2_105(m, d) m(3, 105, d) -# define BOOST_PP_REPEAT_2_107(m, d) BOOST_PP_REPEAT_2_106(m, d) m(3, 106, d) -# define BOOST_PP_REPEAT_2_108(m, d) BOOST_PP_REPEAT_2_107(m, d) m(3, 107, d) -# define BOOST_PP_REPEAT_2_109(m, d) BOOST_PP_REPEAT_2_108(m, d) m(3, 108, d) -# define BOOST_PP_REPEAT_2_110(m, d) BOOST_PP_REPEAT_2_109(m, d) m(3, 109, d) -# define BOOST_PP_REPEAT_2_111(m, d) BOOST_PP_REPEAT_2_110(m, d) m(3, 110, d) -# define BOOST_PP_REPEAT_2_112(m, d) BOOST_PP_REPEAT_2_111(m, d) m(3, 111, d) -# define BOOST_PP_REPEAT_2_113(m, d) BOOST_PP_REPEAT_2_112(m, d) m(3, 112, d) -# define BOOST_PP_REPEAT_2_114(m, d) BOOST_PP_REPEAT_2_113(m, d) m(3, 113, d) -# define BOOST_PP_REPEAT_2_115(m, d) BOOST_PP_REPEAT_2_114(m, d) m(3, 114, d) -# define BOOST_PP_REPEAT_2_116(m, d) BOOST_PP_REPEAT_2_115(m, d) m(3, 115, d) -# define BOOST_PP_REPEAT_2_117(m, d) BOOST_PP_REPEAT_2_116(m, d) m(3, 116, d) -# define BOOST_PP_REPEAT_2_118(m, d) BOOST_PP_REPEAT_2_117(m, d) m(3, 117, d) -# define BOOST_PP_REPEAT_2_119(m, d) BOOST_PP_REPEAT_2_118(m, d) m(3, 118, d) -# define BOOST_PP_REPEAT_2_120(m, d) BOOST_PP_REPEAT_2_119(m, d) m(3, 119, d) -# define BOOST_PP_REPEAT_2_121(m, d) BOOST_PP_REPEAT_2_120(m, d) m(3, 120, d) -# define BOOST_PP_REPEAT_2_122(m, d) BOOST_PP_REPEAT_2_121(m, d) m(3, 121, d) -# define BOOST_PP_REPEAT_2_123(m, d) BOOST_PP_REPEAT_2_122(m, d) m(3, 122, d) -# define BOOST_PP_REPEAT_2_124(m, d) BOOST_PP_REPEAT_2_123(m, d) m(3, 123, d) -# define BOOST_PP_REPEAT_2_125(m, d) BOOST_PP_REPEAT_2_124(m, d) m(3, 124, d) -# define BOOST_PP_REPEAT_2_126(m, d) BOOST_PP_REPEAT_2_125(m, d) m(3, 125, d) -# define BOOST_PP_REPEAT_2_127(m, d) BOOST_PP_REPEAT_2_126(m, d) m(3, 126, d) -# define BOOST_PP_REPEAT_2_128(m, d) BOOST_PP_REPEAT_2_127(m, d) m(3, 127, d) -# define BOOST_PP_REPEAT_2_129(m, d) BOOST_PP_REPEAT_2_128(m, d) m(3, 128, d) -# define BOOST_PP_REPEAT_2_130(m, d) BOOST_PP_REPEAT_2_129(m, d) m(3, 129, d) -# define BOOST_PP_REPEAT_2_131(m, d) BOOST_PP_REPEAT_2_130(m, d) m(3, 130, d) -# define BOOST_PP_REPEAT_2_132(m, d) BOOST_PP_REPEAT_2_131(m, d) m(3, 131, d) -# define BOOST_PP_REPEAT_2_133(m, d) BOOST_PP_REPEAT_2_132(m, d) m(3, 132, d) -# define BOOST_PP_REPEAT_2_134(m, d) BOOST_PP_REPEAT_2_133(m, d) m(3, 133, d) -# define BOOST_PP_REPEAT_2_135(m, d) BOOST_PP_REPEAT_2_134(m, d) m(3, 134, d) -# define BOOST_PP_REPEAT_2_136(m, d) BOOST_PP_REPEAT_2_135(m, d) m(3, 135, d) -# define BOOST_PP_REPEAT_2_137(m, d) BOOST_PP_REPEAT_2_136(m, d) m(3, 136, d) -# define BOOST_PP_REPEAT_2_138(m, d) BOOST_PP_REPEAT_2_137(m, d) m(3, 137, d) -# define BOOST_PP_REPEAT_2_139(m, d) BOOST_PP_REPEAT_2_138(m, d) m(3, 138, d) -# define BOOST_PP_REPEAT_2_140(m, d) BOOST_PP_REPEAT_2_139(m, d) m(3, 139, d) -# define BOOST_PP_REPEAT_2_141(m, d) BOOST_PP_REPEAT_2_140(m, d) m(3, 140, d) -# define BOOST_PP_REPEAT_2_142(m, d) BOOST_PP_REPEAT_2_141(m, d) m(3, 141, d) -# define BOOST_PP_REPEAT_2_143(m, d) BOOST_PP_REPEAT_2_142(m, d) m(3, 142, d) -# define BOOST_PP_REPEAT_2_144(m, d) BOOST_PP_REPEAT_2_143(m, d) m(3, 143, d) -# define BOOST_PP_REPEAT_2_145(m, d) BOOST_PP_REPEAT_2_144(m, d) m(3, 144, d) -# define BOOST_PP_REPEAT_2_146(m, d) BOOST_PP_REPEAT_2_145(m, d) m(3, 145, d) -# define BOOST_PP_REPEAT_2_147(m, d) BOOST_PP_REPEAT_2_146(m, d) m(3, 146, d) -# define BOOST_PP_REPEAT_2_148(m, d) BOOST_PP_REPEAT_2_147(m, d) m(3, 147, d) -# define BOOST_PP_REPEAT_2_149(m, d) BOOST_PP_REPEAT_2_148(m, d) m(3, 148, d) -# define BOOST_PP_REPEAT_2_150(m, d) BOOST_PP_REPEAT_2_149(m, d) m(3, 149, d) -# define BOOST_PP_REPEAT_2_151(m, d) BOOST_PP_REPEAT_2_150(m, d) m(3, 150, d) -# define BOOST_PP_REPEAT_2_152(m, d) BOOST_PP_REPEAT_2_151(m, d) m(3, 151, d) -# define BOOST_PP_REPEAT_2_153(m, d) BOOST_PP_REPEAT_2_152(m, d) m(3, 152, d) -# define BOOST_PP_REPEAT_2_154(m, d) BOOST_PP_REPEAT_2_153(m, d) m(3, 153, d) -# define BOOST_PP_REPEAT_2_155(m, d) BOOST_PP_REPEAT_2_154(m, d) m(3, 154, d) -# define BOOST_PP_REPEAT_2_156(m, d) BOOST_PP_REPEAT_2_155(m, d) m(3, 155, d) -# define BOOST_PP_REPEAT_2_157(m, d) BOOST_PP_REPEAT_2_156(m, d) m(3, 156, d) -# define BOOST_PP_REPEAT_2_158(m, d) BOOST_PP_REPEAT_2_157(m, d) m(3, 157, d) -# define BOOST_PP_REPEAT_2_159(m, d) BOOST_PP_REPEAT_2_158(m, d) m(3, 158, d) -# define BOOST_PP_REPEAT_2_160(m, d) BOOST_PP_REPEAT_2_159(m, d) m(3, 159, d) -# define BOOST_PP_REPEAT_2_161(m, d) BOOST_PP_REPEAT_2_160(m, d) m(3, 160, d) -# define BOOST_PP_REPEAT_2_162(m, d) BOOST_PP_REPEAT_2_161(m, d) m(3, 161, d) -# define BOOST_PP_REPEAT_2_163(m, d) BOOST_PP_REPEAT_2_162(m, d) m(3, 162, d) -# define BOOST_PP_REPEAT_2_164(m, d) BOOST_PP_REPEAT_2_163(m, d) m(3, 163, d) -# define BOOST_PP_REPEAT_2_165(m, d) BOOST_PP_REPEAT_2_164(m, d) m(3, 164, d) -# define BOOST_PP_REPEAT_2_166(m, d) BOOST_PP_REPEAT_2_165(m, d) m(3, 165, d) -# define BOOST_PP_REPEAT_2_167(m, d) BOOST_PP_REPEAT_2_166(m, d) m(3, 166, d) -# define BOOST_PP_REPEAT_2_168(m, d) BOOST_PP_REPEAT_2_167(m, d) m(3, 167, d) -# define BOOST_PP_REPEAT_2_169(m, d) BOOST_PP_REPEAT_2_168(m, d) m(3, 168, d) -# define BOOST_PP_REPEAT_2_170(m, d) BOOST_PP_REPEAT_2_169(m, d) m(3, 169, d) -# define BOOST_PP_REPEAT_2_171(m, d) BOOST_PP_REPEAT_2_170(m, d) m(3, 170, d) -# define BOOST_PP_REPEAT_2_172(m, d) BOOST_PP_REPEAT_2_171(m, d) m(3, 171, d) -# define BOOST_PP_REPEAT_2_173(m, d) BOOST_PP_REPEAT_2_172(m, d) m(3, 172, d) -# define BOOST_PP_REPEAT_2_174(m, d) BOOST_PP_REPEAT_2_173(m, d) m(3, 173, d) -# define BOOST_PP_REPEAT_2_175(m, d) BOOST_PP_REPEAT_2_174(m, d) m(3, 174, d) -# define BOOST_PP_REPEAT_2_176(m, d) BOOST_PP_REPEAT_2_175(m, d) m(3, 175, d) -# define BOOST_PP_REPEAT_2_177(m, d) BOOST_PP_REPEAT_2_176(m, d) m(3, 176, d) -# define BOOST_PP_REPEAT_2_178(m, d) BOOST_PP_REPEAT_2_177(m, d) m(3, 177, d) -# define BOOST_PP_REPEAT_2_179(m, d) BOOST_PP_REPEAT_2_178(m, d) m(3, 178, d) -# define BOOST_PP_REPEAT_2_180(m, d) BOOST_PP_REPEAT_2_179(m, d) m(3, 179, d) -# define BOOST_PP_REPEAT_2_181(m, d) BOOST_PP_REPEAT_2_180(m, d) m(3, 180, d) -# define BOOST_PP_REPEAT_2_182(m, d) BOOST_PP_REPEAT_2_181(m, d) m(3, 181, d) -# define BOOST_PP_REPEAT_2_183(m, d) BOOST_PP_REPEAT_2_182(m, d) m(3, 182, d) -# define BOOST_PP_REPEAT_2_184(m, d) BOOST_PP_REPEAT_2_183(m, d) m(3, 183, d) -# define BOOST_PP_REPEAT_2_185(m, d) BOOST_PP_REPEAT_2_184(m, d) m(3, 184, d) -# define BOOST_PP_REPEAT_2_186(m, d) BOOST_PP_REPEAT_2_185(m, d) m(3, 185, d) -# define BOOST_PP_REPEAT_2_187(m, d) BOOST_PP_REPEAT_2_186(m, d) m(3, 186, d) -# define BOOST_PP_REPEAT_2_188(m, d) BOOST_PP_REPEAT_2_187(m, d) m(3, 187, d) -# define BOOST_PP_REPEAT_2_189(m, d) BOOST_PP_REPEAT_2_188(m, d) m(3, 188, d) -# define BOOST_PP_REPEAT_2_190(m, d) BOOST_PP_REPEAT_2_189(m, d) m(3, 189, d) -# define BOOST_PP_REPEAT_2_191(m, d) BOOST_PP_REPEAT_2_190(m, d) m(3, 190, d) -# define BOOST_PP_REPEAT_2_192(m, d) BOOST_PP_REPEAT_2_191(m, d) m(3, 191, d) -# define BOOST_PP_REPEAT_2_193(m, d) BOOST_PP_REPEAT_2_192(m, d) m(3, 192, d) -# define BOOST_PP_REPEAT_2_194(m, d) BOOST_PP_REPEAT_2_193(m, d) m(3, 193, d) -# define BOOST_PP_REPEAT_2_195(m, d) BOOST_PP_REPEAT_2_194(m, d) m(3, 194, d) -# define BOOST_PP_REPEAT_2_196(m, d) BOOST_PP_REPEAT_2_195(m, d) m(3, 195, d) -# define BOOST_PP_REPEAT_2_197(m, d) BOOST_PP_REPEAT_2_196(m, d) m(3, 196, d) -# define BOOST_PP_REPEAT_2_198(m, d) BOOST_PP_REPEAT_2_197(m, d) m(3, 197, d) -# define BOOST_PP_REPEAT_2_199(m, d) BOOST_PP_REPEAT_2_198(m, d) m(3, 198, d) -# define BOOST_PP_REPEAT_2_200(m, d) BOOST_PP_REPEAT_2_199(m, d) m(3, 199, d) -# define BOOST_PP_REPEAT_2_201(m, d) BOOST_PP_REPEAT_2_200(m, d) m(3, 200, d) -# define BOOST_PP_REPEAT_2_202(m, d) BOOST_PP_REPEAT_2_201(m, d) m(3, 201, d) -# define BOOST_PP_REPEAT_2_203(m, d) BOOST_PP_REPEAT_2_202(m, d) m(3, 202, d) -# define BOOST_PP_REPEAT_2_204(m, d) BOOST_PP_REPEAT_2_203(m, d) m(3, 203, d) -# define BOOST_PP_REPEAT_2_205(m, d) BOOST_PP_REPEAT_2_204(m, d) m(3, 204, d) -# define BOOST_PP_REPEAT_2_206(m, d) BOOST_PP_REPEAT_2_205(m, d) m(3, 205, d) -# define BOOST_PP_REPEAT_2_207(m, d) BOOST_PP_REPEAT_2_206(m, d) m(3, 206, d) -# define BOOST_PP_REPEAT_2_208(m, d) BOOST_PP_REPEAT_2_207(m, d) m(3, 207, d) -# define BOOST_PP_REPEAT_2_209(m, d) BOOST_PP_REPEAT_2_208(m, d) m(3, 208, d) -# define BOOST_PP_REPEAT_2_210(m, d) BOOST_PP_REPEAT_2_209(m, d) m(3, 209, d) -# define BOOST_PP_REPEAT_2_211(m, d) BOOST_PP_REPEAT_2_210(m, d) m(3, 210, d) -# define BOOST_PP_REPEAT_2_212(m, d) BOOST_PP_REPEAT_2_211(m, d) m(3, 211, d) -# define BOOST_PP_REPEAT_2_213(m, d) BOOST_PP_REPEAT_2_212(m, d) m(3, 212, d) -# define BOOST_PP_REPEAT_2_214(m, d) BOOST_PP_REPEAT_2_213(m, d) m(3, 213, d) -# define BOOST_PP_REPEAT_2_215(m, d) BOOST_PP_REPEAT_2_214(m, d) m(3, 214, d) -# define BOOST_PP_REPEAT_2_216(m, d) BOOST_PP_REPEAT_2_215(m, d) m(3, 215, d) -# define BOOST_PP_REPEAT_2_217(m, d) BOOST_PP_REPEAT_2_216(m, d) m(3, 216, d) -# define BOOST_PP_REPEAT_2_218(m, d) BOOST_PP_REPEAT_2_217(m, d) m(3, 217, d) -# define BOOST_PP_REPEAT_2_219(m, d) BOOST_PP_REPEAT_2_218(m, d) m(3, 218, d) -# define BOOST_PP_REPEAT_2_220(m, d) BOOST_PP_REPEAT_2_219(m, d) m(3, 219, d) -# define BOOST_PP_REPEAT_2_221(m, d) BOOST_PP_REPEAT_2_220(m, d) m(3, 220, d) -# define BOOST_PP_REPEAT_2_222(m, d) BOOST_PP_REPEAT_2_221(m, d) m(3, 221, d) -# define BOOST_PP_REPEAT_2_223(m, d) BOOST_PP_REPEAT_2_222(m, d) m(3, 222, d) -# define BOOST_PP_REPEAT_2_224(m, d) BOOST_PP_REPEAT_2_223(m, d) m(3, 223, d) -# define BOOST_PP_REPEAT_2_225(m, d) BOOST_PP_REPEAT_2_224(m, d) m(3, 224, d) -# define BOOST_PP_REPEAT_2_226(m, d) BOOST_PP_REPEAT_2_225(m, d) m(3, 225, d) -# define BOOST_PP_REPEAT_2_227(m, d) BOOST_PP_REPEAT_2_226(m, d) m(3, 226, d) -# define BOOST_PP_REPEAT_2_228(m, d) BOOST_PP_REPEAT_2_227(m, d) m(3, 227, d) -# define BOOST_PP_REPEAT_2_229(m, d) BOOST_PP_REPEAT_2_228(m, d) m(3, 228, d) -# define BOOST_PP_REPEAT_2_230(m, d) BOOST_PP_REPEAT_2_229(m, d) m(3, 229, d) -# define BOOST_PP_REPEAT_2_231(m, d) BOOST_PP_REPEAT_2_230(m, d) m(3, 230, d) -# define BOOST_PP_REPEAT_2_232(m, d) BOOST_PP_REPEAT_2_231(m, d) m(3, 231, d) -# define BOOST_PP_REPEAT_2_233(m, d) BOOST_PP_REPEAT_2_232(m, d) m(3, 232, d) -# define BOOST_PP_REPEAT_2_234(m, d) BOOST_PP_REPEAT_2_233(m, d) m(3, 233, d) -# define BOOST_PP_REPEAT_2_235(m, d) BOOST_PP_REPEAT_2_234(m, d) m(3, 234, d) -# define BOOST_PP_REPEAT_2_236(m, d) BOOST_PP_REPEAT_2_235(m, d) m(3, 235, d) -# define BOOST_PP_REPEAT_2_237(m, d) BOOST_PP_REPEAT_2_236(m, d) m(3, 236, d) -# define BOOST_PP_REPEAT_2_238(m, d) BOOST_PP_REPEAT_2_237(m, d) m(3, 237, d) -# define BOOST_PP_REPEAT_2_239(m, d) BOOST_PP_REPEAT_2_238(m, d) m(3, 238, d) -# define BOOST_PP_REPEAT_2_240(m, d) BOOST_PP_REPEAT_2_239(m, d) m(3, 239, d) -# define BOOST_PP_REPEAT_2_241(m, d) BOOST_PP_REPEAT_2_240(m, d) m(3, 240, d) -# define BOOST_PP_REPEAT_2_242(m, d) BOOST_PP_REPEAT_2_241(m, d) m(3, 241, d) -# define BOOST_PP_REPEAT_2_243(m, d) BOOST_PP_REPEAT_2_242(m, d) m(3, 242, d) -# define BOOST_PP_REPEAT_2_244(m, d) BOOST_PP_REPEAT_2_243(m, d) m(3, 243, d) -# define BOOST_PP_REPEAT_2_245(m, d) BOOST_PP_REPEAT_2_244(m, d) m(3, 244, d) -# define BOOST_PP_REPEAT_2_246(m, d) BOOST_PP_REPEAT_2_245(m, d) m(3, 245, d) -# define BOOST_PP_REPEAT_2_247(m, d) BOOST_PP_REPEAT_2_246(m, d) m(3, 246, d) -# define BOOST_PP_REPEAT_2_248(m, d) BOOST_PP_REPEAT_2_247(m, d) m(3, 247, d) -# define BOOST_PP_REPEAT_2_249(m, d) BOOST_PP_REPEAT_2_248(m, d) m(3, 248, d) -# define BOOST_PP_REPEAT_2_250(m, d) BOOST_PP_REPEAT_2_249(m, d) m(3, 249, d) -# define BOOST_PP_REPEAT_2_251(m, d) BOOST_PP_REPEAT_2_250(m, d) m(3, 250, d) -# define BOOST_PP_REPEAT_2_252(m, d) BOOST_PP_REPEAT_2_251(m, d) m(3, 251, d) -# define BOOST_PP_REPEAT_2_253(m, d) BOOST_PP_REPEAT_2_252(m, d) m(3, 252, d) -# define BOOST_PP_REPEAT_2_254(m, d) BOOST_PP_REPEAT_2_253(m, d) m(3, 253, d) -# define BOOST_PP_REPEAT_2_255(m, d) BOOST_PP_REPEAT_2_254(m, d) m(3, 254, d) -# define BOOST_PP_REPEAT_2_256(m, d) BOOST_PP_REPEAT_2_255(m, d) m(3, 255, d) -# -# define BOOST_PP_REPEAT_3_0(m, d) -# define BOOST_PP_REPEAT_3_1(m, d) m(4, 0, d) -# define BOOST_PP_REPEAT_3_2(m, d) BOOST_PP_REPEAT_3_1(m, d) m(4, 1, d) -# define BOOST_PP_REPEAT_3_3(m, d) BOOST_PP_REPEAT_3_2(m, d) m(4, 2, d) -# define BOOST_PP_REPEAT_3_4(m, d) BOOST_PP_REPEAT_3_3(m, d) m(4, 3, d) -# define BOOST_PP_REPEAT_3_5(m, d) BOOST_PP_REPEAT_3_4(m, d) m(4, 4, d) -# define BOOST_PP_REPEAT_3_6(m, d) BOOST_PP_REPEAT_3_5(m, d) m(4, 5, d) -# define BOOST_PP_REPEAT_3_7(m, d) BOOST_PP_REPEAT_3_6(m, d) m(4, 6, d) -# define BOOST_PP_REPEAT_3_8(m, d) BOOST_PP_REPEAT_3_7(m, d) m(4, 7, d) -# define BOOST_PP_REPEAT_3_9(m, d) BOOST_PP_REPEAT_3_8(m, d) m(4, 8, d) -# define BOOST_PP_REPEAT_3_10(m, d) BOOST_PP_REPEAT_3_9(m, d) m(4, 9, d) -# define BOOST_PP_REPEAT_3_11(m, d) BOOST_PP_REPEAT_3_10(m, d) m(4, 10, d) -# define BOOST_PP_REPEAT_3_12(m, d) BOOST_PP_REPEAT_3_11(m, d) m(4, 11, d) -# define BOOST_PP_REPEAT_3_13(m, d) BOOST_PP_REPEAT_3_12(m, d) m(4, 12, d) -# define BOOST_PP_REPEAT_3_14(m, d) BOOST_PP_REPEAT_3_13(m, d) m(4, 13, d) -# define BOOST_PP_REPEAT_3_15(m, d) BOOST_PP_REPEAT_3_14(m, d) m(4, 14, d) -# define BOOST_PP_REPEAT_3_16(m, d) BOOST_PP_REPEAT_3_15(m, d) m(4, 15, d) -# define BOOST_PP_REPEAT_3_17(m, d) BOOST_PP_REPEAT_3_16(m, d) m(4, 16, d) -# define BOOST_PP_REPEAT_3_18(m, d) BOOST_PP_REPEAT_3_17(m, d) m(4, 17, d) -# define BOOST_PP_REPEAT_3_19(m, d) BOOST_PP_REPEAT_3_18(m, d) m(4, 18, d) -# define BOOST_PP_REPEAT_3_20(m, d) BOOST_PP_REPEAT_3_19(m, d) m(4, 19, d) -# define BOOST_PP_REPEAT_3_21(m, d) BOOST_PP_REPEAT_3_20(m, d) m(4, 20, d) -# define BOOST_PP_REPEAT_3_22(m, d) BOOST_PP_REPEAT_3_21(m, d) m(4, 21, d) -# define BOOST_PP_REPEAT_3_23(m, d) BOOST_PP_REPEAT_3_22(m, d) m(4, 22, d) -# define BOOST_PP_REPEAT_3_24(m, d) BOOST_PP_REPEAT_3_23(m, d) m(4, 23, d) -# define BOOST_PP_REPEAT_3_25(m, d) BOOST_PP_REPEAT_3_24(m, d) m(4, 24, d) -# define BOOST_PP_REPEAT_3_26(m, d) BOOST_PP_REPEAT_3_25(m, d) m(4, 25, d) -# define BOOST_PP_REPEAT_3_27(m, d) BOOST_PP_REPEAT_3_26(m, d) m(4, 26, d) -# define BOOST_PP_REPEAT_3_28(m, d) BOOST_PP_REPEAT_3_27(m, d) m(4, 27, d) -# define BOOST_PP_REPEAT_3_29(m, d) BOOST_PP_REPEAT_3_28(m, d) m(4, 28, d) -# define BOOST_PP_REPEAT_3_30(m, d) BOOST_PP_REPEAT_3_29(m, d) m(4, 29, d) -# define BOOST_PP_REPEAT_3_31(m, d) BOOST_PP_REPEAT_3_30(m, d) m(4, 30, d) -# define BOOST_PP_REPEAT_3_32(m, d) BOOST_PP_REPEAT_3_31(m, d) m(4, 31, d) -# define BOOST_PP_REPEAT_3_33(m, d) BOOST_PP_REPEAT_3_32(m, d) m(4, 32, d) -# define BOOST_PP_REPEAT_3_34(m, d) BOOST_PP_REPEAT_3_33(m, d) m(4, 33, d) -# define BOOST_PP_REPEAT_3_35(m, d) BOOST_PP_REPEAT_3_34(m, d) m(4, 34, d) -# define BOOST_PP_REPEAT_3_36(m, d) BOOST_PP_REPEAT_3_35(m, d) m(4, 35, d) -# define BOOST_PP_REPEAT_3_37(m, d) BOOST_PP_REPEAT_3_36(m, d) m(4, 36, d) -# define BOOST_PP_REPEAT_3_38(m, d) BOOST_PP_REPEAT_3_37(m, d) m(4, 37, d) -# define BOOST_PP_REPEAT_3_39(m, d) BOOST_PP_REPEAT_3_38(m, d) m(4, 38, d) -# define BOOST_PP_REPEAT_3_40(m, d) BOOST_PP_REPEAT_3_39(m, d) m(4, 39, d) -# define BOOST_PP_REPEAT_3_41(m, d) BOOST_PP_REPEAT_3_40(m, d) m(4, 40, d) -# define BOOST_PP_REPEAT_3_42(m, d) BOOST_PP_REPEAT_3_41(m, d) m(4, 41, d) -# define BOOST_PP_REPEAT_3_43(m, d) BOOST_PP_REPEAT_3_42(m, d) m(4, 42, d) -# define BOOST_PP_REPEAT_3_44(m, d) BOOST_PP_REPEAT_3_43(m, d) m(4, 43, d) -# define BOOST_PP_REPEAT_3_45(m, d) BOOST_PP_REPEAT_3_44(m, d) m(4, 44, d) -# define BOOST_PP_REPEAT_3_46(m, d) BOOST_PP_REPEAT_3_45(m, d) m(4, 45, d) -# define BOOST_PP_REPEAT_3_47(m, d) BOOST_PP_REPEAT_3_46(m, d) m(4, 46, d) -# define BOOST_PP_REPEAT_3_48(m, d) BOOST_PP_REPEAT_3_47(m, d) m(4, 47, d) -# define BOOST_PP_REPEAT_3_49(m, d) BOOST_PP_REPEAT_3_48(m, d) m(4, 48, d) -# define BOOST_PP_REPEAT_3_50(m, d) BOOST_PP_REPEAT_3_49(m, d) m(4, 49, d) -# define BOOST_PP_REPEAT_3_51(m, d) BOOST_PP_REPEAT_3_50(m, d) m(4, 50, d) -# define BOOST_PP_REPEAT_3_52(m, d) BOOST_PP_REPEAT_3_51(m, d) m(4, 51, d) -# define BOOST_PP_REPEAT_3_53(m, d) BOOST_PP_REPEAT_3_52(m, d) m(4, 52, d) -# define BOOST_PP_REPEAT_3_54(m, d) BOOST_PP_REPEAT_3_53(m, d) m(4, 53, d) -# define BOOST_PP_REPEAT_3_55(m, d) BOOST_PP_REPEAT_3_54(m, d) m(4, 54, d) -# define BOOST_PP_REPEAT_3_56(m, d) BOOST_PP_REPEAT_3_55(m, d) m(4, 55, d) -# define BOOST_PP_REPEAT_3_57(m, d) BOOST_PP_REPEAT_3_56(m, d) m(4, 56, d) -# define BOOST_PP_REPEAT_3_58(m, d) BOOST_PP_REPEAT_3_57(m, d) m(4, 57, d) -# define BOOST_PP_REPEAT_3_59(m, d) BOOST_PP_REPEAT_3_58(m, d) m(4, 58, d) -# define BOOST_PP_REPEAT_3_60(m, d) BOOST_PP_REPEAT_3_59(m, d) m(4, 59, d) -# define BOOST_PP_REPEAT_3_61(m, d) BOOST_PP_REPEAT_3_60(m, d) m(4, 60, d) -# define BOOST_PP_REPEAT_3_62(m, d) BOOST_PP_REPEAT_3_61(m, d) m(4, 61, d) -# define BOOST_PP_REPEAT_3_63(m, d) BOOST_PP_REPEAT_3_62(m, d) m(4, 62, d) -# define BOOST_PP_REPEAT_3_64(m, d) BOOST_PP_REPEAT_3_63(m, d) m(4, 63, d) -# define BOOST_PP_REPEAT_3_65(m, d) BOOST_PP_REPEAT_3_64(m, d) m(4, 64, d) -# define BOOST_PP_REPEAT_3_66(m, d) BOOST_PP_REPEAT_3_65(m, d) m(4, 65, d) -# define BOOST_PP_REPEAT_3_67(m, d) BOOST_PP_REPEAT_3_66(m, d) m(4, 66, d) -# define BOOST_PP_REPEAT_3_68(m, d) BOOST_PP_REPEAT_3_67(m, d) m(4, 67, d) -# define BOOST_PP_REPEAT_3_69(m, d) BOOST_PP_REPEAT_3_68(m, d) m(4, 68, d) -# define BOOST_PP_REPEAT_3_70(m, d) BOOST_PP_REPEAT_3_69(m, d) m(4, 69, d) -# define BOOST_PP_REPEAT_3_71(m, d) BOOST_PP_REPEAT_3_70(m, d) m(4, 70, d) -# define BOOST_PP_REPEAT_3_72(m, d) BOOST_PP_REPEAT_3_71(m, d) m(4, 71, d) -# define BOOST_PP_REPEAT_3_73(m, d) BOOST_PP_REPEAT_3_72(m, d) m(4, 72, d) -# define BOOST_PP_REPEAT_3_74(m, d) BOOST_PP_REPEAT_3_73(m, d) m(4, 73, d) -# define BOOST_PP_REPEAT_3_75(m, d) BOOST_PP_REPEAT_3_74(m, d) m(4, 74, d) -# define BOOST_PP_REPEAT_3_76(m, d) BOOST_PP_REPEAT_3_75(m, d) m(4, 75, d) -# define BOOST_PP_REPEAT_3_77(m, d) BOOST_PP_REPEAT_3_76(m, d) m(4, 76, d) -# define BOOST_PP_REPEAT_3_78(m, d) BOOST_PP_REPEAT_3_77(m, d) m(4, 77, d) -# define BOOST_PP_REPEAT_3_79(m, d) BOOST_PP_REPEAT_3_78(m, d) m(4, 78, d) -# define BOOST_PP_REPEAT_3_80(m, d) BOOST_PP_REPEAT_3_79(m, d) m(4, 79, d) -# define BOOST_PP_REPEAT_3_81(m, d) BOOST_PP_REPEAT_3_80(m, d) m(4, 80, d) -# define BOOST_PP_REPEAT_3_82(m, d) BOOST_PP_REPEAT_3_81(m, d) m(4, 81, d) -# define BOOST_PP_REPEAT_3_83(m, d) BOOST_PP_REPEAT_3_82(m, d) m(4, 82, d) -# define BOOST_PP_REPEAT_3_84(m, d) BOOST_PP_REPEAT_3_83(m, d) m(4, 83, d) -# define BOOST_PP_REPEAT_3_85(m, d) BOOST_PP_REPEAT_3_84(m, d) m(4, 84, d) -# define BOOST_PP_REPEAT_3_86(m, d) BOOST_PP_REPEAT_3_85(m, d) m(4, 85, d) -# define BOOST_PP_REPEAT_3_87(m, d) BOOST_PP_REPEAT_3_86(m, d) m(4, 86, d) -# define BOOST_PP_REPEAT_3_88(m, d) BOOST_PP_REPEAT_3_87(m, d) m(4, 87, d) -# define BOOST_PP_REPEAT_3_89(m, d) BOOST_PP_REPEAT_3_88(m, d) m(4, 88, d) -# define BOOST_PP_REPEAT_3_90(m, d) BOOST_PP_REPEAT_3_89(m, d) m(4, 89, d) -# define BOOST_PP_REPEAT_3_91(m, d) BOOST_PP_REPEAT_3_90(m, d) m(4, 90, d) -# define BOOST_PP_REPEAT_3_92(m, d) BOOST_PP_REPEAT_3_91(m, d) m(4, 91, d) -# define BOOST_PP_REPEAT_3_93(m, d) BOOST_PP_REPEAT_3_92(m, d) m(4, 92, d) -# define BOOST_PP_REPEAT_3_94(m, d) BOOST_PP_REPEAT_3_93(m, d) m(4, 93, d) -# define BOOST_PP_REPEAT_3_95(m, d) BOOST_PP_REPEAT_3_94(m, d) m(4, 94, d) -# define BOOST_PP_REPEAT_3_96(m, d) BOOST_PP_REPEAT_3_95(m, d) m(4, 95, d) -# define BOOST_PP_REPEAT_3_97(m, d) BOOST_PP_REPEAT_3_96(m, d) m(4, 96, d) -# define BOOST_PP_REPEAT_3_98(m, d) BOOST_PP_REPEAT_3_97(m, d) m(4, 97, d) -# define BOOST_PP_REPEAT_3_99(m, d) BOOST_PP_REPEAT_3_98(m, d) m(4, 98, d) -# define BOOST_PP_REPEAT_3_100(m, d) BOOST_PP_REPEAT_3_99(m, d) m(4, 99, d) -# define BOOST_PP_REPEAT_3_101(m, d) BOOST_PP_REPEAT_3_100(m, d) m(4, 100, d) -# define BOOST_PP_REPEAT_3_102(m, d) BOOST_PP_REPEAT_3_101(m, d) m(4, 101, d) -# define BOOST_PP_REPEAT_3_103(m, d) BOOST_PP_REPEAT_3_102(m, d) m(4, 102, d) -# define BOOST_PP_REPEAT_3_104(m, d) BOOST_PP_REPEAT_3_103(m, d) m(4, 103, d) -# define BOOST_PP_REPEAT_3_105(m, d) BOOST_PP_REPEAT_3_104(m, d) m(4, 104, d) -# define BOOST_PP_REPEAT_3_106(m, d) BOOST_PP_REPEAT_3_105(m, d) m(4, 105, d) -# define BOOST_PP_REPEAT_3_107(m, d) BOOST_PP_REPEAT_3_106(m, d) m(4, 106, d) -# define BOOST_PP_REPEAT_3_108(m, d) BOOST_PP_REPEAT_3_107(m, d) m(4, 107, d) -# define BOOST_PP_REPEAT_3_109(m, d) BOOST_PP_REPEAT_3_108(m, d) m(4, 108, d) -# define BOOST_PP_REPEAT_3_110(m, d) BOOST_PP_REPEAT_3_109(m, d) m(4, 109, d) -# define BOOST_PP_REPEAT_3_111(m, d) BOOST_PP_REPEAT_3_110(m, d) m(4, 110, d) -# define BOOST_PP_REPEAT_3_112(m, d) BOOST_PP_REPEAT_3_111(m, d) m(4, 111, d) -# define BOOST_PP_REPEAT_3_113(m, d) BOOST_PP_REPEAT_3_112(m, d) m(4, 112, d) -# define BOOST_PP_REPEAT_3_114(m, d) BOOST_PP_REPEAT_3_113(m, d) m(4, 113, d) -# define BOOST_PP_REPEAT_3_115(m, d) BOOST_PP_REPEAT_3_114(m, d) m(4, 114, d) -# define BOOST_PP_REPEAT_3_116(m, d) BOOST_PP_REPEAT_3_115(m, d) m(4, 115, d) -# define BOOST_PP_REPEAT_3_117(m, d) BOOST_PP_REPEAT_3_116(m, d) m(4, 116, d) -# define BOOST_PP_REPEAT_3_118(m, d) BOOST_PP_REPEAT_3_117(m, d) m(4, 117, d) -# define BOOST_PP_REPEAT_3_119(m, d) BOOST_PP_REPEAT_3_118(m, d) m(4, 118, d) -# define BOOST_PP_REPEAT_3_120(m, d) BOOST_PP_REPEAT_3_119(m, d) m(4, 119, d) -# define BOOST_PP_REPEAT_3_121(m, d) BOOST_PP_REPEAT_3_120(m, d) m(4, 120, d) -# define BOOST_PP_REPEAT_3_122(m, d) BOOST_PP_REPEAT_3_121(m, d) m(4, 121, d) -# define BOOST_PP_REPEAT_3_123(m, d) BOOST_PP_REPEAT_3_122(m, d) m(4, 122, d) -# define BOOST_PP_REPEAT_3_124(m, d) BOOST_PP_REPEAT_3_123(m, d) m(4, 123, d) -# define BOOST_PP_REPEAT_3_125(m, d) BOOST_PP_REPEAT_3_124(m, d) m(4, 124, d) -# define BOOST_PP_REPEAT_3_126(m, d) BOOST_PP_REPEAT_3_125(m, d) m(4, 125, d) -# define BOOST_PP_REPEAT_3_127(m, d) BOOST_PP_REPEAT_3_126(m, d) m(4, 126, d) -# define BOOST_PP_REPEAT_3_128(m, d) BOOST_PP_REPEAT_3_127(m, d) m(4, 127, d) -# define BOOST_PP_REPEAT_3_129(m, d) BOOST_PP_REPEAT_3_128(m, d) m(4, 128, d) -# define BOOST_PP_REPEAT_3_130(m, d) BOOST_PP_REPEAT_3_129(m, d) m(4, 129, d) -# define BOOST_PP_REPEAT_3_131(m, d) BOOST_PP_REPEAT_3_130(m, d) m(4, 130, d) -# define BOOST_PP_REPEAT_3_132(m, d) BOOST_PP_REPEAT_3_131(m, d) m(4, 131, d) -# define BOOST_PP_REPEAT_3_133(m, d) BOOST_PP_REPEAT_3_132(m, d) m(4, 132, d) -# define BOOST_PP_REPEAT_3_134(m, d) BOOST_PP_REPEAT_3_133(m, d) m(4, 133, d) -# define BOOST_PP_REPEAT_3_135(m, d) BOOST_PP_REPEAT_3_134(m, d) m(4, 134, d) -# define BOOST_PP_REPEAT_3_136(m, d) BOOST_PP_REPEAT_3_135(m, d) m(4, 135, d) -# define BOOST_PP_REPEAT_3_137(m, d) BOOST_PP_REPEAT_3_136(m, d) m(4, 136, d) -# define BOOST_PP_REPEAT_3_138(m, d) BOOST_PP_REPEAT_3_137(m, d) m(4, 137, d) -# define BOOST_PP_REPEAT_3_139(m, d) BOOST_PP_REPEAT_3_138(m, d) m(4, 138, d) -# define BOOST_PP_REPEAT_3_140(m, d) BOOST_PP_REPEAT_3_139(m, d) m(4, 139, d) -# define BOOST_PP_REPEAT_3_141(m, d) BOOST_PP_REPEAT_3_140(m, d) m(4, 140, d) -# define BOOST_PP_REPEAT_3_142(m, d) BOOST_PP_REPEAT_3_141(m, d) m(4, 141, d) -# define BOOST_PP_REPEAT_3_143(m, d) BOOST_PP_REPEAT_3_142(m, d) m(4, 142, d) -# define BOOST_PP_REPEAT_3_144(m, d) BOOST_PP_REPEAT_3_143(m, d) m(4, 143, d) -# define BOOST_PP_REPEAT_3_145(m, d) BOOST_PP_REPEAT_3_144(m, d) m(4, 144, d) -# define BOOST_PP_REPEAT_3_146(m, d) BOOST_PP_REPEAT_3_145(m, d) m(4, 145, d) -# define BOOST_PP_REPEAT_3_147(m, d) BOOST_PP_REPEAT_3_146(m, d) m(4, 146, d) -# define BOOST_PP_REPEAT_3_148(m, d) BOOST_PP_REPEAT_3_147(m, d) m(4, 147, d) -# define BOOST_PP_REPEAT_3_149(m, d) BOOST_PP_REPEAT_3_148(m, d) m(4, 148, d) -# define BOOST_PP_REPEAT_3_150(m, d) BOOST_PP_REPEAT_3_149(m, d) m(4, 149, d) -# define BOOST_PP_REPEAT_3_151(m, d) BOOST_PP_REPEAT_3_150(m, d) m(4, 150, d) -# define BOOST_PP_REPEAT_3_152(m, d) BOOST_PP_REPEAT_3_151(m, d) m(4, 151, d) -# define BOOST_PP_REPEAT_3_153(m, d) BOOST_PP_REPEAT_3_152(m, d) m(4, 152, d) -# define BOOST_PP_REPEAT_3_154(m, d) BOOST_PP_REPEAT_3_153(m, d) m(4, 153, d) -# define BOOST_PP_REPEAT_3_155(m, d) BOOST_PP_REPEAT_3_154(m, d) m(4, 154, d) -# define BOOST_PP_REPEAT_3_156(m, d) BOOST_PP_REPEAT_3_155(m, d) m(4, 155, d) -# define BOOST_PP_REPEAT_3_157(m, d) BOOST_PP_REPEAT_3_156(m, d) m(4, 156, d) -# define BOOST_PP_REPEAT_3_158(m, d) BOOST_PP_REPEAT_3_157(m, d) m(4, 157, d) -# define BOOST_PP_REPEAT_3_159(m, d) BOOST_PP_REPEAT_3_158(m, d) m(4, 158, d) -# define BOOST_PP_REPEAT_3_160(m, d) BOOST_PP_REPEAT_3_159(m, d) m(4, 159, d) -# define BOOST_PP_REPEAT_3_161(m, d) BOOST_PP_REPEAT_3_160(m, d) m(4, 160, d) -# define BOOST_PP_REPEAT_3_162(m, d) BOOST_PP_REPEAT_3_161(m, d) m(4, 161, d) -# define BOOST_PP_REPEAT_3_163(m, d) BOOST_PP_REPEAT_3_162(m, d) m(4, 162, d) -# define BOOST_PP_REPEAT_3_164(m, d) BOOST_PP_REPEAT_3_163(m, d) m(4, 163, d) -# define BOOST_PP_REPEAT_3_165(m, d) BOOST_PP_REPEAT_3_164(m, d) m(4, 164, d) -# define BOOST_PP_REPEAT_3_166(m, d) BOOST_PP_REPEAT_3_165(m, d) m(4, 165, d) -# define BOOST_PP_REPEAT_3_167(m, d) BOOST_PP_REPEAT_3_166(m, d) m(4, 166, d) -# define BOOST_PP_REPEAT_3_168(m, d) BOOST_PP_REPEAT_3_167(m, d) m(4, 167, d) -# define BOOST_PP_REPEAT_3_169(m, d) BOOST_PP_REPEAT_3_168(m, d) m(4, 168, d) -# define BOOST_PP_REPEAT_3_170(m, d) BOOST_PP_REPEAT_3_169(m, d) m(4, 169, d) -# define BOOST_PP_REPEAT_3_171(m, d) BOOST_PP_REPEAT_3_170(m, d) m(4, 170, d) -# define BOOST_PP_REPEAT_3_172(m, d) BOOST_PP_REPEAT_3_171(m, d) m(4, 171, d) -# define BOOST_PP_REPEAT_3_173(m, d) BOOST_PP_REPEAT_3_172(m, d) m(4, 172, d) -# define BOOST_PP_REPEAT_3_174(m, d) BOOST_PP_REPEAT_3_173(m, d) m(4, 173, d) -# define BOOST_PP_REPEAT_3_175(m, d) BOOST_PP_REPEAT_3_174(m, d) m(4, 174, d) -# define BOOST_PP_REPEAT_3_176(m, d) BOOST_PP_REPEAT_3_175(m, d) m(4, 175, d) -# define BOOST_PP_REPEAT_3_177(m, d) BOOST_PP_REPEAT_3_176(m, d) m(4, 176, d) -# define BOOST_PP_REPEAT_3_178(m, d) BOOST_PP_REPEAT_3_177(m, d) m(4, 177, d) -# define BOOST_PP_REPEAT_3_179(m, d) BOOST_PP_REPEAT_3_178(m, d) m(4, 178, d) -# define BOOST_PP_REPEAT_3_180(m, d) BOOST_PP_REPEAT_3_179(m, d) m(4, 179, d) -# define BOOST_PP_REPEAT_3_181(m, d) BOOST_PP_REPEAT_3_180(m, d) m(4, 180, d) -# define BOOST_PP_REPEAT_3_182(m, d) BOOST_PP_REPEAT_3_181(m, d) m(4, 181, d) -# define BOOST_PP_REPEAT_3_183(m, d) BOOST_PP_REPEAT_3_182(m, d) m(4, 182, d) -# define BOOST_PP_REPEAT_3_184(m, d) BOOST_PP_REPEAT_3_183(m, d) m(4, 183, d) -# define BOOST_PP_REPEAT_3_185(m, d) BOOST_PP_REPEAT_3_184(m, d) m(4, 184, d) -# define BOOST_PP_REPEAT_3_186(m, d) BOOST_PP_REPEAT_3_185(m, d) m(4, 185, d) -# define BOOST_PP_REPEAT_3_187(m, d) BOOST_PP_REPEAT_3_186(m, d) m(4, 186, d) -# define BOOST_PP_REPEAT_3_188(m, d) BOOST_PP_REPEAT_3_187(m, d) m(4, 187, d) -# define BOOST_PP_REPEAT_3_189(m, d) BOOST_PP_REPEAT_3_188(m, d) m(4, 188, d) -# define BOOST_PP_REPEAT_3_190(m, d) BOOST_PP_REPEAT_3_189(m, d) m(4, 189, d) -# define BOOST_PP_REPEAT_3_191(m, d) BOOST_PP_REPEAT_3_190(m, d) m(4, 190, d) -# define BOOST_PP_REPEAT_3_192(m, d) BOOST_PP_REPEAT_3_191(m, d) m(4, 191, d) -# define BOOST_PP_REPEAT_3_193(m, d) BOOST_PP_REPEAT_3_192(m, d) m(4, 192, d) -# define BOOST_PP_REPEAT_3_194(m, d) BOOST_PP_REPEAT_3_193(m, d) m(4, 193, d) -# define BOOST_PP_REPEAT_3_195(m, d) BOOST_PP_REPEAT_3_194(m, d) m(4, 194, d) -# define BOOST_PP_REPEAT_3_196(m, d) BOOST_PP_REPEAT_3_195(m, d) m(4, 195, d) -# define BOOST_PP_REPEAT_3_197(m, d) BOOST_PP_REPEAT_3_196(m, d) m(4, 196, d) -# define BOOST_PP_REPEAT_3_198(m, d) BOOST_PP_REPEAT_3_197(m, d) m(4, 197, d) -# define BOOST_PP_REPEAT_3_199(m, d) BOOST_PP_REPEAT_3_198(m, d) m(4, 198, d) -# define BOOST_PP_REPEAT_3_200(m, d) BOOST_PP_REPEAT_3_199(m, d) m(4, 199, d) -# define BOOST_PP_REPEAT_3_201(m, d) BOOST_PP_REPEAT_3_200(m, d) m(4, 200, d) -# define BOOST_PP_REPEAT_3_202(m, d) BOOST_PP_REPEAT_3_201(m, d) m(4, 201, d) -# define BOOST_PP_REPEAT_3_203(m, d) BOOST_PP_REPEAT_3_202(m, d) m(4, 202, d) -# define BOOST_PP_REPEAT_3_204(m, d) BOOST_PP_REPEAT_3_203(m, d) m(4, 203, d) -# define BOOST_PP_REPEAT_3_205(m, d) BOOST_PP_REPEAT_3_204(m, d) m(4, 204, d) -# define BOOST_PP_REPEAT_3_206(m, d) BOOST_PP_REPEAT_3_205(m, d) m(4, 205, d) -# define BOOST_PP_REPEAT_3_207(m, d) BOOST_PP_REPEAT_3_206(m, d) m(4, 206, d) -# define BOOST_PP_REPEAT_3_208(m, d) BOOST_PP_REPEAT_3_207(m, d) m(4, 207, d) -# define BOOST_PP_REPEAT_3_209(m, d) BOOST_PP_REPEAT_3_208(m, d) m(4, 208, d) -# define BOOST_PP_REPEAT_3_210(m, d) BOOST_PP_REPEAT_3_209(m, d) m(4, 209, d) -# define BOOST_PP_REPEAT_3_211(m, d) BOOST_PP_REPEAT_3_210(m, d) m(4, 210, d) -# define BOOST_PP_REPEAT_3_212(m, d) BOOST_PP_REPEAT_3_211(m, d) m(4, 211, d) -# define BOOST_PP_REPEAT_3_213(m, d) BOOST_PP_REPEAT_3_212(m, d) m(4, 212, d) -# define BOOST_PP_REPEAT_3_214(m, d) BOOST_PP_REPEAT_3_213(m, d) m(4, 213, d) -# define BOOST_PP_REPEAT_3_215(m, d) BOOST_PP_REPEAT_3_214(m, d) m(4, 214, d) -# define BOOST_PP_REPEAT_3_216(m, d) BOOST_PP_REPEAT_3_215(m, d) m(4, 215, d) -# define BOOST_PP_REPEAT_3_217(m, d) BOOST_PP_REPEAT_3_216(m, d) m(4, 216, d) -# define BOOST_PP_REPEAT_3_218(m, d) BOOST_PP_REPEAT_3_217(m, d) m(4, 217, d) -# define BOOST_PP_REPEAT_3_219(m, d) BOOST_PP_REPEAT_3_218(m, d) m(4, 218, d) -# define BOOST_PP_REPEAT_3_220(m, d) BOOST_PP_REPEAT_3_219(m, d) m(4, 219, d) -# define BOOST_PP_REPEAT_3_221(m, d) BOOST_PP_REPEAT_3_220(m, d) m(4, 220, d) -# define BOOST_PP_REPEAT_3_222(m, d) BOOST_PP_REPEAT_3_221(m, d) m(4, 221, d) -# define BOOST_PP_REPEAT_3_223(m, d) BOOST_PP_REPEAT_3_222(m, d) m(4, 222, d) -# define BOOST_PP_REPEAT_3_224(m, d) BOOST_PP_REPEAT_3_223(m, d) m(4, 223, d) -# define BOOST_PP_REPEAT_3_225(m, d) BOOST_PP_REPEAT_3_224(m, d) m(4, 224, d) -# define BOOST_PP_REPEAT_3_226(m, d) BOOST_PP_REPEAT_3_225(m, d) m(4, 225, d) -# define BOOST_PP_REPEAT_3_227(m, d) BOOST_PP_REPEAT_3_226(m, d) m(4, 226, d) -# define BOOST_PP_REPEAT_3_228(m, d) BOOST_PP_REPEAT_3_227(m, d) m(4, 227, d) -# define BOOST_PP_REPEAT_3_229(m, d) BOOST_PP_REPEAT_3_228(m, d) m(4, 228, d) -# define BOOST_PP_REPEAT_3_230(m, d) BOOST_PP_REPEAT_3_229(m, d) m(4, 229, d) -# define BOOST_PP_REPEAT_3_231(m, d) BOOST_PP_REPEAT_3_230(m, d) m(4, 230, d) -# define BOOST_PP_REPEAT_3_232(m, d) BOOST_PP_REPEAT_3_231(m, d) m(4, 231, d) -# define BOOST_PP_REPEAT_3_233(m, d) BOOST_PP_REPEAT_3_232(m, d) m(4, 232, d) -# define BOOST_PP_REPEAT_3_234(m, d) BOOST_PP_REPEAT_3_233(m, d) m(4, 233, d) -# define BOOST_PP_REPEAT_3_235(m, d) BOOST_PP_REPEAT_3_234(m, d) m(4, 234, d) -# define BOOST_PP_REPEAT_3_236(m, d) BOOST_PP_REPEAT_3_235(m, d) m(4, 235, d) -# define BOOST_PP_REPEAT_3_237(m, d) BOOST_PP_REPEAT_3_236(m, d) m(4, 236, d) -# define BOOST_PP_REPEAT_3_238(m, d) BOOST_PP_REPEAT_3_237(m, d) m(4, 237, d) -# define BOOST_PP_REPEAT_3_239(m, d) BOOST_PP_REPEAT_3_238(m, d) m(4, 238, d) -# define BOOST_PP_REPEAT_3_240(m, d) BOOST_PP_REPEAT_3_239(m, d) m(4, 239, d) -# define BOOST_PP_REPEAT_3_241(m, d) BOOST_PP_REPEAT_3_240(m, d) m(4, 240, d) -# define BOOST_PP_REPEAT_3_242(m, d) BOOST_PP_REPEAT_3_241(m, d) m(4, 241, d) -# define BOOST_PP_REPEAT_3_243(m, d) BOOST_PP_REPEAT_3_242(m, d) m(4, 242, d) -# define BOOST_PP_REPEAT_3_244(m, d) BOOST_PP_REPEAT_3_243(m, d) m(4, 243, d) -# define BOOST_PP_REPEAT_3_245(m, d) BOOST_PP_REPEAT_3_244(m, d) m(4, 244, d) -# define BOOST_PP_REPEAT_3_246(m, d) BOOST_PP_REPEAT_3_245(m, d) m(4, 245, d) -# define BOOST_PP_REPEAT_3_247(m, d) BOOST_PP_REPEAT_3_246(m, d) m(4, 246, d) -# define BOOST_PP_REPEAT_3_248(m, d) BOOST_PP_REPEAT_3_247(m, d) m(4, 247, d) -# define BOOST_PP_REPEAT_3_249(m, d) BOOST_PP_REPEAT_3_248(m, d) m(4, 248, d) -# define BOOST_PP_REPEAT_3_250(m, d) BOOST_PP_REPEAT_3_249(m, d) m(4, 249, d) -# define BOOST_PP_REPEAT_3_251(m, d) BOOST_PP_REPEAT_3_250(m, d) m(4, 250, d) -# define BOOST_PP_REPEAT_3_252(m, d) BOOST_PP_REPEAT_3_251(m, d) m(4, 251, d) -# define BOOST_PP_REPEAT_3_253(m, d) BOOST_PP_REPEAT_3_252(m, d) m(4, 252, d) -# define BOOST_PP_REPEAT_3_254(m, d) BOOST_PP_REPEAT_3_253(m, d) m(4, 253, d) -# define BOOST_PP_REPEAT_3_255(m, d) BOOST_PP_REPEAT_3_254(m, d) m(4, 254, d) -# define BOOST_PP_REPEAT_3_256(m, d) BOOST_PP_REPEAT_3_255(m, d) m(4, 255, d) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/repetition/repeat_from_to.hpp b/lib/3rdParty/boost/boost/preprocessor/repetition/repeat_from_to.hpp deleted file mode 100644 index efe539e1d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/repetition/repeat_from_to.hpp +++ /dev/null @@ -1,87 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP -# define BOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_REPEAT_FROM_TO */ -# -# if 0 -# define BOOST_PP_REPEAT_FROM_TO(first, last, macro, data) -# endif -# -# define BOOST_PP_REPEAT_FROM_TO BOOST_PP_CAT(BOOST_PP_REPEAT_FROM_TO_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) -# -# define BOOST_PP_REPEAT_FROM_TO_1(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_1(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt) -# define BOOST_PP_REPEAT_FROM_TO_2(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_2(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt) -# define BOOST_PP_REPEAT_FROM_TO_3(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_3(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt) -# define BOOST_PP_REPEAT_FROM_TO_4(f, l, m, dt) BOOST_PP_ERROR(0x0003) -# -# define BOOST_PP_REPEAT_FROM_TO_1ST BOOST_PP_REPEAT_FROM_TO_1 -# define BOOST_PP_REPEAT_FROM_TO_2ND BOOST_PP_REPEAT_FROM_TO_2 -# define BOOST_PP_REPEAT_FROM_TO_3RD BOOST_PP_REPEAT_FROM_TO_3 -# -# /* BOOST_PP_REPEAT_FROM_TO_D */ -# -# if 0 -# define BOOST_PP_REPEAT_FROM_TO_D(d, first, last, macro, data) -# endif -# -# define BOOST_PP_REPEAT_FROM_TO_D BOOST_PP_CAT(BOOST_PP_REPEAT_FROM_TO_D_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4)) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) BOOST_PP_REPEAT_1(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt)) -# define BOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) BOOST_PP_REPEAT_2(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt)) -# define BOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) BOOST_PP_REPEAT_3(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt)) -# else -# define BOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) -# define BOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) -# define BOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) -# define BOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) BOOST_PP_REPEAT_1(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt)) -# define BOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) BOOST_PP_REPEAT_2(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt)) -# define BOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) BOOST_PP_REPEAT_3(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt)) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd) -# define BOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd) -# define BOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd) -# define BOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, im) -# define BOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, im) -# define BOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, im) -# else -# define BOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd)) -# define BOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd)) -# define BOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd)) -# endif -# -# define BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_1_II(z, BOOST_PP_ADD_D(d, n, f), m, dt) -# define BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_2_II(z, BOOST_PP_ADD_D(d, n, f), m, dt) -# define BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_3_II(z, BOOST_PP_ADD_D(d, n, f), m, dt) -# -# define BOOST_PP_REPEAT_FROM_TO_M_1_II(z, n, m, dt) m(z, n, dt) -# define BOOST_PP_REPEAT_FROM_TO_M_2_II(z, n, m, dt) m(z, n, dt) -# define BOOST_PP_REPEAT_FROM_TO_M_3_II(z, n, m, dt) m(z, n, dt) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/selection.hpp b/lib/3rdParty/boost/boost/preprocessor/selection.hpp deleted file mode 100644 index 3b67fad4e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/selection.hpp +++ /dev/null @@ -1,18 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SELECTION_HPP -# define BOOST_PREPROCESSOR_SELECTION_HPP -# -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/selection/max.hpp b/lib/3rdParty/boost/boost/preprocessor/selection/max.hpp deleted file mode 100644 index 407d70205..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/selection/max.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SELECTION_MAX_HPP -# define BOOST_PREPROCESSOR_SELECTION_MAX_HPP -# -# include -# include -# include -# -# /* BOOST_PP_MAX */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MAX(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x) -# else -# define BOOST_PP_MAX(x, y) BOOST_PP_MAX_I(x, y) -# define BOOST_PP_MAX_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(x, y), y, x) -# endif -# -# /* BOOST_PP_MAX_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MAX_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x) -# else -# define BOOST_PP_MAX_D(d, x, y) BOOST_PP_MAX_D_I(d, x, y) -# define BOOST_PP_MAX_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, x, y), y, x) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/selection/min.hpp b/lib/3rdParty/boost/boost/preprocessor/selection/min.hpp deleted file mode 100644 index ee05588bd..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/selection/min.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SELECTION_MIN_HPP -# define BOOST_PREPROCESSOR_SELECTION_MIN_HPP -# -# include -# include -# include -# -# /* BOOST_PP_MIN */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MIN(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x) -# else -# define BOOST_PP_MIN(x, y) BOOST_PP_MIN_I(x, y) -# define BOOST_PP_MIN_I(x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL(y, x), y, x) -# endif -# -# /* BOOST_PP_MIN_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_MIN_D(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x) -# else -# define BOOST_PP_MIN_D(d, x, y) BOOST_PP_MIN_D_I(d, x, y) -# define BOOST_PP_MIN_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_LESS_EQUAL_D(d, y, x), y, x) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq.hpp b/lib/3rdParty/boost/boost/preprocessor/seq.hpp deleted file mode 100644 index cde208ce1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq.hpp +++ /dev/null @@ -1,44 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_HPP -# define BOOST_PREPROCESSOR_SEQ_HPP -# -# include -# include -# include -# 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/lib/3rdParty/boost/boost/preprocessor/seq/cat.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/cat.hpp deleted file mode 100644 index b6b09ff32..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/cat.hpp +++ /dev/null @@ -1,49 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_CAT_HPP -# define BOOST_PREPROCESSOR_SEQ_CAT_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_CAT */ -# -# define BOOST_PP_SEQ_CAT(seq) \ - BOOST_PP_IF( \ - BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \ - BOOST_PP_SEQ_CAT_I, \ - BOOST_PP_SEQ_HEAD \ - )(seq) \ - /**/ -# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq)) -# -# define BOOST_PP_SEQ_CAT_O(s, st, elem) BOOST_PP_SEQ_CAT_O_I(st, elem) -# define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b -# -# /* BOOST_PP_SEQ_CAT_S */ -# -# define BOOST_PP_SEQ_CAT_S(s, seq) \ - BOOST_PP_IF( \ - BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \ - BOOST_PP_SEQ_CAT_S_I_A, \ - BOOST_PP_SEQ_CAT_S_I_B \ - )(s, seq) \ - /**/ -# define BOOST_PP_SEQ_CAT_S_I_A(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq)) -# define BOOST_PP_SEQ_CAT_S_I_B(s, seq) BOOST_PP_SEQ_HEAD(seq) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/detail/binary_transform.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/detail/binary_transform.hpp deleted file mode 100644 index 70897b09c..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/detail/binary_transform.hpp +++ /dev/null @@ -1,48 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP -# define BOOST_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_BINARY_TRANSFORM */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_SEQ_BINARY_TRANSFORM(seq) BOOST_PP_SEQ_BINARY_TRANSFORM_I(, seq) -# define BOOST_PP_SEQ_BINARY_TRANSFORM_I(p, seq) BOOST_PP_SEQ_BINARY_TRANSFORM_II(p ## seq) -# define BOOST_PP_SEQ_BINARY_TRANSFORM_II(seq) BOOST_PP_SEQ_BINARY_TRANSFORM_III(seq) -# define BOOST_PP_SEQ_BINARY_TRANSFORM_III(seq) BOOST_PP_CAT(BOOST_PP_SEQ_BINARY_TRANSFORM_A seq, 0) -# else -# define BOOST_PP_SEQ_BINARY_TRANSFORM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_BINARY_TRANSFORM_A seq, 0) -# endif -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_SEQ_BINARY_TRANSFORM_GET_REM(...) \ - BOOST_PP_VARIADIC_IS_SINGLE_RETURN(BOOST_PP_REM_CAT,BOOST_PP_REM,__VA_ARGS__) \ - /**/ -# else -# define BOOST_PP_SEQ_BINARY_TRANSFORM_GET_REM(...) BOOST_PP_REM -# endif -# define BOOST_PP_SEQ_BINARY_TRANSFORM_A(...) (BOOST_PP_SEQ_BINARY_TRANSFORM_GET_REM(__VA_ARGS__), __VA_ARGS__)() BOOST_PP_SEQ_BINARY_TRANSFORM_B -# define BOOST_PP_SEQ_BINARY_TRANSFORM_B(...) (BOOST_PP_SEQ_BINARY_TRANSFORM_GET_REM(__VA_ARGS__), __VA_ARGS__)() BOOST_PP_SEQ_BINARY_TRANSFORM_A -# else -# define BOOST_PP_SEQ_BINARY_TRANSFORM_A(e) (BOOST_PP_REM, e)() BOOST_PP_SEQ_BINARY_TRANSFORM_B -# define BOOST_PP_SEQ_BINARY_TRANSFORM_B(e) (BOOST_PP_REM, e)() BOOST_PP_SEQ_BINARY_TRANSFORM_A -# endif -# define BOOST_PP_SEQ_BINARY_TRANSFORM_A0 (BOOST_PP_EAT, ?) -# define BOOST_PP_SEQ_BINARY_TRANSFORM_B0 (BOOST_PP_EAT, ?) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/detail/is_empty.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/detail/is_empty.hpp deleted file mode 100644 index 1a80a2f61..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/detail/is_empty.hpp +++ /dev/null @@ -1,49 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_IS_EMPTY_HPP -# define BOOST_PREPROCESSOR_SEQ_DETAIL_IS_EMPTY_HPP -# -# include -# include -# include -# include -# include -# -/* An empty seq is one that is just BOOST_PP_SEQ_NIL */ -# -# define BOOST_PP_SEQ_DETAIL_IS_EMPTY(seq) \ - BOOST_PP_COMPL \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq) \ - ) \ -/**/ -# -# define BOOST_PP_SEQ_DETAIL_IS_EMPTY_SIZE(size) \ - BOOST_PP_COMPL \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size) \ - ) \ -/**/ -# -# define BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq) \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) \ -/**/ -# -# define BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size) \ - BOOST_PP_BOOL(size) \ -/**/ -# -# define BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq) \ - BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq (nil))) \ -/**/ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/detail/split.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/detail/split.hpp deleted file mode 100644 index 7c3393191..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/detail/split.hpp +++ /dev/null @@ -1,284 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP -# define BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP -# -# include -# -# /* BOOST_PP_SEQ_SPLIT */ -# -# define BOOST_PP_SEQ_SPLIT(n, seq) BOOST_PP_SEQ_SPLIT_D(n, seq) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n seq) -# else -# define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n ## seq) -# endif -# -# define BOOST_PP_SEQ_SPLIT_1(x) (x), -# define BOOST_PP_SEQ_SPLIT_2(x) (x) BOOST_PP_SEQ_SPLIT_1 -# define BOOST_PP_SEQ_SPLIT_3(x) (x) BOOST_PP_SEQ_SPLIT_2 -# define BOOST_PP_SEQ_SPLIT_4(x) (x) BOOST_PP_SEQ_SPLIT_3 -# define BOOST_PP_SEQ_SPLIT_5(x) (x) BOOST_PP_SEQ_SPLIT_4 -# define BOOST_PP_SEQ_SPLIT_6(x) (x) BOOST_PP_SEQ_SPLIT_5 -# define BOOST_PP_SEQ_SPLIT_7(x) (x) BOOST_PP_SEQ_SPLIT_6 -# define BOOST_PP_SEQ_SPLIT_8(x) (x) BOOST_PP_SEQ_SPLIT_7 -# define BOOST_PP_SEQ_SPLIT_9(x) (x) BOOST_PP_SEQ_SPLIT_8 -# define BOOST_PP_SEQ_SPLIT_10(x) (x) BOOST_PP_SEQ_SPLIT_9 -# define BOOST_PP_SEQ_SPLIT_11(x) (x) BOOST_PP_SEQ_SPLIT_10 -# define BOOST_PP_SEQ_SPLIT_12(x) (x) BOOST_PP_SEQ_SPLIT_11 -# define BOOST_PP_SEQ_SPLIT_13(x) (x) BOOST_PP_SEQ_SPLIT_12 -# define BOOST_PP_SEQ_SPLIT_14(x) (x) BOOST_PP_SEQ_SPLIT_13 -# define BOOST_PP_SEQ_SPLIT_15(x) (x) BOOST_PP_SEQ_SPLIT_14 -# define BOOST_PP_SEQ_SPLIT_16(x) (x) BOOST_PP_SEQ_SPLIT_15 -# define BOOST_PP_SEQ_SPLIT_17(x) (x) BOOST_PP_SEQ_SPLIT_16 -# define BOOST_PP_SEQ_SPLIT_18(x) (x) BOOST_PP_SEQ_SPLIT_17 -# define BOOST_PP_SEQ_SPLIT_19(x) (x) BOOST_PP_SEQ_SPLIT_18 -# define BOOST_PP_SEQ_SPLIT_20(x) (x) BOOST_PP_SEQ_SPLIT_19 -# define BOOST_PP_SEQ_SPLIT_21(x) (x) BOOST_PP_SEQ_SPLIT_20 -# define BOOST_PP_SEQ_SPLIT_22(x) (x) BOOST_PP_SEQ_SPLIT_21 -# define BOOST_PP_SEQ_SPLIT_23(x) (x) BOOST_PP_SEQ_SPLIT_22 -# define BOOST_PP_SEQ_SPLIT_24(x) (x) BOOST_PP_SEQ_SPLIT_23 -# define BOOST_PP_SEQ_SPLIT_25(x) (x) BOOST_PP_SEQ_SPLIT_24 -# define BOOST_PP_SEQ_SPLIT_26(x) (x) BOOST_PP_SEQ_SPLIT_25 -# define BOOST_PP_SEQ_SPLIT_27(x) (x) BOOST_PP_SEQ_SPLIT_26 -# define BOOST_PP_SEQ_SPLIT_28(x) (x) BOOST_PP_SEQ_SPLIT_27 -# define BOOST_PP_SEQ_SPLIT_29(x) (x) BOOST_PP_SEQ_SPLIT_28 -# define BOOST_PP_SEQ_SPLIT_30(x) (x) BOOST_PP_SEQ_SPLIT_29 -# define BOOST_PP_SEQ_SPLIT_31(x) (x) BOOST_PP_SEQ_SPLIT_30 -# define BOOST_PP_SEQ_SPLIT_32(x) (x) BOOST_PP_SEQ_SPLIT_31 -# define BOOST_PP_SEQ_SPLIT_33(x) (x) BOOST_PP_SEQ_SPLIT_32 -# define BOOST_PP_SEQ_SPLIT_34(x) (x) BOOST_PP_SEQ_SPLIT_33 -# define BOOST_PP_SEQ_SPLIT_35(x) (x) BOOST_PP_SEQ_SPLIT_34 -# define BOOST_PP_SEQ_SPLIT_36(x) (x) BOOST_PP_SEQ_SPLIT_35 -# define BOOST_PP_SEQ_SPLIT_37(x) (x) BOOST_PP_SEQ_SPLIT_36 -# define BOOST_PP_SEQ_SPLIT_38(x) (x) BOOST_PP_SEQ_SPLIT_37 -# define BOOST_PP_SEQ_SPLIT_39(x) (x) BOOST_PP_SEQ_SPLIT_38 -# define BOOST_PP_SEQ_SPLIT_40(x) (x) BOOST_PP_SEQ_SPLIT_39 -# define BOOST_PP_SEQ_SPLIT_41(x) (x) BOOST_PP_SEQ_SPLIT_40 -# define BOOST_PP_SEQ_SPLIT_42(x) (x) BOOST_PP_SEQ_SPLIT_41 -# define BOOST_PP_SEQ_SPLIT_43(x) (x) BOOST_PP_SEQ_SPLIT_42 -# define BOOST_PP_SEQ_SPLIT_44(x) (x) BOOST_PP_SEQ_SPLIT_43 -# define BOOST_PP_SEQ_SPLIT_45(x) (x) BOOST_PP_SEQ_SPLIT_44 -# define BOOST_PP_SEQ_SPLIT_46(x) (x) BOOST_PP_SEQ_SPLIT_45 -# define BOOST_PP_SEQ_SPLIT_47(x) (x) BOOST_PP_SEQ_SPLIT_46 -# define BOOST_PP_SEQ_SPLIT_48(x) (x) BOOST_PP_SEQ_SPLIT_47 -# define BOOST_PP_SEQ_SPLIT_49(x) (x) BOOST_PP_SEQ_SPLIT_48 -# define BOOST_PP_SEQ_SPLIT_50(x) (x) BOOST_PP_SEQ_SPLIT_49 -# define BOOST_PP_SEQ_SPLIT_51(x) (x) BOOST_PP_SEQ_SPLIT_50 -# define BOOST_PP_SEQ_SPLIT_52(x) (x) BOOST_PP_SEQ_SPLIT_51 -# define BOOST_PP_SEQ_SPLIT_53(x) (x) BOOST_PP_SEQ_SPLIT_52 -# define BOOST_PP_SEQ_SPLIT_54(x) (x) BOOST_PP_SEQ_SPLIT_53 -# define BOOST_PP_SEQ_SPLIT_55(x) (x) BOOST_PP_SEQ_SPLIT_54 -# define BOOST_PP_SEQ_SPLIT_56(x) (x) BOOST_PP_SEQ_SPLIT_55 -# define BOOST_PP_SEQ_SPLIT_57(x) (x) BOOST_PP_SEQ_SPLIT_56 -# define BOOST_PP_SEQ_SPLIT_58(x) (x) BOOST_PP_SEQ_SPLIT_57 -# define BOOST_PP_SEQ_SPLIT_59(x) (x) BOOST_PP_SEQ_SPLIT_58 -# define BOOST_PP_SEQ_SPLIT_60(x) (x) BOOST_PP_SEQ_SPLIT_59 -# define BOOST_PP_SEQ_SPLIT_61(x) (x) BOOST_PP_SEQ_SPLIT_60 -# define BOOST_PP_SEQ_SPLIT_62(x) (x) BOOST_PP_SEQ_SPLIT_61 -# define BOOST_PP_SEQ_SPLIT_63(x) (x) BOOST_PP_SEQ_SPLIT_62 -# define BOOST_PP_SEQ_SPLIT_64(x) (x) BOOST_PP_SEQ_SPLIT_63 -# define BOOST_PP_SEQ_SPLIT_65(x) (x) BOOST_PP_SEQ_SPLIT_64 -# define BOOST_PP_SEQ_SPLIT_66(x) (x) BOOST_PP_SEQ_SPLIT_65 -# define BOOST_PP_SEQ_SPLIT_67(x) (x) BOOST_PP_SEQ_SPLIT_66 -# define BOOST_PP_SEQ_SPLIT_68(x) (x) BOOST_PP_SEQ_SPLIT_67 -# define BOOST_PP_SEQ_SPLIT_69(x) (x) BOOST_PP_SEQ_SPLIT_68 -# define BOOST_PP_SEQ_SPLIT_70(x) (x) BOOST_PP_SEQ_SPLIT_69 -# define BOOST_PP_SEQ_SPLIT_71(x) (x) BOOST_PP_SEQ_SPLIT_70 -# define BOOST_PP_SEQ_SPLIT_72(x) (x) BOOST_PP_SEQ_SPLIT_71 -# define BOOST_PP_SEQ_SPLIT_73(x) (x) BOOST_PP_SEQ_SPLIT_72 -# define BOOST_PP_SEQ_SPLIT_74(x) (x) BOOST_PP_SEQ_SPLIT_73 -# define BOOST_PP_SEQ_SPLIT_75(x) (x) BOOST_PP_SEQ_SPLIT_74 -# define BOOST_PP_SEQ_SPLIT_76(x) (x) BOOST_PP_SEQ_SPLIT_75 -# define BOOST_PP_SEQ_SPLIT_77(x) (x) BOOST_PP_SEQ_SPLIT_76 -# define BOOST_PP_SEQ_SPLIT_78(x) (x) BOOST_PP_SEQ_SPLIT_77 -# define BOOST_PP_SEQ_SPLIT_79(x) (x) BOOST_PP_SEQ_SPLIT_78 -# define BOOST_PP_SEQ_SPLIT_80(x) (x) BOOST_PP_SEQ_SPLIT_79 -# define BOOST_PP_SEQ_SPLIT_81(x) (x) BOOST_PP_SEQ_SPLIT_80 -# define BOOST_PP_SEQ_SPLIT_82(x) (x) BOOST_PP_SEQ_SPLIT_81 -# define BOOST_PP_SEQ_SPLIT_83(x) (x) BOOST_PP_SEQ_SPLIT_82 -# define BOOST_PP_SEQ_SPLIT_84(x) (x) BOOST_PP_SEQ_SPLIT_83 -# define BOOST_PP_SEQ_SPLIT_85(x) (x) BOOST_PP_SEQ_SPLIT_84 -# define BOOST_PP_SEQ_SPLIT_86(x) (x) BOOST_PP_SEQ_SPLIT_85 -# define BOOST_PP_SEQ_SPLIT_87(x) (x) BOOST_PP_SEQ_SPLIT_86 -# define BOOST_PP_SEQ_SPLIT_88(x) (x) BOOST_PP_SEQ_SPLIT_87 -# define BOOST_PP_SEQ_SPLIT_89(x) (x) BOOST_PP_SEQ_SPLIT_88 -# define BOOST_PP_SEQ_SPLIT_90(x) (x) BOOST_PP_SEQ_SPLIT_89 -# define BOOST_PP_SEQ_SPLIT_91(x) (x) BOOST_PP_SEQ_SPLIT_90 -# define BOOST_PP_SEQ_SPLIT_92(x) (x) BOOST_PP_SEQ_SPLIT_91 -# define BOOST_PP_SEQ_SPLIT_93(x) (x) BOOST_PP_SEQ_SPLIT_92 -# define BOOST_PP_SEQ_SPLIT_94(x) (x) BOOST_PP_SEQ_SPLIT_93 -# define BOOST_PP_SEQ_SPLIT_95(x) (x) BOOST_PP_SEQ_SPLIT_94 -# define BOOST_PP_SEQ_SPLIT_96(x) (x) BOOST_PP_SEQ_SPLIT_95 -# define BOOST_PP_SEQ_SPLIT_97(x) (x) BOOST_PP_SEQ_SPLIT_96 -# define BOOST_PP_SEQ_SPLIT_98(x) (x) BOOST_PP_SEQ_SPLIT_97 -# define BOOST_PP_SEQ_SPLIT_99(x) (x) BOOST_PP_SEQ_SPLIT_98 -# define BOOST_PP_SEQ_SPLIT_100(x) (x) BOOST_PP_SEQ_SPLIT_99 -# define BOOST_PP_SEQ_SPLIT_101(x) (x) BOOST_PP_SEQ_SPLIT_100 -# define BOOST_PP_SEQ_SPLIT_102(x) (x) BOOST_PP_SEQ_SPLIT_101 -# define BOOST_PP_SEQ_SPLIT_103(x) (x) BOOST_PP_SEQ_SPLIT_102 -# define BOOST_PP_SEQ_SPLIT_104(x) (x) BOOST_PP_SEQ_SPLIT_103 -# define BOOST_PP_SEQ_SPLIT_105(x) (x) BOOST_PP_SEQ_SPLIT_104 -# define BOOST_PP_SEQ_SPLIT_106(x) (x) BOOST_PP_SEQ_SPLIT_105 -# define BOOST_PP_SEQ_SPLIT_107(x) (x) BOOST_PP_SEQ_SPLIT_106 -# define BOOST_PP_SEQ_SPLIT_108(x) (x) BOOST_PP_SEQ_SPLIT_107 -# define BOOST_PP_SEQ_SPLIT_109(x) (x) BOOST_PP_SEQ_SPLIT_108 -# define BOOST_PP_SEQ_SPLIT_110(x) (x) BOOST_PP_SEQ_SPLIT_109 -# define BOOST_PP_SEQ_SPLIT_111(x) (x) BOOST_PP_SEQ_SPLIT_110 -# define BOOST_PP_SEQ_SPLIT_112(x) (x) BOOST_PP_SEQ_SPLIT_111 -# define BOOST_PP_SEQ_SPLIT_113(x) (x) BOOST_PP_SEQ_SPLIT_112 -# define BOOST_PP_SEQ_SPLIT_114(x) (x) BOOST_PP_SEQ_SPLIT_113 -# define BOOST_PP_SEQ_SPLIT_115(x) (x) BOOST_PP_SEQ_SPLIT_114 -# define BOOST_PP_SEQ_SPLIT_116(x) (x) BOOST_PP_SEQ_SPLIT_115 -# define BOOST_PP_SEQ_SPLIT_117(x) (x) BOOST_PP_SEQ_SPLIT_116 -# define BOOST_PP_SEQ_SPLIT_118(x) (x) BOOST_PP_SEQ_SPLIT_117 -# define BOOST_PP_SEQ_SPLIT_119(x) (x) BOOST_PP_SEQ_SPLIT_118 -# define BOOST_PP_SEQ_SPLIT_120(x) (x) BOOST_PP_SEQ_SPLIT_119 -# define BOOST_PP_SEQ_SPLIT_121(x) (x) BOOST_PP_SEQ_SPLIT_120 -# define BOOST_PP_SEQ_SPLIT_122(x) (x) BOOST_PP_SEQ_SPLIT_121 -# define BOOST_PP_SEQ_SPLIT_123(x) (x) BOOST_PP_SEQ_SPLIT_122 -# define BOOST_PP_SEQ_SPLIT_124(x) (x) BOOST_PP_SEQ_SPLIT_123 -# define BOOST_PP_SEQ_SPLIT_125(x) (x) BOOST_PP_SEQ_SPLIT_124 -# define BOOST_PP_SEQ_SPLIT_126(x) (x) BOOST_PP_SEQ_SPLIT_125 -# define BOOST_PP_SEQ_SPLIT_127(x) (x) BOOST_PP_SEQ_SPLIT_126 -# define BOOST_PP_SEQ_SPLIT_128(x) (x) BOOST_PP_SEQ_SPLIT_127 -# define BOOST_PP_SEQ_SPLIT_129(x) (x) BOOST_PP_SEQ_SPLIT_128 -# define BOOST_PP_SEQ_SPLIT_130(x) (x) BOOST_PP_SEQ_SPLIT_129 -# define BOOST_PP_SEQ_SPLIT_131(x) (x) BOOST_PP_SEQ_SPLIT_130 -# define BOOST_PP_SEQ_SPLIT_132(x) (x) BOOST_PP_SEQ_SPLIT_131 -# define BOOST_PP_SEQ_SPLIT_133(x) (x) BOOST_PP_SEQ_SPLIT_132 -# define BOOST_PP_SEQ_SPLIT_134(x) (x) BOOST_PP_SEQ_SPLIT_133 -# define BOOST_PP_SEQ_SPLIT_135(x) (x) BOOST_PP_SEQ_SPLIT_134 -# define BOOST_PP_SEQ_SPLIT_136(x) (x) BOOST_PP_SEQ_SPLIT_135 -# define BOOST_PP_SEQ_SPLIT_137(x) (x) BOOST_PP_SEQ_SPLIT_136 -# define BOOST_PP_SEQ_SPLIT_138(x) (x) BOOST_PP_SEQ_SPLIT_137 -# define BOOST_PP_SEQ_SPLIT_139(x) (x) BOOST_PP_SEQ_SPLIT_138 -# define BOOST_PP_SEQ_SPLIT_140(x) (x) BOOST_PP_SEQ_SPLIT_139 -# define BOOST_PP_SEQ_SPLIT_141(x) (x) BOOST_PP_SEQ_SPLIT_140 -# define BOOST_PP_SEQ_SPLIT_142(x) (x) BOOST_PP_SEQ_SPLIT_141 -# define BOOST_PP_SEQ_SPLIT_143(x) (x) BOOST_PP_SEQ_SPLIT_142 -# define BOOST_PP_SEQ_SPLIT_144(x) (x) BOOST_PP_SEQ_SPLIT_143 -# define BOOST_PP_SEQ_SPLIT_145(x) (x) BOOST_PP_SEQ_SPLIT_144 -# define BOOST_PP_SEQ_SPLIT_146(x) (x) BOOST_PP_SEQ_SPLIT_145 -# define BOOST_PP_SEQ_SPLIT_147(x) (x) BOOST_PP_SEQ_SPLIT_146 -# define BOOST_PP_SEQ_SPLIT_148(x) (x) BOOST_PP_SEQ_SPLIT_147 -# define BOOST_PP_SEQ_SPLIT_149(x) (x) BOOST_PP_SEQ_SPLIT_148 -# define BOOST_PP_SEQ_SPLIT_150(x) (x) BOOST_PP_SEQ_SPLIT_149 -# define BOOST_PP_SEQ_SPLIT_151(x) (x) BOOST_PP_SEQ_SPLIT_150 -# define BOOST_PP_SEQ_SPLIT_152(x) (x) BOOST_PP_SEQ_SPLIT_151 -# define BOOST_PP_SEQ_SPLIT_153(x) (x) BOOST_PP_SEQ_SPLIT_152 -# define BOOST_PP_SEQ_SPLIT_154(x) (x) BOOST_PP_SEQ_SPLIT_153 -# define BOOST_PP_SEQ_SPLIT_155(x) (x) BOOST_PP_SEQ_SPLIT_154 -# define BOOST_PP_SEQ_SPLIT_156(x) (x) BOOST_PP_SEQ_SPLIT_155 -# define BOOST_PP_SEQ_SPLIT_157(x) (x) BOOST_PP_SEQ_SPLIT_156 -# define BOOST_PP_SEQ_SPLIT_158(x) (x) BOOST_PP_SEQ_SPLIT_157 -# define BOOST_PP_SEQ_SPLIT_159(x) (x) BOOST_PP_SEQ_SPLIT_158 -# define BOOST_PP_SEQ_SPLIT_160(x) (x) BOOST_PP_SEQ_SPLIT_159 -# define BOOST_PP_SEQ_SPLIT_161(x) (x) BOOST_PP_SEQ_SPLIT_160 -# define BOOST_PP_SEQ_SPLIT_162(x) (x) BOOST_PP_SEQ_SPLIT_161 -# define BOOST_PP_SEQ_SPLIT_163(x) (x) BOOST_PP_SEQ_SPLIT_162 -# define BOOST_PP_SEQ_SPLIT_164(x) (x) BOOST_PP_SEQ_SPLIT_163 -# define BOOST_PP_SEQ_SPLIT_165(x) (x) BOOST_PP_SEQ_SPLIT_164 -# define BOOST_PP_SEQ_SPLIT_166(x) (x) BOOST_PP_SEQ_SPLIT_165 -# define BOOST_PP_SEQ_SPLIT_167(x) (x) BOOST_PP_SEQ_SPLIT_166 -# define BOOST_PP_SEQ_SPLIT_168(x) (x) BOOST_PP_SEQ_SPLIT_167 -# define BOOST_PP_SEQ_SPLIT_169(x) (x) BOOST_PP_SEQ_SPLIT_168 -# define BOOST_PP_SEQ_SPLIT_170(x) (x) BOOST_PP_SEQ_SPLIT_169 -# define BOOST_PP_SEQ_SPLIT_171(x) (x) BOOST_PP_SEQ_SPLIT_170 -# define BOOST_PP_SEQ_SPLIT_172(x) (x) BOOST_PP_SEQ_SPLIT_171 -# define BOOST_PP_SEQ_SPLIT_173(x) (x) BOOST_PP_SEQ_SPLIT_172 -# define BOOST_PP_SEQ_SPLIT_174(x) (x) BOOST_PP_SEQ_SPLIT_173 -# define BOOST_PP_SEQ_SPLIT_175(x) (x) BOOST_PP_SEQ_SPLIT_174 -# define BOOST_PP_SEQ_SPLIT_176(x) (x) BOOST_PP_SEQ_SPLIT_175 -# define BOOST_PP_SEQ_SPLIT_177(x) (x) BOOST_PP_SEQ_SPLIT_176 -# define BOOST_PP_SEQ_SPLIT_178(x) (x) BOOST_PP_SEQ_SPLIT_177 -# define BOOST_PP_SEQ_SPLIT_179(x) (x) BOOST_PP_SEQ_SPLIT_178 -# define BOOST_PP_SEQ_SPLIT_180(x) (x) BOOST_PP_SEQ_SPLIT_179 -# define BOOST_PP_SEQ_SPLIT_181(x) (x) BOOST_PP_SEQ_SPLIT_180 -# define BOOST_PP_SEQ_SPLIT_182(x) (x) BOOST_PP_SEQ_SPLIT_181 -# define BOOST_PP_SEQ_SPLIT_183(x) (x) BOOST_PP_SEQ_SPLIT_182 -# define BOOST_PP_SEQ_SPLIT_184(x) (x) BOOST_PP_SEQ_SPLIT_183 -# define BOOST_PP_SEQ_SPLIT_185(x) (x) BOOST_PP_SEQ_SPLIT_184 -# define BOOST_PP_SEQ_SPLIT_186(x) (x) BOOST_PP_SEQ_SPLIT_185 -# define BOOST_PP_SEQ_SPLIT_187(x) (x) BOOST_PP_SEQ_SPLIT_186 -# define BOOST_PP_SEQ_SPLIT_188(x) (x) BOOST_PP_SEQ_SPLIT_187 -# define BOOST_PP_SEQ_SPLIT_189(x) (x) BOOST_PP_SEQ_SPLIT_188 -# define BOOST_PP_SEQ_SPLIT_190(x) (x) BOOST_PP_SEQ_SPLIT_189 -# define BOOST_PP_SEQ_SPLIT_191(x) (x) BOOST_PP_SEQ_SPLIT_190 -# define BOOST_PP_SEQ_SPLIT_192(x) (x) BOOST_PP_SEQ_SPLIT_191 -# define BOOST_PP_SEQ_SPLIT_193(x) (x) BOOST_PP_SEQ_SPLIT_192 -# define BOOST_PP_SEQ_SPLIT_194(x) (x) BOOST_PP_SEQ_SPLIT_193 -# define BOOST_PP_SEQ_SPLIT_195(x) (x) BOOST_PP_SEQ_SPLIT_194 -# define BOOST_PP_SEQ_SPLIT_196(x) (x) BOOST_PP_SEQ_SPLIT_195 -# define BOOST_PP_SEQ_SPLIT_197(x) (x) BOOST_PP_SEQ_SPLIT_196 -# define BOOST_PP_SEQ_SPLIT_198(x) (x) BOOST_PP_SEQ_SPLIT_197 -# define BOOST_PP_SEQ_SPLIT_199(x) (x) BOOST_PP_SEQ_SPLIT_198 -# define BOOST_PP_SEQ_SPLIT_200(x) (x) BOOST_PP_SEQ_SPLIT_199 -# define BOOST_PP_SEQ_SPLIT_201(x) (x) BOOST_PP_SEQ_SPLIT_200 -# define BOOST_PP_SEQ_SPLIT_202(x) (x) BOOST_PP_SEQ_SPLIT_201 -# define BOOST_PP_SEQ_SPLIT_203(x) (x) BOOST_PP_SEQ_SPLIT_202 -# define BOOST_PP_SEQ_SPLIT_204(x) (x) BOOST_PP_SEQ_SPLIT_203 -# define BOOST_PP_SEQ_SPLIT_205(x) (x) BOOST_PP_SEQ_SPLIT_204 -# define BOOST_PP_SEQ_SPLIT_206(x) (x) BOOST_PP_SEQ_SPLIT_205 -# define BOOST_PP_SEQ_SPLIT_207(x) (x) BOOST_PP_SEQ_SPLIT_206 -# define BOOST_PP_SEQ_SPLIT_208(x) (x) BOOST_PP_SEQ_SPLIT_207 -# define BOOST_PP_SEQ_SPLIT_209(x) (x) BOOST_PP_SEQ_SPLIT_208 -# define BOOST_PP_SEQ_SPLIT_210(x) (x) BOOST_PP_SEQ_SPLIT_209 -# define BOOST_PP_SEQ_SPLIT_211(x) (x) BOOST_PP_SEQ_SPLIT_210 -# define BOOST_PP_SEQ_SPLIT_212(x) (x) BOOST_PP_SEQ_SPLIT_211 -# define BOOST_PP_SEQ_SPLIT_213(x) (x) BOOST_PP_SEQ_SPLIT_212 -# define BOOST_PP_SEQ_SPLIT_214(x) (x) BOOST_PP_SEQ_SPLIT_213 -# define BOOST_PP_SEQ_SPLIT_215(x) (x) BOOST_PP_SEQ_SPLIT_214 -# define BOOST_PP_SEQ_SPLIT_216(x) (x) BOOST_PP_SEQ_SPLIT_215 -# define BOOST_PP_SEQ_SPLIT_217(x) (x) BOOST_PP_SEQ_SPLIT_216 -# define BOOST_PP_SEQ_SPLIT_218(x) (x) BOOST_PP_SEQ_SPLIT_217 -# define BOOST_PP_SEQ_SPLIT_219(x) (x) BOOST_PP_SEQ_SPLIT_218 -# define BOOST_PP_SEQ_SPLIT_220(x) (x) BOOST_PP_SEQ_SPLIT_219 -# define BOOST_PP_SEQ_SPLIT_221(x) (x) BOOST_PP_SEQ_SPLIT_220 -# define BOOST_PP_SEQ_SPLIT_222(x) (x) BOOST_PP_SEQ_SPLIT_221 -# define BOOST_PP_SEQ_SPLIT_223(x) (x) BOOST_PP_SEQ_SPLIT_222 -# define BOOST_PP_SEQ_SPLIT_224(x) (x) BOOST_PP_SEQ_SPLIT_223 -# define BOOST_PP_SEQ_SPLIT_225(x) (x) BOOST_PP_SEQ_SPLIT_224 -# define BOOST_PP_SEQ_SPLIT_226(x) (x) BOOST_PP_SEQ_SPLIT_225 -# define BOOST_PP_SEQ_SPLIT_227(x) (x) BOOST_PP_SEQ_SPLIT_226 -# define BOOST_PP_SEQ_SPLIT_228(x) (x) BOOST_PP_SEQ_SPLIT_227 -# define BOOST_PP_SEQ_SPLIT_229(x) (x) BOOST_PP_SEQ_SPLIT_228 -# define BOOST_PP_SEQ_SPLIT_230(x) (x) BOOST_PP_SEQ_SPLIT_229 -# define BOOST_PP_SEQ_SPLIT_231(x) (x) BOOST_PP_SEQ_SPLIT_230 -# define BOOST_PP_SEQ_SPLIT_232(x) (x) BOOST_PP_SEQ_SPLIT_231 -# define BOOST_PP_SEQ_SPLIT_233(x) (x) BOOST_PP_SEQ_SPLIT_232 -# define BOOST_PP_SEQ_SPLIT_234(x) (x) BOOST_PP_SEQ_SPLIT_233 -# define BOOST_PP_SEQ_SPLIT_235(x) (x) BOOST_PP_SEQ_SPLIT_234 -# define BOOST_PP_SEQ_SPLIT_236(x) (x) BOOST_PP_SEQ_SPLIT_235 -# define BOOST_PP_SEQ_SPLIT_237(x) (x) BOOST_PP_SEQ_SPLIT_236 -# define BOOST_PP_SEQ_SPLIT_238(x) (x) BOOST_PP_SEQ_SPLIT_237 -# define BOOST_PP_SEQ_SPLIT_239(x) (x) BOOST_PP_SEQ_SPLIT_238 -# define BOOST_PP_SEQ_SPLIT_240(x) (x) BOOST_PP_SEQ_SPLIT_239 -# define BOOST_PP_SEQ_SPLIT_241(x) (x) BOOST_PP_SEQ_SPLIT_240 -# define BOOST_PP_SEQ_SPLIT_242(x) (x) BOOST_PP_SEQ_SPLIT_241 -# define BOOST_PP_SEQ_SPLIT_243(x) (x) BOOST_PP_SEQ_SPLIT_242 -# define BOOST_PP_SEQ_SPLIT_244(x) (x) BOOST_PP_SEQ_SPLIT_243 -# define BOOST_PP_SEQ_SPLIT_245(x) (x) BOOST_PP_SEQ_SPLIT_244 -# define BOOST_PP_SEQ_SPLIT_246(x) (x) BOOST_PP_SEQ_SPLIT_245 -# define BOOST_PP_SEQ_SPLIT_247(x) (x) BOOST_PP_SEQ_SPLIT_246 -# define BOOST_PP_SEQ_SPLIT_248(x) (x) BOOST_PP_SEQ_SPLIT_247 -# define BOOST_PP_SEQ_SPLIT_249(x) (x) BOOST_PP_SEQ_SPLIT_248 -# define BOOST_PP_SEQ_SPLIT_250(x) (x) BOOST_PP_SEQ_SPLIT_249 -# define BOOST_PP_SEQ_SPLIT_251(x) (x) BOOST_PP_SEQ_SPLIT_250 -# define BOOST_PP_SEQ_SPLIT_252(x) (x) BOOST_PP_SEQ_SPLIT_251 -# define BOOST_PP_SEQ_SPLIT_253(x) (x) BOOST_PP_SEQ_SPLIT_252 -# define BOOST_PP_SEQ_SPLIT_254(x) (x) BOOST_PP_SEQ_SPLIT_253 -# define BOOST_PP_SEQ_SPLIT_255(x) (x) BOOST_PP_SEQ_SPLIT_254 -# define BOOST_PP_SEQ_SPLIT_256(x) (x) BOOST_PP_SEQ_SPLIT_255 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/elem.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/elem.hpp deleted file mode 100644 index 9c7a4b276..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/elem.hpp +++ /dev/null @@ -1,304 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP -# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_ELEM */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq) -# else -# define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq)) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq)) -# define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res) -# define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY() -# define BOOST_PP_SEQ_ELEM_IV(x) x -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par -# define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq) -# define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im) -# define BOOST_PP_SEQ_ELEM_IV(x, _) x -# else -# if defined(__IBMC__) || defined(__IBMCPP__) -# define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq)) -# else -# define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq) -# endif -# define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im) -# define BOOST_PP_SEQ_ELEM_III(x, _) x -# endif -# -# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL -# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0 -# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1 -# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2 -# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3 -# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4 -# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5 -# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6 -# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7 -# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8 -# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9 -# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10 -# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11 -# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12 -# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13 -# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14 -# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15 -# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16 -# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17 -# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18 -# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19 -# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20 -# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21 -# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22 -# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23 -# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24 -# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25 -# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26 -# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27 -# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28 -# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29 -# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30 -# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31 -# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32 -# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33 -# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34 -# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35 -# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36 -# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37 -# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38 -# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39 -# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40 -# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41 -# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42 -# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43 -# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44 -# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45 -# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46 -# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47 -# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48 -# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49 -# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50 -# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51 -# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52 -# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53 -# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54 -# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55 -# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56 -# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57 -# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58 -# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59 -# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60 -# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61 -# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62 -# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63 -# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64 -# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65 -# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66 -# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67 -# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68 -# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69 -# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70 -# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71 -# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72 -# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73 -# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74 -# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75 -# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76 -# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77 -# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78 -# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79 -# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80 -# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81 -# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82 -# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83 -# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84 -# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85 -# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86 -# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87 -# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88 -# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89 -# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90 -# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91 -# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92 -# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93 -# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94 -# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95 -# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96 -# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97 -# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98 -# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99 -# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100 -# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101 -# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102 -# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103 -# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104 -# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105 -# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106 -# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107 -# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108 -# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109 -# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110 -# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111 -# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112 -# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113 -# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114 -# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115 -# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116 -# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117 -# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118 -# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119 -# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120 -# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121 -# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122 -# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123 -# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124 -# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125 -# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126 -# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127 -# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128 -# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129 -# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130 -# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131 -# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132 -# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133 -# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134 -# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135 -# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136 -# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137 -# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138 -# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139 -# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140 -# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141 -# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142 -# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143 -# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144 -# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145 -# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146 -# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147 -# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148 -# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149 -# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150 -# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151 -# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152 -# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153 -# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154 -# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155 -# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156 -# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157 -# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158 -# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159 -# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160 -# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161 -# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162 -# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163 -# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164 -# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165 -# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166 -# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167 -# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168 -# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169 -# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170 -# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171 -# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172 -# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173 -# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174 -# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175 -# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176 -# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177 -# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178 -# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179 -# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180 -# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181 -# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182 -# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183 -# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184 -# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185 -# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186 -# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187 -# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188 -# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189 -# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190 -# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191 -# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192 -# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193 -# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194 -# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195 -# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196 -# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197 -# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198 -# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199 -# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200 -# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201 -# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202 -# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203 -# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204 -# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205 -# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206 -# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207 -# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208 -# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209 -# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210 -# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211 -# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212 -# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213 -# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214 -# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215 -# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216 -# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217 -# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218 -# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219 -# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220 -# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221 -# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222 -# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223 -# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224 -# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225 -# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226 -# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227 -# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228 -# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229 -# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230 -# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231 -# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232 -# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233 -# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234 -# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235 -# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236 -# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237 -# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238 -# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239 -# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240 -# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241 -# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242 -# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243 -# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244 -# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245 -# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246 -# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247 -# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248 -# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249 -# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250 -# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251 -# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252 -# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253 -# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/enum.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/enum.hpp deleted file mode 100644 index b63b2425b..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/enum.hpp +++ /dev/null @@ -1,288 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP -# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_ENUM */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq) -# define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq) -# define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq -# else -# define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq -# endif -# -# define BOOST_PP_SEQ_ENUM_1(x) x -# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1 -# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2 -# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3 -# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4 -# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5 -# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6 -# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7 -# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8 -# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9 -# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10 -# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11 -# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12 -# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13 -# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14 -# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15 -# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16 -# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17 -# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18 -# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19 -# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20 -# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21 -# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22 -# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23 -# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24 -# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25 -# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26 -# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27 -# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28 -# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29 -# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30 -# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31 -# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32 -# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33 -# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34 -# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35 -# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36 -# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37 -# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38 -# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39 -# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40 -# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41 -# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42 -# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43 -# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44 -# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45 -# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46 -# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47 -# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48 -# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49 -# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50 -# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51 -# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52 -# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53 -# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54 -# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55 -# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56 -# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57 -# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58 -# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59 -# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60 -# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61 -# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62 -# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63 -# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64 -# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65 -# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66 -# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67 -# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68 -# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69 -# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70 -# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71 -# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72 -# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73 -# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74 -# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75 -# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76 -# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77 -# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78 -# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79 -# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80 -# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81 -# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82 -# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83 -# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84 -# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85 -# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86 -# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87 -# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88 -# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89 -# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90 -# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91 -# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92 -# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93 -# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94 -# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95 -# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96 -# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97 -# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98 -# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99 -# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100 -# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101 -# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102 -# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103 -# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104 -# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105 -# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106 -# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107 -# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108 -# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109 -# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110 -# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111 -# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112 -# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113 -# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114 -# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115 -# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116 -# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117 -# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118 -# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119 -# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120 -# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121 -# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122 -# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123 -# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124 -# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125 -# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126 -# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127 -# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128 -# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129 -# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130 -# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131 -# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132 -# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133 -# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134 -# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135 -# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136 -# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137 -# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138 -# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139 -# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140 -# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141 -# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142 -# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143 -# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144 -# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145 -# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146 -# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147 -# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148 -# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149 -# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150 -# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151 -# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152 -# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153 -# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154 -# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155 -# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156 -# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157 -# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158 -# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159 -# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160 -# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161 -# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162 -# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163 -# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164 -# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165 -# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166 -# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167 -# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168 -# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169 -# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170 -# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171 -# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172 -# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173 -# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174 -# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175 -# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176 -# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177 -# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178 -# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179 -# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180 -# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181 -# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182 -# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183 -# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184 -# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185 -# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186 -# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187 -# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188 -# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189 -# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190 -# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191 -# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192 -# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193 -# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194 -# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195 -# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196 -# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197 -# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198 -# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199 -# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200 -# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201 -# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202 -# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203 -# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204 -# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205 -# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206 -# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207 -# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208 -# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209 -# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210 -# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211 -# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212 -# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213 -# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214 -# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215 -# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216 -# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217 -# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218 -# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219 -# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220 -# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221 -# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222 -# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223 -# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224 -# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225 -# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226 -# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227 -# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228 -# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229 -# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230 -# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231 -# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232 -# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233 -# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234 -# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235 -# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236 -# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237 -# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238 -# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239 -# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240 -# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241 -# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242 -# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243 -# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244 -# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245 -# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246 -# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247 -# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248 -# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249 -# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250 -# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251 -# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252 -# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253 -# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254 -# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/filter.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/filter.hpp deleted file mode 100644 index 4596bfe59..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/filter.hpp +++ /dev/null @@ -1,54 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FILTER_HPP -# define BOOST_PREPROCESSOR_SEQ_FILTER_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FILTER */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) -# else -# define BOOST_PP_SEQ_FILTER(pred, data, seq) BOOST_PP_SEQ_FILTER_I(pred, data, seq) -# define BOOST_PP_SEQ_FILTER_I(pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_IM(s, BOOST_PP_TUPLE_REM_3 st, elem) -# define BOOST_PP_SEQ_FILTER_O_IM(s, im, elem) BOOST_PP_SEQ_FILTER_O_I(s, im, elem) -# else -# define BOOST_PP_SEQ_FILTER_O(s, st, elem) BOOST_PP_SEQ_FILTER_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, st), BOOST_PP_TUPLE_ELEM(3, 1, st), BOOST_PP_TUPLE_ELEM(3, 2, st), elem) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred(s, data, elem), (elem))) -# else -# define BOOST_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res BOOST_PP_EXPR_IF(pred##(s, data, elem), (elem))) -# endif -# -# /* BOOST_PP_SEQ_FILTER_S */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) -# else -# define BOOST_PP_SEQ_FILTER_S(s, pred, data, seq) BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq) -# define BOOST_PP_SEQ_FILTER_S_I(s, pred, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_FILTER_O, (pred, data, (nil)), seq))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/first_n.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/first_n.hpp deleted file mode 100644 index c3c0716ee..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/first_n.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP -# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FIRST_N */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil))) -# else -# define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq) -# define BOOST_PP_SEQ_FIRST_N_I(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/fold_left.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/fold_left.hpp deleted file mode 100644 index ab051b69d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/fold_left.hpp +++ /dev/null @@ -1,1070 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP -# define BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FOLD_LEFT */ -# -# if 0 -# define BOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ... -# endif -# -# define BOOST_PP_SEQ_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256)) -# define BOOST_PP_SEQ_FOLD_LEFT_P(n) BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_CHECK_, BOOST_PP_SEQ_FOLD_LEFT_I_ ## n(BOOST_PP_SEQ_FOLD_LEFT_O, BOOST_PP_NIL, (nil), 1)) -# define BOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st -# -# define BOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) BOOST_PP_ERROR(0x0005) -# define BOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) BOOST_PP_ERROR(0x0005) -# -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_NIL 1 -# -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0 -# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0 -# -# define BOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st -# -# define BOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, BOOST_PP_SEQ_SIZE(ss)) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() -# define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# else -# define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/fold_right.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/fold_right.hpp deleted file mode 100644 index c2c365b29..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/fold_right.hpp +++ /dev/null @@ -1,288 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP -# define BOOST_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FOLD_RIGHT */ -# -# if 0 -# define BOOST_PP_SEQ_FOLD_RIGHT(op, state, seq) ... -# endif -# -# define BOOST_PP_SEQ_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256)) -# -# define BOOST_PP_SEQ_FOLD_RIGHT_257(op, st, ss) BOOST_PP_ERROR(0x0005) -# -# define BOOST_PP_SEQ_FOLD_RIGHT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, BOOST_PP_SEQ_REVERSE_S(2, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, BOOST_PP_SEQ_REVERSE_S(3, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, BOOST_PP_SEQ_REVERSE_S(4, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, BOOST_PP_SEQ_REVERSE_S(5, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, BOOST_PP_SEQ_REVERSE_S(6, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, BOOST_PP_SEQ_REVERSE_S(7, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, BOOST_PP_SEQ_REVERSE_S(8, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, BOOST_PP_SEQ_REVERSE_S(9, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, BOOST_PP_SEQ_REVERSE_S(10, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, BOOST_PP_SEQ_REVERSE_S(11, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, BOOST_PP_SEQ_REVERSE_S(12, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, BOOST_PP_SEQ_REVERSE_S(13, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, BOOST_PP_SEQ_REVERSE_S(14, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, BOOST_PP_SEQ_REVERSE_S(15, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, BOOST_PP_SEQ_REVERSE_S(16, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, BOOST_PP_SEQ_REVERSE_S(17, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, BOOST_PP_SEQ_REVERSE_S(18, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, BOOST_PP_SEQ_REVERSE_S(19, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, BOOST_PP_SEQ_REVERSE_S(20, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, BOOST_PP_SEQ_REVERSE_S(21, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, BOOST_PP_SEQ_REVERSE_S(22, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, BOOST_PP_SEQ_REVERSE_S(23, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, BOOST_PP_SEQ_REVERSE_S(24, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, BOOST_PP_SEQ_REVERSE_S(25, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, BOOST_PP_SEQ_REVERSE_S(26, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, BOOST_PP_SEQ_REVERSE_S(27, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, BOOST_PP_SEQ_REVERSE_S(28, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, BOOST_PP_SEQ_REVERSE_S(29, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, BOOST_PP_SEQ_REVERSE_S(30, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, BOOST_PP_SEQ_REVERSE_S(31, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, BOOST_PP_SEQ_REVERSE_S(32, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, BOOST_PP_SEQ_REVERSE_S(33, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, BOOST_PP_SEQ_REVERSE_S(34, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, BOOST_PP_SEQ_REVERSE_S(35, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, BOOST_PP_SEQ_REVERSE_S(36, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, BOOST_PP_SEQ_REVERSE_S(37, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, BOOST_PP_SEQ_REVERSE_S(38, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, BOOST_PP_SEQ_REVERSE_S(39, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, BOOST_PP_SEQ_REVERSE_S(40, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, BOOST_PP_SEQ_REVERSE_S(41, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, BOOST_PP_SEQ_REVERSE_S(42, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, BOOST_PP_SEQ_REVERSE_S(43, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, BOOST_PP_SEQ_REVERSE_S(44, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, BOOST_PP_SEQ_REVERSE_S(45, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, BOOST_PP_SEQ_REVERSE_S(46, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, BOOST_PP_SEQ_REVERSE_S(47, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, BOOST_PP_SEQ_REVERSE_S(48, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, BOOST_PP_SEQ_REVERSE_S(49, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, BOOST_PP_SEQ_REVERSE_S(50, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, BOOST_PP_SEQ_REVERSE_S(51, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, BOOST_PP_SEQ_REVERSE_S(52, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, BOOST_PP_SEQ_REVERSE_S(53, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, BOOST_PP_SEQ_REVERSE_S(54, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, BOOST_PP_SEQ_REVERSE_S(55, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, BOOST_PP_SEQ_REVERSE_S(56, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, BOOST_PP_SEQ_REVERSE_S(57, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, BOOST_PP_SEQ_REVERSE_S(58, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, BOOST_PP_SEQ_REVERSE_S(59, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, BOOST_PP_SEQ_REVERSE_S(60, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, BOOST_PP_SEQ_REVERSE_S(61, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, BOOST_PP_SEQ_REVERSE_S(62, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, BOOST_PP_SEQ_REVERSE_S(63, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, BOOST_PP_SEQ_REVERSE_S(64, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, BOOST_PP_SEQ_REVERSE_S(65, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, BOOST_PP_SEQ_REVERSE_S(66, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, BOOST_PP_SEQ_REVERSE_S(67, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, BOOST_PP_SEQ_REVERSE_S(68, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, BOOST_PP_SEQ_REVERSE_S(69, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, BOOST_PP_SEQ_REVERSE_S(70, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, BOOST_PP_SEQ_REVERSE_S(71, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, BOOST_PP_SEQ_REVERSE_S(72, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, BOOST_PP_SEQ_REVERSE_S(73, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, BOOST_PP_SEQ_REVERSE_S(74, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, BOOST_PP_SEQ_REVERSE_S(75, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, BOOST_PP_SEQ_REVERSE_S(76, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, BOOST_PP_SEQ_REVERSE_S(77, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, BOOST_PP_SEQ_REVERSE_S(78, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, BOOST_PP_SEQ_REVERSE_S(79, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, BOOST_PP_SEQ_REVERSE_S(80, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, BOOST_PP_SEQ_REVERSE_S(81, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, BOOST_PP_SEQ_REVERSE_S(82, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, BOOST_PP_SEQ_REVERSE_S(83, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, BOOST_PP_SEQ_REVERSE_S(84, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, BOOST_PP_SEQ_REVERSE_S(85, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, BOOST_PP_SEQ_REVERSE_S(86, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, BOOST_PP_SEQ_REVERSE_S(87, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, BOOST_PP_SEQ_REVERSE_S(88, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, BOOST_PP_SEQ_REVERSE_S(89, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, BOOST_PP_SEQ_REVERSE_S(90, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, BOOST_PP_SEQ_REVERSE_S(91, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, BOOST_PP_SEQ_REVERSE_S(92, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, BOOST_PP_SEQ_REVERSE_S(93, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, BOOST_PP_SEQ_REVERSE_S(94, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, BOOST_PP_SEQ_REVERSE_S(95, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, BOOST_PP_SEQ_REVERSE_S(96, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, BOOST_PP_SEQ_REVERSE_S(97, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, BOOST_PP_SEQ_REVERSE_S(98, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, BOOST_PP_SEQ_REVERSE_S(99, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, BOOST_PP_SEQ_REVERSE_S(100, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, BOOST_PP_SEQ_REVERSE_S(101, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, BOOST_PP_SEQ_REVERSE_S(102, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, BOOST_PP_SEQ_REVERSE_S(103, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, BOOST_PP_SEQ_REVERSE_S(104, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, BOOST_PP_SEQ_REVERSE_S(105, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, BOOST_PP_SEQ_REVERSE_S(106, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, BOOST_PP_SEQ_REVERSE_S(107, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, BOOST_PP_SEQ_REVERSE_S(108, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, BOOST_PP_SEQ_REVERSE_S(109, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, BOOST_PP_SEQ_REVERSE_S(110, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, BOOST_PP_SEQ_REVERSE_S(111, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, BOOST_PP_SEQ_REVERSE_S(112, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, BOOST_PP_SEQ_REVERSE_S(113, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, BOOST_PP_SEQ_REVERSE_S(114, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, BOOST_PP_SEQ_REVERSE_S(115, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, BOOST_PP_SEQ_REVERSE_S(116, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, BOOST_PP_SEQ_REVERSE_S(117, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, BOOST_PP_SEQ_REVERSE_S(118, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, BOOST_PP_SEQ_REVERSE_S(119, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, BOOST_PP_SEQ_REVERSE_S(120, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, BOOST_PP_SEQ_REVERSE_S(121, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, BOOST_PP_SEQ_REVERSE_S(122, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, BOOST_PP_SEQ_REVERSE_S(123, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, BOOST_PP_SEQ_REVERSE_S(124, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, BOOST_PP_SEQ_REVERSE_S(125, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, BOOST_PP_SEQ_REVERSE_S(126, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, BOOST_PP_SEQ_REVERSE_S(127, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, BOOST_PP_SEQ_REVERSE_S(128, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, BOOST_PP_SEQ_REVERSE_S(129, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, BOOST_PP_SEQ_REVERSE_S(130, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, BOOST_PP_SEQ_REVERSE_S(131, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, BOOST_PP_SEQ_REVERSE_S(132, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, BOOST_PP_SEQ_REVERSE_S(133, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, BOOST_PP_SEQ_REVERSE_S(134, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, BOOST_PP_SEQ_REVERSE_S(135, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, BOOST_PP_SEQ_REVERSE_S(136, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, BOOST_PP_SEQ_REVERSE_S(137, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, BOOST_PP_SEQ_REVERSE_S(138, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, BOOST_PP_SEQ_REVERSE_S(139, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, BOOST_PP_SEQ_REVERSE_S(140, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, BOOST_PP_SEQ_REVERSE_S(141, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, BOOST_PP_SEQ_REVERSE_S(142, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, BOOST_PP_SEQ_REVERSE_S(143, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, BOOST_PP_SEQ_REVERSE_S(144, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, BOOST_PP_SEQ_REVERSE_S(145, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, BOOST_PP_SEQ_REVERSE_S(146, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, BOOST_PP_SEQ_REVERSE_S(147, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, BOOST_PP_SEQ_REVERSE_S(148, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, BOOST_PP_SEQ_REVERSE_S(149, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, BOOST_PP_SEQ_REVERSE_S(150, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, BOOST_PP_SEQ_REVERSE_S(151, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, BOOST_PP_SEQ_REVERSE_S(152, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, BOOST_PP_SEQ_REVERSE_S(153, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, BOOST_PP_SEQ_REVERSE_S(154, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, BOOST_PP_SEQ_REVERSE_S(155, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, BOOST_PP_SEQ_REVERSE_S(156, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, BOOST_PP_SEQ_REVERSE_S(157, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, BOOST_PP_SEQ_REVERSE_S(158, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, BOOST_PP_SEQ_REVERSE_S(159, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, BOOST_PP_SEQ_REVERSE_S(160, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, BOOST_PP_SEQ_REVERSE_S(161, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, BOOST_PP_SEQ_REVERSE_S(162, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, BOOST_PP_SEQ_REVERSE_S(163, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, BOOST_PP_SEQ_REVERSE_S(164, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, BOOST_PP_SEQ_REVERSE_S(165, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, BOOST_PP_SEQ_REVERSE_S(166, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, BOOST_PP_SEQ_REVERSE_S(167, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, BOOST_PP_SEQ_REVERSE_S(168, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, BOOST_PP_SEQ_REVERSE_S(169, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, BOOST_PP_SEQ_REVERSE_S(170, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, BOOST_PP_SEQ_REVERSE_S(171, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, BOOST_PP_SEQ_REVERSE_S(172, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, BOOST_PP_SEQ_REVERSE_S(173, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, BOOST_PP_SEQ_REVERSE_S(174, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, BOOST_PP_SEQ_REVERSE_S(175, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, BOOST_PP_SEQ_REVERSE_S(176, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, BOOST_PP_SEQ_REVERSE_S(177, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, BOOST_PP_SEQ_REVERSE_S(178, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, BOOST_PP_SEQ_REVERSE_S(179, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, BOOST_PP_SEQ_REVERSE_S(180, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, BOOST_PP_SEQ_REVERSE_S(181, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, BOOST_PP_SEQ_REVERSE_S(182, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, BOOST_PP_SEQ_REVERSE_S(183, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, BOOST_PP_SEQ_REVERSE_S(184, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, BOOST_PP_SEQ_REVERSE_S(185, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, BOOST_PP_SEQ_REVERSE_S(186, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, BOOST_PP_SEQ_REVERSE_S(187, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, BOOST_PP_SEQ_REVERSE_S(188, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, BOOST_PP_SEQ_REVERSE_S(189, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, BOOST_PP_SEQ_REVERSE_S(190, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, BOOST_PP_SEQ_REVERSE_S(191, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, BOOST_PP_SEQ_REVERSE_S(192, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, BOOST_PP_SEQ_REVERSE_S(193, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, BOOST_PP_SEQ_REVERSE_S(194, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, BOOST_PP_SEQ_REVERSE_S(195, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, BOOST_PP_SEQ_REVERSE_S(196, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, BOOST_PP_SEQ_REVERSE_S(197, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, BOOST_PP_SEQ_REVERSE_S(198, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, BOOST_PP_SEQ_REVERSE_S(199, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, BOOST_PP_SEQ_REVERSE_S(200, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, BOOST_PP_SEQ_REVERSE_S(201, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, BOOST_PP_SEQ_REVERSE_S(202, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, BOOST_PP_SEQ_REVERSE_S(203, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, BOOST_PP_SEQ_REVERSE_S(204, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, BOOST_PP_SEQ_REVERSE_S(205, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, BOOST_PP_SEQ_REVERSE_S(206, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, BOOST_PP_SEQ_REVERSE_S(207, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, BOOST_PP_SEQ_REVERSE_S(208, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, BOOST_PP_SEQ_REVERSE_S(209, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, BOOST_PP_SEQ_REVERSE_S(210, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, BOOST_PP_SEQ_REVERSE_S(211, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, BOOST_PP_SEQ_REVERSE_S(212, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, BOOST_PP_SEQ_REVERSE_S(213, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, BOOST_PP_SEQ_REVERSE_S(214, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, BOOST_PP_SEQ_REVERSE_S(215, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, BOOST_PP_SEQ_REVERSE_S(216, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, BOOST_PP_SEQ_REVERSE_S(217, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, BOOST_PP_SEQ_REVERSE_S(218, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, BOOST_PP_SEQ_REVERSE_S(219, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, BOOST_PP_SEQ_REVERSE_S(220, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, BOOST_PP_SEQ_REVERSE_S(221, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, BOOST_PP_SEQ_REVERSE_S(222, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, BOOST_PP_SEQ_REVERSE_S(223, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, BOOST_PP_SEQ_REVERSE_S(224, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, BOOST_PP_SEQ_REVERSE_S(225, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, BOOST_PP_SEQ_REVERSE_S(226, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, BOOST_PP_SEQ_REVERSE_S(227, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, BOOST_PP_SEQ_REVERSE_S(228, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, BOOST_PP_SEQ_REVERSE_S(229, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, BOOST_PP_SEQ_REVERSE_S(230, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, BOOST_PP_SEQ_REVERSE_S(231, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, BOOST_PP_SEQ_REVERSE_S(232, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, BOOST_PP_SEQ_REVERSE_S(233, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, BOOST_PP_SEQ_REVERSE_S(234, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, BOOST_PP_SEQ_REVERSE_S(235, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, BOOST_PP_SEQ_REVERSE_S(236, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, BOOST_PP_SEQ_REVERSE_S(237, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, BOOST_PP_SEQ_REVERSE_S(238, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, BOOST_PP_SEQ_REVERSE_S(239, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, BOOST_PP_SEQ_REVERSE_S(240, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, BOOST_PP_SEQ_REVERSE_S(241, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, BOOST_PP_SEQ_REVERSE_S(242, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, BOOST_PP_SEQ_REVERSE_S(243, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, BOOST_PP_SEQ_REVERSE_S(244, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, BOOST_PP_SEQ_REVERSE_S(245, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, BOOST_PP_SEQ_REVERSE_S(246, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, BOOST_PP_SEQ_REVERSE_S(247, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, BOOST_PP_SEQ_REVERSE_S(248, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, BOOST_PP_SEQ_REVERSE_S(249, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, BOOST_PP_SEQ_REVERSE_S(250, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, BOOST_PP_SEQ_REVERSE_S(251, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, BOOST_PP_SEQ_REVERSE_S(252, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, BOOST_PP_SEQ_REVERSE_S(253, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, BOOST_PP_SEQ_REVERSE_S(254, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, BOOST_PP_SEQ_REVERSE_S(255, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, BOOST_PP_SEQ_REVERSE_S(256, ss), BOOST_PP_SEQ_SIZE(ss)) -# define BOOST_PP_SEQ_FOLD_RIGHT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, BOOST_PP_SEQ_REVERSE_S(257, ss), BOOST_PP_SEQ_SIZE(ss)) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/for_each.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/for_each.hpp deleted file mode 100644 index 3f9c0d781..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/for_each.hpp +++ /dev/null @@ -1,107 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP -# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FOR_EACH */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq) -# else -# define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) -# define BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC(macro, data, seq) BOOST_PP_FOR((macro, data, seq, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M) -# define BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY(macro, data, seq) -# -# define BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK(macro, data, seq) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ - BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC, \ - BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY \ - ) \ - (macro, data, seq) \ -/**/ -# -# define BOOST_PP_SEQ_FOR_EACH_P(r, x) BOOST_PP_TUPLE_ELEM(4, 3, x) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x -# else -# define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I(BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x)) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq, sz) \ - BOOST_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, BOOST_PP_DEC(sz)) \ -/**/ -# define BOOST_PP_SEQ_FOR_EACH_O_I_DEC(macro, data, seq, sz) \ - ( \ - macro, \ - data, \ - BOOST_PP_IF \ - ( \ - sz, \ - BOOST_PP_SEQ_FOR_EACH_O_I_TAIL, \ - BOOST_PP_SEQ_FOR_EACH_O_I_NIL \ - ) \ - (seq), \ - sz \ - ) \ -/**/ -# define BOOST_PP_SEQ_FOR_EACH_O_I_TAIL(seq) BOOST_PP_SEQ_TAIL(seq) -# define BOOST_PP_SEQ_FOR_EACH_O_I_NIL(seq) BOOST_PP_NIL -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_4 x) -# define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im) -# else -# define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_I(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x)) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq, sz) macro(r, data, BOOST_PP_SEQ_HEAD(seq)) -# -# /* BOOST_PP_SEQ_FOR_EACH_R */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_R(r, macro, data, seq) -# else -# define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) -# define BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_R(r, macro, data, seq) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M) -# define BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY_R(r, macro, data, seq) -# -# define BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_R(r, macro, data, seq) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ - BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EXEC_R, \ - BOOST_PP_SEQ_FOR_EACH_DETAIL_CHECK_EMPTY_R \ - ) \ - (r, macro, data, seq) \ -/**/ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/for_each_i.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/for_each_i.hpp deleted file mode 100644 index 81028d77d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/for_each_i.hpp +++ /dev/null @@ -1,109 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP -# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FOR_EACH_I */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK(macro, data, seq) -# else -# define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) -# define BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK(macro, data, seq) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EXEC(macro, data, seq) BOOST_PP_FOR((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M) -# define BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EMPTY(macro, data, seq) -# -# define BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK(macro, data, seq) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ - BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EXEC, \ - BOOST_PP_SEQ_FOR_EACH_I_DETAIL_CHECK_EMPTY \ - ) \ - (macro, data, seq) \ -/**/ -# -# define BOOST_PP_SEQ_FOR_EACH_I_P(r, x) BOOST_PP_TUPLE_ELEM(5, 4, x) -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x -# else -# define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I(BOOST_PP_TUPLE_ELEM(5, 0, x), BOOST_PP_TUPLE_ELEM(5, 1, x), BOOST_PP_TUPLE_ELEM(5, 2, x), BOOST_PP_TUPLE_ELEM(5, 3, x), BOOST_PP_TUPLE_ELEM(5, 4, x)) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i, sz) \ - BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, BOOST_PP_DEC(sz)) \ -/**/ -# define BOOST_PP_SEQ_FOR_EACH_I_O_I_DEC(macro, data, seq, i, sz) \ - ( \ - macro, \ - data, \ - BOOST_PP_IF \ - ( \ - sz, \ - BOOST_PP_SEQ_FOR_EACH_I_O_I_TAIL, \ - BOOST_PP_SEQ_FOR_EACH_I_O_I_NIL \ - ) \ - (seq), \ - BOOST_PP_INC(i), \ - sz \ - ) \ -/**/ -# define BOOST_PP_SEQ_FOR_EACH_I_O_I_TAIL(seq) BOOST_PP_SEQ_TAIL(seq) -# define BOOST_PP_SEQ_FOR_EACH_I_O_I_NIL(seq) BOOST_PP_NIL -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_5 x) -# define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im) -# else -# define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_ELEM(5, 0, x), BOOST_PP_TUPLE_ELEM(5, 1, x), BOOST_PP_TUPLE_ELEM(5, 2, x), BOOST_PP_TUPLE_ELEM(5, 3, x), BOOST_PP_TUPLE_ELEM(5, 4, x)) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i, sz) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq)) -# -# /* BOOST_PP_SEQ_FOR_EACH_I_R */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq) -# else -# define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) -# define BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq, 0, BOOST_PP_SEQ_SIZE(seq)), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M) -# define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EMPTY(r, macro, data, seq) -# -# define BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK(r, macro, data, seq) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY(seq), \ - BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EXEC, \ - BOOST_PP_SEQ_FOR_EACH_I_R_DETAIL_CHECK_EMPTY \ - ) \ - (r, macro, data, seq) \ -/**/ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/for_each_product.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/for_each_product.hpp deleted file mode 100644 index baf22df48..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/for_each_product.hpp +++ /dev/null @@ -1,126 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP -# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT */ -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR, macro, sets) -# -# /* BOOST_PP_SEQ_FOR_EACH_PRODUCT_R */ -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(BOOST_PP_FOR_ ## r, macro, sets) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0) -# else -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) impl((BOOST_PP_SEQ_HEAD(sets)(nil), BOOST_PP_SEQ_TAIL(sets)(nil), (nil), macro), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I data -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(cset)) -# else -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 0, data))) -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I data -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (BOOST_PP_SEQ_TAIL(cset), rset, res, macro) -# else -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) (BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(4, 0, data)), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data)) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) BOOST_PP_IF(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 1, data))), BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_ ## i, BOOST_PP_SEQ_FOR_EACH_PRODUCT_I) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data)) -# else -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, BOOST_PP_TUPLE_REM_4 data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) macro(r, BOOST_PP_SEQ_TAIL(res (BOOST_PP_SEQ_HEAD(cset)))) -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I data -# else -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(BOOST_PP_TUPLE_ELEM(4, 0, data), BOOST_PP_TUPLE_ELEM(4, 1, data), BOOST_PP_TUPLE_ELEM(4, 2, data), BOOST_PP_TUPLE_ELEM(4, 3, data)) -# endif -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) (BOOST_PP_SEQ_HEAD(rset)(nil), BOOST_PP_SEQ_TAIL(rset), res (BOOST_PP_SEQ_HEAD(cset)), macro) -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) BOOST_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data) -# -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_1) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_2) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_3) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_4) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_5) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_6) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_7) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_8) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_9) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_10) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_11) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_12) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_13) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_14) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_15) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_16) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_17) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_18) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_19) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_20) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_21) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_22) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_23) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_24) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_25) -# define BOOST_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) BOOST_PP_FOR_ ## r(BOOST_PP_SEQ_FOR_EACH_PRODUCT_H(data), BOOST_PP_SEQ_FOR_EACH_PRODUCT_P, BOOST_PP_SEQ_FOR_EACH_PRODUCT_O, BOOST_PP_SEQ_FOR_EACH_PRODUCT_M_26) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/insert.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/insert.hpp deleted file mode 100644 index 59ce2f4d1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/insert.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_INSERT_HPP -# define BOOST_PREPROCESSOR_SEQ_INSERT_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_INSERT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq) -# else -# define BOOST_PP_SEQ_INSERT(seq, i, elem) BOOST_PP_SEQ_INSERT_I(seq, i, elem) -# define BOOST_PP_SEQ_INSERT_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REST_N(i, seq) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/pop_back.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/pop_back.hpp deleted file mode 100644 index 54200d618..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/pop_back.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP -# define BOOST_PREPROCESSOR_SEQ_POP_BACK_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_POP_BACK */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq) -# else -# define BOOST_PP_SEQ_POP_BACK(seq) BOOST_PP_SEQ_POP_BACK_I(seq) -# define BOOST_PP_SEQ_POP_BACK_I(seq) BOOST_PP_SEQ_FIRST_N(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), seq) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/pop_front.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/pop_front.hpp deleted file mode 100644 index 7d94eea91..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/pop_front.hpp +++ /dev/null @@ -1,27 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP -# define BOOST_PREPROCESSOR_SEQ_POP_FRONT_HPP -# -# include -# include -# -# /* BOOST_PP_SEQ_POP_FRONT */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_TAIL(seq) -# else -# define BOOST_PP_SEQ_POP_FRONT(seq) BOOST_PP_SEQ_POP_FRONT_I(seq) -# define BOOST_PP_SEQ_POP_FRONT_I(seq) BOOST_PP_SEQ_TAIL(seq) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/push_back.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/push_back.hpp deleted file mode 100644 index 1938d0be6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/push_back.hpp +++ /dev/null @@ -1,19 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP -# define BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP -# -# /* BOOST_PP_SEQ_PUSH_BACK */ -# -# define BOOST_PP_SEQ_PUSH_BACK(seq, elem) seq(elem) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/push_front.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/push_front.hpp deleted file mode 100644 index 2ce73ad1a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/push_front.hpp +++ /dev/null @@ -1,19 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP -# define BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP -# -# /* BOOST_PP_SEQ_PUSH_FRONT */ -# -# define BOOST_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/remove.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/remove.hpp deleted file mode 100644 index d2f77b0c6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/remove.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_REMOVE_HPP -# define BOOST_PREPROCESSOR_SEQ_REMOVE_HPP -# -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_REMOVE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq) -# else -# define BOOST_PP_SEQ_REMOVE(seq, i) BOOST_PP_SEQ_REMOVE_I(seq, i) -# define BOOST_PP_SEQ_REMOVE_I(seq, i) BOOST_PP_SEQ_FIRST_N(i, seq) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/replace.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/replace.hpp deleted file mode 100644 index 0cf6b7755..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/replace.hpp +++ /dev/null @@ -1,45 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_REPLACE_HPP -# define BOOST_PREPROCESSOR_SEQ_REPLACE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_REPLACE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REPLACE_DETAIL_REST(seq, i) -# else -# define BOOST_PP_SEQ_REPLACE(seq, i, elem) BOOST_PP_SEQ_REPLACE_I(seq, i, elem) -# define BOOST_PP_SEQ_REPLACE_I(seq, i, elem) BOOST_PP_SEQ_FIRST_N(i, seq) (elem) BOOST_PP_SEQ_REPLACE_DETAIL_REST(seq, i) -# endif -# -# define BOOST_PP_SEQ_REPLACE_DETAIL_REST_EMPTY(seq, i) -# define BOOST_PP_SEQ_REPLACE_DETAIL_REST_VALID(seq, i) BOOST_PP_SEQ_REST_N(BOOST_PP_INC(i), seq) -# define BOOST_PP_SEQ_REPLACE_DETAIL_REST(seq, i) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_EQUAL(i,BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq))), \ - BOOST_PP_SEQ_REPLACE_DETAIL_REST_EMPTY, \ - BOOST_PP_SEQ_REPLACE_DETAIL_REST_VALID \ - ) \ - (seq, i) \ -/**/ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/rest_n.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/rest_n.hpp deleted file mode 100644 index 4aefba4fa..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/rest_n.hpp +++ /dev/null @@ -1,46 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_REST_N_HPP -# define BOOST_PREPROCESSOR_SEQ_REST_N_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_REST_N */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) -# else -# define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_I(n, seq) -# define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, BOOST_PP_SEQ_DETAIL_EMPTY_SIZE(seq)) -# endif -# -# define BOOST_PP_SEQ_REST_N_DETAIL_EXEC(n, seq, size) \ - BOOST_PP_EXPR_IIF \ - ( \ - BOOST_PP_BITAND \ - ( \ - BOOST_PP_SEQ_DETAIL_IS_NOT_EMPTY_SIZE(size), \ - BOOST_PP_NOT_EQUAL(n,size) \ - ), \ - BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), BOOST_PP_IDENTITY( (nil) seq )))() \ - ) \ -/**/ -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/reverse.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/reverse.hpp deleted file mode 100644 index 338d777d7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/reverse.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_REVERSE_HPP -# define BOOST_PREPROCESSOR_SEQ_REVERSE_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_REVERSE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)() -# else -# define BOOST_PP_SEQ_REVERSE(seq) BOOST_PP_SEQ_REVERSE_I(seq) -# define BOOST_PP_SEQ_REVERSE_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)() -# endif -# -# define BOOST_PP_SEQ_REVERSE_O(s, state, elem) (elem) state -# -# /* BOOST_PP_SEQ_REVERSE_S */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)() -# else -# define BOOST_PP_SEQ_REVERSE_S(s, seq) BOOST_PP_SEQ_REVERSE_S_I(s, seq) -# define BOOST_PP_SEQ_REVERSE_S_I(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_REVERSE_O, BOOST_PP_EMPTY, seq)() -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/seq.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/seq.hpp deleted file mode 100644 index f5ca84c6f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/seq.hpp +++ /dev/null @@ -1,44 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP -# define BOOST_PREPROCESSOR_SEQ_SEQ_HPP -# -# include -# include -# -# /* BOOST_PP_SEQ_HEAD */ -# -# define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq) -# -# /* BOOST_PP_SEQ_TAIL */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq)) -# define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par -# define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq) -# define BOOST_PP_SEQ_TAIL_ID(id) id -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq) -# define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq -# else -# define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq -# endif -# -# define BOOST_PP_SEQ_TAIL_I(x) -# -# /* BOOST_PP_SEQ_NIL */ -# -# define BOOST_PP_SEQ_NIL(x) (x) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/size.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/size.hpp deleted file mode 100644 index b5c8d9d05..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/size.hpp +++ /dev/null @@ -1,548 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_SIZE_HPP -# define BOOST_PREPROCESSOR_SEQ_SIZE_HPP -# -# include -# include -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I((seq)) -# define BOOST_PP_SEQ_SIZE_I(par) BOOST_PP_SEQ_SIZE_II ## par -# define BOOST_PP_SEQ_SIZE_II(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 ## seq) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq) -# define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq) -# elif defined(__IBMC__) || defined(__IBMCPP__) -# define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq)) -# else -# define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq) -# endif -# -# define BOOST_PP_SEQ_SIZE_0(_) BOOST_PP_SEQ_SIZE_1 -# define BOOST_PP_SEQ_SIZE_1(_) BOOST_PP_SEQ_SIZE_2 -# define BOOST_PP_SEQ_SIZE_2(_) BOOST_PP_SEQ_SIZE_3 -# define BOOST_PP_SEQ_SIZE_3(_) BOOST_PP_SEQ_SIZE_4 -# define BOOST_PP_SEQ_SIZE_4(_) BOOST_PP_SEQ_SIZE_5 -# define BOOST_PP_SEQ_SIZE_5(_) BOOST_PP_SEQ_SIZE_6 -# define BOOST_PP_SEQ_SIZE_6(_) BOOST_PP_SEQ_SIZE_7 -# define BOOST_PP_SEQ_SIZE_7(_) BOOST_PP_SEQ_SIZE_8 -# define BOOST_PP_SEQ_SIZE_8(_) BOOST_PP_SEQ_SIZE_9 -# define BOOST_PP_SEQ_SIZE_9(_) BOOST_PP_SEQ_SIZE_10 -# define BOOST_PP_SEQ_SIZE_10(_) BOOST_PP_SEQ_SIZE_11 -# define BOOST_PP_SEQ_SIZE_11(_) BOOST_PP_SEQ_SIZE_12 -# define BOOST_PP_SEQ_SIZE_12(_) BOOST_PP_SEQ_SIZE_13 -# define BOOST_PP_SEQ_SIZE_13(_) BOOST_PP_SEQ_SIZE_14 -# define BOOST_PP_SEQ_SIZE_14(_) BOOST_PP_SEQ_SIZE_15 -# define BOOST_PP_SEQ_SIZE_15(_) BOOST_PP_SEQ_SIZE_16 -# define BOOST_PP_SEQ_SIZE_16(_) BOOST_PP_SEQ_SIZE_17 -# define BOOST_PP_SEQ_SIZE_17(_) BOOST_PP_SEQ_SIZE_18 -# define BOOST_PP_SEQ_SIZE_18(_) BOOST_PP_SEQ_SIZE_19 -# define BOOST_PP_SEQ_SIZE_19(_) BOOST_PP_SEQ_SIZE_20 -# define BOOST_PP_SEQ_SIZE_20(_) BOOST_PP_SEQ_SIZE_21 -# define BOOST_PP_SEQ_SIZE_21(_) BOOST_PP_SEQ_SIZE_22 -# define BOOST_PP_SEQ_SIZE_22(_) BOOST_PP_SEQ_SIZE_23 -# define BOOST_PP_SEQ_SIZE_23(_) BOOST_PP_SEQ_SIZE_24 -# define BOOST_PP_SEQ_SIZE_24(_) BOOST_PP_SEQ_SIZE_25 -# define BOOST_PP_SEQ_SIZE_25(_) BOOST_PP_SEQ_SIZE_26 -# define BOOST_PP_SEQ_SIZE_26(_) BOOST_PP_SEQ_SIZE_27 -# define BOOST_PP_SEQ_SIZE_27(_) BOOST_PP_SEQ_SIZE_28 -# define BOOST_PP_SEQ_SIZE_28(_) BOOST_PP_SEQ_SIZE_29 -# define BOOST_PP_SEQ_SIZE_29(_) BOOST_PP_SEQ_SIZE_30 -# define BOOST_PP_SEQ_SIZE_30(_) BOOST_PP_SEQ_SIZE_31 -# define BOOST_PP_SEQ_SIZE_31(_) BOOST_PP_SEQ_SIZE_32 -# define BOOST_PP_SEQ_SIZE_32(_) BOOST_PP_SEQ_SIZE_33 -# define BOOST_PP_SEQ_SIZE_33(_) BOOST_PP_SEQ_SIZE_34 -# define BOOST_PP_SEQ_SIZE_34(_) BOOST_PP_SEQ_SIZE_35 -# define BOOST_PP_SEQ_SIZE_35(_) BOOST_PP_SEQ_SIZE_36 -# define BOOST_PP_SEQ_SIZE_36(_) BOOST_PP_SEQ_SIZE_37 -# define BOOST_PP_SEQ_SIZE_37(_) BOOST_PP_SEQ_SIZE_38 -# define BOOST_PP_SEQ_SIZE_38(_) BOOST_PP_SEQ_SIZE_39 -# define BOOST_PP_SEQ_SIZE_39(_) BOOST_PP_SEQ_SIZE_40 -# define BOOST_PP_SEQ_SIZE_40(_) BOOST_PP_SEQ_SIZE_41 -# define BOOST_PP_SEQ_SIZE_41(_) BOOST_PP_SEQ_SIZE_42 -# define BOOST_PP_SEQ_SIZE_42(_) BOOST_PP_SEQ_SIZE_43 -# define BOOST_PP_SEQ_SIZE_43(_) BOOST_PP_SEQ_SIZE_44 -# define BOOST_PP_SEQ_SIZE_44(_) BOOST_PP_SEQ_SIZE_45 -# define BOOST_PP_SEQ_SIZE_45(_) BOOST_PP_SEQ_SIZE_46 -# define BOOST_PP_SEQ_SIZE_46(_) BOOST_PP_SEQ_SIZE_47 -# define BOOST_PP_SEQ_SIZE_47(_) BOOST_PP_SEQ_SIZE_48 -# define BOOST_PP_SEQ_SIZE_48(_) BOOST_PP_SEQ_SIZE_49 -# define BOOST_PP_SEQ_SIZE_49(_) BOOST_PP_SEQ_SIZE_50 -# define BOOST_PP_SEQ_SIZE_50(_) BOOST_PP_SEQ_SIZE_51 -# define BOOST_PP_SEQ_SIZE_51(_) BOOST_PP_SEQ_SIZE_52 -# define BOOST_PP_SEQ_SIZE_52(_) BOOST_PP_SEQ_SIZE_53 -# define BOOST_PP_SEQ_SIZE_53(_) BOOST_PP_SEQ_SIZE_54 -# define BOOST_PP_SEQ_SIZE_54(_) BOOST_PP_SEQ_SIZE_55 -# define BOOST_PP_SEQ_SIZE_55(_) BOOST_PP_SEQ_SIZE_56 -# define BOOST_PP_SEQ_SIZE_56(_) BOOST_PP_SEQ_SIZE_57 -# define BOOST_PP_SEQ_SIZE_57(_) BOOST_PP_SEQ_SIZE_58 -# define BOOST_PP_SEQ_SIZE_58(_) BOOST_PP_SEQ_SIZE_59 -# define BOOST_PP_SEQ_SIZE_59(_) BOOST_PP_SEQ_SIZE_60 -# define BOOST_PP_SEQ_SIZE_60(_) BOOST_PP_SEQ_SIZE_61 -# define BOOST_PP_SEQ_SIZE_61(_) BOOST_PP_SEQ_SIZE_62 -# define BOOST_PP_SEQ_SIZE_62(_) BOOST_PP_SEQ_SIZE_63 -# define BOOST_PP_SEQ_SIZE_63(_) BOOST_PP_SEQ_SIZE_64 -# define BOOST_PP_SEQ_SIZE_64(_) BOOST_PP_SEQ_SIZE_65 -# define BOOST_PP_SEQ_SIZE_65(_) BOOST_PP_SEQ_SIZE_66 -# define BOOST_PP_SEQ_SIZE_66(_) BOOST_PP_SEQ_SIZE_67 -# define BOOST_PP_SEQ_SIZE_67(_) BOOST_PP_SEQ_SIZE_68 -# define BOOST_PP_SEQ_SIZE_68(_) BOOST_PP_SEQ_SIZE_69 -# define BOOST_PP_SEQ_SIZE_69(_) BOOST_PP_SEQ_SIZE_70 -# define BOOST_PP_SEQ_SIZE_70(_) BOOST_PP_SEQ_SIZE_71 -# define BOOST_PP_SEQ_SIZE_71(_) BOOST_PP_SEQ_SIZE_72 -# define BOOST_PP_SEQ_SIZE_72(_) BOOST_PP_SEQ_SIZE_73 -# define BOOST_PP_SEQ_SIZE_73(_) BOOST_PP_SEQ_SIZE_74 -# define BOOST_PP_SEQ_SIZE_74(_) BOOST_PP_SEQ_SIZE_75 -# define BOOST_PP_SEQ_SIZE_75(_) BOOST_PP_SEQ_SIZE_76 -# define BOOST_PP_SEQ_SIZE_76(_) BOOST_PP_SEQ_SIZE_77 -# define BOOST_PP_SEQ_SIZE_77(_) BOOST_PP_SEQ_SIZE_78 -# define BOOST_PP_SEQ_SIZE_78(_) BOOST_PP_SEQ_SIZE_79 -# define BOOST_PP_SEQ_SIZE_79(_) BOOST_PP_SEQ_SIZE_80 -# define BOOST_PP_SEQ_SIZE_80(_) BOOST_PP_SEQ_SIZE_81 -# define BOOST_PP_SEQ_SIZE_81(_) BOOST_PP_SEQ_SIZE_82 -# define BOOST_PP_SEQ_SIZE_82(_) BOOST_PP_SEQ_SIZE_83 -# define BOOST_PP_SEQ_SIZE_83(_) BOOST_PP_SEQ_SIZE_84 -# define BOOST_PP_SEQ_SIZE_84(_) BOOST_PP_SEQ_SIZE_85 -# define BOOST_PP_SEQ_SIZE_85(_) BOOST_PP_SEQ_SIZE_86 -# define BOOST_PP_SEQ_SIZE_86(_) BOOST_PP_SEQ_SIZE_87 -# define BOOST_PP_SEQ_SIZE_87(_) BOOST_PP_SEQ_SIZE_88 -# define BOOST_PP_SEQ_SIZE_88(_) BOOST_PP_SEQ_SIZE_89 -# define BOOST_PP_SEQ_SIZE_89(_) BOOST_PP_SEQ_SIZE_90 -# define BOOST_PP_SEQ_SIZE_90(_) BOOST_PP_SEQ_SIZE_91 -# define BOOST_PP_SEQ_SIZE_91(_) BOOST_PP_SEQ_SIZE_92 -# define BOOST_PP_SEQ_SIZE_92(_) BOOST_PP_SEQ_SIZE_93 -# define BOOST_PP_SEQ_SIZE_93(_) BOOST_PP_SEQ_SIZE_94 -# define BOOST_PP_SEQ_SIZE_94(_) BOOST_PP_SEQ_SIZE_95 -# define BOOST_PP_SEQ_SIZE_95(_) BOOST_PP_SEQ_SIZE_96 -# define BOOST_PP_SEQ_SIZE_96(_) BOOST_PP_SEQ_SIZE_97 -# define BOOST_PP_SEQ_SIZE_97(_) BOOST_PP_SEQ_SIZE_98 -# define BOOST_PP_SEQ_SIZE_98(_) BOOST_PP_SEQ_SIZE_99 -# define BOOST_PP_SEQ_SIZE_99(_) BOOST_PP_SEQ_SIZE_100 -# define BOOST_PP_SEQ_SIZE_100(_) BOOST_PP_SEQ_SIZE_101 -# define BOOST_PP_SEQ_SIZE_101(_) BOOST_PP_SEQ_SIZE_102 -# define BOOST_PP_SEQ_SIZE_102(_) BOOST_PP_SEQ_SIZE_103 -# define BOOST_PP_SEQ_SIZE_103(_) BOOST_PP_SEQ_SIZE_104 -# define BOOST_PP_SEQ_SIZE_104(_) BOOST_PP_SEQ_SIZE_105 -# define BOOST_PP_SEQ_SIZE_105(_) BOOST_PP_SEQ_SIZE_106 -# define BOOST_PP_SEQ_SIZE_106(_) BOOST_PP_SEQ_SIZE_107 -# define BOOST_PP_SEQ_SIZE_107(_) BOOST_PP_SEQ_SIZE_108 -# define BOOST_PP_SEQ_SIZE_108(_) BOOST_PP_SEQ_SIZE_109 -# define BOOST_PP_SEQ_SIZE_109(_) BOOST_PP_SEQ_SIZE_110 -# define BOOST_PP_SEQ_SIZE_110(_) BOOST_PP_SEQ_SIZE_111 -# define BOOST_PP_SEQ_SIZE_111(_) BOOST_PP_SEQ_SIZE_112 -# define BOOST_PP_SEQ_SIZE_112(_) BOOST_PP_SEQ_SIZE_113 -# define BOOST_PP_SEQ_SIZE_113(_) BOOST_PP_SEQ_SIZE_114 -# define BOOST_PP_SEQ_SIZE_114(_) BOOST_PP_SEQ_SIZE_115 -# define BOOST_PP_SEQ_SIZE_115(_) BOOST_PP_SEQ_SIZE_116 -# define BOOST_PP_SEQ_SIZE_116(_) BOOST_PP_SEQ_SIZE_117 -# define BOOST_PP_SEQ_SIZE_117(_) BOOST_PP_SEQ_SIZE_118 -# define BOOST_PP_SEQ_SIZE_118(_) BOOST_PP_SEQ_SIZE_119 -# define BOOST_PP_SEQ_SIZE_119(_) BOOST_PP_SEQ_SIZE_120 -# define BOOST_PP_SEQ_SIZE_120(_) BOOST_PP_SEQ_SIZE_121 -# define BOOST_PP_SEQ_SIZE_121(_) BOOST_PP_SEQ_SIZE_122 -# define BOOST_PP_SEQ_SIZE_122(_) BOOST_PP_SEQ_SIZE_123 -# define BOOST_PP_SEQ_SIZE_123(_) BOOST_PP_SEQ_SIZE_124 -# define BOOST_PP_SEQ_SIZE_124(_) BOOST_PP_SEQ_SIZE_125 -# define BOOST_PP_SEQ_SIZE_125(_) BOOST_PP_SEQ_SIZE_126 -# define BOOST_PP_SEQ_SIZE_126(_) BOOST_PP_SEQ_SIZE_127 -# define BOOST_PP_SEQ_SIZE_127(_) BOOST_PP_SEQ_SIZE_128 -# define BOOST_PP_SEQ_SIZE_128(_) BOOST_PP_SEQ_SIZE_129 -# define BOOST_PP_SEQ_SIZE_129(_) BOOST_PP_SEQ_SIZE_130 -# define BOOST_PP_SEQ_SIZE_130(_) BOOST_PP_SEQ_SIZE_131 -# define BOOST_PP_SEQ_SIZE_131(_) BOOST_PP_SEQ_SIZE_132 -# define BOOST_PP_SEQ_SIZE_132(_) BOOST_PP_SEQ_SIZE_133 -# define BOOST_PP_SEQ_SIZE_133(_) BOOST_PP_SEQ_SIZE_134 -# define BOOST_PP_SEQ_SIZE_134(_) BOOST_PP_SEQ_SIZE_135 -# define BOOST_PP_SEQ_SIZE_135(_) BOOST_PP_SEQ_SIZE_136 -# define BOOST_PP_SEQ_SIZE_136(_) BOOST_PP_SEQ_SIZE_137 -# define BOOST_PP_SEQ_SIZE_137(_) BOOST_PP_SEQ_SIZE_138 -# define BOOST_PP_SEQ_SIZE_138(_) BOOST_PP_SEQ_SIZE_139 -# define BOOST_PP_SEQ_SIZE_139(_) BOOST_PP_SEQ_SIZE_140 -# define BOOST_PP_SEQ_SIZE_140(_) BOOST_PP_SEQ_SIZE_141 -# define BOOST_PP_SEQ_SIZE_141(_) BOOST_PP_SEQ_SIZE_142 -# define BOOST_PP_SEQ_SIZE_142(_) BOOST_PP_SEQ_SIZE_143 -# define BOOST_PP_SEQ_SIZE_143(_) BOOST_PP_SEQ_SIZE_144 -# define BOOST_PP_SEQ_SIZE_144(_) BOOST_PP_SEQ_SIZE_145 -# define BOOST_PP_SEQ_SIZE_145(_) BOOST_PP_SEQ_SIZE_146 -# define BOOST_PP_SEQ_SIZE_146(_) BOOST_PP_SEQ_SIZE_147 -# define BOOST_PP_SEQ_SIZE_147(_) BOOST_PP_SEQ_SIZE_148 -# define BOOST_PP_SEQ_SIZE_148(_) BOOST_PP_SEQ_SIZE_149 -# define BOOST_PP_SEQ_SIZE_149(_) BOOST_PP_SEQ_SIZE_150 -# define BOOST_PP_SEQ_SIZE_150(_) BOOST_PP_SEQ_SIZE_151 -# define BOOST_PP_SEQ_SIZE_151(_) BOOST_PP_SEQ_SIZE_152 -# define BOOST_PP_SEQ_SIZE_152(_) BOOST_PP_SEQ_SIZE_153 -# define BOOST_PP_SEQ_SIZE_153(_) BOOST_PP_SEQ_SIZE_154 -# define BOOST_PP_SEQ_SIZE_154(_) BOOST_PP_SEQ_SIZE_155 -# define BOOST_PP_SEQ_SIZE_155(_) BOOST_PP_SEQ_SIZE_156 -# define BOOST_PP_SEQ_SIZE_156(_) BOOST_PP_SEQ_SIZE_157 -# define BOOST_PP_SEQ_SIZE_157(_) BOOST_PP_SEQ_SIZE_158 -# define BOOST_PP_SEQ_SIZE_158(_) BOOST_PP_SEQ_SIZE_159 -# define BOOST_PP_SEQ_SIZE_159(_) BOOST_PP_SEQ_SIZE_160 -# define BOOST_PP_SEQ_SIZE_160(_) BOOST_PP_SEQ_SIZE_161 -# define BOOST_PP_SEQ_SIZE_161(_) BOOST_PP_SEQ_SIZE_162 -# define BOOST_PP_SEQ_SIZE_162(_) BOOST_PP_SEQ_SIZE_163 -# define BOOST_PP_SEQ_SIZE_163(_) BOOST_PP_SEQ_SIZE_164 -# define BOOST_PP_SEQ_SIZE_164(_) BOOST_PP_SEQ_SIZE_165 -# define BOOST_PP_SEQ_SIZE_165(_) BOOST_PP_SEQ_SIZE_166 -# define BOOST_PP_SEQ_SIZE_166(_) BOOST_PP_SEQ_SIZE_167 -# define BOOST_PP_SEQ_SIZE_167(_) BOOST_PP_SEQ_SIZE_168 -# define BOOST_PP_SEQ_SIZE_168(_) BOOST_PP_SEQ_SIZE_169 -# define BOOST_PP_SEQ_SIZE_169(_) BOOST_PP_SEQ_SIZE_170 -# define BOOST_PP_SEQ_SIZE_170(_) BOOST_PP_SEQ_SIZE_171 -# define BOOST_PP_SEQ_SIZE_171(_) BOOST_PP_SEQ_SIZE_172 -# define BOOST_PP_SEQ_SIZE_172(_) BOOST_PP_SEQ_SIZE_173 -# define BOOST_PP_SEQ_SIZE_173(_) BOOST_PP_SEQ_SIZE_174 -# define BOOST_PP_SEQ_SIZE_174(_) BOOST_PP_SEQ_SIZE_175 -# define BOOST_PP_SEQ_SIZE_175(_) BOOST_PP_SEQ_SIZE_176 -# define BOOST_PP_SEQ_SIZE_176(_) BOOST_PP_SEQ_SIZE_177 -# define BOOST_PP_SEQ_SIZE_177(_) BOOST_PP_SEQ_SIZE_178 -# define BOOST_PP_SEQ_SIZE_178(_) BOOST_PP_SEQ_SIZE_179 -# define BOOST_PP_SEQ_SIZE_179(_) BOOST_PP_SEQ_SIZE_180 -# define BOOST_PP_SEQ_SIZE_180(_) BOOST_PP_SEQ_SIZE_181 -# define BOOST_PP_SEQ_SIZE_181(_) BOOST_PP_SEQ_SIZE_182 -# define BOOST_PP_SEQ_SIZE_182(_) BOOST_PP_SEQ_SIZE_183 -# define BOOST_PP_SEQ_SIZE_183(_) BOOST_PP_SEQ_SIZE_184 -# define BOOST_PP_SEQ_SIZE_184(_) BOOST_PP_SEQ_SIZE_185 -# define BOOST_PP_SEQ_SIZE_185(_) BOOST_PP_SEQ_SIZE_186 -# define BOOST_PP_SEQ_SIZE_186(_) BOOST_PP_SEQ_SIZE_187 -# define BOOST_PP_SEQ_SIZE_187(_) BOOST_PP_SEQ_SIZE_188 -# define BOOST_PP_SEQ_SIZE_188(_) BOOST_PP_SEQ_SIZE_189 -# define BOOST_PP_SEQ_SIZE_189(_) BOOST_PP_SEQ_SIZE_190 -# define BOOST_PP_SEQ_SIZE_190(_) BOOST_PP_SEQ_SIZE_191 -# define BOOST_PP_SEQ_SIZE_191(_) BOOST_PP_SEQ_SIZE_192 -# define BOOST_PP_SEQ_SIZE_192(_) BOOST_PP_SEQ_SIZE_193 -# define BOOST_PP_SEQ_SIZE_193(_) BOOST_PP_SEQ_SIZE_194 -# define BOOST_PP_SEQ_SIZE_194(_) BOOST_PP_SEQ_SIZE_195 -# define BOOST_PP_SEQ_SIZE_195(_) BOOST_PP_SEQ_SIZE_196 -# define BOOST_PP_SEQ_SIZE_196(_) BOOST_PP_SEQ_SIZE_197 -# define BOOST_PP_SEQ_SIZE_197(_) BOOST_PP_SEQ_SIZE_198 -# define BOOST_PP_SEQ_SIZE_198(_) BOOST_PP_SEQ_SIZE_199 -# define BOOST_PP_SEQ_SIZE_199(_) BOOST_PP_SEQ_SIZE_200 -# define BOOST_PP_SEQ_SIZE_200(_) BOOST_PP_SEQ_SIZE_201 -# define BOOST_PP_SEQ_SIZE_201(_) BOOST_PP_SEQ_SIZE_202 -# define BOOST_PP_SEQ_SIZE_202(_) BOOST_PP_SEQ_SIZE_203 -# define BOOST_PP_SEQ_SIZE_203(_) BOOST_PP_SEQ_SIZE_204 -# define BOOST_PP_SEQ_SIZE_204(_) BOOST_PP_SEQ_SIZE_205 -# define BOOST_PP_SEQ_SIZE_205(_) BOOST_PP_SEQ_SIZE_206 -# define BOOST_PP_SEQ_SIZE_206(_) BOOST_PP_SEQ_SIZE_207 -# define BOOST_PP_SEQ_SIZE_207(_) BOOST_PP_SEQ_SIZE_208 -# define BOOST_PP_SEQ_SIZE_208(_) BOOST_PP_SEQ_SIZE_209 -# define BOOST_PP_SEQ_SIZE_209(_) BOOST_PP_SEQ_SIZE_210 -# define BOOST_PP_SEQ_SIZE_210(_) BOOST_PP_SEQ_SIZE_211 -# define BOOST_PP_SEQ_SIZE_211(_) BOOST_PP_SEQ_SIZE_212 -# define BOOST_PP_SEQ_SIZE_212(_) BOOST_PP_SEQ_SIZE_213 -# define BOOST_PP_SEQ_SIZE_213(_) BOOST_PP_SEQ_SIZE_214 -# define BOOST_PP_SEQ_SIZE_214(_) BOOST_PP_SEQ_SIZE_215 -# define BOOST_PP_SEQ_SIZE_215(_) BOOST_PP_SEQ_SIZE_216 -# define BOOST_PP_SEQ_SIZE_216(_) BOOST_PP_SEQ_SIZE_217 -# define BOOST_PP_SEQ_SIZE_217(_) BOOST_PP_SEQ_SIZE_218 -# define BOOST_PP_SEQ_SIZE_218(_) BOOST_PP_SEQ_SIZE_219 -# define BOOST_PP_SEQ_SIZE_219(_) BOOST_PP_SEQ_SIZE_220 -# define BOOST_PP_SEQ_SIZE_220(_) BOOST_PP_SEQ_SIZE_221 -# define BOOST_PP_SEQ_SIZE_221(_) BOOST_PP_SEQ_SIZE_222 -# define BOOST_PP_SEQ_SIZE_222(_) BOOST_PP_SEQ_SIZE_223 -# define BOOST_PP_SEQ_SIZE_223(_) BOOST_PP_SEQ_SIZE_224 -# define BOOST_PP_SEQ_SIZE_224(_) BOOST_PP_SEQ_SIZE_225 -# define BOOST_PP_SEQ_SIZE_225(_) BOOST_PP_SEQ_SIZE_226 -# define BOOST_PP_SEQ_SIZE_226(_) BOOST_PP_SEQ_SIZE_227 -# define BOOST_PP_SEQ_SIZE_227(_) BOOST_PP_SEQ_SIZE_228 -# define BOOST_PP_SEQ_SIZE_228(_) BOOST_PP_SEQ_SIZE_229 -# define BOOST_PP_SEQ_SIZE_229(_) BOOST_PP_SEQ_SIZE_230 -# define BOOST_PP_SEQ_SIZE_230(_) BOOST_PP_SEQ_SIZE_231 -# define BOOST_PP_SEQ_SIZE_231(_) BOOST_PP_SEQ_SIZE_232 -# define BOOST_PP_SEQ_SIZE_232(_) BOOST_PP_SEQ_SIZE_233 -# define BOOST_PP_SEQ_SIZE_233(_) BOOST_PP_SEQ_SIZE_234 -# define BOOST_PP_SEQ_SIZE_234(_) BOOST_PP_SEQ_SIZE_235 -# define BOOST_PP_SEQ_SIZE_235(_) BOOST_PP_SEQ_SIZE_236 -# define BOOST_PP_SEQ_SIZE_236(_) BOOST_PP_SEQ_SIZE_237 -# define BOOST_PP_SEQ_SIZE_237(_) BOOST_PP_SEQ_SIZE_238 -# define BOOST_PP_SEQ_SIZE_238(_) BOOST_PP_SEQ_SIZE_239 -# define BOOST_PP_SEQ_SIZE_239(_) BOOST_PP_SEQ_SIZE_240 -# define BOOST_PP_SEQ_SIZE_240(_) BOOST_PP_SEQ_SIZE_241 -# define BOOST_PP_SEQ_SIZE_241(_) BOOST_PP_SEQ_SIZE_242 -# define BOOST_PP_SEQ_SIZE_242(_) BOOST_PP_SEQ_SIZE_243 -# define BOOST_PP_SEQ_SIZE_243(_) BOOST_PP_SEQ_SIZE_244 -# define BOOST_PP_SEQ_SIZE_244(_) BOOST_PP_SEQ_SIZE_245 -# define BOOST_PP_SEQ_SIZE_245(_) BOOST_PP_SEQ_SIZE_246 -# define BOOST_PP_SEQ_SIZE_246(_) BOOST_PP_SEQ_SIZE_247 -# define BOOST_PP_SEQ_SIZE_247(_) BOOST_PP_SEQ_SIZE_248 -# define BOOST_PP_SEQ_SIZE_248(_) BOOST_PP_SEQ_SIZE_249 -# define BOOST_PP_SEQ_SIZE_249(_) BOOST_PP_SEQ_SIZE_250 -# define BOOST_PP_SEQ_SIZE_250(_) BOOST_PP_SEQ_SIZE_251 -# define BOOST_PP_SEQ_SIZE_251(_) BOOST_PP_SEQ_SIZE_252 -# define BOOST_PP_SEQ_SIZE_252(_) BOOST_PP_SEQ_SIZE_253 -# define BOOST_PP_SEQ_SIZE_253(_) BOOST_PP_SEQ_SIZE_254 -# define BOOST_PP_SEQ_SIZE_254(_) BOOST_PP_SEQ_SIZE_255 -# define BOOST_PP_SEQ_SIZE_255(_) BOOST_PP_SEQ_SIZE_256 -# define BOOST_PP_SEQ_SIZE_256(_) BOOST_PP_SEQ_SIZE_257 -# -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_0 0 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_1 1 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_2 2 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_3 3 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_4 4 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_5 5 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_6 6 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_7 7 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_8 8 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_9 9 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_10 10 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_11 11 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_12 12 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_13 13 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_14 14 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_15 15 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_16 16 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_17 17 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_18 18 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_19 19 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_20 20 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_21 21 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_22 22 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_23 23 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_24 24 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_25 25 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_26 26 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_27 27 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_28 28 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_29 29 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_30 30 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_31 31 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_32 32 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_33 33 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_34 34 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_35 35 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_36 36 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_37 37 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_38 38 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_39 39 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_40 40 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_41 41 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_42 42 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_43 43 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_44 44 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_45 45 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_46 46 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_47 47 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_48 48 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_49 49 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_50 50 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_51 51 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_52 52 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_53 53 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_54 54 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_55 55 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_56 56 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_57 57 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_58 58 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_59 59 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_60 60 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_61 61 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_62 62 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_63 63 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_64 64 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_65 65 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_66 66 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_67 67 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_68 68 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_69 69 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_70 70 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_71 71 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_72 72 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_73 73 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_74 74 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_75 75 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_76 76 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_77 77 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_78 78 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_79 79 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_80 80 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_81 81 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_82 82 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_83 83 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_84 84 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_85 85 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_86 86 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_87 87 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_88 88 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_89 89 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_90 90 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_91 91 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_92 92 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_93 93 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_94 94 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_95 95 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_96 96 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_97 97 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_98 98 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_99 99 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_100 100 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_101 101 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_102 102 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_103 103 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_104 104 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_105 105 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_106 106 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_107 107 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_108 108 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_109 109 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_110 110 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_111 111 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_112 112 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_113 113 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_114 114 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_115 115 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_116 116 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_117 117 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_118 118 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_119 119 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_120 120 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_121 121 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_122 122 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_123 123 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_124 124 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_125 125 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_126 126 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_127 127 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_128 128 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_129 129 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_130 130 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_131 131 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_132 132 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_133 133 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_134 134 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_135 135 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_136 136 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_137 137 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_138 138 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_139 139 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_140 140 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_141 141 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_142 142 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_143 143 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_144 144 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_145 145 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_146 146 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_147 147 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_148 148 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_149 149 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_150 150 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_151 151 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_152 152 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_153 153 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_154 154 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_155 155 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_156 156 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_157 157 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_158 158 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_159 159 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_160 160 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_161 161 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_162 162 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_163 163 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_164 164 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_165 165 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_166 166 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_167 167 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_168 168 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_169 169 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_170 170 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_171 171 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_172 172 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_173 173 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_174 174 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_175 175 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_176 176 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_177 177 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_178 178 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_179 179 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_180 180 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_181 181 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_182 182 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_183 183 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_184 184 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_185 185 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_186 186 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_187 187 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_188 188 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_189 189 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_190 190 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_191 191 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_192 192 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_193 193 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_194 194 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_195 195 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_196 196 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_197 197 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_198 198 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_199 199 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_200 200 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_201 201 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_202 202 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_203 203 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_204 204 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_205 205 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_206 206 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_207 207 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_208 208 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_209 209 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_210 210 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_211 211 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_212 212 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_213 213 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_214 214 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_215 215 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_216 216 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_217 217 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_218 218 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_219 219 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_220 220 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_221 221 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_222 222 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_223 223 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_224 224 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_225 225 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_226 226 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_227 227 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_228 228 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_229 229 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_230 230 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_231 231 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_232 232 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_233 233 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_234 234 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_235 235 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_236 236 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_237 237 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_238 238 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_239 239 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_240 240 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_241 241 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_242 242 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_243 243 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_244 244 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_245 245 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_246 246 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_247 247 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_248 248 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_249 249 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_250 250 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_251 251 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_252 252 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_253 253 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_254 254 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_255 255 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_256 256 -# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_257 257 -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/subseq.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/subseq.hpp deleted file mode 100644 index fb242f1e6..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/subseq.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP -# define BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_SUBSEQ */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq)) -# else -# define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) -# define BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/to_array.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/to_array.hpp deleted file mode 100644 index d8a8040f8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/to_array.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP -# define BOOST_PREPROCESSOR_SEQ_TO_ARRAY_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_TO_ARRAY */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_TO_ARRAY(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq))) -# else -# define BOOST_PP_SEQ_TO_ARRAY(seq) BOOST_PP_SEQ_TO_ARRAY_I(seq) -# define BOOST_PP_SEQ_TO_ARRAY_I(seq) (BOOST_PP_SEQ_SIZE(seq), (BOOST_PP_SEQ_ENUM(seq))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/to_list.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/to_list.hpp deleted file mode 100644 index fa0421bcc..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/to_list.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_TO_LIST_HPP -# define BOOST_PREPROCESSOR_SEQ_TO_LIST_HPP -# -# include -# include -# include -# -# /* BOOST_PP_SEQ_TO_LIST */ -# -# define BOOST_PP_SEQ_TO_LIST(seq) BOOST_PP_SEQ_TO_LIST_I(BOOST_PP_SEQ_BINARY_TRANSFORM(seq)) -# define BOOST_PP_SEQ_TO_LIST_I(bseq) BOOST_PP_SEQ_TO_LIST_A bseq BOOST_PP_NIL BOOST_PP_SEQ_TO_LIST_B bseq -# define BOOST_PP_SEQ_TO_LIST_A(m, e) m(BOOST_PP_LPAREN() e BOOST_PP_COMMA() BOOST_PP_SEQ_TO_LIST_A_ID) -# define BOOST_PP_SEQ_TO_LIST_A_ID() BOOST_PP_SEQ_TO_LIST_A -# define BOOST_PP_SEQ_TO_LIST_B(m, e) m(BOOST_PP_RPAREN() BOOST_PP_SEQ_TO_LIST_B_ID) -# define BOOST_PP_SEQ_TO_LIST_B_ID() BOOST_PP_SEQ_TO_LIST_B -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/to_tuple.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/to_tuple.hpp deleted file mode 100644 index ab38eb97f..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/to_tuple.hpp +++ /dev/null @@ -1,27 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP -# define BOOST_PREPROCESSOR_SEQ_TO_TUPLE_HPP -# -# include -# include -# -# /* BOOST_PP_SEQ_TO_TUPLE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_TO_TUPLE(seq) (BOOST_PP_SEQ_ENUM(seq)) -# else -# define BOOST_PP_SEQ_TO_TUPLE(seq) BOOST_PP_SEQ_TO_TUPLE_I(seq) -# define BOOST_PP_SEQ_TO_TUPLE_I(seq) (BOOST_PP_SEQ_ENUM(seq)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/transform.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/transform.hpp deleted file mode 100644 index 79d8108d3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/transform.hpp +++ /dev/null @@ -1,48 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP -# define BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_SEQ_TRANSFORM */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) -# else -# define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) -# define BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) -# endif -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT() -# define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_IM(s, BOOST_PP_TUPLE_REM_3 state, elem) -# define BOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem) -# else -# define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, state), BOOST_PP_TUPLE_ELEM(3, 1, state), BOOST_PP_TUPLE_ELEM(3, 2, state), elem) -# endif -# -# define BOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem))) -# -# /* BOOST_PP_SEQ_TRANSFORM_S */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) -# else -# define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) -# define BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq))) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/seq/variadic_seq_to_seq.hpp b/lib/3rdParty/boost/boost/preprocessor/seq/variadic_seq_to_seq.hpp deleted file mode 100644 index f94a2bfd1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/seq/variadic_seq_to_seq.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2012. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP -# define BOOST_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP -# -# include -# include -# -# /* BOOST_PP_VARIADIC_SEQ_TO_SEQ */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_VARIADIC_SEQ_TO_SEQ(vseq) BOOST_PP_CAT(BOOST_PP_VARIADIC_SEQ_TO_SEQ_A vseq, 0) -# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_A(...) ((__VA_ARGS__)) BOOST_PP_VARIADIC_SEQ_TO_SEQ_B -# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_B(...) ((__VA_ARGS__)) BOOST_PP_VARIADIC_SEQ_TO_SEQ_A -# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_A0 -# define BOOST_PP_VARIADIC_SEQ_TO_SEQ_B0 -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot.hpp b/lib/3rdParty/boost/boost/preprocessor/slot.hpp deleted file mode 100644 index fb3c9b01d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SLOT_HPP -# define BOOST_PREPROCESSOR_SLOT_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/counter.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/counter.hpp deleted file mode 100644 index d257a649a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/counter.hpp +++ /dev/null @@ -1,25 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2005. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_SLOT_COUNTER_HPP -# define BOOST_PREPROCESSOR_SLOT_COUNTER_HPP -# -# include -# -# /* BOOST_PP_COUNTER */ -# -# define BOOST_PP_COUNTER 0 -# -# /* BOOST_PP_UPDATE_COUNTER */ -# -# define BOOST_PP_UPDATE_COUNTER() -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/counter.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/counter.hpp deleted file mode 100644 index a1c0df175..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/counter.hpp +++ /dev/null @@ -1,269 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2005. * -# * 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. */ -# -# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1 -# -# include -# -# undef BOOST_PP_COUNTER -# -# undef BOOST_PP_COUNTER_DIGIT_1 -# undef BOOST_PP_COUNTER_DIGIT_2 -# undef BOOST_PP_COUNTER_DIGIT_3 -# undef BOOST_PP_COUNTER_DIGIT_4 -# undef BOOST_PP_COUNTER_DIGIT_5 -# undef BOOST_PP_COUNTER_DIGIT_6 -# undef BOOST_PP_COUNTER_DIGIT_7 -# undef BOOST_PP_COUNTER_DIGIT_8 -# undef BOOST_PP_COUNTER_DIGIT_9 -# undef BOOST_PP_COUNTER_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_10 == 0 -# define BOOST_PP_COUNTER_DIGIT_10 0 -# elif BOOST_PP_SLOT_TEMP_10 == 1 -# define BOOST_PP_COUNTER_DIGIT_10 1 -# elif BOOST_PP_SLOT_TEMP_10 == 2 -# define BOOST_PP_COUNTER_DIGIT_10 2 -# elif BOOST_PP_SLOT_TEMP_10 == 3 -# define BOOST_PP_COUNTER_DIGIT_10 3 -# elif BOOST_PP_SLOT_TEMP_10 == 4 -# define BOOST_PP_COUNTER_DIGIT_10 4 -# elif BOOST_PP_SLOT_TEMP_10 == 5 -# define BOOST_PP_COUNTER_DIGIT_10 5 -# elif BOOST_PP_SLOT_TEMP_10 == 6 -# define BOOST_PP_COUNTER_DIGIT_10 6 -# elif BOOST_PP_SLOT_TEMP_10 == 7 -# define BOOST_PP_COUNTER_DIGIT_10 7 -# elif BOOST_PP_SLOT_TEMP_10 == 8 -# define BOOST_PP_COUNTER_DIGIT_10 8 -# elif BOOST_PP_SLOT_TEMP_10 == 9 -# define BOOST_PP_COUNTER_DIGIT_10 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_9 == 0 -# define BOOST_PP_COUNTER_DIGIT_9 0 -# elif BOOST_PP_SLOT_TEMP_9 == 1 -# define BOOST_PP_COUNTER_DIGIT_9 1 -# elif BOOST_PP_SLOT_TEMP_9 == 2 -# define BOOST_PP_COUNTER_DIGIT_9 2 -# elif BOOST_PP_SLOT_TEMP_9 == 3 -# define BOOST_PP_COUNTER_DIGIT_9 3 -# elif BOOST_PP_SLOT_TEMP_9 == 4 -# define BOOST_PP_COUNTER_DIGIT_9 4 -# elif BOOST_PP_SLOT_TEMP_9 == 5 -# define BOOST_PP_COUNTER_DIGIT_9 5 -# elif BOOST_PP_SLOT_TEMP_9 == 6 -# define BOOST_PP_COUNTER_DIGIT_9 6 -# elif BOOST_PP_SLOT_TEMP_9 == 7 -# define BOOST_PP_COUNTER_DIGIT_9 7 -# elif BOOST_PP_SLOT_TEMP_9 == 8 -# define BOOST_PP_COUNTER_DIGIT_9 8 -# elif BOOST_PP_SLOT_TEMP_9 == 9 -# define BOOST_PP_COUNTER_DIGIT_9 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_8 == 0 -# define BOOST_PP_COUNTER_DIGIT_8 0 -# elif BOOST_PP_SLOT_TEMP_8 == 1 -# define BOOST_PP_COUNTER_DIGIT_8 1 -# elif BOOST_PP_SLOT_TEMP_8 == 2 -# define BOOST_PP_COUNTER_DIGIT_8 2 -# elif BOOST_PP_SLOT_TEMP_8 == 3 -# define BOOST_PP_COUNTER_DIGIT_8 3 -# elif BOOST_PP_SLOT_TEMP_8 == 4 -# define BOOST_PP_COUNTER_DIGIT_8 4 -# elif BOOST_PP_SLOT_TEMP_8 == 5 -# define BOOST_PP_COUNTER_DIGIT_8 5 -# elif BOOST_PP_SLOT_TEMP_8 == 6 -# define BOOST_PP_COUNTER_DIGIT_8 6 -# elif BOOST_PP_SLOT_TEMP_8 == 7 -# define BOOST_PP_COUNTER_DIGIT_8 7 -# elif BOOST_PP_SLOT_TEMP_8 == 8 -# define BOOST_PP_COUNTER_DIGIT_8 8 -# elif BOOST_PP_SLOT_TEMP_8 == 9 -# define BOOST_PP_COUNTER_DIGIT_8 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_7 == 0 -# define BOOST_PP_COUNTER_DIGIT_7 0 -# elif BOOST_PP_SLOT_TEMP_7 == 1 -# define BOOST_PP_COUNTER_DIGIT_7 1 -# elif BOOST_PP_SLOT_TEMP_7 == 2 -# define BOOST_PP_COUNTER_DIGIT_7 2 -# elif BOOST_PP_SLOT_TEMP_7 == 3 -# define BOOST_PP_COUNTER_DIGIT_7 3 -# elif BOOST_PP_SLOT_TEMP_7 == 4 -# define BOOST_PP_COUNTER_DIGIT_7 4 -# elif BOOST_PP_SLOT_TEMP_7 == 5 -# define BOOST_PP_COUNTER_DIGIT_7 5 -# elif BOOST_PP_SLOT_TEMP_7 == 6 -# define BOOST_PP_COUNTER_DIGIT_7 6 -# elif BOOST_PP_SLOT_TEMP_7 == 7 -# define BOOST_PP_COUNTER_DIGIT_7 7 -# elif BOOST_PP_SLOT_TEMP_7 == 8 -# define BOOST_PP_COUNTER_DIGIT_7 8 -# elif BOOST_PP_SLOT_TEMP_7 == 9 -# define BOOST_PP_COUNTER_DIGIT_7 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_6 == 0 -# define BOOST_PP_COUNTER_DIGIT_6 0 -# elif BOOST_PP_SLOT_TEMP_6 == 1 -# define BOOST_PP_COUNTER_DIGIT_6 1 -# elif BOOST_PP_SLOT_TEMP_6 == 2 -# define BOOST_PP_COUNTER_DIGIT_6 2 -# elif BOOST_PP_SLOT_TEMP_6 == 3 -# define BOOST_PP_COUNTER_DIGIT_6 3 -# elif BOOST_PP_SLOT_TEMP_6 == 4 -# define BOOST_PP_COUNTER_DIGIT_6 4 -# elif BOOST_PP_SLOT_TEMP_6 == 5 -# define BOOST_PP_COUNTER_DIGIT_6 5 -# elif BOOST_PP_SLOT_TEMP_6 == 6 -# define BOOST_PP_COUNTER_DIGIT_6 6 -# elif BOOST_PP_SLOT_TEMP_6 == 7 -# define BOOST_PP_COUNTER_DIGIT_6 7 -# elif BOOST_PP_SLOT_TEMP_6 == 8 -# define BOOST_PP_COUNTER_DIGIT_6 8 -# elif BOOST_PP_SLOT_TEMP_6 == 9 -# define BOOST_PP_COUNTER_DIGIT_6 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_5 == 0 -# define BOOST_PP_COUNTER_DIGIT_5 0 -# elif BOOST_PP_SLOT_TEMP_5 == 1 -# define BOOST_PP_COUNTER_DIGIT_5 1 -# elif BOOST_PP_SLOT_TEMP_5 == 2 -# define BOOST_PP_COUNTER_DIGIT_5 2 -# elif BOOST_PP_SLOT_TEMP_5 == 3 -# define BOOST_PP_COUNTER_DIGIT_5 3 -# elif BOOST_PP_SLOT_TEMP_5 == 4 -# define BOOST_PP_COUNTER_DIGIT_5 4 -# elif BOOST_PP_SLOT_TEMP_5 == 5 -# define BOOST_PP_COUNTER_DIGIT_5 5 -# elif BOOST_PP_SLOT_TEMP_5 == 6 -# define BOOST_PP_COUNTER_DIGIT_5 6 -# elif BOOST_PP_SLOT_TEMP_5 == 7 -# define BOOST_PP_COUNTER_DIGIT_5 7 -# elif BOOST_PP_SLOT_TEMP_5 == 8 -# define BOOST_PP_COUNTER_DIGIT_5 8 -# elif BOOST_PP_SLOT_TEMP_5 == 9 -# define BOOST_PP_COUNTER_DIGIT_5 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_4 == 0 -# define BOOST_PP_COUNTER_DIGIT_4 0 -# elif BOOST_PP_SLOT_TEMP_4 == 1 -# define BOOST_PP_COUNTER_DIGIT_4 1 -# elif BOOST_PP_SLOT_TEMP_4 == 2 -# define BOOST_PP_COUNTER_DIGIT_4 2 -# elif BOOST_PP_SLOT_TEMP_4 == 3 -# define BOOST_PP_COUNTER_DIGIT_4 3 -# elif BOOST_PP_SLOT_TEMP_4 == 4 -# define BOOST_PP_COUNTER_DIGIT_4 4 -# elif BOOST_PP_SLOT_TEMP_4 == 5 -# define BOOST_PP_COUNTER_DIGIT_4 5 -# elif BOOST_PP_SLOT_TEMP_4 == 6 -# define BOOST_PP_COUNTER_DIGIT_4 6 -# elif BOOST_PP_SLOT_TEMP_4 == 7 -# define BOOST_PP_COUNTER_DIGIT_4 7 -# elif BOOST_PP_SLOT_TEMP_4 == 8 -# define BOOST_PP_COUNTER_DIGIT_4 8 -# elif BOOST_PP_SLOT_TEMP_4 == 9 -# define BOOST_PP_COUNTER_DIGIT_4 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_COUNTER_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_COUNTER_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_COUNTER_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_COUNTER_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_COUNTER_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_COUNTER_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_COUNTER_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_COUNTER_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_COUNTER_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_COUNTER_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_COUNTER_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_COUNTER_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_COUNTER_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_COUNTER_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_COUNTER_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_COUNTER_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_COUNTER_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_COUNTER_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_COUNTER_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_COUNTER_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_COUNTER_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_COUNTER_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_COUNTER_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_COUNTER_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_COUNTER_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_COUNTER_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_COUNTER_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_COUNTER_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_COUNTER_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_COUNTER_DIGIT_1 9 -# endif -# -# if BOOST_PP_COUNTER_DIGIT_10 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_9 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_8 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_7 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_6 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_5 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_4 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_3 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# elif BOOST_PP_COUNTER_DIGIT_2 -# define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1) -# else -# define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/def.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/def.hpp deleted file mode 100644 index 885099e55..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/def.hpp +++ /dev/null @@ -1,49 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP -# define BOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP -# -# /* BOOST_PP_SLOT_OFFSET_x */ -# -# define BOOST_PP_SLOT_OFFSET_10(x) (x) % 1000000000UL -# define BOOST_PP_SLOT_OFFSET_9(x) BOOST_PP_SLOT_OFFSET_10(x) % 100000000UL -# define BOOST_PP_SLOT_OFFSET_8(x) BOOST_PP_SLOT_OFFSET_9(x) % 10000000UL -# define BOOST_PP_SLOT_OFFSET_7(x) BOOST_PP_SLOT_OFFSET_8(x) % 1000000UL -# define BOOST_PP_SLOT_OFFSET_6(x) BOOST_PP_SLOT_OFFSET_7(x) % 100000UL -# define BOOST_PP_SLOT_OFFSET_5(x) BOOST_PP_SLOT_OFFSET_6(x) % 10000UL -# define BOOST_PP_SLOT_OFFSET_4(x) BOOST_PP_SLOT_OFFSET_5(x) % 1000UL -# define BOOST_PP_SLOT_OFFSET_3(x) BOOST_PP_SLOT_OFFSET_4(x) % 100UL -# define BOOST_PP_SLOT_OFFSET_2(x) BOOST_PP_SLOT_OFFSET_3(x) % 10UL -# -# /* BOOST_PP_SLOT_CC_x */ -# -# define BOOST_PP_SLOT_CC_2(a, b) BOOST_PP_SLOT_CC_2_D(a, b) -# define BOOST_PP_SLOT_CC_3(a, b, c) BOOST_PP_SLOT_CC_3_D(a, b, c) -# define BOOST_PP_SLOT_CC_4(a, b, c, d) BOOST_PP_SLOT_CC_4_D(a, b, c, d) -# define BOOST_PP_SLOT_CC_5(a, b, c, d, e) BOOST_PP_SLOT_CC_5_D(a, b, c, d, e) -# define BOOST_PP_SLOT_CC_6(a, b, c, d, e, f) BOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f) -# define BOOST_PP_SLOT_CC_7(a, b, c, d, e, f, g) BOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) -# define BOOST_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) BOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) -# define BOOST_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) BOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) -# define BOOST_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) BOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) -# -# define BOOST_PP_SLOT_CC_2_D(a, b) a ## b -# define BOOST_PP_SLOT_CC_3_D(a, b, c) a ## b ## c -# define BOOST_PP_SLOT_CC_4_D(a, b, c, d) a ## b ## c ## d -# define BOOST_PP_SLOT_CC_5_D(a, b, c, d, e) a ## b ## c ## d ## e -# define BOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f) a ## b ## c ## d ## e ## f -# define BOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) a ## b ## c ## d ## e ## f ## g -# define BOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) a ## b ## c ## d ## e ## f ## g ## h -# define BOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) a ## b ## c ## d ## e ## f ## g ## h ## i -# define BOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) a ## b ## c ## d ## e ## f ## g ## h ## i ## j -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/shared.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/shared.hpp deleted file mode 100644 index c97ac54cf..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/shared.hpp +++ /dev/null @@ -1,247 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PP_VALUE -# error BOOST_PP_ERROR: BOOST_PP_VALUE is not defined -# endif -# -# undef BOOST_PP_SLOT_TEMP_1 -# undef BOOST_PP_SLOT_TEMP_2 -# undef BOOST_PP_SLOT_TEMP_3 -# undef BOOST_PP_SLOT_TEMP_4 -# undef BOOST_PP_SLOT_TEMP_5 -# undef BOOST_PP_SLOT_TEMP_6 -# undef BOOST_PP_SLOT_TEMP_7 -# undef BOOST_PP_SLOT_TEMP_8 -# undef BOOST_PP_SLOT_TEMP_9 -# undef BOOST_PP_SLOT_TEMP_10 -# -# if (BOOST_PP_VALUE) / 1000000000UL == 0 -# define BOOST_PP_SLOT_TEMP_10 0 -# elif (BOOST_PP_VALUE) / 1000000000UL == 1 -# define BOOST_PP_SLOT_TEMP_10 1 -# elif (BOOST_PP_VALUE) / 1000000000UL == 2 -# define BOOST_PP_SLOT_TEMP_10 2 -# elif (BOOST_PP_VALUE) / 1000000000UL == 3 -# define BOOST_PP_SLOT_TEMP_10 3 -# elif (BOOST_PP_VALUE) / 1000000000UL == 4 -# define BOOST_PP_SLOT_TEMP_10 4 -# elif (BOOST_PP_VALUE) / 1000000000UL == 5 -# define BOOST_PP_SLOT_TEMP_10 5 -# elif (BOOST_PP_VALUE) / 1000000000UL == 6 -# define BOOST_PP_SLOT_TEMP_10 6 -# elif (BOOST_PP_VALUE) / 1000000000UL == 7 -# define BOOST_PP_SLOT_TEMP_10 7 -# elif (BOOST_PP_VALUE) / 1000000000UL == 8 -# define BOOST_PP_SLOT_TEMP_10 8 -# elif (BOOST_PP_VALUE) / 1000000000UL == 9 -# define BOOST_PP_SLOT_TEMP_10 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 0 -# define BOOST_PP_SLOT_TEMP_9 0 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 1 -# define BOOST_PP_SLOT_TEMP_9 1 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 2 -# define BOOST_PP_SLOT_TEMP_9 2 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 3 -# define BOOST_PP_SLOT_TEMP_9 3 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 4 -# define BOOST_PP_SLOT_TEMP_9 4 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 5 -# define BOOST_PP_SLOT_TEMP_9 5 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 6 -# define BOOST_PP_SLOT_TEMP_9 6 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 7 -# define BOOST_PP_SLOT_TEMP_9 7 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 8 -# define BOOST_PP_SLOT_TEMP_9 8 -# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 9 -# define BOOST_PP_SLOT_TEMP_9 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 0 -# define BOOST_PP_SLOT_TEMP_8 0 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 1 -# define BOOST_PP_SLOT_TEMP_8 1 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 2 -# define BOOST_PP_SLOT_TEMP_8 2 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 3 -# define BOOST_PP_SLOT_TEMP_8 3 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 4 -# define BOOST_PP_SLOT_TEMP_8 4 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 5 -# define BOOST_PP_SLOT_TEMP_8 5 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 6 -# define BOOST_PP_SLOT_TEMP_8 6 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 7 -# define BOOST_PP_SLOT_TEMP_8 7 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 8 -# define BOOST_PP_SLOT_TEMP_8 8 -# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 9 -# define BOOST_PP_SLOT_TEMP_8 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 0 -# define BOOST_PP_SLOT_TEMP_7 0 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 1 -# define BOOST_PP_SLOT_TEMP_7 1 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 2 -# define BOOST_PP_SLOT_TEMP_7 2 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 3 -# define BOOST_PP_SLOT_TEMP_7 3 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 4 -# define BOOST_PP_SLOT_TEMP_7 4 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 5 -# define BOOST_PP_SLOT_TEMP_7 5 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 6 -# define BOOST_PP_SLOT_TEMP_7 6 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 7 -# define BOOST_PP_SLOT_TEMP_7 7 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 8 -# define BOOST_PP_SLOT_TEMP_7 8 -# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 9 -# define BOOST_PP_SLOT_TEMP_7 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 0 -# define BOOST_PP_SLOT_TEMP_6 0 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 1 -# define BOOST_PP_SLOT_TEMP_6 1 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 2 -# define BOOST_PP_SLOT_TEMP_6 2 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 3 -# define BOOST_PP_SLOT_TEMP_6 3 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 4 -# define BOOST_PP_SLOT_TEMP_6 4 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 5 -# define BOOST_PP_SLOT_TEMP_6 5 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 6 -# define BOOST_PP_SLOT_TEMP_6 6 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 7 -# define BOOST_PP_SLOT_TEMP_6 7 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 8 -# define BOOST_PP_SLOT_TEMP_6 8 -# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 9 -# define BOOST_PP_SLOT_TEMP_6 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 0 -# define BOOST_PP_SLOT_TEMP_5 0 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 1 -# define BOOST_PP_SLOT_TEMP_5 1 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 2 -# define BOOST_PP_SLOT_TEMP_5 2 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 3 -# define BOOST_PP_SLOT_TEMP_5 3 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 4 -# define BOOST_PP_SLOT_TEMP_5 4 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 5 -# define BOOST_PP_SLOT_TEMP_5 5 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 6 -# define BOOST_PP_SLOT_TEMP_5 6 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 7 -# define BOOST_PP_SLOT_TEMP_5 7 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 8 -# define BOOST_PP_SLOT_TEMP_5 8 -# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 9 -# define BOOST_PP_SLOT_TEMP_5 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 0 -# define BOOST_PP_SLOT_TEMP_4 0 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 1 -# define BOOST_PP_SLOT_TEMP_4 1 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 2 -# define BOOST_PP_SLOT_TEMP_4 2 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 3 -# define BOOST_PP_SLOT_TEMP_4 3 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 4 -# define BOOST_PP_SLOT_TEMP_4 4 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 5 -# define BOOST_PP_SLOT_TEMP_4 5 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 6 -# define BOOST_PP_SLOT_TEMP_4 6 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 7 -# define BOOST_PP_SLOT_TEMP_4 7 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 8 -# define BOOST_PP_SLOT_TEMP_4 8 -# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 9 -# define BOOST_PP_SLOT_TEMP_4 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 0 -# define BOOST_PP_SLOT_TEMP_3 0 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 1 -# define BOOST_PP_SLOT_TEMP_3 1 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 2 -# define BOOST_PP_SLOT_TEMP_3 2 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 3 -# define BOOST_PP_SLOT_TEMP_3 3 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 4 -# define BOOST_PP_SLOT_TEMP_3 4 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 5 -# define BOOST_PP_SLOT_TEMP_3 5 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 6 -# define BOOST_PP_SLOT_TEMP_3 6 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 7 -# define BOOST_PP_SLOT_TEMP_3 7 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 8 -# define BOOST_PP_SLOT_TEMP_3 8 -# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 9 -# define BOOST_PP_SLOT_TEMP_3 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 0 -# define BOOST_PP_SLOT_TEMP_2 0 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 1 -# define BOOST_PP_SLOT_TEMP_2 1 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 2 -# define BOOST_PP_SLOT_TEMP_2 2 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 3 -# define BOOST_PP_SLOT_TEMP_2 3 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 4 -# define BOOST_PP_SLOT_TEMP_2 4 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 5 -# define BOOST_PP_SLOT_TEMP_2 5 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 6 -# define BOOST_PP_SLOT_TEMP_2 6 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 7 -# define BOOST_PP_SLOT_TEMP_2 7 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 8 -# define BOOST_PP_SLOT_TEMP_2 8 -# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 9 -# define BOOST_PP_SLOT_TEMP_2 9 -# endif -# -# if BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 0 -# define BOOST_PP_SLOT_TEMP_1 0 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 1 -# define BOOST_PP_SLOT_TEMP_1 1 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 2 -# define BOOST_PP_SLOT_TEMP_1 2 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 3 -# define BOOST_PP_SLOT_TEMP_1 3 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 4 -# define BOOST_PP_SLOT_TEMP_1 4 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 5 -# define BOOST_PP_SLOT_TEMP_1 5 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 6 -# define BOOST_PP_SLOT_TEMP_1 6 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 7 -# define BOOST_PP_SLOT_TEMP_1 7 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 8 -# define BOOST_PP_SLOT_TEMP_1 8 -# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 9 -# define BOOST_PP_SLOT_TEMP_1 9 -# endif -# -# undef BOOST_PP_VALUE diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot1.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot1.hpp deleted file mode 100644 index b22748e6a..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot1.hpp +++ /dev/null @@ -1,267 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_SLOT_1 -# -# undef BOOST_PP_SLOT_1_DIGIT_1 -# undef BOOST_PP_SLOT_1_DIGIT_2 -# undef BOOST_PP_SLOT_1_DIGIT_3 -# undef BOOST_PP_SLOT_1_DIGIT_4 -# undef BOOST_PP_SLOT_1_DIGIT_5 -# undef BOOST_PP_SLOT_1_DIGIT_6 -# undef BOOST_PP_SLOT_1_DIGIT_7 -# undef BOOST_PP_SLOT_1_DIGIT_8 -# undef BOOST_PP_SLOT_1_DIGIT_9 -# undef BOOST_PP_SLOT_1_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_10 == 0 -# define BOOST_PP_SLOT_1_DIGIT_10 0 -# elif BOOST_PP_SLOT_TEMP_10 == 1 -# define BOOST_PP_SLOT_1_DIGIT_10 1 -# elif BOOST_PP_SLOT_TEMP_10 == 2 -# define BOOST_PP_SLOT_1_DIGIT_10 2 -# elif BOOST_PP_SLOT_TEMP_10 == 3 -# define BOOST_PP_SLOT_1_DIGIT_10 3 -# elif BOOST_PP_SLOT_TEMP_10 == 4 -# define BOOST_PP_SLOT_1_DIGIT_10 4 -# elif BOOST_PP_SLOT_TEMP_10 == 5 -# define BOOST_PP_SLOT_1_DIGIT_10 5 -# elif BOOST_PP_SLOT_TEMP_10 == 6 -# define BOOST_PP_SLOT_1_DIGIT_10 6 -# elif BOOST_PP_SLOT_TEMP_10 == 7 -# define BOOST_PP_SLOT_1_DIGIT_10 7 -# elif BOOST_PP_SLOT_TEMP_10 == 8 -# define BOOST_PP_SLOT_1_DIGIT_10 8 -# elif BOOST_PP_SLOT_TEMP_10 == 9 -# define BOOST_PP_SLOT_1_DIGIT_10 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_9 == 0 -# define BOOST_PP_SLOT_1_DIGIT_9 0 -# elif BOOST_PP_SLOT_TEMP_9 == 1 -# define BOOST_PP_SLOT_1_DIGIT_9 1 -# elif BOOST_PP_SLOT_TEMP_9 == 2 -# define BOOST_PP_SLOT_1_DIGIT_9 2 -# elif BOOST_PP_SLOT_TEMP_9 == 3 -# define BOOST_PP_SLOT_1_DIGIT_9 3 -# elif BOOST_PP_SLOT_TEMP_9 == 4 -# define BOOST_PP_SLOT_1_DIGIT_9 4 -# elif BOOST_PP_SLOT_TEMP_9 == 5 -# define BOOST_PP_SLOT_1_DIGIT_9 5 -# elif BOOST_PP_SLOT_TEMP_9 == 6 -# define BOOST_PP_SLOT_1_DIGIT_9 6 -# elif BOOST_PP_SLOT_TEMP_9 == 7 -# define BOOST_PP_SLOT_1_DIGIT_9 7 -# elif BOOST_PP_SLOT_TEMP_9 == 8 -# define BOOST_PP_SLOT_1_DIGIT_9 8 -# elif BOOST_PP_SLOT_TEMP_9 == 9 -# define BOOST_PP_SLOT_1_DIGIT_9 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_8 == 0 -# define BOOST_PP_SLOT_1_DIGIT_8 0 -# elif BOOST_PP_SLOT_TEMP_8 == 1 -# define BOOST_PP_SLOT_1_DIGIT_8 1 -# elif BOOST_PP_SLOT_TEMP_8 == 2 -# define BOOST_PP_SLOT_1_DIGIT_8 2 -# elif BOOST_PP_SLOT_TEMP_8 == 3 -# define BOOST_PP_SLOT_1_DIGIT_8 3 -# elif BOOST_PP_SLOT_TEMP_8 == 4 -# define BOOST_PP_SLOT_1_DIGIT_8 4 -# elif BOOST_PP_SLOT_TEMP_8 == 5 -# define BOOST_PP_SLOT_1_DIGIT_8 5 -# elif BOOST_PP_SLOT_TEMP_8 == 6 -# define BOOST_PP_SLOT_1_DIGIT_8 6 -# elif BOOST_PP_SLOT_TEMP_8 == 7 -# define BOOST_PP_SLOT_1_DIGIT_8 7 -# elif BOOST_PP_SLOT_TEMP_8 == 8 -# define BOOST_PP_SLOT_1_DIGIT_8 8 -# elif BOOST_PP_SLOT_TEMP_8 == 9 -# define BOOST_PP_SLOT_1_DIGIT_8 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_7 == 0 -# define BOOST_PP_SLOT_1_DIGIT_7 0 -# elif BOOST_PP_SLOT_TEMP_7 == 1 -# define BOOST_PP_SLOT_1_DIGIT_7 1 -# elif BOOST_PP_SLOT_TEMP_7 == 2 -# define BOOST_PP_SLOT_1_DIGIT_7 2 -# elif BOOST_PP_SLOT_TEMP_7 == 3 -# define BOOST_PP_SLOT_1_DIGIT_7 3 -# elif BOOST_PP_SLOT_TEMP_7 == 4 -# define BOOST_PP_SLOT_1_DIGIT_7 4 -# elif BOOST_PP_SLOT_TEMP_7 == 5 -# define BOOST_PP_SLOT_1_DIGIT_7 5 -# elif BOOST_PP_SLOT_TEMP_7 == 6 -# define BOOST_PP_SLOT_1_DIGIT_7 6 -# elif BOOST_PP_SLOT_TEMP_7 == 7 -# define BOOST_PP_SLOT_1_DIGIT_7 7 -# elif BOOST_PP_SLOT_TEMP_7 == 8 -# define BOOST_PP_SLOT_1_DIGIT_7 8 -# elif BOOST_PP_SLOT_TEMP_7 == 9 -# define BOOST_PP_SLOT_1_DIGIT_7 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_6 == 0 -# define BOOST_PP_SLOT_1_DIGIT_6 0 -# elif BOOST_PP_SLOT_TEMP_6 == 1 -# define BOOST_PP_SLOT_1_DIGIT_6 1 -# elif BOOST_PP_SLOT_TEMP_6 == 2 -# define BOOST_PP_SLOT_1_DIGIT_6 2 -# elif BOOST_PP_SLOT_TEMP_6 == 3 -# define BOOST_PP_SLOT_1_DIGIT_6 3 -# elif BOOST_PP_SLOT_TEMP_6 == 4 -# define BOOST_PP_SLOT_1_DIGIT_6 4 -# elif BOOST_PP_SLOT_TEMP_6 == 5 -# define BOOST_PP_SLOT_1_DIGIT_6 5 -# elif BOOST_PP_SLOT_TEMP_6 == 6 -# define BOOST_PP_SLOT_1_DIGIT_6 6 -# elif BOOST_PP_SLOT_TEMP_6 == 7 -# define BOOST_PP_SLOT_1_DIGIT_6 7 -# elif BOOST_PP_SLOT_TEMP_6 == 8 -# define BOOST_PP_SLOT_1_DIGIT_6 8 -# elif BOOST_PP_SLOT_TEMP_6 == 9 -# define BOOST_PP_SLOT_1_DIGIT_6 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_5 == 0 -# define BOOST_PP_SLOT_1_DIGIT_5 0 -# elif BOOST_PP_SLOT_TEMP_5 == 1 -# define BOOST_PP_SLOT_1_DIGIT_5 1 -# elif BOOST_PP_SLOT_TEMP_5 == 2 -# define BOOST_PP_SLOT_1_DIGIT_5 2 -# elif BOOST_PP_SLOT_TEMP_5 == 3 -# define BOOST_PP_SLOT_1_DIGIT_5 3 -# elif BOOST_PP_SLOT_TEMP_5 == 4 -# define BOOST_PP_SLOT_1_DIGIT_5 4 -# elif BOOST_PP_SLOT_TEMP_5 == 5 -# define BOOST_PP_SLOT_1_DIGIT_5 5 -# elif BOOST_PP_SLOT_TEMP_5 == 6 -# define BOOST_PP_SLOT_1_DIGIT_5 6 -# elif BOOST_PP_SLOT_TEMP_5 == 7 -# define BOOST_PP_SLOT_1_DIGIT_5 7 -# elif BOOST_PP_SLOT_TEMP_5 == 8 -# define BOOST_PP_SLOT_1_DIGIT_5 8 -# elif BOOST_PP_SLOT_TEMP_5 == 9 -# define BOOST_PP_SLOT_1_DIGIT_5 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_4 == 0 -# define BOOST_PP_SLOT_1_DIGIT_4 0 -# elif BOOST_PP_SLOT_TEMP_4 == 1 -# define BOOST_PP_SLOT_1_DIGIT_4 1 -# elif BOOST_PP_SLOT_TEMP_4 == 2 -# define BOOST_PP_SLOT_1_DIGIT_4 2 -# elif BOOST_PP_SLOT_TEMP_4 == 3 -# define BOOST_PP_SLOT_1_DIGIT_4 3 -# elif BOOST_PP_SLOT_TEMP_4 == 4 -# define BOOST_PP_SLOT_1_DIGIT_4 4 -# elif BOOST_PP_SLOT_TEMP_4 == 5 -# define BOOST_PP_SLOT_1_DIGIT_4 5 -# elif BOOST_PP_SLOT_TEMP_4 == 6 -# define BOOST_PP_SLOT_1_DIGIT_4 6 -# elif BOOST_PP_SLOT_TEMP_4 == 7 -# define BOOST_PP_SLOT_1_DIGIT_4 7 -# elif BOOST_PP_SLOT_TEMP_4 == 8 -# define BOOST_PP_SLOT_1_DIGIT_4 8 -# elif BOOST_PP_SLOT_TEMP_4 == 9 -# define BOOST_PP_SLOT_1_DIGIT_4 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_SLOT_1_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_SLOT_1_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_SLOT_1_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_SLOT_1_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_SLOT_1_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_SLOT_1_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_SLOT_1_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_SLOT_1_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_SLOT_1_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_SLOT_1_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_SLOT_1_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_SLOT_1_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_SLOT_1_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_SLOT_1_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_SLOT_1_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_SLOT_1_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_SLOT_1_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_SLOT_1_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_SLOT_1_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_SLOT_1_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_SLOT_1_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_SLOT_1_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_SLOT_1_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_SLOT_1_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_SLOT_1_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_SLOT_1_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_SLOT_1_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_SLOT_1_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_SLOT_1_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_SLOT_1_DIGIT_1 9 -# endif -# -# if BOOST_PP_SLOT_1_DIGIT_10 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_1_DIGIT_10, BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_9 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_8 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_7 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_6 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_5 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_4 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_3 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# elif BOOST_PP_SLOT_1_DIGIT_2 -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1) -# else -# define BOOST_PP_SLOT_1() BOOST_PP_SLOT_1_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot2.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot2.hpp deleted file mode 100644 index 5d5258c22..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot2.hpp +++ /dev/null @@ -1,267 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_SLOT_2 -# -# undef BOOST_PP_SLOT_2_DIGIT_1 -# undef BOOST_PP_SLOT_2_DIGIT_2 -# undef BOOST_PP_SLOT_2_DIGIT_3 -# undef BOOST_PP_SLOT_2_DIGIT_4 -# undef BOOST_PP_SLOT_2_DIGIT_5 -# undef BOOST_PP_SLOT_2_DIGIT_6 -# undef BOOST_PP_SLOT_2_DIGIT_7 -# undef BOOST_PP_SLOT_2_DIGIT_8 -# undef BOOST_PP_SLOT_2_DIGIT_9 -# undef BOOST_PP_SLOT_2_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_10 == 0 -# define BOOST_PP_SLOT_2_DIGIT_10 0 -# elif BOOST_PP_SLOT_TEMP_10 == 1 -# define BOOST_PP_SLOT_2_DIGIT_10 1 -# elif BOOST_PP_SLOT_TEMP_10 == 2 -# define BOOST_PP_SLOT_2_DIGIT_10 2 -# elif BOOST_PP_SLOT_TEMP_10 == 3 -# define BOOST_PP_SLOT_2_DIGIT_10 3 -# elif BOOST_PP_SLOT_TEMP_10 == 4 -# define BOOST_PP_SLOT_2_DIGIT_10 4 -# elif BOOST_PP_SLOT_TEMP_10 == 5 -# define BOOST_PP_SLOT_2_DIGIT_10 5 -# elif BOOST_PP_SLOT_TEMP_10 == 6 -# define BOOST_PP_SLOT_2_DIGIT_10 6 -# elif BOOST_PP_SLOT_TEMP_10 == 7 -# define BOOST_PP_SLOT_2_DIGIT_10 7 -# elif BOOST_PP_SLOT_TEMP_10 == 8 -# define BOOST_PP_SLOT_2_DIGIT_10 8 -# elif BOOST_PP_SLOT_TEMP_10 == 9 -# define BOOST_PP_SLOT_2_DIGIT_10 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_9 == 0 -# define BOOST_PP_SLOT_2_DIGIT_9 0 -# elif BOOST_PP_SLOT_TEMP_9 == 1 -# define BOOST_PP_SLOT_2_DIGIT_9 1 -# elif BOOST_PP_SLOT_TEMP_9 == 2 -# define BOOST_PP_SLOT_2_DIGIT_9 2 -# elif BOOST_PP_SLOT_TEMP_9 == 3 -# define BOOST_PP_SLOT_2_DIGIT_9 3 -# elif BOOST_PP_SLOT_TEMP_9 == 4 -# define BOOST_PP_SLOT_2_DIGIT_9 4 -# elif BOOST_PP_SLOT_TEMP_9 == 5 -# define BOOST_PP_SLOT_2_DIGIT_9 5 -# elif BOOST_PP_SLOT_TEMP_9 == 6 -# define BOOST_PP_SLOT_2_DIGIT_9 6 -# elif BOOST_PP_SLOT_TEMP_9 == 7 -# define BOOST_PP_SLOT_2_DIGIT_9 7 -# elif BOOST_PP_SLOT_TEMP_9 == 8 -# define BOOST_PP_SLOT_2_DIGIT_9 8 -# elif BOOST_PP_SLOT_TEMP_9 == 9 -# define BOOST_PP_SLOT_2_DIGIT_9 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_8 == 0 -# define BOOST_PP_SLOT_2_DIGIT_8 0 -# elif BOOST_PP_SLOT_TEMP_8 == 1 -# define BOOST_PP_SLOT_2_DIGIT_8 1 -# elif BOOST_PP_SLOT_TEMP_8 == 2 -# define BOOST_PP_SLOT_2_DIGIT_8 2 -# elif BOOST_PP_SLOT_TEMP_8 == 3 -# define BOOST_PP_SLOT_2_DIGIT_8 3 -# elif BOOST_PP_SLOT_TEMP_8 == 4 -# define BOOST_PP_SLOT_2_DIGIT_8 4 -# elif BOOST_PP_SLOT_TEMP_8 == 5 -# define BOOST_PP_SLOT_2_DIGIT_8 5 -# elif BOOST_PP_SLOT_TEMP_8 == 6 -# define BOOST_PP_SLOT_2_DIGIT_8 6 -# elif BOOST_PP_SLOT_TEMP_8 == 7 -# define BOOST_PP_SLOT_2_DIGIT_8 7 -# elif BOOST_PP_SLOT_TEMP_8 == 8 -# define BOOST_PP_SLOT_2_DIGIT_8 8 -# elif BOOST_PP_SLOT_TEMP_8 == 9 -# define BOOST_PP_SLOT_2_DIGIT_8 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_7 == 0 -# define BOOST_PP_SLOT_2_DIGIT_7 0 -# elif BOOST_PP_SLOT_TEMP_7 == 1 -# define BOOST_PP_SLOT_2_DIGIT_7 1 -# elif BOOST_PP_SLOT_TEMP_7 == 2 -# define BOOST_PP_SLOT_2_DIGIT_7 2 -# elif BOOST_PP_SLOT_TEMP_7 == 3 -# define BOOST_PP_SLOT_2_DIGIT_7 3 -# elif BOOST_PP_SLOT_TEMP_7 == 4 -# define BOOST_PP_SLOT_2_DIGIT_7 4 -# elif BOOST_PP_SLOT_TEMP_7 == 5 -# define BOOST_PP_SLOT_2_DIGIT_7 5 -# elif BOOST_PP_SLOT_TEMP_7 == 6 -# define BOOST_PP_SLOT_2_DIGIT_7 6 -# elif BOOST_PP_SLOT_TEMP_7 == 7 -# define BOOST_PP_SLOT_2_DIGIT_7 7 -# elif BOOST_PP_SLOT_TEMP_7 == 8 -# define BOOST_PP_SLOT_2_DIGIT_7 8 -# elif BOOST_PP_SLOT_TEMP_7 == 9 -# define BOOST_PP_SLOT_2_DIGIT_7 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_6 == 0 -# define BOOST_PP_SLOT_2_DIGIT_6 0 -# elif BOOST_PP_SLOT_TEMP_6 == 1 -# define BOOST_PP_SLOT_2_DIGIT_6 1 -# elif BOOST_PP_SLOT_TEMP_6 == 2 -# define BOOST_PP_SLOT_2_DIGIT_6 2 -# elif BOOST_PP_SLOT_TEMP_6 == 3 -# define BOOST_PP_SLOT_2_DIGIT_6 3 -# elif BOOST_PP_SLOT_TEMP_6 == 4 -# define BOOST_PP_SLOT_2_DIGIT_6 4 -# elif BOOST_PP_SLOT_TEMP_6 == 5 -# define BOOST_PP_SLOT_2_DIGIT_6 5 -# elif BOOST_PP_SLOT_TEMP_6 == 6 -# define BOOST_PP_SLOT_2_DIGIT_6 6 -# elif BOOST_PP_SLOT_TEMP_6 == 7 -# define BOOST_PP_SLOT_2_DIGIT_6 7 -# elif BOOST_PP_SLOT_TEMP_6 == 8 -# define BOOST_PP_SLOT_2_DIGIT_6 8 -# elif BOOST_PP_SLOT_TEMP_6 == 9 -# define BOOST_PP_SLOT_2_DIGIT_6 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_5 == 0 -# define BOOST_PP_SLOT_2_DIGIT_5 0 -# elif BOOST_PP_SLOT_TEMP_5 == 1 -# define BOOST_PP_SLOT_2_DIGIT_5 1 -# elif BOOST_PP_SLOT_TEMP_5 == 2 -# define BOOST_PP_SLOT_2_DIGIT_5 2 -# elif BOOST_PP_SLOT_TEMP_5 == 3 -# define BOOST_PP_SLOT_2_DIGIT_5 3 -# elif BOOST_PP_SLOT_TEMP_5 == 4 -# define BOOST_PP_SLOT_2_DIGIT_5 4 -# elif BOOST_PP_SLOT_TEMP_5 == 5 -# define BOOST_PP_SLOT_2_DIGIT_5 5 -# elif BOOST_PP_SLOT_TEMP_5 == 6 -# define BOOST_PP_SLOT_2_DIGIT_5 6 -# elif BOOST_PP_SLOT_TEMP_5 == 7 -# define BOOST_PP_SLOT_2_DIGIT_5 7 -# elif BOOST_PP_SLOT_TEMP_5 == 8 -# define BOOST_PP_SLOT_2_DIGIT_5 8 -# elif BOOST_PP_SLOT_TEMP_5 == 9 -# define BOOST_PP_SLOT_2_DIGIT_5 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_4 == 0 -# define BOOST_PP_SLOT_2_DIGIT_4 0 -# elif BOOST_PP_SLOT_TEMP_4 == 1 -# define BOOST_PP_SLOT_2_DIGIT_4 1 -# elif BOOST_PP_SLOT_TEMP_4 == 2 -# define BOOST_PP_SLOT_2_DIGIT_4 2 -# elif BOOST_PP_SLOT_TEMP_4 == 3 -# define BOOST_PP_SLOT_2_DIGIT_4 3 -# elif BOOST_PP_SLOT_TEMP_4 == 4 -# define BOOST_PP_SLOT_2_DIGIT_4 4 -# elif BOOST_PP_SLOT_TEMP_4 == 5 -# define BOOST_PP_SLOT_2_DIGIT_4 5 -# elif BOOST_PP_SLOT_TEMP_4 == 6 -# define BOOST_PP_SLOT_2_DIGIT_4 6 -# elif BOOST_PP_SLOT_TEMP_4 == 7 -# define BOOST_PP_SLOT_2_DIGIT_4 7 -# elif BOOST_PP_SLOT_TEMP_4 == 8 -# define BOOST_PP_SLOT_2_DIGIT_4 8 -# elif BOOST_PP_SLOT_TEMP_4 == 9 -# define BOOST_PP_SLOT_2_DIGIT_4 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_SLOT_2_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_SLOT_2_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_SLOT_2_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_SLOT_2_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_SLOT_2_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_SLOT_2_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_SLOT_2_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_SLOT_2_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_SLOT_2_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_SLOT_2_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_SLOT_2_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_SLOT_2_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_SLOT_2_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_SLOT_2_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_SLOT_2_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_SLOT_2_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_SLOT_2_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_SLOT_2_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_SLOT_2_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_SLOT_2_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_SLOT_2_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_SLOT_2_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_SLOT_2_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_SLOT_2_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_SLOT_2_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_SLOT_2_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_SLOT_2_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_SLOT_2_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_SLOT_2_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_SLOT_2_DIGIT_1 9 -# endif -# -# if BOOST_PP_SLOT_2_DIGIT_10 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_2_DIGIT_10, BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_9 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_8 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_7 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_6 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_5 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_4 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_3 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# elif BOOST_PP_SLOT_2_DIGIT_2 -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1) -# else -# define BOOST_PP_SLOT_2() BOOST_PP_SLOT_2_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot3.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot3.hpp deleted file mode 100644 index 005cf2190..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot3.hpp +++ /dev/null @@ -1,267 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_SLOT_3 -# -# undef BOOST_PP_SLOT_3_DIGIT_1 -# undef BOOST_PP_SLOT_3_DIGIT_2 -# undef BOOST_PP_SLOT_3_DIGIT_3 -# undef BOOST_PP_SLOT_3_DIGIT_4 -# undef BOOST_PP_SLOT_3_DIGIT_5 -# undef BOOST_PP_SLOT_3_DIGIT_6 -# undef BOOST_PP_SLOT_3_DIGIT_7 -# undef BOOST_PP_SLOT_3_DIGIT_8 -# undef BOOST_PP_SLOT_3_DIGIT_9 -# undef BOOST_PP_SLOT_3_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_10 == 0 -# define BOOST_PP_SLOT_3_DIGIT_10 0 -# elif BOOST_PP_SLOT_TEMP_10 == 1 -# define BOOST_PP_SLOT_3_DIGIT_10 1 -# elif BOOST_PP_SLOT_TEMP_10 == 2 -# define BOOST_PP_SLOT_3_DIGIT_10 2 -# elif BOOST_PP_SLOT_TEMP_10 == 3 -# define BOOST_PP_SLOT_3_DIGIT_10 3 -# elif BOOST_PP_SLOT_TEMP_10 == 4 -# define BOOST_PP_SLOT_3_DIGIT_10 4 -# elif BOOST_PP_SLOT_TEMP_10 == 5 -# define BOOST_PP_SLOT_3_DIGIT_10 5 -# elif BOOST_PP_SLOT_TEMP_10 == 6 -# define BOOST_PP_SLOT_3_DIGIT_10 6 -# elif BOOST_PP_SLOT_TEMP_10 == 7 -# define BOOST_PP_SLOT_3_DIGIT_10 7 -# elif BOOST_PP_SLOT_TEMP_10 == 8 -# define BOOST_PP_SLOT_3_DIGIT_10 8 -# elif BOOST_PP_SLOT_TEMP_10 == 9 -# define BOOST_PP_SLOT_3_DIGIT_10 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_9 == 0 -# define BOOST_PP_SLOT_3_DIGIT_9 0 -# elif BOOST_PP_SLOT_TEMP_9 == 1 -# define BOOST_PP_SLOT_3_DIGIT_9 1 -# elif BOOST_PP_SLOT_TEMP_9 == 2 -# define BOOST_PP_SLOT_3_DIGIT_9 2 -# elif BOOST_PP_SLOT_TEMP_9 == 3 -# define BOOST_PP_SLOT_3_DIGIT_9 3 -# elif BOOST_PP_SLOT_TEMP_9 == 4 -# define BOOST_PP_SLOT_3_DIGIT_9 4 -# elif BOOST_PP_SLOT_TEMP_9 == 5 -# define BOOST_PP_SLOT_3_DIGIT_9 5 -# elif BOOST_PP_SLOT_TEMP_9 == 6 -# define BOOST_PP_SLOT_3_DIGIT_9 6 -# elif BOOST_PP_SLOT_TEMP_9 == 7 -# define BOOST_PP_SLOT_3_DIGIT_9 7 -# elif BOOST_PP_SLOT_TEMP_9 == 8 -# define BOOST_PP_SLOT_3_DIGIT_9 8 -# elif BOOST_PP_SLOT_TEMP_9 == 9 -# define BOOST_PP_SLOT_3_DIGIT_9 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_8 == 0 -# define BOOST_PP_SLOT_3_DIGIT_8 0 -# elif BOOST_PP_SLOT_TEMP_8 == 1 -# define BOOST_PP_SLOT_3_DIGIT_8 1 -# elif BOOST_PP_SLOT_TEMP_8 == 2 -# define BOOST_PP_SLOT_3_DIGIT_8 2 -# elif BOOST_PP_SLOT_TEMP_8 == 3 -# define BOOST_PP_SLOT_3_DIGIT_8 3 -# elif BOOST_PP_SLOT_TEMP_8 == 4 -# define BOOST_PP_SLOT_3_DIGIT_8 4 -# elif BOOST_PP_SLOT_TEMP_8 == 5 -# define BOOST_PP_SLOT_3_DIGIT_8 5 -# elif BOOST_PP_SLOT_TEMP_8 == 6 -# define BOOST_PP_SLOT_3_DIGIT_8 6 -# elif BOOST_PP_SLOT_TEMP_8 == 7 -# define BOOST_PP_SLOT_3_DIGIT_8 7 -# elif BOOST_PP_SLOT_TEMP_8 == 8 -# define BOOST_PP_SLOT_3_DIGIT_8 8 -# elif BOOST_PP_SLOT_TEMP_8 == 9 -# define BOOST_PP_SLOT_3_DIGIT_8 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_7 == 0 -# define BOOST_PP_SLOT_3_DIGIT_7 0 -# elif BOOST_PP_SLOT_TEMP_7 == 1 -# define BOOST_PP_SLOT_3_DIGIT_7 1 -# elif BOOST_PP_SLOT_TEMP_7 == 2 -# define BOOST_PP_SLOT_3_DIGIT_7 2 -# elif BOOST_PP_SLOT_TEMP_7 == 3 -# define BOOST_PP_SLOT_3_DIGIT_7 3 -# elif BOOST_PP_SLOT_TEMP_7 == 4 -# define BOOST_PP_SLOT_3_DIGIT_7 4 -# elif BOOST_PP_SLOT_TEMP_7 == 5 -# define BOOST_PP_SLOT_3_DIGIT_7 5 -# elif BOOST_PP_SLOT_TEMP_7 == 6 -# define BOOST_PP_SLOT_3_DIGIT_7 6 -# elif BOOST_PP_SLOT_TEMP_7 == 7 -# define BOOST_PP_SLOT_3_DIGIT_7 7 -# elif BOOST_PP_SLOT_TEMP_7 == 8 -# define BOOST_PP_SLOT_3_DIGIT_7 8 -# elif BOOST_PP_SLOT_TEMP_7 == 9 -# define BOOST_PP_SLOT_3_DIGIT_7 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_6 == 0 -# define BOOST_PP_SLOT_3_DIGIT_6 0 -# elif BOOST_PP_SLOT_TEMP_6 == 1 -# define BOOST_PP_SLOT_3_DIGIT_6 1 -# elif BOOST_PP_SLOT_TEMP_6 == 2 -# define BOOST_PP_SLOT_3_DIGIT_6 2 -# elif BOOST_PP_SLOT_TEMP_6 == 3 -# define BOOST_PP_SLOT_3_DIGIT_6 3 -# elif BOOST_PP_SLOT_TEMP_6 == 4 -# define BOOST_PP_SLOT_3_DIGIT_6 4 -# elif BOOST_PP_SLOT_TEMP_6 == 5 -# define BOOST_PP_SLOT_3_DIGIT_6 5 -# elif BOOST_PP_SLOT_TEMP_6 == 6 -# define BOOST_PP_SLOT_3_DIGIT_6 6 -# elif BOOST_PP_SLOT_TEMP_6 == 7 -# define BOOST_PP_SLOT_3_DIGIT_6 7 -# elif BOOST_PP_SLOT_TEMP_6 == 8 -# define BOOST_PP_SLOT_3_DIGIT_6 8 -# elif BOOST_PP_SLOT_TEMP_6 == 9 -# define BOOST_PP_SLOT_3_DIGIT_6 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_5 == 0 -# define BOOST_PP_SLOT_3_DIGIT_5 0 -# elif BOOST_PP_SLOT_TEMP_5 == 1 -# define BOOST_PP_SLOT_3_DIGIT_5 1 -# elif BOOST_PP_SLOT_TEMP_5 == 2 -# define BOOST_PP_SLOT_3_DIGIT_5 2 -# elif BOOST_PP_SLOT_TEMP_5 == 3 -# define BOOST_PP_SLOT_3_DIGIT_5 3 -# elif BOOST_PP_SLOT_TEMP_5 == 4 -# define BOOST_PP_SLOT_3_DIGIT_5 4 -# elif BOOST_PP_SLOT_TEMP_5 == 5 -# define BOOST_PP_SLOT_3_DIGIT_5 5 -# elif BOOST_PP_SLOT_TEMP_5 == 6 -# define BOOST_PP_SLOT_3_DIGIT_5 6 -# elif BOOST_PP_SLOT_TEMP_5 == 7 -# define BOOST_PP_SLOT_3_DIGIT_5 7 -# elif BOOST_PP_SLOT_TEMP_5 == 8 -# define BOOST_PP_SLOT_3_DIGIT_5 8 -# elif BOOST_PP_SLOT_TEMP_5 == 9 -# define BOOST_PP_SLOT_3_DIGIT_5 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_4 == 0 -# define BOOST_PP_SLOT_3_DIGIT_4 0 -# elif BOOST_PP_SLOT_TEMP_4 == 1 -# define BOOST_PP_SLOT_3_DIGIT_4 1 -# elif BOOST_PP_SLOT_TEMP_4 == 2 -# define BOOST_PP_SLOT_3_DIGIT_4 2 -# elif BOOST_PP_SLOT_TEMP_4 == 3 -# define BOOST_PP_SLOT_3_DIGIT_4 3 -# elif BOOST_PP_SLOT_TEMP_4 == 4 -# define BOOST_PP_SLOT_3_DIGIT_4 4 -# elif BOOST_PP_SLOT_TEMP_4 == 5 -# define BOOST_PP_SLOT_3_DIGIT_4 5 -# elif BOOST_PP_SLOT_TEMP_4 == 6 -# define BOOST_PP_SLOT_3_DIGIT_4 6 -# elif BOOST_PP_SLOT_TEMP_4 == 7 -# define BOOST_PP_SLOT_3_DIGIT_4 7 -# elif BOOST_PP_SLOT_TEMP_4 == 8 -# define BOOST_PP_SLOT_3_DIGIT_4 8 -# elif BOOST_PP_SLOT_TEMP_4 == 9 -# define BOOST_PP_SLOT_3_DIGIT_4 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_SLOT_3_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_SLOT_3_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_SLOT_3_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_SLOT_3_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_SLOT_3_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_SLOT_3_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_SLOT_3_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_SLOT_3_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_SLOT_3_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_SLOT_3_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_SLOT_3_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_SLOT_3_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_SLOT_3_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_SLOT_3_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_SLOT_3_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_SLOT_3_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_SLOT_3_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_SLOT_3_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_SLOT_3_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_SLOT_3_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_SLOT_3_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_SLOT_3_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_SLOT_3_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_SLOT_3_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_SLOT_3_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_SLOT_3_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_SLOT_3_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_SLOT_3_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_SLOT_3_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_SLOT_3_DIGIT_1 9 -# endif -# -# if BOOST_PP_SLOT_3_DIGIT_10 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_3_DIGIT_10, BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_9 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_8 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_7 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_6 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_5 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_4 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_3 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# elif BOOST_PP_SLOT_3_DIGIT_2 -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1) -# else -# define BOOST_PP_SLOT_3() BOOST_PP_SLOT_3_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot4.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot4.hpp deleted file mode 100644 index 9aa4d8ab8..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot4.hpp +++ /dev/null @@ -1,267 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_SLOT_4 -# -# undef BOOST_PP_SLOT_4_DIGIT_1 -# undef BOOST_PP_SLOT_4_DIGIT_2 -# undef BOOST_PP_SLOT_4_DIGIT_3 -# undef BOOST_PP_SLOT_4_DIGIT_4 -# undef BOOST_PP_SLOT_4_DIGIT_5 -# undef BOOST_PP_SLOT_4_DIGIT_6 -# undef BOOST_PP_SLOT_4_DIGIT_7 -# undef BOOST_PP_SLOT_4_DIGIT_8 -# undef BOOST_PP_SLOT_4_DIGIT_9 -# undef BOOST_PP_SLOT_4_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_10 == 0 -# define BOOST_PP_SLOT_4_DIGIT_10 0 -# elif BOOST_PP_SLOT_TEMP_10 == 1 -# define BOOST_PP_SLOT_4_DIGIT_10 1 -# elif BOOST_PP_SLOT_TEMP_10 == 2 -# define BOOST_PP_SLOT_4_DIGIT_10 2 -# elif BOOST_PP_SLOT_TEMP_10 == 3 -# define BOOST_PP_SLOT_4_DIGIT_10 3 -# elif BOOST_PP_SLOT_TEMP_10 == 4 -# define BOOST_PP_SLOT_4_DIGIT_10 4 -# elif BOOST_PP_SLOT_TEMP_10 == 5 -# define BOOST_PP_SLOT_4_DIGIT_10 5 -# elif BOOST_PP_SLOT_TEMP_10 == 6 -# define BOOST_PP_SLOT_4_DIGIT_10 6 -# elif BOOST_PP_SLOT_TEMP_10 == 7 -# define BOOST_PP_SLOT_4_DIGIT_10 7 -# elif BOOST_PP_SLOT_TEMP_10 == 8 -# define BOOST_PP_SLOT_4_DIGIT_10 8 -# elif BOOST_PP_SLOT_TEMP_10 == 9 -# define BOOST_PP_SLOT_4_DIGIT_10 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_9 == 0 -# define BOOST_PP_SLOT_4_DIGIT_9 0 -# elif BOOST_PP_SLOT_TEMP_9 == 1 -# define BOOST_PP_SLOT_4_DIGIT_9 1 -# elif BOOST_PP_SLOT_TEMP_9 == 2 -# define BOOST_PP_SLOT_4_DIGIT_9 2 -# elif BOOST_PP_SLOT_TEMP_9 == 3 -# define BOOST_PP_SLOT_4_DIGIT_9 3 -# elif BOOST_PP_SLOT_TEMP_9 == 4 -# define BOOST_PP_SLOT_4_DIGIT_9 4 -# elif BOOST_PP_SLOT_TEMP_9 == 5 -# define BOOST_PP_SLOT_4_DIGIT_9 5 -# elif BOOST_PP_SLOT_TEMP_9 == 6 -# define BOOST_PP_SLOT_4_DIGIT_9 6 -# elif BOOST_PP_SLOT_TEMP_9 == 7 -# define BOOST_PP_SLOT_4_DIGIT_9 7 -# elif BOOST_PP_SLOT_TEMP_9 == 8 -# define BOOST_PP_SLOT_4_DIGIT_9 8 -# elif BOOST_PP_SLOT_TEMP_9 == 9 -# define BOOST_PP_SLOT_4_DIGIT_9 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_8 == 0 -# define BOOST_PP_SLOT_4_DIGIT_8 0 -# elif BOOST_PP_SLOT_TEMP_8 == 1 -# define BOOST_PP_SLOT_4_DIGIT_8 1 -# elif BOOST_PP_SLOT_TEMP_8 == 2 -# define BOOST_PP_SLOT_4_DIGIT_8 2 -# elif BOOST_PP_SLOT_TEMP_8 == 3 -# define BOOST_PP_SLOT_4_DIGIT_8 3 -# elif BOOST_PP_SLOT_TEMP_8 == 4 -# define BOOST_PP_SLOT_4_DIGIT_8 4 -# elif BOOST_PP_SLOT_TEMP_8 == 5 -# define BOOST_PP_SLOT_4_DIGIT_8 5 -# elif BOOST_PP_SLOT_TEMP_8 == 6 -# define BOOST_PP_SLOT_4_DIGIT_8 6 -# elif BOOST_PP_SLOT_TEMP_8 == 7 -# define BOOST_PP_SLOT_4_DIGIT_8 7 -# elif BOOST_PP_SLOT_TEMP_8 == 8 -# define BOOST_PP_SLOT_4_DIGIT_8 8 -# elif BOOST_PP_SLOT_TEMP_8 == 9 -# define BOOST_PP_SLOT_4_DIGIT_8 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_7 == 0 -# define BOOST_PP_SLOT_4_DIGIT_7 0 -# elif BOOST_PP_SLOT_TEMP_7 == 1 -# define BOOST_PP_SLOT_4_DIGIT_7 1 -# elif BOOST_PP_SLOT_TEMP_7 == 2 -# define BOOST_PP_SLOT_4_DIGIT_7 2 -# elif BOOST_PP_SLOT_TEMP_7 == 3 -# define BOOST_PP_SLOT_4_DIGIT_7 3 -# elif BOOST_PP_SLOT_TEMP_7 == 4 -# define BOOST_PP_SLOT_4_DIGIT_7 4 -# elif BOOST_PP_SLOT_TEMP_7 == 5 -# define BOOST_PP_SLOT_4_DIGIT_7 5 -# elif BOOST_PP_SLOT_TEMP_7 == 6 -# define BOOST_PP_SLOT_4_DIGIT_7 6 -# elif BOOST_PP_SLOT_TEMP_7 == 7 -# define BOOST_PP_SLOT_4_DIGIT_7 7 -# elif BOOST_PP_SLOT_TEMP_7 == 8 -# define BOOST_PP_SLOT_4_DIGIT_7 8 -# elif BOOST_PP_SLOT_TEMP_7 == 9 -# define BOOST_PP_SLOT_4_DIGIT_7 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_6 == 0 -# define BOOST_PP_SLOT_4_DIGIT_6 0 -# elif BOOST_PP_SLOT_TEMP_6 == 1 -# define BOOST_PP_SLOT_4_DIGIT_6 1 -# elif BOOST_PP_SLOT_TEMP_6 == 2 -# define BOOST_PP_SLOT_4_DIGIT_6 2 -# elif BOOST_PP_SLOT_TEMP_6 == 3 -# define BOOST_PP_SLOT_4_DIGIT_6 3 -# elif BOOST_PP_SLOT_TEMP_6 == 4 -# define BOOST_PP_SLOT_4_DIGIT_6 4 -# elif BOOST_PP_SLOT_TEMP_6 == 5 -# define BOOST_PP_SLOT_4_DIGIT_6 5 -# elif BOOST_PP_SLOT_TEMP_6 == 6 -# define BOOST_PP_SLOT_4_DIGIT_6 6 -# elif BOOST_PP_SLOT_TEMP_6 == 7 -# define BOOST_PP_SLOT_4_DIGIT_6 7 -# elif BOOST_PP_SLOT_TEMP_6 == 8 -# define BOOST_PP_SLOT_4_DIGIT_6 8 -# elif BOOST_PP_SLOT_TEMP_6 == 9 -# define BOOST_PP_SLOT_4_DIGIT_6 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_5 == 0 -# define BOOST_PP_SLOT_4_DIGIT_5 0 -# elif BOOST_PP_SLOT_TEMP_5 == 1 -# define BOOST_PP_SLOT_4_DIGIT_5 1 -# elif BOOST_PP_SLOT_TEMP_5 == 2 -# define BOOST_PP_SLOT_4_DIGIT_5 2 -# elif BOOST_PP_SLOT_TEMP_5 == 3 -# define BOOST_PP_SLOT_4_DIGIT_5 3 -# elif BOOST_PP_SLOT_TEMP_5 == 4 -# define BOOST_PP_SLOT_4_DIGIT_5 4 -# elif BOOST_PP_SLOT_TEMP_5 == 5 -# define BOOST_PP_SLOT_4_DIGIT_5 5 -# elif BOOST_PP_SLOT_TEMP_5 == 6 -# define BOOST_PP_SLOT_4_DIGIT_5 6 -# elif BOOST_PP_SLOT_TEMP_5 == 7 -# define BOOST_PP_SLOT_4_DIGIT_5 7 -# elif BOOST_PP_SLOT_TEMP_5 == 8 -# define BOOST_PP_SLOT_4_DIGIT_5 8 -# elif BOOST_PP_SLOT_TEMP_5 == 9 -# define BOOST_PP_SLOT_4_DIGIT_5 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_4 == 0 -# define BOOST_PP_SLOT_4_DIGIT_4 0 -# elif BOOST_PP_SLOT_TEMP_4 == 1 -# define BOOST_PP_SLOT_4_DIGIT_4 1 -# elif BOOST_PP_SLOT_TEMP_4 == 2 -# define BOOST_PP_SLOT_4_DIGIT_4 2 -# elif BOOST_PP_SLOT_TEMP_4 == 3 -# define BOOST_PP_SLOT_4_DIGIT_4 3 -# elif BOOST_PP_SLOT_TEMP_4 == 4 -# define BOOST_PP_SLOT_4_DIGIT_4 4 -# elif BOOST_PP_SLOT_TEMP_4 == 5 -# define BOOST_PP_SLOT_4_DIGIT_4 5 -# elif BOOST_PP_SLOT_TEMP_4 == 6 -# define BOOST_PP_SLOT_4_DIGIT_4 6 -# elif BOOST_PP_SLOT_TEMP_4 == 7 -# define BOOST_PP_SLOT_4_DIGIT_4 7 -# elif BOOST_PP_SLOT_TEMP_4 == 8 -# define BOOST_PP_SLOT_4_DIGIT_4 8 -# elif BOOST_PP_SLOT_TEMP_4 == 9 -# define BOOST_PP_SLOT_4_DIGIT_4 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_SLOT_4_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_SLOT_4_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_SLOT_4_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_SLOT_4_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_SLOT_4_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_SLOT_4_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_SLOT_4_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_SLOT_4_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_SLOT_4_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_SLOT_4_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_SLOT_4_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_SLOT_4_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_SLOT_4_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_SLOT_4_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_SLOT_4_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_SLOT_4_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_SLOT_4_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_SLOT_4_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_SLOT_4_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_SLOT_4_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_SLOT_4_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_SLOT_4_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_SLOT_4_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_SLOT_4_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_SLOT_4_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_SLOT_4_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_SLOT_4_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_SLOT_4_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_SLOT_4_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_SLOT_4_DIGIT_1 9 -# endif -# -# if BOOST_PP_SLOT_4_DIGIT_10 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_4_DIGIT_10, BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_9 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_8 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_7 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_6 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_5 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_4 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_3 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# elif BOOST_PP_SLOT_4_DIGIT_2 -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1) -# else -# define BOOST_PP_SLOT_4() BOOST_PP_SLOT_4_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot5.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot5.hpp deleted file mode 100644 index d17535daf..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/detail/slot5.hpp +++ /dev/null @@ -1,267 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# include -# -# undef BOOST_PP_SLOT_5 -# -# undef BOOST_PP_SLOT_5_DIGIT_1 -# undef BOOST_PP_SLOT_5_DIGIT_2 -# undef BOOST_PP_SLOT_5_DIGIT_3 -# undef BOOST_PP_SLOT_5_DIGIT_4 -# undef BOOST_PP_SLOT_5_DIGIT_5 -# undef BOOST_PP_SLOT_5_DIGIT_6 -# undef BOOST_PP_SLOT_5_DIGIT_7 -# undef BOOST_PP_SLOT_5_DIGIT_8 -# undef BOOST_PP_SLOT_5_DIGIT_9 -# undef BOOST_PP_SLOT_5_DIGIT_10 -# -# if BOOST_PP_SLOT_TEMP_10 == 0 -# define BOOST_PP_SLOT_5_DIGIT_10 0 -# elif BOOST_PP_SLOT_TEMP_10 == 1 -# define BOOST_PP_SLOT_5_DIGIT_10 1 -# elif BOOST_PP_SLOT_TEMP_10 == 2 -# define BOOST_PP_SLOT_5_DIGIT_10 2 -# elif BOOST_PP_SLOT_TEMP_10 == 3 -# define BOOST_PP_SLOT_5_DIGIT_10 3 -# elif BOOST_PP_SLOT_TEMP_10 == 4 -# define BOOST_PP_SLOT_5_DIGIT_10 4 -# elif BOOST_PP_SLOT_TEMP_10 == 5 -# define BOOST_PP_SLOT_5_DIGIT_10 5 -# elif BOOST_PP_SLOT_TEMP_10 == 6 -# define BOOST_PP_SLOT_5_DIGIT_10 6 -# elif BOOST_PP_SLOT_TEMP_10 == 7 -# define BOOST_PP_SLOT_5_DIGIT_10 7 -# elif BOOST_PP_SLOT_TEMP_10 == 8 -# define BOOST_PP_SLOT_5_DIGIT_10 8 -# elif BOOST_PP_SLOT_TEMP_10 == 9 -# define BOOST_PP_SLOT_5_DIGIT_10 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_9 == 0 -# define BOOST_PP_SLOT_5_DIGIT_9 0 -# elif BOOST_PP_SLOT_TEMP_9 == 1 -# define BOOST_PP_SLOT_5_DIGIT_9 1 -# elif BOOST_PP_SLOT_TEMP_9 == 2 -# define BOOST_PP_SLOT_5_DIGIT_9 2 -# elif BOOST_PP_SLOT_TEMP_9 == 3 -# define BOOST_PP_SLOT_5_DIGIT_9 3 -# elif BOOST_PP_SLOT_TEMP_9 == 4 -# define BOOST_PP_SLOT_5_DIGIT_9 4 -# elif BOOST_PP_SLOT_TEMP_9 == 5 -# define BOOST_PP_SLOT_5_DIGIT_9 5 -# elif BOOST_PP_SLOT_TEMP_9 == 6 -# define BOOST_PP_SLOT_5_DIGIT_9 6 -# elif BOOST_PP_SLOT_TEMP_9 == 7 -# define BOOST_PP_SLOT_5_DIGIT_9 7 -# elif BOOST_PP_SLOT_TEMP_9 == 8 -# define BOOST_PP_SLOT_5_DIGIT_9 8 -# elif BOOST_PP_SLOT_TEMP_9 == 9 -# define BOOST_PP_SLOT_5_DIGIT_9 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_8 == 0 -# define BOOST_PP_SLOT_5_DIGIT_8 0 -# elif BOOST_PP_SLOT_TEMP_8 == 1 -# define BOOST_PP_SLOT_5_DIGIT_8 1 -# elif BOOST_PP_SLOT_TEMP_8 == 2 -# define BOOST_PP_SLOT_5_DIGIT_8 2 -# elif BOOST_PP_SLOT_TEMP_8 == 3 -# define BOOST_PP_SLOT_5_DIGIT_8 3 -# elif BOOST_PP_SLOT_TEMP_8 == 4 -# define BOOST_PP_SLOT_5_DIGIT_8 4 -# elif BOOST_PP_SLOT_TEMP_8 == 5 -# define BOOST_PP_SLOT_5_DIGIT_8 5 -# elif BOOST_PP_SLOT_TEMP_8 == 6 -# define BOOST_PP_SLOT_5_DIGIT_8 6 -# elif BOOST_PP_SLOT_TEMP_8 == 7 -# define BOOST_PP_SLOT_5_DIGIT_8 7 -# elif BOOST_PP_SLOT_TEMP_8 == 8 -# define BOOST_PP_SLOT_5_DIGIT_8 8 -# elif BOOST_PP_SLOT_TEMP_8 == 9 -# define BOOST_PP_SLOT_5_DIGIT_8 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_7 == 0 -# define BOOST_PP_SLOT_5_DIGIT_7 0 -# elif BOOST_PP_SLOT_TEMP_7 == 1 -# define BOOST_PP_SLOT_5_DIGIT_7 1 -# elif BOOST_PP_SLOT_TEMP_7 == 2 -# define BOOST_PP_SLOT_5_DIGIT_7 2 -# elif BOOST_PP_SLOT_TEMP_7 == 3 -# define BOOST_PP_SLOT_5_DIGIT_7 3 -# elif BOOST_PP_SLOT_TEMP_7 == 4 -# define BOOST_PP_SLOT_5_DIGIT_7 4 -# elif BOOST_PP_SLOT_TEMP_7 == 5 -# define BOOST_PP_SLOT_5_DIGIT_7 5 -# elif BOOST_PP_SLOT_TEMP_7 == 6 -# define BOOST_PP_SLOT_5_DIGIT_7 6 -# elif BOOST_PP_SLOT_TEMP_7 == 7 -# define BOOST_PP_SLOT_5_DIGIT_7 7 -# elif BOOST_PP_SLOT_TEMP_7 == 8 -# define BOOST_PP_SLOT_5_DIGIT_7 8 -# elif BOOST_PP_SLOT_TEMP_7 == 9 -# define BOOST_PP_SLOT_5_DIGIT_7 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_6 == 0 -# define BOOST_PP_SLOT_5_DIGIT_6 0 -# elif BOOST_PP_SLOT_TEMP_6 == 1 -# define BOOST_PP_SLOT_5_DIGIT_6 1 -# elif BOOST_PP_SLOT_TEMP_6 == 2 -# define BOOST_PP_SLOT_5_DIGIT_6 2 -# elif BOOST_PP_SLOT_TEMP_6 == 3 -# define BOOST_PP_SLOT_5_DIGIT_6 3 -# elif BOOST_PP_SLOT_TEMP_6 == 4 -# define BOOST_PP_SLOT_5_DIGIT_6 4 -# elif BOOST_PP_SLOT_TEMP_6 == 5 -# define BOOST_PP_SLOT_5_DIGIT_6 5 -# elif BOOST_PP_SLOT_TEMP_6 == 6 -# define BOOST_PP_SLOT_5_DIGIT_6 6 -# elif BOOST_PP_SLOT_TEMP_6 == 7 -# define BOOST_PP_SLOT_5_DIGIT_6 7 -# elif BOOST_PP_SLOT_TEMP_6 == 8 -# define BOOST_PP_SLOT_5_DIGIT_6 8 -# elif BOOST_PP_SLOT_TEMP_6 == 9 -# define BOOST_PP_SLOT_5_DIGIT_6 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_5 == 0 -# define BOOST_PP_SLOT_5_DIGIT_5 0 -# elif BOOST_PP_SLOT_TEMP_5 == 1 -# define BOOST_PP_SLOT_5_DIGIT_5 1 -# elif BOOST_PP_SLOT_TEMP_5 == 2 -# define BOOST_PP_SLOT_5_DIGIT_5 2 -# elif BOOST_PP_SLOT_TEMP_5 == 3 -# define BOOST_PP_SLOT_5_DIGIT_5 3 -# elif BOOST_PP_SLOT_TEMP_5 == 4 -# define BOOST_PP_SLOT_5_DIGIT_5 4 -# elif BOOST_PP_SLOT_TEMP_5 == 5 -# define BOOST_PP_SLOT_5_DIGIT_5 5 -# elif BOOST_PP_SLOT_TEMP_5 == 6 -# define BOOST_PP_SLOT_5_DIGIT_5 6 -# elif BOOST_PP_SLOT_TEMP_5 == 7 -# define BOOST_PP_SLOT_5_DIGIT_5 7 -# elif BOOST_PP_SLOT_TEMP_5 == 8 -# define BOOST_PP_SLOT_5_DIGIT_5 8 -# elif BOOST_PP_SLOT_TEMP_5 == 9 -# define BOOST_PP_SLOT_5_DIGIT_5 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_4 == 0 -# define BOOST_PP_SLOT_5_DIGIT_4 0 -# elif BOOST_PP_SLOT_TEMP_4 == 1 -# define BOOST_PP_SLOT_5_DIGIT_4 1 -# elif BOOST_PP_SLOT_TEMP_4 == 2 -# define BOOST_PP_SLOT_5_DIGIT_4 2 -# elif BOOST_PP_SLOT_TEMP_4 == 3 -# define BOOST_PP_SLOT_5_DIGIT_4 3 -# elif BOOST_PP_SLOT_TEMP_4 == 4 -# define BOOST_PP_SLOT_5_DIGIT_4 4 -# elif BOOST_PP_SLOT_TEMP_4 == 5 -# define BOOST_PP_SLOT_5_DIGIT_4 5 -# elif BOOST_PP_SLOT_TEMP_4 == 6 -# define BOOST_PP_SLOT_5_DIGIT_4 6 -# elif BOOST_PP_SLOT_TEMP_4 == 7 -# define BOOST_PP_SLOT_5_DIGIT_4 7 -# elif BOOST_PP_SLOT_TEMP_4 == 8 -# define BOOST_PP_SLOT_5_DIGIT_4 8 -# elif BOOST_PP_SLOT_TEMP_4 == 9 -# define BOOST_PP_SLOT_5_DIGIT_4 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_3 == 0 -# define BOOST_PP_SLOT_5_DIGIT_3 0 -# elif BOOST_PP_SLOT_TEMP_3 == 1 -# define BOOST_PP_SLOT_5_DIGIT_3 1 -# elif BOOST_PP_SLOT_TEMP_3 == 2 -# define BOOST_PP_SLOT_5_DIGIT_3 2 -# elif BOOST_PP_SLOT_TEMP_3 == 3 -# define BOOST_PP_SLOT_5_DIGIT_3 3 -# elif BOOST_PP_SLOT_TEMP_3 == 4 -# define BOOST_PP_SLOT_5_DIGIT_3 4 -# elif BOOST_PP_SLOT_TEMP_3 == 5 -# define BOOST_PP_SLOT_5_DIGIT_3 5 -# elif BOOST_PP_SLOT_TEMP_3 == 6 -# define BOOST_PP_SLOT_5_DIGIT_3 6 -# elif BOOST_PP_SLOT_TEMP_3 == 7 -# define BOOST_PP_SLOT_5_DIGIT_3 7 -# elif BOOST_PP_SLOT_TEMP_3 == 8 -# define BOOST_PP_SLOT_5_DIGIT_3 8 -# elif BOOST_PP_SLOT_TEMP_3 == 9 -# define BOOST_PP_SLOT_5_DIGIT_3 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_2 == 0 -# define BOOST_PP_SLOT_5_DIGIT_2 0 -# elif BOOST_PP_SLOT_TEMP_2 == 1 -# define BOOST_PP_SLOT_5_DIGIT_2 1 -# elif BOOST_PP_SLOT_TEMP_2 == 2 -# define BOOST_PP_SLOT_5_DIGIT_2 2 -# elif BOOST_PP_SLOT_TEMP_2 == 3 -# define BOOST_PP_SLOT_5_DIGIT_2 3 -# elif BOOST_PP_SLOT_TEMP_2 == 4 -# define BOOST_PP_SLOT_5_DIGIT_2 4 -# elif BOOST_PP_SLOT_TEMP_2 == 5 -# define BOOST_PP_SLOT_5_DIGIT_2 5 -# elif BOOST_PP_SLOT_TEMP_2 == 6 -# define BOOST_PP_SLOT_5_DIGIT_2 6 -# elif BOOST_PP_SLOT_TEMP_2 == 7 -# define BOOST_PP_SLOT_5_DIGIT_2 7 -# elif BOOST_PP_SLOT_TEMP_2 == 8 -# define BOOST_PP_SLOT_5_DIGIT_2 8 -# elif BOOST_PP_SLOT_TEMP_2 == 9 -# define BOOST_PP_SLOT_5_DIGIT_2 9 -# endif -# -# if BOOST_PP_SLOT_TEMP_1 == 0 -# define BOOST_PP_SLOT_5_DIGIT_1 0 -# elif BOOST_PP_SLOT_TEMP_1 == 1 -# define BOOST_PP_SLOT_5_DIGIT_1 1 -# elif BOOST_PP_SLOT_TEMP_1 == 2 -# define BOOST_PP_SLOT_5_DIGIT_1 2 -# elif BOOST_PP_SLOT_TEMP_1 == 3 -# define BOOST_PP_SLOT_5_DIGIT_1 3 -# elif BOOST_PP_SLOT_TEMP_1 == 4 -# define BOOST_PP_SLOT_5_DIGIT_1 4 -# elif BOOST_PP_SLOT_TEMP_1 == 5 -# define BOOST_PP_SLOT_5_DIGIT_1 5 -# elif BOOST_PP_SLOT_TEMP_1 == 6 -# define BOOST_PP_SLOT_5_DIGIT_1 6 -# elif BOOST_PP_SLOT_TEMP_1 == 7 -# define BOOST_PP_SLOT_5_DIGIT_1 7 -# elif BOOST_PP_SLOT_TEMP_1 == 8 -# define BOOST_PP_SLOT_5_DIGIT_1 8 -# elif BOOST_PP_SLOT_TEMP_1 == 9 -# define BOOST_PP_SLOT_5_DIGIT_1 9 -# endif -# -# if BOOST_PP_SLOT_5_DIGIT_10 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_5_DIGIT_10, BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_9 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_8 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_7 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_6 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_5 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_4 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_3 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# elif BOOST_PP_SLOT_5_DIGIT_2 -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1) -# else -# define BOOST_PP_SLOT_5() BOOST_PP_SLOT_5_DIGIT_1 -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/slot/slot.hpp b/lib/3rdParty/boost/boost/preprocessor/slot/slot.hpp deleted file mode 100644 index 147b097ca..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/slot/slot.hpp +++ /dev/null @@ -1,32 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_SLOT_SLOT_HPP -# define BOOST_PREPROCESSOR_SLOT_SLOT_HPP -# -# include -# include -# -# /* BOOST_PP_ASSIGN_SLOT */ -# -# define BOOST_PP_ASSIGN_SLOT(i) BOOST_PP_CAT(BOOST_PP_ASSIGN_SLOT_, i) -# -# define BOOST_PP_ASSIGN_SLOT_1 -# define BOOST_PP_ASSIGN_SLOT_2 -# define BOOST_PP_ASSIGN_SLOT_3 -# define BOOST_PP_ASSIGN_SLOT_4 -# define BOOST_PP_ASSIGN_SLOT_5 -# -# /* BOOST_PP_SLOT */ -# -# define BOOST_PP_SLOT(i) BOOST_PP_CAT(BOOST_PP_SLOT_, i)() -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/stringize.hpp b/lib/3rdParty/boost/boost/preprocessor/stringize.hpp deleted file mode 100644 index 64dd5fde3..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/stringize.hpp +++ /dev/null @@ -1,33 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_STRINGIZE_HPP -# define BOOST_PREPROCESSOR_STRINGIZE_HPP -# -# include -# -# /* BOOST_PP_STRINGIZE */ -# -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_A((text)) -# define BOOST_PP_STRINGIZE_A(arg) BOOST_PP_STRINGIZE_I arg -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_OO((text)) -# define BOOST_PP_STRINGIZE_OO(par) BOOST_PP_STRINGIZE_I ## par -# else -# define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_I(text) -# endif -# -# define BOOST_PP_STRINGIZE_I(text) #text -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple.hpp deleted file mode 100644 index 76fad3650..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple.hpp +++ /dev/null @@ -1,35 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# /* Revised by Edward Diener (2011,2013) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_HPP -# define BOOST_PREPROCESSOR_TUPLE_HPP -# -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/detail/is_single_return.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/detail/is_single_return.hpp deleted file mode 100644 index 02a4fb207..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/detail/is_single_return.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP -# define BOOST_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP -# -# include -# -# /* BOOST_PP_TUPLE_IS_SINGLE_RETURN */ -# -# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC -# include -# include -# include -# define BOOST_PP_TUPLE_IS_SINGLE_RETURN(sr,nsr,tuple) \ - BOOST_PP_IIF(BOOST_PP_IS_1(BOOST_PP_TUPLE_SIZE(tuple)),sr,nsr) \ - /**/ -# endif /* BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC */ -# -# endif /* BOOST_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/eat.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/eat.hpp deleted file mode 100644 index 7e8a10067..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/eat.hpp +++ /dev/null @@ -1,115 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002-2011) */ -# /* Revised by Edward Diener (2011,2015) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_EAT_HPP -# define BOOST_PREPROCESSOR_TUPLE_EAT_HPP -# -# include -# -# /* BOOST_PP_EAT */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_EAT(...) -# else -# define BOOST_PP_EAT(x) -# endif -# -# /* BOOST_PP_TUPLE_EAT */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_EAT -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size) -# else -# define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size)) -# define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par -# endif -# define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size -# endif -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_EAT_N(size) BOOST_PP_TUPLE_EAT_N_I(size) -# else -# define BOOST_PP_TUPLE_EAT_N(size) BOOST_PP_TUPLE_EAT_N_OO((size)) -# define BOOST_PP_TUPLE_EAT_N_OO(par) BOOST_PP_TUPLE_EAT_N_I ## par -# endif -# define BOOST_PP_TUPLE_EAT_N_I(size) BOOST_PP_TUPLE_EAT_ ## size -# -# define BOOST_PP_TUPLE_EAT_1(e0) -# define BOOST_PP_TUPLE_EAT_2(e0, e1) -# define BOOST_PP_TUPLE_EAT_3(e0, e1, e2) -# define BOOST_PP_TUPLE_EAT_4(e0, e1, e2, e3) -# define BOOST_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4) -# define BOOST_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5) -# define BOOST_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6) -# define BOOST_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7) -# define BOOST_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) -# define BOOST_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) -# define BOOST_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) -# define BOOST_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) -# define BOOST_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) -# define BOOST_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) -# define BOOST_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) -# define BOOST_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) -# define BOOST_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) -# define BOOST_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) -# define BOOST_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) -# define BOOST_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) -# define BOOST_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) -# define BOOST_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) -# define BOOST_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) -# define BOOST_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) -# define BOOST_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) -# define BOOST_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) -# define BOOST_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) -# define BOOST_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) -# define BOOST_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) -# define BOOST_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) -# define BOOST_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) -# define BOOST_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) -# define BOOST_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) -# define BOOST_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) -# define BOOST_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) -# define BOOST_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) -# define BOOST_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) -# define BOOST_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) -# define BOOST_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) -# define BOOST_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) -# define BOOST_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) -# define BOOST_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) -# define BOOST_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) -# define BOOST_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) -# define BOOST_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) -# define BOOST_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) -# define BOOST_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) -# define BOOST_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) -# define BOOST_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) -# define BOOST_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) -# define BOOST_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) -# define BOOST_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) -# define BOOST_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) -# define BOOST_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) -# define BOOST_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) -# define BOOST_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) -# define BOOST_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) -# define BOOST_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) -# define BOOST_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) -# define BOOST_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) -# define BOOST_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) -# define BOOST_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) -# define BOOST_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) -# define BOOST_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/elem.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/elem.hpp deleted file mode 100644 index 88044d3c7..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/elem.hpp +++ /dev/null @@ -1,201 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002-2011) */ -# /* Revised by Edward Diener (2011,2014) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_ELEM_HPP -# define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP -# -# include -# include -# include -# include -# include -# include -# include -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__)) -# define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args) -# define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,) -/* - Use BOOST_PP_REM_CAT if it is a single element tuple ( which might be empty ) - else use BOOST_PP_REM. This fixes a VC++ problem with an empty tuple and BOOST_PP_TUPLE_ELEM - functionality. See tuple_elem_bug_test.cxx. -*/ -# define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) \ - BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_EXPAND(BOOST_PP_TUPLE_IS_SINGLE_RETURN(BOOST_PP_REM_CAT,BOOST_PP_REM,tuple) tuple)) \ - /**/ -# else -# define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__) -# define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple) -# endif -# define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple) -# else -# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n), BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size), tuple)) -# define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args) -# define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,) -# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I_OO((size, n, tuple)) -# define BOOST_PP_TUPLE_ELEM_I_OO(par) BOOST_PP_TUPLE_ELEM_I ## par -# define BOOST_PP_TUPLE_ELEM_I(size, n, tuple) BOOST_PP_TUPLE_ELEM_II((n, BOOST_PP_TUPLE_ELEM_E_ ## size ## tuple)) -# define BOOST_PP_TUPLE_ELEM_II(par) BOOST_PP_TUPLE_ELEM_III_OO(par) -# define BOOST_PP_TUPLE_ELEM_III_OO(par) BOOST_PP_TUPLE_ELEM_III ## par -# define BOOST_PP_TUPLE_ELEM_III(n, etuple) BOOST_PP_TUPLE_ELEM_ ## n ## etuple -# else -# define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size) tuple) -# define BOOST_PP_TUPLE_ELEM_I(x) x -# endif -# define BOOST_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ?, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ?, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ?, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ?, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ?, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ?, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ?, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ?, ?) -# define BOOST_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ?) -# define BOOST_PP_TUPLE_ELEM_E_64 -# define BOOST_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0 -# define BOOST_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1 -# define BOOST_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2 -# define BOOST_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3 -# define BOOST_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4 -# define BOOST_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5 -# define BOOST_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6 -# define BOOST_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7 -# define BOOST_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8 -# define BOOST_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9 -# define BOOST_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10 -# define BOOST_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11 -# define BOOST_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12 -# define BOOST_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13 -# define BOOST_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14 -# define BOOST_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15 -# define BOOST_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16 -# define BOOST_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17 -# define BOOST_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18 -# define BOOST_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19 -# define BOOST_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20 -# define BOOST_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21 -# define BOOST_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22 -# define BOOST_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23 -# define BOOST_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24 -# define BOOST_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25 -# define BOOST_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26 -# define BOOST_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27 -# define BOOST_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28 -# define BOOST_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29 -# define BOOST_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30 -# define BOOST_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31 -# define BOOST_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32 -# define BOOST_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33 -# define BOOST_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34 -# define BOOST_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35 -# define BOOST_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36 -# define BOOST_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37 -# define BOOST_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38 -# define BOOST_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39 -# define BOOST_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40 -# define BOOST_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41 -# define BOOST_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42 -# define BOOST_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43 -# define BOOST_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44 -# define BOOST_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45 -# define BOOST_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46 -# define BOOST_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47 -# define BOOST_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48 -# define BOOST_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49 -# define BOOST_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50 -# define BOOST_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51 -# define BOOST_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52 -# define BOOST_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53 -# define BOOST_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54 -# define BOOST_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55 -# define BOOST_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56 -# define BOOST_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57 -# define BOOST_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58 -# define BOOST_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59 -# define BOOST_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60 -# define BOOST_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61 -# define BOOST_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62 -# define BOOST_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63 -# endif -# -# /* directly used elsewhere in Boost... */ -# -# define BOOST_PP_TUPLE_ELEM_1_0(a) a -# -# define BOOST_PP_TUPLE_ELEM_2_0(a, b) a -# define BOOST_PP_TUPLE_ELEM_2_1(a, b) b -# -# define BOOST_PP_TUPLE_ELEM_3_0(a, b, c) a -# define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b -# define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/enum.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/enum.hpp deleted file mode 100644 index 4915831e4..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/enum.hpp +++ /dev/null @@ -1,22 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_ENUM_HPP -# define BOOST_PREPROCESSOR_TUPLE_ENUM_HPP -# -# include -# -# /* BOOST_PP_TUPLE_ENUM */ -# -# define BOOST_PP_TUPLE_ENUM BOOST_PP_TUPLE_REM_CTOR -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/insert.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/insert.hpp deleted file mode 100644 index ce4544f08..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/insert.hpp +++ /dev/null @@ -1,37 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_INSERT_HPP -# define BOOST_PREPROCESSOR_TUPLE_INSERT_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# -# /* BOOST_PP_TUPLE_INSERT */ -# -# define BOOST_PP_TUPLE_INSERT(tuple, i, elem) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_INSERT(BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ -/**/ -# -# /* BOOST_PP_TUPLE_INSERT_D */ -# -# define BOOST_PP_TUPLE_INSERT_D(d, tuple, i, elem) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_INSERT_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ -/**/ -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_INSERT_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/pop_back.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/pop_back.hpp deleted file mode 100644 index 3ac414ba9..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/pop_back.hpp +++ /dev/null @@ -1,64 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP -# define BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_TUPLE_POP_BACK */ -# -# define BOOST_PP_TUPLE_POP_BACK(tuple) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ - BOOST_PP_TUPLE_POP_BACK_EXEC, \ - BOOST_PP_TUPLE_POP_BACK_RETURN \ - ) \ - (tuple) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_BACK_EXEC(tuple) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_BACK(BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_BACK_RETURN(tuple) tuple -# -# /* BOOST_PP_TUPLE_POP_BACK_Z */ -# -# define BOOST_PP_TUPLE_POP_BACK_Z(z, tuple) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ - BOOST_PP_TUPLE_POP_BACK_Z_EXEC, \ - BOOST_PP_TUPLE_POP_BACK_Z_RETURN \ - ) \ - (z, tuple) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_BACK_Z_EXEC(z, tuple) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_BACK_Z(z, BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_BACK_Z_RETURN(z, tuple) tuple -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_POP_BACK_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/pop_front.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/pop_front.hpp deleted file mode 100644 index fafaa77d1..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/pop_front.hpp +++ /dev/null @@ -1,65 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP -# define BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# include -# include -# include -# -# -# /* BOOST_PP_TUPLE_POP_FRONT */ -# -# define BOOST_PP_TUPLE_POP_FRONT(tuple) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ - BOOST_PP_TUPLE_POP_FRONT_EXEC, \ - BOOST_PP_TUPLE_POP_FRONT_RETURN \ - ) \ - (tuple) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_FRONT_EXEC(tuple) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_FRONT(BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_FRONT_RETURN(tuple) tuple -# -# /* BOOST_PP_TUPLE_POP_FRONT_Z */ -# -# define BOOST_PP_TUPLE_POP_FRONT_Z(z, tuple) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ - BOOST_PP_TUPLE_POP_FRONT_Z_EXEC, \ - BOOST_PP_TUPLE_POP_FRONT_Z_RETURN \ - ) \ - (z, tuple) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_FRONT_Z_EXEC(z, tuple) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_POP_FRONT_Z(z, BOOST_PP_TUPLE_TO_ARRAY(tuple))) \ -/**/ -# -# define BOOST_PP_TUPLE_POP_FRONT_Z_RETURN(z, tuple) tuple -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_POP_FRONT_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/push_back.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/push_back.hpp deleted file mode 100644 index 2ae8f6396..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/push_back.hpp +++ /dev/null @@ -1,31 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP -# define BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# -# /* BOOST_PP_TUPLE_PUSH_BACK */ -# -# define BOOST_PP_TUPLE_PUSH_BACK(tuple, elem) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_PUSH_BACK(BOOST_PP_TUPLE_TO_ARRAY(tuple), elem)) \ -/**/ -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_PUSH_BACK_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/push_front.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/push_front.hpp deleted file mode 100644 index 81fea8592..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/push_front.hpp +++ /dev/null @@ -1,32 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP -# define BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# -# -# /* BOOST_PP_TUPLE_PUSH_FRONT */ -# -# define BOOST_PP_TUPLE_PUSH_FRONT(tuple, elem) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_PUSH_FRONT(BOOST_PP_TUPLE_TO_ARRAY(tuple), elem)) \ -/**/ -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/rem.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/rem.hpp deleted file mode 100644 index c934447d5..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/rem.hpp +++ /dev/null @@ -1,149 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_REM_HPP -# define BOOST_PREPROCESSOR_TUPLE_REM_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_REM */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC - /* To be used internally when __VA_ARGS__ could be empty ( or is a single element ) */ -# define BOOST_PP_REM_CAT(...) BOOST_PP_CAT(__VA_ARGS__,) -# endif -# define BOOST_PP_REM(...) __VA_ARGS__ -# else -# define BOOST_PP_REM(x) x -# endif -# -# /* BOOST_PP_TUPLE_REM */ -# -/* - VC++8.0 cannot handle the variadic version of BOOST_PP_TUPLE_REM(size) -*/ -# if BOOST_PP_VARIADICS && !(BOOST_PP_VARIADICS_MSVC && _MSC_VER <= 1400) -# if BOOST_PP_VARIADICS_MSVC - /* To be used internally when the size could be 0 ( or 1 ) */ -# define BOOST_PP_TUPLE_REM_CAT(size) BOOST_PP_REM_CAT -# endif -# define BOOST_PP_TUPLE_REM(size) BOOST_PP_REM -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_I(size) -# else -# define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_OO((size)) -# define BOOST_PP_TUPLE_REM_OO(par) BOOST_PP_TUPLE_REM_I ## par -# endif -# define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size -# endif -# define BOOST_PP_TUPLE_REM_0() -# define BOOST_PP_TUPLE_REM_1(e0) e0 -# define BOOST_PP_TUPLE_REM_2(e0, e1) e0, e1 -# define BOOST_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2 -# define BOOST_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3 -# define BOOST_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4 -# define BOOST_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5 -# define BOOST_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6 -# define BOOST_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7 -# define BOOST_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8 -# define BOOST_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9 -# define BOOST_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10 -# define BOOST_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11 -# define BOOST_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12 -# define BOOST_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13 -# define BOOST_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14 -# define BOOST_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15 -# define BOOST_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16 -# define BOOST_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17 -# define BOOST_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18 -# define BOOST_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19 -# define BOOST_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20 -# define BOOST_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21 -# define BOOST_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22 -# define BOOST_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23 -# define BOOST_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24 -# define BOOST_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25 -# define BOOST_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26 -# define BOOST_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27 -# define BOOST_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28 -# define BOOST_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29 -# define BOOST_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30 -# define BOOST_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31 -# define BOOST_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32 -# define BOOST_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33 -# define BOOST_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34 -# define BOOST_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35 -# define BOOST_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36 -# define BOOST_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37 -# define BOOST_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38 -# define BOOST_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39 -# define BOOST_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40 -# define BOOST_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41 -# define BOOST_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42 -# define BOOST_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43 -# define BOOST_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44 -# define BOOST_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45 -# define BOOST_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46 -# define BOOST_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47 -# define BOOST_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48 -# define BOOST_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49 -# define BOOST_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50 -# define BOOST_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51 -# define BOOST_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52 -# define BOOST_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53 -# define BOOST_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54 -# define BOOST_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55 -# define BOOST_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56 -# define BOOST_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57 -# define BOOST_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58 -# define BOOST_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59 -# define BOOST_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60 -# define BOOST_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61 -# define BOOST_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62 -# define BOOST_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63 -# -# /* BOOST_PP_TUPLE_REM_CTOR */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__)) -# define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args) -# define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,) -# define BOOST_PP_TUPLE_REM_CTOR_O_1(tuple) BOOST_PP_EXPAND(BOOST_PP_TUPLE_IS_SINGLE_RETURN(BOOST_PP_REM_CAT,BOOST_PP_REM,tuple) tuple) -# else -# define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__) -# define BOOST_PP_TUPLE_REM_CTOR_O_1(tuple) BOOST_PP_REM tuple -# endif -# define BOOST_PP_TUPLE_REM_CTOR_O_2(size, tuple) BOOST_PP_TUPLE_REM_CTOR_O_1(tuple) -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple) -# else -# define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) -# define BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple) -# endif -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple -# else -# define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) BOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple)) -# define BOOST_PP_TUPLE_REM_CTOR_OO(par) BOOST_PP_TUPLE_REM_CTOR_II ## par -# define BOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple -# endif -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/remove.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/remove.hpp deleted file mode 100644 index 25fa37619..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/remove.hpp +++ /dev/null @@ -1,64 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP -# define BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# include -# include -# include -# -# /* BOOST_PP_TUPLE_REMOVE */ -# -# define BOOST_PP_TUPLE_REMOVE(tuple, i) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_GREATER(BOOST_PP_TUPLE_SIZE(tuple),1), \ - BOOST_PP_TUPLE_REMOVE_EXEC, \ - BOOST_PP_TUPLE_REMOVE_RETURN \ - ) \ - (tuple, i) \ -/**/ -# -# define BOOST_PP_TUPLE_REMOVE_EXEC(tuple, i) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REMOVE(BOOST_PP_TUPLE_TO_ARRAY(tuple), i)) \ -/**/ -# -# define BOOST_PP_TUPLE_REMOVE_RETURN(tuple, i) tuple -# -# /* BOOST_PP_TUPLE_REMOVE_D */ -# -# define BOOST_PP_TUPLE_REMOVE_D(d, tuple, i) \ - BOOST_PP_IIF \ - ( \ - BOOST_PP_GREATER_D(d, BOOST_PP_TUPLE_SIZE(tuple), 1), \ - BOOST_PP_TUPLE_REMOVE_D_EXEC, \ - BOOST_PP_TUPLE_REMOVE_D_RETURN \ - ) \ - (d, tuple, i) \ -/**/ -# -# define BOOST_PP_TUPLE_REMOVE_D_EXEC(d, tuple, i) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REMOVE_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i)) \ -/**/ -# -# define BOOST_PP_TUPLE_REMOVE_D_RETURN(d, tuple, i) tuple -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_REMOVE_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/replace.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/replace.hpp deleted file mode 100644 index 320ef9e95..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/replace.hpp +++ /dev/null @@ -1,37 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP -# define BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP -# -# include -# -# if BOOST_PP_VARIADICS -# -# include -# include -# include -# -# /* BOOST_PP_TUPLE_REPLACE */ -# -# define BOOST_PP_TUPLE_REPLACE(tuple, i, elem) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REPLACE(BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ -/**/ -# -# /* BOOST_PP_TUPLE_REPLACE_D */ -# -# define BOOST_PP_TUPLE_REPLACE_D(d, tuple, i, elem) \ - BOOST_PP_ARRAY_TO_TUPLE(BOOST_PP_ARRAY_REPLACE_D(d, BOOST_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \ -/**/ -# -# endif // BOOST_PP_VARIADICS -# -# endif // BOOST_PREPROCESSOR_TUPLE_REPLACE_HPP diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/reverse.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/reverse.hpp deleted file mode 100644 index 489c44292..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/reverse.hpp +++ /dev/null @@ -1,117 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002-2011) */ -# /* Revised by Edward Diener (2011) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_REVERSE_HPP -# define BOOST_PREPROCESSOR_TUPLE_REVERSE_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_TUPLE_REVERSE */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_REVERSE(...) BOOST_PP_TUPLE_REVERSE_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REVERSE_O_, __VA_ARGS__), (__VA_ARGS__)) -# define BOOST_PP_TUPLE_REVERSE_I(m, args) BOOST_PP_TUPLE_REVERSE_II(m, args) -# define BOOST_PP_TUPLE_REVERSE_II(m, args) BOOST_PP_CAT(m ## args,) -# define BOOST_PP_TUPLE_REVERSE_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_REVERSE_, BOOST_PP_TUPLE_SIZE(tuple)) tuple -# else -# define BOOST_PP_TUPLE_REVERSE(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REVERSE_O_, __VA_ARGS__)(__VA_ARGS__) -# define BOOST_PP_TUPLE_REVERSE_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_REVERSE_, BOOST_PP_VARIADIC_SIZE tuple) tuple -# endif -# define BOOST_PP_TUPLE_REVERSE_O_2(size, tuple) BOOST_PP_TUPLE_REVERSE_O_1(tuple) -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_REVERSE(size, tuple) BOOST_PP_TUPLE_REVERSE_I(size, tuple) -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_ ## s t -# else -# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_II(BOOST_PP_TUPLE_REVERSE_ ## s t) -# define BOOST_PP_TUPLE_REVERSE_II(res) res -# endif -# else -# define BOOST_PP_TUPLE_REVERSE(size, tuple) BOOST_PP_TUPLE_REVERSE_OO((size, tuple)) -# define BOOST_PP_TUPLE_REVERSE_OO(par) BOOST_PP_TUPLE_REVERSE_I ## par -# define BOOST_PP_TUPLE_REVERSE_I(s, t) BOOST_PP_TUPLE_REVERSE_ ## s ## t -# endif -# endif -# define BOOST_PP_TUPLE_REVERSE_1(e0) (e0) -# define BOOST_PP_TUPLE_REVERSE_2(e0, e1) (e1, e0) -# define BOOST_PP_TUPLE_REVERSE_3(e0, e1, e2) (e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_4(e0, e1, e2, e3) (e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_5(e0, e1, e2, e3, e4) (e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_6(e0, e1, e2, e3, e4, e5) (e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_7(e0, e1, e2, e3, e4, e5, e6) (e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_8(e0, e1, e2, e3, e4, e5, e6, e7) (e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# define BOOST_PP_TUPLE_REVERSE_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e63, e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/size.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/size.hpp deleted file mode 100644 index 675c06516..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/size.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_SIZE_HPP -# define BOOST_PREPROCESSOR_TUPLE_SIZE_HPP -# -# include -# include -# include -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE tuple,) -# else -# define BOOST_PP_TUPLE_SIZE(tuple) BOOST_PP_VARIADIC_SIZE tuple -# endif -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/to_array.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/to_array.hpp deleted file mode 100644 index 0a5281123..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/to_array.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_TO_ARRAY_HPP -# define BOOST_PREPROCESSOR_TUPLE_TO_ARRAY_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_TUPLE_TO_ARRAY */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_ARRAY_, __VA_ARGS__), (__VA_ARGS__)) -# define BOOST_PP_TUPLE_TO_ARRAY_I(m, args) BOOST_PP_TUPLE_TO_ARRAY_II(m, args) -# define BOOST_PP_TUPLE_TO_ARRAY_II(m, args) BOOST_PP_CAT(m ## args,) -# define BOOST_PP_TUPLE_TO_ARRAY_1(tuple) (BOOST_PP_TUPLE_SIZE(tuple), tuple) -# else -# define BOOST_PP_TUPLE_TO_ARRAY(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_ARRAY_, __VA_ARGS__)(__VA_ARGS__) -# define BOOST_PP_TUPLE_TO_ARRAY_1(tuple) (BOOST_PP_VARIADIC_SIZE tuple, tuple) -# endif -# define BOOST_PP_TUPLE_TO_ARRAY_2(size, tuple) (size, tuple) -# else -# define BOOST_PP_TUPLE_TO_ARRAY(size, tuple) (size, tuple) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/to_list.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/to_list.hpp deleted file mode 100644 index da7828f7d..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/to_list.hpp +++ /dev/null @@ -1,118 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * Distributed under the Boost Software License, Version 1.0. (See -# * accompanying file LICENSE_1_0.txt or copy at -# * http://www.boost.org/LICENSE_1_0.txt) -# */ -# -# /* Revised by Paul Mensonides (2002-2011) */ -# /* Revised by Edward Diener (2011) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP -# define BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_TUPLE_TO_LIST */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__)) -# define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args) -# define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,) -# define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_TUPLE_SIZE(tuple)) tuple -# else -# define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__) -# define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_VARIADIC_SIZE tuple) tuple -# endif -# define BOOST_PP_TUPLE_TO_LIST_O_2(size, tuple) BOOST_PP_TUPLE_TO_LIST_O_1(tuple) -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_I(size, tuple) -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s t -# else -# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_II(BOOST_PP_TUPLE_TO_LIST_ ## s t) -# define BOOST_PP_TUPLE_TO_LIST_II(res) res -# endif -# else -# define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_OO((size, tuple)) -# define BOOST_PP_TUPLE_TO_LIST_OO(par) BOOST_PP_TUPLE_TO_LIST_I ## par -# define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s ## t -# endif -# endif -# -# define BOOST_PP_TUPLE_TO_LIST_1(e0) (e0, BOOST_PP_NIL) -# define BOOST_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, BOOST_PP_NIL)) -# define BOOST_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, BOOST_PP_NIL))) -# define BOOST_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, BOOST_PP_NIL)))) -# define BOOST_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, BOOST_PP_NIL))))) -# define BOOST_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, BOOST_PP_NIL)))))) -# define BOOST_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, BOOST_PP_NIL))))))) -# define BOOST_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, BOOST_PP_NIL)))))))) -# define BOOST_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, BOOST_PP_NIL))))))))) -# define BOOST_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, BOOST_PP_NIL)))))))))) -# define BOOST_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, BOOST_PP_NIL))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, BOOST_PP_NIL)))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, BOOST_PP_NIL))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, BOOST_PP_NIL)))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, BOOST_PP_NIL))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, BOOST_PP_NIL)))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, BOOST_PP_NIL))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, BOOST_PP_NIL)))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, BOOST_PP_NIL))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, BOOST_PP_NIL)))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, BOOST_PP_NIL))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, BOOST_PP_NIL)))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, BOOST_PP_NIL))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, BOOST_PP_NIL)))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, BOOST_PP_NIL))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, BOOST_PP_NIL)))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, BOOST_PP_NIL))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, BOOST_PP_NIL)))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, BOOST_PP_NIL))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, BOOST_PP_NIL)))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, BOOST_PP_NIL))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, BOOST_PP_NIL)))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, BOOST_PP_NIL))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, BOOST_PP_NIL)))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, BOOST_PP_NIL))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# define BOOST_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, (e63, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/tuple/to_seq.hpp b/lib/3rdParty/boost/boost/preprocessor/tuple/to_seq.hpp deleted file mode 100644 index a53f5a00e..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/tuple/to_seq.hpp +++ /dev/null @@ -1,119 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 2002-2011. * -# * (C) Copyright Edward Diener 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP -# define BOOST_PREPROCESSOR_TUPLE_TO_SEQ_HPP -# -# include -# include -# include -# include -# include -# -# /* BOOST_PP_TUPLE_TO_SEQ */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__), (__VA_ARGS__)) -# define BOOST_PP_TUPLE_TO_SEQ_I(m, args) BOOST_PP_TUPLE_TO_SEQ_II(m, args) -# define BOOST_PP_TUPLE_TO_SEQ_II(m, args) BOOST_PP_CAT(m ## args,) -# define BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_SEQ_, BOOST_PP_TUPLE_SIZE(tuple)) tuple -# else -# define BOOST_PP_TUPLE_TO_SEQ(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__)(__VA_ARGS__) -# define BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_SEQ_, BOOST_PP_VARIADIC_SIZE tuple) tuple -# endif -# define BOOST_PP_TUPLE_TO_SEQ_O_2(size, tuple) BOOST_PP_TUPLE_TO_SEQ_O_1(tuple) -# else -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_I(size, tuple) -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() -# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s t -# else -# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_II(BOOST_PP_TUPLE_TO_SEQ_ ## s t) -# define BOOST_PP_TUPLE_TO_SEQ_II(res) res -# endif -# else -# define BOOST_PP_TUPLE_TO_SEQ(size, tuple) BOOST_PP_TUPLE_TO_SEQ_OO((size, tuple)) -# define BOOST_PP_TUPLE_TO_SEQ_OO(par) BOOST_PP_TUPLE_TO_SEQ_I ## par -# define BOOST_PP_TUPLE_TO_SEQ_I(s, t) BOOST_PP_TUPLE_TO_SEQ_ ## s ## t -# endif -# endif -# -/* An empty array can be passed */ -# define BOOST_PP_TUPLE_TO_SEQ_0() () -# -# define BOOST_PP_TUPLE_TO_SEQ_1(e0) (e0) -# define BOOST_PP_TUPLE_TO_SEQ_2(e0, e1) (e0)(e1) -# define BOOST_PP_TUPLE_TO_SEQ_3(e0, e1, e2) (e0)(e1)(e2) -# define BOOST_PP_TUPLE_TO_SEQ_4(e0, e1, e2, e3) (e0)(e1)(e2)(e3) -# define BOOST_PP_TUPLE_TO_SEQ_5(e0, e1, e2, e3, e4) (e0)(e1)(e2)(e3)(e4) -# define BOOST_PP_TUPLE_TO_SEQ_6(e0, e1, e2, e3, e4, e5) (e0)(e1)(e2)(e3)(e4)(e5) -# define BOOST_PP_TUPLE_TO_SEQ_7(e0, e1, e2, e3, e4, e5, e6) (e0)(e1)(e2)(e3)(e4)(e5)(e6) -# define BOOST_PP_TUPLE_TO_SEQ_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7) -# define BOOST_PP_TUPLE_TO_SEQ_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8) -# define BOOST_PP_TUPLE_TO_SEQ_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9) -# define BOOST_PP_TUPLE_TO_SEQ_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10) -# define BOOST_PP_TUPLE_TO_SEQ_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11) -# define BOOST_PP_TUPLE_TO_SEQ_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12) -# define BOOST_PP_TUPLE_TO_SEQ_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13) -# define BOOST_PP_TUPLE_TO_SEQ_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14) -# define BOOST_PP_TUPLE_TO_SEQ_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15) -# define BOOST_PP_TUPLE_TO_SEQ_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16) -# define BOOST_PP_TUPLE_TO_SEQ_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17) -# define BOOST_PP_TUPLE_TO_SEQ_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18) -# define BOOST_PP_TUPLE_TO_SEQ_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19) -# define BOOST_PP_TUPLE_TO_SEQ_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20) -# define BOOST_PP_TUPLE_TO_SEQ_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21) -# define BOOST_PP_TUPLE_TO_SEQ_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22) -# define BOOST_PP_TUPLE_TO_SEQ_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23) -# define BOOST_PP_TUPLE_TO_SEQ_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24) -# define BOOST_PP_TUPLE_TO_SEQ_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25) -# define BOOST_PP_TUPLE_TO_SEQ_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26) -# define BOOST_PP_TUPLE_TO_SEQ_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27) -# define BOOST_PP_TUPLE_TO_SEQ_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28) -# define BOOST_PP_TUPLE_TO_SEQ_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29) -# define BOOST_PP_TUPLE_TO_SEQ_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30) -# define BOOST_PP_TUPLE_TO_SEQ_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31) -# define BOOST_PP_TUPLE_TO_SEQ_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32) -# define BOOST_PP_TUPLE_TO_SEQ_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33) -# define BOOST_PP_TUPLE_TO_SEQ_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34) -# define BOOST_PP_TUPLE_TO_SEQ_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35) -# define BOOST_PP_TUPLE_TO_SEQ_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36) -# define BOOST_PP_TUPLE_TO_SEQ_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37) -# define BOOST_PP_TUPLE_TO_SEQ_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38) -# define BOOST_PP_TUPLE_TO_SEQ_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39) -# define BOOST_PP_TUPLE_TO_SEQ_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40) -# define BOOST_PP_TUPLE_TO_SEQ_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41) -# define BOOST_PP_TUPLE_TO_SEQ_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42) -# define BOOST_PP_TUPLE_TO_SEQ_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43) -# define BOOST_PP_TUPLE_TO_SEQ_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44) -# define BOOST_PP_TUPLE_TO_SEQ_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45) -# define BOOST_PP_TUPLE_TO_SEQ_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46) -# define BOOST_PP_TUPLE_TO_SEQ_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47) -# define BOOST_PP_TUPLE_TO_SEQ_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48) -# define BOOST_PP_TUPLE_TO_SEQ_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49) -# define BOOST_PP_TUPLE_TO_SEQ_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50) -# define BOOST_PP_TUPLE_TO_SEQ_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51) -# define BOOST_PP_TUPLE_TO_SEQ_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52) -# define BOOST_PP_TUPLE_TO_SEQ_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53) -# define BOOST_PP_TUPLE_TO_SEQ_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54) -# define BOOST_PP_TUPLE_TO_SEQ_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55) -# define BOOST_PP_TUPLE_TO_SEQ_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56) -# define BOOST_PP_TUPLE_TO_SEQ_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57) -# define BOOST_PP_TUPLE_TO_SEQ_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58) -# define BOOST_PP_TUPLE_TO_SEQ_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59) -# define BOOST_PP_TUPLE_TO_SEQ_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60) -# define BOOST_PP_TUPLE_TO_SEQ_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61) -# define BOOST_PP_TUPLE_TO_SEQ_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62) -# define BOOST_PP_TUPLE_TO_SEQ_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62)(e63) -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic.hpp deleted file mode 100644 index a28e026af..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic.hpp +++ /dev/null @@ -1,23 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_HPP -# define BOOST_PREPROCESSOR_VARIADIC_HPP -# -# include -# include -# include -# include -# include -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/detail/is_single_return.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/detail/is_single_return.hpp deleted file mode 100644 index 5c9502932..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/detail/is_single_return.hpp +++ /dev/null @@ -1,28 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 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 for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP -# define BOOST_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP -# -# include -# -# /* BOOST_PP_VARIADIC_IS_SINGLE_RETURN */ -# -# if BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC -# include -# include -# include -# define BOOST_PP_VARIADIC_IS_SINGLE_RETURN(sr,nsr,...) \ - BOOST_PP_IIF(BOOST_PP_IS_1(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__)),sr,nsr) \ - /**/ -# endif /* BOOST_PP_VARIADICS && BOOST_PP_VARIADICS_MSVC */ -# -# endif /* BOOST_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP */ diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/elem.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/elem.hpp deleted file mode 100644 index be38a9429..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/elem.hpp +++ /dev/null @@ -1,94 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP -# define BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP -# -# include -# include -# -# /* BOOST_PP_VARIADIC_ELEM */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__) -# define BOOST_PP_VARIADIC_ELEM_I(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),) -# else -# define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,) -# endif -# define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0 -# define BOOST_PP_VARIADIC_ELEM_1(e0, e1, ...) e1 -# define BOOST_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2 -# define BOOST_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3 -# define BOOST_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4 -# define BOOST_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5 -# define BOOST_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6 -# define BOOST_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7 -# define BOOST_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8 -# define BOOST_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9 -# define BOOST_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10 -# define BOOST_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11 -# define BOOST_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12 -# define BOOST_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13 -# define BOOST_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14 -# define BOOST_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15 -# define BOOST_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16 -# define BOOST_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17 -# define BOOST_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18 -# define BOOST_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19 -# define BOOST_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20 -# define BOOST_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21 -# define BOOST_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22 -# define BOOST_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23 -# define BOOST_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24 -# define BOOST_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25 -# define BOOST_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26 -# define BOOST_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27 -# define BOOST_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28 -# define BOOST_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29 -# define BOOST_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30 -# define BOOST_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31 -# define BOOST_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32 -# define BOOST_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33 -# define BOOST_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34 -# define BOOST_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35 -# define BOOST_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36 -# define BOOST_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37 -# define BOOST_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38 -# define BOOST_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39 -# define BOOST_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40 -# define BOOST_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41 -# define BOOST_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42 -# define BOOST_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43 -# define BOOST_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44 -# define BOOST_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45 -# define BOOST_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46 -# define BOOST_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47 -# define BOOST_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48 -# define BOOST_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49 -# define BOOST_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50 -# define BOOST_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51 -# define BOOST_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52 -# define BOOST_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53 -# define BOOST_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54 -# define BOOST_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55 -# define BOOST_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56 -# define BOOST_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57 -# define BOOST_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58 -# define BOOST_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59 -# define BOOST_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60 -# define BOOST_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61 -# define BOOST_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62 -# define BOOST_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63 -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/size.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/size.hpp deleted file mode 100644 index b92a5ffe0..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/size.hpp +++ /dev/null @@ -1,30 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP -# define BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP -# -# include -# include -# -# /* BOOST_PP_VARIADIC_SIZE */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),) -# else -# define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,) -# endif -# define BOOST_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/to_array.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/to_array.hpp deleted file mode 100644 index 14c2b9220..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/to_array.hpp +++ /dev/null @@ -1,32 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP -# define BOOST_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP -# -# include -# include -# if BOOST_PP_VARIADICS_MSVC -# include -# endif -# -# /* BOOST_PP_VARIADIC_TO_ARRAY */ -# -# if BOOST_PP_VARIADICS -# if BOOST_PP_VARIADICS_MSVC -# define BOOST_PP_VARIADIC_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY_2(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),(__VA_ARGS__)) -# else -# define BOOST_PP_VARIADIC_TO_ARRAY(...) BOOST_PP_TUPLE_TO_ARRAY((__VA_ARGS__)) -# endif -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/to_list.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/to_list.hpp deleted file mode 100644 index 43d526a94..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/to_list.hpp +++ /dev/null @@ -1,25 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_LIST_HPP -# define BOOST_PREPROCESSOR_VARIADIC_TO_LIST_HPP -# -# include -# include -# -# /* BOOST_PP_VARIADIC_TO_LIST */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_VARIADIC_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST((__VA_ARGS__)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/to_seq.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/to_seq.hpp deleted file mode 100644 index 255af4f38..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/to_seq.hpp +++ /dev/null @@ -1,25 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_SEQ_HPP -# define BOOST_PREPROCESSOR_VARIADIC_TO_SEQ_HPP -# -# include -# include -# -# /* BOOST_PP_VARIADIC_TO_SEQ */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_VARIADIC_TO_SEQ(...) BOOST_PP_TUPLE_TO_SEQ((__VA_ARGS__)) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/variadic/to_tuple.hpp b/lib/3rdParty/boost/boost/preprocessor/variadic/to_tuple.hpp deleted file mode 100644 index ddb6d8b13..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/variadic/to_tuple.hpp +++ /dev/null @@ -1,24 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Edward Diener 2011. * -# * (C) Copyright Paul Mensonides 2011. * -# * 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. */ -# -# ifndef BOOST_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP -# define BOOST_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP -# -# include -# -# /* BOOST_PP_VARIADIC_TO_TUPLE */ -# -# if BOOST_PP_VARIADICS -# define BOOST_PP_VARIADIC_TO_TUPLE(...) (__VA_ARGS__) -# endif -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/while.hpp b/lib/3rdParty/boost/boost/preprocessor/while.hpp deleted file mode 100644 index 4b9c801ac..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/while.hpp +++ /dev/null @@ -1,17 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_WHILE_HPP -# define BOOST_PREPROCESSOR_WHILE_HPP -# -# include -# -# endif diff --git a/lib/3rdParty/boost/boost/preprocessor/wstringize.hpp b/lib/3rdParty/boost/boost/preprocessor/wstringize.hpp deleted file mode 100644 index 5d1a83aa2..000000000 --- a/lib/3rdParty/boost/boost/preprocessor/wstringize.hpp +++ /dev/null @@ -1,29 +0,0 @@ -# /* ************************************************************************** -# * * -# * (C) Copyright Paul Mensonides 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) -# * * -# ************************************************************************** */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_WSTRINGIZE_HPP -# define BOOST_PREPROCESSOR_WSTRINGIZE_HPP -# -# include -# -# /* BOOST_PP_WSTRINGIZE */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() -# define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_I(text) -# else -# define BOOST_PP_WSTRINGIZE(text) BOOST_PP_WSTRINGIZE_OO((text)) -# define BOOST_PP_WSTRINGIZE_OO(par) BOOST_PP_WSTRINGIZE_I ## par -# endif -# -# define BOOST_PP_WSTRINGIZE_I(text) BOOST_PP_WSTRINGIZE_II(#text) -# define BOOST_PP_WSTRINGIZE_II(str) L ## str -# -# endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/adjacent_filtered.hpp b/lib/3rdParty/boost/boost/range/adaptor/adjacent_filtered.hpp deleted file mode 100644 index 287a4ae77..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/adjacent_filtered.hpp +++ /dev/null @@ -1,237 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_ADJACENT_FILTER_IMPL_HPP -#define BOOST_RANGE_ADAPTOR_ADJACENT_FILTER_IMPL_HPP - -#include -#ifdef BOOST_MSVC -#pragma warning( push ) -#pragma warning( disable : 4355 ) -#endif - -#include -#include -#include -#include -#include -#include -#include - - -namespace boost -{ - namespace range_detail - { - template< class Iter, class Pred, bool default_pass > - class skip_iterator - : public boost::iterator_adaptor< - skip_iterator, - Iter, - BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type, - boost::forward_traversal_tag, - BOOST_DEDUCED_TYPENAME std::iterator_traits::reference, - BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type - > - , private Pred - { - private: - typedef boost::iterator_adaptor< - skip_iterator, - Iter, - BOOST_DEDUCED_TYPENAME std::iterator_traits::value_type, - boost::forward_traversal_tag, - BOOST_DEDUCED_TYPENAME std::iterator_traits::reference, - BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type - > base_t; - - public: - typedef Pred pred_t; - typedef Iter iter_t; - - skip_iterator() : m_last() {} - - skip_iterator(iter_t it, iter_t last, const Pred& pred) - : base_t(it) - , pred_t(pred) - , m_last(last) - { - } - - template - skip_iterator( const skip_iterator& other ) - : base_t(other.base()) - , pred_t(other) - , m_last(other.m_last) - { - } - - void increment() - { - iter_t& it = this->base_reference(); - BOOST_ASSERT( it != m_last ); - pred_t& bi_pred = *this; - iter_t prev = it; - ++it; - if (it != m_last) - { - if (default_pass) - { - while (it != m_last && !bi_pred(*prev, *it)) - { - ++it; - ++prev; - } - } - else - { - for (; it != m_last; ++it, ++prev) - { - if (bi_pred(*prev, *it)) - { - break; - } - } - } - } - } - - iter_t m_last; - }; - - template< class P, class R, bool default_pass > - struct adjacent_filtered_range - : iterator_range< skip_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type, - P, - default_pass - > - > - { - private: - typedef skip_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type, - P, - default_pass - > - skip_iter; - - typedef iterator_range - base_range; - - typedef BOOST_DEDUCED_TYPENAME range_iterator::type raw_iterator; - - public: - adjacent_filtered_range( const P& p, R& r ) - : base_range(skip_iter(boost::begin(r), boost::end(r), p), - skip_iter(boost::end(r), boost::end(r), p)) - { - } - }; - - template< class T > - struct adjacent_holder : holder - { - adjacent_holder( T r ) : holder(r) - { } - }; - - template< class T > - struct adjacent_excl_holder : holder - { - adjacent_excl_holder( T r ) : holder(r) - { } - }; - - template< class ForwardRng, class BinPredicate > - inline adjacent_filtered_range - operator|( ForwardRng& r, - const adjacent_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - - return adjacent_filtered_range( f.val, r ); - } - - template< class ForwardRng, class BinPredicate > - inline adjacent_filtered_range - operator|( const ForwardRng& r, - const adjacent_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - - return adjacent_filtered_range( f.val, r ); - } - - template< class ForwardRng, class BinPredicate > - inline adjacent_filtered_range - operator|( ForwardRng& r, - const adjacent_excl_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return adjacent_filtered_range( f.val, r ); - } - - template< class ForwardRng, class BinPredicate > - inline adjacent_filtered_range - operator|( const ForwardRng& r, - const adjacent_excl_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return adjacent_filtered_range( f.val, r ); - } - - } // 'range_detail' - - // Bring adjacent_filter_range into the boost namespace so that users of - // this library may specify the return type of the '|' operator and - // adjacent_filter() - using range_detail::adjacent_filtered_range; - - namespace adaptors - { - namespace - { - const range_detail::forwarder - adjacent_filtered = - range_detail::forwarder(); - - const range_detail::forwarder - adjacent_filtered_excl = - range_detail::forwarder(); - } - - template - inline adjacent_filtered_range - adjacent_filter(ForwardRng& rng, BinPredicate filter_pred) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return adjacent_filtered_range(filter_pred, rng); - } - - template - inline adjacent_filtered_range - adjacent_filter(const ForwardRng& rng, BinPredicate filter_pred) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return adjacent_filtered_range(filter_pred, rng); - } - - } // 'adaptors' - -} - -#ifdef BOOST_MSVC -#pragma warning( pop ) -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/argument_fwd.hpp b/lib/3rdParty/boost/boost/range/adaptor/argument_fwd.hpp deleted file mode 100644 index fbfd40c1d..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/argument_fwd.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_ARGUMENT_FWD_HPP -#define BOOST_RANGE_ADAPTOR_ARGUMENT_FWD_HPP - -#include - -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable : 4512) // assignment operator could not be generated -#endif - -namespace boost -{ - namespace range_detail - { - template< class T > - struct holder - { - T val; - holder( T t ) : val(t) - { } - }; - - template< class T > - struct holder2 - { - T val1, val2; - holder2( T t, T u ) : val1(t), val2(u) - { } - }; - - template< template class Holder > - struct forwarder - { - template< class T > - Holder operator()( T t ) const - { - return Holder(t); - } - }; - - template< template class Holder > - struct forwarder2 - { - template< class T > - Holder operator()( T t, T u ) const - { - return Holder(t,u); - } - }; - - template< template class Holder > - struct forwarder2TU - { - template< class T, class U > - Holder operator()( T t, U u ) const - { - return Holder(t, u); - } - }; - - - } - -} - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/copied.hpp b/lib/3rdParty/boost/boost/range/adaptor/copied.hpp deleted file mode 100644 index f7dfbcd84..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/copied.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_COPIED_HPP -#define BOOST_RANGE_ADAPTOR_COPIED_HPP - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace adaptors - { - struct copied - { - copied(std::size_t t_, std::size_t u_) - : t(t_), u(u_) {} - - std::size_t t; - std::size_t u; - }; - - template - inline CopyableRandomAccessRange - operator|(const CopyableRandomAccessRange& r, const copied& f) - { - BOOST_RANGE_CONCEPT_ASSERT(( - RandomAccessRangeConcept)); - - iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator< - const CopyableRandomAccessRange - >::type - > temp(adaptors::slice(r, f.t, f.u)); - - return CopyableRandomAccessRange(temp.begin(), temp.end()); - } - - template - inline CopyableRandomAccessRange - copy(const CopyableRandomAccessRange& rng, std::size_t t, std::size_t u) - { - BOOST_RANGE_CONCEPT_ASSERT(( - RandomAccessRangeConcept)); - - iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator< - const CopyableRandomAccessRange - >::type - > temp(adaptors::slice(rng, t, u)); - - return CopyableRandomAccessRange( temp.begin(), temp.end() ); - } - } // 'adaptors' - -} - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/define_adaptor.hpp b/lib/3rdParty/boost/boost/range/adaptor/define_adaptor.hpp deleted file mode 100644 index b228df383..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/define_adaptor.hpp +++ /dev/null @@ -1,109 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DEFINE_ADAPTOR_HPP_INCLUDED -#define BOOST_RANGE_DEFINE_ADAPTOR_HPP_INCLUDED - -#include - -#define BOOST_DEFINE_RANGE_ADAPTOR( adaptor_name, range_adaptor ) \ - struct adaptor_name##_forwarder {}; \ - \ - template range_adaptor \ - operator|(Range& rng, adaptor_name##_forwarder) \ - { \ - return range_adaptor ( rng ); \ - } \ - \ - template range_adaptor \ - operator|(const Range& rng, adaptor_name##_forwarder) \ - { \ - return range_adaptor ( rng ); \ - } \ - \ - static adaptor_name##_forwarder adaptor_name = adaptor_name##_forwarder(); \ - \ - template \ - range_adaptor \ - make_##adaptor_name(Range& rng) \ - { \ - return range_adaptor (rng); \ - } \ - \ - template \ - range_adaptor \ - make_##adaptor_name(const Range& rng) \ - { \ - return range_adaptor (rng); \ - } - -#define BOOST_DEFINE_RANGE_ADAPTOR_1( adaptor_name, range_adaptor, arg1_type ) \ - struct adaptor_name \ - { \ - explicit adaptor_name (arg1_type arg1_) \ - : arg1(arg1_) {} \ - arg1_type arg1; \ - }; \ - \ - template range_adaptor \ - operator|(Range& rng, adaptor_name args) \ - { \ - return range_adaptor (rng, args.arg1); \ - } \ - \ - template range_adaptor \ - operator|(const Range& rng, adaptor_name args) \ - { \ - return range_adaptor (rng, args.arg1); \ - } \ - \ - template \ - range_adaptor \ - make_##adaptor_name(Range& rng, arg1_type arg1) \ - { \ - return range_adaptor (rng, arg1); \ - } \ - \ - template \ - range_adaptor \ - make_##adaptor_name(const Range& rng, arg1_type arg1) \ - { \ - return range_adaptor (rng, arg1); \ - } - -#define BOOST_RANGE_ADAPTOR_2( adaptor_name, range_adaptor, arg1_type, arg2_type ) \ - struct adaptor_name \ - { \ - explicit adaptor_name (arg1_type arg1_, arg2_type arg2_) \ - : arg1(arg1_), arg2(arg2_) {} \ - arg1_type arg1; \ - arg2_type arg2; \ - }; \ - \ - template range_adaptor \ - operator|(Range& rng, adaptor_name args) \ - { \ - return range_adaptor (rng, args.arg1, args.arg2); \ - } \ - template \ - range_adaptor \ - make_##adaptor_name(Range& rng, arg1_type arg1, arg2_type arg2) \ - { \ - return range_adaptor (rng, arg1, arg2); \ - } \ - template \ - range_adaptor \ - make_##adaptor_name(const Range& rng, arg1_type arg1, arg2_type arg2) \ - { \ - return range_adaptor (rng, arg1, arg2); \ - } - - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/filtered.hpp b/lib/3rdParty/boost/boost/range/adaptor/filtered.hpp deleted file mode 100644 index 1fb778e58..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/filtered.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_FILTERED_HPP -#define BOOST_RANGE_ADAPTOR_FILTERED_HPP - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class P, class R > - struct filtered_range : - boost::iterator_range< - boost::filter_iterator< - typename default_constructible_unary_fn_gen::type, - typename range_iterator::type - > - > - { - private: - typedef boost::iterator_range< - boost::filter_iterator< - typename default_constructible_unary_fn_gen::type, - typename range_iterator::type - > - > base; - public: - typedef typename default_constructible_unary_fn_gen::type - pred_t; - - filtered_range(P p, R& r) - : base(make_filter_iterator(pred_t(p), - boost::begin(r), boost::end(r)), - make_filter_iterator(pred_t(p), - boost::end(r), boost::end(r))) - { } - }; - - template< class T > - struct filter_holder : holder - { - filter_holder( T r ) : holder(r) - { } - }; - - template< class SinglePassRange, class Predicate > - inline filtered_range - operator|(SinglePassRange& r, - const filter_holder& f) - { - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - return filtered_range( f.val, r ); - } - - template< class SinglePassRange, class Predicate > - inline filtered_range - operator|(const SinglePassRange& r, - const filter_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - return filtered_range( f.val, r ); - } - - } // 'range_detail' - - // Unusual use of 'using' is intended to bring filter_range into the boost namespace - // while leaving the mechanics of the '|' operator in range_detail and maintain - // argument dependent lookup. - // filter_range logically needs to be in the boost namespace to allow user of - // the library to define the return type for filter() - using range_detail::filtered_range; - - namespace adaptors - { - namespace - { - const range_detail::forwarder - filtered = - range_detail::forwarder(); - } - - template - inline filtered_range - filter(SinglePassRange& rng, Predicate filter_pred) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return range_detail::filtered_range< - Predicate, SinglePassRange>( filter_pred, rng ); - } - - template - inline filtered_range - filter(const SinglePassRange& rng, Predicate filter_pred) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return range_detail::filtered_range< - Predicate, const SinglePassRange>( filter_pred, rng ); - } - } // 'adaptors' - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/formatted.hpp b/lib/3rdParty/boost/boost/range/adaptor/formatted.hpp deleted file mode 100644 index f31f1bceb..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/formatted.hpp +++ /dev/null @@ -1,229 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ADAPTOR_FORMATTED_HPP_INCLUDED -#define BOOST_RANGE_ADAPTOR_FORMATTED_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -struct formatted_holder -{ - typedef typename boost::mpl::if_< - boost::is_array, - const typename boost::remove_extent::type*, - Sep - >::type separator_t; - - typedef typename boost::mpl::if_< - boost::is_array, - const typename boost::remove_extent::type*, - Prefix - >::type prefix_t; - - typedef typename boost::mpl::if_< - boost::is_array, - const typename boost::remove_extent::type*, - Postfix - >::type postfix_t; - - formatted_holder( - const separator_t& sep, - const prefix_t& prefix, - const postfix_t& postfix) - : m_sep(sep) - , m_prefix(prefix) - , m_postfix(postfix) - { - } - - separator_t m_sep; - prefix_t m_prefix; - postfix_t m_postfix; -}; - -template -class formatted_range - : public boost::iterator_range -{ - typedef formatted_holder holder_t; -public: - formatted_range(Iter first, Iter last, const holder_t& holder) - : boost::iterator_range(first, last) - , m_holder(holder) - { - } - - template - void write(OStream& out) const - { - Iter it(this->begin()); - out << m_holder.m_prefix; - if (it != this->end()) - { - out << *it; - for (++it; it != this->end(); ++it) - { - out << m_holder.m_sep << *it; - } - } - out << m_holder.m_postfix; - } - -private: - holder_t m_holder; -}; - -template< - typename SinglePassRange, - typename Sep, - typename Prefix, - typename Postfix -> -inline range_detail::formatted_range< - typename range_iterator::type, Sep, Prefix, Postfix -> -operator|( - const SinglePassRange& rng, - const range_detail::formatted_holder& holder -) -{ - typedef typename range_iterator::type iterator; - return range_detail::formatted_range( - boost::begin(rng), boost::end(rng), holder); -} - -template -std::basic_ostream& -operator<<( - std::basic_ostream& out, - const formatted_range& writer) -{ - writer.write(out); - return out; -} - - } // namespace range_detail - - namespace adaptors - { - -template -range_detail::formatted_holder -formatted(const Sep& sep, const Prefix& prefix, const Postfix& postfix) -{ - return range_detail::formatted_holder( - sep, prefix, postfix); -} - -template -range_detail::formatted_holder -formatted(const Sep& sep, const Prefix& prefix) -{ - return range_detail::formatted_holder(sep, prefix, '}'); -} - -template -range_detail::formatted_holder -formatted(const Sep& sep) -{ - return range_detail::formatted_holder(sep, '{', '}'); -} - -inline range_detail::formatted_holder -formatted() -{ - return range_detail::formatted_holder(',', '{', '}'); -} - -using range_detail::formatted_range; - -template -inline boost::range_detail::formatted_range< - typename boost::range_iterator::type, - Sep, Prefix, Postfix -> -format( - const SinglePassRange& rng, - const Sep& sep, - const Prefix& prefix, - const Postfix& postfix -) -{ - typedef typename boost::range_iterator::type - iterator_t; - - typedef boost::range_detail::formatted_range< - iterator_t, Sep, Prefix, Postfix> result_t; - - typedef boost::range_detail::formatted_holder - holder_t; - - return result_t(boost::begin(rng), boost::end(rng), - holder_t(sep, prefix, postfix)); -} - -template -inline boost::range_detail::formatted_range< - typename boost::range_iterator::type, - Sep, Prefix, char -> -format( - const SinglePassRange& rng, - const Sep& sep, - const Prefix& prefix) -{ - return adaptors::format(rng, sep, prefix, '}'); -} - -template -inline boost::range_detail::formatted_range< - typename boost::range_iterator::type, - Sep, char, char -> -format(const SinglePassRange& rng, const Sep& sep) -{ - return adaptors::format(rng, sep, '{', '}'); -} - -template -inline boost::range_detail::formatted_range< - typename boost::range_iterator::type, - char, char, char -> -format(const SinglePassRange& rng) -{ - return adaptors::format(rng, ',', '{', '}'); -} - - } // namespace adaptors - - namespace range - { - using boost::range_detail::formatted_range; - } // namespace range -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/indexed.hpp b/lib/3rdParty/boost/boost/range/adaptor/indexed.hpp deleted file mode 100644 index a426bd6b6..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/indexed.hpp +++ /dev/null @@ -1,370 +0,0 @@ -// Copyright 2014 Neil Groves -// -// Copyright (c) 2010 Ilya Murav'jov -// -// 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) -// -// Credits: -// My (Neil's) first indexed adaptor was hindered by having the underlying -// iterator return the same reference as the wrapped iterator. This meant that -// to obtain the index one had to get to the index_iterator and call the -// index() function on it. Ilya politely pointed out that this was useless in -// a number of scenarios since one naturally hides the use of iterators in -// good range-based code. Ilya provided a new interface (which has remained) -// and a first implementation. Much of this original implementation has -// been simplified and now supports more compilers and platforms. -// -#ifndef BOOST_RANGE_ADAPTOR_INDEXED_HPP_INCLUDED -#define BOOST_RANGE_ADAPTOR_INDEXED_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include - -namespace boost -{ - namespace adaptors - { - -struct indexed -{ - explicit indexed(std::ptrdiff_t x = 0) - : val(x) - { - } - std::ptrdiff_t val; -}; - - } // namespace adaptors - - namespace range - { - -// Why yet another "pair" class: -// - std::pair can't store references -// - no need for typing for index type (default to "std::ptrdiff_t"); this is -// useful in BOOST_FOREACH() expressions that have pitfalls with commas -// ( see http://www.boost.org/doc/libs/1_44_0/doc/html/foreach/pitfalls.html ) -// - meaningful access functions index(), value() -template -class index_value - : public tuple -{ - typedef tuple base_t; - - template - struct iv_types - { - typedef typename tuples::element::type n_type; - - typedef typename tuples::access_traits::non_const_type non_const_type; - typedef typename tuples::access_traits::const_type const_type; - }; - -public: - typedef typename iv_types<0>::non_const_type index_type; - typedef typename iv_types<0>::const_type const_index_type; - typedef typename iv_types<1>::non_const_type value_type; - typedef typename iv_types<1>::const_type const_value_type; - - index_value() - { - } - - index_value(typename tuples::access_traits::parameter_type t0, - typename tuples::access_traits::parameter_type t1) - : base_t(t0, t1) - { - } - - // member functions index(), value() (non-const and const) - index_type index() - { - return boost::tuples::get<0>(*this); - } - - const_index_type index() const - { - return boost::tuples::get<0>(*this); - } - - value_type value() - { - return boost::tuples::get<1>(*this); - } - - const_value_type value() const - { - return boost::tuples::get<1>(*this); - } -}; - - } // namespace range - -namespace range_detail -{ - -template -struct indexed_iterator_value_type -{ - typedef ::boost::range::index_value< - typename iterator_reference::type, - typename iterator_difference::type - > type; -}; - -// Meta-function to get the traversal for the range and therefore iterator -// returned by the indexed adaptor for a specified iterator type. -// -// Random access -> Random access -// Bidirectional -> Forward -// Forward -> Forward -// SinglePass -> SinglePass -// -// The rationale for demoting a Bidirectional input to Forward is that the end -// iterator cannot cheaply have an index computed for it. Therefore I chose to -// demote to forward traversal. I can maintain the ability to traverse randomly -// when the input is Random Access since the index for the end iterator is cheap -// to compute. -template -struct indexed_traversal -{ -private: - typedef typename iterator_traversal::type wrapped_traversal; - -public: - - typedef typename mpl::if_< - is_convertible, - random_access_traversal_tag, - typename mpl::if_< - is_convertible, - forward_traversal_tag, - wrapped_traversal - >::type - >::type type; -}; - -template -class indexed_iterator - : public iterator_facade< - indexed_iterator, - typename indexed_iterator_value_type::type, - typename indexed_traversal::type, - typename indexed_iterator_value_type::type, - typename iterator_difference::type - > -{ -public: - typedef Iter wrapped; - -private: - typedef iterator_facade< - indexed_iterator, - typename indexed_iterator_value_type::type, - typename indexed_traversal::type, - typename indexed_iterator_value_type::type, - typename iterator_difference::type - > base_t; - -public: - typedef typename base_t::difference_type difference_type; - typedef typename base_t::reference reference; - typedef typename base_t::difference_type index_type; - - indexed_iterator() - : m_it() - , m_index() - { - } - - template - indexed_iterator( - const indexed_iterator& other, - typename enable_if >::type* = 0 - ) - : m_it(other.get()) - , m_index(other.get_index()) - { - } - - explicit indexed_iterator(wrapped it, index_type index) - : m_it(it) - , m_index(index) - { - } - - wrapped get() const - { - return m_it; - } - - index_type get_index() const - { - return m_index; - } - - private: - friend class boost::iterator_core_access; - - reference dereference() const - { - return reference(m_index, *m_it); - } - - bool equal(const indexed_iterator& other) const - { - return m_it == other.m_it; - } - - void increment() - { - ++m_index; - ++m_it; - } - - void decrement() - { - BOOST_ASSERT_MSG(m_index > 0, "indexed Iterator out of bounds"); - --m_index; - --m_it; - } - - void advance(index_type n) - { - m_index += n; - BOOST_ASSERT_MSG(m_index >= 0, "indexed Iterator out of bounds"); - m_it += n; - } - - difference_type distance_to(const indexed_iterator& other) const - { - return other.m_it - m_it; - } - - wrapped m_it; - index_type m_index; -}; - -template -struct indexed_range - : iterator_range< - indexed_iterator< - typename range_iterator::type - > - > -{ - typedef iterator_range< - indexed_iterator< - typename range_iterator::type - > - > base_t; - - BOOST_RANGE_CONCEPT_ASSERT(( - boost::SinglePassRangeConcept)); -public: - typedef indexed_iterator< - typename range_iterator::type - > iterator; - - // Constructor for non-random access iterators. - // This sets the end iterator index to i despite this being incorrect it - // is never observable since bidirectional iterators are demoted to - // forward iterators. - indexed_range( - typename base_t::difference_type i, - SinglePassRange& r, - single_pass_traversal_tag - ) - : base_t(iterator(boost::begin(r), i), - iterator(boost::end(r), i)) - { - } - - indexed_range( - typename base_t::difference_type i, - SinglePassRange& r, - random_access_traversal_tag - ) - : base_t(iterator(boost::begin(r), i), - iterator(boost::end(r), i + boost::size(r))) - { - } -}; - - } // namespace range_detail - - using range_detail::indexed_range; - - namespace adaptors - { - -template -inline indexed_range -operator|(SinglePassRange& r, indexed e) -{ - BOOST_RANGE_CONCEPT_ASSERT(( - boost::SinglePassRangeConcept - )); - return indexed_range( - e.val, r, - typename range_traversal::type()); -} - -template -inline indexed_range -operator|(const SinglePassRange& r, indexed e) -{ - BOOST_RANGE_CONCEPT_ASSERT(( - boost::SinglePassRangeConcept - )); - return indexed_range( - e.val, r, - typename range_traversal::type()); -} - -template -inline indexed_range -index( - SinglePassRange& rng, - typename range_difference::type index_value = 0) -{ - BOOST_RANGE_CONCEPT_ASSERT(( - boost::SinglePassRangeConcept - )); - return indexed_range( - index_value, rng, - typename range_traversal::type()); -} - -template -inline indexed_range -index( - const SinglePassRange& rng, - typename range_difference::type index_value = 0) -{ - BOOST_RANGE_CONCEPT_ASSERT(( - boost::SinglePassRangeConcept - )); - return indexed_range( - index_value, rng, - typename range_traversal::type()); -} - - } // namespace adaptors -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/indirected.hpp b/lib/3rdParty/boost/boost/range/adaptor/indirected.hpp deleted file mode 100644 index e741f17f5..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/indirected.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_INDIRECTED_HPP -#define BOOST_RANGE_ADAPTOR_INDIRECTED_HPP - -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class R > - struct indirected_range : - public boost::iterator_range< - boost::indirect_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - { - private: - typedef boost::iterator_range< - boost::indirect_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - base; - - public: - explicit indirected_range( R& r ) - : base( r ) - { } - }; - - struct indirect_forwarder {}; - - template< class SinglePassRange > - inline indirected_range - operator|( SinglePassRange& r, indirect_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return indirected_range( r ); - } - - template< class SinglePassRange > - inline indirected_range - operator|( const SinglePassRange& r, indirect_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return indirected_range( r ); - } - - } // 'range_detail' - - using range_detail::indirected_range; - - namespace adaptors - { - namespace - { - const range_detail::indirect_forwarder indirected = - range_detail::indirect_forwarder(); - } - - template - inline indirected_range - indirect(SinglePassRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - return indirected_range(rng); - } - - template - inline indirected_range - indirect(const SinglePassRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return indirected_range(rng); - } - } // 'adaptors' - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/map.hpp b/lib/3rdParty/boost/boost/range/adaptor/map.hpp deleted file mode 100644 index 2d922ea4d..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/map.hpp +++ /dev/null @@ -1,204 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_MAP_HPP -#define BOOST_RANGE_ADAPTOR_MAP_HPP - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - struct map_keys_forwarder {}; - struct map_values_forwarder {}; - - template< class Map > - struct select_first - { - typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; - typedef const BOOST_DEDUCED_TYPENAME range_value::type::first_type& result_type; - - result_type operator()( argument_type r ) const - { - return r.first; - } - }; - - template< class Map > - struct select_second_mutable - { - typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; - typedef BOOST_DEDUCED_TYPENAME range_value::type::second_type& result_type; - - result_type operator()( argument_type r ) const - { - return r.second; - } - }; - - template< class Map > - struct select_second_const - { - typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; - typedef const BOOST_DEDUCED_TYPENAME range_value::type::second_type& result_type; - - result_type operator()( argument_type r ) const - { - return r.second; - } - }; - - template - class select_first_range - : public transformed_range< - select_first, - const StdPairRng> - { - typedef transformed_range, const StdPairRng> base; - public: - typedef select_first transform_fn_type; - typedef const StdPairRng source_range_type; - - select_first_range(transform_fn_type fn, source_range_type& rng) - : base(fn, rng) - { - } - - select_first_range(const base& other) : base(other) {} - }; - - template - class select_second_mutable_range - : public transformed_range< - select_second_mutable, - StdPairRng> - { - typedef transformed_range, StdPairRng> base; - public: - typedef select_second_mutable transform_fn_type; - typedef StdPairRng source_range_type; - - select_second_mutable_range(transform_fn_type fn, source_range_type& rng) - : base(fn, rng) - { - } - - select_second_mutable_range(const base& other) : base(other) {} - }; - - template - class select_second_const_range - : public transformed_range< - select_second_const, - const StdPairRng> - { - typedef transformed_range, const StdPairRng> base; - public: - typedef select_second_const transform_fn_type; - typedef const StdPairRng source_range_type; - - select_second_const_range(transform_fn_type fn, source_range_type& rng) - : base(fn, rng) - { - } - - select_second_const_range(const base& other) : base(other) {} - }; - - template< class StdPairRng > - inline select_first_range - operator|( const StdPairRng& r, map_keys_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return operator|( r, - boost::adaptors::transformed( select_first() ) ); - } - - template< class StdPairRng > - inline select_second_mutable_range - operator|( StdPairRng& r, map_values_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - return operator|( r, - boost::adaptors::transformed( select_second_mutable() ) ); - } - - template< class StdPairRng > - inline select_second_const_range - operator|( const StdPairRng& r, map_values_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return operator|( r, - boost::adaptors::transformed( select_second_const() ) ); - } - - } // 'range_detail' - - using range_detail::select_first_range; - using range_detail::select_second_mutable_range; - using range_detail::select_second_const_range; - - namespace adaptors - { - namespace - { - const range_detail::map_keys_forwarder map_keys = - range_detail::map_keys_forwarder(); - - const range_detail::map_values_forwarder map_values = - range_detail::map_values_forwarder(); - } - - template - inline select_first_range - keys(const StdPairRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return select_first_range( - range_detail::select_first(), rng ); - } - - template - inline select_second_const_range - values(const StdPairRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return select_second_const_range( - range_detail::select_second_const(), rng ); - } - - template - inline select_second_mutable_range - values(StdPairRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - return select_second_mutable_range( - range_detail::select_second_mutable(), rng ); - } - } // 'adaptors' - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/replaced.hpp b/lib/3rdParty/boost/boost/range/adaptor/replaced.hpp deleted file mode 100644 index 1950b8294..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/replaced.hpp +++ /dev/null @@ -1,169 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2007. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_REPLACED_IMPL_HPP_INCLUDED -#define BOOST_RANGE_ADAPTOR_REPLACED_IMPL_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class Value > - class replace_value - { - public: - typedef const Value& result_type; - typedef const Value& first_argument_type; - - // Rationale: - // The default constructor is required to allow the transform - // iterator to properly model the iterator concept. - replace_value() - { - } - - replace_value(const Value& from, const Value& to) - : m_impl(data(from, to)) - { - } - - const Value& operator()(const Value& x) const - { - return (x == m_impl->m_from) ? m_impl->m_to : x; - } - - private: - struct data - { - data(const Value& from, const Value& to) - : m_from(from) - , m_to(to) - { - } - - Value m_from; - Value m_to; - }; - boost::optional m_impl; - }; - - template< class R > - class replaced_range : - public boost::iterator_range< - boost::transform_iterator< - replace_value< BOOST_DEDUCED_TYPENAME range_value::type >, - BOOST_DEDUCED_TYPENAME range_iterator::type > > - { - private: - typedef replace_value< BOOST_DEDUCED_TYPENAME range_value::type > Fn; - - typedef boost::iterator_range< - boost::transform_iterator< - replace_value< BOOST_DEDUCED_TYPENAME range_value::type >, - BOOST_DEDUCED_TYPENAME range_iterator::type > > base_t; - - public: - typedef BOOST_DEDUCED_TYPENAME range_value::type value_type; - - replaced_range( R& r, value_type from, value_type to ) - : base_t( make_transform_iterator( boost::begin(r), Fn(from, to) ), - make_transform_iterator( boost::end(r), Fn(from, to) ) ) - { } - }; - - template< class T > - class replace_holder : public holder2 - { - public: - replace_holder( const T& from, const T& to ) - : holder2(from, to) - { } - private: - // not assignable - void operator=(const replace_holder&); - }; - - template< class SinglePassRange > - inline replaced_range - operator|( - SinglePassRange& r, - const replace_holder< - BOOST_DEDUCED_TYPENAME range_value::type>& f ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return replaced_range(r, f.val1, f.val2); - } - - template< class SinglePassRange > - inline replaced_range - operator|( - const SinglePassRange& r, - const replace_holder< - BOOST_DEDUCED_TYPENAME range_value::type>& f) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return replaced_range(r, f.val1, f.val2); - } - } // 'range_detail' - - using range_detail::replaced_range; - - namespace adaptors - { - namespace - { - const range_detail::forwarder2 - replaced = - range_detail::forwarder2(); - } - - template - inline replaced_range - replace(SinglePassRange& rng, - BOOST_DEDUCED_TYPENAME range_value::type from, - BOOST_DEDUCED_TYPENAME range_value::type to) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return replaced_range(rng, from, to); - } - - template - inline replaced_range - replace(const SinglePassRange& rng, - BOOST_DEDUCED_TYPENAME range_value::type from, - BOOST_DEDUCED_TYPENAME range_value::type to) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return replaced_range(rng, from ,to); - } - - } // 'adaptors' -} // 'boost' - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/replaced_if.hpp b/lib/3rdParty/boost/boost/range/adaptor/replaced_if.hpp deleted file mode 100644 index e425e7d84..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/replaced_if.hpp +++ /dev/null @@ -1,177 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2007. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_REPLACED_IF_IMPL_HPP_INCLUDED -#define BOOST_RANGE_ADAPTOR_REPLACED_IF_IMPL_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class Pred, class Value > - class replace_value_if - { - public: - typedef const Value& result_type; - typedef const Value& first_argument_type; - - // Rationale: - // required to allow the iterator to be default constructible. - replace_value_if() - { - } - - replace_value_if(const Pred& pred, const Value& to) - : m_impl(data(pred, to)) - { - } - - const Value& operator()(const Value& x) const - { - return m_impl->m_pred(x) ? m_impl->m_to : x; - } - - private: - struct data - { - data(const Pred& p, const Value& t) - : m_pred(p), m_to(t) - { - } - - Pred m_pred; - Value m_to; - }; - boost::optional m_impl; - }; - - template< class Pred, class R > - class replaced_if_range : - public boost::iterator_range< - boost::transform_iterator< - replace_value_if< Pred, BOOST_DEDUCED_TYPENAME range_value::type >, - BOOST_DEDUCED_TYPENAME range_iterator::type > > - { - private: - typedef replace_value_if< Pred, BOOST_DEDUCED_TYPENAME range_value::type > Fn; - - typedef boost::iterator_range< - boost::transform_iterator< - replace_value_if< Pred, BOOST_DEDUCED_TYPENAME range_value::type >, - BOOST_DEDUCED_TYPENAME range_iterator::type > > base_t; - - public: - typedef BOOST_DEDUCED_TYPENAME range_value::type value_type; - - replaced_if_range( R& r, const Pred& pred, value_type to ) - : base_t( make_transform_iterator( boost::begin(r), Fn(pred, to) ), - make_transform_iterator( boost::end(r), Fn(pred, to) ) ) - { } - }; - - template< class Pred, class T > - class replace_if_holder - { - public: - replace_if_holder( const Pred& pred, const T& to ) - : m_pred(pred), m_to(to) - { } - - const Pred& pred() const { return m_pred; } - const T& to() const { return m_to; } - - private: - Pred m_pred; - T m_to; - }; - - template< class Pred, class SinglePassRange > - inline replaced_if_range - operator|( - SinglePassRange& r, - const replace_if_holder< - Pred, - BOOST_DEDUCED_TYPENAME range_value::type>& f) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return replaced_if_range( - r, f.pred(), f.to()); - } - - template< class Pred, class SinglePassRange > - inline replaced_if_range - operator|( - const SinglePassRange& r, - const replace_if_holder< - Pred, - BOOST_DEDUCED_TYPENAME range_value::type>& f) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return replaced_if_range( - r, f.pred(), f.to()); - } - } // 'range_detail' - - using range_detail::replaced_if_range; - - namespace adaptors - { - namespace - { - const range_detail::forwarder2TU - replaced_if = - range_detail::forwarder2TU(); - } - - template - inline replaced_if_range - replace_if(SinglePassRange& rng, Pred pred, - BOOST_DEDUCED_TYPENAME range_value::type to) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return range_detail::replaced_if_range( - rng, pred, to); - } - - template - inline replaced_if_range - replace_if( - const SinglePassRange& rng, - Pred pred, - BOOST_DEDUCED_TYPENAME range_value::type to) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return range_detail::replaced_if_range( - rng, pred, to); - } - } // 'adaptors' - -} // 'boost' - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/reversed.hpp b/lib/3rdParty/boost/boost/range/adaptor/reversed.hpp deleted file mode 100644 index 944fbffca..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/reversed.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_REVERSED_HPP -#define BOOST_RANGE_ADAPTOR_REVERSED_HPP - -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class R > - struct reversed_range : - public boost::iterator_range< - boost::reverse_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - { - private: - typedef boost::iterator_range< - boost::reverse_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - base; - - public: - typedef boost::reverse_iterator::type> iterator; - - explicit reversed_range( R& r ) - : base( iterator(boost::end(r)), iterator(boost::begin(r)) ) - { } - }; - - struct reverse_forwarder {}; - - template< class BidirectionalRange > - inline reversed_range - operator|( BidirectionalRange& r, reverse_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - BidirectionalRangeConcept)); - - return reversed_range( r ); - } - - template< class BidirectionalRange > - inline reversed_range - operator|( const BidirectionalRange& r, reverse_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - BidirectionalRangeConcept)); - - return reversed_range( r ); - } - - } // 'range_detail' - - using range_detail::reversed_range; - - namespace adaptors - { - namespace - { - const range_detail::reverse_forwarder reversed = - range_detail::reverse_forwarder(); - } - - template - inline reversed_range - reverse(BidirectionalRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - BidirectionalRangeConcept)); - - return reversed_range(rng); - } - - template - inline reversed_range - reverse(const BidirectionalRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - BidirectionalRangeConcept)); - - return reversed_range(rng); - } - } // 'adaptors' - -} // 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/sliced.hpp b/lib/3rdParty/boost/boost/range/adaptor/sliced.hpp deleted file mode 100644 index a09cbd00e..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/sliced.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_SLICED_HPP -#define BOOST_RANGE_ADAPTOR_SLICED_HPP - -#include -#include -#include -#include - -namespace boost -{ - namespace adaptors - { - struct sliced - { - sliced(std::size_t t_, std::size_t u_) - : t(t_), u(u_) {} - std::size_t t; - std::size_t u; - }; - - template< class RandomAccessRange > - class sliced_range : public boost::iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - { - typedef boost::iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > base_t; - public: - template - sliced_range(Rng& rng, T t, U u) - : base_t(boost::next(boost::begin(rng), t), - boost::next(boost::begin(rng), u)) - { - } - }; - - template< class RandomAccessRange > - inline sliced_range - slice( RandomAccessRange& rng, std::size_t t, std::size_t u ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - RandomAccessRangeConcept)); - - BOOST_ASSERT( t <= u && "error in slice indices" ); - BOOST_ASSERT( static_cast(boost::size(rng)) >= u && - "second slice index out of bounds" ); - - return sliced_range(rng, t, u); - } - - template< class RandomAccessRange > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - slice( const RandomAccessRange& rng, std::size_t t, std::size_t u ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - RandomAccessRangeConcept)); - - BOOST_ASSERT( t <= u && "error in slice indices" ); - BOOST_ASSERT( static_cast(boost::size(rng)) >= u && - "second slice index out of bounds" ); - - return sliced_range(rng, t, u); - } - - template< class RandomAccessRange > - inline sliced_range - operator|( RandomAccessRange& r, const sliced& f ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - RandomAccessRangeConcept)); - - return sliced_range( r, f.t, f.u ); - } - - template< class RandomAccessRange > - inline sliced_range - operator|( const RandomAccessRange& r, const sliced& f ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - RandomAccessRangeConcept)); - - return sliced_range( r, f.t, f.u ); - } - - } // namespace adaptors - using adaptors::sliced_range; -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/strided.hpp b/lib/3rdParty/boost/boost/range/adaptor/strided.hpp deleted file mode 100644 index 560b8200c..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/strided.hpp +++ /dev/null @@ -1,697 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2007. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ADAPTOR_STRIDED_HPP_INCLUDED -#define BOOST_RANGE_ADAPTOR_STRIDED_HPP_INCLUDED - -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - // strided_iterator for wrapping a forward traversal iterator - template - class strided_iterator - : public iterator_facade< - strided_iterator - , typename iterator_value::type - , forward_traversal_tag - , typename iterator_reference::type - , typename iterator_difference::type - > - { - friend class ::boost::iterator_core_access; - - typedef iterator_facade< - strided_iterator - , typename iterator_value::type - , forward_traversal_tag - , typename iterator_reference::type - , typename iterator_difference::type - > super_t; - - public: - typedef typename super_t::difference_type difference_type; - typedef typename super_t::reference reference; - typedef BaseIterator base_iterator; - typedef std::forward_iterator_tag iterator_category; - - strided_iterator() - : m_it() - , m_last() - , m_stride() - { - } - - strided_iterator(base_iterator it, - base_iterator last, - difference_type stride) - : m_it(it) - , m_last(last) - , m_stride(stride) - { - } - - template - strided_iterator( - const strided_iterator& other, - typename enable_if_convertible< - OtherIterator, - base_iterator - >::type* = 0 - ) - : m_it(other.base()) - , m_last(other.base_end()) - , m_stride(other.get_stride()) - { - } - - base_iterator base() const - { - return m_it; - } - - base_iterator base_end() const - { - return m_last; - } - - difference_type get_stride() const - { - return m_stride; - } - - private: - void increment() - { - for (difference_type i = 0; - (m_it != m_last) && (i < m_stride); ++i) - { - ++m_it; - } - } - - reference dereference() const - { - return *m_it; - } - - template - bool equal( - const strided_iterator& other, - typename enable_if_convertible< - OtherIterator, - base_iterator - >::type* = 0) const - { - return m_it == other.m_it; - } - - base_iterator m_it; - base_iterator m_last; - difference_type m_stride; - }; - - // strided_iterator for wrapping a bidirectional iterator - template - class strided_iterator - : public iterator_facade< - strided_iterator - , typename iterator_value::type - , bidirectional_traversal_tag - , typename iterator_reference::type - , typename iterator_difference::type - > - { - friend class ::boost::iterator_core_access; - - typedef iterator_facade< - strided_iterator - , typename iterator_value::type - , bidirectional_traversal_tag - , typename iterator_reference::type - , typename iterator_difference::type - > super_t; - public: - typedef typename super_t::difference_type difference_type; - typedef typename super_t::reference reference; - typedef BaseIterator base_iterator; - typedef typename boost::make_unsigned::type - size_type; - typedef std::bidirectional_iterator_tag iterator_category; - - strided_iterator() - : m_it() - , m_offset() - , m_index() - , m_stride() - { - } - - strided_iterator(base_iterator it, - size_type index, - difference_type stride) - : m_it(it) - , m_offset() - , m_index(index) - , m_stride(stride) - { - if (stride && ((m_index % stride) != 0)) - m_index += (stride - (m_index % stride)); - } - - template - strided_iterator( - const strided_iterator< - OtherIterator, - bidirectional_traversal_tag - >& other, - typename enable_if_convertible< - OtherIterator, - base_iterator - >::type* = 0 - ) - : m_it(other.base()) - , m_offset(other.get_offset()) - , m_index(other.get_index()) - , m_stride(other.get_stride()) - { - } - - base_iterator base() const - { - return m_it; - } - - difference_type get_offset() const - { - return m_offset; - } - - size_type get_index() const - { - return m_index; - } - - difference_type get_stride() const - { - return m_stride; - } - - private: - void increment() - { - m_offset += m_stride; - } - - void decrement() - { - m_offset -= m_stride; - } - - reference dereference() const - { - update(); - return *m_it; - } - - void update() const - { - std::advance(m_it, m_offset); - m_index += m_offset; - m_offset = 0; - } - - template - bool equal( - const strided_iterator< - OtherIterator, - bidirectional_traversal_tag - >& other, - typename enable_if_convertible< - OtherIterator, - base_iterator - >::type* = 0) const - { - return (m_index + m_offset) == - (other.get_index() + other.get_offset()); - } - - mutable base_iterator m_it; - mutable difference_type m_offset; - mutable size_type m_index; - difference_type m_stride; - }; - - // strided_iterator implementation for wrapping a random access iterator - template - class strided_iterator - : public iterator_facade< - strided_iterator - , typename iterator_value::type - , random_access_traversal_tag - , typename iterator_reference::type - , typename iterator_difference::type - > - { - friend class ::boost::iterator_core_access; - - typedef iterator_facade< - strided_iterator - , typename iterator_value::type - , random_access_traversal_tag - , typename iterator_reference::type - , typename iterator_difference::type - > super_t; - public: - typedef typename super_t::difference_type difference_type; - typedef typename super_t::reference reference; - typedef BaseIterator base_iterator; - typedef std::random_access_iterator_tag iterator_category; - - strided_iterator() - : m_it() - , m_first() - , m_index(0) - , m_stride() - { - } - - strided_iterator( - base_iterator first, - base_iterator it, - difference_type stride - ) - : m_it(it) - , m_first(first) - , m_index(stride ? (it - first) : difference_type()) - , m_stride(stride) - { - if (stride && ((m_index % stride) != 0)) - m_index += (stride - (m_index % stride)); - } - - template - strided_iterator( - const strided_iterator< - OtherIterator, - random_access_traversal_tag - >& other, - typename enable_if_convertible< - OtherIterator, - base_iterator - >::type* = 0 - ) - : m_it(other.base()) - , m_first(other.base_begin()) - , m_index(other.get_index()) - , m_stride(other.get_stride()) - { - } - - base_iterator base_begin() const - { - return m_first; - } - - base_iterator base() const - { - return m_it; - } - - difference_type get_stride() const - { - return m_stride; - } - - difference_type get_index() const - { - return m_index; - } - - private: - void increment() - { - m_index += m_stride; - } - - void decrement() - { - m_index -= m_stride; - } - - void advance(difference_type offset) - { - m_index += (m_stride * offset); - } - - // Implementation detail: only update the actual underlying iterator - // at the point of dereference. This is done so that the increment - // and decrement can overshoot the valid sequence as is required - // by striding. Since we can do all comparisons just with the index - // simply, and all dereferences must be within the valid range. - void update() const - { - m_it = m_first + m_index; - } - - template - difference_type distance_to( - const strided_iterator< - OtherIterator, - random_access_traversal_tag - >& other, - typename enable_if_convertible< - OtherIterator, base_iterator>::type* = 0) const - { - BOOST_ASSERT((other.m_index - m_index) % m_stride == difference_type()); - return (other.m_index - m_index) / m_stride; - } - - template - bool equal( - const strided_iterator< - OtherIterator, - random_access_traversal_tag - >& other, - typename enable_if_convertible< - OtherIterator, base_iterator>::type* = 0) const - { - return m_index == other.m_index; - } - - reference dereference() const - { - update(); - return *m_it; - } - - private: - mutable base_iterator m_it; - base_iterator m_first; - difference_type m_index; - difference_type m_stride; - }; - - template inline - strided_iterator< - typename range_iterator::type, - forward_traversal_tag - > - make_begin_strided_iterator( - Rng& rng, - Difference stride, - forward_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - forward_traversal_tag - >(boost::begin(rng), boost::end(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - forward_traversal_tag - > - make_begin_strided_iterator( - const Rng& rng, - Difference stride, - forward_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - forward_traversal_tag - >(boost::begin(rng), boost::end(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - forward_traversal_tag - > - make_end_strided_iterator( - Rng& rng, - Difference stride, - forward_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - forward_traversal_tag - >(boost::end(rng), boost::end(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - forward_traversal_tag - > - make_end_strided_iterator( - const Rng& rng, - Difference stride, - forward_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - forward_traversal_tag - >(boost::end(rng), boost::end(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - > - make_begin_strided_iterator( - Rng& rng, - Difference stride, - bidirectional_traversal_tag) - { - typedef typename range_difference::type difference_type; - - return strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - >(boost::begin(rng), difference_type(), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - > - make_begin_strided_iterator( - const Rng& rng, - Difference stride, - bidirectional_traversal_tag) - { - typedef typename range_difference::type difference_type; - - return strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - >(boost::begin(rng), difference_type(), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - > - make_end_strided_iterator( - Rng& rng, - Difference stride, - bidirectional_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - >(boost::end(rng), boost::size(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - > - make_end_strided_iterator( - const Rng& rng, - Difference stride, - bidirectional_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - bidirectional_traversal_tag - >(boost::end(rng), boost::size(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - > - make_begin_strided_iterator( - Rng& rng, - Difference stride, - random_access_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - >(boost::begin(rng), boost::begin(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - > - make_begin_strided_iterator( - const Rng& rng, - Difference stride, - random_access_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - >(boost::begin(rng), boost::begin(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - > - make_end_strided_iterator( - Rng& rng, - Difference stride, - random_access_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - >(boost::begin(rng), boost::end(rng), stride); - } - - template inline - strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - > - make_end_strided_iterator( - const Rng& rng, - Difference stride, - random_access_traversal_tag) - { - return strided_iterator< - typename range_iterator::type, - random_access_traversal_tag - >(boost::begin(rng), boost::end(rng), stride); - } - - template< - class Rng, - class Category = - typename iterators::pure_iterator_traversal< - typename range_iterator::type - >::type - > - class strided_range - : public iterator_range< - range_detail::strided_iterator< - typename range_iterator::type, - Category - > - > - { - typedef range_detail::strided_iterator< - typename range_iterator::type, - Category - > iter_type; - typedef iterator_range super_t; - public: - template - strided_range(Difference stride, Rng& rng) - : super_t( - range_detail::make_begin_strided_iterator( - rng, stride, - typename iterator_traversal< - typename range_iterator::type - >::type()), - range_detail::make_end_strided_iterator( - rng, stride, - typename iterator_traversal< - typename range_iterator::type - >::type())) - { - BOOST_ASSERT( stride >= 0 ); - } - }; - - template - class strided_holder : public holder - { - public: - explicit strided_holder(Difference value) - : holder(value) - { - } - }; - - template - inline strided_range - operator|(Rng& rng, const strided_holder& stride) - { - return strided_range(stride.val, rng); - } - - template - inline strided_range - operator|(const Rng& rng, const strided_holder& stride) - { - return strided_range(stride.val, rng); - } - - } // namespace range_detail - - using range_detail::strided_range; - - namespace adaptors - { - - namespace - { - const range_detail::forwarder - strided = range_detail::forwarder< - range_detail::strided_holder>(); - } - - template - inline strided_range - stride(Range& rng, Difference step) - { - return strided_range(step, rng); - } - - template - inline strided_range - stride(const Range& rng, Difference step) - { - return strided_range(step, rng); - } - - } // namespace 'adaptors' -} // namespace 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/tokenized.hpp b/lib/3rdParty/boost/boost/range/adaptor/tokenized.hpp deleted file mode 100644 index f0aa12eea..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/tokenized.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_TOKENIZED_HPP -#define BOOST_RANGE_ADAPTOR_TOKENIZED_HPP - -#include -#include - -namespace boost -{ - namespace range_detail - { - - template< class R > - struct tokenized_range : - public boost::iterator_range< - boost::regex_token_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - { - private: - typedef - boost::regex_token_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - regex_iter; - - typedef BOOST_DEDUCED_TYPENAME regex_iter::regex_type - regex_type; - - typedef boost::iterator_range - base; - - public: - template< class Regex, class Submatch, class Flag > - tokenized_range( R& r, const Regex& re, const Submatch& sub, Flag f ) - : base( regex_iter( boost::begin(r), boost::end(r), - regex_type(re), sub, f ), - regex_iter() ) - { } - }; - - template< class T, class U, class V > - struct regex_holder - { - T re; - U sub; - V f; - - regex_holder( const T& rex, const U& subm, V flag ) : - re(rex), sub(subm), f(flag) - { } - private: - // Not assignable - void operator=(const regex_holder&); - }; - - struct regex_forwarder - { - template< class Regex > - regex_holder - operator()( const Regex& re, - int submatch = 0, - regex_constants::match_flag_type f = - regex_constants::match_default ) const - { - return regex_holder( re, submatch, f ); - } - - template< class Regex, class Submatch > - regex_holder - operator()( const Regex& re, - const Submatch& sub, - regex_constants::match_flag_type f = - regex_constants::match_default ) const - { - return regex_holder( re, sub, f ); - } - }; - - template< class BidirectionalRng, class R, class S, class F > - inline tokenized_range - operator|( BidirectionalRng& r, - const regex_holder& f ) - { - return tokenized_range( r, f.re, f.sub, f.f ); - } - - template< class BidirectionalRng, class R, class S, class F > - inline tokenized_range - operator|( const BidirectionalRng& r, - const regex_holder& f ) - { - return tokenized_range( r, f.re, f.sub, f.f ); - } - - } // 'range_detail' - - using range_detail::tokenized_range; - - namespace adaptors - { - namespace - { - const range_detail::regex_forwarder tokenized = - range_detail::regex_forwarder(); - } - - template - inline tokenized_range - tokenize(BidirectionalRange& rng, const Regex& reg, const Submatch& sub, Flag f) - { - return tokenized_range(rng, reg, sub, f); - } - - template - inline tokenized_range - tokenize(const BidirectionalRange& rng, const Regex& reg, const Submatch& sub, Flag f) - { - return tokenized_range(rng, reg, sub, f); - } - } // 'adaptors' - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/transformed.hpp b/lib/3rdParty/boost/boost/range/adaptor/transformed.hpp deleted file mode 100644 index 428ff4be7..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/transformed.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_TRANSFORMED_HPP -#define BOOST_RANGE_ADAPTOR_TRANSFORMED_HPP - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - // A type generator to produce the transform_iterator type conditionally - // including a wrapped predicate as appropriate. - template - struct transform_iterator_gen - { - typedef transform_iterator< - typename default_constructible_unary_fn_gen< - P, - typename transform_iterator::reference - >::type, - It - > type; - }; - - template< class F, class R > - struct transformed_range : - public boost::iterator_range< - typename transform_iterator_gen< - F, typename range_iterator::type>::type> - { - private: - typedef typename transform_iterator_gen< - F, typename range_iterator::type>::type transform_iter_t; - - typedef boost::iterator_range base; - - public: - typedef typename default_constructible_unary_fn_gen< - F, - typename transform_iterator< - F, - typename range_iterator::type - >::reference - >::type transform_fn_type; - - typedef R source_range_type; - - transformed_range(transform_fn_type f, R& r) - : base(transform_iter_t(boost::begin(r), f), - transform_iter_t(boost::end(r), f)) - { - } - }; - - template< class T > - struct transform_holder : holder - { - transform_holder( T r ) : holder(r) - { - } - }; - - template< class SinglePassRange, class UnaryFunction > - inline transformed_range - operator|( SinglePassRange& r, - const transform_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return transformed_range( f.val, r ); - } - - template< class SinglePassRange, class UnaryFunction > - inline transformed_range - operator|( const SinglePassRange& r, - const transform_holder& f ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return transformed_range( - f.val, r); - } - - } // 'range_detail' - - using range_detail::transformed_range; - - namespace adaptors - { - namespace - { - const range_detail::forwarder - transformed = - range_detail::forwarder(); - } - - template - inline transformed_range - transform(SinglePassRange& rng, UnaryFunction fn) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return transformed_range(fn, rng); - } - - template - inline transformed_range - transform(const SinglePassRange& rng, UnaryFunction fn) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return transformed_range( - fn, rng); - } - } // 'adaptors' - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptor/type_erased.hpp b/lib/3rdParty/boost/boost/range/adaptor/type_erased.hpp deleted file mode 100644 index ba5b15988..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/type_erased.hpp +++ /dev/null @@ -1,196 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ADAPTOR_TYPE_ERASED_HPP_INCLUDED -#define BOOST_RANGE_ADAPTOR_TYPE_ERASED_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace adaptors - { - template< - class Value = use_default - , class Traversal = use_default - , class Reference = use_default - , class Difference = use_default - , class Buffer = use_default - > - struct type_erased - { - }; - - template< - class SinglePassRange - , class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - typename any_range_type_generator< - SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type - operator|(SinglePassRange& rng, - type_erased< - Value - , Traversal - , Reference - , Difference - , Buffer - >) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - typedef typename any_range_type_generator< - SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type range_type; - return range_type(boost::begin(rng), boost::end(rng)); - } - - template< - class SinglePassRange - , class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - typename any_range_type_generator< - const SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type - operator|(const SinglePassRange& rng, - type_erased< - Value - , Traversal - , Reference - , Difference - , Buffer - >) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - typedef typename any_range_type_generator< - const SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type range_type; - return range_type(boost::begin(rng), boost::end(rng)); - } - - template< - class SinglePassRange - , class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - typename any_range_type_generator< - SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type - type_erase(SinglePassRange& rng - , type_erased< - Value - , Traversal - , Reference - , Difference - , Buffer - > = type_erased<>() - ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - typedef typename any_range_type_generator< - SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type range_type; - - return range_type(boost::begin(rng), boost::end(rng)); - } - - template< - class SinglePassRange - , class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - typename any_range_type_generator< - const SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type - type_erase(const SinglePassRange& rng - , type_erased< - Value - , Traversal - , Reference - , Difference - , Buffer - > = type_erased<>() - ) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - typedef typename any_range_type_generator< - const SinglePassRange - , Value - , Traversal - , Reference - , Difference - , Buffer - >::type range_type; - - return range_type(boost::begin(rng), boost::end(rng)); - } - } -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/adaptor/uniqued.hpp b/lib/3rdParty/boost/boost/range/adaptor/uniqued.hpp deleted file mode 100644 index 29101d326..000000000 --- a/lib/3rdParty/boost/boost/range/adaptor/uniqued.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen, Neil Groves 2006 - 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_UNIQUED_IMPL_HPP -#define BOOST_RANGE_ADAPTOR_UNIQUED_IMPL_HPP - -#include -#include - -namespace boost -{ - - namespace range_detail - { - struct unique_forwarder { }; - - struct unique_not_equal_to - { - typedef bool result_type; - - template< class T > - bool operator()( const T& l, const T& r ) const - { - return !(l == r); - } - }; - - template - class uniqued_range : public adjacent_filtered_range - { - typedef adjacent_filtered_range base; - public: - explicit uniqued_range(ForwardRng& rng) - : base(unique_not_equal_to(), rng) - { - } - }; - - template< class ForwardRng > - inline uniqued_range - operator|( ForwardRng& r, - unique_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return uniqued_range(r); - } - - template< class ForwardRng > - inline uniqued_range - operator|( const ForwardRng& r, - unique_forwarder ) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return uniqued_range(r); - } - - } // 'range_detail' - - using range_detail::uniqued_range; - - namespace adaptors - { - namespace - { - const range_detail::unique_forwarder uniqued = - range_detail::unique_forwarder(); - } - - template - inline uniqued_range - unique(ForwardRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return uniqued_range(rng); - } - - template - inline uniqued_range - unique(const ForwardRange& rng) - { - BOOST_RANGE_CONCEPT_ASSERT(( - ForwardRangeConcept)); - - return uniqued_range(rng); - } - } // 'adaptors' - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/adaptors.hpp b/lib/3rdParty/boost/boost/range/adaptors.hpp deleted file mode 100644 index 0530c4d36..000000000 --- a/lib/3rdParty/boost/boost/range/adaptors.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2007. -// Copyright Thorsten Ottosen 2006. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTORS_HPP -#define BOOST_RANGE_ADAPTORS_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/range/algorithm.hpp b/lib/3rdParty/boost/boost/range/algorithm.hpp deleted file mode 100644 index 30dc5836e..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm.hpp +++ /dev/null @@ -1,104 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -/// \file algorithm.hpp -/// Includes the range-based versions of the algorithms in the -/// C++ standard header file -// -///////////////////////////////////////////////////////////////////////////// - -// Copyright 2009 Neil Groves. -// 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) -// -// Acknowledgements: -// This code uses combinations of ideas, techniques and code snippets -// from: Thorsten Ottosen, Eric Niebler, Jeremy Siek, -// and Vladimir Prus' -// -// The original mutating algorithms that served as the first version -// were originally written by Vladimir Prus' -// code from Boost Wiki - -#if defined(_MSC_VER) -#pragma once -#endif - -#ifndef BOOST_RANGE_ALGORITHM_HPP_INCLUDED_01012009 -#define BOOST_RANGE_ALGORITHM_HPP_INCLUDED_01012009 - -#include -#include -#include -#include -#include -#include -#include - -// Non-mutating algorithms -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Mutating algorithms -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Binary search -#include -#include -#include -#include - -// Set operations of sorted ranges -#include - -// Heap operations -#include - -// Minimum and Maximum -#include -#include - -// Permutations -#include - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/range/algorithm/adjacent_find.hpp b/lib/3rdParty/boost/boost/range/algorithm/adjacent_find.hpp deleted file mode 100644 index 1b88dae86..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/adjacent_find.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_ADJACENT_FIND_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_ADJACENT_FIND_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function adjacent_find -/// -/// range-based version of the adjacent_find std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template< typename ForwardRange > -inline typename range_iterator::type -adjacent_find(ForwardRange & rng) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return std::adjacent_find(boost::begin(rng),boost::end(rng)); -} - -/// \overload -template< typename ForwardRange > -inline typename range_iterator::type -adjacent_find(const ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return std::adjacent_find(boost::begin(rng),boost::end(rng)); -} - -/// \overload -template< typename ForwardRange, typename BinaryPredicate > -inline typename range_iterator::type -adjacent_find(ForwardRange & rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, - typename range_value::type>)); - return std::adjacent_find(boost::begin(rng),boost::end(rng),pred); -} - -/// \overload -template< typename ForwardRange, typename BinaryPredicate > -inline typename range_iterator::type -adjacent_find(const ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, - typename range_value::type>)); - return std::adjacent_find(boost::begin(rng),boost::end(rng),pred); -} - -// range_return overloads - -/// \overload -template< range_return_value re, typename ForwardRange > -inline typename range_return::type -adjacent_find(ForwardRange & rng) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_return:: - pack(std::adjacent_find(boost::begin(rng),boost::end(rng)), - rng); -} - -/// \overload -template< range_return_value re, typename ForwardRange > -inline typename range_return::type -adjacent_find(const ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_return:: - pack(std::adjacent_find(boost::begin(rng),boost::end(rng)), - rng); -} - -/// \overload -template< range_return_value re, typename ForwardRange, typename BinaryPredicate > -inline typename range_return::type -adjacent_find(ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, - typename range_value::type>)); - return range_return:: - pack(std::adjacent_find(boost::begin(rng),boost::end(rng),pred), - rng); -} - -/// \overload -template< range_return_value re, typename ForwardRange, typename BinaryPredicate > -inline typename range_return::type -adjacent_find(const ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_return:: - pack(std::adjacent_find(boost::begin(rng),boost::end(rng),pred), - rng); -} - - } // namespace range - using range::adjacent_find; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/binary_search.hpp b/lib/3rdParty/boost/boost/range/algorithm/binary_search.hpp deleted file mode 100644 index bb64ec8f1..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/binary_search.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_BINARY_SEARCH_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_BINARY_SEARCH_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function binary_search -/// -/// range-based version of the binary_search std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline bool binary_search(const ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::binary_search(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template -inline bool binary_search(const ForwardRange& rng, const Value& val, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::binary_search(boost::begin(rng), boost::end(rng), val, pred); -} - - } // namespace range - using range::binary_search; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/copy.hpp deleted file mode 100644 index f15b31f91..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/copy.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function copy -/// -/// range-based version of the copy std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre OutputIterator is a model of the OutputIteratorConcept -template< class SinglePassRange, class OutputIterator > -inline OutputIterator copy(const SinglePassRange& rng, OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::copy(boost::begin(rng),boost::end(rng),out); -} - - } // namespace range - using range::copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/copy_backward.hpp b/lib/3rdParty/boost/boost/range/algorithm/copy_backward.hpp deleted file mode 100644 index c95c6f1f3..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/copy_backward.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_COPY_BACKWARD_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_COPY_BACKWARD_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function copy_backward -/// -/// range-based version of the copy_backwards std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -/// \pre BidirectionalTraversalWriteableIterator is a model of the BidirectionalIteratorConcept -/// \pre BidirectionalTraversalWriteableIterator is a model of the WriteableIteratorConcept -template< class BidirectionalRange, class BidirectionalTraversalWriteableIterator > -inline BidirectionalTraversalWriteableIterator -copy_backward(const BidirectionalRange& rng, - BidirectionalTraversalWriteableIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::copy_backward(boost::begin(rng), boost::end(rng), out); -} - - } // namespace range - using range::copy_backward; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/count.hpp b/lib/3rdParty/boost/boost/range/algorithm/count.hpp deleted file mode 100644 index 8316ce0f1..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/count.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_COUNT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_COUNT_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function count -/// -/// range-based version of the count std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -template< class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_difference::type -count(SinglePassRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::count(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template< class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_difference::type -count(const SinglePassRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::count(boost::begin(rng), boost::end(rng), val); -} - - } // namespace range - using range::count; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/count_if.hpp b/lib/3rdParty/boost/boost/range/algorithm/count_if.hpp deleted file mode 100644 index ae17b0e3a..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/count_if.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_COUNT_IF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_COUNT_IF_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function count_if -/// -/// range-based version of the count_if std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre UnaryPredicate is a model of the UnaryPredicateConcept -template< class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME boost::range_difference::type -count_if(SinglePassRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::count_if(boost::begin(rng), boost::end(rng), pred); -} - -/// \overload -template< class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME boost::range_difference::type -count_if(const SinglePassRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::count_if(boost::begin(rng), boost::end(rng), pred); -} - - } // namespace range - using range::count_if; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/equal.hpp b/lib/3rdParty/boost/boost/range/algorithm/equal.hpp deleted file mode 100644 index 2b44f3bca..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/equal.hpp +++ /dev/null @@ -1,200 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED - -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - // An implementation of equality comparison that is optimized for iterator - // traversal categories less than RandomAccessTraversal. - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2, - class IteratorCategoryTag1, - class IteratorCategoryTag2 > - inline bool equal_impl( SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2, - IteratorCategoryTag1, - IteratorCategoryTag2 ) - { - for (;;) - { - // If we have reached the end of the left range then this is - // the end of the loop. They are equal if and only if we have - // simultaneously reached the end of the right range. - if (first1 == last1) - return first2 == last2; - - // If we have reached the end of the right range at this line - // it indicates that the right range is shorter than the left - // and hence the result is false. - if (first2 == last2) - return false; - - // continue looping if and only if the values are equal - if (*first1 != *first2) - break; - - ++first1; - ++first2; - } - - // Reaching this line in the algorithm indicates that a value - // inequality has been detected. - return false; - } - - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2, - class IteratorCategoryTag1, - class IteratorCategoryTag2, - class BinaryPredicate > - inline bool equal_impl( SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2, - BinaryPredicate pred, - IteratorCategoryTag1, - IteratorCategoryTag2 ) - { - for (;;) - { - // If we have reached the end of the left range then this is - // the end of the loop. They are equal if and only if we have - // simultaneously reached the end of the right range. - if (first1 == last1) - return first2 == last2; - - // If we have reached the end of the right range at this line - // it indicates that the right range is shorter than the left - // and hence the result is false. - if (first2 == last2) - return false; - - // continue looping if and only if the values are equal - if (!pred(*first1, *first2)) - break; - - ++first1; - ++first2; - } - - // Reaching this line in the algorithm indicates that a value - // inequality has been detected. - return false; - } - - // An implementation of equality comparison that is optimized for - // random access iterators. - template< class RandomAccessTraversalReadableIterator1, - class RandomAccessTraversalReadableIterator2 > - inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1, - RandomAccessTraversalReadableIterator1 last1, - RandomAccessTraversalReadableIterator2 first2, - RandomAccessTraversalReadableIterator2 last2, - std::random_access_iterator_tag, - std::random_access_iterator_tag ) - { - return ((last1 - first1) == (last2 - first2)) - && std::equal(first1, last1, first2); - } - - template< class RandomAccessTraversalReadableIterator1, - class RandomAccessTraversalReadableIterator2, - class BinaryPredicate > - inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1, - RandomAccessTraversalReadableIterator1 last1, - RandomAccessTraversalReadableIterator2 first2, - RandomAccessTraversalReadableIterator2 last2, - BinaryPredicate pred, - std::random_access_iterator_tag, - std::random_access_iterator_tag ) - { - return ((last1 - first1) == (last2 - first2)) - && std::equal(first1, last1, first2, pred); - } - - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2 > - inline bool equal( SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2 ) - { - BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1; - BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2; - - return equal_impl(first1, last1, first2, last2, tag1, tag2); - } - - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2, - class BinaryPredicate > - inline bool equal( SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2, - BinaryPredicate pred ) - { - BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1; - BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2; - - return equal_impl(first1, last1, first2, last2, pred, tag1, tag2); - } - - } // namespace range_detail - - namespace range - { - - /// \brief template function equal - /// - /// range-based version of the equal std algorithm - /// - /// \pre SinglePassRange1 is a model of the SinglePassRangeConcept - /// \pre SinglePassRange2 is a model of the SinglePassRangeConcept - /// \pre BinaryPredicate is a model of the BinaryPredicateConcept - template< class SinglePassRange1, class SinglePassRange2 > - inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2 ) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::equal( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2) ); - } - - /// \overload - template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > - inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2, - BinaryPredicate pred ) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::equal( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), - pred); - } - - } // namespace range - using ::boost::range::equal; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/equal_range.hpp b/lib/3rdParty/boost/boost/range/algorithm/equal_range.hpp deleted file mode 100644 index 4aa4a54dd..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/equal_range.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EQUAL_RANGE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EQUAL_RANGE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function equal_range -/// -/// range-based version of the equal_range std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre SortPredicate is a model of the BinaryPredicateConcept -template -inline std::pair< - BOOST_DEDUCED_TYPENAME boost::range_iterator::type, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type - > -equal_range(ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::equal_range(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template -inline std::pair< - BOOST_DEDUCED_TYPENAME boost::range_iterator::type, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type - > -equal_range(const ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::equal_range(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template -inline std::pair< - BOOST_DEDUCED_TYPENAME boost::range_iterator::type, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type - > -equal_range(ForwardRange& rng, const Value& val, SortPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::equal_range(boost::begin(rng), boost::end(rng), val, pred); -} - -/// \overload -template -inline std::pair< - BOOST_DEDUCED_TYPENAME boost::range_iterator::type, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type - > -equal_range(const ForwardRange& rng, const Value& val, SortPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::equal_range(boost::begin(rng), boost::end(rng), val, pred); -} - - } // namespace range - using range::equal_range; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/fill.hpp b/lib/3rdParty/boost/boost/range/algorithm/fill.hpp deleted file mode 100644 index 95231a82f..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/fill.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FILL_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FILL_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function fill -/// -/// range-based version of the fill std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template< class ForwardRange, class Value > -inline ForwardRange& fill(ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::fill(boost::begin(rng), boost::end(rng), val); - return rng; -} - -/// \overload -template< class ForwardRange, class Value > -inline const ForwardRange& fill(const ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::fill(boost::begin(rng), boost::end(rng), val); - return rng; -} - - } // namespace range - using range::fill; -} - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/fill_n.hpp b/lib/3rdParty/boost/boost/range/algorithm/fill_n.hpp deleted file mode 100644 index 02a0c2a36..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/fill_n.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FILL_N_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FILL_N_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function fill_n -/// -/// range-based version of the fill_n std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre n <= std::distance(boost::begin(rng), boost::end(rng)) -template< class ForwardRange, class Size, class Value > -inline ForwardRange& fill_n(ForwardRange& rng, Size n, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_ASSERT( static_cast(std::distance(boost::begin(rng), boost::end(rng))) >= n ); - std::fill_n(boost::begin(rng), n, val); - return rng; -} - -/// \overload -template< class ForwardRange, class Size, class Value > -inline const ForwardRange& fill_n(const ForwardRange& rng, Size n, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_ASSERT( static_cast(std::distance(boost::begin(rng), boost::end(rng))) >= n ); - std::fill_n(boost::begin(rng), n, val); - return rng; -} - - } // namespace range - using range::fill_n; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/find.hpp b/lib/3rdParty/boost/boost/range/algorithm/find.hpp deleted file mode 100644 index 72c5cf15e..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/find.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FIND_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FIND_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function find -/// -/// range-based version of the find std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -template< class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -find( SinglePassRange& rng, const Value& val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::find(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template< class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find( const SinglePassRange& rng, const Value& val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::find(boost::begin(rng), boost::end(rng), val); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -find( SinglePassRange& rng, const Value& val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return range_return:: - pack(std::find(boost::begin(rng), boost::end(rng), val), - rng); -} - -/// \overload -template< range_return_value re, class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -find( const SinglePassRange& rng, const Value& val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return range_return:: - pack(std::find(boost::begin(rng), boost::end(rng), val), - rng); -} - - } // namespace range - using range::find; -} - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/find_end.hpp b/lib/3rdParty/boost/boost/range/algorithm/find_end.hpp deleted file mode 100644 index 757e9996c..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/find_end.hpp +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FIND_END_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FIND_END_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function find_end -/// -/// range-based version of the find_end std algorithm -/// -/// \pre ForwardRange1 is a model of the ForwardRangeConcept -/// \pre ForwardRange2 is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template< class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator< ForwardRange1 >::type ->::type -find_end(ForwardRange1 & rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_end(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - -/// \overload -template< class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_iterator< const ForwardRange1 >::type -find_end(const ForwardRange1 & rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_end(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - -/// \overload -template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -find_end(ForwardRange1 & rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_end(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - -/// \overload -template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_end(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -find_end(ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_end(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)), - rng1); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_end(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)), - rng1); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_end(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred), - rng1); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_end(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred), - rng1); -} - - } // namespace range - using range::find_end; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/find_first_of.hpp b/lib/3rdParty/boost/boost/range/algorithm/find_first_of.hpp deleted file mode 100644 index 4cb5989af..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/find_first_of.hpp +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FIND_FIRST_OF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FIND_FIRST_OF_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function find_first_of -/// -/// range-based version of the find_first_of std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre ForwardRange2 is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template< class SinglePassRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -find_first_of(SinglePassRange1 & rng1, ForwardRange2 const & rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_first_of(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - -/// \overload -template< class SinglePassRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_first_of(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - -/// \overload -template< class SinglePassRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -find_first_of(SinglePassRange1 & rng1, ForwardRange2 const & rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_first_of(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - -/// \overload -template< class SinglePassRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_first_of(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - -// range return overloads -/// \overload -template< range_return_value re, class SinglePassRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_first_of(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)), - rng1); -} - -/// \overload -template< range_return_value re, class SinglePassRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_first_of(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)), - rng1); -} - -/// \overload -template< range_return_value re, class SinglePassRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -find_first_of(SinglePassRange1 & rng1, const ForwardRange2& rng2, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_first_of(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred), - rng1); -} - -/// \overload -template< range_return_value re, class SinglePassRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_first_of(const SinglePassRange1 & rng1, const ForwardRange2& rng2, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_first_of(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred), - rng1); -} - - } // namespace range - using range::find_first_of; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/find_if.hpp b/lib/3rdParty/boost/boost/range/algorithm/find_if.hpp deleted file mode 100644 index 2d1926dab..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/find_if.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FIND_IF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FIND_IF_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function find_if -/// -/// range-based version of the find_if std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre UnaryPredicate is a model of the UnaryPredicateConcept -template< class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -find_if( SinglePassRange& rng, UnaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::find_if(boost::begin(rng), boost::end(rng), pred); -} - -/// \overload -template< class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_if( const SinglePassRange& rng, UnaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::find_if(boost::begin(rng), boost::end(rng), pred); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -find_if( SinglePassRange& rng, UnaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return range_return:: - pack(std::find_if(boost::begin(rng), boost::end(rng), pred), - rng); -} - -/// \overload -template< range_return_value re, class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_if( const SinglePassRange& rng, UnaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return range_return:: - pack(std::find_if(boost::begin(rng), boost::end(rng), pred), - rng); -} - - } // namespace range - using range::find_if; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/for_each.hpp b/lib/3rdParty/boost/boost/range/algorithm/for_each.hpp deleted file mode 100644 index ea731b2fd..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/for_each.hpp +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_FOR_EACH_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_FOR_EACH_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1600) -#include -#endif - -namespace boost -{ - namespace range - { - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1600) - namespace for_each_detail - { - template - inline UnaryFunction - for_each_impl(Iterator first, Iterator last, UnaryFunction fun, - typename ::boost::enable_if< - is_reference_wrapper, - void - >::type* = 0) - { - typedef typename std::_Get_unchecked_type::type - unchecked_iterator; - - unchecked_iterator unchecked_last = std::_Unchecked(last); - for (unchecked_iterator unchecked_first = std::_Unchecked(first); first != last; ++first) - fun.get()(*unchecked_first); - - return fun; - } - - template - inline UnaryFunction - for_each_impl(Iterator first, Iterator last, UnaryFunction fn, - typename disable_if< - is_reference_wrapper, - void - >::type* = 0) - { - return std::for_each(first, last, fn); - } - } -#endif - -/// \brief template function for_each -/// -/// range-based version of the for_each std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre UnaryFunction is a model of the UnaryFunctionConcept -template< class SinglePassRange, class UnaryFunction > -inline UnaryFunction for_each(SinglePassRange & rng, UnaryFunction fun) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1600) - return for_each_detail::for_each_impl< - typename range_iterator::type, - UnaryFunction - >(boost::begin(rng), boost::end(rng), fun); -#else - return std::for_each< - BOOST_DEDUCED_TYPENAME range_iterator::type, - UnaryFunction - >(boost::begin(rng),boost::end(rng),fun); -#endif -} - -/// \overload -template< class SinglePassRange, class UnaryFunction > -inline UnaryFunction for_each(const SinglePassRange& rng, UnaryFunction fun) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1600) - return for_each_detail::for_each_impl< - typename range_iterator::type, - UnaryFunction - >(boost::begin(rng), boost::end(rng), fun); -#else - return std::for_each< - BOOST_DEDUCED_TYPENAME range_iterator::type, - UnaryFunction - >(boost::begin(rng), boost::end(rng), fun); -#endif -} - - } // namespace range - using range::for_each; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/generate.hpp b/lib/3rdParty/boost/boost/range/algorithm/generate.hpp deleted file mode 100644 index 324412c45..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/generate.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_GENERATE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_GENERATE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { -/// \brief template function generate -/// -/// range-based version of the generate std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre Generator is a model of the UnaryFunctionConcept -template< class ForwardRange, class Generator > -inline ForwardRange& generate( ForwardRange& rng, Generator gen ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::generate(boost::begin(rng), boost::end(rng), gen); - return rng; -} - -/// \overload -template< class ForwardRange, class Generator > -inline const ForwardRange& generate( const ForwardRange& rng, Generator gen ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::generate(boost::begin(rng), boost::end(rng), gen); - return rng; -} - - } // namespace range - using range::generate; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/heap_algorithm.hpp b/lib/3rdParty/boost/boost/range/algorithm/heap_algorithm.hpp deleted file mode 100644 index 584920d65..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/heap_algorithm.hpp +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_HEAP_ALGORITHM_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_HEAP_ALGORITHM_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function push_heap -/// -/// range-based version of the push_heap std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre Compare is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& push_heap(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::push_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& push_heap(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::push_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& push_heap(RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::push_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& push_heap(const RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::push_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \brief template function pop_heap -/// -/// range-based version of the pop_heap std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre Compare is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& pop_heap(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::pop_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& pop_heap(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::pop_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& pop_heap(RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::pop_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& pop_heap(const RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::pop_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \brief template function make_heap -/// -/// range-based version of the make_heap std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre Compare is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& make_heap(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::make_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& make_heap(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::make_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& make_heap(RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::make_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& make_heap(const RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::make_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \brief template function sort_heap -/// -/// range-based version of the sort_heap std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre Compare is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& sort_heap(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& sort_heap(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort_heap(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& sort_heap(RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& sort_heap(const RandomAccessRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort_heap(boost::begin(rng), boost::end(rng), comp_pred); - return rng; -} - - } // namespace range - using range::push_heap; - using range::pop_heap; - using range::make_heap; - using range::sort_heap; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/inplace_merge.hpp b/lib/3rdParty/boost/boost/range/algorithm/inplace_merge.hpp deleted file mode 100644 index dfadbaa6f..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/inplace_merge.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_INPLACE_MERGE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_INPLACE_MERGE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function inplace_merge -/// -/// range-based version of the inplace_merge std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline BidirectionalRange& inplace_merge(BidirectionalRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - std::inplace_merge(boost::begin(rng), middle, boost::end(rng)); - return rng; -} - -/// \overload -template -inline const BidirectionalRange& inplace_merge(const BidirectionalRange& rng, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type middle) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - std::inplace_merge(boost::begin(rng), middle, boost::end(rng)); - return rng; -} - -/// \overload -template -inline BidirectionalRange& inplace_merge(BidirectionalRange& rng, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type middle, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - std::inplace_merge(boost::begin(rng), middle, boost::end(rng), pred); - return rng; -} - -/// \overload -template -inline const BidirectionalRange& inplace_merge(const BidirectionalRange& rng, - BOOST_DEDUCED_TYPENAME boost::range_iterator::type middle, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - std::inplace_merge(boost::begin(rng), middle, boost::end(rng), pred); - return rng; -} - - } // namespace range - using range::inplace_merge; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/lexicographical_compare.hpp b/lib/3rdParty/boost/boost/range/algorithm/lexicographical_compare.hpp deleted file mode 100644 index c6e4bc8ef..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/lexicographical_compare.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_LEXICOGRAPHICAL_COMPARE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_LEXICOGRAPHICAL_COMPARE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function lexicographic_compare -/// -/// range-based version of the lexicographic_compare std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -template -inline bool lexicographical_compare(const SinglePassRange1& rng1, - const SinglePassRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::lexicographical_compare( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)); -} - -/// \overload -template -inline bool lexicographical_compare(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::lexicographical_compare( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred); -} - - } // namespace range - using range::lexicographical_compare; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/lower_bound.hpp b/lib/3rdParty/boost/boost/range/algorithm/lower_bound.hpp deleted file mode 100644 index cb5e63923..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/lower_bound.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_LOWER_BOUND_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_LOWER_BOUND_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function lower_bound -/// -/// range-based version of the lower_bound std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -lower_bound( ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::lower_bound(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -lower_bound( const ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::lower_bound(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -lower_bound( ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::lower_bound(boost::begin(rng), boost::end(rng), val, pred); -} - -/// \overload -template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -lower_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::lower_bound(boost::begin(rng), boost::end(rng), val, pred); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -lower_bound( ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::lower_bound(boost::begin(rng), boost::end(rng), val), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -lower_bound( const ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::lower_bound(boost::begin(rng), boost::end(rng), val), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -lower_bound( ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::lower_bound(boost::begin(rng), boost::end(rng), val, pred), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -lower_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::lower_bound(boost::begin(rng), boost::end(rng), val, pred), - rng); -} - - } // namespace range - using range::lower_bound; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/max_element.hpp b/lib/3rdParty/boost/boost/range/algorithm/max_element.hpp deleted file mode 100644 index a0c1ffd8a..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/max_element.hpp +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_MAX_ELEMENT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_MAX_ELEMENT_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function max_element -/// -/// range-based version of the max_element std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -max_element(ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::max_element(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -max_element(const ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::max_element(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -max_element(ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::max_element(boost::begin(rng), boost::end(rng), pred); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -max_element(const ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::max_element(boost::begin(rng), boost::end(rng), pred); -} - -// range_return overloads - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -max_element(ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::max_element(boost::begin(rng), boost::end(rng)), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -max_element(const ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::max_element(boost::begin(rng), boost::end(rng)), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -max_element(ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::max_element(boost::begin(rng), boost::end(rng), pred), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -max_element(const ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::max_element(boost::begin(rng), boost::end(rng), pred), - rng); -} - - } // namespace range - using range::max_element; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/merge.hpp b/lib/3rdParty/boost/boost/range/algorithm/merge.hpp deleted file mode 100644 index c81b8c784..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/merge.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_MERGE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_MERGE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function merge -/// -/// range-based version of the merge std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -/// -template -inline OutputIterator merge(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::merge(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out); -} - -/// \overload -template -inline OutputIterator merge(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::merge(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out, pred); -} - - } // namespace range - using range::merge; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/min_element.hpp b/lib/3rdParty/boost/boost/range/algorithm/min_element.hpp deleted file mode 100644 index c966b1e52..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/min_element.hpp +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_MIN_ELEMENT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_MIN_ELEMENT_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function min_element -/// -/// range-based version of the min_element std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -min_element(ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::min_element(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -min_element(const ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::min_element(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -min_element(ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::min_element(boost::begin(rng), boost::end(rng), pred); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -min_element(const ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::min_element(boost::begin(rng), boost::end(rng), pred); -} - -// range_return overloads - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -min_element(ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::min_element(boost::begin(rng), boost::end(rng)), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -min_element(const ForwardRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::min_element(boost::begin(rng), boost::end(rng)), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -min_element(ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::min_element(boost::begin(rng), boost::end(rng), pred), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -min_element(const ForwardRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::min_element(boost::begin(rng), boost::end(rng), pred), - rng); -} - - } // namespace range - using range::min_element; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/mismatch.hpp b/lib/3rdParty/boost/boost/range/algorithm/mismatch.hpp deleted file mode 100644 index 2819c333f..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/mismatch.hpp +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_MISMATCH_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_MISMATCH_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2 > - inline std::pair - mismatch_impl(SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2) - { - while (first1 != last1 && first2 != last2 && *first1 == *first2) - { - ++first1; - ++first2; - } - return std::pair(first1, first2); - } - - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2, - class BinaryPredicate > - inline std::pair - mismatch_impl(SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2, - BinaryPredicate pred) - { - while (first1 != last1 && first2 != last2 && pred(*first1, *first2)) - { - ++first1; - ++first2; - } - return std::pair(first1, first2); - } - } // namespace range_detail - - namespace range - { -/// \brief template function mismatch -/// -/// range-based version of the mismatch std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template< class SinglePassRange1, class SinglePassRange2 > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(SinglePassRange1& rng1, const SinglePassRange2 & rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2)); -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2 > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(const SinglePassRange1& rng1, const SinglePassRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2)); -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2 > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(SinglePassRange1& rng1, SinglePassRange2 & rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2)); -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2 > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(const SinglePassRange1& rng1, SinglePassRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2)); -} - - -/// \overload -template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(SinglePassRange1& rng1, const SinglePassRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), pred); -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(const SinglePassRange1& rng1, const SinglePassRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), pred); -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(SinglePassRange1& rng1, SinglePassRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), pred); -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate > -inline std::pair< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type > -mismatch(const SinglePassRange1& rng1, SinglePassRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::mismatch_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), pred); -} - - } // namespace range - using range::mismatch; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/nth_element.hpp b/lib/3rdParty/boost/boost/range/algorithm/nth_element.hpp deleted file mode 100644 index a605595c0..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/nth_element.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_NTH_ELEMENT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_NTH_ELEMENT_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function nth_element -/// -/// range-based version of the nth_element std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& nth_element(RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type nth) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::nth_element(boost::begin(rng), nth, boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& nth_element(const RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type nth) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::nth_element(boost::begin(rng), nth, boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& nth_element(RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type nth, - BinaryPredicate sort_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::nth_element(boost::begin(rng), nth, boost::end(rng), sort_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& nth_element(const RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type nth, - BinaryPredicate sort_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::nth_element(boost::begin(rng), nth, boost::end(rng), sort_pred); - return rng; -} - - } // namespace range - using range::nth_element; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/partial_sort.hpp b/lib/3rdParty/boost/boost/range/algorithm/partial_sort.hpp deleted file mode 100644 index d7044cd68..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/partial_sort.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_PARTIAL_SORT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_PARTIAL_SORT_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function partial_sort -/// -/// range-based version of the partial_sort std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& partial_sort(RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::partial_sort(boost::begin(rng), middle, boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& partial_sort(const RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::partial_sort(boost::begin(rng), middle, boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& partial_sort(RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle, - BinaryPredicate sort_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::partial_sort(boost::begin(rng), middle, boost::end(rng), - sort_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& partial_sort(const RandomAccessRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle, - BinaryPredicate sort_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::partial_sort(boost::begin(rng), middle, boost::end(rng), - sort_pred); - return rng; -} - - } // namespace range - using range::partial_sort; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/partial_sort_copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/partial_sort_copy.hpp deleted file mode 100644 index 912938904..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/partial_sort_copy.hpp +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_PARTIAL_SORT_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_PARTIAL_SORT_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function partial_sort_copy -/// -/// range-based version of the partial_sort_copy std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre RandomAccessRange is a model of the Mutable_RandomAccessRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -partial_sort_copy(const SinglePassRange& rng1, RandomAccessRange& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - return std::partial_sort_copy(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -partial_sort_copy(const SinglePassRange& rng1, const RandomAccessRange& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - return std::partial_sort_copy(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -partial_sort_copy(const SinglePassRange& rng1, RandomAccessRange& rng2, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - return std::partial_sort_copy(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -partial_sort_copy(const SinglePassRange& rng1, const RandomAccessRange& rng2, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - return std::partial_sort_copy(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred); -} - - } // namespace range - using range::partial_sort_copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/partition.hpp b/lib/3rdParty/boost/boost/range/algorithm/partition.hpp deleted file mode 100644 index b814a2489..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/partition.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_PARTITION__HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_PARTITION__HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function partition -/// -/// range-based version of the partition std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -partition(ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::partition(boost::begin(rng),boost::end(rng),pred); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -partition(const ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::partition(boost::begin(rng),boost::end(rng),pred); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class ForwardRange, - class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -partition(ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return boost::range_return:: - pack(std::partition(boost::begin(rng), boost::end(rng), pred), rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, - class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -partition(const ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return boost::range_return:: - pack(std::partition(boost::begin(rng), boost::end(rng), pred), rng); -} - - } // namespace range - using range::partition; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/permutation.hpp b/lib/3rdParty/boost/boost/range/algorithm/permutation.hpp deleted file mode 100644 index 75388cc87..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/permutation.hpp +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_PERMUTATION_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_PERMUTATION_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function next_permutation -/// -/// range-based version of the next_permutation std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -/// \pre Compare is a model of the BinaryPredicateConcept -template -inline bool next_permutation(BidirectionalRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::next_permutation(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline bool next_permutation(const BidirectionalRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::next_permutation(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline bool next_permutation(BidirectionalRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::next_permutation(boost::begin(rng), boost::end(rng), - comp_pred); -} - -/// \overload -template -inline bool next_permutation(const BidirectionalRange& rng, - Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::next_permutation(boost::begin(rng), boost::end(rng), - comp_pred); -} - -/// \brief template function prev_permutation -/// -/// range-based version of the prev_permutation std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -/// \pre Compare is a model of the BinaryPredicateConcept -template -inline bool prev_permutation(BidirectionalRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::prev_permutation(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline bool prev_permutation(const BidirectionalRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::prev_permutation(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline bool prev_permutation(BidirectionalRange& rng, Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::prev_permutation(boost::begin(rng), boost::end(rng), - comp_pred); -} - -/// \overload -template -inline bool prev_permutation(const BidirectionalRange& rng, - Compare comp_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::prev_permutation(boost::begin(rng), boost::end(rng), - comp_pred); -} - - } // namespace range - using range::next_permutation; - using range::prev_permutation; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/random_shuffle.hpp b/lib/3rdParty/boost/boost/range/algorithm/random_shuffle.hpp deleted file mode 100644 index 95bbd975c..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/random_shuffle.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_RANDOM_SHUFFLE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_RANDOM_SHUFFLE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function random_shuffle -/// -/// range-based version of the random_shuffle std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre Generator is a model of the UnaryFunctionConcept -template -inline RandomAccessRange& random_shuffle(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::random_shuffle(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& random_shuffle(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::random_shuffle(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& random_shuffle(RandomAccessRange& rng, Generator& gen) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::random_shuffle(boost::begin(rng), boost::end(rng), gen); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& random_shuffle(const RandomAccessRange& rng, Generator& gen) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::random_shuffle(boost::begin(rng), boost::end(rng), gen); - return rng; -} - - } // namespace range - using range::random_shuffle; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/remove.hpp b/lib/3rdParty/boost/boost/range/algorithm/remove.hpp deleted file mode 100644 index 699a7cdb6..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/remove.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REMOVE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REMOVE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function remove -/// -/// range-based version of the remove std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -remove(ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::remove(boost::begin(rng),boost::end(rng),val); -} - -/// \overload -template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -remove(const ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::remove(boost::begin(rng),boost::end(rng),val); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -remove(ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::remove(boost::begin(rng), boost::end(rng), val), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -remove(const ForwardRange& rng, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::remove(boost::begin(rng), boost::end(rng), val), - rng); -} - - } // namespace range - using range::remove; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/remove_copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/remove_copy.hpp deleted file mode 100644 index b65747ed9..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/remove_copy.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REMOVE_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REMOVE_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function remove_copy -/// -/// range-based version of the remove_copy std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre OutputIterator is a model of the OutputIteratorConcept -/// \pre Value is a model of the EqualityComparableConcept -/// \pre Objects of type Value can be compared for equality with objects of -/// InputIterator's value type. -template< class SinglePassRange, class OutputIterator, class Value > -inline OutputIterator -remove_copy(const SinglePassRange& rng, OutputIterator out_it, const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::remove_copy(boost::begin(rng), boost::end(rng), out_it, val); -} - - } // namespace range - using range::remove_copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/remove_copy_if.hpp b/lib/3rdParty/boost/boost/range/algorithm/remove_copy_if.hpp deleted file mode 100644 index 8d9c37bef..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/remove_copy_if.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REMOVE_COPY_IF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REMOVE_COPY_IF_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - /// \brief template function remove_copy_if - /// - /// range-based version of the remove_copy_if std algorithm - /// - /// \pre SinglePassRange is a model of the SinglePassRangeConcept - /// \pre OutputIterator is a model of the OutputIteratorConcept - /// \pre Predicate is a model of the PredicateConcept - /// \pre InputIterator's value type is convertible to Predicate's argument type - /// \pre out_it is not an iterator in the range rng - template< class SinglePassRange, class OutputIterator, class Predicate > - inline OutputIterator - remove_copy_if(const SinglePassRange& rng, OutputIterator out_it, Predicate pred) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::remove_copy_if(boost::begin(rng), boost::end(rng), out_it, pred); - } -} - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/remove_if.hpp b/lib/3rdParty/boost/boost/range/algorithm/remove_if.hpp deleted file mode 100644 index a965df0d6..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/remove_if.hpp +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REMOVE_IF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REMOVE_IF_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function remove_if -/// -/// range-based version of the remove_if std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre UnaryPredicate is a model of the UnaryPredicateConcept -template< class ForwardRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME boost::range_iterator::type -remove_if(ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::remove_if(boost::begin(rng), boost::end(rng), pred); -} - -/// \overload -template< class ForwardRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME boost::range_iterator::type -remove_if(const ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::remove_if(boost::begin(rng), boost::end(rng), pred); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class ForwardRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -remove_if(ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::remove_if(boost::begin(rng), boost::end(rng), pred), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -remove_if(const ForwardRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return::pack( - std::remove_if(boost::begin(rng), boost::end(rng), pred), - rng); -} - - } // namespace range - using range::remove_if; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/replace.hpp b/lib/3rdParty/boost/boost/range/algorithm/replace.hpp deleted file mode 100644 index 44d3e4ca3..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/replace.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REPLACE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REPLACE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function replace -/// -/// range-based version of the replace std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template< class ForwardRange, class Value > -inline ForwardRange& -replace(ForwardRange& rng, const Value& what, - const Value& with_what) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::replace(boost::begin(rng), boost::end(rng), what, with_what); - return rng; -} - -/// \overload -template< class ForwardRange, class Value > -inline const ForwardRange& -replace(const ForwardRange& rng, const Value& what, - const Value& with_what) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::replace(boost::begin(rng), boost::end(rng), what, with_what); - return rng; -} - - } // namespace range - using range::replace; -} // namespace boost; - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/replace_copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/replace_copy.hpp deleted file mode 100644 index 0c02005a1..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/replace_copy.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REPLACE_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REPLACE_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function replace_copy -/// -/// range-based version of the replace_copy std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template< class ForwardRange, class OutputIterator, class Value > -inline OutputIterator -replace_copy(const ForwardRange& rng, OutputIterator out_it, const Value& what, - const Value& with_what) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::replace_copy(boost::begin(rng), boost::end(rng), out_it, - what, with_what); -} - - } // namespace range - using range::replace_copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/replace_copy_if.hpp b/lib/3rdParty/boost/boost/range/algorithm/replace_copy_if.hpp deleted file mode 100644 index d31315120..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/replace_copy_if.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REPLACE_COPY_IF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REPLACE_COPY_IF_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function replace_copy_if -/// -/// range-based version of the replace_copy_if std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre Predicate is a model of the PredicateConcept -/// \pre Value is convertible to Predicate's argument type -/// \pre Value is Assignable -/// \pre Value is convertible to a type in OutputIterator's set of value types. -template< class ForwardRange, class OutputIterator, class Predicate, class Value > -inline OutputIterator -replace_copy_if(const ForwardRange& rng, OutputIterator out_it, Predicate pred, - const Value& with_what) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::replace_copy_if(boost::begin(rng), boost::end(rng), out_it, - pred, with_what); -} - - } // namespace range - using range::replace_copy_if; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/replace_if.hpp b/lib/3rdParty/boost/boost/range/algorithm/replace_if.hpp deleted file mode 100644 index 93d5a1f7f..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/replace_if.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REPLACE_IF_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REPLACE_IF_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function replace_if -/// -/// range-based version of the replace_if std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre UnaryPredicate is a model of the UnaryPredicateConcept -template< class ForwardRange, class UnaryPredicate, class Value > -inline ForwardRange& - replace_if(ForwardRange& rng, UnaryPredicate pred, - const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::replace_if(boost::begin(rng), boost::end(rng), pred, val); - return rng; -} - -/// \overload -template< class ForwardRange, class UnaryPredicate, class Value > -inline const ForwardRange& - replace_if(const ForwardRange& rng, UnaryPredicate pred, - const Value& val) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::replace_if(boost::begin(rng), boost::end(rng), pred, val); - return rng; -} - - } // namespace range - using range::replace_if; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/reverse.hpp b/lib/3rdParty/boost/boost/range/algorithm/reverse.hpp deleted file mode 100644 index 20a7eb182..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/reverse.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REVERSE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REVERSE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function reverse -/// -/// range-based version of the reverse std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -template -inline BidirectionalRange& reverse(BidirectionalRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - std::reverse(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const BidirectionalRange& reverse(const BidirectionalRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - std::reverse(boost::begin(rng), boost::end(rng)); - return rng; -} - - } // namespace range - using range::reverse; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/reverse_copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/reverse_copy.hpp deleted file mode 100644 index f1990ada1..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/reverse_copy.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_REVERSE_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_REVERSE_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function reverse_copy -/// -/// range-based version of the reverse_copy std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -template -inline OutputIterator reverse_copy(const BidirectionalRange& rng, OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::reverse_copy(boost::begin(rng), boost::end(rng), out); -} - - } // namespace range - using range::reverse_copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/rotate.hpp b/lib/3rdParty/boost/boost/range/algorithm/rotate.hpp deleted file mode 100644 index ca4b22391..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/rotate.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_ROTATE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_ROTATE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function rotate -/// -/// range-based version of the rotate std algorithm -/// -/// \pre Rng meets the requirements for a Forward range -template -inline ForwardRange& rotate(ForwardRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::rotate(boost::begin(rng), middle, boost::end(rng)); - return rng; -} - -/// \overload -template -inline const ForwardRange& rotate(const ForwardRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - std::rotate(boost::begin(rng), middle, boost::end(rng)); - return rng; -} - - } // namespace range - using range::rotate; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/rotate_copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/rotate_copy.hpp deleted file mode 100644 index 0409ac527..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/rotate_copy.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_ROTATE_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_ROTATE_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - - /// \brief template function rotate - /// - /// range-based version of the rotate std algorithm - /// - /// \pre Rng meets the requirements for a Forward range - template - inline OutputIterator rotate_copy( - const ForwardRange& rng, - BOOST_DEDUCED_TYPENAME range_iterator::type middle, - OutputIterator target - ) - { - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::rotate_copy(boost::begin(rng), middle, boost::end(rng), target); - } - - } // namespace range - using range::rotate_copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/search.hpp b/lib/3rdParty/boost/boost/range/algorithm/search.hpp deleted file mode 100644 index 28cc6e621..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/search.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_SEARCH_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_SEARCH_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function search -/// -/// range-based version of the search std algorithm -/// -/// \pre ForwardRange1 is a model of the ForwardRangeConcept -/// \pre ForwardRange2 is a model of the ForwardRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template< class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search(ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::search(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - -/// \overload -template< class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search(const ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::search(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)); -} - -/// \overload -template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::search(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - -/// \overload -template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::search(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_return::type -search(ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::search(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)), - rng1); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_return::type -search(const ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::search(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)), - rng1); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -search(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::search(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred), - rng1); -} - -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -search(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::search(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred), - rng1); -} - - } // namespace range - using range::search; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/search_n.hpp b/lib/3rdParty/boost/boost/range/algorithm/search_n.hpp deleted file mode 100644 index ccfb27ae5..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/search_n.hpp +++ /dev/null @@ -1,360 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_SEARCH_N_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_SEARCH_N_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -namespace range_detail -{ - // Rationale: search_n is implemented rather than delegate to - // the standard library implementation because some standard - // library implementations are broken eg. MSVC. - - // search_n forward iterator version - template - inline ForwardIterator - search_n_impl(ForwardIterator first, ForwardIterator last, Integer count, - const Value& value, std::forward_iterator_tag) - { - first = std::find(first, last, value); - while (first != last) - { - typename std::iterator_traits::difference_type n = count; - ForwardIterator i = first; - ++i; - while (i != last && n != 1 && *i==value) - { - ++i; - --n; - } - if (n == 1) - return first; - if (i == last) - return last; - first = std::find(++i, last, value); - } - return last; - } - - // search_n random-access iterator version - template - inline RandomAccessIterator - search_n_impl(RandomAccessIterator first, RandomAccessIterator last, - Integer count, const Value& value, - std::random_access_iterator_tag) - { - typedef typename std::iterator_traits::difference_type difference_t; - - difference_t tail_size = last - first; - const difference_t pattern_size = count; - - if (tail_size < pattern_size) - return last; - - const difference_t skip_offset = pattern_size - 1; - RandomAccessIterator look_ahead = first + skip_offset; - tail_size -= pattern_size; - - while (1) - { - // look_ahead here is pointing to the last element of the - // next possible match - while (!(*look_ahead == value)) // skip loop... - { - if (tail_size < pattern_size) - return last; // no match - look_ahead += pattern_size; - tail_size -= pattern_size; - } - difference_t remainder = skip_offset; - for (RandomAccessIterator back_track = look_ahead - 1; - *back_track == value; --back_track) - { - if (--remainder == 0) - { - return look_ahead - skip_offset; // matched - } - } - if (remainder > tail_size) - return last; // no match - look_ahead += remainder; - tail_size -= remainder; - } - - return last; - } - - // search_n for forward iterators using a binary predicate - // to determine a match - template - inline ForwardIterator - search_n_pred_impl(ForwardIterator first, ForwardIterator last, - Integer count, const Value& value, - BinaryPredicate pred, std::forward_iterator_tag) - { - typedef typename std::iterator_traits::difference_type difference_t; - - while (first != last && !static_cast(pred(*first, value))) - ++first; - - while (first != last) - { - difference_t n = count; - ForwardIterator i = first; - ++i; - while (i != last && n != 1 && static_cast(pred(*i, value))) - { - ++i; - --n; - } - if (n == 1) - return first; - if (i == last) - return last; - first = ++i; - while (first != last && !static_cast(pred(*first, value))) - ++first; - } - return last; - } - - // search_n for random-access iterators using a binary predicate - // to determine a match - template - inline RandomAccessIterator - search_n_pred_impl(RandomAccessIterator first, RandomAccessIterator last, - Integer count, const Value& value, - BinaryPredicate pred, std::random_access_iterator_tag) - { - typedef typename std::iterator_traits::difference_type difference_t; - - difference_t tail_size = last - first; - const difference_t pattern_size = count; - - if (tail_size < pattern_size) - return last; - - const difference_t skip_offset = pattern_size - 1; - RandomAccessIterator look_ahead = first + skip_offset; - tail_size -= pattern_size; - - while (1) - { - // look_ahead points to the last element of the next - // possible match - while (!static_cast(pred(*look_ahead, value))) // skip loop - { - if (tail_size < pattern_size) - return last; // no match - look_ahead += pattern_size; - tail_size -= pattern_size; - } - difference_t remainder = skip_offset; - for (RandomAccessIterator back_track = look_ahead - 1; - pred(*back_track, value); --back_track) - { - if (--remainder == 0) - return look_ahead -= skip_offset; // success - } - if (remainder > tail_size) - { - return last; // no match - } - look_ahead += remainder; - tail_size -= remainder; - } - } - - template - inline ForwardIterator - search_n_impl(ForwardIterator first, ForwardIterator last, - Integer count, const Value& value) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardIteratorConcept)); - BOOST_RANGE_CONCEPT_ASSERT((EqualityComparableConcept)); - BOOST_RANGE_CONCEPT_ASSERT((EqualityComparableConcept::value_type>)); - //BOOST_RANGE_CONCEPT_ASSERT((EqualityComparableConcept2::value_type, Value>)); - - typedef typename std::iterator_traits::iterator_category cat_t; - - if (count <= 0) - return first; - if (count == 1) - return std::find(first, last, value); - return range_detail::search_n_impl(first, last, count, value, cat_t()); - } - - template - inline ForwardIterator - search_n_pred_impl(ForwardIterator first, ForwardIterator last, - Integer count, const Value& value, - BinaryPredicate pred) - { - BOOST_RANGE_CONCEPT_ASSERT((ForwardIteratorConcept)); - BOOST_RANGE_CONCEPT_ASSERT(( - BinaryPredicateConcept< - BinaryPredicate, - typename std::iterator_traits::value_type, - Value> - )); - - typedef typename std::iterator_traits::iterator_category cat_t; - - if (count <= 0) - return first; - if (count == 1) - { - while (first != last && !static_cast(pred(*first, value))) - ++first; - return first; - } - return range_detail::search_n_pred_impl(first, last, count, - value, pred, cat_t()); - } -} // namespace range_detail - -namespace range { - -/// \brief template function search -/// -/// range-based version of the search std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -/// \pre Integer is an integral type -/// \pre Value is a model of the EqualityComparableConcept -/// \pre ForwardRange's value type is a model of the EqualityComparableConcept -/// \pre Object's of ForwardRange's value type can be compared for equality with Objects of type Value -template< class ForwardRange, class Integer, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search_n(ForwardRange& rng, Integer count, const Value& value) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_detail::search_n_impl(boost::begin(rng),boost::end(rng), count, value); -} - -/// \overload -template< class ForwardRange, class Integer, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search_n(const ForwardRange& rng, Integer count, const Value& value) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_detail::search_n_impl(boost::begin(rng), boost::end(rng), count, value); -} - -/// \overload -template< class ForwardRange, class Integer, class Value, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search_n(ForwardRange& rng, Integer count, const Value& value, - BinaryPredicate binary_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, const Value&>)); - return range_detail::search_n_pred_impl(boost::begin(rng), boost::end(rng), - count, value, binary_pred); -} - -/// \overload -template< class ForwardRange, class Integer, class Value, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -search_n(const ForwardRange& rng, Integer count, const Value& value, - BinaryPredicate binary_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, const Value&>)); - return range_detail::search_n_pred_impl(boost::begin(rng), boost::end(rng), - count, value, binary_pred); -} - -// range_return overloads - -/// \overload -template< range_return_value re, class ForwardRange, class Integer, - class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -search_n(ForwardRange& rng, Integer count, const Value& value) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_return:: - pack(range_detail::search_n_impl(boost::begin(rng),boost::end(rng), - count, value), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Integer, - class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -search_n(const ForwardRange& rng, Integer count, const Value& value) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - return range_return:: - pack(range_detail::search_n_impl(boost::begin(rng), boost::end(rng), - count, value), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Integer, - class Value, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -search_n(ForwardRange& rng, Integer count, const Value& value, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, - const Value&>)); - return range_return:: - pack(range_detail::search_n_pred_impl(boost::begin(rng), - boost::end(rng), - count, value, pred), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Integer, - class Value, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -search_n(const ForwardRange& rng, Integer count, const Value& value, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, - const Value&>)); - return range_return:: - pack(range_detail::search_n_pred_impl(boost::begin(rng), - boost::end(rng), - count, value, pred), - rng); -} - - } // namespace range - using range::search_n; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/set_algorithm.hpp b/lib/3rdParty/boost/boost/range/algorithm/set_algorithm.hpp deleted file mode 100644 index 82ef8ecc1..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/set_algorithm.hpp +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_SET_ALGORITHM_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_SET_ALGORITHM_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function includes -/// -/// range-based version of the includes std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline bool includes(const SinglePassRange1& rng1, - const SinglePassRange2& rng2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::includes(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - -/// \overload -template -inline bool includes(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::includes(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred); -} - -/// \brief template function set_union -/// -/// range-based version of the set_union std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline OutputIterator set_union(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_union(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out); -} - -/// \overload -template -inline OutputIterator set_union(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_union(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out, pred); -} - -/// \brief template function set_intersection -/// -/// range-based version of the set_intersection std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline OutputIterator set_intersection(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_intersection(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out); -} - -/// \overload -template -inline OutputIterator set_intersection(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_intersection(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), - out, pred); -} - -/// \brief template function set_difference -/// -/// range-based version of the set_difference std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline OutputIterator set_difference(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_difference(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out); -} - -/// \overload -template -inline OutputIterator set_difference(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_difference( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out, pred); -} - -/// \brief template function set_symmetric_difference -/// -/// range-based version of the set_symmetric_difference std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline OutputIterator -set_symmetric_difference(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_symmetric_difference(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out); -} - -/// \overload -template -inline OutputIterator -set_symmetric_difference(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out, - BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::set_symmetric_difference( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), out, pred); -} - - } // namespace range - using range::includes; - using range::set_union; - using range::set_intersection; - using range::set_difference; - using range::set_symmetric_difference; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/sort.hpp b/lib/3rdParty/boost/boost/range/algorithm/sort.hpp deleted file mode 100644 index 45eecde7f..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/sort.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_SORT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_SORT_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function sort -/// -/// range-based version of the sort std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& sort(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& sort(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& sort(RandomAccessRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort(boost::begin(rng), boost::end(rng), pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& sort(const RandomAccessRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::sort(boost::begin(rng), boost::end(rng), pred); - return rng; -} - - } // namespace range - using range::sort; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/stable_partition.hpp b/lib/3rdParty/boost/boost/range/algorithm/stable_partition.hpp deleted file mode 100644 index 24febfc88..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/stable_partition.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_STABLE_PARTITION_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_STABLE_PARTITION_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function stable_partition -/// -/// range-based version of the stable_partition std algorithm -/// -/// \pre BidirectionalRange is a model of the BidirectionalRangeConcept -/// \pre UnaryPredicate is a model of the UnaryPredicateConcept -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -stable_partition(BidirectionalRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::stable_partition(boost::begin(rng), boost::end(rng), pred); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_iterator::type -stable_partition(const BidirectionalRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return std::stable_partition(boost::begin(rng),boost::end(rng),pred); -} - -// range_return overloads -template -inline BOOST_DEDUCED_TYPENAME range_return::type -stable_partition(BidirectionalRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return range_return::pack( - std::stable_partition(boost::begin(rng), boost::end(rng), pred), - rng); -} - -/// \overload -template -inline BOOST_DEDUCED_TYPENAME range_return::type -stable_partition(const BidirectionalRange& rng, UnaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalRangeConcept )); - return range_return::pack( - std::stable_partition(boost::begin(rng),boost::end(rng),pred), - rng); -} - - } // namespace range - using range::stable_partition; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/stable_sort.hpp b/lib/3rdParty/boost/boost/range/algorithm/stable_sort.hpp deleted file mode 100644 index d18da4de0..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/stable_sort.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_STABLE_SORT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_STABLE_SORT_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function stable_sort -/// -/// range-based version of the stable_sort std algorithm -/// -/// \pre RandomAccessRange is a model of the RandomAccessRangeConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template -inline RandomAccessRange& stable_sort(RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::stable_sort(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& stable_sort(const RandomAccessRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::stable_sort(boost::begin(rng), boost::end(rng)); - return rng; -} - -/// \overload -template -inline RandomAccessRange& stable_sort(RandomAccessRange& rng, BinaryPredicate sort_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::stable_sort(boost::begin(rng), boost::end(rng), sort_pred); - return rng; -} - -/// \overload -template -inline const RandomAccessRange& stable_sort(const RandomAccessRange& rng, BinaryPredicate sort_pred) -{ - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessRangeConcept )); - std::stable_sort(boost::begin(rng), boost::end(rng), sort_pred); - return rng; -} - - } // namespace range - using range::stable_sort; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/swap_ranges.hpp b/lib/3rdParty/boost/boost/range/algorithm/swap_ranges.hpp deleted file mode 100644 index 52b0162e0..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/swap_ranges.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_SWAP_RANGES_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_SWAP_RANGES_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template - void swap_ranges_impl(Iterator1 it1, Iterator1 last1, - Iterator2 it2, Iterator2 last2, - single_pass_traversal_tag, - single_pass_traversal_tag) - { - ignore_unused_variable_warning(last2); - for (; it1 != last1; ++it1, ++it2) - { - BOOST_ASSERT( it2 != last2 ); - std::iter_swap(it1, it2); - } - } - - template - void swap_ranges_impl(Iterator1 it1, Iterator1 last1, - Iterator2 it2, Iterator2 last2, - random_access_traversal_tag, - random_access_traversal_tag) - { - ignore_unused_variable_warning(last2); - BOOST_ASSERT( last2 - it2 >= last1 - it1 ); - std::swap_ranges(it1, last1, it2); - } - - template - void swap_ranges_impl(Iterator1 first1, Iterator1 last1, - Iterator2 first2, Iterator2 last2) - { - swap_ranges_impl(first1, last1, first2, last2, - BOOST_DEDUCED_TYPENAME iterator_traversal::type(), - BOOST_DEDUCED_TYPENAME iterator_traversal::type()); - } - } // namespace range_detail - - namespace range - { - -/// \brief template function swap_ranges -/// -/// range-based version of the swap_ranges std algorithm -/// -/// \pre SinglePassRange1 is a model of the SinglePassRangeConcept -/// \pre SinglePassRange2 is a model of the SinglePassRangeConcept -template< class SinglePassRange1, class SinglePassRange2 > -inline SinglePassRange2& -swap_ranges(SinglePassRange1& range1, SinglePassRange2& range2) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - boost::range_detail::swap_ranges_impl( - boost::begin(range1), boost::end(range1), - boost::begin(range2), boost::end(range2)); - - return range2; -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2 > -inline SinglePassRange2& -swap_ranges(const SinglePassRange1& range1, SinglePassRange2& range2) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - boost::range_detail::swap_ranges_impl( - boost::begin(range1), boost::end(range1), - boost::begin(range2), boost::end(range2)); - - return range2; -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2 > -inline const SinglePassRange2& -swap_ranges(SinglePassRange1& range1, const SinglePassRange2& range2) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - boost::range_detail::swap_ranges_impl( - boost::begin(range1), boost::end(range1), - boost::begin(range2), boost::end(range2)); - - return range2; -} - -/// \overload -template< class SinglePassRange1, class SinglePassRange2 > -inline const SinglePassRange2& -swap_ranges(const SinglePassRange1& range1, const SinglePassRange2& range2) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - - boost::range_detail::swap_ranges_impl( - boost::begin(range1), boost::end(range1), - boost::begin(range2), boost::end(range2)); - - return range2; -} - - } // namespace range - using range::swap_ranges; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/transform.hpp b/lib/3rdParty/boost/boost/range/algorithm/transform.hpp deleted file mode 100644 index ade147a94..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/transform.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_TRANSFORM_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_TRANSFORM_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - - /// \brief template function transform - /// - /// range-based version of the transform std algorithm - /// - /// \pre SinglePassRange1 is a model of the SinglePassRangeConcept - /// \pre SinglePassRange2 is a model of the SinglePassRangeConcept - /// \pre OutputIterator is a model of the OutputIteratorConcept - /// \pre UnaryOperation is a model of the UnaryFunctionConcept - /// \pre BinaryOperation is a model of the BinaryFunctionConcept - template< class SinglePassRange1, - class OutputIterator, - class UnaryOperation > - inline OutputIterator - transform(const SinglePassRange1& rng, - OutputIterator out, - UnaryOperation fun) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::transform(boost::begin(rng),boost::end(rng),out,fun); - } - - } // namespace range - - namespace range_detail - { - template< class SinglePassTraversalReadableIterator1, - class SinglePassTraversalReadableIterator2, - class OutputIterator, - class BinaryFunction > - inline OutputIterator - transform_impl(SinglePassTraversalReadableIterator1 first1, - SinglePassTraversalReadableIterator1 last1, - SinglePassTraversalReadableIterator2 first2, - SinglePassTraversalReadableIterator2 last2, - OutputIterator out, - BinaryFunction fn) - { - for (; first1 != last1 && first2 != last2; ++first1, ++first2) - { - *out = fn(*first1, *first2); - ++out; - } - return out; - } - } - - namespace range - { - - /// \overload - template< class SinglePassRange1, - class SinglePassRange2, - class OutputIterator, - class BinaryOperation > - inline OutputIterator - transform(const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - OutputIterator out, - BinaryOperation fun) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return boost::range_detail::transform_impl( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), - out, fun); - } - - } // namespace range - using range::transform; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/unique.hpp b/lib/3rdParty/boost/boost/range/algorithm/unique.hpp deleted file mode 100644 index 8017a837c..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/unique.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_UNIQUE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_UNIQUE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function unique -/// -/// range-based version of the unique std algorithm -/// -/// \pre Rng meets the requirements for a Forward range -template< range_return_value re, class ForwardRange > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( ForwardRange& rng ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack( std::unique( boost::begin(rng), - boost::end(rng)), rng ); -} - -/// \overload -template< range_return_value re, class ForwardRange > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( const ForwardRange& rng ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack( std::unique( boost::begin(rng), - boost::end(rng)), rng ); -} -/// \overload -template< range_return_value re, class ForwardRange, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( ForwardRange& rng, BinaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::unique(boost::begin(rng), boost::end(rng), pred), - rng); -} -/// \overload -template< range_return_value re, class ForwardRange, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( const ForwardRange& rng, BinaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::unique(boost::begin(rng), boost::end(rng), pred), - rng); -} - -/// \overload -template< class ForwardRange > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( ForwardRange& rng ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return ::boost::range::unique(rng); -} -/// \overload -template< class ForwardRange > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( const ForwardRange& rng ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return ::boost::range::unique(rng); -} -/// \overload -template< class ForwardRange, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( ForwardRange& rng, BinaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return ::boost::range::unique(rng, pred); -} -/// \overload -template< class ForwardRange, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -unique( const ForwardRange& rng, BinaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return ::boost::range::unique(rng, pred); -} - - } // namespace range - using range::unique; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/unique_copy.hpp b/lib/3rdParty/boost/boost/range/algorithm/unique_copy.hpp deleted file mode 100644 index 0682d747e..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/unique_copy.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_UNIQUE_COPY_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_UNIQUE_COPY_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function unique_copy -/// -/// range-based version of the unique_copy std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre OutputIterator is a model of the OutputIteratorConcept -/// \pre BinaryPredicate is a model of the BinaryPredicateConcept -template< class SinglePassRange, class OutputIterator > -inline OutputIterator -unique_copy( const SinglePassRange& rng, OutputIterator out_it ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::unique_copy(boost::begin(rng), boost::end(rng), out_it); -} -/// \overload -template< class SinglePassRange, class OutputIterator, class BinaryPredicate > -inline OutputIterator -unique_copy( const SinglePassRange& rng, OutputIterator out_it, - BinaryPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::unique_copy(boost::begin(rng), boost::end(rng), out_it, pred); -} - - } // namespace range - using range::unique_copy; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm/upper_bound.hpp b/lib/3rdParty/boost/boost/range/algorithm/upper_bound.hpp deleted file mode 100644 index c8acbc66a..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm/upper_bound.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_UPPER_BOUND_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_UPPER_BOUND_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function upper_bound -/// -/// range-based version of the upper_bound std algorithm -/// -/// \pre ForwardRange is a model of the ForwardRangeConcept -template< class ForwardRange, class Value > -inline -BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -upper_bound( ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::upper_bound(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template< class ForwardRange, class Value > -BOOST_DEDUCED_TYPENAME range_iterator::type -upper_bound( const ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::upper_bound(boost::begin(rng), boost::end(rng), val); -} - -/// \overload -template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_iterator::type ->::type -upper_bound( ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::upper_bound(boost::begin(rng), boost::end(rng), val, pred); -} - -/// \overload -template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -upper_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::upper_bound(boost::begin(rng), boost::end(rng), val, pred); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -upper_bound( ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::upper_bound(boost::begin(rng), boost::end(rng), val), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -upper_bound( const ForwardRange& rng, Value val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::upper_bound(boost::begin(rng), boost::end(rng), val), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value, - class SortPredicate > -inline BOOST_DEDUCED_TYPENAME disable_if< - is_const, - BOOST_DEDUCED_TYPENAME range_return::type ->::type -upper_bound( ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::upper_bound(boost::begin(rng), boost::end(rng), val, pred), - rng); -} - -/// \overload -template< range_return_value re, class ForwardRange, class Value, - class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -upper_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::upper_bound(boost::begin(rng), boost::end(rng), val, pred), - rng); -} - - } // namespace range - using range::upper_bound; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext.hpp deleted file mode 100644 index 783d38a6f..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2007. 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) -// -// Copyright Thorsten Ottosen 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_HPP -#define BOOST_RANGE_ALGORITHM_EXT_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/copy_n.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/copy_n.hpp deleted file mode 100644 index f8554417c..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/copy_n.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_COPY_N_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_COPY_N_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function copy -/// -/// range-based version of the copy std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -/// \pre OutputIterator is a model of the OutputIteratorConcept -/// \pre 0 <= n <= distance(rng) -template< class SinglePassRange, class Size, class OutputIterator > -inline OutputIterator copy_n(const SinglePassRange& rng, Size n, OutputIterator out) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_ASSERT( n <= static_cast(::boost::distance(rng)) ); - BOOST_ASSERT( n >= static_cast(0) ); - - BOOST_DEDUCED_TYPENAME range_iterator::type source = ::boost::begin(rng); - - for (Size i = 0; i < n; ++i, ++out, ++source) - *out = *source; - - return out; -} - - } // namespace range - using ::boost::range::copy_n; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/erase.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/erase.hpp deleted file mode 100644 index 107d32b56..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/erase.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_ERASE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_ERASE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -template< class Container > -inline Container& erase( Container& on, - iterator_range to_erase ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - on.erase( boost::begin(to_erase), boost::end(to_erase) ); - return on; -} - -template< class Container, class T > -inline Container& remove_erase( Container& on, const T& val ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - on.erase( - std::remove(boost::begin(on), boost::end(on), val), - boost::end(on)); - return on; -} - -template< class Container, class Pred > -inline Container& remove_erase_if( Container& on, Pred pred ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - on.erase( - std::remove_if(boost::begin(on), boost::end(on), pred), - boost::end(on)); - return on; -} - - } // namespace range - using range::erase; - using range::remove_erase; - using range::remove_erase_if; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/for_each.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/for_each.hpp deleted file mode 100644 index a470e2b77..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/for_each.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_FOR_EACH_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_FOR_EACH_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template - inline Fn2 for_each_impl(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - Fn2 fn) - { - for (; first1 != last1 && first2 != last2; ++first1, ++first2) - { - fn(*first1, *first2); - } - return fn; - } - } - - namespace range - { - template - inline Fn2 for_each(const SinglePassRange1& rng1, const SinglePassRange2& rng2, Fn2 fn) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::for_each_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), fn); - } - - template - inline Fn2 for_each(const SinglePassRange1& rng1, SinglePassRange2& rng2, Fn2 fn) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::for_each_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), fn); - } - - template - inline Fn2 for_each(SinglePassRange1& rng1, const SinglePassRange2& rng2, Fn2 fn) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::for_each_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), fn); - } - - template - inline Fn2 for_each(SinglePassRange1& rng1, SinglePassRange2& rng2, Fn2 fn) - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return ::boost::range_detail::for_each_impl( - ::boost::begin(rng1), ::boost::end(rng1), - ::boost::begin(rng2), ::boost::end(rng2), fn); - } - } // namespace range - using range::for_each; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/insert.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/insert.hpp deleted file mode 100644 index c0c04c875..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/insert.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_INSERT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_INSERT_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -template< class Container, class Range > -inline Container& insert( Container& on, - BOOST_DEDUCED_TYPENAME Container::iterator before, - const Range& from ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - on.insert( before, boost::begin(from), boost::end(from) ); - return on; -} - -template< class Container, class Range > -inline Container& insert( Container& on, const Range& from ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - on.insert(boost::begin(from), boost::end(from)); -} - - } // namespace range - using range::insert; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/iota.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/iota.hpp deleted file mode 100644 index f7af44621..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/iota.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_IOTA_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_IOTA_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -template< class ForwardRange, class Value > -inline ForwardRange& iota( ForwardRange& rng, Value x ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator_t; - - iterator_t last_target = ::boost::end(rng); - for (iterator_t target = ::boost::begin(rng); target != last_target; ++target, ++x) - *target = x; - - return rng; -} - -template< class ForwardRange, class Value > -inline const ForwardRange& iota( const ForwardRange& rng, Value x ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator_t; - - iterator_t last_target = ::boost::end(rng); - for (iterator_t target = ::boost::begin(rng); target != last_target; ++target, ++x) - *target = x; - - return rng; -} - - } // namespace range - using range::iota; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/is_sorted.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/is_sorted.hpp deleted file mode 100644 index 3d0072921..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/is_sorted.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright Bryce Lelbach 2010 -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_IS_SORTED_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_IS_SORTED_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -/// \brief template function is_sorted -/// -/// range-based version of the is_sorted std algorithm -/// -/// \pre SinglePassRange is a model of the SinglePassRangeConcept -template -inline bool is_sorted(const SinglePassRange& rng) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((LessThanComparableConcept::type>)); - return ::boost::detail::is_sorted(boost::begin(rng), boost::end(rng)); -} - -/// \overload -template -inline bool is_sorted(const SinglePassRange& rng, BinaryPredicate pred) -{ - BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, - BOOST_DEDUCED_TYPENAME range_value::type>)); - return ::boost::detail::is_sorted(boost::begin(rng), boost::end(rng), pred); -} - - } // namespace range - -using range::is_sorted; - -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/overwrite.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/overwrite.hpp deleted file mode 100644 index f84f6eaca..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/overwrite.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_OVERWRITE_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_OVERWRITE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -template< class SinglePassRange1, class SinglePassRange2 > -inline void overwrite( const SinglePassRange1& from, SinglePassRange2& to ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - BOOST_DEDUCED_TYPENAME range_iterator::type - i = boost::begin(from), e = boost::end(from); - - BOOST_DEDUCED_TYPENAME range_iterator::type - out = boost::begin(to); - -#ifndef NDEBUG - BOOST_DEDUCED_TYPENAME range_iterator::type - last_out = boost::end(to); -#endif - - for( ; i != e; ++out, ++i ) - { -#ifndef NDEBUG - BOOST_ASSERT( out != last_out - && "out of bounds in boost::overwrite()" ); -#endif - *out = *i; - } -} - -template< class SinglePassRange1, class SinglePassRange2 > -inline void overwrite( const SinglePassRange1& from, const SinglePassRange2& to ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - BOOST_DEDUCED_TYPENAME range_iterator::type - i = boost::begin(from), e = boost::end(from); - - BOOST_DEDUCED_TYPENAME range_iterator::type - out = boost::begin(to); - -#ifndef NDEBUG - BOOST_DEDUCED_TYPENAME range_iterator::type - last_out = boost::end(to); -#endif - - for( ; i != e; ++out, ++i ) - { -#ifndef NDEBUG - BOOST_ASSERT( out != last_out - && "out of bounds in boost::overwrite()" ); -#endif - *out = *i; - } -} - - } // namespace range - using range::overwrite; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/push_back.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/push_back.hpp deleted file mode 100644 index 6fb9b9bf4..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/push_back.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_PUSH_BACK_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_PUSH_BACK_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -template< class Container, class Range > -inline Container& push_back( Container& on, const Range& from ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_ASSERT_MSG(!range_detail::is_same_object(on, from), - "cannot copy from a container to itself"); - on.insert( on.end(), boost::begin(from), boost::end(from) ); - return on; -} - - } // namespace range - using range::push_back; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/algorithm_ext/push_front.hpp b/lib/3rdParty/boost/boost/range/algorithm_ext/push_front.hpp deleted file mode 100644 index e89309807..000000000 --- a/lib/3rdParty/boost/boost/range/algorithm_ext/push_front.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ALGORITHM_EXT_PUSH_FRONT_HPP_INCLUDED -#define BOOST_RANGE_ALGORITHM_EXT_PUSH_FRONT_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - -template< class Container, class Range > -inline Container& push_front( Container& on, const Range& from ) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_ASSERT_MSG(!range_detail::is_same_object(on, from), - "cannot copy from a container to itself"); - on.insert( on.begin(), boost::begin(from), boost::end(from) ); - return on; -} - - } // namespace range - using range::push_front; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/any_range.hpp b/lib/3rdParty/boost/boost/range/any_range.hpp deleted file mode 100644 index 1cb599624..000000000 --- a/lib/3rdParty/boost/boost/range/any_range.hpp +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright Neil Groves 2010. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ANY_RANGE_HPP_INCLUDED -#define BOOST_RANGE_ANY_RANGE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - // If T is use_default, return the result of Default, otherwise - // return T. - // - // This is an implementation artifact used to pick intelligent default - // values when the user specified boost::use_default as a template - // parameter. - template< - class T, - class Default - > - struct any_range_default_help - : mpl::eval_if< - is_same - , Default - , mpl::identity - > - { - }; - - template< - class WrappedRange - , class Value - , class Reference - > - struct any_range_value_type - { -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY - typedef typename any_range_default_help< - Value - , mpl::eval_if< - is_same - , range_value< - typename remove_const - ::type> - , remove_reference - > - >::type type; -# else - typedef typename any_range_default_help< - Value - , range_value< - typename remove_const - ::type> - >::type type; -# endif - }; - - template< - class Value - , class Traversal - , class Reference = Value& - , class Difference = std::ptrdiff_t - , class Buffer = use_default - > - class any_range - : public iterator_range< - any_iterator< - Value - , Traversal - , Reference - , Difference - , typename any_range_default_help< - Buffer - , mpl::identity - >::type - > - > - { - typedef iterator_range< - any_iterator< - Value - , Traversal - , Reference - , Difference - , typename any_range_default_help< - Buffer - , mpl::identity - >::type - > - > base_type; - - struct enabler {}; - struct disabler {}; - public: - any_range() - { - } - - any_range(const any_range& other) - : base_type(other) - { - } - - template - any_range(WrappedRange& wrapped_range) - : base_type(boost::begin(wrapped_range), - boost::end(wrapped_range)) - { - } - - template - any_range(const WrappedRange& wrapped_range) - : base_type(boost::begin(wrapped_range), - boost::end(wrapped_range)) - { - } - - template< - class OtherValue - , class OtherTraversal - , class OtherReference - , class OtherDifference - > - any_range(const any_range< - OtherValue - , OtherTraversal - , OtherReference - , OtherDifference - , Buffer - >& other) - : base_type(boost::begin(other), boost::end(other)) - { - } - - template - any_range(Iterator first, Iterator last) - : base_type(first, last) - { - } - }; - - template< - class WrappedRange - , class Value = use_default - , class Traversal = use_default - , class Reference = use_default - , class Difference = use_default - , class Buffer = use_default - > - struct any_range_type_generator - { - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - typedef any_range< - typename any_range_value_type< - WrappedRange - , Value - , typename any_range_default_help< - Reference - , range_reference - >::type - >::type - , typename any_range_default_help< - Traversal - , iterator_traversal< - typename range_iterator::type - > - >::type - , typename any_range_default_help< - Reference - , range_reference - >::type - , typename any_range_default_help< - Difference - , range_difference - >::type - , typename any_range_default_help< - Buffer - , mpl::identity - >::type - > type; - }; - } // namespace range_detail - - using range_detail::any_range; - using range_detail::any_range_type_generator; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/as_array.hpp b/lib/3rdParty/boost/boost/range/as_array.hpp deleted file mode 100644 index 69a158075..000000000 --- a/lib/3rdParty/boost/boost/range/as_array.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_AS_ARRAY_HPP -#define BOOST_RANGE_AS_ARRAY_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -namespace boost -{ - - template< class R > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - as_array( R& r ) - { - return boost::make_iterator_range( r ); - } - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< class Range > - inline boost::iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - as_array( const Range& r ) - { - return boost::make_iterator_range( r ); - } - -#endif - -} - -#endif - diff --git a/lib/3rdParty/boost/boost/range/as_literal.hpp b/lib/3rdParty/boost/boost/range/as_literal.hpp deleted file mode 100644 index 1c16e4a0f..000000000 --- a/lib/3rdParty/boost/boost/range/as_literal.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_AS_LITERAL_HPP -#define BOOST_RANGE_AS_LITERAL_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#include -#else - -#include -#include - -#include - -#include -#ifndef BOOST_NO_CWCHAR -#include -#endif - -namespace boost -{ - namespace range_detail - { - inline std::size_t length( const char* s ) - { - return strlen( s ); - } - -#ifndef BOOST_NO_CWCHAR - inline std::size_t length( const wchar_t* s ) - { - return wcslen( s ); - } -#endif - - // - // Remark: the compiler cannot choose between T* and T[sz] - // overloads, so we must put the T* internal to the - // unconstrained version. - // - - inline bool is_char_ptr( char* ) - { - return true; - } - - inline bool is_char_ptr( const char* ) - { - return true; - } - -#ifndef BOOST_NO_CWCHAR - inline bool is_char_ptr( wchar_t* ) - { - return true; - } - - inline bool is_char_ptr( const wchar_t* ) - { - return true; - } -#endif - - template< class T > - inline long is_char_ptr( const T& /* r */ ) - { - return 0L; - } - - template< class T > - inline iterator_range - make_range( T* const r, bool ) - { - return iterator_range( r, r + length(r) ); - } - - template< class T > - inline iterator_range::type> - make_range( T& r, long ) - { - return boost::make_iterator_range( r ); - } - - } - - template< class Range > - inline iterator_range::type> - as_literal( Range& r ) - { - return range_detail::make_range( r, range_detail::is_char_ptr(r) ); - } - - template< class Range > - inline iterator_range::type> - as_literal( const Range& r ) - { - return range_detail::make_range( r, range_detail::is_char_ptr(r) ); - } - - template< class Char, std::size_t sz > - inline iterator_range as_literal( Char (&arr)[sz] ) - { - return range_detail::make_range( arr, range_detail::is_char_ptr(arr) ); - } - - template< class Char, std::size_t sz > - inline iterator_range as_literal( const Char (&arr)[sz] ) - { - return range_detail::make_range( arr, range_detail::is_char_ptr(arr) ); - } -} - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -#endif diff --git a/lib/3rdParty/boost/boost/range/atl.hpp b/lib/3rdParty/boost/boost/range/atl.hpp deleted file mode 100644 index e6500e583..000000000 --- a/lib/3rdParty/boost/boost/range/atl.hpp +++ /dev/null @@ -1,724 +0,0 @@ -#ifndef BOOST_RANGE_ATL_HPP -#define BOOST_RANGE_ATL_HPP - - - - -// Boost.Range ATL Extension -// -// Copyright Shunsuke Sogame 2005-2006. -// 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) - - - - -// config -// - - -#include // _ATL_VER - - -#if !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - #if (_ATL_VER < 0x0700) - #define BOOST_RANGE_ATL_NO_COLLECTIONS - #endif -#endif - - -#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - #if (_ATL_VER < 0x0700) // dubious - #define BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX - #endif -#endif - - -// forward declarations -// - - -#include // IID - - -namespace ATL { - - -#if !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - - - // arrays - // - template< class E, class ETraits > - class CAtlArray; - - template< class E > - class CAutoPtrArray; - - template< class I, const IID *piid > - class CInterfaceArray; - - - // lists - // - template< class E, class ETraits > - class CAtlList; - - template< class E > - class CAutoPtrList; - - template< class E, class Allocator > - class CHeapPtrList; - - template< class I, const IID *piid > - class CInterfaceList; - - - // maps - // - template< class K, class V, class KTraits, class VTraits > - class CAtlMap; - - template< class K, class V, class KTraits, class VTraits > - class CRBTree; - - template< class K, class V, class KTraits, class VTraits > - class CRBMap; - - template< class K, class V, class KTraits, class VTraits > - class CRBMultiMap; - - - // strings - // -#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLESTRING) - template< class BaseType, bool t_bMFCDLL > - class CSimpleStringT; -#else - template< class BaseType > - class CSimpleStringT; -#endif - - template< class BaseType, class StringTraits > - class CStringT; - - template< class StringType, int t_nChars > - class CFixedStringT; - - template< class BaseType, const int t_nSize > - class CStaticString; - - -#endif // !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - - - // simples - // -#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - - template< class T, class TEqual > - class CSimpleArray; - - template< class TKey, class TVal, class TEqual > - class CSimpleMap; - -#else - - template< class T > - class CSimpleArray; - - template< class T > - class CSimpleValArray; - - template< class TKey, class TVal > - class CSimpleMap; - -#endif // !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - - - // pointers - // - template< class E > - class CAutoPtr; - - template< class T > - class CComPtr; - - template< class T, const IID *piid > - class CComQIPtr; - - template< class E, class Allocator > - class CHeapPtr; - - template< class T > - class CAdapt; - - -} // namespace ATL - - - - -// indirect_iterator customizations -// - - -#include -#include - - -namespace boost { - - - template< class E > - struct pointee< ATL::CAutoPtr > : - mpl::identity - { }; - - template< class T > - struct pointee< ATL::CComPtr > : - mpl::identity - { }; - - template< class T, const IID *piid > - struct pointee< ATL::CComQIPtr > : - mpl::identity - { }; - - template< class E, class Allocator > - struct pointee< ATL::CHeapPtr > : - mpl::identity - { }; - - template< class T > - struct pointee< ATL::CAdapt > : - pointee - { }; - - -} // namespace boost - - - - -// extended customizations -// - - -#include -#include -#include -#include -#include // CComBSTR - - -namespace boost { namespace range_detail_microsoft { - - -#if !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - - - // arrays - // - - struct atl_array_functions : - array_functions - { - template< class Iterator, class X > - Iterator end(X& x) // redefine - { - return x.GetData() + x.GetCount(); // no 'GetSize()' - } - }; - - - template< class E, class ETraits > - struct customization< ATL::CAtlArray > : - atl_array_functions - { - template< class X > - struct meta - { - typedef E val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< class E > - struct customization< ATL::CAutoPtrArray > : - atl_array_functions - { - template< class X > - struct meta - { - // ATL::CAutoPtr/CHeapPtr is no assignable. - typedef ATL::CAutoPtr val_t; - typedef val_t *miter_t; - typedef val_t const *citer_t; - - typedef indirect_iterator mutable_iterator; - typedef indirect_iterator const_iterator; - }; - }; - - - template< class I, const IID *piid > - struct customization< ATL::CInterfaceArray > : - atl_array_functions - { - template< class X > - struct meta - { - typedef ATL::CComQIPtr val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< class E, class ETraits > - struct customization< ATL::CAtlList > : - list_functions - { - template< class X > - struct meta - { - typedef E val_t; - - typedef list_iterator mutable_iterator; - typedef list_iterator const_iterator; - }; - }; - - - struct indirected_list_functions - { - template< class Iterator, class X > - Iterator begin(X& x) - { - typedef typename Iterator::base_type base_t; // == list_iterator - return Iterator(base_t(x, x.GetHeadPosition())); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - typedef typename Iterator::base_type base_t; - return Iterator(base_t(x, POSITION(0))); - } - }; - - - template< class E > - struct customization< ATL::CAutoPtrList > : - indirected_list_functions - { - template< class X > - struct meta - { - typedef ATL::CAutoPtr val_t; - typedef list_iterator miter_t; - typedef list_iterator citer_t; - - typedef indirect_iterator mutable_iterator; - typedef indirect_iterator const_iterator; - }; - }; - - - template< class E, class Allocator > - struct customization< ATL::CHeapPtrList > : - indirected_list_functions - { - template< class X > - struct meta - { - typedef ATL::CHeapPtr val_t; - typedef list_iterator miter_t; - typedef list_iterator citer_t; - - typedef indirect_iterator mutable_iterator; - typedef indirect_iterator const_iterator; - }; - }; - - - template< class I, const IID *piid > - struct customization< ATL::CInterfaceList > : - list_functions - { - template< class X > - struct meta - { - typedef ATL::CComQIPtr val_t; - - typedef list_iterator mutable_iterator; - typedef list_iterator const_iterator; - }; - }; - - - // maps - // - - struct atl_rb_tree_tag - { }; - - template< > - struct customization< atl_rb_tree_tag > : - indirected_list_functions - { - template< class X > - struct meta - { - typedef typename X::CPair val_t; - - typedef list_iterator miter_t; - typedef list_iterator citer_t; - - typedef indirect_iterator mutable_iterator; - typedef indirect_iterator const_iterator; - }; - }; - - - template< class K, class V, class KTraits, class VTraits > - struct customization< ATL::CAtlMap > : - customization< atl_rb_tree_tag > - { - template< class Iterator, class X > - Iterator begin(X& x) // redefine - { - typedef typename Iterator::base_type base_t; // == list_iterator - return Iterator(base_t(x, x.GetStartPosition())); // no 'GetHeadPosition' - } - }; - - - // strings - // - - struct atl_string_tag - { }; - - template< > - struct customization< atl_string_tag > - { - template< class X > - struct meta - { - typedef typename X::PXSTR mutable_iterator; - typedef typename X::PCXSTR const_iterator; - }; - - template< class Iterator, class X > - typename mutable_::type begin(X& x) - { - return x.GetBuffer(0); - } - - template< class Iterator, class X > - Iterator begin(X const& x) - { - return x.GetString(); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return begin(x) + x.GetLength(); - } - }; - - - template< class BaseType, const int t_nSize > - struct customization< ATL::CStaticString > - { - template< class X > - struct meta - { - typedef BaseType const *mutable_iterator; - typedef mutable_iterator const_iterator; - }; - - template< class Iterator, class X > - Iterator begin(X const& x) - { - return x; - } - - template< class Iterator, class X > - Iterator end(X const& x) - { - return begin(x) + X::GetLength(); - } - }; - - -#endif // !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - - - template< > - struct customization< ATL::CComBSTR > - { - template< class X > - struct meta - { - typedef OLECHAR *mutable_iterator; - typedef OLECHAR const *const_iterator; - }; - - template< class Iterator, class X > - Iterator begin(X& x) - { - return x.operator BSTR(); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return begin(x) + x.Length(); - } - }; - - - // simples - // - -#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - template< class T, class TEqual > - struct customization< ATL::CSimpleArray > : -#else - template< class T > - struct customization< ATL::CSimpleArray > : -#endif - array_functions - { - template< class X > - struct meta - { - typedef T val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - -#if defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - - template< class T > - struct customization< ATL::CSimpleValArray > : - array_functions - { - template< class X > - struct meta - { - typedef T val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - -#endif // defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - - -#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - template< class TKey, class TVal, class TEqual > - struct customization< ATL::CSimpleMap > -#else - template< class TKey, class TVal > - struct customization< ATL::CSimpleMap > -#endif - { - template< class X > - struct meta - { - typedef TKey k_val_t; - typedef k_val_t *k_miter_t; - typedef k_val_t const *k_citer_t; - - typedef TVal v_val_t; - typedef v_val_t *v_miter_t; - typedef v_val_t const *v_citer_t; - - // Topic: - // 'std::pair' can't contain references - // because of reference to reference problem. - - typedef zip_iterator< tuple > mutable_iterator; - typedef zip_iterator< tuple > const_iterator; - }; - - template< class Iterator, class X > - Iterator begin(X& x) - { - return Iterator(boost::make_tuple(x.m_aKey, x.m_aVal)); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return Iterator(boost::make_tuple(x.m_aKey + x.GetSize(), x.m_aVal + x.GetSize())); - } - }; - - -} } // namespace boost::range_detail_microsoft - - - - -// range customizations -// - - -#if !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - - - // arrays - // - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CAtlArray, 2 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CAutoPtrArray, 1 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CInterfaceArray, (class)(const IID *) - ) - - - // lists - // - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CAtlList, 2 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CAutoPtrList, 1 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CHeapPtrList, 2 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CInterfaceList, (class)(const IID *) - ) - - - //maps - // - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CAtlMap, 4 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_rb_tree_tag, - (ATL, BOOST_PP_NIL), CRBTree, 4 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_rb_tree_tag, - (ATL, BOOST_PP_NIL), CRBMap, 4 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_rb_tree_tag, - (ATL, BOOST_PP_NIL), CRBMultiMap, 4 - ) - - - // strings - // - #if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLESTRING) - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_string_tag, - (ATL, BOOST_PP_NIL), CSimpleStringT, (class)(bool) - ) - #else - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_string_tag, - (ATL, BOOST_PP_NIL), CSimpleStringT, 1 - ) - #endif - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_string_tag, - (ATL, BOOST_PP_NIL), CStringT, 2 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::atl_string_tag, - (ATL, BOOST_PP_NIL), CFixedStringT, (class)(int) - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CStaticString, (class)(const int) - ) - - -#endif // !defined(BOOST_RANGE_ATL_NO_COLLECTIONS) - - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CComBSTR -) - - -// simples -// -#if !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CSimpleArray, 2 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CSimpleMap, 3 - ) - -#else - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CSimpleArray, 1 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CSimpleMap, 2 - ) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - (ATL, BOOST_PP_NIL), CSimpleValArray, 1 - ) - -#endif // !defined(BOOST_RANGE_ATL_HAS_OLD_CSIMPLE_XXX) - - - - -#endif diff --git a/lib/3rdParty/boost/boost/range/begin.hpp b/lib/3rdParty/boost/boost/range/begin.hpp deleted file mode 100644 index ba5a73b92..000000000 --- a/lib/3rdParty/boost/boost/range/begin.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_BEGIN_HPP -#define BOOST_RANGE_BEGIN_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#include -#else - -#include - -namespace boost -{ - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -namespace range_detail -{ -#endif - - ////////////////////////////////////////////////////////////////////// - // primary template - ////////////////////////////////////////////////////////////////////// - - template< typename C > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - range_begin( C& c ) - { - // - // If you get a compile-error here, it is most likely because - // you have not implemented range_begin() properly in - // the namespace of C - // - return c.begin(); - } - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - inline Iterator range_begin( const std::pair& p ) - { - return p.first; - } - - template< typename Iterator > - inline Iterator range_begin( std::pair& p ) - { - return p.first; - } - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - // - // May this be discarded? Or is it needed for bad compilers? - // - template< typename T, std::size_t sz > - inline const T* range_begin( const T (&a)[sz] ) - { - return a; - } - - template< typename T, std::size_t sz > - inline T* range_begin( T (&a)[sz] ) - { - return a; - } - - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -} // namespace 'range_detail' -#endif - -// Use a ADL namespace barrier to avoid ambiguity with other unqualified -// calls. This is particularly important with C++0x encouraging -// unqualified calls to begin/end. -namespace range_adl_barrier -{ - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - using namespace range_detail; -#endif - return range_begin( r ); -} - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( const T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - using namespace range_detail; -#endif - return range_begin( r ); -} - - } // namespace range_adl_barrier -} // namespace boost - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -namespace boost -{ - namespace range_adl_barrier - { - template< class T > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - const_begin( const T& r ) - { - return boost::range_adl_barrier::begin( r ); - } - } // namespace range_adl_barrier - - using namespace range_adl_barrier; -} // namespace boost - -#endif - diff --git a/lib/3rdParty/boost/boost/range/category.hpp b/lib/3rdParty/boost/boost/range/category.hpp deleted file mode 100644 index f5431adf2..000000000 --- a/lib/3rdParty/boost/boost/range/category.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_CATEGORY_HPP -#define BOOST_RANGE_CATEGORY_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - template< class T > - struct range_category : iterator_category< typename range_iterator::type > - { }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/combine.hpp b/lib/3rdParty/boost/boost/range/combine.hpp deleted file mode 100644 index 26cef9ad7..000000000 --- a/lib/3rdParty/boost/boost/range/combine.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright Neil Groves 2010. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_COMBINE_HPP -#define BOOST_RANGE_COMBINE_HPP - -#include -#include -#include - -namespace boost -{ - namespace range - { - -template -class combined_range - : public iterator_range > -{ - typedef iterator_range > base; -public: - combined_range(IterTuple first, IterTuple last) - : base(first, last) - { - } -}; - - } // namespace range -} // namespace boost - -#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) || \ - defined(BOOST_NO_CXX11_DECLTYPE) || \ - defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || \ - defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -# include -#else -# include -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/range/concepts.hpp b/lib/3rdParty/boost/boost/range/concepts.hpp deleted file mode 100644 index 3e612a35f..000000000 --- a/lib/3rdParty/boost/boost/range/concepts.hpp +++ /dev/null @@ -1,386 +0,0 @@ -// Boost.Range library concept checks -// -// Copyright Neil Groves 2009. 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) -// -// Copyright Daniel Walker 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_CONCEPTS_HPP -#define BOOST_RANGE_CONCEPTS_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -/*! - * \file - * \brief Concept checks for the Boost Range library. - * - * The structures in this file may be used in conjunction with the - * Boost Concept Check library to insure that the type of a function - * parameter is compatible with a range concept. If not, a meaningful - * compile time error is generated. Checks are provided for the range - * concepts related to iterator traversal categories. For example, the - * following line checks that the type T models the ForwardRange - * concept. - * - * \code - * BOOST_CONCEPT_ASSERT((ForwardRangeConcept)); - * \endcode - * - * A different concept check is required to ensure writeable value - * access. For example to check for a ForwardRange that can be written - * to, the following code is required. - * - * \code - * BOOST_CONCEPT_ASSERT((WriteableForwardRangeConcept)); - * \endcode - * - * \see http://www.boost.org/libs/range/doc/range.html for details - * about range concepts. - * \see http://www.boost.org/libs/iterator/doc/iterator_concepts.html - * for details about iterator concepts. - * \see http://www.boost.org/libs/concept_check/concept_check.htm for - * details about concept checks. - */ - -namespace boost { - - namespace range_detail { - -#ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT - -// List broken compiler versions here: -#ifndef __clang__ - #ifdef __GNUC__ - // GNUC 4.2 has strange issues correctly detecting compliance with the Concepts - // hence the least disruptive approach is to turn-off the concept checking for - // this version of the compiler. - #if __GNUC__ == 4 && __GNUC_MINOR__ == 2 - #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 - #endif - #endif - - #ifdef __GCCXML__ - // GCC XML, unsurprisingly, has the same issues - #if __GCCXML_GNUC__ == 4 && __GCCXML_GNUC_MINOR__ == 2 - #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 - #endif - #endif -#endif - - #ifdef __BORLANDC__ - #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 - #endif - - #ifdef __PATHCC__ - #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0 - #endif - -// Default to using the concept asserts unless we have defined it off -// during the search for black listed compilers. - #ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT - #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 1 - #endif - -#endif - -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - #define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x ) -#else - #define BOOST_RANGE_CONCEPT_ASSERT( x ) -#endif - - // Rationale for the inclusion of redefined iterator concept - // classes: - // - // The Range algorithms often do not require that the iterators are - // Assignable or default constructable, but the correct standard - // conformant iterators do require the iterators to be a model of the - // Assignable concept. - // Iterators that contains a functor that is not assignable therefore - // are not correct models of the standard iterator concepts, - // despite being adequate for most algorithms. An example of this - // use case is the combination of the boost::adaptors::filtered - // class with a boost::lambda::bind generated functor. - // Ultimately modeling the range concepts using composition - // with the Boost.Iterator concepts would render the library - // incompatible with many common Boost.Lambda expressions. - template - struct IncrementableIteratorConcept : CopyConstructible - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - typedef BOOST_DEDUCED_TYPENAME iterator_traversal::type traversal_category; - - BOOST_RANGE_CONCEPT_ASSERT(( - Convertible< - traversal_category, - incrementable_traversal_tag - >)); - - BOOST_CONCEPT_USAGE(IncrementableIteratorConcept) - { - ++i; - (void)i++; - } - private: - Iterator i; -#endif - }; - - template - struct SinglePassIteratorConcept - : IncrementableIteratorConcept - , EqualityComparable - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - BOOST_RANGE_CONCEPT_ASSERT(( - Convertible< - BOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category, - single_pass_traversal_tag - >)); - - BOOST_CONCEPT_USAGE(SinglePassIteratorConcept) - { - Iterator i2(++i); - boost::ignore_unused_variable_warning(i2); - - // deliberately we are loose with the postfix version for the single pass - // iterator due to the commonly poor adherence to the specification means that - // many algorithms would be unusable, whereas actually without the check they - // work - (void)(i++); - - BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference r1(*i); - boost::ignore_unused_variable_warning(r1); - - BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference r2(*(++i)); - boost::ignore_unused_variable_warning(r2); - } - private: - Iterator i; -#endif - }; - - template - struct ForwardIteratorConcept - : SinglePassIteratorConcept - , DefaultConstructible - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::difference_type difference_type; - - BOOST_MPL_ASSERT((is_integral)); - BOOST_MPL_ASSERT_RELATION(std::numeric_limits::is_signed, ==, true); - - BOOST_RANGE_CONCEPT_ASSERT(( - Convertible< - BOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category, - forward_traversal_tag - >)); - - BOOST_CONCEPT_USAGE(ForwardIteratorConcept) - { - // See the above note in the SinglePassIteratorConcept about the handling of the - // postfix increment. Since with forward and better iterators there is no need - // for a proxy, we can sensibly require that the dereference result - // is convertible to reference. - Iterator i2(i++); - boost::ignore_unused_variable_warning(i2); - BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits::reference r(*(i++)); - boost::ignore_unused_variable_warning(r); - } - private: - Iterator i; -#endif - }; - - template - struct BidirectionalIteratorConcept - : ForwardIteratorConcept - { - #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - BOOST_RANGE_CONCEPT_ASSERT(( - Convertible< - BOOST_DEDUCED_TYPENAME BidirectionalIteratorConcept::traversal_category, - bidirectional_traversal_tag - >)); - - BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept) - { - --i; - (void)i--; - } - private: - Iterator i; - #endif - }; - - template - struct RandomAccessIteratorConcept - : BidirectionalIteratorConcept - { - #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - BOOST_RANGE_CONCEPT_ASSERT(( - Convertible< - BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::traversal_category, - random_access_traversal_tag - >)); - - BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept) - { - i += n; - i = i + n; - i = n + i; - i -= n; - i = i - n; - n = i - j; - } - private: - BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n; - Iterator i; - Iterator j; - #endif - }; - - } // namespace range_detail - - //! Check if a type T models the SinglePassRange range concept. - template - struct SinglePassRangeConcept - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - // A few compilers don't like the rvalue reference T types so just - // remove it. - typedef BOOST_DEDUCED_TYPENAME remove_reference::type Rng; - - typedef BOOST_DEDUCED_TYPENAME range_iterator< - Rng const - >::type const_iterator; - - typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator; - - BOOST_RANGE_CONCEPT_ASSERT(( - range_detail::SinglePassIteratorConcept)); - - BOOST_RANGE_CONCEPT_ASSERT(( - range_detail::SinglePassIteratorConcept)); - - BOOST_CONCEPT_USAGE(SinglePassRangeConcept) - { - // This has been modified from assigning to this->i - // (where i was a member variable) to improve - // compatibility with Boost.Lambda - iterator i1 = boost::begin(*m_range); - iterator i2 = boost::end(*m_range); - - boost::ignore_unused_variable_warning(i1); - boost::ignore_unused_variable_warning(i2); - - const_constraints(*m_range); - } - - private: - void const_constraints(const Rng& const_range) - { - const_iterator ci1 = boost::begin(const_range); - const_iterator ci2 = boost::end(const_range); - - boost::ignore_unused_variable_warning(ci1); - boost::ignore_unused_variable_warning(ci2); - } - - // Rationale: - // The type of m_range is T* rather than T because it allows - // T to be an abstract class. The other obvious alternative of - // T& produces a warning on some compilers. - Rng* m_range; -#endif - }; - - //! Check if a type T models the ForwardRange range concept. - template - struct ForwardRangeConcept : SinglePassRangeConcept - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept)); - BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept)); -#endif - }; - - template - struct WriteableRangeConcept - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator; - - BOOST_CONCEPT_USAGE(WriteableRangeConcept) - { - *i = v; - } - private: - iterator i; - BOOST_DEDUCED_TYPENAME range_value::type v; -#endif - }; - - //! Check if a type T models the WriteableForwardRange range concept. - template - struct WriteableForwardRangeConcept - : ForwardRangeConcept - , WriteableRangeConcept - { - }; - - //! Check if a type T models the BidirectionalRange range concept. - template - struct BidirectionalRangeConcept : ForwardRangeConcept - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - BOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept)); - BOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept)); -#endif - }; - - //! Check if a type T models the WriteableBidirectionalRange range concept. - template - struct WriteableBidirectionalRangeConcept - : BidirectionalRangeConcept - , WriteableRangeConcept - { - }; - - //! Check if a type T models the RandomAccessRange range concept. - template - struct RandomAccessRangeConcept : BidirectionalRangeConcept - { -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT - BOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept)); - BOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept)); -#endif - }; - - //! Check if a type T models the WriteableRandomAccessRange range concept. - template - struct WriteableRandomAccessRangeConcept - : RandomAccessRangeConcept - , WriteableRangeConcept - { - }; - -} // namespace boost - -#endif // BOOST_RANGE_CONCEPTS_HPP diff --git a/lib/3rdParty/boost/boost/range/config.hpp b/lib/3rdParty/boost/boost/range/config.hpp deleted file mode 100644 index 7600a5ff8..000000000 --- a/lib/3rdParty/boost/boost/range/config.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_CONFIG_HPP -#define BOOST_RANGE_CONFIG_HPP - -#include - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -#ifdef BOOST_RANGE_DEDUCED_TYPENAME -#error "macro already defined!" -#endif - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# define BOOST_RANGE_DEDUCED_TYPENAME typename -#else -#define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME -#endif - -#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT -#error "macro already defined!" -#endif - -#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) -#define BOOST_RANGE_NO_ARRAY_SUPPORT 1 -#endif - -#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT -#define BOOST_RANGE_ARRAY_REF() (boost_range_array) -#define BOOST_RANGE_NO_STATIC_ASSERT -#else -#define BOOST_RANGE_ARRAY_REF() (&boost_range_array) -#endif - -#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) -# define BOOST_RANGE_UNUSED __attribute__((unused)) -#else -# define BOOST_RANGE_UNUSED -#endif - - - -#endif - diff --git a/lib/3rdParty/boost/boost/range/const_iterator.hpp b/lib/3rdParty/boost/boost/range/const_iterator.hpp deleted file mode 100644 index 727fdad05..000000000 --- a/lib/3rdParty/boost/boost/range/const_iterator.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_CONST_ITERATOR_HPP -#define BOOST_RANGE_CONST_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - namespace range_detail - { - -BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator ) - -template< typename C > -struct range_const_iterator_helper - : extract_const_iterator -{}; - -////////////////////////////////////////////////////////////////////////// -// pair -////////////////////////////////////////////////////////////////////////// - -template< typename Iterator > -struct range_const_iterator_helper > -{ - typedef Iterator type; -}; - -////////////////////////////////////////////////////////////////////////// -// array -////////////////////////////////////////////////////////////////////////// - -template< typename T, std::size_t sz > -struct range_const_iterator_helper< T[sz] > -{ - typedef const T* type; -}; - - } // namespace range_detail - -template -struct range_const_iterator - : range_detail::range_const_iterator_helper< - BOOST_DEDUCED_TYPENAME remove_reference::type - > -{ -}; - -} // namespace boost - - -#endif diff --git a/lib/3rdParty/boost/boost/range/const_reverse_iterator.hpp b/lib/3rdParty/boost/boost/range/const_reverse_iterator.hpp deleted file mode 100644 index bfe161561..000000000 --- a/lib/3rdParty/boost/boost/range/const_reverse_iterator.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_CONST_REVERSE_ITERATOR_HPP -#define BOOST_RANGE_CONST_REVERSE_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -namespace boost -{ - // - // This interface is deprecated, use range_reverse_iterator - // - - template< typename C > - struct range_const_reverse_iterator - : range_reverse_iterator< - const BOOST_DEDUCED_TYPENAME remove_reference::type> - { }; - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/range/counting_range.hpp b/lib/3rdParty/boost/boost/range/counting_range.hpp deleted file mode 100644 index d886a2133..000000000 --- a/lib/3rdParty/boost/boost/range/counting_range.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright Neil Groves 2010. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_COUNTING_RANGE_HPP_INCLUDED -#define BOOST_RANGE_COUNTING_RANGE_HPP_INCLUDED - -#include -#if BOOST_MSVC >= 1400 -#pragma warning(push) -#pragma warning(disable : 4244) -#endif - -#include -#include -#include -#include - -namespace boost -{ - template - inline iterator_range > - counting_range(Value first, Value last) - { - typedef counting_iterator counting_iterator_t; - typedef iterator_range result_t; - return result_t(counting_iterator_t(first), - counting_iterator_t(last)); - } - - template - inline iterator_range< - counting_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - counting_range(const Range& rng) - { - typedef counting_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > counting_iterator_t; - - typedef iterator_range result_t; - - return result_t(counting_iterator_t(boost::begin(rng)), - counting_iterator_t(boost::end(rng))); - } - - template - inline iterator_range< - counting_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - > - counting_range(Range& rng) - { - typedef counting_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type - > counting_iterator_t; - - typedef iterator_range result_t; - - return result_t(counting_iterator_t(boost::begin(rng)), - counting_iterator_t(boost::end(rng))); - } -} // namespace boost - -#if BOOST_MSVC >= 1400 -#pragma warning(pop) -#endif - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/any_iterator.hpp b/lib/3rdParty/boost/boost/range/detail/any_iterator.hpp deleted file mode 100644 index 044237c59..000000000 --- a/lib/3rdParty/boost/boost/range/detail/any_iterator.hpp +++ /dev/null @@ -1,589 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_ANY_ITERATOR_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - // metafunction to determine if T is a const reference - template - struct is_const_reference - { - typedef typename mpl::and_< - typename is_reference::type, - typename is_const< - typename remove_reference::type - >::type - >::type type; - }; - - // metafunction to determine if T is a mutable reference - template - struct is_mutable_reference - { - typedef typename mpl::and_< - typename is_reference::type, - typename mpl::not_< - typename is_const< - typename remove_reference::type - >::type - >::type - >::type type; - }; - - // metafunction to evaluate if a source 'reference' can be - // converted to a target 'reference' as a value. - // - // This is true, when the target reference type is actually - // not a reference, and the source reference is convertible - // to the target type. - template - struct is_convertible_to_value_as_reference - { - typedef typename mpl::and_< - typename mpl::not_< - typename is_reference::type - >::type - , typename is_convertible< - SourceReference - , TargetReference - >::type - >::type type; - }; - - template< - class Value - , class Traversal - , class Reference - , class Difference - , class Buffer = any_iterator_default_buffer - > - class any_iterator; - - // metafunction to determine if SomeIterator is an - // any_iterator. - // - // This is the general implementation which evaluates to false. - template - struct is_any_iterator - : mpl::bool_ - { - }; - - // specialization of is_any_iterator to return true for - // any_iterator classes regardless of template parameters. - template< - class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - struct is_any_iterator< - any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > - > - : mpl::bool_ - { - }; - } // namespace range_detail - - namespace iterators - { - namespace detail - { - // Rationale: - // These are specialized since the iterator_facade versions lack - // the requisite typedefs to allow wrapping to determine the types - // if a user copy constructs from a postfix increment. - - template< - class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - class postfix_increment_proxy< - range_detail::any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > - > - { - typedef range_detail::any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > any_iterator_type; - - public: - typedef Value value_type; - typedef typename std::iterator_traits::iterator_category iterator_category; - typedef Difference difference_type; - typedef typename iterator_pointer::type pointer; - typedef Reference reference; - - explicit postfix_increment_proxy(any_iterator_type const& x) - : stored_value(*x) - {} - - value_type& - operator*() const - { - return this->stored_value; - } - private: - mutable value_type stored_value; - }; - - template< - class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - class writable_postfix_increment_proxy< - range_detail::any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > - > - { - typedef range_detail::any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > any_iterator_type; - public: - typedef Value value_type; - typedef typename std::iterator_traits::iterator_category iterator_category; - typedef Difference difference_type; - typedef typename iterator_pointer::type pointer; - typedef Reference reference; - - explicit writable_postfix_increment_proxy(any_iterator_type const& x) - : stored_value(*x) - , stored_iterator(x) - {} - - // Dereferencing must return a proxy so that both *r++ = o and - // value_type(*r++) can work. In this case, *r is the same as - // *r++, and the conversion operator below is used to ensure - // readability. - writable_postfix_increment_proxy const& - operator*() const - { - return *this; - } - - // Provides readability of *r++ - operator value_type&() const - { - return stored_value; - } - - // Provides writability of *r++ - template - T const& operator=(T const& x) const - { - *this->stored_iterator = x; - return x; - } - - // This overload just in case only non-const objects are writable - template - T& operator=(T& x) const - { - *this->stored_iterator = x; - return x; - } - - // Provides X(r++) - operator any_iterator_type const&() const - { - return stored_iterator; - } - - private: - mutable value_type stored_value; - any_iterator_type stored_iterator; - }; - - } //namespace detail - } //namespace iterators - - namespace range_detail - { - template< - class Value - , class Traversal - , class Reference - , class Difference - , class Buffer - > - class any_iterator - : public iterator_facade< - any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > - , Value - , Traversal - , Reference - , Difference - > - { - template< - class OtherValue - , class OtherTraversal - , class OtherReference - , class OtherDifference - , class OtherBuffer - > - friend class any_iterator; - - struct enabler {}; - struct disabler {}; - - typedef typename any_iterator_interface_type_generator< - Traversal - , Reference - , Difference - , Buffer - >::type abstract_base_type; - - typedef iterator_facade< - any_iterator< - Value - , Traversal - , Reference - , Difference - , Buffer - > - , Value - , Traversal - , Reference - , Difference - > base_type; - - typedef Buffer buffer_type; - - public: - typedef typename base_type::value_type value_type; - typedef typename base_type::reference reference; - typedef typename base_type::difference_type difference_type; - - // Default constructor - any_iterator() - : m_impl(0) {} - - // Simple copy construction without conversion - any_iterator(const any_iterator& other) - : base_type(other) - , m_impl(other.m_impl - ? other.m_impl->clone(m_buffer) - : 0) - { - } - - // Simple assignment operator without conversion - any_iterator& operator=(const any_iterator& other) - { - if (this != &other) - { - if (m_impl) - m_impl->~abstract_base_type(); - m_buffer.deallocate(); - m_impl = 0; - if (other.m_impl) - m_impl = other.m_impl->clone(m_buffer); - } - return *this; - } - - // Implicit conversion from another any_iterator where the - // conversion is from a non-const reference to a const reference - template< - class OtherValue - , class OtherTraversal - , class OtherReference - , class OtherDifference - > - any_iterator(const any_iterator< - OtherValue, - OtherTraversal, - OtherReference, - OtherDifference, - Buffer - >& other, - typename ::boost::enable_if< - typename mpl::and_< - typename is_mutable_reference::type, - typename is_const_reference::type - >::type, - enabler - >::type* = 0 - ) - : m_impl(other.m_impl - ? other.m_impl->clone_const_ref(m_buffer) - : 0 - ) - { - } - - // Implicit conversion from another any_iterator where the - // reference types of the source and the target are references - // that are either both const, or both non-const. - template< - class OtherValue - , class OtherTraversal - , class OtherReference - , class OtherDifference - > - any_iterator(const any_iterator< - OtherValue - , OtherTraversal - , OtherReference - , OtherDifference - , Buffer - >& other, - typename ::boost::enable_if< - typename mpl::or_< - typename mpl::and_< - typename is_mutable_reference::type, - typename is_mutable_reference::type - >::type, - typename mpl::and_< - typename is_const_reference::type, - typename is_const_reference::type - >::type - >::type, - enabler - >::type* = 0 - ) - : m_impl(other.m_impl - ? other.m_impl->clone(m_buffer) - : 0 - ) - { - } - - // Implicit conversion to an any_iterator that uses a value for - // the reference type. - template< - class OtherValue - , class OtherTraversal - , class OtherReference - , class OtherDifference - > - any_iterator(const any_iterator< - OtherValue - , OtherTraversal - , OtherReference - , OtherDifference - , Buffer - >& other, - typename ::boost::enable_if< - typename is_convertible_to_value_as_reference< - OtherReference - , Reference - >::type, - enabler - >::type* = 0 - ) - : m_impl(other.m_impl - ? other.m_impl->clone_reference_as_value(m_buffer) - : 0 - ) - { - } - - any_iterator clone() const - { - any_iterator result; - if (m_impl) - result.m_impl = m_impl->clone(result.m_buffer); - return result; - } - - any_iterator< - Value - , Traversal - , typename abstract_base_type::const_reference - , Difference - , Buffer - > - clone_const_ref() const - { - typedef any_iterator< - Value - , Traversal - , typename abstract_base_type::const_reference - , Difference - , Buffer - > result_type; - - result_type result; - - if (m_impl) - result.m_impl = m_impl->clone_const_ref(result.m_buffer); - - return result; - } - - // implicit conversion and construction from type-erasure-compatible - // iterators - template - explicit any_iterator( - const WrappedIterator& wrapped_iterator, - typename disable_if< - typename is_any_iterator::type - , disabler - >::type* = 0 - ) - { - typedef typename any_iterator_wrapper_type_generator< - WrappedIterator - , Traversal - , Reference - , Difference - , Buffer - >::type wrapper_type; - - void* ptr = m_buffer.allocate(sizeof(wrapper_type)); - m_impl = new(ptr) wrapper_type(wrapped_iterator); - } - - ~any_iterator() - { - // manually run the destructor, the deallocation is automatically - // handled by the any_iterator_small_buffer base class. - if (m_impl) - m_impl->~abstract_base_type(); - } - - private: - friend class ::boost::iterator_core_access; - - Reference dereference() const - { - BOOST_ASSERT( m_impl ); - return m_impl->dereference(); - } - - bool equal(const any_iterator& other) const - { - return (m_impl == other.m_impl) - || (m_impl && other.m_impl && m_impl->equal(*other.m_impl)); - } - - void increment() - { - BOOST_ASSERT( m_impl ); - m_impl->increment(); - } - - void decrement() - { - BOOST_ASSERT( m_impl ); - m_impl->decrement(); - } - - Difference distance_to(const any_iterator& other) const - { - return m_impl && other.m_impl - ? m_impl->distance_to(*other.m_impl) - : 0; - } - - void advance(Difference offset) - { - BOOST_ASSERT( m_impl ); - m_impl->advance(offset); - } - - any_iterator& swap(any_iterator& other) - { - BOOST_ASSERT( this != &other ); - // grab a temporary copy of the other iterator - any_iterator tmp(other); - - // deallocate the other iterator, taking care to obey the - // class-invariants in-case of exceptions later - if (other.m_impl) - { - other.m_impl->~abstract_base_type(); - other.m_buffer.deallocate(); - other.m_impl = 0; - } - - // If this is a non-null iterator then we need to put - // a clone of this iterators implementation into the other - // iterator. - // We can't just swap because of the small buffer optimization. - if (m_impl) - { - other.m_impl = m_impl->clone(other.m_buffer); - m_impl->~abstract_base_type(); - m_buffer.deallocate(); - m_impl = 0; - } - - // assign to this instance a clone of the temporarily held - // tmp which represents the input other parameter at the - // start of execution of this function. - if (tmp.m_impl) - m_impl = tmp.m_impl->clone(m_buffer); - - return *this; - } - - buffer_type m_buffer; - abstract_base_type* m_impl; - }; - - } // namespace range_detail -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/any_iterator_buffer.hpp b/lib/3rdParty/boost/boost/range/detail/any_iterator_buffer.hpp deleted file mode 100644 index 2bb5d53a4..000000000 --- a/lib/3rdParty/boost/boost/range/detail/any_iterator_buffer.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_BUFFER_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_ANY_ITERATOR_BUFFER_HPP_INCLUDED - -#include -#include -#include -#include - -namespace boost -{ - template - class any_iterator_buffer - : noncopyable - { - BOOST_STATIC_ASSERT(( StackBufferSize > 0 )); - public: - any_iterator_buffer() - : m_ptr() - { - } - - ~any_iterator_buffer() - { - delete [] m_ptr; - } - - void* allocate(std::size_t bytes) - { - BOOST_ASSERT( !m_ptr ); - if (bytes <= StackBufferSize) - return m_buffer.data(); - - m_ptr = new char[bytes]; - return m_ptr; - } - - void deallocate() - { - delete [] m_ptr; - m_ptr = 0; - } - - private: - // Rationale: - // Do not use inheritance from noncopyable because this causes - // the concepts to erroneous detect the derived any_iterator - // as noncopyable. - any_iterator_buffer(const any_iterator_buffer&); - void operator=(const any_iterator_buffer&); - - char* m_ptr; - boost::array m_buffer; - }; - - class any_iterator_heap_only_buffer - : noncopyable - { - public: - any_iterator_heap_only_buffer() - : m_ptr() - { - } - - ~any_iterator_heap_only_buffer() - { - delete [] m_ptr; - } - - void* allocate(std::size_t bytes) - { - BOOST_ASSERT( !m_ptr ); - m_ptr = new char[bytes]; - return m_ptr; - } - - void deallocate() - { - delete [] m_ptr; - m_ptr = 0; - } - - private: - char* m_ptr; - }; - - template - class any_iterator_stack_only_buffer - { - BOOST_STATIC_ASSERT(( StackBufferSize > 0 )); - public: - void* allocate(std::size_t bytes) - { - BOOST_ASSERT( bytes <= m_buffer.size() ); - return m_buffer.data(); - } - - void deallocate() - { - } - - private: - boost::array m_buffer; - }; - - typedef any_iterator_buffer<64> any_iterator_default_buffer; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/any_iterator_interface.hpp b/lib/3rdParty/boost/boost/range/detail/any_iterator_interface.hpp deleted file mode 100644 index cd567146f..000000000 --- a/lib/3rdParty/boost/boost/range/detail/any_iterator_interface.hpp +++ /dev/null @@ -1,277 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_INTERFACE_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_ANY_ITERATOR_INTERFACE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template - struct const_reference_type_generator - { - typedef typename mpl::if_< - typename is_reference::type, - typename add_const< - typename remove_reference::type - >::type&, - T - >::type type; - }; - - template - struct mutable_reference_type_generator - { - typedef typename mpl::if_< - typename mpl::and_< - typename is_const::type, - typename mpl::not_::type>::type - >::type, - T, - typename add_reference::type - >::type type; - }; - - template< - class Reference - , class Buffer - > - struct any_incrementable_iterator_interface - { - typedef typename mutable_reference_type_generator< - Reference - >::type reference; - - typedef typename const_reference_type_generator< - Reference - >::type const_reference; - - typedef typename remove_const< - typename remove_reference::type - >::type reference_as_value_type; - - typedef Buffer buffer_type; - - virtual ~any_incrementable_iterator_interface() {} - - virtual any_incrementable_iterator_interface* - clone(buffer_type& buffer) const = 0; - - virtual any_incrementable_iterator_interface* - clone_const_ref(buffer_type& buffer) const = 0; - - virtual any_incrementable_iterator_interface* - clone_reference_as_value(buffer_type& buffer) const = 0; - - virtual void increment() = 0; - }; - - template< - class Reference - , class Buffer - > - struct any_single_pass_iterator_interface - : any_incrementable_iterator_interface - { - typedef typename any_incrementable_iterator_interface::reference reference; - typedef typename any_incrementable_iterator_interface::const_reference const_reference; - typedef typename any_incrementable_iterator_interface::buffer_type buffer_type; - typedef typename any_incrementable_iterator_interface::reference_as_value_type reference_as_value_type; - - virtual any_single_pass_iterator_interface* - clone(buffer_type& buffer) const = 0; - - virtual any_single_pass_iterator_interface* - clone_const_ref(buffer_type& buffer) const = 0; - - virtual any_single_pass_iterator_interface* - clone_reference_as_value(buffer_type& buffer) const = 0; - - virtual reference dereference() const = 0; - - virtual bool equal(const any_single_pass_iterator_interface& other) const = 0; - }; - - template< - class Reference - , class Buffer - > - struct any_forward_iterator_interface - : any_single_pass_iterator_interface - { - typedef typename any_single_pass_iterator_interface::reference reference; - typedef typename any_single_pass_iterator_interface::const_reference const_reference; - typedef typename any_single_pass_iterator_interface::buffer_type buffer_type; - typedef typename any_single_pass_iterator_interface::reference_as_value_type reference_as_value_type; - - virtual any_forward_iterator_interface* - clone(buffer_type& buffer) const = 0; - - virtual any_forward_iterator_interface* - clone_const_ref(buffer_type& buffer) const = 0; - - virtual any_forward_iterator_interface* - clone_reference_as_value(buffer_type& buffer) const = 0; - }; - - template< - class Reference - , class Buffer - > - struct any_bidirectional_iterator_interface - : any_forward_iterator_interface - { - typedef typename any_forward_iterator_interface::reference reference; - typedef typename any_forward_iterator_interface::const_reference const_reference; - typedef typename any_forward_iterator_interface::buffer_type buffer_type; - typedef typename any_forward_iterator_interface::reference_as_value_type reference_as_value_type; - - virtual any_bidirectional_iterator_interface* - clone(buffer_type& buffer) const = 0; - - virtual any_bidirectional_iterator_interface* - clone_const_ref(buffer_type& buffer) const = 0; - - virtual any_bidirectional_iterator_interface* - clone_reference_as_value(buffer_type& buffer) const = 0; - - virtual void decrement() = 0; - }; - - template< - class Reference - , class Difference - , class Buffer - > - struct any_random_access_iterator_interface - : any_bidirectional_iterator_interface< - Reference - , Buffer - > - { - typedef typename any_bidirectional_iterator_interface::reference reference; - typedef typename any_bidirectional_iterator_interface::const_reference const_reference; - typedef typename any_bidirectional_iterator_interface::buffer_type buffer_type; - typedef typename any_bidirectional_iterator_interface::reference_as_value_type reference_as_value_type; - typedef Difference difference_type; - - virtual any_random_access_iterator_interface* - clone(buffer_type& buffer) const = 0; - - virtual any_random_access_iterator_interface* - clone_const_ref(buffer_type& buffer) const = 0; - - virtual any_random_access_iterator_interface* - clone_reference_as_value(buffer_type& buffer) const = 0; - - virtual void advance(Difference offset) = 0; - - virtual Difference distance_to(const any_random_access_iterator_interface& other) const = 0; - }; - - template< - class Traversal - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_interface_type_generator; - - template< - class Reference - , class Difference - , class Buffer - > - struct any_iterator_interface_type_generator< - incrementable_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_incrementable_iterator_interface type; - }; - - template< - class Reference - , class Difference - , class Buffer - > - struct any_iterator_interface_type_generator< - single_pass_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_single_pass_iterator_interface type; - }; - - template< - class Reference - , class Difference - , class Buffer - > - struct any_iterator_interface_type_generator< - forward_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_forward_iterator_interface type; - }; - - template< - class Reference - , class Difference - , class Buffer - > - struct any_iterator_interface_type_generator< - bidirectional_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_bidirectional_iterator_interface type; - }; - - template< - class Reference - , class Difference - , class Buffer - > - struct any_iterator_interface_type_generator< - random_access_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_random_access_iterator_interface< - Reference - , Difference - , Buffer - > type; - }; - - } // namespace range_detail -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/any_iterator_wrapper.hpp b/lib/3rdParty/boost/boost/range/detail/any_iterator_wrapper.hpp deleted file mode 100644 index c542d39a2..000000000 --- a/lib/3rdParty/boost/boost/range/detail/any_iterator_wrapper.hpp +++ /dev/null @@ -1,640 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_WRAPPER_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_ANY_ITERATOR_WRAPPER_HPP_INCLUDED - -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template - TargetT& polymorphic_ref_downcast(SourceT& source) - { -#ifdef BOOST_NO_RTTI - return static_cast(source); -#else - return *boost::polymorphic_downcast(&source); -#endif - } - - template - Reference dereference_cast(T& x) - { - return static_cast(x); - } - template - Reference dereference_cast(const T& x) - { - return static_cast(const_cast(x)); - } - - template< - class WrappedIterator - , class Reference - , class Buffer - > - class any_incrementable_iterator_wrapper - : public any_incrementable_iterator_interface< - Reference - , Buffer - > - { - BOOST_RANGE_CONCEPT_ASSERT(( IncrementableIteratorConcept )); - public: - typedef WrappedIterator wrapped_type; - - BOOST_STATIC_ASSERT(( is_convertible< - typename iterator_reference::type - , Reference - >::value )); - - any_incrementable_iterator_wrapper() - : m_it() - {} - - explicit any_incrementable_iterator_wrapper(wrapped_type it) - : m_it(it) - {} - - // any_incrementable_iterator implementation - virtual any_incrementable_iterator_wrapper* clone( - typename any_incrementable_iterator_wrapper::buffer_type& buffer - ) const - { - return new (buffer.allocate(sizeof(*this))) - any_incrementable_iterator_wrapper(m_it); - } - - virtual any_incrementable_iterator_wrapper< - WrappedIterator - , typename any_incrementable_iterator_wrapper::const_reference - , Buffer - >* clone_const_ref( - typename any_incrementable_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_incrementable_iterator_wrapper< - WrappedIterator - , typename any_incrementable_iterator_wrapper::const_reference - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual any_incrementable_iterator_wrapper< - WrappedIterator - , typename any_incrementable_iterator_wrapper::reference_as_value_type - , Buffer - >* clone_reference_as_value( - typename any_incrementable_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_incrementable_iterator_wrapper< - WrappedIterator - , typename any_incrementable_iterator_wrapper::reference_as_value_type - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual void increment() - { - ++m_it; - } - - private: - wrapped_type m_it; - }; - - template< - class WrappedIterator - , class Reference - , class Buffer - > - class any_single_pass_iterator_wrapper - : public any_single_pass_iterator_interface< - Reference - , Buffer - > - { - struct disabler {}; - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassIteratorConcept )); - typedef any_single_pass_iterator_interface< - Reference, - Buffer - > base_type; - - public: - typedef typename base_type::reference reference; - - any_single_pass_iterator_wrapper() - : m_it() - {} - - explicit any_single_pass_iterator_wrapper(const WrappedIterator& it) - : m_it(it) - {} - // any_single_pass_iterator_interface implementation - virtual any_single_pass_iterator_wrapper* clone( - typename any_single_pass_iterator_wrapper::buffer_type& buffer - ) const - { - return new (buffer.allocate(sizeof(*this))) - any_single_pass_iterator_wrapper(m_it); - } - - virtual any_single_pass_iterator_wrapper< - WrappedIterator - , typename any_single_pass_iterator_wrapper::const_reference - , Buffer - >* clone_const_ref( - typename any_single_pass_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_single_pass_iterator_wrapper< - WrappedIterator - , typename any_single_pass_iterator_wrapper::const_reference - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual any_single_pass_iterator_wrapper< - WrappedIterator - , typename any_single_pass_iterator_wrapper::reference_as_value_type - , Buffer - >* clone_reference_as_value( - typename any_single_pass_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_single_pass_iterator_wrapper< - WrappedIterator - , typename any_single_pass_iterator_wrapper::reference_as_value_type - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual void increment() - { - ++m_it; - } - - virtual bool equal(const any_single_pass_iterator_interface& other) const - { - return m_it == range_detail::polymorphic_ref_downcast(other).m_it; - } - - virtual reference dereference() const - { - return dereference_cast(*m_it); - } - - private: - WrappedIterator m_it; - }; - - template< - class WrappedIterator - , class Reference - , class Buffer - > - class any_forward_iterator_wrapper - : public any_forward_iterator_interface< - Reference - , Buffer - > - { - BOOST_RANGE_CONCEPT_ASSERT(( ForwardIteratorConcept )); - typedef any_forward_iterator_interface< - Reference, - Buffer - > base_type; - - public: - typedef typename base_type::reference reference; - - any_forward_iterator_wrapper() - : m_it() - {} - - explicit any_forward_iterator_wrapper(const WrappedIterator& it) - : m_it(it) - {} - - // any_forward_iterator_interface implementation - virtual any_forward_iterator_wrapper* clone( - typename any_forward_iterator_wrapper::buffer_type& buffer - ) const - { - return new (buffer.allocate(sizeof(*this))) - any_forward_iterator_wrapper(m_it); - } - - virtual any_forward_iterator_wrapper< - WrappedIterator - , typename any_forward_iterator_wrapper::const_reference - , Buffer - >* clone_const_ref( - typename any_forward_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_forward_iterator_wrapper< - WrappedIterator - , typename any_forward_iterator_wrapper::const_reference - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual any_forward_iterator_wrapper< - WrappedIterator - , typename any_forward_iterator_wrapper::reference_as_value_type - , Buffer - >* clone_reference_as_value( - typename any_forward_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_forward_iterator_wrapper< - WrappedIterator - , typename any_forward_iterator_wrapper::reference_as_value_type - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual void increment() - { - ++m_it; - } - - virtual bool equal(const any_single_pass_iterator_interface& other) const - { - return m_it == range_detail::polymorphic_ref_downcast(other).m_it; - } - - virtual reference dereference() const - { - return dereference_cast(*m_it); - } - private: - WrappedIterator m_it; - }; - - template< - class WrappedIterator - , class Reference - , class Buffer - > - class any_bidirectional_iterator_wrapper - : public any_bidirectional_iterator_interface< - Reference - , Buffer - > - { - BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalIteratorConcept )); - typedef any_bidirectional_iterator_interface< - Reference, - Buffer - > base_type; - - public: - typedef typename base_type::reference reference; - - any_bidirectional_iterator_wrapper() - : m_it() - { - } - - explicit any_bidirectional_iterator_wrapper(const WrappedIterator& it) - : m_it(it) - { - } - - virtual any_bidirectional_iterator_wrapper* clone( - typename any_bidirectional_iterator_wrapper::buffer_type& buffer - ) const - { - return new (buffer.allocate(sizeof(*this))) - any_bidirectional_iterator_wrapper(*this); - } - - virtual any_bidirectional_iterator_wrapper< - WrappedIterator - , typename any_bidirectional_iterator_wrapper::const_reference - , Buffer - >* clone_const_ref( - typename any_bidirectional_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_bidirectional_iterator_wrapper< - WrappedIterator - , typename any_bidirectional_iterator_wrapper::const_reference - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual any_bidirectional_iterator_wrapper< - WrappedIterator - , typename any_bidirectional_iterator_wrapper::reference_as_value_type - , Buffer - >* clone_reference_as_value( - typename any_bidirectional_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_bidirectional_iterator_wrapper< - WrappedIterator - , typename any_bidirectional_iterator_wrapper::reference_as_value_type - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual void increment() - { - ++m_it; - } - - virtual void decrement() - { - --m_it; - } - - virtual bool equal(const any_single_pass_iterator_interface& other) const - { - return m_it == range_detail::polymorphic_ref_downcast(other).m_it; - } - - virtual reference dereference() const - { - return dereference_cast(*m_it); - } - - private: - WrappedIterator m_it; - }; - - template< - class WrappedIterator - , class Reference - , class Difference - , class Buffer - > - class any_random_access_iterator_wrapper - : public any_random_access_iterator_interface< - Reference - , Difference - , Buffer - > - { - BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessIteratorConcept )); - typedef any_random_access_iterator_interface< - Reference, - Difference, - Buffer - > base_type; - - public: - typedef typename base_type::reference reference; - typedef Difference difference_type; - - any_random_access_iterator_wrapper() - : m_it() - { - } - - explicit any_random_access_iterator_wrapper(const WrappedIterator& other) - : m_it(other) - { - } - - virtual any_random_access_iterator_wrapper* clone( - typename any_random_access_iterator_wrapper::buffer_type& buffer - ) const - { - return new (buffer.allocate(sizeof(*this))) - any_random_access_iterator_wrapper(*this); - } - - virtual any_random_access_iterator_wrapper< - WrappedIterator - , typename any_random_access_iterator_wrapper::const_reference - , Difference - , Buffer - >* clone_const_ref( - typename any_random_access_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_random_access_iterator_wrapper< - WrappedIterator - , typename any_random_access_iterator_wrapper::const_reference - , Difference - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual any_random_access_iterator_wrapper< - WrappedIterator - , typename any_random_access_iterator_wrapper::reference_as_value_type - , Difference - , Buffer - >* clone_reference_as_value( - typename any_random_access_iterator_wrapper::buffer_type& buffer - ) const - { - typedef any_random_access_iterator_wrapper< - WrappedIterator - , typename any_random_access_iterator_wrapper::reference_as_value_type - , Difference - , Buffer - > result_type; - - return new (buffer.allocate(sizeof(result_type))) - result_type(m_it); - } - - virtual void increment() - { - ++m_it; - } - - virtual bool equal(const any_single_pass_iterator_interface& other) const - { - return m_it == range_detail::polymorphic_ref_downcast(other).m_it; - } - - virtual void decrement() - { - --m_it; - } - - virtual void advance(Difference offset) - { - m_it += offset; - } - - virtual reference dereference() const - { - return dereference_cast(*m_it); - } - - virtual Difference distance_to(const any_random_access_iterator_interface& other) const - { - return range_detail::polymorphic_ref_downcast(other).m_it - m_it; - } - - private: - WrappedIterator m_it; - }; - - template< - class WrappedIterator - , class Traversal - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_wrapper_type_generator; - - template< - class WrappedIterator - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_wrapper_type_generator< - WrappedIterator - , incrementable_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_incrementable_iterator_wrapper< - WrappedIterator - , Reference - , Buffer - > type; - }; - - template< - class WrappedIterator - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_wrapper_type_generator< - WrappedIterator - , single_pass_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_single_pass_iterator_wrapper< - WrappedIterator - , Reference - , Buffer - > type; - }; - - template< - class WrappedIterator - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_wrapper_type_generator< - WrappedIterator - , forward_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_forward_iterator_wrapper< - WrappedIterator - , Reference - , Buffer - > type; - }; - - template< - class WrappedIterator - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_wrapper_type_generator< - WrappedIterator - , bidirectional_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_bidirectional_iterator_wrapper< - WrappedIterator - , Reference - , Buffer - > type; - }; - - template< - class WrappedIterator - , class Reference - , class Difference - , class Buffer - > - struct any_iterator_wrapper_type_generator< - WrappedIterator - , random_access_traversal_tag - , Reference - , Difference - , Buffer - > - { - typedef any_random_access_iterator_wrapper< - WrappedIterator - , Reference - , Difference - , Buffer - > type; - }; - - } // namespace range_detail -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/as_literal.hpp b/lib/3rdParty/boost/boost/range/detail/as_literal.hpp deleted file mode 100644 index 8b219ea24..000000000 --- a/lib/3rdParty/boost/boost/range/detail/as_literal.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_AS_LITERAL_HPP -#define BOOST_RANGE_DETAIL_AS_LITERAL_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -namespace boost -{ - template< class Range > - inline iterator_range::type> - as_literal( Range& r ) - { - return ::boost::make_iterator_range( ::boost::range_detail::str_begin(r), - ::boost::range_detail::str_end(r) ); - } - -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/begin.hpp b/lib/3rdParty/boost/boost/range/detail/begin.hpp deleted file mode 100644 index 1d9390ff8..000000000 --- a/lib/3rdParty/boost/boost/range/detail/begin.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_BEGIN_HPP -#define BOOST_RANGE_DETAIL_BEGIN_HPP - -#include // BOOST_MSVC -#include -#include -#include - -namespace boost -{ - - namespace range_detail - { - template< typename T > - struct range_begin; - - ////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_begin - { - template< typename C > - static BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type fun( C& c ) - { - return c.begin(); - }; - }; - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_begin - { - template< typename P > - static BOOST_RANGE_DEDUCED_TYPENAME range_iterator

::type fun( const P& p ) - { - return p.first; - } - }; - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_begin - { - template - static BOOST_RANGE_DEDUCED_TYPENAME range_value::type* fun(T& t) - { - return t; - } - }; - - } // namespace 'range_detail' - - namespace range_adl_barrier - { - template< typename C > - inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type - begin( C& c ) - { - return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type >::fun( c ); - } - } -} // namespace 'boost' - - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/collection_traits.hpp b/lib/3rdParty/boost/boost/range/detail/collection_traits.hpp deleted file mode 100644 index 823c0afc9..000000000 --- a/lib/3rdParty/boost/boost/range/detail/collection_traits.hpp +++ /dev/null @@ -1,265 +0,0 @@ -// Boost string_algo library collection_traits.hpp header file -------------// - -// Copyright Pavol Droba 2002-2003. 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) - -// (C) Copyright Thorsten Ottosen 2002-2003. 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) - -// (C) Copyright Jeremy Siek 2001. 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) - -// Original idea of container traits was proposed by Jeremy Siek and -// Thorsten Ottosen. This implementation is lightweighted version -// of container_traits adapter for usage with string_algo library - -#ifndef BOOST_RANGE_STRING_COLLECTION_TRAITS_HPP -#define BOOST_RANGE_STRING_COLLECTION_TRAITS_HPP - -#include -#include -#include - -// Implementation -#include - -/*! \file - Defines collection_traits class and related free-standing functions. - This facility is used to unify the access to different types of collections. - It allows the algorithms in the library to work with STL collections, c-style - array, null-terminated c-strings (and more) using the same interface. -*/ - -namespace boost { - namespace algorithm { - -// collection_traits template class -----------------------------------------// - - //! collection_traits class - /*! - Collection traits provide uniform access to different types of - collections. This functionality allows to write generic algorithms - which work with several different kinds of collections. - - Currently following collection types are supported: - - containers with STL compatible container interface ( see ContainerConcept ) - ( i.e. \c std::vector<>, \c std::list<>, \c std::string<> ... ) - - c-style array - ( \c char[10], \c int[15] ... ) - - null-terminated c-strings - ( \c char*, \c wchar_T* ) - - std::pair of iterators - ( i.e \c std::pair::iterator,vector::iterator> ) - - Collection traits provide an external collection interface operations. - All are accessible using free-standing functions. - - The following operations are supported: - - \c size() - - \c empty() - - \c begin() - - \c end() - - Container traits have somewhat limited functionality on compilers not - supporting partial template specialization and partial template ordering. - */ - template< typename T > - struct collection_traits - { - private: - typedef typename ::boost::mpl::eval_if< - ::boost::algorithm::detail::is_pair, - detail::pair_container_traits_selector, - typename ::boost::mpl::eval_if< - ::boost::is_array, - detail::array_container_traits_selector, - typename ::boost::mpl::eval_if< - ::boost::is_pointer, - detail::pointer_container_traits_selector, - detail::default_container_traits_selector - > - > - >::type container_helper_type; - public: - //! Function type - typedef container_helper_type function_type; - //! Value type - typedef typename - container_helper_type::value_type value_type; - //! Size type - typedef typename - container_helper_type::size_type size_type; - //! Iterator type - typedef typename - container_helper_type::iterator iterator; - //! Const iterator type - typedef typename - container_helper_type::const_iterator const_iterator; - //! Result iterator type ( iterator of const_iterator, depending on the constness of the container ) - typedef typename - container_helper_type::result_iterator result_iterator; - //! Difference type - typedef typename - container_helper_type::difference_type difference_type; - - }; // 'collection_traits' - -// collection_traits metafunctions -----------------------------------------// - - //! Container value_type trait - /*! - Extract the type of elements contained in a container - */ - template< typename C > - struct value_type_of - { - typedef typename collection_traits::value_type type; - }; - - //! Container difference trait - /*! - Extract the container's difference type - */ - template< typename C > - struct difference_type_of - { - typedef typename collection_traits::difference_type type; - }; - - //! Container iterator trait - /*! - Extract the container's iterator type - */ - template< typename C > - struct iterator_of - { - typedef typename collection_traits::iterator type; - }; - - //! Container const_iterator trait - /*! - Extract the container's const_iterator type - */ - template< typename C > - struct const_iterator_of - { - typedef typename collection_traits::const_iterator type; - }; - - - //! Container result_iterator - /*! - Extract the container's result_iterator type. This type maps to \c C::iterator - for mutable container and \c C::const_iterator for const containers. - */ - template< typename C > - struct result_iterator_of - { - typedef typename collection_traits::result_iterator type; - }; - -// collection_traits related functions -----------------------------------------// - - //! Free-standing size() function - /*! - Get the size of the container. Uses collection_traits. - */ - template< typename C > - inline typename collection_traits::size_type - size( const C& c ) - { - return collection_traits::function_type::size( c ); - } - - //! Free-standing empty() function - /*! - Check whether the container is empty. Uses container traits. - */ - template< typename C > - inline bool empty( const C& c ) - { - return collection_traits::function_type::empty( c ); - } - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! Free-standing begin() function - /*! - Get the begin iterator of the container. Uses collection_traits. - */ - template< typename C > - inline typename collection_traits::iterator - begin( C& c ) - { - return collection_traits::function_type::begin( c ); - } - - //! Free-standing begin() function - /*! - \overload - */ - template< typename C > - inline typename collection_traits::const_iterator - begin( const C& c ) - { - return collection_traits::function_type::begin( c ); - } - - //! Free-standing end() function - /*! - Get the begin iterator of the container. Uses collection_traits. - */ - template< typename C > - inline typename collection_traits::iterator - end( C& c ) - { - return collection_traits::function_type::end( c ); - } - - //! Free-standing end() function - /*! - \overload - */ - template< typename C > - inline typename collection_traits::const_iterator - end( const C& c ) - { - return collection_traits::function_type::end( c ); - } - -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! Free-standing begin() function - /*! - \overload - */ - template< typename C > - inline typename collection_traits::result_iterator - begin( C& c ) - { - return collection_traits::function_type::begin( c ); - } - - //! Free-standing end() function - /*! - \overload - */ - template< typename C > - inline typename collection_traits::result_iterator - end( C& c ) - { - return collection_traits::function_type::end( c ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_COLLECTION_TRAITS_HPP diff --git a/lib/3rdParty/boost/boost/range/detail/collection_traits_detail.hpp b/lib/3rdParty/boost/boost/range/detail/collection_traits_detail.hpp deleted file mode 100644 index 15459974e..000000000 --- a/lib/3rdParty/boost/boost/range/detail/collection_traits_detail.hpp +++ /dev/null @@ -1,502 +0,0 @@ -// Boost string_algo library collection_traits.hpp header file -----------------------// - -// Copyright Pavol Droba 2002-2003. 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) - -// See http://www.boost.org for updates, documentation, and revision history. - -#ifndef BOOST_RANGE_STRING_DETAIL_COLLECTION_TRAITS_HPP -#define BOOST_RANGE_STRING_DETAIL_COLLECTION_TRAITS_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Container traits implementation --------------------------------------------------------- - -namespace boost { - namespace algorithm { - namespace detail { - -// Default collection traits ----------------------------------------------------------------- - - // Default collection helper - /* - Wraps std::container compliant containers - */ - template< typename ContainerT > - struct default_container_traits - { - typedef typename ContainerT::value_type value_type; - typedef typename ContainerT::iterator iterator; - typedef typename ContainerT::const_iterator const_iterator; - typedef typename - ::boost::mpl::if_< ::boost::is_const, - const_iterator, - iterator - >::type result_iterator; - typedef typename ContainerT::difference_type difference_type; - typedef typename ContainerT::size_type size_type; - - // static operations - template< typename C > - static size_type size( const C& c ) - { - return c.size(); - } - - template< typename C > - static bool empty( const C& c ) - { - return c.empty(); - } - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename C > - static iterator begin( C& c ) - { - return c.begin(); - } - - template< typename C > - static const_iterator begin( const C& c ) - { - return c.begin(); - } - - template< typename C > - static iterator end( C& c ) - { - return c.end(); - } - - template< typename C > - static const_iterator end( const C& c ) - { - return c.end(); - } - -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename C > - static result_iterator begin( C& c ) - { - return c.begin(); - } - - template< typename C > - static result_iterator end( C& c ) - { - return c.end(); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - }; - - template - struct default_container_traits_selector - { - typedef default_container_traits type; - }; - -// Pair container traits --------------------------------------------------------------------- - - typedef double yes_type; - typedef char no_type; - - // pair selector - template< typename T, typename U > - yes_type is_pair_impl( const std::pair* ); - no_type is_pair_impl( ... ); - - template struct is_pair - { - private: - static T* t; - public: - BOOST_STATIC_CONSTANT( bool, value= - sizeof(is_pair_impl(t))==sizeof(yes_type) ); - }; - - // pair helper - template< typename PairT > - struct pair_container_traits - { - typedef typename PairT::first_type element_type; - - typedef typename ::boost::detail:: - iterator_traits::value_type value_type; - typedef std::size_t size_type; - typedef typename ::boost::detail:: - iterator_traits::difference_type difference_type; - - typedef element_type iterator; - typedef element_type const_iterator; - typedef element_type result_iterator; - - // static operations - template< typename P > - static size_type size( const P& p ) - { - difference_type diff = std::distance( p.first, p.second ); - if ( diff < 0 ) - return 0; - else - return diff; - } - - template< typename P > - static bool empty( const P& p ) - { - return p.first==p.second; - } - - template< typename P > - static const_iterator begin( const P& p ) - { - return p.first; - } - - template< typename P > - static const_iterator end( const P& p ) - { - return p.second; - } - }; // 'pair_container_helper' - - template - struct pair_container_traits_selector - { - typedef pair_container_traits type; - }; - -// Array container traits --------------------------------------------------------------- - - // array traits ( partial specialization ) - template< typename T > - struct array_traits; - - template< typename T, std::size_t sz > - struct array_traits - { - // typedef - typedef T* iterator; - typedef const T* const_iterator; - typedef T value_type; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - - // size of the array ( static ); - BOOST_STATIC_CONSTANT( size_type, array_size = sz ); - }; - - - // array length resolving - /* - Lenght of string contained in a static array could - be different from the size of the array. - For string processing we need the length without - terminating 0. - - Therefore, the length is calculated for char and wchar_t - using char_traits, rather then simply returning - the array size. - */ - template< typename T > - struct array_length_selector - { - template< typename TraitsT > - struct array_length - { - typedef typename - TraitsT::size_type size_type; - - BOOST_STATIC_CONSTANT( - size_type, - array_size=TraitsT::array_size ); - - template< typename A > - static size_type length( const A& ) - { - return array_size; - } - - template< typename A > - static bool empty( const A& ) - { - return array_size==0; - } - }; - }; - - // specialization for char - template<> - struct array_length_selector - { - template< typename TraitsT > - struct array_length - { - typedef typename - TraitsT::size_type size_type; - - template< typename A > - static size_type length( const A& a ) - { - if ( a==0 ) - return 0; - else - return std::char_traits::length(a); - } - - template< typename A > - static bool empty( const A& a ) - { - return a==0 || a[0]==0; - } - }; - }; - - // specialization for wchar_t - template<> - struct array_length_selector - { - template< typename TraitsT > - struct array_length - { - typedef typename - TraitsT::size_type size_type; - - template< typename A > - static size_type length( const A& a ) - { - if ( a==0 ) - return 0; - else - return std::char_traits::length(a); - } - - template< typename A > - static bool empty( const A& a ) - { - return a==0 || a[0]==0; - } - }; - }; - - template< typename T > - struct array_container_traits - { - private: - // resolve array traits - typedef array_traits traits_type; - - public: - typedef typename - traits_type::value_type value_type; - typedef typename - traits_type::iterator iterator; - typedef typename - traits_type::const_iterator const_iterator; - typedef typename - traits_type::size_type size_type; - typedef typename - traits_type::difference_type difference_type; - - typedef typename - ::boost::mpl::if_< ::boost::is_const, - const_iterator, - iterator - >::type result_iterator; - - private: - // resolve array size - typedef typename - ::boost::remove_cv::type char_type; - typedef typename - array_length_selector:: - BOOST_NESTED_TEMPLATE array_length array_length_type; - - public: - BOOST_STATIC_CONSTANT( size_type, array_size = traits_type::array_size ); - - // static operations - template< typename A > - static size_type size( const A& a ) - { - return array_length_type::length(a); - } - - template< typename A > - static bool empty( const A& a ) - { - return array_length_type::empty(a); - } - - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename A > - static iterator begin( A& a ) - { - return a; - } - - template< typename A > - static const_iterator begin( const A& a ) - { - return a; - } - - template< typename A > - static iterator end( A& a ) - { - return a+array_length_type::length(a); - } - - template< typename A > - static const_iterator end( const A& a ) - { - return a+array_length_type::length(a); - } - -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename A > - static result_iterator begin( A& a ) - { - return a; - } - - template< typename A > - static result_iterator end( A& a ) - { - return a+array_length_type::length(a); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - }; - - template - struct array_container_traits_selector - { - typedef array_container_traits type; - }; - -// Pointer container traits --------------------------------------------------------------- - - template - struct pointer_container_traits - { - typedef typename - ::boost::remove_pointer::type value_type; - - typedef typename - ::boost::remove_cv::type char_type; - typedef ::std::char_traits char_traits; - - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef std::ptrdiff_t difference_type; - typedef std::size_t size_type; - - typedef typename - ::boost::mpl::if_< ::boost::is_const, - const_iterator, - iterator - >::type result_iterator; - - // static operations - template< typename P > - static size_type size( const P& p ) - { - if ( p==0 ) - return 0; - else - return char_traits::length(p); - } - - template< typename P > - static bool empty( const P& p ) - { - return p==0 || p[0]==0; - } - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename P > - static iterator begin( P& p ) - { - return p; - } - - template< typename P > - static const_iterator begin( const P& p ) - { - return p; - } - - template< typename P > - static iterator end( P& p ) - { - if ( p==0 ) - return p; - else - return p+char_traits::length(p); - } - - template< typename P > - static const_iterator end( const P& p ) - { - if ( p==0 ) - return p; - else - return p+char_traits::length(p); - } - -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename P > - static result_iterator begin( P& p ) - { - return p; - } - - template< typename P > - static result_iterator end( P& p ) - { - if ( p==0 ) - return p; - else - return p+char_traits::length(p); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - }; - - template - struct pointer_container_traits_selector - { - typedef pointer_container_traits type; - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_DETAIL_COLLECTION_HPP diff --git a/lib/3rdParty/boost/boost/range/detail/combine_cxx03.hpp b/lib/3rdParty/boost/boost/range/detail/combine_cxx03.hpp deleted file mode 100644 index 47da6a6d6..000000000 --- a/lib/3rdParty/boost/boost/range/detail/combine_cxx03.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_COMBINE_CXX03_HPP -#define BOOST_RANGE_DETAIL_COMBINE_CXX03_HPP - -#ifndef BOOST_RANGE_MIN_COMBINE_ARGS -#define BOOST_RANGE_MIN_COMBINE_ARGS 2 -#endif - -#ifndef BOOST_RANGE_MAX_COMBINE_ARGS -#define BOOST_RANGE_MAX_COMBINE_ARGS 5 -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -struct combined_result_impl; - -template -struct combined_result - : combined_result_impl::value> -{ -}; - -#define BOOST_RANGE_combined_element(z, n, data) \ - typename tuples::element::type - -#define BOOST_RANGE_combined_result(z, n, data) \ - template \ - struct combined_result_impl \ - : result_of \ - { \ - }; - -#define BOOST_PP_LOCAL_MACRO(n) BOOST_RANGE_combined_result(~,n,~) - -#define BOOST_PP_LOCAL_LIMITS (BOOST_RANGE_MIN_COMBINE_ARGS, \ - BOOST_RANGE_MAX_COMBINE_ARGS) -#include BOOST_PP_LOCAL_ITERATE() - -#define BOOST_RANGE_combined_get(z, n, data) get(tuple) - -#define BOOST_RANGE_combined_unpack(z, n, data) \ - template inline \ - typename combined_result::type \ - unpack_(mpl::int_, F f, const T& tuple) \ - { \ - return f(BOOST_PP_ENUM(n, BOOST_RANGE_combined_get, ~)); \ - } - -#define BOOST_PP_LOCAL_MACRO(n) BOOST_RANGE_combined_unpack(~,n,~) -#define BOOST_PP_LOCAL_LIMITS (BOOST_RANGE_MIN_COMBINE_ARGS, \ - BOOST_RANGE_MAX_COMBINE_ARGS) -#include BOOST_PP_LOCAL_ITERATE() - -} // namespace range_detail - -namespace range -{ - -#define BOOST_RANGE_combined_seq(z, n, data) boost::data(BOOST_PP_CAT(r,n)) - -#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES - -#include - -#else // by using rvalue references we avoid requiring 2^n overloads. - -#include - -#endif - -#define BOOST_PP_LOCAL_MACRO(n) BOOST_RANGE_combine(~,n,~) -#define BOOST_PP_LOCAL_LIMITS (BOOST_RANGE_MIN_COMBINE_ARGS, \ - BOOST_RANGE_MAX_COMBINE_ARGS) -#include BOOST_PP_LOCAL_ITERATE() - - } // namespace range - - using boost::range::combine; - -} // namespace boost - -#endif // include guard - -#undef BOOST_RANGE_combined_element -#undef BOOST_RANGE_combined_result -#undef BOOST_RANGE_combined_get -#undef BOOST_RANGE_combined_unpack -#undef BOOST_RANGE_combined_seq -#undef BOOST_RANGE_combined_exp_pred -#undef BOOST_RANGE_combined_exp_op -#undef BOOST_RANGE_combined_exp -#undef BOOST_RANGE_combined_bitset_pred -#undef BOOST_RANGE_combined_bitset_op -#undef BOOST_RANGE_combined_bitset -#undef BOOST_RANGE_combined_range_iterator -#undef BOOST_RANGE_combined_args -#undef BOOST_RANGE_combine_impl -#undef BOOST_RANGE_combine diff --git a/lib/3rdParty/boost/boost/range/detail/combine_cxx11.hpp b/lib/3rdParty/boost/boost/range/detail/combine_cxx11.hpp deleted file mode 100644 index a7fa5b1e9..000000000 --- a/lib/3rdParty/boost/boost/range/detail/combine_cxx11.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright Neil Groves 2014. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_COMBINE_CXX11_HPP -#define BOOST_RANGE_DETAIL_COMBINE_CXX11_HPP - -#include -#include -#include -#include -#include - -#include - -namespace boost -{ - namespace range - { - -template -auto combine(Ranges&&... rngs) -> - combined_range -{ - return combined_range( - boost::make_tuple(boost::begin(rngs)...), - boost::make_tuple(boost::end(rngs)...)); -} - - } // namespace range - -using range::combine; - -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/combine_no_rvalue.hpp b/lib/3rdParty/boost/boost/range/detail/combine_no_rvalue.hpp deleted file mode 100644 index bdb3950dc..000000000 --- a/lib/3rdParty/boost/boost/range/detail/combine_no_rvalue.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#define BOOST_RANGE_combined_exp_pred(d, data) BOOST_PP_TUPLE_ELEM(3, 0, data) - -#define BOOST_RANGE_combined_exp_op(d, data) \ - ( \ - BOOST_PP_DEC( \ - BOOST_PP_TUPLE_ELEM(3, 0, data) \ - ), \ - BOOST_PP_TUPLE_ELEM(3, 1, data), \ - BOOST_PP_MUL_D( \ - d, \ - BOOST_PP_TUPLE_ELEM(3, 2, data), \ - BOOST_PP_TUPLE_ELEM(3, 1, data) \ - ) \ - ) - -#define BOOST_RANGE_combined_exp(x, n) \ - BOOST_PP_TUPLE_ELEM(3, 2, \ - BOOST_PP_WHILE(BOOST_RANGE_combined_exp_pred, \ - BOOST_RANGE_combined_exp_op, (n, x, 1))) - -#define BOOST_RANGE_combined_bitset_pred(n, state) \ - BOOST_PP_TUPLE_ELEM(2,1,state) - -#define BOOST_RANGE_combined_bitset_op(d, state) \ - (BOOST_PP_DIV_D(d, BOOST_PP_TUPLE_ELEM(2,0,state), 2), \ - BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(2,1,state))) - -#define BOOST_RANGE_combined_bitset(i, n) \ -BOOST_PP_MOD(BOOST_PP_TUPLE_ELEM(2, 0, \ - BOOST_PP_WHILE(BOOST_RANGE_combined_bitset_pred, \ - BOOST_RANGE_combined_bitset_op, (i,n))), 2) - -#define BOOST_RANGE_combined_range_iterator(z, n, i) \ - typename range_iterator< \ - BOOST_PP_CAT(R,n) \ - BOOST_PP_IF( \ - BOOST_RANGE_combined_bitset(i,n), \ - BOOST_PP_IDENTITY(const), \ - BOOST_PP_EMPTY)() \ - >::type - -#define BOOST_RANGE_combined_args(z, n, i) \ - BOOST_PP_CAT(R, n) \ - BOOST_PP_IF(BOOST_RANGE_combined_bitset(i,n), const&, &) \ - BOOST_PP_CAT(r, n) - -#define BOOST_RANGE_combine_impl(z, i, n)\ - template \ - inline range::combined_range< \ - boost::tuple \ - > \ - combine(BOOST_PP_ENUM(n, BOOST_RANGE_combined_args, i)) \ - { \ - typedef tuple< \ - BOOST_PP_ENUM(n, BOOST_RANGE_combined_range_iterator, i) \ - > rng_tuple_t; \ - return range::combined_range( \ - rng_tuple_t(BOOST_PP_ENUM(n, BOOST_RANGE_combined_seq, begin)), \ - rng_tuple_t(BOOST_PP_ENUM(n, BOOST_RANGE_combined_seq, end))); \ - } - - -#define BOOST_RANGE_combine(z, n, data) \ - BOOST_PP_REPEAT(BOOST_RANGE_combined_exp(2,n), BOOST_RANGE_combine_impl, n) diff --git a/lib/3rdParty/boost/boost/range/detail/combine_rvalue.hpp b/lib/3rdParty/boost/boost/range/detail/combine_rvalue.hpp deleted file mode 100644 index 2e323b75a..000000000 --- a/lib/3rdParty/boost/boost/range/detail/combine_rvalue.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#define BOOST_RANGE_combined_args(z, n, i) \ - BOOST_PP_CAT(R, n)&& BOOST_PP_CAT(r, n) - -#define BOOST_RANGE_combined_range_iterator(z, n, i) \ - typename range_iterator< \ - typename remove_reference::type \ - >::type - - -#define BOOST_RANGE_combine(z, n, data) \ - template \ - inline range::combined_range< \ - tuple \ - > \ - combine(BOOST_PP_ENUM(n, BOOST_RANGE_combined_args, ~)) \ - { \ - typedef tuple< \ - BOOST_PP_ENUM(n, BOOST_RANGE_combined_range_iterator, ~) \ - > rng_tuple_t; \ - return range::combined_range( \ - rng_tuple_t(BOOST_PP_ENUM(n, BOOST_RANGE_combined_seq, begin)), \ - rng_tuple_t(BOOST_PP_ENUM(n, BOOST_RANGE_combined_seq, end))); \ - } diff --git a/lib/3rdParty/boost/boost/range/detail/common.hpp b/lib/3rdParty/boost/boost/range/detail/common.hpp deleted file mode 100644 index 00b665bef..000000000 --- a/lib/3rdParty/boost/boost/range/detail/common.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_COMMON_HPP -#define BOOST_RANGE_DETAIL_COMMON_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -////////////////////////////////////////////////////////////////////////////// -// missing partial specialization workaround. -////////////////////////////////////////////////////////////////////////////// - -namespace boost -{ - namespace range_detail - { - // 1 = std containers - // 2 = std::pair - // 3 = const std::pair - // 4 = array - // 5 = const array - // 6 = char array - // 7 = wchar_t array - // 8 = char* - // 9 = const char* - // 10 = whar_t* - // 11 = const wchar_t* - // 12 = string - - typedef mpl::int_<1>::type std_container_; - typedef mpl::int_<2>::type std_pair_; - typedef mpl::int_<3>::type const_std_pair_; - typedef mpl::int_<4>::type array_; - typedef mpl::int_<5>::type const_array_; - typedef mpl::int_<6>::type char_array_; - typedef mpl::int_<7>::type wchar_t_array_; - typedef mpl::int_<8>::type char_ptr_; - typedef mpl::int_<9>::type const_char_ptr_; - typedef mpl::int_<10>::type wchar_t_ptr_; - typedef mpl::int_<11>::type const_wchar_t_ptr_; - typedef mpl::int_<12>::type string_; - - template< typename C > - struct range_helper - { - static C* c; - static C ptr; - - BOOST_STATIC_CONSTANT( bool, is_pair_ = sizeof( boost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_char_ptr_ = sizeof( boost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_const_char_ptr_ = sizeof( boost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_wchar_t_ptr_ = sizeof( boost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_const_wchar_t_ptr_ = sizeof( boost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_char_array_ = sizeof( boost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_wchar_t_array_ = sizeof( boost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_string_ = (boost::mpl::or_, boost::mpl::bool_ >::value )); - BOOST_STATIC_CONSTANT( bool, is_array_ = boost::is_array::value ); - - }; - - template< typename C > - class range - { - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_pair_, - boost::range_detail::std_pair_, - void >::type pair_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_array_, - boost::range_detail::array_, - pair_t >::type array_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_string_, - boost::range_detail::string_, - array_t >::type string_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_char_ptr_, - boost::range_detail::const_char_ptr_, - string_t >::type const_char_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_ptr_, - boost::range_detail::char_ptr_, - const_char_ptr_t >::type char_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_wchar_t_ptr_, - boost::range_detail::const_wchar_t_ptr_, - char_ptr_t >::type const_wchar_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_ptr_, - boost::range_detail::wchar_t_ptr_, - const_wchar_ptr_t >::type wchar_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_array_, - boost::range_detail::wchar_t_array_, - wchar_ptr_t >::type wchar_array_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_array_, - boost::range_detail::char_array_, - wchar_array_t >::type char_array_t; - public: - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::is_void::value, - boost::range_detail::std_container_, - char_array_t >::type type; - }; // class 'range' - } -} - -#endif - diff --git a/lib/3rdParty/boost/boost/range/detail/default_constructible_unary_fn.hpp b/lib/3rdParty/boost/boost/range/detail/default_constructible_unary_fn.hpp deleted file mode 100644 index 374ddda15..000000000 --- a/lib/3rdParty/boost/boost/range/detail/default_constructible_unary_fn.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_DEFAULT_CONSTRUCTIBLE_UNARY_FN_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_DEFAULT_CONSTRUCTIBLE_UNARY_FN_HPP_INCLUDED - -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -class default_constructible_unary_fn_wrapper -{ -public: - typedef R result_type; - - default_constructible_unary_fn_wrapper() - { - } - default_constructible_unary_fn_wrapper(const F& source) - : m_impl(source) - { - } - template - R operator()(const Arg& arg) const - { - BOOST_ASSERT(m_impl); - return (*m_impl)(arg); - } - template - R operator()(Arg& arg) const - { - BOOST_ASSERT(m_impl); - return (*m_impl)(arg); - } -private: - boost::optional m_impl; -}; - -template -struct default_constructible_unary_fn_gen -{ - typedef typename boost::mpl::if_< - boost::has_trivial_default_constructor, - F, - default_constructible_unary_fn_wrapper - >::type type; -}; - - } // namespace range_detail -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/demote_iterator_traversal_tag.hpp b/lib/3rdParty/boost/boost/range/detail/demote_iterator_traversal_tag.hpp deleted file mode 100644 index 6d65720a0..000000000 --- a/lib/3rdParty/boost/boost/range/detail/demote_iterator_traversal_tag.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// Acknowledgements: -// aschoedl supplied a fix to supply the level of interoperability I had -// originally intended, but failed to implement. -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_DEMOTE_ITERATOR_TRAVERSAL_TAG_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_DEMOTE_ITERATOR_TRAVERSAL_TAG_HPP_INCLUDED - -#include - -namespace boost -{ - namespace range_detail - { - -template -struct inner_demote_iterator_traversal_tag -{ -}; - -#define BOOST_DEMOTE_TRAVERSAL_TAG( Tag1, Tag2, ResultTag ) \ -template<> struct inner_demote_iterator_traversal_tag< Tag1 , Tag2 > \ -{ \ - typedef ResultTag type; \ -}; - -BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, no_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, incrementable_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, single_pass_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, forward_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, bidirectional_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, random_access_traversal_tag, no_traversal_tag ) - -BOOST_DEMOTE_TRAVERSAL_TAG( incrementable_traversal_tag, no_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( incrementable_traversal_tag, incrementable_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( incrementable_traversal_tag, single_pass_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( incrementable_traversal_tag, forward_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( incrementable_traversal_tag, bidirectional_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( incrementable_traversal_tag, random_access_traversal_tag, incrementable_traversal_tag ) - -BOOST_DEMOTE_TRAVERSAL_TAG( single_pass_traversal_tag, no_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( single_pass_traversal_tag, incrementable_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( single_pass_traversal_tag, single_pass_traversal_tag, single_pass_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( single_pass_traversal_tag, forward_traversal_tag, single_pass_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( single_pass_traversal_tag, bidirectional_traversal_tag, single_pass_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( single_pass_traversal_tag, random_access_traversal_tag, single_pass_traversal_tag ) - -BOOST_DEMOTE_TRAVERSAL_TAG( forward_traversal_tag, no_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( forward_traversal_tag, incrementable_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( forward_traversal_tag, single_pass_traversal_tag, single_pass_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( forward_traversal_tag, forward_traversal_tag, forward_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( forward_traversal_tag, bidirectional_traversal_tag, forward_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( forward_traversal_tag, random_access_traversal_tag, forward_traversal_tag ) - -BOOST_DEMOTE_TRAVERSAL_TAG( bidirectional_traversal_tag, no_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( bidirectional_traversal_tag, incrementable_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( bidirectional_traversal_tag, single_pass_traversal_tag, single_pass_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( bidirectional_traversal_tag, forward_traversal_tag, forward_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( bidirectional_traversal_tag, bidirectional_traversal_tag, bidirectional_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( bidirectional_traversal_tag, random_access_traversal_tag, bidirectional_traversal_tag ) - -BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, no_traversal_tag, no_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, incrementable_traversal_tag, incrementable_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, single_pass_traversal_tag, single_pass_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, forward_traversal_tag, forward_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, bidirectional_traversal_tag, bidirectional_traversal_tag ) -BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, random_access_traversal_tag, random_access_traversal_tag ) - -#undef BOOST_DEMOTE_TRAVERSAL_TAG - -template -struct demote_iterator_traversal_tag - : inner_demote_iterator_traversal_tag< - typename boost::iterators::pure_traversal_tag< IteratorTraversalTag1 >::type, - typename boost::iterators::pure_traversal_tag< IteratorTraversalTag2 >::type - > -{ -}; - - } // namespace range_detail -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/detail_str.hpp b/lib/3rdParty/boost/boost/range/detail/detail_str.hpp deleted file mode 100644 index 5ef7a3450..000000000 --- a/lib/3rdParty/boost/boost/range/detail/detail_str.hpp +++ /dev/null @@ -1,376 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_DETAIL_STR_HPP -#define BOOST_RANGE_DETAIL_DETAIL_STR_HPP - -#include // BOOST_MSVC -#include - -namespace boost -{ - - namespace range_detail - { - // - // iterator - // - - template<> - struct range_iterator_ - { - template< typename T > - struct pts - { - typedef BOOST_RANGE_DEDUCED_TYPENAME - remove_extent::type* type; - }; - }; - - template<> - struct range_iterator_ - { - template< typename S > - struct pts - { - typedef char* type; - }; - }; - - template<> - struct range_iterator_ - { - template< typename S > - struct pts - { - typedef const char* type; - }; - }; - - template<> - struct range_iterator_ - { - template< typename S > - struct pts - { - typedef wchar_t* type; - }; - }; - - template<> - struct range_iterator_ - { - template< typename S > - struct pts - { - typedef const wchar_t* type; - }; - }; - - - // - // const iterator - // - - template<> - struct range_const_iterator_ - { - template< typename T > - struct pts - { - typedef const BOOST_RANGE_DEDUCED_TYPENAME - remove_extent::type* type; - }; - }; - - template<> - struct range_const_iterator_ - { - template< typename S > - struct pts - { - typedef const char* type; - }; - }; - - template<> - struct range_const_iterator_ - { - template< typename S > - struct pts - { - typedef const char* type; - }; - }; - - template<> - struct range_const_iterator_ - { - template< typename S > - struct pts - { - typedef const wchar_t* type; - }; - }; - - template<> - struct range_const_iterator_ - { - template< typename S > - struct pts - { - typedef const wchar_t* type; - }; - }; - } -} - -#include -#include -#include -#include -#include - -namespace boost -{ - - namespace range_detail - { - // - // str_begin() - // - template<> - struct range_begin - { - static char* fun( char* s ) - { - return s; - } - }; - - template<> - struct range_begin - { - static const char* fun( const char* s ) - { - return s; - } - }; - - template<> - struct range_begin - { - - static wchar_t* fun( wchar_t* s ) - { - return s; - } - }; - - template<> - struct range_begin - { - static const wchar_t* fun( const wchar_t* s ) - { - return s; - } - }; - - template< typename C > - inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type - str_begin( C& c ) - { - return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME - range_detail::range::type >::fun( c ); - } - - // - // str_end() - // - - template<> - struct range_end - { - template< typename T, std::size_t sz > - static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] ) - { - return boost::range_detail::array_end( boost_range_array ); - } - }; - - template<> - struct range_end - { - template< typename T, std::size_t sz > - static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] ) - { - return boost::range_detail::array_end( boost_range_array ); - } - }; - - template<> - struct range_end - { - static char* fun( char* s ) - { - return boost::range_detail::str_end( s ); - } - }; - - template<> - struct range_end - { - static const char* fun( const char* s ) - { - return boost::range_detail::str_end( s ); - } - }; - - template<> - struct range_end - { - static wchar_t* fun( wchar_t* s ) - { - return boost::range_detail::str_end( s ); - } - }; - - - template<> - struct range_end - { - static const wchar_t* fun( const wchar_t* s ) - { - return boost::range_detail::str_end( s ); - } - }; - - template< typename C > - inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type - str_end( C& c ) - { - return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME - range_detail::range::type >::fun( c ); - } - - // - // size_type - // - - template<> - struct range_size_type_ - { - template< typename A > - struct pts - { - typedef std::size_t type; - }; - }; - - template<> - struct range_size_type_ - { - template< typename S > - struct pts - { - typedef std::size_t type; - }; - }; - - template<> - struct range_size_type_ - { - template< typename S > - struct pts - { - typedef std::size_t type; - }; - }; - - template<> - struct range_size_type_ - { - template< typename S > - struct pts - { - typedef std::size_t type; - }; - }; - - template<> - struct range_size_type_ - { - template< typename S > - struct pts - { - typedef std::size_t type; - }; - }; - - // - // value_type - // - - template<> - struct range_value_type_ - { - template< typename T > - struct pts - { - typedef char type; - }; - }; - - template<> - struct range_value_type_ - { - template< typename S > - struct pts - { - typedef char type; - }; - }; - - template<> - struct range_value_type_ - { - template< typename S > - struct pts - { - typedef const char type; - }; - }; - - template<> - struct range_value_type_ - { - template< typename S > - struct pts - { - typedef wchar_t type; - }; - }; - - template<> - struct range_value_type_ - { - template< typename S > - struct pts - { - typedef const wchar_t type; - }; - }; - - } // namespace 'range_detail' - -} // namespace 'boost' - - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/difference_type.hpp b/lib/3rdParty/boost/boost/range/detail/difference_type.hpp deleted file mode 100644 index c6415160f..000000000 --- a/lib/3rdParty/boost/boost/range/detail/difference_type.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_DIFFERENCE_TYPE_HPP -#define BOOST_RANGE_DETAIL_DIFFERENCE_TYPE_HPP - -#include -#include - -////////////////////////////////////////////////////////////////////////////// -// missing partial specialization workaround. -////////////////////////////////////////////////////////////////////////////// - -namespace boost -{ - namespace range_detail - { - template< typename T > - struct range_difference_type_; - - template<> - struct range_difference_type_ - { - template< typename C > - struct pts - { - typedef BOOST_DEDUCED_TYPENAME C::difference_type type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename P > - struct pts - { - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::iterator_difference< BOOST_DEDUCED_TYPENAME P::first_type>::type type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename A > - struct pts - { - typedef std::ptrdiff_t type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename A > - struct pts - { - typedef std::ptrdiff_t type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename S > - struct pts - { - typedef std::ptrdiff_t type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename S > - struct pts - { - typedef std::ptrdiff_t type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename S > - struct pts - { - typedef std::ptrdiff_t type; - }; - }; - - template<> - struct range_difference_type_ - { - template< typename S > - struct pts - { - typedef std::ptrdiff_t type; - }; - }; - - } - - template< typename C > - class range_difference - { - typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type c_type; - public: - typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range_difference_type_::BOOST_NESTED_TEMPLATE pts::type type; - }; - -} - -#endif - diff --git a/lib/3rdParty/boost/boost/range/detail/empty.hpp b/lib/3rdParty/boost/boost/range/detail/empty.hpp deleted file mode 100644 index b098705d1..000000000 --- a/lib/3rdParty/boost/boost/range/detail/empty.hpp +++ /dev/null @@ -1,120 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_EMPTY_HPP -#define BOOST_RANGE_DETAIL_EMPTY_HPP - -#include - -namespace boost -{ - namespace range_detail - { - template< typename T > - struct range_empty; - - ////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_empty - { - template< typename C > - static bool fun( C& c ) - { - return c.empty(); - }; - }; - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_empty - { - template< typename P > - static bool fun( const P& p ) - { - return p.first == p.second; - } - }; - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_empty - { - template< typename T, std::size_t sz > - static bool fun( T BOOST_ARRAY_REF[sz] ) - { - if( boost_range_array == 0 ) - return true; - return false; - } - }; - - ////////////////////////////////////////////////////////////////////// - // string - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_empty - { - static bool fun( const char* s ) - { - return s == 0 || s[0] == 0; - } - }; - - template<> - struct range_empty - { - static bool fun( const char* s ) - { - return s == 0 || s[0] == 0; - } - }; - - template<> - struct range_empty - { - static bool fun( const wchar_t* s ) - { - return s == 0 || s[0] == 0; - } - }; - - template<> - struct range_empty - { - static bool fun( const wchar_t* s ) - { - return s == 0 || s[0] == 0; - } - }; - - } // namespace 'range_detail' - - - template< typename C > - inline bool - empty( const C& c ) - { - return range_detail::range_empty< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type >::fun( c ); - } - -} // namespace 'boost' - - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/end.hpp b/lib/3rdParty/boost/boost/range/detail/end.hpp deleted file mode 100644 index f2f71780a..000000000 --- a/lib/3rdParty/boost/boost/range/detail/end.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_END_HPP -#define BOOST_RANGE_DETAIL_END_HPP - -#include // BOOST_MSVC -#include - -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< typename T > - struct range_end; - - ////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_end - { - template< typename C > - static BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type - fun( C& c ) - { - return c.end(); - }; - }; - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_end - { - template< typename P > - static BOOST_RANGE_DEDUCED_TYPENAME range_iterator

::type - fun( const P& p ) - { - return p.second; - } - }; - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - template<> - struct range_end - { - template - static BOOST_RANGE_DEDUCED_TYPENAME remove_extent::type* fun(T& t) - { - return t + remove_extent::size; - } - }; - - } // namespace 'range_detail' - - namespace range_adl_barrier - { - template< typename C > - inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator::type - end( C& c ) - { - return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range::type >::fun( c ); - } - } // namespace range_adl_barrier - -} // namespace 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/extract_optional_type.hpp b/lib/3rdParty/boost/boost/range/detail/extract_optional_type.hpp deleted file mode 100644 index 0381434a8..000000000 --- a/lib/3rdParty/boost/boost/range/detail/extract_optional_type.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// Boost.Range library -// -// Copyright Arno Schoedl & Neil Groves 2009. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) - -// Defines extract_some_typedef which exposes T::some_typedef as -// extract_some_typedef::type if T::some_typedef exists. Otherwise -// extract_some_typedef is empty. -#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef ) \ - BOOST_MPL_HAS_XXX_TRAIT_DEF(a_typedef) \ - template< typename C, bool B = BOOST_PP_CAT(has_, a_typedef)::value > \ - struct BOOST_PP_CAT(extract_, a_typedef) \ - {}; \ - template< typename C > \ - struct BOOST_PP_CAT(extract_, a_typedef)< C, true > \ - { \ - typedef BOOST_DEDUCED_TYPENAME C::a_typedef type; \ - }; - -#else - -#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef ) \ - template< typename C > \ - struct BOOST_PP_CAT(extract_, a_typedef) \ - { \ - typedef BOOST_DEDUCED_TYPENAME C::a_typedef type; \ - }; - -#endif - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/has_member_size.hpp b/lib/3rdParty/boost/boost/range/detail/has_member_size.hpp deleted file mode 100644 index 0c639aa89..000000000 --- a/lib/3rdParty/boost/boost/range/detail/has_member_size.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 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). -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_HAS_MEMBER_SIZE_HPP -#define BOOST_RANGE_DETAIL_HAS_MEMBER_SIZE_HPP - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -class has_member_size_impl -{ -private: - template - class check - { - }; - - template - static boost::uint8_t f(check*); - - template - static boost::uint16_t f(...); - -public: - static const bool value = - (sizeof(f(0)) == sizeof(boost::uint8_t)); - - typedef typename mpl::if_c< - (sizeof(f(0)) == sizeof(boost::uint8_t)), - mpl::true_, - mpl::false_ - >::type type; -}; - -template -struct has_member_size -{ - typedef typename mpl::and_< - typename is_class::type, - typename has_member_size_impl::type - >::type type; - - static const bool value = - is_class::value && has_member_size_impl::value; -}; - - } // namespace range_detail -}// namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/implementation_help.hpp b/lib/3rdParty/boost/boost/range/detail/implementation_help.hpp deleted file mode 100644 index f35953f34..000000000 --- a/lib/3rdParty/boost/boost/range/detail/implementation_help.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP -#define BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP - -#include -#include -#include -#include -#include - -#ifndef BOOST_NO_CWCHAR -#include -#endif - -namespace boost -{ - namespace range_detail - { - template - inline void boost_range_silence_warning( const T& ) { } - - ///////////////////////////////////////////////////////////////////// - // end() help - ///////////////////////////////////////////////////////////////////// - - inline const char* str_end( const char* s, const char* ) - { - return s + strlen( s ); - } - -#ifndef BOOST_NO_CWCHAR - inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) - { - return s + wcslen( s ); - } -#else - inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) - { - if( s == 0 || s[0] == 0 ) - return s; - while( *++s != 0 ) - ; - return s; - } -#endif - - template< class Char > - inline Char* str_end( Char* s ) - { - return const_cast( str_end( s, s ) ); - } - - template< class T, std::size_t sz > - inline T* array_end( T BOOST_RANGE_ARRAY_REF()[sz] ) - { - return boost_range_array + sz; - } - - template< class T, std::size_t sz > - inline const T* array_end( const T BOOST_RANGE_ARRAY_REF()[sz] ) - { - return boost_range_array + sz; - } - - ///////////////////////////////////////////////////////////////////// - // size() help - ///////////////////////////////////////////////////////////////////// - - template< class Char > - inline std::size_t str_size( const Char* const& s ) - { - return str_end( s ) - s; - } - - template< class T, std::size_t sz > - inline std::size_t array_size( T BOOST_RANGE_ARRAY_REF()[sz] ) - { - boost_range_silence_warning( boost_range_array ); - return sz; - } - - template< class T, std::size_t sz > - inline std::size_t array_size( const T BOOST_RANGE_ARRAY_REF()[sz] ) - { - boost_range_silence_warning( boost_range_array ); - return sz; - } - - inline bool is_same_address(const void* l, const void* r) - { - return l == r; - } - - template - inline bool is_same_object(const T1& l, const T2& r) - { - return range_detail::is_same_address(&l, &r); - } - - } // namespace 'range_detail' - -} // namespace 'boost' - - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/join_iterator.hpp b/lib/3rdParty/boost/boost/range/detail/join_iterator.hpp deleted file mode 100644 index 1020ebf63..000000000 --- a/lib/3rdParty/boost/boost/range/detail/join_iterator.hpp +++ /dev/null @@ -1,354 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// Acknowledgements: -// aschoedl contributed an improvement to the determination -// of the Reference type parameter. -// -// Leonid Gershanovich reported Trac ticket 7376 about the dereference operator -// requiring identical reference types due to using the ternary if. -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_JOIN_ITERATOR_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_JOIN_ITERATOR_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -struct join_iterator_link -{ -public: - join_iterator_link(Iterator1 last1, Iterator2 first2) - : last1(last1) - , first2(first2) - { - } - - Iterator1 last1; - Iterator2 first2; - -private: - join_iterator_link() /* = delete */ ; -}; - -class join_iterator_begin_tag {}; -class join_iterator_end_tag {}; - -template -class join_iterator_union -{ -public: - typedef Iterator1 iterator1_t; - typedef Iterator2 iterator2_t; - - join_iterator_union() {} - join_iterator_union(unsigned int /*selected*/, const iterator1_t& it1, const iterator2_t& it2) : m_it1(it1), m_it2(it2) {} - - iterator1_t& it1() { return m_it1; } - const iterator1_t& it1() const { return m_it1; } - - iterator2_t& it2() { return m_it2; } - const iterator2_t& it2() const { return m_it2; } - - Reference dereference(unsigned int selected) const - { - if (selected) - return *m_it2; - return *m_it1; - } - - bool equal(const join_iterator_union& other, unsigned int selected) const - { - return selected - ? m_it2 == other.m_it2 - : m_it1 == other.m_it1; - } - -private: - iterator1_t m_it1; - iterator2_t m_it2; -}; - -template -class join_iterator_union -{ -public: - typedef Iterator iterator1_t; - typedef Iterator iterator2_t; - - join_iterator_union() {} - - join_iterator_union(unsigned int selected, const iterator1_t& it1, const iterator2_t& it2) - : m_it(selected ? it2 : it1) - { - } - - iterator1_t& it1() { return m_it; } - const iterator1_t& it1() const { return m_it; } - - iterator2_t& it2() { return m_it; } - const iterator2_t& it2() const { return m_it; } - - Reference dereference(unsigned int) const - { - return *m_it; - } - - bool equal(const join_iterator_union& other, - unsigned int /*selected*/) const - { - return m_it == other.m_it; - } - -private: - iterator1_t m_it; -}; - -template::type - // find least demanding, commonly supported reference type, in the order &, const&, and by-value: - , typename Reference = typename mpl::if_c< - !is_reference::type>::value - || !is_reference::type>::value, - typename remove_const< - typename remove_reference< - typename iterator_reference::type - >::type - >::type, - typename mpl::if_c< - is_const< - typename remove_reference< - typename iterator_reference::type - >::type - >::value - || is_const< - typename remove_reference< - typename iterator_reference::type - >::type - >::value, - typename add_const< - typename iterator_reference::type - >::type, - typename iterator_reference::type - >::type - >::type - , typename Traversal = typename demote_iterator_traversal_tag< - typename iterator_traversal::type - , typename iterator_traversal::type>::type -> -class join_iterator - : public iterator_facade, ValueType, Traversal, Reference> -{ - typedef join_iterator_link link_t; - typedef join_iterator_union iterator_union; -public: - typedef Iterator1 iterator1_t; - typedef Iterator2 iterator2_t; - - join_iterator() - : m_section(0u) - , m_it(0u, iterator1_t(), iterator2_t()) - , m_link(link_t(iterator1_t(), iterator2_t())) - {} - - join_iterator(unsigned int section, Iterator1 current1, Iterator1 last1, Iterator2 first2, Iterator2 current2) - : m_section(section) - , m_it(section, current1, current2) - , m_link(link_t(last1, first2)) - { - } - - template - join_iterator(Range1& r1, Range2& r2, join_iterator_begin_tag) - : m_section(boost::empty(r1) ? 1u : 0u) - , m_it(boost::empty(r1) ? 1u : 0u, boost::begin(r1), boost::begin(r2)) - , m_link(link_t(boost::end(r1), boost::begin(r2))) - { - } - - template - join_iterator(const Range1& r1, const Range2& r2, join_iterator_begin_tag) - : m_section(boost::empty(r1) ? 1u : 0u) - , m_it(boost::empty(r1) ? 1u : 0u, boost::const_begin(r1), boost::const_begin(r2)) - , m_link(link_t(boost::const_end(r1), boost::const_begin(r2))) - { - } - - template - join_iterator(Range1& r1, Range2& r2, join_iterator_end_tag) - : m_section(1u) - , m_it(1u, boost::end(r1), boost::end(r2)) - , m_link(link_t(boost::end(r1), boost::begin(r2))) - { - } - - template - join_iterator(const Range1& r1, const Range2& r2, join_iterator_end_tag) - : m_section(1u) - , m_it(1u, boost::const_end(r1), boost::const_end(r2)) - , m_link(link_t(boost::const_end(r1), boost::const_begin(r2))) - { - } - -private: - void increment() - { - if (m_section) - ++m_it.it2(); - else - { - ++m_it.it1(); - if (m_it.it1() == m_link.last1) - { - m_it.it2() = m_link.first2; - m_section = 1u; - } - } - } - - void decrement() - { - if (m_section) - { - if (m_it.it2() == m_link.first2) - { - m_it.it1() = boost::prior(m_link.last1); - m_section = 0u; - } - else - --m_it.it2(); - } - else - --m_it.it1(); - } - - typename join_iterator::reference dereference() const - { - return m_it.dereference(m_section); - } - - bool equal(const join_iterator& other) const - { - return m_section == other.m_section - && m_it.equal(other.m_it, m_section); - } - - void advance(typename join_iterator::difference_type offset) - { - if (m_section) - advance_from_range2(offset); - else - advance_from_range1(offset); - } - - typename join_iterator::difference_type distance_to(const join_iterator& other) const - { - typename join_iterator::difference_type result; - if (m_section) - { - if (other.m_section) - result = other.m_it.it2() - m_it.it2(); - else - { - result = (m_link.first2 - m_it.it2()) - + (other.m_it.it1() - m_link.last1); - - BOOST_ASSERT( result <= 0 ); - } - } - else - { - if (other.m_section) - { - result = (m_link.last1 - m_it.it1()) - + (other.m_it.it2() - m_link.first2); - } - else - result = other.m_it.it1() - m_it.it1(); - } - return result; - } - - void advance_from_range2(typename join_iterator::difference_type offset) - { - typedef typename join_iterator::difference_type difference_t; - BOOST_ASSERT( m_section == 1u ); - if (offset < 0) - { - difference_t r2_dist = m_link.first2 - m_it.it2(); - BOOST_ASSERT( r2_dist <= 0 ); - if (offset >= r2_dist) - std::advance(m_it.it2(), offset); - else - { - difference_t r1_dist = offset - r2_dist; - BOOST_ASSERT( r1_dist <= 0 ); - m_it.it1() = m_link.last1 + r1_dist; - m_section = 0u; - } - } - else - std::advance(m_it.it2(), offset); - } - - void advance_from_range1(typename join_iterator::difference_type offset) - { - typedef typename join_iterator::difference_type difference_t; - BOOST_ASSERT( m_section == 0u ); - if (offset > 0) - { - difference_t r1_dist = m_link.last1 - m_it.it1(); - BOOST_ASSERT( r1_dist >= 0 ); - if (offset < r1_dist) - std::advance(m_it.it1(), offset); - else - { - difference_t r2_dist = offset - r1_dist; - BOOST_ASSERT( r2_dist >= 0 ); - m_it.it2() = m_link.first2 + r2_dist; - m_section = 1u; - } - } - else - std::advance(m_it.it1(), offset); - } - - unsigned int m_section; - iterator_union m_it; - link_t m_link; - - friend class ::boost::iterator_core_access; -}; - - } // namespace range_detail - -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/microsoft.hpp b/lib/3rdParty/boost/boost/range/detail/microsoft.hpp deleted file mode 100644 index 7b672c97c..000000000 --- a/lib/3rdParty/boost/boost/range/detail/microsoft.hpp +++ /dev/null @@ -1,931 +0,0 @@ -#ifndef BOOST_RANGE_DETAIL_MICROSOFT_HPP -#define BOOST_RANGE_DETAIL_MICROSOFT_HPP - -// Boost.Range MFC/ATL Extension -// -// Copyright Shunsuke Sogame 2005-2006. -// 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) - - - - -// config -// - - -#include - - -#define BOOST_RANGE_DETAIL_MICROSOFT_RANGE_VERSION_1 1 - - -#if !defined(BOOST_RANGE_DETAIL_MICROSOFT_RANGE_VERSION_1) - #define BOOST_RANGE_DETAIL_MICROSOFT_range_mutable_iterator range_mutable_iterator - #define BOOST_RANGE_DETAIL_MICROSOFT_range_begin range_begin - #define BOOST_RANGE_DETAIL_MICROSOFT_range_end range_end -#else - #define BOOST_RANGE_DETAIL_MICROSOFT_range_mutable_iterator range_mutable_iterator - #define BOOST_RANGE_DETAIL_MICROSOFT_range_begin range_begin - #define BOOST_RANGE_DETAIL_MICROSOFT_range_end range_end -#endif - - - - -// yet another customization way -// - - -#include // iterator_difference -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // disable_if - -#if !defined(BOOST_RANGE_DETAIL_MICROSOFT_RANGE_VERSION_1) - #include -#else - #include // distance - #include - #include - #include -#endif - - -namespace boost { namespace range_detail_microsoft { - - - // customization point - // - - template< class Tag > - struct customization; - - - template< class T > - struct customization_tag; - - - struct using_type_as_tag - { }; - - - // Topic: - // In fact, it is unnecessary for VC++. - // VC++'s behavior seems conforming, while GCC fails without this. - template< class Iterator, class T > - struct mutable_ : - disable_if< is_const, Iterator > - { }; - - - // helpers - // - - template< class Tag, class T > - struct customization_tag_of - { - typedef typename mpl::if_< is_same, - T, - Tag - >::type type; - }; - - - template< class T > - struct customization_of - { - typedef typename remove_cv::type bare_t; - typedef typename customization_tag::type tag_t; - typedef customization type; - }; - - - template< class T > - struct mutable_iterator_of - { - typedef typename remove_cv::type bare_t; - typedef typename customization_of::type cust_t; - typedef typename cust_t::template meta::mutable_iterator type; - }; - - - template< class T > - struct const_iterator_of - { - typedef typename remove_cv::type bare_t; - typedef typename customization_of::type cust_t; - typedef typename cust_t::template meta::const_iterator type; - }; - - - template< class T > - struct size_type_of - { - typedef typename range_detail_microsoft::mutable_iterator_of::type miter_t; - typedef typename iterator_difference::type type; - }; - - - template< class T > inline - typename mutable_iterator_of::type - begin_of(T& x) - { - typedef typename customization_of::type cust_t; - return cust_t().template begin::type>(x); - } - - - template< class T > inline - typename const_iterator_of::type - begin_of(T const& x) - { - typedef typename customization_of::type cust_t; - return cust_t().template begin::type>(x); - } - - - template< class T > inline - typename mutable_iterator_of::type - end_of(T& x) - { - typedef typename customization_of::type cust_t; - return cust_t().template end::type>(x); - } - - - template< class T > inline - typename const_iterator_of::type - end_of(T const& x) - { - typedef typename customization_of::type cust_t; - return cust_t().template end::type>(x); - } - - -#if defined(BOOST_RANGE_DETAIL_MICROSOFT_RANGE_VERSION_1) - - template< class T > inline - typename size_type_of::type - size_of(T const& x) - { - return std::distance(boost::begin(x), boost::end(x)); - } - -#endif - - - template< class Range > - struct compatible_mutable_iterator : - BOOST_RANGE_DETAIL_MICROSOFT_range_mutable_iterator - { }; - - -} } // namespace boost::range_detail_microsoft - - -#define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_open(NamespaceList) \ - BOOST_PP_LIST_FOR_EACH(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_open_op, ~, NamespaceList) \ -/**/ - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_open_op(r, data, elem) \ - namespace elem { \ - /**/ - - -#define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_close(NamespaceList) \ - BOOST_PP_LIST_FOR_EACH(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_close_op, ~, NamespaceList) \ -/**/ - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_close_op(r, data, elem) \ - } \ - /**/ - - -#define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_expand_op(r, data, elem) \ - :: elem \ -/**/ - - -#define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE(Tag, NamespaceList, Name) \ - namespace boost { namespace range_detail_microsoft { \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_tag(Tag, BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - } } \ - \ - namespace boost { \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_mutable_iterator(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_const_iterator(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_size_type(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - } \ - \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_open(NamespaceList) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_begin(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_begin_const(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_end(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_end_const(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_size(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name)) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_close(NamespaceList) \ -/**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_fullname(NamespaceList, Name) \ - BOOST_PP_LIST_FOR_EACH(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_expand_op, ~, NamespaceList) :: Name \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_tag(Tag, Fullname) \ - template< > \ - struct customization_tag< Fullname > : \ - customization_tag_of< Tag, Fullname > \ - { }; \ - /**/ - - - // metafunctions - // - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_mutable_iterator(Fullname) \ - template< > \ - struct BOOST_RANGE_DETAIL_MICROSOFT_range_mutable_iterator< Fullname > : \ - range_detail_microsoft::mutable_iterator_of< Fullname > \ - { }; \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_const_iterator(Fullname) \ - template< > \ - struct range_const_iterator< Fullname > : \ - range_detail_microsoft::const_iterator_of< Fullname > \ - { }; \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_size_type(Fullname) \ - template< > \ - struct range_size< Fullname > : \ - range_detail_microsoft::size_type_of< Fullname > \ - { }; \ - /**/ - - - // functions - // - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_begin(Fullname) \ - inline \ - boost::range_detail_microsoft::mutable_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_begin(Fullname& x) \ - { \ - return boost::range_detail_microsoft::begin_of(x); \ - } \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_begin_const(Fullname) \ - inline \ - boost::range_detail_microsoft::const_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_begin(Fullname const& x) \ - { \ - return boost::range_detail_microsoft::begin_of(x); \ - } \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_end(Fullname) \ - inline \ - boost::range_detail_microsoft::mutable_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_end(Fullname& x) \ - { \ - return boost::range_detail_microsoft::end_of(x); \ - } \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_end_const(Fullname) \ - inline \ - boost::range_detail_microsoft::const_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_end(Fullname const& x) \ - { \ - return boost::range_detail_microsoft::end_of(x); \ - } \ - /**/ - - - #if !defined(BOOST_RANGE_DETAIL_MICROSOFT_RANGE_VERSION_1) - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_size(Fullname) \ - /**/ - - #else - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE_size(Fullname) \ - inline \ - boost::range_detail_microsoft::size_type_of< Fullname >::type \ - boost_range_size(Fullname const& x) \ - { \ - return boost::range_detail_microsoft::size_of(x); \ - } \ - /**/ - - #endif - - -#define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE(Tag, NamespaceList, Name, ParamSeqOrCount) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_impl( \ - Tag, NamespaceList, Name, \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_to_param_seq(ParamSeqOrCount) \ - ) \ -/**/ - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_to_param_seq(ParamSeqOrCount) \ - BOOST_PP_IIF(BOOST_PP_IS_UNARY(ParamSeqOrCount), \ - ParamSeqOrCount BOOST_PP_TUPLE_EAT(3), \ - BOOST_PP_REPEAT \ - )(ParamSeqOrCount, BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_to_param_seq_op, ~) \ - /**/ - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_to_param_seq_op(z, n, _) \ - (class) \ - /**/ - - -#define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_impl(Tag, NamespaceList, Name, ParamSeq) \ - namespace boost { namespace range_detail_microsoft { \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_tag( \ - Tag, \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - } } \ - \ - namespace boost { \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_mutable_iterator( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_const_iterator( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_size_type( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - } \ - \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_open(NamespaceList) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_begin( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_begin_const( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_end( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_end_const( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_size( \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq), \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - ) \ - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_close(NamespaceList) \ -/**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params(ParamSeq) \ - BOOST_PP_SEQ_FOR_EACH_I(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params_op, ~, ParamSeq) \ - /**/ - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_params_op(r, data, i, elem) \ - BOOST_PP_COMMA_IF(i) elem BOOST_PP_CAT(T, i) \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_fullname(NamespaceList, Name, ParamSeq) \ - BOOST_PP_LIST_FOR_EACH(BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_namespace_expand_op, ~, NamespaceList) \ - :: Name < BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(ParamSeq), T) > \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_tag(Tag, Params, Fullname) \ - template< Params > \ - struct customization_tag< Fullname > : \ - customization_tag_of< Tag, Fullname > \ - { }; \ - /**/ - - - // metafunctions - // - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_mutable_iterator(Params, Fullname) \ - template< Params > \ - struct BOOST_RANGE_DETAIL_MICROSOFT_range_mutable_iterator< Fullname > : \ - range_detail_microsoft::mutable_iterator_of< Fullname > \ - { }; \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_const_iterator(Params, Fullname) \ - template< Params > \ - struct range_const_iterator< Fullname > : \ - range_detail_microsoft::const_iterator_of< Fullname > \ - { }; \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_size_type(Params, Fullname) \ - template< Params > \ - struct range_size< Fullname > : \ - range_detail_microsoft::size_type_of< Fullname > \ - { }; \ - /**/ - - - // functions - // - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_begin(Params, Fullname) \ - template< Params > inline \ - typename boost::range_detail_microsoft::mutable_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_begin(Fullname& x) \ - { \ - return boost::range_detail_microsoft::begin_of(x); \ - } \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_begin_const(Params, Fullname) \ - template< Params > inline \ - typename boost::range_detail_microsoft::const_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_begin(Fullname const& x) \ - { \ - return boost::range_detail_microsoft::begin_of(x); \ - } \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_end(Params, Fullname) \ - template< Params > inline \ - typename boost::range_detail_microsoft::mutable_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_end(Fullname& x) \ - { \ - return boost::range_detail_microsoft::end_of(x); \ - } \ - /**/ - - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_end_const(Params, Fullname) \ - template< Params > inline \ - typename boost::range_detail_microsoft::const_iterator_of< Fullname >::type \ - BOOST_RANGE_DETAIL_MICROSOFT_range_end(Fullname const& x) \ - { \ - return boost::range_detail_microsoft::end_of(x); \ - } \ - /**/ - - - #if !defined(BOOST_RANGE_DETAIL_MICROSOFT_RANGE_VERSION_1) - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_size(Params, Fullname) \ - /**/ - - #else - - #define BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE_size(Params, Fullname) \ - template< Params > inline \ - typename boost::range_detail_microsoft::size_type_of< Fullname >::type \ - boost_range_size(Fullname const& x) \ - { \ - return boost::range_detail_microsoft::size_of(x); \ - } \ - /**/ - - #endif - - - - -// list_iterator and helpers -// - - -#include -#include -#include -#include -#include - - -// POSITION's header is undocumented, so is NULL. -// -struct __POSITION; // incomplete, but used as just a pointer. -typedef __POSITION *POSITION; - - -namespace boost { namespace range_detail_microsoft { - - - template< - class ListT, - class Value, - class Reference, - class Traversal - > - struct list_iterator; - - - template< - class ListT, - class Value, - class Reference, - class Traversal - > - struct list_iterator_super - { - typedef typename mpl::if_< is_same, - Value&, - Reference - >::type ref_t; - - typedef typename mpl::if_< is_same, - bidirectional_traversal_tag, - Traversal - >::type trv_t; - - typedef iterator_facade< - list_iterator, - Value, - trv_t, - ref_t - > type; - }; - - - template< - class ListT, - class Value, - class Reference = use_default, - class Traversal = use_default - > - struct list_iterator : - list_iterator_super::type - { - private: - typedef list_iterator self_t; - typedef typename list_iterator_super::type super_t; - typedef typename super_t::reference ref_t; - - public: - explicit list_iterator() - { } - - explicit list_iterator(ListT& lst, POSITION pos) : - m_plst(boost::addressof(lst)), m_pos(pos) - { } - - template< class, class, class, class > friend struct list_iterator; - template< class ListT_, class Value_, class Reference_, class Traversal_> - list_iterator(list_iterator const& other) : - m_plst(other.m_plst), m_pos(other.m_pos) - { } - - private: - ListT *m_plst; - POSITION m_pos; - - friend class iterator_core_access; - ref_t dereference() const - { - BOOST_ASSERT(m_pos != 0 && "out of range"); - return m_plst->GetAt(m_pos); - } - - // A B C D x - // Head Tail NULL(0) - // - void increment() - { - BOOST_ASSERT(m_pos != 0 && "out of range"); - m_plst->GetNext(m_pos); - } - - void decrement() - { - if (m_pos == 0) { - m_pos = m_plst->GetTailPosition(); - return; - } - - m_plst->GetPrev(m_pos); - } - - bool equal(self_t const& other) const - { - BOOST_ASSERT(m_plst == other.m_plst && "iterators incompatible"); - return m_pos == other.m_pos; - } - }; - - - // customization helpers - // - - struct array_functions - { - template< class Iterator, class X > - Iterator begin(X& x) - { - return x.GetData(); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return begin(x) + x.GetSize(); - } - }; - - - struct list_functions - { - template< class Iterator, class X > - Iterator begin(X& x) - { - return Iterator(x, x.GetHeadPosition()); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return Iterator(x, POSITION(0)); - } - }; - - -} } // namespace boost::range_detail_microsoft - - - - -// test -// - - -#if defined(BOOST_RANGE_DETAIL_MICROSOFT_TEST) - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -namespace boost { namespace range_detail_microsoft { - - - template< class Range1, class Range2 > - bool test_equals(Range1 const& rng1, Range2 const& rng2) - { - return - boost::distance(rng1) == boost::distance(rng2) && - std::equal(boost::begin(rng1), boost::end(rng1), boost::begin(rng2)) - ; - } - - - template< class AssocContainer, class PairT > - bool test_find_key_and_mapped(AssocContainer const& ac, PairT const& pa) - { - typedef typename boost::range_const_iterator::type iter_t; - for (iter_t it = boost::const_begin(ac), last = boost::const_end(ac); it != last; ++it) { - if (it->first == pa.first && it->second == pa.second) - return true; - } - - return false; - } - - - // test functions - // - - template< class Range > - bool test_emptiness(Range& ) - { - bool result = true; - - Range emptyRng; - result = result && boost::empty(emptyRng); - - return result; - } - - - template< class Range > - bool test_trivial(Range& rng) - { - bool result = true; - - // convertibility check - typedef typename range_const_iterator::type citer_t; - citer_t cit = boost::begin(rng); - (void)cit; // unused - - // mutability check - typedef typename range_value::type val_t; - val_t v = *boost::begin(rng); - *boost::begin(rng) = v; - result = result && *boost::begin(rng) == v; - - return result; - } - - - template< class Range > - bool test_forward(Range& rng) - { - boost::function_requires< ForwardRangeConcept >(); - - bool result = (test_trivial)(rng); - - typedef typename range_value::type val_t; - - std::vector saved; - std::copy(boost::begin(rng), boost::end(rng), std::back_inserter(saved)); - std::rotate(boost::begin(saved), boost::next(boost::begin(saved)), boost::end(saved)); - - std::rotate(boost::begin(rng), boost::next(boost::begin(rng)), boost::end(rng)); - - return result && (test_equals)(saved, rng); - }; - - - template< class Range > - bool test_bidirectional(Range& rng) - { - boost::function_requires< BidirectionalRangeConcept >(); - - bool result = (test_forward)(rng); - - typedef typename range_value::type val_t; - - std::vector saved; - std::copy(boost::begin(rng), boost::end(rng), std::back_inserter(saved)); - - result = result && (test_equals)( - boost::make_iterator_range(boost::rbegin(saved), boost::rend(saved)), - boost::make_iterator_range(boost::rbegin(rng), boost::rend(rng)) - ); - - return result; - } - - - template< class Range > - bool test_random_access(Range& rng) - { - boost::function_requires< RandomAccessRangeConcept >(); - - bool result = (test_bidirectional)(rng); - - typedef typename range_value::type val_t; - - std::vector saved; - std::copy(boost::begin(rng), boost::end(rng), std::back_inserter(saved)); - std::sort(boost::begin(saved), boost::end(saved)); - - std::random_shuffle(boost::begin(rng), boost::end(rng)); - std::sort(boost::begin(rng), boost::end(rng)); - result = result && (test_equals)(rng, saved); - - std::random_shuffle(boost::begin(rng), boost::end(rng)); - std::stable_sort(boost::begin(rng), boost::end(rng)); - result = result && (test_equals)(rng, saved); - - std::random_shuffle(boost::begin(rng), boost::end(rng)); - std::partial_sort(boost::begin(rng), boost::end(rng), boost::end(rng)); - result = result && (test_equals)(rng, saved); - - return result; - } - - - // initializer - // - - template< class ArrayT, class SampleRange > - bool test_init_array(ArrayT& arr, SampleRange const& sample) - { - typedef typename range_const_iterator::type iter_t; - typedef typename range_value::type val_t; - - for (iter_t it = boost::const_begin(sample), last = boost::const_end(sample); it != last; ++it) { - val_t v = *it; // works around ATL3 CSimpleArray - arr.Add(v); - } - - return (test_equals)(arr, sample); - } - - - template< class ListT, class SampleRange > - bool test_init_list(ListT& lst, SampleRange const& sample) - { - typedef typename range_const_iterator::type iter_t; - - for (iter_t it = boost::const_begin(sample), last = boost::const_end(sample); it != last; ++it) { - lst.AddTail(*it); - } - - return (test_equals)(lst, sample); - } - - - template< class StringT, class SampleRange > - bool test_init_string(StringT& str, SampleRange const& sample) - { - typedef typename range_const_iterator::type iter_t; - typedef typename range_value::type val_t; - - for (iter_t it = boost::const_begin(sample), last = boost::const_end(sample); it != last; ++it) { - str += *it; - } - - return (test_equals)(str, sample); - } - - - template< class MapT, class SampleMap > - bool test_init_map(MapT& map, SampleMap const& sample) - { - typedef typename range_const_iterator::type iter_t; - - for (iter_t it = boost::const_begin(sample), last = boost::const_end(sample); it != last; ++it) { - map.SetAt(it->first, it->second); - } - - return boost::distance(map) == boost::distance(sample); - } - - - // metafunction test - // - - template< class Range, class Iter > - struct test_mutable_iter : - boost::is_same< typename boost::BOOST_RANGE_DETAIL_MICROSOFT_range_mutable_iterator::type, Iter > - { }; - - - template< class Range, class Iter > - struct test_const_iter : - boost::is_same< typename boost::range_const_iterator::type, Iter > - { }; - - -} } // namespace boost::range_detail_microsoft - - -#endif // defined(BOOST_RANGE_DETAIL_MICROSOFT_TEST) - - - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/misc_concept.hpp b/lib/3rdParty/boost/boost/range/detail/misc_concept.hpp deleted file mode 100644 index 74cb919f2..000000000 --- a/lib/3rdParty/boost/boost/range/detail/misc_concept.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Boost.Range library concept checks -// -// Copyright Neil Groves 2009. 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_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED - -#include - -namespace boost -{ - namespace range_detail - { - template - class SameTypeConcept - { - public: - BOOST_CONCEPT_USAGE(SameTypeConcept) - { - same_type(a,b); - } - private: - template void same_type(T,T) {} - T1 a; - T2 b; - }; - } -} - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/msvc_has_iterator_workaround.hpp b/lib/3rdParty/boost/boost/range/detail/msvc_has_iterator_workaround.hpp deleted file mode 100644 index 62b67fd52..000000000 --- a/lib/3rdParty/boost/boost/range/detail/msvc_has_iterator_workaround.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// Boost.Range library -// -// Copyright Eric Niebler 2014. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_MSVC_HAS_ITERATOR_WORKAROUND_HPP -#define BOOST_RANGE_DETAIL_MSVC_HAS_ITERATOR_WORKAROUND_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP -# error This file should only be included from -#endif - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600) -namespace boost -{ -namespace cb_details -{ - template - struct iterator; -} - -namespace python -{ - template - struct iterator; -} - -namespace type_erasure -{ - template< - class Traversal, - class T /*= _self*/, - class Reference /*= ::boost::use_default*/, - class DifferenceType /*= ::std::ptrdiff_t*/, - class ValueType /*= typename deduced >::type*/ - > - struct iterator; -} - -namespace unordered { namespace iterator_detail -{ - template - struct iterator; -}} - -namespace container { namespace container_detail -{ - template - class iterator; -}} - -namespace spirit { namespace lex { namespace lexertl -{ - template - class iterator; -}}} - -namespace range_detail -{ - template - struct has_iterator< ::boost::cb_details::iterator > - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::cb_details::iterator const> - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::python::iterator > - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::python::iterator const> - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::type_erasure::iterator > - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::type_erasure::iterator const> - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::unordered::iterator_detail::iterator > - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::unordered::iterator_detail::iterator const> - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::container::container_detail::iterator > - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::container::container_detail::iterator const> - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::spirit::lex::lexertl::iterator > - : mpl::false_ - {}; - - template - struct has_iterator< ::boost::spirit::lex::lexertl::iterator const> - : mpl::false_ - {}; -} -} -#endif -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/range_return.hpp b/lib/3rdParty/boost/boost/range/detail/range_return.hpp deleted file mode 100644 index 773a72a8b..000000000 --- a/lib/3rdParty/boost/boost/range/detail/range_return.hpp +++ /dev/null @@ -1,180 +0,0 @@ -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_DETAIL_RANGE_RETURN_HPP_INCLUDED -#define BOOST_RANGE_DETAIL_RANGE_RETURN_HPP_INCLUDED - -#include -#include -#include - -namespace boost -{ - enum range_return_value - { - // (*) indicates the most common values - return_found, // only the found resulting iterator (*) - return_next, // next(found) iterator - return_prior, // prior(found) iterator - return_begin_found, // [begin, found) range (*) - return_begin_next, // [begin, next(found)) range - return_begin_prior, // [begin, prior(found)) range - return_found_end, // [found, end) range (*) - return_next_end, // [next(found), end) range - return_prior_end, // [prior(found), end) range - return_begin_end // [begin, end) range - }; - - template< class SinglePassRange, range_return_value > - struct range_return - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - SinglePassRange& rng) - { - return type(found, boost::end(rng)); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_found > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator::type type; - - static type pack(type found, SinglePassRange&) - { - return found; - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_next > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator::type type; - - static type pack(type found, SinglePassRange& rng) - { - return found == boost::end(rng) - ? found - : boost::next(found); - } - }; - - template< class BidirectionalRange > - struct range_return< BidirectionalRange, return_prior > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator::type type; - - static type pack(type found, BidirectionalRange& rng) - { - return found == boost::begin(rng) - ? found - : boost::prior(found); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_begin_found > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - SinglePassRange& rng) - { - return type(boost::begin(rng), found); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_begin_next > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - SinglePassRange& rng) - { - return type( boost::begin(rng), - found == boost::end(rng) ? found : boost::next(found) ); - } - }; - - template< class BidirectionalRange > - struct range_return< BidirectionalRange, return_begin_prior > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - BidirectionalRange& rng) - { - return type( boost::begin(rng), - found == boost::begin(rng) ? found : boost::prior(found) ); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_found_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - SinglePassRange& rng) - { - return type(found, boost::end(rng)); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_next_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - SinglePassRange& rng) - { - return type( found == boost::end(rng) ? found : boost::next(found), - boost::end(rng) ); - } - }; - - template< class BidirectionalRange > - struct range_return< BidirectionalRange, return_prior_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type found, - BidirectionalRange& rng) - { - return type( found == boost::begin(rng) ? found : boost::prior(found), - boost::end(rng) ); - } - }; - - template< class SinglePassRange > - struct range_return< SinglePassRange, return_begin_end > - { - typedef boost::iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - - static type pack(BOOST_DEDUCED_TYPENAME range_iterator::type, - SinglePassRange& rng) - { - return type(boost::begin(rng), boost::end(rng)); - } - }; - -} - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/remove_extent.hpp b/lib/3rdParty/boost/boost/range/detail/remove_extent.hpp deleted file mode 100644 index 68e459724..000000000 --- a/lib/3rdParty/boost/boost/range/detail/remove_extent.hpp +++ /dev/null @@ -1,157 +0,0 @@ -// Boost.Range library -// -// Copyright Jonathan Turkanis 2005. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - - -#ifndef BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP -#define BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP - -#include // MSVC, NO_INTRINSIC_WCHAR_T, put size_t in std. -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - - template< typename Case1 = mpl::true_, - typename Type1 = mpl::void_, - typename Case2 = mpl::true_, - typename Type2 = mpl::void_, - typename Case3 = mpl::true_, - typename Type3 = mpl::void_, - typename Case4 = mpl::true_, - typename Type4 = mpl::void_, - typename Case5 = mpl::true_, - typename Type5 = mpl::void_, - typename Case6 = mpl::true_, - typename Type6 = mpl::void_, - typename Case7 = mpl::true_, - typename Type7 = mpl::void_, - typename Case8 = mpl::true_, - typename Type8 = mpl::void_, - typename Case9 = mpl::true_, - typename Type9 = mpl::void_, - typename Case10 = mpl::true_, - typename Type10 = mpl::void_, - typename Case11 = mpl::true_, - typename Type11 = mpl::void_, - typename Case12 = mpl::true_, - typename Type12 = mpl::void_, - typename Case13 = mpl::true_, - typename Type13 = mpl::void_, - typename Case14 = mpl::true_, - typename Type14 = mpl::void_, - typename Case15 = mpl::true_, - typename Type15 = mpl::void_, - typename Case16 = mpl::true_, - typename Type16 = mpl::void_, - typename Case17 = mpl::true_, - typename Type17 = mpl::void_, - typename Case18 = mpl::true_, - typename Type18 = mpl::void_, - typename Case19 = mpl::true_, - typename Type19 = mpl::void_, - typename Case20 = mpl::true_, - typename Type20 = mpl::void_> - struct select { - typedef typename - mpl::eval_if< - Case1, mpl::identity, mpl::eval_if< - Case2, mpl::identity, mpl::eval_if< - Case3, mpl::identity, mpl::eval_if< - Case4, mpl::identity, mpl::eval_if< - Case5, mpl::identity, mpl::eval_if< - Case6, mpl::identity, mpl::eval_if< - Case7, mpl::identity, mpl::eval_if< - Case8, mpl::identity, mpl::eval_if< - Case9, mpl::identity, mpl::if_< - Case10, Type10, mpl::void_ > > > > > > > > > - >::type result1; - typedef typename - mpl::eval_if< - Case11, mpl::identity, mpl::eval_if< - Case12, mpl::identity, mpl::eval_if< - Case13, mpl::identity, mpl::eval_if< - Case14, mpl::identity, mpl::eval_if< - Case15, mpl::identity, mpl::eval_if< - Case16, mpl::identity, mpl::eval_if< - Case17, mpl::identity, mpl::eval_if< - Case18, mpl::identity, mpl::eval_if< - Case19, mpl::identity, mpl::if_< - Case20, Type20, mpl::void_ > > > > > > > > > - > result2; - typedef typename - mpl::eval_if< - is_same, - result2, - mpl::identity - >::type type; - }; - - template - struct remove_extent { - static T* ar; - BOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0])); - - typedef typename - select< - is_same, bool, - is_same, char, - is_same, signed char, - is_same, unsigned char, - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - is_same, wchar_t, - #endif - is_same, short, - is_same, unsigned short, - is_same, int, - is_same, unsigned int, - is_same, long, - is_same, unsigned long, - is_same, float, - is_same, double, - is_same, long double - >::type result1; - typedef typename - select< - is_same, const bool, - is_same, const char, - is_same, const signed char, - is_same, const unsigned char, - #ifndef BOOST_NO_INTRINSIC_WCHAR_T - is_same, const wchar_t, - #endif - is_same, const short, - is_same, const unsigned short, - is_same, const int, - is_same, const unsigned int, - is_same, const long, - is_same, const unsigned long, - is_same, const float, - is_same, const double, - is_same, const long double - > result2; - typedef typename - mpl::eval_if< - is_same, - result2, - mpl::identity - >::type type; - }; - - } // namespace 'range_detail' - -} // namespace 'boost' - - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/safe_bool.hpp b/lib/3rdParty/boost/boost/range/detail/safe_bool.hpp deleted file mode 100644 index 182e51048..000000000 --- a/lib/3rdParty/boost/boost/range/detail/safe_bool.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// This header intentionally has no include guards. -// -// Copyright (c) 2010 Neil Groves -// 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 -// -// This code utilises the experience gained during the evolution of -// -#ifndef BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP -#define BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP - -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -class safe_bool -{ -public: - typedef safe_bool this_type; - -#if (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570)) || defined(__CINT_) - typedef bool unspecified_bool_type; - static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) - { - return x; - } -#elif defined(_MANAGED) - static void unspecified_bool(this_type***) - { - } - typedef void(*unspecified_bool_type)(this_type***); - static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) - { - return x ? unspecified_bool : 0; - } -#elif \ - ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ - ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ - ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) - - typedef bool (this_type::*unspecified_bool_type)() const; - - static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) - { - return x ? &this_type::detail_safe_bool_member_fn : 0; - } -private: - bool detail_safe_bool_member_fn() const { return false; } -#else - typedef DataMemberPtr unspecified_bool_type; - static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr p) - { - return x ? p : 0; - } -#endif -private: - safe_bool(); - safe_bool(const safe_bool&); - void operator=(const safe_bool&); - ~safe_bool(); -}; - - } // namespace range_detail -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/detail/sfinae.hpp b/lib/3rdParty/boost/boost/range/detail/sfinae.hpp deleted file mode 100644 index 5b2c61e71..000000000 --- a/lib/3rdParty/boost/boost/range/detail/sfinae.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_SFINAE_HPP -#define BOOST_RANGE_DETAIL_SFINAE_HPP - -#include -#include -#include -#include - - -namespace boost -{ - namespace range_detail - { - using type_traits::yes_type; - using type_traits::no_type; - - ////////////////////////////////////////////////////////////////////// - // string - ////////////////////////////////////////////////////////////////////// - - yes_type is_string_impl( const char* const ); - yes_type is_string_impl( const wchar_t* const ); - no_type is_string_impl( ... ); - - template< std::size_t sz > - yes_type is_char_array_impl( char BOOST_RANGE_ARRAY_REF()[sz] ); - template< std::size_t sz > - yes_type is_char_array_impl( const char BOOST_RANGE_ARRAY_REF()[sz] ); - no_type is_char_array_impl( ... ); - - template< std::size_t sz > - yes_type is_wchar_t_array_impl( wchar_t BOOST_RANGE_ARRAY_REF()[sz] ); - template< std::size_t sz > - yes_type is_wchar_t_array_impl( const wchar_t BOOST_RANGE_ARRAY_REF()[sz] ); - no_type is_wchar_t_array_impl( ... ); - - yes_type is_char_ptr_impl( char* const ); - no_type is_char_ptr_impl( ... ); - - yes_type is_const_char_ptr_impl( const char* const ); - no_type is_const_char_ptr_impl( ... ); - - yes_type is_wchar_t_ptr_impl( wchar_t* const ); - no_type is_wchar_t_ptr_impl( ... ); - - yes_type is_const_wchar_t_ptr_impl( const wchar_t* const ); - no_type is_const_wchar_t_ptr_impl( ... ); - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - yes_type is_pair_impl( const std::pair* ); - no_type is_pair_impl( ... ); - - ////////////////////////////////////////////////////////////////////// - // tags - ////////////////////////////////////////////////////////////////////// - - struct char_or_wchar_t_array_tag {}; - - } // namespace 'range_detail' - -} // namespace 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/size_type.hpp b/lib/3rdParty/boost/boost/range/detail/size_type.hpp deleted file mode 100644 index 78a60a48e..000000000 --- a/lib/3rdParty/boost/boost/range/detail/size_type.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_SIZE_TYPE_HPP -#define BOOST_RANGE_DETAIL_SIZE_TYPE_HPP - -#include - -////////////////////////////////////////////////////////////////////////////// -// missing partial specialization workaround. -////////////////////////////////////////////////////////////////////////////// - -namespace boost -{ - namespace range_detail - { - template< typename T > - struct range_size_type_ - { - template< typename C > - struct pts - { - typedef std::size_t type; - }; - }; - - template<> - struct range_size_type_ - { - template< typename C > - struct pts - { - typedef BOOST_RANGE_DEDUCED_TYPENAME C::size_type type; - }; - }; - } - - template< typename C > - class range_size - { - typedef typename range_detail::range::type c_type; - public: - typedef typename range_detail::range_size_type_::BOOST_NESTED_TEMPLATE pts::type type; - }; -} - -#endif - diff --git a/lib/3rdParty/boost/boost/range/detail/sizer.hpp b/lib/3rdParty/boost/boost/range/detail/sizer.hpp deleted file mode 100644 index cd6679c24..000000000 --- a/lib/3rdParty/boost/boost/range/detail/sizer.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_SIZER_HPP -#define BOOST_RANGE_DETAIL_SIZER_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -namespace boost -{ - ////////////////////////////////////////////////////////////////////// - // constant array size - ////////////////////////////////////////////////////////////////////// - - template< typename T, std::size_t sz > - char (& sizer( const T BOOST_RANGE_ARRAY_REF()[sz] ) )[sz]; - - template< typename T, std::size_t sz > - char (& sizer( T BOOST_RANGE_ARRAY_REF()[sz] ) )[sz]; - -} // namespace 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/str_types.hpp b/lib/3rdParty/boost/boost/range/detail/str_types.hpp deleted file mode 100644 index f8cab190d..000000000 --- a/lib/3rdParty/boost/boost/range/detail/str_types.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_STR_TYPES_HPP -#define BOOST_RANGE_DETAIL_STR_TYPES_HPP - -#include -#include - -namespace boost -{ - template< class T > - struct range_mutable_iterator - { - typedef T* type; - }; - - template< class T > - struct range_const_iterator - { - typedef const T* type; - }; - - template< class T > - struct range_size - { - typedef std::size_t type; - }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/detail/value_type.hpp b/lib/3rdParty/boost/boost/range/detail/value_type.hpp deleted file mode 100644 index 2784514c6..000000000 --- a/lib/3rdParty/boost/boost/range/detail/value_type.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DETAIL_VALUE_TYPE_HPP -#define BOOST_RANGE_DETAIL_VALUE_TYPE_HPP - -#include -#include -#include - -////////////////////////////////////////////////////////////////////////////// -// missing partial specialization workaround. -////////////////////////////////////////////////////////////////////////////// - -namespace boost -{ - namespace range_detail - { - template< typename T > - struct range_value_type_; - - template<> - struct range_value_type_ - { - template< typename C > - struct pts - { - typedef BOOST_RANGE_DEDUCED_TYPENAME C::value_type type; - }; - }; - - template<> - struct range_value_type_ - { - template< typename P > - struct pts - { - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::iterator_value< BOOST_RANGE_DEDUCED_TYPENAME P::first_type >::type type; - }; - }; - - template<> - struct range_value_type_ - { - template< typename T > - struct pts - { - typedef BOOST_DEDUCED_TYPENAME remove_extent::type type; - }; - }; - - } - - template< typename C > - class range_value - { - typedef BOOST_DEDUCED_TYPENAME range_detail::range::type c_type; - public: - typedef BOOST_DEDUCED_TYPENAME range_detail::range_value_type_::BOOST_NESTED_TEMPLATE pts::type type; - }; - -} - -#endif - diff --git a/lib/3rdParty/boost/boost/range/difference_type.hpp b/lib/3rdParty/boost/boost/range/difference_type.hpp deleted file mode 100644 index 6bb3c5f55..000000000 --- a/lib/3rdParty/boost/boost/range/difference_type.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DIFFERENCE_TYPE_HPP -#define BOOST_RANGE_DIFFERENCE_TYPE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - template< class T, bool B = has_type >::value > - struct range_difference - { }; - - template< class T > - struct range_difference - : iterator_difference< - BOOST_DEDUCED_TYPENAME range_iterator::type - > - { }; - } - - template< class T > - struct range_difference - : range_detail::range_difference::type> - { }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/distance.hpp b/lib/3rdParty/boost/boost/range/distance.hpp deleted file mode 100644 index 075f2d1fb..000000000 --- a/lib/3rdParty/boost/boost/range/distance.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_DISTANCE_HPP -#define BOOST_RANGE_DISTANCE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - - template< class T > - inline BOOST_DEDUCED_TYPENAME range_difference::type - distance( const T& r ) - { - return std::distance( boost::begin( r ), boost::end( r ) ); - } - -} // namespace 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/empty.hpp b/lib/3rdParty/boost/boost/range/empty.hpp deleted file mode 100644 index d57a30ed0..000000000 --- a/lib/3rdParty/boost/boost/range/empty.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_EMPTY_HPP -#define BOOST_RANGE_EMPTY_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - - template< class T > - inline bool empty( const T& r ) - { - return boost::begin( r ) == boost::end( r ); - } - -} // namespace 'boost' - - -#endif diff --git a/lib/3rdParty/boost/boost/range/end.hpp b/lib/3rdParty/boost/boost/range/end.hpp deleted file mode 100644 index f2a3337e3..000000000 --- a/lib/3rdParty/boost/boost/range/end.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_END_HPP -#define BOOST_RANGE_END_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#include -#else - -#include -#include -#include - -namespace boost -{ - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -namespace range_detail -{ -#endif - - ////////////////////////////////////////////////////////////////////// - // primary template - ////////////////////////////////////////////////////////////////////// - template< typename C > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - range_end( C& c ) - { - // - // If you get a compile-error here, it is most likely because - // you have not implemented range_begin() properly in - // the namespace of C - // - return c.end(); - } - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - inline Iterator range_end( const std::pair& p ) - { - return p.second; - } - - template< typename Iterator > - inline Iterator range_end( std::pair& p ) - { - return p.second; - } - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - template< typename T, std::size_t sz > - inline const T* range_end( const T (&a)[sz] ) - { - return range_detail::array_end( a ); - } - - template< typename T, std::size_t sz > - inline T* range_end( T (&a)[sz] ) - { - return range_detail::array_end( a ); - } - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -} // namespace 'range_detail' -#endif - -namespace range_adl_barrier -{ - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type end( T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - using namespace range_detail; -#endif - return range_end( r ); -} - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type end( const T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - using namespace range_detail; -#endif - return range_end( r ); -} - - } // namespace range_adl_barrier -} // namespace 'boost' - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -namespace boost -{ - namespace range_adl_barrier - { - template< class T > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - const_end( const T& r ) - { - return boost::range_adl_barrier::end( r ); - } - } // namespace range_adl_barrier - using namespace range_adl_barrier; -} // namespace boost - -#endif - diff --git a/lib/3rdParty/boost/boost/range/functions.hpp b/lib/3rdParty/boost/boost/range/functions.hpp deleted file mode 100644 index 43c54b15b..000000000 --- a/lib/3rdParty/boost/boost/range/functions.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_FUNCTIONS_HPP -#define BOOST_RANGE_FUNCTIONS_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include - -#endif - diff --git a/lib/3rdParty/boost/boost/range/has_range_iterator.hpp b/lib/3rdParty/boost/boost/range/has_range_iterator.hpp deleted file mode 100644 index 9eb58b35d..000000000 --- a/lib/3rdParty/boost/boost/range/has_range_iterator.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -// Acknowledgments: -// Ticket #8341: Arno Schoedl - improved handling of has_range_iterator upon -// use-cases where T was const. -#ifndef BOOST_RANGE_HAS_ITERATOR_HPP_INCLUDED -#define BOOST_RANGE_HAS_ITERATOR_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - BOOST_MPL_HAS_XXX_TRAIT_DEF(type) - - template - struct has_range_iterator_impl - : boost::mpl::false_ - { - }; - - template - struct has_range_iterator_impl< - T, - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - BOOST_DEDUCED_TYPENAME mpl::eval_if, - has_type::type> >, - has_type > - >::type - >::type - > - : boost::mpl::true_ - { - }; - - template - struct has_range_const_iterator_impl - : boost::mpl::false_ - { - }; - - template - struct has_range_const_iterator_impl< - T, - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - has_type > - >::type - > - : boost::mpl::true_ - { - }; - - } // namespace range_detail - - template - struct has_range_iterator - : range_detail::has_range_iterator_impl< - BOOST_DEDUCED_TYPENAME remove_reference::type> - {}; - - template - struct has_range_const_iterator - : range_detail::has_range_const_iterator_impl< - BOOST_DEDUCED_TYPENAME remove_reference::type> - {}; -} // namespace boost - -#endif // include guard - diff --git a/lib/3rdParty/boost/boost/range/irange.hpp b/lib/3rdParty/boost/boost/range/irange.hpp deleted file mode 100644 index b1a124065..000000000 --- a/lib/3rdParty/boost/boost/range/irange.hpp +++ /dev/null @@ -1,236 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2010. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_IRANGE_HPP_INCLUDED -#define BOOST_RANGE_IRANGE_HPP_INCLUDED - -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - // integer_iterator is an iterator over an integer sequence that - // is bounded only by the limits of the underlying integer - // representation. - // - // This is useful for implementing the irange(first, last) - // function. - // - // Note: - // This use of this iterator and irange is appreciably less - // performant than the corresponding hand-written integer - // loop on many compilers. - template - class integer_iterator - : public boost::iterator_facade< - integer_iterator, - Integer, - boost::random_access_traversal_tag, - Integer, - std::ptrdiff_t - > - { - typedef boost::iterator_facade< - integer_iterator, - Integer, - boost::random_access_traversal_tag, - Integer, - std::ptrdiff_t - > base_t; - public: - typedef typename base_t::value_type value_type; - typedef typename base_t::difference_type difference_type; - typedef typename base_t::reference reference; - typedef std::random_access_iterator_tag iterator_category; - - integer_iterator() : m_value() {} - explicit integer_iterator(value_type x) : m_value(x) {} - - private: - void increment() - { - ++m_value; - } - - void decrement() - { - --m_value; - } - - void advance(difference_type offset) - { - m_value += offset; - } - - difference_type distance_to(const integer_iterator& other) const - { - return is_signed::value - ? (other.m_value - m_value) - : (other.m_value >= m_value) - ? static_cast(other.m_value - m_value) - : -static_cast(m_value - other.m_value); - } - - bool equal(const integer_iterator& other) const - { - return m_value == other.m_value; - } - - reference dereference() const - { - return m_value; - } - - friend class ::boost::iterator_core_access; - value_type m_value; - }; - - // integer_iterator_with_step is similar in nature to the - // integer_iterator but provides the ability to 'move' in - // a number of steps specified at construction time. - // - // The three variable implementation provides the best guarantees - // of loop termination upon various combinations of input. - // - // While this design is less performant than some less - // safe alternatives, the use of ranges and iterators to - // perform counting will never be optimal anyhow, hence - // if optimal performance is desired a hand-coded loop - // is the solution. - template - class integer_iterator_with_step - : public boost::iterator_facade< - integer_iterator_with_step, - Integer, - boost::random_access_traversal_tag, - Integer, - std::ptrdiff_t - > - { - typedef boost::iterator_facade< - integer_iterator_with_step, - Integer, - boost::random_access_traversal_tag, - Integer, - std::ptrdiff_t - > base_t; - public: - typedef typename base_t::value_type value_type; - typedef typename base_t::difference_type difference_type; - typedef typename base_t::reference reference; - typedef std::random_access_iterator_tag iterator_category; - - integer_iterator_with_step(value_type first, difference_type step, value_type step_size) - : m_first(first) - , m_step(step) - , m_step_size(step_size) - { - } - - private: - void increment() - { - ++m_step; - } - - void decrement() - { - --m_step; - } - - void advance(difference_type offset) - { - m_step += offset; - } - - difference_type distance_to(const integer_iterator_with_step& other) const - { - return other.m_step - m_step; - } - - bool equal(const integer_iterator_with_step& other) const - { - return m_step == other.m_step; - } - - reference dereference() const - { - return m_first + (m_step * m_step_size); - } - - friend class ::boost::iterator_core_access; - value_type m_first; - difference_type m_step; - difference_type m_step_size; - }; - - } // namespace range_detail - - template - class integer_range - : public iterator_range< range_detail::integer_iterator > - { - typedef range_detail::integer_iterator iterator_t; - typedef iterator_range base_t; - public: - integer_range(Integer first, Integer last) - : base_t(iterator_t(first), iterator_t(last)) - { - } - }; - - template - class strided_integer_range - : public iterator_range< range_detail::integer_iterator_with_step > - { - typedef range_detail::integer_iterator_with_step iterator_t; - typedef iterator_range base_t; - public: - template - strided_integer_range(Iterator first, Iterator last) - : base_t(first, last) - { - } - }; - - template - integer_range - irange(Integer first, Integer last) - { - BOOST_ASSERT( first <= last ); - return integer_range(first, last); - } - - template - strided_integer_range - irange(Integer first, Integer last, StepSize step_size) - { - BOOST_ASSERT( step_size != 0 ); - BOOST_ASSERT( (step_size > 0) ? (last >= first) : (last <= first) ); - - typedef typename range_detail::integer_iterator_with_step iterator_t; - - const std::ptrdiff_t sz = static_cast(step_size >= 0 ? step_size : -step_size); - const Integer l = step_size >= 0 ? last : first; - const Integer f = step_size >= 0 ? first : last; - const std::ptrdiff_t num_steps = (l - f) / sz + ((l - f) % sz ? 1 : 0); - BOOST_ASSERT(num_steps >= 0); - - return strided_integer_range( - iterator_t(first, 0, step_size), - iterator_t(first, num_steps, step_size)); - } - -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/istream_range.hpp b/lib/3rdParty/boost/boost/range/istream_range.hpp deleted file mode 100644 index a4863171c..000000000 --- a/lib/3rdParty/boost/boost/range/istream_range.hpp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright Neil Groves 2010. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ISTREAM_RANGE_HPP_INCLUDED -#define BOOST_RANGE_ISTREAM_RANGE_HPP_INCLUDED - -/*! - * \file istream_range.hpp - */ - -#include -#include -#include -#include - -namespace boost -{ - namespace range - { - template inline - iterator_range > - istream_range(std::basic_istream& in) - { - return iterator_range >( - std::istream_iterator(in), - std::istream_iterator()); - } - } // namespace range - using range::istream_range; -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/iterator.hpp b/lib/3rdParty/boost/boost/range/iterator.hpp deleted file mode 100644 index 2956353ab..000000000 --- a/lib/3rdParty/boost/boost/range/iterator.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ITERATOR_HPP -#define BOOST_RANGE_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) - - namespace range_detail_vc7_1 - { - template< typename C, typename Sig = void(C) > - struct range_iterator - { - typedef BOOST_RANGE_DEDUCED_TYPENAME - mpl::eval_if_c< is_const::value, - range_const_iterator< typename remove_const::type >, - range_mutable_iterator >::type type; - }; - - template< typename C, typename T > - struct range_iterator< C, void(T[]) > - { - typedef T* type; - }; - } - - template< typename C, typename Enabler=void > - struct range_iterator - { - - typedef BOOST_RANGE_DEDUCED_TYPENAME - range_detail_vc7_1::range_iterator::type type; - - }; - -#else - - template< typename C, typename Enabler=void > - struct range_iterator - : mpl::if_c< - is_const::type>::value, - range_const_iterator::type>::type>, - range_mutable_iterator::type> - >::type - { - }; - -#endif - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/range/iterator_range.hpp b/lib/3rdParty/boost/boost/range/iterator_range.hpp deleted file mode 100644 index dfcd4d2f8..000000000 --- a/lib/3rdParty/boost/boost/range/iterator_range.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED -#define BOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED - -#include "boost/range/iterator_range_core.hpp" -#include "boost/range/iterator_range_io.hpp" - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/iterator_range_core.hpp b/lib/3rdParty/boost/boost/range/iterator_range_core.hpp deleted file mode 100644 index a9e9fc0f1..000000000 --- a/lib/3rdParty/boost/boost/range/iterator_range_core.hpp +++ /dev/null @@ -1,883 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves & Thorsten Ottosen & Pavol Droba 2003-2004. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -// Credits: -// 'michel' reported Trac 9072 which included a patch for allowing references -// to function types. -// -#ifndef BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED -#define BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED - -#include // Define __STL_CONFIG_H, if appropriate. -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( push ) - #pragma warning( disable : 4996 ) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/*! \file - Defines the \c iterator_class and related functions. - \c iterator_range is a simple wrapper of iterator pair idiom. It provides - a rich subset of Container interface. -*/ - - -namespace boost -{ - namespace iterator_range_detail - { - // - // The functions adl_begin and adl_end are implemented in a separate - // class for gcc-2.9x - // - template - struct iterator_range_impl { - template< class ForwardRange > - static IteratorT adl_begin( ForwardRange& r ) - { - return IteratorT( boost::begin( r ) ); - } - - template< class ForwardRange > - static IteratorT adl_end( ForwardRange& r ) - { - return IteratorT( boost::end( r ) ); - } - }; - - template< class Left, class Right > - inline bool less_than( const Left& l, const Right& r ) - { - return std::lexicographical_compare( boost::begin(l), - boost::end(l), - boost::begin(r), - boost::end(r) ); - } - - template< class Left, class Right > - inline bool greater_than( const Left& l, const Right& r ) - { - return iterator_range_detail::less_than(r,l); - } - - template< class Left, class Right > - inline bool less_or_equal_than( const Left& l, const Right& r ) - { - return !iterator_range_detail::less_than(r,l); - } - - template< class Left, class Right > - inline bool greater_or_equal_than( const Left& l, const Right& r ) - { - return !iterator_range_detail::less_than(l,r); - } - - // This version is maintained since it is used in other boost libraries - // such as Boost.Assign - template< class Left, class Right > - inline bool equal(const Left& l, const Right& r) - { - return boost::equal(l, r); - } - -struct range_tag -{ -}; - -struct const_range_tag -{ -}; - -struct iterator_range_tag -{ -}; - -typedef char (&incrementable_t)[1]; -typedef char (&bidirectional_t)[2]; -typedef char (&random_access_t)[3]; - -incrementable_t test_traversal_tag(boost::incrementable_traversal_tag); -bidirectional_t test_traversal_tag(boost::bidirectional_traversal_tag); -random_access_t test_traversal_tag(boost::random_access_traversal_tag); - -template -struct pure_iterator_traversal_impl -{ - typedef boost::incrementable_traversal_tag type; -}; - -template<> -struct pure_iterator_traversal_impl -{ - typedef boost::bidirectional_traversal_tag type; -}; - -template<> -struct pure_iterator_traversal_impl -{ - typedef boost::random_access_traversal_tag type; -}; - -template -struct pure_iterator_traversal -{ - typedef - BOOST_DEDUCED_TYPENAME iterator_traversal::type - traversal_t; - BOOST_STATIC_CONSTANT( - std::size_t, - traversal_i = sizeof(iterator_range_detail::test_traversal_tag((traversal_t()))) - ); - typedef - BOOST_DEDUCED_TYPENAME pure_iterator_traversal_impl::type - type; -}; - -template -class iterator_range_base - : public iterator_range_tag -{ - typedef range_detail::safe_bool< - IteratorT iterator_range_base::* - > safe_bool_t; - - typedef iterator_range_base type; - -protected: - typedef iterator_range_impl impl; - -public: - typedef BOOST_DEDUCED_TYPENAME - safe_bool_t::unspecified_bool_type unspecified_bool_type; - - typedef BOOST_DEDUCED_TYPENAME - iterator_value::type value_type; - - typedef BOOST_DEDUCED_TYPENAME - iterator_difference::type difference_type; - - typedef std::size_t size_type; // note: must be unsigned - - // Needed because value-type is the same for - // const and non-const iterators - typedef BOOST_DEDUCED_TYPENAME - iterator_reference::type reference; - - //! const_iterator type - /*! - There is no distinction between const_iterator and iterator. - These typedefs are provides to fulfill container interface - */ - typedef IteratorT const_iterator; - //! iterator type - typedef IteratorT iterator; - -protected: - iterator_range_base() - : m_Begin() - , m_End() - { - } - - template - iterator_range_base(Iterator Begin, Iterator End) - : m_Begin(Begin) - , m_End(End) - { - } - -public: - IteratorT begin() const - { - return m_Begin; - } - - IteratorT end() const - { - return m_End; - } - - bool empty() const - { - return m_Begin == m_End; - } - - operator unspecified_bool_type() const - { - return safe_bool_t::to_unspecified_bool( - m_Begin != m_End, &iterator_range_base::m_Begin); - } - - bool operator!() const - { - return empty(); - } - - bool equal(const iterator_range_base& r) const - { - return m_Begin == r.m_Begin && m_End == r.m_End; - } - - reference front() const - { - BOOST_ASSERT(!empty()); - return *m_Begin; - } - - void drop_front() - { - BOOST_ASSERT(!empty()); - ++m_Begin; - } - - void drop_front(difference_type n) - { - BOOST_ASSERT(n >= difference_type()); - std::advance(this->m_Begin, n); - } - - // Deprecated - void pop_front() { drop_front(); } - -protected: - template - void assign(Iterator first, Iterator last) - { - m_Begin = first; - m_End = last; - } - - template - void assign(const SinglePassRange& r) - { - m_Begin = impl::adl_begin(r); - m_End = impl::adl_end(r); - } - - template - void assign(SinglePassRange& r) - { - m_Begin = impl::adl_begin(r); - m_End = impl::adl_end(r); - } - - IteratorT m_Begin; - IteratorT m_End; -}; - -template -class iterator_range_base - : public iterator_range_base -{ - typedef iterator_range_base base_type; - -protected: - iterator_range_base() - { - } - - template - iterator_range_base(Iterator first, Iterator last) - : base_type(first, last) - { - } - -public: - typedef BOOST_DEDUCED_TYPENAME base_type::difference_type difference_type; - typedef BOOST_DEDUCED_TYPENAME base_type::reference reference; - - reference back() const - { - BOOST_ASSERT(!this->empty()); - return *boost::prior(this->m_End); - } - - void drop_back() - { - BOOST_ASSERT(!this->empty()); - --this->m_End; - } - - void drop_back(difference_type n) - { - BOOST_ASSERT(n >= difference_type()); - std::advance(this->m_End, -n); - } - - // Deprecated - void pop_back() { drop_back(); } -}; - -template -class iterator_range_base - : public iterator_range_base -{ - typedef iterator_range_base< - IteratorT, bidirectional_traversal_tag> base_type; - -public: - typedef BOOST_DEDUCED_TYPENAME - boost::mpl::if_< - boost::mpl::or_< - boost::is_abstract< - BOOST_DEDUCED_TYPENAME base_type::value_type - >, - boost::is_array< - BOOST_DEDUCED_TYPENAME base_type::value_type - >, - boost::is_function< - BOOST_DEDUCED_TYPENAME base_type::value_type - > - >, - BOOST_DEDUCED_TYPENAME base_type::reference, - BOOST_DEDUCED_TYPENAME base_type::value_type - >::type abstract_value_type; - - // Rationale: - // typedef these here to reduce verbiage in the implementation of this - // type. - typedef BOOST_DEDUCED_TYPENAME base_type::difference_type difference_type; - typedef BOOST_DEDUCED_TYPENAME base_type::size_type size_type; - typedef BOOST_DEDUCED_TYPENAME base_type::reference reference; - -protected: - iterator_range_base() - { - } - - template - iterator_range_base(Iterator first, Iterator last) - : base_type(first, last) - { - } - -public: - reference operator[](difference_type at) const - { - BOOST_ASSERT(at >= 0); - BOOST_ASSERT(static_cast(at) < size()); - return this->m_Begin[at]; - } - - // - // When storing transform iterators, operator[]() - // fails because it returns by reference. Therefore - // operator()() is provided for these cases. - // - abstract_value_type operator()(difference_type at) const - { - BOOST_ASSERT(at >= 0); - BOOST_ASSERT(static_cast(at) < size()); - return this->m_Begin[at]; - } - - BOOST_DEDUCED_TYPENAME base_type::size_type size() const - { - return this->m_End - this->m_Begin; - } -}; - - } - -// iterator range template class -----------------------------------------// - - //! iterator_range class - /*! - An \c iterator_range delimits a range in a sequence by beginning and ending iterators. - An iterator_range can be passed to an algorithm which requires a sequence as an input. - For example, the \c toupper() function may be used most frequently on strings, - but can also be used on iterator_ranges: - - \code - boost::tolower( find( s, "UPPERCASE STRING" ) ); - \endcode - - Many algorithms working with sequences take a pair of iterators, - delimiting a working range, as an arguments. The \c iterator_range class is an - encapsulation of a range identified by a pair of iterators. - It provides a collection interface, - so it is possible to pass an instance to an algorithm requiring a collection as an input. - */ - template - class iterator_range - : public iterator_range_detail::iterator_range_base< - IteratorT, - BOOST_DEDUCED_TYPENAME iterator_range_detail::pure_iterator_traversal::type - > - { - typedef iterator_range_detail::iterator_range_base< - IteratorT, - BOOST_DEDUCED_TYPENAME iterator_range_detail::pure_iterator_traversal::type - > base_type; - - template - struct is_compatible_range_ - : is_convertible< - BOOST_DEDUCED_TYPENAME mpl::eval_if< - has_range_iterator, - range_iterator, - mpl::identity - >::type, - BOOST_DEDUCED_TYPENAME base_type::iterator - > - { - }; - - template - struct is_compatible_range - : mpl::and_< - mpl::not_< - is_convertible< - Source, - BOOST_DEDUCED_TYPENAME base_type::iterator - > - >, - is_compatible_range_ - > - { - }; - - protected: - typedef iterator_range_detail::iterator_range_impl impl; - - public: - typedef iterator_range type; - - iterator_range() - { - } - - template - iterator_range(Iterator first, Iterator last) - : base_type(first, last) - { - } - - template - iterator_range( - const SinglePassRange& r, - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - is_compatible_range - >::type* = 0 - ) - : base_type(impl::adl_begin(r), impl::adl_end(r)) - { - } - - template - iterator_range( - SinglePassRange& r, - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - is_compatible_range - >::type* = 0 - ) - : base_type(impl::adl_begin(r), impl::adl_end(r)) - { - } - - template - iterator_range(const SinglePassRange& r, - iterator_range_detail::const_range_tag) - : base_type(impl::adl_begin(r), impl::adl_end(r)) - { - } - - template - iterator_range(SinglePassRange& r, - iterator_range_detail::range_tag) - : base_type(impl::adl_begin(r), impl::adl_end(r)) - { - } - - template - iterator_range& operator=(const iterator_range& other) - { - this->assign(other.begin(), other.end()); - return *this; - } - - template - iterator_range& operator=(iterator_range& other) - { - this->assign(other.begin(), other.end()); - return *this; - } - - template - iterator_range& operator=(SinglePassRange& r) - { - this->assign(r); - return *this; - } - - template - iterator_range& operator=(const SinglePassRange& r) - { - this->assign(r); - return *this; - } - - iterator_range& advance_begin( - BOOST_DEDUCED_TYPENAME base_type::difference_type n) - { - std::advance(this->m_Begin, n); - return *this; - } - - iterator_range& advance_end( - BOOST_DEDUCED_TYPENAME base_type::difference_type n) - { - std::advance(this->m_End, n); - return *this; - } - - protected: - // - // Allow subclasses an easy way to access the - // base type - // - typedef iterator_range iterator_range_; - }; - -// iterator range free-standing operators ---------------------------// - - ///////////////////////////////////////////////////////////////////// - // comparison operators - ///////////////////////////////////////////////////////////////////// - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator==( const ForwardRange& l, const iterator_range& r ) - { - return boost::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator!=( const ForwardRange& l, const iterator_range& r ) - { - return !boost::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator<( const ForwardRange& l, const iterator_range& r ) - { - return iterator_range_detail::less_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator<=( const ForwardRange& l, const iterator_range& r ) - { - return iterator_range_detail::less_or_equal_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator>( const ForwardRange& l, const iterator_range& r ) - { - return iterator_range_detail::greater_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator>=( const ForwardRange& l, const iterator_range& r ) - { - return iterator_range_detail::greater_or_equal_than( l, r ); - } - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#else - template< class Iterator1T, class Iterator2T > - inline bool - operator==( const iterator_range& l, const iterator_range& r ) - { - return boost::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator==( const iterator_range& l, const ForwardRange& r ) - { - return boost::equal( l, r ); - } - - - template< class Iterator1T, class Iterator2T > - inline bool - operator!=( const iterator_range& l, const iterator_range& r ) - { - return !boost::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator!=( const iterator_range& l, const ForwardRange& r ) - { - return !boost::equal( l, r ); - } - - - template< class Iterator1T, class Iterator2T > - inline bool - operator<( const iterator_range& l, const iterator_range& r ) - { - return iterator_range_detail::less_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator<( const iterator_range& l, const ForwardRange& r ) - { - return iterator_range_detail::less_than( l, r ); - } - - template< class Iterator1T, class Iterator2T > - inline bool - operator<=( const iterator_range& l, const iterator_range& r ) - { - return iterator_range_detail::less_or_equal_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator<=( const iterator_range& l, const ForwardRange& r ) - { - return iterator_range_detail::less_or_equal_than( l, r ); - } - - template< class Iterator1T, class Iterator2T > - inline bool - operator>( const iterator_range& l, const iterator_range& r ) - { - return iterator_range_detail::greater_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator>( const iterator_range& l, const ForwardRange& r ) - { - return iterator_range_detail::greater_than( l, r ); - } - - template< class Iterator1T, class Iterator2T > - inline bool - operator>=( const iterator_range& l, const iterator_range& r ) - { - return iterator_range_detail::greater_or_equal_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline BOOST_DEDUCED_TYPENAME boost::enable_if< - mpl::not_ >, - bool - >::type - operator>=( const iterator_range& l, const ForwardRange& r ) - { - return iterator_range_detail::greater_or_equal_than( l, r ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -// iterator range utilities -----------------------------------------// - - //! iterator_range construct helper - /*! - Construct an \c iterator_range from a pair of iterators - - \param Begin A begin iterator - \param End An end iterator - \return iterator_range object - */ - template< typename IteratorT > - inline iterator_range< IteratorT > - make_iterator_range( IteratorT Begin, IteratorT End ) - { - return iterator_range( Begin, End ); - } - - template - inline iterator_range - make_iterator_range_n(IteratorT first, IntegerT n) - { - return iterator_range(first, boost::next(first, n)); - } - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( Range& r ) - { - return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - ( boost::begin( r ), boost::end( r ) ); - } - -#else - //! iterator_range construct helper - /*! - Construct an \c iterator_range from a \c Range containing the begin - and end iterators. - */ - template< class ForwardRange > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( ForwardRange& r ) - { - return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - ( r, iterator_range_detail::range_tag() ); - } - - template< class ForwardRange > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( const ForwardRange& r ) - { - return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - ( r, iterator_range_detail::const_range_tag() ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - namespace iterator_range_detail - { - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_range_impl( Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - // - // Not worth the effort - // - //if( advance_begin == 0 && advance_end == 0 ) - // return make_iterator_range( r ); - // - - BOOST_DEDUCED_TYPENAME range_iterator::type - new_begin = boost::begin( r ), - new_end = boost::end( r ); - std::advance( new_begin, advance_begin ); - std::advance( new_end, advance_end ); - return make_iterator_range( new_begin, new_end ); - } - } - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); - } - -#else - - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); - } - - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( const Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! copy a range into a sequence - /*! - Construct a new sequence of the specified type from the elements - in the given range - - \param Range An input range - \return New sequence - */ - template< typename SeqT, typename Range > - inline SeqT copy_range( const Range& r ) - { - return SeqT( boost::begin( r ), boost::end( r ) ); - } - -} // namespace 'boost' - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( pop ) -#endif - -#endif - diff --git a/lib/3rdParty/boost/boost/range/iterator_range_hash.hpp b/lib/3rdParty/boost/boost/range/iterator_range_hash.hpp deleted file mode 100644 index 615d22fc3..000000000 --- a/lib/3rdParty/boost/boost/range/iterator_range_hash.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014 -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#include -#include - -namespace boost -{ - -template -std::size_t hash_value(const iterator_range& rng) -{ - return boost::hash_range(rng.begin(), rng.end()); -} - -} // namespace boost diff --git a/lib/3rdParty/boost/boost/range/iterator_range_io.hpp b/lib/3rdParty/boost/boost/range/iterator_range_io.hpp deleted file mode 100644 index 8c294008c..000000000 --- a/lib/3rdParty/boost/boost/range/iterator_range_io.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_ITERATOR_RANGE_IO_HPP_INCLUDED -#define BOOST_RANGE_ITERATOR_RANGE_IO_HPP_INCLUDED - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( push ) - #pragma warning( disable : 4996 ) -#endif - -// From boost/dynamic_bitset.hpp; thanks to Matthias Troyer for Cray X1 patch. -#ifndef BOOST_OLD_IOSTREAMS -# if defined(__STL_CONFIG_H) && \ - !defined (__STL_USE_NEW_IOSTREAMS) && !defined(__crayx1) \ - /**/ -# define BOOST_OLD_IOSTREAMS -# endif -#endif // #ifndef BOOST_OLD_IOSTREAMS - -#ifndef _STLP_NO_IOSTREAMS -# ifndef BOOST_OLD_IOSTREAMS -# include -# else -# include -# endif -#endif // _STLP_NO_IOSTREAMS - -#include -#include -#include -#include - -namespace boost -{ - -#ifndef _STLP_NO_IOSTREAMS -# ifndef BOOST_OLD_IOSTREAMS - - //! iterator_range output operator - /*! - Output the range to an ostream. Elements are outputted - in a sequence without separators. - */ - template< typename IteratorT, typename Elem, typename Traits > - inline std::basic_ostream& operator<<( - std::basic_ostream& Os, - const iterator_range& r ) - { - std::copy( r.begin(), r.end(), - std::ostream_iterator< BOOST_DEDUCED_TYPENAME - iterator_value::type, - Elem, Traits>(Os) ); - return Os; - } - -# else - - //! iterator_range output operator - /*! - Output the range to an ostream. Elements are outputted - in a sequence without separators. - */ - template< typename IteratorT > - inline std::ostream& operator<<( - std::ostream& Os, - const iterator_range& r ) - { - std::copy( r.begin(), r.end(), std::ostream_iterator(Os)); - return Os; - } - -# endif -#endif // _STLP_NO_IOSTREAMS - -} // namespace boost - -#undef BOOST_OLD_IOSTREAMS - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning(pop) -#endif - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/join.hpp b/lib/3rdParty/boost/boost/range/join.hpp deleted file mode 100644 index aacc0a371..000000000 --- a/lib/3rdParty/boost/boost/range/join.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. 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) -// -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_JOIN_HPP_INCLUDED -#define BOOST_RANGE_JOIN_HPP_INCLUDED - -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -class joined_type -{ -public: - typedef iterator_range< - range_detail::join_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_value::type - > - > type; -}; - - } // namespace range_detail - -namespace range -{ - -template -class joined_range - : public range_detail::joined_type::type -{ - typedef range_detail::join_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_iterator::type, - BOOST_DEDUCED_TYPENAME range_value::type - > iterator_t; - - typedef BOOST_DEDUCED_TYPENAME range_detail::joined_type< - SinglePassRange1, SinglePassRange2>::type base_t; -public: - joined_range(SinglePassRange1& rng1, SinglePassRange2& rng2) - : base_t( - iterator_t(rng1, rng2, range_detail::join_iterator_begin_tag()), - iterator_t(rng1, rng2, range_detail::join_iterator_end_tag()) - ) - { - } -}; - -template -joined_range -join(const SinglePassRange1& r1, const SinglePassRange2& r2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return joined_range(r1, r2); -} - -template -joined_range -join(SinglePassRange1& r1, SinglePassRange2& r2) -{ - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept )); - - return joined_range(r1, r2); -} - -} // namespace range - -using ::boost::range::joined_range; -using ::boost::range::join; - -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/metafunctions.hpp b/lib/3rdParty/boost/boost/range/metafunctions.hpp deleted file mode 100644 index 9dc59d0f7..000000000 --- a/lib/3rdParty/boost/boost/range/metafunctions.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_METAFUNCTIONS_HPP -#define BOOST_RANGE_METAFUNCTIONS_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/lib/3rdParty/boost/boost/range/mfc.hpp b/lib/3rdParty/boost/boost/range/mfc.hpp deleted file mode 100644 index 058e54ec6..000000000 --- a/lib/3rdParty/boost/boost/range/mfc.hpp +++ /dev/null @@ -1,984 +0,0 @@ -#ifndef BOOST_RANGE_MFC_HPP -#define BOOST_RANGE_MFC_HPP - - - - -// Boost.Range MFC Extension -// -// Copyright Shunsuke Sogame 2005-2006. -// 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) - - - - -// config -// - - -#include // _MFC_VER - - -#if !defined(BOOST_RANGE_MFC_NO_CPAIR) - #if (_MFC_VER < 0x0700) // dubious - #define BOOST_RANGE_MFC_NO_CPAIR - #endif -#endif - - -#if !defined(BOOST_RANGE_MFC_HAS_LEGACY_STRING) - #if (_MFC_VER < 0x0700) // dubious - #define BOOST_RANGE_MFC_HAS_LEGACY_STRING - #endif -#endif - - -// A const collection of old MFC doesn't return const reference. -// -#if !defined(BOOST_RANGE_MFC_CONST_COL_RETURNS_NON_REF) - #if (_MFC_VER < 0x0700) // dubious - #define BOOST_RANGE_MFC_CONST_COL_RETURNS_NON_REF - #endif -#endif - - - - -// forward declarations -// - - -template< class Type, class ArgType > -class CArray; - -template< class Type, class ArgType > -class CList; - -template< class Key, class ArgKey, class Mapped, class ArgMapped > -class CMap; - -template< class BaseClass, class PtrType > -class CTypedPtrArray; - -template< class BaseClass, class PtrType > -class CTypedPtrList; - -template< class BaseClass, class KeyPtrType, class MappedPtrType > -class CTypedPtrMap; - - - - -// extended customizations -// - - -#include // ptrdiff_t -#include // pair -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // legacy CString -#include // CXXXArray, CXXXList, CMapXXXToXXX -#include - - -namespace boost { namespace range_detail_microsoft { - - - // mfc_ptr_array_iterator - // - // 'void **' is not convertible to 'void const **', - // so we define... - // - - template< class ArrayT, class PtrType > - struct mfc_ptr_array_iterator; - - template< class ArrayT, class PtrType > - struct mfc_ptr_array_iterator_super - { - typedef iterator_adaptor< - mfc_ptr_array_iterator, - std::ptrdiff_t, // Base! - PtrType, // Value - random_access_traversal_tag, - use_default, - std::ptrdiff_t // Difference - > type; - }; - - template< class ArrayT, class PtrType > - struct mfc_ptr_array_iterator : - mfc_ptr_array_iterator_super::type - { - private: - typedef mfc_ptr_array_iterator self_t; - typedef typename mfc_ptr_array_iterator_super::type super_t; - typedef typename super_t::reference ref_t; - - public: - explicit mfc_ptr_array_iterator() - { } - - explicit mfc_ptr_array_iterator(ArrayT& arr, INT_PTR index) : - super_t(index), m_parr(boost::addressof(arr)) - { } - - template< class, class > friend struct mfc_ptr_array_iterator; - template< class ArrayT_, class PtrType_ > - mfc_ptr_array_iterator(mfc_ptr_array_iterator const& other) : - super_t(other.base()), m_parr(other.m_parr) - { } - - private: - ArrayT *m_parr; - - friend class iterator_core_access; - ref_t dereference() const - { - BOOST_ASSERT(0 <= this->base() && this->base() < m_parr->GetSize() && "out of range"); - return *( m_parr->GetData() + this->base() ); - } - - bool equal(self_t const& other) const - { - BOOST_ASSERT(m_parr == other.m_parr && "iterators incompatible"); - return this->base() == other.base(); - } - }; - - struct mfc_ptr_array_functions - { - template< class Iterator, class X > - Iterator begin(X& x) - { - return Iterator(x, 0); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return Iterator(x, x.GetSize()); - } - }; - - - // arrays - // - - template< > - struct customization< ::CByteArray > : - array_functions - { - template< class X > - struct meta - { - typedef BYTE val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< > - struct customization< ::CDWordArray > : - array_functions - { - template< class X > - struct meta - { - typedef DWORD val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< > - struct customization< ::CObArray > : - mfc_ptr_array_functions - { - template< class X > - struct meta - { - typedef mfc_ptr_array_iterator mutable_iterator; - typedef mfc_ptr_array_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CPtrArray > : - mfc_ptr_array_functions - { - template< class X > - struct meta - { - typedef mfc_ptr_array_iterator mutable_iterator; - typedef mfc_ptr_array_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CStringArray > : - array_functions - { - template< class X > - struct meta - { - typedef ::CString val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< > - struct customization< ::CUIntArray > : - array_functions - { - template< class X > - struct meta - { - typedef UINT val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< > - struct customization< ::CWordArray > : - array_functions - { - template< class X > - struct meta - { - typedef WORD val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - // lists - // - - template< > - struct customization< ::CObList > : - list_functions - { - template< class X > - struct meta - { - typedef list_iterator mutable_iterator; - #if !defined(BOOST_RANGE_MFC_CONST_COL_RETURNS_NON_REF) - typedef list_iterator const_iterator; - #else - typedef list_iterator const_iterator; - #endif - }; - }; - - - template< > - struct customization< ::CPtrList > : - list_functions - { - template< class X > - struct meta - { - typedef list_iterator mutable_iterator; - #if !defined(BOOST_RANGE_MFC_CONST_COL_RETURNS_NON_REF) - typedef list_iterator const_iterator; - #else - typedef list_iterator const_iterator; - #endif - }; - }; - - - template< > - struct customization< ::CStringList > : - list_functions - { - template< class X > - struct meta - { - typedef ::CString val_t; - - typedef list_iterator mutable_iterator; - #if !defined(BOOST_RANGE_MFC_CONST_COL_RETURNS_NON_REF) - typedef list_iterator const_iterator; - #else - typedef list_iterator const_iterator; - #endif - }; - }; - - - // mfc_map_iterator - // - - template< class MapT, class KeyT, class MappedT > - struct mfc_map_iterator; - - template< class MapT, class KeyT, class MappedT > - struct mfc_map_iterator_super - { - typedef iterator_facade< - mfc_map_iterator, - std::pair, - forward_traversal_tag, - std::pair const - > type; - }; - - template< class MapT, class KeyT, class MappedT > - struct mfc_map_iterator : - mfc_map_iterator_super::type - { - private: - typedef mfc_map_iterator self_t; - typedef typename mfc_map_iterator_super::type super_t; - typedef typename super_t::reference ref_t; - - public: - explicit mfc_map_iterator() - { } - - explicit mfc_map_iterator(MapT const& map, POSITION pos) : - m_pmap(boost::addressof(map)), m_posNext(pos) - { - increment(); - } - - explicit mfc_map_iterator(MapT const& map) : - m_pmap(&map), m_pos(0) // end iterator - { } - - template< class, class, class > friend struct mfc_map_iterator; - template< class MapT_, class KeyT_, class MappedT_> - mfc_map_iterator(mfc_map_iterator const& other) : - m_pmap(other.m_pmap), - m_pos(other.m_pos), m_posNext(other.m_posNext), - m_key(other.m_key), m_mapped(other.m_mapped) - { } - - private: - MapT const *m_pmap; - POSITION m_pos, m_posNext; - KeyT m_key; MappedT m_mapped; - - friend class iterator_core_access; - ref_t dereference() const - { - BOOST_ASSERT(m_pos != 0 && "out of range"); - return std::make_pair(m_key, m_mapped); - } - - void increment() - { - BOOST_ASSERT(m_pos != 0 && "out of range"); - - if (m_posNext == 0) { - m_pos = 0; - return; - } - - m_pos = m_posNext; - m_pmap->GetNextAssoc(m_posNext, m_key, m_mapped); - } - - bool equal(self_t const& other) const - { - BOOST_ASSERT(m_pmap == other.m_pmap && "iterators incompatible"); - return m_pos == other.m_pos; - } - }; - - struct mfc_map_functions - { - template< class Iterator, class X > - Iterator begin(X& x) - { - return Iterator(x, x.GetStartPosition()); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return Iterator(x); - } - }; - - -#if !defined(BOOST_RANGE_MFC_NO_CPAIR) - - - // mfc_cpair_map_iterator - // - // used by ::CMap and ::CMapStringToString - // - - template< class MapT, class PairT > - struct mfc_cpair_map_iterator; - - template< class MapT, class PairT > - struct mfc_pget_map_iterator_super - { - typedef iterator_facade< - mfc_cpair_map_iterator, - PairT, - forward_traversal_tag - > type; - }; - - template< class MapT, class PairT > - struct mfc_cpair_map_iterator : - mfc_pget_map_iterator_super::type - { - private: - typedef mfc_cpair_map_iterator self_t; - typedef typename mfc_pget_map_iterator_super::type super_t; - typedef typename super_t::reference ref_t; - - public: - explicit mfc_cpair_map_iterator() - { } - - explicit mfc_cpair_map_iterator(MapT& map, PairT *pp) : - m_pmap(boost::addressof(map)), m_pp(pp) - { } - - template< class, class > friend struct mfc_cpair_map_iterator; - template< class MapT_, class PairT_> - mfc_cpair_map_iterator(mfc_cpair_map_iterator const& other) : - m_pmap(other.m_pmap), m_pp(other.m_pp) - { } - - private: - MapT *m_pmap; - PairT *m_pp; - - friend class iterator_core_access; - ref_t dereference() const - { - BOOST_ASSERT(m_pp != 0 && "out of range"); - return *m_pp; - } - - void increment() - { - BOOST_ASSERT(m_pp != 0 && "out of range"); - m_pp = m_pmap->PGetNextAssoc(m_pp); - } - - bool equal(self_t const& other) const - { - BOOST_ASSERT(m_pmap == other.m_pmap && "iterators incompatible"); - return m_pp == other.m_pp; - } - }; - - struct mfc_cpair_map_functions - { - template< class Iterator, class X > - Iterator begin(X& x) - { - // Workaround: - // Assertion fails if empty. - // MFC document is wrong. - #if !defined(NDEBUG) - if (x.GetCount() == 0) - return Iterator(x, 0); - #endif - - return Iterator(x, x.PGetFirstAssoc()); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return Iterator(x, 0); - } - }; - - -#endif // !defined(BOOST_RANGE_MFC_NO_CPAIR) - - - // maps - // - - template< > - struct customization< ::CMapPtrToWord > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef void *key_t; - typedef WORD mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CMapPtrToPtr > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef void *key_t; - typedef void *mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CMapStringToOb > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef ::CString key_t; - typedef ::CObject *mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CMapStringToPtr > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef ::CString key_t; - typedef void *mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CMapStringToString > : - #if !defined(BOOST_RANGE_MFC_NO_CPAIR) - mfc_cpair_map_functions - #else - mfc_map_functions - #endif - { - template< class X > - struct meta - { - #if !defined(BOOST_RANGE_MFC_NO_CPAIR) - typedef typename X::CPair pair_t; - - typedef mfc_cpair_map_iterator mutable_iterator; - typedef mfc_cpair_map_iterator const_iterator; - #else - typedef ::CString key_t; - typedef ::CString mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - #endif - }; - }; - - - template< > - struct customization< ::CMapWordToOb > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef WORD key_t; - typedef ::CObject *mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - template< > - struct customization< ::CMapWordToPtr > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef WORD key_t; - typedef void *mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - // templates - // - - template< class Type, class ArgType > - struct customization< ::CArray > : - array_functions - { - template< class X > - struct meta - { - typedef Type val_t; - - typedef val_t *mutable_iterator; - typedef val_t const *const_iterator; - }; - }; - - - template< class Type, class ArgType > - struct customization< ::CList > : - list_functions - { - template< class X > - struct meta - { - typedef Type val_t; - - typedef list_iterator mutable_iterator; - #if !defined(BOOST_RANGE_MFC_CONST_COL_RETURNS_NON_REF) - typedef list_iterator const_iterator; - #else - typedef list_iterator const_iterator; - #endif - }; - }; - - - template< class Key, class ArgKey, class Mapped, class ArgMapped > - struct customization< ::CMap > : - #if !defined(BOOST_RANGE_MFC_NO_CPAIR) - mfc_cpair_map_functions - #else - mfc_map_functions - #endif - { - template< class X > - struct meta - { - #if !defined(BOOST_RANGE_MFC_NO_CPAIR) - typedef typename X::CPair pair_t; - - typedef mfc_cpair_map_iterator mutable_iterator; - typedef mfc_cpair_map_iterator const_iterator; - #else - typedef Key key_t; - typedef Mapped mapped_t; - - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - #endif - }; - }; - - - template< class BaseClass, class PtrType > - struct customization< ::CTypedPtrArray > - { - template< class X > - struct fun - { - typedef typename remove_pointer::type val_t; - - typedef typename mpl::if_< is_const, - val_t const, - val_t - >::type val_t_; - - typedef val_t_ * const result_type; - - template< class PtrType_ > - result_type operator()(PtrType_ p) const - { - return static_cast(p); - } - }; - - template< class X > - struct meta - { - typedef typename compatible_mutable_iterator::type miter_t; - typedef typename range_const_iterator::type citer_t; - - typedef transform_iterator, miter_t> mutable_iterator; - typedef transform_iterator, citer_t> const_iterator; - }; - - template< class Iterator, class X > - Iterator begin(X& x) - { - return Iterator(boost::begin(x), fun()); - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return Iterator(boost::end(x), fun()); - } - }; - - - template< class BaseClass, class PtrType > - struct customization< ::CTypedPtrList > : - list_functions - { - template< class X > - struct meta - { - typedef typename remove_pointer::type val_t; - - // not l-value - typedef list_iterator mutable_iterator; - typedef list_iterator const_iterator; - }; - }; - - - template< class BaseClass, class KeyPtrType, class MappedPtrType > - struct customization< ::CTypedPtrMap > : - mfc_map_functions - { - template< class X > - struct meta - { - typedef mfc_map_iterator mutable_iterator; - typedef mutable_iterator const_iterator; - }; - }; - - - // strings - // - -#if defined(BOOST_RANGE_MFC_HAS_LEGACY_STRING) - - template< > - struct customization< ::CString > - { - template< class X > - struct meta - { - // LPTSTR/LPCTSTR is not always defined in . - typedef TCHAR *mutable_iterator; - typedef TCHAR const *const_iterator; - }; - - template< class Iterator, class X > - typename mutable_::type begin(X& x) - { - return x.GetBuffer(0); - } - - template< class Iterator, class X > - Iterator begin(X const& x) - { - return x; - } - - template< class Iterator, class X > - Iterator end(X& x) - { - return begin(x) + x.GetLength(); - } - }; - -#endif // defined(BOOST_RANGE_MFC_HAS_LEGACY_STRING) - - -} } // namespace boost::range_detail_microsoft - - - - -// range customizations -// - - -// arrays -// -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CByteArray -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CDWordArray -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CStringArray -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CUIntArray -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CWordArray -) - - -// lists -// -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CObList -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CPtrList -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CStringList -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CObArray -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CPtrArray -) - - -// maps -// -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapPtrToWord -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapPtrToPtr -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapStringToOb -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapStringToPtr -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapStringToString -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapWordToOb -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMapWordToPtr -) - - -// templates -// -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CArray, 2 -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CList, 2 -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CMap, 4 -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CTypedPtrArray, 2 -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CTypedPtrList, 2 -) - -BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TEMPLATE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CTypedPtrMap, 3 -) - - -// strings -// -#if defined(BOOST_RANGE_MFC_HAS_LEGACY_STRING) - - BOOST_RANGE_DETAIL_MICROSOFT_CUSTOMIZATION_TYPE( - boost::range_detail_microsoft::using_type_as_tag, - BOOST_PP_NIL, CString - ) - -#endif - - - - -#endif diff --git a/lib/3rdParty/boost/boost/range/mfc_map.hpp b/lib/3rdParty/boost/boost/range/mfc_map.hpp deleted file mode 100644 index 2cd42b43d..000000000 --- a/lib/3rdParty/boost/boost/range/mfc_map.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// Boost.Range library -// -// Copyright Adam D. Walling 2012. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_ADAPTOR_MFC_MAP_HPP -#define BOOST_RANGE_ADAPTOR_MFC_MAP_HPP - -#if !defined(BOOST_RANGE_MFC_NO_CPAIR) - -#include -#include - -namespace boost -{ - namespace range_detail - { - // CMap and CMapStringToString range iterators return CPair, - // which has a key and value member. Other MFC range iterators - // already return adapted std::pair objects. This allows usage - // of the map_keys and map_values range adaptors with CMap - // and CMapStringToString - - // CPair has a VALUE value member, and a KEY key member; we will - // use VALUE& as the result_type consistent with CMap::operator[] - - // specialization for CMap - template - struct select_first< CMap > - { - typedef BOOST_DEDUCED_TYPENAME CMap map_type; - typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; - typedef BOOST_DEDUCED_TYPENAME const KEY& result_type; - - result_type operator()( argument_type r ) const - { - return r.key; - } - }; - - template - struct select_second_mutable< CMap > - { - typedef BOOST_DEDUCED_TYPENAME CMap map_type; - typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; - typedef BOOST_DEDUCED_TYPENAME VALUE& result_type; - - result_type operator()( argument_type r ) const - { - return r.value; - } - }; - - template - struct select_second_const< CMap > - { - typedef BOOST_DEDUCED_TYPENAME CMap map_type; - typedef BOOST_DEDUCED_TYPENAME range_reference::type argument_type; - typedef BOOST_DEDUCED_TYPENAME const VALUE& result_type; - - result_type operator()( argument_type r ) const - { - return r.value; - } - }; - - - // specialization for CMapStringToString - template<> - struct select_first< CMapStringToString > - { - typedef range_reference::type argument_type; - typedef const CString& result_type; - - result_type operator()( argument_type r ) const - { - return r.key; - } - }; - - template<> - struct select_second_mutable< CMapStringToString > - { - typedef range_reference::type argument_type; - typedef CString& result_type; - - result_type operator()( argument_type r ) const - { - return r.value; - } - }; - - template<> - struct select_second_const< CMapStringToString > - { - typedef range_reference::type argument_type; - typedef const CString& result_type; - - result_type operator()( argument_type r ) const - { - return r.value; - } - }; - } // 'range_detail' -} // 'boost' - -#endif // !defined(BOOST_RANGE_MFC_NO_CPAIR) - -#endif diff --git a/lib/3rdParty/boost/boost/range/mutable_iterator.hpp b/lib/3rdParty/boost/boost/range/mutable_iterator.hpp deleted file mode 100644 index b92466667..000000000 --- a/lib/3rdParty/boost/boost/range/mutable_iterator.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP -#define BOOST_RANGE_MUTABLE_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - namespace range_detail - { - -BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( iterator ) - -template< typename C > -struct range_mutable_iterator - : range_detail::extract_iterator< - BOOST_DEDUCED_TYPENAME remove_reference::type> -{}; - -////////////////////////////////////////////////////////////////////////// -// pair -////////////////////////////////////////////////////////////////////////// - -template< typename Iterator > -struct range_mutable_iterator< std::pair > -{ - typedef Iterator type; -}; - -////////////////////////////////////////////////////////////////////////// -// array -////////////////////////////////////////////////////////////////////////// - -template< typename T, std::size_t sz > -struct range_mutable_iterator< T[sz] > -{ - typedef T* type; -}; - - } // namespace range_detail - -template -struct range_mutable_iterator - : range_detail::range_mutable_iterator< - BOOST_DEDUCED_TYPENAME remove_reference::type - > -{ -}; - -} // namespace boost - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/range/numeric.hpp b/lib/3rdParty/boost/boost/range/numeric.hpp deleted file mode 100644 index d1510cdef..000000000 --- a/lib/3rdParty/boost/boost/range/numeric.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2009-2014 Neil Groves. -// 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) -// -// Copyright 2006 Thorsten Ottosen. -// 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) -// -// Copyright 2004 Eric Niebler. -// 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) -// -// Contains range-based versions of the numeric std algorithms -// -#if defined(_MSC_VER) - #pragma once -#endif - -#ifndef BOOST_RANGE_NUMERIC_HPP -#define BOOST_RANGE_NUMERIC_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -namespace boost -{ - template - inline Value accumulate(const SinglePassRange& rng, Value init) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return std::accumulate(boost::begin(rng), boost::end(rng), init); - } - - template - inline Value accumulate(const SinglePassRange& rng, Value init, - BinaryOperation op) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept )); - - return std::accumulate(boost::begin(rng), boost::end(rng), init, op); - } - - namespace range_detail - { - template - inline bool inner_product_precondition( - const SinglePassRange1&, - const SinglePassRange2&, - std::input_iterator_tag, - std::input_iterator_tag) - { - return true; - } - - template - inline bool inner_product_precondition( - const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - std::forward_iterator_tag, - std::forward_iterator_tag) - { - return boost::size(rng2) >= boost::size(rng1); - } - - } // namespace range_detail - - template< - class SinglePassRange1, - class SinglePassRange2, - class Value - > - inline Value inner_product( - const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - Value init) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - BOOST_ASSERT( - range_detail::inner_product_precondition( - rng1, rng2, - typename range_category::type(), - typename range_category::type())); - - return std::inner_product( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), init); - } - - template< - class SinglePassRange1, - class SinglePassRange2, - class Value, - class BinaryOperation1, - class BinaryOperation2 - > - inline Value inner_product( - const SinglePassRange1& rng1, - const SinglePassRange2& rng2, - Value init, - BinaryOperation1 op1, - BinaryOperation2 op2) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - BOOST_ASSERT( - range_detail::inner_product_precondition( - rng1, rng2, - typename range_category::type(), - typename range_category::type())); - - return std::inner_product( - boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), init, op1, op2); - } - - template - inline OutputIterator partial_sum(const SinglePassRange& rng, - OutputIterator result) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return std::partial_sum(boost::begin(rng), boost::end(rng), result); - } - - template - inline OutputIterator partial_sum( - const SinglePassRange& rng, - OutputIterator result, - BinaryOperation op) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return std::partial_sum(boost::begin(rng), boost::end(rng), result, op); - } - - template - inline OutputIterator adjacent_difference( - const SinglePassRange& rng, - OutputIterator result) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return std::adjacent_difference(boost::begin(rng), boost::end(rng), - result); - } - - template - inline OutputIterator adjacent_difference( - const SinglePassRange& rng, - OutputIterator result, - BinaryOperation op) - { - BOOST_RANGE_CONCEPT_ASSERT(( - SinglePassRangeConcept)); - - return std::adjacent_difference(boost::begin(rng), boost::end(rng), - result, op); - } - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/range/pointer.hpp b/lib/3rdParty/boost/boost/range/pointer.hpp deleted file mode 100644 index b1e8dc5c5..000000000 --- a/lib/3rdParty/boost/boost/range/pointer.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2006. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_POINTER_TYPE_HPP -#define BOOST_RANGE_POINTER_TYPE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - template< class T > - struct range_pointer - : iterator_pointer< BOOST_DEDUCED_TYPENAME range_iterator::type > - { }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/range_fwd.hpp b/lib/3rdParty/boost/boost/range/range_fwd.hpp deleted file mode 100644 index 0e6e00f55..000000000 --- a/lib/3rdParty/boost/boost/range/range_fwd.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2003-2004. -// 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) -// -// For more information, see http://www.boost.org/libs/range/ -// -#ifndef BOOST_RANGE_RANGE_FWD_HPP_INCLUDED -#define BOOST_RANGE_RANGE_FWD_HPP_INCLUDED - -namespace boost -{ - -// Extension points - template - struct range_iterator; - - template - struct range_mutable_iterator; - - template - struct range_const_iterator; - -// Core classes - template - class iterator_range; - - template - class sub_range; - -// Meta-functions - template - struct range_category; - - template - struct range_difference; - - template - struct range_pointer; - - template - struct range_reference; - - template - struct range_reverse_iterator; - - template - struct range_size; - - template - struct range_value; - - template - struct has_range_iterator; - - template - struct has_range_const_iterator; - -} // namespace boost - -#endif // include guard diff --git a/lib/3rdParty/boost/boost/range/rbegin.hpp b/lib/3rdParty/boost/boost/range/rbegin.hpp deleted file mode 100644 index 6d66de94b..000000000 --- a/lib/3rdParty/boost/boost/range/rbegin.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_RBEGIN_HPP -#define BOOST_RANGE_RBEGIN_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -namespace boost -{ - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rbegin( C& c ) -{ - return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( boost::end( c ) ); -} - -#else - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rbegin( C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::end( c ) ); -} - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rbegin( const C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::end( c ) ); -} - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -const_rbegin( const T& r ) -{ - return boost::rbegin( r ); -} - -} // namespace 'boost' - -#endif - diff --git a/lib/3rdParty/boost/boost/range/reference.hpp b/lib/3rdParty/boost/boost/range/reference.hpp deleted file mode 100644 index c664c38a6..000000000 --- a/lib/3rdParty/boost/boost/range/reference.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_REFERENCE_TYPE_HPP -#define BOOST_RANGE_REFERENCE_TYPE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - template< class T > - struct range_reference : iterator_reference< typename range_iterator::type > - { }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/rend.hpp b/lib/3rdParty/boost/boost/range/rend.hpp deleted file mode 100644 index ef7040780..000000000 --- a/lib/3rdParty/boost/boost/range/rend.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_REND_HPP -#define BOOST_RANGE_REND_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -namespace boost -{ - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rend( C& c ) -{ - return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( boost::begin( c ) ); -} - -#else - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rend( C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::begin( c ) ); -} - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rend( const C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::begin( c ) ); -} - -#endif - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -const_rend( const T& r ) -{ - return boost::rend( r ); -} - -} // namespace 'boost' - -#endif - diff --git a/lib/3rdParty/boost/boost/range/result_iterator.hpp b/lib/3rdParty/boost/boost/range/result_iterator.hpp deleted file mode 100644 index 54e343d11..000000000 --- a/lib/3rdParty/boost/boost/range/result_iterator.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_RESULT_ITERATOR_HPP -#define BOOST_RANGE_RESULT_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -namespace boost -{ - // - // This interface is deprecated, use range_iterator - // - - template< typename C > - struct range_result_iterator : range_iterator - { }; - -} // namespace boost - - -#endif diff --git a/lib/3rdParty/boost/boost/range/reverse_iterator.hpp b/lib/3rdParty/boost/boost/range/reverse_iterator.hpp deleted file mode 100644 index 0aa0130af..000000000 --- a/lib/3rdParty/boost/boost/range/reverse_iterator.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_REVERSE_ITERATOR_HPP -#define BOOST_RANGE_REVERSE_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include - - -namespace boost -{ - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - template< typename T > - struct range_reverse_iterator - { - typedef reverse_iterator< - BOOST_DEDUCED_TYPENAME range_iterator< - BOOST_DEDUCED_TYPENAME remove_reference::type>::type > type; - }; - - -} // namespace boost - - -#endif diff --git a/lib/3rdParty/boost/boost/range/reverse_result_iterator.hpp b/lib/3rdParty/boost/boost/range/reverse_result_iterator.hpp deleted file mode 100644 index d375cfd53..000000000 --- a/lib/3rdParty/boost/boost/range/reverse_result_iterator.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_REVERSE_RESULT_ITERATOR_HPP -#define BOOST_RANGE_REVERSE_RESULT_ITERATOR_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include - -namespace boost -{ - // - // This interface is deprecated, use range_reverse_iterator - // - - template< typename C > - struct range_reverse_result_iterator : range_reverse_iterator - { }; - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/range/size.hpp b/lib/3rdParty/boost/boost/range/size.hpp deleted file mode 100644 index 7f38db8c1..000000000 --- a/lib/3rdParty/boost/boost/range/size.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_SIZE_HPP -#define BOOST_RANGE_SIZE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - - template - inline typename ::boost::enable_if< - has_member_size, - typename range_size::type - >::type - range_calculate_size(const SinglePassRange& rng) - { - return rng.size(); - } - - template - inline typename disable_if< - has_member_size, - typename range_size::type - >::type - range_calculate_size(const SinglePassRange& rng) - { - return std::distance(boost::begin(rng), boost::end(rng)); - } - } - - template - inline typename range_size::type - size(const SinglePassRange& rng) - { -// Very strange things happen on some compilers that have the range concept -// asserts disabled. This preprocessor condition is clearly redundant on a -// working compiler but is vital for at least some compilers such as clang 4.2 -// but only on the Mac! -#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT == 1 - BOOST_RANGE_CONCEPT_ASSERT((boost::SinglePassRangeConcept)); -#endif - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ - using namespace range_detail; -#endif - - return range_calculate_size(rng); - } - -} // namespace 'boost' - -#endif diff --git a/lib/3rdParty/boost/boost/range/size_type.hpp b/lib/3rdParty/boost/boost/range/size_type.hpp deleted file mode 100644 index 0a2ea81bb..000000000 --- a/lib/3rdParty/boost/boost/range/size_type.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_SIZE_TYPE_HPP -#define BOOST_RANGE_SIZE_TYPE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost -{ - namespace detail - { - - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - template - class has_size_type - { - typedef char no_type; - struct yes_type { char dummy[2]; }; - - template - static yes_type test(BOOST_DEDUCED_TYPENAME C::size_type x); - - template - static no_type test(...); - - public: - static const bool value = sizeof(test(0)) == sizeof(yes_type); - }; - - template - struct range_size_ - { - typedef BOOST_DEDUCED_TYPENAME make_unsigned< - BOOST_DEDUCED_TYPENAME range_difference::type - >::type type; - }; - - template - struct range_size_< - C, - BOOST_DEDUCED_TYPENAME ::boost::enable_if, void>::type - > - { - typedef BOOST_DEDUCED_TYPENAME C::size_type type; - }; - - template >::value> - struct range_size - { }; - - template - struct range_size - : range_size_ - { }; - } - - template< class T > - struct range_size : - detail::range_size - { }; - -} // namespace boost - - - -#endif diff --git a/lib/3rdParty/boost/boost/range/sub_range.hpp b/lib/3rdParty/boost/boost/range/sub_range.hpp deleted file mode 100644 index d1c3b99b0..000000000 --- a/lib/3rdParty/boost/boost/range/sub_range.hpp +++ /dev/null @@ -1,287 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2009. -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_SUB_RANGE_HPP -#define BOOST_RANGE_SUB_RANGE_HPP - -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( push ) - #pragma warning( disable : 4996 ) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - namespace range_detail - { - -template -class sub_range_base - : public iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type - > -{ - typedef iterator_range< - BOOST_DEDUCED_TYPENAME range_iterator::type - > base; - -protected: - typedef BOOST_DEDUCED_TYPENAME base::iterator_range_ iterator_range_; - -public: - typedef BOOST_DEDUCED_TYPENAME range_value::type value_type; - typedef BOOST_DEDUCED_TYPENAME range_iterator::type iterator; - typedef BOOST_DEDUCED_TYPENAME range_iterator::type const_iterator; - typedef BOOST_DEDUCED_TYPENAME range_difference::type difference_type; - typedef BOOST_DEDUCED_TYPENAME range_size::type size_type; - typedef BOOST_DEDUCED_TYPENAME range_reference::type reference; - typedef BOOST_DEDUCED_TYPENAME range_reference::type const_reference; - - sub_range_base() - { - } - - template - sub_range_base(Iterator first, Iterator last) - : base(first, last) - { - } - - reference front() - { - return base::front(); - } - - const_reference front() const - { - return base::front(); - } -}; - -template -class sub_range_base - : public sub_range_base -{ - typedef sub_range_base base; -public: - sub_range_base() - { - } - - template - sub_range_base(Iterator first, Iterator last) - : base(first, last) - { - } - - BOOST_DEDUCED_TYPENAME base::reference back() - { - return base::back(); - } - - BOOST_DEDUCED_TYPENAME base::const_reference back() const - { - return base::back(); - } -}; - -template -class sub_range_base - : public sub_range_base -{ - typedef sub_range_base base; - -public: - sub_range_base() - { - } - - template - sub_range_base(Iterator first, Iterator last) - : base(first, last) - { - } - - BOOST_DEDUCED_TYPENAME base::reference - operator[](BOOST_DEDUCED_TYPENAME base::difference_type n) - { - return this->begin()[n]; - } - - BOOST_DEDUCED_TYPENAME base::const_reference - operator[](BOOST_DEDUCED_TYPENAME base::difference_type n) const - { - return this->begin()[n]; - } -}; - - } // namespace range_detail - - template - class sub_range - : public range_detail::sub_range_base< - ForwardRange, - BOOST_DEDUCED_TYPENAME iterator_traversal< - BOOST_DEDUCED_TYPENAME range_iterator::type - >::type - > - { - typedef BOOST_DEDUCED_TYPENAME range_iterator< - ForwardRange - >::type iterator_t; - - typedef range_detail::sub_range_base< - ForwardRange, - BOOST_DEDUCED_TYPENAME iterator_traversal< - BOOST_DEDUCED_TYPENAME range_iterator::type - >::type - > base; - - typedef BOOST_DEDUCED_TYPENAME base::impl impl; - - protected: - typedef BOOST_DEDUCED_TYPENAME base::iterator_range_ iterator_range_; - - private: - template - struct is_compatible_range - : is_convertible< - BOOST_DEDUCED_TYPENAME mpl::eval_if< - has_range_iterator, - range_iterator, - mpl::identity - >::type, - BOOST_DEDUCED_TYPENAME base::iterator - > - { - }; - - public: - sub_range() - { } - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500) ) - sub_range(const sub_range& r) - : base(impl::adl_begin(const_cast(static_cast(r))), - impl::adl_end(const_cast(static_cast(r)))) - { } -#endif - - template< class ForwardRange2 > - sub_range( - ForwardRange2& r, - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - is_compatible_range - >::type* = 0 - ) - : base(impl::adl_begin(r), impl::adl_end(r)) - { - } - - template< class ForwardRange2 > - sub_range( - const ForwardRange2& r, - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - is_compatible_range - >::type* = 0 - ) - : base(impl::adl_begin(r), impl::adl_end(r)) - { - } - - BOOST_DEDUCED_TYPENAME base::const_iterator begin() const - { - return base::begin(); - } - - BOOST_DEDUCED_TYPENAME base::iterator begin() - { - return base::begin(); - } - - BOOST_DEDUCED_TYPENAME base::const_iterator end() const - { - return base::end(); - } - - BOOST_DEDUCED_TYPENAME base::iterator end() - { - return base::end(); - } - - template< class Iter > - sub_range( Iter first, Iter last ) : - base( first, last ) - { } - - template - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - is_compatible_range, - sub_range& - >::type - operator=(ForwardRange2& r) - { - iterator_range_::operator=( r ); - return *this; - } - - template - BOOST_DEDUCED_TYPENAME ::boost::enable_if< - is_compatible_range, - sub_range& - >::type - operator=( const ForwardRange2& r ) - { - iterator_range_::operator=( r ); - return *this; - } - - sub_range& operator=( const sub_range& r ) - { - iterator_range_::operator=( static_cast(r) ); - return *this; - } - - sub_range& advance_begin( - BOOST_DEDUCED_TYPENAME base::difference_type n) - { - std::advance(this->m_Begin, n); - return *this; - } - - sub_range& advance_end( - BOOST_DEDUCED_TYPENAME base::difference_type n) - { - std::advance(this->m_End, n); - return *this; - } - }; - -} // namespace 'boost' - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( pop ) -#endif - -#endif - diff --git a/lib/3rdParty/boost/boost/range/traversal.hpp b/lib/3rdParty/boost/boost/range/traversal.hpp deleted file mode 100644 index 237b3e88e..000000000 --- a/lib/3rdParty/boost/boost/range/traversal.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Boost.Range library -// -// Copyright Neil Groves 2014. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_TRAVERSAL_HPP -#define BOOST_RANGE_TRAVERSAL_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - template - struct range_traversal - : iterator_traversal::type> - { - }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/range/value_type.hpp b/lib/3rdParty/boost/boost/range/value_type.hpp deleted file mode 100644 index 5a3187ec0..000000000 --- a/lib/3rdParty/boost/boost/range/value_type.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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) -// -// For more information, see http://www.boost.org/libs/range/ -// - -#ifndef BOOST_RANGE_VALUE_TYPE_HPP -#define BOOST_RANGE_VALUE_TYPE_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -#include -#include - -#include - -namespace boost -{ - template< class T > - struct range_value : iterator_value< typename range_iterator::type > - { }; -} - -#endif diff --git a/lib/3rdParty/boost/boost/ref.hpp b/lib/3rdParty/boost/boost/ref.hpp deleted file mode 100644 index 17b56ec00..000000000 --- a/lib/3rdParty/boost/boost/ref.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_REF_HPP -#define BOOST_REF_HPP - -// The header file at this path is deprecated; -// use boost/core/ref.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/shared_ptr.hpp b/lib/3rdParty/boost/boost/shared_ptr.hpp deleted file mode 100644 index d31978c92..000000000 --- a/lib/3rdParty/boost/boost/shared_ptr.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef BOOST_SHARED_PTR_HPP_INCLUDED -#define BOOST_SHARED_PTR_HPP_INCLUDED - -// -// shared_ptr.hpp -// -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001-2008 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) -// -// See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation. -// - -#include - -#endif // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/allocate_shared_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/allocate_shared_array.hpp deleted file mode 100644 index 1ae5cc783..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/allocate_shared_array.hpp +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) 2012-2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP -#define BOOST_SMART_PTR_ALLOCATE_SHARED_ARRAY_HPP - -#include -#include - -namespace boost { - template - inline typename boost::detail::sp_if_array::type - allocate_shared(const A& allocator, std::size_t size) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_init_tag R1; - typedef boost::detail::as_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - std::size_t n1 = size * boost::detail::array_total::size; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(allocator, size, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - boost::detail::as_init(allocator, p2, n1); -#else - boost::detail::ms_init(p2, n1); -#endif - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_size_array::type - allocate_shared(const A& allocator) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_init_tag R1; - typedef boost::detail::as_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - N = boost::detail::array_total::size - }; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(allocator, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - boost::detail::as_init(allocator, p2, N); -#else - boost::detail::ms_init(p2, N); -#endif - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_array::type - allocate_shared(const A& allocator, std::size_t size, - const typename boost::detail::array_inner::type& value) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef const T2 T3; - typedef boost::detail::ms_init_tag R1; - typedef boost::detail::as_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - M = boost::detail::array_total::size - }; - std::size_t n1 = M * size; - T1* p1 = 0; - T2* p2 = 0; - T3* p3 = reinterpret_cast(&value); - D1 d1; - A1 a1(allocator, size, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - boost::detail::as_init(allocator, p2, n1, p3); -#else - boost::detail::ms_init(p2, n1, p3); -#endif - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_size_array::type - allocate_shared(const A& allocator, - const typename boost::detail::array_inner::type& value) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef const T2 T3; - typedef boost::detail::ms_init_tag R1; - typedef boost::detail::as_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - N = boost::detail::array_total::size, - M = boost::detail::array_total::size - }; - T1* p1 = 0; - T2* p2 = 0; - T3* p3 = reinterpret_cast(&value); - D1 d1; - A1 a1(allocator, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - boost::detail::as_init(allocator, p2, N, p3); -#else - boost::detail::ms_init(p2, N, p3); -#endif - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_array::type - allocate_shared_noinit(const A& allocator, std::size_t size) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_noinit_tag R1; - typedef boost::detail::as_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - std::size_t n1 = size * boost::detail::array_total::size; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(allocator, size, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_noinit(p2, n1); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_size_array::type - allocate_shared_noinit(const A& allocator) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_noinit_tag R1; - typedef boost::detail::as_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - N = boost::detail::array_total::size - }; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(allocator, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_noinit(p2, N); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/bad_weak_ptr.hpp b/lib/3rdParty/boost/boost/smart_ptr/bad_weak_ptr.hpp deleted file mode 100644 index 582fad8b7..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/bad_weak_ptr.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED -#define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/smart_ptr/bad_weak_ptr.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include - -#ifdef __BORLANDC__ -# pragma warn -8026 // Functions with excep. spec. are not expanded inline -#endif - -namespace boost -{ - -// The standard library that comes with Borland C++ 5.5.1, 5.6.4 -// defines std::exception and its members as having C calling -// convention (-pc). When the definition of bad_weak_ptr -// is compiled with -ps, the compiler issues an error. -// Hence, the temporary #pragma option -pc below. - -#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 -# pragma option push -pc -#endif - -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wweak-vtables" -#endif - -class bad_weak_ptr: public std::exception -{ -public: - - virtual char const * what() const throw() - { - return "tr1::bad_weak_ptr"; - } -}; - -#if defined(__clang__) -# pragma clang diagnostic pop -#endif - -#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 -# pragma option pop -#endif - -} // namespace boost - -#ifdef __BORLANDC__ -# pragma warn .8026 // Functions with excep. spec. are not expanded inline -#endif - -#endif // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/array_allocator.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/array_allocator.hpp deleted file mode 100644 index 71479967b..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/array_allocator.hpp +++ /dev/null @@ -1,318 +0,0 @@ -/* - * Copyright (c) 2012-2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_ALLOCATOR_HPP -#define BOOST_SMART_PTR_DETAIL_ARRAY_ALLOCATOR_HPP - -#include -#include -#include -#include - -namespace boost { - namespace detail { - struct ms_init_tag { }; - struct ms_noinit_tag { }; - - template - struct ms_allocator_state; - - template - struct ms_allocator_state { - typedef typename array_base::type type; - - ms_allocator_state(std::size_t size_, - type** result_) - : size(size_ * array_total::size), - result(result_) { - } - - std::size_t size; - - union { - type** result; - type* object; - }; - }; - - template - struct ms_allocator_state { - typedef typename array_base::type type; - - ms_allocator_state(type** result_) - : result(result_) { - } - - enum { - size = array_total::size - }; - - union { - type** result; - type* object; - }; - }; - - template - class as_allocator - : public A { - template - friend class as_allocator; - -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef std::allocator_traits AT; - typedef typename AT::template rebind_alloc CA; - typedef typename AT::template rebind_traits CT; -#else - typedef typename A::template rebind::other CA; -#endif - - public: - typedef A allocator_type; - -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef typename AT::value_type value_type; - typedef typename AT::pointer pointer; - typedef typename AT::const_pointer const_pointer; - typedef typename AT::void_pointer void_pointer; - typedef typename AT::const_void_pointer const_void_pointer; - typedef typename AT::size_type size_type; - typedef typename AT::difference_type difference_type; -#else - typedef typename A::value_type value_type; - typedef typename A::pointer pointer; - typedef typename A::const_pointer const_pointer; - typedef typename A::size_type size_type; - typedef typename A::difference_type difference_type; - typedef typename A::reference reference; - typedef typename A::const_reference const_reference; - typedef void* void_pointer; - typedef const void* const_void_pointer; -#endif - - template - struct rebind { -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef as_allocator, T, R> other; -#else - typedef as_allocator::other, T, R> other; -#endif - }; - - typedef typename array_base::type type; - - as_allocator(const A& allocator_, type** result) - : A(allocator_), - data(result) { - } - - as_allocator(const A& allocator_, std::size_t size, - type** result) - : A(allocator_), - data(size, result) { - } - - template - as_allocator(const as_allocator& other) - : A(other.allocator()), - data(other.data) { - } - - pointer allocate(size_type count, const_void_pointer = 0) { - enum { - M = boost::alignment_of::value - }; - std::size_t n1 = count * sizeof(value_type); - std::size_t n2 = data.size * sizeof(type); - std::size_t n3 = n2 + M; - CA ca(allocator()); - void* p1 = ca.allocate(n1 + n3); - void* p2 = static_cast(p1) + n1; - (void)boost::alignment::align(M, n2, p2, n3); - *data.result = static_cast(p2); - return static_cast(p1); - } - - void deallocate(pointer memory, size_type count) { - enum { - M = boost::alignment_of::value - }; - std::size_t n1 = count * sizeof(value_type); - std::size_t n2 = data.size * sizeof(type) + M; - char* p1 = reinterpret_cast(memory); - CA ca(allocator()); - ca.deallocate(p1, n1 + n2); - } - - const A& allocator() const { - return static_cast(*this); - } - - A& allocator() { - return static_cast(*this); - } - - void set(type* memory) { - data.object = memory; - } - - void operator()() { - if (data.object) { - R tag; - release(tag); - } - } - - private: - void release(ms_init_tag) { -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - as_destroy(allocator(), data.object, data.size); -#else - ms_destroy(data.object, data.size); -#endif - } - - void release(ms_noinit_tag) { - ms_destroy(data.object, data.size); - } - - ms_allocator_state data; - }; - - template - bool operator==(const as_allocator& a1, - const as_allocator& a2) { - return a1.allocator() == a2.allocator(); - } - - template - bool operator!=(const as_allocator& a1, - const as_allocator& a2) { - return a1.allocator() != a2.allocator(); - } - - template - class ms_allocator; - - template - class ms_allocator { - template - friend class ms_allocator; - - public: - typedef typename array_base::type type; - - typedef Y value_type; - typedef Y* pointer; - typedef const Y* const_pointer; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef Y& reference; - typedef const Y& const_reference; - - template - struct rebind { - typedef ms_allocator other; - }; - - ms_allocator(type** result) - : data(result) { - } - - ms_allocator(std::size_t size, type** result) - : data(size, result) { - } - - template - ms_allocator(const ms_allocator& other) - : data(other.data) { - } - - pointer allocate(size_type count, const void* = 0) { - enum { - M = boost::alignment_of::value - }; - std::size_t n1 = count * sizeof(Y); - std::size_t n2 = data.size * sizeof(type); - std::size_t n3 = n2 + M; - void* p1 = ::operator new(n1 + n3); - void* p2 = static_cast(p1) + n1; - (void)boost::alignment::align(M, n2, p2, n3); - *data.result = static_cast(p2); - return static_cast(p1); - } - - void deallocate(pointer memory, size_type) { - void* p1 = memory; - ::operator delete(p1); - } - -#if defined(BOOST_NO_CXX11_ALLOCATOR) - pointer address(reference value) const { - return &value; - } - - const_pointer address(const_reference value) const { - return &value; - } - - size_type max_size() const { - enum { - N = static_cast(-1) / sizeof(Y) - }; - return N; - } - - void construct(pointer memory, const_reference value) { - void* p1 = memory; - ::new(p1) Y(value); - } - - void destroy(pointer memory) { - (void)memory; - memory->~Y(); - } -#endif - - void set(type* memory) { - data.object = memory; - } - - void operator()() { - if (data.object) { - ms_destroy(data.object, data.size); - } - } - - private: - ms_allocator_state data; - }; - - template - bool operator==(const ms_allocator&, - const ms_allocator&) { - return true; - } - - template - bool operator!=(const ms_allocator&, - const ms_allocator&) { - return false; - } - - class ms_in_allocator_tag { - public: - void operator()(const void*) { - } - }; - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/array_count_impl.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/array_count_impl.hpp deleted file mode 100644 index b7c9617f0..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/array_count_impl.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_COUNT_IMPL_HPP -#define BOOST_SMART_PTR_DETAIL_ARRAY_COUNT_IMPL_HPP - -#include -#include - -namespace boost { - namespace detail { - template - class sp_counted_impl_pda - : public sp_counted_base { - typedef ms_in_allocator_tag D; - typedef sp_counted_impl_pda Y; - public: - sp_counted_impl_pda(P, D, const A& allocator_) - : allocator(allocator_) { - } - - virtual void dispose() { - allocator(); - } - - virtual void destroy() { -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - typedef typename std::allocator_traits:: - template rebind_alloc YA; - typedef typename std::allocator_traits:: - template rebind_traits YT; -#else - typedef typename A::template rebind::other YA; -#endif - YA a1(allocator); -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - YT::destroy(a1, this); - YT::deallocate(a1, this, 1); -#else - this->~Y(); - a1.deallocate(this, 1); -#endif - } - - virtual void* get_deleter(const sp_typeinfo&) { - return &reinterpret_cast(allocator); - } - - virtual void* get_untyped_deleter() { - return &reinterpret_cast(allocator); - } - - private: - sp_counted_impl_pda(const sp_counted_impl_pda&); - sp_counted_impl_pda& operator=(const sp_counted_impl_pda&); - - A allocator; - }; - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/array_traits.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/array_traits.hpp deleted file mode 100644 index 819c5ba61..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/array_traits.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2012-2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP -#define BOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP - -#include - -namespace boost { - namespace detail { - template - struct array_base { - typedef typename boost::remove_cv::type type; - }; - - template - struct array_base { - typedef typename array_base::type type; - }; - - template - struct array_base { - typedef typename array_base::type type; - }; - - template - struct array_total { - enum { - size = 1 - }; - }; - - template - struct array_total { - enum { - size = N * array_total::size - }; - }; - - template - struct array_inner; - - template - struct array_inner { - typedef T type; - }; - - template - struct array_inner { - typedef T type; - }; - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/array_utility.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/array_utility.hpp deleted file mode 100644 index 84029a1d7..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/array_utility.hpp +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (c) 2012-2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP -#define BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP - -#include -#include -#include -#if !defined(BOOST_NO_CXX11_ALLOCATOR) -#include -#endif - -namespace boost { - namespace detail { - typedef boost::true_type ms_is_trivial; - typedef boost::false_type ms_no_trivial; - - template - inline void ms_destroy(T*, std::size_t, ms_is_trivial) { - } - - template - inline void ms_destroy(T* memory, std::size_t size, ms_no_trivial) { - for (std::size_t i = size; i > 0;) { - memory[--i].~T(); - } - } - - template - inline void ms_destroy(T* memory, std::size_t size) { - boost::has_trivial_destructor trivial; - ms_destroy(memory, size, trivial); - } - - template - inline void ms_init(T* memory, std::size_t size, ms_is_trivial) { - for (std::size_t i = 0; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T(); - } - } - - template - inline void ms_init(T* memory, std::size_t size, ms_no_trivial) { -#if !defined(BOOST_NO_EXCEPTIONS) - std::size_t i = 0; - try { - for (; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T(); - } - } catch (...) { - ms_destroy(memory, i); - throw; - } -#else - for (std::size_t i = 0; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T(); - } -#endif - } - - template - inline void ms_init(T* memory, std::size_t size) { - boost::has_trivial_default_constructor trivial; - ms_init(memory, size, trivial); - } - - template - inline void ms_init(T* memory, std::size_t size, const T* list) { -#if !defined(BOOST_NO_EXCEPTIONS) - std::size_t i = 0; - try { - for (; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T(list[i % N]); - } - } catch (...) { - ms_destroy(memory, i); - throw; - } -#else - for (std::size_t i = 0; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T(list[i % N]); - } -#endif - } - -#if !defined(BOOST_NO_CXX11_ALLOCATOR) - template - inline void as_destroy(const A& allocator, T* memory, - std::size_t size) { - typedef typename std::allocator_traits:: - template rebind_alloc TA; - typedef typename std::allocator_traits:: - template rebind_traits TT; - TA a2(allocator); - for (std::size_t i = size; i > 0;) { - TT::destroy(a2, &memory[--i]); - } - } - - template - inline void as_init(const A& allocator, T* memory, std::size_t size, - ms_is_trivial) { - typedef typename std::allocator_traits:: - template rebind_alloc TA; - typedef typename std::allocator_traits:: - template rebind_traits TT; - TA a2(allocator); - for (std::size_t i = 0; i < size; i++) { - TT::construct(a2, memory + i); - } - } - - template - inline void as_init(const A& allocator, T* memory, std::size_t size, - ms_no_trivial) { - typedef typename std::allocator_traits:: - template rebind_alloc TA; - typedef typename std::allocator_traits:: - template rebind_traits TT; - TA a2(allocator); -#if !defined(BOOST_NO_EXCEPTIONS) - std::size_t i = 0; - try { - for (; i < size; i++) { - TT::construct(a2, memory + i); - } - } catch (...) { - as_destroy(a2, memory, i); - throw; - } -#else - for (std::size_t i = 0; i < size; i++) { - TT::construct(a2, memory + i); - } -#endif - } - - template - inline void as_init(const A& allocator, T* memory, std::size_t size) { - boost::has_trivial_default_constructor trivial; - as_init(allocator, memory, size, trivial); - } - - template - inline void as_init(const A& allocator, T* memory, std::size_t size, - const T* list) { - typedef typename std::allocator_traits:: - template rebind_alloc TA; - typedef typename std::allocator_traits:: - template rebind_traits TT; - TA a2(allocator); -#if !defined(BOOST_NO_EXCEPTIONS) - std::size_t i = 0; - try { - for (; i < size; i++) { - TT::construct(a2, memory + i, list[i % N]); - } - } catch (...) { - as_destroy(a2, memory, i); - throw; - } -#else - for (std::size_t i = 0; i < size; i++) { - TT::construct(a2, memory + i, list[i % N]); - } -#endif - } -#endif - - template - inline void ms_noinit(T*, std::size_t, ms_is_trivial) { - } - - template - inline void ms_noinit(T* memory, std::size_t size, ms_no_trivial) { -#if !defined(BOOST_NO_EXCEPTIONS) - std::size_t i = 0; - try { - for (; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T; - } - } catch (...) { - ms_destroy(memory, i); - throw; - } -#else - for (std::size_t i = 0; i < size; i++) { - void* p1 = memory + i; - ::new(p1) T; - } -#endif - } - - template - inline void ms_noinit(T* memory, std::size_t size) { - boost::has_trivial_default_constructor trivial; - ms_noinit(memory, size, trivial); - } - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count.hpp deleted file mode 100644 index 6e4f71aa8..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count.hpp +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/atomic_count.hpp - thread/SMP safe reference counter -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2013 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 -// -// typedef boost::detail::atomic_count; -// -// atomic_count a(n); -// -// (n is convertible to long) -// -// Effects: Constructs an atomic_count with an initial value of n -// -// a; -// -// Returns: (long) the current value of a -// Memory Ordering: acquire -// -// ++a; -// -// Effects: Atomically increments the value of a -// Returns: (long) the new value of a -// Memory Ordering: acquire/release -// -// --a; -// -// Effects: Atomically decrements the value of a -// Returns: (long) the new value of a -// Memory Ordering: acquire/release -// - -#include -#include - -#if defined( BOOST_AC_DISABLE_THREADS ) -# include - -#elif defined( BOOST_AC_USE_STD_ATOMIC ) -# include - -#elif defined( BOOST_AC_USE_SPINLOCK ) -# include - -#elif defined( BOOST_AC_USE_PTHREADS ) -# include - -#elif defined( BOOST_SP_DISABLE_THREADS ) -# include - -#elif defined( BOOST_SP_USE_STD_ATOMIC ) -# include - -#elif defined( BOOST_SP_USE_SPINLOCK ) -# include - -#elif defined( BOOST_SP_USE_PTHREADS ) -# include - -#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 ) -# include - -#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC ) -# include - -#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined( __PATHSCALE__ ) -# include - -#elif defined( BOOST_SP_HAS_SYNC ) -# include - -#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# include - -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -# include - -#elif !defined( BOOST_HAS_THREADS ) -# include - -#else -# include - -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp deleted file mode 100644 index 54807e944..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED - -// -// boost/detail/atomic_count_gcc.hpp -// -// atomic_count for GNU libstdc++ v3 -// -// http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2002 Lars Gullik Bjnnes -// Copyright 2003-2005 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) -// - -#if __GNUC__ * 100 + __GNUC_MINOR__ >= 402 -# include -#else -# include -#endif - -namespace boost -{ - -namespace detail -{ - -#if defined(__GLIBCXX__) // g++ 3.4+ - -using __gnu_cxx::__atomic_add; -using __gnu_cxx::__exchange_and_add; - -#endif - -class atomic_count -{ -public: - - explicit atomic_count( long v ) : value_( v ) {} - - long operator++() - { - return __exchange_and_add( &value_, +1 ) + 1; - } - - long operator--() - { - return __exchange_and_add( &value_, -1 ) - 1; - } - - operator long() const - { - return __exchange_and_add( &value_, 0 ); - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - mutable _Atomic_word value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp deleted file mode 100644 index 5c44d7c1e..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED - -// -// boost/detail/atomic_count_gcc_x86.hpp -// -// atomic_count for g++ on 486+/AMD64 -// -// Copyright 2007 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) -// - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -public: - - explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {} - - long operator++() - { - return atomic_exchange_and_add( &value_, +1 ) + 1; - } - - long operator--() - { - return atomic_exchange_and_add( &value_, -1 ) - 1; - } - - operator long() const - { - return atomic_exchange_and_add( &value_, 0 ); - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - mutable int value_; - -private: - - static int atomic_exchange_and_add( int * pw, int dv ) - { - // int r = *pw; - // *pw += dv; - // return r; - - int r; - - __asm__ __volatile__ - ( - "lock\n\t" - "xadd %1, %0": - "+m"( *pw ), "=r"( r ): // outputs (%0, %1) - "1"( dv ): // inputs (%2 == %1) - "memory", "cc" // clobbers - ); - - return r; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_nt.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_nt.hpp deleted file mode 100644 index 3bbf13891..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_nt.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_NT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_NT_HPP_INCLUDED - -// -// boost/detail/atomic_count_nt.hpp -// -// Trivial atomic_count for the single-threaded case -// -// http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html -// -// Copyright 2013 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 -// - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -public: - - explicit atomic_count( long v ): value_( v ) - { - } - - long operator++() - { - return ++value_; - } - - long operator--() - { - return --value_; - } - - operator long() const - { - return value_; - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - long value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_NT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_pt.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_pt.hpp deleted file mode 100644 index f99b9108e..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_pt.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED - -// -// boost/detail/atomic_count_pthreads.hpp -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include -#include - -// -// The generic pthread_mutex-based implementation sometimes leads to -// inefficiencies. Example: a class with two atomic_count members -// can get away with a single mutex. -// -// Users can detect this situation by checking BOOST_AC_USE_PTHREADS. -// - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -private: - - class scoped_lock - { - public: - - scoped_lock(pthread_mutex_t & m): m_(m) - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - } - - ~scoped_lock() - { - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - } - - private: - - pthread_mutex_t & m_; - }; - -public: - - explicit atomic_count(long v): value_(v) - { - BOOST_VERIFY( pthread_mutex_init( &mutex_, 0 ) == 0 ); - } - - ~atomic_count() - { - BOOST_VERIFY( pthread_mutex_destroy( &mutex_ ) == 0 ); - } - - long operator++() - { - scoped_lock lock(mutex_); - return ++value_; - } - - long operator--() - { - scoped_lock lock(mutex_); - return --value_; - } - - operator long() const - { - scoped_lock lock(mutex_); - return value_; - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - mutable pthread_mutex_t mutex_; - long value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_solaris.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_solaris.hpp deleted file mode 100644 index a13bcfb42..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_solaris.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED - -// -// boost/detail/atomic_count_solaris.hpp -// based on: boost/detail/atomic_count_win32.hpp -// -// Copyright (c) 2001-2005 Peter Dimov -// Copyright (c) 2006 Michael van der Westhuizen -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -public: - - explicit atomic_count( uint32_t v ): value_( v ) - { - } - - long operator++() - { - return atomic_inc_32_nv( &value_ ); - } - - long operator--() - { - return atomic_dec_32_nv( &value_ ); - } - - operator uint32_t() const - { - return static_cast( value_ ); - } - -private: - - atomic_count( atomic_count const & ); - atomic_count & operator=( atomic_count const & ); - - uint32_t value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SOLARIS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_spin.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_spin.hpp deleted file mode 100644 index 8e623496b..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_spin.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SPIN_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SPIN_HPP_INCLUDED - -// -// boost/detail/atomic_count_spin.hpp -// -// Copyright (c) 2013 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 -// - -#include - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -private: - -public: - - explicit atomic_count( long v ): value_( v ) - { - } - - long operator++() - { - spinlock_pool<0>::scoped_lock lock( &value_ ); - return ++value_; - } - - long operator--() - { - spinlock_pool<0>::scoped_lock lock( &value_ ); - return --value_; - } - - operator long() const - { - spinlock_pool<0>::scoped_lock lock( &value_ ); - return value_; - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - long value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SPIN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_std_atomic.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_std_atomic.hpp deleted file mode 100644 index 55b9998e5..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_STD_ATOMIC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_STD_ATOMIC_HPP_INCLUDED - -// -// boost/detail/atomic_count_std_atomic.hpp -// -// atomic_count for std::atomic -// -// Copyright 2013 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 -// - -#include -#include - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -public: - - explicit atomic_count( long v ): value_( v ) - { - } - - long operator++() - { - return value_.fetch_add( 1, std::memory_order_acq_rel ) + 1; - } - - long operator--() - { - return value_.fetch_sub( 1, std::memory_order_acq_rel ) - 1; - } - - operator long() const - { - return value_.load( std::memory_order_acquire ); - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - std::atomic_int_least32_t value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_STD_ATOMIC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_sync.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_sync.hpp deleted file mode 100644 index b6359b5bc..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_sync.hpp +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED - -// -// boost/detail/atomic_count_sync.hpp -// -// atomic_count for g++ 4.1+ -// -// http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html -// -// Copyright 2007 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) -// - -#if defined( __ia64__ ) && defined( __INTEL_COMPILER ) -# include -#endif - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -public: - - explicit atomic_count( long v ) : value_( v ) {} - - long operator++() - { - return __sync_add_and_fetch( &value_, 1 ); - } - - long operator--() - { - return __sync_add_and_fetch( &value_, -1 ); - } - - operator long() const - { - return __sync_fetch_and_add( &value_, 0 ); - } - -private: - - atomic_count(atomic_count const &); - atomic_count & operator=(atomic_count const &); - - mutable long value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_win32.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_win32.hpp deleted file mode 100644 index 633e73c3c..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/atomic_count_win32.hpp +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/atomic_count_win32.hpp -// -// Copyright (c) 2001-2005 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) -// - -#include - -namespace boost -{ - -namespace detail -{ - -class atomic_count -{ -public: - - explicit atomic_count( long v ): value_( v ) - { - } - - long operator++() - { - return BOOST_SP_INTERLOCKED_INCREMENT( &value_ ); - } - - long operator--() - { - return BOOST_SP_INTERLOCKED_DECREMENT( &value_ ); - } - - operator long() const - { - return static_cast( value_ ); - } - -private: - - atomic_count( atomic_count const & ); - atomic_count & operator=( atomic_count const & ); - - long value_; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/lightweight_mutex.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/lightweight_mutex.hpp deleted file mode 100644 index d46b1932c..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/lightweight_mutex.hpp +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/lightweight_mutex.hpp - lightweight mutex -// -// Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd. -// -// 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) -// -// typedef boost::detail::lightweight_mutex; -// -// boost::detail::lightweight_mutex is a header-only implementation of -// a subset of the Mutex concept requirements: -// -// http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex -// -// It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX. -// - -#include - -#if !defined(BOOST_HAS_THREADS) -# include -#elif defined(BOOST_HAS_PTHREADS) -# include -#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# include -#else -// Use #define BOOST_DISABLE_THREADS to avoid the error -# error Unrecognized threading platform -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_nop.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_nop.hpp deleted file mode 100644 index 521a88ec1..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_nop.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/lwm_nop.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// 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) -// - -namespace boost -{ - -namespace detail -{ - -class lightweight_mutex -{ -public: - - typedef lightweight_mutex scoped_lock; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_pthreads.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_pthreads.hpp deleted file mode 100644 index 8eda51823..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_pthreads.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/lwm_pthreads.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -#include -#include - -namespace boost -{ - -namespace detail -{ - -class lightweight_mutex -{ -private: - - pthread_mutex_t m_; - - lightweight_mutex(lightweight_mutex const &); - lightweight_mutex & operator=(lightweight_mutex const &); - -public: - - lightweight_mutex() - { - -// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init - -#if defined(__hpux) && defined(_DECTHREADS_) - BOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 ); -#else - BOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 ); -#endif - } - - ~lightweight_mutex() - { - BOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 ); - } - - class scoped_lock; - friend class scoped_lock; - - class scoped_lock - { - private: - - pthread_mutex_t & m_; - - scoped_lock(scoped_lock const &); - scoped_lock & operator=(scoped_lock const &); - - public: - - scoped_lock(lightweight_mutex & m): m_(m.m_) - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - } - - ~scoped_lock() - { - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - } - }; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_win32_cs.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_win32_cs.hpp deleted file mode 100644 index a93cf0920..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/lwm_win32_cs.hpp +++ /dev/null @@ -1,119 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/lwm_win32_cs.hpp -// -// Copyright (c) 2002, 2003 Peter Dimov -// Copyright (c) Microsoft Corporation 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) -// - -#include - -#ifdef BOOST_USE_WINDOWS_H -# include -#endif - -namespace boost -{ - -namespace detail -{ - -#ifndef BOOST_USE_WINDOWS_H - -struct critical_section -{ - struct critical_section_debug * DebugInfo; - long LockCount; - long RecursionCount; - void * OwningThread; - void * LockSemaphore; -#if defined(_WIN64) - unsigned __int64 SpinCount; -#else - unsigned long SpinCount; -#endif -}; - -#if BOOST_PLAT_WINDOWS_RUNTIME -extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSectionEx(critical_section *, unsigned long, unsigned long); -#else -extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *); -#endif -extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *); -extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *); -extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *); - -#else - -typedef ::CRITICAL_SECTION critical_section; - -#endif // #ifndef BOOST_USE_WINDOWS_H - -class lightweight_mutex -{ -private: - - critical_section cs_; - - lightweight_mutex(lightweight_mutex const &); - lightweight_mutex & operator=(lightweight_mutex const &); - -public: - - lightweight_mutex() - { -#if BOOST_PLAT_WINDOWS_RUNTIME - InitializeCriticalSectionEx(&cs_, 4000, 0); -#else - InitializeCriticalSection(&cs_); -#endif - } - - ~lightweight_mutex() - { - DeleteCriticalSection(&cs_); - } - - class scoped_lock; - friend class scoped_lock; - - class scoped_lock - { - private: - - lightweight_mutex & m_; - - scoped_lock(scoped_lock const &); - scoped_lock & operator=(scoped_lock const &); - - public: - - explicit scoped_lock(lightweight_mutex & m): m_(m) - { - EnterCriticalSection(&m_.cs_); - } - - ~scoped_lock() - { - LeaveCriticalSection(&m_.cs_); - } - }; -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/operator_bool.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/operator_bool.hpp deleted file mode 100644 index c0289b870..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/operator_bool.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// This header intentionally has no include guards. -// -// Copyright (c) 2001-2009, 2012 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 - -#if !defined( BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ) && !defined( BOOST_NO_CXX11_NULLPTR )\ - && !(defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x5130)) - - explicit operator bool () const BOOST_NOEXCEPT - { - return px != 0; - } - -#elif ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__) - - operator bool () const BOOST_NOEXCEPT - { - return px != 0; - } - -#elif defined( _MANAGED ) - - static void unspecified_bool( this_type*** ) - { - } - - typedef void (*unspecified_bool_type)( this_type*** ); - - operator unspecified_bool_type() const BOOST_NOEXCEPT - { - return px == 0? 0: unspecified_bool; - } - -#elif \ - ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ - ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ - ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) - - typedef element_type * (this_type::*unspecified_bool_type)() const; - - operator unspecified_bool_type() const BOOST_NOEXCEPT - { - return px == 0? 0: &this_type::get; - } - -#else - - typedef element_type * this_type::*unspecified_bool_type; - - operator unspecified_bool_type() const BOOST_NOEXCEPT - { - return px == 0? 0: &this_type::px; - } - -#endif - - // operator! is redundant, but some compilers need it - bool operator! () const BOOST_NOEXCEPT - { - return px == 0; - } diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/quick_allocator.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/quick_allocator.hpp deleted file mode 100644 index 159bd5e7a..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/quick_allocator.hpp +++ /dev/null @@ -1,199 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/quick_allocator.hpp -// -// Copyright (c) 2003 David Abrahams -// Copyright (c) 2003 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) -// - -#include - -#include -#include -#include - -#include // ::operator new, ::operator delete -#include // std::size_t - -namespace boost -{ - -namespace detail -{ - -template union freeblock -{ - typedef typename boost::type_with_alignment::type aligner_type; - aligner_type aligner; - char bytes[size]; - freeblock * next; -}; - -template struct allocator_impl -{ - typedef freeblock block; - - // It may seem odd to use such small pages. - // - // However, on a typical Windows implementation that uses - // the OS allocator, "normal size" pages interact with the - // "ordinary" operator new, slowing it down dramatically. - // - // 512 byte pages are handled by the small object allocator, - // and don't interfere with ::new. - // - // The other alternative is to use much bigger pages (1M.) - // - // It is surprisingly easy to hit pathological behavior by - // varying the page size. g++ 2.96 on Red Hat Linux 7.2, - // for example, passionately dislikes 496. 512 seems OK. - -#if defined(BOOST_QA_PAGE_SIZE) - - enum { items_per_page = BOOST_QA_PAGE_SIZE / size }; - -#else - - enum { items_per_page = 512 / size }; // 1048560 / size - -#endif - -#ifdef BOOST_HAS_THREADS - - static lightweight_mutex & mutex() - { - static freeblock< sizeof( lightweight_mutex ), boost::alignment_of< lightweight_mutex >::value > fbm; - static lightweight_mutex * pm = new( &fbm ) lightweight_mutex; - return *pm; - } - - static lightweight_mutex * mutex_init; - -#endif - - static block * free; - static block * page; - static unsigned last; - - static inline void * alloc() - { -#ifdef BOOST_HAS_THREADS - lightweight_mutex::scoped_lock lock( mutex() ); -#endif - if(block * x = free) - { - free = x->next; - return x; - } - else - { - if(last == items_per_page) - { - // "Listen to me carefully: there is no memory leak" - // -- Scott Meyers, Eff C++ 2nd Ed Item 10 - page = ::new block[items_per_page]; - last = 0; - } - - return &page[last++]; - } - } - - static inline void * alloc(std::size_t n) - { - if(n != size) // class-specific new called for a derived object - { - return ::operator new(n); - } - else - { -#ifdef BOOST_HAS_THREADS - lightweight_mutex::scoped_lock lock( mutex() ); -#endif - if(block * x = free) - { - free = x->next; - return x; - } - else - { - if(last == items_per_page) - { - page = ::new block[items_per_page]; - last = 0; - } - - return &page[last++]; - } - } - } - - static inline void dealloc(void * pv) - { - if(pv != 0) // 18.4.1.1/13 - { -#ifdef BOOST_HAS_THREADS - lightweight_mutex::scoped_lock lock( mutex() ); -#endif - block * pb = static_cast(pv); - pb->next = free; - free = pb; - } - } - - static inline void dealloc(void * pv, std::size_t n) - { - if(n != size) // class-specific delete called for a derived object - { - ::operator delete(pv); - } - else if(pv != 0) // 18.4.1.1/13 - { -#ifdef BOOST_HAS_THREADS - lightweight_mutex::scoped_lock lock( mutex() ); -#endif - block * pb = static_cast(pv); - pb->next = free; - free = pb; - } - } -}; - -#ifdef BOOST_HAS_THREADS - -template - lightweight_mutex * allocator_impl::mutex_init = &allocator_impl::mutex(); - -#endif - -template - freeblock * allocator_impl::free = 0; - -template - freeblock * allocator_impl::page = 0; - -template - unsigned allocator_impl::last = allocator_impl::items_per_page; - -template -struct quick_allocator: public allocator_impl< sizeof(T), boost::alignment_of::value > -{ -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/shared_count.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/shared_count.hpp deleted file mode 100644 index 7996aa432..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/shared_count.hpp +++ /dev/null @@ -1,709 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/shared_count.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// - -#ifdef __BORLANDC__ -# pragma warn -8027 // Functions containing try are not expanded inline -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -// In order to avoid circular dependencies with Boost.TR1 -// we make sure that our include of doesn't try to -// pull in the TR1 headers: that's why we use this header -// rather than including directly: -#include // std::auto_ptr -#include // std::less - -#ifdef BOOST_NO_EXCEPTIONS -# include // std::bad_alloc -#endif - -#include - -#if defined( BOOST_SP_DISABLE_DEPRECATED ) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - -namespace boost -{ - -namespace movelib -{ - - template< class T, class D > class unique_ptr; - -} // namespace movelib - -namespace detail -{ - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -int const shared_count_id = 0x2C35F101; -int const weak_count_id = 0x298C38A4; - -#endif - -struct sp_nothrow_tag {}; - -template< class D > struct sp_inplace_tag -{ -}; - -template< class T > class sp_reference_wrapper -{ -public: - - explicit sp_reference_wrapper( T & t): t_( boost::addressof( t ) ) - { - } - - template< class Y > void operator()( Y * p ) const - { - (*t_)( p ); - } - -private: - - T * t_; -}; - -template< class D > struct sp_convert_reference -{ - typedef D type; -}; - -template< class D > struct sp_convert_reference< D& > -{ - typedef sp_reference_wrapper< D > type; -}; - -class weak_count; - -class shared_count -{ -private: - - sp_counted_base * pi_; - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - int id_; -#endif - - friend class weak_count; - -public: - - shared_count(): pi_(0) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - } - - template explicit shared_count( Y * p ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#ifndef BOOST_NO_EXCEPTIONS - - try - { - pi_ = new sp_counted_impl_p( p ); - } - catch(...) - { - boost::checked_delete( p ); - throw; - } - -#else - - pi_ = new sp_counted_impl_p( p ); - - if( pi_ == 0 ) - { - boost::checked_delete( p ); - boost::throw_exception( std::bad_alloc() ); - } - -#endif - } - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) - template shared_count( Y * p, D d ): pi_(0) -#else - template shared_count( P p, D d ): pi_(0) -#endif -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) - typedef Y* P; -#endif -#ifndef BOOST_NO_EXCEPTIONS - - try - { - pi_ = new sp_counted_impl_pd(p, d); - } - catch(...) - { - d(p); // delete p - throw; - } - -#else - - pi_ = new sp_counted_impl_pd(p, d); - - if(pi_ == 0) - { - d(p); // delete p - boost::throw_exception(std::bad_alloc()); - } - -#endif - } - -#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) - - template< class P, class D > shared_count( P p, sp_inplace_tag ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#ifndef BOOST_NO_EXCEPTIONS - - try - { - pi_ = new sp_counted_impl_pd< P, D >( p ); - } - catch( ... ) - { - D::operator_fn( p ); // delete p - throw; - } - -#else - - pi_ = new sp_counted_impl_pd< P, D >( p ); - - if( pi_ == 0 ) - { - D::operator_fn( p ); // delete p - boost::throw_exception( std::bad_alloc() ); - } - -#endif // #ifndef BOOST_NO_EXCEPTIONS - } - -#endif // !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) - - template shared_count( P p, D d, A a ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - typedef sp_counted_impl_pda impl_type; - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - typedef typename std::allocator_traits::template rebind_alloc< impl_type > A2; - -#else - - typedef typename A::template rebind< impl_type >::other A2; - -#endif - - A2 a2( a ); - -#ifndef BOOST_NO_EXCEPTIONS - - try - { -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - impl_type * pi = std::allocator_traits::allocate( a2, 1 ); - pi_ = pi; - std::allocator_traits::construct( a2, pi, p, d, a ); - -#else - - pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); - ::new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); - -#endif - } - catch(...) - { - d( p ); - - if( pi_ != 0 ) - { - a2.deallocate( static_cast< impl_type* >( pi_ ), 1 ); - } - - throw; - } - -#else - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - impl_type * pi = std::allocator_traits::allocate( a2, 1 ); - pi_ = pi; - -#else - - pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); - -#endif - - if( pi_ != 0 ) - { -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - std::allocator_traits::construct( a2, pi, p, d, a ); - -#else - - ::new( static_cast< void* >( pi_ ) ) impl_type( p, d, a ); - -#endif - } - else - { - d( p ); - boost::throw_exception( std::bad_alloc() ); - } - -#endif - } - -#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) - - template< class P, class D, class A > shared_count( P p, sp_inplace_tag< D >, A a ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - typedef sp_counted_impl_pda< P, D, A > impl_type; - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - typedef typename std::allocator_traits::template rebind_alloc< impl_type > A2; - -#else - - typedef typename A::template rebind< impl_type >::other A2; - -#endif - - A2 a2( a ); - -#ifndef BOOST_NO_EXCEPTIONS - - try - { -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - impl_type * pi = std::allocator_traits::allocate( a2, 1 ); - pi_ = pi; - std::allocator_traits::construct( a2, pi, p, a ); - -#else - - pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); - ::new( static_cast< void* >( pi_ ) ) impl_type( p, a ); - -#endif - } - catch(...) - { - D::operator_fn( p ); - - if( pi_ != 0 ) - { - a2.deallocate( static_cast< impl_type* >( pi_ ), 1 ); - } - - throw; - } - -#else - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - impl_type * pi = std::allocator_traits::allocate( a2, 1 ); - pi_ = pi; - -#else - - pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) ); - -#endif - - if( pi_ != 0 ) - { -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - std::allocator_traits::construct( a2, pi, p, a ); - -#else - - ::new( static_cast< void* >( pi_ ) ) impl_type( p, a ); - -#endif - } - else - { - D::operator_fn( p ); - boost::throw_exception( std::bad_alloc() ); - } - -#endif // #ifndef BOOST_NO_EXCEPTIONS - } - -#endif // !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) - -#ifndef BOOST_NO_AUTO_PTR - - // auto_ptr is special cased to provide the strong guarantee - - template - explicit shared_count( std::auto_ptr & r ): pi_( new sp_counted_impl_p( r.get() ) ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { -#ifdef BOOST_NO_EXCEPTIONS - - if( pi_ == 0 ) - { - boost::throw_exception(std::bad_alloc()); - } - -#endif - - r.release(); - } - -#endif - -#if !defined( BOOST_NO_CXX11_SMART_PTR ) - - template - explicit shared_count( std::unique_ptr & r ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - typedef typename sp_convert_reference::type D2; - - D2 d2( r.get_deleter() ); - pi_ = new sp_counted_impl_pd< typename std::unique_ptr::pointer, D2 >( r.get(), d2 ); - -#ifdef BOOST_NO_EXCEPTIONS - - if( pi_ == 0 ) - { - boost::throw_exception( std::bad_alloc() ); - } - -#endif - - r.release(); - } - -#endif - - template - explicit shared_count( boost::movelib::unique_ptr & r ): pi_( 0 ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - typedef typename sp_convert_reference::type D2; - - D2 d2( r.get_deleter() ); - pi_ = new sp_counted_impl_pd< typename boost::movelib::unique_ptr::pointer, D2 >( r.get(), d2 ); - -#ifdef BOOST_NO_EXCEPTIONS - - if( pi_ == 0 ) - { - boost::throw_exception( std::bad_alloc() ); - } - -#endif - - r.release(); - } - - ~shared_count() // nothrow - { - if( pi_ != 0 ) pi_->release(); -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - id_ = 0; -#endif - } - - shared_count(shared_count const & r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - if( pi_ != 0 ) pi_->add_ref_copy(); - } - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - shared_count(shared_count && r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif - { - r.pi_ = 0; - } - -#endif - - explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0 - shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0 - - shared_count & operator= (shared_count const & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - - if( tmp != pi_ ) - { - if( tmp != 0 ) tmp->add_ref_copy(); - if( pi_ != 0 ) pi_->release(); - pi_ = tmp; - } - - return *this; - } - - void swap(shared_count & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - r.pi_ = pi_; - pi_ = tmp; - } - - long use_count() const // nothrow - { - return pi_ != 0? pi_->use_count(): 0; - } - - bool unique() const // nothrow - { - return use_count() == 1; - } - - bool empty() const // nothrow - { - return pi_ == 0; - } - - friend inline bool operator==(shared_count const & a, shared_count const & b) - { - return a.pi_ == b.pi_; - } - - friend inline bool operator<(shared_count const & a, shared_count const & b) - { - return std::less()( a.pi_, b.pi_ ); - } - - void * get_deleter( sp_typeinfo const & ti ) const - { - return pi_? pi_->get_deleter( ti ): 0; - } - - void * get_untyped_deleter() const - { - return pi_? pi_->get_untyped_deleter(): 0; - } -}; - - -class weak_count -{ -private: - - sp_counted_base * pi_; - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - int id_; -#endif - - friend class shared_count; - -public: - - weak_count(): pi_(0) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(weak_count_id) -#endif - { - } - - weak_count(shared_count const & r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(weak_count_id) -#endif - { - if(pi_ != 0) pi_->weak_add_ref(); - } - - weak_count(weak_count const & r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(weak_count_id) -#endif - { - if(pi_ != 0) pi_->weak_add_ref(); - } - -// Move support - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - weak_count(weak_count && r): pi_(r.pi_) // nothrow -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(weak_count_id) -#endif - { - r.pi_ = 0; - } - -#endif - - ~weak_count() // nothrow - { - if(pi_ != 0) pi_->weak_release(); -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - id_ = 0; -#endif - } - - weak_count & operator= (shared_count const & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - - if( tmp != pi_ ) - { - if(tmp != 0) tmp->weak_add_ref(); - if(pi_ != 0) pi_->weak_release(); - pi_ = tmp; - } - - return *this; - } - - weak_count & operator= (weak_count const & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - - if( tmp != pi_ ) - { - if(tmp != 0) tmp->weak_add_ref(); - if(pi_ != 0) pi_->weak_release(); - pi_ = tmp; - } - - return *this; - } - - void swap(weak_count & r) // nothrow - { - sp_counted_base * tmp = r.pi_; - r.pi_ = pi_; - pi_ = tmp; - } - - long use_count() const // nothrow - { - return pi_ != 0? pi_->use_count(): 0; - } - - bool empty() const // nothrow - { - return pi_ == 0; - } - - friend inline bool operator==(weak_count const & a, weak_count const & b) - { - return a.pi_ == b.pi_; - } - - friend inline bool operator<(weak_count const & a, weak_count const & b) - { - return std::less()(a.pi_, b.pi_); - } -}; - -inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif -{ - if( pi_ == 0 || !pi_->add_ref_lock() ) - { - boost::throw_exception( boost::bad_weak_ptr() ); - } -} - -inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ ) -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - , id_(shared_count_id) -#endif -{ - if( pi_ != 0 && !pi_->add_ref_lock() ) - { - pi_ = 0; - } -} - -} // namespace detail - -} // namespace boost - -#if defined( BOOST_SP_DISABLE_DEPRECATED ) -#pragma GCC diagnostic pop -#endif - -#ifdef __BORLANDC__ -# pragma warn .8027 // Functions containing try are not expanded inline -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_convertible.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_convertible.hpp deleted file mode 100644 index 4bba9ed44..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_convertible.hpp +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_convertible.hpp -// -// Copyright 2008 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 - -#include -#include - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE ) -# define BOOST_SP_NO_SP_CONVERTIBLE -#endif - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 ) -# define BOOST_SP_NO_SP_CONVERTIBLE -#endif - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ < 0x630 ) -# define BOOST_SP_NO_SP_CONVERTIBLE -#endif - -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - -namespace boost -{ - -namespace detail -{ - -template< class Y, class T > struct sp_convertible -{ - typedef char (&yes) [1]; - typedef char (&no) [2]; - - static yes f( T* ); - static no f( ... ); - - enum _vt { value = sizeof( (f)( static_cast(0) ) ) == sizeof(yes) }; -}; - -template< class Y, class T > struct sp_convertible< Y, T[] > -{ - enum _vt { value = false }; -}; - -template< class Y, class T > struct sp_convertible< Y[], T[] > -{ - enum _vt { value = sp_convertible< Y[1], T[1] >::value }; -}; - -template< class Y, std::size_t N, class T > struct sp_convertible< Y[N], T[] > -{ - enum _vt { value = sp_convertible< Y[1], T[1] >::value }; -}; - -struct sp_empty -{ -}; - -template< bool > struct sp_enable_if_convertible_impl; - -template<> struct sp_enable_if_convertible_impl -{ - typedef sp_empty type; -}; - -template<> struct sp_enable_if_convertible_impl -{ -}; - -template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value > -{ -}; - -} // namespace detail - -} // namespace boost - -#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base.hpp deleted file mode 100644 index 83ede2317..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base.hpp +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base.hpp -// -// Copyright 2005-2013 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) -// - -#include -#include - -#if defined( __clang__ ) && defined( __has_extension ) -# if __has_extension( __c_atomic__ ) -# define BOOST_SP_HAS_CLANG_C11_ATOMICS -# endif -#endif - -#if defined( BOOST_SP_DISABLE_THREADS ) -# include - -#elif defined( BOOST_SP_USE_STD_ATOMIC ) -# include - -#elif defined( BOOST_SP_USE_SPINLOCK ) -# include - -#elif defined( BOOST_SP_USE_PTHREADS ) -# include - -#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 ) -# include - -#elif defined( BOOST_SP_HAS_CLANG_C11_ATOMICS ) -# include - -#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC ) -# include - -#elif defined( __SNC__ ) -# include - -#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined(__PATHSCALE__) -# include - -#elif defined(__HP_aCC) && defined(__ia64) -# include - -#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) && !defined(__PATHSCALE__) -# include - -#elif defined( __IBMCPP__ ) && defined( __powerpc ) -# include - -#elif defined( __MWERKS__ ) && defined( __POWERPC__ ) -# include - -#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX ) -# include - -#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 ) -# include - -#elif defined( BOOST_SP_HAS_SYNC ) -# include - -#elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) ) -# include - -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__) -# include - -#elif defined( _AIX ) -# include - -#elif !defined( BOOST_HAS_THREADS ) -# include - -#else -# include - -#endif - -#undef BOOST_SP_HAS_CLANG_C11_ATOMICS - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp deleted file mode 100644 index cebc243d2..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED - -// -// detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64 -// -// Copyright 2007 Baruch Zilber -// Copyright 2007 Boris Gubenko -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// - -#include -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int r = static_cast(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE)); - if (1 == r) - { - _Asm_mf(); - } - - return r - 1; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int v = *pw; - - for (;;) - { - if (0 == v) - { - return 0; - } - - _Asm_mov_to_ar(_AREG_CCV, - v, - (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE)); - int r = static_cast(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE)); - if (r == v) - { - return r + 1; - } - - v = r; - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); // TODO use ld.acq here - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp deleted file mode 100644 index fe6c727e3..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED - -// -// detail/sp_counted_base_aix.hpp -// based on: detail/sp_counted_base_w32.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// Copyright 2006 Michael van der Westhuizen -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int32_t* pw ) -{ - // ++*pw; - - fetch_and_add( pw, 1 ); -} - -inline int32_t atomic_decrement( int32_t * pw ) -{ - // return --*pw; - - int32_t originalValue; - - __lwsync(); - originalValue = fetch_and_add( pw, -1 ); - __isync(); - - return (originalValue - 1); -} - -inline int32_t atomic_conditional_increment( int32_t * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int32_t tmp = fetch_and_add( pw, 0 ); - for( ;; ) - { - if( tmp == 0 ) return 0; - if( compare_and_swap( pw, &tmp, tmp + 1 ) ) return (tmp + 1); - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int32_t use_count_; // #shared - int32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return fetch_and_add( const_cast(&use_count_), 0 ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_clang.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_clang.hpp deleted file mode 100644 index 75984959d..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_clang.hpp +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_clang.hpp - __c11 clang intrinsics -// -// Copyright (c) 2007, 2013, 2015 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 - -#include -#include - -namespace boost -{ - -namespace detail -{ - -typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; - -inline void atomic_increment( atomic_int_least32_t * pw ) -{ - __c11_atomic_fetch_add( pw, 1, __ATOMIC_RELAXED ); -} - -inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw ) -{ - return __c11_atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL ); -} - -inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - boost::int_least32_t r = __c11_atomic_load( pw, __ATOMIC_RELAXED ); - - for( ;; ) - { - if( r == 0 ) - { - return r; - } - - if( __c11_atomic_compare_exchange_weak( pw, &r, r + 1, __ATOMIC_RELAXED, __ATOMIC_RELAXED ) ) - { - return r; - } - } -} - -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wweak-vtables" -#endif - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - atomic_int_least32_t use_count_; // #shared - atomic_int_least32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base() - { - __c11_atomic_init( &use_count_, 1 ); - __c11_atomic_init( &weak_count_, 1 ); - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return __c11_atomic_load( const_cast< atomic_int_least32_t* >( &use_count_ ), __ATOMIC_ACQUIRE ); - } -}; - -#if defined(__clang__) -# pragma clang diagnostic pop -#endif - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp deleted file mode 100644 index 6c268e892..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( register long * pw ) -{ - register int a; - - asm - { -loop: - - lwarx a, 0, pw - addi a, a, 1 - stwcx. a, 0, pw - bne- loop - } -} - -inline long atomic_decrement( register long * pw ) -{ - register int a; - - asm - { - sync - -loop: - - lwarx a, 0, pw - addi a, a, -1 - stwcx. a, 0, pw - bne- loop - - isync - } - - return a; -} - -inline long atomic_conditional_increment( register long * pw ) -{ - register int a; - - asm - { -loop: - - lwarx a, 0, pw - cmpwi a, 0 - beq store - - addi a, a, 1 - -store: - - stwcx. a, 0, pw - bne- loop - } - - return a; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp deleted file mode 100644 index 81eba6f17..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_cw_x86.hpp - CodeWarrion on 486+ -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// Copyright 2005 Rene Rivera -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include - -namespace boost -{ - -namespace detail -{ - -inline int atomic_exchange_and_add( int * pw, int dv ) -{ - // int r = *pw; - // *pw += dv; - // return r; - - asm - { - mov esi, [pw] - mov eax, dv - lock xadd dword ptr [esi], eax - } -} - -inline void atomic_increment( int * pw ) -{ - //atomic_exchange_and_add( pw, 1 ); - - asm - { - mov esi, [pw] - lock inc dword ptr [esi] - } -} - -inline int atomic_conditional_increment( int * pw ) -{ - // int rv = *pw; - // if( rv != 0 ) ++*pw; - // return rv; - - asm - { - mov esi, [pw] - mov eax, dword ptr [esi] - L0: - test eax, eax - je L1 - mov ebx, eax - inc ebx - lock cmpxchg dword ptr [esi], ebx - jne L0 - L1: - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_X86_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp deleted file mode 100644 index f6e390415..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +++ /dev/null @@ -1,158 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED - -// -// detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64 -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2006 Peter Dimov -// Copyright 2005 Ben Hutchings -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// - -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - int tmp; - - // No barrier is required here but fetchadd always has an acquire or - // release barrier associated with it. We choose release as it should be - // cheaper. - __asm__ ("fetchadd4.rel %0=%1,1" : - "=r"(tmp), "=m"(*pw) : - "m"( *pw )); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int rv; - - __asm__ (" fetchadd4.rel %0=%1,-1 ;; \n" - " cmp.eq p7,p0=1,%0 ;; \n" - "(p7) ld4.acq %0=%1 " : - "=&r"(rv), "=m"(*pw) : - "m"( *pw ) : - "p7"); - - return rv; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int rv, tmp, tmp2; - - __asm__ ("0: ld4 %0=%3 ;; \n" - " cmp.eq p7,p0=0,%0 ;; \n" - "(p7) br.cond.spnt 1f \n" - " mov ar.ccv=%0 \n" - " add %1=1,%0 ;; \n" - " cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n" - " cmp.ne p7,p0=%0,%2 ;; \n" - "(p7) br.cond.spnt 0b \n" - " mov %0=%1 ;; \n" - "1:" : - "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) : - "m"( *pw ) : - "ar.ccv", "p7"); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); // TODO use ld.acq here - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp deleted file mode 100644 index 545c8ae4f..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED -#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS -// -// Copyright (c) 2009, Spirent Communications, Inc. -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// - -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - int tmp; - - __asm__ __volatile__ - ( - "0:\n\t" - ".set push\n\t" - ".set mips2\n\t" - "ll %0, %1\n\t" - "addiu %0, 1\n\t" - "sc %0, %1\n\t" - ".set pop\n\t" - "beqz %0, 0b": - "=&r"( tmp ), "=m"( *pw ): - "m"( *pw ) - ); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int rv, tmp; - - __asm__ __volatile__ - ( - "0:\n\t" - ".set push\n\t" - ".set mips2\n\t" - "ll %1, %2\n\t" - "addiu %0, %1, -1\n\t" - "sc %0, %2\n\t" - ".set pop\n\t" - "beqz %0, 0b\n\t" - "addiu %0, %1, -1": - "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ): - "m"( *pw ): - "memory" - ); - - return rv; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int rv, tmp; - - __asm__ __volatile__ - ( - "0:\n\t" - ".set push\n\t" - ".set mips2\n\t" - "ll %0, %2\n\t" - "beqz %0, 1f\n\t" - "addiu %1, %0, 1\n\t" - "sc %1, %2\n\t" - ".set pop\n\t" - "beqz %1, 0b\n\t" - "addiu %0, %0, 1\n\t" - "1:": - "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ): - "m"( *pw ): - "memory" - ); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp deleted file mode 100644 index 2e5bc0e85..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int * pw ) -{ - // ++*pw; - - int tmp; - - __asm__ - ( - "0:\n\t" - "lwarx %1, 0, %2\n\t" - "addi %1, %1, 1\n\t" - "stwcx. %1, 0, %2\n\t" - "bne- 0b": - - "=m"( *pw ), "=&b"( tmp ): - "r"( pw ), "m"( *pw ): - "cc" - ); -} - -inline int atomic_decrement( int * pw ) -{ - // return --*pw; - - int rv; - - __asm__ __volatile__ - ( - "sync\n\t" - "0:\n\t" - "lwarx %1, 0, %2\n\t" - "addi %1, %1, -1\n\t" - "stwcx. %1, 0, %2\n\t" - "bne- 0b\n\t" - "isync": - - "=m"( *pw ), "=&b"( rv ): - "r"( pw ), "m"( *pw ): - "memory", "cc" - ); - - return rv; -} - -inline int atomic_conditional_increment( int * pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - int rv; - - __asm__ - ( - "0:\n\t" - "lwarx %1, 0, %2\n\t" - "cmpwi %1, 0\n\t" - "beq 1f\n\t" - "addi %1, %1, 1\n\t" - "1:\n\t" - "stwcx. %1, 0, %2\n\t" - "bne- 0b": - - "=m"( *pw ), "=&b"( rv ): - "r"( pw ), "m"( *pw ): - "cc" - ); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp deleted file mode 100644 index c6d20ce7e..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+ -// -// Copyright (c) 2006 Piotr Wyderski -// Copyright (c) 2006 Tomas Puverle -// Copyright (c) 2006 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 -// -// Thanks to Michael van der Westhuizen - -#include -#include // int32_t - -namespace boost -{ - -namespace detail -{ - -inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ ) -{ - __asm__ __volatile__( "cas [%1], %2, %0" - : "+r" (swap_) - : "r" (dest_), "r" (compare_) - : "memory" ); - - return swap_; -} - -inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv ) -{ - // long r = *pw; - // *pw += dv; - // return r; - - for( ;; ) - { - int32_t r = *pw; - - if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) ) - { - return r; - } - } -} - -inline void atomic_increment( int32_t * pw ) -{ - atomic_fetch_and_add( pw, 1 ); -} - -inline int32_t atomic_decrement( int32_t * pw ) -{ - return atomic_fetch_and_add( pw, -1 ); -} - -inline int32_t atomic_conditional_increment( int32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - for( ;; ) - { - int32_t r = *pw; - - if( r == 0 ) - { - return r; - } - - if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) ) - { - return r; - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int32_t use_count_; // #shared - int32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return const_cast< int32_t const volatile & >( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp deleted file mode 100644 index 173dce5c8..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64 -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include - -namespace boost -{ - -namespace detail -{ - -inline int atomic_exchange_and_add( int * pw, int dv ) -{ - // int r = *pw; - // *pw += dv; - // return r; - - int r; - - __asm__ __volatile__ - ( - "lock\n\t" - "xadd %1, %0": - "=m"( *pw ), "=r"( r ): // outputs (%0, %1) - "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1) - "memory", "cc" // clobbers - ); - - return r; -} - -inline void atomic_increment( int * pw ) -{ - //atomic_exchange_and_add( pw, 1 ); - - __asm__ - ( - "lock\n\t" - "incl %0": - "=m"( *pw ): // output (%0) - "m"( *pw ): // input (%1) - "cc" // clobbers - ); -} - -inline int atomic_conditional_increment( int * pw ) -{ - // int rv = *pw; - // if( rv != 0 ) ++*pw; - // return rv; - - int rv, tmp; - - __asm__ - ( - "movl %0, %%eax\n\t" - "0:\n\t" - "test %%eax, %%eax\n\t" - "je 1f\n\t" - "movl %%eax, %2\n\t" - "incl %2\n\t" - "lock\n\t" - "cmpxchgl %2, %0\n\t" - "jne 0b\n\t" - "1:": - "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2) - "m"( *pw ): // input (%3) - "cc" // clobbers - ); - - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp deleted file mode 100644 index 5c901f9d1..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_nt.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// - -#include - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - ++use_count_; - } - - bool add_ref_lock() // true on success - { - if( use_count_ == 0 ) return false; - ++use_count_; - return true; - } - - void release() // nothrow - { - if( --use_count_ == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - ++weak_count_; - } - - void weak_release() // nothrow - { - if( --weak_count_ == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return use_count_; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp deleted file mode 100644 index a16d2d865..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_pt.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// - -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - - mutable pthread_mutex_t m_; - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { -// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init - -#if defined(__hpux) && defined(_DECTHREADS_) - BOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 ); -#else - BOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 ); -#endif - } - - virtual ~sp_counted_base() // nothrow - { - BOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 ); - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - ++use_count_; - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - } - - bool add_ref_lock() // true on success - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - bool r = use_count_ == 0? false: ( ++use_count_, true ); - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - return r; - } - - void release() // nothrow - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - long new_use_count = --use_count_; - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - - if( new_use_count == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - ++weak_count_; - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - } - - void weak_release() // nothrow - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - long new_weak_count = --weak_count_; - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - - if( new_weak_count == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - long r = use_count_; - BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); - - return r; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp deleted file mode 100644 index 56ed79fa9..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +++ /dev/null @@ -1,162 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+ -// -// Copyright (c) 2006 Piotr Wyderski -// Copyright (c) 2006 Tomas Puverle -// Copyright (c) 2006 Peter Dimov -// Copyright (c) 2011 Emil Dotchevski -// -// 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 -// -// Thanks to Michael van der Westhuizen - -#include -#include // uint32_t - -namespace boost -{ - -namespace detail -{ - -inline uint32_t compare_and_swap( uint32_t * dest_, uint32_t compare_, uint32_t swap_ ) -{ - return __builtin_cellAtomicCompareAndSwap32(dest_,compare_,swap_); -} - -inline uint32_t atomic_fetch_and_add( uint32_t * pw, uint32_t dv ) -{ - // long r = *pw; - // *pw += dv; - // return r; - - for( ;; ) - { - uint32_t r = *pw; - - if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) ) - { - return r; - } - } -} - -inline void atomic_increment( uint32_t * pw ) -{ - (void) __builtin_cellAtomicIncr32( pw ); -} - -inline uint32_t atomic_decrement( uint32_t * pw ) -{ - return __builtin_cellAtomicDecr32( pw ); -} - -inline uint32_t atomic_conditional_increment( uint32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - for( ;; ) - { - uint32_t r = *pw; - - if( r == 0 ) - { - return r; - } - - if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) ) - { - return r; - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - uint32_t use_count_; // #shared - uint32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return const_cast< uint32_t const volatile & >( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp deleted file mode 100644 index 0e05fef4c..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED - -// -// detail/sp_counted_base_solaris.hpp -// based on: detail/sp_counted_base_w32.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// Copyright 2006 Michael van der Westhuizen -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include -#include - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - uint32_t use_count_; // #shared - uint32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_inc_32( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - for( ;; ) - { - uint32_t tmp = static_cast< uint32_t const volatile& >( use_count_ ); - if( tmp == 0 ) return false; - if( atomic_cas_32( &use_count_, tmp, tmp + 1 ) == tmp ) return true; - } - } - - void release() // nothrow - { - if( atomic_dec_32_nv( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_inc_32( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_dec_32_nv( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SOLARIS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp deleted file mode 100644 index 77734e727..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2008 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) -// - -#include -#include - -namespace boost -{ - -namespace detail -{ - -inline int atomic_exchange_and_add( int * pw, int dv ) -{ - spinlock_pool<1>::scoped_lock lock( pw ); - - int r = *pw; - *pw += dv; - return r; -} - -inline void atomic_increment( int * pw ) -{ - spinlock_pool<1>::scoped_lock lock( pw ); - ++*pw; -} - -inline int atomic_conditional_increment( int * pw ) -{ - spinlock_pool<1>::scoped_lock lock( pw ); - - int rv = *pw; - if( rv != 0 ) ++*pw; - return rv; -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_exchange_and_add( &use_count_, -1 ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - spinlock_pool<1>::scoped_lock lock( &use_count_ ); - return use_count_; - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp deleted file mode 100644 index cab845359..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_STD_ATOMIC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_STD_ATOMIC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_std_atomic.hpp - C++11 std::atomic -// -// Copyright (c) 2007, 2013 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 - -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( std::atomic_int_least32_t * pw ) -{ - pw->fetch_add( 1, std::memory_order_relaxed ); -} - -inline std::int_least32_t atomic_decrement( std::atomic_int_least32_t * pw ) -{ - return pw->fetch_sub( 1, std::memory_order_acq_rel ); -} - -inline std::int_least32_t atomic_conditional_increment( std::atomic_int_least32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - std::int_least32_t r = pw->load( std::memory_order_relaxed ); - - for( ;; ) - { - if( r == 0 ) - { - return r; - } - - if( pw->compare_exchange_weak( r, r + 1, std::memory_order_relaxed, std::memory_order_relaxed ) ) - { - return r; - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - std::atomic_int_least32_t use_count_; // #shared - std::atomic_int_least32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return use_count_.load( std::memory_order_acquire ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_STD_ATOMIC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp deleted file mode 100644 index fafed0e72..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp +++ /dev/null @@ -1,156 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics -// -// Copyright (c) 2007 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 - -#include -#include - -#if defined( __ia64__ ) && defined( __INTEL_COMPILER ) -# include -#endif - -namespace boost -{ - -namespace detail -{ - -#if INT_MAX >= 2147483647 - -typedef int sp_int32_t; - -#else - -typedef long sp_int32_t; - -#endif - -inline void atomic_increment( sp_int32_t * pw ) -{ - __sync_fetch_and_add( pw, 1 ); -} - -inline sp_int32_t atomic_decrement( sp_int32_t * pw ) -{ - return __sync_fetch_and_add( pw, -1 ); -} - -inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw ) -{ - // long r = *pw; - // if( r != 0 ) ++*pw; - // return r; - - sp_int32_t r = *pw; - - for( ;; ) - { - if( r == 0 ) - { - return r; - } - - sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 ); - - if( r2 == r ) - { - return r; - } - else - { - r = r2; - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - sp_int32_t use_count_; // #shared - sp_int32_t weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 1 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 1 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return const_cast< sp_int32_t const volatile & >( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp deleted file mode 100644 index 162f309b5..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED - -// -// detail/sp_counted_base_vacpp_ppc.hpp - xlC(vacpp) on POWER -// based on: detail/sp_counted_base_w32.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 Peter Dimov -// Copyright 2006 Michael van der Westhuizen -// Copyright 2012 IBM Corp. -// -// 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include - -extern "builtin" void __lwsync(void); -extern "builtin" void __isync(void); -extern "builtin" int __fetch_and_add(volatile int* addr, int val); -extern "builtin" int __compare_and_swap(volatile int*, int*, int); - -namespace boost -{ - -namespace detail -{ - -inline void atomic_increment( int *pw ) -{ - // ++*pw; - __lwsync(); - __fetch_and_add(pw, 1); - __isync(); -} - -inline int atomic_decrement( int *pw ) -{ - // return --*pw; - __lwsync(); - int originalValue = __fetch_and_add(pw, -1); - __isync(); - - return (originalValue - 1); -} - -inline int atomic_conditional_increment( int *pw ) -{ - // if( *pw != 0 ) ++*pw; - // return *pw; - - __lwsync(); - int v = *const_cast(pw); - for (;;) - // loop until state is known - { - if (v == 0) return 0; - if (__compare_and_swap(pw, &v, v + 1)) - { - __isync(); return (v + 1); - } - } -} - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - int use_count_; // #shared - int weak_count_; // #weak + (#shared != 0) - char pad[64] __attribute__((__aligned__(64))); - // pad to prevent false sharing -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - atomic_increment( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - return atomic_conditional_increment( &use_count_ ) != 0; - } - - void release() // nothrow - { - if( atomic_decrement( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - atomic_increment( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( atomic_decrement( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return *const_cast(&use_count_); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp deleted file mode 100644 index 4ba509c6c..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp +++ /dev/null @@ -1,131 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_base_w32.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// -// -// Lock-free algorithm by Alexander Terekhov -// -// Thanks to Ben Hitchings for the #weak + (#shared != 0) -// formulation -// - -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -class sp_counted_base -{ -private: - - sp_counted_base( sp_counted_base const & ); - sp_counted_base & operator= ( sp_counted_base const & ); - - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) - -public: - - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) - { - } - - virtual ~sp_counted_base() // nothrow - { - } - - // dispose() is called when use_count_ drops to zero, to release - // the resources managed by *this. - - virtual void dispose() = 0; // nothrow - - // destroy() is called when weak_count_ drops to zero. - - virtual void destroy() // nothrow - { - delete this; - } - - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; - - void add_ref_copy() - { - BOOST_SP_INTERLOCKED_INCREMENT( &use_count_ ); - } - - bool add_ref_lock() // true on success - { - for( ;; ) - { - long tmp = static_cast< long const volatile& >( use_count_ ); - if( tmp == 0 ) return false; - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 ) - - // work around a code generation bug - - long tmp2 = tmp + 1; - if( BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true; - -#else - - if( BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true; - -#endif - } - } - - void release() // nothrow - { - if( BOOST_SP_INTERLOCKED_DECREMENT( &use_count_ ) == 0 ) - { - dispose(); - weak_release(); - } - } - - void weak_add_ref() // nothrow - { - BOOST_SP_INTERLOCKED_INCREMENT( &weak_count_ ); - } - - void weak_release() // nothrow - { - if( BOOST_SP_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 ) - { - destroy(); - } - } - - long use_count() const // nothrow - { - return static_cast( use_count_ ); - } -}; - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_impl.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_impl.hpp deleted file mode 100644 index 1222f3c9f..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_counted_impl.hpp +++ /dev/null @@ -1,271 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// detail/sp_counted_impl.hpp -// -// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. -// Copyright 2004-2005 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) -// - -#include - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR) -# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible. -#endif - -#include -#include - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) -#include -#endif - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) -#include // std::allocator -#endif - -#include // std::size_t - -namespace boost -{ - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn ); -void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn ); - -#endif - -namespace detail -{ - -template class sp_counted_impl_p: public sp_counted_base -{ -private: - - X * px_; - - sp_counted_impl_p( sp_counted_impl_p const & ); - sp_counted_impl_p & operator= ( sp_counted_impl_p const & ); - - typedef sp_counted_impl_p this_type; - -public: - - explicit sp_counted_impl_p( X * px ): px_( px ) - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_constructor_hook( px, sizeof(X), this ); -#endif - } - - virtual void dispose() // nothrow - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_destructor_hook( px_, sizeof(X), this ); -#endif - boost::checked_delete( px_ ); - } - - virtual void * get_deleter( sp_typeinfo const & ) - { - return 0; - } - - virtual void * get_untyped_deleter() - { - return 0; - } - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) - - void * operator new( std::size_t ) - { - return std::allocator().allocate( 1, static_cast(0) ); - } - - void operator delete( void * p ) - { - std::allocator().deallocate( static_cast(p), 1 ); - } - -#endif - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) - - void * operator new( std::size_t ) - { - return quick_allocator::alloc(); - } - - void operator delete( void * p ) - { - quick_allocator::dealloc( p ); - } - -#endif -}; - -// -// Borland's Codeguard trips up over the -Vx- option here: -// -#ifdef __CODEGUARD__ -# pragma option push -Vx- -#endif - -template class sp_counted_impl_pd: public sp_counted_base -{ -private: - - P ptr; // copy constructor must not throw - D del; // copy constructor must not throw - - sp_counted_impl_pd( sp_counted_impl_pd const & ); - sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & ); - - typedef sp_counted_impl_pd this_type; - -public: - - // pre: d(p) must not throw - - sp_counted_impl_pd( P p, D & d ): ptr( p ), del( d ) - { - } - - sp_counted_impl_pd( P p ): ptr( p ), del() - { - } - - virtual void dispose() // nothrow - { - del( ptr ); - } - - virtual void * get_deleter( sp_typeinfo const & ti ) - { - return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast( del ): 0; - } - - virtual void * get_untyped_deleter() - { - return &reinterpret_cast( del ); - } - -#if defined(BOOST_SP_USE_STD_ALLOCATOR) - - void * operator new( std::size_t ) - { - return std::allocator().allocate( 1, static_cast(0) ); - } - - void operator delete( void * p ) - { - std::allocator().deallocate( static_cast(p), 1 ); - } - -#endif - -#if defined(BOOST_SP_USE_QUICK_ALLOCATOR) - - void * operator new( std::size_t ) - { - return quick_allocator::alloc(); - } - - void operator delete( void * p ) - { - quick_allocator::dealloc( p ); - } - -#endif -}; - -template class sp_counted_impl_pda: public sp_counted_base -{ -private: - - P p_; // copy constructor must not throw - D d_; // copy constructor must not throw - A a_; // copy constructor must not throw - - sp_counted_impl_pda( sp_counted_impl_pda const & ); - sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & ); - - typedef sp_counted_impl_pda this_type; - -public: - - // pre: d( p ) must not throw - - sp_counted_impl_pda( P p, D & d, A a ): p_( p ), d_( d ), a_( a ) - { - } - - sp_counted_impl_pda( P p, A a ): p_( p ), d_( a ), a_( a ) - { - } - - virtual void dispose() // nothrow - { - d_( p_ ); - } - - virtual void destroy() // nothrow - { -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - typedef typename std::allocator_traits::template rebind_alloc< this_type > A2; - -#else - - typedef typename A::template rebind< this_type >::other A2; - -#endif - - A2 a2( a_ ); - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - std::allocator_traits::destroy( a2, this ); - -#else - - this->~this_type(); - -#endif - - a2.deallocate( this, 1 ); - } - - virtual void * get_deleter( sp_typeinfo const & ti ) - { - return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast( d_ ): 0; - } - - virtual void * get_untyped_deleter() - { - return &reinterpret_cast( d_ ); - } -}; - -#ifdef __CODEGUARD__ -# pragma option pop -#endif - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_disable_deprecated.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_disable_deprecated.hpp deleted file mode 100644 index f79bdf38a..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_disable_deprecated.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_DISABLE_DEPRECATED_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_DISABLE_DEPRECATED_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/smart_ptr/detail/sp_disable_deprecated.hpp -// -// Copyright 2015 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) -// - -#include - -#if defined( __GNUC__ ) && ( defined( __GXX_EXPERIMENTAL_CXX0X__ ) || ( __cplusplus >= 201103L ) ) - -# if defined( BOOST_GCC ) - -# if BOOST_GCC >= 40600 -# define BOOST_SP_DISABLE_DEPRECATED -# endif - -# elif defined( __clang__ ) && defined( __has_warning ) - -# if __has_warning( "-Wdeprecated-declarations" ) -# define BOOST_SP_DISABLE_DEPRECATED -# endif - -# endif - -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_DISABLE_DEPRECATED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_forward.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_forward.hpp deleted file mode 100644 index 8fdec65b7..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_forward.hpp +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_forward.hpp -// -// Copyright 2008,2012 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 - -#include - -namespace boost -{ - -namespace detail -{ - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -#if defined( BOOST_GCC ) && __GNUC__ * 100 + __GNUC_MINOR__ <= 404 - -// GCC 4.4 supports an outdated version of rvalue references and creates a copy of the forwarded object. -// This results in warnings 'returning reference to temporary'. Therefore we use a special version similar to std::forward. -template< class T > T&& sp_forward( T && t ) BOOST_NOEXCEPT -{ - return t; -} - -#else - -template< class T > T&& sp_forward( T & t ) BOOST_NOEXCEPT -{ - return static_cast< T&& >( t ); -} - -#endif - -#endif - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_has_sync.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_has_sync.hpp deleted file mode 100644 index 16de21d37..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_has_sync.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/smart_ptr/detail/sp_has_sync.hpp -// -// Copyright (c) 2008, 2009 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) -// -// Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics -// are available. -// - -#ifndef BOOST_SP_NO_SYNC - -#if defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 ) - -# define BOOST_SP_HAS_SYNC - -#elif defined( __IBMCPP__ ) && ( __IBMCPP__ >= 1210 ) - -# define BOOST_SP_HAS_SYNC - -#elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) - -#define BOOST_SP_HAS_SYNC - -#if defined( __arm__ ) || defined( __armel__ ) -#undef BOOST_SP_HAS_SYNC -#endif - -#if defined( __hppa ) || defined( __hppa__ ) -#undef BOOST_SP_HAS_SYNC -#endif - -#if defined( __m68k__ ) -#undef BOOST_SP_HAS_SYNC -#endif - -#if defined( __sh__ ) -#undef BOOST_SP_HAS_SYNC -#endif - -#if defined( __sparc__ ) -#undef BOOST_SP_HAS_SYNC -#endif - -#if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1110 ) -#undef BOOST_SP_HAS_SYNC -#endif - -#if defined(__PATHSCALE__) && ((__PATHCC__ == 4) && (__PATHCC_MINOR__ < 9)) -#undef BOOST_SP_HAS_SYNC -#endif - -#endif - -#endif // #ifndef BOOST_SP_NO_SYNC - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_if_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_if_array.hpp deleted file mode 100644 index 9a2c1e0ba..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_if_array.hpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2012-2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP -#define BOOST_SMART_PTR_DETAIL_SP_IF_ARRAY_HPP - -#include - -namespace boost { - namespace detail { - template - struct sp_if_array; - - template - struct sp_if_array { - typedef boost::shared_ptr type; - }; - - template - struct sp_if_size_array; - - template - struct sp_if_size_array { - typedef boost::shared_ptr type; - }; - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_interlocked.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_interlocked.hpp deleted file mode 100644 index 79cae14a3..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_interlocked.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_INTERLOCKED_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_INTERLOCKED_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/sp_interlocked.hpp -// -// Copyright 2005, 2014 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 -// - -#include - -// BOOST_SP_HAS_INTRIN_H - -// VC9 has intrin.h, but it collides with -#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600 - -# define BOOST_SP_HAS_INTRIN_H - -// Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets. -#elif defined( __MINGW64_VERSION_MAJOR ) - -// MinGW-w64 provides intrin.h for both 32 and 64-bit targets. -# define BOOST_SP_HAS_INTRIN_H - -// Intel C++ on Windows on VC10+ stdlib -#elif defined( BOOST_INTEL_WIN ) && defined( _CPPLIB_VER ) && _CPPLIB_VER >= 520 - -# define BOOST_SP_HAS_INTRIN_H - -#endif - -#if defined( BOOST_USE_WINDOWS_H ) - -# include - -# define BOOST_SP_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_SP_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd - -#elif defined( BOOST_USE_INTRIN_H ) || defined( BOOST_SP_HAS_INTRIN_H ) - -#include - -# define BOOST_SP_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_SP_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -#elif defined( _WIN32_WCE ) - -#if _WIN32_WCE >= 0x600 - -extern "C" long __cdecl _InterlockedIncrement( long volatile * ); -extern "C" long __cdecl _InterlockedDecrement( long volatile * ); -extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long __cdecl _InterlockedExchange( long volatile *, long ); -extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long ); - -# define BOOST_SP_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_SP_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -#else - -// under Windows CE we still have old-style Interlocked* functions - -extern "C" long __cdecl InterlockedIncrement( long* ); -extern "C" long __cdecl InterlockedDecrement( long* ); -extern "C" long __cdecl InterlockedCompareExchange( long*, long, long ); -extern "C" long __cdecl InterlockedExchange( long*, long ); -extern "C" long __cdecl InterlockedExchangeAdd( long*, long ); - -# define BOOST_SP_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_SP_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd - -#endif - -#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) - -#if defined( __CLRCALL_PURE_OR_CDECL ) - -extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * ); -extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * ); -extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long ); -extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long ); - -#else - -extern "C" long __cdecl _InterlockedIncrement( long volatile * ); -extern "C" long __cdecl _InterlockedDecrement( long volatile * ); -extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long __cdecl _InterlockedExchange( long volatile *, long ); -extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long ); - -# if defined( BOOST_MSVC ) && BOOST_MSVC == 1310 -//From MSDN, Visual Studio .NET 2003 spedific: To declare one of the interlocked functions -//for use as an intrinsic, the function must be declared with the leading underscore and -//the new function must appear in a #pragma intrinsic statement. -# pragma intrinsic( _InterlockedIncrement ) -# pragma intrinsic( _InterlockedDecrement ) -# pragma intrinsic( _InterlockedCompareExchange ) -# pragma intrinsic( _InterlockedExchange ) -# pragma intrinsic( _InterlockedExchangeAdd ) -# endif - -#endif - -# define BOOST_SP_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_SP_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) - -namespace boost -{ - -namespace detail -{ - -extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * ); -extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * ); -extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long ); -extern "C" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long ); -extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd( long volatile *, long ); - -} // namespace detail - -} // namespace boost - -# define BOOST_SP_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement -# define BOOST_SP_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement -# define BOOST_SP_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange -# define BOOST_SP_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd - -#else - -# error "Interlocked intrinsics not available" - -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_INTERLOCKED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp deleted file mode 100644 index 219ae8070..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_nullptr_t.hpp -// -// Copyright 2013 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 - -#include -#include - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -namespace boost -{ - -namespace detail -{ - -#if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) ) - - typedef decltype(nullptr) sp_nullptr_t; - -#else - - typedef std::nullptr_t sp_nullptr_t; - -#endif - -} // namespace detail - -} // namespace boost - -#endif // !defined( BOOST_NO_CXX11_NULLPTR ) - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock.hpp deleted file mode 100644 index 0b618dfc1..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/spinlock.hpp -// -// Copyright (c) 2008 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) -// -// struct spinlock -// { -// void lock(); -// bool try_lock(); -// void unlock(); -// -// class scoped_lock; -// }; -// -// #define BOOST_DETAIL_SPINLOCK_INIT -// - -#include -#include - -#if defined( BOOST_SP_USE_STD_ATOMIC ) -# if !defined( __clang__ ) -# include -# else -// Clang (at least up to 3.4) can't compile spinlock_pool when -// using std::atomic, so substitute the __sync implementation instead. -# include -# endif - -#elif defined( BOOST_SP_USE_PTHREADS ) -# include - -#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC ) -# include - -#elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ ) -# include - -#elif defined( BOOST_SP_HAS_SYNC ) -# include - -#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) -# include - -#elif defined(BOOST_HAS_PTHREADS) -# include - -#elif !defined(BOOST_HAS_THREADS) -# include - -#else -# error Unrecognized threading platform -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp deleted file mode 100644 index 24d08a881..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED - -// -// Copyright (c) 2008, 2011 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) -// - -#include - -#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7S__) - -# define BOOST_SP_ARM_BARRIER "dmb" -# define BOOST_SP_ARM_HAS_LDREX - -#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) - -# define BOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5" -# define BOOST_SP_ARM_HAS_LDREX - -#else - -# define BOOST_SP_ARM_BARRIER "" - -#endif - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - int v_; - -public: - - bool try_lock() - { - int r; - -#ifdef BOOST_SP_ARM_HAS_LDREX - - __asm__ __volatile__( - "ldrex %0, [%2]; \n" - "cmp %0, %1; \n" - "strexne %0, %1, [%2]; \n" - BOOST_SP_ARM_BARRIER : - "=&r"( r ): // outputs - "r"( 1 ), "r"( &v_ ): // inputs - "memory", "cc" ); - -#else - - __asm__ __volatile__( - "swp %0, %1, [%2];\n" - BOOST_SP_ARM_BARRIER : - "=&r"( r ): // outputs - "r"( 1 ), "r"( &v_ ): // inputs - "memory", "cc" ); - -#endif - - return r == 0; - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - __asm__ __volatile__( BOOST_SP_ARM_BARRIER ::: "memory" ); - *const_cast< int volatile* >( &v_ ) = 0; - __asm__ __volatile__( BOOST_SP_ARM_BARRIER ::: "memory" ); - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT {0} - -#undef BOOST_SP_ARM_BARRIER -#undef BOOST_SP_ARM_HAS_LDREX - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_nt.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_nt.hpp deleted file mode 100644 index 1f399d0dd..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_nt.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 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) -// - -#include - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - bool locked_; - -public: - - inline bool try_lock() - { - if( locked_ ) - { - return false; - } - else - { - locked_ = true; - return true; - } - } - - inline void lock() - { - BOOST_ASSERT( !locked_ ); - locked_ = true; - } - - inline void unlock() - { - BOOST_ASSERT( locked_ ); - locked_ = false; - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT { false } - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_pool.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_pool.hpp deleted file mode 100644 index 39cf180b2..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_pool.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/spinlock_pool.hpp -// -// Copyright (c) 2008 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) -// -// spinlock_pool<0> is reserved for atomic<>, when/if it arrives -// spinlock_pool<1> is reserved for shared_ptr reference counts -// spinlock_pool<2> is reserved for shared_ptr atomic access -// - -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -template< int M > class spinlock_pool -{ -private: - - static spinlock pool_[ 41 ]; - -public: - - static spinlock & spinlock_for( void const * pv ) - { -#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 - std::size_t i = reinterpret_cast< unsigned long long >( pv ) % 41; -#else - std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41; -#endif - return pool_[ i ]; - } - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) ) - { - sp_.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -template< int M > spinlock spinlock_pool< M >::pool_[ 41 ] = -{ - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, - BOOST_DETAIL_SPINLOCK_INIT -}; - -} // namespace detail -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_pt.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_pt.hpp deleted file mode 100644 index f9cabfc3a..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_pt.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 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) -// - -#include - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - pthread_mutex_t v_; - -public: - - bool try_lock() - { - return pthread_mutex_trylock( &v_ ) == 0; - } - - void lock() - { - pthread_mutex_lock( &v_ ); - } - - void unlock() - { - pthread_mutex_unlock( &v_ ); - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER } - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_std_atomic.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_std_atomic.hpp deleted file mode 100644 index a61c1cd96..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_std_atomic.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_STD_ATOMIC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_STD_ATOMIC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2014 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) -// - -#include -#include - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - std::atomic_flag v_; - -public: - - bool try_lock() - { - return !v_.test_and_set( std::memory_order_acquire ); - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - v_ .clear( std::memory_order_release ); - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT { ATOMIC_FLAG_INIT } - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_STD_ATOMIC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_sync.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_sync.hpp deleted file mode 100644 index a7145c5ac..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_sync.hpp +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 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) -// - -#include - -#if defined( __ia64__ ) && defined( __INTEL_COMPILER ) -# include -#endif - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - int v_; - -public: - - bool try_lock() - { - int r = __sync_lock_test_and_set( &v_, 1 ); - return r == 0; - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - __sync_lock_release( &v_ ); - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT {0} - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_w32.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_w32.hpp deleted file mode 100644 index d34e4fc2b..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/spinlock_w32.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// Copyright (c) 2008 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) -// - -#include -#include - -// BOOST_COMPILER_FENCE - -#if defined(__INTEL_COMPILER) - -#define BOOST_COMPILER_FENCE __memory_barrier(); - -#elif defined( _MSC_VER ) && _MSC_VER >= 1310 - -extern "C" void _ReadWriteBarrier(); -#pragma intrinsic( _ReadWriteBarrier ) - -#define BOOST_COMPILER_FENCE _ReadWriteBarrier(); - -#elif defined(__GNUC__) - -#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" ); - -#else - -#define BOOST_COMPILER_FENCE - -#endif - -// - -namespace boost -{ - -namespace detail -{ - -class spinlock -{ -public: - - long v_; - -public: - - bool try_lock() - { - long r = BOOST_SP_INTERLOCKED_EXCHANGE( &v_, 1 ); - - BOOST_COMPILER_FENCE - - return r == 0; - } - - void lock() - { - for( unsigned k = 0; !try_lock(); ++k ) - { - boost::detail::yield( k ); - } - } - - void unlock() - { - BOOST_COMPILER_FENCE - *const_cast< long volatile* >( &v_ ) = 0; - } - -public: - - class scoped_lock - { - private: - - spinlock & sp_; - - scoped_lock( scoped_lock const & ); - scoped_lock & operator=( scoped_lock const & ); - - public: - - explicit scoped_lock( spinlock & sp ): sp_( sp ) - { - sp.lock(); - } - - ~scoped_lock() - { - sp_.unlock(); - } - }; -}; - -} // namespace detail -} // namespace boost - -#define BOOST_DETAIL_SPINLOCK_INIT {0} - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/up_if_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/up_if_array.hpp deleted file mode 100644 index 7e62d106b..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/up_if_array.hpp +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_UP_IF_ARRAY_HPP -#define BOOST_SMART_PTR_DETAIL_UP_IF_ARRAY_HPP - -#include - -namespace boost { - namespace detail { - template - struct up_if_array; - - template - struct up_if_array { - typedef std::unique_ptr type; - }; - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/up_if_not_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/up_if_not_array.hpp deleted file mode 100644 index fd74f2531..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/up_if_not_array.hpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_DETAIL_UP_IF_NOT_ARRAY_HPP -#define BOOST_SMART_PTR_DETAIL_UP_IF_NOT_ARRAY_HPP - -#include - -namespace boost { - namespace detail { - template - struct up_if_not_array { - typedef std::unique_ptr type; - }; - - template - struct up_if_not_array { - }; - - template - struct up_if_not_array { - }; - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/detail/yield_k.hpp b/lib/3rdParty/boost/boost/smart_ptr/detail/yield_k.hpp deleted file mode 100644 index 44d183647..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/detail/yield_k.hpp +++ /dev/null @@ -1,177 +0,0 @@ -#ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED -#define BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// yield_k.hpp -// -// Copyright (c) 2008 Peter Dimov -// Copyright (c) Microsoft Corporation 2014 -// -// void yield( unsigned k ); -// -// Typical use: -// -// for( unsigned k = 0; !try_lock(); ++k ) yield( k ); -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt -// - -#include -#include - -#if BOOST_PLAT_WINDOWS_RUNTIME -#include -#endif - -// BOOST_SMT_PAUSE - -#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) ) - -extern "C" void _mm_pause(); - -#define BOOST_SMT_PAUSE _mm_pause(); - -#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) ) - -#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" ); - -#endif - -// - -#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) - -#if defined( BOOST_USE_WINDOWS_H ) -# include -#endif - -namespace boost -{ - -namespace detail -{ - -#if !defined( BOOST_USE_WINDOWS_H ) && !BOOST_PLAT_WINDOWS_RUNTIME -#if !BOOST_COMP_CLANG || !defined __MINGW32__ - extern "C" void __stdcall Sleep( unsigned long ms ); -#else -#include <_mingw.h> -#if !defined __MINGW64_VERSION_MAJOR - extern "C" void __stdcall Sleep( unsigned long ms ); -#else - extern "C" __declspec(dllimport) void __stdcall Sleep( unsigned long ms ); -#endif -#endif -#endif - -inline void yield( unsigned k ) -{ - if( k < 4 ) - { - } -#if defined( BOOST_SMT_PAUSE ) - else if( k < 16 ) - { - BOOST_SMT_PAUSE - } -#endif -#if !BOOST_PLAT_WINDOWS_RUNTIME - else if( k < 32 ) - { - Sleep( 0 ); - } - else - { - Sleep( 1 ); - } -#else - else - { - // Sleep isn't supported on the Windows Runtime. - std::this_thread::yield(); - } -#endif -} - -} // namespace detail - -} // namespace boost - -#elif defined( BOOST_HAS_PTHREADS ) - -#ifndef _AIX -#include -#else - // AIX's sched.h defines ::var which sometimes conflicts with Lambda's var - extern "C" int sched_yield(void); -#endif - -#include - -namespace boost -{ - -namespace detail -{ - -inline void yield( unsigned k ) -{ - if( k < 4 ) - { - } -#if defined( BOOST_SMT_PAUSE ) - else if( k < 16 ) - { - BOOST_SMT_PAUSE - } -#endif - else if( k < 32 || k & 1 ) - { - sched_yield(); - } - else - { - // g++ -Wextra warns on {} or {0} - struct timespec rqtp = { 0, 0 }; - - // POSIX says that timespec has tv_sec and tv_nsec - // But it doesn't guarantee order or placement - - rqtp.tv_sec = 0; - rqtp.tv_nsec = 1000; - - nanosleep( &rqtp, 0 ); - } -} - -} // namespace detail - -} // namespace boost - -#else - -namespace boost -{ - -namespace detail -{ - -inline void yield( unsigned ) -{ -} - -} // namespace detail - -} // namespace boost - -#endif - -#endif // #ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/enable_shared_from_raw.hpp b/lib/3rdParty/boost/boost/smart_ptr/enable_shared_from_raw.hpp deleted file mode 100644 index 5cd3574e7..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/enable_shared_from_raw.hpp +++ /dev/null @@ -1,165 +0,0 @@ -#ifndef BOOST_ENABLE_SHARED_FROM_RAW_HPP_INCLUDED -#define BOOST_ENABLE_SHARED_FROM_RAW_HPP_INCLUDED - -// -// enable_shared_from_raw.hpp -// -// Copyright 2002, 2009, 2014 Peter Dimov -// Copyright 2008-2009 Frank Mori Hess -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt -// - -#include -#include -#include -#include -#include - -namespace boost -{ -template boost::shared_ptr shared_from_raw(T *); -template boost::weak_ptr weak_from_raw(T *); - -namespace detail -{ -template< class X, class Y > inline void sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_raw const * pe ); - -} // namespace detail - -class enable_shared_from_raw -{ -protected: - - enable_shared_from_raw() - { - } - - enable_shared_from_raw( enable_shared_from_raw const & ) - { - } - - enable_shared_from_raw & operator=( enable_shared_from_raw const & ) - { - return *this; - } - - ~enable_shared_from_raw() - { - BOOST_ASSERT( shared_this_.use_count() <= 1 ); // make sure no dangling shared_ptr objects exist - } - -private: - - void init_if_expired() const - { - if( weak_this_.expired() ) - { - shared_this_.reset( static_cast(0), detail::esft2_deleter_wrapper() ); - weak_this_ = shared_this_; - } - } - - void init_if_empty() const - { - if( weak_this_._empty() ) - { - shared_this_.reset( static_cast(0), detail::esft2_deleter_wrapper() ); - weak_this_ = shared_this_; - } - } - -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -private: - template friend class shared_ptr; - template friend boost::shared_ptr shared_from_raw(T *); - template friend boost::weak_ptr weak_from_raw(T *); - template< class X, class Y > friend inline void detail::sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_raw const * pe ); -#endif - - shared_ptr shared_from_this() const - { - init_if_expired(); - return shared_ptr( weak_this_ ); - } - - shared_ptr shared_from_this() const volatile - { - return const_cast< enable_shared_from_raw const * >( this )->shared_from_this(); - } - - weak_ptr weak_from_this() const - { - init_if_empty(); - return weak_this_; - } - - weak_ptr weak_from_this() const volatile - { - return const_cast< enable_shared_from_raw const * >( this )->weak_from_this(); - } - - // Note: invoked automatically by shared_ptr; do not call - template void _internal_accept_owner( shared_ptr * ppx, Y * ) const - { - BOOST_ASSERT( ppx != 0 ); - - if( weak_this_.expired() ) - { - weak_this_ = *ppx; - } - else if( shared_this_.use_count() != 0 ) - { - BOOST_ASSERT( ppx->unique() ); // no weak_ptrs should exist either, but there's no way to check that - - detail::esft2_deleter_wrapper * pd = boost::get_deleter( shared_this_ ); - BOOST_ASSERT( pd != 0 ); - - pd->set_deleter( *ppx ); - - ppx->reset( shared_this_, ppx->get() ); - shared_this_.reset(); - } - } - - mutable weak_ptr weak_this_; - -private: - - mutable shared_ptr shared_this_; -}; - -template -boost::shared_ptr shared_from_raw(T *p) -{ - BOOST_ASSERT(p != 0); - return boost::shared_ptr(p->enable_shared_from_raw::shared_from_this(), p); -} - -template -boost::weak_ptr weak_from_raw(T *p) -{ - BOOST_ASSERT(p != 0); - boost::weak_ptr result; - result._internal_aliasing_assign(p->enable_shared_from_raw::weak_from_this(), p); - return result; -} - -namespace detail -{ - template< class X, class Y > inline void sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_raw const * pe ) - { - if( pe != 0 ) - { - pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) ); - } - } -} // namepsace detail - -} // namespace boost - -#endif // #ifndef BOOST_ENABLE_SHARED_FROM_RAW_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/enable_shared_from_this.hpp b/lib/3rdParty/boost/boost/smart_ptr/enable_shared_from_this.hpp deleted file mode 100644 index 4e3f243d2..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/enable_shared_from_this.hpp +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED -#define BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED - -// -// enable_shared_from_this.hpp -// -// Copyright 2002, 2009 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 -// -// http://www.boost.org/libs/smart_ptr/enable_shared_from_this.html -// - -#include -#include -#include -#include - -namespace boost -{ - -template class enable_shared_from_this -{ -protected: - - enable_shared_from_this() BOOST_NOEXCEPT - { - } - - enable_shared_from_this(enable_shared_from_this const &) BOOST_NOEXCEPT - { - } - - enable_shared_from_this & operator=(enable_shared_from_this const &) BOOST_NOEXCEPT - { - return *this; - } - - ~enable_shared_from_this() BOOST_NOEXCEPT // ~weak_ptr newer throws, so this call also must not throw - { - } - -public: - - shared_ptr shared_from_this() - { - shared_ptr p( weak_this_ ); - BOOST_ASSERT( p.get() == this ); - return p; - } - - shared_ptr shared_from_this() const - { - shared_ptr p( weak_this_ ); - BOOST_ASSERT( p.get() == this ); - return p; - } - - weak_ptr weak_from_this() BOOST_NOEXCEPT - { - return weak_this_; - } - - weak_ptr weak_from_this() const BOOST_NOEXCEPT - { - return weak_this_; - } - -public: // actually private, but avoids compiler template friendship issues - - // Note: invoked automatically by shared_ptr; do not call - template void _internal_accept_owner( shared_ptr const * ppx, Y * py ) const - { - if( weak_this_.expired() ) - { - weak_this_ = shared_ptr( *ppx, py ); - } - } - -private: - - mutable weak_ptr weak_this_; -}; - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/intrusive_ptr.hpp b/lib/3rdParty/boost/boost/smart_ptr/intrusive_ptr.hpp deleted file mode 100644 index 1e9339732..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/intrusive_ptr.hpp +++ /dev/null @@ -1,360 +0,0 @@ -#ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED -#define BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED - -// -// intrusive_ptr.hpp -// -// Copyright (c) 2001, 2002 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) -// -// See http://www.boost.org/libs/smart_ptr/intrusive_ptr.html for documentation. -// - -#include - -#include -#include -#include -#include - -#include // for std::less - -#if !defined(BOOST_NO_IOSTREAM) -#if !defined(BOOST_NO_IOSFWD) -#include // for std::basic_ostream -#else -#include -#endif -#endif - - -namespace boost -{ - -// -// intrusive_ptr -// -// A smart pointer that uses intrusive reference counting. -// -// Relies on unqualified calls to -// -// void intrusive_ptr_add_ref(T * p); -// void intrusive_ptr_release(T * p); -// -// (p != 0) -// -// The object is responsible for destroying itself. -// - -template class intrusive_ptr -{ -private: - - typedef intrusive_ptr this_type; - -public: - - typedef T element_type; - - BOOST_CONSTEXPR intrusive_ptr() BOOST_NOEXCEPT : px( 0 ) - { - } - - intrusive_ptr( T * p, bool add_ref = true ): px( p ) - { - if( px != 0 && add_ref ) intrusive_ptr_add_ref( px ); - } - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES) - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - intrusive_ptr( intrusive_ptr const & rhs, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) - -#else - - intrusive_ptr( intrusive_ptr const & rhs ) - -#endif - : px( rhs.get() ) - { - if( px != 0 ) intrusive_ptr_add_ref( px ); - } - -#endif - - intrusive_ptr(intrusive_ptr const & rhs): px( rhs.px ) - { - if( px != 0 ) intrusive_ptr_add_ref( px ); - } - - ~intrusive_ptr() - { - if( px != 0 ) intrusive_ptr_release( px ); - } - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) || defined(BOOST_MSVC6_MEMBER_TEMPLATES) - - template intrusive_ptr & operator=(intrusive_ptr const & rhs) - { - this_type(rhs).swap(*this); - return *this; - } - -#endif - -// Move support - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - intrusive_ptr(intrusive_ptr && rhs) BOOST_NOEXCEPT : px( rhs.px ) - { - rhs.px = 0; - } - - intrusive_ptr & operator=(intrusive_ptr && rhs) BOOST_NOEXCEPT - { - this_type( static_cast< intrusive_ptr && >( rhs ) ).swap(*this); - return *this; - } - - template friend class intrusive_ptr; - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - intrusive_ptr(intrusive_ptr && rhs, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty()) - -#else - - intrusive_ptr(intrusive_ptr && rhs) - -#endif - : px( rhs.px ) - { - rhs.px = 0; - } - - template - intrusive_ptr & operator=(intrusive_ptr && rhs) BOOST_NOEXCEPT - { - this_type( static_cast< intrusive_ptr && >( rhs ) ).swap(*this); - return *this; - } - -#endif - - intrusive_ptr & operator=(intrusive_ptr const & rhs) - { - this_type(rhs).swap(*this); - return *this; - } - - intrusive_ptr & operator=(T * rhs) - { - this_type(rhs).swap(*this); - return *this; - } - - void reset() BOOST_NOEXCEPT - { - this_type().swap( *this ); - } - - void reset( T * rhs ) - { - this_type( rhs ).swap( *this ); - } - - void reset( T * rhs, bool add_ref ) - { - this_type( rhs, add_ref ).swap( *this ); - } - - T * get() const BOOST_NOEXCEPT - { - return px; - } - - T * detach() BOOST_NOEXCEPT - { - T * ret = px; - px = 0; - return ret; - } - - T & operator*() const - { - BOOST_ASSERT( px != 0 ); - return *px; - } - - T * operator->() const - { - BOOST_ASSERT( px != 0 ); - return px; - } - -// implicit conversion to "bool" -#include - - void swap(intrusive_ptr & rhs) BOOST_NOEXCEPT - { - T * tmp = px; - px = rhs.px; - rhs.px = tmp; - } - -private: - - T * px; -}; - -template inline bool operator==(intrusive_ptr const & a, intrusive_ptr const & b) -{ - return a.get() == b.get(); -} - -template inline bool operator!=(intrusive_ptr const & a, intrusive_ptr const & b) -{ - return a.get() != b.get(); -} - -template inline bool operator==(intrusive_ptr const & a, U * b) -{ - return a.get() == b; -} - -template inline bool operator!=(intrusive_ptr const & a, U * b) -{ - return a.get() != b; -} - -template inline bool operator==(T * a, intrusive_ptr const & b) -{ - return a == b.get(); -} - -template inline bool operator!=(T * a, intrusive_ptr const & b) -{ - return a != b.get(); -} - -#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 - -// Resolve the ambiguity between our op!= and the one in rel_ops - -template inline bool operator!=(intrusive_ptr const & a, intrusive_ptr const & b) -{ - return a.get() != b.get(); -} - -#endif - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -template inline bool operator==( intrusive_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator==( boost::detail::sp_nullptr_t, intrusive_ptr const & p ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator!=( intrusive_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -template inline bool operator!=( boost::detail::sp_nullptr_t, intrusive_ptr const & p ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -#endif - -template inline bool operator<(intrusive_ptr const & a, intrusive_ptr const & b) -{ - return std::less()(a.get(), b.get()); -} - -template void swap(intrusive_ptr & lhs, intrusive_ptr & rhs) -{ - lhs.swap(rhs); -} - -// mem_fn support - -template T * get_pointer(intrusive_ptr const & p) -{ - return p.get(); -} - -template intrusive_ptr static_pointer_cast(intrusive_ptr const & p) -{ - return static_cast(p.get()); -} - -template intrusive_ptr const_pointer_cast(intrusive_ptr const & p) -{ - return const_cast(p.get()); -} - -template intrusive_ptr dynamic_pointer_cast(intrusive_ptr const & p) -{ - return dynamic_cast(p.get()); -} - -// operator<< - -#if !defined(BOOST_NO_IOSTREAM) - -#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) && (__GNUC__ < 3) ) - -template std::ostream & operator<< (std::ostream & os, intrusive_ptr const & p) -{ - os << p.get(); - return os; -} - -#else - -// in STLport's no-iostreams mode no iostream symbols can be used -#ifndef _STLP_NO_IOSTREAMS - -# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT) -// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL -using std::basic_ostream; -template basic_ostream & operator<< (basic_ostream & os, intrusive_ptr const & p) -# else -template std::basic_ostream & operator<< (std::basic_ostream & os, intrusive_ptr const & p) -# endif -{ - os << p.get(); - return os; -} - -#endif // _STLP_NO_IOSTREAMS - -#endif // __GNUC__ < 3 - -#endif // !defined(BOOST_NO_IOSTREAM) - -// hash_value - -template< class T > struct hash; - -template< class T > std::size_t hash_value( boost::intrusive_ptr const & p ) -{ - return boost::hash< T* >()( p.get() ); -} - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_INTRUSIVE_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/intrusive_ref_counter.hpp b/lib/3rdParty/boost/boost/smart_ptr/intrusive_ref_counter.hpp deleted file mode 100644 index b7587ea7a..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/intrusive_ref_counter.hpp +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright Andrey Semashev 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) - */ -/*! - * \file intrusive_ref_counter.hpp - * \author Andrey Semashev - * \date 12.03.2009 - * - * This header contains a reference counter class for \c intrusive_ptr. - */ - -#ifndef BOOST_SMART_PTR_INTRUSIVE_REF_COUNTER_HPP_INCLUDED_ -#define BOOST_SMART_PTR_INTRUSIVE_REF_COUNTER_HPP_INCLUDED_ - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(_MSC_VER) -#pragma warning(push) -// This is a bogus MSVC warning, which is flagged by friend declarations of intrusive_ptr_add_ref and intrusive_ptr_release in intrusive_ref_counter: -// 'name' : the inline specifier cannot be used when a friend declaration refers to a specialization of a function template -// Note that there is no inline specifier in the declarations. -#pragma warning(disable: 4396) -#endif - -namespace boost { - -namespace sp_adl_block { - -/*! - * \brief Thread unsafe reference counter policy for \c intrusive_ref_counter - * - * The policy instructs the \c intrusive_ref_counter base class to implement - * a reference counter suitable for single threaded use only. Pointers to the same - * object with this kind of reference counter must not be used by different threads. - */ -struct thread_unsafe_counter -{ - typedef unsigned int type; - - static unsigned int load(unsigned int const& counter) BOOST_NOEXCEPT - { - return counter; - } - - static void increment(unsigned int& counter) BOOST_NOEXCEPT - { - ++counter; - } - - static unsigned int decrement(unsigned int& counter) BOOST_NOEXCEPT - { - return --counter; - } -}; - -/*! - * \brief Thread safe reference counter policy for \c intrusive_ref_counter - * - * The policy instructs the \c intrusive_ref_counter base class to implement - * a thread-safe reference counter, if the target platform supports multithreading. - */ -struct thread_safe_counter -{ - typedef boost::detail::atomic_count type; - - static unsigned int load(boost::detail::atomic_count const& counter) BOOST_NOEXCEPT - { - return static_cast< unsigned int >(static_cast< long >(counter)); - } - - static void increment(boost::detail::atomic_count& counter) BOOST_NOEXCEPT - { - ++counter; - } - - static unsigned int decrement(boost::detail::atomic_count& counter) BOOST_NOEXCEPT - { - return static_cast< unsigned int >(--counter); - } -}; - -template< typename DerivedT, typename CounterPolicyT = thread_safe_counter > -class intrusive_ref_counter; - -template< typename DerivedT, typename CounterPolicyT > -void intrusive_ptr_add_ref(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) BOOST_NOEXCEPT; -template< typename DerivedT, typename CounterPolicyT > -void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) BOOST_NOEXCEPT; - -/*! - * \brief A reference counter base class - * - * This base class can be used with user-defined classes to add support - * for \c intrusive_ptr. The class contains a reference counter defined by the \c CounterPolicyT. - * Upon releasing the last \c intrusive_ptr referencing the object - * derived from the \c intrusive_ref_counter class, operator \c delete - * is automatically called on the pointer to the object. - * - * The other template parameter, \c DerivedT, is the user's class that derives from \c intrusive_ref_counter. - */ -template< typename DerivedT, typename CounterPolicyT > -class intrusive_ref_counter -{ -private: - //! Reference counter type - typedef typename CounterPolicyT::type counter_type; - //! Reference counter - mutable counter_type m_ref_counter; - -public: - /*! - * Default constructor - * - * \post use_count() == 0 - */ - intrusive_ref_counter() BOOST_NOEXCEPT : m_ref_counter(0) - { - } - - /*! - * Copy constructor - * - * \post use_count() == 0 - */ - intrusive_ref_counter(intrusive_ref_counter const&) BOOST_NOEXCEPT : m_ref_counter(0) - { - } - - /*! - * Assignment - * - * \post The reference counter is not modified after assignment - */ - intrusive_ref_counter& operator= (intrusive_ref_counter const&) BOOST_NOEXCEPT { return *this; } - - /*! - * \return The reference counter - */ - unsigned int use_count() const BOOST_NOEXCEPT - { - return CounterPolicyT::load(m_ref_counter); - } - -protected: - /*! - * Destructor - */ - BOOST_DEFAULTED_FUNCTION(~intrusive_ref_counter(), {}) - - friend void intrusive_ptr_add_ref< DerivedT, CounterPolicyT >(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) BOOST_NOEXCEPT; - friend void intrusive_ptr_release< DerivedT, CounterPolicyT >(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) BOOST_NOEXCEPT; -}; - -template< typename DerivedT, typename CounterPolicyT > -inline void intrusive_ptr_add_ref(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) BOOST_NOEXCEPT -{ - CounterPolicyT::increment(p->m_ref_counter); -} - -template< typename DerivedT, typename CounterPolicyT > -inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) BOOST_NOEXCEPT -{ - if (CounterPolicyT::decrement(p->m_ref_counter) == 0) - delete static_cast< const DerivedT* >(p); -} - -} // namespace sp_adl_block - -using sp_adl_block::intrusive_ref_counter; -using sp_adl_block::thread_unsafe_counter; -using sp_adl_block::thread_safe_counter; - -} // namespace boost - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif - -#endif // BOOST_SMART_PTR_INTRUSIVE_REF_COUNTER_HPP_INCLUDED_ diff --git a/lib/3rdParty/boost/boost/smart_ptr/make_shared.hpp b/lib/3rdParty/boost/boost/smart_ptr/make_shared.hpp deleted file mode 100644 index 8d0e3ea40..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/make_shared.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED -#define BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED - -// make_shared.hpp -// -// Copyright (c) 2007, 2008, 2012 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 -// -// See http://www.boost.org/libs/smart_ptr/make_shared.html -// for documentation. - -#include - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_SFINAE ) -# include -# include -#endif - -#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/make_shared_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/make_shared_array.hpp deleted file mode 100644 index c48f5070b..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/make_shared_array.hpp +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2012-2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP -#define BOOST_SMART_PTR_MAKE_SHARED_ARRAY_HPP - -#include -#include - -namespace boost { - template - inline typename boost::detail::sp_if_array::type - make_shared(std::size_t size) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - std::size_t n1 = size * boost::detail::array_total::size; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(size, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_init(p2, n1); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_size_array::type - make_shared() { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - N = boost::detail::array_total::size - }; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(&p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_init(p2, N); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_array::type - make_shared(std::size_t size, - const typename boost::detail::array_inner::type& value) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef const T2 T3; - typedef boost::detail::ms_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - M = boost::detail::array_total::size - }; - std::size_t n1 = M * size; - T1* p1 = 0; - T2* p2 = 0; - T3* p3 = reinterpret_cast(&value); - D1 d1; - A1 a1(size, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_init(p2, n1, p3); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_size_array::type - make_shared(const typename boost::detail::array_inner::type& value) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef const T2 T3; - typedef boost::detail::ms_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - M = boost::detail::array_total::size, - N = boost::detail::array_total::size - }; - T1* p1 = 0; - T2* p2 = 0; - T3* p3 = reinterpret_cast(&value); - D1 d1; - A1 a1(&p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_init(p2, N, p3); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_array::type - make_shared_noinit(std::size_t size) { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - std::size_t n1 = size * boost::detail::array_total::size; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(size, &p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_noinit(p2, n1); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } - - template - inline typename boost::detail::sp_if_size_array::type - make_shared_noinit() { - typedef typename boost::detail::array_inner::type T1; - typedef typename boost::detail::array_base::type T2; - typedef boost::detail::ms_allocator A1; - typedef boost::detail::ms_in_allocator_tag D1; - enum { - N = boost::detail::array_total::size - }; - T1* p1 = 0; - T2* p2 = 0; - D1 d1; - A1 a1(&p2); - shared_ptr s1(p1, d1, a1); - A1* a2 = static_cast(s1._internal_get_untyped_deleter()); - a2->set(0); - boost::detail::ms_noinit(p2, N); - a2->set(p2); - p1 = reinterpret_cast(p2); - return shared_ptr(s1, p1); - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/make_shared_object.hpp b/lib/3rdParty/boost/boost/smart_ptr/make_shared_object.hpp deleted file mode 100644 index 3bc78ee9a..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/make_shared_object.hpp +++ /dev/null @@ -1,801 +0,0 @@ -#ifndef BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED -#define BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED - -// make_shared_object.hpp -// -// Copyright (c) 2007, 2008, 2012 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 -// -// See http://www.boost.org/libs/smart_ptr/make_shared.html -// for documentation. - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -namespace detail -{ - -template< std::size_t N, std::size_t A > struct sp_aligned_storage -{ - union type - { - char data_[ N ]; - typename boost::type_with_alignment< A >::type align_; - }; -}; - -template< class T > class sp_ms_deleter -{ -private: - - typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type; - - bool initialized_; - storage_type storage_; - -private: - - void destroy() - { - if( initialized_ ) - { -#if defined( __GNUC__ ) - - // fixes incorrect aliasing warning - T * p = reinterpret_cast< T* >( storage_.data_ ); - p->~T(); - -#else - - reinterpret_cast< T* >( storage_.data_ )->~T(); - -#endif - - initialized_ = false; - } - } - -public: - - sp_ms_deleter() BOOST_NOEXCEPT : initialized_( false ) - { - } - - template explicit sp_ms_deleter( A const & ) BOOST_NOEXCEPT : initialized_( false ) - { - } - - // optimization: do not copy storage_ - sp_ms_deleter( sp_ms_deleter const & ) BOOST_NOEXCEPT : initialized_( false ) - { - } - - ~sp_ms_deleter() - { - destroy(); - } - - void operator()( T * ) - { - destroy(); - } - - static void operator_fn( T* ) // operator() can't be static - { - } - - void * address() BOOST_NOEXCEPT - { - return storage_.data_; - } - - void set_initialized() BOOST_NOEXCEPT - { - initialized_ = true; - } -}; - -template< class T, class A > class sp_as_deleter -{ -private: - - typedef typename sp_aligned_storage< sizeof( T ), ::boost::alignment_of< T >::value >::type storage_type; - - storage_type storage_; - A a_; - bool initialized_; - -private: - - void destroy() - { - if( initialized_ ) - { - T * p = reinterpret_cast< T* >( storage_.data_ ); - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - std::allocator_traits::destroy( a_, p ); - -#else - - p->~T(); - -#endif - - initialized_ = false; - } - } - -public: - - sp_as_deleter( A const & a ) BOOST_NOEXCEPT : a_( a ), initialized_( false ) - { - } - - // optimization: do not copy storage_ - sp_as_deleter( sp_as_deleter const & r ) BOOST_NOEXCEPT : a_( r.a_), initialized_( false ) - { - } - - ~sp_as_deleter() - { - destroy(); - } - - void operator()( T * ) - { - destroy(); - } - - static void operator_fn( T* ) // operator() can't be static - { - } - - void * address() BOOST_NOEXCEPT - { - return storage_.data_; - } - - void set_initialized() BOOST_NOEXCEPT - { - initialized_ = true; - } -}; - -template< class T > struct sp_if_not_array -{ - typedef boost::shared_ptr< T > type; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T > struct sp_if_not_array< T[] > -{ -}; - -#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) - -template< class T, std::size_t N > struct sp_if_not_array< T[N] > -{ -}; - -#endif - -#endif - -} // namespace detail - -#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING ) -# define BOOST_SP_MSD( T ) boost::detail::sp_inplace_tag< boost::detail::sp_ms_deleter< T > >() -#else -# define BOOST_SP_MSD( T ) boost::detail::sp_ms_deleter< T >() -#endif - -// _noinit versions - -template< class T > typename boost::detail::sp_if_not_array< T >::type make_shared_noinit() -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T; - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A > typename boost::detail::sp_if_not_array< T >::type allocate_shared_noinit( A const & a ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T; - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#if !defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -// Variadic templates, rvalue reference - -template< class T, class... Args > typename boost::detail::sp_if_not_array< T >::type make_shared( Args && ... args ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( boost::detail::sp_forward( args )... ); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class... Args > typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, Args && ... args ) -{ -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - typedef typename std::allocator_traits::template rebind_alloc A2; - A2 a2( a ); - - typedef boost::detail::sp_as_deleter< T, A2 > D; - - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), boost::detail::sp_inplace_tag(), a2 ); - -#else - - typedef boost::detail::sp_ms_deleter< T > D; - - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), boost::detail::sp_inplace_tag(), a ); - -#endif - - D * pd = static_cast< D* >( pt._internal_get_untyped_deleter() ); - void * pv = pd->address(); - -#if !defined( BOOST_NO_CXX11_ALLOCATOR ) - - std::allocator_traits::construct( a2, static_cast< T* >( pv ), boost::detail::sp_forward( args )... ); - -#else - - ::new( pv ) T( boost::detail::sp_forward( args )... ); - -#endif - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#else // !defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -// Common zero-argument versions - -template< class T > typename boost::detail::sp_if_not_array< T >::type make_shared() -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T(); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A > typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T(); - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -// C++03 version - -template< class T, class A1 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ), - boost::forward( a7 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ), - boost::forward( a7 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ), - boost::forward( a7 ), - boost::forward( a8 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ), - boost::forward( a7 ), - boost::forward( a8 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > -typename boost::detail::sp_if_not_array< T >::type make_shared( BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8, BOOST_FWD_REF(A9) a9 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ) ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ), - boost::forward( a7 ), - boost::forward( a8 ), - boost::forward( a9 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -template< class T, class A, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > -typename boost::detail::sp_if_not_array< T >::type allocate_shared( A const & a, BOOST_FWD_REF(A1) a1, BOOST_FWD_REF(A2) a2, BOOST_FWD_REF(A3) a3, BOOST_FWD_REF(A4) a4, BOOST_FWD_REF(A5) a5, BOOST_FWD_REF(A6) a6, BOOST_FWD_REF(A7) a7, BOOST_FWD_REF(A8) a8, BOOST_FWD_REF(A9) a9 ) -{ - boost::shared_ptr< T > pt( static_cast< T* >( 0 ), BOOST_SP_MSD( T ), a ); - - boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); - - void * pv = pd->address(); - - ::new( pv ) T( - boost::forward( a1 ), - boost::forward( a2 ), - boost::forward( a3 ), - boost::forward( a4 ), - boost::forward( a5 ), - boost::forward( a6 ), - boost::forward( a7 ), - boost::forward( a8 ), - boost::forward( a9 ) - ); - - pd->set_initialized(); - - T * pt2 = static_cast< T* >( pv ); - - boost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 ); - return boost::shared_ptr< T >( pt, pt2 ); -} - -#endif // !defined( BOOST_NO_CXX11_VARIADIC_TEMPLATES ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -#undef BOOST_SP_MSD - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/make_unique.hpp b/lib/3rdParty/boost/boost/smart_ptr/make_unique.hpp deleted file mode 100644 index d054e3dfe..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/make_unique.hpp +++ /dev/null @@ -1,105 +0,0 @@ -/* -(c) 2014-2015 Glen Joseph Fernandes - - -Distributed under the Boost Software -License, Version 1.0. -http://boost.org/LICENSE_1_0.txt -*/ -#ifndef BOOST_SMART_PTR_MAKE_UNIQUE_HPP -#define BOOST_SMART_PTR_MAKE_UNIQUE_HPP - -#include -#include -#include - -namespace boost { -namespace detail { -template -struct up_if_object { - typedef std::unique_ptr type; -}; - -template -struct up_if_object { }; - -template -struct up_if_object { }; - -template -struct up_if_array { }; - -template -struct up_if_array { - typedef std::unique_ptr type; -}; - -template -struct up_remove_reference { - typedef T type; -}; - -template -struct up_remove_reference { - typedef T type; -}; - -template -struct up_remove_reference { - typedef T type; -}; - -template -struct up_element { }; - -template -struct up_element { - typedef T type; -}; -} /* detail */ - -template -inline typename detail::up_if_object::type make_unique() -{ - return std::unique_ptr(new T()); -} - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) -template -inline typename detail::up_if_object::type - make_unique(Args&&... args) -{ - return std::unique_ptr(new T(std::forward(args)...)); -} -#endif - -template -inline typename detail::up_if_object::type - make_unique(typename detail::up_remove_reference::type&& value) -{ - return std::unique_ptr(new T(std::move(value))); -} - -template -inline typename detail::up_if_object::type make_unique_noinit() -{ - return std::unique_ptr(new T); -} - -template -inline typename detail::up_if_array::type make_unique(std::size_t n) -{ - return std::unique_ptr(new - typename detail::up_element::type[n]()); -} - -template -inline typename detail::up_if_array::type - make_unique_noinit(std::size_t n) -{ - return std::unique_ptr(new - typename detail::up_element::type[n]); -} -} /* boost */ - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/make_unique_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/make_unique_array.hpp deleted file mode 100644 index eb0528e63..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/make_unique_array.hpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_MAKE_UNIQUE_ARRAY_HPP -#define BOOST_SMART_PTR_MAKE_UNIQUE_ARRAY_HPP - -#include -#include - -namespace boost { - template - inline typename boost::detail::up_if_array::type - make_unique(std::size_t size) { - typedef typename boost::detail::array_inner::type U; - return std::unique_ptr(new U[size]()); - } - - template - inline typename boost::detail::up_if_array::type - make_unique_noinit(std::size_t size) { - typedef typename boost::detail::array_inner::type U; - return std::unique_ptr(new U[size]); - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/make_unique_object.hpp b/lib/3rdParty/boost/boost/smart_ptr/make_unique_object.hpp deleted file mode 100644 index 9e6108a36..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/make_unique_object.hpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2014 Glen Joseph Fernandes - * glenfe at live dot com - * - * Distributed under the Boost Software License, - * Version 1.0. (See accompanying file LICENSE_1_0.txt - * or copy at http://boost.org/LICENSE_1_0.txt) - */ -#ifndef BOOST_SMART_PTR_MAKE_UNIQUE_OBJECT_HPP -#define BOOST_SMART_PTR_MAKE_UNIQUE_OBJECT_HPP - -#include -#include -#include -#include - -namespace boost { - template - inline typename boost::detail::up_if_not_array::type - make_unique() { - return std::unique_ptr(new T()); - } - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - template - inline typename boost::detail::up_if_not_array::type - make_unique(Args&&... args) { - return std::unique_ptr(new T(std::forward(args)...)); - } -#endif - - template - inline typename boost::detail::up_if_not_array::type - make_unique(typename add_rvalue_reference::type value) { - return std::unique_ptr(new T(std::move(value))); - } - - template - inline typename boost::detail::up_if_not_array::type - make_unique_noinit() { - return std::unique_ptr(new T); - } -} - -#endif diff --git a/lib/3rdParty/boost/boost/smart_ptr/owner_less.hpp b/lib/3rdParty/boost/boost/smart_ptr/owner_less.hpp deleted file mode 100644 index 6899325bd..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/owner_less.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef BOOST_SMART_PTR_OWNER_LESS_HPP_INCLUDED -#define BOOST_SMART_PTR_OWNER_LESS_HPP_INCLUDED - -// -// owner_less.hpp -// -// Copyright (c) 2008 Frank Mori Hess -// -// 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/smart_ptr/smart_ptr.htm for documentation. -// - -#include - -namespace boost -{ - template class shared_ptr; - template class weak_ptr; - - namespace detail - { - template - struct generic_owner_less : public std::binary_function - { - bool operator()(const T &lhs, const T &rhs) const - { - return lhs.owner_before(rhs); - } - bool operator()(const T &lhs, const U &rhs) const - { - return lhs.owner_before(rhs); - } - bool operator()(const U &lhs, const T &rhs) const - { - return lhs.owner_before(rhs); - } - }; - } // namespace detail - - template struct owner_less; - - template - struct owner_less >: - public detail::generic_owner_less, weak_ptr > - {}; - - template - struct owner_less >: - public detail::generic_owner_less, shared_ptr > - {}; - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_OWNER_LESS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/scoped_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/scoped_array.hpp deleted file mode 100644 index e395e28f8..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/scoped_array.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED -#define BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED - -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 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) -// -// http://www.boost.org/libs/smart_ptr/scoped_array.htm -// - -#include -#include -#include -#include - -#include - -#include // for std::ptrdiff_t - -namespace boost -{ - -// Debug hooks - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_array_constructor_hook(void * p); -void sp_array_destructor_hook(void * p); - -#endif - -// scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to -// is guaranteed, either on destruction of the scoped_array or via an explicit -// reset(). Use shared_array or std::vector if your needs are more complex. - -template class scoped_array // noncopyable -{ -private: - - T * px; - - scoped_array(scoped_array const &); - scoped_array & operator=(scoped_array const &); - - typedef scoped_array this_type; - - void operator==( scoped_array const& ) const; - void operator!=( scoped_array const& ) const; - -public: - - typedef T element_type; - - explicit scoped_array( T * p = 0 ) BOOST_NOEXCEPT : px( p ) - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_array_constructor_hook( px ); -#endif - } - - ~scoped_array() // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_array_destructor_hook( px ); -#endif - boost::checked_array_delete( px ); - } - - void reset(T * p = 0) // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) - { - BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors - this_type(p).swap(*this); - } - - T & operator[](std::ptrdiff_t i) const // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) - { - BOOST_ASSERT( px != 0 ); - BOOST_ASSERT( i >= 0 ); - return px[i]; - } - - T * get() const BOOST_NOEXCEPT - { - return px; - } - -// implicit conversion to "bool" -#include - - void swap(scoped_array & b) BOOST_NOEXCEPT - { - T * tmp = b.px; - b.px = px; - px = tmp; - } -}; - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -template inline bool operator==( scoped_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator==( boost::detail::sp_nullptr_t, scoped_array const & p ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator!=( scoped_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -template inline bool operator!=( boost::detail::sp_nullptr_t, scoped_array const & p ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -#endif - -template inline void swap(scoped_array & a, scoped_array & b) BOOST_NOEXCEPT -{ - a.swap(b); -} - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_SCOPED_ARRAY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/scoped_ptr.hpp b/lib/3rdParty/boost/boost/smart_ptr/scoped_ptr.hpp deleted file mode 100644 index d5d8720f5..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/scoped_ptr.hpp +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED -#define BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED - -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 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) -// -// http://www.boost.org/libs/smart_ptr/scoped_ptr.htm -// - -#include -#include -#include -#include -#include -#include - -#ifndef BOOST_NO_AUTO_PTR -# include // for std::auto_ptr -#endif - -#if defined( BOOST_SP_DISABLE_DEPRECATED ) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - -namespace boost -{ - -// Debug hooks - -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - -void sp_scalar_constructor_hook(void * p); -void sp_scalar_destructor_hook(void * p); - -#endif - -// scoped_ptr mimics a built-in pointer except that it guarantees deletion -// of the object pointed to, either on destruction of the scoped_ptr or via -// an explicit reset(). scoped_ptr is a simple solution for simple needs; -// use shared_ptr or std::auto_ptr if your needs are more complex. - -template class scoped_ptr // noncopyable -{ -private: - - T * px; - - scoped_ptr(scoped_ptr const &); - scoped_ptr & operator=(scoped_ptr const &); - - typedef scoped_ptr this_type; - - void operator==( scoped_ptr const& ) const; - void operator!=( scoped_ptr const& ) const; - -public: - - typedef T element_type; - - explicit scoped_ptr( T * p = 0 ): px( p ) // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_constructor_hook( px ); -#endif - } - -#ifndef BOOST_NO_AUTO_PTR - - explicit scoped_ptr( std::auto_ptr p ) BOOST_NOEXCEPT : px( p.release() ) - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_constructor_hook( px ); -#endif - } - -#endif - - ~scoped_ptr() // never throws - { -#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) - boost::sp_scalar_destructor_hook( px ); -#endif - boost::checked_delete( px ); - } - - void reset(T * p = 0) // never throws - { - BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors - this_type(p).swap(*this); - } - - T & operator*() const // never throws - { - BOOST_ASSERT( px != 0 ); - return *px; - } - - T * operator->() const // never throws - { - BOOST_ASSERT( px != 0 ); - return px; - } - - T * get() const BOOST_NOEXCEPT - { - return px; - } - -// implicit conversion to "bool" -#include - - void swap(scoped_ptr & b) BOOST_NOEXCEPT - { - T * tmp = b.px; - b.px = px; - px = tmp; - } -}; - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -template inline bool operator==( scoped_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator==( boost::detail::sp_nullptr_t, scoped_ptr const & p ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator!=( scoped_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -template inline bool operator!=( boost::detail::sp_nullptr_t, scoped_ptr const & p ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -#endif - -template inline void swap(scoped_ptr & a, scoped_ptr & b) BOOST_NOEXCEPT -{ - a.swap(b); -} - -// get_pointer(p) is a generic way to say p.get() - -template inline T * get_pointer(scoped_ptr const & p) BOOST_NOEXCEPT -{ - return p.get(); -} - -} // namespace boost - -#if defined( BOOST_SP_DISABLE_DEPRECATED ) -#pragma GCC diagnostic pop -#endif - -#endif // #ifndef BOOST_SMART_PTR_SCOPED_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/shared_array.hpp b/lib/3rdParty/boost/boost/smart_ptr/shared_array.hpp deleted file mode 100644 index fd58071be..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/shared_array.hpp +++ /dev/null @@ -1,292 +0,0 @@ -#ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED -#define BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED - -// -// shared_array.hpp -// -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002, 2012 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) -// -// See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation. -// - -#include // for broken compiler workarounds - -#include // TR1 cyclic inclusion fix - -#include -#include - -#include -#include -#include -#include - -#include // for std::ptrdiff_t -#include // for std::swap -#include // for std::less - -namespace boost -{ - -// -// shared_array -// -// shared_array extends shared_ptr to arrays. -// The array pointed to is deleted when the last shared_array pointing to it -// is destroyed or reset. -// - -template class shared_array -{ -private: - - // Borland 5.5.1 specific workarounds - typedef checked_array_deleter deleter; - typedef shared_array this_type; - -public: - - typedef T element_type; - - shared_array() BOOST_NOEXCEPT : px( 0 ), pn() - { - } - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - - shared_array( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT : px( 0 ), pn() - { - } - -#endif - - template - explicit shared_array( Y * p ): px( p ), pn( p, checked_array_deleter() ) - { - boost::detail::sp_assert_convertible< Y[], T[] >(); - } - - // - // Requirements: D's copy constructor must not throw - // - // shared_array will release p by calling d(p) - // - - template shared_array( Y * p, D d ): px( p ), pn( p, d ) - { - boost::detail::sp_assert_convertible< Y[], T[] >(); - } - - // As above, but with allocator. A's copy constructor shall not throw. - - template shared_array( Y * p, D d, A a ): px( p ), pn( p, d, a ) - { - boost::detail::sp_assert_convertible< Y[], T[] >(); - } - -// generated copy constructor, destructor are fine... - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -// ... except in C++0x, move disables the implicit copy - - shared_array( shared_array const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) - { - } - - shared_array( shared_array && r ) BOOST_NOEXCEPT : px( r.px ), pn() - { - pn.swap( r.pn ); - r.px = 0; - } - -#endif - - // conversion - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - shared_array( shared_array const & r, typename boost::detail::sp_enable_if_convertible< Y[], T[] >::type = boost::detail::sp_empty() ) - -#else - - shared_array( shared_array const & r ) - -#endif - BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) // never throws - { - boost::detail::sp_assert_convertible< Y[], T[] >(); - } - - // aliasing - - template< class Y > - shared_array( shared_array const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn ) - { - } - - // assignment - - shared_array & operator=( shared_array const & r ) BOOST_NOEXCEPT - { - this_type( r ).swap( *this ); - return *this; - } - -#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400) - - template - shared_array & operator=( shared_array const & r ) BOOST_NOEXCEPT - { - this_type( r ).swap( *this ); - return *this; - } - -#endif - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - shared_array & operator=( shared_array && r ) BOOST_NOEXCEPT - { - this_type( static_cast< shared_array && >( r ) ).swap( *this ); - return *this; - } - - template - shared_array & operator=( shared_array && r ) BOOST_NOEXCEPT - { - this_type( static_cast< shared_array && >( r ) ).swap( *this ); - return *this; - } - -#endif - - void reset() BOOST_NOEXCEPT - { - this_type().swap( *this ); - } - - template void reset( Y * p ) // Y must be complete - { - BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors - this_type( p ).swap( *this ); - } - - template void reset( Y * p, D d ) - { - this_type( p, d ).swap( *this ); - } - - template void reset( Y * p, D d, A a ) - { - this_type( p, d, a ).swap( *this ); - } - - template void reset( shared_array const & r, element_type * p ) - { - this_type( r, p ).swap( *this ); - } - - T & operator[] (std::ptrdiff_t i) const // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) - { - BOOST_ASSERT(px != 0); - BOOST_ASSERT(i >= 0); - return px[i]; - } - - T * get() const BOOST_NOEXCEPT - { - return px; - } - -// implicit conversion to "bool" -#include - - bool unique() const BOOST_NOEXCEPT - { - return pn.unique(); - } - - long use_count() const BOOST_NOEXCEPT - { - return pn.use_count(); - } - - void swap(shared_array & other) BOOST_NOEXCEPT - { - std::swap(px, other.px); - pn.swap(other.pn); - } - - void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const - { - return pn.get_deleter( ti ); - } - -private: - - template friend class shared_array; - - T * px; // contained pointer - detail::shared_count pn; // reference counter - -}; // shared_array - -template inline bool operator==(shared_array const & a, shared_array const & b) BOOST_NOEXCEPT -{ - return a.get() == b.get(); -} - -template inline bool operator!=(shared_array const & a, shared_array const & b) BOOST_NOEXCEPT -{ - return a.get() != b.get(); -} - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -template inline bool operator==( shared_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator==( boost::detail::sp_nullptr_t, shared_array const & p ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator!=( shared_array const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -template inline bool operator!=( boost::detail::sp_nullptr_t, shared_array const & p ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -#endif - -template inline bool operator<(shared_array const & a, shared_array const & b) BOOST_NOEXCEPT -{ - return std::less()(a.get(), b.get()); -} - -template void swap(shared_array & a, shared_array & b) BOOST_NOEXCEPT -{ - a.swap(b); -} - -template< class D, class T > D * get_deleter( shared_array const & p ) -{ - return static_cast< D * >( p._internal_get_deleter( BOOST_SP_TYPEID(D) ) ); -} - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/shared_ptr.hpp b/lib/3rdParty/boost/boost/smart_ptr/shared_ptr.hpp deleted file mode 100644 index 77f68bebd..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/shared_ptr.hpp +++ /dev/null @@ -1,1094 +0,0 @@ -#ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED -#define BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED - -// -// shared_ptr.hpp -// -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001-2008 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) -// -// See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation. -// - -#include // for broken compiler workarounds - -// In order to avoid circular dependencies with Boost.TR1 -// we make sure that our include of doesn't try to -// pull in the TR1 headers: that's why we use this header -// rather than including directly: -#include // std::auto_ptr - -#include -#include -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_SP_NO_ATOMIC_ACCESS) -#include -#endif - -#include // for std::swap -#include // for std::less -#include // for std::bad_cast -#include // for std::size_t - -#if !defined(BOOST_NO_IOSTREAM) -#if !defined(BOOST_NO_IOSFWD) -#include // for std::basic_ostream -#else -#include -#endif -#endif - -#if defined( BOOST_SP_DISABLE_DEPRECATED ) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - -namespace boost -{ - -template class shared_ptr; -template class weak_ptr; -template class enable_shared_from_this; -class enable_shared_from_raw; - -namespace movelib -{ - - template< class T, class D > class unique_ptr; - -} // namespace movelib - -namespace detail -{ - -// sp_element, element_type - -template< class T > struct sp_element -{ - typedef T type; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T > struct sp_element< T[] > -{ - typedef T type; -}; - -#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) - -template< class T, std::size_t N > struct sp_element< T[N] > -{ - typedef T type; -}; - -#endif - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -// sp_dereference, return type of operator* - -template< class T > struct sp_dereference -{ - typedef T & type; -}; - -template<> struct sp_dereference< void > -{ - typedef void type; -}; - -#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) - -template<> struct sp_dereference< void const > -{ - typedef void type; -}; - -template<> struct sp_dereference< void volatile > -{ - typedef void type; -}; - -template<> struct sp_dereference< void const volatile > -{ - typedef void type; -}; - -#endif // !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T > struct sp_dereference< T[] > -{ - typedef void type; -}; - -#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) - -template< class T, std::size_t N > struct sp_dereference< T[N] > -{ - typedef void type; -}; - -#endif - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -// sp_member_access, return type of operator-> - -template< class T > struct sp_member_access -{ - typedef T * type; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T > struct sp_member_access< T[] > -{ - typedef void type; -}; - -#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) - -template< class T, std::size_t N > struct sp_member_access< T[N] > -{ - typedef void type; -}; - -#endif - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -// sp_array_access, return type of operator[] - -template< class T > struct sp_array_access -{ - typedef void type; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T > struct sp_array_access< T[] > -{ - typedef T & type; -}; - -#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 ) - -template< class T, std::size_t N > struct sp_array_access< T[N] > -{ - typedef T & type; -}; - -#endif - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -// sp_extent, for operator[] index check - -template< class T > struct sp_extent -{ - enum _vt { value = 0 }; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T, std::size_t N > struct sp_extent< T[N] > -{ - enum _vt { value = N }; -}; - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -// enable_shared_from_this support - -template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe ) -{ - if( pe != 0 ) - { - pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) ); - } -} - -template< class X, class Y > inline void sp_enable_shared_from_this( boost::shared_ptr * ppx, Y const * py, boost::enable_shared_from_raw const * pe ); - -#ifdef _MANAGED - -// Avoid C4793, ... causes native code generation - -struct sp_any_pointer -{ - template sp_any_pointer( T* ) {} -}; - -inline void sp_enable_shared_from_this( sp_any_pointer, sp_any_pointer, sp_any_pointer ) -{ -} - -#else // _MANAGED - -inline void sp_enable_shared_from_this( ... ) -{ -} - -#endif // _MANAGED - -#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR ) - -// rvalue auto_ptr support based on a technique by Dave Abrahams - -template< class T, class R > struct sp_enable_if_auto_ptr -{ -}; - -template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R > -{ - typedef R type; -}; - -#endif - -// sp_assert_convertible - -template< class Y, class T > inline void sp_assert_convertible() -{ -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - // static_assert( sp_convertible< Y, T >::value ); - typedef char tmp[ sp_convertible< Y, T >::value? 1: -1 ]; - (void)sizeof( tmp ); - -#else - - T* p = static_cast< Y* >( 0 ); - (void)p; - -#endif -} - -// pointer constructor helper - -template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T > * ppx, Y * p, boost::detail::shared_count & pn ) -{ - boost::detail::shared_count( p ).swap( pn ); - boost::detail::sp_enable_shared_from_this( ppx, p, p ); -} - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[] > * /*ppx*/, Y * p, boost::detail::shared_count & pn ) -{ - sp_assert_convertible< Y[], T[] >(); - boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn ); -} - -template< class T, std::size_t N, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[N] > * /*ppx*/, Y * p, boost::detail::shared_count & pn ) -{ - sp_assert_convertible< Y[N], T[N] >(); - boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn ); -} - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -// deleter constructor helper - -template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T > * ppx, Y * p ) -{ - boost::detail::sp_enable_shared_from_this( ppx, p, p ); -} - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[] > * /*ppx*/, Y * /*p*/ ) -{ - sp_assert_convertible< Y[], T[] >(); -} - -template< class T, std::size_t N, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[N] > * /*ppx*/, Y * /*p*/ ) -{ - sp_assert_convertible< Y[N], T[N] >(); -} - -#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -} // namespace detail - - -// -// shared_ptr -// -// An enhanced relative of scoped_ptr with reference counted copy semantics. -// The object pointed to is deleted when the last shared_ptr pointing to it -// is destroyed or reset. -// - -template class shared_ptr -{ -private: - - // Borland 5.5.1 specific workaround - typedef shared_ptr this_type; - -public: - - typedef typename boost::detail::sp_element< T >::type element_type; - - shared_ptr() BOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+ - { - } - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - - shared_ptr( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT : px( 0 ), pn() // never throws - { - } - -#endif - - template - explicit shared_ptr( Y * p ): px( p ), pn() // Y must be complete - { - boost::detail::sp_pointer_construct( this, p, pn ); - } - - // - // Requirements: D's copy constructor must not throw - // - // shared_ptr will release p by calling d(p) - // - - template shared_ptr( Y * p, D d ): px( p ), pn( p, d ) - { - boost::detail::sp_deleter_construct( this, p ); - } - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - - template shared_ptr( boost::detail::sp_nullptr_t p, D d ): px( p ), pn( p, d ) - { - } - -#endif - - // As above, but with allocator. A's copy constructor shall not throw. - - template shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a ) - { - boost::detail::sp_deleter_construct( this, p ); - } - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - - template shared_ptr( boost::detail::sp_nullptr_t p, D d, A a ): px( p ), pn( p, d, a ) - { - } - -#endif - -// generated copy constructor, destructor are fine... - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -// ... except in C++0x, move disables the implicit copy - - shared_ptr( shared_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) - { - } - -#endif - - template - explicit shared_ptr( weak_ptr const & r ): pn( r.pn ) // may throw - { - boost::detail::sp_assert_convertible< Y, T >(); - - // it is now safe to copy r.px, as pn(r.pn) did not throw - px = r.px; - } - - template - shared_ptr( weak_ptr const & r, boost::detail::sp_nothrow_tag ) - BOOST_NOEXCEPT : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() ) - { - if( !pn.empty() ) - { - px = r.px; - } - } - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - shared_ptr( shared_ptr const & r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) - -#else - - shared_ptr( shared_ptr const & r ) - -#endif - BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) - { - boost::detail::sp_assert_convertible< Y, T >(); - } - - // aliasing - template< class Y > - shared_ptr( shared_ptr const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn ) - { - } - -#ifndef BOOST_NO_AUTO_PTR - - template - explicit shared_ptr( std::auto_ptr & r ): px(r.get()), pn() - { - boost::detail::sp_assert_convertible< Y, T >(); - - Y * tmp = r.get(); - pn = boost::detail::shared_count( r ); - - boost::detail::sp_deleter_construct( this, tmp ); - } - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template - shared_ptr( std::auto_ptr && r ): px(r.get()), pn() - { - boost::detail::sp_assert_convertible< Y, T >(); - - Y * tmp = r.get(); - pn = boost::detail::shared_count( r ); - - boost::detail::sp_deleter_construct( this, tmp ); - } - -#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - - template - explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr::type = 0 ): px( r.get() ), pn() - { - typedef typename Ap::element_type Y; - - boost::detail::sp_assert_convertible< Y, T >(); - - Y * tmp = r.get(); - pn = boost::detail::shared_count( r ); - - boost::detail::sp_deleter_construct( this, tmp ); - } - -#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_NO_AUTO_PTR - -#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template< class Y, class D > - shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn() - { - boost::detail::sp_assert_convertible< Y, T >(); - - typename std::unique_ptr< Y, D >::pointer tmp = r.get(); - pn = boost::detail::shared_count( r ); - - boost::detail::sp_deleter_construct( this, tmp ); - } - -#endif - - template< class Y, class D > - shared_ptr( boost::movelib::unique_ptr< Y, D > r ): px( r.get() ), pn() - { - boost::detail::sp_assert_convertible< Y, T >(); - - typename boost::movelib::unique_ptr< Y, D >::pointer tmp = r.get(); - pn = boost::detail::shared_count( r ); - - boost::detail::sp_deleter_construct( this, tmp ); - } - - // assignment - - shared_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT - { - this_type(r).swap(*this); - return *this; - } - -#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400) - - template - shared_ptr & operator=(shared_ptr const & r) BOOST_NOEXCEPT - { - this_type(r).swap(*this); - return *this; - } - -#endif - -#ifndef BOOST_NO_AUTO_PTR - - template - shared_ptr & operator=( std::auto_ptr & r ) - { - this_type( r ).swap( *this ); - return *this; - } - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template - shared_ptr & operator=( std::auto_ptr && r ) - { - this_type( static_cast< std::auto_ptr && >( r ) ).swap( *this ); - return *this; - } - -#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - - template - typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r ) - { - this_type( r ).swap( *this ); - return *this; - } - -#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif // BOOST_NO_AUTO_PTR - -#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template - shared_ptr & operator=( std::unique_ptr && r ) - { - this_type( static_cast< std::unique_ptr && >( r ) ).swap(*this); - return *this; - } - -#endif - - template - shared_ptr & operator=( boost::movelib::unique_ptr r ) - { - // this_type( static_cast< unique_ptr && >( r ) ).swap( *this ); - - boost::detail::sp_assert_convertible< Y, T >(); - - typename boost::movelib::unique_ptr< Y, D >::pointer p = r.get(); - - shared_ptr tmp; - - tmp.px = p; - tmp.pn = boost::detail::shared_count( r ); - - boost::detail::sp_deleter_construct( &tmp, p ); - - tmp.swap( *this ); - - return *this; - } - -// Move support - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - shared_ptr( shared_ptr && r ) BOOST_NOEXCEPT : px( r.px ), pn() - { - pn.swap( r.pn ); - r.px = 0; - } - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - shared_ptr( shared_ptr && r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) - -#else - - shared_ptr( shared_ptr && r ) - -#endif - BOOST_NOEXCEPT : px( r.px ), pn() - { - boost::detail::sp_assert_convertible< Y, T >(); - - pn.swap( r.pn ); - r.px = 0; - } - - shared_ptr & operator=( shared_ptr && r ) BOOST_NOEXCEPT - { - this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); - return *this; - } - - template - shared_ptr & operator=( shared_ptr && r ) BOOST_NOEXCEPT - { - this_type( static_cast< shared_ptr && >( r ) ).swap( *this ); - return *this; - } - - // aliasing move - template - shared_ptr( shared_ptr && r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn() - { - pn.swap( r.pn ); - r.px = 0; - } - -#endif - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - - shared_ptr & operator=( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT // never throws - { - this_type().swap(*this); - return *this; - } - -#endif - - void reset() BOOST_NOEXCEPT // never throws in 1.30+ - { - this_type().swap(*this); - } - - template void reset( Y * p ) // Y must be complete - { - BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors - this_type( p ).swap( *this ); - } - - template void reset( Y * p, D d ) - { - this_type( p, d ).swap( *this ); - } - - template void reset( Y * p, D d, A a ) - { - this_type( p, d, a ).swap( *this ); - } - - template void reset( shared_ptr const & r, element_type * p ) - { - this_type( r, p ).swap( *this ); - } - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template void reset( shared_ptr && r, element_type * p ) - { - this_type( static_cast< shared_ptr && >( r ), p ).swap( *this ); - } - -#endif - - // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) - typename boost::detail::sp_dereference< T >::type operator* () const - { - BOOST_ASSERT( px != 0 ); - return *px; - } - - // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) - typename boost::detail::sp_member_access< T >::type operator-> () const - { - BOOST_ASSERT( px != 0 ); - return px; - } - - // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT) - typename boost::detail::sp_array_access< T >::type operator[] ( std::ptrdiff_t i ) const - { - BOOST_ASSERT( px != 0 ); - BOOST_ASSERT( i >= 0 && ( i < boost::detail::sp_extent< T >::value || boost::detail::sp_extent< T >::value == 0 ) ); - - return static_cast< typename boost::detail::sp_array_access< T >::type >( px[ i ] ); - } - - element_type * get() const BOOST_NOEXCEPT - { - return px; - } - -// implicit conversion to "bool" -#include - - bool unique() const BOOST_NOEXCEPT - { - return pn.unique(); - } - - long use_count() const BOOST_NOEXCEPT - { - return pn.use_count(); - } - - void swap( shared_ptr & other ) BOOST_NOEXCEPT - { - std::swap(px, other.px); - pn.swap(other.pn); - } - - template bool owner_before( shared_ptr const & rhs ) const BOOST_NOEXCEPT - { - return pn < rhs.pn; - } - - template bool owner_before( weak_ptr const & rhs ) const BOOST_NOEXCEPT - { - return pn < rhs.pn; - } - - void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const BOOST_NOEXCEPT - { - return pn.get_deleter( ti ); - } - - void * _internal_get_untyped_deleter() const BOOST_NOEXCEPT - { - return pn.get_untyped_deleter(); - } - - bool _internal_equiv( shared_ptr const & r ) const BOOST_NOEXCEPT - { - return px == r.px && pn == r.pn; - } - -// Tasteless as this may seem, making all members public allows member templates -// to work in the absence of member template friends. (Matthew Langston) - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - -private: - - template friend class shared_ptr; - template friend class weak_ptr; - - -#endif - - element_type * px; // contained pointer - boost::detail::shared_count pn; // reference counter - -}; // shared_ptr - -template inline bool operator==(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT -{ - return a.get() == b.get(); -} - -template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT -{ - return a.get() != b.get(); -} - -#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96 - -// Resolve the ambiguity between our op!= and the one in rel_ops - -template inline bool operator!=(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT -{ - return a.get() != b.get(); -} - -#endif - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -template inline bool operator==( shared_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator==( boost::detail::sp_nullptr_t, shared_ptr const & p ) BOOST_NOEXCEPT -{ - return p.get() == 0; -} - -template inline bool operator!=( shared_ptr const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -template inline bool operator!=( boost::detail::sp_nullptr_t, shared_ptr const & p ) BOOST_NOEXCEPT -{ - return p.get() != 0; -} - -#endif - -template inline bool operator<(shared_ptr const & a, shared_ptr const & b) BOOST_NOEXCEPT -{ - return a.owner_before( b ); -} - -template inline void swap(shared_ptr & a, shared_ptr & b) BOOST_NOEXCEPT -{ - a.swap(b); -} - -template shared_ptr static_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT -{ - (void) static_cast< T* >( static_cast< U* >( 0 ) ); - - typedef typename shared_ptr::element_type E; - - E * p = static_cast< E* >( r.get() ); - return shared_ptr( r, p ); -} - -template shared_ptr const_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT -{ - (void) const_cast< T* >( static_cast< U* >( 0 ) ); - - typedef typename shared_ptr::element_type E; - - E * p = const_cast< E* >( r.get() ); - return shared_ptr( r, p ); -} - -template shared_ptr dynamic_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT -{ - (void) dynamic_cast< T* >( static_cast< U* >( 0 ) ); - - typedef typename shared_ptr::element_type E; - - E * p = dynamic_cast< E* >( r.get() ); - return p? shared_ptr( r, p ): shared_ptr(); -} - -template shared_ptr reinterpret_pointer_cast( shared_ptr const & r ) BOOST_NOEXCEPT -{ - (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) ); - - typedef typename shared_ptr::element_type E; - - E * p = reinterpret_cast< E* >( r.get() ); - return shared_ptr( r, p ); -} - -// get_pointer() enables boost::mem_fn to recognize shared_ptr - -template inline typename shared_ptr::element_type * get_pointer(shared_ptr const & p) BOOST_NOEXCEPT -{ - return p.get(); -} - -// operator<< - -#if !defined(BOOST_NO_IOSTREAM) - -#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) && (__GNUC__ < 3) ) - -template std::ostream & operator<< (std::ostream & os, shared_ptr const & p) -{ - os << p.get(); - return os; -} - -#else - -// in STLport's no-iostreams mode no iostream symbols can be used -#ifndef _STLP_NO_IOSTREAMS - -# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT) -// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL -using std::basic_ostream; -template basic_ostream & operator<< (basic_ostream & os, shared_ptr const & p) -# else -template std::basic_ostream & operator<< (std::basic_ostream & os, shared_ptr const & p) -# endif -{ - os << p.get(); - return os; -} - -#endif // _STLP_NO_IOSTREAMS - -#endif // __GNUC__ < 3 - -#endif // !defined(BOOST_NO_IOSTREAM) - -// get_deleter - -namespace detail -{ - -#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \ - ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \ - ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) ) - -// g++ 2.9x doesn't allow static_cast(void *) -// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it - -template D * basic_get_deleter(shared_ptr const & p) -{ - void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D)); - return const_cast(static_cast(q)); -} - -#else - -template D * basic_get_deleter( shared_ptr const & p ) BOOST_NOEXCEPT -{ - return static_cast( p._internal_get_deleter(BOOST_SP_TYPEID(D)) ); -} - -#endif - -class esft2_deleter_wrapper -{ -private: - - shared_ptr deleter_; - -public: - - esft2_deleter_wrapper() - { - } - - template< class T > void set_deleter( shared_ptr const & deleter ) - { - deleter_ = deleter; - } - - template D* get_deleter() const BOOST_NOEXCEPT - { - return boost::detail::basic_get_deleter( deleter_ ); - } - - template< class T> void operator()( T* ) - { - BOOST_ASSERT( deleter_.use_count() <= 1 ); - deleter_.reset(); - } -}; - -} // namespace detail - -template D * get_deleter( shared_ptr const & p ) BOOST_NOEXCEPT -{ - D *del = boost::detail::basic_get_deleter(p); - - if(del == 0) - { - boost::detail::esft2_deleter_wrapper *del_wrapper = boost::detail::basic_get_deleter(p); -// The following get_deleter method call is fully qualified because -// older versions of gcc (2.95, 3.2.3) fail to compile it when written del_wrapper->get_deleter() - if(del_wrapper) del = del_wrapper->::boost::detail::esft2_deleter_wrapper::get_deleter(); - } - - return del; -} - -// atomic access - -#if !defined(BOOST_SP_NO_ATOMIC_ACCESS) - -template inline bool atomic_is_lock_free( shared_ptr const * /*p*/ ) BOOST_NOEXCEPT -{ - return false; -} - -template shared_ptr atomic_load( shared_ptr const * p ) -{ - boost::detail::spinlock_pool<2>::scoped_lock lock( p ); - return *p; -} - -template inline shared_ptr atomic_load_explicit( shared_ptr const * p, /*memory_order mo*/ int ) -{ - return atomic_load( p ); -} - -template void atomic_store( shared_ptr * p, shared_ptr r ) -{ - boost::detail::spinlock_pool<2>::scoped_lock lock( p ); - p->swap( r ); -} - -template inline void atomic_store_explicit( shared_ptr * p, shared_ptr r, /*memory_order mo*/ int ) -{ - atomic_store( p, r ); // std::move( r ) -} - -template shared_ptr atomic_exchange( shared_ptr * p, shared_ptr r ) -{ - boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); - - sp.lock(); - p->swap( r ); - sp.unlock(); - - return r; // return std::move( r ) -} - -template shared_ptr atomic_exchange_explicit( shared_ptr * p, shared_ptr r, /*memory_order mo*/ int ) -{ - return atomic_exchange( p, r ); // std::move( r ) -} - -template bool atomic_compare_exchange( shared_ptr * p, shared_ptr * v, shared_ptr w ) -{ - boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p ); - - sp.lock(); - - if( p->_internal_equiv( *v ) ) - { - p->swap( w ); - - sp.unlock(); - - return true; - } - else - { - shared_ptr tmp( *p ); - - sp.unlock(); - - tmp.swap( *v ); - return false; - } -} - -template inline bool atomic_compare_exchange_explicit( shared_ptr * p, shared_ptr * v, shared_ptr w, /*memory_order success*/ int, /*memory_order failure*/ int ) -{ - return atomic_compare_exchange( p, v, w ); // std::move( w ) -} - -#endif // !defined(BOOST_SP_NO_ATOMIC_ACCESS) - -// hash_value - -template< class T > struct hash; - -template< class T > std::size_t hash_value( boost::shared_ptr const & p ) BOOST_NOEXCEPT -{ - return boost::hash< typename boost::shared_ptr::element_type* >()( p.get() ); -} - -} // namespace boost - -#if defined( BOOST_SP_DISABLE_DEPRECATED ) -#pragma GCC diagnostic pop -#endif - -#endif // #ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/smart_ptr/weak_ptr.hpp b/lib/3rdParty/boost/boost/smart_ptr/weak_ptr.hpp deleted file mode 100644 index e3e9ad9bd..000000000 --- a/lib/3rdParty/boost/boost/smart_ptr/weak_ptr.hpp +++ /dev/null @@ -1,253 +0,0 @@ -#ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED -#define BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED - -// -// weak_ptr.hpp -// -// Copyright (c) 2001, 2002, 2003 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) -// -// See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation. -// - -#include // boost.TR1 include order fix -#include -#include - -namespace boost -{ - -template class weak_ptr -{ -private: - - // Borland 5.5.1 specific workarounds - typedef weak_ptr this_type; - -public: - - typedef typename boost::detail::sp_element< T >::type element_type; - - weak_ptr() BOOST_NOEXCEPT : px(0), pn() // never throws in 1.30+ - { - } - -// generated copy constructor, assignment, destructor are fine... - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -// ... except in C++0x, move disables the implicit copy - - weak_ptr( weak_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) - { - } - - weak_ptr & operator=( weak_ptr const & r ) BOOST_NOEXCEPT - { - px = r.px; - pn = r.pn; - return *this; - } - -#endif - -// -// The "obvious" converting constructor implementation: -// -// template -// weak_ptr(weak_ptr const & r): px(r.px), pn(r.pn) // never throws -// { -// } -// -// has a serious problem. -// -// r.px may already have been invalidated. The px(r.px) -// conversion may require access to *r.px (virtual inheritance). -// -// It is not possible to avoid spurious access violations since -// in multithreaded programs r.px may be invalidated at any point. -// - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - weak_ptr( weak_ptr const & r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) - -#else - - weak_ptr( weak_ptr const & r ) - -#endif - BOOST_NOEXCEPT : px(r.lock().get()), pn(r.pn) - { - boost::detail::sp_assert_convertible< Y, T >(); - } - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - weak_ptr( weak_ptr && r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) - -#else - - weak_ptr( weak_ptr && r ) - -#endif - BOOST_NOEXCEPT : px( r.lock().get() ), pn( static_cast< boost::detail::weak_count && >( r.pn ) ) - { - boost::detail::sp_assert_convertible< Y, T >(); - r.px = 0; - } - - // for better efficiency in the T == Y case - weak_ptr( weak_ptr && r ) - BOOST_NOEXCEPT : px( r.px ), pn( static_cast< boost::detail::weak_count && >( r.pn ) ) - { - r.px = 0; - } - - // for better efficiency in the T == Y case - weak_ptr & operator=( weak_ptr && r ) BOOST_NOEXCEPT - { - this_type( static_cast< weak_ptr && >( r ) ).swap( *this ); - return *this; - } - - -#endif - - template -#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) - - weak_ptr( shared_ptr const & r, typename boost::detail::sp_enable_if_convertible::type = boost::detail::sp_empty() ) - -#else - - weak_ptr( shared_ptr const & r ) - -#endif - BOOST_NOEXCEPT : px( r.px ), pn( r.pn ) - { - boost::detail::sp_assert_convertible< Y, T >(); - } - -#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300) - - template - weak_ptr & operator=( weak_ptr const & r ) BOOST_NOEXCEPT - { - boost::detail::sp_assert_convertible< Y, T >(); - - px = r.lock().get(); - pn = r.pn; - - return *this; - } - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - - template - weak_ptr & operator=( weak_ptr && r ) BOOST_NOEXCEPT - { - this_type( static_cast< weak_ptr && >( r ) ).swap( *this ); - return *this; - } - -#endif - - template - weak_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT - { - boost::detail::sp_assert_convertible< Y, T >(); - - px = r.px; - pn = r.pn; - - return *this; - } - -#endif - - shared_ptr lock() const BOOST_NOEXCEPT - { - return shared_ptr( *this, boost::detail::sp_nothrow_tag() ); - } - - long use_count() const BOOST_NOEXCEPT - { - return pn.use_count(); - } - - bool expired() const BOOST_NOEXCEPT - { - return pn.use_count() == 0; - } - - bool _empty() const // extension, not in std::weak_ptr - { - return pn.empty(); - } - - void reset() BOOST_NOEXCEPT // never throws in 1.30+ - { - this_type().swap(*this); - } - - void swap(this_type & other) BOOST_NOEXCEPT - { - std::swap(px, other.px); - pn.swap(other.pn); - } - - template - void _internal_aliasing_assign(weak_ptr const & r, element_type * px2) - { - px = px2; - pn = r.pn; - } - - template bool owner_before( weak_ptr const & rhs ) const BOOST_NOEXCEPT - { - return pn < rhs.pn; - } - - template bool owner_before( shared_ptr const & rhs ) const BOOST_NOEXCEPT - { - return pn < rhs.pn; - } - -// Tasteless as this may seem, making all members public allows member templates -// to work in the absence of member template friends. (Matthew Langston) - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - -private: - - template friend class weak_ptr; - template friend class shared_ptr; - -#endif - - element_type * px; // contained pointer - boost::detail::weak_count pn; // reference counter - -}; // weak_ptr - -template inline bool operator<(weak_ptr const & a, weak_ptr const & b) BOOST_NOEXCEPT -{ - return a.owner_before( b ); -} - -template void swap(weak_ptr & a, weak_ptr & b) BOOST_NOEXCEPT -{ - a.swap(b); -} - -} // namespace boost - -#endif // #ifndef BOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/static_assert.hpp b/lib/3rdParty/boost/boost/static_assert.hpp deleted file mode 100644 index 07d461d49..000000000 --- a/lib/3rdParty/boost/boost/static_assert.hpp +++ /dev/null @@ -1,180 +0,0 @@ -// (C) Copyright John Maddock 2000. -// 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/static_assert for documentation. - -/* - Revision history: - 02 August 2000 - Initial version. -*/ - -#ifndef BOOST_STATIC_ASSERT_HPP -#define BOOST_STATIC_ASSERT_HPP - -#include -#include - -#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) -// -// This is horrible, but it seems to be the only we can shut up the -// "anonymous variadic macros were introduced in C99 [-Wvariadic-macros]" -// warning that get spewed out otherwise in non-C++11 mode. -// -#pragma GCC system_header -#endif - -#ifndef BOOST_NO_CXX11_STATIC_ASSERT -# ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__) -# else -# define BOOST_STATIC_ASSERT_MSG( B, Msg ) static_assert( B, Msg ) -# endif -#else -# define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B ) -#endif - -#ifdef __BORLANDC__ -// -// workaround for buggy integral-constant expression support: -#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS -#endif - -#if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4)) -// gcc 3.3 and 3.4 don't produce good error messages with the default version: -# define BOOST_SA_GCC_WORKAROUND -#endif - -// -// If the compiler issues warnings about old C style casts, -// then enable this: -// -#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))) -# ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) == 0 ? false : true) -# else -# define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true) -# endif -#else -# ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) (bool)(__VA_ARGS__) -# else -# define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x) -# endif -#endif - -#ifndef BOOST_NO_CXX11_STATIC_ASSERT -# ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__) -# else -# define BOOST_STATIC_ASSERT( B ) static_assert(B, #B) -# endif -#else - -namespace boost{ - -// HP aCC cannot deal with missing names for template value parameters -template struct STATIC_ASSERTION_FAILURE; - -template <> struct STATIC_ASSERTION_FAILURE { enum { value = 1 }; }; - -// HP aCC cannot deal with missing names for template value parameters -template struct static_assert_test{}; - -} - -// -// Implicit instantiation requires that all member declarations be -// instantiated, but that the definitions are *not* instantiated. -// -// It's not particularly clear how this applies to enum's or typedefs; -// both are described as declarations [7.1.3] and [7.2] in the standard, -// however some compilers use "delayed evaluation" of one or more of -// these when implicitly instantiating templates. We use typedef declarations -// by default, but try defining BOOST_USE_ENUM_STATIC_ASSERT if the enum -// version gets better results from your compiler... -// -// Implementation: -// Both of these versions rely on sizeof(incomplete_type) generating an error -// message containing the name of the incomplete type. We use -// "STATIC_ASSERTION_FAILURE" as the type name here to generate -// an eye catching error message. The result of the sizeof expression is either -// used as an enum initialiser, or as a template argument depending which version -// is in use... -// Note that the argument to the assert is explicitly cast to bool using old- -// style casts: too many compilers currently have problems with static_cast -// when used inside integral constant expressions. -// -#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS) - -#if defined(BOOST_MSVC) && defined(BOOST_NO_CXX11_VARIADIC_MACROS) -#define BOOST_STATIC_ASSERT( B ) \ - typedef ::boost::static_assert_test<\ - sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\ - BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__) -#elif defined(BOOST_MSVC) -#define BOOST_STATIC_ASSERT(...) \ - typedef ::boost::static_assert_test<\ - sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST (__VA_ARGS__) >)>\ - BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__) -#elif (defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND)) && defined(BOOST_NO_CXX11_VARIADIC_MACROS) -// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error -// instead of warning in case of failure -# define BOOST_STATIC_ASSERT( B ) \ - typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ - [ ::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >::value ] -#elif (defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND)) && !defined(BOOST_NO_CXX11_VARIADIC_MACROS) -// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error -// instead of warning in case of failure -# define BOOST_STATIC_ASSERT(...) \ - typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ - [ ::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >::value ] -#elif defined(__sgi) -// special version for SGI MIPSpro compiler -#define BOOST_STATIC_ASSERT( B ) \ - BOOST_STATIC_CONSTANT(bool, \ - BOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \ - typedef ::boost::static_assert_test<\ - sizeof(::boost::STATIC_ASSERTION_FAILURE< \ - BOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\ - BOOST_JOIN(boost_static_assert_typedef_, __LINE__) -#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3003) -// special version for CodeWarrior <= 8.x -#define BOOST_STATIC_ASSERT( B ) \ - BOOST_STATIC_CONSTANT(int, \ - BOOST_JOIN(boost_static_assert_test_, __LINE__) = \ - sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >) ) -#else -// generic version -# ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT( ... ) \ - typedef ::boost::static_assert_test<\ - sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >)>\ - BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_ATTRIBUTE_UNUSED -# else -# define BOOST_STATIC_ASSERT( B ) \ - typedef ::boost::static_assert_test<\ - sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\ - BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_ATTRIBUTE_UNUSED -# endif -#endif - -#else -// alternative enum based implementation: -# ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT( ... ) \ - enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \ - = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( __VA_ARGS__ ) >) } -# else -# define BOOST_STATIC_ASSERT(B) \ - enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \ - = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) } -# endif -#endif -#endif // defined(BOOST_NO_CXX11_STATIC_ASSERT) - -#endif // BOOST_STATIC_ASSERT_HPP - - diff --git a/lib/3rdParty/boost/boost/system/api_config.hpp b/lib/3rdParty/boost/boost/system/api_config.hpp deleted file mode 100644 index 28b8bece4..000000000 --- a/lib/3rdParty/boost/boost/system/api_config.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// boost/system/api_config.hpp -------------------------------------------------------// - -// Copyright Beman Dawes 2003, 2006, 2010 - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// See http://www.boost.org/libs/system for documentation. - -//--------------------------------------------------------------------------------------// - -// Boost.System calls operating system API functions to implement system error category -// functions. Usually there is no question as to which API is to be used. -// -// In the case of MinGW or Cygwin/MinGW, however, both POSIX and Windows API's are -// available. Chaos ensues if other code thinks one is in use when Boost.System was -// actually built with the other. This header centralizes the API choice and prevents -// user definition of API macros, thus elminating the possibility of mismatches and the -// need to test configurations with little or no practical value. -// - -//--------------------------------------------------------------------------------------// - -#ifndef BOOST_SYSTEM_API_CONFIG_HPP -#define BOOST_SYSTEM_API_CONFIG_HPP - -# if defined(BOOST_POSIX_API) || defined(BOOST_WINDOWS_API) -# error user defined BOOST_POSIX_API or BOOST_WINDOWS_API not supported -# endif - -// BOOST_POSIX_API or BOOST_WINDOWS_API specify which API to use -// Cygwin/MinGW does not predefine _WIN32. -// Standalone MinGW and all other known Windows compilers do predefine _WIN32 -// Compilers that predefine _WIN32 or __MINGW32__ do so for Windows 64-bit builds too. - -# if defined(_WIN32) || defined(__CYGWIN__) // Windows default, including MinGW and Cygwin -# define BOOST_WINDOWS_API -# else -# define BOOST_POSIX_API -# endif - -#endif // BOOST_SYSTEM_API_CONFIG_HPP diff --git a/lib/3rdParty/boost/boost/system/config.hpp b/lib/3rdParty/boost/boost/system/config.hpp deleted file mode 100644 index 14faa6342..000000000 --- a/lib/3rdParty/boost/boost/system/config.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// boost/system/config.hpp -----------------------------------------------------------// - -// Copyright Beman Dawes 2003, 2006 - -// 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/system for documentation. - -#ifndef BOOST_SYSTEM_CONFIG_HPP -#define BOOST_SYSTEM_CONFIG_HPP - -#include -#include -#include // for BOOST_POSIX_API or BOOST_WINDOWS_API - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -// normalize macros ------------------------------------------------------------------// - -#if !defined(BOOST_SYSTEM_DYN_LINK) && !defined(BOOST_SYSTEM_STATIC_LINK) \ - && !defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_ALL_STATIC_LINK) -# define BOOST_SYSTEM_STATIC_LINK -#endif - -#if defined(BOOST_ALL_DYN_LINK) && !defined(BOOST_SYSTEM_DYN_LINK) -# define BOOST_SYSTEM_DYN_LINK -#elif defined(BOOST_ALL_STATIC_LINK) && !defined(BOOST_SYSTEM_STATIC_LINK) -# define BOOST_SYSTEM_STATIC_LINK -#endif - -#if defined(BOOST_SYSTEM_DYN_LINK) && defined(BOOST_SYSTEM_STATIC_LINK) -# error Must not define both BOOST_SYSTEM_DYN_LINK and BOOST_SYSTEM_STATIC_LINK -#endif - -// enable dynamic or static linking as requested --------------------------------------// - -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK) -# if defined(BOOST_SYSTEM_SOURCE) -# define BOOST_SYSTEM_DECL BOOST_SYMBOL_EXPORT -# else -# define BOOST_SYSTEM_DECL BOOST_SYMBOL_IMPORT -# endif -#else -# define BOOST_SYSTEM_DECL -#endif - -// enable automatic library variant selection ----------------------------------------// - -#if !defined(BOOST_SYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_SYSTEM_NO_LIB) -// -// 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_system -// -// If we're importing code from a dll, then tell auto_link.hpp about it: -// -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SYSTEM_DYN_LINK) -# define BOOST_DYN_LINK -#endif -// -// And include the header that does the work: -// -#include -#endif // auto-linking disabled - -#endif // BOOST_SYSTEM_CONFIG_HPP - diff --git a/lib/3rdParty/boost/boost/system/cygwin_error.hpp b/lib/3rdParty/boost/boost/system/cygwin_error.hpp deleted file mode 100644 index ea3528b66..000000000 --- a/lib/3rdParty/boost/boost/system/cygwin_error.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// boost/system/cygwin_error.hpp -------------------------------------------// - -// Copyright Beman Dawes 2007 - -// 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 library home page at http://www.boost.org/libs/system - -#ifndef BOOST_CYGWIN_ERROR_HPP -#define BOOST_CYGWIN_ERROR_HPP - -// This header is effectively empty for compiles on operating systems where -// it is not applicable. - -# ifdef __CYGWIN__ - -#include - -namespace boost -{ - namespace system - { - // To construct an error_code after a API error: - // - // error_code( errno, system_category() ) - - // User code should use the portable "posix" enums for POSIX errors; this - // allows such code to be portable to non-POSIX systems. For the non-POSIX - // errno values that POSIX-based systems typically provide in addition to - // POSIX values, use the system specific enums below. - - namespace cygwin_error - { - enum cygwin_errno - { - no_net = ENONET, - no_package = ENOPKG, - no_share = ENOSHARE - }; - } // namespace cygwin_error - - template<> struct is_error_code_enum - { static const bool value = true; }; - - namespace cygwin_error - { - inline error_code make_error_code( cygwin_errno e ) - { return error_code( e, system_category() ); } - } - } -} - -#endif // __CYGWIN__ - -#endif // BOOST_CYGWIN_ERROR_HPP diff --git a/lib/3rdParty/boost/boost/system/detail/error_code.ipp b/lib/3rdParty/boost/boost/system/detail/error_code.ipp deleted file mode 100644 index 71c60f61d..000000000 --- a/lib/3rdParty/boost/boost/system/detail/error_code.ipp +++ /dev/null @@ -1,467 +0,0 @@ -// error_code support implementation file ----------------------------------// - -// Copyright Beman Dawes 2002, 2006 -// Copyright (c) Microsoft Corporation 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 library home page at http://www.boost.org/libs/system - -//----------------------------------------------------------------------------// - -#include - -#include -#include -#include -#include -#include -#include - -#include // for strerror/strerror_r - -# if defined( BOOST_WINDOWS_API ) -# include -# if !BOOST_PLAT_WINDOWS_RUNTIME -# include -# endif -# ifndef ERROR_INCORRECT_SIZE -# define ERROR_INCORRECT_SIZE ERROR_BAD_ARGUMENTS -# endif -# endif - -//----------------------------------------------------------------------------// -namespace boost -{ - namespace system - { - -namespace -{ - - // standard error categories ---------------------------------------------// - - class generic_error_category : public error_category - { - public: - generic_error_category(){} - const char * name() const BOOST_SYSTEM_NOEXCEPT; - std::string message( int ev ) const; - }; - - class system_error_category : public error_category - { - public: - system_error_category(){} - const char * name() const BOOST_SYSTEM_NOEXCEPT; - std::string message( int ev ) const; - error_condition default_error_condition( int ev ) const BOOST_SYSTEM_NOEXCEPT; - }; - - // generic_error_category implementation ---------------------------------// - - const char * generic_error_category::name() const BOOST_SYSTEM_NOEXCEPT - { - return "generic"; - } - - std::string generic_error_category::message( int ev ) const - { - using namespace boost::system::errc; -#if defined(__PGI) - using boost::system::errc::invalid_argument; -#endif - - static std::string unknown_err( "Unknown error" ); - // strerror_r is preferred because it is always thread safe, - // however, we fallback to strerror in certain cases because: - // -- Windows doesn't provide strerror_r. - // -- HP and Sun do provide strerror_r on newer systems, but there is - // no way to tell if is available at runtime and in any case their - // versions of strerror are thread safe anyhow. - // -- Linux only sometimes provides strerror_r. - // -- Tru64 provides strerror_r only when compiled -pthread. - // -- VMS doesn't provide strerror_r, but on this platform, strerror is - // thread safe. - # if defined(BOOST_WINDOWS_API) || defined(__hpux) || defined(__sun)\ - || (defined(__linux) && (!defined(__USE_XOPEN2K) || defined(BOOST_SYSTEM_USE_STRERROR)))\ - || (defined(__osf__) && !defined(_REENTRANT))\ - || (defined(__INTEGRITY))\ - || (defined(__vms))\ - || (defined(__QNXNTO__)) - const char * c_str = std::strerror( ev ); - return c_str - ? std::string( c_str ) - : unknown_err; - # else // use strerror_r - char buf[64]; - char * bp = buf; - std::size_t sz = sizeof(buf); - # if defined(__CYGWIN__) || defined(__USE_GNU) - // Oddball version of strerror_r - const char * c_str = strerror_r( ev, bp, sz ); - return c_str - ? std::string( c_str ) - : unknown_err; - # else - // POSIX version of strerror_r - int result; - for (;;) - { - // strerror_r returns 0 on success, otherwise ERANGE if buffer too small, - // invalid_argument if ev not a valid error number - # if defined (__sgi) - const char * c_str = strerror( ev ); - result = 0; - return c_str - ? std::string( c_str ) - : unknown_err; - # else - result = strerror_r( ev, bp, sz ); - # endif - if (result == 0 ) - break; - else - { - # if defined(__linux) - // Linux strerror_r returns -1 on error, with error number in errno - result = errno; - # endif - if ( result != ERANGE ) break; - if ( sz > sizeof(buf) ) std::free( bp ); - sz *= 2; - if ( (bp = static_cast(std::malloc( sz ))) == 0 ) - return std::string( "ENOMEM" ); - } - } - std::string msg; -# ifndef BOOST_NO_EXCEPTIONS - try -# endif - { - msg = ( ( result == invalid_argument ) ? "Unknown error" : bp ); - } - -# ifndef BOOST_NO_EXCEPTIONS - // See ticket #2098 - catch(...) - { - // just eat the exception - } -# endif - - if ( sz > sizeof(buf) ) std::free( bp ); - sz = 0; - return msg; - # endif // else POSIX version of strerror_r - # endif // else use strerror_r - } - // system_error_category implementation --------------------------------// - - const char * system_error_category::name() const BOOST_SYSTEM_NOEXCEPT - { - return "system"; - } - - error_condition system_error_category::default_error_condition( int ev ) const BOOST_SYSTEM_NOEXCEPT - { - using namespace boost::system::errc; -#if defined(__PGI) - using boost::system::errc::invalid_argument; -#endif - -# if defined(BOOST_WINDOWS_API) -# if defined(WINAPI_FAMILY) && ((WINAPI_FAMILY & WINAPI_PARTITION_APP) != 0) - // When using the Windows Runtime, most system errors are reported as HRESULTs. - // We want to map the common Win32 errors to their equivalent error condition, - // whether or not they are reported via an HRESULT. - if ( ev < 0 ) // Check for failed HRESULTs only. - if ( HRESULT_FACILITY( ev ) == FACILITY_WIN32 ) - ev = HRESULT_CODE( ev ); -# endif -# endif - - switch ( ev ) - { - case 0: return make_error_condition( success ); -# if defined(BOOST_POSIX_API) - // POSIX-like O/S -> posix_errno decode table ---------------------------// - case E2BIG: return make_error_condition( argument_list_too_long ); - case EACCES: return make_error_condition( permission_denied ); - case EADDRINUSE: return make_error_condition( address_in_use ); - case EADDRNOTAVAIL: return make_error_condition( address_not_available ); - case EAFNOSUPPORT: return make_error_condition( address_family_not_supported ); - case EAGAIN: return make_error_condition( resource_unavailable_try_again ); -# if EALREADY != EBUSY // EALREADY and EBUSY are the same on QNX Neutrino - case EALREADY: return make_error_condition( connection_already_in_progress ); -# endif - case EBADF: return make_error_condition( bad_file_descriptor ); - case EBADMSG: return make_error_condition( bad_message ); - case EBUSY: return make_error_condition( device_or_resource_busy ); - case ECANCELED: return make_error_condition( operation_canceled ); - case ECHILD: return make_error_condition( no_child_process ); - case ECONNABORTED: return make_error_condition( connection_aborted ); - case ECONNREFUSED: return make_error_condition( connection_refused ); - case ECONNRESET: return make_error_condition( connection_reset ); - case EDEADLK: return make_error_condition( resource_deadlock_would_occur ); - case EDESTADDRREQ: return make_error_condition( destination_address_required ); - case EDOM: return make_error_condition( argument_out_of_domain ); - case EEXIST: return make_error_condition( file_exists ); - case EFAULT: return make_error_condition( bad_address ); - case EFBIG: return make_error_condition( file_too_large ); - case EHOSTUNREACH: return make_error_condition( host_unreachable ); - case EIDRM: return make_error_condition( identifier_removed ); - case EILSEQ: return make_error_condition( illegal_byte_sequence ); - case EINPROGRESS: return make_error_condition( operation_in_progress ); - case EINTR: return make_error_condition( interrupted ); - case EINVAL: return make_error_condition( invalid_argument ); - case EIO: return make_error_condition( io_error ); - case EISCONN: return make_error_condition( already_connected ); - case EISDIR: return make_error_condition( is_a_directory ); - case ELOOP: return make_error_condition( too_many_symbolic_link_levels ); - case EMFILE: return make_error_condition( too_many_files_open ); - case EMLINK: return make_error_condition( too_many_links ); - case EMSGSIZE: return make_error_condition( message_size ); - case ENAMETOOLONG: return make_error_condition( filename_too_long ); - case ENETDOWN: return make_error_condition( network_down ); - case ENETRESET: return make_error_condition( network_reset ); - case ENETUNREACH: return make_error_condition( network_unreachable ); - case ENFILE: return make_error_condition( too_many_files_open_in_system ); - case ENOBUFS: return make_error_condition( no_buffer_space ); - case ENODATA: return make_error_condition( no_message_available ); - case ENODEV: return make_error_condition( no_such_device ); - case ENOENT: return make_error_condition( no_such_file_or_directory ); - case ENOEXEC: return make_error_condition( executable_format_error ); - case ENOLCK: return make_error_condition( no_lock_available ); - case ENOLINK: return make_error_condition( no_link ); - case ENOMEM: return make_error_condition( not_enough_memory ); - case ENOMSG: return make_error_condition( no_message ); - case ENOPROTOOPT: return make_error_condition( no_protocol_option ); - case ENOSPC: return make_error_condition( no_space_on_device ); - case ENOSR: return make_error_condition( no_stream_resources ); - case ENOSTR: return make_error_condition( not_a_stream ); - case ENOSYS: return make_error_condition( function_not_supported ); - case ENOTCONN: return make_error_condition( not_connected ); - case ENOTDIR: return make_error_condition( not_a_directory ); - # if ENOTEMPTY != EEXIST // AIX treats ENOTEMPTY and EEXIST as the same value - case ENOTEMPTY: return make_error_condition( directory_not_empty ); - # endif // ENOTEMPTY != EEXIST - # if ENOTRECOVERABLE != ECONNRESET // the same on some Broadcom chips - case ENOTRECOVERABLE: return make_error_condition( state_not_recoverable ); - # endif // ENOTRECOVERABLE != ECONNRESET - case ENOTSOCK: return make_error_condition( not_a_socket ); - case ENOTSUP: return make_error_condition( not_supported ); - case ENOTTY: return make_error_condition( inappropriate_io_control_operation ); - case ENXIO: return make_error_condition( no_such_device_or_address ); - # if EOPNOTSUPP != ENOTSUP - case EOPNOTSUPP: return make_error_condition( operation_not_supported ); - # endif // EOPNOTSUPP != ENOTSUP - case EOVERFLOW: return make_error_condition( value_too_large ); - # if EOWNERDEAD != ECONNABORTED // the same on some Broadcom chips - case EOWNERDEAD: return make_error_condition( owner_dead ); - # endif // EOWNERDEAD != ECONNABORTED - case EPERM: return make_error_condition( operation_not_permitted ); - case EPIPE: return make_error_condition( broken_pipe ); - case EPROTO: return make_error_condition( protocol_error ); - case EPROTONOSUPPORT: return make_error_condition( protocol_not_supported ); - case EPROTOTYPE: return make_error_condition( wrong_protocol_type ); - case ERANGE: return make_error_condition( result_out_of_range ); - case EROFS: return make_error_condition( read_only_file_system ); - case ESPIPE: return make_error_condition( invalid_seek ); - case ESRCH: return make_error_condition( no_such_process ); - case ETIME: return make_error_condition( stream_timeout ); - case ETIMEDOUT: return make_error_condition( timed_out ); - case ETXTBSY: return make_error_condition( text_file_busy ); - # if EAGAIN != EWOULDBLOCK - case EWOULDBLOCK: return make_error_condition( operation_would_block ); - # endif // EAGAIN != EWOULDBLOCK - case EXDEV: return make_error_condition( cross_device_link ); - #else - // Windows system -> posix_errno decode table ---------------------------// - // see WinError.h comments for descriptions of errors - case ERROR_ACCESS_DENIED: return make_error_condition( permission_denied ); - case ERROR_ALREADY_EXISTS: return make_error_condition( file_exists ); - case ERROR_BAD_UNIT: return make_error_condition( no_such_device ); - case ERROR_BUFFER_OVERFLOW: return make_error_condition( filename_too_long ); - case ERROR_BUSY: return make_error_condition( device_or_resource_busy ); - case ERROR_BUSY_DRIVE: return make_error_condition( device_or_resource_busy ); - case ERROR_CANNOT_MAKE: return make_error_condition( permission_denied ); - case ERROR_CANTOPEN: return make_error_condition( io_error ); - case ERROR_CANTREAD: return make_error_condition( io_error ); - case ERROR_CANTWRITE: return make_error_condition( io_error ); - case ERROR_CURRENT_DIRECTORY: return make_error_condition( permission_denied ); - case ERROR_DEV_NOT_EXIST: return make_error_condition( no_such_device ); - case ERROR_DEVICE_IN_USE: return make_error_condition( device_or_resource_busy ); - case ERROR_DIR_NOT_EMPTY: return make_error_condition( directory_not_empty ); - case ERROR_DIRECTORY: return make_error_condition( invalid_argument ); // WinError.h: "The directory name is invalid" - case ERROR_DISK_FULL: return make_error_condition( no_space_on_device ); - case ERROR_FILE_EXISTS: return make_error_condition( file_exists ); - case ERROR_FILE_NOT_FOUND: return make_error_condition( no_such_file_or_directory ); - case ERROR_HANDLE_DISK_FULL: return make_error_condition( no_space_on_device ); - case ERROR_INVALID_ACCESS: return make_error_condition( permission_denied ); - case ERROR_INVALID_DRIVE: return make_error_condition( no_such_device ); - case ERROR_INVALID_FUNCTION: return make_error_condition( function_not_supported ); - case ERROR_INVALID_HANDLE: return make_error_condition( invalid_argument ); - case ERROR_INVALID_NAME: return make_error_condition( invalid_argument ); - case ERROR_LOCK_VIOLATION: return make_error_condition( no_lock_available ); - case ERROR_LOCKED: return make_error_condition( no_lock_available ); - case ERROR_NEGATIVE_SEEK: return make_error_condition( invalid_argument ); - case ERROR_NOACCESS: return make_error_condition( permission_denied ); - case ERROR_NOT_ENOUGH_MEMORY: return make_error_condition( not_enough_memory ); - case ERROR_NOT_READY: return make_error_condition( resource_unavailable_try_again ); - case ERROR_NOT_SAME_DEVICE: return make_error_condition( cross_device_link ); - case ERROR_OPEN_FAILED: return make_error_condition( io_error ); - case ERROR_OPEN_FILES: return make_error_condition( device_or_resource_busy ); - case ERROR_OPERATION_ABORTED: return make_error_condition( operation_canceled ); - case ERROR_OUTOFMEMORY: return make_error_condition( not_enough_memory ); - case ERROR_PATH_NOT_FOUND: return make_error_condition( no_such_file_or_directory ); - case ERROR_READ_FAULT: return make_error_condition( io_error ); - case ERROR_RETRY: return make_error_condition( resource_unavailable_try_again ); - case ERROR_SEEK: return make_error_condition( io_error ); - case ERROR_SHARING_VIOLATION: return make_error_condition( permission_denied ); - case ERROR_TOO_MANY_OPEN_FILES: return make_error_condition( too_many_files_open ); - case ERROR_WRITE_FAULT: return make_error_condition( io_error ); - case ERROR_WRITE_PROTECT: return make_error_condition( permission_denied ); - case WSAEACCES: return make_error_condition( permission_denied ); - case WSAEADDRINUSE: return make_error_condition( address_in_use ); - case WSAEADDRNOTAVAIL: return make_error_condition( address_not_available ); - case WSAEAFNOSUPPORT: return make_error_condition( address_family_not_supported ); - case WSAEALREADY: return make_error_condition( connection_already_in_progress ); - case WSAEBADF: return make_error_condition( bad_file_descriptor ); - case WSAECONNABORTED: return make_error_condition( connection_aborted ); - case WSAECONNREFUSED: return make_error_condition( connection_refused ); - case WSAECONNRESET: return make_error_condition( connection_reset ); - case WSAEDESTADDRREQ: return make_error_condition( destination_address_required ); - case WSAEFAULT: return make_error_condition( bad_address ); - case WSAEHOSTUNREACH: return make_error_condition( host_unreachable ); - case WSAEINPROGRESS: return make_error_condition( operation_in_progress ); - case WSAEINTR: return make_error_condition( interrupted ); - case WSAEINVAL: return make_error_condition( invalid_argument ); - case WSAEISCONN: return make_error_condition( already_connected ); - case WSAEMFILE: return make_error_condition( too_many_files_open ); - case WSAEMSGSIZE: return make_error_condition( message_size ); - case WSAENAMETOOLONG: return make_error_condition( filename_too_long ); - case WSAENETDOWN: return make_error_condition( network_down ); - case WSAENETRESET: return make_error_condition( network_reset ); - case WSAENETUNREACH: return make_error_condition( network_unreachable ); - case WSAENOBUFS: return make_error_condition( no_buffer_space ); - case WSAENOPROTOOPT: return make_error_condition( no_protocol_option ); - case WSAENOTCONN: return make_error_condition( not_connected ); - case WSAENOTSOCK: return make_error_condition( not_a_socket ); - case WSAEOPNOTSUPP: return make_error_condition( operation_not_supported ); - case WSAEPROTONOSUPPORT: return make_error_condition( protocol_not_supported ); - case WSAEPROTOTYPE: return make_error_condition( wrong_protocol_type ); - case WSAETIMEDOUT: return make_error_condition( timed_out ); - case WSAEWOULDBLOCK: return make_error_condition( operation_would_block ); - #endif - default: return error_condition( ev, system_category() ); - } - } - -# if !defined( BOOST_WINDOWS_API ) - - std::string system_error_category::message( int ev ) const - { - return generic_category().message( ev ); - } -# else - - std::string system_error_category::message( int ev ) const - { -#if defined(UNDER_CE) || BOOST_PLAT_WINDOWS_RUNTIME || defined(BOOST_NO_ANSI_APIS) - std::wstring buf(128, wchar_t()); - for (;;) - { - DWORD retval = ::FormatMessageW( - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - ev, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - &buf[0], - buf.size(), - NULL - ); - - if (retval > 0) - { - buf.resize(retval); - break; - } - else if ( ::GetLastError() != ERROR_INSUFFICIENT_BUFFER ) - { - return std::string("Unknown error"); - } - else - { - buf.resize(buf.size() + buf.size() / 2); - } - } - - int num_chars = (buf.size() + 1) * 2; - LPSTR narrow_buffer = (LPSTR)_alloca( num_chars ); - if (::WideCharToMultiByte(CP_ACP, 0, buf.c_str(), -1, narrow_buffer, num_chars, NULL, NULL) == 0) - { - return std::string("Unknown error"); - } - - std::string str( narrow_buffer ); -#else - LPVOID lpMsgBuf = 0; - DWORD retval = ::FormatMessageA( - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - ev, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - (LPSTR) &lpMsgBuf, - 0, - NULL - ); - detail::local_free_on_destruction lfod(lpMsgBuf); - if (retval == 0) - return std::string("Unknown error"); - - std::string str( static_cast(lpMsgBuf) ); -# endif - while ( str.size() - && (str[str.size()-1] == '\n' || str[str.size()-1] == '\r') ) - str.erase( str.size()-1 ); - if ( str.size() && str[str.size()-1] == '.' ) - { str.erase( str.size()-1 ); } - return str; - } -# endif - -} // unnamed namespace - - -# ifndef BOOST_SYSTEM_NO_DEPRECATED - BOOST_SYSTEM_DECL error_code throws; // "throw on error" special error_code; - // note that it doesn't matter if this - // isn't initialized before use since - // the only use is to take its - // address for comparison purposes -# endif - -# ifdef BOOST_ERROR_CODE_HEADER_ONLY -# define BOOST_SYSTEM_LINKAGE inline -# else -# define BOOST_SYSTEM_LINKAGE BOOST_SYSTEM_DECL -# endif - - BOOST_SYSTEM_LINKAGE const error_category & system_category() BOOST_SYSTEM_NOEXCEPT - { - static const system_error_category system_category_const; - return system_category_const; - } - - BOOST_SYSTEM_LINKAGE const error_category & generic_category() BOOST_SYSTEM_NOEXCEPT - { - static const generic_error_category generic_category_const; - return generic_category_const; - } - - } // namespace system -} // namespace boost diff --git a/lib/3rdParty/boost/boost/system/detail/local_free_on_destruction.hpp b/lib/3rdParty/boost/boost/system/detail/local_free_on_destruction.hpp deleted file mode 100644 index 110024f3d..000000000 --- a/lib/3rdParty/boost/boost/system/detail/local_free_on_destruction.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// local_free_on_exit.hpp ------------------------------------------------------------// - -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2010 Beman Dawes - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -// This is derived from boost/asio/detail/local_free_on_block_exit.hpp to avoid -// a dependency on asio. Thanks to Chris Kohlhoff for pointing it out. - -#ifndef BOOST_SYSTEM_LOCAL_FREE_ON_EXIT_HPP -#define BOOST_SYSTEM_LOCAL_FREE_ON_EXIT_HPP - -namespace boost { -namespace system { -namespace detail { - -class local_free_on_destruction -{ -public: - explicit local_free_on_destruction(void* p) - : p_(p) {} - - ~local_free_on_destruction() - { - ::LocalFree(p_); - } - -private: - void* p_; - local_free_on_destruction(const local_free_on_destruction&); // = deleted - local_free_on_destruction& operator=(const local_free_on_destruction&); // = deleted -}; - -} // namespace detail -} // namespace system -} // namespace boost - -#endif // BOOST_SYSTEM_LOCAL_FREE_ON_EXIT_HPP diff --git a/lib/3rdParty/boost/boost/system/error_code.hpp b/lib/3rdParty/boost/boost/system/error_code.hpp deleted file mode 100644 index d419f3701..000000000 --- a/lib/3rdParty/boost/boost/system/error_code.hpp +++ /dev/null @@ -1,520 +0,0 @@ -// boost/system/error_code.hpp ---------------------------------------------// - -// Copyright Beman Dawes 2006, 2007 -// Copyright Christoper Kohlhoff 2007 - -// 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 library home page at http://www.boost.org/libs/system - -#ifndef BOOST_ERROR_CODE_HPP -#define BOOST_ERROR_CODE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// TODO: undef these macros if not already defined -#include - -#if !defined(BOOST_POSIX_API) && !defined(BOOST_WINDOWS_API) -# error BOOST_POSIX_API or BOOST_WINDOWS_API must be defined -#endif - -#include // must be the last #include - -#ifndef BOOST_SYSTEM_NOEXCEPT -#define BOOST_SYSTEM_NOEXCEPT BOOST_NOEXCEPT -#endif - -namespace boost -{ - namespace system - { - - class error_code; - class error_condition; - - // "Concept" helpers ---------------------------------------------------// - - template< class T > - struct is_error_code_enum { static const bool value = false; }; - - template< class T > - struct is_error_condition_enum { static const bool value = false; }; - - // generic error_conditions --------------------------------------------// - - namespace errc - { - enum errc_t - { - success = 0, - address_family_not_supported = EAFNOSUPPORT, - address_in_use = EADDRINUSE, - address_not_available = EADDRNOTAVAIL, - already_connected = EISCONN, - argument_list_too_long = E2BIG, - argument_out_of_domain = EDOM, - bad_address = EFAULT, - bad_file_descriptor = EBADF, - bad_message = EBADMSG, - broken_pipe = EPIPE, - connection_aborted = ECONNABORTED, - connection_already_in_progress = EALREADY, - connection_refused = ECONNREFUSED, - connection_reset = ECONNRESET, - cross_device_link = EXDEV, - destination_address_required = EDESTADDRREQ, - device_or_resource_busy = EBUSY, - directory_not_empty = ENOTEMPTY, - executable_format_error = ENOEXEC, - file_exists = EEXIST, - file_too_large = EFBIG, - filename_too_long = ENAMETOOLONG, - function_not_supported = ENOSYS, - host_unreachable = EHOSTUNREACH, - identifier_removed = EIDRM, - illegal_byte_sequence = EILSEQ, - inappropriate_io_control_operation = ENOTTY, - interrupted = EINTR, - invalid_argument = EINVAL, - invalid_seek = ESPIPE, - io_error = EIO, - is_a_directory = EISDIR, - message_size = EMSGSIZE, - network_down = ENETDOWN, - network_reset = ENETRESET, - network_unreachable = ENETUNREACH, - no_buffer_space = ENOBUFS, - no_child_process = ECHILD, - no_link = ENOLINK, - no_lock_available = ENOLCK, - no_message_available = ENODATA, - no_message = ENOMSG, - no_protocol_option = ENOPROTOOPT, - no_space_on_device = ENOSPC, - no_stream_resources = ENOSR, - no_such_device_or_address = ENXIO, - no_such_device = ENODEV, - no_such_file_or_directory = ENOENT, - no_such_process = ESRCH, - not_a_directory = ENOTDIR, - not_a_socket = ENOTSOCK, - not_a_stream = ENOSTR, - not_connected = ENOTCONN, - not_enough_memory = ENOMEM, - not_supported = ENOTSUP, - operation_canceled = ECANCELED, - operation_in_progress = EINPROGRESS, - operation_not_permitted = EPERM, - operation_not_supported = EOPNOTSUPP, - operation_would_block = EWOULDBLOCK, - owner_dead = EOWNERDEAD, - permission_denied = EACCES, - protocol_error = EPROTO, - protocol_not_supported = EPROTONOSUPPORT, - read_only_file_system = EROFS, - resource_deadlock_would_occur = EDEADLK, - resource_unavailable_try_again = EAGAIN, - result_out_of_range = ERANGE, - state_not_recoverable = ENOTRECOVERABLE, - stream_timeout = ETIME, - text_file_busy = ETXTBSY, - timed_out = ETIMEDOUT, - too_many_files_open_in_system = ENFILE, - too_many_files_open = EMFILE, - too_many_links = EMLINK, - too_many_symbolic_link_levels = ELOOP, - value_too_large = EOVERFLOW, - wrong_protocol_type = EPROTOTYPE - }; - - } // namespace errc - -# ifndef BOOST_SYSTEM_NO_DEPRECATED - namespace posix = errc; - namespace posix_error = errc; -# endif - - template<> struct is_error_condition_enum - { static const bool value = true; }; - - - // ----------------------------------------------------------------------// - - // Operating system specific interfaces --------------------------------// - - - // The interface is divided into general and system-specific portions to - // meet these requirements: - // - // * Code calling an operating system API can create an error_code with - // a single category (system_category), even for POSIX-like operating - // systems that return some POSIX errno values and some native errno - // values. This code should not have to pay the cost of distinguishing - // between categories, since it is not yet known if that is needed. - // - // * Users wishing to write system-specific code should be given enums for - // at least the common error cases. - // - // * System specific code should fail at compile time if moved to another - // operating system. - - // The system specific portions of the interface are located in headers - // with names reflecting the operating system. For example, - // - // - // - // - // - // These headers are effectively empty for compiles on operating systems - // where they are not applicable. - - // ----------------------------------------------------------------------// - - // class error_category ------------------------------------------------// - - class error_category : public noncopyable - { - public: - virtual ~error_category(){} - - virtual const char * name() const BOOST_SYSTEM_NOEXCEPT = 0; - virtual std::string message( int ev ) const = 0; - inline virtual error_condition default_error_condition( int ev ) const BOOST_SYSTEM_NOEXCEPT; - inline virtual bool equivalent( int code, - const error_condition & condition ) const BOOST_SYSTEM_NOEXCEPT; - inline virtual bool equivalent( const error_code & code, - int condition ) const BOOST_SYSTEM_NOEXCEPT; - - bool operator==(const error_category & rhs) const BOOST_SYSTEM_NOEXCEPT { return this == &rhs; } - bool operator!=(const error_category & rhs) const BOOST_SYSTEM_NOEXCEPT { return this != &rhs; } - bool operator<( const error_category & rhs ) const BOOST_SYSTEM_NOEXCEPT - { - return std::less()( this, &rhs ); - } - }; - - // predefined error categories -----------------------------------------// - -# ifdef BOOST_ERROR_CODE_HEADER_ONLY - inline const error_category & system_category() BOOST_SYSTEM_NOEXCEPT; - inline const error_category & generic_category() BOOST_SYSTEM_NOEXCEPT; -#else - BOOST_SYSTEM_DECL const error_category & system_category() BOOST_SYSTEM_NOEXCEPT; - BOOST_SYSTEM_DECL const error_category & generic_category() BOOST_SYSTEM_NOEXCEPT; -#endif - // deprecated synonyms --------------------------------------------------// - -# ifndef BOOST_SYSTEM_NO_DEPRECATED - inline const error_category & get_system_category() { return system_category(); } - inline const error_category & get_generic_category() { return generic_category(); } - inline const error_category & get_posix_category() { return generic_category(); } - static const error_category & posix_category = generic_category(); - static const error_category & errno_ecat = generic_category(); - static const error_category & native_ecat = system_category(); -# endif - - // class error_condition -----------------------------------------------// - - // error_conditions are portable, error_codes are system or library specific - - class error_condition - { - public: - - // constructors: - error_condition() BOOST_SYSTEM_NOEXCEPT : m_val(0), m_cat(&generic_category()) {} - error_condition( int val, const error_category & cat ) BOOST_SYSTEM_NOEXCEPT : m_val(val), m_cat(&cat) {} - - template - error_condition(ErrorConditionEnum e, - typename boost::enable_if >::type* = 0) BOOST_SYSTEM_NOEXCEPT - { - *this = make_error_condition(e); - } - - // modifiers: - - void assign( int val, const error_category & cat ) BOOST_SYSTEM_NOEXCEPT - { - m_val = val; - m_cat = &cat; - } - - template - typename boost::enable_if, error_condition>::type & - operator=( ErrorConditionEnum val ) BOOST_SYSTEM_NOEXCEPT - { - *this = make_error_condition(val); - return *this; - } - - void clear() BOOST_SYSTEM_NOEXCEPT - { - m_val = 0; - m_cat = &generic_category(); - } - - // observers: - int value() const BOOST_SYSTEM_NOEXCEPT { return m_val; } - const error_category & category() const BOOST_SYSTEM_NOEXCEPT { return *m_cat; } - std::string message() const { return m_cat->message(value()); } - - typedef void (*unspecified_bool_type)(); - static void unspecified_bool_true() {} - - operator unspecified_bool_type() const BOOST_SYSTEM_NOEXCEPT // true if error - { - return m_val == 0 ? 0 : unspecified_bool_true; - } - - bool operator!() const BOOST_SYSTEM_NOEXCEPT // true if no error - { - return m_val == 0; - } - - // relationals: - // the more symmetrical non-member syntax allows enum - // conversions work for both rhs and lhs. - inline friend bool operator==( const error_condition & lhs, - const error_condition & rhs ) BOOST_SYSTEM_NOEXCEPT - { - return lhs.m_cat == rhs.m_cat && lhs.m_val == rhs.m_val; - } - - inline friend bool operator<( const error_condition & lhs, - const error_condition & rhs ) BOOST_SYSTEM_NOEXCEPT - // the more symmetrical non-member syntax allows enum - // conversions work for both rhs and lhs. - { - return lhs.m_cat < rhs.m_cat - || (lhs.m_cat == rhs.m_cat && lhs.m_val < rhs.m_val); - } - - private: - int m_val; - const error_category * m_cat; - - }; - - // class error_code ----------------------------------------------------// - - // We want error_code to be a value type that can be copied without slicing - // and without requiring heap allocation, but we also want it to have - // polymorphic behavior based on the error category. This is achieved by - // abstract base class error_category supplying the polymorphic behavior, - // and error_code containing a pointer to an object of a type derived - // from error_category. - class error_code - { - public: - - // constructors: - error_code() BOOST_SYSTEM_NOEXCEPT : m_val(0), m_cat(&system_category()) {} - error_code( int val, const error_category & cat ) BOOST_SYSTEM_NOEXCEPT : m_val(val), m_cat(&cat) {} - - template - error_code(ErrorCodeEnum e, - typename boost::enable_if >::type* = 0) BOOST_SYSTEM_NOEXCEPT - { - *this = make_error_code(e); - } - - // modifiers: - void assign( int val, const error_category & cat ) BOOST_SYSTEM_NOEXCEPT - { - m_val = val; - m_cat = &cat; - } - - template - typename boost::enable_if, error_code>::type & - operator=( ErrorCodeEnum val ) BOOST_SYSTEM_NOEXCEPT - { - *this = make_error_code(val); - return *this; - } - - void clear() BOOST_SYSTEM_NOEXCEPT - { - m_val = 0; - m_cat = &system_category(); - } - - // observers: - int value() const BOOST_SYSTEM_NOEXCEPT { return m_val; } - const error_category & category() const BOOST_SYSTEM_NOEXCEPT { return *m_cat; } - error_condition default_error_condition() const BOOST_SYSTEM_NOEXCEPT { return m_cat->default_error_condition(value()); } - std::string message() const { return m_cat->message(value()); } - - typedef void (*unspecified_bool_type)(); - static void unspecified_bool_true() {} - - operator unspecified_bool_type() const BOOST_SYSTEM_NOEXCEPT // true if error - { - return m_val == 0 ? 0 : unspecified_bool_true; - } - - bool operator!() const BOOST_SYSTEM_NOEXCEPT // true if no error - { - return m_val == 0; - } - - // relationals: - inline friend bool operator==( const error_code & lhs, - const error_code & rhs ) BOOST_SYSTEM_NOEXCEPT - // the more symmetrical non-member syntax allows enum - // conversions work for both rhs and lhs. - { - return lhs.m_cat == rhs.m_cat && lhs.m_val == rhs.m_val; - } - - inline friend bool operator<( const error_code & lhs, - const error_code & rhs ) BOOST_SYSTEM_NOEXCEPT - // the more symmetrical non-member syntax allows enum - // conversions work for both rhs and lhs. - { - return lhs.m_cat < rhs.m_cat - || (lhs.m_cat == rhs.m_cat && lhs.m_val < rhs.m_val); - } - - private: - int m_val; - const error_category * m_cat; - - }; - - // predefined error_code object used as "throw on error" tag -# ifndef BOOST_SYSTEM_NO_DEPRECATED - BOOST_SYSTEM_DECL extern error_code throws; -# endif - - // Moving from a "throws" object to a "throws" function without breaking - // existing code is a bit of a problem. The workaround is to place the - // "throws" function in namespace boost rather than namespace boost::system. - - } // namespace system - - namespace detail { inline system::error_code * throws() { return 0; } } - // Misuse of the error_code object is turned into a noisy failure by - // poisoning the reference. This particular implementation doesn't - // produce warnings or errors from popular compilers, is very efficient - // (as determined by inspecting generated code), and does not suffer - // from order of initialization problems. In practice, it also seems - // cause user function error handling implementation errors to be detected - // very early in the development cycle. - - inline system::error_code & throws() - { return *detail::throws(); } - - namespace system - { - // non-member functions ------------------------------------------------// - - inline bool operator!=( const error_code & lhs, - const error_code & rhs ) BOOST_SYSTEM_NOEXCEPT - { - return !(lhs == rhs); - } - - inline bool operator!=( const error_condition & lhs, - const error_condition & rhs ) BOOST_SYSTEM_NOEXCEPT - { - return !(lhs == rhs); - } - - inline bool operator==( const error_code & code, - const error_condition & condition ) BOOST_SYSTEM_NOEXCEPT - { - return code.category().equivalent( code.value(), condition ) - || condition.category().equivalent( code, condition.value() ); - } - - inline bool operator!=( const error_code & lhs, - const error_condition & rhs ) BOOST_SYSTEM_NOEXCEPT - { - return !(lhs == rhs); - } - - inline bool operator==( const error_condition & condition, - const error_code & code ) BOOST_SYSTEM_NOEXCEPT - { - return condition.category().equivalent( code, condition.value() ) - || code.category().equivalent( code.value(), condition ); - } - - inline bool operator!=( const error_condition & lhs, - const error_code & rhs ) BOOST_SYSTEM_NOEXCEPT - { - return !(lhs == rhs); - } - - // TODO: both of these may move elsewhere, but the LWG hasn't spoken yet. - - template - inline std::basic_ostream& - operator<< (std::basic_ostream& os, error_code ec) - { - os << ec.category().name() << ':' << ec.value(); - return os; - } - - inline std::size_t hash_value( const error_code & ec ) - { - return static_cast(ec.value()) - + reinterpret_cast(&ec.category()); - } - - // make_* functions for errc::errc_t -----------------------------// - - namespace errc - { - // explicit conversion: - inline error_code make_error_code( errc_t e ) BOOST_SYSTEM_NOEXCEPT - { return error_code( e, generic_category() ); } - - // implicit conversion: - inline error_condition make_error_condition( errc_t e ) BOOST_SYSTEM_NOEXCEPT - { return error_condition( e, generic_category() ); } - } - - // error_category default implementation -------------------------------// - - error_condition error_category::default_error_condition( int ev ) const BOOST_SYSTEM_NOEXCEPT - { - return error_condition( ev, *this ); - } - - bool error_category::equivalent( int code, - const error_condition & condition ) const BOOST_SYSTEM_NOEXCEPT - { - return default_error_condition( code ) == condition; - } - - bool error_category::equivalent( const error_code & code, - int condition ) const BOOST_SYSTEM_NOEXCEPT - { - return *this == code.category() && code.value() == condition; - } - - } // namespace system -} // namespace boost - -#include // pops abi_prefix.hpp pragmas - -# ifdef BOOST_ERROR_CODE_HEADER_ONLY -# include -# endif - -#endif // BOOST_ERROR_CODE_HPP - - diff --git a/lib/3rdParty/boost/boost/system/linux_error.hpp b/lib/3rdParty/boost/boost/system/linux_error.hpp deleted file mode 100644 index 0eb22bf25..000000000 --- a/lib/3rdParty/boost/boost/system/linux_error.hpp +++ /dev/null @@ -1,110 +0,0 @@ -// boost/system/linux_error.hpp -------------------------------------------// - -// Copyright Beman Dawes 2007 - -// 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 library home page at http://www.boost.org/libs/system - -#ifndef BOOST_LINUX_ERROR_HPP -#define BOOST_LINUX_ERROR_HPP - -// This header is effectively empty for compiles on operating systems where -// it is not applicable. - -#if defined(linux) || defined(__linux) || defined(__linux__) - -#include - -namespace boost -{ - namespace system - { - // To construct an error_code after a API error: - // - // error_code( errno, system_category() ) - - // User code should use the portable "posix" enums for POSIX errors; this - // allows such code to be portable to non-POSIX systems. For the non-POSIX - // errno values that POSIX-based systems typically provide in addition to - // POSIX values, use the system specific enums below. - - namespace linux_error - { - enum linux_errno - { - advertise_error = EADV, - bad_exchange = EBADE, - bad_file_number = EBADFD, - bad_font_format = EBFONT, - bad_request_code = EBADRQC, - bad_request_descriptor = EBADR, - bad_slot = EBADSLT, - channel_range = ECHRNG, - communication_error = ECOMM, - dot_dot_error = EDOTDOT, - exchange_full = EXFULL, - host_down = EHOSTDOWN, - is_named_file_type= EISNAM, - key_expired = EKEYEXPIRED, - key_rejected = EKEYREJECTED, - key_revoked = EKEYREVOKED, - level2_halt= EL2HLT, - level2_no_syncronized= EL2NSYNC, - level3_halt = EL3HLT, - level3_reset = EL3RST, - link_range = ELNRNG, - medium_type = EMEDIUMTYPE, - no_anode= ENOANO, - no_block_device = ENOTBLK, - no_csi = ENOCSI, - no_key = ENOKEY, - no_medium = ENOMEDIUM, - no_network = ENONET, - no_package = ENOPKG, - not_avail = ENAVAIL, - not_named_file_type= ENOTNAM, - not_recoverable = ENOTRECOVERABLE, - not_unique = ENOTUNIQ, - owner_dead = EOWNERDEAD, - protocol_no_supported = EPFNOSUPPORT, - remote_address_changed = EREMCHG, - remote_io_error = EREMOTEIO, - remote_object = EREMOTE, - restart_needed = ERESTART, - shared_library_access = ELIBACC, - shared_library_bad = ELIBBAD, - shared_library_execute = ELIBEXEC, - shared_library_max_ = ELIBMAX, - shared_library_section= ELIBSCN, - shutdown = ESHUTDOWN, - socket_type_not_supported = ESOCKTNOSUPPORT, - srmount_error = ESRMNT, - stream_pipe_error = ESTRPIPE, - too_many_references = ETOOMANYREFS, - too_many_users = EUSERS, - unattached = EUNATCH, - unclean = EUCLEAN - }; - } // namespace linux_error - -# ifndef BOOST_SYSTEM_NO_DEPRECATED - namespace Linux = linux_error; -# endif - - template<> struct is_error_code_enum - { static const bool value = true; }; - - namespace linux_error - { - inline error_code make_error_code( linux_errno e ) - { return error_code( e, system_category() ); } - } - - } // namespace system -} // namespace boost - -#endif // Linux - -#endif // BOOST_LINUX_ERROR_HPP diff --git a/lib/3rdParty/boost/boost/system/system_error.hpp b/lib/3rdParty/boost/boost/system/system_error.hpp deleted file mode 100644 index b306aae4b..000000000 --- a/lib/3rdParty/boost/boost/system/system_error.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// Boost system_error.hpp --------------------------------------------------// - -// Copyright Beman Dawes 2006 - -// 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_SYSTEM_ERROR_HPP -#define BOOST_SYSTEM_ERROR_HPP - -#include -#include -#include -#include - -namespace boost -{ - namespace system - { - // class system_error ------------------------------------------------------------// - - class BOOST_SYMBOL_VISIBLE system_error : public std::runtime_error - // BOOST_SYMBOL_VISIBLE is needed by GCC to ensure system_error thrown from a shared - // library can be caught. See svn.boost.org/trac/boost/ticket/3697 - { - public: - system_error( error_code ec ) - : std::runtime_error(""), m_error_code(ec) {} - - system_error( error_code ec, const std::string & what_arg ) - : std::runtime_error(what_arg), m_error_code(ec) {} - - system_error( error_code ec, const char* what_arg ) - : std::runtime_error(what_arg), m_error_code(ec) {} - - system_error( int ev, const error_category & ecat ) - : std::runtime_error(""), m_error_code(ev,ecat) {} - - system_error( int ev, const error_category & ecat, - const std::string & what_arg ) - : std::runtime_error(what_arg), m_error_code(ev,ecat) {} - - system_error( int ev, const error_category & ecat, - const char * what_arg ) - : std::runtime_error(what_arg), m_error_code(ev,ecat) {} - - virtual ~system_error() throw() {} - - const error_code & code() const throw() { return m_error_code; } - const char * what() const throw(); - - private: - error_code m_error_code; - mutable std::string m_what; - }; - - // implementation ------------------------------------------------------// - - inline const char * system_error::what() const throw() - // see http://www.boost.org/more/error_handling.html for lazy build rationale - { - if ( m_what.empty() ) - { -#ifndef BOOST_NO_EXCEPTIONS - try -#endif - { - m_what = this->std::runtime_error::what(); - if ( !m_what.empty() ) m_what += ": "; - m_what += m_error_code.message(); - } -#ifndef BOOST_NO_EXCEPTIONS - catch (...) { return std::runtime_error::what(); } -#endif - } - return m_what.c_str(); - } - - } // namespace system -} // namespace boost - -#endif // BOOST_SYSTEM_ERROR_HPP - - diff --git a/lib/3rdParty/boost/boost/system/windows_error.hpp b/lib/3rdParty/boost/boost/system/windows_error.hpp deleted file mode 100644 index 9d9d206c6..000000000 --- a/lib/3rdParty/boost/boost/system/windows_error.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// boost/system/windows_error.hpp ------------------------------------------// - -// Copyright Beman Dawes 2007 - -// 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 library home page at http://www.boost.org/libs/system - -#ifndef BOOST_WINDOWS_ERROR_HPP -#define BOOST_WINDOWS_ERROR_HPP - -// This header is effectively empty for compiles on operating systems where -// it is not applicable. - -#include - -#ifdef BOOST_WINDOWS_API - -#include - -// Neither MinGW or Cygwin versions of winerror.h work if used alone, so on -// either of those platforms include the full windows.h - -#if defined(__MINGW32__) || defined(__CYGWIN__) -#include -#else -#include -#endif - -namespace boost -{ - namespace system - { - - // Microsoft Windows ---------------------------------------------------// - - // To construct an error_code after a API error: - // - // error_code( ::GetLastError(), system_category() ) - - namespace windows_error - { - enum windows_error_code - { - success = 0, - // These names and values are based on Windows winerror.h - invalid_function = ERROR_INVALID_FUNCTION, - file_not_found = ERROR_FILE_NOT_FOUND, - path_not_found = ERROR_PATH_NOT_FOUND, - too_many_open_files = ERROR_TOO_MANY_OPEN_FILES, - access_denied = ERROR_ACCESS_DENIED, - invalid_handle = ERROR_INVALID_HANDLE, - arena_trashed = ERROR_ARENA_TRASHED, - not_enough_memory = ERROR_NOT_ENOUGH_MEMORY, - invalid_block = ERROR_INVALID_BLOCK, - bad_environment = ERROR_BAD_ENVIRONMENT, - bad_format = ERROR_BAD_FORMAT, - invalid_access = ERROR_INVALID_ACCESS, - outofmemory = ERROR_OUTOFMEMORY, - invalid_drive = ERROR_INVALID_DRIVE, - current_directory = ERROR_CURRENT_DIRECTORY, - not_same_device = ERROR_NOT_SAME_DEVICE, - no_more_files = ERROR_NO_MORE_FILES, - write_protect = ERROR_WRITE_PROTECT, - bad_unit = ERROR_BAD_UNIT, - not_ready = ERROR_NOT_READY, - bad_command = ERROR_BAD_COMMAND, - crc = ERROR_CRC, - bad_length = ERROR_BAD_LENGTH, - seek = ERROR_SEEK, - not_dos_disk = ERROR_NOT_DOS_DISK, - sector_not_found = ERROR_SECTOR_NOT_FOUND, - out_of_paper = ERROR_OUT_OF_PAPER, - write_fault = ERROR_WRITE_FAULT, - read_fault = ERROR_READ_FAULT, - gen_failure = ERROR_GEN_FAILURE, - sharing_violation = ERROR_SHARING_VIOLATION, - lock_violation = ERROR_LOCK_VIOLATION, - wrong_disk = ERROR_WRONG_DISK, - sharing_buffer_exceeded = ERROR_SHARING_BUFFER_EXCEEDED, - handle_eof = ERROR_HANDLE_EOF, - handle_disk_full= ERROR_HANDLE_DISK_FULL, - rem_not_list = ERROR_REM_NOT_LIST, - dup_name = ERROR_DUP_NAME, - bad_net_path = ERROR_BAD_NETPATH, - network_busy = ERROR_NETWORK_BUSY, - // ... - file_exists = ERROR_FILE_EXISTS, - cannot_make = ERROR_CANNOT_MAKE, - // ... - broken_pipe = ERROR_BROKEN_PIPE, - open_failed = ERROR_OPEN_FAILED, - buffer_overflow = ERROR_BUFFER_OVERFLOW, - disk_full= ERROR_DISK_FULL, - // ... - lock_failed = ERROR_LOCK_FAILED, - busy = ERROR_BUSY, - cancel_violation = ERROR_CANCEL_VIOLATION, - already_exists = ERROR_ALREADY_EXISTS - // ... - - // TODO: add more Windows errors - }; - - } // namespace windows - -# ifndef BOOST_SYSTEM_NO_DEPRECATED - namespace windows = windows_error; -# endif - - template<> struct is_error_code_enum - { static const bool value = true; }; - - namespace windows_error - { - inline error_code make_error_code( windows_error_code e ) - { return error_code( e, system_category() ); } - } - - } // namespace system -} // namespace boost - -#endif // BOOST_WINDOWS_API - -#endif // BOOST_WINDOWS_ERROR_HPP diff --git a/lib/3rdParty/boost/boost/throw_exception.hpp b/lib/3rdParty/boost/boost/throw_exception.hpp deleted file mode 100644 index aa977dfc7..000000000 --- a/lib/3rdParty/boost/boost/throw_exception.hpp +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef UUID_AA15E74A856F11E08B8D93F24824019B -#define UUID_AA15E74A856F11E08B8D93F24824019B -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/throw_exception.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2008-2009 Emil Dotchevski and Reverge Studios, Inc. -// -// 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) -// -// http://www.boost.org/libs/utility/throw_exception.html -// - -#include -#include -#include - -#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x593) ) -# define BOOST_EXCEPTION_DISABLE -#endif - -#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1310 ) -# define BOOST_EXCEPTION_DISABLE -#endif - -#if !defined( BOOST_EXCEPTION_DISABLE ) -# include -#if !defined(BOOST_THROW_EXCEPTION_CURRENT_FUNCTION) -# include -# define BOOST_THROW_EXCEPTION_CURRENT_FUNCTION BOOST_CURRENT_FUNCTION -#endif -# define BOOST_THROW_EXCEPTION(x) ::boost::exception_detail::throw_exception_(x,BOOST_THROW_EXCEPTION_CURRENT_FUNCTION,__FILE__,__LINE__) -#else -# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x) -#endif - -namespace boost -{ -#ifdef BOOST_NO_EXCEPTIONS - -void throw_exception( std::exception const & e ); // user defined - -#else - -inline void throw_exception_assert_compatibility( std::exception const & ) { } - -template BOOST_NORETURN inline void throw_exception( E const & e ) -{ - //All boost exceptions are required to derive from std::exception, - //to ensure compatibility with BOOST_NO_EXCEPTIONS. - throw_exception_assert_compatibility(e); - -#ifndef BOOST_EXCEPTION_DISABLE - throw enable_current_exception(enable_error_info(e)); -#else - throw e; -#endif -} - -#endif - -#if !defined( BOOST_EXCEPTION_DISABLE ) - namespace - exception_detail - { - template - BOOST_NORETURN - void - throw_exception_( E const & x, char const * current_function, char const * file, int line ) - { - boost::throw_exception( - set_info( - set_info( - set_info( - enable_error_info(x), - throw_function(current_function)), - throw_file(file)), - throw_line(line))); - } - } -#endif -} // namespace boost - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/lib/3rdParty/boost/boost/token_functions.hpp b/lib/3rdParty/boost/boost/token_functions.hpp deleted file mode 100644 index be245a047..000000000 --- a/lib/3rdParty/boost/boost/token_functions.hpp +++ /dev/null @@ -1,651 +0,0 @@ -// Boost token_functions.hpp ------------------------------------------------// - -// Copyright John R. Bandela 2001. - -// 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/tokenizer/ for documentation. - -// Revision History: -// 01 Oct 2004 Joaquin M Lopez Munoz -// Workaround for a problem with string::assign in msvc-stlport -// 06 Apr 2004 John Bandela -// Fixed a bug involving using char_delimiter with a true input iterator -// 28 Nov 2003 Robert Zeh and John Bandela -// Converted into "fast" functions that avoid using += when -// the supplied iterator isn't an input_iterator; based on -// some work done at Archelon and a version that was checked into -// the boost CVS for a short period of time. -// 20 Feb 2002 John Maddock -// Removed using namespace std declarations and added -// workaround for BOOST_NO_STDC_NAMESPACE (the library -// can be safely mixed with regex). -// 06 Feb 2002 Jeremy Siek -// Added char_separator. -// 02 Feb 2002 Jeremy Siek -// Removed tabs and a little cleanup. - - -#ifndef BOOST_TOKEN_FUNCTIONS_JRB120303_HPP_ -#define BOOST_TOKEN_FUNCTIONS_JRB120303_HPP_ - -#include -#include -#include -#include -#include // for find_if -#include -#include -#include -#include -#include -#if !defined(BOOST_NO_CWCTYPE) -#include -#endif - -// -// the following must not be macros if we are to prefix them -// with std:: (they shouldn't be macros anyway...) -// -#ifdef ispunct -# undef ispunct -#endif -#ifdef iswpunct -# undef iswpunct -#endif -#ifdef isspace -# undef isspace -#endif -#ifdef iswspace -# undef iswspace -#endif -// -// fix namespace problems: -// -#ifdef BOOST_NO_STDC_NAMESPACE -namespace std{ - using ::ispunct; - using ::isspace; -#if !defined(BOOST_NO_CWCTYPE) - using ::iswpunct; - using ::iswspace; -#endif -} -#endif - -namespace boost{ - //=========================================================================== - // The escaped_list_separator class. Which is a model of TokenizerFunction - // An escaped list is a super-set of what is commonly known as a comma - // separated value (csv) list.It is separated into fields by a comma or - // other character. If the delimiting character is inside quotes, then it is - // counted as a regular character.To allow for embedded quotes in a field, - // there can be escape sequences using the \ much like C. - // The role of the comma, the quotation mark, and the escape - // character (backslash \), can be assigned to other characters. - - struct escaped_list_error : public std::runtime_error{ - escaped_list_error(const std::string& what_arg):std::runtime_error(what_arg) { } - }; - - -// The out of the box GCC 2.95 on cygwin does not have a char_traits class. -// MSVC does not like the following typename - template ::traits_type > - class escaped_list_separator { - - private: - typedef std::basic_string string_type; - struct char_eq { - Char e_; - char_eq(Char e):e_(e) { } - bool operator()(Char c) { - return Traits::eq(e_,c); - } - }; - string_type escape_; - string_type c_; - string_type quote_; - bool last_; - - bool is_escape(Char e) { - char_eq f(e); - return std::find_if(escape_.begin(),escape_.end(),f)!=escape_.end(); - } - bool is_c(Char e) { - char_eq f(e); - return std::find_if(c_.begin(),c_.end(),f)!=c_.end(); - } - bool is_quote(Char e) { - char_eq f(e); - return std::find_if(quote_.begin(),quote_.end(),f)!=quote_.end(); - } - template - void do_escape(iterator& next,iterator end,Token& tok) { - if (++next == end) - BOOST_THROW_EXCEPTION(escaped_list_error(std::string("cannot end with escape"))); - if (Traits::eq(*next,'n')) { - tok+='\n'; - return; - } - else if (is_quote(*next)) { - tok+=*next; - return; - } - else if (is_c(*next)) { - tok+=*next; - return; - } - else if (is_escape(*next)) { - tok+=*next; - return; - } - else - BOOST_THROW_EXCEPTION(escaped_list_error(std::string("unknown escape sequence"))); - } - - public: - - explicit escaped_list_separator(Char e = '\\', - Char c = ',',Char q = '\"') - : escape_(1,e), c_(1,c), quote_(1,q), last_(false) { } - - escaped_list_separator(string_type e, string_type c, string_type q) - : escape_(e), c_(c), quote_(q), last_(false) { } - - void reset() {last_=false;} - - template - bool operator()(InputIterator& next,InputIterator end,Token& tok) { - bool bInQuote = false; - tok = Token(); - - if (next == end) { - if (last_) { - last_ = false; - return true; - } - else - return false; - } - last_ = false; - for (;next != end;++next) { - if (is_escape(*next)) { - do_escape(next,end,tok); - } - else if (is_c(*next)) { - if (!bInQuote) { - // If we are not in quote, then we are done - ++next; - // The last character was a c, that means there is - // 1 more blank field - last_ = true; - return true; - } - else tok+=*next; - } - else if (is_quote(*next)) { - bInQuote=!bInQuote; - } - else { - tok += *next; - } - } - return true; - } - }; - - //=========================================================================== - // The classes here are used by offset_separator and char_separator to implement - // faster assigning of tokens using assign instead of += - - namespace tokenizer_detail { - //=========================================================================== - // Tokenizer was broken for wide character separators, at least on Windows, since - // CRT functions isspace etc only expect values in [0, 0xFF]. Debug build asserts - // if higher values are passed in. The traits extension class should take care of this. - // Assuming that the conditional will always get optimized out in the function - // implementations, argument types are not a problem since both forms of character classifiers - // expect an int. - -#if !defined(BOOST_NO_CWCTYPE) - template - struct traits_extension_details : public traits { - typedef typename traits::char_type char_type; - static bool isspace(char_type c) - { - return std::iswspace(c) != 0; - } - static bool ispunct(char_type c) - { - return std::iswpunct(c) != 0; - } - }; - - template - struct traits_extension_details : public traits { - typedef typename traits::char_type char_type; - static bool isspace(char_type c) - { - return std::isspace(c) != 0; - } - static bool ispunct(char_type c) - { - return std::ispunct(c) != 0; - } - }; -#endif - - - // In case there is no cwctype header, we implement the checks manually. - // We make use of the fact that the tested categories should fit in ASCII. - template - struct traits_extension : public traits { - typedef typename traits::char_type char_type; - static bool isspace(char_type c) - { -#if !defined(BOOST_NO_CWCTYPE) - return traits_extension_details::isspace(c); -#else - return static_cast< unsigned >(c) <= 255 && std::isspace(c) != 0; -#endif - } - - static bool ispunct(char_type c) - { -#if !defined(BOOST_NO_CWCTYPE) - return traits_extension_details::ispunct(c); -#else - return static_cast< unsigned >(c) <= 255 && std::ispunct(c) != 0; -#endif - } - }; - - // The assign_or_plus_equal struct contains functions that implement - // assign, +=, and clearing based on the iterator type. The - // generic case does nothing for plus_equal and clearing, while - // passing through the call for assign. - // - // When an input iterator is being used, the situation is reversed. - // The assign method does nothing, plus_equal invokes operator +=, - // and the clearing method sets the supplied token to the default - // token constructor's result. - // - - template - struct assign_or_plus_equal { - template - static void assign(Iterator b, Iterator e, Token &t) { - t.assign(b, e); - } - - template - static void plus_equal(Token &, const Value &) { } - - // If we are doing an assign, there is no need for the - // the clear. - // - template - static void clear(Token &) { } - }; - - template <> - struct assign_or_plus_equal { - template - static void assign(Iterator , Iterator , Token &) { } - template - static void plus_equal(Token &t, const Value &v) { - t += v; - } - template - static void clear(Token &t) { - t = Token(); - } - }; - - - template - struct pointer_iterator_category{ - typedef std::random_access_iterator_tag type; - }; - - - template - struct class_iterator_category{ - typedef typename Iterator::iterator_category type; - }; - - - - // This portably gets the iterator_tag without partial template specialization - template - struct get_iterator_category{ - typedef typename mpl::if_, - pointer_iterator_category, - class_iterator_category - >::type cat; - - typedef typename cat::type iterator_category; - }; - - - } // namespace tokenizer_detail - - - //=========================================================================== - // The offset_separator class, which is a model of TokenizerFunction. - // Offset breaks a string into tokens based on a range of offsets - - class offset_separator { - private: - - std::vector offsets_; - unsigned int current_offset_; - bool wrap_offsets_; - bool return_partial_last_; - - public: - template - offset_separator(Iter begin, Iter end, bool wrap_offsets = true, - bool return_partial_last = true) - : offsets_(begin,end), current_offset_(0), - wrap_offsets_(wrap_offsets), - return_partial_last_(return_partial_last) { } - - offset_separator() - : offsets_(1,1), current_offset_(), - wrap_offsets_(true), return_partial_last_(true) { } - - void reset() { - current_offset_ = 0; - } - - template - bool operator()(InputIterator& next, InputIterator end, Token& tok) - { - typedef tokenizer_detail::assign_or_plus_equal< - BOOST_DEDUCED_TYPENAME tokenizer_detail::get_iterator_category< - InputIterator - >::iterator_category - > assigner; - - BOOST_ASSERT(!offsets_.empty()); - - assigner::clear(tok); - InputIterator start(next); - - if (next == end) - return false; - - if (current_offset_ == offsets_.size()) - { - if (wrap_offsets_) - current_offset_=0; - else - return false; - } - - int c = offsets_[current_offset_]; - int i = 0; - for (; i < c; ++i) { - if (next == end)break; - assigner::plus_equal(tok,*next++); - } - assigner::assign(start,next,tok); - - if (!return_partial_last_) - if (i < (c-1) ) - return false; - - ++current_offset_; - return true; - } - }; - - - //=========================================================================== - // The char_separator class breaks a sequence of characters into - // tokens based on the character delimiters (very much like bad old - // strtok). A delimiter character can either be kept or dropped. A - // kept delimiter shows up as an output token, whereas a dropped - // delimiter does not. - - // This class replaces the char_delimiters_separator class. The - // constructor for the char_delimiters_separator class was too - // confusing and needed to be deprecated. However, because of the - // default arguments to the constructor, adding the new constructor - // would cause ambiguity, so instead I deprecated the whole class. - // The implementation of the class was also simplified considerably. - - enum empty_token_policy { drop_empty_tokens, keep_empty_tokens }; - - // The out of the box GCC 2.95 on cygwin does not have a char_traits class. - template ::traits_type > - class char_separator - { - typedef tokenizer_detail::traits_extension Traits; - typedef std::basic_string string_type; - public: - explicit - char_separator(const Char* dropped_delims, - const Char* kept_delims = 0, - empty_token_policy empty_tokens = drop_empty_tokens) - : m_dropped_delims(dropped_delims), - m_use_ispunct(false), - m_use_isspace(false), - m_empty_tokens(empty_tokens), - m_output_done(false) - { - // Borland workaround - if (kept_delims) - m_kept_delims = kept_delims; - } - - // use ispunct() for kept delimiters and isspace for dropped. - explicit - char_separator() - : m_use_ispunct(true), - m_use_isspace(true), - m_empty_tokens(drop_empty_tokens) { } - - void reset() { } - - template - bool operator()(InputIterator& next, InputIterator end, Token& tok) - { - typedef tokenizer_detail::assign_or_plus_equal< - BOOST_DEDUCED_TYPENAME tokenizer_detail::get_iterator_category< - InputIterator - >::iterator_category - > assigner; - - assigner::clear(tok); - - // skip past all dropped_delims - if (m_empty_tokens == drop_empty_tokens) - for (; next != end && is_dropped(*next); ++next) - { } - - InputIterator start(next); - - if (m_empty_tokens == drop_empty_tokens) { - - if (next == end) - return false; - - - // if we are on a kept_delims move past it and stop - if (is_kept(*next)) { - assigner::plus_equal(tok,*next); - ++next; - } else - // append all the non delim characters - for (; next != end && !is_dropped(*next) && !is_kept(*next); ++next) - assigner::plus_equal(tok,*next); - } - else { // m_empty_tokens == keep_empty_tokens - - // Handle empty token at the end - if (next == end) - { - if (m_output_done == false) - { - m_output_done = true; - assigner::assign(start,next,tok); - return true; - } - else - return false; - } - - if (is_kept(*next)) { - if (m_output_done == false) - m_output_done = true; - else { - assigner::plus_equal(tok,*next); - ++next; - m_output_done = false; - } - } - else if (m_output_done == false && is_dropped(*next)) { - m_output_done = true; - } - else { - if (is_dropped(*next)) - start=++next; - for (; next != end && !is_dropped(*next) && !is_kept(*next); ++next) - assigner::plus_equal(tok,*next); - m_output_done = true; - } - } - assigner::assign(start,next,tok); - return true; - } - - private: - string_type m_kept_delims; - string_type m_dropped_delims; - bool m_use_ispunct; - bool m_use_isspace; - empty_token_policy m_empty_tokens; - bool m_output_done; - - bool is_kept(Char E) const - { - if (m_kept_delims.length()) - return m_kept_delims.find(E) != string_type::npos; - else if (m_use_ispunct) { - return Traits::ispunct(E) != 0; - } else - return false; - } - bool is_dropped(Char E) const - { - if (m_dropped_delims.length()) - return m_dropped_delims.find(E) != string_type::npos; - else if (m_use_isspace) { - return Traits::isspace(E) != 0; - } else - return false; - } - }; - - //=========================================================================== - // The following class is DEPRECATED, use class char_separators instead. - // - // The char_delimiters_separator class, which is a model of - // TokenizerFunction. char_delimiters_separator breaks a string - // into tokens based on character delimiters. There are 2 types of - // delimiters. returnable delimiters can be returned as - // tokens. These are often punctuation. nonreturnable delimiters - // cannot be returned as tokens. These are often whitespace - - // The out of the box GCC 2.95 on cygwin does not have a char_traits class. - template ::traits_type > - class char_delimiters_separator { - private: - - typedef tokenizer_detail::traits_extension Traits; - typedef std::basic_string string_type; - string_type returnable_; - string_type nonreturnable_; - bool return_delims_; - bool no_ispunct_; - bool no_isspace_; - - bool is_ret(Char E)const - { - if (returnable_.length()) - return returnable_.find(E) != string_type::npos; - else{ - if (no_ispunct_) {return false;} - else{ - int r = Traits::ispunct(E); - return r != 0; - } - } - } - bool is_nonret(Char E)const - { - if (nonreturnable_.length()) - return nonreturnable_.find(E) != string_type::npos; - else{ - if (no_isspace_) {return false;} - else{ - int r = Traits::isspace(E); - return r != 0; - } - } - } - - public: - explicit char_delimiters_separator(bool return_delims = false, - const Char* returnable = 0, - const Char* nonreturnable = 0) - : returnable_(returnable ? returnable : string_type().c_str()), - nonreturnable_(nonreturnable ? nonreturnable:string_type().c_str()), - return_delims_(return_delims), no_ispunct_(returnable!=0), - no_isspace_(nonreturnable!=0) { } - - void reset() { } - - public: - - template - bool operator()(InputIterator& next, InputIterator end,Token& tok) { - tok = Token(); - - // skip past all nonreturnable delims - // skip past the returnable only if we are not returning delims - for (;next!=end && ( is_nonret(*next) || (is_ret(*next) - && !return_delims_ ) );++next) { } - - if (next == end) { - return false; - } - - // if we are to return delims and we are one a returnable one - // move past it and stop - if (is_ret(*next) && return_delims_) { - tok+=*next; - ++next; - } - else - // append all the non delim characters - for (;next!=end && !is_nonret(*next) && !is_ret(*next);++next) - tok+=*next; - - - return true; - } - }; - - -} //namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/token_iterator.hpp b/lib/3rdParty/boost/boost/token_iterator.hpp deleted file mode 100644 index 584fac28f..000000000 --- a/lib/3rdParty/boost/boost/token_iterator.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// Boost token_iterator.hpp -------------------------------------------------// - -// Copyright John R. Bandela 2001 -// 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/tokenizer for documentation. - -// Revision History: -// 16 Jul 2003 John Bandela -// Allowed conversions from convertible base iterators -// 03 Jul 2003 John Bandela -// Converted to new iterator adapter - - - -#ifndef BOOST_TOKENIZER_POLICY_JRB070303_HPP_ -#define BOOST_TOKENIZER_POLICY_JRB070303_HPP_ - -#include -#include -#include -#include -#include - -namespace boost -{ - template - class token_iterator - : public iterator_facade< - token_iterator - , Type - , typename iterators::minimum_category< - forward_traversal_tag - , typename iterator_traversal::type - >::type - , const Type& - > - { - - friend class iterator_core_access; - - TokenizerFunc f_; - Iterator begin_; - Iterator end_; - bool valid_; - Type tok_; - - void increment(){ - BOOST_ASSERT(valid_); - valid_ = f_(begin_,end_,tok_); - } - - const Type& dereference() const { - BOOST_ASSERT(valid_); - return tok_; - } - template - bool equal(const Other& a) const{ - return (a.valid_ && valid_) - ?( (a.begin_==begin_) && (a.end_ == end_) ) - :(a.valid_==valid_); - - } - - void initialize(){ - if(valid_) return; - f_.reset(); - valid_ = (begin_ != end_)? - f_(begin_,end_,tok_):false; - } - public: - token_iterator():begin_(),end_(),valid_(false),tok_() { } - - token_iterator(TokenizerFunc f, Iterator begin, Iterator e = Iterator()) - : f_(f),begin_(begin),end_(e),valid_(false),tok_(){ initialize(); } - - token_iterator(Iterator begin, Iterator e = Iterator()) - : f_(),begin_(begin),end_(e),valid_(false),tok_() {initialize();} - - template - token_iterator( - token_iterator const& t - , typename enable_if_convertible::type* = 0) - : f_(t.tokenizer_function()),begin_(t.base()) - ,end_(t.end()),valid_(!t.at_end()),tok_(t.current_token()) {} - - Iterator base()const{return begin_;} - - Iterator end()const{return end_;} - - TokenizerFunc tokenizer_function()const{return f_;} - - Type current_token()const{return tok_;} - - bool at_end()const{return !valid_;} - - - - - }; - template < - class TokenizerFunc = char_delimiters_separator, - class Iterator = std::string::const_iterator, - class Type = std::string - > - class token_iterator_generator { - - private: - public: - typedef token_iterator type; - }; - - - // Type has to be first because it needs to be explicitly specified - // because there is no way the function can deduce it. - template - typename token_iterator_generator::type - make_token_iterator(Iterator begin, Iterator end,const TokenizerFunc& fun){ - typedef typename - token_iterator_generator::type ret_type; - return ret_type(fun,begin,end); - } - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/tokenizer.hpp b/lib/3rdParty/boost/boost/tokenizer.hpp deleted file mode 100644 index 081e5ba2f..000000000 --- a/lib/3rdParty/boost/boost/tokenizer.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// Boost tokenizer.hpp -----------------------------------------------------// - -// (c) Copyright Jeremy Siek and John R. Bandela 2001. - -// 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/tokenizer for documenation - -// Revision History: -// 03 Jul 2003 John Bandela -// Converted to new iterator adapter -// 02 Feb 2002 Jeremy Siek -// Removed tabs and a little cleanup. - -#ifndef BOOST_TOKENIZER_JRB070303_HPP_ -#define BOOST_TOKENIZER_JRB070303_HPP_ - -#include - -namespace boost { - - - //=========================================================================== - // A container-view of a tokenized "sequence" - template < - typename TokenizerFunc = char_delimiters_separator, - typename Iterator = std::string::const_iterator, - typename Type = std::string - > - class tokenizer { - private: - typedef token_iterator_generator TGen; - - // It seems that MSVC does not like the unqualified use of iterator, - // Thus we use iter internally when it is used unqualified and - // the users of this class will always qualify iterator. - typedef typename TGen::type iter; - - public: - - typedef iter iterator; - typedef iter const_iterator; - typedef Type value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef value_type* pointer; - typedef const pointer const_pointer; - typedef void size_type; - typedef void difference_type; - - tokenizer(Iterator first, Iterator last, - const TokenizerFunc& f = TokenizerFunc()) - : first_(first), last_(last), f_(f) { } - - template - tokenizer(const Container& c) - : first_(c.begin()), last_(c.end()), f_() { } - - template - tokenizer(const Container& c,const TokenizerFunc& f) - : first_(c.begin()), last_(c.end()), f_(f) { } - - void assign(Iterator first, Iterator last){ - first_ = first; - last_ = last; - } - - void assign(Iterator first, Iterator last, const TokenizerFunc& f){ - assign(first,last); - f_ = f; - } - - template - void assign(const Container& c){ - assign(c.begin(),c.end()); - } - - - template - void assign(const Container& c, const TokenizerFunc& f){ - assign(c.begin(),c.end(),f); - } - - iter begin() const { return iter(f_,first_,last_); } - iter end() const { return iter(f_,last_,last_); } - - private: - Iterator first_; - Iterator last_; - TokenizerFunc f_; - }; - - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/type_index.hpp b/lib/3rdParty/boost/boost/type_index.hpp deleted file mode 100644 index 0310e2027..000000000 --- a/lib/3rdParty/boost/boost/type_index.hpp +++ /dev/null @@ -1,265 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2012-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) -// - -#ifndef BOOST_TYPE_INDEX_HPP -#define BOOST_TYPE_INDEX_HPP - -/// \file boost/type_index.hpp -/// \brief Includes minimal set of headers required to use the Boost.TypeIndex library. -/// -/// By inclusion of this file most optimal type index classes will be included and used -/// as a boost::typeindex::type_index and boost::typeindex::type_info. - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#if defined(BOOST_TYPE_INDEX_USER_TYPEINDEX) -# include BOOST_TYPE_INDEX_USER_TYPEINDEX -# ifdef BOOST_HAS_PRAGMA_DETECT_MISMATCH -# pragma detect_mismatch( "boost__type_index__abi", "user defined type_index class is used: " BOOST_STRINGIZE(BOOST_TYPE_INDEX_USER_TYPEINDEX)) -# endif -#elif (!defined(BOOST_NO_RTTI) && !defined(BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY)) || defined(BOOST_MSVC) -# include -# if defined(BOOST_NO_RTTI) || defined(BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY) -# include -# ifdef BOOST_HAS_PRAGMA_DETECT_MISMATCH -# pragma detect_mismatch( "boost__type_index__abi", "RTTI is off - typeid() is used only for templates") -# endif -# else -# ifdef BOOST_HAS_PRAGMA_DETECT_MISMATCH -# pragma detect_mismatch( "boost__type_index__abi", "RTTI is used") -# endif -# endif -#else -# include -# include -# ifdef BOOST_HAS_PRAGMA_DETECT_MISMATCH -# pragma detect_mismatch( "boost__type_index__abi", "RTTI is off - using CTTI") -# endif -#endif - -#ifndef BOOST_TYPE_INDEX_REGISTER_CLASS -#define BOOST_TYPE_INDEX_REGISTER_CLASS -#endif - -namespace boost { namespace typeindex { - -#if defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED) - -/// \def BOOST_TYPE_INDEX_FUNCTION_SIGNATURE -/// BOOST_TYPE_INDEX_FUNCTION_SIGNATURE is used by boost::typeindex::ctti_type_index class to -/// deduce the name of a type. If your compiler is not recognized -/// by the TypeIndex library and you wish to work with boost::typeindex::ctti_type_index, you may -/// define this macro by yourself. -/// -/// BOOST_TYPE_INDEX_FUNCTION_SIGNATURE must be defined to a compiler specific macro -/// that outputs the \b whole function signature \b including \b template \b parameters. -/// -/// If your compiler is not recognised and BOOST_TYPE_INDEX_FUNCTION_SIGNATURE is not defined, -/// then a compile-time error will arise at any attempt to use boost::typeindex::ctti_type_index classes. -/// -/// See BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS and BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING -/// for an information of how to tune the implementation to make a nice pretty_name() output. -#define BOOST_TYPE_INDEX_FUNCTION_SIGNATURE BOOST_CURRENT_FUNCTION - -/// \def BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING -/// This is a helper macro for making correct pretty_names() with RTTI off. -/// -/// BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING macro may be defined to -/// '(begin_skip, end_skip, runtime_skip, runtime_skip_until)' with parameters for adding a -/// support for compilers, that by default are not recognized by TypeIndex library. -/// -/// \b Example: -/// -/// Imagine the situation when -/// \code boost::typeindex::ctti_type_index::type_id().pretty_name() \endcode -/// returns the following string: -/// \code "static const char *boost::detail::ctti::n() [T = int]" \endcode -/// and \code boost::typeindex::ctti_type_index::type_id().pretty_name() \endcode returns the following: -/// \code "static const char *boost::detail::ctti::n() [T = short]" \endcode -/// -/// As we may see first 39 characters are "static const char *boost::detail::ctti<" and they do not depend on -/// the type T. After first 39 characters we have a human readable type name which is duplicated at the end -/// of a string. String always ends on ']', which consumes 1 character. -/// -/// Now if we define `BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING` to -/// `(39, 1, false, "")` we'll be getting \code "int>::n() [T = int" \endcode -/// for `boost::typeindex::ctti_type_index::type_id().pretty_name()` and \code "short>::n() [T = short" \endcode -/// for `boost::typeindex::ctti_type_index::type_id().pretty_name()`. -/// -/// Now we need to take additional care of the characters that go before the last mention of our type. We'll -/// do that by telling the macro that we need to cut off everything that goes before the "T = " including the "T = " -/// itself: -/// -/// \code (39, 1, true, "T = ") \endcode -/// -/// In case of GCC or Clang command line we need to add the following line while compiling all the sources: -/// -/// \code -/// -DBOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING='(39, 1, true, "T = ")' -/// \endcode -/// \param begin_skip How many characters must be skipped at the beginning of the type holding string. -/// Must be a compile time constant. -/// \param end_skip How many characters must be skipped at the end of the type holding string. -/// Must be a compile time constant. -/// \param runtime_skip Do we need additional checks at runtime to cut off the more characters. -/// Must be `true` or `false`. -/// \param runtime_skip_until Skip all the characters before the following string (including the string itself). -/// Must be a compile time array of characters. -/// -/// See [RTTI emulation limitations](boost_typeindex/rtti_emulation_limitations.html) for more info. -#define BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING (0, 0, false, "") - - - /// Depending on a compiler flags, optimal implementation of type_index will be used - /// as a default boost::typeindex::type_index. - /// - /// Could be a boost::typeindex::stl_type_index, boost::typeindex::ctti_type_index or - /// user defined type_index class. - /// - /// \b See boost::typeindex::type_index_facade for a full description of type_index functions. - typedef platform_specific type_index; -#elif defined(BOOST_TYPE_INDEX_USER_TYPEINDEX) - // Nothing to do -#elif (!defined(BOOST_NO_RTTI) && !defined(BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY)) || defined(BOOST_MSVC) - typedef boost::typeindex::stl_type_index type_index; -#else - typedef boost::typeindex::ctti_type_index type_index; -#endif - -/// Depending on a compiler flags, optimal implementation of type_info will be used -/// as a default boost::typeindex::type_info. -/// -/// Could be a std::type_info, boost::typeindex::detail::ctti_data or -/// some user defined class. -/// -/// type_info \b is \b not copyable or default constructible. It is \b not assignable too! -typedef type_index::type_info_t type_info; - -#if defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED) - -/// \def BOOST_TYPE_INDEX_USER_TYPEINDEX -/// BOOST_TYPE_INDEX_USER_TYPEINDEX can be defined to the path to header file -/// with user provided implementation of type_index. -/// -/// See [Making a custom type_index](boost_typeindex/making_a_custom_type_index.html) section -/// of documentation for usage example. -#define BOOST_TYPE_INDEX_USER_TYPEINDEX - - -/// \def BOOST_TYPE_INDEX_REGISTER_CLASS -/// BOOST_TYPE_INDEX_REGISTER_CLASS is used to help to emulate RTTI. -/// Put this macro into the public section of polymorphic class to allow runtime type detection. -/// -/// Depending on the typeid() availability this macro will expand to nothing or to virtual helper function -/// `virtual const type_info& boost_type_info_type_id_runtime_() const noexcept`. -/// -/// \b Example: -/// \code -/// class A { -/// public: -/// BOOST_TYPE_INDEX_REGISTER_CLASS -/// virtual ~A(){} -/// }; -/// -/// struct B: public A { -/// BOOST_TYPE_INDEX_REGISTER_CLASS -/// }; -/// -/// struct C: public B { -/// BOOST_TYPE_INDEX_REGISTER_CLASS -/// }; -/// -/// ... -/// -/// C c1; -/// A* pc1 = &c1; -/// assert(boost::typeindex::type_id() == boost::typeindex::type_id_runtime(*pc1)); -/// \endcode -#define BOOST_TYPE_INDEX_REGISTER_CLASS nothing-or-some-virtual-functions - -/// \def BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY -/// BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY is a helper macro that must be defined if mixing -/// RTTI on/off modules. See -/// [Mixing sources with RTTI on and RTTI off](boost_typeindex/mixing_sources_with_rtti_on_and_.html) -/// section of documentation for more info. -#define BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY - -#endif // defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED) - - -/// Function to get boost::typeindex::type_index for a type T. -/// Removes const, volatile && and & modifiers from T. -/// -/// \b Example: -/// \code -/// type_index ti = type_id(); -/// std::cout << ti.pretty_name(); // Outputs 'int' -/// \endcode -/// -/// \tparam T Type for which type_index must be created. -/// \throw Nothing. -/// \return boost::typeindex::type_index with information about the specified type T. -template -inline type_index type_id() BOOST_NOEXCEPT { - return type_index::type_id(); -} - -/// Function for constructing boost::typeindex::type_index instance for type T. -/// Does not remove const, volatile, & and && modifiers from T. -/// -/// If T has no const, volatile, & and && modifiers, then returns exactly -/// the same result as in case of calling `type_id()`. -/// -/// \b Example: -/// \code -/// type_index ti = type_id_with_cvr(); -/// std::cout << ti.pretty_name(); // Outputs 'int&' -/// \endcode -/// -/// \tparam T Type for which type_index must be created. -/// \throw Nothing. -/// \return boost::typeindex::type_index with information about the specified type T. -template -inline type_index type_id_with_cvr() BOOST_NOEXCEPT { - return type_index::type_id_with_cvr(); -} - -/// Function that works exactly like C++ typeid(rtti_val) call, but returns boost::type_index. -/// -/// Returns runtime information about specified type. -/// -/// \b Requirements: RTTI available or Base and Derived classes must be marked with BOOST_TYPE_INDEX_REGISTER_CLASS. -/// -/// \b Example: -/// \code -/// struct Base { virtual ~Base(){} }; -/// struct Derived: public Base {}; -/// ... -/// Derived d; -/// Base& b = d; -/// type_index ti = type_id_runtime(b); -/// std::cout << ti.pretty_name(); // Outputs 'Derived' -/// \endcode -/// -/// \param runtime_val Variable which runtime type must be returned. -/// \throw Nothing. -/// \return boost::typeindex::type_index with information about the specified variable. -template -inline type_index type_id_runtime(const T& runtime_val) BOOST_NOEXCEPT { - return type_index::type_id_runtime(runtime_val); -} - -}} // namespace boost::typeindex - - - -#endif // BOOST_TYPE_INDEX_HPP - diff --git a/lib/3rdParty/boost/boost/type_index/ctti_type_index.hpp b/lib/3rdParty/boost/boost/type_index/ctti_type_index.hpp deleted file mode 100644 index 611ad92e1..000000000 --- a/lib/3rdParty/boost/boost/type_index/ctti_type_index.hpp +++ /dev/null @@ -1,212 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2013-2016. -// -// -// 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_TYPE_INDEX_CTTI_TYPE_INDEX_HPP -#define BOOST_TYPE_INDEX_CTTI_TYPE_INDEX_HPP - -/// \file ctti_type_index.hpp -/// \brief Contains boost::typeindex::ctti_type_index class that is constexpr if C++14 constexpr is supported by compiler. -/// -/// boost::typeindex::ctti_type_index class can be used as a drop-in replacement -/// for std::type_index. -/// -/// It is used in situations when typeid() method is not available or -/// BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY macro is defined. - -#include -#include - -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -namespace detail { - -// That's the most trickiest part of the TypeIndex library: -// 1) we do not want to give user ability to manually construct and compare `struct-that-represents-type` -// 2) we need to distinguish between `struct-that-represents-type` and `const char*` -// 3) we need a thread-safe way to have references to instances `struct-that-represents-type` -// 4) we need a compile-time control to make sure that user does not copy or -// default construct `struct-that-represents-type` -// -// Solution would be the following: - -/// \class ctti_data -/// Standard-layout class with private constructors and assignment operators. -/// -/// You can not work with this class directly. The purpose of this class is to hold type info -/// \b when \b RTTI \b is \b off and allow ctti_type_index construction from itself. -/// -/// \b Example: -/// \code -/// const detail::ctti_data& foo(); -/// ... -/// type_index ti = type_index(foo()); -/// std::cout << ti.pretty_name(); -/// \endcode -class ctti_data { -#ifndef BOOST_NO_CXX11_DELETED_FUNCTIONS -public: - ctti_data() = delete; - ctti_data(const ctti_data&) = delete; - ctti_data& operator=(const ctti_data&) = delete; -#else -private: - ctti_data(); - ctti_data(const ctti_data&); - ctti_data& operator=(const ctti_data&); -#endif -}; - -} // namespace detail - -/// Helper method for getting detail::ctti_data of a template parameter T. -template -inline const detail::ctti_data& ctti_construct() BOOST_NOEXCEPT { - // Standard C++11, 5.2.10 Reinterpret cast: - // An object pointer can be explicitly converted to an object pointer of a different type. When a prvalue - // v of type "pointer to T1" is converted to the type "pointer to cv T2", the result is static_cast(static_cast(v)) if both T1 and T2 are standard-layout types (3.9) and the alignment - // requirements of T2 are no stricter than those of T1, or if either type is void. Converting a prvalue of type - // "pointer to T1" to the type "pointer to T2" (where T1 and T2 are object types and where the alignment - // requirements of T2 are no stricter than those of T1) and back to its original type yields the original pointer - // value. - // - // Alignments are checked in `type_index_test_ctti_alignment.cpp` test. - return *reinterpret_cast(boost::detail::ctti::n()); -} - -/// \class ctti_type_index -/// This class is a wrapper that pretends to work exactly like stl_type_index, but does -/// not require RTTI support. \b For \b description \b of \b functions \b see type_index_facade. -/// -/// This class on C++14 compatible compilers has following functions marked as constexpr: -/// * default constructor -/// * copy constructors and assignemnt operations -/// * class methods: name(), before(const ctti_type_index& rhs), equal(const ctti_type_index& rhs) -/// * static methods type_id(), type_id_with_cvr() -/// * comparison operators -/// -/// This class produces slightly longer type names, so consider using stl_type_index -/// in situations when typeid() is working. -class ctti_type_index: public type_index_facade { - const char* data_; - - inline std::size_t get_raw_name_length() const BOOST_NOEXCEPT; - - BOOST_CXX14_CONSTEXPR inline explicit ctti_type_index(const char* data) BOOST_NOEXCEPT - : data_(data) - {} - -public: - typedef detail::ctti_data type_info_t; - - BOOST_CXX14_CONSTEXPR inline ctti_type_index() BOOST_NOEXCEPT - : data_(boost::detail::ctti::n()) - {} - - inline ctti_type_index(const type_info_t& data) BOOST_NOEXCEPT - : data_(reinterpret_cast(&data)) - {} - - inline const type_info_t& type_info() const BOOST_NOEXCEPT; - BOOST_CXX14_CONSTEXPR inline const char* raw_name() const BOOST_NOEXCEPT; - BOOST_CXX14_CONSTEXPR inline const char* name() const BOOST_NOEXCEPT; - inline std::string pretty_name() const; - inline std::size_t hash_code() const BOOST_NOEXCEPT; - - BOOST_CXX14_CONSTEXPR inline bool equal(const ctti_type_index& rhs) const BOOST_NOEXCEPT; - BOOST_CXX14_CONSTEXPR inline bool before(const ctti_type_index& rhs) const BOOST_NOEXCEPT; - - template - BOOST_CXX14_CONSTEXPR inline static ctti_type_index type_id() BOOST_NOEXCEPT; - - template - BOOST_CXX14_CONSTEXPR inline static ctti_type_index type_id_with_cvr() BOOST_NOEXCEPT; - - template - inline static ctti_type_index type_id_runtime(const T& variable) BOOST_NOEXCEPT; -}; - - -inline const ctti_type_index::type_info_t& ctti_type_index::type_info() const BOOST_NOEXCEPT { - return *reinterpret_cast(data_); -} - - -BOOST_CXX14_CONSTEXPR inline bool ctti_type_index::equal(const ctti_type_index& rhs) const BOOST_NOEXCEPT { - const char* const left = raw_name(); - const char* const right = rhs.raw_name(); - return /*left == right ||*/ !boost::typeindex::detail::constexpr_strcmp(left, right); -} - -BOOST_CXX14_CONSTEXPR inline bool ctti_type_index::before(const ctti_type_index& rhs) const BOOST_NOEXCEPT { - const char* const left = raw_name(); - const char* const right = rhs.raw_name(); - return /*left != right &&*/ boost::typeindex::detail::constexpr_strcmp(left, right) < 0; -} - - -template -BOOST_CXX14_CONSTEXPR inline ctti_type_index ctti_type_index::type_id() BOOST_NOEXCEPT { - typedef BOOST_DEDUCED_TYPENAME boost::remove_reference::type no_ref_t; - typedef BOOST_DEDUCED_TYPENAME boost::remove_cv::type no_cvr_t; - return ctti_type_index(boost::detail::ctti::n()); -} - - - -template -BOOST_CXX14_CONSTEXPR inline ctti_type_index ctti_type_index::type_id_with_cvr() BOOST_NOEXCEPT { - return ctti_type_index(boost::detail::ctti::n()); -} - - -template -inline ctti_type_index ctti_type_index::type_id_runtime(const T& variable) BOOST_NOEXCEPT { - return variable.boost_type_index_type_id_runtime_(); -} - - -BOOST_CXX14_CONSTEXPR inline const char* ctti_type_index::raw_name() const BOOST_NOEXCEPT { - return data_; -} - - -BOOST_CXX14_CONSTEXPR inline const char* ctti_type_index::name() const BOOST_NOEXCEPT { - return data_; -} - -inline std::size_t ctti_type_index::get_raw_name_length() const BOOST_NOEXCEPT { - return std::strlen(raw_name() + detail::ctti_skip_size_at_end); -} - - -inline std::string ctti_type_index::pretty_name() const { - std::size_t len = get_raw_name_length(); - while (raw_name()[len - 1] == ' ') --len; // MSVC sometimes adds whitespaces - return std::string(raw_name(), len); -} - - -inline std::size_t ctti_type_index::hash_code() const BOOST_NOEXCEPT { - return boost::hash_range(raw_name(), raw_name() + get_raw_name_length()); -} - - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_CTTI_TYPE_INDEX_HPP - diff --git a/lib/3rdParty/boost/boost/type_index/detail/compile_time_type_info.hpp b/lib/3rdParty/boost/boost/type_index/detail/compile_time_type_info.hpp deleted file mode 100644 index a2a89ae13..000000000 --- a/lib/3rdParty/boost/boost/type_index/detail/compile_time_type_info.hpp +++ /dev/null @@ -1,289 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2012-2016. -// -// -// 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_TYPE_INDEX_DETAIL_COMPILE_TIME_TYPE_INFO_HPP -#define BOOST_TYPE_INDEX_DETAIL_COMPILE_TIME_TYPE_INFO_HPP - -/// \file compile_time_type_info.hpp -/// \brief Contains helper macros and implementation details of boost::typeindex::ctti_type_index. -/// Not intended for inclusion from user's code. - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -/// @cond -#define BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(begin_skip, end_skip, runtime_skip, runtime_skip_until) \ - namespace boost { namespace typeindex { namespace detail { \ - BOOST_STATIC_CONSTEXPR std::size_t ctti_skip_size_at_begin = begin_skip; \ - BOOST_STATIC_CONSTEXPR std::size_t ctti_skip_size_at_end = end_skip; \ - BOOST_STATIC_CONSTEXPR bool ctti_skip_more_at_runtime = runtime_skip; \ - BOOST_STATIC_CONSTEXPR char ctti_skip_until_runtime[] = runtime_skip_until; \ - }}} /* namespace boost::typeindex::detail */ \ - /**/ -/// @endcond - - -#if defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED) - /* Nothing to document. All the macro docs are moved to */ -#elif defined(BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING) -# include - BOOST_PP_EXPAND( BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING ) -#elif defined(_MSC_VER) && defined (BOOST_NO_CXX11_NOEXCEPT) - // sizeof("const char *__cdecl boost::detail::ctti<") - 1, sizeof(">::n(void)") - 1 - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(40, 10, false, "") -#elif defined(_MSC_VER) && !defined (BOOST_NO_CXX11_NOEXCEPT) - // sizeof("const char *__cdecl boost::detail::ctti<") - 1, sizeof(">::n(void) noexcept") - 1 - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(40, 19, false, "") -#elif defined(__clang__) && defined(__APPLE__) - // Someone made __clang_major__ equal to LLVM version rather than compiler version - // on APPLE platform. - // - // Using less efficient solution because there is no good way to detect real version of Clang. - // sizeof("static const char *boost::detail::ctti<") - 1, sizeof("]") - 1, true, "???????????>::n() [T = int" - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(39, 1, true, "T = ") -#elif defined(__clang__) && (__clang_major__ < 3 || (__clang_major__ == 3 && __clang_minor__ == 0)) - // sizeof("static const char *boost::detail::ctti<") - 1, sizeof(">::n()") - 1 - // note: checked on 3.0 - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(39, 6, false, "") -#elif defined(__clang__) && (__clang_major__ >= 4 || (__clang_major__ == 3 && __clang_minor__ > 0)) - // sizeof("static const char *boost::detail::ctti<") - 1, sizeof("]") - 1, true, "int>::n() [T = int" - // note: checked on 3.1, 3.4 - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(39, 1, true, "T = ") -#elif defined(__GNUC__) && !defined(BOOST_NO_CXX14_CONSTEXPR) - // sizeof("static contexpr char boost::detail::ctti::s() [with unsigned int I = 0u; T = ") - 1, sizeof("]") - 1 - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(81, 1, false, "") -#elif defined(__GNUC__) && defined(BOOST_NO_CXX14_CONSTEXPR) - // sizeof("static const char* boost::detail::ctti::n() [with T = ") - 1, sizeof("]") - 1 - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(57, 1, false, "") -#else - // Deafult code for other platforms... Just skip nothing! - BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(0, 0, false, "") -#endif - -#undef BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS - -namespace boost { namespace typeindex { namespace detail { - template - BOOST_CXX14_CONSTEXPR inline void assert_compile_time_legths() BOOST_NOEXCEPT { - BOOST_STATIC_ASSERT_MSG( - Condition, - "TypeIndex library is misconfigured for your compiler. " - "Please define BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING to correct values. See section " - "'RTTI emulation limitations' of the documentation for more information." - ); - } - - template - BOOST_CXX14_CONSTEXPR inline void failed_to_get_function_name() BOOST_NOEXCEPT { - BOOST_STATIC_ASSERT_MSG( - sizeof(T) && false, - "TypeIndex library could not detect your compiler. " - "Please make the BOOST_TYPE_INDEX_FUNCTION_SIGNATURE macro use " - "correct compiler macro for getting the whole function name. " - "Define BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING to correct value after that." - ); - } - - template - BOOST_CXX14_CONSTEXPR inline const char* skip_begining_runtime(const char* begin, boost::mpl::false_) BOOST_NOEXCEPT { - return begin; - } - - template - BOOST_CXX14_CONSTEXPR inline ForwardIterator1 constexpr_search( - ForwardIterator1 first1, - ForwardIterator1 last1, - ForwardIterator2 first2, - ForwardIterator2 last2) BOOST_NOEXCEPT - { - if (first2 == last2) { - return first1; // specified in C++11 - } - - while (first1 != last1) { - ForwardIterator1 it1 = first1; - ForwardIterator2 it2 = first2; - - while (*it1 == *it2) { - ++it1; - ++it2; - if (it2 == last2) return first1; - if (it1 == last1) return last1; - } - - ++first1; - } - - return last1; - } - - BOOST_CXX14_CONSTEXPR inline int constexpr_strcmp(const char *v1, const char *v2) BOOST_NOEXCEPT { - while (*v1 != '\0' && *v1 == *v2) { - ++v1; - ++v2; - }; - - return static_cast(*v1) - *v2; - } - - template - BOOST_CXX14_CONSTEXPR inline const char* skip_begining_runtime(const char* begin, boost::mpl::true_) BOOST_NOEXCEPT { - const char* const it = constexpr_search( - begin, begin + ArrayLength, - ctti_skip_until_runtime, ctti_skip_until_runtime + sizeof(ctti_skip_until_runtime) - 1 - ); - return (it == begin + ArrayLength ? begin : it + sizeof(ctti_skip_until_runtime) - 1); - } - - template - BOOST_CXX14_CONSTEXPR inline const char* skip_begining(const char* begin) BOOST_NOEXCEPT { - assert_compile_time_legths<(ArrayLength > ctti_skip_size_at_begin + ctti_skip_size_at_end)>(); - return skip_begining_runtime( - begin + ctti_skip_size_at_begin, - boost::mpl::bool_() - ); - } - -#if !defined(__clang__) && defined(__GNUC__) && !defined(BOOST_NO_CXX14_CONSTEXPR) - template - struct index_seq {}; - - template - struct make_index_sequence_join; - - template - struct make_index_sequence_join, index_seq > { - typedef index_seq type; - }; - - template - struct make_index_seq_impl { - typedef typename make_index_sequence_join< - typename make_index_seq_impl::type, - typename make_index_seq_impl::type - >::type type; - }; - - template - struct make_index_seq_impl { - typedef index_seq<> type; - }; - - template - struct make_index_seq_impl { - typedef index_seq type; - }; - - template - struct cstring { - static constexpr unsigned int size_ = sizeof...(C); - static constexpr char data_[size_] = { C... }; - }; - - template - constexpr char cstring::data_[]; -#endif - -}}} // namespace boost::typeindex::detail - -namespace boost { namespace detail { - -/// Noncopyable type_info that does not require RTTI. -/// CTTI == Compile Time Type Info. -/// This name must be as short as possible, to avoid code bloat -template -struct ctti { - -#if !defined(__clang__) && defined(__GNUC__) && !defined(BOOST_NO_CXX14_CONSTEXPR) - //helper functions - template - constexpr static char s() BOOST_NOEXCEPT { // step - constexpr unsigned int offset = - (I >= 10u ? 1u : 0u) - + (I >= 100u ? 1u : 0u) - + (I >= 1000u ? 1u : 0u) - + (I >= 10000u ? 1u : 0u) - + (I >= 100000u ? 1u : 0u) - + (I >= 1000000u ? 1u : 0u) - ; - - #if defined(BOOST_TYPE_INDEX_FUNCTION_SIGNATURE) - return BOOST_TYPE_INDEX_FUNCTION_SIGNATURE[I + offset]; - #elif defined(__FUNCSIG__) - return __FUNCSIG__[I + offset]; - #else - return __PRETTY_FUNCTION__[I + offset]; - #endif - } - - template - constexpr static const char* impl(::boost::typeindex::detail::index_seq ) BOOST_NOEXCEPT { - return ::boost::typeindex::detail::cstring()...>::data_; - } - - template // `D` means `Dummy` - constexpr static const char* n() BOOST_NOEXCEPT { - #if defined(BOOST_TYPE_INDEX_FUNCTION_SIGNATURE) - constexpr unsigned int size = sizeof(BOOST_TYPE_INDEX_FUNCTION_SIGNATURE); - #elif defined(__FUNCSIG__) - constexpr unsigned int size = sizeof(__FUNCSIG__); - #elif defined(__PRETTY_FUNCTION__) \ - || defined(__GNUC__) \ - || (defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130)) \ - || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICC) && (__ICC >= 600)) \ - || defined(__ghs__) \ - || defined(__DMC__) - constexpr unsigned int size = sizeof(__PRETTY_FUNCTION__); - #else - boost::typeindex::detail::failed_to_get_function_name(); - #endif - - boost::typeindex::detail::assert_compile_time_legths< - (size > boost::typeindex::detail::ctti_skip_size_at_begin + boost::typeindex::detail::ctti_skip_size_at_end + sizeof("const *") - 1) - >(); - static_assert(!boost::typeindex::detail::ctti_skip_more_at_runtime, "Skipping for GCC in C++14 mode is unsupported"); - - typedef typename boost::typeindex::detail::make_index_seq_impl< - boost::typeindex::detail::ctti_skip_size_at_begin, - size - sizeof("const *") + 1 - boost::typeindex::detail::ctti_skip_size_at_begin - >::type idx_seq; - return impl(idx_seq()); - } -#else - /// Returns raw name. Must be as short, as possible, to avoid code bloat - BOOST_CXX14_CONSTEXPR static const char* n() BOOST_NOEXCEPT { - #if defined(BOOST_TYPE_INDEX_FUNCTION_SIGNATURE) - return boost::typeindex::detail::skip_begining< sizeof(BOOST_TYPE_INDEX_FUNCTION_SIGNATURE) >(BOOST_TYPE_INDEX_FUNCTION_SIGNATURE); - #elif defined(__FUNCSIG__) - return boost::typeindex::detail::skip_begining< sizeof(__FUNCSIG__) >(__FUNCSIG__); - #elif defined(__PRETTY_FUNCTION__) \ - || defined(__GNUC__) \ - || (defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130)) \ - || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICC) && (__ICC >= 600)) \ - || defined(__ghs__) \ - || defined(__DMC__) - return boost::typeindex::detail::skip_begining< sizeof(__PRETTY_FUNCTION__) >(__PRETTY_FUNCTION__); - #else - boost::typeindex::detail::failed_to_get_function_name(); - return ""; - #endif - } -#endif -}; - -}} // namespace boost::detail - -#endif // BOOST_TYPE_INDEX_DETAIL_COMPILE_TIME_TYPE_INFO_HPP - diff --git a/lib/3rdParty/boost/boost/type_index/detail/ctti_register_class.hpp b/lib/3rdParty/boost/boost/type_index/detail/ctti_register_class.hpp deleted file mode 100644 index a8cef2c49..000000000 --- a/lib/3rdParty/boost/boost/type_index/detail/ctti_register_class.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2013-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) -// - -#ifndef BOOST_TYPE_INDEX_CTTI_REGISTER_CLASS_HPP -#define BOOST_TYPE_INDEX_CTTI_REGISTER_CLASS_HPP - -/// \file ctti_register_class.hpp -/// \brief Contains BOOST_TYPE_INDEX_REGISTER_CLASS macro implementation that uses boost::typeindex::ctti_type_index. -/// Not intended for inclusion from user's code. - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { namespace detail { - -template -inline const ctti_data& ctti_construct_typeid_ref(const T*) BOOST_NOEXCEPT { - return ctti_construct(); -} - -}}} // namespace boost::typeindex::detail - -/// @cond -#define BOOST_TYPE_INDEX_REGISTER_CLASS \ - virtual const boost::typeindex::detail::ctti_data& boost_type_index_type_id_runtime_() const BOOST_NOEXCEPT { \ - return boost::typeindex::detail::ctti_construct_typeid_ref(this); \ - } \ -/**/ -/// @endcond - -#endif // BOOST_TYPE_INDEX_CTTI_REGISTER_CLASS_HPP - diff --git a/lib/3rdParty/boost/boost/type_index/detail/stl_register_class.hpp b/lib/3rdParty/boost/boost/type_index/detail/stl_register_class.hpp deleted file mode 100644 index 95a26f7b0..000000000 --- a/lib/3rdParty/boost/boost/type_index/detail/stl_register_class.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2013-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) -// - -#ifndef BOOST_TYPE_INDEX_STL_REGISTER_CLASS_HPP -#define BOOST_TYPE_INDEX_STL_REGISTER_CLASS_HPP - -/// \file stl_register_class.hpp -/// \brief Contains BOOST_TYPE_INDEX_REGISTER_CLASS macro implementation that uses boost::typeindex::stl_type_index. -/// Not intended for inclusion from user's code. - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { namespace detail { - -template -inline const stl_type_index::type_info_t& stl_construct_typeid_ref(const T*) BOOST_NOEXCEPT { - return typeid(T); -} - -}}} // namespace boost::typeindex::detail - -/// @cond -#define BOOST_TYPE_INDEX_REGISTER_CLASS \ - virtual const boost::typeindex::stl_type_index::type_info_t& boost_type_index_type_id_runtime_() const BOOST_NOEXCEPT { \ - return boost::typeindex::detail::stl_construct_typeid_ref(this); \ - } \ -/**/ -/// @endcond - -#endif // BOOST_TYPE_INDEX_STL_REGISTER_CLASS_HPP - diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast.hpp deleted file mode 100644 index c72b11916..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_HPP - -/// \file runtime_cast.hpp -/// \brief Contains the basic utilities necessary to fully emulate -/// dynamic_cast for language level constructs (raw pointers and references). -/// -/// boost::typeindex::runtime_cast is a drop in replacement for dynamic_cast -/// that can be used in situations where traditional rtti is either unavailable -/// or undesirable. - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_HPP diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp deleted file mode 100644 index e31f19d72..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_BOOST_SHARED_PTR_CAST_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_BOOST_SHARED_PTR_CAST_HPP - -/// \file boost_shared_ptr_cast.hpp -/// \brief Contains the overload of boost::typeindex::runtime_pointer_cast for -/// boost::shared_ptr types. - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -/// \brief Creates a new instance of std::shared_ptr whose stored pointer is obtained from u's -/// stored pointer using a runtime_cast. -/// -/// The new shared_ptr will share ownership with u, except that it is empty if the runtime_cast -/// performed by runtime_pointer_cast returns a null pointer. -/// \tparam T The desired target type to return a pointer of. -/// \tparam U A complete class type of the source instance pointed to from u. -/// \return If there exists a valid conversion from U* to T*, returns a boost::shared_ptr -/// that points to an address suitably offset from u. -/// If no such conversion exists, returns boost::shared_ptr(); -template -boost::shared_ptr runtime_pointer_cast(boost::shared_ptr const& u) { - T* value = detail::runtime_cast_impl(u.get(), boost::is_base_and_derived()); - if(value) - return boost::shared_ptr(u, value); - return boost::shared_ptr(); -} - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_BOOST_SHARED_PTR_CAST_HPP diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast/detail/runtime_cast_impl.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast/detail/runtime_cast_impl.hpp deleted file mode 100644 index 6181df60f..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast/detail/runtime_cast_impl.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_DETAIL_RUNTIME_CAST_IMPL_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_DETAIL_RUNTIME_CAST_IMPL_HPP - -/// \file runtime_cast_impl.hpp -/// \brief Contains the overload of boost::typeindex::runtime_cast for -/// pointer types. -/// -/// boost::typeindex::runtime_cast can be used to emulate dynamic_cast -/// functionality on platorms that don't provide it or should the user -/// desire opt in functionality instead of enabling it system wide. - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -namespace detail { - -template -T* runtime_cast_impl(U* u, boost::true_type) BOOST_NOEXCEPT { - return u; -} - -template -T const* runtime_cast_impl(U const* u, boost::true_type) BOOST_NOEXCEPT { - return u; -} - -template -T* runtime_cast_impl(U* u, boost::false_type) BOOST_NOEXCEPT { - return const_cast(static_cast( - u->boost_type_index_find_instance_(boost::typeindex::type_id()) - )); -} - -template -T const* runtime_cast_impl(U const* u, boost::false_type) BOOST_NOEXCEPT { - return static_cast(u->boost_type_index_find_instance_(boost::typeindex::type_id())); -} - -} // namespace detail - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_DETAIL_RUNTIME_CAST_IMPL_HPP diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast/pointer_cast.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast/pointer_cast.hpp deleted file mode 100644 index 49a761390..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast/pointer_cast.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_POINTER_CAST_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_POINTER_CAST_HPP - -/// \file pointer_class.hpp -/// \brief Contains the function overloads of boost::typeindex::runtime_cast for -/// pointer types. -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -/// \brief Safely converts pointers to classes up, down, and sideways along the inheritance hierarchy. -/// \tparam T The desired target type. Like dynamic_cast, must be a pointer to complete class type. -/// \tparam U A complete class type of the source instance, u. -/// \return If there exists a valid conversion from U* to T, returns a T that points to -/// an address suitably offset from u. If no such conversion exists, returns NULL. -template -T runtime_cast(U* u) BOOST_NOEXCEPT { - typedef typename boost::remove_pointer::type impl_type; - return detail::runtime_cast_impl(u, boost::is_base_and_derived()); -} - -/// \brief Safely converts pointers to classes up, down, and sideways along the inheritance hierarchy. -/// \tparam T The desired target type. Like dynamic_cast, must be a pointer to complete class type. -/// \tparam U A complete class type of the source instance, u. -/// \return If there exists a valid conversion from U* to T, returns a T that points to -/// an address suitably offset from u. If no such conversion exists, returns NULL. -template -T runtime_cast(U const* u) BOOST_NOEXCEPT { - typedef typename boost::remove_pointer::type impl_type; - return detail::runtime_cast_impl(u, boost::is_base_and_derived()); -} - -/// \brief Safely converts pointers to classes up, down, and sideways along the inheritance -/// hierarchy. -/// \tparam T The desired target type to return a pointer to. -/// \tparam U A complete class type of the source instance, u. -/// \return If there exists a valid conversion from U const* to T*, returns a T* -/// that points to an address suitably offset from u. -/// If no such conversion exists, returns NULL. -template -T* runtime_pointer_cast(U* u) BOOST_NOEXCEPT { - return detail::runtime_cast_impl(u, boost::is_base_and_derived()); -} - -/// \brief Safely converts pointers to classes up, down, and sideways along the inheritance -/// hierarchy. -/// \tparam T The desired target type to return a pointer to. -/// \tparam U A complete class type of the source instance, u. -/// \return If there exists a valid conversion from U const* to T const*, returns a T const* -/// that points to an address suitably offset from u. -/// If no such conversion exists, returns NULL. -template -T const* runtime_pointer_cast(U const* u) BOOST_NOEXCEPT { - return detail::runtime_cast_impl(u, boost::is_base_and_derived()); -} - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_POINTER_CAST_HPP diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast/reference_cast.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast/reference_cast.hpp deleted file mode 100644 index 1511f7d03..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast/reference_cast.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_REFERENCE_CAST_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_REFERENCE_CAST_HPP - -/// \file reference_cast.hpp -/// \brief Contains the overload of boost::typeindex::runtime_cast for -/// reference types. - -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -/// \brief Indicates that runtime_cast was unable to perform the desired cast operation -/// because the source instance was not also an instance of the target type. -struct bad_runtime_cast : std::exception -{}; - -/// \brief Safely converts references to classes up, down, and sideways along the inheritance hierarchy. -/// \tparam T The desired target type. Like dynamic_cast, must be a pointer to complete class type. -/// \tparam U A complete class type of the source instance, u. -/// \return If there exists a valid conversion from U& to T, returns a T that references an address -/// suitably offset from u. If no such conversion exists, throws boost::typeindex::bad_runtime_cast. -template -typename boost::add_reference::type runtime_cast(U& u) { - typedef typename boost::remove_reference::type impl_type; - impl_type* value = detail::runtime_cast_impl( - boost::addressof(u), boost::is_base_and_derived()); - if(!value) - BOOST_THROW_EXCEPTION(bad_runtime_cast()); - return *value; -} - -/// \brief Safely converts references to classes up, down, and sideways along the inheritance hierarchy. -/// \tparam T The desired target type. Like dynamic_cast, must be a pointer to complete class type. -/// \tparam U A complete class type of the source instance, u. -/// \return If there exists a valid conversion from U const& to T const, returns a T const that references an address -/// suitably offset from u. If no such conversion exists, throws boost::typeindex::bad_runtime_cast. -template -typename boost::add_reference::type runtime_cast(U const& u) { - typedef typename boost::remove_reference::type impl_type; - impl_type* value = detail::runtime_cast_impl( - boost::addressof(u), boost::is_base_and_derived()); - if(!value) - BOOST_THROW_EXCEPTION(bad_runtime_cast()); - return *value; -} - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_REFERENCE_CAST_HPP diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast/register_runtime_class.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast/register_runtime_class.hpp deleted file mode 100644 index 37ce686e3..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast/register_runtime_class.hpp +++ /dev/null @@ -1,88 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_REGISTER_RUNTIME_CLASS_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_REGISTER_RUNTIME_CLASS_HPP - -/// \file register_runtime_class.hpp -/// \brief Contains the macro BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -namespace detail { - -template -inline type_index runtime_class_construct_type_id(T const*) { - return type_id(); -} - -} // namespace detail - -/// @cond - -#define BOOST_TYPE_INDEX_CHECK_BASE_(r, data, Base) \ - if(void const* ret_val = this->Base::boost_type_index_find_instance_(idx)) return ret_val; - -/// @endcond - -/// \def BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS -/// \brief Macro used to make a class compatible with boost::typeindex::runtime_cast -/// -/// BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS generates a virtual function -/// in the current class that, when combined with the supplied base class information, allows -/// boost::typeindex::runtime_cast to accurately convert between dynamic types of instances of -/// the current class. -/// -/// \b Example: -/// \code -/// struct base1 { -/// BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS(BOOST_TYPE_INDEX_NO_BASE_CLASS) -/// virtual ~base1(); -/// }; -/// -/// struct base2 { -/// BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS(BOOST_TYPE_INDEX_NO_BASE_CLASS) -/// virtual ~base2(); -/// }; -/// -/// struct derived1 : base1 { -/// BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS((base1)) -/// }; -/// -/// struct derived2 : base1, base2 { -/// BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS((base1)(base2)) -/// }; -/// -/// ... -/// -/// base1* pb1 = get_object(); -/// if(derived2* pb2 = boost::typeindex::runtime_cast(pb1)) -/// { /* ... */ } -/// \endcode -/// -/// \param base_class_seq A Boost.Preprocessor sequence of the current class' direct bases, or -/// BOOST_PP_SEQ_NIL if this class has no direct base classes. -#define BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS(base_class_seq) \ - BOOST_TYPE_INDEX_REGISTER_CLASS \ - virtual void const* boost_type_index_find_instance_(boost::typeindex::type_index const& idx) const BOOST_NOEXCEPT { \ - if(idx == boost::typeindex::detail::runtime_class_construct_type_id(this)) \ - return this; \ - BOOST_PP_SEQ_FOR_EACH(BOOST_TYPE_INDEX_CHECK_BASE_, _, base_class_seq) \ - return NULL; \ - } -}} // namespace boost::typeindex - -#define BOOST_TYPE_INDEX_NO_BASE_CLASS BOOST_PP_SEQ_NIL - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_REGISTER_RUNTIME_CLASS_HPP diff --git a/lib/3rdParty/boost/boost/type_index/runtime_cast/std_shared_ptr_cast.hpp b/lib/3rdParty/boost/boost/type_index/runtime_cast/std_shared_ptr_cast.hpp deleted file mode 100644 index 277a52426..000000000 --- a/lib/3rdParty/boost/boost/type_index/runtime_cast/std_shared_ptr_cast.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// Copyright (c) Chris Glover, 2016. -// -// -// 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_TYPE_INDEX_RUNTIME_CAST_STD_SHARED_PTR_CAST_HPP -#define BOOST_TYPE_INDEX_RUNTIME_CAST_STD_SHARED_PTR_CAST_HPP - -/// \file std_shared_ptr_cast.hpp -/// \brief Contains the overload of boost::typeindex::runtime_pointer_cast for -/// std::shared_ptr types. - -#include -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -/// \brief Creates a new instance of std::shared_ptr whose stored pointer is obtained from u's -/// stored pointer using a runtime_cast. -/// -/// The new shared_ptr will share ownership with u, except that it is empty if the runtime_cast -/// performed by runtime_pointer_cast returns a null pointer. -/// \tparam T The desired target type to return a pointer of. -/// \tparam U A complete class type of the source instance pointed to from u. -/// \return If there exists a valid conversion from U* to T*, returns a std::shared_ptr -/// that points to an address suitably offset from u. -/// If no such conversion exists, returns std::shared_ptr(); -template -std::shared_ptr runtime_pointer_cast(std::shared_ptr const& u) { - T* value = detail::runtime_cast_impl(u.get(), boost::is_base_and_derived()); - if(value) - return std::shared_ptr(u, value); - return std::shared_ptr(); -} - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_RUNTIME_CAST_STD_SHARED_PTR_CAST_HPP diff --git a/lib/3rdParty/boost/boost/type_index/stl_type_index.hpp b/lib/3rdParty/boost/boost/type_index/stl_type_index.hpp deleted file mode 100644 index a5add8871..000000000 --- a/lib/3rdParty/boost/boost/type_index/stl_type_index.hpp +++ /dev/null @@ -1,272 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2013-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) -// - -#ifndef BOOST_TYPE_INDEX_STL_TYPE_INDEX_HPP -#define BOOST_TYPE_INDEX_STL_TYPE_INDEX_HPP - -/// \file stl_type_index.hpp -/// \brief Contains boost::typeindex::stl_type_index class. -/// -/// boost::typeindex::stl_type_index class can be used as a drop-in replacement -/// for std::type_index. -/// -/// It is used in situations when RTTI is enabled or typeid() method is available. -/// When typeid() is disabled or BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY macro -/// is defined boost::typeindex::ctti is usually used instead of boost::typeindex::stl_type_index. - -#include - -// MSVC is capable of calling typeid(T) even when RTTI is off -#if defined(BOOST_NO_RTTI) && !defined(BOOST_MSVC) -#error "File boost/type_index/stl_type_index.ipp is not usable when typeid() is not available." -#endif - -#include -#include // std::strcmp, std::strlen, std::strstr -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if (defined(__EDG_VERSION__) && __EDG_VERSION__ < 245) \ - || (defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 744) -# include -# include -# include -#endif - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -namespace boost { namespace typeindex { - -/// \class stl_type_index -/// This class is a wrapper around std::type_info, that workarounds issues and provides -/// much more rich interface. \b For \b description \b of \b functions \b see type_index_facade. -/// -/// This class requires typeid() to work. For cases when RTTI is disabled see ctti_type_index. -class stl_type_index - : public type_index_facade< - stl_type_index, - #ifdef BOOST_NO_STD_TYPEINFO - type_info - #else - std::type_info - #endif - > -{ -public: -#ifdef BOOST_NO_STD_TYPEINFO - typedef type_info type_info_t; -#else - typedef std::type_info type_info_t; -#endif - -private: - const type_info_t* data_; - -public: - inline stl_type_index() BOOST_NOEXCEPT - : data_(&typeid(void)) - {} - - inline stl_type_index(const type_info_t& data) BOOST_NOEXCEPT - : data_(&data) - {} - - inline const type_info_t& type_info() const BOOST_NOEXCEPT; - - inline const char* raw_name() const BOOST_NOEXCEPT; - inline const char* name() const BOOST_NOEXCEPT; - inline std::string pretty_name() const; - - inline std::size_t hash_code() const BOOST_NOEXCEPT; - inline bool equal(const stl_type_index& rhs) const BOOST_NOEXCEPT; - inline bool before(const stl_type_index& rhs) const BOOST_NOEXCEPT; - - template - inline static stl_type_index type_id() BOOST_NOEXCEPT; - - template - inline static stl_type_index type_id_with_cvr() BOOST_NOEXCEPT; - - template - inline static stl_type_index type_id_runtime(const T& value) BOOST_NOEXCEPT; -}; - -inline const stl_type_index::type_info_t& stl_type_index::type_info() const BOOST_NOEXCEPT { - return *data_; -} - - -inline const char* stl_type_index::raw_name() const BOOST_NOEXCEPT { -#ifdef _MSC_VER - return data_->raw_name(); -#else - return data_->name(); -#endif -} - -inline const char* stl_type_index::name() const BOOST_NOEXCEPT { - return data_->name(); -} - -inline std::string stl_type_index::pretty_name() const { - static const char cvr_saver_name[] = "boost::typeindex::detail::cvr_saver<"; - static BOOST_CONSTEXPR_OR_CONST std::string::size_type cvr_saver_name_len = sizeof(cvr_saver_name) - 1; - - // In case of MSVC demangle() is a no-op, and name() already returns demangled name. - // In case of GCC and Clang (on non-Windows systems) name() returns mangled name and demangle() undecorates it. - const boost::core::scoped_demangled_name demangled_name(data_->name()); - - const char* begin = demangled_name.get(); - if (!begin) { - boost::throw_exception(std::runtime_error("Type name demangling failed")); - } - - const std::string::size_type len = std::strlen(begin); - const char* end = begin + len; - - if (len > cvr_saver_name_len) { - const char* b = std::strstr(begin, cvr_saver_name); - if (b) { - b += cvr_saver_name_len; - - // Trim leading spaces - while (*b == ' ') { // the string is zero terminated, we won't exceed the buffer size - ++ b; - } - - // Skip the closing angle bracket - const char* e = end - 1; - while (e > b && *e != '>') { - -- e; - } - - // Trim trailing spaces - while (e > b && *(e - 1) == ' ') { - -- e; - } - - if (b < e) { - // Parsing seems to have succeeded, the type name is not empty - begin = b; - end = e; - } - } - } - - return std::string(begin, end); -} - - -inline std::size_t stl_type_index::hash_code() const BOOST_NOEXCEPT { -#if _MSC_VER > 1600 || (__GNUC__ == 4 && __GNUC_MINOR__ > 5 && defined(__GXX_EXPERIMENTAL_CXX0X__)) - return data_->hash_code(); -#else - return boost::hash_range(raw_name(), raw_name() + std::strlen(raw_name())); -#endif -} - - -/// @cond - -// for this compiler at least, cross-shared-library type_info -// comparisons don't work, so we are using typeid(x).name() instead. -# if (defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5))) \ - || defined(_AIX) \ - || (defined(__sgi) && defined(__host_mips)) \ - || (defined(__hpux) && defined(__HP_aCC)) \ - || (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC)) -# define BOOST_CLASSINFO_COMPARE_BY_NAMES -# endif - -/// @endcond - -inline bool stl_type_index::equal(const stl_type_index& rhs) const BOOST_NOEXCEPT { -#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES - return raw_name() == rhs.raw_name() || !std::strcmp(raw_name(), rhs.raw_name()); -#else - return !!(*data_ == *rhs.data_); -#endif -} - -inline bool stl_type_index::before(const stl_type_index& rhs) const BOOST_NOEXCEPT { -#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES - return raw_name() != rhs.raw_name() && std::strcmp(raw_name(), rhs.raw_name()) < 0; -#else - return !!data_->before(*rhs.data_); -#endif -} - -#ifdef BOOST_CLASSINFO_COMPARE_BY_NAMES -#undef BOOST_CLASSINFO_COMPARE_BY_NAMES -#endif - - - -template -inline stl_type_index stl_type_index::type_id() BOOST_NOEXCEPT { - typedef BOOST_DEDUCED_TYPENAME boost::remove_reference::type no_ref_t; - typedef BOOST_DEDUCED_TYPENAME boost::remove_cv::type no_cvr_prefinal_t; - - # if (defined(__EDG_VERSION__) && __EDG_VERSION__ < 245) \ - || (defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 744) - - // Old EDG-based compilers seem to mistakenly distinguish 'integral' from 'signed integral' - // in typeid() expressions. Full template specialization for 'integral' fixes that issue: - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_signed, - boost::make_signed, - boost::mpl::identity - >::type no_cvr_prefinal_lazy_t; - - typedef BOOST_DEDUCED_TYPENAME no_cvr_prefinal_t::type no_cvr_t; - #else - typedef no_cvr_prefinal_t no_cvr_t; - #endif - - return typeid(no_cvr_t); -} - -namespace detail { - template class cvr_saver{}; -} - -template -inline stl_type_index stl_type_index::type_id_with_cvr() BOOST_NOEXCEPT { - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::mpl::or_, boost::is_const, boost::is_volatile >, - detail::cvr_saver, - T - >::type type; - - return typeid(type); -} - - -template -inline stl_type_index stl_type_index::type_id_runtime(const T& value) BOOST_NOEXCEPT { -#ifdef BOOST_NO_RTTI - return value.boost_type_index_type_id_runtime_(); -#else - return typeid(value); -#endif -} - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_STL_TYPE_INDEX_HPP diff --git a/lib/3rdParty/boost/boost/type_index/type_index_facade.hpp b/lib/3rdParty/boost/boost/type_index/type_index_facade.hpp deleted file mode 100644 index dd35df2ca..000000000 --- a/lib/3rdParty/boost/boost/type_index/type_index_facade.hpp +++ /dev/null @@ -1,300 +0,0 @@ -// -// Copyright (c) Antony Polukhin, 2013-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) -// - -#ifndef BOOST_TYPE_INDEX_TYPE_INDEX_FACADE_HPP -#define BOOST_TYPE_INDEX_TYPE_INDEX_FACADE_HPP - -#include -#include -#include - -#if !defined(BOOST_NO_IOSTREAM) -#if !defined(BOOST_NO_IOSFWD) -#include // for std::basic_ostream -#else -#include -#endif -#endif - -#ifdef BOOST_HAS_PRAGMA_ONCE -# pragma once -#endif - -// Forward declaration from #include -namespace boost { - template std::size_t hash_range(It, It); -} - -namespace boost { namespace typeindex { - -/// \class type_index_facade -/// -/// This class takes care about the comparison operators, hash functions and -/// ostream operators. Use this class as a public base class for defining new -/// type_info-conforming classes. -/// -/// \b Example: -/// \code -/// class stl_type_index: public type_index_facade -/// { -/// public: -/// typedef std::type_info type_info_t; -/// private: -/// const type_info_t* data_; -/// -/// public: -/// stl_type_index(const type_info_t& data) noexcept -/// : data_(&data) -/// {} -/// // ... -/// }; -/// \endcode -/// -/// \tparam Derived Class derived from type_index_facade. -/// \tparam TypeInfo Class that will be used as a base type_info class. -/// \note Take a look at the protected methods. They are \b not \b defined in type_index_facade. -/// Protected member functions raw_name() \b must be defined in Derived class. All the other -/// methods are mandatory. -/// \see 'Making a custom type_index' section for more information about -/// creating your own type_index using type_index_facade. -template -class type_index_facade { -private: - /// @cond - BOOST_CXX14_CONSTEXPR const Derived & derived() const BOOST_NOEXCEPT { - return *static_cast(this); - } - /// @endcond -public: - typedef TypeInfo type_info_t; - - /// \b Override: This function \b may be redefined in Derived class. Overrides \b must not throw. - /// \return Name of a type. By default returns Derived::raw_name(). - inline const char* name() const BOOST_NOEXCEPT { - return derived().raw_name(); - } - - /// \b Override: This function \b may be redefined in Derived class. Overrides may throw. - /// \return Human readable type name. By default returns Derived::name(). - inline std::string pretty_name() const { - return derived().name(); - } - - /// \b Override: This function \b may be redefined in Derived class. Overrides \b must not throw. - /// \return True if two types are equal. By default compares types by raw_name(). - inline bool equal(const Derived& rhs) const BOOST_NOEXCEPT { - const char* const left = derived().raw_name(); - const char* const right = rhs.raw_name(); - return left == right || !std::strcmp(left, right); - } - - /// \b Override: This function \b may be redefined in Derived class. Overrides \b must not throw. - /// \return True if rhs is greater than this. By default compares types by raw_name(). - inline bool before(const Derived& rhs) const BOOST_NOEXCEPT { - const char* const left = derived().raw_name(); - const char* const right = rhs.raw_name(); - return left != right && std::strcmp(left, right) < 0; - } - - /// \b Override: This function \b may be redefined in Derived class. Overrides \b must not throw. - /// \return Hash code of a type. By default hashes types by raw_name(). - /// \note has to be included if this function is used. - inline std::size_t hash_code() const BOOST_NOEXCEPT { - const char* const name_raw = derived().raw_name(); - return boost::hash_range(name_raw, name_raw + std::strlen(name_raw)); - } - -#if defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED) -protected: - /// \b Override: This function \b must be redefined in Derived class. Overrides \b must not throw. - /// \return Pointer to unredable/raw type name. - inline const char* raw_name() const BOOST_NOEXCEPT; - - /// \b Override: This function \b may be redefined in Derived class. Overrides \b must not throw. - /// \return Const reference to underlying low level type_info_t. - inline const type_info_t& type_info() const BOOST_NOEXCEPT; - - /// This is a factory method that is used to create instances of Derived classes. - /// boost::typeindex::type_id() will call this method, if Derived has same type as boost::typeindex::type_index. - /// - /// \b Override: This function \b may be redefined and made public in Derived class. Overrides \b must not throw. - /// Overrides \b must remove const, volatile && and & modifiers from T. - /// \tparam T Type for which type_index must be created. - /// \return type_index for type T. - template - static Derived type_id() BOOST_NOEXCEPT; - - /// This is a factory method that is used to create instances of Derived classes. - /// boost::typeindex::type_id_with_cvr() will call this method, if Derived has same type as boost::typeindex::type_index. - /// - /// \b Override: This function \b may be redefined and made public in Derived class. Overrides \b must not throw. - /// Overrides \b must \b not remove const, volatile && and & modifiers from T. - /// \tparam T Type for which type_index must be created. - /// \return type_index for type T. - template - static Derived type_id_with_cvr() BOOST_NOEXCEPT; - - /// This is a factory method that is used to create instances of Derived classes. - /// boost::typeindex::type_id_runtime(const T&) will call this method, if Derived has same type as boost::typeindex::type_index. - /// - /// \b Override: This function \b may be redefined and made public in Derived class. - /// \param variable Variable which runtime type will be stored in type_index. - /// \return type_index with runtime type of variable. - template - static Derived type_id_runtime(const T& variable) BOOST_NOEXCEPT; - -#endif - -}; - -/// @cond -template -BOOST_CXX14_CONSTEXPR inline bool operator == (const type_index_facade& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return static_cast(lhs).equal(static_cast(rhs)); -} - -template -BOOST_CXX14_CONSTEXPR inline bool operator < (const type_index_facade& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return static_cast(lhs).before(static_cast(rhs)); -} - - - -template -BOOST_CXX14_CONSTEXPR inline bool operator > (const type_index_facade& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return rhs < lhs; -} - -template -BOOST_CXX14_CONSTEXPR inline bool operator <= (const type_index_facade& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return !(lhs > rhs); -} - -template -BOOST_CXX14_CONSTEXPR inline bool operator >= (const type_index_facade& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return !(lhs < rhs); -} - -template -BOOST_CXX14_CONSTEXPR inline bool operator != (const type_index_facade& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return !(lhs == rhs); -} - -// ######################### COMPARISONS with Derived ############################ // -template -inline bool operator == (const TypeInfo& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return Derived(lhs) == rhs; -} - -template -inline bool operator < (const TypeInfo& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return Derived(lhs) < rhs; -} - -template -inline bool operator > (const TypeInfo& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return rhs < Derived(lhs); -} - -template -inline bool operator <= (const TypeInfo& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return !(Derived(lhs) > rhs); -} - -template -inline bool operator >= (const TypeInfo& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return !(Derived(lhs) < rhs); -} - -template -inline bool operator != (const TypeInfo& lhs, const type_index_facade& rhs) BOOST_NOEXCEPT { - return !(Derived(lhs) == rhs); -} - - -template -inline bool operator == (const type_index_facade& lhs, const TypeInfo& rhs) BOOST_NOEXCEPT { - return lhs == Derived(rhs); -} - -template -inline bool operator < (const type_index_facade& lhs, const TypeInfo& rhs) BOOST_NOEXCEPT { - return lhs < Derived(rhs); -} - -template -inline bool operator > (const type_index_facade& lhs, const TypeInfo& rhs) BOOST_NOEXCEPT { - return Derived(rhs) < lhs; -} - -template -inline bool operator <= (const type_index_facade& lhs, const TypeInfo& rhs) BOOST_NOEXCEPT { - return !(lhs > Derived(rhs)); -} - -template -inline bool operator >= (const type_index_facade& lhs, const TypeInfo& rhs) BOOST_NOEXCEPT { - return !(lhs < Derived(rhs)); -} - -template -inline bool operator != (const type_index_facade& lhs, const TypeInfo& rhs) BOOST_NOEXCEPT { - return !(lhs == Derived(rhs)); -} - -// ######################### COMPARISONS with Derived END ############################ // - -/// @endcond - -#if defined(BOOST_TYPE_INDEX_DOXYGEN_INVOKED) - -/// noexcept comparison operators for type_index_facade classes. -bool operator ==, !=, <, ... (const type_index_facade& lhs, const type_index_facade& rhs) noexcept; - -/// noexcept comparison operators for type_index_facade and it's TypeInfo classes. -bool operator ==, !=, <, ... (const type_index_facade& lhs, const TypeInfo& rhs) noexcept; - -/// noexcept comparison operators for type_index_facade's TypeInfo and type_index_facade classes. -bool operator ==, !=, <, ... (const TypeInfo& lhs, const type_index_facade& rhs) noexcept; - -#endif - -#ifndef BOOST_NO_IOSTREAM -#ifdef BOOST_NO_TEMPLATED_IOSTREAMS -/// @cond -/// Ostream operator that will output demangled name -template -inline std::ostream& operator<<(std::ostream& ostr, const type_index_facade& ind) { - ostr << static_cast(ind).pretty_name(); - return ostr; -} -/// @endcond -#else -/// Ostream operator that will output demangled name. -template -inline std::basic_ostream& operator<<( - std::basic_ostream& ostr, - const type_index_facade& ind) -{ - ostr << static_cast(ind).pretty_name(); - return ostr; -} -#endif // BOOST_NO_TEMPLATED_IOSTREAMS -#endif // BOOST_NO_IOSTREAM - -/// This free function is used by Boost's unordered containers. -/// \note has to be included if this function is used. -template -inline std::size_t hash_value(const type_index_facade& lhs) BOOST_NOEXCEPT { - return static_cast(lhs).hash_code(); -} - -}} // namespace boost::typeindex - -#endif // BOOST_TYPE_INDEX_TYPE_INDEX_FACADE_HPP - diff --git a/lib/3rdParty/boost/boost/type_traits/add_const.hpp b/lib/3rdParty/boost/boost/type_traits/add_const.hpp deleted file mode 100644 index a9fb781c7..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_const.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED -#define BOOST_TT_ADD_CONST_HPP_INCLUDED - -#include - -namespace boost { - -// * convert a type T to const type - add_const -// this is not required since the result is always -// the same as "T const", but it does suppress warnings -// from some compilers: - -#if defined(BOOST_MSVC) -// This bogus warning will appear when add_const is applied to a -// const volatile reference because we can't detect const volatile -// references with MSVC6. -# pragma warning(push) -# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored -#endif - - template struct add_const - { - typedef T const type; - }; - -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif - - template struct add_const - { - typedef T& type; - }; - -} // namespace boost - -#endif // BOOST_TT_ADD_CONST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/add_cv.hpp b/lib/3rdParty/boost/boost/type_traits/add_cv.hpp deleted file mode 100644 index e62ddee0c..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_cv.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_ADD_CV_HPP_INCLUDED -#define BOOST_TT_ADD_CV_HPP_INCLUDED - -#include - -namespace boost { - -// * convert a type T to a const volatile type - add_cv -// this is not required since the result is always -// the same as "T const volatile", but it does suppress warnings -// from some compilers: - -#if defined(BOOST_MSVC) -// This bogus warning will appear when add_volatile is applied to a -// const volatile reference because we can't detect const volatile -// references with MSVC6. -# pragma warning(push) -# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored -#endif - -template struct add_cv{ typedef T const volatile type; }; - -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif - -template struct add_cv{ typedef T& type; }; - -} // namespace boost - -#endif // BOOST_TT_ADD_CV_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/add_lvalue_reference.hpp b/lib/3rdParty/boost/boost/type_traits/add_lvalue_reference.hpp deleted file mode 100644 index 41851a1f3..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_lvalue_reference.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2010 John Maddock - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP -#define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP - -#include - -namespace boost{ - -template struct add_lvalue_reference -{ - typedef typename boost::add_reference::type type; -}; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct add_lvalue_reference -{ - typedef T& type; -}; -#endif - -} - -#endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP diff --git a/lib/3rdParty/boost/boost/type_traits/add_pointer.hpp b/lib/3rdParty/boost/boost/type_traits/add_pointer.hpp deleted file mode 100644 index 745f63a08..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_pointer.hpp +++ /dev/null @@ -1,61 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED -#define BOOST_TT_ADD_POINTER_HPP_INCLUDED - -#include - -namespace boost { - -#if defined(__BORLANDC__) && (__BORLANDC__ < 0x5A0) -// -// For some reason this implementation stops Borlands compiler -// from dropping cv-qualifiers, it still fails with references -// to arrays for some reason though (shrug...) (JM 20021104) -// -template -struct add_pointer -{ - typedef T* type; -}; -template -struct add_pointer -{ - typedef T* type; -}; -template -struct add_pointer -{ - typedef T* type; -}; -template -struct add_pointer -{ - typedef T* type; -}; -template -struct add_pointer -{ - typedef T* type; -}; - -#else - -template -struct add_pointer -{ - typedef typename remove_reference::type no_ref_type; - typedef no_ref_type* type; -}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/add_reference.hpp b/lib/3rdParty/boost/boost/type_traits/add_reference.hpp deleted file mode 100644 index 3c914154e..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_reference.hpp +++ /dev/null @@ -1,59 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED -#define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED - -#include -#include - -namespace boost { - -namespace detail { - -// -// We can't filter out rvalue_references at the same level as -// references or we get ambiguities from msvc: -// - -template -struct add_reference_impl -{ - typedef T& type; -}; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template -struct add_reference_impl -{ - typedef T&& type; -}; -#endif - -} // namespace detail - -template struct add_reference -{ - typedef typename boost::detail::add_reference_impl::type type; -}; -template struct add_reference -{ - typedef T& type; -}; - -// these full specialisations are always required: -template <> struct add_reference { typedef void type; }; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct add_reference { typedef const void type; }; -template <> struct add_reference { typedef const volatile void type; }; -template <> struct add_reference { typedef volatile void type; }; -#endif - -} // namespace boost - -#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/add_rvalue_reference.hpp b/lib/3rdParty/boost/boost/type_traits/add_rvalue_reference.hpp deleted file mode 100644 index 44ead3480..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_rvalue_reference.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// add_rvalue_reference.hpp ---------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP -#define BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP - -#include - -//----------------------------------------------------------------------------// - -#include -#include - -//----------------------------------------------------------------------------// -// // -// C++03 implementation of // -// 20.9.7.2 Reference modifications [meta.trans.ref] // -// Written by Vicente J. Botet Escriba // -// // -// If T names an object or function type then the member typedef type -// shall name T&&; otherwise, type shall name T. [ Note: This rule reflects -// the semantics of reference collapsing. For example, when a type T names -// a type T1&, the type add_rvalue_reference::type is not an rvalue -// reference. -end note ] -//----------------------------------------------------------------------------// - -namespace boost { - -namespace type_traits_detail { - - template - struct add_rvalue_reference_helper - { typedef T type; }; - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - template - struct add_rvalue_reference_helper - { - typedef T&& type; - }; -#endif - - template - struct add_rvalue_reference_imp - { - typedef typename boost::type_traits_detail::add_rvalue_reference_helper - ::value == false && is_reference::value == false) >::type type; - }; - -} - -template struct add_rvalue_reference -{ - typedef typename boost::type_traits_detail::add_rvalue_reference_imp::type type; -}; - -} // namespace boost - -#endif // BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP - diff --git a/lib/3rdParty/boost/boost/type_traits/add_volatile.hpp b/lib/3rdParty/boost/boost/type_traits/add_volatile.hpp deleted file mode 100644 index 24f515c80..000000000 --- a/lib/3rdParty/boost/boost/type_traits/add_volatile.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_ADD_VOLATILE_HPP_INCLUDED -#define BOOST_TT_ADD_VOLATILE_HPP_INCLUDED - -#include - -namespace boost { - -// * convert a type T to volatile type - add_volatile -// this is not required since the result is always -// the same as "T volatile", but it does suppress warnings -// from some compilers: - -#if defined(BOOST_MSVC) -// This bogus warning will appear when add_volatile is applied to a -// const volatile reference because we can't detect const volatile -// references with MSVC6. -# pragma warning(push) -# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored -#endif - -template struct add_volatile{ typedef T volatile type; }; - -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif - -template struct add_volatile{ typedef T& type; }; - -} // namespace boost - -#endif // BOOST_TT_ADD_VOLATILE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/aligned_storage.hpp b/lib/3rdParty/boost/boost/type_traits/aligned_storage.hpp deleted file mode 100644 index 171f5d450..000000000 --- a/lib/3rdParty/boost/boost/type_traits/aligned_storage.hpp +++ /dev/null @@ -1,138 +0,0 @@ -//----------------------------------------------------------------------------- -// boost aligned_storage.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002-2003 -// Eric Friedman, Itay Maman -// -// 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_TT_ALIGNED_STORAGE_HPP -#define BOOST_TT_ALIGNED_STORAGE_HPP - -#include // for std::size_t - -#include -#include -#include -#include -#include -#include - -namespace boost { - -namespace detail { namespace aligned_storage { - -BOOST_STATIC_CONSTANT( - std::size_t - , alignment_of_max_align = ::boost::alignment_of::value - ); - -// -// To be TR1 conforming this must be a POD type: -// -template < - std::size_t size_ - , std::size_t alignment_ -> -struct aligned_storage_imp -{ - union data_t - { - char buf[size_]; - - typename ::boost::type_with_alignment::type align_; - } data_; - void* address() const { return const_cast(this); } -}; -template -struct aligned_storage_imp -{ - union data_t - { - char buf[size]; - ::boost::detail::max_align align_; - } data_; - void* address() const { return const_cast(this); } -}; - -template< std::size_t alignment_ > -struct aligned_storage_imp<0u,alignment_> -{ - /* intentionally empty */ - void* address() const { return 0; } -}; - -}} // namespace detail::aligned_storage - -template < - std::size_t size_ - , std::size_t alignment_ = std::size_t(-1) -> -class aligned_storage : -#ifndef __BORLANDC__ - private -#else - public -#endif - ::boost::detail::aligned_storage::aligned_storage_imp -{ - -public: // constants - - typedef ::boost::detail::aligned_storage::aligned_storage_imp type; - - BOOST_STATIC_CONSTANT( - std::size_t - , size = size_ - ); - BOOST_STATIC_CONSTANT( - std::size_t - , alignment = ( - alignment_ == std::size_t(-1) - ? ::boost::detail::aligned_storage::alignment_of_max_align - : alignment_ - ) - ); - -private: // noncopyable - - aligned_storage(const aligned_storage&); - aligned_storage& operator=(const aligned_storage&); - -public: // structors - - aligned_storage() - { - } - - ~aligned_storage() - { - } - -public: // accessors - - void* address() - { - return static_cast(this)->address(); - } - - const void* address() const - { - return static_cast(this)->address(); - } -}; - -// -// Make sure that is_pod recognises aligned_storage<>::type -// as a POD (Note that aligned_storage<> itself is not a POD): -// -template -struct is_pod< ::boost::detail::aligned_storage::aligned_storage_imp > : public true_type{}; - -} // namespace boost - -#endif // BOOST_ALIGNED_STORAGE_HPP diff --git a/lib/3rdParty/boost/boost/type_traits/alignment_of.hpp b/lib/3rdParty/boost/boost/type_traits/alignment_of.hpp deleted file mode 100644 index 7d960e318..000000000 --- a/lib/3rdParty/boost/boost/type_traits/alignment_of.hpp +++ /dev/null @@ -1,119 +0,0 @@ - -// (C) Copyright John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED -#define BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED - -#include -#include - -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4121 4512) // alignment is sensitive to packing -#endif -#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) -#pragma option push -Vx- -Ve- -#endif - -namespace boost { - -template struct alignment_of; - -// get the alignment of some arbitrary type: -namespace detail { - -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4324) // structure was padded due to __declspec(align()) -#endif -template -struct alignment_of_hack -{ - char c; - T t; - alignment_of_hack(); -}; -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -template -struct alignment_logic -{ - BOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S); -}; - - -template< typename T > -struct alignment_of_impl -{ -#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) - // - // With MSVC both the native __alignof operator - // and our own logic gets things wrong from time to time :-( - // Using a combination of the two seems to make the most of a bad job: - // - BOOST_STATIC_CONSTANT(std::size_t, value = - (::boost::detail::alignment_logic< - sizeof(::boost::detail::alignment_of_hack) - sizeof(T), - __alignof(T) - >::value)); -#elif !defined(BOOST_ALIGNMENT_OF) - BOOST_STATIC_CONSTANT(std::size_t, value = - (::boost::detail::alignment_logic< - sizeof(::boost::detail::alignment_of_hack) - sizeof(T), - sizeof(T) - >::value)); -#else - // - // We put this here, rather than in the definition of - // alignment_of below, because MSVC's __alignof doesn't - // always work in that context for some unexplained reason. - // (See type_with_alignment tests for test cases). - // - BOOST_STATIC_CONSTANT(std::size_t, value = BOOST_ALIGNMENT_OF(T)); -#endif -}; - -} // namespace detail - -template struct alignment_of : public integral_constant::value>{}; - -// references have to be treated specially, assume -// that a reference is just a special pointer: -template struct alignment_of : public alignment_of{}; - -#ifdef __BORLANDC__ -// long double gives an incorrect value of 10 (!) -// unless we do this... -struct long_double_wrapper{ long double ld; }; -template<> struct alignment_of : public alignment_of{}; -#endif - -// void has to be treated specially: -template<> struct alignment_of : integral_constant{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template<> struct alignment_of : integral_constant{}; -template<> struct alignment_of : integral_constant{}; -template<> struct alignment_of : integral_constant{}; -#endif - -} // namespace boost - -#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600) -#pragma option pop -#endif -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/alignment_traits.hpp b/lib/3rdParty/boost/boost/type_traits/alignment_traits.hpp deleted file mode 100644 index 2ed6934da..000000000 --- a/lib/3rdParty/boost/boost/type_traits/alignment_traits.hpp +++ /dev/null @@ -1,15 +0,0 @@ - -// (C) Copyright John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED -#define BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED - -#include -#include - -#endif // BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/arithmetic_traits.hpp b/lib/3rdParty/boost/boost/type_traits/arithmetic_traits.hpp deleted file mode 100644 index e4670e6b3..000000000 --- a/lib/3rdParty/boost/boost/type_traits/arithmetic_traits.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. -// -// defines traits classes for arithmetic types: -// is_void, is_integral, is_float, is_arithmetic, is_fundamental. - -#ifndef BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED -#define BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED - -#include -#include -#include -#include -#include - -#endif // BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/array_traits.hpp b/lib/3rdParty/boost/boost/type_traits/array_traits.hpp deleted file mode 100644 index a68ae7317..000000000 --- a/lib/3rdParty/boost/boost/type_traits/array_traits.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED -#define BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED - -#include - -#endif // BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/broken_compiler_spec.hpp b/lib/3rdParty/boost/boost/type_traits/broken_compiler_spec.hpp deleted file mode 100644 index 030840f1c..000000000 --- a/lib/3rdParty/boost/boost/type_traits/broken_compiler_spec.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_BROKEN_SPEC_HPP_INCLUDED -#define BOOST_TT_BROKEN_SPEC_HPP_INCLUDED - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (boost/type_traits/broken_compiler_spec.hpp) is deprecated") -#endif - -#endif // BOOST_TT_CONFIG_HPP_INCLUDED - - diff --git a/lib/3rdParty/boost/boost/type_traits/common_type.hpp b/lib/3rdParty/boost/boost/type_traits/common_type.hpp deleted file mode 100644 index c887a897f..000000000 --- a/lib/3rdParty/boost/boost/type_traits/common_type.hpp +++ /dev/null @@ -1,145 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_COMMON_TYPE_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_COMMON_TYPE_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include -#include -#include -#include - -#if defined(BOOST_NO_CXX11_DECLTYPE) -#include -#endif - -#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) -#include -#endif - -namespace boost -{ - -// variadic common_type - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -template struct common_type -{ -}; - -#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) - -template using common_type_t = typename common_type::type; - -namespace type_traits_detail -{ - -template using common_type_fold = common_type_t, T...>; - -} // namespace type_traits_detail - -template -struct common_type: type_traits_detail::mp_defer -{ -}; - -#else - -template -struct common_type: common_type::type, T...> -{ -}; - -#endif // !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) - -#else - -template< - class T1 = void, class T2 = void, class T3 = void, - class T4 = void, class T5 = void, class T6 = void, - class T7 = void, class T8 = void, class T9 = void -> -struct common_type: common_type::type, T3, T4, T5, T6, T7, T8, T9> -{ -}; - -#endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -// one argument - -template struct common_type: boost::decay -{ -}; - -// two arguments - -namespace type_traits_detail -{ - -// binary common_type - -#if !defined(BOOST_NO_CXX11_DECLTYPE) - -#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1800 - -// internal compiler error on msvc-12.0 - -template using builtin_common_type = typename boost::decay()? boost::declval(): boost::declval() )>::type; - -template struct common_type_impl: mp_defer -{ -}; - -#else - -template using builtin_common_type = decltype( boost::declval()? boost::declval(): boost::declval() ); - -template struct common_type_impl_2: mp_defer -{ -}; - -template using decay_common_type = typename boost::decay::type>::type; - -template struct common_type_impl: mp_defer -{ -}; - -#endif // !defined(BOOST_MSVC) || BOOST_MSVC > 1800 - -#else - -template struct common_type_impl: boost::decay()? boost::declval(): boost::declval() )> -{ -}; - -#endif // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -#endif // #if !defined(BOOST_NO_CXX11_DECLTYPE) - -// decay helper - -template::type, class T2d = typename boost::decay::type> struct common_type_decay_helper: boost::common_type -{ -}; - -template struct common_type_decay_helper: common_type_impl -{ -}; - -} // type_traits_detail - -template struct common_type: type_traits_detail::common_type_decay_helper -{ -}; - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_COMMON_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/composite_traits.hpp b/lib/3rdParty/boost/boost/type_traits/composite_traits.hpp deleted file mode 100644 index 985a4c51d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/composite_traits.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. -// -// defines traits classes for composite types: -// is_array, is_pointer, is_reference, is_member_pointer, is_enum, is_union. -// - -#ifndef BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED -#define BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED - - - - - diff --git a/lib/3rdParty/boost/boost/type_traits/conditional.hpp b/lib/3rdParty/boost/boost/type_traits/conditional.hpp deleted file mode 100644 index b7e82dbe8..000000000 --- a/lib/3rdParty/boost/boost/type_traits/conditional.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_CONDITIONAL_HPP_INCLUDED -#define BOOST_TT_CONDITIONAL_HPP_INCLUDED - -namespace boost { - -template struct conditional { typedef T type; }; -template struct conditional { typedef U type; }; - -} // namespace boost - - -#endif // BOOST_TT_CONDITIONAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/config.hpp b/lib/3rdParty/boost/boost/type_traits/config.hpp deleted file mode 100644 index 47a06483e..000000000 --- a/lib/3rdParty/boost/boost/type_traits/config.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_OLD_CONFIG_HPP_INCLUDED -#define BOOST_TT_OLD_CONFIG_HPP_INCLUDED - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (boost/type_traits/config.hpp) is deprecated") -#endif - -#endif // BOOST_TT_CONFIG_HPP_INCLUDED - - diff --git a/lib/3rdParty/boost/boost/type_traits/conversion_traits.hpp b/lib/3rdParty/boost/boost/type_traits/conversion_traits.hpp deleted file mode 100644 index c8e5139b3..000000000 --- a/lib/3rdParty/boost/boost/type_traits/conversion_traits.hpp +++ /dev/null @@ -1,17 +0,0 @@ - -// Copyright 2000 John Maddock (john@johnmaddock.co.uk) -// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu) -// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED -#define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED - -#include - -#endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/copy_cv.hpp b/lib/3rdParty/boost/boost/type_traits/copy_cv.hpp deleted file mode 100644 index 1605ca335..000000000 --- a/lib/3rdParty/boost/boost/type_traits/copy_cv.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_COPY_CV_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_COPY_CV_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include -#include -#include -#include -#include - -namespace boost -{ - -template struct copy_cv -{ -private: - - typedef typename boost::conditional::value, typename boost::add_const::type, T>::type CT; - -public: - - typedef typename boost::conditional::value, typename boost::add_volatile::type, CT>::type type; -}; - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_COPY_CV_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/cv_traits.hpp b/lib/3rdParty/boost/boost/type_traits/cv_traits.hpp deleted file mode 100644 index 5bd6c4f06..000000000 --- a/lib/3rdParty/boost/boost/type_traits/cv_traits.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. -// -// defines traits classes for cv-qualified types: -// is_const, is_volatile, remove_const, remove_volatile, remove_cv. - -#ifndef BOOST_TT_CV_TRAITS_HPP_INCLUDED -#define BOOST_TT_CV_TRAITS_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_TT_CV_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/decay.hpp b/lib/3rdParty/boost/boost/type_traits/decay.hpp deleted file mode 100644 index 4e8118433..000000000 --- a/lib/3rdParty/boost/boost/type_traits/decay.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// (C) Copyright John Maddock & Thorsten Ottosen 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/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_DECAY_HPP_INCLUDED -#define BOOST_TT_DECAY_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - - namespace detail - { - - template struct decay_imp { typedef typename remove_cv::type type; }; - template struct decay_imp { typedef typename remove_bounds::type* type; }; - template struct decay_imp { typedef T* type; }; - - } - - template< class T > - struct decay - { - private: - typedef typename remove_reference::type Ty; - public: - typedef typename boost::detail::decay_imp::value, boost::is_function::value>::type type; - }; - -} // namespace boost - - -#endif // BOOST_TT_DECAY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/declval.hpp b/lib/3rdParty/boost/boost/type_traits/declval.hpp deleted file mode 100644 index a050012eb..000000000 --- a/lib/3rdParty/boost/boost/type_traits/declval.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// declval.hpp -------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_TYPE_TRAITS_DECLVAL_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_DECLVAL_HPP_INCLUDED - -#include - -//----------------------------------------------------------------------------// - -#include - -//----------------------------------------------------------------------------// -// // -// C++03 implementation of // -// 20.2.4 Function template declval [declval] // -// Written by Vicente J. Botet Escriba // -// // -// 1 The library provides the function template declval to simplify the -// definition of expressions which occur as unevaluated operands. -// 2 Remarks: If this function is used, the program is ill-formed. -// 3 Remarks: The template parameter T of declval may be an incomplete type. -// [ Example: -// -// template -// decltype(static_cast(declval())) convert(From&&); -// -// declares a function template convert which only participates in overloading -// if the type From can be explicitly converted to type To. For another example -// see class template common_type (20.9.7.6). -end example ] -//----------------------------------------------------------------------------// - -namespace boost { - - template - typename add_rvalue_reference::type declval() BOOST_NOEXCEPT; // as unevaluated operand - -} // namespace boost - -#endif // BOOST_TYPE_TRAITS_DECLVAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/bool_trait_def.hpp b/lib/3rdParty/boost/boost/type_traits/detail/bool_trait_def.hpp deleted file mode 100644 index b6b0677d6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/bool_trait_def.hpp +++ /dev/null @@ -1,179 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) - -// $Source$ -// $Date$ -// $Revision$ - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (bool_trait_def.hpp) is deprecated") -#endif - -#include -#include -#include - -// -// Unfortunately some libraries have started using this header without -// cleaning up afterwards: so we'd better undef the macros just in case -// they've been defined already.... -// -#ifdef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL -#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL -#undef BOOST_TT_AUX_BOOL_C_BASE -#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1 -#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2 -#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1 -#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2 -#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1 -#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2 -#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1 -#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1 -#endif - -#ifndef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL -# define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/ -#endif - -#ifndef BOOST_TT_AUX_BOOL_C_BASE -# define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::boost::integral_constant -#endif - - -#define BOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \ -template< typename T > struct trait \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -\ -BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \ -/**/ - - -#define BOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \ -template< typename T1, typename T2 > struct trait \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -\ -BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_DEF3(trait,T1,T2,T3,C) \ -template< typename T1, typename T2, typename T3 > struct trait \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -\ -BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(3,trait) \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \ -template<> struct trait< sp > \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \ -template<> struct trait< sp1,sp2 > \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \ -template<> struct trait##_impl< sp > \ -{ \ -public:\ - BOOST_STATIC_CONSTANT(bool, value = (C)); \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \ -template<> struct trait##_impl< sp1,sp2 > \ -{ \ -public:\ - BOOST_STATIC_CONSTANT(bool, value = (C)); \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \ -template< param > struct trait< sp > \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \ -template< param1, param2 > struct trait< sp > \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \ -template< param > struct trait< sp1,sp2 > \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \ -template< param1, param2 > struct trait< sp1,sp2 > \ - BOOST_TT_AUX_BOOL_C_BASE(C) \ -{ \ -public:\ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ -}; \ -/**/ - -#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \ -template< param > struct trait##_impl< sp1,sp2 > \ -{ \ -public:\ - BOOST_STATIC_CONSTANT(bool, value = (C)); \ -}; \ -/**/ - -#ifndef BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \ - BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \ - BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const,value) \ - BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp volatile,value) \ - BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const volatile,value) \ - /**/ -#else -# define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \ - BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \ - /**/ -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/detail/bool_trait_undef.hpp b/lib/3rdParty/boost/boost/type_traits/detail/bool_trait_undef.hpp deleted file mode 100644 index 4ac61ef2e..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/bool_trait_undef.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) - -// $Source$ -// $Date$ -// $Revision$ - -#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL -#undef BOOST_TT_AUX_BOOL_C_BASE -#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1 -#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2 -#undef BOOST_TT_AUX_BOOL_TRAIT_DEF3 -#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1 -#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2 -#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1 -#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1 -#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2 -#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1 -#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1 diff --git a/lib/3rdParty/boost/boost/type_traits/detail/common_arithmetic_type.hpp b/lib/3rdParty/boost/boost/type_traits/detail/common_arithmetic_type.hpp deleted file mode 100644 index 8c091583c..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/common_arithmetic_type.hpp +++ /dev/null @@ -1,218 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_ARITHMETIC_TYPE_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_DETAIL_COMMON_ARITHMETIC_TYPE_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include - -namespace boost -{ - -namespace type_traits_detail -{ - -template struct arithmetic_type; - -// Types bool, char, char16_t, char32_t, wchar_t, -// and the signed and unsigned integer types are -// collectively called integral types - -template<> struct arithmetic_type<1> -{ - typedef bool type; - typedef char (&result_type) [1]; -}; - -template<> struct arithmetic_type<2> -{ - typedef char type; - typedef char (&result_type) [2]; -}; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T - -template<> struct arithmetic_type<3> -{ - typedef wchar_t type; - typedef char (&result_type) [3]; -}; - -#endif - -// There are five standard signed integer types: -// “signed char”, “short int”, “int”, “long int”, and “long long int”. - -template<> struct arithmetic_type<4> -{ - typedef signed char type; - typedef char (&result_type) [4]; -}; - -template<> struct arithmetic_type<5> -{ - typedef short type; - typedef char (&result_type) [5]; -}; - -template<> struct arithmetic_type<6> -{ - typedef int type; - typedef char (&result_type) [6]; -}; - -template<> struct arithmetic_type<7> -{ - typedef long type; - typedef char (&result_type) [7]; -}; - -template<> struct arithmetic_type<8> -{ - typedef boost::long_long_type type; - typedef char (&result_type) [8]; -}; - -// For each of the standard signed integer types, there exists a corresponding -// (but different) standard unsigned integer type: “unsigned char”, “unsigned short int”, -// “unsigned int”, “unsigned long int”, and “unsigned long long int” - -template<> struct arithmetic_type<9> -{ - typedef unsigned char type; - typedef char (&result_type) [9]; -}; - -template<> struct arithmetic_type<10> -{ - typedef unsigned short type; - typedef char (&result_type) [10]; -}; - -template<> struct arithmetic_type<11> -{ - typedef unsigned int type; - typedef char (&result_type) [11]; -}; - -template<> struct arithmetic_type<12> -{ - typedef unsigned long type; - typedef char (&result_type) [12]; -}; - -template<> struct arithmetic_type<13> -{ - typedef boost::ulong_long_type type; - typedef char (&result_type) [13]; -}; - -// There are three floating point types: float, double, and long double. - -template<> struct arithmetic_type<14> -{ - typedef float type; - typedef char (&result_type) [14]; -}; - -template<> struct arithmetic_type<15> -{ - typedef double type; - typedef char (&result_type) [15]; -}; - -template<> struct arithmetic_type<16> -{ - typedef long double type; - typedef char (&result_type) [16]; -}; - -#if !defined( BOOST_NO_CXX11_CHAR16_T ) - -template<> struct arithmetic_type<17> -{ - typedef char16_t type; - typedef char (&result_type) [17]; -}; - -#endif - -#if !defined( BOOST_NO_CXX11_CHAR32_T ) - -template<> struct arithmetic_type<18> -{ - typedef char32_t type; - typedef char (&result_type) [18]; -}; - -#endif - -#if defined( BOOST_HAS_INT128 ) - -template<> struct arithmetic_type<19> -{ - typedef boost::int128_type type; - typedef char (&result_type) [19]; -}; - -template<> struct arithmetic_type<20> -{ - typedef boost::uint128_type type; - typedef char (&result_type) [20]; -}; - -#endif - -template class common_arithmetic_type -{ -private: - - static arithmetic_type<1>::result_type select( arithmetic_type<1>::type ); - static arithmetic_type<2>::result_type select( arithmetic_type<2>::type ); -#ifndef BOOST_NO_INTRINSIC_WCHAR_T - static arithmetic_type<3>::result_type select( arithmetic_type<3>::type ); -#endif - static arithmetic_type<4>::result_type select( arithmetic_type<4>::type ); - static arithmetic_type<5>::result_type select( arithmetic_type<5>::type ); - static arithmetic_type<6>::result_type select( arithmetic_type<6>::type ); - static arithmetic_type<7>::result_type select( arithmetic_type<7>::type ); - static arithmetic_type<8>::result_type select( arithmetic_type<8>::type ); - static arithmetic_type<9>::result_type select( arithmetic_type<9>::type ); - static arithmetic_type<10>::result_type select( arithmetic_type<10>::type ); - static arithmetic_type<11>::result_type select( arithmetic_type<11>::type ); - static arithmetic_type<12>::result_type select( arithmetic_type<12>::type ); - static arithmetic_type<13>::result_type select( arithmetic_type<13>::type ); - static arithmetic_type<14>::result_type select( arithmetic_type<14>::type ); - static arithmetic_type<15>::result_type select( arithmetic_type<15>::type ); - static arithmetic_type<16>::result_type select( arithmetic_type<16>::type ); - -#if !defined( BOOST_NO_CXX11_CHAR16_T ) - static arithmetic_type<17>::result_type select( arithmetic_type<17>::type ); -#endif - -#if !defined( BOOST_NO_CXX11_CHAR32_T ) - static arithmetic_type<18>::result_type select( arithmetic_type<18>::type ); -#endif - -#if defined( BOOST_HAS_INT128 ) - static arithmetic_type<19>::result_type select( arithmetic_type<19>::type ); - static arithmetic_type<20>::result_type select( arithmetic_type<20>::type ); -#endif - - static bool cond(); - -public: - - typedef typename arithmetic_type< sizeof(select( cond()? T(): U() )) >::type type; -}; - -} // namespace type_traits_detail - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_ARITHMETIC_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/common_type_impl.hpp b/lib/3rdParty/boost/boost/type_traits/detail/common_type_impl.hpp deleted file mode 100644 index 53a634d4d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/common_type_impl.hpp +++ /dev/null @@ -1,107 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMPL_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMPL_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -namespace type_traits_detail -{ - -// the arguments to common_type_impl have already been passed through decay<> - -template struct common_type_impl; - -// same type - -template struct common_type_impl -{ - typedef T type; -}; - -// one of the operands is a class type, try conversions in both directions - -template struct ct_class -{ - BOOST_STATIC_CONSTANT( bool, ct = boost::is_class::value || boost::is_union::value ); - BOOST_STATIC_CONSTANT( bool, cu = boost::is_class::value || boost::is_union::value ); - - BOOST_STATIC_CONSTANT( bool, value = ct || cu ); -}; - -template struct common_type_impl3; - -template struct common_type_class: public boost::conditional< - - boost::is_convertible::value && !boost::is_convertible::value, - boost::type_identity, - - typename boost::conditional< - - boost::is_convertible::value && !boost::is_convertible::value, - boost::type_identity, - - common_type_impl3 - >::type ->::type -{ -}; - -template struct common_type_impl: public boost::conditional< - ct_class::value, - common_type_class, - common_type_impl3 >::type -{ -}; - -// pointers - -template struct common_type_impl4; - -template struct common_type_impl3: public boost::conditional< - boost::is_pointer::value || boost::is_pointer::value, - composite_pointer_type, - common_type_impl4 >::type -{ -}; - -// pointers to members - -template struct common_type_impl5; - -template struct common_type_impl4: public boost::conditional< - boost::is_member_pointer::value || boost::is_member_pointer::value, - composite_member_pointer_type, - common_type_impl5 >::type -{ -}; - -// arithmetic types (including class types w/ conversions to arithmetic and enums) - -template struct common_type_impl5: public common_arithmetic_type -{ -}; - -} // namespace type_traits_detail - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMPL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/composite_member_pointer_type.hpp b/lib/3rdParty/boost/boost/type_traits/detail/composite_member_pointer_type.hpp deleted file mode 100644 index a747ee4db..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/composite_member_pointer_type.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_MEMBER_POINTER_TYPE_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_MEMBER_POINTER_TYPE_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -namespace type_traits_detail -{ - -template struct composite_member_pointer_type; - -// nullptr_t - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -#if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) ) - -template struct composite_member_pointer_type -{ - typedef T C::* type; -}; - -template struct composite_member_pointer_type -{ - typedef T C::* type; -}; - -template<> struct composite_member_pointer_type -{ - typedef decltype(nullptr) type; -}; - -#else - -template struct composite_member_pointer_type -{ - typedef T C::* type; -}; - -template struct composite_member_pointer_type -{ - typedef T C::* type; -}; - -template<> struct composite_member_pointer_type -{ - typedef std::nullptr_t type; -}; - -#endif - -#endif // !defined( BOOST_NO_CXX11_NULLPTR ) - -template struct common_member_class; - -template struct common_member_class -{ - typedef C type; -}; - -template struct common_member_class -{ - typedef typename boost::conditional< - - boost::is_base_of::value, - C2, - typename boost::conditional::value, C1, void>::type - - >::type type; -}; - -//This indirection avoids compilation errors on some older -//compilers like MSVC 7.1 -template -struct common_member_class_pointer_to_member -{ - typedef CT CB::* type; -}; - -template struct composite_member_pointer_type -{ -private: - - typedef typename composite_pointer_type::type CPT; - typedef typename boost::remove_pointer::type CT; - - typedef typename common_member_class::type CB; - -public: - - typedef typename common_member_class_pointer_to_member::type type; -}; - -} // namespace type_traits_detail - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_MEMBER_POINTER_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/composite_pointer_type.hpp b/lib/3rdParty/boost/boost/type_traits/detail/composite_pointer_type.hpp deleted file mode 100644 index ae21e18ad..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/composite_pointer_type.hpp +++ /dev/null @@ -1,153 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_POINTER_TYPE_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_POINTER_TYPE_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -namespace type_traits_detail -{ - -template struct composite_pointer_type; - -// same type - -template struct composite_pointer_type -{ - typedef T* type; -}; - -// nullptr_t - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -#if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) ) - -template struct composite_pointer_type -{ - typedef T* type; -}; - -template struct composite_pointer_type -{ - typedef T* type; -}; - -template<> struct composite_pointer_type -{ - typedef decltype(nullptr) type; -}; - -#else - -template struct composite_pointer_type -{ - typedef T* type; -}; - -template struct composite_pointer_type -{ - typedef T* type; -}; - -template<> struct composite_pointer_type -{ - typedef std::nullptr_t type; -}; - -#endif - -#endif // !defined( BOOST_NO_CXX11_NULLPTR ) - -namespace detail -{ - -template struct has_common_pointee -{ -private: - - typedef typename boost::remove_cv::type T2; - typedef typename boost::remove_cv::type U2; - -public: - - BOOST_STATIC_CONSTANT( bool, value = - (boost::is_same::value) - || boost::is_void::value - || boost::is_void::value - || (boost::is_base_of::value) - || (boost::is_base_of::value) ); -}; - -template struct common_pointee -{ -private: - - typedef typename boost::remove_cv::type T2; - typedef typename boost::remove_cv::type U2; - -public: - - typedef typename boost::conditional< - - boost::is_same::value || boost::is_void::value || boost::is_base_of::value, - typename boost::copy_cv::type, - typename boost::copy_cv::type - - >::type type; -}; - -template struct composite_pointer_impl -{ -private: - - typedef typename boost::remove_cv::type T2; - typedef typename boost::remove_cv::type U2; - -public: - - typedef typename boost::copy_cv::type const, T>::type, U>::type type; -}; - -//Old compilers like MSVC-7.1 have problems using boost::conditional in -//composite_pointer_type. Partially specializing on has_common_pointee::value -//seems to make their life easier -template::value > -struct composite_pointer_type_dispatch - : common_pointee -{}; - -template -struct composite_pointer_type_dispatch - : composite_pointer_impl -{}; - - -} // detail - - -template struct composite_pointer_type -{ - typedef typename detail::composite_pointer_type_dispatch::type* type; -}; - -} // namespace type_traits_detail - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_COMPOSITE_POINTER_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/config.hpp b/lib/3rdParty/boost/boost/type_traits/detail/config.hpp deleted file mode 100644 index ebb1dd65f..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/config.hpp +++ /dev/null @@ -1,72 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_CONFIG_HPP_INCLUDED -#define BOOST_TT_CONFIG_HPP_INCLUDED - -#ifndef BOOST_CONFIG_HPP -#include -#endif -#include -#include - -// -// whenever we have a conversion function with ellipses -// it needs to be declared __cdecl to suppress compiler -// warnings from MS and Borland compilers (this *must* -// appear before we include is_same.hpp below): -#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32)) -# define BOOST_TT_DECL __cdecl -#else -# define BOOST_TT_DECL /**/ -#endif - -# if (BOOST_WORKAROUND(__MWERKS__, < 0x3000) \ - || BOOST_WORKAROUND(__IBMCPP__, < 600 ) \ - || BOOST_WORKAROUND(__BORLANDC__, < 0x5A0) \ - || defined(__ghs) \ - || BOOST_WORKAROUND(__HP_aCC, < 60700) \ - || BOOST_WORKAROUND(MPW_CPLUS, BOOST_TESTED_AT(0x890)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580))) \ - && defined(BOOST_NO_IS_ABSTRACT) - -# define BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1 - -#endif - -#ifndef BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION -# define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1 -#endif - -// -// define BOOST_TT_TEST_MS_FUNC_SIGS -// when we want to test __stdcall etc function types with is_function etc -// (Note, does not work with Borland, even though it does support __stdcall etc): -// -#if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__) -# define BOOST_TT_TEST_MS_FUNC_SIGS -#endif - -// -// define BOOST_TT_NO_CV_FUNC_TEST -// if tests for cv-qualified member functions don't -// work in is_member_function_pointer -// -#if BOOST_WORKAROUND(__MWERKS__, < 0x3000) || BOOST_WORKAROUND(__IBMCPP__, <= 600) -# define BOOST_TT_NO_CV_FUNC_TEST -#endif - -// -// Macros that have been deprecated, defined here for backwards compatibility: -// -#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(x) -#define BOOST_TT_BROKEN_COMPILER_SPEC(x) - -#endif // BOOST_TT_CONFIG_HPP_INCLUDED - - diff --git a/lib/3rdParty/boost/boost/type_traits/detail/has_binary_operator.hpp b/lib/3rdParty/boost/boost/type_traits/detail/has_binary_operator.hpp deleted file mode 100644 index 039a6bb77..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/has_binary_operator.hpp +++ /dev/null @@ -1,222 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa. -// -// 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/type_traits for most recent version including documentation. - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// cannot include this header without getting warnings of the kind: -// gcc: -// warning: value computed is not used -// warning: comparison between signed and unsigned integer expressions -// msvc: -// warning C4018: '<' : signed/unsigned mismatch -// warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data -// warning C4547: '*' : operator before comma has no effect; expected operator with side-effect -// warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) -// warning C4804: '<' : unsafe use of type 'bool' in operation -// warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation -// cannot find another implementation -> declared as system header to suppress these warnings. -#if defined(__GNUC__) -# pragma GCC system_header -#elif defined(BOOST_MSVC) -# pragma warning ( push ) -# pragma warning ( disable : 4018 4244 4547 4800 4804 4805 4913) -# if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -# pragma warning ( disable : 6334) -# endif -#endif - -namespace boost { -namespace detail { - -// This namespace ensures that argument-dependent name lookup does not mess things up. -namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) { - -// 1. a function to have an instance of type T without requiring T to be default -// constructible -template T &make(); - - -// 2. we provide our operator definition for types that do not have one already - -// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is -// found in the type's own namespace (our own operator is used) so that we have -// a means to know that our operator was used -struct no_operator { }; - -// this class allows implicit conversions and makes the following operator -// definition less-preferred than any other such operators that might be found -// via argument-dependent name lookup -struct any { template any(T const&); }; - -// when operator BOOST_TT_TRAIT_OP is not available, this one is used -no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&); - - -// 3. checks if the operator returns void or not -// conditions: Lhs!=void and Rhs!=void - -// we first redefine "operator," so that we have no compilation error if -// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of -// (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if -// operator BOOST_TT_TRAIT_OP returns void or not: -// - operator BOOST_TT_TRAIT_OP returns void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t -// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int -struct returns_void_t { }; -template int operator,(const T&, returns_void_t); -template int operator,(const volatile T&, returns_void_t); - -// this intermediate trait has member value of type bool: -// - value==true -> operator BOOST_TT_TRAIT_OP returns void -// - value==false -> operator BOOST_TT_TRAIT_OP does not return void -template < typename Lhs, typename Rhs > -struct operator_returns_void { - // overloads of function returns_void make the difference - // yes_type and no_type have different size by construction - static ::boost::type_traits::yes_type returns_void(returns_void_t); - static ::boost::type_traits::no_type returns_void(int); - BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make() BOOST_TT_TRAIT_OP make(),returns_void_t()))))); -}; - - -// 4. checks if the return type is Ret or Ret==dont_care -// conditions: Lhs!=void and Rhs!=void - -struct dont_care { }; - -template < typename Lhs, typename Rhs, typename Ret, bool Returns_void > -struct operator_returns_Ret; - -template < typename Lhs, typename Rhs > -struct operator_returns_Ret < Lhs, Rhs, dont_care, true > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Lhs, typename Rhs > -struct operator_returns_Ret < Lhs, Rhs, dont_care, false > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Lhs, typename Rhs > -struct operator_returns_Ret < Lhs, Rhs, void, true > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Lhs, typename Rhs > -struct operator_returns_Ret < Lhs, Rhs, void, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Lhs, typename Rhs, typename Ret > -struct operator_returns_Ret < Lhs, Rhs, Ret, true > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// otherwise checks if it is convertible to Ret using the sizeof trick -// based on overload resolution -// condition: Ret!=void and Ret!=dont_care and the operator does not return void -template < typename Lhs, typename Rhs, typename Ret > -struct operator_returns_Ret < Lhs, Rhs, Ret, false > { - static ::boost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret - static ::boost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise - - BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make() BOOST_TT_TRAIT_OP make()))==sizeof(::boost::type_traits::yes_type))); -}; - - -// 5. checks for operator existence -// condition: Lhs!=void and Rhs!=void - -// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other -// existing one; -// this is done with redefinition of "operator," that returns no_operator or has_operator -struct has_operator { }; -no_operator operator,(no_operator, has_operator); - -template < typename Lhs, typename Rhs > -struct operator_exists { - static ::boost::type_traits::yes_type s_check(has_operator); // this version is preferred when operator exists - static ::boost::type_traits::no_type s_check(no_operator); // this version is used otherwise - - BOOST_STATIC_CONSTANT(bool, value = (sizeof(s_check(((make() BOOST_TT_TRAIT_OP make()),make())))==sizeof(::boost::type_traits::yes_type))); -}; - - -// 6. main trait: to avoid any compilation error, this class behaves -// differently when operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the -// standard. -// Forbidden_if is a bool that is: -// - true when the operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the standard -// (would yield compilation error if used) -// - false otherwise -template < typename Lhs, typename Rhs, typename Ret, bool Forbidden_if > -struct trait_impl1; - -template < typename Lhs, typename Rhs, typename Ret > -struct trait_impl1 < Lhs, Rhs, Ret, true > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Lhs, typename Rhs, typename Ret > -struct trait_impl1 < Lhs, Rhs, Ret, false > { - BOOST_STATIC_CONSTANT(bool, - value = (operator_exists < Lhs, Rhs >::value && operator_returns_Ret < Lhs, Rhs, Ret, operator_returns_void < Lhs, Rhs >::value >::value)); -}; - -// some specializations needs to be declared for the special void case -template < typename Rhs, typename Ret > -struct trait_impl1 < void, Rhs, Ret, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Lhs, typename Ret > -struct trait_impl1 < Lhs, void, Ret, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Ret > -struct trait_impl1 < void, void, Ret, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// defines some typedef for convenience -template < typename Lhs, typename Rhs, typename Ret > -struct trait_impl { - typedef typename ::boost::remove_reference::type Lhs_noref; - typedef typename ::boost::remove_reference::type Rhs_noref; - typedef typename ::boost::remove_cv::type Lhs_nocv; - typedef typename ::boost::remove_cv::type Rhs_nocv; - typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer::type >::type >::type Lhs_noptr; - typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer::type >::type >::type Rhs_noptr; - BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value)); -}; - -} // namespace impl -} // namespace detail - -// this is the accessible definition of the trait to end user -template -struct BOOST_TT_TRAIT_NAME : public integral_constant::value)>{}; - -} // namespace boost - -#if defined(BOOST_MSVC) -# pragma warning ( pop ) -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/detail/has_postfix_operator.hpp b/lib/3rdParty/boost/boost/type_traits/detail/has_postfix_operator.hpp deleted file mode 100644 index 3e686f12b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/has_postfix_operator.hpp +++ /dev/null @@ -1,195 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa. -// -// 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/type_traits for most recent version including documentation. - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// avoid warnings -#if defined(__GNUC__) -# pragma GCC system_header -#elif defined(BOOST_MSVC) -# pragma warning ( push ) -# pragma warning ( disable : 4244 4913) -# if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -# pragma warning ( disable : 6334) -# endif -#endif - -namespace boost { -namespace detail { - -// This namespace ensures that argument-dependent name lookup does not mess things up. -namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) { - -// 1. a function to have an instance of type T without requiring T to be default -// constructible -template T &make(); - - -// 2. we provide our operator definition for types that do not have one already - -// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is -// found in the type's own namespace (our own operator is used) so that we have -// a means to know that our operator was used -struct no_operator { }; - -// this class allows implicit conversions and makes the following operator -// definition less-preferred than any other such operators that might be found -// via argument-dependent name lookup -struct any { template any(T const&); }; - -// when operator BOOST_TT_TRAIT_OP is not available, this one is used -no_operator operator BOOST_TT_TRAIT_OP (const any&, int); - - -// 3. checks if the operator returns void or not -// conditions: Lhs!=void - -// we first redefine "operator," so that we have no compilation error if -// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of -// (lhs BOOST_TT_TRAIT_OP, returns_void_t()) to deduce if -// operator BOOST_TT_TRAIT_OP returns void or not: -// - operator BOOST_TT_TRAIT_OP returns void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns returns_void_t -// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns int -struct returns_void_t { }; -template int operator,(const T&, returns_void_t); -template int operator,(const volatile T&, returns_void_t); - -// this intermediate trait has member value of type bool: -// - value==true -> operator BOOST_TT_TRAIT_OP returns void -// - value==false -> operator BOOST_TT_TRAIT_OP does not return void -template < typename Lhs > -struct operator_returns_void { - // overloads of function returns_void make the difference - // yes_type and no_type have different size by construction - static ::boost::type_traits::yes_type returns_void(returns_void_t); - static ::boost::type_traits::no_type returns_void(int); - BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make() BOOST_TT_TRAIT_OP,returns_void_t()))))); -}; - - -// 4. checks if the return type is Ret or Ret==dont_care -// conditions: Lhs!=void - -struct dont_care { }; - -template < typename Lhs, typename Ret, bool Returns_void > -struct operator_returns_Ret; - -template < typename Lhs > -struct operator_returns_Ret < Lhs, dont_care, true > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Lhs > -struct operator_returns_Ret < Lhs, dont_care, false > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Lhs > -struct operator_returns_Ret < Lhs, void, true > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Lhs > -struct operator_returns_Ret < Lhs, void, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Lhs, typename Ret > -struct operator_returns_Ret < Lhs, Ret, true > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// otherwise checks if it is convertible to Ret using the sizeof trick -// based on overload resolution -// condition: Ret!=void and Ret!=dont_care and the operator does not return void -template < typename Lhs, typename Ret > -struct operator_returns_Ret < Lhs, Ret, false > { - static ::boost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret - static ::boost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise - - BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type))); -}; - - -// 5. checks for operator existence -// condition: Lhs!=void - -// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other -// existing one; -// this is done with redefinition of "operator," that returns no_operator or has_operator -struct has_operator { }; -no_operator operator,(no_operator, has_operator); - -template < typename Lhs > -struct operator_exists { - static ::boost::type_traits::yes_type s_check(has_operator); // this version is preferred when operator exists - static ::boost::type_traits::no_type s_check(no_operator); // this version is used otherwise - - BOOST_STATIC_CONSTANT(bool, value = (sizeof(s_check(((make() BOOST_TT_TRAIT_OP),make())))==sizeof(::boost::type_traits::yes_type))); -}; - - -// 6. main trait: to avoid any compilation error, this class behaves -// differently when operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the -// standard. -// Forbidden_if is a bool that is: -// - true when the operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the standard -// (would yield compilation error if used) -// - false otherwise -template < typename Lhs, typename Ret, bool Forbidden_if > -struct trait_impl1; - -template < typename Lhs, typename Ret > -struct trait_impl1 < Lhs, Ret, true > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Lhs, typename Ret > -struct trait_impl1 < Lhs, Ret, false > { - BOOST_STATIC_CONSTANT(bool, - value = (operator_exists < Lhs >::value && operator_returns_Ret < Lhs, Ret, operator_returns_void < Lhs >::value >::value)); -}; - -// specialization needs to be declared for the special void case -template < typename Ret > -struct trait_impl1 < void, Ret, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// defines some typedef for convenience -template < typename Lhs, typename Ret > -struct trait_impl { - typedef typename ::boost::remove_reference::type Lhs_noref; - typedef typename ::boost::remove_cv::type Lhs_nocv; - typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer::type >::type >::type Lhs_noptr; - BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value)); -}; - -} // namespace impl -} // namespace detail - -// this is the accessible definition of the trait to end user -template -struct BOOST_TT_TRAIT_NAME : public integral_constant::value)>{}; - -} // namespace boost - -#if defined(BOOST_MSVC) -# pragma warning ( pop ) -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/detail/has_prefix_operator.hpp b/lib/3rdParty/boost/boost/type_traits/detail/has_prefix_operator.hpp deleted file mode 100644 index d4574fc60..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/has_prefix_operator.hpp +++ /dev/null @@ -1,205 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa. -// -// 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/type_traits for most recent version including documentation. - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// cannot include this header without getting warnings of the kind: -// gcc: -// warning: value computed is not used -// warning: comparison between signed and unsigned integer expressions -// msvc: -// warning C4146: unary minus operator applied to unsigned type, result still unsigned -// warning C4804: '-' : unsafe use of type 'bool' in operation -// cannot find another implementation -> declared as system header to suppress these warnings. -#if defined(__GNUC__) -# pragma GCC system_header -#elif defined(BOOST_MSVC) -# pragma warning ( push ) -# pragma warning ( disable : 4146 4804 4913 4244) -# if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -# pragma warning ( disable : 6334) -# endif -#endif - - - -namespace boost { -namespace detail { - -// This namespace ensures that argument-dependent name lookup does not mess things up. -namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) { - -// 1. a function to have an instance of type T without requiring T to be default -// constructible -template T &make(); - - -// 2. we provide our operator definition for types that do not have one already - -// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is -// found in the type's own namespace (our own operator is used) so that we have -// a means to know that our operator was used -struct no_operator { }; - -// this class allows implicit conversions and makes the following operator -// definition less-preferred than any other such operators that might be found -// via argument-dependent name lookup -struct any { template any(T const&); }; - -// when operator BOOST_TT_TRAIT_OP is not available, this one is used -no_operator operator BOOST_TT_TRAIT_OP (const any&); - - -// 3. checks if the operator returns void or not -// conditions: Rhs!=void - -// we first redefine "operator," so that we have no compilation error if -// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of -// (BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if -// operator BOOST_TT_TRAIT_OP returns void or not: -// - operator BOOST_TT_TRAIT_OP returns void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t -// - operator BOOST_TT_TRAIT_OP returns !=void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int -struct returns_void_t { }; -template int operator,(const T&, returns_void_t); -template int operator,(const volatile T&, returns_void_t); - -// this intermediate trait has member value of type bool: -// - value==true -> operator BOOST_TT_TRAIT_OP returns void -// - value==false -> operator BOOST_TT_TRAIT_OP does not return void -template < typename Rhs > -struct operator_returns_void { - // overloads of function returns_void make the difference - // yes_type and no_type have different size by construction - static ::boost::type_traits::yes_type returns_void(returns_void_t); - static ::boost::type_traits::no_type returns_void(int); - BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make(),returns_void_t()))))); -}; - - -// 4. checks if the return type is Ret or Ret==dont_care -// conditions: Rhs!=void - -struct dont_care { }; - -template < typename Rhs, typename Ret, bool Returns_void > -struct operator_returns_Ret; - -template < typename Rhs > -struct operator_returns_Ret < Rhs, dont_care, true > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Rhs > -struct operator_returns_Ret < Rhs, dont_care, false > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Rhs > -struct operator_returns_Ret < Rhs, void, true > { - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template < typename Rhs > -struct operator_returns_Ret < Rhs, void, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Rhs, typename Ret > -struct operator_returns_Ret < Rhs, Ret, true > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// otherwise checks if it is convertible to Ret using the sizeof trick -// based on overload resolution -// condition: Ret!=void and Ret!=dont_care and the operator does not return void -template < typename Rhs, typename Ret > -struct operator_returns_Ret < Rhs, Ret, false > { - static ::boost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret - static ::boost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise - - BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(BOOST_TT_TRAIT_OP make()))==sizeof(::boost::type_traits::yes_type))); -}; - - -// 5. checks for operator existence -// condition: Rhs!=void - -// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other -// existing one; -// this is done with redefinition of "operator," that returns no_operator or has_operator -struct has_operator { }; -no_operator operator,(no_operator, has_operator); - -template < typename Rhs > -struct operator_exists { - static ::boost::type_traits::yes_type s_check(has_operator); // this version is preferred when operator exists - static ::boost::type_traits::no_type s_check(no_operator); // this version is used otherwise - - BOOST_STATIC_CONSTANT(bool, value = (sizeof(s_check(((BOOST_TT_TRAIT_OP make()),make())))==sizeof(::boost::type_traits::yes_type))); -}; - - -// 6. main trait: to avoid any compilation error, this class behaves -// differently when operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the -// standard. -// Forbidden_if is a bool that is: -// - true when the operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the standard -// (would yield compilation error if used) -// - false otherwise -template < typename Rhs, typename Ret, bool Forbidden_if > -struct trait_impl1; - -template < typename Rhs, typename Ret > -struct trait_impl1 < Rhs, Ret, true > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template < typename Rhs, typename Ret > -struct trait_impl1 < Rhs, Ret, false > { - BOOST_STATIC_CONSTANT(bool, - value = (operator_exists < Rhs >::value && operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value)); -}; - -// specialization needs to be declared for the special void case -template < typename Ret > -struct trait_impl1 < void, Ret, false > { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// defines some typedef for convenience -template < typename Rhs, typename Ret > -struct trait_impl { - typedef typename ::boost::remove_reference::type Rhs_noref; - typedef typename ::boost::remove_cv::type Rhs_nocv; - typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer::type >::type >::type Rhs_noptr; - BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value)); -}; - -} // namespace impl -} // namespace detail - -// this is the accessible definition of the trait to end user -template -struct BOOST_TT_TRAIT_NAME : public integral_constant::value)>{}; - -} // namespace boost - -#if defined(BOOST_MSVC) -# pragma warning ( pop ) -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/detail/ice_and.hpp b/lib/3rdParty/boost/boost/type_traits/detail/ice_and.hpp deleted file mode 100644 index 3ccb03e85..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/ice_and.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED -#define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED - -#include - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (ice_and.hpp) is deprecated") -#endif - -namespace boost { -namespace type_traits { - -template -struct ice_and; - -template -struct ice_and -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template <> -struct ice_and -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/ice_eq.hpp b/lib/3rdParty/boost/boost/type_traits/detail/ice_eq.hpp deleted file mode 100644 index 5908f8151..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/ice_eq.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED -#define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED - -#include - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (ice_eq.hpp) is deprecated") -#endif - -namespace boost { -namespace type_traits { - -template -struct ice_eq -{ - BOOST_STATIC_CONSTANT(bool, value = (b1 == b2)); -}; - -template -struct ice_ne -{ - BOOST_STATIC_CONSTANT(bool, value = (b1 != b2)); -}; - -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -template bool const ice_eq::value; -template bool const ice_ne::value; -#endif - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/ice_not.hpp b/lib/3rdParty/boost/boost/type_traits/detail/ice_not.hpp deleted file mode 100644 index e095be9cc..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/ice_not.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED -#define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED - -#include - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (ice_not.hpp) is deprecated") -#endif - -namespace boost { -namespace type_traits { - -template -struct ice_not -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template <> -struct ice_not -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/ice_or.hpp b/lib/3rdParty/boost/boost/type_traits/detail/ice_or.hpp deleted file mode 100644 index ea523c808..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/ice_or.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// (C) Copyright John Maddock and Steve Cleary 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED -#define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED - -#include - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (ice_or.hpp) is deprecated") -#endif - -namespace boost { -namespace type_traits { - -template -struct ice_or; - -template -struct ice_or -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template <> -struct ice_or -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/is_function_ptr_helper.hpp b/lib/3rdParty/boost/boost/type_traits/detail/is_function_ptr_helper.hpp deleted file mode 100644 index 3538e402d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/is_function_ptr_helper.hpp +++ /dev/null @@ -1,176 +0,0 @@ - -// Copyright 2000 John Maddock (john@johnmaddock.co.uk) -// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) -// -// 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/type_traits for most recent version including documentation. - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED -#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED - -#if defined(BOOST_TT_PREPROCESSING_MODE) -// -// Hide these #include from dependency analysers as -// these are required in maintenance mode only: -// -#define PP1 -#include PP1 -#undef PP1 -#define PP1 -#include PP1 -#undef PP1 -#define PP1 -#include PP1 -#undef PP1 -#endif - -namespace boost { -namespace type_traits { - -template -struct is_function_ptr_helper -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#if !defined(BOOST_TT_PREPROCESSING_MODE) -// preprocessor-generated part, don't edit by hand! - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -#else - -#undef BOOST_STATIC_CONSTANT -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3, (0, 25, "boost/type_traits/detail/is_function_ptr_helper.hpp")) -#include BOOST_PP_ITERATE() - -#endif // BOOST_TT_PREPROCESSING_MODE - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED - -///// iteration - -#else -#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) - -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING -template -struct is_function_ptr_helper { BOOST_STATIC_CONSTANT(bool, value = true); }; -@#endif -#undef BOOST_PP_COUNTER -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/type_traits/detail/is_function_ptr_tester.hpp b/lib/3rdParty/boost/boost/type_traits/detail/is_function_ptr_tester.hpp deleted file mode 100644 index 4fe88e81b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/is_function_ptr_tester.hpp +++ /dev/null @@ -1,449 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED -#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED - -#include - -#if defined(BOOST_TT_PREPROCESSING_MODE) -// -// Hide include dependencies from analysers since they're -// only require in maintenance mode: -// -#define PP1 -#define PP2 -#define PP3 -#include PP1 -#include PP2 -#include PP3 -#undef PP1 -#undef PP2 -#undef PP3 -#endif - -namespace boost { -namespace type_traits { - -// Note it is acceptable to use ellipsis here, since the argument will -// always be a pointer type of some sort (JM 2005/06/04): -no_type BOOST_TT_DECL is_function_ptr_tester(...); - -#if !defined(BOOST_TT_PREPROCESSING_MODE) -// pre-processed code, don't edit, try GNU cpp with -// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename - -template -yes_type is_function_ptr_tester(R (*)()); -template -yes_type is_function_ptr_tester(R (*)( ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)()); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)()); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)()); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0)); -template -yes_type is_function_ptr_tester(R (*)( T0 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); -#endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); -#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); -#endif -#else - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3, (0, 25, "boost/type_traits/detail/is_function_ptr_tester.hpp")) -#include BOOST_PP_ITERATE() - -#endif // BOOST_TT_PREPROCESSING_MODE - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED - -///// iteration - -#else -#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) -#undef __stdcall -#undef __fastcall -#undef __cdecl - -template -yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); -@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING -template -yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); -@#endif -@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); -@#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); -@#endif -template -yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); -@#endif - -#undef BOOST_PP_COUNTER -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp b/lib/3rdParty/boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp deleted file mode 100644 index 5698a7489..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +++ /dev/null @@ -1,723 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED -#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED - -#include - -#if defined(BOOST_TT_PREPROCESSING_MODE) -// -// Maintenance mode, hide include dependencies -// from trackers: -// -#define PPI -#include PPI -#undef PPI -#define PPI -#include PPI -#undef PPI -#define PPI -#include PPI -#undef PPI -#endif - -namespace boost { -namespace type_traits { - -template -struct is_mem_fun_pointer_impl -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#if !defined(BOOST_TT_PREPROCESSING_MODE) -// pre-processed code, don't edit, try GNU cpp with -// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -#endif - -#else - -#undef BOOST_STATIC_CONSTANT -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp")) -#include BOOST_PP_ITERATE() - -#endif // BOOST_TT_PREPROCESSING_MODE - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED - -///// iteration - -#else -#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -@#endif - -@#if !defined(BOOST_TT_NO_CV_FUNC_TEST) -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; - -template -struct is_mem_fun_pointer_impl { BOOST_STATIC_CONSTANT(bool, value = true); }; -@#endif -@#endif - -#undef BOOST_PP_COUNTER -#endif // BOOST_PP_IS_ITERATING - diff --git a/lib/3rdParty/boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp b/lib/3rdParty/boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp deleted file mode 100644 index 5e3169311..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +++ /dev/null @@ -1,1800 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED -#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED - -#include -#include - -#if defined(BOOST_TT_PREPROCESSING_MODE) -// -// Maintentance mode, hide include dependencies -// from dependency trackers: -// -#define PPI -#include PPI -#undef PPI -#define PPI -#include PPI -#undef PPI -#define -#include PPI -#undef -#endif - -namespace boost { -namespace type_traits { - -no_type BOOST_TT_DECL is_mem_fun_pointer_tester(...); - -#if !defined(BOOST_TT_PREPROCESSING_MODE) -// pre-processed code, don't edit, try GNU cpp with -// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)()); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)()); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)()); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)()); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile); - -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - -#endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile); -#ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - -#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - -#endif - -#else - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp")) -#include BOOST_PP_ITERATE() - -#endif // BOOST_TT_PREPROCESSING_MODE - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED - -///// iteration - -#else -#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1) -#undef __stdcall -#undef __fastcall -#undef __cdecl - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); - -@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile); -@#endif -@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS // Other calling conventions used by MS compatible compilers: -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); - -@#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); - -@#endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); - -@#endif - -#undef BOOST_PP_COUNTER -#endif // BOOST_PP_IS_ITERATING diff --git a/lib/3rdParty/boost/boost/type_traits/detail/mp_defer.hpp b/lib/3rdParty/boost/boost/type_traits/detail/mp_defer.hpp deleted file mode 100644 index f3beeb21b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/mp_defer.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_DETAIL_MP_DEFER_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_DETAIL_MP_DEFER_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -#include -#include - -namespace boost -{ - -namespace type_traits_detail -{ - -// mp_valid -// implementation by Bruno Dutra (by the name is_evaluable) - -template class F, class... T> -struct mp_valid_impl -{ - template class G, class = G> - static boost::true_type check_s(int); - - template class> - static boost::false_type check_s(...); - - using type = decltype(check_s(0)); -}; - -template class F, class... T> -using mp_valid = typename mp_valid_impl::type; - -// mp_defer - -struct mp_empty -{ -}; - -template class F, class... T> struct mp_defer_impl -{ - using type = F; -}; - -template class F, class... T> using mp_defer = typename boost::conditional::value, mp_defer_impl, mp_empty>::type; - -} // namespace type_traits_detail - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_DETAIL_MP_DEFER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/detail/template_arity_spec.hpp b/lib/3rdParty/boost/boost/type_traits/detail/template_arity_spec.hpp deleted file mode 100644 index 36ea96d6d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/template_arity_spec.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) - -// -// This header is deprecated and no longer used by type_traits: -// -#if defined(__GNUC__) || defined(_MSC_VER) -# pragma message("NOTE: Use of this header (template_arity_spec.hpp) is deprecated") -#endif - -# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ diff --git a/lib/3rdParty/boost/boost/type_traits/detail/yes_no_type.hpp b/lib/3rdParty/boost/boost/type_traits/detail/yes_no_type.hpp deleted file mode 100644 index f58373022..000000000 --- a/lib/3rdParty/boost/boost/type_traits/detail/yes_no_type.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -// (C) Copyright John Maddock and Steve Cleary 2000. -// 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/type_traits for most recent version including documentation. -// -// macros and helpers for working with integral-constant-expressions. - -#ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED -#define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED - -namespace boost { -namespace type_traits { - -typedef char yes_type; -struct no_type -{ - char padding[8]; -}; - -} // namespace type_traits -} // namespace boost - -#endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/extent.hpp b/lib/3rdParty/boost/boost/type_traits/extent.hpp deleted file mode 100644 index 124257878..000000000 --- a/lib/3rdParty/boost/boost/type_traits/extent.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_EXTENT_HPP_INCLUDED -#define BOOST_TT_EXTENT_HPP_INCLUDED - -#include // size_t -#include -#include - -namespace boost { - -namespace detail{ - -#if defined( __CODEGEARC__ ) - // wrap the impl as main trait provides additional MPL lambda support - template < typename T, std::size_t N > - struct extent_imp { - static const std::size_t value = __array_extent(T, N); - }; - -#else - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = 0); -}; -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = R); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = R); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = R); -}; - -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = R); -}; - -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__) -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp::value)); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = 0); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = 0); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = 0); -}; -template -struct extent_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = 0); -}; -#endif -#endif - -#endif // non-CodeGear implementation -} // ::boost::detail - -template -struct extent - : public ::boost::integral_constant::value> -{ -}; - -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/floating_point_promotion.hpp b/lib/3rdParty/boost/boost/type_traits/floating_point_promotion.hpp deleted file mode 100644 index 993e14ef4..000000000 --- a/lib/3rdParty/boost/boost/type_traits/floating_point_promotion.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2005 Alexander Nasonov. -// 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 FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED -#define FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED - -namespace boost { - - template struct floating_point_promotion { typedef T type; }; - template<> struct floating_point_promotion { typedef double type; }; - template<> struct floating_point_promotion { typedef double const type; }; - template<> struct floating_point_promotion{ typedef double volatile type; }; - template<> struct floating_point_promotion { typedef double const volatile type; }; - -} - -#endif // #ifndef FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/function_traits.hpp b/lib/3rdParty/boost/boost/type_traits/function_traits.hpp deleted file mode 100644 index 26d7e05c5..000000000 --- a/lib/3rdParty/boost/boost/type_traits/function_traits.hpp +++ /dev/null @@ -1,174 +0,0 @@ - -// Copyright 2000 John Maddock (john@johnmaddock.co.uk) -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED -#define BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED - -#include -#include -#include - -namespace boost { - -namespace detail { - -template struct function_traits_helper; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 0); - typedef R result_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 1); - typedef R result_type; - typedef T1 arg1_type; - typedef T1 argument_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 2); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T1 first_argument_type; - typedef T2 second_argument_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 3); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 4); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 5); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; - typedef T5 arg5_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 6); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; - typedef T5 arg5_type; - typedef T6 arg6_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 7); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; - typedef T5 arg5_type; - typedef T6 arg6_type; - typedef T7 arg7_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 8); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; - typedef T5 arg5_type; - typedef T6 arg6_type; - typedef T7 arg7_type; - typedef T8 arg8_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 9); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; - typedef T5 arg5_type; - typedef T6 arg6_type; - typedef T7 arg7_type; - typedef T8 arg8_type; - typedef T9 arg9_type; -}; - -template -struct function_traits_helper -{ - BOOST_STATIC_CONSTANT(unsigned, arity = 10); - typedef R result_type; - typedef T1 arg1_type; - typedef T2 arg2_type; - typedef T3 arg3_type; - typedef T4 arg4_type; - typedef T5 arg5_type; - typedef T6 arg6_type; - typedef T7 arg7_type; - typedef T8 arg8_type; - typedef T9 arg9_type; - typedef T10 arg10_type; -}; - -} // end namespace detail - -template -struct function_traits : - public boost::detail::function_traits_helper::type> -{ -}; - -} - -#endif // BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_bit_and.hpp b/lib/3rdParty/boost/boost/type_traits/has_bit_and.hpp deleted file mode 100644 index a16c71a48..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_bit_and.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_BIT_AND_HPP_INCLUDED -#define BOOST_TT_HAS_BIT_AND_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_bit_and -#define BOOST_TT_TRAIT_OP & -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_bit_and_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_bit_and_assign.hpp deleted file mode 100644 index 01e25e318..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_bit_and_assign.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_bit_and_assign -#define BOOST_TT_TRAIT_OP &= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (\ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_bit_or.hpp b/lib/3rdParty/boost/boost/type_traits/has_bit_or.hpp deleted file mode 100644 index 6e76929fd..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_bit_or.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_BIT_OR_HPP_INCLUDED -#define BOOST_TT_HAS_BIT_OR_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_bit_or -#define BOOST_TT_TRAIT_OP | -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_bit_or_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_bit_or_assign.hpp deleted file mode 100644 index 891c39c51..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_bit_or_assign.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_bit_or_assign -#define BOOST_TT_TRAIT_OP |= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_bit_xor.hpp b/lib/3rdParty/boost/boost/type_traits/has_bit_xor.hpp deleted file mode 100644 index 05173ac11..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_bit_xor.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED -#define BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_bit_xor -#define BOOST_TT_TRAIT_OP ^ -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_bit_xor_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_bit_xor_assign.hpp deleted file mode 100644 index 3866b7ac4..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_bit_xor_assign.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_bit_xor_assign -#define BOOST_TT_TRAIT_OP ^= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_complement.hpp b/lib/3rdParty/boost/boost/type_traits/has_complement.hpp deleted file mode 100644 index d323e1293..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_complement.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED -#define BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_complement -#define BOOST_TT_TRAIT_OP ~ -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* pointer */\ - ::boost::is_pointer< Rhs_noref >::value || \ - /* fundamental non integral */\ - (\ - ::boost::is_fundamental< Rhs_noref >::value && \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_dereference.hpp b/lib/3rdParty/boost/boost/type_traits/has_dereference.hpp deleted file mode 100644 index 1e514cdf4..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_dereference.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED -#define BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_dereference -#define BOOST_TT_TRAIT_OP * -#define BOOST_TT_FORBIDDEN_IF\ - /* void* or fundamental */\ - (\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value\ - ) || \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_divides.hpp b/lib/3rdParty/boost/boost/type_traits/has_divides.hpp deleted file mode 100644 index 869e907f6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_divides.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_DIVIDES_HPP_INCLUDED -#define BOOST_TT_HAS_DIVIDES_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_divides -#define BOOST_TT_TRAIT_OP / -#define BOOST_TT_FORBIDDEN_IF\ - /* pointer with pointer or fundamental */\ - (\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - )||\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_divides_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_divides_assign.hpp deleted file mode 100644 index 1a8e3c1e6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_divides_assign.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_divides_assign -#define BOOST_TT_TRAIT_OP /= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - )||\ - /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_equal_to.hpp b/lib/3rdParty/boost/boost/type_traits/has_equal_to.hpp deleted file mode 100644 index d80a55d8e..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_equal_to.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED -#define BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_equal_to -#define BOOST_TT_TRAIT_OP == -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==pointer and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! \ - (\ - ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value || \ - ::boost::is_same< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_void< Lhs_noptr >::value || \ - ::boost::is_void< Rhs_noptr >::value\ - )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_greater.hpp b/lib/3rdParty/boost/boost/type_traits/has_greater.hpp deleted file mode 100644 index 32e0a1240..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_greater.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_GREATER_HPP_INCLUDED -#define BOOST_TT_HAS_GREATER_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_greater -#define BOOST_TT_TRAIT_OP > -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==pointer and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! \ - ( \ - ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value || \ - ::boost::is_same< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_void< Lhs_noptr >::value || \ - ::boost::is_void< Rhs_noptr >::value\ - )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_greater_equal.hpp b/lib/3rdParty/boost/boost/type_traits/has_greater_equal.hpp deleted file mode 100644 index a933a6beb..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_greater_equal.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED -#define BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_greater_equal -#define BOOST_TT_TRAIT_OP >= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==pointer and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! \ - ( \ - ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value || \ - ::boost::is_same< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_void< Lhs_noptr >::value || \ - ::boost::is_void< Rhs_noptr >::value\ - )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_left_shift.hpp b/lib/3rdParty/boost/boost/type_traits/has_left_shift.hpp deleted file mode 100644 index e95c12a80..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_left_shift.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED -#define BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_left_shift -#define BOOST_TT_TRAIT_OP << -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_left_shift_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_left_shift_assign.hpp deleted file mode 100644 index 74e0df958..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_left_shift_assign.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_left_shift_assign -#define BOOST_TT_TRAIT_OP <<= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_less.hpp b/lib/3rdParty/boost/boost/type_traits/has_less.hpp deleted file mode 100644 index 0eefcd22d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_less.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LESS_HPP_INCLUDED -#define BOOST_TT_HAS_LESS_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_less -#define BOOST_TT_TRAIT_OP < -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==pointer and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! \ - ( \ - ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value || \ - ::boost::is_same< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_void< Lhs_noptr >::value || \ - ::boost::is_void< Rhs_noptr >::value\ - )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_less_equal.hpp b/lib/3rdParty/boost/boost/type_traits/has_less_equal.hpp deleted file mode 100644 index 4725bbd42..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_less_equal.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED -#define BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_less_equal -#define BOOST_TT_TRAIT_OP <= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==pointer and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! \ - ( \ - ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value || \ - ::boost::is_same< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_void< Lhs_noptr >::value || \ - ::boost::is_void< Rhs_noptr >::value\ - )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_logical_and.hpp b/lib/3rdParty/boost/boost/type_traits/has_logical_and.hpp deleted file mode 100644 index 3bb1733d5..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_logical_and.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED -#define BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_logical_and -#define BOOST_TT_TRAIT_OP && -#define BOOST_TT_FORBIDDEN_IF\ - /* pointer with fundamental non convertible to bool */\ - (\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (! ::boost::is_convertible< Rhs_nocv, bool >::value )\ - )\ - )||\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Lhs_nocv >::value && \ - (! ::boost::is_convertible< Lhs_nocv, bool >::value )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_logical_not.hpp b/lib/3rdParty/boost/boost/type_traits/has_logical_not.hpp deleted file mode 100644 index d36858e1e..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_logical_not.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED -#define BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED - -#if defined(__GNUC__) && (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ > 40800) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-value" -#endif - -#define BOOST_TT_TRAIT_NAME has_logical_not -#define BOOST_TT_TRAIT_OP ! -#define BOOST_TT_FORBIDDEN_IF\ - false - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#if defined(__GNUC__) && (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ > 40800) -#pragma GCC diagnostic pop -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_logical_or.hpp b/lib/3rdParty/boost/boost/type_traits/has_logical_or.hpp deleted file mode 100644 index a188726e1..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_logical_or.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED -#define BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_logical_or -#define BOOST_TT_TRAIT_OP || -#define BOOST_TT_FORBIDDEN_IF\ - /* pointer with fundamental non convertible to bool */\ - (\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (! ::boost::is_convertible< Rhs_nocv, bool >::value )\ - )\ - )||\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - (! ::boost::is_convertible< Lhs_nocv, bool >::value )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_minus.hpp b/lib/3rdParty/boost/boost/type_traits/has_minus.hpp deleted file mode 100644 index 5e13c1601..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_minus.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_MINUS_HPP_INCLUDED -#define BOOST_TT_HAS_MINUS_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_minus -#define BOOST_TT_TRAIT_OP - -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (! ::boost::is_integral< Rhs_noref >::value )\ - ) || \ - /* Lhs==void* and (Rhs==fundamental or Rhs==pointer) */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_void< Lhs_noptr >::value && \ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) || \ - /* Rhs==void* and (Lhs==fundamental or Lhs==pointer) */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value && \ - (\ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - )\ - ) ||\ - /* Lhs=fundamental and Rhs=pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - ) ||\ - /* two different pointers */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! ::boost::is_same< Lhs_nocv, Rhs_nocv >::value )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_minus_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_minus_assign.hpp deleted file mode 100644 index b53474e75..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_minus_assign.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_minus_assign -#define BOOST_TT_TRAIT_OP -= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (! ::boost::is_integral< Rhs_noref >::value )\ - ) || \ - /* Lhs==void* and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_void< Lhs_noptr >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==void* and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs=fundamental and Rhs=pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - ) || \ - /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\ - (\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - ) && \ - (\ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - ) && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_modulus.hpp b/lib/3rdParty/boost/boost/type_traits/has_modulus.hpp deleted file mode 100644 index 24a815f3d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_modulus.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_MODULUS_HPP_INCLUDED -#define BOOST_TT_HAS_MODULUS_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_modulus -#define BOOST_TT_TRAIT_OP % -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (\ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_modulus_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_modulus_assign.hpp deleted file mode 100644 index 5e3e83fa0..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_modulus_assign.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_modulus_assign -#define BOOST_TT_TRAIT_OP %= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_multiplies.hpp b/lib/3rdParty/boost/boost/type_traits/has_multiplies.hpp deleted file mode 100644 index 591a0ceae..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_multiplies.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED -#define BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_multiplies -#define BOOST_TT_TRAIT_OP * -#define BOOST_TT_FORBIDDEN_IF\ - /* pointer with pointer or fundamental */\ - (\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - (\ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - )||\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - (\ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_multiplies_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_multiplies_assign.hpp deleted file mode 100644 index b24f87944..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_multiplies_assign.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_multiplies_assign -#define BOOST_TT_TRAIT_OP *= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - )||\ - /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ( \ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_negate.hpp b/lib/3rdParty/boost/boost/type_traits/has_negate.hpp deleted file mode 100644 index 452e54ab4..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_negate.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NEGATE_HPP_INCLUDED -#define BOOST_TT_HAS_NEGATE_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_negate -#define BOOST_TT_TRAIT_OP - -#define BOOST_TT_FORBIDDEN_IF\ - /* pointer */\ - ::boost::is_pointer< Rhs_noref >::value - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_new_operator.hpp b/lib/3rdParty/boost/boost/type_traits/has_new_operator.hpp deleted file mode 100644 index 4def872dd..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_new_operator.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// (C) Copyright Runar Undheim, Robert Ramey & 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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED -#define BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED - -#include // std::nothrow_t -#include // std::size_t -#include -#include -#include - -#if defined(new) -# if BOOST_WORKAROUND(BOOST_MSVC, >= 1310) -# define BOOST_TT_AUX_MACRO_NEW_DEFINED -# pragma push_macro("new") -# undef new -# else -# error "Sorry but you can't include this header if 'new' is defined as a macro." -# endif -#endif - -namespace boost { -namespace detail { - template - struct test; - - template - struct has_new_operator_impl { - template - static type_traits::yes_type check_sig1( - U*, - test< - void *(*)(std::size_t), - &U::operator new - >* = NULL - ); - template - static type_traits::no_type check_sig1(...); - - template - static type_traits::yes_type check_sig2( - U*, - test< - void *(*)(std::size_t, const std::nothrow_t&), - &U::operator new - >* = NULL - ); - template - static type_traits::no_type check_sig2(...); - - template - static type_traits::yes_type check_sig3( - U*, - test< - void *(*)(std::size_t, void*), - &U::operator new - >* = NULL - ); - template - static type_traits::no_type check_sig3(...); - - - template - static type_traits::yes_type check_sig4( - U*, - test< - void *(*)(std::size_t), - &U::operator new[] - >* = NULL - ); - template - static type_traits::no_type check_sig4(...); - - template - static type_traits::yes_type check_sig5( - U*, - test< - void *(*)(std::size_t, const std::nothrow_t&), - &U::operator new[] - >* = NULL - ); - template - static type_traits::no_type check_sig5(...); - - template - static type_traits::yes_type check_sig6( - U*, - test< - void *(*)(std::size_t, void*), - &U::operator new[] - >* = NULL - ); - template - static type_traits::no_type check_sig6(...); - - // GCC2 won't even parse this template if we embed the computation - // of s1 in the computation of value. - #ifdef __GNUC__ - BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl::template check_sig1(0))); - BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl::template check_sig2(0))); - BOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(has_new_operator_impl::template check_sig3(0))); - BOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(has_new_operator_impl::template check_sig4(0))); - BOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(has_new_operator_impl::template check_sig5(0))); - BOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(has_new_operator_impl::template check_sig6(0))); - #else - #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) - #pragma warning(push) - #pragma warning(disable:6334) - #endif - - BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig1(0))); - BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2(0))); - BOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(check_sig3(0))); - BOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(check_sig4(0))); - BOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(check_sig5(0))); - BOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(check_sig6(0))); - - #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) - #pragma warning(pop) - #endif - #endif - BOOST_STATIC_CONSTANT(bool, value = - (s1 == sizeof(type_traits::yes_type)) || - (s2 == sizeof(type_traits::yes_type)) || - (s3 == sizeof(type_traits::yes_type)) || - (s4 == sizeof(type_traits::yes_type)) || - (s5 == sizeof(type_traits::yes_type)) || - (s6 == sizeof(type_traits::yes_type)) - ); - }; -} // namespace detail - -template struct has_new_operator : public integral_constant::value>{}; - -} // namespace boost - -#if defined(BOOST_TT_AUX_MACRO_NEW_DEFINED) -# pragma pop_macro("new") -#endif - -#endif // BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_not_equal_to.hpp b/lib/3rdParty/boost/boost/type_traits/has_not_equal_to.hpp deleted file mode 100644 index c2b6705e7..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_not_equal_to.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED -#define BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_not_equal_to -#define BOOST_TT_TRAIT_OP != -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==pointer and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value && \ - (! \ - (\ - ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value || \ - ::boost::is_same< Lhs_noptr, Rhs_noptr >::value || \ - ::boost::is_void< Lhs_noptr >::value || \ - ::boost::is_void< Rhs_noptr >::value\ - )\ - )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_nothrow_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_nothrow_assign.hpp deleted file mode 100644 index 7517fa804..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_nothrow_assign.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED - -#include // size_t -#include -#include - -#if !defined(BOOST_HAS_NOTHROW_ASSIGN) || defined(BOOST_MSVC) || defined(BOOST_INTEL) -#include -#if !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -#include -#include -#include -#include -#include -#include -#include -#endif -#endif -#if defined(__GNUC__) || defined(__SUNPRO_CC) || defined(__clang__) -#include -#include -#include -#include -#ifdef BOOST_INTEL -#include -#endif -#endif - -namespace boost { - -#if !defined(BOOST_HAS_NOTHROW_ASSIGN) && !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - - namespace detail - { - template struct has_nothrow_assign_imp{ static const bool value = false; }; - template struct has_nothrow_assign_imp{ static const bool value = noexcept(boost::declval::type>() = boost::declval::type>()); }; - template struct has_nothrow_assign_imp{ static const bool value = has_nothrow_assign_imp::value; }; - template struct has_nothrow_assign_imp{ static const bool value = has_nothrow_assign_imp::value; }; - } - -#endif - - template - struct has_nothrow_assign : public integral_constant < bool, -#ifndef BOOST_HAS_NOTHROW_ASSIGN -#if !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - // Portable C++11 version: - detail::has_nothrow_assign_imp::type>::value || is_volatile::type>::value || is_reference::value), - is_assignable::type, typename add_reference::type>::value - >::value -#else - ::boost::has_trivial_assign::value -#endif -#else - BOOST_HAS_NOTHROW_ASSIGN(T) -#endif - > {}; - -template struct has_nothrow_assign : public has_nothrow_assign {}; -template <> struct has_nothrow_assign : public false_type{}; -template struct has_nothrow_assign : public false_type{}; -template struct has_nothrow_assign : public false_type{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -template struct has_nothrow_assign : public false_type{}; -#endif -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct has_nothrow_assign : public false_type{}; -template <> struct has_nothrow_assign : public false_type{}; -template <> struct has_nothrow_assign : public false_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_nothrow_constructor.hpp b/lib/3rdParty/boost/boost/type_traits/has_nothrow_constructor.hpp deleted file mode 100644 index fa47b1db3..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_nothrow_constructor.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED -#define BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED - -#include // size_t -#include -#include - -#ifdef BOOST_HAS_NOTHROW_CONSTRUCTOR - -#if defined(BOOST_MSVC) || defined(BOOST_INTEL) -#include -#endif -#if defined(__GNUC__ ) || defined(__SUNPRO_CC) || defined(__clang__) -#include -#endif - -namespace boost { - -template struct has_nothrow_constructor : public integral_constant{}; - -#elif !defined(BOOST_NO_CXX11_NOEXCEPT) - -#include -#include - -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4197) // top-level volatile in cast is ignored -#endif - -namespace boost { namespace detail{ - - template struct has_nothrow_constructor_imp : public boost::integral_constant{}; - template struct has_nothrow_constructor_imp : public boost::integral_constant{}; - template struct has_nothrow_constructor_imp : public has_nothrow_constructor_imp {}; -} - -template struct has_nothrow_constructor : public detail::has_nothrow_constructor_imp::value>{}; - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#else - -#include - -namespace boost { - -template struct has_nothrow_constructor : public ::boost::has_trivial_constructor {}; - -#endif - -template<> struct has_nothrow_constructor : public false_type {}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template<> struct has_nothrow_constructor : public false_type{}; -template<> struct has_nothrow_constructor : public false_type{}; -template<> struct has_nothrow_constructor : public false_type{}; -#endif - -template struct has_nothrow_default_constructor : public has_nothrow_constructor{}; - -} // namespace boost - -#endif // BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_nothrow_copy.hpp b/lib/3rdParty/boost/boost/type_traits/has_nothrow_copy.hpp deleted file mode 100644 index 0d9bb1837..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_nothrow_copy.hpp +++ /dev/null @@ -1,82 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED -#define BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED - -#include -#include - -#ifdef BOOST_HAS_NOTHROW_COPY - -#if defined(BOOST_CLANG) || defined(__GNUC__) || defined(__ghs__) || defined(__CODEGEARC__) || defined(__SUNPRO_CC) -#include -#include -#include -#include -#ifdef BOOST_INTEL -#include -#endif -#elif defined(BOOST_MSVC) || defined(BOOST_INTEL) -#include -#include -#ifdef BOOST_INTEL -#include -#include -#endif -#endif - -namespace boost { - -template struct has_nothrow_copy_constructor : public integral_constant{}; - -#elif !defined(BOOST_NO_CXX11_NOEXCEPT) - -#include -#include - -namespace boost{ - -namespace detail{ - -template -struct has_nothrow_copy_constructor_imp : public boost::integral_constant{}; -template -struct has_nothrow_copy_constructor_imp : public boost::integral_constant()))>{}; - -} - -template struct has_nothrow_copy_constructor : public detail::has_nothrow_copy_constructor_imp::value>{}; - -#else - -#include - -namespace boost{ - -template struct has_nothrow_copy_constructor : public integral_constant::value>{}; - -#endif - -template <> struct has_nothrow_copy_constructor : public false_type{}; -template struct has_nothrow_copy_constructor : public false_type{}; -template struct has_nothrow_copy_constructor : public false_type{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -template struct has_nothrow_copy_constructor : public false_type{}; -#endif -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct has_nothrow_copy_constructor : public false_type{}; -template <> struct has_nothrow_copy_constructor : public false_type{}; -template <> struct has_nothrow_copy_constructor : public false_type{}; -#endif - -template struct has_nothrow_copy : public has_nothrow_copy_constructor{}; - -} // namespace boost - -#endif // BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_nothrow_destructor.hpp b/lib/3rdParty/boost/boost/type_traits/has_nothrow_destructor.hpp deleted file mode 100644 index ba70e8910..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_nothrow_destructor.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED -#define BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED - -#include - -#if !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(__SUNPRO_CC) && !(defined(BOOST_MSVC) && (_MSC_FULL_VER < 190023506)) - -#include -#include - -namespace boost{ - - namespace detail{ - - template - struct has_nothrow_destructor_imp : public boost::integral_constant{}; - template - struct has_nothrow_destructor_imp : public boost::integral_constant()->~T())>{}; - - } - - template struct has_nothrow_destructor : public detail::has_nothrow_destructor_imp::value>{}; - template struct has_nothrow_destructor : public has_nothrow_destructor{}; - template struct has_nothrow_destructor : public integral_constant{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - template struct has_nothrow_destructor : public integral_constant{}; -#endif -} -#else - -namespace boost { - -template struct has_nothrow_destructor : public ::boost::has_trivial_destructor {}; - -} // namespace boost - -#endif - -#endif // BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_operator.hpp b/lib/3rdParty/boost/boost/type_traits/has_operator.hpp deleted file mode 100644 index c97a90fc0..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_operator.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_OPERATOR_HPP_INCLUDED -#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#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/lib/3rdParty/boost/boost/type_traits/has_plus.hpp b/lib/3rdParty/boost/boost/type_traits/has_plus.hpp deleted file mode 100644 index 2d7932884..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_plus.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_PLUS_HPP_INCLUDED -#define BOOST_TT_HAS_PLUS_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_plus -#define BOOST_TT_TRAIT_OP + -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - ) || \ - /* Lhs==void* and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_void< Lhs_noptr >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==void* and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (! ::boost::is_integral< Rhs_noref >::value )\ - ) || \ - /* Rhs==pointer and Lhs==fundamental and Lhs!=integral */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value && \ - (! ::boost::is_integral< Lhs_noref >::value )\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_plus_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_plus_assign.hpp deleted file mode 100644 index 5ef6f2328..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_plus_assign.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_plus_assign -#define BOOST_TT_TRAIT_OP += -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - ) || \ - /* Lhs==void* and Rhs==fundamental */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_void< Lhs_noptr >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value\ - ) || \ - /* Rhs==void* and Lhs==fundamental */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value\ - ) || \ - /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - (! ::boost::is_integral< Rhs_noref >::value )\ - ) || \ - /* Rhs==pointer and Lhs==fundamental and Lhs!=bool */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_fundamental< Lhs_nocv >::value && \ - (! ::boost::is_same< Lhs_nocv, bool >::value )\ - ) || \ - /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\ - (\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - ) && \ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - ) && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_post_decrement.hpp b/lib/3rdParty/boost/boost/type_traits/has_post_decrement.hpp deleted file mode 100644 index e3f98fff1..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_post_decrement.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED -#define BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED - -#include - -#define BOOST_TT_TRAIT_NAME has_post_decrement -#define BOOST_TT_TRAIT_OP -- -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* bool */\ - ::boost::is_same< bool, Lhs_nocv >::value || \ - /* void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_void< Lhs_noptr >::value\ - ) || \ - /* (fundamental or pointer) and const */\ - (\ - ( \ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - ) && \ - ::boost::is_const< Lhs_noref >::value\ - )||\ - /* Arrays */ \ - ::boost::is_array::value\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_post_increment.hpp b/lib/3rdParty/boost/boost/type_traits/has_post_increment.hpp deleted file mode 100644 index 3861a2bbd..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_post_increment.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED -#define BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED - -#include - -#define BOOST_TT_TRAIT_NAME has_post_increment -#define BOOST_TT_TRAIT_OP ++ -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* bool */\ - ::boost::is_same< bool, Lhs_nocv >::value || \ - /* void* */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_void< Lhs_noptr >::value\ - ) || \ - /* (fundamental or pointer) and const */\ - (\ - ( \ - ::boost::is_fundamental< Lhs_nocv >::value || \ - ::boost::is_pointer< Lhs_noref >::value\ - ) && \ - ::boost::is_const< Lhs_noref >::value\ - )||\ - /* Arrays */ \ - ::boost::is_array::value\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_pre_decrement.hpp b/lib/3rdParty/boost/boost/type_traits/has_pre_decrement.hpp deleted file mode 100644 index 7ef078329..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_pre_decrement.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED -#define BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED - -#include - -#define BOOST_TT_TRAIT_NAME has_pre_decrement -#define BOOST_TT_TRAIT_OP -- -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* bool */\ - ::boost::is_same< bool, Rhs_nocv >::value || \ - /* void* */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value\ - ) || \ - /* (fundamental or pointer) and const */\ - (\ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - ) && \ - ::boost::is_const< Rhs_noref >::value\ - )||\ - /* Arrays */ \ - ::boost::is_array::value\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_pre_increment.hpp b/lib/3rdParty/boost/boost/type_traits/has_pre_increment.hpp deleted file mode 100644 index c4c973487..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_pre_increment.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED -#define BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED - -#include - -#define BOOST_TT_TRAIT_NAME has_pre_increment -#define BOOST_TT_TRAIT_OP ++ -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* bool */\ - ::boost::is_same< bool, Rhs_nocv >::value || \ - /* void* */\ - (\ - ::boost::is_pointer< Rhs_noref >::value && \ - ::boost::is_void< Rhs_noptr >::value\ - ) || \ - /* (fundamental or pointer) and const */\ - (\ - ( \ - ::boost::is_fundamental< Rhs_nocv >::value || \ - ::boost::is_pointer< Rhs_noref >::value\ - ) && \ - ::boost::is_const< Rhs_noref >::value\ - )||\ - /* Arrays */ \ - ::boost::is_array::value\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_right_shift.hpp b/lib/3rdParty/boost/boost/type_traits/has_right_shift.hpp deleted file mode 100644 index 556291123..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_right_shift.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED -#define BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_right_shift -#define BOOST_TT_TRAIT_OP >> -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_right_shift_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_right_shift_assign.hpp deleted file mode 100644 index 0e2c26355..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_right_shift_assign.hpp +++ /dev/null @@ -1,55 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_right_shift_assign -#define BOOST_TT_TRAIT_OP >>= -#define BOOST_TT_FORBIDDEN_IF\ - (\ - /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ( \ - (! ::boost::is_integral< Lhs_noref >::value ) || \ - (! ::boost::is_integral< Rhs_noref >::value )\ - )\ - )||\ - /* Lhs==fundamental and Rhs==pointer */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Rhs==fundamental and Lhs==pointer */\ - (\ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_pointer< Lhs_noref >::value\ - )||\ - /* Lhs==pointer and Rhs==pointer */\ - (\ - ::boost::is_pointer< Lhs_noref >::value && \ - ::boost::is_pointer< Rhs_noref >::value\ - )||\ - /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\ - (\ - ::boost::is_fundamental< Lhs_nocv >::value && \ - ::boost::is_fundamental< Rhs_nocv >::value && \ - ::boost::is_const< Lhs_noref >::value\ - )\ - ) - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_trivial_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_trivial_assign.hpp deleted file mode 100644 index 15b917e71..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_trivial_assign.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED - -#include // size_t -#include -#include -#include - -#if !defined(BOOST_HAS_TRIVIAL_ASSIGN) || defined(BOOST_MSVC) || defined(__GNUC__) || defined(BOOST_INTEL) || defined(__SUNPRO_CC) || defined(__clang__) -#include -#include -#include -#include -#endif - -namespace boost { - - template - struct has_trivial_assign : public integral_constant < bool, -#ifdef BOOST_HAS_TRIVIAL_ASSIGN - BOOST_HAS_TRIVIAL_ASSIGN(T) -#else - ::boost::is_pod::value && !::boost::is_const::value && !::boost::is_volatile::value -#endif - > {}; - - template<> struct has_trivial_assign : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS - template<> struct has_trivial_assign : public false_type{}; - template<> struct has_trivial_assign : public false_type{}; - template<> struct has_trivial_assign : public false_type{}; -#endif - template struct has_trivial_assign : public false_type{}; - template struct has_trivial_assign : public false_type{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - template struct has_trivial_assign : public false_type{}; -#endif - // Arrays are not explictly assignable: - template struct has_trivial_assign : public false_type{}; - template struct has_trivial_assign : public false_type{}; - -} // namespace boost - -#endif // BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_trivial_constructor.hpp b/lib/3rdParty/boost/boost/type_traits/has_trivial_constructor.hpp deleted file mode 100644 index 06c137d1d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_trivial_constructor.hpp +++ /dev/null @@ -1,57 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED -#define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED - -#include -#include -#include - -#ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR -#ifdef BOOST_HAS_SGI_TYPE_TRAITS -#include -#elif defined(__GNUC__) || defined(__SUNPRO_CC) -#include -#ifdef BOOST_INTEL -#include -#endif -#endif -#endif - - -#if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)) || defined(BOOST_CLANG) || (defined(__SUNPRO_CC) && defined(BOOST_HAS_TRIVIAL_CONSTRUCTOR)) -#include -#define BOOST_TT_TRIVIAL_CONSTRUCT_FIX && is_default_constructible::value -#else -// -// Mot all compilers, particularly older GCC versions can handle the fix above. -#define BOOST_TT_TRIVIAL_CONSTRUCT_FIX -#endif - -namespace boost { - -template struct has_trivial_constructor -#ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR - : public integral_constant ::value || BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)) BOOST_TT_TRIVIAL_CONSTRUCT_FIX)>{}; -#else - : public integral_constant ::value>{}; -#endif - -template <> struct has_trivial_constructor : public boost::false_type{}; -template <> struct has_trivial_constructor : public boost::false_type{}; -template <> struct has_trivial_constructor : public boost::false_type{}; -template <> struct has_trivial_constructor : public boost::false_type{}; - -template struct has_trivial_default_constructor : public has_trivial_constructor {}; - -#undef BOOST_TT_TRIVIAL_CONSTRUCT_FIX - -} // namespace boost - -#endif // BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_trivial_copy.hpp b/lib/3rdParty/boost/boost/type_traits/has_trivial_copy.hpp deleted file mode 100644 index fd6ad2d03..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_trivial_copy.hpp +++ /dev/null @@ -1,63 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED -#define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED - -#include // size_t -#include -#include -#include - -#if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)) || defined(BOOST_CLANG) || (defined(__SUNPRO_CC) && defined(BOOST_HAS_TRIVIAL_COPY)) -#include -#define BOOST_TT_TRIVIAL_CONSTRUCT_FIX && is_copy_constructible::value -#else -#define BOOST_TT_TRIVIAL_CONSTRUCT_FIX -#endif - -#ifdef BOOST_INTEL -#include -#include -#endif - -namespace boost { - -template struct has_trivial_copy -: public integral_constant::value -#endif ->{}; -// Arrays are not explicitly copyable: -template struct has_trivial_copy : public false_type{}; -template struct has_trivial_copy : public false_type{}; -// Are volatile types ever trivial? We don't really know, so assume not: -template struct has_trivial_copy : public false_type{}; - -template <> struct has_trivial_copy : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct has_trivial_copy : public false_type{}; -template <> struct has_trivial_copy : public false_type{}; -template <> struct has_trivial_copy : public false_type{}; -#endif - -template struct has_trivial_copy : public false_type{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -template struct has_trivial_copy : public false_type{}; -#endif - -template struct has_trivial_copy_constructor : public has_trivial_copy{}; - -#undef BOOST_TT_TRIVIAL_CONSTRUCT_FIX - -} // namespace boost - -#endif // BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_trivial_destructor.hpp b/lib/3rdParty/boost/boost/type_traits/has_trivial_destructor.hpp deleted file mode 100644 index 9a3a61ff9..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_trivial_destructor.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED -#define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED - -#include -#include - -#ifdef BOOST_HAS_TRIVIAL_DESTRUCTOR - -#if defined(BOOST_INTEL) || defined(BOOST_MSVC) -#include -#endif -#ifdef BOOST_HAS_SGI_TYPE_TRAITS -#include -#endif - -#if defined(__GNUC__) || defined(__clang__) || defined(__SUNPRO_CC) -#include -#endif - -namespace boost { - -template struct has_trivial_destructor : public integral_constant{}; -#else -#include - -namespace boost{ - -template struct has_trivial_destructor : public integral_constant::value>{}; -#endif - -template <> struct has_trivial_destructor : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct has_trivial_destructor : public false_type{}; -template <> struct has_trivial_destructor : public false_type{}; -template <> struct has_trivial_destructor : public false_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_trivial_move_assign.hpp b/lib/3rdParty/boost/boost/type_traits/has_trivial_move_assign.hpp deleted file mode 100644 index 6d954ab66..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_trivial_move_assign.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// (C) Copyright Eric Friedman 2002-2003. -// (C) Copyright Antony Polukhin 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED -#define BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED - -#include // size_t -#include -#include - -#if !defined(BOOST_HAS_TRIVIAL_MOVE_ASSIGN) || defined(BOOST_MSVC) || defined(BOOST_INTEL) -#include -#include -#include -#ifdef BOOST_MSVC -#include -#endif -#endif - -#if defined(__GNUC__) || defined(__clang) -#include -#include -#endif - -#ifdef __SUNPRO_CC -#include -#include -#if __cplusplus >= 201103 -#define SOLARIS_EXTRA_CHECK && is_assignable::type&, typename remove_const::type&&>::value -#endif -#endif - -#ifndef SOLARIS_EXTRA_CHECK -#define SOLARIS_EXTRA_CHECK -#endif - -namespace boost{ - -template -struct has_trivial_move_assign : public integral_constant::value && !::boost::is_const::value && !::boost::is_volatile::value SOLARIS_EXTRA_CHECK -#endif - > {}; - -template <> struct has_trivial_move_assign : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct has_trivial_move_assign : public false_type{}; -template <> struct has_trivial_move_assign : public false_type{}; -template <> struct has_trivial_move_assign : public false_type{}; -#endif -template struct has_trivial_move_assign : public false_type{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct has_trivial_move_assign : public false_type{}; -#endif -// Array types are not assignable: -template struct has_trivial_move_assign : public false_type{}; -template struct has_trivial_move_assign : public false_type{}; - -} // namespace boost - -#undef SOLARIS_EXTRA_CHECK - -#endif // BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_trivial_move_constructor.hpp b/lib/3rdParty/boost/boost/type_traits/has_trivial_move_constructor.hpp deleted file mode 100644 index 5784f4bbf..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_trivial_move_constructor.hpp +++ /dev/null @@ -1,78 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// (C) Copyright Eric Friedman 2002-2003. -// (C) Copyright Antony Polukhin 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED -#define BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED - -#include // size_t -#include -#include - -#ifdef BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR - -#if defined(BOOST_MSVC) || defined(BOOST_INTEL) -#include -#include -#endif - -#if defined(__GNUC__) || defined(__clang) -#include -#include -#endif - - -namespace boost { - -template struct has_trivial_move_constructor : public integral_constant{}; - -#else - -#ifdef __SUNPRO_CC -#include -#include -#if __cplusplus >= 201103 -#define SOLARIS_EXTRA_CHECK && is_constructible::type, typename remove_const::type&&>::value -#endif -#endif - -#ifndef SOLARIS_EXTRA_CHECK -#define SOLARIS_EXTRA_CHECK -#endif - -#include -#include - -namespace boost { - -template struct has_trivial_move_constructor - : public integral_constant::value && !::boost::is_volatile::value SOLARIS_EXTRA_CHECK>{}; - -#undef SOLARIS_EXTRA_CHECK - -#endif - -template <> struct has_trivial_move_constructor : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct has_trivial_move_constructor : public false_type{}; -template <> struct has_trivial_move_constructor : public false_type{}; -template <> struct has_trivial_move_constructor : public false_type{}; -#endif -// What should we do with reference types??? The standard seems to suggest these are trivial, even if the thing they reference is not: -template struct has_trivial_move_constructor : public true_type{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct has_trivial_move_constructor : public true_type{}; -#endif -// Arrays can not be explicitly copied: -template struct has_trivial_move_constructor : public false_type{}; -template struct has_trivial_move_constructor : public false_type{}; - -} // namespace boost - -#endif // BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/has_unary_minus.hpp b/lib/3rdParty/boost/boost/type_traits/has_unary_minus.hpp deleted file mode 100644 index 6b3157f42..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_unary_minus.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED -#define BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_unary_minus -#define BOOST_TT_TRAIT_OP - -#define BOOST_TT_FORBIDDEN_IF\ - /* pointer */\ - ::boost::is_pointer< Rhs_noref >::value - - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_unary_plus.hpp b/lib/3rdParty/boost/boost/type_traits/has_unary_plus.hpp deleted file mode 100644 index a61770f85..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_unary_plus.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// (C) Copyright 2009-2011 Frederic Bron. -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED -#define BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED - -#define BOOST_TT_TRAIT_NAME has_unary_plus -#define BOOST_TT_TRAIT_OP + -#define BOOST_TT_FORBIDDEN_IF\ - false - -#include - -#undef BOOST_TT_TRAIT_NAME -#undef BOOST_TT_TRAIT_OP -#undef BOOST_TT_FORBIDDEN_IF - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/has_virtual_destructor.hpp b/lib/3rdParty/boost/boost/type_traits/has_virtual_destructor.hpp deleted file mode 100644 index 4b0f38368..000000000 --- a/lib/3rdParty/boost/boost/type_traits/has_virtual_destructor.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED -#define BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED - -#include -#include - -namespace boost { - -#ifdef BOOST_HAS_VIRTUAL_DESTRUCTOR - template struct has_virtual_destructor : public integral_constant{}; -#else - template struct has_virtual_destructor : public integral_constant{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/ice.hpp b/lib/3rdParty/boost/boost/type_traits/ice.hpp deleted file mode 100644 index 134bc4bb7..000000000 --- a/lib/3rdParty/boost/boost/type_traits/ice.hpp +++ /dev/null @@ -1,20 +0,0 @@ - -// (C) Copyright John Maddock and Steve Cleary 2000. -// 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/type_traits for most recent version including documentation. -// -// macros and helpers for working with integral-constant-expressions. - -#ifndef BOOST_TT_ICE_HPP_INCLUDED -#define BOOST_TT_ICE_HPP_INCLUDED - -#include -#include -#include -#include -#include - -#endif // BOOST_TT_ICE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/integral_constant.hpp b/lib/3rdParty/boost/boost/type_traits/integral_constant.hpp deleted file mode 100644 index ae2448d07..000000000 --- a/lib/3rdParty/boost/boost/type_traits/integral_constant.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// (C) Copyright John Maddock 2015. -// 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_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP -#define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP - -#include -#include - -#if (BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ - || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ - || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) ) - - -namespace boost{ - namespace mpl - { - template struct bool_; - template struct integral_c; - struct integral_c_tag; - } -} - -#else - -namespace mpl_{ - - template struct bool_; - template struct integral_c; - struct integral_c_tag; -} - -namespace boost -{ - namespace mpl - { - using ::mpl_::bool_; - using ::mpl_::integral_c; - using ::mpl_::integral_c_tag; - } -} - -#endif - -namespace boost{ - - template - struct integral_constant - { - typedef mpl::integral_c_tag tag; - typedef T value_type; - typedef integral_constant type; - static const T value = val; - // - // This helper function is just to disable type-punning - // warnings from GCC: - // - template - static U& dereference(U* p) { return *p; } - - operator const mpl::integral_c& ()const - { - static const char data[sizeof(long)] = { 0 }; - return dereference(reinterpret_cast*>(&data)); - } - BOOST_CONSTEXPR operator T()const { return val; } - }; - - template - T const integral_constant::value; - - template - struct integral_constant - { - typedef mpl::integral_c_tag tag; - typedef bool value_type; - typedef integral_constant type; - static const bool value = val; - // - // This helper function is just to disable type-punning - // warnings from GCC: - // - template - static T& dereference(T* p) { return *p; } - - operator const mpl::bool_& ()const - { - static const char data = 0; - return dereference(reinterpret_cast*>(&data)); - } - BOOST_CONSTEXPR operator bool()const { return val; } - }; - - template - bool const integral_constant::value; - - typedef integral_constant true_type; - typedef integral_constant false_type; - -} - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/integral_promotion.hpp b/lib/3rdParty/boost/boost/type_traits/integral_promotion.hpp deleted file mode 100644 index 0478f5634..000000000 --- a/lib/3rdParty/boost/boost/type_traits/integral_promotion.hpp +++ /dev/null @@ -1,181 +0,0 @@ -// Copyright 2005 Alexander Nasonov. -// 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 FILE_boost_type_traits_integral_promotion_hpp_INCLUDED -#define FILE_boost_type_traits_integral_promotion_hpp_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost { - -namespace type_traits { namespace detail { - -// 4.5/2 -template struct need_promotion : public boost::is_enum {}; - -// 4.5/1 -template<> struct need_promotion : public true_type {}; -template<> struct need_promotion : public true_type {}; -template<> struct need_promotion : public true_type {}; -template<> struct need_promotion : public true_type {}; -template<> struct need_promotion : public true_type {}; - - -// Specializations for non-standard types. -// Type is promoted if it's smaller then int. - -#define BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \ - template<> struct need_promotion \ - : public integral_constant {}; - -// Same set of integral types as in boost/type_traits/is_integral.hpp. -// Please, keep in sync. -#if (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \ - || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300)) -// TODO: common macro for this #if. Or better yet, PP SEQ of non-standard types. -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int8 ) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int8 ) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int16 ) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int16) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int32 ) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int32) -#ifdef __BORLANDC__ -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE( __int64) -#endif -#endif - -#if defined(BOOST_HAS_LONG_LONG) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(boost::ulong_long_type) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(boost::long_long_type ) -#elif defined(BOOST_HAS_MS_INT64) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64) -BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE( __int64) -#endif - -#undef BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE - - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -// 4.5/2 -template<> struct need_promotion : public true_type {}; -#endif - -// 4.5/3 (integral bit-field) is not supported. - -// 4.5/4 -template<> struct need_promotion : public true_type {}; - - -// Get promoted type by index and cv qualifiers. - -template struct promote_from_index; - -#define BOOST_TT_AUX_PROMOTE_FROM_INDEX(N,T) \ - template<> struct promote_from_index { typedef T type; }; \ - template<> struct promote_from_index { typedef T volatile type; }; \ - template<> struct promote_from_index { typedef T const type; }; \ - template<> struct promote_from_index { typedef T const volatile type; }; - - -BOOST_TT_AUX_PROMOTE_FROM_INDEX(1, int ) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(2, unsigned int ) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(3, long ) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(4, unsigned long) - - -// WARNING: integral promotions to non-standard types -// long long and __int64 are not defined by the standard. -// Additional specialisations and overloads shouldn't -// introduce ambiguity, though. - -#if defined(BOOST_HAS_LONG_LONG) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(5, boost::long_long_type ) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(6, boost::ulong_long_type) -#elif defined(BOOST_HAS_MS_INT64) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(7, __int64 ) -BOOST_TT_AUX_PROMOTE_FROM_INDEX(8, unsigned __int64) -#endif - -#undef BOOST_TT_AUX_PROMOTE_FROM_INDEX - - -// Define BOOST_TT_AUX_PROMOTED_INDEX_TESTER: -#if !defined(BOOST_MSVC) - -template -struct sized_type_for_promotion -{ - typedef char (&type)[N]; -}; - -#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \ - sized_type_for_promotion::type promoted_index_tester(T); - -#else - -#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \ - char (&promoted_index_tester(T))[I]; - -#endif - -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(1, int ) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(2, unsigned int ) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(3, long ) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(4, unsigned long) - -#if defined(BOOST_HAS_LONG_LONG) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(5, boost::long_long_type ) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(6, boost::ulong_long_type) -#elif defined(BOOST_HAS_MS_INT64) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(7, __int64 ) -BOOST_TT_AUX_PROMOTED_INDEX_TESTER(8, unsigned __int64) -#endif - -#undef BOOST_TT_AUX_PROMOTED_INDEX_TESTER - - -// Get an index of promoted type for type T. -// Precondition: need_promotion -template -struct promoted_index -{ - static T testee; // undefined - BOOST_STATIC_CONSTANT(int, value = sizeof(promoted_index_tester(+testee)) ); - // Unary plus promotes testee LOOK HERE ---> ^ -}; - -template -struct integral_promotion_impl -{ - typedef BOOST_DEDUCED_TYPENAME promote_from_index< - (boost::type_traits::detail::promoted_index::value) - , (boost::is_const::value) - , (boost::is_volatile::value) - >::type type; -}; - -template struct integral_promotion { typedef T type; }; -template struct integral_promotion : public integral_promotion_impl{}; - -} } - -template struct integral_promotion -{ -private: - typedef boost::type_traits::detail::need_promotion::type> tag_type; -public: - typedef typename boost::type_traits::detail::integral_promotion::type type; -}; - -} - -#endif // #ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/intrinsics.hpp b/lib/3rdParty/boost/boost/type_traits/intrinsics.hpp deleted file mode 100644 index e2246be4d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/intrinsics.hpp +++ /dev/null @@ -1,380 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED -#define BOOST_TT_INTRINSICS_HPP_INCLUDED - -#ifndef BOOST_TT_DISABLE_INTRINSICS - -#include - -#ifndef BOOST_TT_CONFIG_HPP_INCLUDED -#include -#endif - -// -// Helper macros for builtin compiler support. -// If your compiler has builtin support for any of the following -// traits concepts, then redefine the appropriate macros to pick -// up on the compiler support: -// -// (these should largely ignore cv-qualifiers) -// BOOST_IS_UNION(T) should evaluate to true if T is a union type -// BOOST_IS_POD(T) should evaluate to true if T is a POD type -// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union) -// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect -// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy -// BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(boost::move(t)) <==> memcpy -// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy -// BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = boost::move(u) <==> memcpy -// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect -// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw -// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw -// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw -// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor -// BOOST_IS_NOTHROW_MOVE_CONSTRUCT(T) should evaluate to true if T has a non-throwing move constructor. -// BOOST_IS_NOTHROW_MOVE_ASSIGN(T) should evaluate to true if T has a non-throwing move assignment operator. -// -// The following can also be defined: when detected our implementation is greatly simplified. -// -// BOOST_IS_ABSTRACT(T) true if T is an abstract type -// BOOST_IS_BASE_OF(T,U) true if T is a base class of U -// BOOST_IS_CLASS(T) true if T is a class type (and not a union) -// BOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U -// BOOST_IS_ENUM(T) true is T is an enum -// BOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type -// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T. -// -// define BOOST_TT_DISABLE_INTRINSICS to prevent any intrinsics being used (mostly used when testing) -// - -#ifdef BOOST_HAS_SGI_TYPE_TRAITS - // Hook into SGI's __type_traits class, this will pick up user supplied - // specializations as well as SGI - compiler supplied specializations. -# include -# ifdef __NetBSD__ - // There are two different versions of type_traits.h on NetBSD on Spark - // use an implicit include via algorithm instead, to make sure we get - // the same version as the std lib: -# include -# else -# include -# endif -# define BOOST_IS_POD(T) ::boost::is_same< typename ::__type_traits::is_POD_type, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_default_constructor, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits::has_trivial_copy_constructor, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits::has_trivial_assignment_operator, ::__true_type>::value -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits::has_trivial_destructor, ::__true_type>::value - -# ifdef __sgi -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -# endif -#endif - -#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000) - // Metrowerks compiler is acquiring intrinsic type traits support - // post version 8. We hook into the published interface to pick up - // user defined specializations as well as compiler intrinsics as - // and when they become available: -# include -# define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union::value -# define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD::value -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor::value -# define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor::value -# define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment::value -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor::value -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\ - || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500)) -// -// Note that even though these intrinsics rely on other type traits classes -// we do not #include those here as it produces cyclic dependencies and -// can cause the intrinsics to not even be used at all! -// -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T)) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ( ::boost::is_pod::value && ! ::boost::is_const::value && !::boost::is_volatile::value)) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::boost::is_pod::value) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::boost::has_trivial_constructor::value) -#if !defined(BOOST_INTEL) -# define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) || ::boost::has_trivial_copy::value) && !is_array::value) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) || ::boost::is_pod::value) -#elif (_MSC_VER >= 1900) -# define BOOST_HAS_NOTHROW_COPY(T) ((__is_nothrow_constructible(T, typename add_lvalue_reference::type>::type)) && !is_array::value) -# define BOOST_HAS_TRIVIAL_COPY(T) (__is_trivially_constructible(T, typename add_lvalue_reference::type>::type)) -#endif -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::boost::has_trivial_assign::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same::value && !is_function::value)) && !__is_abstract(U)) -# define BOOST_IS_ENUM(T) __is_enum(T) -// This one fails if the default alignment has been changed with /Zp: -// # define BOOST_ALIGNMENT_OF(T) __alignof(T) - -# if defined(_MSC_VER) && (_MSC_VER >= 1700) -# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || boost::is_pod::value) && ! ::boost::is_volatile::value && ! ::boost::is_reference::value) -# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || boost::is_pod::value) && ! ::boost::is_const::value && !::boost::is_volatile::value && ! ::boost::is_reference::value) -# endif -#ifndef BOOST_NO_CXX11_FINAL -// This one doesn't quite always do the right thing on older VC++ versions -// we really need it when the final keyword is supporyted though: -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -#endif -#if _MSC_FULL_VER >= 180020827 -# define BOOST_IS_NOTHROW_MOVE_ASSIGN(T) (__is_nothrow_assignable(T&, T&&)) -# define BOOST_IS_NOTHROW_MOVE_CONSTRUCT(T) (__is_nothrow_constructible(T, T&&)) -#endif -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(__DMC__) && (__DMC__ >= 0x848) -// For Digital Mars C++, www.digitalmars.com -# define BOOST_IS_UNION(T) (__typeinfo(T) & 0x400) -# define BOOST_IS_POD(T) (__typeinfo(T) & 0x800) -# define BOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10) -# define BOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80) -# define BOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4) -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(BOOST_CLANG) && defined(__has_feature) && !defined(__CUDACC__) -// -// Note that these intrinsics are disabled for the CUDA meta-compiler as it appears -// to not support them, even though the underlying clang compiler does so. -// This is a rubbish fix as it basically stops type traits from working correctly, -// but maybe the best we can do for now. See https://svn.boost.org/trac/boost/ticket/10694 -// -// -// Note that even though these intrinsics rely on other type traits classes -// we do not #include those here as it produces cyclic dependencies and -// can cause the intrinsics to not even be used at all! -// -# include - -# if __has_feature(is_union) -# define BOOST_IS_UNION(T) __is_union(T) -# endif -# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod) -# define BOOST_IS_POD(T) __is_pod(T) -# endif -# if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# endif -# if __has_feature(has_trivial_constructor) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# endif -# if __has_feature(has_trivial_copy) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference::value) -# endif -# if __has_feature(has_trivial_assign) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile::value && is_assignable::value) -# endif -# if __has_feature(has_trivial_destructor) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) && is_destructible::value) -# endif -# if __has_feature(has_nothrow_constructor) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) && is_default_constructible::value) -# endif -# if __has_feature(has_nothrow_copy) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile::value && !is_reference::value && is_copy_constructible::value) -# endif -# if __has_feature(has_nothrow_assign) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile::value && is_assignable::value) -# endif -# if __has_feature(has_virtual_destructor) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) -# endif -# if __has_feature(is_abstract) -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# endif -# if __has_feature(is_base_of) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# endif -# if __has_feature(is_class) -# define BOOST_IS_CLASS(T) __is_class(T) -# endif -# if __has_feature(is_convertible_to) -# define BOOST_IS_CONVERTIBLE(T,U) __is_convertible_to(T,U) -# endif -# if __has_feature(is_enum) -# define BOOST_IS_ENUM(T) __is_enum(T) -# endif -# if __has_feature(is_polymorphic) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# endif -# if __has_feature(has_trivial_move_constructor) -# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) (__has_trivial_move_constructor(T) && is_constructible::value && !::boost::is_volatile::value) -# endif -# if __has_feature(has_trivial_move_assign) -# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) (__has_trivial_move_assign(T) && is_assignable::value && !::boost::is_volatile::value) -# endif -# if (!defined(unix) && !defined(__unix__)) || defined(__LP64__) || !defined(__GNUC__) -// GCC sometimes lies about alignment requirements -// of type double on 32-bit unix platforms, use the -// old implementation instead in that case: -# define BOOST_ALIGNMENT_OF(T) __alignof(T) -# endif -# if __has_feature(is_final) -# define BOOST_IS_FINAL(T) __is_final(T) -# endif - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG) -// -// Note that even though these intrinsics rely on other type traits classes -// we do not #include those here as it produces cyclic dependencies and -// can cause the intrinsics to not even be used at all! -// - -#ifdef BOOST_INTEL -# define BOOST_INTEL_TT_OPTS || is_pod::value -#else -# define BOOST_INTEL_TT_OPTS -#endif - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) __is_pod(T) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile::value) -# define BOOST_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) BOOST_INTEL_TT_OPTS) && !is_reference::value) -#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile::value && ! ::boost::is_const::value && is_assignable::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_INTEL_TT_OPTS && is_destructible::value) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) && is_default_constructible::value BOOST_INTEL_TT_OPTS) -# define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_INTEL_TT_OPTS) && !is_volatile::value && !is_reference::value && is_copy_constructible::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_INTEL_TT_OPTS) && !is_volatile::value && !is_const::value && is_assignable::value) -#else -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile::value && ! ::boost::is_const::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_INTEL_TT_OPTS) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) BOOST_INTEL_TT_OPTS) -# define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_INTEL_TT_OPTS) && !is_volatile::value && !is_reference::value && !is_array::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_INTEL_TT_OPTS) && !is_volatile::value && !is_const::value && !is_array::value) -#endif -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_ENUM(T) __is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# if (!defined(unix) && !defined(__unix__)) || defined(__LP64__) - // GCC sometimes lies about alignment requirements - // of type double on 32-bit unix platforms, use the - // old implementation instead in that case: -# define BOOST_ALIGNMENT_OF(T) __alignof__(T) -# endif -# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) -# define BOOST_IS_FINAL(T) __is_final(T) -# endif - -# if (__GNUC__ >= 5) && (__cplusplus >= 201103) -# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) (__is_trivially_assignable(T&, T&&) && is_assignable::value && !::boost::is_volatile::value) -# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) (__is_trivially_constructible(T, T&&) && is_constructible::value && !::boost::is_volatile::value) -# endif - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) -# define BOOST_IS_UNION(T) __oracle_is_union(T) -# define BOOST_IS_POD(T) (__oracle_is_pod(T) && !is_function::value) -# define BOOST_IS_EMPTY(T) __oracle_is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__oracle_has_trivial_constructor(T) && ! ::boost::is_volatile::value) -# define BOOST_HAS_TRIVIAL_COPY(T) (__oracle_has_trivial_copy(T) && !is_reference::value) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__oracle_has_trivial_assign(T) || __oracle_is_trivial(T)) && ! ::boost::is_volatile::value && ! ::boost::is_const::value && is_assignable::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__oracle_has_trivial_destructor(T) && is_destructible::value) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) ((__oracle_has_nothrow_constructor(T) || __oracle_has_trivial_constructor(T) || __oracle_is_trivial(T)) && is_default_constructible::value) -// __oracle_has_nothrow_copy appears to behave the same as __oracle_has_nothrow_assign, disabled for now: -//# define BOOST_HAS_NOTHROW_COPY(T) ((__oracle_has_nothrow_copy(T) || __oracle_has_trivial_copy(T) || __oracle_is_trivial(T)) && !is_volatile::value && !is_reference::value && is_copy_constructible::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) ((__oracle_has_nothrow_assign(T) || __oracle_has_trivial_assign(T) || __oracle_is_trivial(T)) && !is_volatile::value && !is_const::value && is_assignable::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __oracle_has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __oracle_is_abstract(T) -//# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __oracle_is_class(T) -# define BOOST_IS_ENUM(T) __oracle_is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __oracle_is_polymorphic(T) -# define BOOST_ALIGNMENT_OF(T) __alignof__(T) -# define BOOST_IS_FINAL(T) __oracle_is_final(T) - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600) -# include -# include -# include - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) __is_pod(T) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference::value) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile::value && !is_reference::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_ENUM(T) __is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# define BOOST_ALIGNMENT_OF(T) __alignof__(T) -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -# if defined(__CODEGEARC__) -# include -# include -# include -# include - -# define BOOST_IS_UNION(T) __is_union(T) -# define BOOST_IS_POD(T) __is_pod(T) -# define BOOST_IS_EMPTY(T) __is_empty(T) -# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T)) -# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_reference::value) -# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile::value) -# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T)) -# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T)) -# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T) && !is_volatile::value && !is_reference::value) -# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile::value) -# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T) - -# define BOOST_IS_ABSTRACT(T) __is_abstract(T) -# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_void::value && !is_void::value) -# define BOOST_IS_CLASS(T) __is_class(T) -# define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible(T,U) || is_void::value) -# define BOOST_IS_ENUM(T) __is_enum(T) -# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T) -# define BOOST_ALIGNMENT_OF(T) alignof(T) - -# define BOOST_HAS_TYPE_TRAITS_INTRINSICS -#endif - -#endif // BOOST_TT_DISABLE_INTRINSICS - -#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_abstract.hpp b/lib/3rdParty/boost/boost/type_traits/is_abstract.hpp deleted file mode 100644 index 781d94a47..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_abstract.hpp +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP -#define BOOST_TT_IS_ABSTRACT_CLASS_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// is_abstract_class.hpp: -// -// (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey -// 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) -// -// See http://www.boost.org for updates, documentation, and revision history. -// - -// Compile type discovery whether given type is abstract class or not. -// -// Requires DR 337 to be supported by compiler -// (http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#337). -// -// -// Believed (Jan 2004) to work on: -// - GCC 3.4 -// - VC++ 7.1 -// - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2) -// -// Doesn't work on: -// - VC++6, VC++7.0 and less -// - GCC 3.3.X and less -// - Borland C++ 6 and less -// -// -// History: -// - Originally written by Rani Sharoni, see -// http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com -// At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1. -// - Adapted and added into Boost.Serialization library by Robert Ramey -// (starting with submission #10). -// - Jan 2004: GCC 3.4 fixed to support DR337 (Giovanni Bajo). -// - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek). -// - Nov 2004: Christoph Ludwig found that the implementation did not work with -// template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig -// and John Maddock. -// - Dec 2004: Added new config macro BOOST_NO_IS_ABSTRACT which causes the template -// to degrade gracefully, rather than trash the compiler (John Maddock). -// - -#include // size_t -#include -#include -#ifndef BOOST_IS_ABSTRACT -#include -#include -#include -#ifdef BOOST_NO_IS_ABSTRACT -#include -#endif -#endif - -namespace boost { - -namespace detail{ - -#ifdef BOOST_IS_ABSTRACT -template -struct is_abstract_imp -{ - BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_ABSTRACT(T)); -}; -#elif !defined(BOOST_NO_IS_ABSTRACT) -template -struct is_abstract_imp2 -{ - // Deduction fails if T is void, function type, - // reference type (14.8.2/2)or an abstract class type - // according to review status issue #337 - // - template - static type_traits::no_type check_sig(U (*)[1]); - template - static type_traits::yes_type check_sig(...); - // - // T must be a complete type, further if T is a template then - // it must be instantiated in order for us to get the right answer: - // - BOOST_STATIC_ASSERT(sizeof(T) != 0); - - // GCC2 won't even parse this template if we embed the computation - // of s1 in the computation of value. -#ifdef __GNUC__ - BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(is_abstract_imp2::template check_sig(0))); -#else -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(push) -#pragma warning(disable:6334) -#endif - BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(check_sig(0))); -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(pop) -#endif -#endif - - BOOST_STATIC_CONSTANT(bool, value = - (s1 == sizeof(type_traits::yes_type))); -}; - -template -struct is_abstract_select -{ - template - struct rebind - { - typedef is_abstract_imp2 type; - }; -}; -template <> -struct is_abstract_select -{ - template - struct rebind - { - typedef false_type type; - }; -}; - -template -struct is_abstract_imp -{ - typedef is_abstract_select< ::boost::is_class::value> selector; - typedef typename selector::template rebind binder; - typedef typename binder::type type; - - BOOST_STATIC_CONSTANT(bool, value = type::value); -}; - -#endif -} - -#ifndef BOOST_NO_IS_ABSTRACT -template struct is_abstract : public integral_constant::value> {}; -#else -template struct is_abstract : public integral_constant::value> {}; -#endif - -} // namespace boost - -#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP diff --git a/lib/3rdParty/boost/boost/type_traits/is_arithmetic.hpp b/lib/3rdParty/boost/boost/type_traits/is_arithmetic.hpp deleted file mode 100644 index c23811ebe..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_arithmetic.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED -#define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED - -#include -#include - -namespace boost { - -template -struct is_arithmetic : public integral_constant::value || is_floating_point::value> {}; - -} // namespace boost - -#endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_array.hpp b/lib/3rdParty/boost/boost/type_traits/is_array.hpp deleted file mode 100644 index 53e1613ab..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_array.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -// Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist. - - -#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED -#define BOOST_TT_IS_ARRAY_HPP_INCLUDED - -#include -#include // size_t - -namespace boost { - -#if defined( __CODEGEARC__ ) - template struct is_array : public integral_constant {}; -#else - template struct is_array : public false_type {}; -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) - template struct is_array : public true_type {}; - template struct is_array : public true_type{}; - template struct is_array : public true_type{}; - template struct is_array : public true_type{}; -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - template struct is_array : public true_type{}; - template struct is_array : public true_type{}; - template struct is_array : public true_type{}; - template struct is_array : public true_type{}; -#endif -#endif - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_assignable.hpp b/lib/3rdParty/boost/boost/type_traits/is_assignable.hpp deleted file mode 100644 index 49d171616..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_assignable.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -// (C) Copyright John Maddock 2015. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_ASSIGNABLE_HPP_INCLUDED -#define BOOST_TT_IS_ASSIGNABLE_HPP_INCLUDED - -#include // size_t -#include -#include - -namespace boost{ - - template struct is_assignable; - -} - -#if !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800) - -#include -#include - -namespace boost{ - - namespace detail{ - - struct is_assignable_imp - { - template() = boost::declval())> - static boost::type_traits::yes_type test(int); - - template - static boost::type_traits::no_type test(...); - }; - - } - - template struct is_assignable : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)>{}; - template struct is_assignable : public is_assignable{}; - template struct is_assignable : public is_assignable{}; - template struct is_assignable : public is_assignable{}; - template struct is_assignable : public is_assignable{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - -#else - -#include -#include - -namespace boost{ - - // We don't know how to implement this: - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant::value && is_pod::type>::value>{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - template struct is_assignable : public integral_constant{}; - /* - template <> struct is_assignable : public integral_constant{}; - template <> struct is_assignable : public integral_constant{}; - template <> struct is_assignable : public integral_constant{}; - template <> struct is_assignable : public integral_constant{}; - */ -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_ASSIGNABLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_base_and_derived.hpp b/lib/3rdParty/boost/boost/type_traits/is_base_and_derived.hpp deleted file mode 100644 index ee3dce597..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_base_and_derived.hpp +++ /dev/null @@ -1,244 +0,0 @@ - -// (C) Copyright Rani Sharoni 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED -#define BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED - -#include -#include -#ifndef BOOST_IS_BASE_OF -#include -#include -#include -#include -#include -#endif -#include -#include - -namespace boost { - -namespace detail { - -#ifndef BOOST_IS_BASE_OF -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581)) \ - && !BOOST_WORKAROUND(__SUNPRO_CC , <= 0x540) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \ - && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - - // The EDG version number is a lower estimate. - // It is not currently known which EDG version - // exactly fixes the problem. - -/************************************************************************* - -This version detects ambiguous base classes and private base classes -correctly, and was devised by Rani Sharoni. - -Explanation by Terje Slettebo and Rani Sharoni. - -Let's take the multiple base class below as an example, and the following -will also show why there's not a problem with private or ambiguous base -class: - -struct B {}; -struct B1 : B {}; -struct B2 : B {}; -struct D : private B1, private B2 {}; - -is_base_and_derived::value; - -First, some terminology: - -SC - Standard conversion -UDC - User-defined conversion - -A user-defined conversion sequence consists of an SC, followed by an UDC, -followed by another SC. Either SC may be the identity conversion. - -When passing the default-constructed Host object to the overloaded check_sig() -functions (initialization 8.5/14/4/3), we have several viable implicit -conversion sequences: - -For "static no_type check_sig(B const volatile *, int)" we have the conversion -sequences: - -C -> C const (SC - Qualification Adjustment) -> B const volatile* (UDC) -C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* -> - B const volatile* (SC - Conversion) - -For "static yes_type check_sig(D const volatile *, T)" we have the conversion -sequence: - -C -> D const volatile* (UDC) - -According to 13.3.3.1/4, in context of user-defined conversion only the -standard conversion sequence is considered when selecting the best viable -function, so it only considers up to the user-defined conversion. For the -first function this means choosing between C -> C const and C -> C, and it -chooses the latter, because it's a proper subset (13.3.3.2/3/2) of the -former. Therefore, we have: - -C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* -> - B const volatile* (SC - Conversion) -C -> D const volatile* (UDC) - -Here, the principle of the "shortest subsequence" applies again, and it -chooses C -> D const volatile*. This shows that it doesn't even need to -consider the multiple paths to B, or accessibility, as that possibility is -eliminated before it could possibly cause ambiguity or access violation. - -If D is not derived from B, it has to choose between C -> C const -> B const -volatile* for the first function, and C -> D const volatile* for the second -function, which are just as good (both requires a UDC, 13.3.3.2), had it not -been for the fact that "static no_type check_sig(B const volatile *, int)" is -not templated, which makes C -> C const -> B const volatile* the best choice -(13.3.3/1/4), resulting in "no". - -Also, if Host::operator B const volatile* hadn't been const, the two -conversion sequences for "static no_type check_sig(B const volatile *, int)", in -the case where D is derived from B, would have been ambiguous. - -See also -http://groups.google.com/groups?selm=df893da6.0301280859.522081f7%40posting. -google.com and links therein. - -*************************************************************************/ - -template -struct bd_helper -{ - // - // This VC7.1 specific workaround stops the compiler from generating - // an internal compiler error when compiling with /vmg (thanks to - // Aleksey Gurtovoy for figuring out the workaround). - // -#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) - template - static type_traits::yes_type check_sig(D const volatile *, T); - static type_traits::no_type check_sig(B const volatile *, int); -#else - static type_traits::yes_type check_sig(D const volatile *, long); - static type_traits::no_type check_sig(B const volatile * const&, int); -#endif -}; - -template -struct is_base_and_derived_impl2 -{ -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(push) -#pragma warning(disable:6334) -#endif - // - // May silently do the wrong thing with incomplete types - // unless we trap them here: - // - BOOST_STATIC_ASSERT(sizeof(B) != 0); - BOOST_STATIC_ASSERT(sizeof(D) != 0); - - struct Host - { -#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) - operator B const volatile *() const; -#else - operator B const volatile * const&() const; -#endif - operator D const volatile *(); - }; - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(bd_helper::check_sig(Host(), 0)) == sizeof(type_traits::yes_type)); -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(pop) -#endif -}; - -#else - -// -// broken version: -// -template -struct is_base_and_derived_impl2 -{ - BOOST_STATIC_CONSTANT(bool, value = - (::boost::is_convertible::value)); -}; - -#define BOOST_BROKEN_IS_BASE_AND_DERIVED - -#endif - -template -struct is_base_and_derived_impl3 -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct is_base_and_derived_select -{ - template - struct rebind - { - typedef is_base_and_derived_impl3 type; - }; -}; - -template <> -struct is_base_and_derived_select -{ - template - struct rebind - { - typedef is_base_and_derived_impl2 type; - }; -}; - -template -struct is_base_and_derived_impl -{ - typedef typename remove_cv::type ncvB; - typedef typename remove_cv::type ncvD; - - typedef is_base_and_derived_select< - ::boost::is_class::value, - ::boost::is_class::value, - ::boost::is_same::value> selector; - typedef typename selector::template rebind binder; - typedef typename binder::type bound_type; - - BOOST_STATIC_CONSTANT(bool, value = bound_type::value); -}; -#else -template -struct is_base_and_derived_impl -{ - typedef typename remove_cv::type ncvB; - typedef typename remove_cv::type ncvD; - - BOOST_STATIC_CONSTANT(bool, value = (BOOST_IS_BASE_OF(B,D) && ! ::boost::is_same::value)); -}; -#endif -} // namespace detail - -template struct is_base_and_derived - : public integral_constant::value)> {}; - -template struct is_base_and_derived : public false_type{}; -template struct is_base_and_derived : public false_type{}; -template struct is_base_and_derived : public false_type{}; - -#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) -template struct is_base_and_derived : public true_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_base_of.hpp b/lib/3rdParty/boost/boost/type_traits/is_base_of.hpp deleted file mode 100644 index 89f2f6798..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_base_of.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -// (C) Copyright Rani Sharoni 2003-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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_BASE_OF_HPP_INCLUDED -#define BOOST_TT_IS_BASE_OF_HPP_INCLUDED - -#include -#include -#include - -namespace boost { - - namespace detail{ - template - struct is_base_of_imp - { - typedef typename remove_cv::type ncvB; - typedef typename remove_cv::type ncvD; - BOOST_STATIC_CONSTANT(bool, value = ( - (::boost::detail::is_base_and_derived_impl::value) || - (::boost::is_same::value && ::boost::is_class::value))); - }; - } - - template struct is_base_of - : public integral_constant::value)> {}; - - template struct is_base_of : false_type{}; - template struct is_base_of : false_type{}; - template struct is_base_of : false_type{}; - -} // namespace boost - -#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_base_of_tr1.hpp b/lib/3rdParty/boost/boost/type_traits/is_base_of_tr1.hpp deleted file mode 100644 index 210bf54e7..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_base_of_tr1.hpp +++ /dev/null @@ -1,37 +0,0 @@ - -// (C) Copyright Rani Sharoni 2003-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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_BASE_OF_TR1_HPP_INCLUDED -#define BOOST_TT_IS_BASE_OF_TR1_HPP_INCLUDED - -#include -#include -#include - -namespace boost { namespace tr1{ - - namespace detail{ - template - struct is_base_of_imp - { - typedef typename remove_cv::type ncvB; - typedef typename remove_cv::type ncvD; - BOOST_STATIC_CONSTANT(bool, value = ((::boost::detail::is_base_and_derived_impl::value) || (::boost::is_same::value))); - }; - } - - template struct is_base_of - : public integral_constant::value)>{}; - - template struct is_base_of : public false_type{}; - template struct is_base_of : public false_type{}; - template struct is_base_of : public false_type{}; - -} } // namespace boost - -#endif // BOOST_TT_IS_BASE_OF_TR1_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_class.hpp b/lib/3rdParty/boost/boost/type_traits/is_class.hpp deleted file mode 100644 index e3a22d2b6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_class.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-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/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED -#define BOOST_TT_IS_CLASS_HPP_INCLUDED - -#include -#include -#include -#ifndef BOOST_IS_CLASS -# include - -#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION -# include -#else -# include -# include -# include -# include -# include -#endif - -#endif // BOOST_IS_CLASS - -namespace boost { - -namespace detail { - -#ifndef BOOST_IS_CLASS -#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION - -// This is actually the conforming implementation which works with -// abstract classes. However, enough compilers have trouble with -// it that most will use the one in -// boost/type_traits/object_traits.hpp. This implementation -// actually works with VC7.0, but other interactions seem to fail -// when we use it. - -// is_class<> metafunction due to Paul Mensonides -// (leavings@attbi.com). For more details: -// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1 -#if defined(__GNUC__) && !defined(__EDG_VERSION__) - -template ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); -template ::boost::type_traits::no_type is_class_tester(...); - -template -struct is_class_impl -{ - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(is_class_tester(0)) == sizeof(::boost::type_traits::yes_type) - && ! ::boost::is_union::value - ); -}; - -#else - -template -struct is_class_impl -{ - template static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void)); - template static ::boost::type_traits::no_type is_class_tester(...); - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(is_class_tester(0)) == sizeof(::boost::type_traits::yes_type) - && ! ::boost::is_union::value - ); -}; - -#endif - -#else - -template -struct is_class_impl -{ - BOOST_STATIC_CONSTANT(bool, value = - ! ::boost::is_union::value >::value - && ! ::boost::is_scalar::value - && ! ::boost::is_array::value - && ! ::boost::is_reference::value - && ! ::boost::is_void::value - && ! ::boost::is_function::value - ); -}; - -# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION -# else // BOOST_IS_CLASS -template -struct is_class_impl -{ - BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_CLASS(T)); -}; -# endif // BOOST_IS_CLASS - -} // namespace detail - -template struct is_class : public integral_constant::value> {}; -# ifdef __EDG_VERSION__ -template struct is_class : public is_class{}; -template struct is_class : public is_class{}; -template struct is_class : public is_class{}; -# endif - -} // namespace boost - -#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_complex.hpp b/lib/3rdParty/boost/boost/type_traits/is_complex.hpp deleted file mode 100644 index 7cf04b479..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_complex.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_COMPLEX_HPP -#define BOOST_TT_IS_COMPLEX_HPP - -#include -#include - -namespace boost { - - template struct is_complex : public false_type {}; - template struct is_complex : public is_complex{}; - template struct is_complex : public is_complex{}; - template struct is_complex : public is_complex{}; - template struct is_complex > : public true_type{}; - -} // namespace boost - -#endif //BOOST_TT_IS_COMPLEX_HPP diff --git a/lib/3rdParty/boost/boost/type_traits/is_compound.hpp b/lib/3rdParty/boost/boost/type_traits/is_compound.hpp deleted file mode 100644 index 7995eb8a2..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_compound.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_COMPOUND_HPP_INCLUDED -#define BOOST_TT_IS_COMPOUND_HPP_INCLUDED - -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) - template struct is_compound : public integral_constant {}; -#else - template struct is_compound : public integral_constant::value> {}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_COMPOUND_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_const.hpp b/lib/3rdParty/boost/boost/type_traits/is_const.hpp deleted file mode 100644 index e0ed88a34..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_const.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). - - -#ifndef BOOST_TT_IS_CONST_HPP_INCLUDED -#define BOOST_TT_IS_CONST_HPP_INCLUDED - -#include // size_t -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) - - template - struct is_const : public integral_constant {}; - -#else - - template - struct is_const : public false_type {}; - template struct is_const : public true_type{}; - template struct is_const : public true_type{}; - template struct is_const : public true_type{}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_CONST_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_constructible.hpp b/lib/3rdParty/boost/boost/type_traits/is_constructible.hpp deleted file mode 100644 index 20173172c..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_constructible.hpp +++ /dev/null @@ -1,80 +0,0 @@ - -// (C) Copyright John Maddock 2015. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_CONSTRUCTIBLE_HPP_INCLUDED -#define BOOST_TT_IS_CONSTRUCTIBLE_HPP_INCLUDED - -#include -#include - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40500) - -#include -#include -#include -#include - -namespace boost{ - - namespace detail{ - - struct is_constructible_imp - { - template()...))> - static boost::type_traits::yes_type test(int); - template - static boost::type_traits::no_type test(...); - - template()))> - static boost::type_traits::yes_type test1(int); - template - static boost::type_traits::no_type test1(...); - - template - static boost::type_traits::yes_type ref_test(T); - template - static boost::type_traits::no_type ref_test(...); - }; - - } - - template struct is_constructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)>{}; - template struct is_constructible : public integral_constant::value && sizeof(detail::is_constructible_imp::test1(0)) == sizeof(boost::type_traits::yes_type)>{}; - template struct is_constructible : public integral_constant(boost::declval())) == sizeof(boost::type_traits::yes_type)>{}; - template struct is_constructible : public integral_constant(boost::declval())) == sizeof(boost::type_traits::yes_type)>{}; - - template <> struct is_constructible : public false_type{}; - template <> struct is_constructible : public false_type{}; - template <> struct is_constructible : public false_type{}; - template <> struct is_constructible : public false_type{}; - - template struct is_constructible : public is_default_constructible{}; - -#else - -#include -#include - -namespace boost{ - - // We don't know how to implement this: - template struct is_constructible : public is_convertible{}; - template struct is_constructible : public is_default_constructible{}; - template <> struct is_constructible : public false_type{}; - template <> struct is_constructible : public false_type{}; - template <> struct is_constructible : public false_type{}; - template <> struct is_constructible : public false_type{}; - template struct is_constructible : public false_type{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template struct is_constructible : public false_type{}; -#endif -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_CONSTRUCTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_convertible.hpp b/lib/3rdParty/boost/boost/type_traits/is_convertible.hpp deleted file mode 100644 index 417ece20b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_convertible.hpp +++ /dev/null @@ -1,488 +0,0 @@ - -// Copyright 2000 John Maddock (john@johnmaddock.co.uk) -// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu) -// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED -#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED - -#include -#include -#ifndef BOOST_IS_CONVERTIBLE -#include -#include -#include -#include -#include -#if !defined(BOOST_NO_IS_ABSTRACT) -#include -#endif -#include -#include -#include - -#if defined(__MWERKS__) -#include -#endif -#if !defined(BOOST_NO_SFINAE_EXPR) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -# include -#endif -#elif defined(BOOST_MSVC) || defined(BOOST_INTEL) -#include -#include -#endif // BOOST_IS_CONVERTIBLE - -namespace boost { - -#ifndef BOOST_IS_CONVERTIBLE - -// is one type convertible to another? -// -// there are multiple versions of the is_convertible -// template, almost every compiler seems to require its -// own version. -// -// Thanks to Andrei Alexandrescu for the original version of the -// conversion detection technique! -// - -namespace detail { - -#if !defined(BOOST_NO_SFINAE_EXPR) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !(defined(BOOST_GCC) && (BOOST_GCC < 40700)) - - // This is a C++11 conforming version, place this first and use it wherever possible: - -# define BOOST_TT_CXX11_IS_CONVERTIBLE - - template - struct or_helper - { - static const bool value = (A::value || B::value || C::value); - }; - - template, boost::is_function, boost::is_array >::value> - struct is_convertible_basic_impl - { - // Nothing converts to function or array, but void converts to void: - static const bool value = is_void::value; - }; - - template - class is_convertible_basic_impl - { - typedef char one; - typedef int two; - - template - static void test_aux(To1); - - template - static decltype(test_aux(boost::declval()), one()) test(int); - - template - static two test(...); - - public: - static const bool value = sizeof(test(0)) == 1; - }; - -#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x560) -// -// special version for Borland compilers -// this version breaks when used for some -// UDT conversions: -// -template -struct is_convertible_impl -{ -#pragma option push -w-8074 - // This workaround for Borland breaks the EDG C++ frontend, - // so we only use it for Borland. - template struct checker - { - static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); - static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T); - }; - - static typename add_lvalue_reference::type _m_from; - static bool const value = sizeof( checker::_m_check(_m_from) ) - == sizeof(::boost::type_traits::yes_type); -#pragma option pop -}; - -#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600) -// special version for gcc compiler + recent Borland versions -// note that this does not pass UDT's through (...) - -struct any_conversion -{ - template any_conversion(const volatile T&); - template any_conversion(const T&); - template any_conversion(volatile T&); - template any_conversion(T&); -}; - -template struct checker -{ - static boost::type_traits::no_type _m_check(any_conversion ...); - static boost::type_traits::yes_type _m_check(T, int); -}; - -template -struct is_convertible_basic_impl -{ - typedef typename add_lvalue_reference::type lvalue_type; - typedef typename add_rvalue_reference::type rvalue_type; - static lvalue_type _m_from; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))) - static bool const value = - sizeof( boost::detail::checker::_m_check(static_cast(_m_from), 0) ) - == sizeof(::boost::type_traits::yes_type); -#else - static bool const value = - sizeof( boost::detail::checker::_m_check(_m_from, 0) ) - == sizeof(::boost::type_traits::yes_type); -#endif -}; - -#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \ - || defined(__IBMCPP__) || defined(__HP_aCC) -// -// This is *almost* an ideal world implementation as it doesn't rely -// on undefined behaviour by passing UDT's through (...). -// Unfortunately it doesn't quite pass all the tests for most compilers (sigh...) -// Enable this for your compiler if is_convertible_test.cpp will compile it... -// -// Note we do not enable this for VC7.1, because even though it passes all the -// type_traits tests it is known to cause problems when instantiation occurs -// deep within the instantiation tree :-( -// -struct any_conversion -{ - template any_conversion(const volatile T&); - template any_conversion(const T&); - template any_conversion(volatile T&); - // we need this constructor to catch references to functions - // (which can not be cv-qualified): - template any_conversion(T&); -}; - -template -struct is_convertible_basic_impl -{ - static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); - static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - typedef typename add_lvalue_reference::type lvalue_type; - typedef typename add_rvalue_reference::type rvalue_type; - static lvalue_type _m_from; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type) - ); -#else - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) - ); -#endif -}; - -#elif defined(__DMC__) - -struct any_conversion -{ - template any_conversion(const volatile T&); - template any_conversion(const T&); - template any_conversion(volatile T&); - // we need this constructor to catch references to functions - // (which can not be cv-qualified): - template any_conversion(T&); -}; - -template -struct is_convertible_basic_impl -{ - // Using '...' doesn't always work on Digital Mars. This version seems to. - template - static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T); - static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int); - typedef typename add_lvalue_reference::type lvalue_type; - typedef typename add_rvalue_reference::type rvalue_type; - static lvalue_type _m_from; - - // Static constants sometime cause the conversion of _m_from to To to be - // called. This doesn't happen with an enum. -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - enum { value = - sizeof( _m_check(static_cast(_m_from), 0, 0) ) == sizeof(::boost::type_traits::yes_type) - }; -#else - enum { value = - sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type) - }; -#endif -}; - -#elif defined(__MWERKS__) -// -// CW works with the technique implemented above for EDG, except when From -// is a function type (or a reference to such a type), in which case -// any_conversion won't be accepted as a valid conversion. We detect this -// exceptional situation and channel it through an alternative algorithm. -// - -template -struct is_convertible_basic_impl_aux; - -struct any_conversion -{ - template any_conversion(const volatile T&); - template any_conversion(const T&); - template any_conversion(volatile T&); - template any_conversion(T&); -}; - -template -struct is_convertible_basic_impl_aux -{ - static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...); - static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int); - typedef typename add_lvalue_reference::type lvalue_type; - typedef typename add_rvalue_reference::type rvalue_type; - static lvalue_type _m_from; - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(static_cast(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type) - ); -#else - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type) - ); -#endif -}; - -template -struct is_convertible_basic_impl_aux -{ - static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); - static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); - typedef typename add_lvalue_reference::type lvalue_type; - typedef typename add_rvalue_reference::type rvalue_type; - static lvalue_type _m_from; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(static_cast(_m_from)) ) == sizeof(::boost::type_traits::yes_type) - ); -#else - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) - ); -#endif -}; - -template -struct is_convertible_basic_impl: - is_convertible_basic_impl_aux< - From,To, - ::boost::is_function::type>::value - > -{}; - -#else -// -// This version seems to work pretty well for a wide spectrum of compilers, -// however it does rely on undefined behaviour by passing UDT's through (...). -// - -//Workaround for old compilers like MSVC 7.1 to avoid -//forming a reference to an array of unknown bound -template -struct is_convertible_basic_impl_add_lvalue_reference - : add_lvalue_reference -{}; - -template -struct is_convertible_basic_impl_add_lvalue_reference -{ - typedef From type []; -}; - -template -struct is_convertible_basic_impl -{ - static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...); - static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To); - typedef typename is_convertible_basic_impl_add_lvalue_reference::type lvalue_type; - static lvalue_type _m_from; -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4244) -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(disable:6334) -#endif -#endif -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - typedef typename add_rvalue_reference::type rvalue_type; - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(static_cast(_m_from)) ) == sizeof(::boost::type_traits::yes_type) - ); -#else - BOOST_STATIC_CONSTANT(bool, value = - sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type) - ); -#endif -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif -}; - -#endif // is_convertible_impl - -#if defined(__DMC__) -// As before, a static constant sometimes causes errors on Digital Mars. -template -struct is_convertible_impl -{ - enum { - value = ( ::boost::detail::is_convertible_basic_impl::value && ! ::boost::is_array::value && ! ::boost::is_function::value) - }; -}; -#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551 -template -struct is_convertible_impl -{ - BOOST_STATIC_CONSTANT(bool, value = ( ::boost::detail::is_convertible_basic_impl::value && !::boost::is_array::value && !::boost::is_function::value)); -}; -#endif - -template -struct is_convertible_impl_select -{ - template - struct rebind - { - typedef is_convertible_impl type; - }; -}; - -template <> -struct is_convertible_impl_select -{ - template - struct rebind - { - typedef true_type type; - }; -}; - -template <> -struct is_convertible_impl_select -{ - template - struct rebind - { - typedef false_type type; - }; -}; - -template <> -struct is_convertible_impl_select -{ - template - struct rebind - { - typedef false_type type; - }; -}; - -template -struct is_convertible_impl_dispatch_base -{ -#if !BOOST_WORKAROUND(__HP_aCC, < 60700) - typedef is_convertible_impl_select< - ::boost::is_arithmetic::value, - ::boost::is_arithmetic::value, -#if !defined(BOOST_NO_IS_ABSTRACT) && !defined(BOOST_TT_CXX11_IS_CONVERTIBLE) - // We need to filter out abstract types, only if we don't have a strictly conforming C++11 version: - ::boost::is_abstract::value -#else - false -#endif - > selector; -#else - typedef is_convertible_impl_select selector; -#endif - typedef typename selector::template rebind isc_binder; - typedef typename isc_binder::type type; -}; - -template -struct is_convertible_impl_dispatch - : public is_convertible_impl_dispatch_base::type -{}; - -// -// Now add the full and partial specialisations -// for void types, these are common to all the -// implementation above: -// -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS - -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; - -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; - -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; - -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; -template <> struct is_convertible_impl_dispatch : public true_type{}; - -#else -template <> struct is_convertible_impl_dispatch : public true_type{}; -#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS - -template struct is_convertible_impl_dispatch : public false_type{}; -template struct is_convertible_impl_dispatch : public false_type{}; - -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template struct is_convertible_impl_dispatch : public false_type{}; -template struct is_convertible_impl_dispatch : public false_type{}; -template struct is_convertible_impl_dispatch : public false_type{}; -template struct is_convertible_impl_dispatch : public false_type{}; -template struct is_convertible_impl_dispatch : public false_type{}; -template struct is_convertible_impl_dispatch : public false_type{}; -#endif - -} // namespace detail - -template -struct is_convertible : public integral_constant::value> {}; - -#else - -template -struct is_convertible : public integral_constant {}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_copy_assignable.hpp b/lib/3rdParty/boost/boost/type_traits/is_copy_assignable.hpp deleted file mode 100644 index 76afdda5d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_copy_assignable.hpp +++ /dev/null @@ -1,141 +0,0 @@ -// (C) Copyright Ion Gaztanaga 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_COPY_ASSIGNABLE_HPP_INCLUDED -#define BOOST_TT_IS_COPY_ASSIGNABLE_HPP_INCLUDED - -#include -#include -#include -#include - -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_CXX11_DECLTYPE) \ - && !defined(BOOST_INTEL_CXX_VERSION) && \ - !(defined(BOOST_MSVC) && _MSC_VER == 1800) -#define BOOST_TT_CXX11_IS_COPY_ASSIGNABLE -#include -#else - //For compilers without decltype - #include - #include - #include - #include -#endif - -namespace boost { - -namespace detail{ - -template -struct is_copy_assignable_impl2 { - -// Intel compiler has problems with SFINAE for copy constructors and deleted functions: -// -// error: function *function_name* cannot be referenced -- it is a deleted function -// static boost::type_traits::yes_type test(T1&, decltype(T1(boost::declval()))* = 0); -// ^ -// -// MSVC 12.0 (Visual 2013) has problems when the copy constructor has been deleted. See: -// https://connect.microsoft.com/VisualStudio/feedback/details/800328/std-is-copy-constructible-is-broken -#if defined(BOOST_TT_CXX11_IS_COPY_ASSIGNABLE) - typedef boost::type_traits::yes_type yes_type; - typedef boost::type_traits::no_type no_type; - - template - static decltype(::boost::declval() = ::boost::declval(), yes_type() ) test(int); - - template - static no_type test(...); - - static const bool value = sizeof(test(0)) == sizeof(yes_type); - -#else - static BOOST_DEDUCED_TYPENAME boost::add_reference::type produce(); - - template - static boost::type_traits::no_type test(T1&, typename T1::boost_move_no_copy_constructor_or_assign* = 0); - - static boost::type_traits::yes_type test(...); - // If you see errors like this: - // - // `'T::operator=(const T&)' is private` - // `boost/type_traits/is_copy_assignable.hpp:NN:M: error: within this context` - // - // then you are trying to call that macro for a structure defined like that: - // - // struct T { - // ... - // private: - // T & operator=(const T &); - // ... - // }; - // - // To fix that you must modify your structure: - // - // // C++03 and C++11 version - // struct T: private boost::noncopyable { - // ... - // private: - // T & operator=(const T &); - // ... - // }; - // - // // C++11 version - // struct T { - // ... - // private: - // T& operator=(const T &) = delete; - // ... - // }; - BOOST_STATIC_CONSTANT(bool, value = ( - sizeof(test(produce())) == sizeof(boost::type_traits::yes_type) - )); - #endif -}; - -template -struct is_copy_assignable_impl2 { - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct is_copy_assignable_impl { - -#if !defined(BOOST_TT_CXX11_IS_COPY_ASSIGNABLE) - //For compilers without decltype, at least return false on const types, arrays - //types derived from boost::noncopyable and types defined as BOOST_MOVEABLE_BUT_NOT_COPYABLE - typedef BOOST_DEDUCED_TYPENAME boost::remove_reference::type unreferenced_t; - BOOST_STATIC_CONSTANT(bool, value = ( - boost::detail::is_copy_assignable_impl2< - boost::is_base_and_derived::value - || boost::is_const::value || boost::is_array::value - ,T - >::value - )); - #else - BOOST_STATIC_CONSTANT(bool, value = ( - boost::detail::is_copy_assignable_impl2< - boost::is_base_and_derived::value,T - >::value - )); - #endif -}; - -} // namespace detail - -template struct is_copy_assignable : public integral_constant::value>{}; -template <> struct is_copy_assignable : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct is_copy_assignable : public false_type{}; -template <> struct is_copy_assignable : public false_type{}; -template <> struct is_copy_assignable : public false_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_COPY_ASSIGNABLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_copy_constructible.hpp b/lib/3rdParty/boost/boost/type_traits/is_copy_constructible.hpp deleted file mode 100644 index c68826431..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_copy_constructible.hpp +++ /dev/null @@ -1,187 +0,0 @@ -// (C) Copyright Antony Polukhin 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_COPY_CONSTRUCTIBLE_HPP_INCLUDED -#define BOOST_TT_IS_COPY_CONSTRUCTIBLE_HPP_INCLUDED - -#include -#include - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40900) - -#include - -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1800) - -namespace boost { - -template struct is_copy_constructible : public boost::is_constructible{}; - -template <> struct is_copy_constructible : public false_type{}; -template <> struct is_copy_constructible : public false_type{}; -template <> struct is_copy_constructible : public false_type{}; -template <> struct is_copy_constructible : public false_type{}; - -} // namespace boost - -#else -// -// Special version for VC12 which has a problem when a base class (such as non_copyable) has a deleted -// copy constructor. In this case the compiler thinks there really is a copy-constructor and tries to -// instantiate the deleted member. std::is_copy_constructible has the same issue (or at least returns -// an incorrect value, which just defers the issue into the users code) as well. We can at least fix -// boost::non_copyable as a base class as a special case: -// -#include -#include - -namespace boost { - - namespace detail - { - - template struct is_copy_constructible_imp : public boost::is_constructible{}; - template struct is_copy_constructible_imp : public false_type{}; - - } - - template struct is_copy_constructible : public detail::is_copy_constructible_imp::value>{}; - - template <> struct is_copy_constructible : public false_type{}; - template <> struct is_copy_constructible : public false_type{}; - template <> struct is_copy_constructible : public false_type{}; - template <> struct is_copy_constructible : public false_type{}; - -} // namespace boost - -#endif - -#else - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4181) -#endif - -namespace boost { - - namespace detail{ - - template - struct is_copy_constructible_impl2 { - - // Intel compiler has problems with SFINAE for copy constructors and deleted functions: - // - // error: function *function_name* cannot be referenced -- it is a deleted function - // static boost::type_traits::yes_type test(T1&, decltype(T1(boost::declval()))* = 0); - // ^ - // - // MSVC 12.0 (Visual 2013) has problems when the copy constructor has been deleted. See: - // https://connect.microsoft.com/VisualStudio/feedback/details/800328/std-is-copy-constructible-is-broken -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_INTEL_CXX_VERSION) && !(defined(BOOST_MSVC) && _MSC_VER == 1800) - -#ifdef BOOST_NO_CXX11_DECLTYPE - template - static boost::type_traits::yes_type test(const T1&, boost::mpl::int_()))>* = 0); -#else - template - static boost::type_traits::yes_type test(const T1&, decltype(T1(boost::declval()))* = 0); -#endif - - static boost::type_traits::no_type test(...); -#else - template - static boost::type_traits::no_type test(const T1&, typename T1::boost_move_no_copy_constructor_or_assign* = 0); - static boost::type_traits::yes_type test(...); -#endif - - // If you see errors like this: - // - // `'T::T(const T&)' is private` - // `boost/type_traits/is_copy_constructible.hpp:68:5: error: within this context` - // - // then you are trying to call that macro for a structure defined like that: - // - // struct T { - // ... - // private: - // T(const T &); - // ... - // }; - // - // To fix that you must modify your structure: - // - // // C++03 and C++11 version - // struct T: private boost::noncopyable { - // ... - // private: - // T(const T &); - // ... - // }; - // - // // C++11 version - // struct T { - // ... - // private: - // T(const T &) = delete; - // ... - // }; - BOOST_STATIC_CONSTANT(bool, value = ( - sizeof(test( - boost::declval::type>() - )) == sizeof(boost::type_traits::yes_type) - && - !boost::is_rvalue_reference::value - && !boost::is_array::value - )); - }; - - template - struct is_copy_constructible_impl2 { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - - template - struct is_copy_constructible_impl { - - BOOST_STATIC_CONSTANT(bool, value = ( - boost::detail::is_copy_constructible_impl2< - boost::is_base_and_derived::value, - T - >::value - )); - }; - - } // namespace detail - - template struct is_copy_constructible : public integral_constant::value>{}; - template <> struct is_copy_constructible : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS - template <> struct is_copy_constructible : public false_type{}; - template <> struct is_copy_constructible : public false_type{}; - template <> struct is_copy_constructible : public false_type{}; -#endif - -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif - -#endif // BOOST_TT_IS_COPY_CONSTRUCTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_default_constructible.hpp b/lib/3rdParty/boost/boost/type_traits/is_default_constructible.hpp deleted file mode 100644 index fa5d76a22..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_default_constructible.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// (C) Copyright John Maddock 2015. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_DEFAULT_CONSTRUCTIBLE_HPP_INCLUDED -#define BOOST_TT_IS_DEFAULT_CONSTRUCTIBLE_HPP_INCLUDED - -#include // size_t -#include -#include - -#if BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40700) -#include -#endif - -#if !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40500) - -#include - -namespace boost{ - - namespace detail{ - - struct is_default_constructible_imp - { - template - static boost::type_traits::yes_type test(int); - - template - static boost::type_traits::no_type test(...); - }; -#if BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40700) - template - struct is_default_constructible_abstract_filter - { - static const bool value = sizeof(is_default_constructible_imp::test(0)) == sizeof(boost::type_traits::yes_type); - }; - template - struct is_default_constructible_abstract_filter - { - static const bool value = false; - }; -#endif - } - -#if BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40700) - template struct is_default_constructible : public integral_constant::value>::value>{}; -#else - template struct is_default_constructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)>{}; -#endif - template struct is_default_constructible : public is_default_constructible{}; - template struct is_default_constructible : public is_default_constructible{}; - template struct is_default_constructible : public integral_constant{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - template struct is_default_constructible : public integral_constant{}; -#endif - template <> struct is_default_constructible : public integral_constant{}; - template <> struct is_default_constructible : public integral_constant{}; - template <> struct is_default_constructible : public integral_constant{}; - template <> struct is_default_constructible : public integral_constant{}; - -#else - -#include - -namespace boost{ - - // We don't know how to implement this, note we can not use has_trivial_constructor here - // because the correct implementation of that trait requires this one: - template struct is_default_constructible : public is_pod{}; - template <> struct is_default_constructible : public integral_constant{}; - template <> struct is_default_constructible : public integral_constant{}; - template <> struct is_default_constructible : public integral_constant{}; - template <> struct is_default_constructible : public integral_constant{}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_DEFAULT_CONSTRUCTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_destructible.hpp b/lib/3rdParty/boost/boost/type_traits/is_destructible.hpp deleted file mode 100644 index 742d99073..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_destructible.hpp +++ /dev/null @@ -1,61 +0,0 @@ - -// (C) Copyright John Maddock 2015. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_DESTRUCTIBLE_HPP_INCLUDED -#define BOOST_TT_IS_DESTRUCTIBLE_HPP_INCLUDED - -#include // size_t -#include -#include - -#if !defined(BOOST_NO_CXX11_DECLTYPE) && !BOOST_WORKAROUND(BOOST_MSVC, < 1800) - -#include -#include - -namespace boost{ - - namespace detail{ - - struct is_destructible_imp - { - template().~T())> - static boost::type_traits::yes_type test(int); - template - static boost::type_traits::no_type test(...); - }; - - } - - template struct is_destructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)>{}; - -#else - -#include -#include - -namespace boost{ - - // We don't know how to implement this: - template struct is_destructible : public integral_constant::value || is_class::value>{}; -#endif - - template <> struct is_destructible : public false_type{}; - template <> struct is_destructible : public false_type{}; - template <> struct is_destructible : public false_type{}; - template <> struct is_destructible : public false_type{}; - template struct is_destructible : public is_destructible{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - template struct is_destructible : public is_destructible{}; -#endif - template struct is_destructible : public is_destructible{}; - template struct is_destructible : public is_destructible{}; - -} // namespace boost - -#endif // BOOST_TT_IS_DESTRUCTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_empty.hpp b/lib/3rdParty/boost/boost/type_traits/is_empty.hpp deleted file mode 100644 index ef288c518..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_empty.hpp +++ /dev/null @@ -1,120 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_EMPTY_HPP_INCLUDED -#define BOOST_TT_IS_EMPTY_HPP_INCLUDED - -#include -#include -#include - -#include -#include -#include - -#ifndef BOOST_INTERNAL_IS_EMPTY -#define BOOST_INTERNAL_IS_EMPTY(T) false -#else -#define BOOST_INTERNAL_IS_EMPTY(T) BOOST_IS_EMPTY(T) -#endif - -namespace boost { - -namespace detail { - - -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4624) // destructor could not be generated -#endif - -template -struct empty_helper_t1 : public T -{ - empty_helper_t1(); // hh compiler bug workaround - int i[256]; -private: - // suppress compiler warnings: - empty_helper_t1(const empty_helper_t1&); - empty_helper_t1& operator=(const empty_helper_t1&); -}; - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -struct empty_helper_t2 { int i[256]; }; - -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) - -template -struct empty_helper -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct empty_helper -{ - BOOST_STATIC_CONSTANT( - bool, value = (sizeof(empty_helper_t1) == sizeof(empty_helper_t2)) - ); -}; - -template -struct is_empty_impl -{ - typedef typename remove_cv::type cvt; - BOOST_STATIC_CONSTANT( - bool, - value = ( ::boost::detail::empty_helper::value>::value || BOOST_INTERNAL_IS_EMPTY(cvt))); -}; - -#else // __BORLANDC__ - -template -struct empty_helper -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct empty_helper -{ - BOOST_STATIC_CONSTANT(bool, value = ( - sizeof(empty_helper_t1) == sizeof(empty_helper_t2) - )); -}; - -template -struct is_empty_impl -{ - typedef typename remove_cv::type cvt; - typedef typename add_reference::type r_type; - - BOOST_STATIC_CONSTANT( - bool, value = ( - ::boost::detail::empty_helper< - cvt - , ::boost::is_class::value - , ::boost::is_convertible< r_type,int>::value - >::value || BOOST_INTERNAL_IS_EMPTY(cvt)); -}; - -#endif // __BORLANDC__ - -} // namespace detail - -template struct is_empty : integral_constant::value> {}; - -} // namespace boost - -#undef BOOST_INTERNAL_IS_EMPTY - -#endif // BOOST_TT_IS_EMPTY_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_enum.hpp b/lib/3rdParty/boost/boost/type_traits/is_enum.hpp deleted file mode 100644 index eada480a6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_enum.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED -#define BOOST_TT_IS_ENUM_HPP_INCLUDED - -#include -#include -#ifndef BOOST_IS_ENUM -#include -#include -#include -#include -#include -#ifdef __GNUC__ -#include -#endif -#include -#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) -# include -# include -#endif -#endif - -namespace boost { - -#ifndef BOOST_IS_ENUM -#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551)) - -namespace detail { - -#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) - -template -struct is_class_or_union -{ - BOOST_STATIC_CONSTANT(bool, value = ::boost::is_class::value || ::boost::is_union::value); -}; - -#else - -template -struct is_class_or_union -{ -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))// we simply can't detect it this way. - BOOST_STATIC_CONSTANT(bool, value = false); -# else - template static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void)); - -# if BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE - static ::boost::type_traits::no_type is_class_or_union_tester(...); - BOOST_STATIC_CONSTANT( - bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type)); -# else - template - static ::boost::type_traits::no_type is_class_or_union_tester(...); - BOOST_STATIC_CONSTANT( - bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type)); -# endif -# endif -}; -#endif - -struct int_convertible -{ - int_convertible(int); -}; - -// Don't evaluate convertibility to int_convertible unless the type -// is non-arithmetic. This suppresses warnings with GCC. -template -struct is_enum_helper -{ - template struct type - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template <> -struct is_enum_helper -{ - template struct type - { - static const bool value = ::boost::is_convertible::type, ::boost::detail::int_convertible>::value; - }; -}; - -template struct is_enum_impl -{ - //typedef ::boost::add_reference ar_t; - //typedef typename ar_t::type r_type; - -#if defined(__GNUC__) - -#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION - - // We MUST check for is_class_or_union on conforming compilers in - // order to correctly deduce that noncopyable types are not enums - // (dwa 2002/04/15)... - BOOST_STATIC_CONSTANT(bool, selector = - ::boost::is_arithmetic::value - || ::boost::is_reference::value - || ::boost::is_function::value - || is_class_or_union::value - || is_array::value); -#else - // ...however, not checking is_class_or_union on non-conforming - // compilers prevents a dependency recursion. - BOOST_STATIC_CONSTANT(bool, selector = - ::boost::is_arithmetic::value - || ::boost::is_reference::value - || ::boost::is_function::value - || is_array::value); -#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION - -#else // !defined(__GNUC__): - - BOOST_STATIC_CONSTANT(bool, selector = - ::boost::is_arithmetic::value - || ::boost::is_reference::value - || is_class_or_union::value - || is_array::value); - -#endif - -#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) - typedef ::boost::detail::is_enum_helper< - ::boost::detail::is_enum_impl::selector - > se_t; -#else - typedef ::boost::detail::is_enum_helper se_t; -#endif - - typedef typename se_t::template type helper; - BOOST_STATIC_CONSTANT(bool, value = helper::value); -}; - -} // namespace detail - -template struct is_enum : public integral_constant::value> {}; - -#else // __BORLANDC__ -// -// buggy is_convertible prevents working -// implementation of is_enum: -template struct is_enum : public integral_constant {}; - -#endif - -#else // BOOST_IS_ENUM - -template struct is_enum : public integral_constant {}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_ENUM_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_final.hpp b/lib/3rdParty/boost/boost/type_traits/is_final.hpp deleted file mode 100644 index 410d18663..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_final.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -// Copyright (c) 2014 Agustin Berge -// -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_FINAL_HPP_INCLUDED -#define BOOST_TT_IS_FINAL_HPP_INCLUDED - -#include -#include -#ifdef BOOST_IS_FINAL -#include -#endif - -namespace boost { - -#ifdef BOOST_IS_FINAL -template struct is_final : public integral_constant::type)> {}; -#else -template struct is_final : public integral_constant {}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_FINAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_float.hpp b/lib/3rdParty/boost/boost/type_traits/is_float.hpp deleted file mode 100644 index 7bf7d1f82..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_float.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED - -// should be the last #include -#include - -namespace boost { - -//* is a type T a floating-point type described in the standard (3.9.1p8) - template struct is_float : public is_floating_point {}; -} // namespace boost - -#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_floating_point.hpp b/lib/3rdParty/boost/boost/type_traits/is_floating_point.hpp deleted file mode 100644 index 196c900cf..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_floating_point.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED - -#include - -namespace boost { - -//* is a type T a floating-point type described in the standard (3.9.1p8) - template struct is_floating_point : public false_type{}; - template struct is_floating_point : public is_floating_point{}; - template struct is_floating_point : public is_floating_point{}; - template struct is_floating_point : public is_floating_point{}; - template<> struct is_floating_point : public true_type{}; - template<> struct is_floating_point : public true_type{}; - template<> struct is_floating_point : public true_type{}; - -#if defined(BOOST_HAS_FLOAT128) - template<> struct is_floating_point<__float128> : public true_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_function.hpp b/lib/3rdParty/boost/boost/type_traits/is_function.hpp deleted file mode 100644 index f77c1f046..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_function.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// Copyright 2000 John Maddock (john@johnmaddock.co.uk) -// Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) -// -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED -#define BOOST_TT_IS_FUNCTION_HPP_INCLUDED - -#include -#include - -#if !defined(BOOST_TT_TEST_MS_FUNC_SIGS) -# include -#else -# include -# include -#endif - -// is a type a function? -// Please note that this implementation is unnecessarily complex: -// we could just use !is_convertible::value, -// except that some compilers erroneously allow conversions from -// function pointers to void*. - -namespace boost { - -#if !defined( __CODEGEARC__ ) - -namespace detail { - -#if !defined(BOOST_TT_TEST_MS_FUNC_SIGS) -template -struct is_function_chooser -{ - template< typename T > struct result_ - : public false_type {}; -}; - -template <> -struct is_function_chooser -{ - template< typename T > struct result_ - : public ::boost::type_traits::is_function_ptr_helper {}; -}; - -template -struct is_function_impl - : public is_function_chooser< ::boost::is_reference::value > - ::BOOST_NESTED_TEMPLATE result_ -{ -}; - -#else - -template -struct is_function_impl -{ -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(push) -#pragma warning(disable:6334) -#endif - static T* t; - BOOST_STATIC_CONSTANT( - bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t)) - == sizeof(::boost::type_traits::yes_type) - ); -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(pop) -#endif -}; - -template -struct is_function_impl : public false_type -{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template -struct is_function_impl : public false_type -{}; -#endif - -#endif - -} // namespace detail - -#endif // !defined( __CODEGEARC__ ) - -#if defined( __CODEGEARC__ ) -template struct is_function : integral_constant {}; -#else -template struct is_function : integral_constant::value> {}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct is_function : public false_type {}; -#endif -#endif -} // namespace boost - -#endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_fundamental.hpp b/lib/3rdParty/boost/boost/type_traits/is_fundamental.hpp deleted file mode 100644 index f58767a48..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_fundamental.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED -#define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED - -#include -#include - -namespace boost { - -//* is a type T a fundamental type described in the standard (3.9.1) -#if defined( __CODEGEARC__ ) -template struct is_fundamental : public integral_constant {}; -#else -template struct is_fundamental : public integral_constant::value || ::boost::is_void::value> {}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_integral.hpp b/lib/3rdParty/boost/boost/type_traits/is_integral.hpp deleted file mode 100644 index 7a7e54bb7..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_integral.hpp +++ /dev/null @@ -1,89 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED -#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED - -#include -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) - template - struct is_integral : public integral_constant {}; -#else - -template struct is_integral : public false_type {}; -template struct is_integral : public is_integral {}; -template struct is_integral : public is_integral{}; -template struct is_integral : public is_integral{}; - -//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3) -// as an extension we include long long, as this is likely to be added to the -// standard at a later date -template<> struct is_integral : public true_type {}; -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; - -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; - -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -// If the following line fails to compile and you're using the Intel -// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php, -// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line. -template<> struct is_integral : public true_type{}; -#endif - -// Same set of integral types as in boost/type_traits/integral_promotion.hpp. -// Please, keep in sync. -- Alexander Nasonov -#if (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \ - || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300)) -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; -template<> struct is_integral<__int8> : public true_type{}; -template<> struct is_integral<__int16> : public true_type{}; -template<> struct is_integral<__int32> : public true_type{}; -#ifdef __BORLANDC__ -template<> struct is_integral : public true_type{}; -template<> struct is_integral<__int64> : public true_type{}; -#endif -#endif - -# if defined(BOOST_HAS_LONG_LONG) -template<> struct is_integral< ::boost::ulong_long_type> : public true_type{}; -template<> struct is_integral< ::boost::long_long_type> : public true_type{}; -#elif defined(BOOST_HAS_MS_INT64) -template<> struct is_integral : public true_type{}; -template<> struct is_integral<__int64> : public true_type{}; -#endif - -#ifdef BOOST_HAS_INT128 -template<> struct is_integral : public true_type{}; -template<> struct is_integral : public true_type{}; -#endif -#ifndef BOOST_NO_CXX11_CHAR16_T -template<> struct is_integral : public true_type{}; -#endif -#ifndef BOOST_NO_CXX11_CHAR32_T -template<> struct is_integral : public true_type{}; -#endif - -#endif // non-CodeGear implementation - -} // namespace boost - -#endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_lvalue_reference.hpp b/lib/3rdParty/boost/boost/type_traits/is_lvalue_reference.hpp deleted file mode 100644 index e94d78748..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_lvalue_reference.hpp +++ /dev/null @@ -1,50 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -// Fixed is_pointer, is_lvalue_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). - - -#ifndef BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED -#define BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED - -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) - template struct is_lvalue_reference : public integral_constant{}; -#else - - template struct is_lvalue_reference : public false_type{}; - template struct is_lvalue_reference : public true_type{}; - -#if defined(BOOST_ILLEGAL_CV_REFERENCES) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... - template struct is_lvalue_reference : public true_type{}; - template struct is_lvalue_reference : public true_type{}; - template struct is_lvalue_reference : public true_type{}; -#endif - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_member_function_pointer.hpp b/lib/3rdParty/boost/boost/type_traits/is_member_function_pointer.hpp deleted file mode 100644 index 223197f33..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_member_function_pointer.hpp +++ /dev/null @@ -1,120 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED -#define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED - -#include -#include - -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) - // - // Note: we use the "workaround" version for MSVC because it works for - // __stdcall etc function types, where as the partial specialisation - // version does not do so. - // -# include -# include -# include -#else -# include -# include -# include -# include -#endif - -namespace boost { - -#if defined( __CODEGEARC__ ) -template struct is_member_function_pointer : public integral_constant {}; -#elif !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS) - -template struct is_member_function_pointer - : public ::boost::integral_constant::type>::value>{}; - -#else - -namespace detail { - -#ifndef __BORLANDC__ - -template -struct is_mem_fun_pointer_select -{ - template struct result_ : public false_type{}; -}; - -template <> -struct is_mem_fun_pointer_select -{ - template struct result_ - { -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(push) -#pragma warning(disable:6334) -#endif - static T* make_t; - typedef result_ self_type; - - BOOST_STATIC_CONSTANT( - bool, value = ( - 1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t)) - )); -#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) -#pragma warning(pop) -#endif - }; -}; - -template -struct is_member_function_pointer_impl - : public is_mem_fun_pointer_select< - ::boost::is_reference::value || ::boost::is_array::value>::template result_{}; - -template -struct is_member_function_pointer_impl : public false_type{}; - -#else // Borland C++ - -template -struct is_member_function_pointer_impl -{ - static T* m_t; - BOOST_STATIC_CONSTANT( - bool, value = - (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) ); -}; - -template -struct is_member_function_pointer_impl -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#endif - -template<> struct is_member_function_pointer_impl : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template<> struct is_member_function_pointer_impl : public false_type{}; -template<> struct is_member_function_pointer_impl : public false_type{}; -template<> struct is_member_function_pointer_impl : public false_type{}; -#endif - -} // namespace detail - -template -struct is_member_function_pointer - : public integral_constant::value>{}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_member_object_pointer.hpp b/lib/3rdParty/boost/boost/type_traits/is_member_object_pointer.hpp deleted file mode 100644 index cb7cf14ab..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_member_object_pointer.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED -#define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED - -#include -#include - -namespace boost { - -template struct is_member_object_pointer - : public integral_constant::value && !::boost::is_member_function_pointer::value>{}; - -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_member_pointer.hpp b/lib/3rdParty/boost/boost/type_traits/is_member_pointer.hpp deleted file mode 100644 index 9757afc95..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_member_pointer.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). - - -#ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED -#define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED - -#include -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) -template struct is_member_pointer : public integral_constant{}; -#else -template struct is_member_pointer : public integral_constant::value>{}; -template struct is_member_pointer : public true_type{}; - -#if !BOOST_WORKAROUND(__MWERKS__,<=0x3003) && !BOOST_WORKAROUND(__IBMCPP__, <=600) -template struct is_member_pointer : public true_type{}; -template struct is_member_pointer : public true_type{}; -template struct is_member_pointer : public true_type{}; -#endif - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_nothrow_move_assignable.hpp b/lib/3rdParty/boost/boost/type_traits/is_nothrow_move_assignable.hpp deleted file mode 100644 index 4fb5bd8a6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_nothrow_move_assignable.hpp +++ /dev/null @@ -1,81 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// (C) Copyright Eric Friedman 2002-2003. -// (C) Copyright Antony Polukhin 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED -#define BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { - -#ifdef BOOST_IS_NOTHROW_MOVE_ASSIGN - -template -struct is_nothrow_move_assignable : public integral_constant{}; -template struct is_nothrow_move_assignable : public false_type{}; -template struct is_nothrow_move_assignable : public false_type{}; -template struct is_nothrow_move_assignable : public false_type{}; -template struct is_nothrow_move_assignable : public false_type{}; -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -template struct is_nothrow_move_assignable : public false_type{}; -#endif - -#elif !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40700) - -namespace detail{ - -template -struct false_or_cpp11_noexcept_move_assignable: public ::boost::false_type {}; - -template -struct false_or_cpp11_noexcept_move_assignable < - T, - typename ::boost::enable_if_c() = ::boost::declval())>::type - > : public ::boost::integral_constant() = ::boost::declval())> -{}; - -} - -template -struct is_nothrow_move_assignable : public integral_constant::value>{}; - -template struct is_nothrow_move_assignable : public ::boost::false_type {}; -template struct is_nothrow_move_assignable : public ::boost::false_type{}; -template struct is_nothrow_move_assignable : public ::boost::false_type{}; -template struct is_nothrow_move_assignable : public ::boost::false_type{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct is_nothrow_move_assignable : public ::boost::false_type{}; -#endif - -#else - -template -struct is_nothrow_move_assignable : public integral_constant::value || ::boost::has_nothrow_assign::value) && ! ::boost::is_array::value>{}; - -#endif - - -template <> struct is_nothrow_move_assignable : public false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct is_nothrow_move_assignable : public false_type{}; -template <> struct is_nothrow_move_assignable : public false_type{}; -template <> struct is_nothrow_move_assignable : public false_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_nothrow_move_constructible.hpp b/lib/3rdParty/boost/boost/type_traits/is_nothrow_move_constructible.hpp deleted file mode 100644 index 0d5d57a0f..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_nothrow_move_constructible.hpp +++ /dev/null @@ -1,87 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// (C) Copyright Eric Friedman 2002-2003. -// (C) Copyright Antony Polukhin 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED -#define BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED - -#include // size_t -#include -#include -#include -#include - -#ifdef BOOST_IS_NOTHROW_MOVE_CONSTRUCT - -namespace boost { - -template -struct is_nothrow_move_constructible : public integral_constant{}; - -template struct is_nothrow_move_constructible : public ::boost::false_type {}; -template struct is_nothrow_move_constructible : public ::boost::false_type{}; - -#elif !defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40800) - -#include -#include - -namespace boost{ namespace detail{ - -template -struct false_or_cpp11_noexcept_move_constructible: public ::boost::false_type {}; - -template -struct false_or_cpp11_noexcept_move_constructible < - T, - typename ::boost::enable_if_c()))>::type - > : public ::boost::integral_constant()))> -{}; - -} - -template struct is_nothrow_move_constructible - : public integral_constant::value>{}; - -template struct is_nothrow_move_constructible : public ::boost::false_type {}; -template struct is_nothrow_move_constructible : public ::boost::false_type{}; -template struct is_nothrow_move_constructible : public ::boost::false_type{}; -template struct is_nothrow_move_constructible : public ::boost::false_type{}; - -#else - -#include -#include -#include - -namespace boost{ - -template -struct is_nothrow_move_constructible - : public integral_constant::value || ::boost::has_nothrow_copy::value) && !::boost::is_array::value> -{}; - -#endif - -template <> struct is_nothrow_move_constructible : false_type{}; -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template <> struct is_nothrow_move_constructible : false_type{}; -template <> struct is_nothrow_move_constructible : false_type{}; -template <> struct is_nothrow_move_constructible : false_type{}; -#endif -// References are always trivially constructible, even if the thing they reference is not: -template struct is_nothrow_move_constructible : public ::boost::true_type{}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct is_nothrow_move_constructible : public ::boost::true_type{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_object.hpp b/lib/3rdParty/boost/boost/type_traits/is_object.hpp deleted file mode 100644 index fc9d2f25d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_object.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED -#define BOOST_TT_IS_OBJECT_HPP_INCLUDED - -#include -#include -#include -#include - -namespace boost { - -template struct is_object - : public - integral_constant< - bool, - ! ::boost::is_reference::value && ! ::boost::is_void::value && ! ::boost::is_function::value > -{}; - -} // namespace boost - -#endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_pod.hpp b/lib/3rdParty/boost/boost/type_traits/is_pod.hpp deleted file mode 100644 index 9bd196257..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_pod.hpp +++ /dev/null @@ -1,59 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_POD_HPP_INCLUDED -#define BOOST_TT_IS_POD_HPP_INCLUDED - -#include // size_t -#include -#include -#include -#include - -#ifdef __SUNPRO_CC -#include -#endif - -#include - -#ifndef BOOST_IS_POD -#define BOOST_INTERNAL_IS_POD(T) false -#else -#define BOOST_INTERNAL_IS_POD(T) BOOST_IS_POD(T) -#endif - -namespace boost { - -// forward declaration, needed by 'is_pod_array_helper' template below -template< typename T > struct is_POD; - -template struct is_pod -: public integral_constant::value || ::boost::is_void::value || BOOST_INTERNAL_IS_POD(T)> -{}; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template struct is_pod : public is_pod{}; -#endif - - -// the following help compilers without partial specialization support: -template<> struct is_pod : public true_type{}; - -#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS -template<> struct is_pod : public true_type{}; -template<> struct is_pod : public true_type{}; -template<> struct is_pod : public true_type{}; -#endif - -template struct is_POD : public is_pod{}; - -} // namespace boost - -#undef BOOST_INTERNAL_IS_POD - -#endif // BOOST_TT_IS_POD_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_pointer.hpp b/lib/3rdParty/boost/boost/type_traits/is_pointer.hpp deleted file mode 100644 index 44b06c227..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_pointer.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). - - -#ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED -#define BOOST_TT_IS_POINTER_HPP_INCLUDED - -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) -template struct is_pointer : public integral_constant{}; -#else -template struct is_pointer : public false_type{}; -template struct is_pointer : public true_type{}; -template struct is_pointer : public true_type{}; -template struct is_pointer : public true_type{}; -template struct is_pointer : public true_type{}; - -#ifdef BOOST_MSVC -template struct is_pointer : public is_pointer{}; -template struct is_pointer : public is_pointer{}; -template struct is_pointer : public is_pointer{}; -#endif - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_polymorphic.hpp b/lib/3rdParty/boost/boost/type_traits/is_polymorphic.hpp deleted file mode 100644 index 722d8b46b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_polymorphic.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// (C) Copyright John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_POLYMORPHIC_HPP -#define BOOST_TT_IS_POLYMORPHIC_HPP - -#include -#include -#ifndef BOOST_IS_POLYMORPHIC -#include -#endif -#include - -#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1700) -#pragma warning(push) -#pragma warning(disable:4250) -#endif - -namespace boost{ - -#ifndef BOOST_IS_POLYMORPHIC - -namespace detail{ - -template -struct is_polymorphic_imp1 -{ -# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always. - typedef char d1, (&d2)[2]; -# else - struct d1 : public T - { - d1(); -# if !defined(__GNUC__) // this raises warnings with some classes, and buys nothing with GCC - ~d1()throw(); -# endif - char padding[256]; - private: - // keep some picky compilers happy: - d1(const d1&); - d1& operator=(const d1&); - }; - struct d2 : public T - { - d2(); - virtual ~d2()throw(); -# if !defined(BOOST_MSVC) && !defined(__ICL) - // for some reason this messes up VC++ when T has virtual bases, - // probably likewise for compilers that use the same ABI: - struct unique{}; - virtual void unique_name_to_boost5487629(unique*); -# endif - char padding[256]; - private: - // keep some picky compilers happy: - d2(const d2&); - d2& operator=(const d2&); - }; -# endif - BOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1))); -}; - -template struct is_polymorphic_imp1 : public is_polymorphic_imp1{}; -template struct is_polymorphic_imp1 : public is_polymorphic_imp1{}; -template struct is_polymorphic_imp1 : public is_polymorphic_imp1{}; - -template -struct is_polymorphic_imp2 -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct is_polymorphic_selector -{ - template - struct rebind - { - typedef is_polymorphic_imp2 type; - }; -}; - -template <> -struct is_polymorphic_selector -{ - template - struct rebind - { - typedef is_polymorphic_imp1 type; - }; -}; - -template -struct is_polymorphic_imp -{ - typedef is_polymorphic_selector< ::boost::is_class::value> selector; - typedef typename selector::template rebind binder; - typedef typename binder::type imp_type; - BOOST_STATIC_CONSTANT(bool, value = imp_type::value); -}; - -} // namespace detail - -template struct is_polymorphic : public integral_constant::value> {}; - -#else // BOOST_IS_POLYMORPHIC - -template struct is_polymorphic : public integral_constant {}; - -#endif - -} // namespace boost - -#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1700) -#pragma warning(pop) -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/is_reference.hpp b/lib/3rdParty/boost/boost/type_traits/is_reference.hpp deleted file mode 100644 index 85f0a6320..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_reference.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000, 2010. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED -#define BOOST_TT_IS_REFERENCE_HPP_INCLUDED - -#include -#include - -namespace boost { - -template struct is_reference - : public - integral_constant< - bool, - ::boost::is_lvalue_reference::value || ::boost::is_rvalue_reference::value> -{}; - -} // namespace boost - -#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_rvalue_reference.hpp b/lib/3rdParty/boost/boost/type_traits/is_rvalue_reference.hpp deleted file mode 100644 index 50e88edee..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_rvalue_reference.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -// (C) John Maddock 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED -#define BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED - -#include -#include - -namespace boost { - -template struct is_rvalue_reference : public false_type {}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template struct is_rvalue_reference : public true_type {}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_same.hpp b/lib/3rdParty/boost/boost/type_traits/is_same.hpp deleted file mode 100644 index d16f4b2b1..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_same.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). - - -#ifndef BOOST_TT_IS_SAME_HPP_INCLUDED -#define BOOST_TT_IS_SAME_HPP_INCLUDED - -#include - -namespace boost { - - - template struct is_same : public false_type {}; - template struct is_same : public true_type {}; -#if BOOST_WORKAROUND(__BORLANDC__, < 0x600) -// without this, Borland's compiler gives the wrong answer for -// references to arrays: - template struct is_same : public true_type{}; -#endif - - -} // namespace boost - -#endif // BOOST_TT_IS_SAME_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/is_scalar.hpp b/lib/3rdParty/boost/boost/type_traits/is_scalar.hpp deleted file mode 100644 index 303144059..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_scalar.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED -#define BOOST_TT_IS_SCALAR_HPP_INCLUDED - -#include -#include -#include -#include -#include - -namespace boost { - -template -struct is_scalar - : public integral_constant::value || ::boost::is_enum::value || ::boost::is_pointer::value || ::boost::is_member_pointer::value> -{}; - -} // namespace boost - -#endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_signed.hpp b/lib/3rdParty/boost/boost/type_traits/is_signed.hpp deleted file mode 100644 index 70ca2e479..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_signed.hpp +++ /dev/null @@ -1,163 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_SIGNED_HPP_INCLUDED -#define BOOST_TT_IS_SIGNED_HPP_INCLUDED - -#include -#include -#include -#include - -namespace boost { - -#if !defined( __CODEGEARC__ ) - -#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1310) && \ - !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) &&\ - !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) - -namespace detail{ - -template -struct is_signed_values -{ - // - // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's - // rather than "real" static constants simply doesn't work or give - // the correct answer. - // - typedef typename remove_cv::type no_cv_t; - static const no_cv_t minus_one = (static_cast(-1)); - static const no_cv_t zero = (static_cast(0)); -}; - -template -struct is_signed_helper -{ - typedef typename remove_cv::type no_cv_t; - BOOST_STATIC_CONSTANT(bool, value = (!(::boost::detail::is_signed_values::minus_one > boost::detail::is_signed_values::zero))); -}; - -template -struct is_signed_select_helper -{ - template - struct rebind - { - typedef is_signed_helper type; - }; -}; - -template <> -struct is_signed_select_helper -{ - template - struct rebind - { - typedef false_type type; - }; -}; - -template -struct is_signed_impl -{ - typedef ::boost::detail::is_signed_select_helper< ::boost::is_integral::value || ::boost::is_enum::value> selector; - typedef typename selector::template rebind binder; - typedef typename binder::type type; - BOOST_STATIC_CONSTANT(bool, value = type::value); -}; - -} - -template struct is_signed : public integral_constant::value> {}; - -#else - -template struct is_signed : public false_type{}; - -#endif - -#else //defined( __CODEGEARC__ ) - template struct is_signed : public integral_constant{}; -#endif - -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; - -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -#ifdef BOOST_HAS_LONG_LONG -template <> struct is_signed< ::boost::long_long_type> : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; - -template <> struct is_signed< ::boost::ulong_long_type> : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -#endif -#if defined(CHAR_MIN) -#if CHAR_MIN != 0 -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -#else -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -#endif -#endif -#if defined(WCHAR_MIN) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) -#if WCHAR_MIN != 0 -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -template <> struct is_signed : public true_type{}; -#else -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -template <> struct is_signed : public false_type{}; -#endif -#endif -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_stateless.hpp b/lib/3rdParty/boost/boost/type_traits/is_stateless.hpp deleted file mode 100644 index f9266da5b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_stateless.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_STATELESS_HPP_INCLUDED -#define BOOST_TT_IS_STATELESS_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace boost { - -template -struct is_stateless - : public integral_constant::value - && ::boost::has_trivial_copy::value - && ::boost::has_trivial_destructor::value - && ::boost::is_class::value - && ::boost::is_empty::value)> -{}; - -} // namespace boost - -#endif // BOOST_TT_IS_STATELESS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_union.hpp b/lib/3rdParty/boost/boost/type_traits/is_union.hpp deleted file mode 100644 index c5e1a9601..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_union.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_UNION_HPP_INCLUDED -#define BOOST_TT_IS_UNION_HPP_INCLUDED - -#include -#include - -namespace boost { - -#ifdef BOOST_IS_UNION -template struct is_union : public integral_constant {}; -#else -template struct is_union : public integral_constant {}; -#endif - -template struct is_union : public is_union{}; -template struct is_union : public is_union{}; -template struct is_union : public is_union{}; - -} // namespace boost - -#endif // BOOST_TT_IS_UNION_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_unsigned.hpp b/lib/3rdParty/boost/boost/type_traits/is_unsigned.hpp deleted file mode 100644 index c4c54af7b..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_unsigned.hpp +++ /dev/null @@ -1,163 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_IS_UNSIGNED_HPP_INCLUDED -#define BOOST_TT_IS_UNSIGNED_HPP_INCLUDED - -#include -#include -#include - -#include - -namespace boost { - -#if !defined( __CODEGEARC__ ) - -#if !(defined(BOOST_MSVC) && BOOST_MSVC <= 1310) &&\ - !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) &&\ - !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) - -namespace detail{ - -template -struct is_unsigned_values -{ - // - // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's - // rather than "real" static constants simply doesn't work or give - // the correct answer. - // - typedef typename remove_cv::type no_cv_t; - static const no_cv_t minus_one = (static_cast(-1)); - static const no_cv_t zero = (static_cast(0)); -}; - -template -struct is_ununsigned_helper -{ - BOOST_STATIC_CONSTANT(bool, value = (::boost::detail::is_unsigned_values::minus_one > ::boost::detail::is_unsigned_values::zero)); -}; - -template -struct is_unsigned_select_helper -{ - template - struct rebind - { - typedef is_ununsigned_helper type; - }; -}; - -template <> -struct is_unsigned_select_helper -{ - template - struct rebind - { - typedef false_type type; - }; -}; - -template -struct is_unsigned -{ - typedef ::boost::detail::is_unsigned_select_helper< ::boost::is_integral::value || ::boost::is_enum::value > selector; - typedef typename selector::template rebind binder; - typedef typename binder::type type; - BOOST_STATIC_CONSTANT(bool, value = type::value); -}; - -} // namespace detail - -template struct is_unsigned : public integral_constant::value> {}; - -#else - -template struct is_unsigned : public false_type{}; - -#endif - -#else // defined( __CODEGEARC__ ) -template struct is_unsigned : public integral_constant {}; -#endif - -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; - -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned< short> : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned< int> : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned< long> : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -#ifdef BOOST_HAS_LONG_LONG -template <> struct is_unsigned< ::boost::ulong_long_type> : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; - -template <> struct is_unsigned< ::boost::long_long_type> : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -#endif -#if defined(CHAR_MIN) -#if CHAR_MIN == 0 -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -#else -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -#endif -#endif -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) && defined(WCHAR_MIN) -#if WCHAR_MIN == 0 -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -template <> struct is_unsigned : public true_type{}; -#else -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -template <> struct is_unsigned : public false_type{}; -#endif -#endif -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_virtual_base_of.hpp b/lib/3rdParty/boost/boost/type_traits/is_virtual_base_of.hpp deleted file mode 100644 index 84cb355cd..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_virtual_base_of.hpp +++ /dev/null @@ -1,105 +0,0 @@ -// (C) Copyright Daniel Frey and Robert Ramey 2009. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED -#define BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED - -#include -#include - -namespace boost { -namespace detail { - - -#ifdef BOOST_MSVC -#pragma warning( push ) -#pragma warning( disable : 4584 4250 4594) -#elif defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -template -struct is_virtual_base_of_impl -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template -struct is_virtual_base_of_impl -{ - union max_align - { - unsigned u; - unsigned long ul; - void* v; - double d; - long double ld; -#ifndef BOOST_NO_LONG_LONG - long long ll; -#endif - }; -#ifdef __BORLANDC__ - struct boost_type_traits_internal_struct_X : public virtual Derived, public virtual Base - { - boost_type_traits_internal_struct_X(); - boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&); - boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&); - ~boost_type_traits_internal_struct_X()throw(); - max_align data[4]; - }; - struct boost_type_traits_internal_struct_Y : public virtual Derived - { - boost_type_traits_internal_struct_Y(); - boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&); - boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&); - ~boost_type_traits_internal_struct_Y()throw(); - max_align data[4]; - }; -#else - struct boost_type_traits_internal_struct_X : public Derived, virtual Base - { - boost_type_traits_internal_struct_X(); - boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&); - boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&); - ~boost_type_traits_internal_struct_X()throw(); - max_align data[16]; - }; - struct boost_type_traits_internal_struct_Y : public Derived - { - boost_type_traits_internal_struct_Y(); - boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&); - boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&); - ~boost_type_traits_internal_struct_Y()throw(); - max_align data[16]; - }; -#endif - BOOST_STATIC_CONSTANT(bool, value = (sizeof(boost_type_traits_internal_struct_X)==sizeof(boost_type_traits_internal_struct_Y))); -}; - -template -struct is_virtual_base_of_impl2 -{ - typedef boost::integral_constant::value && ! boost::is_same::value)> tag_type; - typedef is_virtual_base_of_impl imp; - BOOST_STATIC_CONSTANT(bool, value = imp::value); -}; - -#ifdef BOOST_MSVC -#pragma warning( pop ) -#endif - -} // namespace detail - -template struct is_virtual_base_of : public integral_constant::value)>{}; - -template struct is_virtual_base_of : public false_type{}; -template struct is_virtual_base_of : public false_type{}; -template struct is_virtual_base_of : public false_type{}; - -} // namespace boost - -#endif diff --git a/lib/3rdParty/boost/boost/type_traits/is_void.hpp b/lib/3rdParty/boost/boost/type_traits/is_void.hpp deleted file mode 100644 index 183f8abf5..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_void.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_IS_VOID_HPP_INCLUDED -#define BOOST_TT_IS_VOID_HPP_INCLUDED - -#include - -namespace boost { - -template -struct is_void : public false_type {}; - -template<> struct is_void : public true_type {}; -template<> struct is_void : public true_type{}; -template<> struct is_void : public true_type{}; -template<> struct is_void : public true_type{}; - -} // namespace boost - -#endif // BOOST_TT_IS_VOID_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/is_volatile.hpp b/lib/3rdParty/boost/boost/type_traits/is_volatile.hpp deleted file mode 100644 index 5b8e716b4..000000000 --- a/lib/3rdParty/boost/boost/type_traits/is_volatile.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Howard Hinnant and John Maddock 2000. -// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 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/libs/type_traits for most recent version including documentation. - -// Fixed is_pointer, is_reference, is_const, is_volatile, is_same, -// is_member_pointer based on the Simulated Partial Specialization work -// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or -// http://groups.yahoo.com/group/boost/message/5441 -// Some workarounds in here use ideas suggested from "Generic: -// Mappings between Types and Values" -// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html). - - -#ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED -#define BOOST_TT_IS_VOLATILE_HPP_INCLUDED - -#include // size_t -#include - -namespace boost { - -#if defined( __CODEGEARC__ ) - - template - struct is_volatile : public integral_constant {}; - -#else - - template - struct is_volatile : public false_type {}; - template struct is_volatile : public true_type{}; - template struct is_volatile : public true_type{}; - template struct is_volatile : public true_type{}; - -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/make_signed.hpp b/lib/3rdParty/boost/boost/type_traits/make_signed.hpp deleted file mode 100644 index 0d2d5df61..000000000 --- a/lib/3rdParty/boost/boost/type_traits/make_signed.hpp +++ /dev/null @@ -1,131 +0,0 @@ - -// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_MAKE_SIGNED_HPP_INCLUDED -#define BOOST_TT_MAKE_SIGNED_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { - -template -struct make_signed -{ -private: - BOOST_STATIC_ASSERT_MSG(( ::boost::is_integral::value || ::boost::is_enum::value), "The template argument to make_signed must be an integer or enum type."); - BOOST_STATIC_ASSERT_MSG(!(::boost::is_same::type, bool>::value), "The template argument to make_signed must not be the type bool."); - - typedef typename remove_cv::type t_no_cv; - typedef typename conditional< - (::boost::is_signed::value - && ::boost::is_integral::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value), - T, - typename conditional< - (::boost::is_integral::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value), - typename conditional< - is_same::value, - signed char, - typename conditional< - is_same::value, - signed short, - typename conditional< - is_same::value, - int, - typename conditional< - is_same::value, - long, -#if defined(BOOST_HAS_LONG_LONG) -#ifdef BOOST_HAS_INT128 - typename conditional< - sizeof(t_no_cv) == sizeof(boost::long_long_type), - boost::long_long_type, - boost::int128_type - >::type -#else - boost::long_long_type -#endif -#elif defined(BOOST_HAS_MS_INT64) - __int64 -#else - long -#endif - >::type - >::type - >::type - >::type, - // Not a regular integer type: - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned char), - signed char, - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned short), - signed short, - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned int), - int, - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned long), - long, -#if defined(BOOST_HAS_LONG_LONG) -#ifdef BOOST_HAS_INT128 - typename conditional< - sizeof(t_no_cv) == sizeof(boost::long_long_type), - boost::long_long_type, - boost::int128_type - >::type -#else - boost::long_long_type -#endif -#elif defined(BOOST_HAS_MS_INT64) - __int64 -#else - long -#endif - >::type - >::type - >::type - >::type - >::type - >::type base_integer_type; - - // Add back any const qualifier: - typedef typename conditional< - is_const::value, - typename add_const::type, - base_integer_type - >::type const_base_integer_type; -public: - // Add back any volatile qualifier: - typedef typename conditional< - is_volatile::value, - typename add_volatile::type, - const_base_integer_type - >::type type; -}; - -} // namespace boost - -#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/make_unsigned.hpp b/lib/3rdParty/boost/boost/type_traits/make_unsigned.hpp deleted file mode 100644 index 4b21ebaeb..000000000 --- a/lib/3rdParty/boost/boost/type_traits/make_unsigned.hpp +++ /dev/null @@ -1,130 +0,0 @@ - -// (C) Copyright John Maddock 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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED -#define BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { - -template -struct make_unsigned -{ -private: - BOOST_STATIC_ASSERT_MSG((::boost::is_integral::value || ::boost::is_enum::value), "The template argument to make_unsigned must be an integer or enum type."); - BOOST_STATIC_ASSERT_MSG((! ::boost::is_same::type, bool>::value), "The template argument to make_unsigned must not be the type bool"); - - typedef typename remove_cv::type t_no_cv; - typedef typename conditional< - (::boost::is_unsigned::value && ::boost::is_integral::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value), - T, - typename conditional< - (::boost::is_integral::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value - && ! ::boost::is_same::value), - typename conditional< - is_same::value, - unsigned char, - typename conditional< - is_same::value, - unsigned short, - typename conditional< - is_same::value, - unsigned int, - typename conditional< - is_same::value, - unsigned long, -#if defined(BOOST_HAS_LONG_LONG) -#ifdef BOOST_HAS_INT128 - typename conditional< - sizeof(t_no_cv) == sizeof(boost::ulong_long_type), - boost::ulong_long_type, - boost::uint128_type - >::type -#else - boost::ulong_long_type -#endif -#elif defined(BOOST_HAS_MS_INT64) - unsigned __int64 -#else - unsigned long -#endif - >::type - >::type - >::type - >::type, - // Not a regular integer type: - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned char), - unsigned char, - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned short), - unsigned short, - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned int), - unsigned int, - typename conditional< - sizeof(t_no_cv) == sizeof(unsigned long), - unsigned long, -#if defined(BOOST_HAS_LONG_LONG) -#ifdef BOOST_HAS_INT128 - typename conditional< - sizeof(t_no_cv) == sizeof(boost::ulong_long_type), - boost::ulong_long_type, - boost::uint128_type - >::type -#else - boost::ulong_long_type -#endif -#elif defined(BOOST_HAS_MS_INT64) - unsigned __int64 -#else - unsigned long -#endif - >::type - >::type - >::type - >::type - >::type - >::type base_integer_type; - - // Add back any const qualifier: - typedef typename conditional< - is_const::value, - typename add_const::type, - base_integer_type - >::type const_base_integer_type; -public: - // Add back any volatile qualifier: - typedef typename conditional< - is_volatile::value, - typename add_volatile::type, - const_base_integer_type - >::type type; -}; - -} // namespace boost - -#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/object_traits.hpp b/lib/3rdParty/boost/boost/type_traits/object_traits.hpp deleted file mode 100644 index c812a62e2..000000000 --- a/lib/3rdParty/boost/boost/type_traits/object_traits.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. -// -// defines object traits classes: -// is_object, is_scalar, is_class, is_compound, is_pod, -// has_trivial_constructor, has_trivial_copy, has_trivial_assign, -// has_trivial_destructor, is_empty. -// - -#ifndef BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED -#define BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED diff --git a/lib/3rdParty/boost/boost/type_traits/promote.hpp b/lib/3rdParty/boost/boost/type_traits/promote.hpp deleted file mode 100644 index 587617a28..000000000 --- a/lib/3rdParty/boost/boost/type_traits/promote.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2005 Alexander Nasonov. -// 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 FILE_boost_type_traits_promote_hpp_INCLUDED -#define FILE_boost_type_traits_promote_hpp_INCLUDED - -#include -#include -#include - -namespace boost { - -template struct promote : public integral_promotion::type>{}; - -} - -#endif // #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED - diff --git a/lib/3rdParty/boost/boost/type_traits/rank.hpp b/lib/3rdParty/boost/boost/type_traits/rank.hpp deleted file mode 100644 index 1f820f1a5..000000000 --- a/lib/3rdParty/boost/boost/type_traits/rank.hpp +++ /dev/null @@ -1,87 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_RANK_HPP_INCLUDED -#define BOOST_TT_RANK_HPP_INCLUDED - -#include // size_t -#include - -namespace boost { - -#if !defined( __CODEGEARC__ ) - -namespace detail{ - -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = N); -}; -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; - -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; - -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; - -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; - -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; -template -struct rank_imp -{ - BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp::value)); -}; -#endif -#endif -} - -#endif // !defined( __CODEGEARC__ ) - -#if defined( __CODEGEARC__ ) -template struct rank : public integral_constant{}; -#else -template struct rank : public integral_constant::value)>{}; -#endif - -} // namespace boost - -#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/reference_traits.hpp b/lib/3rdParty/boost/boost/type_traits/reference_traits.hpp deleted file mode 100644 index 1607b3d0d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/reference_traits.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (C) Copyright David Abrahams Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000-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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED -#define BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED - -#include - -#endif // BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_all_extents.hpp b/lib/3rdParty/boost/boost/type_traits/remove_all_extents.hpp deleted file mode 100644 index 90c90d352..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_all_extents.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -// (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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED -#define BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED - -#include -#include // size_t -#include - -namespace boost { - -template struct remove_all_extents{ typedef T type; }; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template struct remove_all_extents : public remove_all_extents{}; -template struct remove_all_extents : public remove_all_extents{}; -template struct remove_all_extents : public remove_all_extents{}; -template struct remove_all_extents : public remove_all_extents{}; -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -template struct remove_all_extents : public remove_all_extents{}; -template struct remove_all_extents : public remove_all_extents{}; -template struct remove_all_extents : public remove_all_extents{}; -template struct remove_all_extents : public remove_all_extents{}; -#endif -#endif - -} // namespace boost - -#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_bounds.hpp b/lib/3rdParty/boost/boost/type_traits/remove_bounds.hpp deleted file mode 100644 index 56988d24e..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_bounds.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED -#define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED - -#include - -namespace boost -{ - -template struct remove_bounds : public remove_extent {}; - -} // namespace boost - -#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_const.hpp b/lib/3rdParty/boost/boost/type_traits/remove_const.hpp deleted file mode 100644 index e238962c6..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_const.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED -#define BOOST_TT_REMOVE_CONST_HPP_INCLUDED - -#include -#include // size_t -#include - -namespace boost { - - // convert a type T to a non-cv-qualified type - remove_const - template struct remove_const{ typedef T type; }; - template struct remove_const{ typedef T type; }; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) - template struct remove_const{ typedef T type[N]; }; -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - template struct remove_const{ typedef T type[]; }; -#endif -#endif - -} // namespace boost - -#endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_cv.hpp b/lib/3rdParty/boost/boost/type_traits/remove_cv.hpp deleted file mode 100644 index 08393cfb8..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_cv.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED -#define BOOST_TT_REMOVE_CV_HPP_INCLUDED - -#include -#include -#include // size_t - -namespace boost { - - // convert a type T to a non-cv-qualified type - remove_cv -template struct remove_cv{ typedef T type; }; -template struct remove_cv{ typedef T type; }; -template struct remove_cv{ typedef T type; }; -template struct remove_cv{ typedef T type; }; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template struct remove_cv{ typedef T type[N]; }; -template struct remove_cv{ typedef T type[N]; }; -template struct remove_cv{ typedef T type[N]; }; -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -template struct remove_cv{ typedef T type[]; }; -template struct remove_cv{ typedef T type[]; }; -template struct remove_cv{ typedef T type[]; }; -#endif -#endif - - -} // namespace boost - -#endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_extent.hpp b/lib/3rdParty/boost/boost/type_traits/remove_extent.hpp deleted file mode 100644 index b6528e525..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_extent.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-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/libs/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED -#define BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED - -#include -#include -#include // size_t - -namespace boost { - -template struct remove_extent{ typedef T type; }; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template struct remove_extent { typedef T type; }; -template struct remove_extent { typedef T const type; }; -template struct remove_extent { typedef T volatile type; }; -template struct remove_extent { typedef T const volatile type; }; -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -template struct remove_extent { typedef T type; }; -template struct remove_extent { typedef T const type; }; -template struct remove_extent { typedef T volatile type; }; -template struct remove_extent { typedef T const volatile type; }; -#endif -#endif - -} // namespace boost - -#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_pointer.hpp b/lib/3rdParty/boost/boost/type_traits/remove_pointer.hpp deleted file mode 100644 index 921665266..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_pointer.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED -#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED - -#include - -#if defined(BOOST_MSVC) -#include -#include -#endif - -namespace boost { - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1900) - -namespace detail{ - - // - // We need all this crazy indirection because a type such as: - // - // T (*const)(U) - // - // Does not bind to a or partial specialization with VC10 and earlier - // - template - struct remove_pointer_imp - { - typedef T type; - }; - - template - struct remove_pointer_imp - { - typedef T type; - }; - - template - struct remove_pointer_imp3 - { - typedef typename remove_pointer_imp::type>::type type; - }; - - template - struct remove_pointer_imp3 - { - typedef T type; - }; - - template - struct remove_pointer_imp2 - { - typedef typename remove_pointer_imp3::value>::type type; - }; -} - -template struct remove_pointer{ typedef typename boost::detail::remove_pointer_imp2::type type; }; - -#else - -template struct remove_pointer{ typedef T type; }; -template struct remove_pointer{ typedef T type; }; -template struct remove_pointer{ typedef T type; }; -template struct remove_pointer{ typedef T type; }; -template struct remove_pointer{ typedef T type; }; - -#endif - -} // namespace boost - -#endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_reference.hpp b/lib/3rdParty/boost/boost/type_traits/remove_reference.hpp deleted file mode 100644 index f75e67783..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_reference.hpp +++ /dev/null @@ -1,54 +0,0 @@ - -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED -#define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED - -#include -#include - -namespace boost { - - -namespace detail{ -// -// We can't filter out rvalue_references at the same level as -// references or we get ambiguities from msvc: -// -template -struct remove_rvalue_ref -{ - typedef T type; -}; -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -template -struct remove_rvalue_ref -{ - typedef T type; -}; -#endif - -} // namespace detail - -template struct remove_reference{ typedef typename boost::detail::remove_rvalue_ref::type type; }; -template struct remove_reference{ typedef T type; }; - -#if defined(BOOST_ILLEGAL_CV_REFERENCES) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template struct remove_reference{ typedef T type; }; -template struct remove_reference{ typedef T type; }; -template struct remove_reference{ typedef T type; }; -#endif - - -} // namespace boost - -#endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/remove_volatile.hpp b/lib/3rdParty/boost/boost/type_traits/remove_volatile.hpp deleted file mode 100644 index f5870f317..000000000 --- a/lib/3rdParty/boost/boost/type_traits/remove_volatile.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard -// Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. - - -#ifndef BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED -#define BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED - -#include -#include -#include // size_t - -namespace boost { - - // convert a type T to a non-cv-qualified type - remove_volatile - template struct remove_volatile{ typedef T type; }; - template struct remove_volatile{ typedef T type; }; - -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) - template struct remove_volatile{ typedef T type[N]; }; -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - template struct remove_volatile{ typedef T type[]; }; -#endif -#endif - - -} // namespace boost - -#endif // BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/same_traits.hpp b/lib/3rdParty/boost/boost/type_traits/same_traits.hpp deleted file mode 100644 index dab7dac78..000000000 --- a/lib/3rdParty/boost/boost/type_traits/same_traits.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. -// -// defines is_same: - -#ifndef BOOST_TT_SAME_TRAITS_HPP_INCLUDED -#define BOOST_TT_SAME_TRAITS_HPP_INCLUDED - -#include - -#endif // BOOST_TT_SAME_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/transform_traits.hpp b/lib/3rdParty/boost/boost/type_traits/transform_traits.hpp deleted file mode 100644 index 7a82f1ca9..000000000 --- a/lib/3rdParty/boost/boost/type_traits/transform_traits.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// 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/type_traits for most recent version including documentation. -// -// defines traits classes for transforming one type to another: -// remove_reference, add_reference, remove_bounds, remove_pointer. -// - -#ifndef BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED -#define BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED - -#include -#include -#include -#include -#include - -#endif // BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/type_identity.hpp b/lib/3rdParty/boost/boost/type_traits/type_identity.hpp deleted file mode 100644 index 6d2dd5b4d..000000000 --- a/lib/3rdParty/boost/boost/type_traits/type_identity.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED -#define BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED - -// -// Copyright 2015 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 -// - -namespace boost -{ - -template struct type_identity -{ - typedef T type; -}; - -} // namespace boost - -#endif // #ifndef BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED diff --git a/lib/3rdParty/boost/boost/type_traits/type_with_alignment.hpp b/lib/3rdParty/boost/boost/type_traits/type_with_alignment.hpp deleted file mode 100644 index ddf1d9829..000000000 --- a/lib/3rdParty/boost/boost/type_traits/type_with_alignment.hpp +++ /dev/null @@ -1,261 +0,0 @@ -// (C) Copyright John Maddock 2000. -// 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/type_traits for most recent version including documentation. - -#ifndef BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED -#define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED - -#include -#include -#include -#include -#include // size_t -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4121) // alignment is sensitive to packing -#endif - -#ifdef _MSC_VER -#include -#endif - -namespace boost { - namespace detail{ - -#ifndef __BORLANDC__ - - union max_align - { - char c; - short s; - int i; - long l; -#ifndef BOOST_NO_LONG_LONG - boost::long_long_type ll; -#endif -#ifdef BOOST_HAS_INT128 - boost::int128_type i128; -#endif - float f; - double d; - long double ld; -#ifdef BOOST_HAS_FLOAT128 - __float128 f128; -#endif - }; - -template struct long_double_alignment{ typedef long double type; }; -template struct long_double_alignment{ typedef boost::detail::max_align type; }; - -template struct double_alignment{ typedef double type; }; -template struct double_alignment{ typedef typename long_double_alignment::value >= Target>::type type; }; - -#ifndef BOOST_NO_LONG_LONG -template struct long_long_alignment{ typedef boost::long_long_type type; }; -template struct long_long_alignment{ typedef typename double_alignment::value >= Target>::type type; }; -#endif - -template struct long_alignment{ typedef long type; }; -#ifndef BOOST_NO_LONG_LONG -template struct long_alignment{ typedef typename long_long_alignment::value >= Target>::type type; }; -#else -template struct long_alignment{ typedef typename double_alignment::value >= Target>::type type; }; -#endif - -template struct int_alignment{ typedef int type; }; -template struct int_alignment{ typedef typename long_alignment::value >= Target>::type type; }; - -template struct short_alignment{ typedef short type; }; -template struct short_alignment{ typedef typename int_alignment::value >= Target>::type type; }; - -template struct char_alignment{ typedef char type; }; -template struct char_alignment{ typedef typename short_alignment::value >= Target>::type type; }; - -} - -template -struct type_with_alignment -{ - typedef typename boost::detail::char_alignment::value >= Align>::type type; -}; - -#if (defined(__GNUC__) || (defined (__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130)) || defined(__clang__)) && !defined(BOOST_TT_DISABLE_INTRINSICS) -namespace tt_align_ns { -struct __attribute__((__aligned__(2))) a2 {}; -struct __attribute__((__aligned__(4))) a4 {}; -struct __attribute__((__aligned__(8))) a8 {}; -struct __attribute__((__aligned__(16))) a16 {}; -struct __attribute__((__aligned__(32))) a32 {}; -struct __attribute__((__aligned__(64))) a64 {}; -struct __attribute__((__aligned__(128))) a128 {}; -} - -template<> struct type_with_alignment<1> { public: typedef char type; }; -template<> struct type_with_alignment<2> { public: typedef tt_align_ns::a2 type; }; -template<> struct type_with_alignment<4> { public: typedef tt_align_ns::a4 type; }; -template<> struct type_with_alignment<8> { public: typedef tt_align_ns::a8 type; }; -template<> struct type_with_alignment<16> { public: typedef tt_align_ns::a16 type; }; -template<> struct type_with_alignment<32> { public: typedef tt_align_ns::a32 type; }; -template<> struct type_with_alignment<64> { public: typedef tt_align_ns::a64 type; }; -template<> struct type_with_alignment<128> { public: typedef tt_align_ns::a128 type; }; - -template<> struct is_pod< ::boost::tt_align_ns::a2> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a4> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a8> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a16> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a32> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a64> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a128> : public true_type{}; - -#endif -#if (defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))) && !defined(BOOST_TT_DISABLE_INTRINSICS) -// -// MSVC supports types which have alignments greater than the normal -// maximum: these are used for example in the types __m64 and __m128 -// to provide types with alignment requirements which match the SSE -// registers. Therefore we extend type_with_alignment<> to support -// such types, however, we have to be careful to use a builtin type -// whenever possible otherwise we break previously working code: -// see http://article.gmane.org/gmane.comp.lib.boost.devel/173011 -// for an example and test case. Thus types like a8 below will -// be used *only* if the existing implementation can't provide a type -// with suitable alignment. This does mean however, that type_with_alignment<> -// may return a type which cannot be passed through a function call -// by value (and neither can any type containing such a type like -// Boost.Optional). However, this only happens when we have no choice -// in the matter because no other "ordinary" type is available. -// -namespace tt_align_ns { -struct __declspec(align(8)) a8 { - char m[8]; - typedef a8 type; -}; -struct __declspec(align(16)) a16 { - char m[16]; - typedef a16 type; -}; -struct __declspec(align(32)) a32 { - char m[32]; - typedef a32 type; -}; -struct __declspec(align(64)) a64 -{ - char m[64]; - typedef a64 type; -}; -struct __declspec(align(128)) a128 { - char m[128]; - typedef a128 type; -}; -} - -template<> struct type_with_alignment<8> -{ - typedef boost::conditional< - ::boost::alignment_of::value < 8, - tt_align_ns::a8, - boost::detail::char_alignment<8, false> >::type t1; -public: - typedef t1::type type; -}; -template<> struct type_with_alignment<16> -{ - typedef boost::conditional< - ::boost::alignment_of::value < 16, - tt_align_ns::a16, - boost::detail::char_alignment<16, false> >::type t1; -public: - typedef t1::type type; -}; -template<> struct type_with_alignment<32> -{ - typedef boost::conditional< - ::boost::alignment_of::value < 32, - tt_align_ns::a32, - boost::detail::char_alignment<32, false> >::type t1; -public: - typedef t1::type type; -}; -template<> struct type_with_alignment<64> { - typedef boost::conditional< - ::boost::alignment_of::value < 64, - tt_align_ns::a64, - boost::detail::char_alignment<64, false> >::type t1; -public: - typedef t1::type type; -}; -template<> struct type_with_alignment<128> { - typedef boost::conditional< - ::boost::alignment_of::value < 128, - tt_align_ns::a128, - boost::detail::char_alignment<128, false> >::type t1; -public: - typedef t1::type type; -}; - -template<> struct is_pod< ::boost::tt_align_ns::a8> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a16> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a32> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a64> : public true_type{}; -template<> struct is_pod< ::boost::tt_align_ns::a128> : public true_type{}; - -#endif - -#else - -// -// Borland specific version, we have this for two reasons: -// 1) The version above doesn't always compile (with the new test cases for example) -// 2) Because of Borlands #pragma option we can create types with alignments that are -// greater that the largest aligned builtin type. - -namespace tt_align_ns{ -#pragma option push -a16 -struct a2{ short s; }; -struct a4{ int s; }; -struct a8{ double s; }; -struct a16{ long double s; }; -#pragma option pop -} - -namespace detail { - -typedef ::boost::tt_align_ns::a16 max_align; - -} -//#if ! BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) -template <> struct is_pod< ::boost::tt_align_ns::a2> : public true_type{}; -template <> struct is_pod< ::boost::tt_align_ns::a4> : public true_type{}; -template <> struct is_pod< ::boost::tt_align_ns::a8> : public true_type{}; -template <> struct is_pod< ::boost::tt_align_ns::a16> : public true_type{}; -//#endif - -template struct type_with_alignment -{ - // We should never get to here, but if we do use the maximally - // aligned type: - // BOOST_STATIC_ASSERT(0); - typedef tt_align_ns::a16 type; -}; -template <> struct type_with_alignment<1>{ typedef char type; }; -template <> struct type_with_alignment<2>{ typedef tt_align_ns::a2 type; }; -template <> struct type_with_alignment<4>{ typedef tt_align_ns::a4 type; }; -template <> struct type_with_alignment<8>{ typedef tt_align_ns::a8 type; }; -template <> struct type_with_alignment<16>{ typedef tt_align_ns::a16 type; }; - -#endif - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(pop) -#endif - -#endif // BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED - - diff --git a/lib/3rdParty/boost/boost/utility.hpp b/lib/3rdParty/boost/boost/utility.hpp deleted file mode 100644 index 82177c8b4..000000000 --- a/lib/3rdParty/boost/boost/utility.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// Boost utility.hpp header file -------------------------------------------// - -// Copyright 1999-2003 Aleksey Gurtovoy. Use, modification, and distribution are -// subject to the Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or a copy at .) - -// See for the library's home page. - -#ifndef BOOST_UTILITY_HPP -#define BOOST_UTILITY_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_UTILITY_HPP diff --git a/lib/3rdParty/boost/boost/utility/addressof.hpp b/lib/3rdParty/boost/boost/utility/addressof.hpp deleted file mode 100644 index db4da8042..000000000 --- a/lib/3rdParty/boost/boost/utility/addressof.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_UTILITY_ADDRESSOF_HPP -#define BOOST_UTILITY_ADDRESSOF_HPP - -// The header file at this path is deprecated; -// use boost/core/addressof.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/utility/base_from_member.hpp b/lib/3rdParty/boost/boost/utility/base_from_member.hpp deleted file mode 100644 index 604541d19..000000000 --- a/lib/3rdParty/boost/boost/utility/base_from_member.hpp +++ /dev/null @@ -1,172 +0,0 @@ -// boost utility/base_from_member.hpp header file --------------------------// - -// Copyright 2001, 2003, 2004, 2012 Daryle Walker. Use, modification, and -// distribution are subject to the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or a copy at -// .) - -// See for the library's home page. - -#ifndef BOOST_UTILITY_BASE_FROM_MEMBER_HPP -#define BOOST_UTILITY_BASE_FROM_MEMBER_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -// Base-from-member arity configuration macro ------------------------------// - -// The following macro determines how many arguments will be in the largest -// constructor template of base_from_member. Constructor templates will be -// generated from one argument to this maximum. Code from other files can read -// this number if they need to always match the exact maximum base_from_member -// uses. The maximum constructor length can be changed by overriding the -// #defined constant. Make sure to apply the override, if any, for all source -// files during project compiling for consistency. - -// Contributed by Jonathan Turkanis - -#ifndef BOOST_BASE_FROM_MEMBER_MAX_ARITY -#define BOOST_BASE_FROM_MEMBER_MAX_ARITY 10 -#endif - - -// An iteration of a constructor template for base_from_member -------------// - -// A macro that should expand to: -// template < typename T1, ..., typename Tn > -// base_from_member( T1 x1, ..., Tn xn ) -// : member( x1, ..., xn ) -// {} -// This macro should only persist within this file. - -#define BOOST_PRIVATE_CTR_DEF( z, n, data ) \ - template < BOOST_PP_ENUM_PARAMS(n, typename T) > \ - base_from_member( BOOST_PP_ENUM_BINARY_PARAMS(n, T, x) ) \ - : member( BOOST_PP_ENUM_PARAMS(n, x) ) \ - {} \ - /**/ - - -namespace boost -{ - -namespace detail -{ - -// Type-unmarking class template -------------------------------------------// - -// Type-trait to get the raw type, i.e. the type without top-level reference nor -// cv-qualification, from a type expression. Mainly for function arguments, any -// reference part is stripped first. - -// Contributed by Daryle Walker - -template < typename T > -struct remove_cv_ref -{ - typedef typename ::boost::remove_cv::type>::type type; - -}; // boost::detail::remove_cv_ref - -// Unmarked-type comparison class template ---------------------------------// - -// Type-trait to check if two type expressions have the same raw type. - -// Contributed by Daryle Walker, based on a work-around by Luc Danton - -template < typename T, typename U > -struct is_related - : public ::boost::is_same< - typename ::boost::detail::remove_cv_ref::type, - typename ::boost::detail::remove_cv_ref::type > -{}; - -// Enable-if-on-unidentical-unmarked-type class template -------------------// - -// Enable-if on the first two type expressions NOT having the same raw type. - -// Contributed by Daryle Walker, based on a work-around by Luc Danton - -#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES -template -struct enable_if_unrelated - : public ::boost::enable_if_c -{}; - -template -struct enable_if_unrelated - : public ::boost::disable_if< ::boost::detail::is_related > -{}; -#endif - -} // namespace boost::detail - - -// Base-from-member class template -----------------------------------------// - -// Helper to initialize a base object so a derived class can use this -// object in the initialization of another base class. Used by -// Dietmar Kuehl from ideas by Ron Klatcho to solve the problem of a -// base class needing to be initialized by a member. - -// Contributed by Daryle Walker - -template < typename MemberType, int UniqueID = 0 > -class base_from_member -{ -protected: - MemberType member; - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && \ - !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && \ - !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && \ - !(defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4)) - template ::type> - explicit BOOST_CONSTEXPR base_from_member( T&& ...x ) - BOOST_NOEXCEPT_IF( BOOST_NOEXCEPT_EXPR(::new ((void*) 0) MemberType( - static_cast(x)... )) ) // no std::is_nothrow_constructible... - : member( static_cast(x)... ) // ...nor std::forward needed - {} -#else - base_from_member() - : member() - {} - - template < typename T0 > explicit base_from_member( T0 x0 ) : member( x0 ) {} - BOOST_PP_REPEAT_FROM_TO( 2, BOOST_PP_INC(BOOST_BASE_FROM_MEMBER_MAX_ARITY), - BOOST_PRIVATE_CTR_DEF, _ ) -#endif - -}; // boost::base_from_member - -template < typename MemberType, int UniqueID > -class base_from_member -{ -protected: - MemberType& member; - - explicit BOOST_CONSTEXPR base_from_member( MemberType& x ) - BOOST_NOEXCEPT - : member( x ) - {} - -}; // boost::base_from_member - -} // namespace boost - - -// Undo any private macros -#undef BOOST_PRIVATE_CTR_DEF - - -#endif // BOOST_UTILITY_BASE_FROM_MEMBER_HPP diff --git a/lib/3rdParty/boost/boost/utility/binary.hpp b/lib/3rdParty/boost/boost/utility/binary.hpp deleted file mode 100644 index 8cef1468e..000000000 --- a/lib/3rdParty/boost/boost/utility/binary.hpp +++ /dev/null @@ -1,708 +0,0 @@ -/*============================================================================= - Copyright (c) 2005 Matthew Calabrese - - 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) -==============================================================================*/ - -#ifndef BOOST_UTILITY_BINARY_HPP -#define BOOST_UTILITY_BINARY_HPP - -/*============================================================================= - - Binary Literal Utility - ______________________ - - - The following code works by converting the input bit pattern into a - Boost.Preprocessor sequence, then converting groupings of 3 bits each into - the corresponding octal digit, and finally concatenating all of the digits - together along with a leading zero. This yields a standard octal literal - with the desired value as specified in bits. - -==============================================================================*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define BOOST_BINARY( bit_groupings ) \ - BOOST_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings ) - -#define BOOST_BINARY_U( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) - -#define BOOST_BINARY_L( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) - -#define BOOST_BINARY_UL( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) - -#define BOOST_BINARY_LU( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) - -#define BOOST_BINARY_LL( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) - -#define BOOST_BINARY_ULL( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) - -#define BOOST_BINARY_LLU( bit_groupings ) \ - BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) - -#define BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix ) \ - BOOST_SUFFIXED_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings, suffix ) - -#define BOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix ) \ - BOOST_PP_CAT( BOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix ) - -#define BOOST_BINARY_LITERAL_D( d, bit_groupings ) \ - BOOST_PP_SEQ_CAT \ - ( (0) BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings ) \ - ) - -#define BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings ) \ - BOOST_PP_SEQ_TRANSFORM \ - ( BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION \ - , BOOST_PP_NIL \ - , BOOST_PP_IDENTITY( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\ - ( BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE \ - ( \ - d \ - , BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings ) \ - ) \ - ) \ - ) - -#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence ) \ - BOOST_PP_CAT \ - ( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence \ - , END_BIT \ - ) - -#define BOOST_DETAIL_BITS_PER_OCTIT 3 - -#define BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \ - BOOST_PP_CAT \ - ( BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_ \ - , BOOST_PP_MOD_D( d \ - , BOOST_PP_SEQ_SIZE( incomplete_nibble_sequence ) \ - , BOOST_DETAIL_BITS_PER_OCTIT \ - ) \ - ) \ - incomplete_nibble_sequence - -#define BOOST_DETAIL_FIXED_COMPL( bit ) \ - BOOST_PP_CAT( BOOST_DETAIL_FIXED_COMPL_, bit ) - -#define BOOST_DETAIL_FIXED_COMPL_0 1 - -#define BOOST_DETAIL_FIXED_COMPL_1 0 - -#define BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings ) \ - BOOST_PP_EMPTY \ - BOOST_PP_CAT( BOOST_PP_WHILE_, d ) \ - ( BOOST_DETAIL_BINARY_LITERAL_PREDICATE \ - , BOOST_DETAIL_BINARY_LITERAL_OPERATION \ - , bit_groupings () \ - ) - -#define BOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state ) \ - BOOST_DETAIL_FIXED_COMPL( BOOST_DETAIL_IS_NULLARY_ARGS( state ) ) - -#define BOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state ) \ - BOOST_DETAIL_SPLIT_AND_SWAP \ - ( BOOST_PP_CAT( BOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) - -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple ) \ - BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple - -#define BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 ) \ - BOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 - -#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0) -#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0) -#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0 - -#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT - -#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit ) \ - ( ( bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 - -#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit ) \ - bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 - -#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit ) \ - bit ) ) BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 - -#define BOOST_DETAIL_SPLIT_AND_SWAP( params ) \ - BOOST_PP_IDENTITY( BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params ) - -#define BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param ) \ - second_param first_param - -#define BOOST_DETAIL_LEFT_OF_COMMA( params ) \ - BOOST_PP_IDENTITY( BOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) - -#define BOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param ) \ - first_param - -/* Begin derived concepts from Chaos by Paul Mensonides */ - -#define BOOST_DETAIL_IS_NULLARY_ARGS( param ) \ - BOOST_DETAIL_LEFT_OF_COMMA \ - ( BOOST_PP_CAT( BOOST_DETAIL_IS_NULLARY_ARGS_R_ \ - , BOOST_DETAIL_IS_NULLARY_ARGS_C param \ - ) \ - ) - -#define BOOST_DETAIL_IS_NULLARY_ARGS_C() \ - 1 - -#define BOOST_DETAIL_IS_NULLARY_ARGS_R_1 \ - 1, BOOST_PP_NIL - -#define BOOST_DETAIL_IS_NULLARY_ARGS_R_BOOST_DETAIL_IS_NULLARY_ARGS_C \ - 0, BOOST_PP_NIL - -/* End derived concepts from Chaos by Paul Mensonides */ - -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_000 0 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_001 1 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_010 2 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_011 3 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_100 4 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_101 5 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_110 6 -#define BOOST_DETAIL_TRIPLE_TO_OCTAL_111 7 - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1), - -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0), -#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1), - -#endif diff --git a/lib/3rdParty/boost/boost/utility/compare_pointees.hpp b/lib/3rdParty/boost/boost/utility/compare_pointees.hpp deleted file mode 100644 index 5ab21cdee..000000000 --- a/lib/3rdParty/boost/boost/utility/compare_pointees.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (C) 2003, Fernando Luis Cacciola Carballal. -// -// 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) -// -// See http://www.boost.org/libs/optional for documentation. -// -// You are welcome to contact the author at: -// fernando_cacciola@hotmail.com -// -#ifndef BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP -#define BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP - -#include - -namespace boost { - -// template bool equal_pointees(OP const& x, OP const& y); -// template struct equal_pointees_t; -// -// Being OP a model of OptionalPointee (either a pointer or an optional): -// -// If both x and y have valid pointees, returns the result of (*x == *y) -// If only one has a valid pointee, returns false. -// If none have valid pointees, returns true. -// No-throw -template -inline -bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y ) -{ - return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ; -} - -template -struct equal_pointees_t -{ - typedef bool result_type; - typedef OptionalPointee first_argument_type; - typedef OptionalPointee second_argument_type; - - bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const - { return equal_pointees(x,y) ; } -} ; - -// template bool less_pointees(OP const& x, OP const& y); -// template struct less_pointees_t; -// -// Being OP a model of OptionalPointee (either a pointer or an optional): -// -// If y has not a valid pointee, returns false. -// ElseIf x has not a valid pointee, returns true. -// ElseIf both x and y have valid pointees, returns the result of (*x < *y) -// No-throw -template -inline -bool less_pointees ( OptionalPointee const& x, OptionalPointee const& y ) -{ - return !y ? false : ( !x ? true : (*x) < (*y) ) ; -} - -template -struct less_pointees_t -{ - typedef bool result_type; - typedef OptionalPointee first_argument_type; - typedef OptionalPointee second_argument_type; - - bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const - { return less_pointees(x,y) ; } -} ; - -} // namespace boost - -#endif - diff --git a/lib/3rdParty/boost/boost/utility/declval.hpp b/lib/3rdParty/boost/boost/utility/declval.hpp deleted file mode 100644 index 229e9a34a..000000000 --- a/lib/3rdParty/boost/boost/utility/declval.hpp +++ /dev/null @@ -1,13 +0,0 @@ -// declval.hpp -------------------------------------------------------------// - -// Copyright 2010 Vicente J. Botet Escriba - -// Distributed under the Boost Software License, Version 1.0. -// See http://www.boost.org/LICENSE_1_0.txt - -#ifndef BOOST_UTILITY_DECLVAL_HPP -#define BOOST_UTILITY_DECLVAL_HPP - -#include - -#endif // BOOST_UTILITY_DECLVAL_HPP diff --git a/lib/3rdParty/boost/boost/utility/detail/in_place_factory_prefix.hpp b/lib/3rdParty/boost/boost/utility/detail/in_place_factory_prefix.hpp deleted file mode 100644 index afd76b5a8..000000000 --- a/lib/3rdParty/boost/boost/utility/detail/in_place_factory_prefix.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2003, Fernando Luis Cacciola Carballal. -// Copyright (C) 2007, Tobias Schwinger. -// -// 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) -// -// See http://www.boost.org/libs/optional for documentation. -// -// You are welcome to contact the author at: -// fernando_cacciola@hotmail.com -// -#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP -#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN() -#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n); - -#define BOOST_MAX_INPLACE_FACTORY_ARITY 10 - -#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP - -#endif - diff --git a/lib/3rdParty/boost/boost/utility/detail/in_place_factory_suffix.hpp b/lib/3rdParty/boost/boost/utility/detail/in_place_factory_suffix.hpp deleted file mode 100644 index 58f48c708..000000000 --- a/lib/3rdParty/boost/boost/utility/detail/in_place_factory_suffix.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (C) 2003, Fernando Luis Cacciola Carballal. -// Copyright (C) 2007, Tobias Schwinger. -// -// 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) -// -// See http://www.boost.org/libs/optional for documentation. -// -// You are welcome to contact the author at: -// fernando_cacciola@hotmail.com -// -#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP -#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP - -#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT -#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL -#undef BOOST_MAX_INPLACE_FACTORY_ARITY - -#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP - -#endif - diff --git a/lib/3rdParty/boost/boost/utility/detail/result_of_iterate.hpp b/lib/3rdParty/boost/boost/utility/detail/result_of_iterate.hpp deleted file mode 100644 index 5192172cf..000000000 --- a/lib/3rdParty/boost/boost/utility/detail/result_of_iterate.hpp +++ /dev/null @@ -1,221 +0,0 @@ -// Boost result_of library - -// Copyright Douglas Gregor 2004. 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) - -// Copyright Daniel Walker, Eric Niebler, Michel Morin 2008-2012. -// 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) - -// For more information, see http://www.boost.org/libs/utility -#if !defined(BOOST_PP_IS_ITERATING) -# error Boost result_of - do not include this file! -#endif - -// CWPro8 requires an argument in a function type specialization -#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3002)) && BOOST_PP_ITERATION() == 0 -# define BOOST_RESULT_OF_ARGS void -#else -# define BOOST_RESULT_OF_ARGS BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T) -#endif - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) -template -struct tr1_result_of - : mpl::if_< - mpl::or_< is_pointer, is_member_function_pointer > - , boost::detail::tr1_result_of_impl< - typename remove_cv::type, - typename remove_cv::type(BOOST_RESULT_OF_ARGS), - (boost::detail::has_result_type::value)> - , boost::detail::tr1_result_of_impl< - F, - F(BOOST_RESULT_OF_ARGS), - (boost::detail::has_result_type::value)> >::type { }; -#endif - -#ifdef BOOST_RESULT_OF_USE_DECLTYPE -template -struct result_of - : detail::cpp0x_result_of { }; -#endif // BOOST_RESULT_OF_USE_DECLTYPE - -#ifdef BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK -template -struct result_of - : mpl::if_, detail::has_result >, - tr1_result_of, - detail::cpp0x_result_of >::type { }; -#endif // BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK - -#if defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK) - -namespace detail { - -template -struct cpp0x_result_of - : mpl::if_< - is_member_function_pointer - , detail::tr1_result_of_impl< - typename remove_cv::type, - typename remove_cv::type(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false - > - , detail::cpp0x_result_of_impl< - F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)) - > - >::type -{}; - -#ifdef BOOST_NO_SFINAE_EXPR - -template -struct BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION()); - -template -struct BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION()) { - R operator()(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T)) const; - typedef result_of_private_type const &(*pfn_t)(...); - operator pfn_t() const volatile; -}; - -template -struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION()); - -template -struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION()) - : BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION()) -{}; - -template -struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION()) - : BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION()) -{}; - -template -struct BOOST_PP_CAT(result_of_select_call_wrapper_type_, BOOST_PP_ITERATION()) - : mpl::eval_if< - is_class::type>, - result_of_wrap_callable_class, - mpl::identity::type> > - > -{}; - -template -struct BOOST_PP_CAT(result_of_is_callable_, BOOST_PP_ITERATION()) { - typedef typename BOOST_PP_CAT(result_of_select_call_wrapper_type_, BOOST_PP_ITERATION())::type wrapper_t; - static const bool value = ( - sizeof(result_of_no_type) == sizeof(detail::result_of_is_private_type( - (boost::declval()(BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval() BOOST_PP_INTERCEPT)), result_of_weird_type()) - )) - ); - typedef mpl::bool_ type; -}; - -template -struct cpp0x_result_of_impl - : lazy_enable_if< - BOOST_PP_CAT(result_of_is_callable_, BOOST_PP_ITERATION()) - , cpp0x_result_of_impl - > -{}; - -template -struct cpp0x_result_of_impl -{ - typedef decltype( - boost::declval()( - BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval() BOOST_PP_INTERCEPT) - ) - ) type; -}; - -#else // BOOST_NO_SFINAE_EXPR - -template -struct cpp0x_result_of_impl()( - BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval() BOOST_PP_INTERCEPT) - ) - )>::type> { - typedef decltype( - boost::declval()( - BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval() BOOST_PP_INTERCEPT) - ) - ) type; -}; - -#endif // BOOST_NO_SFINAE_EXPR - -} // namespace detail - -#else // defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK) - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) -template -struct result_of - : tr1_result_of { }; -#endif - -#endif // defined(BOOST_RESULT_OF_USE_DECLTYPE) - -#undef BOOST_RESULT_OF_ARGS - -#if BOOST_PP_ITERATION() >= 1 - -namespace detail { - -template -struct tr1_result_of_impl -{ - typedef R type; -}; - -template -struct tr1_result_of_impl -{ - typedef R type; -}; - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) -template -struct tr1_result_of_impl -{ - typedef R type; -}; - -template -struct tr1_result_of_impl -{ - typedef R type; -}; - -template -struct tr1_result_of_impl -{ - typedef R type; -}; - -template -struct tr1_result_of_impl -{ - typedef R type; -}; -#endif - -} -#endif diff --git a/lib/3rdParty/boost/boost/utility/empty_deleter.hpp b/lib/3rdParty/boost/boost/utility/empty_deleter.hpp deleted file mode 100644 index 91bc47b81..000000000 --- a/lib/3rdParty/boost/boost/utility/empty_deleter.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright Andrey Semashev 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) - */ - -/*! - * \file empty_deleter.hpp - * \author Andrey Semashev - * \date 22.04.2007 - * - * This header contains an \c empty_deleter implementation. This is an empty - * function object that receives a pointer and does nothing with it. - * Such empty deletion strategy may be convenient, for example, when - * constructing shared_ptrs that point to some object that should not be - * deleted (i.e. a variable on the stack or some global singleton, like std::cout). - */ - -#ifndef BOOST_UTILITY_EMPTY_DELETER_HPP -#define BOOST_UTILITY_EMPTY_DELETER_HPP - -#include -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if defined(__GNUC__) -#pragma message "This header is deprecated, use boost/core/null_deleter.hpp instead." -#elif defined(_MSC_VER) -#pragma message("This header is deprecated, use boost/core/null_deleter.hpp instead.") -#endif - -namespace boost { - -//! A deprecated name for \c null_deleter -typedef null_deleter empty_deleter; - -} // namespace boost - -#endif // BOOST_UTILITY_EMPTY_DELETER_HPP diff --git a/lib/3rdParty/boost/boost/utility/enable_if.hpp b/lib/3rdParty/boost/boost/utility/enable_if.hpp deleted file mode 100644 index 803bfca5e..000000000 --- a/lib/3rdParty/boost/boost/utility/enable_if.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_UTILITY_ENABLE_IF_HPP -#define BOOST_UTILITY_ENABLE_IF_HPP - -// The header file at this path is deprecated; -// use boost/core/enable_if.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/utility/explicit_operator_bool.hpp b/lib/3rdParty/boost/boost/utility/explicit_operator_bool.hpp deleted file mode 100644 index 9b625cd68..000000000 --- a/lib/3rdParty/boost/boost/utility/explicit_operator_bool.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_UTILITY_EXPLICIT_OPERATOR_BOOL_HPP -#define BOOST_UTILITY_EXPLICIT_OPERATOR_BOOL_HPP - -// The header file at this path is deprecated; -// use boost/core/explicit_operator_bool.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/utility/identity_type.hpp b/lib/3rdParty/boost/boost/utility/identity_type.hpp deleted file mode 100644 index 4a1f6c4de..000000000 --- a/lib/3rdParty/boost/boost/utility/identity_type.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright (C) 2009-2012 Lorenzo Caminiti -// Distributed under the Boost Software License, Version 1.0 -// (see accompanying file LICENSE_1_0.txt or a copy at -// http://www.boost.org/LICENSE_1_0.txt) -// Home at http://www.boost.org/libs/utility/identity_type - -/** @file -Wrap type expressions with round parenthesis so they can be passed to macros -even if they contain commas. -*/ - -#ifndef BOOST_IDENTITY_TYPE_HPP_ -#define BOOST_IDENTITY_TYPE_HPP_ - -#include - -/** -@brief This macro allows to wrap the specified type expression within extra -round parenthesis so the type can be passed as a single macro parameter even if -it contains commas (not already wrapped within round parenthesis). - -@Params -@Param{parenthesized_type, -The type expression to be passed as macro parameter wrapped by a single set -of round parenthesis (...). -This type expression can contain an arbitrary number of commas. -} -@EndParams - -This macro works on any C++03 compiler (it does not use variadic macros). - -This macro must be prefixed by typename when used within templates. -Note that the compiler will not be able to automatically determine function -template parameters when they are wrapped with this macro (these parameters -need to be explicitly specified when calling the function template). - -On some compilers (like GCC), using this macro on abstract types requires to -add and remove a reference to the specified type. -*/ -#define BOOST_IDENTITY_TYPE(parenthesized_type) \ - /* must NOT prefix this with `::` to work with parenthesized syntax */ \ - boost::function_traits< void parenthesized_type >::arg1_type - -#endif // #include guard - diff --git a/lib/3rdParty/boost/boost/utility/in_place_factory.hpp b/lib/3rdParty/boost/boost/utility/in_place_factory.hpp deleted file mode 100644 index 1a62ace10..000000000 --- a/lib/3rdParty/boost/boost/utility/in_place_factory.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (C) 2003, Fernando Luis Cacciola Carballal. -// Copyright (C) 2007, Tobias Schwinger. -// -// 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) -// -// See http://www.boost.org/libs/optional for documentation. -// -// You are welcome to contact the author at: -// fernando_cacciola@hotmail.com -// -#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP -#ifndef BOOST_PP_IS_ITERATING - -#include - -namespace boost { - -class in_place_factory_base {} ; - -#define BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY) -#define BOOST_PP_FILENAME_1 -#include BOOST_PP_ITERATE() - -} // namespace boost - -#include - -#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP -#else -#define N BOOST_PP_ITERATION() - -#if N -template< BOOST_PP_ENUM_PARAMS(N, class A) > -#endif -class BOOST_PP_CAT(in_place_factory,N) - : - public in_place_factory_base -{ -public: - - explicit BOOST_PP_CAT(in_place_factory,N) - ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) ) -#if N > 0 - : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _) -#endif - {} - - template - void* apply(void* address) const - { - return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) ); - } - - template - void* apply(void* address, std::size_t n) const - { - for(char* next = address = this->BOOST_NESTED_TEMPLATE apply(address); - !! --n;) - this->BOOST_NESTED_TEMPLATE apply(next = next+sizeof(T)); - return address; - } - - BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _) -}; - -#if N > 0 -template< BOOST_PP_ENUM_PARAMS(N, class A) > -inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) > -in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) ) -{ - return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) > - ( BOOST_PP_ENUM_PARAMS(N, a) ); -} -#else -inline in_place_factory0 in_place() -{ - return in_place_factory0(); -} -#endif - -#undef N -#endif -#endif - diff --git a/lib/3rdParty/boost/boost/utility/result_of.hpp b/lib/3rdParty/boost/boost/utility/result_of.hpp deleted file mode 100644 index 206ae3088..000000000 --- a/lib/3rdParty/boost/boost/utility/result_of.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// Boost result_of library - -// Copyright Douglas Gregor 2004. 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) - -// For more information, see http://www.boost.org/libs/utility -#ifndef BOOST_RESULT_OF_HPP -#define BOOST_RESULT_OF_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef BOOST_RESULT_OF_NUM_ARGS -# define BOOST_RESULT_OF_NUM_ARGS 16 -#endif - -// Use the decltype-based version of result_of by default if the compiler -// supports N3276 . -// The user can force the choice by defining BOOST_RESULT_OF_USE_DECLTYPE, -// BOOST_RESULT_OF_USE_TR1, or BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK but not more than one! -#if (defined(BOOST_RESULT_OF_USE_DECLTYPE) && defined(BOOST_RESULT_OF_USE_TR1)) || \ - (defined(BOOST_RESULT_OF_USE_DECLTYPE) && defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK)) || \ - (defined(BOOST_RESULT_OF_USE_TR1) && defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK)) -# error More than one of BOOST_RESULT_OF_USE_DECLTYPE, BOOST_RESULT_OF_USE_TR1 and \ - BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK cannot be defined at the same time. -#endif - -#if defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK) && defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) -# error Cannot fallback to decltype if BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE is not defined. -#endif - -#ifndef BOOST_RESULT_OF_USE_TR1 -# ifndef BOOST_RESULT_OF_USE_DECLTYPE -# ifndef BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK -# ifndef BOOST_NO_CXX11_DECLTYPE_N3276 // this implies !defined(BOOST_NO_CXX11_DECLTYPE) -# define BOOST_RESULT_OF_USE_DECLTYPE -# else -# define BOOST_RESULT_OF_USE_TR1 -# endif -# endif -# endif -#endif - -namespace boost { - -template struct result_of; -template struct tr1_result_of; // a TR1-style implementation of result_of - -#if !defined(BOOST_NO_SFINAE) -namespace detail { - -BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type) - -// Work around a nvcc bug by only defining has_result when it's needed. -#ifdef BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK -BOOST_MPL_HAS_XXX_TEMPLATE_DEF(result) -#endif - -template struct tr1_result_of_impl; - -template struct cpp0x_result_of; - -#ifdef BOOST_NO_SFINAE_EXPR - -// There doesn't seem to be any other way to turn this off such that the presence of -// the user-defined operator,() below doesn't cause spurious warning all over the place, -// so unconditionally turn it off. -#if BOOST_MSVC -# pragma warning(disable: 4913) // user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used -#endif - -struct result_of_private_type {}; - -struct result_of_weird_type { - friend result_of_private_type operator,(result_of_private_type, result_of_weird_type); -}; - -typedef char result_of_yes_type; // sizeof(result_of_yes_type) == 1 -typedef char (&result_of_no_type)[2]; // sizeof(result_of_no_type) == 2 - -template -result_of_no_type result_of_is_private_type(T const &); -result_of_yes_type result_of_is_private_type(result_of_private_type); - -template -struct result_of_callable_class : C { - result_of_callable_class(); - typedef result_of_private_type const &(*pfn_t)(...); - operator pfn_t() const volatile; -}; - -template -struct result_of_wrap_callable_class { - typedef result_of_callable_class type; -}; - -template -struct result_of_wrap_callable_class { - typedef result_of_callable_class const type; -}; - -template -struct result_of_wrap_callable_class { - typedef result_of_callable_class volatile type; -}; - -template -struct result_of_wrap_callable_class { - typedef result_of_callable_class const volatile type; -}; - -template -struct result_of_wrap_callable_class { - typedef typename result_of_wrap_callable_class::type &type; -}; - -template struct cpp0x_result_of_impl; - -#else // BOOST_NO_SFINAE_EXPR - -template -struct result_of_always_void -{ - typedef void type; -}; - -template struct cpp0x_result_of_impl {}; - -#endif // BOOST_NO_SFINAE_EXPR - -template -struct result_of_void_impl -{ - typedef void type; -}; - -template -struct result_of_void_impl -{ - typedef R type; -}; - -template -struct result_of_void_impl -{ - typedef R type; -}; - -// Determine the return type of a function pointer or pointer to member. -template -struct result_of_pointer - : tr1_result_of_impl::type, FArgs, false> { }; - -template -struct tr1_result_of_impl -{ - typedef typename F::result_type type; -}; - -template -struct is_function_with_no_args : mpl::false_ {}; - -template -struct is_function_with_no_args : mpl::true_ {}; - -template -struct result_of_nested_result : F::template result -{}; - -template -struct tr1_result_of_impl - : mpl::if_, - result_of_void_impl, - result_of_nested_result >::type -{}; - -} // end namespace detail - -#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_RESULT_OF_NUM_ARGS,)) -#include BOOST_PP_ITERATE() - -#else -# define BOOST_NO_RESULT_OF 1 -#endif - -} - -#endif // BOOST_RESULT_OF_HPP diff --git a/lib/3rdParty/boost/boost/utility/string_ref.hpp b/lib/3rdParty/boost/boost/utility/string_ref.hpp deleted file mode 100644 index 5acf346fb..000000000 --- a/lib/3rdParty/boost/boost/utility/string_ref.hpp +++ /dev/null @@ -1,548 +0,0 @@ -/* - Copyright (c) Marshall Clow 2012-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) - - For more information, see http://www.boost.org - - Based on the StringRef implementation in LLVM (http://llvm.org) and - N3422 by Jeffrey Yasskin - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3442.html - -*/ - -#ifndef BOOST_STRING_REF_HPP -#define BOOST_STRING_REF_HPP - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || (defined(BOOST_GCC) && ((BOOST_GCC+0) / 100) <= 406) -// GCC 4.6 cannot handle a defaulted function with noexcept specifier -#define BOOST_STRING_REF_NO_CXX11_DEFAULTED_NOEXCEPT_FUNCTIONS -#endif - -namespace boost { - - namespace detail { - // A helper functor because sometimes we don't have lambdas - template - class string_ref_traits_eq { - public: - string_ref_traits_eq ( charT ch ) : ch_(ch) {} - bool operator () ( charT val ) const { return traits::eq ( ch_, val ); } - charT ch_; - }; - } - - template - class basic_string_ref { - public: - // types - typedef charT value_type; - typedef const charT* pointer; - typedef const charT& reference; - typedef const charT& const_reference; - typedef pointer const_iterator; // impl-defined - typedef const_iterator iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef const_reverse_iterator reverse_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - static BOOST_CONSTEXPR_OR_CONST size_type npos = size_type(-1); - - // construct/copy - BOOST_CONSTEXPR basic_string_ref () BOOST_NOEXCEPT - : ptr_(NULL), len_(0) {} - - // by defaulting these functions, basic_string_ref becomes - // trivially copy/move constructible. - BOOST_CONSTEXPR basic_string_ref (const basic_string_ref &rhs) BOOST_NOEXCEPT -#ifndef BOOST_STRING_REF_NO_CXX11_DEFAULTED_NOEXCEPT_FUNCTIONS - = default; -#else - : ptr_(rhs.ptr_), len_(rhs.len_) {} -#endif - - basic_string_ref& operator=(const basic_string_ref &rhs) BOOST_NOEXCEPT -#ifndef BOOST_STRING_REF_NO_CXX11_DEFAULTED_NOEXCEPT_FUNCTIONS - = default; -#else - { - ptr_ = rhs.ptr_; - len_ = rhs.len_; - return *this; - } -#endif - - basic_string_ref(const charT* str) BOOST_NOEXCEPT - : ptr_(str), len_(traits::length(str)) {} - - template - basic_string_ref(const std::basic_string& str) - : ptr_(str.data()), len_(str.length()) {} - - BOOST_CONSTEXPR basic_string_ref(const charT* str, size_type len) BOOST_NOEXCEPT - : ptr_(str), len_(len) {} - -#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS - template - explicit operator std::basic_string() const { - return std::basic_string ( begin(), end()); - } -#endif - - std::basic_string to_string () const { - return std::basic_string ( begin(), end()); - } - - // iterators - BOOST_CONSTEXPR const_iterator begin() const { return ptr_; } - BOOST_CONSTEXPR const_iterator cbegin() const { return ptr_; } - BOOST_CONSTEXPR const_iterator end() const { return ptr_ + len_; } - BOOST_CONSTEXPR const_iterator cend() const { return ptr_ + len_; } - const_reverse_iterator rbegin() const { return const_reverse_iterator (end()); } - const_reverse_iterator crbegin() const { return const_reverse_iterator (end()); } - const_reverse_iterator rend() const { return const_reverse_iterator (begin()); } - const_reverse_iterator crend() const { return const_reverse_iterator (begin()); } - - // capacity - BOOST_CONSTEXPR size_type size() const { return len_; } - BOOST_CONSTEXPR size_type length() const { return len_; } - BOOST_CONSTEXPR size_type max_size() const { return len_; } - BOOST_CONSTEXPR bool empty() const { return len_ == 0; } - - // element access - BOOST_CONSTEXPR const charT& operator[](size_type pos) const { return ptr_[pos]; } - - const charT& at(size_t pos) const { - if ( pos >= len_ ) - BOOST_THROW_EXCEPTION( std::out_of_range ( "boost::string_ref::at" ) ); - return ptr_[pos]; - } - - BOOST_CONSTEXPR const charT& front() const { return ptr_[0]; } - BOOST_CONSTEXPR const charT& back() const { return ptr_[len_-1]; } - BOOST_CONSTEXPR const charT* data() const { return ptr_; } - - // modifiers - void clear() { len_ = 0; } - void remove_prefix(size_type n) { - if ( n > len_ ) - n = len_; - ptr_ += n; - len_ -= n; - } - - void remove_suffix(size_type n) { - if ( n > len_ ) - n = len_; - len_ -= n; - } - - - // basic_string_ref string operations - basic_string_ref substr(size_type pos, size_type n=npos) const { - if ( pos > size()) - BOOST_THROW_EXCEPTION( std::out_of_range ( "string_ref::substr" ) ); - if ( n == npos || pos + n > size()) - n = size () - pos; - return basic_string_ref ( data() + pos, n ); - } - - int compare(basic_string_ref x) const { - const int cmp = traits::compare ( ptr_, x.ptr_, (std::min)(len_, x.len_)); - return cmp != 0 ? cmp : ( len_ == x.len_ ? 0 : len_ < x.len_ ? -1 : 1 ); - } - - bool starts_with(charT c) const { return !empty() && traits::eq ( c, front()); } - bool starts_with(basic_string_ref x) const { - return len_ >= x.len_ && traits::compare ( ptr_, x.ptr_, x.len_ ) == 0; - } - - bool ends_with(charT c) const { return !empty() && traits::eq ( c, back()); } - bool ends_with(basic_string_ref x) const { - return len_ >= x.len_ && traits::compare ( ptr_ + len_ - x.len_, x.ptr_, x.len_ ) == 0; - } - - size_type find(basic_string_ref s) const { - const_iterator iter = std::search ( this->cbegin (), this->cend (), - s.cbegin (), s.cend (), traits::eq ); - return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter ); - } - - size_type find(charT c) const { - const_iterator iter = std::find_if ( this->cbegin (), this->cend (), - detail::string_ref_traits_eq ( c )); - return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter ); - } - - size_type rfind(basic_string_ref s) const { - const_reverse_iterator iter = std::search ( this->crbegin (), this->crend (), - s.crbegin (), s.crend (), traits::eq ); - return iter == this->crend () ? npos : (std::distance(iter, this->crend()) - s.size()); - } - - size_type rfind(charT c) const { - const_reverse_iterator iter = std::find_if ( this->crbegin (), this->crend (), - detail::string_ref_traits_eq ( c )); - return iter == this->crend () ? npos : (this->size() - 1 - std::distance(this->crbegin(), iter)); - } - - size_type find_first_of(charT c) const { return find (c); } - size_type find_last_of (charT c) const { return rfind (c); } - - size_type find_first_of(basic_string_ref s) const { - const_iterator iter = std::find_first_of - ( this->cbegin (), this->cend (), s.cbegin (), s.cend (), traits::eq ); - return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter ); - } - - size_type find_last_of(basic_string_ref s) const { - const_reverse_iterator iter = std::find_first_of - ( this->crbegin (), this->crend (), s.cbegin (), s.cend (), traits::eq ); - return iter == this->crend () ? npos : (this->size() - 1 - std::distance(this->crbegin(), iter)); - } - - size_type find_first_not_of(basic_string_ref s) const { - const_iterator iter = find_not_of ( this->cbegin (), this->cend (), s ); - return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter ); - } - - size_type find_first_not_of(charT c) const { - for ( const_iterator iter = this->cbegin (); iter != this->cend (); ++iter ) - if ( !traits::eq ( c, *iter )) - return std::distance ( this->cbegin (), iter ); - return npos; - } - - size_type find_last_not_of(basic_string_ref s) const { - const_reverse_iterator iter = find_not_of ( this->crbegin (), this->crend (), s ); - return iter == this->crend () ? npos : (this->size() - 1 - std::distance(this->crbegin(), iter)); - } - - size_type find_last_not_of(charT c) const { - for ( const_reverse_iterator iter = this->crbegin (); iter != this->crend (); ++iter ) - if ( !traits::eq ( c, *iter )) - return this->size() - 1 - std::distance(this->crbegin(), iter); - return npos; - } - - private: - - template - Iterator find_not_of ( Iterator first, Iterator last, basic_string_ref s ) const { - for ( ; first != last ; ++first ) - if ( 0 == traits::find ( s.ptr_, s.len_, *first )) - return first; - return last; - } - - - - const charT *ptr_; - std::size_t len_; - }; - - -// Comparison operators -// Equality - template - inline bool operator==(basic_string_ref x, basic_string_ref y) { - if ( x.size () != y.size ()) return false; - return x.compare(y) == 0; - } - - template - inline bool operator==(basic_string_ref x, const std::basic_string & y) { - return x == basic_string_ref(y); - } - - template - inline bool operator==(const std::basic_string & x, basic_string_ref y) { - return basic_string_ref(x) == y; - } - - template - inline bool operator==(basic_string_ref x, const charT * y) { - return x == basic_string_ref(y); - } - - template - inline bool operator==(const charT * x, basic_string_ref y) { - return basic_string_ref(x) == y; - } - -// Inequality - template - inline bool operator!=(basic_string_ref x, basic_string_ref y) { - if ( x.size () != y.size ()) return true; - return x.compare(y) != 0; - } - - template - inline bool operator!=(basic_string_ref x, const std::basic_string & y) { - return x != basic_string_ref(y); - } - - template - inline bool operator!=(const std::basic_string & x, basic_string_ref y) { - return basic_string_ref(x) != y; - } - - template - inline bool operator!=(basic_string_ref x, const charT * y) { - return x != basic_string_ref(y); - } - - template - inline bool operator!=(const charT * x, basic_string_ref y) { - return basic_string_ref(x) != y; - } - -// Less than - template - inline bool operator<(basic_string_ref x, basic_string_ref y) { - return x.compare(y) < 0; - } - - template - inline bool operator<(basic_string_ref x, const std::basic_string & y) { - return x < basic_string_ref(y); - } - - template - inline bool operator<(const std::basic_string & x, basic_string_ref y) { - return basic_string_ref(x) < y; - } - - template - inline bool operator<(basic_string_ref x, const charT * y) { - return x < basic_string_ref(y); - } - - template - inline bool operator<(const charT * x, basic_string_ref y) { - return basic_string_ref(x) < y; - } - -// Greater than - template - inline bool operator>(basic_string_ref x, basic_string_ref y) { - return x.compare(y) > 0; - } - - template - inline bool operator>(basic_string_ref x, const std::basic_string & y) { - return x > basic_string_ref(y); - } - - template - inline bool operator>(const std::basic_string & x, basic_string_ref y) { - return basic_string_ref(x) > y; - } - - template - inline bool operator>(basic_string_ref x, const charT * y) { - return x > basic_string_ref(y); - } - - template - inline bool operator>(const charT * x, basic_string_ref y) { - return basic_string_ref(x) > y; - } - -// Less than or equal to - template - inline bool operator<=(basic_string_ref x, basic_string_ref y) { - return x.compare(y) <= 0; - } - - template - inline bool operator<=(basic_string_ref x, const std::basic_string & y) { - return x <= basic_string_ref(y); - } - - template - inline bool operator<=(const std::basic_string & x, basic_string_ref y) { - return basic_string_ref(x) <= y; - } - - template - inline bool operator<=(basic_string_ref x, const charT * y) { - return x <= basic_string_ref(y); - } - - template - inline bool operator<=(const charT * x, basic_string_ref y) { - return basic_string_ref(x) <= y; - } - -// Greater than or equal to - template - inline bool operator>=(basic_string_ref x, basic_string_ref y) { - return x.compare(y) >= 0; - } - - template - inline bool operator>=(basic_string_ref x, const std::basic_string & y) { - return x >= basic_string_ref(y); - } - - template - inline bool operator>=(const std::basic_string & x, basic_string_ref y) { - return basic_string_ref(x) >= y; - } - - template - inline bool operator>=(basic_string_ref x, const charT * y) { - return x >= basic_string_ref(y); - } - - template - inline bool operator>=(const charT * x, basic_string_ref y) { - return basic_string_ref(x) >= y; - } - - namespace detail { - - template - inline void sr_insert_fill_chars(std::basic_ostream& os, std::size_t n) { - enum { chunk_size = 8 }; - charT fill_chars[chunk_size]; - std::fill_n(fill_chars, static_cast< std::size_t >(chunk_size), os.fill()); - for (; n >= chunk_size && os.good(); n -= chunk_size) - os.write(fill_chars, static_cast< std::size_t >(chunk_size)); - if (n > 0 && os.good()) - os.write(fill_chars, n); - } - - template - void sr_insert_aligned(std::basic_ostream& os, const basic_string_ref& str) { - const std::size_t size = str.size(); - const std::size_t alignment_size = static_cast< std::size_t >(os.width()) - size; - const bool align_left = (os.flags() & std::basic_ostream::adjustfield) == std::basic_ostream::left; - if (!align_left) { - detail::sr_insert_fill_chars(os, alignment_size); - if (os.good()) - os.write(str.data(), size); - } - else { - os.write(str.data(), size); - if (os.good()) - detail::sr_insert_fill_chars(os, alignment_size); - } - } - - } // namespace detail - - // Inserter - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const basic_string_ref& str) { - if (os.good()) { - const std::size_t size = str.size(); - const std::size_t w = static_cast< std::size_t >(os.width()); - if (w <= size) - os.write(str.data(), size); - else - detail::sr_insert_aligned(os, str); - os.width(0); - } - return os; - } - -#if 0 - // numeric conversions - // - // These are short-term implementations. - // In a production environment, I would rather avoid the copying. - // - inline int stoi (string_ref str, size_t* idx=0, int base=10) { - return std::stoi ( std::string(str), idx, base ); - } - - inline long stol (string_ref str, size_t* idx=0, int base=10) { - return std::stol ( std::string(str), idx, base ); - } - - inline unsigned long stoul (string_ref str, size_t* idx=0, int base=10) { - return std::stoul ( std::string(str), idx, base ); - } - - inline long long stoll (string_ref str, size_t* idx=0, int base=10) { - return std::stoll ( std::string(str), idx, base ); - } - - inline unsigned long long stoull (string_ref str, size_t* idx=0, int base=10) { - return std::stoull ( std::string(str), idx, base ); - } - - inline float stof (string_ref str, size_t* idx=0) { - return std::stof ( std::string(str), idx ); - } - - inline double stod (string_ref str, size_t* idx=0) { - return std::stod ( std::string(str), idx ); - } - - inline long double stold (string_ref str, size_t* idx=0) { - return std::stold ( std::string(str), idx ); - } - - inline int stoi (wstring_ref str, size_t* idx=0, int base=10) { - return std::stoi ( std::wstring(str), idx, base ); - } - - inline long stol (wstring_ref str, size_t* idx=0, int base=10) { - return std::stol ( std::wstring(str), idx, base ); - } - - inline unsigned long stoul (wstring_ref str, size_t* idx=0, int base=10) { - return std::stoul ( std::wstring(str), idx, base ); - } - - inline long long stoll (wstring_ref str, size_t* idx=0, int base=10) { - return std::stoll ( std::wstring(str), idx, base ); - } - - inline unsigned long long stoull (wstring_ref str, size_t* idx=0, int base=10) { - return std::stoull ( std::wstring(str), idx, base ); - } - - inline float stof (wstring_ref str, size_t* idx=0) { - return std::stof ( std::wstring(str), idx ); - } - - inline double stod (wstring_ref str, size_t* idx=0) { - return std::stod ( std::wstring(str), idx ); - } - - inline long double stold (wstring_ref str, size_t* idx=0) { - return std::stold ( std::wstring(str), idx ); - } -#endif - -} - -#if 0 -namespace std { - // Hashing - template<> struct hash; - template<> struct hash; - template<> struct hash; - template<> struct hash; -} -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/utility/string_ref_fwd.hpp b/lib/3rdParty/boost/boost/utility/string_ref_fwd.hpp deleted file mode 100644 index f58b98c1f..000000000 --- a/lib/3rdParty/boost/boost/utility/string_ref_fwd.hpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (c) Marshall Clow 2012-2012. - - 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) - - For more information, see http://www.boost.org - - Based on the StringRef implementation in LLVM (http://llvm.org) and - N3422 by Jeffrey Yasskin - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3442.html - -*/ - -#ifndef BOOST_STRING_REF_FWD_HPP -#define BOOST_STRING_REF_FWD_HPP - -#include -#include - -namespace boost { - - template > class basic_string_ref; - typedef basic_string_ref > string_ref; - typedef basic_string_ref > wstring_ref; - -#ifndef BOOST_NO_CXX11_CHAR16_T - typedef basic_string_ref > u16string_ref; -#endif - -#ifndef BOOST_NO_CXX11_CHAR32_T - typedef basic_string_ref > u32string_ref; -#endif - -} - -#endif diff --git a/lib/3rdParty/boost/boost/utility/string_view.hpp b/lib/3rdParty/boost/boost/utility/string_view.hpp deleted file mode 100644 index 167b30c16..000000000 --- a/lib/3rdParty/boost/boost/utility/string_view.hpp +++ /dev/null @@ -1,691 +0,0 @@ -/* - Copyright (c) Marshall Clow 2012-2015. - Copyright (c) Beman Dawes 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) - - For more information, see http://www.boost.org - - Based on the StringRef implementation in LLVM (http://llvm.org) and - N3422 by Jeffrey Yasskin - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3442.html - Updated July 2015 to reflect the Library Fundamentals TS - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4480.html -*/ - -#ifndef BOOST_STRING_VIEW_HPP -#define BOOST_STRING_VIEW_HPP - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || (defined(BOOST_GCC) && ((BOOST_GCC+0) / 100) <= 406) -// GCC 4.6 cannot handle a defaulted function with noexcept specifier -#define BOOST_STRING_VIEW_NO_CXX11_DEFAULTED_NOEXCEPT_FUNCTIONS -#endif - -namespace boost { - - namespace detail { - // A helper functor because sometimes we don't have lambdas - template - class string_view_traits_eq { - public: - string_view_traits_eq ( charT ch ) : ch_(ch) {} - bool operator()( charT val ) const { return traits::eq (ch_, val); } - charT ch_; - }; - } - - template // traits defaulted in string_view_fwd.hpp - class basic_string_view { - public: - // types - typedef traits traits_type; - typedef charT value_type; - typedef charT* pointer; - typedef const charT* const_pointer; - typedef charT& reference; - typedef const charT& const_reference; - typedef const_pointer const_iterator; // impl-defined - typedef const_iterator iterator; - typedef std::reverse_iterator const_reverse_iterator; - typedef const_reverse_iterator reverse_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - static BOOST_CONSTEXPR_OR_CONST size_type npos = size_type(-1); - - // construct/copy - BOOST_CONSTEXPR basic_string_view() BOOST_NOEXCEPT - : ptr_(NULL), len_(0) {} - - // by defaulting these functions, basic_string_ref becomes - // trivially copy/move constructible. - BOOST_CONSTEXPR basic_string_view(const basic_string_view &rhs) BOOST_NOEXCEPT -#ifndef BOOST_STRING_VIEW_NO_CXX11_DEFAULTED_NOEXCEPT_FUNCTIONS - = default; -#else - : ptr_(rhs.ptr_), len_(rhs.len_) {} -#endif - - basic_string_view& operator=(const basic_string_view &rhs) BOOST_NOEXCEPT -#ifndef BOOST_STRING_VIEW_NO_CXX11_DEFAULTED_NOEXCEPT_FUNCTIONS - = default; -#else - { - ptr_ = rhs.ptr_; - len_ = rhs.len_; - return *this; - } -#endif - - template - basic_string_view(const std::basic_string& str) BOOST_NOEXCEPT - : ptr_(str.data()), len_(str.length()) {} - - BOOST_CONSTEXPR basic_string_view(const charT* str) - : ptr_(str), len_(traits::length(str)) {} - - BOOST_CONSTEXPR basic_string_view(const charT* str, size_type len) - : ptr_(str), len_(len) {} - - // iterators - BOOST_CONSTEXPR const_iterator begin() const BOOST_NOEXCEPT { return ptr_; } - BOOST_CONSTEXPR const_iterator cbegin() const BOOST_NOEXCEPT { return ptr_; } - BOOST_CONSTEXPR const_iterator end() const BOOST_NOEXCEPT { return ptr_ + len_; } - BOOST_CONSTEXPR const_iterator cend() const BOOST_NOEXCEPT { return ptr_ + len_; } - const_reverse_iterator rbegin() const BOOST_NOEXCEPT { return const_reverse_iterator(end()); } - const_reverse_iterator crbegin() const BOOST_NOEXCEPT { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const BOOST_NOEXCEPT { return const_reverse_iterator(begin()); } - const_reverse_iterator crend() const BOOST_NOEXCEPT { return const_reverse_iterator(begin()); } - - // capacity - BOOST_CONSTEXPR size_type size() const BOOST_NOEXCEPT { return len_; } - BOOST_CONSTEXPR size_type length() const BOOST_NOEXCEPT { return len_; } - BOOST_CONSTEXPR size_type max_size() const BOOST_NOEXCEPT { return len_; } - BOOST_CONSTEXPR bool empty() const BOOST_NOEXCEPT { return len_ == 0; } - - // element access - BOOST_CONSTEXPR const_reference operator[](size_type pos) const BOOST_NOEXCEPT { return ptr_[pos]; } - - BOOST_CONSTEXPR const_reference at(size_t pos) const { - return pos >= len_ ? BOOST_THROW_EXCEPTION(std::out_of_range("boost::string_view::at")) : ptr_[pos]; -// if ( pos >= len_ ) -// BOOST_THROW_EXCEPTION( std::out_of_range ( "boost::string_view::at" ) ); -// return ptr_[pos]; - } - - BOOST_CONSTEXPR const_reference front() const { return ptr_[0]; } - BOOST_CONSTEXPR const_reference back() const { return ptr_[len_-1]; } - BOOST_CONSTEXPR const_pointer data() const BOOST_NOEXCEPT { return ptr_; } - - // modifiers - void clear() BOOST_NOEXCEPT { len_ = 0; } // Boost extension - - BOOST_CXX14_CONSTEXPR void remove_prefix(size_type n) { - if ( n > len_ ) - n = len_; - ptr_ += n; - len_ -= n; - } - - BOOST_CXX14_CONSTEXPR void remove_suffix(size_type n) { - if ( n > len_ ) - n = len_; - len_ -= n; - } - - BOOST_CXX14_CONSTEXPR void swap(basic_string_view& s) BOOST_NOEXCEPT { - std::swap(ptr_, s.ptr_); - std::swap(len_, s.len_); - } - - // basic_string_view string operations -#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS - template - explicit operator std::basic_string() const { - return std::basic_string(begin(), end()); - } -#endif - -#ifndef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS - template > - std::basic_string to_string(const Allocator& a = Allocator()) const { - return std::basic_string(begin(), end(), a); - } -#else - std::basic_string to_string() const { - return std::basic_string(begin(), end()); - } - - template - std::basic_string to_string(const Allocator& a) const { - return std::basic_string(begin(), end(), a); - } -#endif - - size_type copy(charT* s, size_type n, size_type pos=0) const { - if (pos > size()) - BOOST_THROW_EXCEPTION(std::out_of_range("string_view::copy" )); - size_type rlen = (std::min)(n, len_ - pos); - // use std::copy(begin() + pos, begin() + pos + rlen, s) rather than - // std::copy_n(begin() + pos, rlen, s) to support pre-C++11 standard libraries - std::copy(begin() + pos, begin() + pos + rlen, s); - return rlen; - } - - BOOST_CXX14_CONSTEXPR basic_string_view substr(size_type pos, size_type n=npos) const { - if ( pos > size()) - BOOST_THROW_EXCEPTION( std::out_of_range ( "string_view::substr" ) ); - if (n == npos || pos + n > size()) - n = size () - pos; - return basic_string_view(data() + pos, n); - } - - BOOST_CXX14_CONSTEXPR int compare(basic_string_view x) const BOOST_NOEXCEPT { - const int cmp = traits::compare(ptr_, x.ptr_, (std::min)(len_, x.len_)); - return cmp != 0 ? cmp : (len_ == x.len_ ? 0 : len_ < x.len_ ? -1 : 1); - } - - BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1, basic_string_view x) - const BOOST_NOEXCEPT { - return substr(pos1, n1).compare(x); - } - - BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1, - basic_string_view x, size_type pos2, size_type n2) const { - return substr(pos1, n1).compare(x.substr(pos2, n2)); - } - - BOOST_CXX14_CONSTEXPR int compare(const charT* x) const { - return compare(basic_string_view(x)); - } - - BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1, const charT* x) const { - return substr(pos1, n1).compare(basic_string_view(x)); - } - - BOOST_CXX14_CONSTEXPR int compare(size_type pos1, size_type n1, - const charT* x, size_type n2) const { - return substr(pos1, n1).compare(basic_string_view(x, n2)); - } - - // Searches - BOOST_CONSTEXPR bool starts_with(charT c) const BOOST_NOEXCEPT { // Boost extension - return !empty() && traits::eq(c, front()); - } - - BOOST_CONSTEXPR bool starts_with(basic_string_view x) const BOOST_NOEXCEPT { // Boost extension - return len_ >= x.len_ && traits::compare(ptr_, x.ptr_, x.len_) == 0; - } - - BOOST_CONSTEXPR bool ends_with(charT c) const BOOST_NOEXCEPT { // Boost extension - return !empty() && traits::eq(c, back()); - } - - BOOST_CONSTEXPR bool ends_with(basic_string_view x) const BOOST_NOEXCEPT { // Boost extension - return len_ >= x.len_ && - traits::compare(ptr_ + len_ - x.len_, x.ptr_, x.len_) == 0; - } - - // find - BOOST_CXX14_CONSTEXPR size_type find(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT { - if (pos > size()) - return npos; - if (s.empty()) - return pos; - const_iterator iter = std::search(this->cbegin() + pos, this->cend(), - s.cbegin (), s.cend (), traits::eq); - return iter == this->cend () ? npos : std::distance(this->cbegin (), iter); - } - BOOST_CXX14_CONSTEXPR size_type find(charT c, size_type pos = 0) const BOOST_NOEXCEPT - { return find(basic_string_view(&c, 1), pos); } - BOOST_CXX14_CONSTEXPR size_type find(const charT* s, size_type pos, size_type n) const BOOST_NOEXCEPT - { return find(basic_string_view(s, n), pos); } - BOOST_CXX14_CONSTEXPR size_type find(const charT* s, size_type pos = 0) const BOOST_NOEXCEPT - { return find(basic_string_view(s), pos); } - - // rfind - BOOST_CXX14_CONSTEXPR size_type rfind(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT { - if (len_ < s.len_) - return npos; - if (pos > len_ - s.len_) - pos = len_ - s.len_; - if (s.len_ == 0u) // an empty string is always found - return pos; - for (const charT* cur = ptr_ + pos; ; --cur) { - if (traits::compare(cur, s.ptr_, s.len_) == 0) - return cur - ptr_; - if (cur == ptr_) - return npos; - }; - } - BOOST_CXX14_CONSTEXPR size_type rfind(charT c, size_type pos = npos) const BOOST_NOEXCEPT - { return rfind(basic_string_view(&c, 1), pos); } - BOOST_CXX14_CONSTEXPR size_type rfind(const charT* s, size_type pos, size_type n) const BOOST_NOEXCEPT - { return rfind(basic_string_view(s, n), pos); } - BOOST_CXX14_CONSTEXPR size_type rfind(const charT* s, size_type pos = npos) const BOOST_NOEXCEPT - { return rfind(basic_string_view(s), pos); } - - // find_first_of - BOOST_CXX14_CONSTEXPR size_type find_first_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT { - if (pos >= len_ || s.len_ == 0) - return npos; - const_iterator iter = std::find_first_of - (this->cbegin () + pos, this->cend (), s.cbegin (), s.cend (), traits::eq); - return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter ); - } - BOOST_CXX14_CONSTEXPR size_type find_first_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT - { return find_first_of(basic_string_view(&c, 1), pos); } - BOOST_CXX14_CONSTEXPR size_type find_first_of(const charT* s, size_type pos, size_type n) const BOOST_NOEXCEPT - { return find_first_of(basic_string_view(s, n), pos); } - BOOST_CXX14_CONSTEXPR size_type find_first_of(const charT* s, size_type pos = 0) const BOOST_NOEXCEPT - { return find_first_of(basic_string_view(s), pos); } - - // find_last_of - BOOST_CXX14_CONSTEXPR size_type find_last_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT { - if (s.len_ == 0u) - return npos; - if (pos >= len_) - pos = 0; - else - pos = len_ - (pos+1); - const_reverse_iterator iter = std::find_first_of - ( this->crbegin () + pos, this->crend (), s.cbegin (), s.cend (), traits::eq ); - return iter == this->crend () ? npos : reverse_distance ( this->crbegin (), iter); - } - BOOST_CXX14_CONSTEXPR size_type find_last_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT - { return find_last_of(basic_string_view(&c, 1), pos); } - BOOST_CXX14_CONSTEXPR size_type find_last_of(const charT* s, size_type pos, size_type n) const BOOST_NOEXCEPT - { return find_last_of(basic_string_view(s, n), pos); } - BOOST_CXX14_CONSTEXPR size_type find_last_of(const charT* s, size_type pos = npos) const BOOST_NOEXCEPT - { return find_last_of(basic_string_view(s), pos); } - - // find_first_not_of - BOOST_CXX14_CONSTEXPR size_type find_first_not_of(basic_string_view s, size_type pos = 0) const BOOST_NOEXCEPT { - if (pos >= len_) - return npos; - if (s.len_ == 0) - return pos; - const_iterator iter = find_not_of ( this->cbegin () + pos, this->cend (), s ); - return iter == this->cend () ? npos : std::distance ( this->cbegin (), iter ); - } - BOOST_CXX14_CONSTEXPR size_type find_first_not_of(charT c, size_type pos = 0) const BOOST_NOEXCEPT - { return find_first_not_of(basic_string_view(&c, 1), pos); } - BOOST_CXX14_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos, size_type n) const BOOST_NOEXCEPT - { return find_first_not_of(basic_string_view(s, n), pos); } - BOOST_CXX14_CONSTEXPR size_type find_first_not_of(const charT* s, size_type pos = 0) const BOOST_NOEXCEPT - { return find_first_not_of(basic_string_view(s), pos); } - - // find_last_not_of - BOOST_CXX14_CONSTEXPR size_type find_last_not_of(basic_string_view s, size_type pos = npos) const BOOST_NOEXCEPT { - if (pos >= len_) - pos = len_ - 1; - if (s.len_ == 0u) - return pos; - pos = len_ - (pos+1); - const_reverse_iterator iter = find_not_of ( this->crbegin () + pos, this->crend (), s ); - return iter == this->crend () ? npos : reverse_distance ( this->crbegin (), iter ); - } - BOOST_CXX14_CONSTEXPR size_type find_last_not_of(charT c, size_type pos = npos) const BOOST_NOEXCEPT - { return find_last_not_of(basic_string_view(&c, 1), pos); } - BOOST_CXX14_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos, size_type n) const BOOST_NOEXCEPT - { return find_last_not_of(basic_string_view(s, n), pos); } - BOOST_CXX14_CONSTEXPR size_type find_last_not_of(const charT* s, size_type pos = npos) const BOOST_NOEXCEPT - { return find_last_not_of(basic_string_view(s), pos); } - - private: - template - size_type reverse_distance(r_iter first, r_iter last) const BOOST_NOEXCEPT { - // Portability note here: std::distance is not NOEXCEPT, but calling it with a string_view::reverse_iterator will not throw. - return len_ - 1 - std::distance ( first, last ); - } - - template - Iterator find_not_of(Iterator first, Iterator last, basic_string_view s) const BOOST_NOEXCEPT { - for (; first != last ; ++first) - if ( 0 == traits::find(s.ptr_, s.len_, *first)) - return first; - return last; - } - - const charT *ptr_; - std::size_t len_; - }; - - -// Comparison operators -// Equality - template - inline bool operator==(basic_string_view x, - basic_string_view y) BOOST_NOEXCEPT { - if (x.size () != y.size ()) return false; - return x.compare(y) == 0; - } - -// Inequality - template - inline bool operator!=(basic_string_view x, - basic_string_view y) BOOST_NOEXCEPT { - if ( x.size () != y.size ()) return true; - return x.compare(y) != 0; - } - -// Less than - template - inline bool operator<(basic_string_view x, - basic_string_view y) BOOST_NOEXCEPT { - return x.compare(y) < 0; - } - -// Greater than - template - inline bool operator>(basic_string_view x, - basic_string_view y) BOOST_NOEXCEPT { - return x.compare(y) > 0; - } - -// Less than or equal to - template - inline bool operator<=(basic_string_view x, - basic_string_view y) BOOST_NOEXCEPT { - return x.compare(y) <= 0; - } - -// Greater than or equal to - template - inline bool operator>=(basic_string_view x, - basic_string_view y) BOOST_NOEXCEPT { - return x.compare(y) >= 0; - } - -// "sufficient additional overloads of comparison functions" - template - inline bool operator==(basic_string_view x, - const std::basic_string & y) BOOST_NOEXCEPT { - return x == basic_string_view(y); - } - - template - inline bool operator==(const std::basic_string & x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) == y; - } - - template - inline bool operator==(basic_string_view x, - const charT * y) BOOST_NOEXCEPT { - return x == basic_string_view(y); - } - - template - inline bool operator==(const charT * x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) == y; - } - - template - inline bool operator!=(basic_string_view x, - const std::basic_string & y) BOOST_NOEXCEPT { - return x != basic_string_view(y); - } - - template - inline bool operator!=(const std::basic_string & x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) != y; - } - - template - inline bool operator!=(basic_string_view x, - const charT * y) BOOST_NOEXCEPT { - return x != basic_string_view(y); - } - - template - inline bool operator!=(const charT * x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) != y; - } - - template - inline bool operator<(basic_string_view x, - const std::basic_string & y) BOOST_NOEXCEPT { - return x < basic_string_view(y); - } - - template - inline bool operator<(const std::basic_string & x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) < y; - } - - template - inline bool operator<(basic_string_view x, - const charT * y) BOOST_NOEXCEPT { - return x < basic_string_view(y); - } - - template - inline bool operator<(const charT * x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) < y; - } - - template - inline bool operator>(basic_string_view x, - const std::basic_string & y) BOOST_NOEXCEPT { - return x > basic_string_view(y); - } - - template - inline bool operator>(const std::basic_string & x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) > y; - } - - template - inline bool operator>(basic_string_view x, - const charT * y) BOOST_NOEXCEPT { - return x > basic_string_view(y); - } - - template - inline bool operator>(const charT * x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) > y; - } - - template - inline bool operator<=(basic_string_view x, - const std::basic_string & y) BOOST_NOEXCEPT { - return x <= basic_string_view(y); - } - - template - inline bool operator<=(const std::basic_string & x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) <= y; - } - - template - inline bool operator<=(basic_string_view x, - const charT * y) BOOST_NOEXCEPT { - return x <= basic_string_view(y); - } - - template - inline bool operator<=(const charT * x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) <= y; - } - - template - inline bool operator>=(basic_string_view x, - const std::basic_string & y) BOOST_NOEXCEPT { - return x >= basic_string_view(y); - } - - template - inline bool operator>=(const std::basic_string & x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) >= y; - } - - template - inline bool operator>=(basic_string_view x, - const charT * y) BOOST_NOEXCEPT { - return x >= basic_string_view(y); - } - - template - inline bool operator>=(const charT * x, - basic_string_view y) BOOST_NOEXCEPT { - return basic_string_view(x) >= y; - } - - namespace detail { - - template - inline void sv_insert_fill_chars(std::basic_ostream& os, std::size_t n) { - enum { chunk_size = 8 }; - charT fill_chars[chunk_size]; - std::fill_n(fill_chars, static_cast< std::size_t >(chunk_size), os.fill()); - for (; n >= chunk_size && os.good(); n -= chunk_size) - os.write(fill_chars, static_cast< std::size_t >(chunk_size)); - if (n > 0 && os.good()) - os.write(fill_chars, n); - } - - template - void sv_insert_aligned(std::basic_ostream& os, const basic_string_view& str) { - const std::size_t size = str.size(); - const std::size_t alignment_size = static_cast< std::size_t >(os.width()) - size; - const bool align_left = (os.flags() & std::basic_ostream::adjustfield) == std::basic_ostream::left; - if (!align_left) { - detail::sv_insert_fill_chars(os, alignment_size); - if (os.good()) - os.write(str.data(), size); - } - else { - os.write(str.data(), size); - if (os.good()) - detail::sv_insert_fill_chars(os, alignment_size); - } - } - - } // namespace detail - - // Inserter - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, - const basic_string_view& str) { - if (os.good()) { - const std::size_t size = str.size(); - const std::size_t w = static_cast< std::size_t >(os.width()); - if (w <= size) - os.write(str.data(), size); - else - detail::sv_insert_aligned(os, str); - os.width(0); - } - return os; - } - -#if 0 - // numeric conversions - // - // These are short-term implementations. - // In a production environment, I would rather avoid the copying. - // - inline int stoi (string_view str, size_t* idx=0, int base=10) { - return std::stoi ( std::string(str), idx, base ); - } - - inline long stol (string_view str, size_t* idx=0, int base=10) { - return std::stol ( std::string(str), idx, base ); - } - - inline unsigned long stoul (string_view str, size_t* idx=0, int base=10) { - return std::stoul ( std::string(str), idx, base ); - } - - inline long long stoll (string_view str, size_t* idx=0, int base=10) { - return std::stoll ( std::string(str), idx, base ); - } - - inline unsigned long long stoull (string_view str, size_t* idx=0, int base=10) { - return std::stoull ( std::string(str), idx, base ); - } - - inline float stof (string_view str, size_t* idx=0) { - return std::stof ( std::string(str), idx ); - } - - inline double stod (string_view str, size_t* idx=0) { - return std::stod ( std::string(str), idx ); - } - - inline long double stold (string_view str, size_t* idx=0) { - return std::stold ( std::string(str), idx ); - } - - inline int stoi (wstring_view str, size_t* idx=0, int base=10) { - return std::stoi ( std::wstring(str), idx, base ); - } - - inline long stol (wstring_view str, size_t* idx=0, int base=10) { - return std::stol ( std::wstring(str), idx, base ); - } - - inline unsigned long stoul (wstring_view str, size_t* idx=0, int base=10) { - return std::stoul ( std::wstring(str), idx, base ); - } - - inline long long stoll (wstring_view str, size_t* idx=0, int base=10) { - return std::stoll ( std::wstring(str), idx, base ); - } - - inline unsigned long long stoull (wstring_view str, size_t* idx=0, int base=10) { - return std::stoull ( std::wstring(str), idx, base ); - } - - inline float stof (wstring_view str, size_t* idx=0) { - return std::stof ( std::wstring(str), idx ); - } - - inline double stod (wstring_view str, size_t* idx=0) { - return std::stod ( std::wstring(str), idx ); - } - - inline long double stold (wstring_view str, size_t* idx=0) { - return std::stold ( std::wstring(str), idx ); - } -#endif - -} - -#if 0 -namespace std { - // Hashing - template<> struct hash; - template<> struct hash; - template<> struct hash; - template<> struct hash; -} -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/utility/string_view_fwd.hpp b/lib/3rdParty/boost/boost/utility/string_view_fwd.hpp deleted file mode 100644 index dbda0de46..000000000 --- a/lib/3rdParty/boost/boost/utility/string_view_fwd.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) Marshall Clow 2012-2012. - - 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) - - For more information, see http://www.boost.org - - Based on the StringRef implementation in LLVM (http://llvm.org) and - N3422 by Jeffrey Yasskin - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3442.html - Updated July 2015 to reflect the Library Fundamentals TS - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4480.html - -*/ - -#ifndef BOOST_STRING_VIEW_FWD_HPP -#define BOOST_STRING_VIEW_FWD_HPP - -#include -#include - -namespace boost { - - template > class basic_string_view; - typedef basic_string_view > string_view; - typedef basic_string_view > wstring_view; - -#ifndef BOOST_NO_CXX11_CHAR16_T - typedef basic_string_view > u16string_view; -#endif - -#ifndef BOOST_NO_CXX11_CHAR32_T - typedef basic_string_view > u32string_view; -#endif - -} - -#endif diff --git a/lib/3rdParty/boost/boost/utility/swap.hpp b/lib/3rdParty/boost/boost/utility/swap.hpp deleted file mode 100644 index dd9ecd907..000000000 --- a/lib/3rdParty/boost/boost/utility/swap.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * 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_UTILITY_SWAP_HPP -#define BOOST_UTILITY_SWAP_HPP - -// The header file at this path is deprecated; -// use boost/core/swap.hpp instead. - -#include - -#endif diff --git a/lib/3rdParty/boost/boost/utility/typed_in_place_factory.hpp b/lib/3rdParty/boost/boost/utility/typed_in_place_factory.hpp deleted file mode 100644 index 833a34692..000000000 --- a/lib/3rdParty/boost/boost/utility/typed_in_place_factory.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (C) 2003, Fernando Luis Cacciola Carballal. -// Copyright (C) 2007, Tobias Schwinger. -// -// 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) -// -// See http://www.boost.org/libs/optional for documentation. -// -// You are welcome to contact the author at: -// fernando_cacciola@hotmail.com -// -#ifndef BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP -#ifndef BOOST_PP_IS_ITERATING - -#include - -namespace boost { - -class typed_in_place_factory_base {} ; - -#define BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY) -#define BOOST_PP_FILENAME_1 -#include BOOST_PP_ITERATE() - -} // namespace boost - -#include - -#define BOOST_UTILITY_TYPED_INPLACE_FACTORY_04APR2007_HPP -#else -#define N BOOST_PP_ITERATION() - -template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N,class A) > -class BOOST_PP_CAT(typed_in_place_factory,N) - : - public typed_in_place_factory_base -{ -public: - - typedef T value_type; - - explicit BOOST_PP_CAT(typed_in_place_factory,N) - ( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) ) -#if N > 0 - : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _) -#endif - {} - - void* apply (void* address) const - { - return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) ); - } - - void* apply (void* address, std::size_t n) const - { - for(void* next = address = this->apply(address); !! --n;) - this->apply(next = static_cast(next) + sizeof(T)); - return address; - } - - BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _) -}; - -template< class T BOOST_PP_ENUM_TRAILING_PARAMS(N, class A) > -inline BOOST_PP_CAT(typed_in_place_factory,N)< - T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) > -in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) ) -{ - return BOOST_PP_CAT(typed_in_place_factory,N)< - T BOOST_PP_ENUM_TRAILING_PARAMS(N, A) >( BOOST_PP_ENUM_PARAMS(N, a) ); -} - -#undef N -#endif -#endif - diff --git a/lib/3rdParty/boost/boost/utility/value_init.hpp b/lib/3rdParty/boost/boost/utility/value_init.hpp deleted file mode 100644 index 9d8de7073..000000000 --- a/lib/3rdParty/boost/boost/utility/value_init.hpp +++ /dev/null @@ -1,281 +0,0 @@ -// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal. -// -// 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) -// -// 21 Ago 2002 (Created) Fernando Cacciola -// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker -// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola -// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola -// 20 Feb 2009 (Fixed logical const-ness issues) Niels Dekker, Fernando Cacciola -// 03 Apr 2010 (Added initialized, suggested by Jeffrey Hellrung, fixing #3472) Niels Dekker -// 30 May 2010 (Made memset call conditional, fixing #3869) Niels Dekker -// -#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP -#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP - -// Note: The implementation of boost::value_initialized had to deal with the -// fact that various compilers haven't fully implemented value-initialization. -// The constructor of boost::value_initialized works around these compiler -// issues, by clearing the bytes of T, before constructing the T object it -// contains. More details on these issues are at libs/utility/value_init.htm - -#include -#include // For BOOST_NO_COMPLETE_VALUE_INITIALIZATION. -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_MSVC -#pragma warning(push) -// It is safe to ignore the following warning from MSVC 7.1 or higher: -// "warning C4351: new behavior: elements of array will be default initialized" -#pragma warning(disable: 4351) -// It is safe to ignore the following MSVC warning, which may pop up when T is -// a const type: "warning C4512: assignment operator could not be generated". -#pragma warning(disable: 4512) -#endif - -#ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION - // Implementation detail: The macro BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED - // suggests that a workaround should be applied, because of compiler issues - // regarding value-initialization. - #define BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED -#endif - -// Implementation detail: The macro BOOST_DETAIL_VALUE_INIT_WORKAROUND -// switches the value-initialization workaround either on or off. -#ifndef BOOST_DETAIL_VALUE_INIT_WORKAROUND - #ifdef BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED - #define BOOST_DETAIL_VALUE_INIT_WORKAROUND 1 - #else - #define BOOST_DETAIL_VALUE_INIT_WORKAROUND 0 - #endif -#endif - -namespace boost { - -template -class initialized -{ - private : - struct wrapper - { -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) - typename -#endif - remove_const::type data; - - BOOST_GPU_ENABLED - wrapper() - : - data() - { - } - - BOOST_GPU_ENABLED - wrapper(T const & arg) - : - data(arg) - { - } - }; - - mutable -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) - typename -#endif - aligned_storage::value>::type x; - - BOOST_GPU_ENABLED - wrapper * wrapper_address() const - { - return static_cast( static_cast(&x)); - } - - public : - - BOOST_GPU_ENABLED - initialized() - { -#if BOOST_DETAIL_VALUE_INIT_WORKAROUND - std::memset(&x, 0, sizeof(x)); -#endif - new (wrapper_address()) wrapper(); - } - - BOOST_GPU_ENABLED - initialized(initialized const & arg) - { - new (wrapper_address()) wrapper( static_cast(*(arg.wrapper_address()))); - } - - BOOST_GPU_ENABLED - explicit initialized(T const & arg) - { - new (wrapper_address()) wrapper(arg); - } - - BOOST_GPU_ENABLED - initialized & operator=(initialized const & arg) - { - // Assignment is only allowed when T is non-const. - BOOST_STATIC_ASSERT( ! is_const::value ); - *wrapper_address() = static_cast(*(arg.wrapper_address())); - return *this; - } - - BOOST_GPU_ENABLED - ~initialized() - { - wrapper_address()->wrapper::~wrapper(); - } - - BOOST_GPU_ENABLED - T const & data() const - { - return wrapper_address()->data; - } - - BOOST_GPU_ENABLED - T& data() - { - return wrapper_address()->data; - } - - BOOST_GPU_ENABLED - void swap(initialized & arg) - { - ::boost::swap( this->data(), arg.data() ); - } - - BOOST_GPU_ENABLED - operator T const &() const - { - return wrapper_address()->data; - } - - BOOST_GPU_ENABLED - operator T&() - { - return wrapper_address()->data; - } - -} ; - -template -BOOST_GPU_ENABLED -T const& get ( initialized const& x ) -{ - return x.data() ; -} - -template -BOOST_GPU_ENABLED -T& get ( initialized& x ) -{ - return x.data() ; -} - -template -BOOST_GPU_ENABLED -void swap ( initialized & lhs, initialized & rhs ) -{ - lhs.swap(rhs) ; -} - -template -class value_initialized -{ - private : - - // initialized does value-initialization by default. - initialized m_data; - - public : - - BOOST_GPU_ENABLED - value_initialized() - : - m_data() - { } - - BOOST_GPU_ENABLED - T const & data() const - { - return m_data.data(); - } - - BOOST_GPU_ENABLED - T& data() - { - return m_data.data(); - } - - BOOST_GPU_ENABLED - void swap(value_initialized & arg) - { - m_data.swap(arg.m_data); - } - - BOOST_GPU_ENABLED - operator T const &() const - { - return m_data; - } - - BOOST_GPU_ENABLED - operator T&() - { - return m_data; - } -} ; - - -template -BOOST_GPU_ENABLED -T const& get ( value_initialized const& x ) -{ - return x.data() ; -} - -template -BOOST_GPU_ENABLED -T& get ( value_initialized& x ) -{ - return x.data() ; -} - -template -BOOST_GPU_ENABLED -void swap ( value_initialized & lhs, value_initialized & rhs ) -{ - lhs.swap(rhs) ; -} - - -class initialized_value_t -{ - public : - - template BOOST_GPU_ENABLED operator T() const - { - return initialized().data(); - } -}; - -initialized_value_t const initialized_value = {} ; - - -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif diff --git a/lib/3rdParty/boost/boost/version.hpp b/lib/3rdParty/boost/boost/version.hpp deleted file mode 100644 index 94c16c31c..000000000 --- a/lib/3rdParty/boost/boost/version.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Boost version.hpp configuration header file ------------------------------// - -// (C) Copyright John maddock 1999. 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/config for documentation - -#ifndef BOOST_VERSION_HPP -#define BOOST_VERSION_HPP - -// -// Caution: this is the only Boost header that is guaranteed -// to change with every Boost release. Including this header -// will cause a recompile every time a new Boost version is -// used. -// -// BOOST_VERSION % 100 is the patch level -// BOOST_VERSION / 100 % 1000 is the minor version -// BOOST_VERSION / 100000 is the major version - -#define BOOST_VERSION 106300 - -// -// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION -// but as a *string* in the form "x_y[_z]" where x is the major version -// number, y is the minor version number, and z is the patch level if not 0. -// This is used by to select which library version to link to. - -#define BOOST_LIB_VERSION "1_63" - -#endif diff --git a/lib/3rdParty/boost/boost_d.props b/lib/3rdParty/boost/boost_d.props deleted file mode 100644 index 97b70cc43..000000000 --- a/lib/3rdParty/boost/boost_d.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - $(SolutionDir)lib\3rdParty\boost;$(SolutionDir)lib\3rdParty\boost\boost;%(AdditionalIncludeDirectories) - - - $(SolutionDir)lib\3rdParty\boost\$(PlatformTarget)\$(PlatformToolset)\lib;%(AdditionalLibraryDirectories) - libboost_filesystem-vc$(PlatformToolsetVersion)-mt-gd-1_63.lib;%(AdditionalDependencies) - - - - \ No newline at end of file diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-1_60.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-1_60.lib deleted file mode 100644 index 16516de42..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-1_63.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-1_63.lib deleted file mode 100644 index 8e21c96dd..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-gd-1_60.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-gd-1_60.lib deleted file mode 100644 index 96642b8c2..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-gd-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-gd-1_63.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-gd-1_63.lib deleted file mode 100644 index 3c2a734b2..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_filesystem-vc140-mt-gd-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-1_60.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-1_60.lib deleted file mode 100644 index 9a856418d..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-1_63.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-1_63.lib deleted file mode 100644 index aa1dd2d5a..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-gd-1_60.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-gd-1_60.lib deleted file mode 100644 index f1b698b36..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-gd-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-gd-1_63.lib b/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-gd-1_63.lib deleted file mode 100644 index 609f3b30e..000000000 Binary files a/lib/3rdParty/boost/x64/v140/lib/libboost_system-vc140-mt-gd-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-1_60.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-1_60.lib deleted file mode 100644 index 877f18ebe..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-1_63.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-1_63.lib deleted file mode 100644 index 2823d3508..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-gd-1_60.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-gd-1_60.lib deleted file mode 100644 index 86d19cdde..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-gd-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-gd-1_63.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-gd-1_63.lib deleted file mode 100644 index 9baa10318..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_filesystem-vc140-mt-gd-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-1_60.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-1_60.lib deleted file mode 100644 index 562e18e6e..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-1_63.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-1_63.lib deleted file mode 100644 index 639916b77..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-gd-1_60.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-gd-1_60.lib deleted file mode 100644 index 21e701f96..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-gd-1_60.lib and /dev/null differ diff --git a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-gd-1_63.lib b/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-gd-1_63.lib deleted file mode 100644 index ea94bb390..000000000 Binary files a/lib/3rdParty/boost/x86/v140/lib/libboost_system-vc140-mt-gd-1_63.lib and /dev/null differ diff --git a/lib/3rdParty/dlib/dlib.props b/lib/3rdParty/dlib/dlib.props index 73669a38e..2c2d7fd4d 100644 --- a/lib/3rdParty/dlib/dlib.props +++ b/lib/3rdParty/dlib/dlib.props @@ -5,7 +5,7 @@ $(SolutionDir)lib\3rdParty\dlib\include\dlib\..;%(AdditionalIncludeDirectories) - $(SolutionDir)lib\3rdParty\dlib\lib\$(PlatformTarget)\$(PlatformToolset)\$(Configuration);%(AdditionalLibraryDirectories) + $(SolutionDir)lib\3rdParty\dlib\lib\$(PlatformTarget)\v140\$(Configuration);%(AdditionalLibraryDirectories) dlib.lib;%(AdditionalDependencies) diff --git a/lib/local/CppInerop/CppInerop.vcxproj b/lib/local/CppInerop/CppInerop.vcxproj index e5f9d0921..85e2c7fef 100644 --- a/lib/local/CppInerop/CppInerop.vcxproj +++ b/lib/local/CppInerop/CppInerop.vcxproj @@ -22,20 +22,20 @@ {78196985-EE54-411F-822B-5A23EDF80642} Win32Proj CppInerop - 8.1 + 10.0.17134.0 DynamicLibrary true - v140 + v141 Unicode true DynamicLibrary false - v140 + v141 true Unicode true @@ -43,14 +43,14 @@ DynamicLibrary true - v140 + v141 Unicode true DynamicLibrary false - v140 + v141 true Unicode true @@ -63,29 +63,25 @@ - - + - - + - - + - - + @@ -110,6 +106,7 @@ WIN32;_DEBUG;_WINDOWS;_USRDLL;CPPINEROP_EXPORTS;%(PreprocessorDefinitions) ./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories) StreamingSIMDExtensions2 + stdcpp17 Windows @@ -126,6 +123,7 @@ ./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories) + stdcpp17 Windows @@ -145,6 +143,7 @@ ./;$(SolutionDir)lib\local\LandmarkDetector\include;$(SolutionDir)lib\local\FaceAnalyser\include;$(SolutionDir)lib\local\GazeAnalyser\include;$(SolutionDir)lib\local\Utilities\include;$(SolutionDir)lib\3rdParty\CameraEnumerator;%(AdditionalIncludeDirectories) Speed StreamingSIMDExtensions2 + stdcpp17 Windows @@ -167,6 +166,7 @@ Speed + stdcpp17 Windows @@ -209,6 +209,7 @@ + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\WindowsBase.dll diff --git a/lib/local/CppInerop/CppInterop.cpp b/lib/local/CppInerop/CppInterop.cpp index 92f4b0431..abe7c59f2 100644 --- a/lib/local/CppInerop/CppInterop.cpp +++ b/lib/local/CppInerop/CppInterop.cpp @@ -32,11 +32,6 @@ // /////////////////////////////////////////////////////////////////////////////// -// Allows to overcome boost name clash stuff with C++ CLI -#ifdef __cplusplus_cli -#define generic __identifier(generic) -#endif - // This is the main DLL file. #include "GazeAnalyserInterop.h" #include "LandmarkDetectorInterop.h" @@ -46,8 +41,4 @@ #include "FaceDetectorInterop.h" #include "RecorderInterop.h" #include "VisualizerInterop.h" -#include "SequenceReader.h" - -#ifdef __cplusplus_cli -#undef generic -#endif \ No newline at end of file +#include "SequenceReader.h" \ No newline at end of file diff --git a/lib/local/CppInerop/FaceAnalyserInterop.h b/lib/local/CppInerop/FaceAnalyserInterop.h index 8131c2898..a71fd1e5f 100644 --- a/lib/local/CppInerop/FaceAnalyserInterop.h +++ b/lib/local/CppInerop/FaceAnalyserInterop.h @@ -48,24 +48,11 @@ #include -// Allows to overcome boost name clash stuff with C++ CLI -#ifdef __cplusplus_cli -#define generic __identifier(generic) -#endif - #include #include #include #include -// Boost stuff -#include -#include - -#ifdef __cplusplus_cli -#undef generic -#endif - #pragma managed using namespace System::Collections::Generic; @@ -89,7 +76,7 @@ public ref class FaceAnalyserManaged FaceAnalyserManaged(System::String^ root, bool dynamic, int output_width, bool mask_aligned) { - string root_std = msclr::interop::marshal_as(root); + std::string root_std = msclr::interop::marshal_as(root); FaceAnalysis::FaceAnalyserParameters params(root_std); if (!dynamic) diff --git a/lib/local/CppInerop/GazeAnalyserInterop.h b/lib/local/CppInerop/GazeAnalyserInterop.h index ec61505cf..09b5bb205 100644 --- a/lib/local/CppInerop/GazeAnalyserInterop.h +++ b/lib/local/CppInerop/GazeAnalyserInterop.h @@ -136,16 +136,16 @@ namespace GazeAnalyser_Interop { System::Collections::Generic::List^>^ CalculateGazeLines(float fx, float fy, float cx, float cy) { - vector points_left; + std::vector points_left; points_left.push_back(cv::Point3f(*pupil_left)); points_left.push_back(cv::Point3f(*pupil_left + *gazeDirection0 * 40.0)); - vector points_right; + std::vector points_right; points_right.push_back(cv::Point3f(*pupil_right)); points_right.push_back(cv::Point3f(*pupil_right + *gazeDirection1 * 40.0)); // Perform manual projection of points - vector imagePoints_left; + std::vector imagePoints_left; for (size_t i = 0; i < points_left.size(); ++i) { float x = points_left[i].x * fx / points_left[i].z + cx; @@ -154,7 +154,7 @@ namespace GazeAnalyser_Interop { } - vector imagePoints_right; + std::vector imagePoints_right; for (size_t i = 0; i < points_right.size(); ++i) { float x = points_right[i].x * fx / points_right[i].z + cx; diff --git a/lib/local/CppInerop/LandmarkDetectorInterop.h b/lib/local/CppInerop/LandmarkDetectorInterop.h index 194b81e16..7697362ea 100644 --- a/lib/local/CppInerop/LandmarkDetectorInterop.h +++ b/lib/local/CppInerop/LandmarkDetectorInterop.h @@ -75,7 +75,7 @@ namespace CppInterop { FaceModelParameters(System::String^ root, bool ceclm, bool clnf, bool clm) { std::string root_std = msclr::interop::marshal_as(root); - vector args; + std::vector args; args.push_back(root_std); std::string model_loc = "model/main_ceclm_general.txt"; @@ -104,8 +104,8 @@ namespace CppInterop { // TODO this could have optimize for demo mode (also could appropriately update sigma, reg_factor as well) void optimiseForVideo() { - params->window_sizes_small = vector(4); - params->window_sizes_init = vector(4); + params->window_sizes_small = std::vector(4); + params->window_sizes_init = std::vector(4); // For fast tracking params->window_sizes_small[0] = 0; @@ -180,7 +180,7 @@ namespace CppInterop { void optimiseForImages() { - params->window_sizes_init = vector(4); + params->window_sizes_init = std::vector(4); params->window_sizes_init[0] = 15; params->window_sizes_init[1] = 13; params->window_sizes_init[2] = 11; @@ -277,15 +277,28 @@ namespace CppInterop { return ::LandmarkDetector::DetectLandmarksInVideo(rgb_image->Mat, *clnf, *modelParams->getParams(), gray_image->Mat); } + bool DetectLandmarksInVideo(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams) { + return ::LandmarkDetector::DetectLandmarksInVideo(rgb_image->Mat, *clnf, *modelParams->getParams(), cv::Mat()); + } + bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams, OpenCVWrappers::RawImage^ gray_image) { return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, *clnf, *modelParams->getParams(), gray_image->Mat); } - + + bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, FaceModelParameters^ modelParams) { + return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, *clnf, *modelParams->getParams(), cv::Mat()); + } + bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, Rect^ bounding_box, FaceModelParameters^ modelParams, OpenCVWrappers::RawImage^ gray_image) { cv::Rect_ bbox(bounding_box->Left, bounding_box->Top, bounding_box->Width, bounding_box->Height); return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, bbox, *clnf, *modelParams->getParams(), gray_image->Mat); } + bool DetectFaceLandmarksInImage(OpenCVWrappers::RawImage^ rgb_image, Rect^ bounding_box, FaceModelParameters^ modelParams) { + cv::Rect_ bbox(bounding_box->Left, bounding_box->Top, bounding_box->Width, bounding_box->Height); + return ::LandmarkDetector::DetectLandmarksInImage(rgb_image->Mat, bbox, *clnf, *modelParams->getParams(), cv::Mat()); + } + void GetPoseWRTCamera(List^ pose, float fx, float fy, float cx, float cy) { auto pose_vec = ::LandmarkDetector::GetPoseWRTCamera(*clnf, fx, fy, cx, cy); pose->Clear(); @@ -318,7 +331,7 @@ namespace CppInterop { } List^>^ CalculateVisibleLandmarks() { - vector vecLandmarks = ::LandmarkDetector::CalculateVisibleLandmarks(*clnf); + std::vector vecLandmarks = ::LandmarkDetector::CalculateVisibleLandmarks(*clnf); auto landmarks = gcnew System::Collections::Generic::List^>(); for(cv::Point2f p : vecLandmarks) { @@ -329,7 +342,7 @@ namespace CppInterop { } List^>^ CalculateAllLandmarks() { - vector vecLandmarks = ::LandmarkDetector::CalculateAllLandmarks(*clnf); + std::vector vecLandmarks = ::LandmarkDetector::CalculateAllLandmarks(*clnf); auto landmarks = gcnew List^>(); for (cv::Point2f p : vecLandmarks) { @@ -340,7 +353,7 @@ namespace CppInterop { } List^>^ CalculateAllEyeLandmarks() { - vector vecLandmarks = ::LandmarkDetector::CalculateAllEyeLandmarks(*clnf); + std::vector vecLandmarks = ::LandmarkDetector::CalculateAllEyeLandmarks(*clnf); auto landmarks = gcnew System::Collections::Generic::List^>(); for (cv::Point2f p : vecLandmarks) { @@ -351,7 +364,7 @@ namespace CppInterop { } List^>^ CalculateAllEyeLandmarks3D(float fx, float fy, float cx, float cy) { - vector vecLandmarks = ::LandmarkDetector::Calculate3DEyeLandmarks(*clnf, fx, fy, cx, cy); + std::vector vecLandmarks = ::LandmarkDetector::Calculate3DEyeLandmarks(*clnf, fx, fy, cx, cy); auto landmarks = gcnew System::Collections::Generic::List^>(); for (cv::Point3f p : vecLandmarks) { @@ -362,7 +375,7 @@ namespace CppInterop { } List^>^ CalculateVisibleEyeLandmarks() { - vector vecLandmarks = ::LandmarkDetector::CalculateVisibleEyeLandmarks(*clnf); + std::vector vecLandmarks = ::LandmarkDetector::CalculateVisibleEyeLandmarks(*clnf); auto landmarks = gcnew System::Collections::Generic::List^>(); for (cv::Point2f p : vecLandmarks) { @@ -390,11 +403,11 @@ namespace CppInterop { cv::Vec6f pose = ::LandmarkDetector::GetPose(*clnf, fx,fy, cx, cy); - vector> vecLines = ::Utilities::CalculateBox(pose, fx, fy, cx, cy); + std::vector> vecLines = ::Utilities::CalculateBox(pose, fx, fy, cx, cy); auto lines = gcnew List^>(); - for(pair line : vecLines) { + for(std::pair line : vecLines) { lines->Add(gcnew System::Tuple(System::Windows::Point(line.first.x, line.first.y), System::Windows::Point(line.second.x, line.second.y))); } diff --git a/lib/local/CppInerop/OpenCVWrappers.h b/lib/local/CppInerop/OpenCVWrappers.h index ba4ae7098..279e65dc0 100644 --- a/lib/local/CppInerop/OpenCVWrappers.h +++ b/lib/local/CppInerop/OpenCVWrappers.h @@ -42,11 +42,8 @@ #pragma unmanaged -#include -#include - -#include // Video write -#include // Video write +#include +#include #pragma managed @@ -103,6 +100,41 @@ namespace OpenCVWrappers { mat = new cv::Mat(m.clone()); } + // Constructing a raw image from bitmap + RawImage(System::Drawing::Bitmap^ bitmap) + { + + auto fmt = bitmap->PixelFormat; + if (fmt == System::Drawing::Imaging::PixelFormat::Format24bppRgb) + { + mat = new cv::Mat(cv::Size(bitmap->Width, bitmap->Height), CV_8UC3); + } + else if (fmt == System::Drawing::Imaging::PixelFormat::Format32bppArgb) + { + mat = new cv::Mat(cv::Size(bitmap->Width, bitmap->Height), CV_8UC4); + } + else + { + throw gcnew System::Exception("Unsupported image type"); + } + + auto rect = System::Drawing::Rectangle(0, 0, bitmap->Width, bitmap->Height); + auto bitmap_data = bitmap->LockBits(rect, System::Drawing::Imaging::ImageLockMode::ReadOnly, bitmap->PixelFormat); + System::IntPtr source_data = bitmap_data->Scan0; + + int bytes = bitmap_data->Stride * bitmap_data->Height; + memcpy(mat->data, source_data.ToPointer(), bytes); + + //Unlock the bits. + bitmap->UnlockBits(bitmap_data); + + if (fmt == System::Drawing::Imaging::PixelFormat::Format32bppArgb) + { + cv::cvtColor(*mat, *mat, cv::COLOR_RGBA2RGB); + } + + } + void Mirror() { cv::flip(*mat, *mat, 1); @@ -212,7 +244,7 @@ namespace OpenCVWrappers { msclr::interop::marshal_context context; std::string location_std_string = context.marshal_as(location); - vc = new cv::VideoWriter(location_std_string, CV_FOURCC('D', 'I', 'V', 'X'), fps, cv::Size(width, height), colour); + vc = new cv::VideoWriter(location_std_string, cv::VideoWriter::fourcc('D', 'I', 'V', 'X'), fps, cv::Size(width, height), colour); } diff --git a/lib/local/CppInerop/SequenceReader.h b/lib/local/CppInerop/SequenceReader.h index 7cc257004..8753a3298 100644 --- a/lib/local/CppInerop/SequenceReader.h +++ b/lib/local/CppInerop/SequenceReader.h @@ -349,8 +349,8 @@ namespace UtilitiesOF { cv::VideoCapture cap1(i); auto resolution = resolutions[(int)(resolutions->Count / 2)]; - cap1.set(CV_CAP_PROP_FRAME_WIDTH, resolution->Item1); - cap1.set(CV_CAP_PROP_FRAME_HEIGHT, resolution->Item2); + cap1.set(cv::CAP_PROP_FRAME_WIDTH, resolution->Item1); + cap1.set(cv::CAP_PROP_FRAME_HEIGHT, resolution->Item2); // Read several frames, as the first one often is over-exposed for (int k = 0; k < 2; ++k) @@ -377,12 +377,12 @@ namespace UtilitiesOF { { auto resolution = gcnew System::Tuple(common_resolutions[i].first, common_resolutions[i].second); - cap1.set(CV_CAP_PROP_FRAME_WIDTH, resolution->Item1); - cap1.set(CV_CAP_PROP_FRAME_HEIGHT, resolution->Item2); + cap1.set(cv::CAP_PROP_FRAME_WIDTH, resolution->Item1); + cap1.set(cv::CAP_PROP_FRAME_HEIGHT, resolution->Item2); // Add only valid resolutions as API sometimes provides wrong ones - int set_width = cap1.get(CV_CAP_PROP_FRAME_WIDTH); - int set_height = cap1.get(CV_CAP_PROP_FRAME_HEIGHT); + int set_width = cap1.get(cv::CAP_PROP_FRAME_WIDTH); + int set_height = cap1.get(cv::CAP_PROP_FRAME_HEIGHT); // Grab a thumbnail from mid resolution if (i == (int)common_resolutions.size() / 2) diff --git a/lib/local/FaceAnalyser/CMakeLists.txt b/lib/local/FaceAnalyser/CMakeLists.txt index a55f4dc0e..c5c2bc8de 100644 --- a/lib/local/FaceAnalyser/CMakeLists.txt +++ b/lib/local/FaceAnalyser/CMakeLists.txt @@ -8,6 +8,7 @@ SET(SOURCE src/Face_utils.cpp src/FaceAnalyser.cpp src/FaceAnalyserParameters.cpp + src/stdafx_fa.cpp src/SVM_dynamic_lin.cpp src/SVM_static_lin.cpp src/SVR_dynamic_lin_regressors.cpp @@ -18,6 +19,7 @@ SET(HEADERS include/Face_utils.h include/FaceAnalyser.h include/FaceAnalyserParameters.h + include/stdafx_fa.h include/SVM_dynamic_lin.h include/SVM_static_lin.h include/SVR_dynamic_lin_regressors.h @@ -33,13 +35,18 @@ target_include_directories(FaceAnalyser PUBLIC $/include/OpenFace>) target_include_directories(FaceAnalyser PRIVATE ${FACEANALYSER_SOURCE_DIR}/include) -target_include_directories(FaceAnalyser PUBLIC ${Boost_INCLUDE_DIRS}) -target_include_directories(FaceAnalyser PUBLIC ${Boost_INCLUDE_DIRS}/boost) target_include_directories(FaceAnalyser PUBLIC ${OpenCV_INCLUDE_DIRS}) -target_link_libraries(FaceAnalyser PUBLIC ${OpenCV_LIBS} ${Boost_LIBRARIES} ${OpenBLAS_LIB}) +target_link_libraries(FaceAnalyser PUBLIC ${OpenCV_LIBS} ${OpenBLAS_LIB}) target_link_libraries(FaceAnalyser PUBLIC dlib::dlib) +if(${Boost_FOUND}) + target_include_directories(FaceAnalyser PUBLIC ${Boost_INCLUDE_DIRS}) + target_link_libraries(FaceAnalyser PUBLIC ${Boost_LIBRARIES}) +else() + target_link_libraries(FaceAnalyser PUBLIC stdc++fs) +endif() + target_include_directories(FaceAnalyser PRIVATE ${OpenBLAS_INCLUDE_DIR}) install (TARGETS FaceAnalyser EXPORT OpenFaceTargets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/lib/local/FaceAnalyser/FaceAnalyser.vcxproj b/lib/local/FaceAnalyser/FaceAnalyser.vcxproj index 6c5c774da..e7124f3b1 100644 --- a/lib/local/FaceAnalyser/FaceAnalyser.vcxproj +++ b/lib/local/FaceAnalyser/FaceAnalyser.vcxproj @@ -21,32 +21,32 @@ {0E7FC556-0E80-45EA-A876-DDE4C2FEDCD7} FaceAnalyser - 8.1 + 10.0.17134.0 StaticLibrary true - v140 + v141 Unicode StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode StaticLibrary false - v140 + v141 true Unicode @@ -56,29 +56,25 @@ - - + - - + - - + - - + @@ -97,6 +93,7 @@ ./include;$(SolutionDir)lib/local/Utilities/include;$(SolutionDir)lib/local/LandmarkDetector/include;%(AdditionalIncludeDirectories) StreamingSIMDExtensions2 true + stdcpp17 true @@ -118,6 +115,7 @@ true WIN64;_DEBUG;_LIB;EIGEN_MPL2_ONLY;%(PreprocessorDefinitions) + stdcpp17 true @@ -141,6 +139,9 @@ StreamingSIMDExtensions2 true Speed + stdcpp17 + Use + stdafx_fa.h true @@ -169,6 +170,9 @@ true WIN64;NDEBUG;_LIB;%(PreprocessorDefinitions) Speed + stdcpp17 + Use + stdafx_fa.h true @@ -193,6 +197,10 @@ + + Create + Create + @@ -204,6 +212,7 @@ + diff --git a/lib/local/FaceAnalyser/FaceAnalyser.vcxproj.filters b/lib/local/FaceAnalyser/FaceAnalyser.vcxproj.filters index 534986773..ece4cb3a1 100644 --- a/lib/local/FaceAnalyser/FaceAnalyser.vcxproj.filters +++ b/lib/local/FaceAnalyser/FaceAnalyser.vcxproj.filters @@ -36,6 +36,9 @@ Header Files + + Header Files + @@ -59,5 +62,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/lib/local/FaceAnalyser/include/FaceAnalyserParameters.h b/lib/local/FaceAnalyser/include/FaceAnalyserParameters.h index 4bc4f1ff7..efde01fa4 100644 --- a/lib/local/FaceAnalyser/include/FaceAnalyserParameters.h +++ b/lib/local/FaceAnalyser/include/FaceAnalyserParameters.h @@ -36,14 +36,7 @@ #ifndef FACE_ANALYSER_PARAM_H #define FACE_ANALYSER_PARAM_H -#include -#include - -// Boost includes -#include -#include - -using namespace std; +#include namespace FaceAnalysis { @@ -53,8 +46,8 @@ struct FaceAnalyserParameters public: // Constructors FaceAnalyserParameters(); - FaceAnalyserParameters(string root_exe); - FaceAnalyserParameters(vector &arguments); + FaceAnalyserParameters(std::string root_exe); + FaceAnalyserParameters(std::vector &arguments); // These are the parameters of training and will not change and are fixed const double sim_scale_au = 0.7; @@ -73,8 +66,8 @@ struct FaceAnalyserParameters double getSimScaleOut() const { return sim_scale_out; } int getSimSizeOut() const { return sim_size_out; } bool getDynamic() const { return dynamic; } - string getModelLoc() const { return string(model_location); } - vector getOrientationBins() const { return vector(orientation_bins); } + std::string getModelLoc() const { return std::string(model_location); } + std::vector getOrientationBins() const { return std::vector(orientation_bins); } private: @@ -91,11 +84,11 @@ struct FaceAnalyserParameters bool dynamic; // Where to load the models from - string model_location; + std::string model_location; // The location of the executable - boost::filesystem::path root; + fs::path root; - vector orientation_bins; + std::vector orientation_bins; }; diff --git a/lib/local/FaceAnalyser/include/stdafx_fa.h b/lib/local/FaceAnalyser/include/stdafx_fa.h new file mode 100644 index 000000000..2ba929c6a --- /dev/null +++ b/lib/local/FaceAnalyser/include/stdafx_fa.h @@ -0,0 +1,57 @@ +/////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge, +// all rights reserved. +// +// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY +// +// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT. +// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE. +// +// License can be found in OpenFace-license.txt +// + +// Precompiled headers stuff + +#ifndef __STDAFX_FA_h_ +#define __STDAFX_FA_h_ + +// OpenCV includes +#include +#include +#include +#include +#include +#include + +// dlib dependencies for face detection +#include +#include + +// C++ standard stuff +#include + +#include +#include +#include + +#include +#include + +#define _USE_MATH_DEFINES +#include + +// Filesystem stuff +// It can either be in std filesystem (C++17), or in experimental/filesystem (partial C++17 support) or in boost +#if __has_include() +#include +#include +namespace fs = boost::filesystem; +#elif __has_include() +#include +namespace fs = std::filesystem; +#elif __has_include() +#include +namespace fs = std::filesystem; +#endif + +#endif diff --git a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp index 8fa93d9b5..8303be7fd 100644 --- a/lib/local/FaceAnalyser/src/FaceAnalyser.cpp +++ b/lib/local/FaceAnalyser/src/FaceAnalyser.cpp @@ -31,33 +31,15 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include #include "FaceAnalyser.h" -// OpenCV includes -#include -#include - -// System includes -#include -#include -#include - -#include - -// Boost includes -#include -#include -#include -#include - // Local includes #include "Face_utils.h" using namespace FaceAnalysis; -using namespace std; - // Constructor from a model file (or a default one if not provided FaceAnalyser::FaceAnalyser(const FaceAnalysis::FaceAnalyserParameters& face_analyser_params) { @@ -167,19 +149,19 @@ std::vector FaceAnalyser::GetDynamicAUClass() const return au_dynamic_class; } -std::vector> FaceAnalyser::GetDynamicAUReg() const +std::vector> FaceAnalyser::GetDynamicAUReg() const { - std::vector> au_dynamic_reg; + std::vector> au_dynamic_reg; std::vector au_reg_names_stat = AU_SVR_static_appearance_lin_regressors.GetAUNames(); std::vector au_reg_names_dyn = AU_SVR_dynamic_appearance_lin_regressors.GetAUNames(); for (size_t i = 0; i < au_reg_names_stat.size(); ++i) { - au_dynamic_reg.push_back(std::pair(au_reg_names_stat[i], false)); + au_dynamic_reg.push_back(std::pair(au_reg_names_stat[i], false)); } for (size_t i = 0; i < au_reg_names_dyn.size(); ++i) { - au_dynamic_reg.push_back(std::pair(au_reg_names_dyn[i], true)); + au_dynamic_reg.push_back(std::pair(au_reg_names_dyn[i], true)); } return au_dynamic_reg; @@ -227,7 +209,7 @@ void FaceAnalyser::GetLatestNeutralHOG(cv::Mat_& hog_descriptor, int& nu } // Getting the closest view center based on orientation -int GetViewId(const vector orientations_all, const cv::Vec3d& orientation) +int GetViewId(const std::vector orientations_all, const cv::Vec3d& orientation) { int id = 0; @@ -323,7 +305,6 @@ void FaceAnalyser::PredictStaticAUsAndComputeFeatures(const cv::Mat& frame, cons } - void FaceAnalyser::AddNextFrame(const cv::Mat& frame, const cv::Mat_& detected_landmarks, bool success, double timestamp_seconds, bool online) { @@ -565,7 +546,8 @@ void FaceAnalyser::PostprocessPredictions() } } -void FaceAnalyser::ExtractAllPredictionsOfflineReg(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps, bool dynamic) +void FaceAnalyser::ExtractAllPredictionsOfflineReg(std::vector>>& au_predictions, + std::vector& confidences, std::vector& successes, std::vector& timestamps, bool dynamic) { if(dynamic) { @@ -575,20 +557,20 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vectortimestamps; au_predictions.clear(); // First extract the valid AU values and put them in a different format - vector> aus_valid; - vector offsets; + std::vector> aus_valid; + std::vector offsets; successes = this->valid_preds; - vector dyn_au_names = AU_SVR_dynamic_appearance_lin_regressors.GetAUNames(); + std::vector dyn_au_names = AU_SVR_dynamic_appearance_lin_regressors.GetAUNames(); // Allow these AUs to be person calirated based on expected number of neutral frames (learned from the data) for(auto au_iter = AU_predictions_reg_all_hist.begin(); au_iter != AU_predictions_reg_all_hist.end(); ++au_iter) { - vector au_good; - string au_name = au_iter->first; - vector au_vals = au_iter->second; + std::vector au_good; + std::string au_name = au_iter->first; + std::vector au_vals = au_iter->second; - au_predictions.push_back(std::pair>(au_name, au_vals)); + au_predictions.push_back(std::pair>(au_name, au_vals)); for(size_t frame = 0; frame < au_vals.size(); ++frame) { @@ -664,11 +646,11 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vectorfirst; + std::string au_name = au_iter->first; // Perform a moving average of 3 frames int window_size = 3; - vector au_vals_tmp = au_iter->second; + std::vector au_vals_tmp = au_iter->second; for (size_t i = (window_size - 1) / 2; i < au_iter->second.size() - (window_size - 1) / 2; ++i) { double sum = 0; @@ -685,7 +667,8 @@ void FaceAnalyser::ExtractAllPredictionsOfflineReg(vector>>& au_predictions, vector& confidences, vector& successes, vector& timestamps, bool dynamic) +void FaceAnalyser::ExtractAllPredictionsOfflineClass(std::vector>>& au_predictions, + std::vector& confidences, std::vector& successes, std::vector& timestamps, bool dynamic) { if (dynamic) { @@ -697,12 +680,12 @@ void FaceAnalyser::ExtractAllPredictionsOfflineClass(vectorfirst; - vector au_vals = au_iter->second; + std::string au_name = au_iter->first; + std::vector au_vals = au_iter->second; // Perform a moving average of 7 frames on classifications int window_size = 7; - vector au_vals_tmp = au_vals; + std::vector au_vals_tmp = au_vals; if((int)au_vals.size() > (window_size - 1) / 2) { for (size_t i = (window_size - 1)/2; i < au_vals.size() - (window_size - 1) / 2; ++i) @@ -723,7 +706,7 @@ void FaceAnalyser::ExtractAllPredictionsOfflineClass(vector>(au_name, au_vals)); + au_predictions.push_back(std::pair>(au_name, au_vals)); } @@ -761,7 +744,7 @@ void FaceAnalyser::Reset() geom_desc_track = cv::Mat_(geom_desc_track.rows, geom_desc_track.cols, 0.0); - dyn_scaling = vector>(dyn_scaling.size(), vector(dyn_scaling[0].size(), 5.0)); + dyn_scaling = std::vector>(dyn_scaling.size(), std::vector(dyn_scaling[0].size(), 5.0)); AU_predictions_reg.clear(); AU_predictions_class.clear(); @@ -877,31 +860,31 @@ void FaceAnalyser::ExtractMedian(cv::Mat_& histogram, int hist_count, cv::M } } // Apply the current predictors to the currently stored descriptors -vector> FaceAnalyser::PredictCurrentAUs(int view) +std::vector> FaceAnalyser::PredictCurrentAUs(int view) { - vector> predictions; + std::vector> predictions; if(!hog_desc_frame.empty()) { - vector svr_lin_stat_aus; - vector svr_lin_stat_preds; + std::vector svr_lin_stat_aus; + std::vector svr_lin_stat_preds; AU_SVR_static_appearance_lin_regressors.Predict(svr_lin_stat_preds, svr_lin_stat_aus, hog_desc_frame, geom_descriptor_frame); for(size_t i = 0; i < svr_lin_stat_preds.size(); ++i) { - predictions.push_back(pair(svr_lin_stat_aus[i], svr_lin_stat_preds[i])); + predictions.push_back(std::pair(svr_lin_stat_aus[i], svr_lin_stat_preds[i])); } - vector svr_lin_dyn_aus; - vector svr_lin_dyn_preds; + std::vector svr_lin_dyn_aus; + std::vector svr_lin_dyn_preds; AU_SVR_dynamic_appearance_lin_regressors.Predict(svr_lin_dyn_preds, svr_lin_dyn_aus, hog_desc_frame, geom_descriptor_frame, this->hog_desc_median, this->geom_descriptor_median); for(size_t i = 0; i < svr_lin_dyn_preds.size(); ++i) { - predictions.push_back(pair(svr_lin_dyn_aus[i], svr_lin_dyn_preds[i])); + predictions.push_back(std::pair(svr_lin_dyn_aus[i], svr_lin_dyn_preds[i])); } } @@ -909,12 +892,13 @@ vector> FaceAnalyser::PredictCurrentAUs(int view) return predictions; } -vector> FaceAnalyser::CorrectOnlineAUs(std::vector> predictions_orig, int view, bool dyn_shift, bool dyn_scale, bool update_track, bool clip_values) +std::vector> FaceAnalyser::CorrectOnlineAUs(std::vector> predictions_orig, + int view, bool dyn_shift, bool dyn_scale, bool update_track, bool clip_values) { // Correction that drags the predicion to 0 (assuming the bottom 10% of predictions are of neutral expresssions) - vector correction(predictions_orig.size(), 0.0); + std::vector correction(predictions_orig.size(), 0.0); - vector> predictions = predictions_orig; + std::vector> predictions = predictions_orig; if(update_track) { @@ -934,7 +918,7 @@ vector> FaceAnalyser::CorrectOnlineAUs(std::vector(predictions.size(), 5.0); + dyn_scaling[view] = std::vector(predictions.size(), 5.0); } for(size_t i = 0; i < predictions.size(); ++i) @@ -972,31 +956,31 @@ vector> FaceAnalyser::CorrectOnlineAUs(std::vector> FaceAnalyser::PredictCurrentAUsClass(int view) +std::vector> FaceAnalyser::PredictCurrentAUsClass(int view) { - vector> predictions; + std::vector> predictions; if(!hog_desc_frame.empty()) { - vector svm_lin_stat_aus; - vector svm_lin_stat_preds; + std::vector svm_lin_stat_aus; + std::vector svm_lin_stat_preds; AU_SVM_static_appearance_lin.Predict(svm_lin_stat_preds, svm_lin_stat_aus, hog_desc_frame, geom_descriptor_frame); for(size_t i = 0; i < svm_lin_stat_aus.size(); ++i) { - predictions.push_back(pair(svm_lin_stat_aus[i], svm_lin_stat_preds[i])); + predictions.push_back(std::pair(svm_lin_stat_aus[i], svm_lin_stat_preds[i])); } - vector svm_lin_dyn_aus; - vector svm_lin_dyn_preds; + std::vector svm_lin_dyn_aus; + std::vector svm_lin_dyn_preds; AU_SVM_dynamic_appearance_lin.Predict(svm_lin_dyn_preds, svm_lin_dyn_aus, hog_desc_frame, geom_descriptor_frame, this->hog_desc_median, this->geom_descriptor_median); for(size_t i = 0; i < svm_lin_dyn_aus.size(); ++i) { - predictions.push_back(pair(svm_lin_dyn_aus[i], svm_lin_dyn_preds[i])); + predictions.push_back(std::pair(svm_lin_dyn_aus[i], svm_lin_dyn_preds[i])); } } @@ -1004,17 +988,17 @@ vector> FaceAnalyser::PredictCurrentAUsClass(int view) return predictions; } -vector> FaceAnalyser::GetCurrentAUsClass() const +std::vector> FaceAnalyser::GetCurrentAUsClass() const { return AU_predictions_class; } -vector> FaceAnalyser::GetCurrentAUsReg() const +std::vector> FaceAnalyser::GetCurrentAUsReg() const { return AU_predictions_reg; } -vector> FaceAnalyser::GetCurrentAUsCombined() const +std::vector> FaceAnalyser::GetCurrentAUsCombined() const { return AU_predictions_combined; } @@ -1023,28 +1007,28 @@ void FaceAnalyser::Read(std::string model_loc) { // Reading in the modules for AU recognition - cout << "Reading the AU analysis module from: " << model_loc << endl; + std::cout << "Reading the AU analysis module from: " << model_loc << std::endl; - ifstream locations(model_loc.c_str(), ios_base::in); + std::ifstream locations(model_loc.c_str(), std::ios_base::in); if (!locations.is_open()) { - cout << "Couldn't open the model file, aborting" << endl; + std::cout << "Couldn't open the model file, aborting" << std::endl; return; } - string line; + std::string line; // The other module locations should be defined as relative paths from the main model - boost::filesystem::path root = boost::filesystem::path(model_loc).parent_path(); + fs::path root = fs::path(model_loc).parent_path(); // The main file contains the references to other files while (!locations.eof()) { getline(locations, line); - stringstream lineStream(line); + std::stringstream lineStream(line); - string module; - string location; + std::string module; + std::string location; // figure out which module is to be read from which file lineStream >> module; @@ -1062,47 +1046,64 @@ void FaceAnalyser::Read(std::string model_loc) if (module.compare("AUPredictor") == 0) { // The AU predictors - cout << "Reading the AU predictors from: " << location; + std::cout << "Reading the AU predictors from: " << location; ReadAU(location); - cout << "... Done" << endl; + std::cout << "... Done" << std::endl; } else if (module.compare("PDM") == 0) { - cout << "Reading the PDM from: " << location; + std::cout << "Reading the PDM from: " << location; pdm = LandmarkDetector::PDM(); pdm.Read(location); - cout << "... Done" << endl; + std::cout << "... Done" << std::endl; } else if (module.compare("Triangulation") == 0) { - cout << "Reading the triangulation from:" << location; + std::cout << "Reading the triangulation from:" << location; // The triangulation used for masking out the non-face parts of aligned image std::ifstream triangulation_file(location); ReadMat(triangulation_file, triangulation); - cout << "... Done" << endl; + std::cout << "... Done" << std::endl; } } } +// Split the string into tokens +static void split(const std::string& str, std::vector& out, char delim = ' ') +{ + std::stringstream ss(str); + std::string token; + while (std::getline(ss, token, delim)) { + out.push_back(token); + } +} + +// Trim the end of a string (in place) +static void rtrim(std::string &s) { + s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) { + return !std::isspace(ch); + }).base(), s.end()); +} + // Reading in AU prediction modules void FaceAnalyser::ReadAU(std::string au_model_location) { // Open the list of the regressors in the file - ifstream locations(au_model_location.c_str(), ios::in); + std::ifstream locations(au_model_location.c_str(), std::ios::in); if(!locations.is_open()) { - cout << "Couldn't open the AU prediction files at: " << au_model_location.c_str() << " aborting" << endl; - cout.flush(); + std::cout << "Couldn't open the AU prediction files at: " << au_model_location.c_str() << " aborting" << std::endl; + std::cout.flush(); return; } - string line; + std::string line; // The other module locations should be defined as relative paths from the main model - boost::filesystem::path root = boost::filesystem::path(au_model_location).parent_path(); + fs::path root = fs::path(au_model_location).parent_path(); // The main file contains the references to other files while (!locations.eof()) @@ -1110,10 +1111,10 @@ void FaceAnalyser::ReadAU(std::string au_model_location) getline(locations, line); - stringstream lineStream(line); + std::stringstream lineStream(line); - string name; - string location; + std::string name; + std::string location; // figure out which module is to be read from which file lineStream >> location; @@ -1128,8 +1129,8 @@ void FaceAnalyser::ReadAU(std::string au_model_location) // remove carriage return at the end for compatibility with unix systems name.erase(name.find_last_not_of(" \n\r\t") + 1); } - vector au_names; - boost::split(au_names, name, boost::is_any_of(",")); + std::vector au_names; + split(name, au_names, ','); // append the lovstion to root location (boost syntax) location = (root / location).string(); @@ -1139,7 +1140,9 @@ void FaceAnalyser::ReadAU(std::string au_model_location) } -void FaceAnalyser::UpdatePredictionTrack(cv::Mat_& prediction_corr_histogram, int& prediction_correction_count, vector& correction, const vector>& predictions, double ratio, int num_bins, double min_val, double max_val, int min_frames) +void FaceAnalyser::UpdatePredictionTrack(cv::Mat_& prediction_corr_histogram, int& prediction_correction_count, + std::vector& correction, const std::vector>& predictions, double ratio, int num_bins, + double min_val, double max_val, int min_frames) { double length = max_val - min_val; if(length < 0) @@ -1194,7 +1197,8 @@ void FaceAnalyser::UpdatePredictionTrack(cv::Mat_& prediction_corr_histogra } } -void FaceAnalyser::GetSampleHist(cv::Mat_& prediction_corr_histogram, int prediction_correction_count, vector& sample, double ratio, int num_bins, double min_val, double max_val) +void FaceAnalyser::GetSampleHist(cv::Mat_& prediction_corr_histogram, int prediction_correction_count, std::vector& sample, + double ratio, int num_bins, double min_val, double max_val) { double length = max_val - min_val; @@ -1224,9 +1228,9 @@ void FaceAnalyser::GetSampleHist(cv::Mat_& prediction_corr_histogram, int p } -void FaceAnalyser::ReadRegressor(std::string fname, const vector& au_names) +void FaceAnalyser::ReadRegressor(std::string fname, const std::vector& au_names) { - ifstream regressor_stream(fname.c_str(), ios::in | ios::binary); + std::ifstream regressor_stream(fname.c_str(), std::ios::in | std::ios::binary); if (regressor_stream.is_open()) { @@ -1258,14 +1262,14 @@ double FaceAnalyser::GetCurrentTimeSeconds() { } // Allows for post processing of the AU signal -void FaceAnalyser::PostprocessOutputFile(string output_file) +void FaceAnalyser::PostprocessOutputFile(std::string output_file) { - vector certainties; - vector successes; - vector timestamps; - vector>> predictions_reg; - vector>> predictions_class; + std::vector certainties; + std::vector successes; + std::vector timestamps; + std::vector>> predictions_reg; + std::vector>> predictions_class; // Construct the new values to overwrite the output file with ExtractAllPredictionsOfflineReg(predictions_reg, certainties, successes, timestamps, dynamic); @@ -1275,12 +1279,12 @@ void FaceAnalyser::PostprocessOutputFile(string output_file) int num_reg = (int)predictions_reg.size(); // Extract the indices of writing out first - vector au_reg_names = GetAURegNames(); + std::vector au_reg_names = GetAURegNames(); std::sort(au_reg_names.begin(), au_reg_names.end()); - vector inds_reg; + std::vector inds_reg; // write out ar the correct index - for (string au_name : au_reg_names) + for (std::string au_name : au_reg_names) { for (int i = 0; i < num_reg; ++i) { @@ -1292,12 +1296,12 @@ void FaceAnalyser::PostprocessOutputFile(string output_file) } } - vector au_class_names = GetAUClassNames(); + std::vector au_class_names = GetAUClassNames(); std::sort(au_class_names.begin(), au_class_names.end()); - vector inds_class; + std::vector inds_class; // write out ar the correct index - for (string au_name : au_class_names) + for (std::string au_name : au_class_names) { for (int i = 0; i < num_class; ++i) { @@ -1309,10 +1313,10 @@ void FaceAnalyser::PostprocessOutputFile(string output_file) } } // Read all of the output file in - vector output_file_contents; + std::vector output_file_contents; std::ifstream infile(output_file); - string line; + std::string line; while (std::getline(infile, line)) output_file_contents.push_back(line); @@ -1321,13 +1325,13 @@ void FaceAnalyser::PostprocessOutputFile(string output_file) // Read the header and find all _r and _c parts in a file and use their indices std::vector tokens; - boost::split(tokens, output_file_contents[0], boost::is_any_of(",")); + split(output_file_contents[0], tokens, ','); int begin_ind = -1; for (size_t i = 0; i < tokens.size(); ++i) { - if (tokens[i].find("AU") != string::npos && begin_ind == -1) + if (tokens[i].find("AU") != std::string::npos && begin_ind == -1) { begin_ind = (int)i; break; @@ -1336,21 +1340,21 @@ void FaceAnalyser::PostprocessOutputFile(string output_file) int end_ind = begin_ind + num_class + num_reg; // Now overwrite the whole file - std::ofstream outfile(output_file, ios_base::out); + std::ofstream outfile(output_file, std::ios_base::out); // Write the header outfile << std::setprecision(2); outfile << std::fixed; outfile << std::noshowpoint; - outfile << output_file_contents[0].c_str() << endl; + outfile << output_file_contents[0].c_str() << std::endl; // Write the contents for (int i = 1; i < (int)output_file_contents.size(); ++i) { std::vector tokens; - boost::split(tokens, output_file_contents[i], boost::is_any_of(",")); + split(output_file_contents[i], tokens, ','); - boost::trim(tokens[0]); + rtrim(tokens[0]); outfile << tokens[0]; for (int t = 1; t < (int)tokens.size(); ++t) @@ -1368,11 +1372,11 @@ void FaceAnalyser::PostprocessOutputFile(string output_file) } else { - boost::trim(tokens[t]); + rtrim(tokens[t]); outfile << ", " << tokens[t]; } } - outfile << endl; + outfile << std::endl; } diff --git a/lib/local/FaceAnalyser/src/FaceAnalyserParameters.cpp b/lib/local/FaceAnalyser/src/FaceAnalyserParameters.cpp index c5d3219b0..fb5dd1087 100644 --- a/lib/local/FaceAnalyser/src/FaceAnalyserParameters.cpp +++ b/lib/local/FaceAnalyser/src/FaceAnalyserParameters.cpp @@ -31,20 +31,14 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include #include "FaceAnalyserParameters.h" -// System includes -#include -#include -#include - #ifndef CONFIG_DIR #define CONFIG_DIR "~" #endif -using namespace std; - using namespace FaceAnalysis; FaceAnalyserParameters::FaceAnalyserParameters():root() @@ -53,17 +47,17 @@ FaceAnalyserParameters::FaceAnalyserParameters():root() init(); } -FaceAnalyserParameters::FaceAnalyserParameters(string root_dir) +FaceAnalyserParameters::FaceAnalyserParameters(std::string root_dir) { this->root = root_dir; init(); } -FaceAnalyserParameters::FaceAnalyserParameters(vector &arguments):root() +FaceAnalyserParameters::FaceAnalyserParameters(std::vector &arguments):root() { // First element is reserved for the executable location (useful for finding relative model locs) - this->root = boost::filesystem::path(arguments[0]).parent_path(); + this->root = fs::path(arguments[0]).parent_path(); // initialise the default values init(); @@ -133,17 +127,17 @@ FaceAnalyserParameters::FaceAnalyserParameters(vector &arguments):root() // Make sure model_location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - boost::filesystem::path config_path = boost::filesystem::path(CONFIG_DIR); - boost::filesystem::path model_path = boost::filesystem::path(this->model_location); - if (boost::filesystem::exists(model_path)) + fs::path config_path = fs::path(CONFIG_DIR); + fs::path model_path = fs::path(this->model_location); + if (fs::exists(model_path)) { this->model_location = model_path.string(); } - else if (boost::filesystem::exists(root/model_path)) + else if (fs::exists(root/model_path)) { this->model_location = (root/model_path).string(); } - else if (boost::filesystem::exists(config_path/model_path)) + else if (fs::exists(config_path/model_path)) { this->model_location = (config_path/model_path).string(); } @@ -166,17 +160,17 @@ void FaceAnalyserParameters::init() // Make sure model_location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - boost::filesystem::path config_path = boost::filesystem::path(CONFIG_DIR); - boost::filesystem::path model_path = boost::filesystem::path(this->model_location); - if (boost::filesystem::exists(model_path)) + fs::path config_path = fs::path(CONFIG_DIR); + fs::path model_path = fs::path(this->model_location); + if (fs::exists(model_path)) { this->model_location = model_path.string(); } - else if (boost::filesystem::exists(root / model_path)) + else if (fs::exists(root / model_path)) { this->model_location = (root / model_path).string(); } - else if (boost::filesystem::exists(config_path / model_path)) + else if (fs::exists(config_path / model_path)) { this->model_location = (config_path / model_path).string(); } @@ -185,7 +179,7 @@ void FaceAnalyserParameters::init() std::cout << "Could not find the face analysis module to load" << std::endl; } - orientation_bins = vector(); + orientation_bins = std::vector(); } @@ -216,17 +210,17 @@ void FaceAnalyserParameters::OptimizeForVideos() // Make sure model_location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - boost::filesystem::path config_path = boost::filesystem::path(CONFIG_DIR); - boost::filesystem::path model_path = boost::filesystem::path(this->model_location); - if (boost::filesystem::exists(model_path)) + fs::path config_path = fs::path(CONFIG_DIR); + fs::path model_path = fs::path(this->model_location); + if (fs::exists(model_path)) { this->model_location = model_path.string(); } - else if (boost::filesystem::exists(root / model_path)) + else if (fs::exists(root / model_path)) { this->model_location = (root / model_path).string(); } - else if (boost::filesystem::exists(config_path / model_path)) + else if (fs::exists(config_path / model_path)) { this->model_location = (config_path / model_path).string(); } @@ -246,17 +240,17 @@ void FaceAnalyserParameters::OptimizeForImages() // Make sure model_location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - boost::filesystem::path config_path = boost::filesystem::path(CONFIG_DIR); - boost::filesystem::path model_path = boost::filesystem::path(this->model_location); - if (boost::filesystem::exists(model_path)) + fs::path config_path = fs::path(CONFIG_DIR); + fs::path model_path = fs::path(this->model_location); + if (fs::exists(model_path)) { this->model_location = model_path.string(); } - else if (boost::filesystem::exists(root / model_path)) + else if (fs::exists(root / model_path)) { this->model_location = (root / model_path).string(); } - else if (boost::filesystem::exists(config_path / model_path)) + else if (fs::exists(config_path / model_path)) { this->model_location = (config_path / model_path).string(); } diff --git a/lib/local/FaceAnalyser/src/Face_utils.cpp b/lib/local/FaceAnalyser/src/Face_utils.cpp index 9a924d0ec..5ebcb25b3 100644 --- a/lib/local/FaceAnalyser/src/Face_utils.cpp +++ b/lib/local/FaceAnalyser/src/Face_utils.cpp @@ -32,21 +32,12 @@ // /////////////////////////////////////////////////////////////////////////////// +#include + #include #include -// OpenCV includes -#include -#include -#include - -// For FHOG visualisation -#include -#include - -using namespace std; - namespace FaceAnalysis { @@ -220,7 +211,7 @@ namespace FaceAnalysis LandmarkDetector::PAW paw(destination_landmarks, triangulation, 0, 0, aligned_face.cols-1, aligned_face.rows-1); // Mask each of the channels (a bit of a roundabout way, but OpenCV 3.1 in debug mode doesn't seem to be able to handle a more direct way using split and merge) - vector aligned_face_channels(aligned_face.channels()); + std::vector aligned_face_channels(aligned_face.channels()); for (int c = 0; c < aligned_face.channels(); ++c) { diff --git a/lib/local/FaceAnalyser/src/SVM_dynamic_lin.cpp b/lib/local/FaceAnalyser/src/SVM_dynamic_lin.cpp index ee404b899..946882f40 100644 --- a/lib/local/FaceAnalyser/src/SVM_dynamic_lin.cpp +++ b/lib/local/FaceAnalyser/src/SVM_dynamic_lin.cpp @@ -31,6 +31,8 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include + #include "Face_utils.h" #include "SVM_dynamic_lin.h" diff --git a/lib/local/FaceAnalyser/src/SVM_static_lin.cpp b/lib/local/FaceAnalyser/src/SVM_static_lin.cpp index 2e8b8cc8f..a9f419c4a 100644 --- a/lib/local/FaceAnalyser/src/SVM_static_lin.cpp +++ b/lib/local/FaceAnalyser/src/SVM_static_lin.cpp @@ -31,6 +31,8 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include + #include "Face_utils.h" #include "SVM_static_lin.h" diff --git a/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp b/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp index 09c27bbf0..bd99b20c3 100644 --- a/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp +++ b/lib/local/FaceAnalyser/src/SVR_dynamic_lin_regressors.cpp @@ -31,6 +31,7 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include #include "Face_utils.h" diff --git a/lib/local/FaceAnalyser/src/SVR_static_lin_regressors.cpp b/lib/local/FaceAnalyser/src/SVR_static_lin_regressors.cpp index c4df7d345..f032bae1a 100644 --- a/lib/local/FaceAnalyser/src/SVR_static_lin_regressors.cpp +++ b/lib/local/FaceAnalyser/src/SVR_static_lin_regressors.cpp @@ -31,6 +31,7 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include #include "Face_utils.h" diff --git a/lib/local/FaceAnalyser/src/stdafx_fa.cpp b/lib/local/FaceAnalyser/src/stdafx_fa.cpp new file mode 100644 index 000000000..e3599d60c --- /dev/null +++ b/lib/local/FaceAnalyser/src/stdafx_fa.cpp @@ -0,0 +1,12 @@ +/////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge, +// all rights reserved. +// +// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY +// +// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT. +// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE. +// +// License can be found in OpenFace-license.txt +// +#include "stdafx_fa.h" \ No newline at end of file diff --git a/lib/local/GazeAnalyser/CMakeLists.txt b/lib/local/GazeAnalyser/CMakeLists.txt index 144ba0464..9c567c90e 100644 --- a/lib/local/GazeAnalyser/CMakeLists.txt +++ b/lib/local/GazeAnalyser/CMakeLists.txt @@ -20,11 +20,9 @@ target_include_directories(GazeAnalyser PUBLIC $/include/OpenFace>) target_include_directories(GazeAnalyser PRIVATE ${GAZEANALYSER_SOURCE_DIR}/include) -target_include_directories(GazeAnalyser PUBLIC ${Boost_INCLUDE_DIRS}) -target_include_directories(GazeAnalyser PUBLIC ${Boost_INCLUDE_DIRS}/boost) target_include_directories(GazeAnalyser PUBLIC ${OpenCV_INCLUDE_DIRS}) -target_link_libraries(GazeAnalyser PUBLIC ${OpenCV_LIBS} ${Boost_LIBRARIES} ${OpenBLAS_LIB}) +target_link_libraries(GazeAnalyser PUBLIC ${OpenCV_LIBS} ${OpenBLAS_LIB}) target_link_libraries(GazeAnalyser PUBLIC dlib::dlib) target_include_directories(GazeAnalyser PRIVATE ${OpenBLAS_INCLUDE_DIR}) diff --git a/lib/local/GazeAnalyser/GazeAnalyser.vcxproj b/lib/local/GazeAnalyser/GazeAnalyser.vcxproj index 7c5c45b6d..9844ed325 100644 --- a/lib/local/GazeAnalyser/GazeAnalyser.vcxproj +++ b/lib/local/GazeAnalyser/GazeAnalyser.vcxproj @@ -21,32 +21,32 @@ {5F915541-F531-434F-9C81-79F5DB58012B} GazeAnalyser - 8.1 + 10.0.17134.0 StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode @@ -57,25 +57,25 @@ - + - + - + - + @@ -93,6 +93,7 @@ true ./include;../LandmarkDetector/include;../Utilities/include;%(AdditionalIncludeDirectories) StreamingSIMDExtensions2 + stdcpp17 @@ -104,6 +105,7 @@ WIN64;_DEBUG;_LIB;EIGEN_MPL2_ONLY;%(PreprocessorDefinitions) + stdcpp17 @@ -119,6 +121,7 @@ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) StreamingSIMDExtensions2 Speed + stdcpp17 true @@ -139,6 +142,7 @@ Speed + stdcpp17 true diff --git a/lib/local/GazeAnalyser/src/GazeEstimation.cpp b/lib/local/GazeAnalyser/src/GazeEstimation.cpp index 507253dc0..4ee850491 100644 --- a/lib/local/GazeAnalyser/src/GazeEstimation.cpp +++ b/lib/local/GazeAnalyser/src/GazeEstimation.cpp @@ -44,8 +44,6 @@ #include "LandmarkDetectorFunc.h" #include "RotationHelpers.h" -using namespace std; - using namespace GazeAnalysis; cv::Point3f RaySphereIntersect(cv::Point3f rayOrigin, cv::Point3f rayDir, cv::Point3f sphereOrigin, float sphereRadius){ diff --git a/lib/local/LandmarkDetector/CMakeLists.txt b/lib/local/LandmarkDetector/CMakeLists.txt index adc26239f..a561361e1 100644 --- a/lib/local/LandmarkDetector/CMakeLists.txt +++ b/lib/local/LandmarkDetector/CMakeLists.txt @@ -45,13 +45,18 @@ target_include_directories(LandmarkDetector PUBLIC $/include/OpenFace>) target_include_directories(LandmarkDetector PRIVATE ${LandmarkDetector_SOURCE_DIR}/include) -target_include_directories(LandmarkDetector PUBLIC ${Boost_INCLUDE_DIRS}) -target_include_directories(LandmarkDetector PUBLIC ${Boost_INCLUDE_DIRS}/boost) target_include_directories(LandmarkDetector PUBLIC ${OpenCV_INCLUDE_DIRS}) -target_link_libraries(LandmarkDetector PUBLIC ${OpenCV_LIBS} ${Boost_LIBRARIES} ${OpenBLAS_LIB}) +target_link_libraries(LandmarkDetector PUBLIC ${OpenCV_LIBS} ${OpenBLAS_LIB}) target_link_libraries(LandmarkDetector PUBLIC dlib::dlib) +if(${Boost_FOUND}) + target_include_directories(LandmarkDetector PUBLIC ${Boost_INCLUDE_DIRS}) + target_link_libraries(LandmarkDetector PUBLIC ${Boost_LIBRARIES}) +else() + target_link_libraries(LandmarkDetector PUBLIC stdc++fs) +endif() + target_include_directories(LandmarkDetector PRIVATE ${OpenBLAS_INCLUDE_DIR}) install (TARGETS LandmarkDetector EXPORT OpenFaceTargets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) diff --git a/lib/local/LandmarkDetector/LandmarkDetector.vcxproj b/lib/local/LandmarkDetector/LandmarkDetector.vcxproj index 8ddfae86f..5b171f487 100644 --- a/lib/local/LandmarkDetector/LandmarkDetector.vcxproj +++ b/lib/local/LandmarkDetector/LandmarkDetector.vcxproj @@ -23,59 +23,56 @@ FaceTracker Win32Proj LandmarkDetector + 10.0.17134.0 StaticLibrary Unicode true - v140 + v141 StaticLibrary Unicode true - v140 + v141 StaticLibrary Unicode - v140 + v141 StaticLibrary Unicode - v140 + v141 - - + - - + - - + - - + @@ -101,13 +98,14 @@ false /Zm300 %(AdditionalOptions) true + stdcpp17 $(OutDir)$(TargetName)$(TargetExt) xcopy /I /E /Y /D "$(SolutionDir)lib\local\LandmarkDetector\model" "$(OutDir)model" -xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)classifiers" +xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV\classifiers" "$(OutDir)classifiers" @@ -125,13 +123,14 @@ xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)c false /Zm300 %(AdditionalOptions) true + stdcpp17 $(OutDir)$(TargetName)$(TargetExt) xcopy /I /E /Y /D "$(SolutionDir)lib\local\LandmarkDetector\model" "$(OutDir)model" -xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)classifiers" +xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV\classifiers" "$(OutDir)classifiers" @@ -150,13 +149,14 @@ xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)c false /Zm300 %(AdditionalOptions) true + stdcpp17 $(OutDir)$(TargetName)$(TargetExt) xcopy /I /E /Y /D "$(SolutionDir)lib\local\LandmarkDetector\model" "$(OutDir)model" -xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)classifiers" +xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV\classifiers" "$(OutDir)classifiers" @@ -176,13 +176,14 @@ xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)c false /Zm300 %(AdditionalOptions) true + stdcpp17 $(OutDir)$(TargetName)$(TargetExt) xcopy /I /E /Y /D "$(SolutionDir)lib\local\LandmarkDetector\model" "$(OutDir)model" -xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV3.4\classifiers" "$(OutDir)classifiers" +xcopy /I /E /Y /D "$(SolutionDir)lib\3rdParty\OpenCV\classifiers" "$(OutDir)classifiers" diff --git a/lib/local/LandmarkDetector/include/CNN_utils.h b/lib/local/LandmarkDetector/include/CNN_utils.h index e01429ed3..49430185e 100644 --- a/lib/local/LandmarkDetector/include/CNN_utils.h +++ b/lib/local/LandmarkDetector/include/CNN_utils.h @@ -37,8 +37,6 @@ // OpenCV includes #include -using namespace std; - namespace LandmarkDetector { //=========================================================================== @@ -54,7 +52,9 @@ namespace LandmarkDetector void max_pooling(std::vector >& outputs, const std::vector >& input_maps, int stride_x, int stride_y, int kernel_size_x, int kernel_size_y); // Convolution using FFT optimization rather than matrix multiplication, TODO do these still work - void convolution_fft2(std::vector >& outputs, const std::vector >& input_maps, const std::vector > >& kernels, const std::vector& biases, vector > > >& precomp_dfts); + void convolution_fft2(std::vector >& outputs, const std::vector >& input_maps, + const std::vector > >& kernels, const std::vector& biases, + std::vector > > >& precomp_dfts); // Convolution using matrix multiplication and OpenBLAS optimization, can also provide a pre-allocated im2col result for faster processing void convolution_direct_blas(std::vector >& outputs, const std::vector >& input_maps, const cv::Mat_& weight_matrix, int height_k, int width_k, cv::Mat_& pre_alloc_im2col); diff --git a/lib/local/LandmarkDetector/include/FaceDetectorMTCNN.h b/lib/local/LandmarkDetector/include/FaceDetectorMTCNN.h index d1a5688bc..29474b9d7 100644 --- a/lib/local/LandmarkDetector/include/FaceDetectorMTCNN.h +++ b/lib/local/LandmarkDetector/include/FaceDetectorMTCNN.h @@ -40,8 +40,6 @@ // System includes #include -using namespace std; - namespace LandmarkDetector { class CNN @@ -60,7 +58,7 @@ namespace LandmarkDetector std::vector > Inference(const cv::Mat& input_img, bool direct = true, bool thread_safe = false); // Reading in the model - void Read(const string& location); + void Read(const std::string& location); // Clearing precomputed DFTs void ClearPrecomp(); @@ -73,25 +71,25 @@ namespace LandmarkDetector // CNN layers // Layer -> Weight matrix - vector > cnn_convolutional_layers_weights; + std::vector > cnn_convolutional_layers_weights; // Keeping some pre-allocated im2col data as malloc is a significant time cost (not thread safe though) - vector > conv_layer_pre_alloc_im2col; + std::vector > conv_layer_pre_alloc_im2col; // Layer -> kernel -> input maps - vector > > > cnn_convolutional_layers; - vector > cnn_convolutional_layers_bias; + std::vector > > > cnn_convolutional_layers; + std::vector > cnn_convolutional_layers_bias; // Layer matrix + bas - vector > cnn_fully_connected_layers_weights; - vector > cnn_fully_connected_layers_biases; - vector > cnn_prelu_layer_weights; - vector > cnn_max_pooling_layers; + std::vector > cnn_fully_connected_layers_weights; + std::vector > cnn_fully_connected_layers_biases; + std::vector > cnn_prelu_layer_weights; + std::vector > cnn_max_pooling_layers; // Precomputations for faster convolution - vector > > > > cnn_convolutional_layers_dft; + std::vector > > > > cnn_convolutional_layers_dft; // CNN: 0 - convolutional, 1 - max pooling, 2 - fully connected, 3 - prelu, 4 - sigmoid - vector cnn_layer_types; + std::vector cnn_layer_types; }; //=========================================================================== // @@ -107,16 +105,17 @@ namespace LandmarkDetector // Default constructor FaceDetectorMTCNN() { ; } - FaceDetectorMTCNN(const string& location); + FaceDetectorMTCNN(const std::string& location); // Copy constructor FaceDetectorMTCNN(const FaceDetectorMTCNN& other); // Given an image, orientation and detected landmarks output the result of the appropriate regressor - bool DetectFaces(vector >& o_regions, const cv::Mat& input_img, std::vector& o_confidences, int min_face = 60, float t1 = 0.6, float t2 = 0.7, float t3 = 0.7); + bool DetectFaces(std::vector >& o_regions, const cv::Mat& input_img, + std::vector& o_confidences, int min_face = 60, float t1 = 0.6, float t2 = 0.7, float t3 = 0.7); // Reading in the model - void Read(const string& location); + void Read(const std::string& location); // Indicate if the model has been read in bool empty() { return PNet.NumberOfLayers() == 0 || RNet.NumberOfLayers() == 0 || ONet.NumberOfLayers() == 0; }; diff --git a/lib/local/LandmarkDetector/include/LandmarkDetectionValidator.h b/lib/local/LandmarkDetector/include/LandmarkDetectionValidator.h index e3ff7cfe6..1a679a704 100644 --- a/lib/local/LandmarkDetector/include/LandmarkDetectionValidator.h +++ b/lib/local/LandmarkDetector/include/LandmarkDetectionValidator.h @@ -44,8 +44,6 @@ // Local includes #include "PAW.h" -using namespace std; - namespace LandmarkDetector { //=========================================================================== @@ -60,31 +58,31 @@ class DetectionValidator public: // The orientations of each of the landmark detection validator - vector orientations; + std::vector orientations; // Piecewise affine warps to the reference shape (per orientation) - vector paws; + std::vector paws; //========================================== // Convolutional Neural Network // CNN layers for each view // view -> layer - vector > > > > cnn_convolutional_layers; - vector > > cnn_convolutional_layers_weights; - vector > > cnn_convolutional_layers_im2col_precomp; + std::vector > > > > cnn_convolutional_layers; + std::vector > > cnn_convolutional_layers_weights; + std::vector > > cnn_convolutional_layers_im2col_precomp; - vector< vector > cnn_subsampling_layers; - vector< vector > > cnn_fully_connected_layers_weights; - vector< vector > > cnn_fully_connected_layers_biases; + std::vector< std::vector > cnn_subsampling_layers; + std::vector< std::vector > > cnn_fully_connected_layers_weights; + std::vector< std::vector > > cnn_fully_connected_layers_biases; // NEW CNN: 0 - convolutional, 1 - max pooling (2x2 stride 2), 2 - fully connected, 3 - relu, 4 - sigmoid - vector > cnn_layer_types; + std::vector > cnn_layer_types; //========================================== // Normalisation for face validation - vector > mean_images; - vector > standard_deviations; + std::vector > mean_images; + std::vector > standard_deviations; // Default constructor DetectionValidator(){;} @@ -96,7 +94,7 @@ class DetectionValidator float Check(const cv::Vec3d& orientation, const cv::Mat_& intensity_img, cv::Mat_& detected_landmarks); // Reading in the model - void Read(string location); + void Read(std::string location); // Getting the closest view center based on orientation int GetViewId(const cv::Vec3d& orientation) const; diff --git a/lib/local/LandmarkDetector/include/LandmarkDetectorFunc.h b/lib/local/LandmarkDetector/include/LandmarkDetectorFunc.h index 5478b248d..364b36d00 100644 --- a/lib/local/LandmarkDetector/include/LandmarkDetectorFunc.h +++ b/lib/local/LandmarkDetector/include/LandmarkDetectorFunc.h @@ -45,8 +45,6 @@ #include #include -using namespace std; - namespace LandmarkDetector { diff --git a/lib/local/LandmarkDetector/include/LandmarkDetectorModel.h b/lib/local/LandmarkDetector/include/LandmarkDetectorModel.h index 0b2d83e53..77baf053e 100644 --- a/lib/local/LandmarkDetector/include/LandmarkDetectorModel.h +++ b/lib/local/LandmarkDetector/include/LandmarkDetectorModel.h @@ -49,8 +49,6 @@ #include "LandmarkDetectorParameters.h" #include "FaceDetectorMTCNN.h" -using namespace std; - namespace LandmarkDetector { @@ -79,10 +77,10 @@ class CLNF{ cv::Vec6f params_global; // A collection of hierarchical CLNF models that can be used for refinement - vector hierarchical_models; - vector hierarchical_model_names; - vector>> hierarchical_mapping; - vector hierarchical_params; + std::vector hierarchical_models; + std::vector hierarchical_model_names; + std::vector>> hierarchical_mapping; + std::vector hierarchical_params; //==================== Helpers for face detection and landmark detection validation ========================================= @@ -90,13 +88,13 @@ class CLNF{ // Haar cascade classifier for face detection cv::CascadeClassifier face_detector_HAAR; - string haar_face_detector_location; + std::string haar_face_detector_location; // A HOG SVM-struct based face detector dlib::frontal_face_detector face_detector_HOG; FaceDetectorMTCNN face_detector_MTCNN; - string mtcnn_face_detector_location; + std::string mtcnn_face_detector_location; // Validate if the detected landmarks are correct using an SVR regressor DetectionValidator landmark_validator; @@ -114,7 +112,7 @@ class CLNF{ bool eye_model; // the triangulation per each view (for drawing purposes only) - vector > triangulations; + std::vector > triangulations; //=========================================================================== // Member variables that retain the state of the tracking (reflecting the state of the lastly tracked (detected) image @@ -146,7 +144,7 @@ class CLNF{ CLNF(); // Constructor from a model file - CLNF(string fname); + CLNF(std::string fname); // Copy constructor (makes a deep copy of the detector) CLNF(const CLNF& other); @@ -183,25 +181,30 @@ class CLNF{ void Reset(double x, double y); // Reading the model in - void Read(string name); + void Read(std::string name); private: // Helper reading function - bool Read_CLNF(string clnf_location); + bool Read_CLNF(std::string clnf_location); // the speedup of RLMS using precalculated KDE responses (described in Saragih 2011 RLMS paper) - map > kde_resp_precalc; + std::map > kde_resp_precalc; // The model fitting: patch response computation and optimisation steps bool Fit(const cv::Mat_& intensity_image, const std::vector& window_sizes, const FaceModelParameters& parameters); // Mean shift computation that uses precalculated kernel density estimators (the one actually used) - void NonVectorisedMeanShift_precalc_kde(cv::Mat_& out_mean_shifts, const vector >& patch_expert_responses, const cv::Mat_ &dxs, const cv::Mat_ &dys, int resp_size, float a, int scale, int view_id, map >& mean_shifts); + void NonVectorisedMeanShift_precalc_kde(cv::Mat_& out_mean_shifts, const std::vector >& patch_expert_responses, + const cv::Mat_ &dxs, const cv::Mat_ &dys, int resp_size, float a, int scale, int view_id, + std::map >& mean_shifts); // The actual model optimisation (update step), returns the model likelihood - float NU_RLMS(cv::Vec6f& final_global, cv::Mat_& final_local, const vector >& patch_expert_responses, const cv::Vec6f& initial_global, const cv::Mat_& initial_local, - const cv::Mat_& base_shape, const cv::Matx22f& sim_img_to_ref, const cv::Matx22f& sim_ref_to_img, int resp_size, int view_idx, bool rigid, int scale, cv::Mat_& landmark_lhoods, const FaceModelParameters& parameters, bool compute_lhood); + float NU_RLMS(cv::Vec6f& final_global, cv::Mat_& final_local, const std::vector >& patch_expert_responses, + const cv::Vec6f& initial_global, const cv::Mat_& initial_local, + const cv::Mat_& base_shape, const cv::Matx22f& sim_img_to_ref, + const cv::Matx22f& sim_ref_to_img, int resp_size, int view_idx, bool rigid, int scale, + cv::Mat_& landmark_lhoods, const FaceModelParameters& parameters, bool compute_lhood); // Generating the weight matrix for the Weighted least squares void GetWeightMatrix(cv::Mat_& WeightMatrix, int scale, int view_id, const FaceModelParameters& parameters); diff --git a/lib/local/LandmarkDetector/include/LandmarkDetectorParameters.h b/lib/local/LandmarkDetector/include/LandmarkDetectorParameters.h index 71f0b32fc..7428a20c7 100644 --- a/lib/local/LandmarkDetector/include/LandmarkDetectorParameters.h +++ b/lib/local/LandmarkDetector/include/LandmarkDetectorParameters.h @@ -38,8 +38,6 @@ #include -using namespace std; - namespace LandmarkDetector { @@ -59,20 +57,20 @@ struct FaceModelParameters float validation_boundary; // Used when tracking is going well - vector window_sizes_small; + std::vector window_sizes_small; // Used when initialising or tracking fails - vector window_sizes_init; + std::vector window_sizes_init; // Used for the current frame - vector window_sizes_current; + std::vector window_sizes_current; // How big is the tracking template that helps with large motions float face_template_scale; bool use_face_template; // Where to load the model from - string model_location; + std::string model_location; // this is used for the smooting of response maps (KDE sigma) float sigma; @@ -95,8 +93,8 @@ struct FaceModelParameters // MTCNN detector is much more accurate that the other two, and is even suitable for profile faces, but it is somewhat slower enum FaceDetector{HAAR_DETECTOR, HOG_SVM_DETECTOR, MTCNN_DETECTOR}; - string haar_face_detector_location; - string mtcnn_face_detector_location; + std::string haar_face_detector_location; + std::string mtcnn_face_detector_location; FaceDetector curr_face_detector; // Should the model be refined hierarchically (if available) @@ -107,7 +105,7 @@ struct FaceModelParameters FaceModelParameters(); - FaceModelParameters(vector &arguments); + FaceModelParameters(std::vector &arguments); private: void init(); diff --git a/lib/local/LandmarkDetector/include/LandmarkDetectorUtils.h b/lib/local/LandmarkDetector/include/LandmarkDetectorUtils.h index f578d98e2..61acce0da 100644 --- a/lib/local/LandmarkDetector/include/LandmarkDetectorUtils.h +++ b/lib/local/LandmarkDetector/include/LandmarkDetectorUtils.h @@ -42,8 +42,6 @@ #include "FaceDetectorMTCNN.h" -using namespace std; - namespace LandmarkDetector { //=========================================================================== @@ -55,38 +53,39 @@ namespace LandmarkDetector // This is a modified version of openCV code that allows for precomputed dfts of templates and for precomputed dfts of an image // _img is the input img, _img_dft it's dft (optional), _integral_img the images integral image (optional), squared integral image (optional), // templ is the template we are convolving with, templ_dfts it's dfts at varying windows sizes (optional), _result - the output, method the type of convolution - void matchTemplate_m(const cv::Mat_& input_img, cv::Mat_& img_dft, cv::Mat& _integral_img, cv::Mat& _integral_img_sq, const cv::Mat_& templ, map >& templ_dfts, cv::Mat_& result, int method); + void matchTemplate_m(const cv::Mat_& input_img, cv::Mat_& img_dft, cv::Mat& _integral_img, cv::Mat& _integral_img_sq, + const cv::Mat_& templ, std::map >& templ_dfts, cv::Mat_& result, int method); // Useful utility for grabing a bounding box around a set of 2D landmarks (as a 1D 2n x 1 vector of xs followed by doubles or as an n x 2 vector) void ExtractBoundingBox(const cv::Mat_& landmarks, float &min_x, float &max_x, float &min_y, float &max_y); - vector CalculateVisibleLandmarks(const cv::Mat_& shape2D, const cv::Mat_& visibilities); - vector CalculateVisibleLandmarks(const CLNF& clnf_model); - vector CalculateVisibleEyeLandmarks(const CLNF& clnf_model); + std::vector CalculateVisibleLandmarks(const cv::Mat_& shape2D, const cv::Mat_& visibilities); + std::vector CalculateVisibleLandmarks(const CLNF& clnf_model); + std::vector CalculateVisibleEyeLandmarks(const CLNF& clnf_model); - vector CalculateAllLandmarks(const cv::Mat_& shape2D); - vector CalculateAllLandmarks(const CLNF& clnf_model); - vector CalculateAllEyeLandmarks(const CLNF& clnf_model); - vector Calculate3DEyeLandmarks(const CLNF& clnf_model, float fx, float fy, float cx, float cy); + std::vector CalculateAllLandmarks(const cv::Mat_& shape2D); + std::vector CalculateAllLandmarks(const CLNF& clnf_model); + std::vector CalculateAllEyeLandmarks(const CLNF& clnf_model); + std::vector Calculate3DEyeLandmarks(const CLNF& clnf_model, float fx, float fy, float cx, float cy); //============================================================================ // Face detection helpers //============================================================================ // Face detection using Haar cascade classifier - bool DetectFaces(vector >& o_regions, const cv::Mat_& intensity, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); - bool DetectFaces(vector >& o_regions, const cv::Mat_& intensity, cv::CascadeClassifier& classifier, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); + bool DetectFaces(std::vector >& o_regions, const cv::Mat_& intensity, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); + bool DetectFaces(std::vector >& o_regions, const cv::Mat_& intensity, cv::CascadeClassifier& classifier, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); // The preference point allows for disambiguation if multiple faces are present (pick the closest one), if it is not set the biggest face is chosen bool DetectSingleFace(cv::Rect_& o_region, const cv::Mat_& intensity, cv::CascadeClassifier& classifier, const cv::Point preference = cv::Point(-1, -1), float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); // Face detection using HOG-SVM classifier - bool DetectFacesHOG(vector >& o_regions, const cv::Mat_& intensity, std::vector& confidences, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); - bool DetectFacesHOG(vector >& o_regions, const cv::Mat_& intensity, dlib::frontal_face_detector& classifier, std::vector& confidences, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); + bool DetectFacesHOG(std::vector >& o_regions, const cv::Mat_& intensity, std::vector& confidences, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); + bool DetectFacesHOG(std::vector >& o_regions, const cv::Mat_& intensity, dlib::frontal_face_detector& classifier, std::vector& confidences, float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); // The preference point allows for disambiguation if multiple faces are present (pick the closest one), if it is not set the biggest face is chosen bool DetectSingleFaceHOG(cv::Rect_& o_region, const cv::Mat_& intensity, dlib::frontal_face_detector& classifier, float& confidence, const cv::Point preference = cv::Point(-1, -1), float min_width = -1, cv::Rect_ roi = cv::Rect_(0.0, 0.0, 1.0, 1.0)); // Face detection using Multi-task Convolutional Neural Network - bool DetectFacesMTCNN(vector >& o_regions, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, std::vector& confidences); + bool DetectFacesMTCNN(std::vector >& o_regions, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, std::vector& confidences); // The preference point allows for disambiguation if multiple faces are present (pick the closest one), if it is not set the biggest face is chosen bool DetectSingleFaceMTCNN(cv::Rect_& o_region, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, float& confidence, const cv::Point preference = cv::Point(-1, -1)); diff --git a/lib/local/LandmarkDetector/include/PDM.h b/lib/local/LandmarkDetector/include/PDM.h index 3124d69a7..114e795d2 100644 --- a/lib/local/LandmarkDetector/include/PDM.h +++ b/lib/local/LandmarkDetector/include/PDM.h @@ -64,7 +64,7 @@ class PDM{ // A copy constructor PDM(const PDM& other); - bool Read(string location); + bool Read(std::string location); // Number of vertices inline int NumberOfPoints() const {return mean_shape.rows/3;} diff --git a/lib/local/LandmarkDetector/include/Patch_experts.h b/lib/local/LandmarkDetector/include/Patch_experts.h index 4cef7dbec..5ddea786e 100644 --- a/lib/local/LandmarkDetector/include/Patch_experts.h +++ b/lib/local/LandmarkDetector/include/Patch_experts.h @@ -56,36 +56,36 @@ class Patch_experts public: // The collection of SVR patch experts (for intensity/grayscale images), the experts are laid out scale->view->landmark - vector > > svr_expert_intensity; + std::vector > > svr_expert_intensity; // The collection of LNF (CCNF) patch experts (for intensity images), the experts are laid out scale->view->landmark - vector > > ccnf_expert_intensity; + std::vector > > ccnf_expert_intensity; // The node connectivity for CCNF experts, at different window sizes and corresponding to separate edge features - vector > > sigma_components; + std::vector > > sigma_components; // The collection of CEN patch experts (for intensity images), the experts are laid out scale->view->landmark - vector > > cen_expert_intensity; + std::vector > > cen_expert_intensity; //Useful to pre-allocate data for im2col so that it is not allocated for every iteration and every patch - vector< map > > preallocated_im2col; + std::vector< std::map > > preallocated_im2col; // The available scales for intensity patch experts - vector patch_scaling; + std::vector patch_scaling; // The available views for the patch experts at every scale (in radians) - vector > centers; + std::vector > centers; // Landmark visibilities for each scale and view - vector > > visibilities; + std::vector > > visibilities; cv::Mat_ mirror_inds; cv::Mat_ mirror_views; // Early termination calibration values, useful for CE-CLM model to speed up the multi-hypothesis setup - vector early_term_weights; - vector early_term_biases; - vector early_term_cutoffs; + std::vector early_term_weights; + std::vector early_term_biases; + std::vector early_term_cutoffs; // A default constructor @@ -98,7 +98,7 @@ class Patch_experts // Additionally returns the transform from the image coordinates to the response coordinates (and vice versa). // The computation also requires the current landmark locations to compute response around, the PDM corresponding to the desired model, and the parameters describing its instance // Also need to provide the size of the area of interest and the desired scale of analysis - void Response(vector >& patch_expert_responses, cv::Matx22f& sim_ref_to_img, cv::Matx22f& sim_img_to_ref, const cv::Mat_& grayscale_image, + void Response(std::vector >& patch_expert_responses, cv::Matx22f& sim_ref_to_img, cv::Matx22f& sim_img_to_ref, const cv::Mat_& grayscale_image, const PDM& pdm, const cv::Vec6f& params_global, const cv::Mat_& params_local, int window_size, int scale); // Getting the best view associated with the current orientation @@ -108,16 +108,17 @@ class Patch_experts inline int nViews(size_t scale = 0) const { return (int)centers[scale].size(); }; // Reading in all of the patch experts - bool Read(vector intensity_svr_expert_locations, vector intensity_ccnf_expert_locations, vector intensity_cen_expert_locations, string early_term_loc = ""); + bool Read(std::vector intensity_svr_expert_locations, std::vector intensity_ccnf_expert_locations, + std::vector intensity_cen_expert_locations, std::string early_term_loc = ""); private: - bool Read_SVR_patch_experts(string expert_location, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& scale); - bool Read_CCNF_patch_experts(string patchesFileLocation, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& patchScaling); - bool Read_CEN_patch_experts(string expert_location, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& scale); + bool Read_SVR_patch_experts(std::string expert_location, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& scale); + bool Read_CCNF_patch_experts(std::string patchesFileLocation, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& patchScaling); + bool Read_CEN_patch_experts(std::string expert_location, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& scale); // Helper for collecting visibilities - std::vector Collect_visible_landmarks(vector > > visibilities, int scale, int view_id, int n); + std::vector Collect_visible_landmarks(std::vector > > visibilities, int scale, int view_id, int n); }; } diff --git a/lib/local/LandmarkDetector/include/stdafx.h b/lib/local/LandmarkDetector/include/stdafx.h index 8b29a1075..d50e05bc7 100644 --- a/lib/local/LandmarkDetector/include/stdafx.h +++ b/lib/local/LandmarkDetector/include/stdafx.h @@ -27,7 +27,7 @@ #include #include -// C++ stuff +// C++ standard stuff #include #include @@ -40,9 +40,19 @@ #define _USE_MATH_DEFINES #include -// Boost stuff -#include -#include +// Filesystem stuff +// It can either be in std filesystem (C++17), or in experimental/filesystem (partial C++17 support) or in boost +#if __has_include() +#include +#include +namespace fs = boost::filesystem; +#elif __has_include() +#include +namespace fs = std::filesystem; +#elif __has_include() +#include +namespace fs = std::filesystem; +#endif // OpenBLAS stuff diff --git a/lib/local/LandmarkDetector/src/CCNF_patch_expert.cpp b/lib/local/LandmarkDetector/src/CCNF_patch_expert.cpp index e332bf1b6..d3ea2e0ce 100644 --- a/lib/local/LandmarkDetector/src/CCNF_patch_expert.cpp +++ b/lib/local/LandmarkDetector/src/CCNF_patch_expert.cpp @@ -119,7 +119,7 @@ void CCNF_patch_expert::ComputeSigmas(std::vector > sigma_compon } //=========================================================================== -void CCNF_neuron::Read(ifstream &stream) +void CCNF_neuron::Read(std::ifstream &stream) { // Sanity check int read_type; @@ -285,7 +285,7 @@ void CCNF_neuron::Response(const cv::Mat_ &im, cv::Mat_ &im_dft, } //=========================================================================== -void CCNF_patch_expert::Read(ifstream &stream, std::vector window_sizes, std::vector > > sigma_components) +void CCNF_patch_expert::Read(std::ifstream &stream, std::vector window_sizes, std::vector > > sigma_components) { // Sanity check diff --git a/lib/local/LandmarkDetector/src/CEN_patch_expert.cpp b/lib/local/LandmarkDetector/src/CEN_patch_expert.cpp index 1016984e3..351692c8b 100644 --- a/lib/local/LandmarkDetector/src/CEN_patch_expert.cpp +++ b/lib/local/LandmarkDetector/src/CEN_patch_expert.cpp @@ -63,7 +63,7 @@ CEN_patch_expert::CEN_patch_expert(const CEN_patch_expert& other) : confidence(o } //=========================================================================== -void CEN_patch_expert::Read(ifstream &stream) +void CEN_patch_expert::Read(std::ifstream &stream) { // Setting up OpenBLAS @@ -400,7 +400,8 @@ void im2colBiasSparse(const cv::Mat_& input, const unsigned int width, co } // As the sparse patch expert output with interpolation, this function creates an interpolation matrix -void LandmarkDetector::interpolationMatrix(cv::Mat_& mapMatrix, int response_height, int response_width, int input_width, int input_height) +void LandmarkDetector::interpolationMatrix(cv::Mat_& mapMatrix, int response_height, int response_width, + int input_width, int input_height) { int m = input_height; int n = input_width; @@ -444,7 +445,7 @@ void LandmarkDetector::interpolationMatrix(cv::Mat_& mapMatrix, int respo } float num_neigh = 0.0; - vector val_ids; + std::vector val_ids; if (x - 1 >= 0) { num_neigh++; diff --git a/lib/local/LandmarkDetector/src/CNN_utils.cpp b/lib/local/LandmarkDetector/src/CNN_utils.cpp index 6c3808975..3606073e7 100644 --- a/lib/local/LandmarkDetector/src/CNN_utils.cpp +++ b/lib/local/LandmarkDetector/src/CNN_utils.cpp @@ -35,8 +35,6 @@ #include "CNN_utils.h" -using namespace std; - namespace LandmarkDetector { @@ -162,7 +160,7 @@ namespace LandmarkDetector void max_pooling(std::vector >& outputs, const std::vector >& input_maps, int stride_x, int stride_y, int kernel_size_x, int kernel_size_y) { - vector > outputs_sub; + std::vector > outputs_sub; // Iterate over kernel height and width, based on stride for (size_t in = 0; in < input_maps.size(); ++in) @@ -215,7 +213,8 @@ namespace LandmarkDetector } - void convolution_single_kern_fft(const vector >& input_imgs, vector >& img_dfts, const vector >& _templs, map > >& _templ_dfts, cv::Mat_& result) + void convolution_single_kern_fft(const std::vector >& input_imgs, std::vector >& img_dfts, + const std::vector >& _templs, std::map > >& _templ_dfts, cv::Mat_& result) { // Assume result is defined properly if (result.empty()) @@ -242,7 +241,7 @@ namespace LandmarkDetector blocksize.height = dftsize.height - _templs[0].rows + 1; blocksize.height = MIN(blocksize.height, result.rows); - vector> dftTempl; + std::vector> dftTempl; // if this has not been precomputed, precompute it, otherwise use it if (_templ_dfts.find(dftsize.width) == _templ_dfts.end()) @@ -284,7 +283,7 @@ namespace LandmarkDetector cv::Mat cdst(result, cv::Rect(0, 0, bsz.width, bsz.height)); - vector > dftImgs; + std::vector > dftImgs; dftImgs.resize(input_imgs.size()); if (img_dfts.empty()) @@ -336,12 +335,14 @@ namespace LandmarkDetector } - void convolution_fft2(std::vector >& outputs, const std::vector >& input_maps, const std::vector > >& kernels, const std::vector& biases, vector > > >& precomp_dfts) + void convolution_fft2(std::vector >& outputs, const std::vector >& input_maps, + const std::vector > >& kernels, const std::vector& biases, + std::vector > > >& precomp_dfts) { outputs.clear(); // Useful precomputed data placeholders for quick correlation (convolution) - vector > input_image_dft; + std::vector > input_image_dft; for (size_t k = 0; k < kernels.size(); ++k) { @@ -441,7 +442,8 @@ namespace LandmarkDetector } } - void im2col_multimap(const vector >& inputs, const unsigned int width, const unsigned int height, cv::Mat_& output) + void im2col_multimap(const std::vector >& inputs, const unsigned int width, const unsigned int height, + cv::Mat_& output) { const unsigned int m = inputs[0].rows; diff --git a/lib/local/LandmarkDetector/src/FaceDetectorMTCNN.cpp b/lib/local/LandmarkDetector/src/FaceDetectorMTCNN.cpp index 5ba1c3ebe..b7473e373 100644 --- a/lib/local/LandmarkDetector/src/FaceDetectorMTCNN.cpp +++ b/lib/local/LandmarkDetector/src/FaceDetectorMTCNN.cpp @@ -36,22 +36,6 @@ #include "FaceDetectorMTCNN.h" -// OpenCV includes -#include -#include - -// System includes -#include - -// Math includes -#define _USE_MATH_DEFINES -#include - -// Boost includes -#include -#include - - #ifndef M_PI #define M_PI 3.14159265358979323846 #endif @@ -74,7 +58,7 @@ extern "C" { using namespace LandmarkDetector; // Constructor from model file location -FaceDetectorMTCNN::FaceDetectorMTCNN(const string& location) +FaceDetectorMTCNN::FaceDetectorMTCNN(const std::string& location) { this->Read(location); } @@ -152,12 +136,12 @@ std::vector> CNN::Inference(const cv::Mat& input_img, bool direc cv::split(input_img, channels); // Flip the BGR order to RGB - vector > input_maps; + std::vector > input_maps; input_maps.push_back(channels[2]); input_maps.push_back(channels[1]); input_maps.push_back(channels[0]); - vector > outputs; + std::vector > outputs; for (size_t layer = 0; layer < cnn_layer_types.size(); ++layer) { @@ -266,15 +250,15 @@ void CNN::ClearPrecomp() } } -void CNN::Read(const string& location) +void CNN::Read(const std::string& location) { openblas_set_num_threads(1); - ifstream cnn_stream(location, ios::in | ios::binary); + std::ifstream cnn_stream(location, std::ios::in | std::ios::binary); if (cnn_stream.is_open()) { - cnn_stream.seekg(0, ios::beg); + cnn_stream.seekg(0, std::ios::beg); // Reading in CNNs @@ -302,11 +286,11 @@ void CNN::Read(const string& location) int num_kernels; cnn_stream.read((char*)&num_kernels, 4); - vector > > kernels; + std::vector > > kernels; kernels.resize(num_in_maps); - vector biases; + std::vector biases; for (int k = 0; k < num_kernels; ++k) { float bias; @@ -330,7 +314,7 @@ void CNN::Read(const string& location) } // Rearrange the kernels for faster inference with FFT - vector > > kernels_rearr; + std::vector > > kernels_rearr; kernels_rearr.resize(num_kernels); // Fill up the rearranged layer @@ -345,7 +329,7 @@ void CNN::Read(const string& location) cnn_convolutional_layers.push_back(kernels_rearr); // Place-holders for DFT precomputation - vector > > > cnn_convolutional_layers_dft_curr_layer; + std::vector > > > cnn_convolutional_layers_dft_curr_layer; cnn_convolutional_layers_dft_curr_layer.resize(num_kernels); cnn_convolutional_layers_dft.push_back(cnn_convolutional_layers_dft_curr_layer); @@ -408,37 +392,37 @@ void CNN::Read(const string& location) } else { - cout << "WARNING: Can't find the CNN location" << endl; + std::cout << "WARNING: Can't find the CNN location" << std::endl; } } //=========================================================================== // Read in the MTCNN detector -void FaceDetectorMTCNN::Read(const string& location) +void FaceDetectorMTCNN::Read(const std::string& location) { - cout << "Reading the MTCNN face detector from: " << location << endl; + std::cout << "Reading the MTCNN face detector from: " << location << std::endl; - ifstream locations(location.c_str(), ios_base::in); + std::ifstream locations(location.c_str(), std::ios_base::in); if (!locations.is_open()) { - cout << "MTCNN model file not found or can't be opened" << endl; + std::cout << "MTCNN model file not found or can't be opened" << std::endl; return; } - string line; + std::string line; // The other module locations should be defined as relative paths from the main model - boost::filesystem::path root = boost::filesystem::path(location).parent_path(); + fs::path root = fs::path(location).parent_path(); // The main file contains the references to other files while (!locations.eof()) { getline(locations, line); - stringstream lineStream(line); + std::stringstream lineStream(line); - string module; - string location; + std::string module; + std::string location; // figure out which module is to be read from which file lineStream >> module; @@ -455,17 +439,17 @@ void FaceDetectorMTCNN::Read(const string& location) location = (root / location).string(); if (module.compare("PNet") == 0) { - cout << "Reading the PNet module from: " << location << endl; + std::cout << "Reading the PNet module from: " << location << std::endl; PNet.Read(location); } else if(module.compare("RNet") == 0) { - cout << "Reading the RNet module from: " << location << endl; + std::cout << "Reading the RNet module from: " << location << std::endl; RNet.Read(location); } else if (module.compare("ONet") == 0) { - cout << "Reading the ONet module from: " << location << endl; + std::cout << "Reading the ONet module from: " << location << std::endl; ONet.Read(location); } } @@ -532,11 +516,12 @@ std::vector non_maximum_supression(const std::vector >& or } // Helper function for selecting a subset of bounding boxes based on indices -void select_subset(const vector& to_keep, vector >& bounding_boxes, vector& scores, vector >& corrections) +void select_subset(const std::vector& to_keep, std::vector >& bounding_boxes, std::vector& scores, + std::vector >& corrections) { - vector > bounding_boxes_tmp; - vector scores_tmp; - vector > corrections_tmp; + std::vector > bounding_boxes_tmp; + std::vector scores_tmp; + std::vector > corrections_tmp; for (size_t i = 0; i < to_keep.size(); ++i) { @@ -551,7 +536,9 @@ void select_subset(const vector& to_keep, vector >& boundi } // Use the heatmap generated by PNet to generate bounding boxes in the original image space, also generate the correction values and scores of the bounding boxes as well -void generate_bounding_boxes(vector >& o_bounding_boxes, vector& o_scores, vector >& o_corrections, const cv::Mat_& heatmap, const vector >& corrections, float scale, float threshold, int face_support) +void generate_bounding_boxes(std::vector >& o_bounding_boxes, std::vector& o_scores, + std::vector >& o_corrections, const cv::Mat_& heatmap, const std::vector >& corrections, + float scale, float threshold, int face_support) { // Correction for the pooling @@ -590,7 +577,7 @@ void generate_bounding_boxes(vector >& o_bounding_boxes, vector } // Converting the bounding boxes to squares -void rectify(vector >& total_bboxes) +void rectify(std::vector >& total_bboxes) { // Apply size and location offsets @@ -599,7 +586,7 @@ void rectify(vector >& total_bboxes) float height = total_bboxes[i].height; float width = total_bboxes[i].width; - float max_side = max(width, height); + float max_side = std::max(width, height); // Correct the starts based on new size float new_min_x = total_bboxes[i].x + 0.5 * (width - max_side); @@ -612,7 +599,7 @@ void rectify(vector >& total_bboxes) } } -void apply_correction(vector >& total_bboxes, const vector > corrections, bool add1) +void apply_correction(std::vector >& total_bboxes, const std::vector > corrections, bool add1) { // Apply size and location offsets @@ -638,7 +625,8 @@ void apply_correction(vector >& total_bboxes, const vector >& o_regions, const cv::Mat& img_in, std::vector& o_confidences, int min_face_size, float t1, float t2, float t3) +bool FaceDetectorMTCNN::DetectFaces(std::vector >& o_regions, const cv::Mat& img_in, + std::vector& o_confidences, int min_face_size, float t1, float t2, float t3) { int height_orig = img_in.size().height; @@ -669,14 +657,14 @@ bool FaceDetectorMTCNN::DetectFaces(vector >& o_regions, const cv::Mat img_float; input_img.convertTo(img_float, CV_32FC3); - vector > proposal_boxes_all; - vector scores_all; - vector > proposal_corrections_all; + std::vector > proposal_boxes_all; + std::vector scores_all; + std::vector > proposal_corrections_all; // As the scales will be done in parallel have some containers for them - vector > > proposal_boxes_cross_scale(num_scales); - vector > scores_cross_scale(num_scales); - vector > > proposal_corrections_cross_scale(num_scales); + std::vector > > proposal_boxes_cross_scale(num_scales); + std::vector > scores_cross_scale(num_scales); + std::vector > > proposal_corrections_cross_scale(num_scales); for (int i = 0; i < num_scales; ++i) { @@ -706,9 +694,9 @@ bool FaceDetectorMTCNN::DetectFaces(vector >& o_regions, const std::vector> corrections_heatmap(pnet_out.begin() + 2, pnet_out.end()); // Grab the detections - vector > proposal_boxes; - vector scores; - vector > proposal_corrections; + std::vector > proposal_boxes; + std::vector scores; + std::vector > proposal_corrections; generate_bounding_boxes(proposal_boxes, scores, proposal_corrections, prob_heatmap, corrections_heatmap, scale, t1, face_support); proposal_boxes_cross_scale[i] = proposal_boxes; @@ -720,7 +708,7 @@ bool FaceDetectorMTCNN::DetectFaces(vector >& o_regions, const // Perform non-maximum supression on proposals accross scales and combine them for (int i = 0; i < num_scales; ++i) { - vector to_keep = non_maximum_supression(proposal_boxes_cross_scale[i], scores_cross_scale[i], 0.5, false); + std::vector to_keep = non_maximum_supression(proposal_boxes_cross_scale[i], scores_cross_scale[i], 0.5, false); select_subset(to_keep, proposal_boxes_cross_scale[i], scores_cross_scale[i], proposal_corrections_cross_scale[i]); proposal_boxes_all.insert(proposal_boxes_all.end(), proposal_boxes_cross_scale[i].begin(), proposal_boxes_cross_scale[i].end()); @@ -731,7 +719,7 @@ bool FaceDetectorMTCNN::DetectFaces(vector >& o_regions, const // Preparation for RNet step // Non maximum supression accross bounding boxes, and their offset correction - vector to_keep = non_maximum_supression(proposal_boxes_all, scores_all, 0.7, false); + std::vector to_keep = non_maximum_supression(proposal_boxes_all, scores_all, 0.7, false); select_subset(to_keep, proposal_boxes_all, scores_all, proposal_corrections_all); apply_correction(proposal_boxes_all, proposal_corrections_all, false); @@ -740,7 +728,7 @@ bool FaceDetectorMTCNN::DetectFaces(vector >& o_regions, const rectify(proposal_boxes_all); // Creating proposal images from previous step detections - vector above_thresh; + std::vector above_thresh; above_thresh.resize(proposal_boxes_all.size(), false); for (size_t k = 0; k < proposal_boxes_all.size(); ++k) diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectionValidator.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectionValidator.cpp index 9e30b3be8..927fdc8cd 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectionValidator.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectionValidator.cpp @@ -127,13 +127,13 @@ cnn_convolutional_layers_weights(other.cnn_convolutional_layers_weights) //=========================================================================== // Read in the landmark detection validation module -void DetectionValidator::Read(string location) +void DetectionValidator::Read(std::string location) { - ifstream detection_validator_stream (location, ios::in|ios::binary); + std::ifstream detection_validator_stream (location, std::ios::in | std::ios::binary); if (detection_validator_stream.is_open()) { - detection_validator_stream.seekg (0, ios::beg); + detection_validator_stream.seekg (0, std::ios::beg); // Read validator type int validator_type; @@ -141,7 +141,7 @@ void DetectionValidator::Read(string location) if (validator_type != 3) { - cout << "ERROR: Using old face validator, no longer supported" << endl; + std::cout << "ERROR: Using old face validator, no longer supported" << std::endl; } // Read the number of views (orientations) within the validator @@ -218,11 +218,11 @@ void DetectionValidator::Read(string location) int num_kernels; detection_validator_stream.read((char*)&num_kernels, 4); - vector > > kernels; + std::vector > > kernels; kernels.resize(num_in_maps); - vector biases; + std::vector biases; for (int k = 0; k < num_kernels; ++k) { float bias; @@ -246,7 +246,7 @@ void DetectionValidator::Read(string location) cnn_convolutional_layers[i].push_back(kernels); // Rearrange the kernels for faster inference with FFT - vector > > kernels_rearr; + std::vector > > kernels_rearr; kernels_rearr.resize(num_kernels); // Fill up the rearranged layer @@ -305,7 +305,7 @@ void DetectionValidator::Read(string location) } else { - cout << "WARNING: Can't find the Face checker location" << endl; + std::cout << "WARNING: Can't find the Face checker location" << std::endl; } } @@ -398,10 +398,10 @@ double DetectionValidator::CheckCNN(const cv::Mat_& warped_img, int view_ int cnn_layer = 0; int fully_connected_layer = 0; - vector > input_maps; + std::vector > input_maps; input_maps.push_back(img); - vector > outputs; + std::vector > outputs; for (size_t layer = 0; layer < cnn_layer_types[view_id].size(); ++layer) { diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorFunc.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorFunc.cpp index 281fd7352..ee1b7fd9e 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorFunc.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorFunc.cpp @@ -287,7 +287,7 @@ bool LandmarkDetector::DetectLandmarksInVideo(const cv::Mat &rgb_image, CLNF& cl // If the model is still empty default to HOG if (clnf_model.face_detector_MTCNN.empty()) { - cout << "INFO: defaulting to HOG-SVM face detector" << endl; + std::cout << "INFO: defaulting to HOG-SVM face detector" << std::endl; params.curr_face_detector = LandmarkDetector::FaceModelParameters::HOG_SVM_DETECTOR; } @@ -414,7 +414,8 @@ bool LandmarkDetector::DetectLandmarksInVideo(const cv::Mat &rgb_image, const cv // Optionally can provide a bounding box in which detection is performed (this is useful if multiple faces are to be detected in images) //================================================================================================================ -bool DetectLandmarksInImageMultiHypBasic(const cv::Mat_ &grayscale_image, vector rotation_hypotheses, const cv::Rect_ bounding_box, CLNF& clnf_model, FaceModelParameters& params) +bool DetectLandmarksInImageMultiHypBasic(const cv::Mat_ &grayscale_image, std::vector rotation_hypotheses, + const cv::Rect_ bounding_box, CLNF& clnf_model, FaceModelParameters& params) { // Use the initialisation size for the landmark detection @@ -430,11 +431,11 @@ bool DetectLandmarksInImageMultiHypBasic(const cv::Mat_ &grayscale_image, bool best_success; // The hierarchical model parameters - vector best_likelihood_h(clnf_model.hierarchical_models.size()); - vector best_global_parameters_h(clnf_model.hierarchical_models.size()); - vector> best_local_parameters_h(clnf_model.hierarchical_models.size()); - vector> best_detected_landmarks_h(clnf_model.hierarchical_models.size()); - vector> best_landmark_likelihoods_h(clnf_model.hierarchical_models.size()); + std::vector best_likelihood_h(clnf_model.hierarchical_models.size()); + std::vector best_global_parameters_h(clnf_model.hierarchical_models.size()); + std::vector> best_local_parameters_h(clnf_model.hierarchical_models.size()); + std::vector> best_detected_landmarks_h(clnf_model.hierarchical_models.size()); + std::vector> best_landmark_likelihoods_h(clnf_model.hierarchical_models.size()); for (size_t hypothesis = 0; hypothesis < rotation_hypotheses.size(); ++hypothesis) { @@ -496,20 +497,21 @@ bool DetectLandmarksInImageMultiHypBasic(const cv::Mat_ &grayscale_image, } // Helper index sorting function -template std::vector sort_indexes(const vector &v) { +template std::vector sort_indexes(const std::vector &v) { // initialize original index locations - vector idx(v.size()); + std::vector idx(v.size()); std::iota(idx.begin(), idx.end(), 0); // sort indexes based on comparing values in v - sort(idx.begin(), idx.end(), + std::sort(idx.begin(), idx.end(), [&v](size_t i1, size_t i2) {return v[i1] > v[i2]; }); return idx; } -bool DetectLandmarksInImageMultiHypEarlyTerm(const cv::Mat_ &grayscale_image, vector rotation_hypotheses, const cv::Rect_ bounding_box, CLNF& clnf_model, FaceModelParameters& params) +bool DetectLandmarksInImageMultiHypEarlyTerm(const cv::Mat_ &grayscale_image, std::vector rotation_hypotheses, + const cv::Rect_ bounding_box, CLNF& clnf_model, FaceModelParameters& params) { FaceModelParameters old_params(params); @@ -530,9 +532,9 @@ bool DetectLandmarksInImageMultiHypEarlyTerm(const cv::Mat_ &grayscale_im bool success = false; // Keeping track of converges - vector likelihoods; - vector global_parameters; - vector> local_parameters; + std::vector likelihoods; + std::vector global_parameters; + std::vector> local_parameters; for (size_t hypothesis = 0; hypothesis < rotation_hypotheses.size(); ++hypothesis) { @@ -584,14 +586,14 @@ bool DetectLandmarksInImageMultiHypEarlyTerm(const cv::Mat_ &grayscale_im bool best_success; // The hierarchical model parameters - vector best_likelihood_h(clnf_model.hierarchical_models.size()); - vector best_global_parameters_h(clnf_model.hierarchical_models.size()); - vector> best_local_parameters_h(clnf_model.hierarchical_models.size()); - vector> best_detected_landmarks_h(clnf_model.hierarchical_models.size()); - vector> best_landmark_likelihoods_h(clnf_model.hierarchical_models.size()); + std::vector best_likelihood_h(clnf_model.hierarchical_models.size()); + std::vector best_global_parameters_h(clnf_model.hierarchical_models.size()); + std::vector> best_local_parameters_h(clnf_model.hierarchical_models.size()); + std::vector> best_detected_landmarks_h(clnf_model.hierarchical_models.size()); + std::vector> best_landmark_likelihoods_h(clnf_model.hierarchical_models.size()); // Sort the likelihoods and pick the best top 3 models - vector indices = sort_indexes(likelihoods); + std::vector indices = sort_indexes(likelihoods); // Pick 3 best hypotheses and complete them size_t max = indices.size() >= 3 ? 3 : indices.size(); @@ -671,7 +673,7 @@ bool LandmarkDetector::DetectLandmarksInImage(const cv::Mat &rgb_image, const cv } // Can have multiple hypotheses - vector rotation_hypotheses; + std::vector rotation_hypotheses; if(params.multi_view) { @@ -733,7 +735,7 @@ bool LandmarkDetector::DetectLandmarksInImage(const cv::Mat &rgb_image, CLNF& cl // If the model is still empty default to HOG if (clnf_model.face_detector_MTCNN.empty()) { - cout << "INFO: defaulting to HOG-SVM face detector" << endl; + std::cout << "INFO: defaulting to HOG-SVM face detector" << std::endl; params.curr_face_detector = LandmarkDetector::FaceModelParameters::HOG_SVM_DETECTOR; } diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp index 5416dd88d..5186640e6 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorModel.cpp @@ -36,10 +36,6 @@ #include -// Boost includes -#include -#include - // Local includes #include #include @@ -62,7 +58,7 @@ CLNF::CLNF() } // Constructor from a model file -CLNF::CLNF(string fname) +CLNF::CLNF(std::string fname) { // A successful read wil set this to true loaded_successfully = false; @@ -247,27 +243,27 @@ CLNF & CLNF::operator= (const CLNF&& other) } -bool CLNF::Read_CLNF(string clnf_location) +bool CLNF::Read_CLNF(std::string clnf_location) { // Location of modules - ifstream locations(clnf_location.c_str(), ios_base::in); + std::ifstream locations(clnf_location.c_str(), std::ios_base::in); if(!locations.is_open()) { - cout << "Couldn't open the CLNF model file aborting" << endl; - cout.flush(); + std::cout << "Couldn't open the CLNF model file aborting" << std::endl; + std::cout.flush(); return false; } - string line; + std::string line; - vector intensity_expert_locations; - vector ccnf_expert_locations; - vector cen_expert_locations; - string early_term_loc; + std::vector intensity_expert_locations; + std::vector ccnf_expert_locations; + std::vector cen_expert_locations; + std::string early_term_loc; // The other module locations should be defined as relative paths from the main model - boost::filesystem::path root = boost::filesystem::path(clnf_location).parent_path(); + fs::path root = fs::path(clnf_location).parent_path(); // The main file contains the references to other files while (!locations.eof()) @@ -275,10 +271,10 @@ bool CLNF::Read_CLNF(string clnf_location) getline(locations, line); - stringstream lineStream(line); + std::stringstream lineStream(line); - string module; - string location; + std::string module; + std::string location; // figure out which module is to be read from which file lineStream >> module; @@ -299,7 +295,7 @@ bool CLNF::Read_CLNF(string clnf_location) if (module.compare("PDM") == 0) { - cout << "Reading the PDM module from: " << location << "...."; + std::cout << "Reading the PDM module from: " << location << "...."; bool read_success = pdm.Read(location); if (!read_success) @@ -307,12 +303,12 @@ bool CLNF::Read_CLNF(string clnf_location) return false; } - cout << "Done" << endl; + std::cout << "Done" << std::endl; } else if (module.compare("Triangulations") == 0) { - cout << "Reading the Triangulations module from: " << location << "...."; - ifstream triangulationFile(location.c_str(), ios_base::in); + std::cout << "Reading the Triangulations module from: " << location << "...."; + std::ifstream triangulationFile(location.c_str(), std::ios_base::in); if(!triangulationFile.is_open()) { @@ -332,7 +328,7 @@ bool CLNF::Read_CLNF(string clnf_location) LandmarkDetector::SkipComments(triangulationFile); LandmarkDetector::ReadMat(triangulationFile, triangulations[i]); } - cout << "Done" << endl; + std::cout << "Done" << std::endl; } else if(module.compare("PatchesIntensity") == 0) { @@ -364,22 +360,22 @@ bool CLNF::Read_CLNF(string clnf_location) } -void CLNF::Read(string main_location) +void CLNF::Read(std::string main_location) { - cout << "Reading the landmark detector/tracker from: " << main_location << endl; + std::cout << "Reading the landmark detector/tracker from: " << main_location << std::endl; - ifstream locations(main_location.c_str(), ios_base::in); + std::ifstream locations(main_location.c_str(), std::ios_base::in); if(!locations.is_open()) { - cout << "Couldn't open the model file, aborting" << endl; + std::cout << "Couldn't open the model file, aborting" << std::endl; loaded_successfully = false; return; } - string line; + std::string line; // The other module locations should be defined as relative paths from the main model - boost::filesystem::path root = boost::filesystem::path(main_location).parent_path(); + fs::path root = fs::path(main_location).parent_path(); // Assume no eye model, unless read-in eye_model = false; @@ -389,10 +385,10 @@ void CLNF::Read(string main_location) { getline(locations, line); - stringstream lineStream(line); + std::stringstream lineStream(line); - string module; - string location; + std::string module; + std::string location; // figure out which module is to be read from which file lineStream >> module; @@ -410,7 +406,7 @@ void CLNF::Read(string main_location) location = (root / location).string(); if (module.compare("LandmarkDetector") == 0) { - cout << "Reading the landmark detector module from: " << location << endl; + std::cout << "Reading the landmark detector module from: " << location << std::endl; // The CLNF module includes the PDM and the patch experts bool read_success = Read_CLNF(location); @@ -423,11 +419,11 @@ void CLNF::Read(string main_location) } else if(module.compare("LandmarkDetector_part") == 0) { - string part_name; + std::string part_name; lineStream >> part_name; - cout << "Reading part based module...." << part_name << endl; + std::cout << "Reading part based module...." << part_name << std::endl; - vector> mappings; + std::vector> mappings; while(!lineStream.eof()) { int ind_in_main; @@ -435,7 +431,7 @@ void CLNF::Read(string main_location) int ind_in_part; lineStream >> ind_in_part; - mappings.push_back(pair(ind_in_main, ind_in_part)); + mappings.push_back(std::pair(ind_in_main, ind_in_part)); } this->hierarchical_mapping.push_back(mappings); @@ -453,8 +449,8 @@ void CLNF::Read(string main_location) this->hierarchical_model_names.push_back(part_name); // Making sure we look based on model directory - std::string root_loc = boost::filesystem::path(main_location).parent_path().string(); - std::vector sub_arguments{ root_loc }; + std::string root_loc = fs::path(main_location).parent_path().string(); + std::vector sub_arguments{ root_loc }; FaceModelParameters params(sub_arguments); @@ -465,11 +461,11 @@ void CLNF::Read(string main_location) if(part_name.compare("left_eye") == 0 || part_name.compare("right_eye") == 0) { - vector windows_large; + std::vector windows_large; windows_large.push_back(5); windows_large.push_back(3); - vector windows_small; + std::vector windows_small; windows_small.push_back(5); windows_small.push_back(3); @@ -482,12 +478,12 @@ void CLNF::Read(string main_location) } else if(part_name.compare("left_eye_28") == 0 || part_name.compare("right_eye_28") == 0) { - vector windows_large; + std::vector windows_large; windows_large.push_back(3); windows_large.push_back(5); windows_large.push_back(9); - vector windows_small; + std::vector windows_small; windows_small.push_back(3); windows_small.push_back(5); windows_small.push_back(9); @@ -504,11 +500,11 @@ void CLNF::Read(string main_location) } else if(part_name.compare("mouth") == 0) { - vector windows_large; + std::vector windows_large; windows_large.push_back(7); windows_large.push_back(7); - vector windows_small; + std::vector windows_small; windows_small.push_back(7); windows_small.push_back(7); @@ -521,11 +517,11 @@ void CLNF::Read(string main_location) } else if(part_name.compare("brow") == 0) { - vector windows_large; + std::vector windows_large; windows_large.push_back(11); windows_large.push_back(9); - vector windows_small; + std::vector windows_small; windows_small.push_back(11); windows_small.push_back(9); @@ -538,10 +534,10 @@ void CLNF::Read(string main_location) } else if(part_name.compare("inner") == 0) { - vector windows_large; + std::vector windows_large; windows_large.push_back(9); - vector windows_small; + std::vector windows_small; windows_small.push_back(9); params.window_sizes_init = windows_large; @@ -555,13 +551,13 @@ void CLNF::Read(string main_location) this->hierarchical_params.push_back(params); - cout << "Done" << endl; + std::cout << "Done" << std::endl; } else if (module.compare("DetectionValidator") == 0) { - cout << "Reading the landmark validation module...."; + std::cout << "Reading the landmark validation module...."; landmark_validator.Read(location); - cout << "Done" << endl; + std::cout << "Done" << std::endl; } } @@ -649,7 +645,7 @@ bool CLNF::DetectLandmarks(const cv::Mat_ &image, FaceModelParameters& pa int n_part_points = hierarchical_models[part_model].pdm.NumberOfPoints(); - vector> mappings = this->hierarchical_mapping[part_model]; + std::vector> mappings = this->hierarchical_mapping[part_model]; cv::Mat_ part_model_locs(n_part_points * 2, 1, 0.0f); @@ -688,7 +684,7 @@ bool CLNF::DetectLandmarks(const cv::Mat_ &image, FaceModelParameters& pa for (size_t part_model = 0; part_model < hierarchical_models.size(); ++part_model) { - vector> mappings = this->hierarchical_mapping[part_model]; + std::vector> mappings = this->hierarchical_mapping[part_model]; // Reincorporate the models into main tracker for (size_t mapping_ind = 0; mapping_ind < mappings.size(); ++mapping_ind) @@ -746,7 +742,7 @@ bool CLNF::Fit(const cv::Mat_& im, const std::vector& window_sizes, int num_scales = patch_experts.patch_scaling.size(); // Storing the patch expert response maps - vector > patch_expert_responses(n); + std::vector > patch_expert_responses(n); // Converting from image space to patch expert space (normalised for rotation and scale) cv::Matx22f sim_ref_to_img; @@ -808,7 +804,7 @@ bool CLNF::Fit(const cv::Mat_& im, const std::vector& window_sizes, // Can't track very small images reliably (less than ~30px across) if (params_global[0] < 0.25) { - cout << "Face too small for landmark detection" << endl; + std::cout << "Face too small for landmark detection" << std::endl; return false; } @@ -821,7 +817,9 @@ bool CLNF::Fit(const cv::Mat_& im, const std::vector& window_sizes, return true; } -void CLNF::NonVectorisedMeanShift_precalc_kde(cv::Mat_& out_mean_shifts, const vector >& patch_expert_responses, const cv::Mat_ &dxs, const cv::Mat_ &dys, int resp_size, float a, int scale, int view_id, map >& kde_resp_precalc) +void CLNF::NonVectorisedMeanShift_precalc_kde(cv::Mat_& out_mean_shifts, const std::vector >& patch_expert_responses, + const cv::Mat_ &dxs, const cv::Mat_ &dys, int resp_size, float a, int scale, int view_id, + std::map >& kde_resp_precalc) { int n = dxs.rows; @@ -989,7 +987,7 @@ void CLNF::GetWeightMatrix(cv::Mat_& WeightMatrix, int scale, int view_id } //============================================================================= -float CLNF::NU_RLMS(cv::Vec6f& final_global, cv::Mat_& final_local, const vector >& patch_expert_responses, const cv::Vec6f& initial_global, const cv::Mat_& initial_local, +float CLNF::NU_RLMS(cv::Vec6f& final_global, cv::Mat_& final_local, const std::vector >& patch_expert_responses, const cv::Vec6f& initial_global, const cv::Mat_& initial_local, const cv::Mat_& base_shape, const cv::Matx22f& sim_img_to_ref, const cv::Matx22f& sim_ref_to_img, int resp_size, int view_id, bool rigid, int scale, cv::Mat_& landmark_lhoods, const FaceModelParameters& parameters, bool compute_lhood) { diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp index 972458088..960f73641 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorParameters.cpp @@ -36,10 +36,6 @@ #include "LandmarkDetectorParameters.h" -// Boost includes -#include -#include - // System includes #include #include @@ -49,8 +45,6 @@ #define CONFIG_DIR "~" #endif -using namespace std; - using namespace LandmarkDetector; FaceModelParameters::FaceModelParameters() @@ -61,13 +55,13 @@ FaceModelParameters::FaceModelParameters() } -FaceModelParameters::FaceModelParameters(vector &arguments) +FaceModelParameters::FaceModelParameters(std::vector &arguments) { // initialise the default values init(); // First element is reserved for the executable location (useful for finding relative model locs) - boost::filesystem::path root = boost::filesystem::path(arguments[0]).parent_path(); + fs::path root = fs::path(arguments[0]).parent_path(); bool* valid = new bool[arguments.size()]; valid[0] = true; @@ -78,7 +72,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) if (arguments[i].compare("-mloc") == 0) { - string model_loc = arguments[i + 1]; + std::string model_loc = arguments[i + 1]; model_location = model_loc; valid[i] = false; valid[i + 1] = false; @@ -87,7 +81,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } if (arguments[i].compare("-fdloc") ==0) { - string face_detector_loc = arguments[i + 1]; + std::string face_detector_loc = arguments[i + 1]; haar_face_detector_location = face_detector_loc; curr_face_detector = HAAR_DETECTOR; valid[i] = false; @@ -96,7 +90,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } if (arguments[i].compare("-sigma") == 0) { - stringstream data(arguments[i + 1]); + std::stringstream data(arguments[i + 1]); data >> sigma; valid[i] = false; valid[i + 1] = false; @@ -104,7 +98,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } else if (arguments[i].compare("-w_reg") == 0) { - stringstream data(arguments[i + 1]); + std::stringstream data(arguments[i + 1]); data >> weight_factor; valid[i] = false; valid[i + 1] = false; @@ -112,7 +106,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } else if (arguments[i].compare("-reg") == 0) { - stringstream data(arguments[i + 1]); + std::stringstream data(arguments[i + 1]); data >> reg_factor; valid[i] = false; valid[i + 1] = false; @@ -121,7 +115,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) else if (arguments[i].compare("-multi_view") == 0) { - stringstream data(arguments[i + 1]); + std::stringstream data(arguments[i + 1]); int m_view; data >> m_view; @@ -132,7 +126,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } else if (arguments[i].compare("-validate_detections") == 0) { - stringstream data(arguments[i + 1]); + std::stringstream data(arguments[i + 1]); int v_det; data >> v_det; @@ -143,7 +137,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) } else if (arguments[i].compare("-n_iter") == 0) { - stringstream data(arguments[i + 1]); + std::stringstream data(arguments[i + 1]); data >> num_optimisation_iteration; valid[i] = false; @@ -153,7 +147,7 @@ FaceModelParameters::FaceModelParameters(vector &arguments) else if (arguments[i].compare("-wild") == 0) { // For in the wild fitting these parameters are suitable - window_sizes_init = vector(4); + window_sizes_init = std::vector(4); window_sizes_init[0] = 15; window_sizes_init[1] = 13; window_sizes_init[2] = 11; window_sizes_init[3] = 11; sigma = 1.25; @@ -182,17 +176,17 @@ FaceModelParameters::FaceModelParameters(vector &arguments) // Make sure model_location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - boost::filesystem::path config_path = boost::filesystem::path(CONFIG_DIR); - boost::filesystem::path model_path = boost::filesystem::path(model_location); - if (boost::filesystem::exists(model_path)) + fs::path config_path = fs::path(CONFIG_DIR); + fs::path model_path = fs::path(model_location); + if (fs::exists(model_path)) { model_location = model_path.string(); } - else if (boost::filesystem::exists(root/model_path)) + else if (fs::exists(root/model_path)) { model_location = (root/model_path).string(); } - else if (boost::filesystem::exists(config_path/model_path)) + else if (fs::exists(config_path/model_path)) { model_location = (config_path/model_path).string(); } @@ -218,16 +212,16 @@ FaceModelParameters::FaceModelParameters(vector &arguments) // Make sure face detector location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - model_path = boost::filesystem::path(haar_face_detector_location); - if (boost::filesystem::exists(model_path)) + model_path = fs::path(haar_face_detector_location); + if (fs::exists(model_path)) { haar_face_detector_location = model_path.string(); } - else if (boost::filesystem::exists(root / model_path)) + else if (fs::exists(root / model_path)) { haar_face_detector_location = (root / model_path).string(); } - else if (boost::filesystem::exists(config_path / model_path)) + else if (fs::exists(config_path / model_path)) { haar_face_detector_location = (config_path / model_path).string(); } @@ -238,16 +232,16 @@ FaceModelParameters::FaceModelParameters(vector &arguments) // Make sure face detector location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - model_path = boost::filesystem::path(mtcnn_face_detector_location); - if (boost::filesystem::exists(model_path)) + model_path = fs::path(mtcnn_face_detector_location); + if (fs::exists(model_path)) { mtcnn_face_detector_location = model_path.string(); } - else if (boost::filesystem::exists(root / model_path)) + else if (fs::exists(root / model_path)) { mtcnn_face_detector_location = (root / model_path).string(); } - else if (boost::filesystem::exists(config_path / model_path)) + else if (fs::exists(config_path / model_path)) { mtcnn_face_detector_location = (config_path / model_path).string(); } @@ -262,19 +256,19 @@ void FaceModelParameters::check_model_path(const std::string& root) { // Make sure model_location is valid // First check working directory, then the executable's directory, then the config path set by the build process. - boost::filesystem::path config_path = boost::filesystem::path(CONFIG_DIR); - boost::filesystem::path model_path = boost::filesystem::path(model_location); - boost::filesystem::path root_path = boost::filesystem::path(root); + fs::path config_path = fs::path(CONFIG_DIR); + fs::path model_path = fs::path(model_location); + fs::path root_path = fs::path(root); - if (boost::filesystem::exists(model_path)) + if (fs::exists(model_path)) { model_location = model_path.string(); } - else if (boost::filesystem::exists(root_path / model_path)) + else if (fs::exists(root_path / model_path)) { model_location = (root_path / model_path).string(); } - else if (boost::filesystem::exists(config_path / model_path)) + else if (fs::exists(config_path / model_path)) { model_location = (config_path / model_path).string(); } @@ -299,8 +293,8 @@ void FaceModelParameters::init() // Refining parameters by default refine_parameters = true; - window_sizes_small = vector(4); - window_sizes_init = vector(4); + window_sizes_small = std::vector(4); + window_sizes_init = std::vector(4); // For fast tracking window_sizes_small[0] = 0; diff --git a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp index 887c6e537..d1ccc6759 100644 --- a/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp +++ b/lib/local/LandmarkDetector/src/LandmarkDetectorUtils.cpp @@ -42,8 +42,6 @@ #include #include -using namespace std; - namespace LandmarkDetector { @@ -51,7 +49,8 @@ namespace LandmarkDetector // Fast patch expert response computation (linear model across a ROI) using normalised cross-correlation //=========================================================================== - void crossCorr_m(const cv::Mat_& img, cv::Mat_& img_dft, const cv::Mat_& _templ, map >& _templ_dfts, cv::Mat_& corr) + void crossCorr_m(const cv::Mat_& img, cv::Mat_& img_dft, const cv::Mat_& _templ, + std::map >& _templ_dfts, cv::Mat_& corr) { // Our model will always be under min block size so can ignore this //const double blockScale = 4.5; @@ -147,7 +146,9 @@ namespace LandmarkDetector //////////////////////////////////////////////////////////////////////////////////////////////////////// - void matchTemplate_m(const cv::Mat_& input_img, cv::Mat_& img_dft, cv::Mat& _integral_img, cv::Mat& _integral_img_sq, const cv::Mat_& templ, map >& templ_dfts, cv::Mat_& result, int method) + void matchTemplate_m(const cv::Mat_& input_img, cv::Mat_& img_dft, cv::Mat& _integral_img, + cv::Mat& _integral_img_sq, const cv::Mat_& templ, std::map >& templ_dfts, + cv::Mat_& result, int method) { int numType = method == cv::TM_CCORR || method == cv::TM_CCORR_NORMED ? 0 : @@ -345,10 +346,10 @@ namespace LandmarkDetector } // Computing landmarks (to be drawn later possibly) - vector CalculateVisibleLandmarks(const cv::Mat_& shape2D, const cv::Mat_& visibilities) + std::vector CalculateVisibleLandmarks(const cv::Mat_& shape2D, const cv::Mat_& visibilities) { int n = shape2D.rows / 2; - vector landmarks; + std::vector landmarks; for (int i = 0; i < n; ++i) { @@ -364,11 +365,11 @@ namespace LandmarkDetector } // Computing landmarks (to be drawn later possibly) - vector CalculateAllLandmarks(const cv::Mat_& shape2D) + std::vector CalculateAllLandmarks(const cv::Mat_& shape2D) { int n = 0; - vector landmarks; + std::vector landmarks; if (shape2D.cols == 2) { @@ -398,13 +399,13 @@ namespace LandmarkDetector } // Computing landmarks (to be drawn later possibly) - vector CalculateAllLandmarks(const CLNF& clnf_model) + std::vector CalculateAllLandmarks(const CLNF& clnf_model) { return CalculateAllLandmarks(clnf_model.detected_landmarks); } // Computing landmarks (to be drawn later possibly) - vector CalculateVisibleLandmarks(const CLNF& clnf_model) + std::vector CalculateVisibleLandmarks(const CLNF& clnf_model) { // If the detection was not successful no landmarks are visible if (clnf_model.detection_success) @@ -415,15 +416,15 @@ namespace LandmarkDetector } else { - return vector(); + return std::vector(); } } // Computing eye landmarks (to be drawn later or in different interfaces) - vector CalculateVisibleEyeLandmarks(const CLNF& clnf_model) + std::vector CalculateVisibleEyeLandmarks(const CLNF& clnf_model) { - vector to_return; + std::vector to_return; // If the model has hierarchical updates draw those too for (size_t i = 0; i < clnf_model.hierarchical_models.size(); ++i) { @@ -442,10 +443,10 @@ namespace LandmarkDetector return to_return; } // Computing the 3D eye landmarks - vector Calculate3DEyeLandmarks(const CLNF& clnf_model, float fx, float fy, float cx, float cy) + std::vector Calculate3DEyeLandmarks(const CLNF& clnf_model, float fx, float fy, float cx, float cy) { - vector to_return; + std::vector to_return; for (size_t i = 0; i < clnf_model.hierarchical_models.size(); ++i) { @@ -469,10 +470,10 @@ namespace LandmarkDetector } // Computing eye landmarks (to be drawn later or in different interfaces) - vector CalculateAllEyeLandmarks(const CLNF& clnf_model) + std::vector CalculateAllEyeLandmarks(const CLNF& clnf_model) { - vector to_return; + std::vector to_return; // If the model has hierarchical updates draw those too for (size_t i = 0; i < clnf_model.hierarchical_models.size(); ++i) { @@ -496,12 +497,12 @@ namespace LandmarkDetector //============================================================================ // Face detection helpers //============================================================================ - bool DetectFaces(vector >& o_regions, const cv::Mat_& intensity, float min_width, cv::Rect_ roi) + bool DetectFaces(std::vector >& o_regions, const cv::Mat_& intensity, float min_width, cv::Rect_ roi) { cv::CascadeClassifier classifier("./classifiers/haarcascade_frontalface_alt.xml"); if (classifier.empty()) { - cout << "Couldn't load the Haar cascade classifier" << endl; + std::cout << "Couldn't load the Haar cascade classifier" << std::endl; return false; } else @@ -511,10 +512,10 @@ namespace LandmarkDetector } - bool DetectFaces(vector >& o_regions, const cv::Mat_& intensity, cv::CascadeClassifier& classifier, float min_width, cv::Rect_ roi) + bool DetectFaces(std::vector >& o_regions, const cv::Mat_& intensity, cv::CascadeClassifier& classifier, float min_width, cv::Rect_ roi) { - vector face_detections; + std::vector face_detections; if (min_width == -1) { classifier.detectMultiScale(intensity, face_detections, 1.2, 2, 0, cv::Size(50, 50)); @@ -556,7 +557,7 @@ namespace LandmarkDetector bool DetectSingleFace(cv::Rect_& o_region, const cv::Mat_& intensity_image, cv::CascadeClassifier& classifier, cv::Point preference, float min_width, cv::Rect_ roi) { // The tracker can return multiple faces - vector > face_detections; + std::vector > face_detections; bool detect_success = LandmarkDetector::DetectFaces(face_detections, intensity_image, classifier, min_width, roi); @@ -612,7 +613,8 @@ namespace LandmarkDetector return detect_success; } - bool DetectFacesHOG(vector >& o_regions, const cv::Mat_& intensity, std::vector& confidences, float min_width, cv::Rect_ roi) + bool DetectFacesHOG(std::vector >& o_regions, const cv::Mat_& intensity, + std::vector& confidences, float min_width, cv::Rect_ roi) { dlib::frontal_face_detector detector = dlib::get_frontal_face_detector(); @@ -620,7 +622,8 @@ namespace LandmarkDetector } - bool DetectFacesHOG(vector >& o_regions, const cv::Mat_& intensity, dlib::frontal_face_detector& detector, std::vector& o_confidences, float min_width, cv::Rect_ roi) + bool DetectFacesHOG(std::vector >& o_regions, const cv::Mat_& intensity, + dlib::frontal_face_detector& detector, std::vector& o_confidences, float min_width, cv::Rect_ roi) { if (detector.num_detectors() == 0) { @@ -679,8 +682,8 @@ namespace LandmarkDetector } // The tracker can return multiple faces - vector > face_detections; - vector confidences; + std::vector > face_detections; + std::vector confidences; bool detect_success = LandmarkDetector::DetectFacesHOG(face_detections, intensity_img, detector, confidences, min_width, roi); // In case of multiple faces pick the biggest one @@ -753,18 +756,20 @@ namespace LandmarkDetector return detect_success; } -bool DetectFacesMTCNN(vector >& o_regions, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, std::vector& o_confidences) +bool DetectFacesMTCNN(std::vector >& o_regions, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, + std::vector& o_confidences) { detector.DetectFaces(o_regions, image, o_confidences); return o_regions.size() > 0; } -bool DetectSingleFaceMTCNN(cv::Rect_& o_region, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, float& confidence, cv::Point preference) +bool DetectSingleFaceMTCNN(cv::Rect_& o_region, const cv::Mat& image, LandmarkDetector::FaceDetectorMTCNN& detector, + float& confidence, cv::Point preference) { // The tracker can return multiple faces - vector > face_detections; - vector confidences; + std::vector > face_detections; + std::vector confidences; detector.DetectFaces(face_detections, image, confidences); diff --git a/lib/local/LandmarkDetector/src/PDM.cpp b/lib/local/LandmarkDetector/src/PDM.cpp index 271410b12..b22b86f60 100644 --- a/lib/local/LandmarkDetector/src/PDM.cpp +++ b/lib/local/LandmarkDetector/src/PDM.cpp @@ -485,7 +485,7 @@ void PDM::UpdateModelParameters(const cv::Mat_& delta_p, cv::Mat_& cv::Vec3f euler = Utilities::AxisAngle2Euler(axis_angle); // Temporary fix to numerical instability - if (isnan(euler[0]) || isnan(euler[1]) || isnan(euler[2])) + if (std::isnan(euler[0]) || std::isnan(euler[1]) || std::isnan(euler[2])) { euler[0] = 0; euler[1] = 0; @@ -704,10 +704,10 @@ void PDM::CalcParams(cv::Vec6f& out_params_global, cv::Mat_& out_params_l } -bool PDM::Read(string location) +bool PDM::Read(std::string location) { - ifstream pdmLoc(location, ios_base::in); + std::ifstream pdmLoc(location, std::ios_base::in); if (!pdmLoc.is_open()) { return false; diff --git a/lib/local/LandmarkDetector/src/Patch_experts.cpp b/lib/local/LandmarkDetector/src/Patch_experts.cpp index 58ee67e49..4b2d38164 100644 --- a/lib/local/LandmarkDetector/src/Patch_experts.cpp +++ b/lib/local/LandmarkDetector/src/Patch_experts.cpp @@ -88,7 +88,7 @@ Patch_experts::Patch_experts(const Patch_experts& other) : patch_scaling(other.p } // Returns indices to landmarks that need to have patch responses computed (omits mirrored frontal landmarks for CEN as they will be computed together with their mirrored pair) -std::vector Patch_experts::Collect_visible_landmarks(vector > > visibilities, int scale, int view_id, int n) +std::vector Patch_experts::Collect_visible_landmarks(std::vector > > visibilities, int scale, int view_id, int n) { std::vector vis_lmk; for (int i = 0; i < n; i++) @@ -130,8 +130,9 @@ std::vector Patch_experts::Collect_visible_landmarks(vector >& patch_expert_responses, cv::Matx22f& sim_ref_to_img, cv::Matx22f& sim_img_to_ref, const cv::Mat_& grayscale_image, - const PDM& pdm, const cv::Vec6f& params_global, const cv::Mat_& params_local, int window_size, int scale) +void Patch_experts::Response(std::vector >& patch_expert_responses, cv::Matx22f& sim_ref_to_img, + cv::Matx22f& sim_img_to_ref, const cv::Mat_& grayscale_image, const PDM& pdm, const cv::Vec6f& params_global, + const cv::Mat_& params_local, int window_size, int scale) { int view_id = GetViewIdx(params_global, scale); @@ -167,7 +168,7 @@ void Patch_experts::Response(vector >& patch_expert_responses, c // If using CCNF patch experts might need to precalculate Sigmas if (use_ccnf) { - vector > sigma_components; + std::vector > sigma_components; // Retrieve the correct sigma component size for (size_t w_size = 0; w_size < this->sigma_components.size(); ++w_size) @@ -363,7 +364,8 @@ int Patch_experts::GetViewIdx(const cv::Vec6f& params_global, int scale) const //=========================================================================== -bool Patch_experts::Read(vector intensity_svr_expert_locations, vector intensity_ccnf_expert_locations, vector intensity_cen_expert_locations, string early_term_loc) +bool Patch_experts::Read(std::vector intensity_svr_expert_locations, std::vector intensity_ccnf_expert_locations, + std::vector intensity_cen_expert_locations, std::string early_term_loc) { // initialise the SVR intensity patch expert parameters @@ -377,8 +379,8 @@ bool Patch_experts::Read(vector intensity_svr_expert_locations, vector intensity_svr_expert_locations, vector intensity_svr_expert_locations, vector intensity_svr_expert_locations, vector intensity_svr_expert_locations, vector& centers, std::vector >& visibility, std::vector >& patches, double& scale) +bool Patch_experts::Read_SVR_patch_experts(std::string expert_location, std::vector& centers, + std::vector >& visibility, std::vector >& patches, double& scale) { - ifstream patchesFile(expert_location.c_str(), ios_base::in); + std::ifstream patchesFile(expert_location.c_str(), std::ios_base::in); if(patchesFile.is_open()) { @@ -538,21 +541,22 @@ bool Patch_experts::Read_SVR_patch_experts(string expert_location, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& patchScaling) +bool Patch_experts::Read_CCNF_patch_experts(std::string patchesFileLocation, std::vector& centers, + std::vector >& visibility, std::vector >& patches, double& patchScaling) { - ifstream patchesFile(patchesFileLocation.c_str(), ios::in | ios::binary); + std::ifstream patchesFile(patchesFileLocation.c_str(), std::ios::in | std::ios::binary); if(patchesFile.is_open()) { @@ -588,10 +592,10 @@ bool Patch_experts::Read_CCNF_patch_experts(string patchesFileLocation, std::vec int num_sigma_comp; patchesFile.read ((char*)&num_win_sizes, 4); - vector windows; + std::vector windows; windows.resize(num_win_sizes); - vector > > sigma_components; + std::vector > > sigma_components; sigma_components.resize(num_win_sizes); for (int w=0; w < num_win_sizes; ++w) @@ -621,21 +625,22 @@ bool Patch_experts::Read_CCNF_patch_experts(string patchesFileLocation, std::vec patches[i][j].Read(patchesFile, windows, sigma_components); } } - cout << "Done" << endl; + std::cout << "Done" << std::endl; return true; } else { - cout << "Can't find/open the patches file" << endl; + std::cout << "Can't find/open the patches file" << std::endl; return false; } } //======================= Reading the CEN patch experts =========================================// -bool Patch_experts::Read_CEN_patch_experts(string expert_location, std::vector& centers, std::vector >& visibility, std::vector >& patches, double& scale) +bool Patch_experts::Read_CEN_patch_experts(std::string expert_location, std::vector& centers, + std::vector >& visibility, std::vector >& patches, double& scale) { - ifstream patchesFile(expert_location.c_str(), ios::in | ios::binary); + std::ifstream patchesFile(expert_location.c_str(), std::ios::in | std::ios::binary); if (patchesFile.is_open()) { @@ -680,12 +685,12 @@ bool Patch_experts::Read_CEN_patch_experts(string expert_location, std::vector/include/OpenFace>) target_include_directories(Utilities PRIVATE ${UTILITIES_SOURCE_DIR}/include) -target_include_directories(Utilities PUBLIC ${Boost_INCLUDE_DIRS}) -target_include_directories(Utilities PUBLIC ${Boost_INCLUDE_DIRS}/boost) target_include_directories(Utilities PUBLIC ${OpenCV_INCLUDE_DIRS}) -target_link_libraries(Utilities PUBLIC ${OpenCV_LIBS} ${Boost_LIBRARIES}) +target_link_libraries(Utilities PUBLIC ${OpenCV_LIBS}) target_link_libraries(Utilities PUBLIC dlib::dlib) +if(${Boost_FOUND}) + target_include_directories(Utilities PUBLIC ${Boost_INCLUDE_DIRS}) + target_link_libraries(Utilities PUBLIC ${Boost_LIBRARIES}) +else() + target_link_libraries(Utilities PUBLIC stdc++fs) +endif() + install (TARGETS Utilities EXPORT OpenFaceTargets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install (FILES ${HEADERS} DESTINATION include/OpenFace) \ No newline at end of file diff --git a/lib/local/Utilities/Utilities.vcxproj b/lib/local/Utilities/Utilities.vcxproj index 6da57589f..e14b97c79 100644 --- a/lib/local/Utilities/Utilities.vcxproj +++ b/lib/local/Utilities/Utilities.vcxproj @@ -22,33 +22,33 @@ {8E741EA2-9386-4CF2-815E-6F9B08991EAC} Win32Proj Utilities - 8.1 + 10.0.17134.0 Utilities StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode StaticLibrary true - v140 + v141 Unicode StaticLibrary false - v140 + v141 true Unicode @@ -59,30 +59,26 @@ - - + - - + - - + - - + @@ -96,6 +92,7 @@ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) ./include;%(AdditionalIncludeDirectories) StreamingSIMDExtensions2 + stdcpp17 Windows @@ -111,6 +108,7 @@ ./include;%(AdditionalIncludeDirectories) + stdcpp17 Windows @@ -119,8 +117,7 @@ Level3 - - + Use Full @@ -130,6 +127,8 @@ AnySuitable Speed StreamingSIMDExtensions2 + stdcpp17 + stdafx_ut.h Windows @@ -140,8 +139,7 @@ Level3 - - + Use Full @@ -152,6 +150,8 @@ AnySuitable + stdcpp17 + stdafx_ut.h Windows @@ -166,6 +166,10 @@ + + Create + Create + @@ -179,6 +183,7 @@ + diff --git a/lib/local/Utilities/Utilities.vcxproj.filters b/lib/local/Utilities/Utilities.vcxproj.filters index 01173dadd..62eb9b1f6 100644 --- a/lib/local/Utilities/Utilities.vcxproj.filters +++ b/lib/local/Utilities/Utilities.vcxproj.filters @@ -39,6 +39,9 @@ Source Files + + Source Files + @@ -74,5 +77,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/lib/local/Utilities/include/RecorderOpenFaceParameters.h b/lib/local/Utilities/include/RecorderOpenFaceParameters.h index e6c44196d..3237f9470 100644 --- a/lib/local/Utilities/include/RecorderOpenFaceParameters.h +++ b/lib/local/Utilities/include/RecorderOpenFaceParameters.h @@ -38,12 +38,6 @@ #include #include -// Boost includes -#include -#include - -using namespace std; - namespace Utilities { diff --git a/lib/local/Utilities/include/VisualizationUtils.h b/lib/local/Utilities/include/VisualizationUtils.h index 903d4e999..df9079745 100644 --- a/lib/local/Utilities/include/VisualizationUtils.h +++ b/lib/local/Utilities/include/VisualizationUtils.h @@ -33,11 +33,7 @@ #ifndef VISUALIZATION_UTILS_H #define VISUALIZATION_UTILS_H - -#include - -#include -#include +#include namespace Utilities { diff --git a/lib/local/Utilities/include/stdafx_ut.h b/lib/local/Utilities/include/stdafx_ut.h new file mode 100644 index 000000000..e439e08c5 --- /dev/null +++ b/lib/local/Utilities/include/stdafx_ut.h @@ -0,0 +1,62 @@ +/////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge, +// all rights reserved. +// +// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY +// +// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT. +// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE. +// +// License can be found in OpenFace-license.txt +// + +// Precompiled headers stuff + +#ifndef __STDAFX_UT_h_ +#define __STDAFX_UT_h_ + +// OpenCV includes +#include +#include +#include + +// For FHOG visualisation +#include +#include + +// C++ standard stuff +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +// For sorting +#include + +// For threading and timing +#include +#include + +// Filesystem stuff +// It can either be in std filesystem (C++17), or in experimental/filesystem (partial C++17 support) or in boost +#if __has_include() +#include +#include +namespace fs = boost::filesystem; +#elif __has_include() +#include +namespace fs = std::filesystem; +#elif __has_include() +#include +namespace fs = std::filesystem; +#endif + +#endif diff --git a/lib/local/Utilities/src/ImageCapture.cpp b/lib/local/Utilities/src/ImageCapture.cpp index 2731fa014..2c21298ac 100644 --- a/lib/local/Utilities/src/ImageCapture.cpp +++ b/lib/local/Utilities/src/ImageCapture.cpp @@ -30,18 +30,10 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "ImageCapture.h" #include "ImageManipulationHelpers.h" -#include - -// Boost includes -#include -#include -#include - -// OpenCV includes -#include using namespace Utilities; @@ -69,7 +61,7 @@ bool ImageCapture::Open(std::vector& arguments) std::string input_root = ""; fx = -1; fy = -1; cx = -1; cy = -1; - std::string separator = std::string(1, boost::filesystem::path::preferred_separator); + std::string separator = std::string(1, fs::path::preferred_separator); // First check if there is a root argument (so that videos and input directories could be defined more easily) for (size_t i = 0; i < arguments.size(); ++i) @@ -224,16 +216,16 @@ bool ImageCapture::OpenDirectory(std::string directory, std::string bbox_directo image_files.clear(); - boost::filesystem::path image_directory(directory); - std::vector file_in_directory; - copy(boost::filesystem::directory_iterator(image_directory), boost::filesystem::directory_iterator(), back_inserter(file_in_directory)); + fs::path image_directory(directory); + std::vector file_in_directory; + copy(fs::directory_iterator(image_directory), fs::directory_iterator(), back_inserter(file_in_directory)); // Sort the images in the directory first sort(file_in_directory.begin(), file_in_directory.end()); std::vector curr_dir_files; - for (std::vector::const_iterator file_iterator(file_in_directory.begin()); file_iterator != file_in_directory.end(); ++file_iterator) + for (std::vector::const_iterator file_iterator(file_in_directory.begin()); file_iterator != file_in_directory.end(); ++file_iterator) { // Possible image extension .jpg and .png if (file_iterator->extension().string().compare(".jpg") == 0 || file_iterator->extension().string().compare(".jpeg") == 0 || file_iterator->extension().string().compare(".png") == 0 || file_iterator->extension().string().compare(".bmp") == 0) @@ -243,11 +235,11 @@ bool ImageCapture::OpenDirectory(std::string directory, std::string bbox_directo // If bounding box directory is specified, read the bounding boxes from it if (!bbox_directory.empty()) { - boost::filesystem::path current_file = *file_iterator; - boost::filesystem::path bbox_file = bbox_directory / current_file.filename().replace_extension("txt"); + fs::path current_file = *file_iterator; + fs::path bbox_file = bbox_directory / current_file.filename().replace_extension("txt"); // If there is a bounding box file push it to the list of bounding boxes - if (boost::filesystem::exists(bbox_file)) + if (fs::exists(bbox_file)) { std::ifstream in_bbox(bbox_file.string().c_str(), std::ios_base::in); diff --git a/lib/local/Utilities/src/RecorderCSV.cpp b/lib/local/Utilities/src/RecorderCSV.cpp index 5905a83b6..69a7c6371 100644 --- a/lib/local/Utilities/src/RecorderCSV.cpp +++ b/lib/local/Utilities/src/RecorderCSV.cpp @@ -30,17 +30,10 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "RecorderCSV.h" -// For sorting -#include - -// For standard out -#include -#include -#include - using namespace Utilities; // Default constructor initializes the variables diff --git a/lib/local/Utilities/src/RecorderHOG.cpp b/lib/local/Utilities/src/RecorderHOG.cpp index 08074db75..6c7d3d6ee 100644 --- a/lib/local/Utilities/src/RecorderHOG.cpp +++ b/lib/local/Utilities/src/RecorderHOG.cpp @@ -30,11 +30,10 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "RecorderHOG.h" -#include - using namespace Utilities; // Default constructor initializes the variables diff --git a/lib/local/Utilities/src/RecorderOpenFace.cpp b/lib/local/Utilities/src/RecorderOpenFace.cpp index 633fbb1e8..3132ebd3f 100644 --- a/lib/local/Utilities/src/RecorderOpenFace.cpp +++ b/lib/local/Utilities/src/RecorderOpenFace.cpp @@ -30,27 +30,10 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "RecorderOpenFace.h" -// For sorting -#include - -// File manipulation -#include -#include -#include - -// Boost includes for file system manipulation -#include -#include -#include - -// For threading -#include - -using namespace boost::filesystem; - using namespace Utilities; #define WARN_STREAM( stream ) \ @@ -64,16 +47,14 @@ void CreateDirectory(std::string output_path) output_path = output_path.substr(0, output_path.size() - 1); } - // Creating the right directory structure - auto p = path(output_path); - - if (!boost::filesystem::exists(p)) + // Creating the right directory structure + if (!fs::exists(output_path)) { - bool success = boost::filesystem::create_directories(p); + bool success = fs::create_directories(output_path); if (!success) { - std::cout << "ERROR: failed to create output directory:" << p.string() << ", do you have permission to create directory" << std::endl; + std::cout << "ERROR: failed to create output directory:" << output_path << ", do you have permission to create directory" << std::endl; exit(1); } } @@ -141,36 +122,37 @@ void RecorderOpenFace::PrepareRecording(const std::string& in_filename) CreateDirectory(record_root); // Create the filename for the general output file that contains all of the meta information about the recording - path of_det_name(out_name); - of_det_name = path(record_root) / path(out_name + "_of_details.txt"); + fs::path of_det_name(out_name); + of_det_name = fs::path(record_root) / fs::path(out_name + "_of_details.txt"); // Write in the of file what we are outputing what is the input etc. metadata_file.open(of_det_name.string(), std::ios_base::out); if (!metadata_file.is_open()) { - cout << "ERROR: could not open the output file:" << of_det_name << ", either the path of the output directory is wrong or you do not have the permissions to write to it" << endl; + std::cout << "ERROR: could not open the output file:" << of_det_name << ", either the path of the output directory is wrong or you do not have the permissions to write to it" << std::endl; exit(1); } // Populate relative and full path names in the meta file, unless it is a webcam if (!params.isFromWebcam()) { - string input_filename_relative = in_filename; - string input_filename_full = in_filename; - if (!boost::filesystem::path(input_filename_full).is_absolute()) + std::string input_filename_relative = in_filename; + std::string input_filename_full = in_filename; + + if (!fs::path(input_filename_full).is_absolute()) { - input_filename_full = boost::filesystem::canonical(input_filename_relative).string(); + input_filename_full = fs::canonical(input_filename_relative).string(); } - metadata_file << "Input:" << input_filename_relative << endl; - metadata_file << "Input full path:" << input_filename_full << endl; + metadata_file << "Input:" << input_filename_relative << std::endl; + metadata_file << "Input full path:" << input_filename_full << std::endl; } else { // Populate the metadata file - metadata_file << "Input:webcam" << endl; + metadata_file << "Input:webcam" << std::endl; } - metadata_file << "Camera parameters:" << params.getFx() << "," << params.getFy() << "," << params.getCx() << "," << params.getCy() << endl; + metadata_file << "Camera parameters:" << params.getFx() << "," << params.getFy() << "," << params.getCx() << "," << params.getCy() << std::endl; // Create the required individual recorders, CSV, HOG, aligned, video csv_filename = out_name + ".csv"; @@ -180,8 +162,8 @@ void RecorderOpenFace::PrepareRecording(const std::string& in_filename) { // Output the data based on record_root, but do not include record_root in the meta file, as it is also in that directory std::string hog_filename = out_name + ".hog"; - metadata_file << "Output HOG:" << hog_filename << endl; - hog_filename = (path(record_root) / hog_filename).string(); + metadata_file << "Output HOG:" << hog_filename << std::endl; + hog_filename = (fs::path(record_root) / hog_filename).string(); hog_recorder.Open(hog_filename); } @@ -192,14 +174,14 @@ void RecorderOpenFace::PrepareRecording(const std::string& in_filename) { // Output the data based on record_root, but do not include record_root in the meta file, as it is also in that directory this->media_filename = out_name + ".avi"; - metadata_file << "Output video:" << this->media_filename << endl; - this->media_filename = (path(record_root) / this->media_filename).string(); + metadata_file << "Output video:" << this->media_filename << std::endl; + this->media_filename = (fs::path(record_root) / this->media_filename).string(); } else { this->media_filename = out_name + "." + params.imageFormatVisualization(); - metadata_file << "Output image:" << this->media_filename << endl; - this->media_filename = (path(record_root) / this->media_filename).string(); + metadata_file << "Output image:" << this->media_filename << std::endl; + this->media_filename = (fs::path(record_root) / this->media_filename).string(); } } @@ -207,8 +189,8 @@ void RecorderOpenFace::PrepareRecording(const std::string& in_filename) if (params.outputAlignedFaces()) { aligned_output_directory = out_name + "_aligned"; - metadata_file << "Output aligned directory:" << this->aligned_output_directory << endl; - this->aligned_output_directory = (path(record_root) / this->aligned_output_directory).string(); + metadata_file << "Output aligned directory:" << this->aligned_output_directory << std::endl; + this->aligned_output_directory = (fs::path(record_root) / this->aligned_output_directory).string(); CreateDirectory(aligned_output_directory); } @@ -221,13 +203,13 @@ RecorderOpenFace::RecorderOpenFace(const std::string in_filename, const Recorder { // From the filename, strip out the name without directory and extension - if (boost::filesystem::is_directory(in_filename)) + if (fs::is_directory(in_filename)) { - out_name = boost::filesystem::canonical(boost::filesystem::path(in_filename)).filename().string(); + out_name = fs::canonical(in_filename).filename().string(); } else { - out_name = boost::filesystem::path(in_filename).filename().replace_extension("").string(); + out_name = fs::path(in_filename).filename().replace_extension("").string(); } // Consuming the input arguments @@ -252,8 +234,8 @@ RecorderOpenFace::RecorderOpenFace(const std::string in_filename, const Recorder { if (!output_found && arguments[i].compare("-of") == 0) { - record_root = (boost::filesystem::path(record_root) / boost::filesystem::path(arguments[i + 1])).remove_filename().string(); - out_name = path(boost::filesystem::path(arguments[i + 1])).replace_extension("").filename().string(); + record_root = (fs::path(record_root) / fs::path(arguments[i + 1])).remove_filename().string(); + out_name = fs::path(fs::path(arguments[i + 1])).replace_extension("").filename().string(); valid[i] = false; valid[i + 1] = false; i++; @@ -280,13 +262,13 @@ RecorderOpenFace::RecorderOpenFace(const std::string in_filename, const Recorder RecorderOpenFace::RecorderOpenFace(const std::string in_filename, const RecorderOpenFaceParameters& parameters, std::string output_directory):video_writer(), params(parameters) { // From the filename, strip out the name without directory and extension - if (boost::filesystem::is_directory(in_filename)) + if (fs::is_directory(in_filename)) { - out_name = boost::filesystem::canonical(boost::filesystem::path(in_filename)).filename().string(); + out_name = fs::canonical(fs::path(in_filename)).filename().string(); } else { - out_name = boost::filesystem::path(in_filename).filename().replace_extension("").string(); + out_name = fs::path(in_filename).filename().replace_extension("").string(); } record_root = output_directory; @@ -340,15 +322,15 @@ void RecorderOpenFace::WriteObservation() std::sort(au_names_reg.begin(), au_names_reg.end()); - metadata_file << "Output csv:" << csv_filename << endl; - metadata_file << "Gaze: " << params.outputGaze() << endl; - metadata_file << "AUs: " << params.outputAUs() << endl; - metadata_file << "Landmarks 2D: " << params.output2DLandmarks() << endl; - metadata_file << "Landmarks 3D: " << params.output3DLandmarks() << endl; - metadata_file << "Pose: " << params.outputPose() << endl; - metadata_file << "Shape parameters: " << params.outputPDMParams() << endl; + metadata_file << "Output csv:" << csv_filename << std::endl; + metadata_file << "Gaze: " << params.outputGaze() << std::endl; + metadata_file << "AUs: " << params.outputAUs() << std::endl; + metadata_file << "Landmarks 2D: " << params.output2DLandmarks() << std::endl; + metadata_file << "Landmarks 3D: " << params.output3DLandmarks() << std::endl; + metadata_file << "Pose: " << params.outputPose() << std::endl; + metadata_file << "Shape parameters: " << params.outputPDMParams() << std::endl; - csv_filename = (path(record_root) / csv_filename).string(); + csv_filename = (fs::path(record_root) / csv_filename).string(); csv_recorder.Open(csv_filename, params.isSequence(), params.output2DLandmarks(), params.output3DLandmarks(), params.outputPDMParams(), params.outputPose(), params.outputAUs(), params.outputGaze(), num_face_landmarks, num_model_modes, num_eye_landmarks, au_names_class, au_names_reg); } @@ -385,11 +367,7 @@ void RecorderOpenFace::WriteObservation() std::sprintf(name, "face_det_%06d.", face_id); // Construct the output filename - boost::filesystem::path slash("/"); - - std::string preferredSlash = slash.make_preferred().string(); - - string out_file = aligned_output_directory + preferredSlash + string(name) + params.imageFormatAligned(); + std::string out_file = (fs::path(aligned_output_directory) / fs::path(std::string(name) + params.imageFormatAligned())).string(); if(params.outputBadAligned() || landmark_detection_success) { @@ -525,8 +503,8 @@ RecorderOpenFace::~RecorderOpenFace() void RecorderOpenFace::Close() { // Insert terminating frames to the queues - vis_to_out_queue.push(std::pair("", cv::Mat())); - aligned_face_queue.push(std::pair("", cv::Mat())); + vis_to_out_queue.push(std::pair("", cv::Mat())); + aligned_face_queue.push(std::pair("", cv::Mat())); // Make sure the recording threads complete if (video_writing_thread.joinable()) diff --git a/lib/local/Utilities/src/RecorderOpenFaceParameters.cpp b/lib/local/Utilities/src/RecorderOpenFaceParameters.cpp index a00289e1f..5819ae3ef 100644 --- a/lib/local/Utilities/src/RecorderOpenFaceParameters.cpp +++ b/lib/local/Utilities/src/RecorderOpenFaceParameters.cpp @@ -30,11 +30,10 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "RecorderOpenFaceParameters.h" -using namespace std; - using namespace Utilities; RecorderOpenFaceParameters::RecorderOpenFaceParameters(std::vector &arguments, bool sequence, bool from_webcam, float fx, float fy, float cx, float cy, double fps_vid_out) @@ -177,6 +176,9 @@ RecorderOpenFaceParameters::RecorderOpenFaceParameters(bool sequence, bool is_fr // Default output code this->output_codec = "DIVX"; + this->image_format_aligned = "bmp"; + this->image_format_visualization = "jpg"; + this->output_2D_landmarks = output_2D_landmarks; this->output_3D_landmarks = output_3D_landmarks; this->output_model_params = output_model_params; diff --git a/lib/local/Utilities/src/SequenceCapture.cpp b/lib/local/Utilities/src/SequenceCapture.cpp index 11a3295ae..ca488e9f4 100644 --- a/lib/local/Utilities/src/SequenceCapture.cpp +++ b/lib/local/Utilities/src/SequenceCapture.cpp @@ -30,24 +30,11 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "SequenceCapture.h" #include "ImageManipulationHelpers.h" -#include - -// Boost includes -#include -#include -#include - -// OpenCV includes -#include - -// For timing -#include -#include - using namespace Utilities; #define INFO_STREAM( stream ) \ @@ -74,7 +61,7 @@ bool SequenceCapture::Open(std::vector& arguments) std::string input_root = ""; fx = -1; fy = -1; cx = -1; cy = -1; - std::string separator = std::string(1, boost::filesystem::path::preferred_separator); + std::string separator = std::string(1, fs::path::preferred_separator); // First check if there is a root argument (so that videos and input directories could be defined more easily) for (size_t i = 0; i < arguments.size(); ++i) @@ -357,23 +344,23 @@ bool SequenceCapture::OpenImageSequence(std::string directory, float fx, float f image_files.clear(); - boost::filesystem::path image_directory(directory); + fs::path image_directory(directory); - if (!boost::filesystem::exists(image_directory)) + if (!fs::exists(image_directory)) { std::cout << "Provided directory does not exist: " << directory << std::endl; return false; } - std::vector file_in_directory; - copy(boost::filesystem::directory_iterator(image_directory), boost::filesystem::directory_iterator(), back_inserter(file_in_directory)); + std::vector file_in_directory; + copy(fs::directory_iterator(image_directory), fs::directory_iterator(), back_inserter(file_in_directory)); // Sort the images in the directory first sort(file_in_directory.begin(), file_in_directory.end()); std::vector curr_dir_files; - for (std::vector::const_iterator file_iterator(file_in_directory.begin()); file_iterator != file_in_directory.end(); ++file_iterator) + for (std::vector::const_iterator file_iterator(file_in_directory.begin()); file_iterator != file_in_directory.end(); ++file_iterator) { // Possible image extension .jpg and .png if (file_iterator->extension().string().compare(".jpg") == 0 || file_iterator->extension().string().compare(".jpeg") == 0 || file_iterator->extension().string().compare(".png") == 0 || file_iterator->extension().string().compare(".bmp") == 0) diff --git a/lib/local/Utilities/src/VisualizationUtils.cpp b/lib/local/Utilities/src/VisualizationUtils.cpp index ed5ff0295..677bfc858 100644 --- a/lib/local/Utilities/src/VisualizationUtils.cpp +++ b/lib/local/Utilities/src/VisualizationUtils.cpp @@ -30,17 +30,11 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "VisualizationUtils.h" #include "RotationHelpers.h" -// For FHOG visualisation -#include -#include - -// For drawing on images -#include - namespace Utilities { diff --git a/lib/local/Utilities/src/Visualizer.cpp b/lib/local/Utilities/src/Visualizer.cpp index 6b764fd2e..29abfac1c 100644 --- a/lib/local/Utilities/src/Visualizer.cpp +++ b/lib/local/Utilities/src/Visualizer.cpp @@ -30,20 +30,13 @@ // IEEE International Conference on Automatic Face and Gesture Recognition, 2015 // /////////////////////////////////////////////////////////////////////////////// +#include "stdafx_ut.h" #include "Visualizer.h" #include "VisualizationUtils.h" #include "RotationHelpers.h" #include "ImageManipulationHelpers.h" -#include -#include -#include -#include - -// For drawing on images -#include - using namespace Utilities; // For subpixel accuracy drawing diff --git a/lib/local/Utilities/src/stdafx_ut.cpp b/lib/local/Utilities/src/stdafx_ut.cpp new file mode 100644 index 000000000..b99be905f --- /dev/null +++ b/lib/local/Utilities/src/stdafx_ut.cpp @@ -0,0 +1,12 @@ +/////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2017, Carnegie Mellon University and University of Cambridge, +// all rights reserved. +// +// ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY +// +// BY USING OR DOWNLOADING THE SOFTWARE, YOU ARE AGREEING TO THE TERMS OF THIS LICENSE AGREEMENT. +// IF YOU DO NOT AGREE WITH THESE TERMS, YOU MAY NOT USE OR DOWNLOAD THE SOFTWARE. +// +// License can be found in OpenFace-license.txt +// +#include "stdafx_ut.h" \ No newline at end of file diff --git a/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt index 0536abcd4..62fbe6d38 100644 --- a/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt +++ b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_class.txt @@ -1,11 +1,11 @@ -AU1 class, Precision - 0.521, Recall - 0.518, F1 - 0.519 -AU2 class, Precision - 0.432, Recall - 0.412, F1 - 0.422 -AU4 class, Precision - 0.548, Recall - 0.494, F1 - 0.520 +AU1 class, Precision - 0.520, Recall - 0.518, F1 - 0.519 +AU2 class, Precision - 0.429, Recall - 0.412, F1 - 0.420 +AU4 class, Precision - 0.549, Recall - 0.492, F1 - 0.519 AU6 class, Precision - 0.758, Recall - 0.773, F1 - 0.765 -AU7 class, Precision - 0.747, Recall - 0.696, F1 - 0.721 -AU10 class, Precision - 0.866, Recall - 0.839, F1 - 0.852 -AU12 class, Precision - 0.906, Recall - 0.812, F1 - 0.856 -AU14 class, Precision - 0.563, Recall - 0.763, F1 - 0.648 -AU15 class, Precision - 0.395, Recall - 0.434, F1 - 0.414 -AU17 class, Precision - 0.637, Recall - 0.604, F1 - 0.620 -AU23 class, Precision - 0.341, Recall - 0.610, F1 - 0.438 +AU7 class, Precision - 0.749, Recall - 0.698, F1 - 0.723 +AU10 class, Precision - 0.866, Recall - 0.840, F1 - 0.853 +AU12 class, Precision - 0.907, Recall - 0.812, F1 - 0.857 +AU14 class, Precision - 0.560, Recall - 0.764, F1 - 0.646 +AU15 class, Precision - 0.396, Recall - 0.434, F1 - 0.414 +AU17 class, Precision - 0.635, Recall - 0.604, F1 - 0.619 +AU23 class, Precision - 0.343, Recall - 0.609, F1 - 0.439 diff --git a/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt index 62ddd005c..d2d2753ea 100644 --- a/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt +++ b/matlab_runners/Action Unit Experiments/results/BP4D_valid_res_int.txt @@ -1,5 +1,5 @@ AU6 results - rms 0.846, corr 0.786, ccc - 0.752 AU10 results - rms 1.022, corr 0.741, ccc - 0.695 AU12 results - rms 0.790, corr 0.870, ccc - 0.847 -AU14 results - rms 1.119, corr 0.522, ccc - 0.480 -AU17 results - rms 0.796, corr 0.627, ccc - 0.540 +AU14 results - rms 1.120, corr 0.522, ccc - 0.480 +AU17 results - rms 0.795, corr 0.628, ccc - 0.542 diff --git a/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt index 2e4a6746f..287ba5f27 100644 --- a/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt +++ b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_class.txt @@ -1,17 +1,17 @@ -AU1 class, Precision - 0.323, Recall - 0.832, F1 - 0.466 -AU2 class, Precision - 0.288, Recall - 0.797, F1 - 0.424 -AU4 class, Precision - 0.460, Recall - 0.847, F1 - 0.596 -AU5 class, Precision - 0.356, Recall - 0.858, F1 - 0.504 -AU6 class, Precision - 0.365, Recall - 0.820, F1 - 0.505 -AU7 class, Precision - 0.805, Recall - 0.759, F1 - 0.781 -AU9 class, Precision - 0.400, Recall - 0.966, F1 - 0.566 -AU10 class, Precision - 0.290, Recall - 0.788, F1 - 0.424 -AU12 class, Precision - 0.724, Recall - 0.849, F1 - 0.781 -AU14 class, Precision - 0.184, Recall - 0.872, F1 - 0.303 -AU15 class, Precision - 0.150, Recall - 0.887, F1 - 0.256 -AU17 class, Precision - 0.274, Recall - 0.915, F1 - 0.421 +AU1 class, Precision - 0.324, Recall - 0.827, F1 - 0.466 +AU2 class, Precision - 0.286, Recall - 0.789, F1 - 0.420 +AU4 class, Precision - 0.460, Recall - 0.845, F1 - 0.596 +AU5 class, Precision - 0.364, Recall - 0.861, F1 - 0.512 +AU6 class, Precision - 0.367, Recall - 0.817, F1 - 0.507 +AU7 class, Precision - 0.804, Recall - 0.762, F1 - 0.783 +AU9 class, Precision - 0.407, Recall - 0.966, F1 - 0.573 +AU10 class, Precision - 0.291, Recall - 0.776, F1 - 0.423 +AU12 class, Precision - 0.723, Recall - 0.840, F1 - 0.777 +AU14 class, Precision - 0.183, Recall - 0.872, F1 - 0.302 +AU15 class, Precision - 0.148, Recall - 0.901, F1 - 0.255 +AU17 class, Precision - 0.275, Recall - 0.918, F1 - 0.424 AU20 class, Precision - 0.103, Recall - 0.877, F1 - 0.184 -AU23 class, Precision - 0.102, Recall - 0.815, F1 - 0.181 -AU25 class, Precision - 0.934, Recall - 0.831, F1 - 0.879 -AU26 class, Precision - 0.372, Recall - 0.794, F1 - 0.507 -AU45 class, Precision - 0.369, Recall - 0.819, F1 - 0.508 +AU23 class, Precision - 0.099, Recall - 0.800, F1 - 0.176 +AU25 class, Precision - 0.935, Recall - 0.833, F1 - 0.881 +AU26 class, Precision - 0.373, Recall - 0.792, F1 - 0.507 +AU45 class, Precision - 0.366, Recall - 0.822, F1 - 0.506 diff --git a/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt index e0ba04878..9a3e26c72 100644 --- a/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt +++ b/matlab_runners/Action Unit Experiments/results/Bosphorus_res_int.txt @@ -1,17 +1,17 @@ -AU1 intensity, Corr - 0.683, RMS - 0.837, CCC - 0.579 +AU1 intensity, Corr - 0.681, RMS - 0.838, CCC - 0.578 AU2 intensity, Corr - 0.664, RMS - 0.829, CCC - 0.613 -AU4 intensity, Corr - 0.770, RMS - 0.676, CCC - 0.728 -AU5 intensity, Corr - 0.747, RMS - 0.748, CCC - 0.680 -AU6 intensity, Corr - 0.555, RMS - 0.778, CCC - 0.522 -AU7 intensity, Corr - 0.830, RMS - 0.748, CCC - 0.813 -AU9 intensity, Corr - 0.756, RMS - 0.620, CCC - 0.700 -AU10 intensity, Corr - 0.474, RMS - 0.822, CCC - 0.434 +AU4 intensity, Corr - 0.771, RMS - 0.675, CCC - 0.729 +AU5 intensity, Corr - 0.748, RMS - 0.750, CCC - 0.680 +AU6 intensity, Corr - 0.556, RMS - 0.777, CCC - 0.523 +AU7 intensity, Corr - 0.829, RMS - 0.750, CCC - 0.812 +AU9 intensity, Corr - 0.757, RMS - 0.618, CCC - 0.701 +AU10 intensity, Corr - 0.473, RMS - 0.821, CCC - 0.433 AU12 intensity, Corr - 0.820, RMS - 0.689, CCC - 0.780 -AU14 intensity, Corr - 0.349, RMS - 0.964, CCC - 0.264 -AU15 intensity, Corr - 0.481, RMS - 0.790, CCC - 0.364 -AU17 intensity, Corr - 0.556, RMS - 0.980, CCC - 0.453 -AU20 intensity, Corr - 0.426, RMS - 0.892, CCC - 0.289 -AU23 intensity, Corr - 0.359, RMS - 0.658, CCC - 0.295 -AU25 intensity, Corr - 0.794, RMS - 0.932, CCC - 0.750 -AU26 intensity, Corr - 0.518, RMS - 0.977, CCC - 0.451 +AU14 intensity, Corr - 0.352, RMS - 0.961, CCC - 0.266 +AU15 intensity, Corr - 0.482, RMS - 0.790, CCC - 0.365 +AU17 intensity, Corr - 0.557, RMS - 0.981, CCC - 0.454 +AU20 intensity, Corr - 0.425, RMS - 0.892, CCC - 0.288 +AU23 intensity, Corr - 0.356, RMS - 0.659, CCC - 0.292 +AU25 intensity, Corr - 0.793, RMS - 0.932, CCC - 0.750 +AU26 intensity, Corr - 0.522, RMS - 0.975, CCC - 0.453 AU45 intensity, Corr - 0.854, RMS - 0.611, CCC - 0.817 diff --git a/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt b/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt index 62ee7c178..379b4eabd 100644 --- a/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt +++ b/matlab_runners/Action Unit Experiments/results/DISFA_valid_res.txt @@ -1,12 +1,12 @@ -AU1 results - corr 0.846, rms 0.386, ccc - 0.824 -AU2 results - corr 0.766, rms 0.441, ccc - 0.667 +AU1 results - corr 0.845, rms 0.387, ccc - 0.823 +AU2 results - corr 0.765, rms 0.442, ccc - 0.666 AU4 results - corr 0.870, rms 0.573, ccc - 0.843 -AU5 results - corr 0.767, rms 0.174, ccc - 0.731 +AU5 results - corr 0.767, rms 0.174, ccc - 0.730 AU6 results - corr 0.725, rms 0.580, ccc - 0.685 AU9 results - corr 0.736, rms 0.391, ccc - 0.654 -AU12 results - corr 0.866, rms 0.504, ccc - 0.852 -AU15 results - corr 0.754, rms 0.268, ccc - 0.721 +AU12 results - corr 0.866, rms 0.504, ccc - 0.853 +AU15 results - corr 0.751, rms 0.269, ccc - 0.719 AU17 results - corr 0.613, rms 0.568, ccc - 0.529 -AU20 results - corr 0.587, rms 0.326, ccc - 0.559 -AU25 results - corr 0.929, rms 0.495, ccc - 0.919 -AU26 results - corr 0.814, rms 0.441, ccc - 0.784 +AU20 results - corr 0.588, rms 0.326, ccc - 0.559 +AU25 results - corr 0.929, rms 0.496, ccc - 0.919 +AU26 results - corr 0.813, rms 0.442, ccc - 0.784 diff --git a/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt b/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt index ed78c74d3..113f4732b 100644 --- a/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt +++ b/matlab_runners/Action Unit Experiments/results/FERA2011_res_class.txt @@ -2,10 +2,10 @@ AU1 class, Precision - 0.457, Recall - 0.868, F1 - 0.599 AU2 class, Precision - 0.414, Recall - 0.716, F1 - 0.525 AU4 class, Precision - 0.491, Recall - 0.694, F1 - 0.575 AU6 class, Precision - 0.755, Recall - 0.713, F1 - 0.734 -AU7 class, Precision - 0.673, Recall - 0.789, F1 - 0.726 +AU7 class, Precision - 0.673, Recall - 0.788, F1 - 0.726 AU10 class, Precision - 0.525, Recall - 0.638, F1 - 0.576 AU12 class, Precision - 0.896, Recall - 0.732, F1 - 0.806 AU15 class, Precision - 0.349, Recall - 0.595, F1 - 0.440 AU17 class, Precision - 0.221, Recall - 0.213, F1 - 0.217 -AU25 class, Precision - 0.203, Recall - 0.832, F1 - 0.327 +AU25 class, Precision - 0.204, Recall - 0.832, F1 - 0.327 AU26 class, Precision - 0.118, Recall - 0.977, F1 - 0.211 diff --git a/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt b/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt index e9fdc8a7e..0a1010c9a 100644 --- a/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt +++ b/matlab_runners/Action Unit Experiments/results/SEMAINE_valid_res.txt @@ -1,6 +1,6 @@ -AU2 class, Precision - 0.324, Recall - 0.759, F1 - 0.454 -AU12 class, Precision - 0.450, Recall - 0.768, F1 - 0.568 +AU2 class, Precision - 0.324, Recall - 0.760, F1 - 0.455 +AU12 class, Precision - 0.450, Recall - 0.769, F1 - 0.568 AU17 class, Precision - 0.107, Recall - 0.839, F1 - 0.190 -AU25 class, Precision - 0.332, Recall - 0.476, F1 - 0.391 -AU28 class, Precision - 0.582, Recall - 0.603, F1 - 0.593 -AU45 class, Precision - 0.298, Recall - 0.570, F1 - 0.392 +AU25 class, Precision - 0.331, Recall - 0.475, F1 - 0.390 +AU28 class, Precision - 0.584, Recall - 0.602, F1 - 0.593 +AU45 class, Precision - 0.299, Recall - 0.571, F1 - 0.392 diff --git a/matlab_runners/Feature Point Experiments/results/300VW_OpenFace.mat b/matlab_runners/Feature Point Experiments/results/300VW_OpenFace.mat index 6ef724979..da03ea757 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VW_OpenFace.mat and b/matlab_runners/Feature Point Experiments/results/300VW_OpenFace.mat differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.pdf b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.pdf index 5f07b0953..d9b036417 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.pdf and b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.png b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.png index 8e5179aa0..9d70e6e5d 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.png and b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat1.png differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.pdf b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.pdf index ef45bb82a..ade75d543 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.pdf and b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.png b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.png index 6cf1ec248..6a4a832b0 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.png and b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat2.png differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.pdf b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.pdf index 24389afff..e77551f19 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.pdf and b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.png b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.png index c9efc3793..8bbad8a88 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.png and b/matlab_runners/Feature Point Experiments/results/300VWres_49_cat3.png differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_66_cat1.pdf b/matlab_runners/Feature Point Experiments/results/300VWres_66_cat1.pdf index f05722a80..688310e37 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_66_cat1.pdf and b/matlab_runners/Feature Point Experiments/results/300VWres_66_cat1.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_66_cat2.pdf b/matlab_runners/Feature Point Experiments/results/300VWres_66_cat2.pdf index 55f8165b3..52634f38a 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_66_cat2.pdf and b/matlab_runners/Feature Point Experiments/results/300VWres_66_cat2.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/300VWres_66_cat3.pdf b/matlab_runners/Feature Point Experiments/results/300VWres_66_cat3.pdf index b617ad341..173e6a4f6 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300VWres_66_cat3.pdf and b/matlab_runners/Feature Point Experiments/results/300VWres_66_cat3.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/300W_res.pdf b/matlab_runners/Feature Point Experiments/results/300W_res.pdf index b11c9d9a5..b5abd4496 100644 Binary files a/matlab_runners/Feature Point Experiments/results/300W_res.pdf and b/matlab_runners/Feature Point Experiments/results/300W_res.pdf differ diff --git a/matlab_runners/Feature Point Experiments/results/fps_yt.mat b/matlab_runners/Feature Point Experiments/results/fps_yt.mat index bf94b05f2..6892d493b 100644 Binary files a/matlab_runners/Feature Point Experiments/results/fps_yt.mat and b/matlab_runners/Feature Point Experiments/results/fps_yt.mat differ diff --git a/matlab_runners/Feature Point Experiments/results/fps_yt.txt b/matlab_runners/Feature Point Experiments/results/fps_yt.txt index 8bfad0ea4..ac73a7c68 100644 --- a/matlab_runners/Feature Point Experiments/results/fps_yt.txt +++ b/matlab_runners/Feature Point Experiments/results/fps_yt.txt @@ -1,4 +1,4 @@ Model, mean, median OpenFace (CE-CLM): 0.0499, 0.0473 -OpenFace (CLNF): 0.0553, 0.0516 -CLM: 0.0644, 0.0592 +OpenFace (CLNF): 0.0553, 0.0515 +CLM: 0.0642, 0.0590 diff --git a/matlab_runners/Feature Point Experiments/results/landmark_detections.mat b/matlab_runners/Feature Point Experiments/results/landmark_detections.mat index 80378b2dc..3d8c1a1cb 100644 Binary files a/matlab_runners/Feature Point Experiments/results/landmark_detections.mat and b/matlab_runners/Feature Point Experiments/results/landmark_detections.mat differ diff --git a/matlab_runners/Feature Point Experiments/results/landmark_detections.txt b/matlab_runners/Feature Point Experiments/results/landmark_detections.txt index 6402ceeb6..84aceca78 100644 --- a/matlab_runners/Feature Point Experiments/results/landmark_detections.txt +++ b/matlab_runners/Feature Point Experiments/results/landmark_detections.txt @@ -1,4 +1,4 @@ Type, mean, median -err ce-clm: 0.043213, 0.034775 -err clnf: 0.055347, 0.038637 -err svr: 0.070061, 0.049981 +err ce-clm: 0.043206, 0.034744 +err clnf: 0.055150, 0.038574 +err svr: 0.069465, 0.050025 diff --git a/matlab_runners/Gaze Experiments/mpii_1500_errs.mat b/matlab_runners/Gaze Experiments/mpii_1500_errs.mat index 1149d133e..1ee2fad3c 100644 Binary files a/matlab_runners/Gaze Experiments/mpii_1500_errs.mat and b/matlab_runners/Gaze Experiments/mpii_1500_errs.mat differ diff --git a/matlab_runners/Gaze Experiments/mpii_1500_errs.txt b/matlab_runners/Gaze Experiments/mpii_1500_errs.txt index c0ab0e151..ec49abaa2 100644 --- a/matlab_runners/Gaze Experiments/mpii_1500_errs.txt +++ b/matlab_runners/Gaze Experiments/mpii_1500_errs.txt @@ -1,2 +1,2 @@ Mean error, median error -9.102, 8.443 +9.072, 8.454 diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.mat b/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.mat index 8f5dfb3fe..51f56b79e 100644 Binary files a/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.mat and b/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.mat differ diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.txt b/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.txt index 4e3bb7b6e..dd9116807 100644 --- a/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.txt +++ b/matlab_runners/Head Pose Experiments/results/Pose_OF_CECLM.txt @@ -1,4 +1,4 @@ Dataset and model, pitch, yaw, roll, mean, median -biwi error: 6.180, 5.101, 3.746, 5.009, 2.415 -bu error: 2.397, 3.248, 2.409, 2.684, 1.836 -ict error: 3.134, 3.511, 3.134, 3.260, 1.867 +biwi error: 6.119, 5.033, 3.673, 4.942, 2.411 +bu error: 2.396, 3.247, 2.409, 2.684, 1.835 +ict error: 3.134, 3.512, 3.136, 3.261, 1.867 diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.mat b/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.mat index 3bde12243..abec0a9cf 100644 Binary files a/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.mat and b/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.mat differ diff --git a/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.txt b/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.txt index aa6152c34..a4cdff5b1 100644 --- a/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.txt +++ b/matlab_runners/Head Pose Experiments/results/Pose_OF_CLNF.txt @@ -1,4 +1,4 @@ Dataset and model, pitch, yaw, roll, mean, median -biwi error: 7.500, 5.094, 4.610, 5.735, 2.550 -bu error: 2.775, 3.348, 2.448, 2.857, 1.990 -ict error: 3.813, 3.711, 3.528, 3.684, 1.931 +biwi error: 7.444, 5.100, 4.608, 5.717, 2.556 +bu error: 2.776, 3.347, 2.447, 2.857, 1.987 +ict error: 3.837, 3.698, 3.552, 3.696, 1.935